X-Git-Url: http://git.pld-linux.org/?a=blobdiff_plain;f=rpm.spec;h=b31001192421bd0ac298c224a3d4b844091764a3;hb=62a3765885ab409c10864eefb74e21683f65a5dd;hp=0420c5795d206d283b853e640e6efd8acaba41e1;hpb=8ff2003bbdf455767933eb09dca0d6b12727493b;p=packages%2Frpm.git diff --git a/rpm.spec b/rpm.spec index 0420c57..b310011 100644 --- a/rpm.spec +++ b/rpm.spec @@ -2,18 +2,23 @@ # TODO: # - learn find-perl-provides to use the __perl macro instead # of /usr/bin/perl +# NOTE: there is no find-perl* now, only perl.{prov,req} +# - use system libmagic not internal libfmagic # # Conditional build: # _without_static - build shared /bin/rpm (doesn't work at the moment) +# _without_docs - don't generate documentation with doxygen # force_cc - force using __cc other than "%{_target_cpu}-pld-linux-gcc" # force_cxx - force using __cxx other than "%{_target_cpu}-pld-linux-g++" # force_cpp - force using __cpp other than "%{_target_cpu}-pld-linux-gcc -E" # %include /usr/lib/rpm/macros.python -%define beecrypt_ver 2.2.0 +%define snap 20030610 # versions of required libraries %define reqdb_ver 4.1.25-1 -%define reqpopt_ver 1.7 +%define reqpopt_ver 1.9 +%define beecrypt_ver 3.0.0-0.20030610.1 +%define rpm_macros_rev 1.127 Summary: RPM Package Manager Summary(de): RPM Packet-Manager Summary(es): Gestor de paquetes RPM @@ -22,96 +27,108 @@ Summary(pt_BR): Gerenciador de pacotes RPM Summary(ru): íÅÎÅÄÖÅÒ ÐÁËÅÔÏ× ÏÔ RPM Summary(uk): íÅÎÅÄÖÅÒ ÐÁËÅÔ¦× ×¦Ä RPM Name: rpm -Version: 4.1 -Release: 15.1 -%define beecrypt_rel %{version}.%{release} +%define ver 4.3 +Version: %{ver} +%define rel 0.%{snap}.21 +Release: %{rel} License: GPL Group: Base -Source0: ftp://ftp.rpm.org/pub/rpm/dist/rpm-4.1.x/%{name}-%{version}.tar.gz +#Source0: ftp://ftp.rpm.org/pub/rpm/dist/rpm-4.2.x/%{name}-%{version}.%{snap}.tar.gz +Source0: ftp://distfiles.pld-linux.org/src/%{name}-%{version}.%{snap}.tar.gz +# Source0-md5: f923fe5ca8f0803868ae7bcc0fabe9bb Source1: %{name}.groups -Source2: %{name}.macros +Source2: %{name}.platform Source3: %{name}-install-tree -Source4: %{name}-find-%{name}-provides -Source5: %{name}-macros.perl -Source6: %{name}-find-perl-provides -Source7: %{name}-find-perl-requires -Source8: %{name}-find-spec-bcond -Source9: %{name}-find-lang -Source10: %{name}-find-provides -Source11: %{name}-find-requires -Source12: %{name}-macros.php -Source13: %{name}-macros.python -Source14: %{name}-groups-po.awk -Source15: %{name}-compress-doc -Source16: %{name}-check-files -Source17: %{name}-php-provides -Source18: %{name}-php-requires -Source19: %{name}-find-php-provides -Source20: %{name}-find-php-requires +Source4: %{name}-find-rpm-provides +Source5: %{name}-find-spec-bcond +Source6: %{name}-find-lang +Source7: %{name}-find-provides +Source8: %{name}-find-requires +Source9: %{name}-groups-po.awk +Source10: %{name}-compress-doc +Source11: %{name}-check-files +Source12: %{name}-php-provides +Source13: %{name}-php-requires +Source14: %{name}.macros +Source15: %{name}-find-provides-wrapper +Source16: %{name}-find-requires-wrapper Source30: builder Source31: adapter.awk Source32: pldnotify.awk Source33: perl.prov Patch0: %{name}-pl.po.patch -Patch1: %{name}-%{name}rc.patch +Patch1: %{name}-rpmrc.patch Patch2: %{name}-arch.patch -Patch3: %{name}-%{name}popt.patch +Patch3: %{name}-rpmpopt.patch Patch4: %{name}-perl-macros.patch Patch5: %{name}-perl-req-perlfile.patch -Patch6: %{name}-cache.patch -Patch7: %{name}-glob.patch -Patch8: %{name}-header_h.patch -Patch9: %{name}-fast-alAddPackage.patch -Patch10: %{name}-byKey.patch -Patch11: %{name}-noexpand.patch -Patch12: %{name}-scripts-closefds.patch -Patch13: %{name}-python-macros.patch -Patch14: %{name}-perlprov-regonly.patch -Patch15: %{name}-4.1-branch.patch -Patch16: %{name}-drop-legacy-CLI.patch -Patch18: %{name}-gettext-in-header.patch -Patch19: %{name}-compress-doc.patch -Patch20: %{name}-lt14d.patch -Patch21: %{name}-gettext0.11.patch -Patch22: %{name}-build.patch -Patch23: %{name}-python-link.patch -Patch24: %{name}-system_libs.patch -Patch25: %{name}-bb-and-short-circuit.patch -Patch26: %{name}-4.1-branch-po-updates.patch -Patch27: %{name}-link.patch -Patch28: %{name}-beecrypt-opt.patch -Patch29: %{name}-python-pic.patch -Patch30: %{name}-home_etc.patch +Patch6: %{name}-glob.patch +Patch7: %{name}-noexpand.patch +Patch8: %{name}-scripts-closefds.patch +Patch9: %{name}-python-macros.patch +Patch10: %{name}-gettext-in-header.patch +Patch11: %{name}-compress-doc.patch +Patch12: %{name}-gettext0.11.patch +Patch13: %{name}-build.patch +Patch14: %{name}-system_libs.patch +Patch15: %{name}-bb-and-short-circuit.patch +Patch16: %{name}-etc_dir.patch +Patch17: %{name}-system_libs-more.patch +Patch18: %{name}-php-deps.patch +Patch19: %{name}-python-fix.patch +Patch20: %{name}-ldconfig-always.patch +Patch21: %{name}-perl_req.patch +Patch22: %{name}-system_libs_more.patch +Patch23: %{name}-python_2_3.patch +Patch24: %{name}-no-bin-env.patch +Patch25: %{name}-specflags.patch +Patch26: %{name}-magic-usesystem.patch +Patch27: %{name}-dontneedutils.patch +Patch28: %{name}-python-beecrypt.patch +Patch29: %{name}-man-typos.patch +Patch30: %{name}-man-pl.patch +Patch31: %{name}-fdClose-typo.patch +Patch32: %{name}-userpmdepswrappers.patch +Patch33: %{name}-provides-dont-obsolete.patch +Patch34: %{name}-examplesaredoc.patch +Patch35: %{name}-po.patch URL: http://www.rpm.org/ Icon: rpm.gif BuildRequires: autoconf >= 2.52 BuildRequires: automake +BuildRequires: beecrypt-devel >= %{beecrypt_ver} BuildRequires: bzip2-devel >= 1.0.1 BuildRequires: db-devel >= %{reqdb_ver} -BuildRequires: doxygen +%{!?_without_docs:BuildRequires: doxygen} BuildRequires: gettext-devel >= 0.11.4-2 -BuildRequires: libelf-devel +BuildRequires: elfutils-devel +#BuildRequires: libmagic-devel BuildRequires: libtool BuildRequires: patch >= 2.2 +BuildRequires: popt-devel >= %{reqpopt_ver} BuildRequires: python-devel >= 2.2 BuildRequires: python-modules >= 2.2 +BuildRequires: rpm-perlprov BuildRequires: rpm-pythonprov BuildRequires: zlib-devel -BuildRequires: popt-devel >= %{reqpopt_ver} -%if %{!?_without_static:1}%{?_without_static:0} +%if %{!?_without_static:1}0 # Require static library only for static build +BuildRequires: beecrypt-static >= %{beecrypt_ver} BuildRequires: bzip2-static >= 1.0.2-5 BuildRequires: db-static >= %{reqdb_ver} BuildRequires: glibc-static >= 2.2.94 -BuildRequires: libelf-static -BuildRequires: zlib-static +BuildRequires: elfutils-static +#BuildRequires: libmagic-static BuildRequires: popt-static >= %{reqpopt_ver} +BuildRequires: zlib-static %endif -BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n) +Requires: popt >= %{reqpopt_ver} Conflicts: glibc < 2.2.92 +BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n) %define __find_provides %{SOURCE4} %define _binary_payload w9.gzdio +%define _noPayloadPrefix 1 # don't require very fresh rpm.macros to build %define __gettextize gettextize --copy --force --intl ; cp -f po/Makevars{.template,} @@ -171,26 +188,28 @@ RPM - ¦ÎÆÏÒÍÁæÀ ÐÒÏ ÐÁËÅÔ. %package devel -Summary: Header files and libraries -Summary(de): Header-Dateien uns Libraries +Summary: Header files for rpm libraries +Summary(de): Header-Dateien für rpm Libraries Summary(es): Archivos de inclusión y bibliotecas para programas de manipulación de paquetes rpm -Summary(pl): Pliki nag³ówkowe i biblioteki statyczne +Summary(pl): Pliki nag³ówkowe bibliotek rpm Summary(pt_BR): Arquivos de inclusão e bibliotecas para programas de manipulação de pacotes RPM Summary(ru): èÅÄÅÒÙ É ÂÉÂÌÉÏÔÅËÉ ÄÌÑ ÐÒÏÇÒÁÍÍ, ÒÁÂÏÔÁÀÝÉÈ Ó rpm-ÐÁËÅÔÁÍÉ Summary(uk): èÅÄÅÒÉ ÔÁ ¦Â̦ÏÔÅËÉ ÄÌÑ ÐÒÏÇÒÁÍ, ÝÏ ÐÒÁÃÀÀÔØ Ú ÐÁËÅÔÁÍÉ rpm Group: Development/Libraries -Requires: %{name} = %{version} +Requires: %{name}-lib = %{version} +Requires: beecrypt-devel >= %{beecrypt_ver} Requires: bzip2-devel Requires: db-devel -Requires: libelf-devel -Requires: popt-devel >= 1.7 +Requires: elfutils-devel +Requires: popt-devel >= %{reqpopt_ver} Requires: zlib-devel %description devel -The RPM packaging system includes a C library that makes it easy to -manipulate RPM packages and databases. It is intended to ease the +The RPM packaging system includes C libraries that make it easy to +manipulate RPM packages and databases. They are intended to ease the creation of graphical package managers and other tools that need -intimate knowledge of RPM packages. +intimate knowledge of RPM packages. This package contains header files +for these libraries. %description devel -l de Der RPM-Packensystem enthält eine C-Library, die macht es einfach @@ -205,10 +224,11 @@ facilitar la creaci herramientas que necesiten un conocimiento profundo de paquetes RPM. %description devel -l pl -System RPM zawiera bibliotekê C, która u³atwia manipulowanie pakietami -RPM oraz bazami danych. W zamiarze ma to upro¶ciæ tworzenie +System RPM zawiera biblioteki C, które u³atwiaj± manipulowanie +pakietami RPM oraz bazami danych. W zamiarze ma to upro¶ciæ tworzenie graficznych programów zarz±dzaj±cych pakietami oraz innych narzêdzi, -które wymagaj± szczegó³owej wiedzy na temat pakietów RPM. +które wymagaj± szczegó³owej wiedzy na temat pakietów RPM. Ten pakiet +zawiera pliki nag³ówkowe wspomnianych bibliotek. %description devel -l pt_BR O sistema de empacotamento RPM inclui uma biblioteca C que torna fácil @@ -238,10 +258,11 @@ Summary(ru): Summary(uk): óÔÁÔÉÞÎÁ ¦Â̦ÏÔÅËÁ ÄÌÑ ÐÒÏÇÒÁÍ, ÝÏ ÐÒÁÃÀÀÔØ Ú ÐÁËÅÔÁÍÉ rpm Group: Development/Libraries Requires: %{name}-devel = %{version} +Requires: beecrypt-static >= %{beecrypt_ver} Requires: bzip2-static Requires: db-static -Requires: libelf-static -Requires: popt-static >= 1.7 +Requires: elfutils-static +Requires: popt-static >= %{reqpopt_ver} Requires: zlib-static %description static @@ -272,7 +293,7 @@ Summary(de): Zusatzwerkzeuge f Summary(pl): Dodatkowe narzêdzia do zarz±dzania baz± RPM-a i pakietami Group: Applications/File Requires: %{name} = %{version} -Requires: popt >= 1.7 +Requires: popt >= %{reqpopt_ver} %description utils Additional utilities for managing rpm packages and database. @@ -283,6 +304,43 @@ Zusatzwerkzeuge f %description utils -l pl Dodatkowe narzêdzia do zarz±dzania baz± RPM-a i pakietami. +%package utils-perl +Summary: Additional utilities for managing rpm packages and database +Summary(de): Zusatzwerkzeuge für Verwaltung RPM-Pakete und Datenbanken +Summary(pl): Dodatkowe narzêdzia do zarz±dzania baz± RPM-a i pakietami +Group: Applications/File +Requires: %{name} = %{version} +Requires: %{name}-utils = %{version} +Requires: popt >= %{reqpopt_ver} + +%description utils-perl +Additional utilities for managing rpm packages and database. + +%description utils-perl -l de +Zusatzwerkzeuge für Verwaltung RPM-Pakete und Datenbanken. + +%description utils-perl -l pl +Dodatkowe narzêdzia do zarz±dzania baz± RPM-a i pakietami. + +%package utils-static +Summary: Static rpm utilities +Summary(pl): Statyczne narzêdzia rpm +Group: Applications/System +Requires: %{name} = %{version} + +%description utils-static +Static rpm utilities for repairing system in case something with +shared libraries used by rpm become broken. Currently it contains rpmi +binary, which can be used to install/upgrade/remove packages without +using shared libraries (well, in fact with exception of NSS modules). + +%description utils-static -l pl +Statyczne narzêdzia rpm do naprawy systemu w przypadku zepsucia czego¶ +zwi±zanego z bibliotekami wspó³dzielonymi u¿ywanymi przez rpm-a. +Aktualnie pakiet zawiera binarkê rpmi, któr± mo¿na u¿yæ do instalacji, +uaktualniania lub usuwania pakietów bez udzia³u bibliotek statycznych +(z wyj±tkiem modu³ów NSS). + %package perlprov Summary: Additional utilities for checking perl provides/requires in rpm packages Summary(de): Zusatzwerkzeuge fürs Nachsehen Perl-Abhängigkeiten in RPM-Paketen @@ -387,11 +445,12 @@ Summary(uk): Group: Applications/File Requires(pre): findutils Requires: %{name} = %{version} +Requires: %{name}-utils = %{version} Requires: /bin/id Requires: awk Requires: binutils Requires: diffutils -Requires: file >= 3.31 +Requires: file >= 4.01 Requires: fileutils Requires: findutils %ifarch athlon @@ -409,6 +468,7 @@ Requires: sed Requires: sh-utils Requires: tar Requires: textutils +Provides: rpmbuild(macros) = %{rpm_macros_rev} %description build Scripts for building binary RPM packages. @@ -465,50 +525,6 @@ construir pacotes usando o RPM. ò¦ÚÎÏÍÁΦÔΦ ÄÏÐÏͦÖΦ ÓËÒÉÐÔÉ ÔÁ ÕÔÉ̦ÔÉ, Ñ˦ ×ÉËÏÒÉÓÔÏ×ÕÀÔØÓÑ ÄÌÑ ÐÏÂÕÄÏ×É RPM'¦×. -%package -n beecrypt -Summary: Crypto library -Summary(pl): Biblioteka kryptograficzna -Version: %{beecrypt_ver} -Release: %{beecrypt_rel} -Epoch: 1 -Group: Libraries - -%description -n beecrypt -Crypto library (modified for rpm needs). - -%description -n beecrypt -l pl -Biblioteka kryptograficzna (zmodyfikowana na potrzeby rpma). - -%package -n beecrypt-devel -Summary: Crypto library - development files -Summary(pl): Biblioteka kryptograficzna - pliki developerskie -Version: %{beecrypt_ver} -Release: %{beecrypt_rel} -Epoch: 1 -Group: Development/Libraries -Requires: beecrypt = %{beecrypt_ver} - -%description -n beecrypt-devel -Crypto library - development files. - -%description -n beecrypt-devel -l pl -Biblioteka kryptograficzna - pliki developerskie. - -%package -n beecrypt-static -Summary: Crypto library - static version -Summary(pl): Statyczna biblioteka kryptograficzna -Version: %{beecrypt_ver} -Release: %{beecrypt_rel} -Epoch: 1 -Group: Development/Libraries -Requires: beecrypt-devel = %{beecrypt_ver} - -%description -n beecrypt-static -Static version of crypto library. - -%description -n beecrypt-static -l pl -Statyczna wersja biblioteki kryptograficznej. - %prep %setup -q %patch0 -p1 @@ -517,21 +533,18 @@ Statyczna wersja biblioteki kryptograficznej. %patch3 -p1 %patch4 -p1 %patch5 -p1 -# not needed ? (break compilation) -#%patch6 -p1 +%patch6 -p1 %patch7 -p1 -# needed ? -#%patch8 -p1 -# rejected (needed ?) -#%patch9 -p1 -# too many rejects, Pawel please check if needed and rediff -#%patch10 -p0 +%patch8 -p1 +%patch9 -p1 +%patch10 -p1 %patch11 -p1 %patch12 -p1 %patch13 -p1 %patch14 -p1 %patch15 -p1 %patch16 -p1 +%patch17 -p1 %patch18 -p1 %patch19 -p1 %patch20 -p1 @@ -539,26 +552,28 @@ Statyczna wersja biblioteki kryptograficznej. %patch22 -p1 %patch23 -p1 %patch24 -p1 + +sed -e 's/^/@pld@/' %{SOURCE2} >>platform.in +cp -f platform.in macros.pld.in +echo '%%define _perl_deps 1' > macros.perl +echo '# obsoleted file' > macros.python +echo '%%define _php_deps 1' > macros.php +install %{SOURCE6} scripts/find-lang.sh +install %{SOURCE12} scripts/php.prov.in +install %{SOURCE13} scripts/php.req.in +install %{SOURCE33} scripts/perl.prov +cat %{SOURCE14} >> macros.in %patch25 -p1 %patch26 -p1 %patch27 -p1 %patch28 -p1 %patch29 -p1 %patch30 -p1 - -sed -e 's/^/@pld@/' %{SOURCE2} >>platform.in -cp -f platform.in macros.pld.in -install %{SOURCE5} macros.perl.in -install %{SOURCE13} macros.python.in -install %{SOURCE12} macros.php.in -install %{SOURCE6} scripts/find-perl-provides -install %{SOURCE7} scripts/find-perl-requires -install %{SOURCE9} scripts/find-lang.sh -install %{SOURCE17} scripts/php.prov.in -install %{SOURCE18} scripts/php.req.in -install %{SOURCE19} scripts/find-php-provides -install %{SOURCE20} scripts/find-php-requires -install %{SOURCE33} scripts/perl.prov +%patch31 -p1 +%patch32 -p1 +%patch33 -p1 +%patch34 -p1 +%patch35 -p1 cd scripts; mv -f perl.req perl.req.in @@ -568,15 +583,17 @@ cd .. chmod +x %{SOURCE4} rm -rf zlib libelf db db3 popt rpmdb/db.h -%build # generate Group translations to *.po -awk -f %{SOURCE14} %{SOURCE1} +awk -f %{SOURCE9} %{SOURCE1} -%{__aclocal} -%{__autoheader} -%{__autoconf} -%{__automake} -cd beecrypt +# update macros paths +for f in doc{,/ja,/pl}/rpm.8 doc{,/ja,/pl}/rpmbuild.8 ; do + sed -e 's@lib/rpm/redhat@lib/rpm/pld@g' $f > ${f}.tmp + mv -f ${f}.tmp $f +done + +%build +cd file rm -f missing %{__libtoolize} %{__aclocal} @@ -604,7 +621,7 @@ mv -f macros.tmp macros.in CC="%{__cc}" CXX="%{__cxx}" CPP="%{__cpp}" \ --enable-shared \ --enable-static \ - --with-apidocs \ + %{!?_without_docs:--with-apidocs} \ --with-python=auto \ --without-db @@ -614,6 +631,7 @@ mv -f macros.tmp macros.in %install rm -rf $RPM_BUILD_ROOT +install -d $RPM_BUILD_ROOT/lib %{__make} install \ DESTDIR=$RPM_BUILD_ROOT \ @@ -626,13 +644,17 @@ install macros.php $RPM_BUILD_ROOT%{_libdir}/rpm/macros.php install %{SOURCE1} doc/manual/groups install %{SOURCE3} $RPM_BUILD_ROOT%{_libdir}/rpm/install-build-tree install %{SOURCE4} $RPM_BUILD_ROOT%{_libdir}/rpm/find-rpm-provides -install %{SOURCE8} $RPM_BUILD_ROOT%{_libdir}/rpm/find-spec-bcond -install %{SOURCE10} $RPM_BUILD_ROOT%{_libdir}/rpm/find-provides -install %{SOURCE11} $RPM_BUILD_ROOT%{_libdir}/rpm/find-requires -install %{SOURCE15} $RPM_BUILD_ROOT%{_libdir}/rpm/compress-doc -install %{SOURCE16} $RPM_BUILD_ROOT%{_libdir}/rpm/check-files -install scripts/find-php* $RPM_BUILD_ROOT%{_libdir}/rpm/ -install scripts/php.{prov,req} $RPM_BUILD_ROOT%{_libdir}/rpm/ +install %{SOURCE5} $RPM_BUILD_ROOT%{_libdir}/rpm/find-spec-bcond +# 2 following files - to be removed or changed to find-elf-* +# (to generate only ELF dependencies using objdump)??? +install %{SOURCE7} $RPM_BUILD_ROOT%{_libdir}/rpm/find-provides +install %{SOURCE8} $RPM_BUILD_ROOT%{_libdir}/rpm/find-requires +install %{SOURCE10} $RPM_BUILD_ROOT%{_libdir}/rpm/compress-doc +install %{SOURCE11} $RPM_BUILD_ROOT%{_libdir}/rpm/check-files +install %{SOURCE15} $RPM_BUILD_ROOT%{_libdir}/rpm/find-provides-wrapper +install %{SOURCE16} $RPM_BUILD_ROOT%{_libdir}/rpm/find-requires-wrapper +install scripts/find-php* $RPM_BUILD_ROOT%{_libdir}/rpm +install scripts/php.{prov,req} $RPM_BUILD_ROOT%{_libdir}/rpm install %{SOURCE30} $RPM_BUILD_ROOT%{_bindir}/builder install %{SOURCE31} $RPM_BUILD_ROOT%{_bindir}/adapter.awk @@ -648,29 +670,71 @@ cat > $RPM_BUILD_ROOT%{_sysconfdir}/rpm/macros < $RPM_BUILD_ROOT%{_sysconfdir}/rpm/noautoprovfiles < $RPM_BUILD_ROOT%{_sysconfdir}/rpm/noautoprov < $RPM_BUILD_ROOT%{_sysconfdir}/rpm/noautoreqfiles < $RPM_BUILD_ROOT%{_sysconfdir}/rpm/noautoreq < $RPM_BUILD_ROOT%{_sysconfdir}/rpm/noautoreqdep < $RPM_BUILD_ROOT%{_sysconfdir}/rpm/noautocompressdoc <