From 736b74f0d597b39215724ce96b35f8fe239dab1b Mon Sep 17 00:00:00 2001 From: Robert Scheck Date: Mon, 28 Dec 2020 05:21:50 +0100 Subject: [PATCH] - Don't ship API docs twice (devel and doc subpackages) - Reworked spec file to build libisoburn1 for RHEL >= 8 --- libisoburn.spec | 131 ++++++++++++++++++++++++++++++++---------------- 1 file changed, 89 insertions(+), 42 deletions(-) diff --git a/libisoburn.spec b/libisoburn.spec index d80a21a..f6a3e1c 100644 --- a/libisoburn.spec +++ b/libisoburn.spec @@ -1,21 +1,28 @@ +%global pkgname libisoburn + Summary: Library to enable creation and expansion of ISO-9660 filesystems Name: libisoburn Version: 1.5.2 -Release: 4%{?dist} +Release: 5%{?dist} License: GPLv2+ URL: http://libburnia-project.org/ -Source0: http://files.libburnia-project.org/releases/%{name}-%{version}.tar.gz -Source1: http://files.libburnia-project.org/releases/%{name}-%{version}.tar.gz.sig +Source0: http://files.libburnia-project.org/releases/%{pkgname}-%{version}.tar.gz +Source1: http://files.libburnia-project.org/releases/%{pkgname}-%{version}.tar.gz.sig Source2: gpgkey-44BC9FD0D688EB007C4DD029E9CBDFC0ABC0A854.gpg Source3: xorriso_extract_iso_image.desktop Patch0: libisoburn-1.0.8-multilib.patch BuildRequires: gnupg2 BuildRequires: gcc, gcc-c++, readline-devel, libacl-devel, zlib-devel -%if 0%{?rhel} >= 6 && 0%{?rhel} <= 8 -BuildRequires: libburn1-devel >= %{version}, libisofs1-devel >= %{version} +%if 0%{?rhel} == 7 BuildRequires: autoconf, automake, libtool +BuildRequires: libburn1-devel >= %{version}, libisofs1-devel >= %{version} %else -BuildRequires: libburn-devel >= %{version}, libisofs-devel >= %{version} +%if (0%{?rhel} && "%{name}" != "%{pkgname}") +BuildRequires: autoconf, automake, libtool +%global variant 1 +%endif +BuildRequires: libburn%{?variant}-devel >= %{version} +BuildRequires: libisofs%{?variant}-devel >= %{version} %endif %description @@ -29,15 +36,16 @@ libisoburn is not suitable for audio (CD-DA) or any other CD layout which does not entirely consist of ISO-9660 sessions. %package devel -Summary: Development files for libisoburn +Summary: Development files for %{name} Requires: %{name}%{?_isa} = %{version}-%{release}, pkgconfig %description devel -The libisoburn-devel package contains libraries and header files for -developing applications that use libisoburn. +The %{name}-devel package contains libraries and header files for +developing applications that use %{name}. +%if 0%{!?_without_doc:1} %package doc -Summary: Documentation files for libisoburn +Summary: Documentation files for %{name} BuildArch: noarch BuildRequires: doxygen, graphviz @@ -45,13 +53,14 @@ BuildRequires: doxygen, graphviz Libisoburn is a front-end for libraries libburn and libisofs which enables creation and expansion of ISO-9660 filesystems on all CD/ DVD/BD media supported by libburn. And this package contains the API -documentation for developing applications that use libisoburn. +documentation for developing applications that use %{name}. +%endif -%package -n xorriso +%package -n xorriso%{?variant} Summary: ISO-9660 and Rock Ridge image manipulation tool URL: http://scdbackup.sourceforge.net/xorriso_eng.html Requires: %{name}%{?_isa} = %{version}-%{release} -%if 0%{?rhel} == 7 || 0%{?fedora} +%if 0%{!?_without_kde:1} && (0%{?fedora} || 0%{?rhel} == 7 || (0%{?rhel} && "%{name}" != "%{pkgname}")) Requires: kde-filesystem >= 4 Requires: kf5-filesystem >= 5 %endif @@ -62,7 +71,7 @@ Requires(preun): /sbin/install-info Requires(post): %{_sbindir}/alternatives, coreutils Requires(preun): %{_sbindir}/alternatives -%description -n xorriso +%description -n xorriso%{?variant} Xorriso is a program which copies file objects from POSIX compliant filesystems into Rock Ridge enhanced ISO-9660 filesystems and allows session-wise manipulation of such filesystems. It can load management @@ -77,22 +86,36 @@ supported media: CD-R, CD-RW, DVD-R, DVD-RW, DVD+R, DVD+R DL, DVD+RW, DVD-RAM, BD-R and BD-RE. %prep -gpgv2 --keyring %{SOURCE2} %{SOURCE1} %{SOURCE0} -%setup -q +%{gpgverify} --keyring='%{SOURCE2}' --signature='%{SOURCE1}' --data='%{SOURCE0}' +%setup -q -n %{pkgname}-%{version} %patch0 -p1 -b .multilib -# Use libisofs1 and libburn1 on RHEL >= 6 -%if 0%{?rhel} >= 6 && 0%{?rhel} <= 8 +# Use libisofs1 and libburn1 on EPEL +%if 0%{?rhel} == 7 || (0%{?rhel} && "%{name}" != "%{pkgname}") sed -e 's@\(libisofs\|libburn\)-1.pc@\11-1.pc@g' -i configure.ac sed -e 's@\(libisofs\|libburn\)/@\11/@g' -i configure.ac */*.[hc] */*/*.cpp sed -e 's@\(lisofs\|lburn\)@\11@g' -i Makefile.am touch NEWS; autoreconf --force --install + +# Rename from libisoburn to libisoburn1 for EPEL >= 8 +%if 0%{?rhel} >= 8 +sed -e 's@libisoburn_libisoburn@libisoburn_libisoburn1@g' \ + -e 's@libisoburn/libisoburn.la@libisoburn/libisoburn1.la@g' \ + -e 's@(includedir)/libisoburn@(includedir)/libisoburn1@g' \ + -e 's@libisoburn-1.pc@libisoburn1-1.pc@g' \ + -e 's@ln -s xorriso@ln -s xorriso%{?variant}@g' -i Makefile.am +sed -e 's@libisoburn-1.pc@libisoburn1-1.pc@g' -i configure.ac +sed -e 's@isoburn@isoburn1@g' libisoburn-1.pc.in > libisoburn1-1.pc.in + +libtoolize --force +autoreconf --force --install +%endif %endif %build %configure --disable-static %make_build -doxygen doc/doxygen.conf +%{!?_without_doc:doxygen doc/doxygen.conf} %install %make_install @@ -103,14 +126,33 @@ rm -f $RPM_BUILD_ROOT%{_libdir}/%{name}.la # Clean up for later usage in documentation rm -rf $RPM_BUILD_ROOT%{_defaultdocdir} -%if 0%{?rhel} == 7 || 0%{?fedora} # Install the KDE service menu handler +%if 0%{!?_without_kde:1} && (0%{?fedora} || 0%{?rhel} == 7 || (0%{?rhel} && "%{name}" != "%{pkgname}")) install -D -p -m 644 %{SOURCE3} $RPM_BUILD_ROOT%{_datadir}/kde4/services/ServiceMenus/xorriso_extract_iso_image.desktop install -D -p -m 644 %{SOURCE3} $RPM_BUILD_ROOT%{_datadir}/kservices5/ServiceMenus/xorriso_extract_iso_image.desktop %endif +# RHEL ships a xorriso package already +%if 0%{?rhel} && "%{name}" != "%{pkgname}" +mv -f $RPM_BUILD_ROOT%{_bindir}/osirrox{,%{?variant}} +mv -f $RPM_BUILD_ROOT%{_bindir}/xorrecord{,%{?variant}} +mv -f $RPM_BUILD_ROOT%{_bindir}/xorriso{,%{?variant}} +mv -f $RPM_BUILD_ROOT%{_bindir}/xorrisofs{,%{?variant}} +mv -f $RPM_BUILD_ROOT%{_mandir}/man1/xorrecord{,%{?variant}}.1 +mv -f $RPM_BUILD_ROOT%{_mandir}/man1/xorriso{,%{?variant}}.1 +mv -f $RPM_BUILD_ROOT%{_mandir}/man1/xorrisofs{,%{?variant}}.1 +mv -f $RPM_BUILD_ROOT%{_infodir}/xorrecord{,%{?variant}}.info +mv -f $RPM_BUILD_ROOT%{_infodir}/xorriso{,%{?variant}}.info +mv -f $RPM_BUILD_ROOT%{_infodir}/xorrisofs{,%{?variant}}.info +%if 0%{!?_without_kde:1} +sed -e 's@ xorriso @ xorriso%{?variant} @g' \ + -i $RPM_BUILD_ROOT%{_datadir}/{kde4/services,kservices5}/ServiceMenus/xorriso_extract_iso_image.desktop +touch -c -r %{SOURCE3} $RPM_BUILD_ROOT%{_datadir}/{kde4/services,kservices5}/ServiceMenus/xorriso_extract_iso_image.desktop +%endif +%endif + # Symlink xorriso as mkisofs (like in cdrkit) -ln -sf xorriso $RPM_BUILD_ROOT%{_bindir}/mkisofs +ln -sf xorriso%{?variant} $RPM_BUILD_ROOT%{_bindir}/mkisofs # Some file cleanups rm -f $RPM_BUILD_ROOT%{_infodir}/dir @@ -125,30 +167,30 @@ cd releng %ldconfig_scriptlets -%post -n xorriso -%if 0%{?rhel} && 0%{?rhel} <= 7 +%post -n xorriso%{?variant} +%if 0%{?rhel} == 7 /sbin/install-info %{_infodir}/xorrecord.info.gz %{_infodir}/dir || : /sbin/install-info %{_infodir}/xorriso.info.gz %{_infodir}/dir || : /sbin/install-info %{_infodir}/xorrisofs.info.gz %{_infodir}/dir || : %endif link=`readlink %{_bindir}/mkisofs` -if [ "$link" == "xorriso" ]; then +if [ "$link" == "xorriso%{?variant}" ]; then rm -f %{_bindir}/mkisofs fi -%{_sbindir}/alternatives --install %{_bindir}/mkisofs mkisofs %{_bindir}/xorriso 50 \ - --slave %{_mandir}/man1/mkisofs.1.gz mkisofs-mkisofsman %{_mandir}/man1/xorrisofs.1.gz +%{_sbindir}/alternatives --install %{_bindir}/mkisofs mkisofs %{_bindir}/xorriso%{?variant} 50 \ + --slave %{_mandir}/man1/mkisofs.1.gz mkisofs-mkisofsman %{_mandir}/man1/xorrisofs%{?variant}.1.gz -%preun -n xorriso +%preun -n xorriso%{?variant} if [ $1 = 0 ]; then -%if 0%{?rhel} && 0%{?rhel} <= 7 +%if 0%{?rhel} == 7 /sbin/install-info --delete %{_infodir}/xorrecord.info.gz %{_infodir}/dir || : /sbin/install-info --delete %{_infodir}/xorriso.info.gz %{_infodir}/dir || : /sbin/install-info --delete %{_infodir}/xorrisofs.info.gz %{_infodir}/dir || : %endif - %{_sbindir}/alternatives --remove mkisofs %{_bindir}/xorriso + %{_sbindir}/alternatives --remove mkisofs %{_bindir}/xorriso%{?variant} fi %files @@ -157,32 +199,37 @@ fi %{_libdir}/%{name}*.so.* %files devel -%doc doc/html %{_includedir}/%{name} %{_libdir}/%{name}.so %{_libdir}/pkgconfig/%{name}*.pc +%if 0%{!?_without_doc:1} %files doc %doc doc/html/ +%endif -%files -n xorriso +%files -n xorriso%{?variant} %ghost %{_bindir}/mkisofs -%{_bindir}/osirrox -%{_bindir}/xorrecord -%{_bindir}/xorriso -%{_bindir}/xorrisofs -%{_mandir}/man1/xorrecord.1* -%{_mandir}/man1/xorriso.1* -%{_mandir}/man1/xorrisofs.1* -%{_infodir}/xorrecord.info* -%{_infodir}/xorriso.info* -%{_infodir}/xorrisofs.info* -%if 0%{?rhel} == 7 || 0%{?fedora} +%{_bindir}/osirrox%{?variant} +%{_bindir}/xorrecord%{?variant} +%{_bindir}/xorriso%{?variant} +%{_bindir}/xorrisofs%{?variant} +%{_mandir}/man1/xorrecord%{?variant}.1* +%{_mandir}/man1/xorriso%{?variant}.1* +%{_mandir}/man1/xorrisofs%{?variant}.1* +%{_infodir}/xorrecord%{?variant}.info* +%{_infodir}/xorriso%{?variant}.info* +%{_infodir}/xorrisofs%{?variant}.info* +%if 0%{!?_without_kde:1} && (0%{?fedora} || 0%{?rhel} == 7 || (0%{?rhel} && "%{name}" != "%{pkgname}")) %{_datadir}/kde4/services/ServiceMenus/xorriso_extract_iso_image.desktop %{_datadir}/kservices5/ServiceMenus/xorriso_extract_iso_image.desktop %endif %changelog +* Mon Dec 28 2020 Robert Scheck 1.5.2-5 +- Don't ship API docs twice (devel and doc subpackages) +- Reworked spec file to build libisoburn1 for RHEL >= 8 + * Mon Sep 28 2020 Troy Dawson - 1.5.2-4 - No kde or kf5 filesystem for RHEL 8 or above.