You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@arrow.apache.org by li...@apache.org on 2022/12/22 14:29:08 UTC

[arrow-adbc] branch main updated: chore: add support for AlmaLinux packages (#256)

This is an automated email from the ASF dual-hosted git repository.

lidavidm pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/arrow-adbc.git


The following commit(s) were added to refs/heads/main by this push:
     new 4583840  chore: add support for AlmaLinux packages (#256)
4583840 is described below

commit 45838403b77d42704657556f07dabaf39dff8511
Author: Sutou Kouhei <ko...@clear-code.com>
AuthorDate: Thu Dec 22 23:29:02 2022 +0900

    chore: add support for AlmaLinux packages (#256)
    
    Fixes #104.
---
 .github/workflows/packaging.yml                 |   6 +
 .gitignore                                      |   6 +
 ci/linux-packages/Rakefile                      |   4 -
 ci/linux-packages/yum/almalinux-8/Dockerfile    |  41 ++++
 ci/linux-packages/yum/almalinux-9/Dockerfile    |  41 ++++
 ci/linux-packages/yum/apache-arrow-adbc.spec.in | 256 ++++++++++++++++++++++++
 dev/release/verify-apt.sh                       |   5 +-
 dev/release/{verify-apt.sh => verify-yum.sh}    | 116 +++++------
 8 files changed, 406 insertions(+), 69 deletions(-)

diff --git a/.github/workflows/packaging.yml b/.github/workflows/packaging.yml
index c816b0d..bdc4a49 100644
--- a/.github/workflows/packaging.yml
+++ b/.github/workflows/packaging.yml
@@ -132,6 +132,8 @@ jobs:
       fail-fast: false
       matrix:
         target:
+          - almalinux-8
+          - almalinux-9
           - debian-bookworm
           - debian-bullseye
           - ubuntu-jammy
@@ -147,6 +149,10 @@ jobs:
         run: |
           echo "ARROW_SOURCE=$(pwd)/arrow" >> $GITHUB_ENV
           case ${{ matrix.target }} in
+            almalinux-*)
+              echo "TASK_NAMESPACE=yum" >> $GITHUB_ENV
+              echo "YUM_TARGETS=${{ matrix.target }}" >> $GITHUB_ENV
+              ;;
             debian-*|ubuntu-*)
               echo "TASK_NAMESPACE=apt" >> $GITHUB_ENV
               echo "APT_TARGETS=${{ matrix.target }}" >> $GITHUB_ENV
diff --git a/.gitignore b/.gitignore
index ffbc917..8d3d776 100644
--- a/.gitignore
+++ b/.gitignore
@@ -116,3 +116,9 @@ target/
 /ci/linux-packages/apt/merged/
 /ci/linux-packages/apt/repositories/
 /ci/linux-packages/apt/tmp/
+/ci/linux-packages/yum/build.sh
+/ci/linux-packages/yum/build/
+/ci/linux-packages/yum/env.sh
+/ci/linux-packages/yum/merged/
+/ci/linux-packages/yum/repositories/
+/ci/linux-packages/yum/tmp/
diff --git a/ci/linux-packages/Rakefile b/ci/linux-packages/Rakefile
index bb281ed..b0a9a78 100644
--- a/ci/linux-packages/Rakefile
+++ b/ci/linux-packages/Rakefile
@@ -249,10 +249,6 @@ class ADBCPackageTask < PackageTask
       task target_namespace => tasks
     end
   end
-
-  def enable_yum?
-    false
-  end
 end
 
 class ADBCLocalBinaryTask < LocalBinaryTask
diff --git a/ci/linux-packages/yum/almalinux-8/Dockerfile b/ci/linux-packages/yum/almalinux-8/Dockerfile
new file mode 100644
index 0000000..7f68554
--- /dev/null
+++ b/ci/linux-packages/yum/almalinux-8/Dockerfile
@@ -0,0 +1,41 @@
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements.  See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership.  The ASF licenses this file
+# to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance
+# with the License.  You may obtain a copy of the License at
+#
+#   http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing,
+# software distributed under the License is distributed on an
+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+# KIND, either express or implied.  See the License for the
+# specific language governing permissions and limitations
+# under the License.
+
+ARG FROM=almalinux:8
+FROM ${FROM}
+
+ARG DEBUG
+
+RUN \
+  quiet=$([ "${DEBUG}" = "yes" ] || echo "--quiet") && \
+  yum install -y ${quiet} epel-release && \
+  yum install -y https://apache.jfrog.io/artifactory/arrow/almalinux/$(cut -d: -f5 /etc/system-release-cpe | cut -d. -f1)/apache-arrow-release-latest.rpm && \
+  yum install --enablerepo=powertools -y ${quiet} \
+    ccache \
+    cmake \
+    gcc-c++ \
+    gobject-introspection-devel \
+    libpq-devel \
+    make \
+    ninja-build \
+    pkg-config \
+    python3 \
+    python3-pip \
+    rpmdevtools \
+    sqlite-devel \
+    tar && \
+  yum clean ${quiet} all
diff --git a/ci/linux-packages/yum/almalinux-9/Dockerfile b/ci/linux-packages/yum/almalinux-9/Dockerfile
new file mode 100644
index 0000000..6254d20
--- /dev/null
+++ b/ci/linux-packages/yum/almalinux-9/Dockerfile
@@ -0,0 +1,41 @@
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements.  See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership.  The ASF licenses this file
+# to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance
+# with the License.  You may obtain a copy of the License at
+#
+#   http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing,
+# software distributed under the License is distributed on an
+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+# KIND, either express or implied.  See the License for the
+# specific language governing permissions and limitations
+# under the License.
+
+ARG FROM=almalinux:9
+FROM ${FROM}
+
+ARG DEBUG
+
+RUN \
+  quiet=$([ "${DEBUG}" = "yes" ] || echo "--quiet") && \
+  dnf install -y ${quiet} epel-release && \
+  dnf install -y https://apache.jfrog.io/artifactory/arrow/almalinux/$(cut -d: -f5 /etc/system-release-cpe | cut -d. -f1)/apache-arrow-release-latest.rpm && \
+  dnf install --enablerepo=crb -y ${quiet} \
+    ccache \
+    cmake \
+    gcc-c++ \
+    gobject-introspection-devel \
+    libpq-devel \
+    make \
+    ninja-build \
+    pkg-config \
+    python3 \
+    python3-pip \
+    rpmdevtools \
+    sqlite-devel \
+    tar && \
+  dnf clean ${quiet} all
diff --git a/ci/linux-packages/yum/apache-arrow-adbc.spec.in b/ci/linux-packages/yum/apache-arrow-adbc.spec.in
new file mode 100644
index 0000000..7b4e169
--- /dev/null
+++ b/ci/linux-packages/yum/apache-arrow-adbc.spec.in
@@ -0,0 +1,256 @@
+# -*- sh-shell: rpm -*-
+#
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements.  See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership.  The ASF licenses this file
+# to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance
+# with the License.  You may obtain a copy of the License at
+#
+#   http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing,
+# software distributed under the License is distributed on an
+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+# KIND, either express or implied.  See the License for the
+# specific language governing permissions and limitations
+# under the License.
+
+%define major_version %(echo @VERSION@ | grep -o '^[0-9]*')
+
+%if %{rhel} >= 9
+%define adbc_cmake_builddir %{__cmake_builddir}
+%define adbc_cmake %cmake
+%define adbc_cmake_build make -C %{adbc_cmake_builddir} %{?_smp_mflags}
+%define adbc_cmake_install %cmake_install
+%else
+%define adbc_cmake_builddir build
+%define adbc_cmake %cmake3 -S . -B %{adbc_cmake_builddir}
+%define adbc_cmake_build make -C %{adbc_cmake_builddir} %{?_smp_mflags}
+%define adbc_cmake_install DESTDIR="%{buildroot}" make -C %{adbc_cmake_builddir} install
+%endif
+
+Name:		adbc
+Version:	@VERSION@
+Release:	@RELEASE@%{?dist}
+Summary:	Apache Arrow Database Connectivity (ADBC) is an Apache Arrow based database access API
+
+License:	Apache-2.0
+URL:		https://arrow.apache.org/adbc/
+Source0:	https://www.apache.org/dyn/closer.lua?action=download&path=/arrow/arrow-adbc-%{version}/apache-arrow-adbc-%{version}.tar.gz
+
+BuildRequires:	cmake
+BuildRequires:	gcc-c++
+BuildRequires:	gobject-introspection-devel
+BuildRequires:	libpq-devel
+BuildRequires:	ninja-build
+BuildRequires:	pkgconfig
+BuildRequires:	sqlite-devel
+
+%description
+Apache Arrow Database Connectivity (ADBC) is an Apache Arrow based database access API
+
+%prep
+%setup -q -n apache-arrow-adbc-%{version}
+
+%build
+cmake_build_type=RelWithDebInfo
+meson_build_type=debugoptimized
+
+cd c/driver_manager
+%adbc_cmake \
+  -DCMAKE_BUILD_TYPE=${cmake_build_type} \
+  -G"Unix Makefiles"
+%adbc_cmake_build
+cd -
+
+cd c/driver/postgresql
+%adbc_cmake \
+  -DCMAKE_BUILD_TYPE=${cmake_build_type} \
+  -G"Unix Makefiles"
+%adbc_cmake_build
+cd -
+
+cd c/driver/sqlite
+%adbc_cmake \
+  -DCMAKE_BUILD_TYPE=${cmake_build_type} \
+  -G"Unix Makefiles"
+%adbc_cmake_build
+cd -
+
+cd glib
+pip3 install meson
+meson setup build \
+  --buildtype=${meson_build_type} \
+  --default-library=both \
+  --libdir=%{_libdir} \
+  --prefix=%{_prefix} \
+  -Dadbc_build_dir=$PWD/../c/driver_manager/%{adbc_cmake_builddir}
+
+LD_LIBRARY_PATH=$PWD/../c/driver_manager/%{adbc_cmake_builddir}/ \
+  meson compile -C build %{?_smp_mflags}
+cd -
+
+%install
+cd c/driver_manager
+%adbc_cmake_install
+cd -
+
+cd c/driver/postgresql
+%adbc_cmake_install
+cd -
+
+cd c/driver/sqlite
+%adbc_cmake_install
+cd -
+
+cd glib
+DESTDIR=%{buildroot} meson install -C build
+cd -
+
+%package driver-manager%{major_version}-libs
+Summary:	Runtime libraries for ADBC driver manager
+License:	Apache-2.0
+
+%description driver-manager%{major_version}-libs
+This package contains the libraries for ADBC driver manager.
+
+%files driver-manager%{major_version}-libs
+%defattr(-,root,root,-)
+%doc README.md
+%license LICENSE.txt NOTICE.txt
+%{_libdir}/libadbc_driver_manager.so.*
+
+%package driver-manager-devel
+Summary:	Libraries and header files for ADBC driver manager
+License:	Apache-2.0
+Requires:	%{name}-driver-manager%{major_version}-libs = %{version}-%{release}
+
+%description driver-manager-devel
+Libraries and header files for ADBC driver manager.
+
+%files driver-manager-devel
+%defattr(-,root,root,-)
+%doc README.md
+%license LICENSE.txt NOTICE.txt
+%{_includedir}/adbc.h
+%{_includedir}/adbc_driver_manager.h
+%{_libdir}/cmake/AdbcDriverManager/
+%{_libdir}/libadbc_driver_manager.a
+%{_libdir}/libadbc_driver_manager.so
+%{_libdir}/pkgconfig/adbc-driver-manager.pc
+
+%package driver-postgresql%{major_version}-libs
+Summary:	ADBC PostgreSQL driver
+License:	Apache-2.0
+Requires:	libpq
+
+%description driver-postgresql%{major_version}-libs
+This package provides an ADBC driver for PostgreSQL.
+
+%files driver-postgresql%{major_version}-libs
+%defattr(-,root,root,-)
+%doc README.md
+%license LICENSE.txt NOTICE.txt
+%{_libdir}/libadbc_driver_postgresql.so.*
+
+%package driver-postgresql-devel
+Summary:	Libraries and header files for ADBC PostgreSQL driver
+License:	Apache-2.0
+Requires:	%{name}-driver-postgresql%{major_version}-libs = %{version}-%{release}
+
+%description driver-postgresql-devel
+Libraries and header files for ADBC PostgreSQL driver.
+
+%files driver-postgresql-devel
+%defattr(-,root,root,-)
+%doc README.md
+%license LICENSE.txt NOTICE.txt
+%{_libdir}/cmake/AdbcDriverPostgreSQL/
+%{_libdir}/libadbc_driver_postgresql.a
+%{_libdir}/libadbc_driver_postgresql.so
+%{_libdir}/pkgconfig/adbc-driver-postgresql.pc
+
+%package driver-sqlite%{major_version}-libs
+Summary:	ADBC SQLite driver
+License:	Apache-2.0
+Requires:	libpq
+
+%description driver-sqlite%{major_version}-libs
+This package provides an ADBC driver for SQLite
+
+%files driver-sqlite%{major_version}-libs
+%defattr(-,root,root,-)
+%doc README.md
+%license LICENSE.txt NOTICE.txt
+%{_libdir}/libadbc_driver_sqlite.so.*
+
+%package driver-sqlite-devel
+Summary:	Libraries and header files for ADBC SQLite driver
+License:	Apache-2.0
+Requires:	%{name}-driver-sqlite%{major_version}-libs = %{version}-%{release}
+
+%description driver-sqlite-devel
+Libraries and header files for ADBC SQLite driver.
+
+%files driver-sqlite-devel
+%defattr(-,root,root,-)
+%doc README.md
+%license LICENSE.txt NOTICE.txt
+%{_libdir}/cmake/AdbcDriverSQLite/
+%{_libdir}/libadbc_driver_sqlite.a
+%{_libdir}/libadbc_driver_sqlite.so
+%{_libdir}/pkgconfig/adbc-driver-sqlite.pc
+
+%package glib%{major_version}-libs
+Summary:	Runtime libraries for ADBC GLib
+License:	Apache-2.0
+Requires:	%{name}-driver-manager%{major_version}-libs = %{version}-%{release}
+Requires:	glib2
+
+%description glib%{major_version}-libs
+This package contains the libraries for ADBC GLib.
+
+%files glib%{major_version}-libs
+%defattr(-,root,root,-)
+%doc README.md
+%license LICENSE.txt NOTICE.txt
+%{_libdir}/girepository-1.0/ADBC-*.typelib
+%{_libdir}/libadbc-glib.so.*
+
+%package glib-devel
+Summary:	Libraries and header files for ADBC GLib
+License:	Apache-2.0
+Requires:	%{name}-driver-manager-devel = %{version}-%{release}
+Requires:	%{name}-glib%{major_version}-libs = %{version}-%{release}
+Requires:	glib2-devel
+Requires:	gobject-introspection-devel
+
+%description glib-devel
+Libraries and header files for ADBC GLib.
+
+%files glib-devel
+%defattr(-,root,root,-)
+%doc README.md
+%license LICENSE.txt NOTICE.txt
+%{_datadir}/gir-1.0/ADBC-*.gir
+%{_includedir}/adbc-glib/
+%{_libdir}/libadbc-glib.a
+%{_libdir}/libadbc-glib.so
+%{_libdir}/pkgconfig/adbc-glib.pc
+
+%package glib-doc
+Summary:	Documentation for ADBC GLib
+License:	Apache-2.0
+
+%description glib-doc
+Documentation for ADBC GLib.
+
+%files glib-doc
+%defattr(-,root,root,-)
+%doc README.md
+%license LICENSE.txt NOTICE.txt
+%{_docdir}/adbc-glib/
+
+%changelog
diff --git a/dev/release/verify-apt.sh b/dev/release/verify-apt.sh
index 7711be0..81047df 100755
--- a/dev/release/verify-apt.sh
+++ b/dev/release/verify-apt.sh
@@ -37,7 +37,8 @@ VERSION="$1"
 TYPE="$2"
 
 SOURCE_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
-local_prefix="${SOURCE_DIR}/../../ci/linux-packages"
+TOP_SOURCE_DIR="${SOURCE_DIR}/../.."
+local_prefix="${TOP_SOURCE_DIR}/ci/linux-packages"
 
 
 echo "::group::Prepare repository"
@@ -135,7 +136,7 @@ required_packages+=(pkg-config)
 ${APT_INSTALL} ${required_packages[@]}
 # TODO
 # mkdir -p build
-# cp -a /adbc/c/driver_manager/example build/
+# cp -a ${TOP_SOURCE_DIR}/c/driver_manager/example build/
 # pushd build/example
 # cmake .
 # make -j$(nproc)
diff --git a/dev/release/verify-apt.sh b/dev/release/verify-yum.sh
similarity index 53%
copy from dev/release/verify-apt.sh
copy to dev/release/verify-yum.sh
index 7711be0..bc83b69 100755
--- a/dev/release/verify-apt.sh
+++ b/dev/release/verify-yum.sh
@@ -39,74 +39,68 @@ TYPE="$2"
 SOURCE_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
 local_prefix="${SOURCE_DIR}/../../ci/linux-packages"
 
+artifactory_base_url="https://apache.jfrog.io/artifactory/arrow"
 
-echo "::group::Prepare repository"
-
-export DEBIAN_FRONTEND=noninteractive
+distribution=$(. /etc/os-release && echo "${ID}")
+distribution_version=$(. /etc/os-release && echo "${VERSION_ID}" | grep -o "^[0-9]*")
+repository_version="${distribution_version}"
 
-APT_INSTALL="apt install -y -V --no-install-recommends"
+ruby_devel_packages=(ruby-devel)
+install_command="dnf install -y --enablerepo=crb"
+uninstall_command="dnf remove -y"
+clean_command="dnf clean"
+info_command="dnf info --enablerepo=crb"
 
-apt update
-${APT_INSTALL} \
-  ca-certificates \
-  curl \
-  lsb-release
+echo "::group::Prepare repository"
 
-code_name="$(lsb_release --codename --short)"
-distribution="$(lsb_release --id --short | tr 'A-Z' 'a-z')"
-artifactory_base_url="https://apache.jfrog.io/artifactory/arrow/${distribution}"
-case "${TYPE}" in
-  rc|staging-rc|staging-release)
-    suffix=${TYPE%-release}
-    artifactory_base_url+="-${suffix}"
+case "${distribution}-${distribution_version}" in
+  almalinux-8)
+    distribution_prefix="almalinux"
+    ruby_devel_packages+=(redhat-rpm-config)
+    install_command="dnf install -y --enablerepo=powertools"
+    info_command="dnf info --enablerepo=powertools"
     ;;
