X-Git-Url: https://git.pld-linux.org/?a=blobdiff_plain;f=poldek.spec;h=ddbe9c3b34805907329d39c79ff2270fa04fb651;hb=6e4e6d3c0d4162f8674ccfee75ec42350f4060ef;hp=b25c8f3316f30c7c7b890e3e9d0295e992bbda36;hpb=810df317c9728ed678d0667a67a72fdd0cd9ea5d;p=packages%2Fpoldek.git diff --git a/poldek.spec b/poldek.spec index b25c8f3..ddbe9c3 100644 --- a/poldek.spec +++ b/poldek.spec @@ -1,38 +1,49 @@ -# TODO: -# - fails to build without poldek-devel - fix it ! # # 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 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 + +# current snapshot name +%define SNAP 2014 # 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 +# 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 -%define ver_db 4.7.25 -%define ver_db_rel 1 +%define ver_rpm 5.4.10 %endif -%define ver_rpm 4.5-49 -%define snap rc5 -%define rel 1 +%define rel 7 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: 1.%{snap}.%{rel} +Version: 0.30.1 +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/~cactus/snaps/poldek/%{name}-%{version}%{snap}.tar.xz -# Source0-md5: ab89926c28cfb6b7d72497fc37c16ac4 +Source0: http://carme.pld-linux.org/~megabajt/releases/poldek/%{name}-%{version}.tar.xz +# Source0-md5: e569c8454df0932df53b09cee9998927 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 @@ -40,19 +51,20 @@ Source8: %{name}-debuginfo.conf Source9: %{name}-aidath.conf Source10: %{name}-multilib-aidath.conf Source11: %{name}-archive.conf -Patch0: %{name}-vserver-packages.patch +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}-size-type.patch -Patch3: %{name}-Os-fail-workaround.patch -Patch4: %{name}-git.patch +Patch2: %{name}-missing-include.patch URL: http://poldek.pld-linux.org/ +BuildRequires: %{db_pkg}-devel >= %{ver_db}-%{ver_db_rel} BuildRequires: autoconf -BuildRequires: automake +BuildRequires: automake >= 1:1.11 BuildRequires: bzip2-devel BuildRequires: check-devel -BuildRequires: db-devel >= %{ver_db}-%{ver_db_rel} BuildRequires: docbook-dtd412-xml -BuildRequires: gettext-devel +BuildRequires: gettext-tools BuildRequires: libtool BuildRequires: libxml2-devel BuildRequires: neon-devel @@ -65,12 +77,14 @@ BuildRequires: readline-devel >= 5.0 BuildRequires: rpm-devel >= %{ver_rpm} %{?with_python:BuildRequires: rpm-pythonprov} BuildRequires: swig-python +BuildRequires: tar >= 1:1.22 +BuildRequires: xmlto +BuildRequires: xz BuildRequires: zlib-devel %if %{with static} +BuildRequires: %{db_pkg}-static >= %{ver_db}-%{ver_db_rel} BuildRequires: bzip2-static -BuildRequires: db-static >= %{ver_db}-%{ver_db_rel} BuildRequires: glibc-static -BuildRequires: libselinux-static BuildRequires: libxml2-static BuildRequires: ncurses-static BuildRequires: openssl-static @@ -82,15 +96,17 @@ BuildRequires: zlib-static %endif Requires(triggerpostun): awk Requires(triggerpostun): sed >= 4.0 +Requires: %{db_pkg} >= %{ver_db}-%{ver_db_rel} Requires: %{name}-libs = %{version}-%{release} -Requires: db >= %{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 >= %{ver_rpm} # vf* scripts use sed Requires: sed BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n) +%define _libexecdir %{_prefix}/lib/%{name} + %description poldek is an RPM package management tool which allows you to easily perform package verification, installation (including system @@ -188,7 +204,7 @@ 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} -%pyrequires_eq python-libs +Requires: python-libs %description -n python-poldek Python modules for poldek. @@ -204,15 +220,15 @@ Moduły języka Python dla poldka. %patch0 -p1 %patch1 -p1 %patch2 -p1 -%patch3 -p1 -rm -f m4/libtool.m4 m4/lt*.m4 +%{__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 +%{__gettextize} %{__libtoolize} %{__aclocal} -I m4 %{__autoheader} @@ -220,101 +236,143 @@ chmod u+x ./configure ./doc/conf-xml2.sh %{__automake} cd tndb %{__libtoolize} -autoreconf -i +%{__aclocal} +%{__autoheader} +%{__autoconf} +%{__automake} cd ../trurlib %{__libtoolize} -autoreconf -i +%{__aclocal} +%{__autoheader} +%{__autoconf} +%{__automake} cd .. -CPPFLAGS="-std=gnu99" +CPPFLAGS="%{rpmcppflags} -std=gnu99 -fgnu89-inline" %configure \ %{?with_static:--enable-static --disable-shared} \ %{!?with_imode:--disable-imode} \ + --with-pkglibdir=%{_libexecdir} \ --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,/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 + %define ftp_alt2_arch x32 +%endif +%ifarch x32 + %define ftp_arch x32 + %define ftp_alt_arch x86_64 + %define ftp_alt2_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 - %endif - %endif -%endif - -%if "%{pld_release}" == "ti" - %define pld_conf %{SOURCE3} - %ifarch %{x8664} - %define pld_multilib_conf %{SOURCE4} + %define ftp_arch sparc + %define ftp_arch %{_target_cpu} + %ifarch sparc64 + %define ftp_alt_arch sparcv9 %endif %endif -%if "%{pld_release}" == "th" - %define pld_conf %{SOURCE1} - %define pld_debuginfo_conf %{SOURCE8} - %define pld_archive_conf %{SOURCE11} +%define pld_conf %{SOURCE1} +%define pld_debuginfo_conf %{SOURCE8} +%define pld_archive_conf %{SOURCE11} - %ifarch %{x8664} - %define pld_multilib_conf %{SOURCE2} - %endif +%ifarch %{x8664} x32 + %define pld_multilib_conf %{SOURCE2} + %define pld_multilib2_conf %{SOURCE2} +%endif - # aidath - %ifarch sparcv9 sparc64 - %define pld_conf %{SOURCE9} - %undefine pld_archive_conf - %endif - %ifarch sparc64 - %define pld_multilib_conf %{SOURCE10} - %endif +# aidath +%ifarch sparcv9 sparc64 + %define pld_conf %{SOURCE9} + %undefine pld_archive_conf +%endif +%ifarch sparc64 + %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-multilib.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 %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' \ + -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} 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 +%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 + +# 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 @@ -327,15 +385,15 @@ 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} @@ -368,50 +426,6 @@ fi %post libs -p /sbin/ldconfig %postun libs -p /sbin/ldconfig -%triggerpostun -- poldek < 0.19.0-1.20050613.22.0 -if [ -f /etc/poldek.conf.rpmsave ]; then - awk '/^source/ { - name = $3; - path = $4; - auto = "yes"; - autoup = "yes"; - type = "pdir"; - pri = ""; - - if (sub(",noauto", "", name)) { - auto = "no"; - } - - # process pri=\d+ - if (match(name, /,pri=[0-9]+/)) { - pri = substr(name, RSTART + 5, RLENGTH - 5); - name = substr(name, 1, RSTART - 1) substr(name, RSTART + RLENGTH); - } - - # skip ac sources. already in new config. - if (name !~ /^ac(-(ready|test|supported|updates-(general|security)))?$/) { - print ""; - print "[source]"; - print "name = " name; - print "type = " type; - print "path = " path; - print "auto = " auto; - print "autoup = " autoup; - if (pri) { - print "pri = " pri; - } - } - - }' < /etc/poldek.conf.rpmsave >> /etc/poldek/source.conf - echo "Converted old custom sources from /etc/poldek.conf.rpmsave to new poldek format in /etc/poldek/source.conf" - - # copy hold= - hold=$(grep ^hold /etc/poldek.conf.rpmsave) - if [ "$hold" ]; then - sed -i -e "/^#hold =/s/^.*/$hold/" /etc/poldek/poldek.conf - fi -fi - %triggerpostun -- poldek < 0.30-0.20080225.00.1 if ! grep -q '^%%includedir repos.d' %{_sysconfdir}/%{name}/poldek.conf; then %{__sed} -i -e '/^%%include source.conf/{ @@ -425,17 +439,27 @@ fi %{__sed} -i -e '/%%include %%{_distro}-multilib-source.conf/d' %{_sysconfdir}/%{name}/poldek.conf if [ -f %{_sysconfdir}/%{name}/pld-source.conf.rpmsave ]; then - cp -f %{_sysconfdir}/%{name}/repos.d/pld.conf{,.rpmnew} - cp -f %{_sysconfdir}/%{name}/pld-source.conf.rpmsave %{_sysconfdir}/%{name}/repos.d/pld.conf + %{__mv} -f %{_sysconfdir}/%{name}/repos.d/pld.conf{,.rpmnew} + %{__mv} -v %{_sysconfdir}/%{name}/pld-source.conf.rpmsave %{_sysconfdir}/%{name}/repos.d/pld.conf fi %ifarch %{x8664} if [ -f %{_sysconfdir}/%{name}/pld-multilib-source.conf.rpmsave ]; then - cp -f %{_sysconfdir}/%{name}/repos.d/pld-multilib.conf{,.rpmnew} - cp -f %{_sysconfdir}/%{name}/pld-multilib-source.conf.rpmsave %{_sysconfdir}/%{name}/repos.d/pld-multilib.conf + %{__mv} -f %{_sysconfdir}/%{name}/repos.d/pld-multilib.conf{,.rpmnew} + %{__mv} -v %{_sysconfdir}/%{name}/pld-multilib-source.conf.rpmsave %{_sysconfdir}/%{name}/repos.d/pld-multilib.conf fi %endif +%triggerpostun -- 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 +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 +fi + %files -f %{name}.lang %defattr(644,root,root,755) %doc ChangeLog README* NEWS TODO configs @@ -443,10 +467,12 @@ fi %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}/* -%dir %{_libdir}/%{name} -%attr(755,root,root) %{_libdir}/%{name}/* -%{_mandir}/man1/%{name}* +%attr(755,root,root) %{_bindir}/ipoldek +%attr(755,root,root) %{_bindir}/poldek +%attr(755,root,root) %{_bindir}/rpmvercmp +%dir %{_libexecdir} +%attr(755,root,root) %{_libexecdir}/* +%{_mandir}/man1/%{name}*.1* %lang(pl) %{_mandir}/pl/man1/%{name}* %{_infodir}/poldek.info* %if %{with imode} @@ -472,13 +498,29 @@ fi %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