]> git.pld-linux.org Git - packages/poldek.git/blobdiff - poldek.spec
- renamed rpm4 bcond to rpm5, making rpm.org rpm4 default
[packages/poldek.git] / poldek.spec
index 1d2d6429d64aa352be8929f5d9858db91ca17354..9c6e3a4ba5f53ed4ec1bda283d5a0d109d7a23aa 100644 (file)
@@ -1,53 +1,49 @@
-#
+# 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    2020
 
 # 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                db_pkg          db4.7
-%define                ver_db          4.7.25
-%define                ver_db_rel      1
-%define                ver_rpm         4.5-49
+%if %{without rpm5}
+%define                db_pkg          db
+%define                ver_db          5.3
+%define                ver_rpm         1:4.14
+%define                ver_db_devel    %(rpm -q --qf '%|E?{%{E}:}|%{V}-%{R}' --what-provides db-devel)
 %else
+%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
 %endif
 
-%define                rel     10
+%define                rel     5
 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
@@ -55,38 +51,53 @@ 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
-Patch3:                pm-hooks.patch
-Patch4:                poldek-setenv-null.patch
-Patch5:                %{name}-assert-sigint.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
 URL:           http://poldek.pld-linux.org/
-BuildRequires: %{db_pkg}-devel >= %{ver_db}-%{ver_db_rel}
-BuildRequires: autoconf
+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: 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}
+BuildRequires: %{db_pkg}-static >= %{ver_db}
 BuildRequires: bzip2-static
 BuildRequires: glibc-static
 BuildRequires: libxml2-static
@@ -97,20 +108,26 @@ 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 %{without rpm5}
+Requires:      %{db_pkg} >= %{ver_db_devel}
+%else
+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}
 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
@@ -228,7 +245,19 @@ Moduły języka Python dla poldka.
 %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
 
+%{__rm} doc/poldek.info
 %{__rm} m4/libtool.m4 m4/lt*.m4
 
 # cleanup backups after patching
@@ -256,32 +285,42 @@ 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/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
+%ifarch i486 i686 ppc sparc alpha athlon aarch64
        %define         ftp_arch        %{_target_cpu}
 %endif
 %ifarch %{x8664}
@@ -401,7 +440,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}
@@ -434,7 +473,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
@@ -457,8 +497,7 @@ 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
@@ -467,19 +506,18 @@ 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
 fi
-
-%triggerpostun -- %{name} < 0.30.1-8
+# poldek < 0.30.1-8
 if [ $1 -le 1 ]; then
        # revert change on  --downgrade
-       %{__sed} -i -re 's,^pm command = %{_libexecdir}/pm-command.sh,#&,' %{_sysconfdir}/%{name}/%{name}.conf
+       %{__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 %{_libexecdir}/pm-command.sh,' %{_sysconfdir}/%{name}/%{name}.conf
+       %{__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
@@ -490,14 +528,15 @@ fi
 %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}/pm-command.sh
-%attr(755,root,root) %{_libexecdir}/poldekuser-setup.sh
-%attr(755,root,root) %{_libexecdir}/vfcompr
-%attr(755,root,root) %{_libexecdir}/vfjuggle
-%attr(755,root,root) %{_libexecdir}/vfsmb
-%attr(755,root,root) %{_libexecdir}/zlib-in-rpm.sh
+%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*
@@ -515,8 +554,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
This page took 0.210835 seconds and 4 git commands to generate.