diff --git a/bzip2.spec b/bzip2.spec index 28256be..7d02328 100644 --- a/bzip2.spec +++ b/bzip2.spec @@ -7,7 +7,7 @@ Summary: Extremely powerful file compression utility Name: bzip2 Version: 1.0.6 -Release: 12 +Release: 13 License: BSD Group: Archiving/Compression Url: http://www.bzip.org/index.html @@ -53,7 +53,10 @@ bzip2 library (aka libz2). %files -n %{libname} %doc LICENSE -%{_libdir}/libbz2.so.%{major}* +/%{_lib}/libbz2.so.%{major} +/%{_lib}/libbz2.so.%{major}.* +%{_libdir}/libbz2.so.%{major} +%{_libdir}/libbz2.so.%{major}.* #---------------------------------------------------------------------------- @@ -74,6 +77,7 @@ will use the bzip2 library (aka libz2). %if %{with pdf} %doc manual.pdf %endif +/%{_lib}/libbz2.so %{_libdir}/libbz2.so %{_includedir}/*.h @@ -115,5 +119,37 @@ chmod 755 %{buildroot}%{_bindir}/bzless install -m 644 %{SOURCE3} %{buildroot}%{_mandir}/man1/ # cleanup -rm -f %{buildroot}%{_libdir}/*.a +rm -f %{buildroot}%{_lib}/*.a +# use e.g. /lib64 instead of /usr/lib64, because we have some binaries in /sbin and /bin, linked with libbz2.so.* +mkdir -p %{buildroot}/%{_lib} +mv -v %{buildroot}/%{_libdir}/* %{buildroot}/%{_lib}/ + +# Compatibility with Debian, Ubuntu and logics +# https://bugzilla.rosalinux.ru/show_bug.cgi?id=9286 +# https://stackoverflow.com/a/10586169 +# bashisms :( +IFS='.' read -r -a array <<< %{version} +buildroot_lib="%{buildroot}/%{_lib}" +cur_name="libbz2.so" #cur_name - current name +for index in "${!array[@]}" +do + #echo "$index ${array[index]}" + if [ "$index" != '0' ] + then + cur_name="${cur_name}.${array[index]}" + [ ! -f "${buildroot_lib}/${cur_name}" ] && \ + ln -sr "${buildroot_lib}/${cur_name_major}" "${buildroot_lib}/${cur_name}" + else + cur_name_major="${cur_name}.${array[index]}" + [ -f "${buildroot_lib}/${cur_name_major}" ] || exit 1 + cur_name="${cur_name_major}" + fi +done + +# Compatibility symlinks after moving from /usr/lib(64) to /lib(64) in rosa2016.1 on the fly +%if %{mdvver} >= 201800 +echo "Remove compatibility symlinks in Rosa 2018/2019!" +exit 1 +%endif +for i in $(/bin/ls %{buildroot}/%{_lib}); do ln -sr "%{buildroot}/%{_lib}/${i}" "%{buildroot}/%{_libdir}/${i}"; done