-esac
-
-case "${distribution}-${code_name}" in
-  debian-*)
-    sed \
-      -i"" \
-      -e "s/ main$/ main contrib non-free/g" \
-      /etc/apt/sources.list
+  almalinux-*)
+    distribution_prefix="almalinux"
+    ruby_devel_packages+=(redhat-rpm-config)
     ;;
 esac
 
-curl \
-    --fail \
-    --location \
-    --remote-name \
-     https://apache.jfrog.io/artifactory/arrow/$(lsb_release --id --short | tr 'A-Z' 'a-z')/apache-arrow-apt-source-latest-$(lsb_release --codename --short).deb
-${APT_INSTALL} ./apache-arrow-apt-source-latest-$(lsb_release --codename --short).deb
+${install_command} \
+    ${artifactory_base_url}/${distribution_prefix}/${repository_version}/apache-arrow-release-latest.rpm
 
 if [ "${TYPE}" = "local" ]; then
   case "${VERSION}" in
     *-dev*)
-      package_version="$(echo "${VERSION}" | sed -e 's/-dev\(.*\)$/~dev\1/g')"
+      package_version="$(echo "${VERSION}" | sed -e 's/-dev\(.*\)$/-0.dev\1/g')"
       ;;
     *-rc*)
       package_version="$(echo "${VERSION}" | sed -e 's/-rc.*$//g')"
