%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 snap # install configs for official Th snapshot
+
+# current snapshot name
+%define SNAP 2012
+
# required versions (forced to avoid SEGV with mixed db used by rpm and poldek)
-%if "%{pld_release}" == "ti"
-%define ver_db 4.5.20
-%define ver_db_rel 8
-%else
-%define ver_db 4.7.25
-%define ver_db_rel 1
-%endif
-%define ver_rpm 4.5-5
-#
-%define snap 20080820.23
-%define rel 33
+%define db_pkg db5.2
+%define ver_db 5.2
+%define ver_db_rel 3
+%define ver_rpm 5.4.10
+
+%define snap rc7
+%define rel 3%{?with_snap:.%{SNAP}}
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
-Release: 0.%{snap}.%{rel}
+Version: 0.30.0
+Release: 1.%{snap}.%{rel}
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/snaps/poldek/%{name}-%{version}-cvs%{snap}.tar.bz2
-# Source0-md5: 2738eb3996f1cdf1e5d74b913d6e7414
+Source0: http://carme.pld-linux.org/~megabajt/snaps/poldek/%{name}-%{version}%{snap}.tar.xz
+# Source0-md5: 56ba9e7b709a99965f42e24e65eb2d7f
Source1: %{name}.conf
Source2: %{name}-multilib.conf
-Source3: %{name}-ti.conf
-Source4: %{name}-multilib-ti.conf
Source5: %{name}-aliases.conf
Source6: %{name}.desktop
Source7: %{name}.png
Source8: %{name}-debuginfo.conf
Source9: %{name}-aidath.conf
Source10: %{name}-multilib-aidath.conf
+Source11: %{name}-archive.conf
+Source100: %{name}-snap.conf
+Source101: %{name}-multilib-snap.conf
+Source102: %{name}-debuginfo-snap.conf
Patch0: %{name}-vserver-packages.patch
Patch1: %{name}-config.patch
-Patch2: %{name}-abort-on-upgrade.patch
-Patch3: %{name}-inline.patch
-Patch4: %{name}-ls-llu.patch
-Patch5: %{name}-op-ldalldesc.patch
-Patch6: %{name}-nocolor-upgrade.patch
-Patch7: %{name}-upgrade-dist.patch
-Patch8: %{name}-keep-reinstalled-provides.patch
-Patch9: %{name}-dont-ask-for-suggests-on-errors.patch
-Patch10: %{name}-crash-on-invalid-locale.patch
-Patch11: %{name}-noutf8.patch
-Patch12: %{name}-dont-suggests-required-packages.patch
-Patch13: %{name}-tty-for-erasures.patch
-Patch14: %{name}-both_langs.patch
-Patch15: %{name}-317130.patch
-Patch16: %{name}-321546.patch
-Patch17: %{name}-size-type.patch
-Patch18: %{name}-no-inlines.patch
-Patch19: %{name}-export-missing-symbol.patch
-Patch20: %{name}-skip-suggests-on-upgrade.patch
-Patch21: %{name}-po.patch
-Patch22: %{name}-refcnt.patch
-Patch23: %{name}-assertion-failed.patch
-Patch24: %{name}-unescape-urlencoded-strings.patch
-Patch25: %{name}-ls-source-rpm.patch
-Patch26: %{name}-add-arch-match.patch
-Patch27: %{name}-multilib-upgrade.patch
-Patch28: %{name}-score-reqs-marked-to-install.patch
-Patch29: %{name}-dont-be-greedy.patch
+Patch2: %{name}-size-type.patch
+Patch3: %{name}-Os-fail-workaround.patch
+Patch4: %{name}-git.patch
+Patch5: %{name}-inherited-group.patch
URL: http://poldek.pld-linux.org/
BuildRequires: autoconf
BuildRequires: automake
BuildRequires: bzip2-devel
-BuildRequires: check
-BuildRequires: db-devel >= %{ver_db}-%{ver_db_rel}
-BuildRequires: gettext-autopoint
+BuildRequires: check-devel
+BuildRequires: %{db_pkg}-devel >= %{ver_db}-%{ver_db_rel}
+BuildRequires: docbook-dtd412-xml
+BuildRequires: gettext-devel
BuildRequires: libtool
BuildRequires: libxml2-devel
+BuildRequires: neon-devel
BuildRequires: openssl-devel >= 0.9.7d
BuildRequires: pcre-devel
-BuildRequires: perl-tools-pod
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: xmlto
BuildRequires: zlib-devel
%if %{with static}
BuildRequires: bzip2-static
-BuildRequires: db-static >= %{ver_db}-%{ver_db_rel}
+BuildRequires: %{db_pkg}-static >= %{ver_db}-%{ver_db_rel}
BuildRequires: glibc-static
BuildRequires: libselinux-static
BuildRequires: libxml2-static
Requires(triggerpostun): awk
Requires(triggerpostun): sed >= 4.0
Requires: %{name}-libs = %{version}-%{release}
-Requires: db >= %{ver_db}-%{ver_db_rel}
+Requires: %{db_pkg} >= %{ver_db}-%{ver_db_rel}
Requires: rpm >= %{ver_rpm}
Requires: rpm-db-ver = %{ver_db}
-Requires: rpm-lib = %(rpm -q --qf '%{V}' rpm-lib)
+#Requires: rpm-lib = %(rpm -q --qf '%{V}' rpm-lib)
+Requires: rpm-lib >= 5.4.10
# vf* scripts use sed
Requires: sed
BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
%{!?with_imode:This version hasn't got interactive mode.}
#'vim
+%description -l hu.UTF-8
+poldek egy RPM csomagkezelő eszköz, amely megkönnyíti a
+csomagellenőrzést, telepítést (beleértve a rendszertelepítést a
+nulláról), frissítést és eltávolítást.
+
+A program használható parancssorból (mint a Debian apt-get programja)
+vagy interaktív módban. Az interaktív mód egy readline környezetet
+jelent, parancskiegészítéssel és előzményekkel, hasonlóan a Perl CPAN
+shell módjához.
+
+%{?with_static:Ez a verzió statikusan linkelt.}
+
+%{!?with_imode:Ennek a verziónak nincs interaktív módja.}
+
%description -l pl.UTF-8
poldek jest narzędziem linii poleceń służącym do weryfikacji,
instalacji (włączając instalację systemu od zera), aktualizacji i
%package libs
Summary: poldek libraries
+Summary(hu.UTF-8): A poldek könyvtárai
Summary(pl.UTF-8): Biblioteki poldka
Group: Libraries
%description libs
poldek libraries.
+%description libs -l hu.UTF-8
+A poldek könyvtárai.
+
%description libs -l pl.UTF-8
Biblioteki poldka.
%package devel
Summary: Header files for poldek libraries
+Summary(hu.UTF-8): A poldek könyvtár fejlesztői fájljai
Summary(pl.UTF-8): Pliki nagłówkowe bibliotek poldka
Group: Development/Libraries
Requires: %{name}-libs = %{version}-%{release}
%description devel
Header files for poldek libraries.
+%description devel -l hu.UTF-8
+A poldek könyvtár fejlesztői fájljai.
+
%description devel -l pl.UTF-8
Pliki nagłówkowe bibliotek poldka.
%package static
Summary: poldek static libraries
+Summary(hu.UTF-8): poldek statikus könyvtárak
Summary(pl.UTF-8): Biblioteki statyczne poldka
Group: Development/Libraries
Requires: %{name}-devel = %{version}-%{release}
%description static
poldek static libraries.
+%description static -l hu.UTF-8
+poldek statikus könyvtárak.
+
%description static -l pl.UTF-8
Biblioteki statyczne poldka.
%package -n python-poldek
Summary: Python modules for poldek
+Summary(hu.UTF-8): Python modulok poldek-hez
Summary(pl.UTF-8): Moduły języka Python dla poldka
Group: Libraries/Python
Requires: %{name}-libs = %{version}-%{release}
%description -n python-poldek
Python modules for poldek.
+%description -n python-poldek -l hu.UTF-8
+Python modulok poldek-hez.
+
%description -n python-poldek -l pl.UTF-8
Moduły języka Python dla poldka.
%prep
-%setup -q -n %{name}-%{version}%{?snap:-cvs%{snap}}
+%setup -q
%patch0 -p1
%patch1 -p1
%patch2 -p1
%patch3 -p1
%patch4 -p1
%patch5 -p1
-%patch6 -p0
-%patch7 -p0
-%patch8 -p0
-%patch9 -p0
-%patch10 -p1
-%patch11 -p1
-%patch12 -p1
-%patch13 -p1
-%patch14 -p1
-%patch15 -p1
-%patch16 -p1
-%patch17 -p1
-%patch18 -p1
-%patch19 -p0
-%patch20 -p1
-%patch21 -p1
-%patch22 -p0
-%patch23 -p1
-%patch24 -p1
-# LP#392984
-%patch25 -p1
-# LP#408036
-%patch26 -p1
-# LP#408034
-%patch27 -p1
-# score reqs already marked to install
-%patch28 -p1
-# dont be greedy if upgraded pkg has needed capabilities
-%patch29 -p1
+
+%{__rm} m4/libtool.m4 m4/lt*.m4
# cleanup backups after patching
find . '(' -name '*~' -o -name '*.orig' ')' -print0 | xargs -0 -r -l512 rm -f
+chmod u+x ./configure ./doc/conf-xml2.sh
%build
%{__libtoolize}
%{__aclocal} -I m4
+%{__autoheader}
+%{__autoconf}
+%{__automake}
+cd tndb
+%{__libtoolize}
+%{__aclocal}
+%{__autoheader}
+%{__autoconf}
+%{__automake}
+cd ../trurlib
+%{__libtoolize}
+%{__aclocal}
+%{__autoheader}
%{__autoconf}
%{__automake}
-cp -f config.sub trurlib
+cd ..
-CPPFLAGS="-std=gnu99"
+CPPFLAGS="%{rpmcppflags} -std=gnu99"
%configure \
%{?with_static:--enable-static --disable-shared} \
%{!?with_imode:--disable-imode} \
--enable-nls \
%{?with_python:--with-python}
-%{__make}
+%{__make} -j1
# --enable-trace
%install
rm -rf $RPM_BUILD_ROOT
-install -d $RPM_BUILD_ROOT%{_sysconfdir}/%{name}/repos.d
+install -d $RPM_BUILD_ROOT{%{_sysconfdir}/%{name}/repos.d,/var/cache/%{name}}
-%{__make} install \
+%{__make} install -j1 \
DESTDIR=$RPM_BUILD_ROOT
%if %{with python}
-%{__make} -C python install \
+%{__make} -C python -j1 install \
DESTDIR=$RPM_BUILD_ROOT \
libdir=%{py_sitedir}
%endif
-%{?with_static:rm -f $RPM_BUILD_ROOT%{_bindir}/rpmvercmp}
+%{?with_static:%{__rm} $RPM_BUILD_ROOT%{_bindir}/rpmvercmp}
%ifarch i486 i686 ppc sparc alpha athlon
-%define _ftp_arch %{_target_cpu}
+ %define _ftp_arch %{_target_cpu}
%endif
%ifarch %{x8664}
-%define _ftp_arch x86_64
-%define _ftp_alt_arch i686
+ %define _ftp_arch x86_64
+ %define _ftp_alt_arch i686
%endif
%ifarch i586
-%if "%{pld_release}" == "ti"
-%define _ftp_arch i586
-%else
-%define _ftp_arch i486
-%endif
+ %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
-%if "%{pld_release}" == "th"
-%define _ftp_arch %{_target_cpu}
-%ifarch sparc64
-%define _ftp_alt_arch sparcv9
+ %define _ftp_arch sparc
+ %define _ftp_arch %{_target_cpu}
+ %ifarch sparc64
+ %define _ftp_alt_arch sparcv9
+ %endif
%endif
-%endif
-%endif
-
-%{?with_static:rm -f $RPM_BUILD_ROOT%{_bindir}/rpmvercmp}
-%if "%{pld_release}" == "ti"
-sed -e '
- s|%%ARCH%%|%{_ftp_arch}|g
-' < %{SOURCE3} > $RPM_BUILD_ROOT%{_sysconfdir}/%{name}/repos.d/pld.conf
+%define pld_conf %{SOURCE1}
+%define pld_debuginfo_conf %{SOURCE8}
+%define pld_archive_conf %{SOURCE11}
%ifarch %{x8664}
-sed '
- s|%%ARCH%%|%{_ftp_alt_arch}|g
-' < %{SOURCE4} > $RPM_BUILD_ROOT%{_sysconfdir}/%{name}/repos.d/pld-multilib.conf
+ %define pld_multilib_conf %{SOURCE2}
%endif
-%else
-# pld_release = th
-%ifarch sparcv9 sparc64
-sed -e '
- s|%%ARCH%%|%{_ftp_arch}|g
-' < %{SOURCE9} > $RPM_BUILD_ROOT%{_sysconfdir}/%{name}/repos.d/pld.conf
+# aidath
+%ifarch sparcv9 sparc64
+ %define pld_conf %{SOURCE9}
+ %undefine pld_archive_conf
+%endif
%ifarch sparc64
-sed '
- s|%%ARCH%%|%{_ftp_alt_arch}|g
-' < %{SOURCE10} > $RPM_BUILD_ROOT%{_sysconfdir}/%{name}/repos.d/pld-multilib.conf
+ %define pld_multilib_conf %{SOURCE10}
%endif
-%else
-sed -e '
- s|%%ARCH%%|%{_ftp_arch}|g
-' < %{SOURCE1} > $RPM_BUILD_ROOT%{_sysconfdir}/%{name}/repos.d/pld.conf
-sed -e '
- s|%%ARCH%%|%{_ftp_arch}|g
-' < %{SOURCE8} > $RPM_BUILD_ROOT%{_sysconfdir}/%{name}/repos.d/pld-debuginfo.conf
+%{__sed} -e 's|%%ARCH%%|%{_ftp_arch}|g' < %{pld_conf} > $RPM_BUILD_ROOT%{_sysconfdir}/%{name}/repos.d/pld.conf
-%ifarch %{x8664}
-sed '
- s|%%ARCH%%|%{_ftp_alt_arch}|g
-' < %{SOURCE2} > $RPM_BUILD_ROOT%{_sysconfdir}/%{name}/repos.d/pld-multilib.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-multilib.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
%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
%endif
-install %{SOURCE5} $RPM_BUILD_ROOT%{_sysconfdir}/%{name}/cli.conf
+# Always install snapshot configs
+%{__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' \
+ -e 's|%%SNAP%%|%{SNAP}|g' < %{SOURCE102} > $RPM_BUILD_ROOT%{_sysconfdir}/%{name}/repos.d/pld-%{SNAP}-debuginfo.conf
+%ifarch %{x8664}
+ %{__sed} -e 's|%%ARCH%%|%{_ftp_alt_arch}|g' \
+ -e 's|%%SNAP%%|%{SNAP}|g' < %{SOURCE101} > $RPM_BUILD_ROOT%{_sysconfdir}/%{name}/repos.d/pld-%{SNAP}-multilib.conf
+%endif
+
+%if %{with snap}
+%{__sed} -i -e 's|@@SNAP@@||g' $RPM_BUILD_ROOT%{_sysconfdir}/%{name}/repos.d/pld.conf
+%{__sed} -i '/@@SNAP@@.*/d' $RPM_BUILD_ROOT%{_sysconfdir}/%{name}/repos.d/pld-%{SNAP}.conf
+%else
+%{__sed} -i -e 's|@@SNAP@@||g' $RPM_BUILD_ROOT%{_sysconfdir}/%{name}/repos.d/pld-%{SNAP}.conf
+%{__sed} -i '/@@SNAP@@.*/d' $RPM_BUILD_ROOT%{_sysconfdir}/%{name}/repos.d/pld.conf
+%endif
+
+cp -p %{SOURCE5} $RPM_BUILD_ROOT%{_sysconfdir}/%{name}/cli.conf
%if %{with imode}
# add desktop file and icon
install -d $RPM_BUILD_ROOT{%{_desktopdir},%{_pixmapsdir}}
-install %{SOURCE6} $RPM_BUILD_ROOT%{_desktopdir}/%{name}.desktop
-install %{SOURCE7} $RPM_BUILD_ROOT%{_pixmapsdir}/%{name}.png
+cp -p %{SOURCE6} $RPM_BUILD_ROOT%{_desktopdir}/%{name}.desktop
+cp -p %{SOURCE7} $RPM_BUILD_ROOT%{_pixmapsdir}/%{name}.png
%endif
# sources we don't package
-rm -f $RPM_BUILD_ROOT%{_sysconfdir}/%{name}/{rh,pld,fedora,centos}-source.conf
+%{__rm} $RPM_BUILD_ROOT%{_sysconfdir}/%{name}/{rh,fedora,centos}-source.conf
# include them in %doc
-rm -rf configs
+%{__rm} -rf configs
cp -a conf configs
-rm -f configs/Makefile*
+%{__rm} -f configs/Makefile*
%if %{with python}
%py_postclean
-rm -f $RPM_BUILD_ROOT%{py_sitedir}/_poldekmod.la
+%{__rm} $RPM_BUILD_ROOT%{py_sitedir}/_poldekmod.la
%endif
%find_lang %{name}
# copy hold=
hold=$(grep ^hold /etc/poldek.conf.rpmsave)
if [ "$hold" ]; then
- sed -i -e "/^#hold =/s/^.*/$hold/" /etc/poldek/poldek.conf
+ %{__sed} -i -e "/^#hold =/s/^.*/$hold/" /etc/poldek/poldek.conf
fi
fi
%files -f %{name}.lang
%defattr(644,root,root,755)
-%doc README* NEWS TODO configs
+%doc ChangeLog README* NEWS TODO configs
%dir %{_sysconfdir}/%{name}
%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}/*
+%attr(755,root,root) %{_bindir}/ipoldek
+%attr(755,root,root) %{_bindir}/poldek
+%attr(755,root,root) %{_bindir}/rpmvercmp
%dir %{_libdir}/%{name}
%attr(755,root,root) %{_libdir}/%{name}/*
-%{_mandir}/man1/%{name}*
+%{_mandir}/man1/%{name}*.1*
%lang(pl) %{_mandir}/pl/man1/%{name}*
%{_infodir}/poldek.info*
%if %{with imode}
%{_desktopdir}/%{name}.desktop
%{_pixmapsdir}/%{name}.png
%endif
+%dir /var/cache/%{name}
%if %{without static}
%files libs
%files devel
%defattr(644,root,root,755)
-%{!?with_static:%attr(755,root,root) %{_libdir}/lib*.so}
-%{_libdir}/lib*.la
-%{_includedir}/*
+%if %{without static}
+%attr(755,root,root) %{_libdir}/libpoclidek.so
+%attr(755,root,root) %{_libdir}/libpoldek.so
+%attr(755,root,root) %{_libdir}/libtndb.so
+%attr(755,root,root) %{_libdir}/libtrurl.so
+%attr(755,root,root) %{_libdir}/libvfile.so
+%endif
+%{_libdir}/libpoclidek.la
+%{_libdir}/libpoldek.la
+%{_libdir}/libtndb.la
+%{_libdir}/libtrurl.la
+%{_libdir}/libvfile.la
+%{_includedir}/poldek
+%{_includedir}/tndb
+%{_includedir}/trurl
+%{_includedir}/vfile
+%{_pkgconfigdir}/tndb.pc
+%{_pkgconfigdir}/trurlib.pc
%files static
%defattr(644,root,root,755)
-%{_libdir}/lib*.a
+%{_libdir}/libtndb.a
+%{_libdir}/libtrurl.a
%if %{with python}
%files -n python-poldek