X-Git-Url: http://git.pld-linux.org/?a=blobdiff_plain;f=poldek.spec;h=5fbd409614edd2f5af64d698698c3ff2ffde688d;hb=fd8e5bba0a5bd9fa73a5a683d2c02b1a37e25d67;hp=9ed52c625a87ea3a8e4122a739d133797e7f696a;hpb=18ff73a5f7bd8c4d9e51851564f65a9d44920579;p=packages%2Fpoldek.git diff --git a/poldek.spec b/poldek.spec index 9ed52c6..5fbd409 100644 --- a/poldek.spec +++ b/poldek.spec @@ -1,52 +1,46 @@ -# +# TODO +# - fix config having escaped html entities: +# # package A requires capability foo >= 1.0 while package B provides "foo" + # Conditional build: %bcond_with static # don't use shared libraries %bcond_without imode # don't build interactive mode -%bcond_without python # don't build python bindings +%bcond_with python # don't build python bindings %bcond_with snap # install configs for official Th snapshot -%bcond_with db61 # DB 6.1 instead of 5.2 -%bcond_with rpm4 # use rpm4/db4.7 instead of rpm5 +%bcond_with rpm5 # use rpm5 instead of rpm4 +%bcond_with tests # tests # current snapshot name -%define SNAP 2014 +%define SNAP 2021 # required versions (forced to avoid SEGV with mixed db used by rpm and poldek) -# NOTE: poldek links with "system db" (-ldb) anyway if it exists -%if %{with db61} -%define db_pkg db6.1 -%define ver_db 6.1 -%define ver_db_rel 1 -%else -%define db_pkg db5.2 -%define ver_db 5.2 -%define ver_db_rel 3 -%endif - -%if %{with rpm4} -%define ver_db 4.7.25 -%define ver_db_rel 1 -%define ver_rpm 4.5-49 -%else +%if %{with rpm5} +%define ver_db %(rpm -q --provides rpm-lib | awk 'BEGIN { v="RPM_TOO_OLD" } /^rpm-db-ver = [.0-9]+$/ { v=$3 } END { print v }') +%define db_pkg db%{ver_db} %define ver_rpm 5.4.10 +%else +%define ver_rpm 1:4.14 %endif -%define rel 4 +%define rel 8 Summary: RPM packages management helper tool Summary(hu.UTF-8): RPM csomagkezelést segítő eszköz Summary(pl.UTF-8): Pomocnicze narzędzie do zarządzania pakietami RPM Name: poldek -Version: 0.30.1 +Version: 0.42.2 Release: %{rel}%{?with_snap:.%{SNAP}} License: GPL v2 Group: Applications/System #Source0: http://poldek.pld-linux.org/download/snapshots/%{name}-%{version}-cvs%{snap}.tar.bz2 -Source0: http://carme.pld-linux.org/~megabajt/releases/poldek/%{name}-%{version}.tar.xz -# Source0-md5: e569c8454df0932df53b09cee9998927 +Source0: https://github.com/poldek-pm/poldek/releases/download/v%{version}/%{name}-%{version}.tar.xz +# Source0-md5: 2759fe45bc50efb6084d5338d725411a Source1: %{name}.conf Source2: %{name}-multilib.conf +Source3: %{name}-config.sh Source5: %{name}-aliases.conf Source6: %{name}.desktop Source7: %{name}.png +# Source7-md5: ee487abede50874e9eceb6495d5ee150 Source8: %{name}-debuginfo.conf Source9: %{name}-aidath.conf Source10: %{name}-multilib-aidath.conf @@ -54,35 +48,58 @@ Source11: %{name}-archive.conf Source100: %{name}-snap.conf Source101: %{name}-multilib-snap.conf Source102: %{name}-debuginfo-snap.conf -Patch0: %{name}-size-type.patch -Patch1: %{name}-config.patch -Patch2: %{name}-missing-include.patch +Patch0: %{name}-config.patch +Patch1: pm-hooks.patch +Patch2: %{name}-ext-down-enable.patch +Patch3: %{name}-pc.patch +Patch4: %{name}-info.patch +Patch5: %{name}-multiarch-x32.patch +Patch6: rpm-4.15.patch +Patch7: db-index-format.patch +Patch8: rpm4-uname-deps.patch +Patch9: sqlite-rpmdb.patch +Patch10: rpm4-cpuinfo-deps.patch +Patch11: rpm4-no-dir-deps.patch +Patch12: rpm4-rpmvercmp.patch +Patch13: trurlib-shared.patch +Patch14: rpm4-script-req-workaround.patch +Patch15: skip-buildid-obsoletes.patch +Patch16: verify-signature.patch +Patch17: %{name}-rsa_sig_rpmorg.patch +Patch18: no-bdb-for-rpm-org.patch URL: http://poldek.pld-linux.org/ -BuildRequires: %{db_pkg}-devel >= %{ver_db}-%{ver_db_rel} -BuildRequires: autoconf +%{?with_rpm5:BuildRequires: %{db_pkg}-devel >= %{ver_db}} +BuildRequires: autoconf >= 2.63 BuildRequires: automake >= 1:1.11 BuildRequires: bzip2-devel BuildRequires: check-devel BuildRequires: docbook-dtd412-xml -BuildRequires: gettext-tools +BuildRequires: docbook2X +BuildRequires: gettext-tools >= 0.11.5 +BuildRequires: libgomp-devel BuildRequires: libtool -BuildRequires: libxml2-devel -BuildRequires: neon-devel +BuildRequires: libxml2-devel >= 2 +BuildRequires: lua54-devel +BuildRequires: ncurses-devel BuildRequires: openssl-devel >= 0.9.7d BuildRequires: pcre-devel +BuildRequires: perl-XML-Simple +BuildRequires: perl-base +BuildRequires: perl-modules BuildRequires: pkgconfig BuildRequires: popt-devel %{?with_python:BuildRequires: python-devel} BuildRequires: readline-devel >= 5.0 BuildRequires: rpm-devel >= %{ver_rpm} %{?with_python:BuildRequires: rpm-pythonprov} -BuildRequires: swig-python BuildRequires: tar >= 1:1.22 +BuildRequires: texinfo BuildRequires: xmlto BuildRequires: xz BuildRequires: zlib-devel +BuildRequires: zstd-devel %if %{with static} -BuildRequires: %{db_pkg}-static >= %{ver_db}-%{ver_db_rel} +%{?with_rpm5:BuildRequires: %{db_pkg}-static >= %{ver_db}} BuildRequires: bzip2-static BuildRequires: glibc-static BuildRequires: libxml2-static @@ -93,19 +110,24 @@ BuildRequires: popt-static BuildRequires: readline-static BuildRequires: rpm-static BuildRequires: zlib-static +BuildRequires: zstd-static +%endif +Requires(postun): awk +Requires(postun): sed >= 4.0 +%if %{with rpm5} +Requires: %{db_pkg} >= %{ver_db} +Requires: rpm-db-ver = %{ver_db} %endif -Requires(triggerpostun): awk -Requires(triggerpostun): sed >= 4.0 -Requires: %{db_pkg} >= %{ver_db}-%{ver_db_rel} Requires: %{name}-libs = %{version}-%{release} +Requires: /bin/run-parts Requires: rpm >= %{ver_rpm} -Requires: rpm-db-ver = %{ver_db} Requires: rpm-lib >= %{ver_rpm} -# vf* scripts use sed Requires: sed +Conflicts: etckeeper < 1.18-2 BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n) -%define _libexecdir %{_prefix}/lib/%{name} +# it could be %{_libexecdir}/%{name}, but beware of compatibility (path hardcoded in configurations) +%define pkglibexecdir %{_prefix}/lib/%{name} %description poldek is an RPM package management tool which allows you to easily @@ -220,7 +242,26 @@ Moduły języka Python dla poldka. %patch0 -p1 %patch1 -p1 %patch2 -p1 +%patch3 -p1 +%patch4 -p1 +%patch5 -p1 +%patch6 -p1 +%patch7 -p1 +%patch8 -p1 +%patch9 -p1 +%patch10 -p1 +%patch11 -p1 +%patch12 -p1 +cd trurlib +%patch13 -p1 +cd .. +%patch14 -p1 +%patch15 -p1 +%patch16 -p1 +%patch17 -p1 +%patch18 -p1 +%{__rm} doc/poldek.info %{__rm} m4/libtool.m4 m4/lt*.m4 # cleanup backups after patching @@ -248,55 +289,65 @@ cd ../trurlib %{__automake} cd .. -CPPFLAGS="%{rpmcppflags} -std=gnu99 -fgnu89-inline" %configure \ %{?with_static:--enable-static --disable-shared} \ %{!?with_imode:--disable-imode} \ - --with-pkglibdir=%{_libexecdir} \ + --with-pkglibdir=%{pkglibexecdir} \ --enable-nls \ %{?with_python:--with-python} -%{__make} -j1 -# --enable-trace +%{__make} + +%{__make} -C doc poldek.info + +%if %{with python} +%{__make} -C python +%endif + +%if %{with tests} +%{__make} check +%endif %install rm -rf $RPM_BUILD_ROOT -install -d $RPM_BUILD_ROOT{%{_sysconfdir}/%{name}/repos.d,/var/cache/%{name}} +install -d $RPM_BUILD_ROOT/var/cache/%{name} -%{__make} install -j1 \ +%{__make} install \ DESTDIR=$RPM_BUILD_ROOT +install -p %{SOURCE3} $RPM_BUILD_ROOT%{_bindir}/poldek-config + %if %{with python} -%{__make} -C python -j1 install \ +%{__make} -C python install \ DESTDIR=$RPM_BUILD_ROOT \ - libdir=%{py_sitedir} + py_sitedir=%{py_sitedir} %endif %{?with_static:%{__rm} $RPM_BUILD_ROOT%{_bindir}/rpmvercmp} -%ifarch i486 i686 ppc sparc alpha athlon - %define _ftp_arch %{_target_cpu} +%ifarch i486 i686 ppc sparc alpha athlon aarch64 %{arm} + %define ftp_arch %{_target_cpu} %endif %ifarch %{x8664} - %define _ftp_arch x86_64 - %define _ftp_alt_arch i686 - %define _ftp_alt2_arch x32 + %define ftp_arch x86_64 + %define ftp_alt_arch i686 + %define ftp_alt2_arch x32 %endif %ifarch x32 - %define _ftp_arch x32 - %define _ftp_alt_arch x86_64 - %define _ftp_alt2_arch i686 + %define ftp_arch x32 + %define ftp_alt_arch x86_64 + %define ftp_alt2_arch i686 %endif %ifarch i586 - %define _ftp_arch i486 + %define ftp_arch i486 %endif %ifarch pentium2 pentium3 pentium4 - %define _ftp_arch i686 + %define ftp_arch i686 %endif %ifarch sparcv9 sparc64 - %define _ftp_arch sparc - %define _ftp_arch %{_target_cpu} + %define ftp_arch sparc + %define ftp_arch %{_target_cpu} %ifarch sparc64 - %define _ftp_alt_arch sparcv9 + %define ftp_alt_arch sparcv9 %endif %endif @@ -318,34 +369,34 @@ install -d $RPM_BUILD_ROOT{%{_sysconfdir}/%{name}/repos.d,/var/cache/%{name}} %define pld_multilib_conf %{SOURCE10} %endif -%{__sed} -e 's|%%ARCH%%|%{_ftp_arch}|g' < %{pld_conf} > $RPM_BUILD_ROOT%{_sysconfdir}/%{name}/repos.d/pld.conf +%{__sed} -e 's|%%ARCH%%|%{ftp_arch}|g' < %{pld_conf} > $RPM_BUILD_ROOT%{_sysconfdir}/%{name}/repos.d/pld.conf %if 0%{?pld_multilib_conf:1} - %{__sed} 's|%%ARCH%%|%{_ftp_alt_arch}|g' < %{pld_multilib_conf} > $RPM_BUILD_ROOT%{_sysconfdir}/%{name}/repos.d/pld-%{_ftp_alt_arch}.conf + %{__sed} 's|%%ARCH%%|%{ftp_alt_arch}|g' < %{pld_multilib_conf} > $RPM_BUILD_ROOT%{_sysconfdir}/%{name}/repos.d/pld-%{ftp_alt_arch}.conf %endif %if 0%{?pld_multilib2_conf:1} - %{__sed} 's|%%ARCH%%|%{_ftp_alt2_arch}|g' < %{pld_multilib_conf} > $RPM_BUILD_ROOT%{_sysconfdir}/%{name}/repos.d/pld-%{_ftp_alt2_arch}.conf + %{__sed} 's|%%ARCH%%|%{ftp_alt2_arch}|g' < %{pld_multilib_conf} > $RPM_BUILD_ROOT%{_sysconfdir}/%{name}/repos.d/pld-%{ftp_alt2_arch}.conf %endif %if 0%{?pld_debuginfo_conf:1} -%{__sed} -e 's|%%ARCH%%|%{_ftp_arch}|g' < %{pld_debuginfo_conf} > $RPM_BUILD_ROOT%{_sysconfdir}/%{name}/repos.d/pld-debuginfo.conf +%{__sed} -e 's|%%ARCH%%|%{ftp_arch}|g' < %{pld_debuginfo_conf} > $RPM_BUILD_ROOT%{_sysconfdir}/%{name}/repos.d/pld-debuginfo.conf %endif %if 0%{?pld_archive_conf:1} -%{__sed} -e 's|%%ARCH%%|%{_ftp_arch}|g' < %{pld_archive_conf} > $RPM_BUILD_ROOT%{_sysconfdir}/%{name}/repos.d/pld-archive.conf +%{__sed} -e 's|%%ARCH%%|%{ftp_arch}|g' < %{pld_archive_conf} > $RPM_BUILD_ROOT%{_sysconfdir}/%{name}/repos.d/pld-archive.conf %endif # Always install snapshot configs -%{__sed} -e 's|%%ARCH%%|%{_ftp_arch}|g' \ +%{__sed} -e 's|%%ARCH%%|%{ftp_arch}|g' \ -e 's|%%SNAP%%|%{SNAP}|g' < %{SOURCE100} > $RPM_BUILD_ROOT%{_sysconfdir}/%{name}/repos.d/pld-%{SNAP}.conf -%{__sed} -e 's|%%ARCH%%|%{_ftp_arch}|g' \ +%{__sed} -e 's|%%ARCH%%|%{ftp_arch}|g' \ -e 's|%%SNAP%%|%{SNAP}|g' < %{SOURCE102} > $RPM_BUILD_ROOT%{_sysconfdir}/%{name}/repos.d/pld-%{SNAP}-debuginfo.conf %ifarch %{x8664} x32 - %{__sed} -e 's|%%ARCH%%|%{_ftp_alt_arch}|g' \ - -e 's|%%SNAP%%|%{SNAP}|g' < %{SOURCE101} > $RPM_BUILD_ROOT%{_sysconfdir}/%{name}/repos.d/pld-%{SNAP}-%{_ftp_alt_arch}.conf - %{__sed} -e 's|%%ARCH%%|%{_ftp_alt2_arch}|g' \ - -e 's|%%SNAP%%|%{SNAP}|g' < %{SOURCE101} > $RPM_BUILD_ROOT%{_sysconfdir}/%{name}/repos.d/pld-%{SNAP}-%{_ftp_alt2_arch}.conf + %{__sed} -e 's|%%ARCH%%|%{ftp_alt_arch}|g' \ + -e 's|%%SNAP%%|%{SNAP}|g' < %{SOURCE101} > $RPM_BUILD_ROOT%{_sysconfdir}/%{name}/repos.d/pld-%{SNAP}-%{ftp_alt_arch}.conf + %{__sed} -e 's|%%ARCH%%|%{ftp_alt2_arch}|g' \ + -e 's|%%SNAP%%|%{SNAP}|g' < %{SOURCE101} > $RPM_BUILD_ROOT%{_sysconfdir}/%{name}/repos.d/pld-%{SNAP}-%{ftp_alt2_arch}.conf %endif %if %{with snap} @@ -356,6 +407,25 @@ install -d $RPM_BUILD_ROOT{%{_sysconfdir}/%{name}/repos.d,/var/cache/%{name}} %{__sed} -i '/@@SNAP@@.*/d' $RPM_BUILD_ROOT%{_sysconfdir}/%{name}/repos.d/pld.conf %endif +# create "all" meta repo +%if 0%{?ftp_alt_arch:1}%{?ftp_alt2_arch:1} +cat <<'EOF' > $RPM_BUILD_ROOT%{_sysconfdir}/%{name}/repos.d/pld-all.conf +# group source for referring th+th-multiarch sources together, i.e poldek -n th-all +[source] +type = group +name = th-all +sources = th %{?ftp_alt_arch:th-%{ftp_alt_arch}} %{?ftp_alt2_arch:th-%{ftp_alt2_arch}} +EOF +%endif + +# th-2014 snap does not exist for x32 yet +%if "%{ftp_arch}" == "x32" +rm $RPM_BUILD_ROOT%{_sysconfdir}/%{name}/repos.d/pld-%{SNAP}.conf +%endif +%if "%{ftp_alt2_arch}" == "x32" +rm $RPM_BUILD_ROOT%{_sysconfdir}/%{name}/repos.d/pld-%{SNAP}-x32.conf +%endif + cp -p %{SOURCE5} $RPM_BUILD_ROOT%{_sysconfdir}/%{name}/cli.conf %if %{with imode} @@ -374,7 +444,7 @@ cp -a conf configs %if %{with python} %py_postclean -%{__rm} $RPM_BUILD_ROOT%{py_sitedir}/_poldekmod.la +%{__rm} $RPM_BUILD_ROOT%{_libdir}/_poldekmod.{la,so} %endif %find_lang %{name} @@ -407,7 +477,8 @@ fi %post libs -p /sbin/ldconfig %postun libs -p /sbin/ldconfig -%triggerpostun -- poldek < 0.30-0.20080225.00.1 +%triggerpostun -- poldek < 0.30.1-8 +# poldek < 0.30-0.20080225.00.1 if ! grep -q '^%%includedir repos.d' %{_sysconfdir}/%{name}/poldek.conf; then %{__sed} -i -e '/^%%include source.conf/{ a @@ -430,29 +501,46 @@ if [ -f %{_sysconfdir}/%{name}/pld-multilib-source.conf.rpmsave ]; then %{__mv} -v %{_sysconfdir}/%{name}/pld-multilib-source.conf.rpmsave %{_sysconfdir}/%{name}/repos.d/pld-multilib.conf fi %endif - -%triggerpostun -- poldek < 0.30.1-3 +# poldek < 0.30.1-3 if [ -f %{_sysconfdir}/%{name}/repos.d/pld-multilib.conf.rpmsave ]; then - %{__mv} -f %{_sysconfdir}/%{name}/repos.d/pld-%{_ftp_alt_arch}.conf{,.rpmnew} - %{__mv} -v %{_sysconfdir}/%{name}/repos.d/pld-multilib.conf.rpmsave %{_sysconfdir}/%{name}/repos.d/pld-%{_ftp_alt_arch}.conf + %{__mv} -f %{_sysconfdir}/%{name}/repos.d/pld-%{ftp_alt_arch}.conf{,.rpmnew} + %{__mv} -v %{_sysconfdir}/%{name}/repos.d/pld-multilib.conf.rpmsave %{_sysconfdir}/%{name}/repos.d/pld-%{ftp_alt_arch}.conf fi if [ -f %{_sysconfdir}/%{name}/repos.d/pld-%{SNAP}-multilib.conf.rpmsave ]; then - %{__mv} -f %{_sysconfdir}/%{name}/repos.d/pld-%{SNAP}-%{_ftp_alt_arch}.conf{,.rpmnew} - %{__mv} -v %{_sysconfdir}/%{name}/repos.d/pld-%{SNAP}-multilib.conf.rpmsave %{_sysconfdir}/%{name}/repos.d/pld-%{SNAP}-%{_ftp_alt_arch}.conf + %{__mv} -f %{_sysconfdir}/%{name}/repos.d/pld-%{SNAP}-%{ftp_alt_arch}.conf{,.rpmnew} + %{__mv} -v %{_sysconfdir}/%{name}/repos.d/pld-%{SNAP}-multilib.conf.rpmsave %{_sysconfdir}/%{name}/repos.d/pld-%{SNAP}-%{ftp_alt_arch}.conf +fi +# poldek < 0.30.1-8 +if [ $1 -le 1 ]; then + # revert change on --downgrade + %{__sed} -i -re 's,^pm command = %{pkglibexecdir}/pm-command.sh,#&,' %{_sysconfdir}/%{name}/%{name}.conf +else + # setup pm command + %{__sed} -i -re 's,#?(pm command =).*,\1 %{pkglibexecdir}/pm-command.sh,' %{_sysconfdir}/%{name}/%{name}.conf fi %files -f %{name}.lang %defattr(644,root,root,755) -%doc ChangeLog README* NEWS TODO configs +%doc ChangeLog README* NEWS configs %dir %{_sysconfdir}/%{name} +%dir %{_sysconfdir}/%{name}/pre-install.d +%{_sysconfdir}/%{name}/pre-install.d/README +%dir %{_sysconfdir}/%{name}/post-install.d +%{_sysconfdir}/%{name}/post-install.d/README %dir %{_sysconfdir}/%{name}/repos.d %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/%{name}/*.conf %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/%{name}/repos.d/*.conf %attr(755,root,root) %{_bindir}/ipoldek %attr(755,root,root) %{_bindir}/poldek +%attr(755,root,root) %{_bindir}/poldek-config %attr(755,root,root) %{_bindir}/rpmvercmp -%dir %{_libexecdir} -%attr(755,root,root) %{_libexecdir}/* +%dir %{pkglibexecdir} +%attr(755,root,root) %{pkglibexecdir}/pm-command.sh +%attr(755,root,root) %{pkglibexecdir}/poldekuser-setup.sh +%attr(755,root,root) %{pkglibexecdir}/vfcompr +%attr(755,root,root) %{pkglibexecdir}/vfjuggle +%attr(755,root,root) %{pkglibexecdir}/vfsmb +%attr(755,root,root) %{pkglibexecdir}/zlib-in-rpm.sh %{_mandir}/man1/%{name}*.1* %lang(pl) %{_mandir}/pl/man1/%{name}* %{_infodir}/poldek.info* @@ -470,8 +558,8 @@ fi %attr(755,root,root) %{_libdir}/libtndb.so.*.*.* %attr(755,root,root) %{_libdir}/libtrurl.so.*.*.* %attr(755,root,root) %{_libdir}/libvfile.so.*.*.* -%attr(755,root,root) %ghost %{_libdir}/libpoclidek.so.0 -%attr(755,root,root) %ghost %{_libdir}/libpoldek.so.2 +%attr(755,root,root) %ghost %{_libdir}/libpoclidek.so.1 +%attr(755,root,root) %ghost %{_libdir}/libpoldek.so.3 %attr(755,root,root) %ghost %{_libdir}/libtndb.so.0 %attr(755,root,root) %ghost %{_libdir}/libtrurl.so.0 %attr(755,root,root) %ghost %{_libdir}/libvfile.so.0