+      package_version+="-1"
       ;;
     *)
-      package_version="${VERSION}"
+      package_version="${VERSION}-1"
+      ;;
+  esac
+  case "${distribution}" in
+    almalinux)
+      package_version+=".el${distribution_version}"
       ;;
   esac
-  package_version+="-1"
 else
-  package_version="${VERSION}-1"
+  package_version="${VERSION}"
 fi
 
 if [ "${TYPE}" = "local" ]; then
   sed \
-    -e "s,^URIs: .*$,URIs: file://${local_prefix}/apt/repositories/${distribution},g" \
-    -e "s,^Signed-By: .*$,Signed-By: /usr/share/keyrings/apache-arrow-adbc-apt-source.gpg,g" \
-    /etc/apt/sources.list.d/apache-arrow.sources > \
-    /etc/apt/sources.list.d/apache-arrow-adbc.sources
+    -e "s,^\\[apache-arrow-,\\[apache-adbc-,g" \
+    -e "s,baseurl=https://apache\.jfrog\.io/artifactory/arrow/,baseurl=file://${local_prefix}/yum/repositories/,g" \
+    -e "s,RPM-GPG-KEY-Apache-Arrow,RPM-GPG-KEY-Apache-ADBC,g" \
+    /etc/yum.repos.d/Apache-Arrow.repo > \
+    /etc/yum.repos.d/Apache-ADBC.repo
   keys="${local_prefix}/KEYS"
   if [ -f "${keys}" ]; then
