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

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


The following commit(s) were added to refs/heads/main by this push:
     new f904928054 GH-41784: [Packaging][RPM] Use SO version for -libs package 
name (#41838)
f904928054 is described below

commit f904928054fad89360d83015db5c23ac1ef86d05
Author: Sutou Kouhei <[email protected]>
AuthorDate: Tue May 28 13:17:35 2024 +0900

    GH-41784: [Packaging][RPM] Use SO version for -libs package name (#41838)
    
    ### Rationale for this change
    
    We should use `arrow${SO_VERSION}-libs` not `arrow${MAJOR_VERSION}-libs` to 
co-exist newer versions and older versions.
    
    ### What changes are included in this PR?
    
    Use SO version not major version.
    
    ### Are these changes tested?
    
    Yes.
    
    ### Are there any user-facing changes?
    
    Yes.
    * GitHub Issue: #41784
    
    Authored-by: Sutou Kouhei <[email protected]>
    Signed-off-by: Sutou Kouhei <[email protected]>
---
 .../linux-packages/apache-arrow/yum/arrow.spec.in  | 148 +++++++++++----------
 1 file changed, 75 insertions(+), 73 deletions(-)

diff --git a/dev/tasks/linux-packages/apache-arrow/yum/arrow.spec.in 
b/dev/tasks/linux-packages/apache-arrow/yum/arrow.spec.in
index c6148e9260..d5e6c3a332 100644
--- a/dev/tasks/linux-packages/apache-arrow/yum/arrow.spec.in
+++ b/dev/tasks/linux-packages/apache-arrow/yum/arrow.spec.in
@@ -27,7 +27,9 @@
 
 %define is_centos_7 (%{_rhel} == 7 && !%{is_amazon_linux})
 
-%define major_version %(echo @VERSION@ | grep -o '^[0-9]*')
+%define major_version %(echo @VERSION@ | cut -d. -f 1)
+%define minor_version %(echo @VERSION@ | cut -d. -f 2)
+%define so_version %(expr %{major_version} '*' 100 + %{minor_version})
 
 %define boost_version %( \
   if [ %{_rhel} -eq 7 ]; then \
@@ -239,7 +241,7 @@ cd cpp
 rm -rf %{buildroot}%{_docdir}/arrow/
 cd -
 
-%package -n %{name}%{major_version}-libs
+%package -n %{name}%{so_version}-libs
 Summary:       Runtime libraries for Apache Arrow C++
 License:       Apache-2.0
 %if %{have_lz4_libs}
@@ -248,10 +250,10 @@ Requires: lz4-libs %{lz4_requirement}
 Requires:      lz4 %{lz4_requirement}
 %endif
 
-%description -n %{name}%{major_version}-libs
+%description -n %{name}%{so_version}-libs
 This package contains the libraries for Apache Arrow C++.
 
-%files -n %{name}%{major_version}-libs
+%files -n %{name}%{so_version}-libs
 %defattr(-,root,root,-)
 %doc README.md
 %license LICENSE.txt NOTICE.txt
@@ -260,7 +262,7 @@ This package contains the libraries for Apache Arrow C++.
 %package tools
 Summary:       Tools for Apache Arrow C++
 License:       Apache-2.0
-Requires:      %{name}%{major_version}-libs = %{version}-%{release}
+Requires:      %{name}%{so_version}-libs = %{version}-%{release}
 
 %description tools
 Tools for Apache Arrow C++.
@@ -274,7 +276,7 @@ Tools for Apache Arrow C++.
 %package devel
 Summary:       Libraries and header files for Apache Arrow C++
 License:       Apache-2.0
-Requires:      %{name}%{major_version}-libs = %{version}-%{release}
+Requires:      %{name}%{so_version}-libs = %{version}-%{release}
 Requires:      brotli-devel
 Requires:      bzip2-devel
 Requires:      curl-devel
@@ -322,15 +324,15 @@ Libraries and header files for Apache Arrow C++.
 %{_libdir}/pkgconfig/arrow-orc.pc
 %{_libdir}/pkgconfig/arrow.pc
 
-%package -n %{name}%{major_version}-acero-libs
+%package -n %{name}%{so_version}-acero-libs
 Summary:       C++ library to execute a query in streaming
 License:       Apache-2.0
-Requires:      %{name}%{major_version}-libs = %{version}-%{release}
+Requires:      %{name}%{so_version}-libs = %{version}-%{release}
 
-%description -n %{name}%{major_version}-acero-libs
+%description -n %{name}%{so_version}-acero-libs
 This package contains the libraries for Apache Arrow Acero.
 
-%files -n %{name}%{major_version}-acero-libs
+%files -n %{name}%{so_version}-acero-libs
 %defattr(-,root,root,-)
 %doc README.md
 %license LICENSE.txt NOTICE.txt
@@ -339,7 +341,7 @@ This package contains the libraries for Apache Arrow Acero.
 %package acero-devel
 Summary:       Libraries and header files for Apache Arrow Acero
 License:       Apache-2.0
-Requires:      %{name}%{major_version}-acero-libs = %{version}-%{release}
+Requires:      %{name}%{so_version}-acero-libs = %{version}-%{release}
 Requires:      %{name}-devel = %{version}-%{release}
 
 %description acero-devel
@@ -355,16 +357,16 @@ Libraries and header files for Apache Arrow Acero
 %{_libdir}/libarrow_acero.so
 %{_libdir}/pkgconfig/arrow-acero.pc
 
-%package -n %{name}%{major_version}-dataset-libs
+%package -n %{name}%{so_version}-dataset-libs
 Summary:       C++ library to read and write semantic datasets stored in 
different locations and formats
 License:       Apache-2.0
-Requires:      %{name}%{major_version}-acero-libs = %{version}-%{release}
-Requires:      parquet%{major_version}-libs = %{version}-%{release}
+Requires:      %{name}%{so_version}-acero-libs = %{version}-%{release}
+Requires:      parquet%{so_version}-libs = %{version}-%{release}
 
-%description -n %{name}%{major_version}-dataset-libs
+%description -n %{name}%{so_version}-dataset-libs
 This package contains the libraries for Apache Arrow dataset.
 
-%files -n %{name}%{major_version}-dataset-libs
+%files -n %{name}%{so_version}-dataset-libs
 %defattr(-,root,root,-)
 %doc README.md
 %license LICENSE.txt NOTICE.txt
@@ -373,7 +375,7 @@ This package contains the libraries for Apache Arrow 
dataset.
 %package dataset-devel
 Summary:       Libraries and header files for Apache Arrow dataset.
 License:       Apache-2.0
-Requires:      %{name}%{major_version}-dataset-libs = %{version}-%{release}
+Requires:      %{name}%{so_version}-dataset-libs = %{version}-%{release}
 Requires:      %{name}-acero-devel = %{version}-%{release}
 Requires:      parquet-devel = %{version}-%{release}
 
@@ -391,15 +393,15 @@ Libraries and header files for Apache Arrow dataset.
 %{_libdir}/pkgconfig/arrow-dataset.pc
 
 %if %{use_flight}
-%package -n %{name}%{major_version}-flight-libs
+%package -n %{name}%{so_version}-flight-libs
 Summary:       C++ library for fast data transport.
 License:       Apache-2.0
-Requires:      %{name}%{major_version}-libs = %{version}-%{release}
+Requires:      %{name}%{so_version}-libs = %{version}-%{release}
 
-%description -n %{name}%{major_version}-flight-libs
+%description -n %{name}%{so_version}-flight-libs
 This package contains the libraries for Apache Arrow Flight.
 
-%files -n %{name}%{major_version}-flight-libs
+%files -n %{name}%{so_version}-flight-libs
 %defattr(-,root,root,-)
 %doc README.md
 %license LICENSE.txt NOTICE.txt
@@ -408,7 +410,7 @@ This package contains the libraries for Apache Arrow Flight.
 %package flight-devel
 Summary:       Libraries and header files for Apache Arrow Flight.
 License:       Apache-2.0
-Requires:      %{name}%{major_version}-flight-libs = %{version}-%{release}
+Requires:      %{name}%{so_version}-flight-libs = %{version}-%{release}
 Requires:      %{name}-devel = %{version}-%{release}
 Requires:      c-ares-devel
 %if %{have_grpc}
@@ -430,15 +432,15 @@ Libraries and header files for Apache Arrow Flight.
 %{_libdir}/libarrow_flight.so
 %{_libdir}/pkgconfig/arrow-flight.pc
 
-%package -n %{name}%{major_version}-flight-sql-libs
+%package -n %{name}%{so_version}-flight-sql-libs
 Summary:       C++ library for interacting with SQL databases.
 License:       Apache-2.0
-Requires:      %{name}%{major_version}-flight-libs = %{version}-%{release}
+Requires:      %{name}%{so_version}-flight-libs = %{version}-%{release}
 
-%description -n %{name}%{major_version}-flight-sql-libs
+%description -n %{name}%{so_version}-flight-sql-libs
 This package contains the libraries for Apache Arrow Flight SQL.
 
-%files -n %{name}%{major_version}-flight-sql-libs
+%files -n %{name}%{so_version}-flight-sql-libs
 %defattr(-,root,root,-)
 %doc README.md
 %license LICENSE.txt NOTICE.txt
@@ -447,7 +449,7 @@ This package contains the libraries for Apache Arrow Flight 
SQL.
 %package flight-sql-devel
 Summary:       Libraries and header files for Apache Arrow Flight SQL.
 License:       Apache-2.0
-Requires:      %{name}%{major_version}-flight-sql-libs = %{version}-%{release}
+Requires:      %{name}%{so_version}-flight-sql-libs = %{version}-%{release}
 Requires:      %{name}-devel = %{version}-%{release}
 
 %description flight-sql-devel
@@ -465,15 +467,15 @@ Libraries and header files for Apache Arrow Flight SQL.
 %endif
 
 %if %{use_gandiva}
-%package -n gandiva%{major_version}-libs
+%package -n gandiva%{so_version}-libs
 Summary:       C++ library for compiling and evaluating expressions on Apache 
Arrow data.
 License:       Apache-2.0
-Requires:      %{name}%{major_version}-libs = %{version}-%{release}
+Requires:      %{name}%{so_version}-libs = %{version}-%{release}
 
-%description -n gandiva%{major_version}-libs
+%description -n gandiva%{so_version}-libs
 This package contains the libraries for Gandiva.
 
-%files -n gandiva%{major_version}-libs
+%files -n gandiva%{so_version}-libs
 %defattr(-,root,root,-)
 %doc README.md
 %license LICENSE.txt NOTICE.txt
@@ -483,7 +485,7 @@ This package contains the libraries for Gandiva.
 Summary:       Libraries and header files for Gandiva.
 License:       Apache-2.0
 Requires:      %{name}-devel = %{version}-%{release}
-Requires:      gandiva%{major_version}-libs = %{version}-%{release}
+Requires:      gandiva%{so_version}-libs = %{version}-%{release}
 Requires:      llvm-devel
 
 %description -n gandiva-devel
@@ -500,15 +502,15 @@ Libraries and header files for Gandiva.
 %{_libdir}/pkgconfig/gandiva.pc
 %endif
 
-%package -n parquet%{major_version}-libs
+%package -n parquet%{so_version}-libs
 Summary:       Runtime libraries for Apache Parquet C++
 License:       Apache-2.0
-Requires:      %{name}%{major_version}-libs = %{version}-%{release}
+Requires:      %{name}%{so_version}-libs = %{version}-%{release}
 
-%description -n parquet%{major_version}-libs
+%description -n parquet%{so_version}-libs
 This package contains the libraries for Apache Parquet C++.
 
-%files -n parquet%{major_version}-libs
+%files -n parquet%{so_version}-libs
 %defattr(-,root,root,-)
 %doc README.md
 %license LICENSE.txt NOTICE.txt
@@ -517,7 +519,7 @@ This package contains the libraries for Apache Parquet C++.
 %package -n parquet-tools
 Summary:       Tools for Apache Parquet C++
 License:       Apache-2.0
-Requires:      parquet%{major_version}-libs = %{version}-%{release}
+Requires:      parquet%{so_version}-libs = %{version}-%{release}
 
 %description -n parquet-tools
 Tools for Apache Parquet C++.
@@ -532,7 +534,7 @@ Tools for Apache Parquet C++.
 Summary:       Libraries and header files for Apache Parquet C++
 License:       Apache-2.0
 Requires:      %{name}-devel = %{version}-%{release}
-Requires:      parquet%{major_version}-libs = %{version}-%{release}
+Requires:      parquet%{so_version}-libs = %{version}-%{release}
 Requires:      zlib-devel
 
 %description -n parquet-devel
@@ -548,15 +550,15 @@ Libraries and header files for Apache Parquet C++.
 %{_libdir}/libparquet.so
 %{_libdir}/pkgconfig/parquet*.pc
 
-%package -n %{name}%{major_version}-glib-libs
+%package -n %{name}%{so_version}-glib-libs
 Summary:       Runtime libraries for Apache Arrow GLib
 License:       Apache-2.0
-Requires:      %{name}%{major_version}-libs = %{version}-%{release}
+Requires:      %{name}%{so_version}-libs = %{version}-%{release}
 
-%description -n %{name}%{major_version}-glib-libs
+%description -n %{name}%{so_version}-glib-libs
 This package contains the libraries for Apache Arrow GLib.
 
-%files -n %{name}%{major_version}-glib-libs
+%files -n %{name}%{so_version}-glib-libs
 %defattr(-,root,root,-)
 %doc README.md
 %license LICENSE.txt NOTICE.txt
@@ -567,7 +569,7 @@ This package contains the libraries for Apache Arrow GLib.
 Summary:       Libraries and header files for Apache Arrow GLib
 License:       Apache-2.0
 Requires:      %{name}-acero-devel = %{version}-%{release}
-Requires:      %{name}%{major_version}-glib-libs = %{version}-%{release}
+Requires:      %{name}%{so_version}-glib-libs = %{version}-%{release}
 Requires:      glib2-devel
 Requires:      gobject-introspection-devel
 
@@ -606,16 +608,16 @@ Documentation for Apache Arrow GLib.
 %{_docdir}/arrow-glib/
 %endif
 
-%package -n %{name}%{major_version}-dataset-glib-libs
+%package -n %{name}%{so_version}-dataset-glib-libs
 Summary:       Runtime libraries for Apache Arrow Dataset GLib
 License:       Apache-2.0
-Requires:      %{name}%{major_version}-dataset-libs = %{version}-%{release}
-Requires:      %{name}%{major_version}-glib-libs = %{version}-%{release}
+Requires:      %{name}%{so_version}-dataset-libs = %{version}-%{release}
+Requires:      %{name}%{so_version}-glib-libs = %{version}-%{release}
 
-%description -n %{name}%{major_version}-dataset-glib-libs
+%description -n %{name}%{so_version}-dataset-glib-libs
 This package contains the libraries for Apache Arrow Dataset GLib.
 
-%files -n %{name}%{major_version}-dataset-glib-libs
+%files -n %{name}%{so_version}-dataset-glib-libs
 %defattr(-,root,root,-)
 %doc README.md
 %license LICENSE.txt NOTICE.txt
@@ -625,7 +627,7 @@ This package contains the libraries for Apache Arrow 
Dataset GLib.
 %package dataset-glib-devel
 Summary:       Libraries and header files for Apache Arrow Dataset GLib
 License:       Apache-2.0
-Requires:      %{name}%{major_version}-dataset-glib-libs = 
%{version}-%{release}
+Requires:      %{name}%{so_version}-dataset-glib-libs = %{version}-%{release}
 Requires:      %{name}-dataset-devel = %{version}-%{release}
 Requires:      %{name}-glib-devel = %{version}-%{release}
 
@@ -661,16 +663,16 @@ Documentation for Apache Arrow dataset GLib.
 %endif
 
 %if %{use_flight}
-%package -n %{name}%{major_version}-flight-glib-libs
+%package -n %{name}%{so_version}-flight-glib-libs
 Summary:       Runtime libraries for Apache Arrow Flight GLib
 License:       Apache-2.0
-Requires:      %{name}%{major_version}-flight-libs = %{version}-%{release}
-Requires:      %{name}%{major_version}-glib-libs = %{version}-%{release}
+Requires:      %{name}%{so_version}-flight-libs = %{version}-%{release}
+Requires:      %{name}%{so_version}-glib-libs = %{version}-%{release}
 
-%description -n %{name}%{major_version}-flight-glib-libs
+%description -n %{name}%{so_version}-flight-glib-libs
 This package contains the libraries for Apache Arrow Flight GLib.
 
-%files -n %{name}%{major_version}-flight-glib-libs
+%files -n %{name}%{so_version}-flight-glib-libs
 %defattr(-,root,root,-)
 %doc README.md
 %license LICENSE.txt NOTICE.txt
@@ -680,7 +682,7 @@ This package contains the libraries for Apache Arrow Flight 
GLib.
 %package flight-glib-devel
 Summary:       Libraries and header files for Apache Arrow Flight GLib
 License:       Apache-2.0
-Requires:      %{name}%{major_version}-flight-glib-libs = %{version}-%{release}
+Requires:      %{name}%{so_version}-flight-glib-libs = %{version}-%{release}
 Requires:      %{name}-flight-devel = %{version}-%{release}
 Requires:      %{name}-glib-devel = %{version}-%{release}
 
@@ -715,16 +717,16 @@ Documentation for Apache Arrow Flight GLib.
 %{_docdir}/arrow-flight-glib/
 %endif
 
-%package -n %{name}%{major_version}-flight-sql-glib-libs
+%package -n %{name}%{so_version}-flight-sql-glib-libs
 Summary:       Runtime libraries for Apache Arrow Flight SQL GLib
 License:       Apache-2.0
-Requires:      %{name}%{major_version}-flight-sql-libs = %{version}-%{release}
-Requires:      %{name}%{major_version}-flight-glib-libs = %{version}-%{release}
+Requires:      %{name}%{so_version}-flight-sql-libs = %{version}-%{release}
+Requires:      %{name}%{so_version}-flight-glib-libs = %{version}-%{release}
 
-%description -n %{name}%{major_version}-flight-sql-glib-libs
+%description -n %{name}%{so_version}-flight-sql-glib-libs
 This package contains the libraries for Apache Arrow Flight SQL GLib.
 
-%files -n %{name}%{major_version}-flight-sql-glib-libs
+%files -n %{name}%{so_version}-flight-sql-glib-libs
 %defattr(-,root,root,-)
 %doc README.md
 %license LICENSE.txt NOTICE.txt
@@ -734,7 +736,7 @@ This package contains the libraries for Apache Arrow Flight 
SQL GLib.
 %package flight-sql-glib-devel
 Summary:       Libraries and header files for Apache Arrow Flight SQL GLib
 License:       Apache-2.0
-Requires:      %{name}%{major_version}-flight-sql-glib-libs = 
%{version}-%{release}
+Requires:      %{name}%{so_version}-flight-sql-glib-libs = 
%{version}-%{release}
 Requires:      %{name}-flight-sql-devel = %{version}-%{release}
 Requires:      %{name}-flight-glib-devel = %{version}-%{release}
 
@@ -771,16 +773,16 @@ Documentation for Apache Arrow Flight SQL GLib.
 %endif
 
 %if %{use_gandiva}
-%package -n gandiva%{major_version}-glib-libs
+%package -n gandiva%{so_version}-glib-libs
 Summary:       Runtime libraries for Gandiva GLib
 License:       Apache-2.0
-Requires:      %{name}%{major_version}-glib-libs = %{version}-%{release}
-Requires:      gandiva%{major_version}-libs = %{version}-%{release}
+Requires:      %{name}%{so_version}-glib-libs = %{version}-%{release}
+Requires:      gandiva%{so_version}-libs = %{version}-%{release}
 
-%description -n gandiva%{major_version}-glib-libs
+%description -n gandiva%{so_version}-glib-libs
 This package contains the libraries for Gandiva GLib.
 
-%files -n gandiva%{major_version}-glib-libs
+%files -n gandiva%{so_version}-glib-libs
 %defattr(-,root,root,-)
 %doc README.md
 %license LICENSE.txt NOTICE.txt
@@ -791,7 +793,7 @@ This package contains the libraries for Gandiva GLib.
 Summary:       Libraries and header files for Gandiva GLib
 License:       Apache-2.0
 Requires:      %{name}-glib-devel = %{version}-%{release}
-Requires:      gandiva%{major_version}-glib-libs = %{version}-%{release}
+Requires:      gandiva%{so_version}-glib-libs = %{version}-%{release}
 Requires:      gandiva-devel = %{version}-%{release}
 
 %description -n gandiva-glib-devel
@@ -826,16 +828,16 @@ Documentation for Gandiva GLib.
   %endif
 %endif
 
-%package -n parquet%{major_version}-glib-libs
+%package -n parquet%{so_version}-glib-libs
 Summary:       Runtime libraries for Apache Parquet GLib
 License:       Apache-2.0
-Requires:      %{name}%{major_version}-glib-libs = %{version}-%{release}
-Requires:      parquet%{major_version}-libs = %{version}-%{release}
+Requires:      %{name}%{so_version}-glib-libs = %{version}-%{release}
+Requires:      parquet%{so_version}-libs = %{version}-%{release}
 
-%description -n parquet%{major_version}-glib-libs
+%description -n parquet%{so_version}-glib-libs
 This package contains the libraries for Apache Parquet GLib.
 
-%files -n parquet%{major_version}-glib-libs
+%files -n parquet%{so_version}-glib-libs
 %defattr(-,root,root,-)
 %doc README.md
 %license LICENSE.txt NOTICE.txt
@@ -846,7 +848,7 @@ This package contains the libraries for Apache Parquet GLib.
 Summary:       Libraries and header files for Apache Parquet GLib
 License:       Apache-2.0
 Requires:      %{name}-glib-devel = %{version}-%{release}
-Requires:      parquet%{major_version}-glib-libs = %{version}-%{release}
+Requires:      parquet%{so_version}-glib-libs = %{version}-%{release}
 Requires:      parquet-devel = %{version}-%{release}
 
 %description -n parquet-glib-devel

Reply via email to