-    gpg \
-      --no-default-keyring \
-      --keyring /usr/share/keyrings/apache-arrow-adbc-apt-source.gpg \
-      --import "${keys}"
+    cp "${keys}" /etc/pki/rpm-gpg/RPM-GPG-KEY-Apache-ADBC
   fi
 else
   case "${TYPE}" in
@@ -114,28 +108,27 @@ else
       suffix=${TYPE%-release}
       sed \
         -i"" \
-        -e "s,^URIs: \\(.*\\)/,URIs: \\1-${suffix}/,g" \
-        /etc/apt/sources.list.d/apache-arrow.sources
+        -e "s,/almalinux/,/almalinux-${suffix}/,g" \
+        -e "s,/centos/,/centos-${suffix}/,g" \
+        -e "s,/amazon-linux/,/amazon-linux-${suffix}/,g" \
+        /etc/yum.repos.d/Apache-Arrow.repo
       ;;
   esac
 fi
 
-apt update
-
 echo "::endgroup::"
 
 
 echo "::group::Test ADBC Driver Manager"
-${APT_INSTALL} libadbc-driver-manager-dev=${package_version}
-required_packages=()
-required_packages+=(cmake)
-required_packages+=(gcc)
-required_packages+=(make)
-required_packages+=(pkg-config)
-${APT_INSTALL} ${required_packages[@]}
+${install_command} --enablerepo=epel adbc-driver-manager-devel-${package_version}
+${install_command} \
+  cmake \
+  gcc \
+  make \
+  pkg-config
 # TODO
 # mkdir -p build
-# cp -a /adbc/c/driver_manager/example build/
+# cp -a "${TOP_SOURCE_DIR}/cpp/examples/minimal_build" build/
 # pushd build/example
 # cmake .
 # make -j$(nproc)
@@ -148,24 +141,21 @@ ${APT_INSTALL} ${required_packages[@]}
 # popd
 echo "::endgroup::"
 
-
 echo "::group::Test ADBC PostgreSQL Driver"
-${APT_INSTALL} libadbc-driver-postgresql-dev=${package_version}
+${install_command} --enablerepo=epel adbc-driver-postgresql-devel-${package_version}
 echo "::endgroup::"
 
-
 echo "::group::Test ADBC SQLite Driver"
-${APT_INSTALL} libadbc-driver-sqlite-dev=${package_version}
+${install_command} --enablerepo=epel adbc-driver-sqlite-devel-${package_version}
 echo "::endgroup::"
 
-
-echo "::group::Test ADBC GLib"
+echo "::group::Test Apache Arrow GLib"
 export G_DEBUG=fatal-warnings
 
-${APT_INSTALL} libadbc-glib-dev=${package_version}
-${APT_INSTALL} libadbc-glib-doc=${package_version}
+${install_command} --enablerepo=epel adbc-glib-devel-${package_version}
+${install_command} --enablerepo=epel adbc-glib-doc-${package_version}
 
-${APT_INSTALL} ruby-dev rubygems-integration
+${install_command} "${ruby_devel_packages[@]}"
 gem install gobject-introspection
 ruby -r gi -e "p GI.load('ADBC')"
 echo "::endgroup::"