X-Git-Url: http://git.pld-linux.org/?p=packages%2Frpm.git;a=blobdiff_plain;f=rpm.spec;h=fbe1b0cb7e65365933316e92ed9971b4d104e08c;hp=5aca0e9d506b634993c66657b1f8940ea379ebb4;hb=479ed081b430db0d6981233fd628faeca639b675;hpb=bfec28121d75ef9c82d3b635bb3a8467c7409956 diff --git a/rpm.spec b/rpm.spec index 5aca0e9..fbe1b0c 100644 --- a/rpm.spec +++ b/rpm.spec @@ -1,25 +1,28 @@ # # TODO: +# - detected Requires lists are not printed at the end of build (Provides etc. are) +# - fix pythondeps detection (*.py[co] should belong to python class; autodetect P(abi)) # - consider using system libmagic not internal libfmagic # (but internal has different method of passing output) # - after ac drop amd64 patch and make x86_64 generic arch + subarchs amd64 and ia32e -# +# # Conditional build: +%bcond_with distver # build with distversion field %bcond_with static # build static rpmi (not supported at the moment) -%bcond_without doc # don't generate documentation with doxygen +%bcond_without apidocs # don't generate documentation with doxygen +%bcond_with pkgnameinautoreq # don't put package name in autogenerated dependancy %bcond_without python # don't build python bindings %bcond_without selinux # dont enable selinux support # 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 snap 20040614 +%define snap 20041121 # versions of required libraries -%define reqdb_ver 4.2.50-1 -%define reqpopt_ver 1.9 -%define beecrypt_ver 3.0.0-0.20030610.1 -%define rpm_macros_rev 1.158 +%define reqdb_ver 4.3.27-1 +%define reqpopt_ver 1.10.1 +%define beecrypt_ver 2:4.1.0 +%define rpm_macros_rev 1.196 Summary: RPM Package Manager Summary(de): RPM Packet-Manager Summary(es): Gestor de paquetes RPM @@ -28,15 +31,15 @@ Summary(pt_BR): Gerenciador de pacotes RPM Summary(ru): íÅÎÅÄÖÅÒ ÐÁËÅÔÏ× ÏÔ RPM Summary(uk): íÅÎÅÄÖÅÒ ÐÁËÅÔ¦× ×¦Ä RPM Name: rpm -%define ver 4.4 -%define sover 4.3 -Version: %{ver} -Release: 0.%{snap}.0.2 +%define sover 4.4 +Version: 4.4.1 +Release: 0.6 License: GPL Group: Base #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.bz2 -# Source0-md5: a91b8e17f6e69208b188d2876e80aef9 +# Snap tarball is generated from rpm-4_4 branch +Source0: ftp://jbj.org/pub/rpm-4.4.x/%{name}-%{version}.tar.gz +# Source0-md5: 90ded9047b1b69d918c6c7c7b56fd7a9 Source1: %{name}.groups Source2: %{name}.platform Source3: %{name}-install-tree @@ -49,50 +52,54 @@ Source9: %{name}-php-provides Source10: %{name}-php-requires Source11: %{name}.macros Source12: perl.prov +Source13: %{name}-user_group.sh +Source14: %{name}.sysconfig Source30: builder Source31: adapter.awk Source32: pldnotify.awk +# http://svn.pld-linux.org/banner.sh/ +Source33: banner.sh +Patch0: %{name}-pl.po.patch Patch1: %{name}-rpmrc.patch Patch2: %{name}-arch.patch Patch3: %{name}-rpmpopt.patch Patch4: %{name}-perl-macros.patch Patch5: %{name}-perl-req-perlfile.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}-build.patch -Patch13: %{name}-system_libs.patch -Patch14: %{name}-bb-and-short-circuit.patch -Patch15: %{name}-etc_dir.patch -Patch16: %{name}-system_libs-more.patch -Patch17: %{name}-php-deps.patch -Patch18: %{name}-python-fix.patch -Patch19: %{name}-ldconfig-always.patch -Patch20: %{name}-perl_req.patch -Patch21: %{name}-no-bin-env.patch -Patch22: %{name}-magic-usesystem.patch -Patch23: %{name}-dontneedutils.patch -Patch24: %{name}-provides-dont-obsolete.patch -Patch25: %{name}-examplesaredoc.patch -Patch26: %{name}-po.patch -Patch27: %{name}-amd64.patch -Patch28: %{name}-notsc.patch -Patch29: %{name}-hack-norpmlibdep.patch -Patch30: %{name}-makefile-no_myLDADD_deps.patch -Patch31: %{name}-libdir64.patch -Patch32: %{name}-libdir-links.patch -Patch33: %{name}-context.patch -Patch35: %{name}-missing-prototypes.patch -Patch36: %{name}-pld-autodep.patch -Patch37: %{name}-rpmsq.patch -Patch38: %{name}-file-readelf.patch -Patch40: %{name}-epoch0.patch -Patch41: %{name}-file-readelf-fix.patch -Patch43: %{name}-perl_req-INC_dirs.patch -Patch44: %{name}-debuginfo.patch -Patch100: %{name}-pl.po.patch +Patch6: %{name}-noexpand.patch +Patch7: %{name}-scripts-closefds.patch +Patch8: %{name}-python-macros.patch +Patch9: %{name}-gettext-in-header.patch +Patch10: %{name}-compress-doc.patch +Patch11: %{name}-build.patch +Patch12: %{name}-system_libs.patch +Patch13: %{name}-bb-and-short-circuit.patch +Patch14: %{name}-etc_dir.patch +Patch15: %{name}-system_libs-more.patch +Patch16: %{name}-php-deps.patch +Patch17: %{name}-ldconfig-always.patch +Patch18: %{name}-perl_req.patch +Patch19: %{name}-no-bin-env.patch +Patch20: %{name}-magic-usesystem.patch +Patch21: %{name}-dontneedutils.patch +Patch22: %{name}-provides-dont-obsolete.patch +Patch23: %{name}-examplesaredoc.patch +Patch24: %{name}-po.patch +Patch25: %{name}-amd64.patch +Patch26: %{name}-notsc.patch +Patch27: %{name}-hack-norpmlibdep.patch +Patch28: %{name}-makefile-no_myLDADD_deps.patch +Patch29: %{name}-libdir64.patch +Patch30: %{name}-libdir-links.patch +Patch31: %{name}-missing-prototypes.patch +Patch32: %{name}-pld-autodep.patch +Patch33: %{name}-rpmsq.patch +Patch34: %{name}-epoch0.patch +Patch35: %{name}-perl_req-INC_dirs.patch +Patch36: %{name}-debuginfo.patch +Patch37: %{name}-doxygen_hack.patch +Patch38: %{name}-distver.patch +Patch39: %{name}-gcc4.patch +Patch40: %{name}-pythondeps.patch URL: http://www.rpm.org/ Icon: rpm.gif BuildRequires: autoconf >= 2.52 @@ -100,22 +107,23 @@ BuildRequires: automake BuildRequires: beecrypt-devel >= %{beecrypt_ver} BuildRequires: bzip2-devel >= 1.0.1 BuildRequires: db-devel >= %{reqdb_ver} -%{?with_doc:BuildRequires: doxygen} +%{?with_apidocs:BuildRequires: doxygen} BuildRequires: elfutils-devel BuildRequires: findutils BuildRequires: gettext-devel >= 0.11.4-2 #BuildRequires: libmagic-devel -%{?with_selinux:BuildRequires: libselinux-devel} +%{?with_selinux:BuildRequires: libselinux-devel >= 1.18} # needed only for AM_PROG_CXX used for CXX substitution in rpm.macros BuildRequires: libstdc++-devel BuildRequires: libtool BuildRequires: libxml2-devel +BuildRequires: neon-devel >= 0.24.7-3 BuildRequires: patch >= 2.2 BuildRequires: popt-devel >= %{reqpopt_ver} %{?with_python:BuildRequires: python-devel >= 2.2} BuildRequires: python-modules >= 2.2 +BuildRequires: readline-devel BuildRequires: rpm-perlprov -BuildRequires: rpm-pythonprov BuildRequires: zlib-devel %if %{with static} # Require static library only for static build @@ -125,10 +133,11 @@ BuildRequires: db-static >= %{reqdb_ver} BuildRequires: glibc-static >= 2.2.94 BuildRequires: elfutils-static #BuildRequires: libmagic-static -%{?with_selinux:BuildRequires: libselinux-static} +%{?with_selinux:BuildRequires: libselinux-static >= 1.18} BuildRequires: popt-static >= %{reqpopt_ver} BuildRequires: zlib-static %endif +Requires: beecrypt >= %{beecrypt_ver} Requires: popt >= %{reqpopt_ver} Requires: %{name}-lib = %{version}-%{release} %{!?with_static:Obsoletes: rpm-utils-static} @@ -200,6 +209,23 @@ RPM - ÓÌÕÖÂÏ×ϧ ¦ÎÆÏÒÍÁæ§, ÝÏ Í¦ÓÔÉÔØ ÎÁÚ×Õ, ×ÅÒÓ¦À, ÏÐÉÓ ÔÁ ¦ÎÛÕ ¦ÎÆÏÒÍÁæÀ ÐÒÏ ÐÁËÅÔ. +%package lib +Summary: RPMs library +Summary(pl): Biblioteki RPM-a +Group: Libraries +Requires: db >= %{reqdb_ver} +%{?with_selinux:BuildRequires: libselinux >= 1.18} +Requires: popt >= %{reqpopt_ver} +%{?with_distver:Provides: rpm-lib(distver)} +# avoid SEGV caused by mixed db versions +Conflicts: poldek < 0.18.1-16 + +%description lib +RPMs library. + +%description lib -l pl +Biblioteki RPM-a. + %package devel Summary: Header files for rpm libraries Summary(de): Header-Dateien für rpm Libraries @@ -354,102 +380,6 @@ Aktualnie pakiet zawiera binark 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 -Summary(pl): Dodatkowe narzêdzia do sprawdzenia zale¿no¶ci skryptów perla w pakietach rpm -Group: Applications/File -Requires: %{name} = %{version}-%{release} -Requires: perl-devel -Requires: perl-modules - -%description perlprov -Additional utilities for checking perl provides/requires in rpm -packages. - -%description perlprov -l de -Zusatzwerkzeuge fürs Nachsehen Perl-Abhängigkeiten in RPM-Paketen. - -%description perlprov -l pl -Dodatkowe narzêdzia do sprawdzenia zale¿no¶ci skryptów perla w -pakietach rpm. - -%package pythonprov -Summary: Python macros, which simplifies creation of rpm packages with Python software -Summary(pl): Makra u³atwiaj±ce tworzenie pakietów rpm z programami napisanymi w Pythonie -Group: Applications/File -Requires: %{name} = %{version}-%{release} -Requires: python-modules - -%description pythonprov -Python macros, which simplifies creation of rpm packages with Python -software. - -%description pythonprov -l pl -Makra u³atwiaj±ce tworzenie pakietów rpm z programami napisanymi w -Pythonie. - -%package php-pearprov -Summary: Additional utilities for managing rpm packages and database -Summary(pl): Dodatkowe narzêdzia do sprawdzania zale¿no¶ci skryptów php w rpm -Group: Applications/File -Requires: %{name} = %{version}-%{release} - -%description php-pearprov -Additional utilities for checking php pear provides/requires in rpm -packages. - -%description php-pearprov -l pl -Dodatkowe narzêdzia do sprawdzenia zale¿no¶ci skryptów php pear w -pakietach rpm. - -%package -n python-rpm -Summary: Python interface to RPM library -Summary(pl): Pythonowy interfejs do biblioteki RPM-a -Summary(pt_BR): Módulo Python para aplicativos que manipulam pacotes RPM -Group: Development/Languages/Python -Requires: %{name} = %{version}-%{release} -%pyrequires_eq python -Obsoletes: rpm-python - -%description -n python-rpm -The rpm-python package contains a module which permits applications -written in the Python programming language to use the interface -supplied by RPM (RPM Package Manager) libraries. - -This package should be installed if you want to develop Python -programs that will manipulate RPM packages and databases. - -%description -n python-rpm -l pl -Pakiet rpm-python zawiera modu³, który pozwala aplikacjom napisanym w -Pythonie na u¿ywanie interfejsu dostarczanego przez biblioteki RPM-a. - -Pakiet ten powinien zostaæ zainstalowany, je¶li chcesz pisaæ w -Pythonie programy manipuluj±ce pakietami i bazami danych rpm. - -%description -n python-rpm -l pt_BR -O pacote rpm-python contém um módulo que permite que aplicações -escritas em Python utilizem a interface fornecida pelas bibliotecas -RPM (RPM Package Manager). - -Esse pacote deve ser instalado se você quiser desenvolver programas em -Python para manipular pacotes e bancos de dados RPM. - -%package lib -Summary: RPMs library -Summary(pl): Biblioteki RPM-a -Group: Libraries -Requires: db >= %{reqdb_ver} -Requires: popt >= %{reqpopt_ver} -# avoid SEGV caused by mixed db versions -Conflicts: poldek < 0.18.1-16 - -%description lib -RPMs library. - -%description lib -l pl -Biblioteki RPM-a. - %package build Summary: Scripts for building binary RPM packages Summary(de): Scripts fürs Bauen binärer RPM-Pakete @@ -463,19 +393,23 @@ Requires: %{name}-utils = %{version}-%{release} Requires: /bin/id Requires: awk Requires: binutils +Requires: bzip2 Requires: chrpath >= 0.10-4 +Requires: cpio Requires: diffutils +Requires: elfutils Requires: file >= 4.01 Requires: fileutils Requires: findutils %ifarch athlon Requires: gcc >= 3.0.3 %else +%ifarch i686 +# because of -mtune in rpmrc +Requires: gcc >= 5:3.4 +%else Requires: gcc %endif -%ifarch amd64 -Conflicts: automake < 1:1.7.9-2 -Conflicts: libtool < 2:1.5-13 %endif Requires: glibc-devel Requires: grep @@ -488,6 +422,13 @@ Requires: sh-utils Requires: tar Requires: textutils Provides: rpmbuild(macros) = %{rpm_macros_rev} +Provides: rpmbuild(noauto) = 3 +# because of -fvisibility-inlines-hidden in rpm.macros +Conflicts: gcc-c++ < 5:3.4 +%ifarch amd64 +Conflicts: automake < 1:1.7.9-2 +Conflicts: libtool < 2:1.5-13 +%endif %description build Scripts for building binary RPM packages. @@ -544,15 +485,109 @@ construir pacotes usando o RPM. ò¦ÚÎÏÍÁΦÔΦ ÄÏÐÏͦÖΦ ÓËÒÉÐÔÉ ÔÁ ÕÔÉ̦ÔÉ, Ñ˦ ×ÉËÏÒÉÓÔÏ×ÕÀÔØÓÑ ÄÌÑ ÐÏÂÕÄÏ×É RPM'¦×. +%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 +Summary(pl): Dodatkowe narzêdzia do sprawdzenia zale¿no¶ci skryptów perla w pakietach rpm +Group: Applications/File +Requires: %{name} = %{version}-%{release} +Requires: perl-devel +Requires: perl-modules + +%description perlprov +Additional utilities for checking perl provides/requires in rpm +packages. + +%description perlprov -l de +Zusatzwerkzeuge fürs Nachsehen Perl-Abhängigkeiten in RPM-Paketen. + +%description perlprov -l pl +Dodatkowe narzêdzia do sprawdzenia zale¿no¶ci skryptów perla w +pakietach rpm. + +%package pythonprov +Summary: Python macros, which simplifies creation of rpm packages with Python software +Summary(pl): Makra u³atwiaj±ce tworzenie pakietów rpm z programami napisanymi w Pythonie +Group: Applications/File +Requires: %{name} = %{version}-%{release} +Requires: python-modules + +%description pythonprov +Python macros, which simplifies creation of rpm packages with Python +software. + +%description pythonprov -l pl +Makra u³atwiaj±ce tworzenie pakietów rpm z programami napisanymi w +Pythonie. + +%package php-pearprov +Summary: Additional utilities for managing rpm packages and database +Summary(pl): Dodatkowe narzêdzia do sprawdzania zale¿no¶ci skryptów php w rpm +Group: Applications/File +Requires: %{name} = %{version}-%{release} + +%description php-pearprov +Additional utilities for checking php pear provides/requires in rpm +packages. + +%description php-pearprov -l pl +Dodatkowe narzêdzia do sprawdzenia zale¿no¶ci skryptów php pear w +pakietach rpm. + +%package -n python-rpm +Summary: Python interface to RPM library +Summary(pl): Pythonowy interfejs do biblioteki RPM-a +Summary(pt_BR): Módulo Python para aplicativos que manipulam pacotes RPM +Group: Development/Languages/Python +Requires: %{name} = %{version}-%{release} +%pyrequires_eq python +Obsoletes: rpm-python + +%description -n python-rpm +The rpm-python package contains a module which permits applications +written in the Python programming language to use the interface +supplied by RPM (RPM Package Manager) libraries. + +This package should be installed if you want to develop Python +programs that will manipulate RPM packages and databases. + +%description -n python-rpm -l pl +Pakiet rpm-python zawiera modu³, który pozwala aplikacjom napisanym w +Pythonie na u¿ywanie interfejsu dostarczanego przez biblioteki RPM-a. + +Pakiet ten powinien zostaæ zainstalowany, je¶li chcesz pisaæ w +Pythonie programy manipuluj±ce pakietami i bazami danych rpm. + +%description -n python-rpm -l pt_BR +O pacote rpm-python contém um módulo que permite que aplicações +escritas em Python utilizem a interface fornecida pelas bibliotecas +RPM (RPM Package Manager). + +Esse pacote deve ser instalado se você quiser desenvolver programas em +Python para manipular pacotes e bancos de dados RPM. + +%package apidocs +Summary: RPM API documentation and guides +Summary(pl): Documentacja API RPM-a i przewodniki +Group: Documentation + +%description apidocs +Documentation for RPM API and guides in HTML format generated +from rpm sources by doxygen. + +%description apidocs -l pl +Dokumentacja API RPM-a oraz przewodniki w formacie HTML generowane +ze ¼rode³ RPM-a przez doxygen. + %prep -%setup -q -n %{name} -# UPDATE -#%patch0 -p1 +%setup -q %patch1 -p1 %patch2 -p1 -%patch3 -p1 +# temporarily moved after patch0 - messes too much in pl.po +#%patch3 -p1 %patch4 -p1 %patch5 -p1 +%patch6 -p1 %patch7 -p1 %patch8 -p1 %patch9 -p1 @@ -560,15 +595,13 @@ construir pacotes usando o RPM. %patch11 -p1 %patch12 -p1 %patch13 -p1 -%patch14 -p1 # home-etc FIXME -#%patch15 -p1 +#%patch14 -p1 +%patch15 -p1 %patch16 -p1 %patch17 -p1 %patch18 -p1 %patch19 -p1 -%patch20 -p1 -%patch21 -p1 sed -e 's/^/@pld@/' %{SOURCE2} >>platform.in cp -f platform.in macros.pld.in echo '%%define __perl_provides %%{__perl} /usr/lib/rpm/perl.prov' > macros.perl @@ -581,6 +614,8 @@ install %{SOURCE9} scripts/php.prov.in install %{SOURCE10} scripts/php.req.in install %{SOURCE12} scripts/perl.prov cat %{SOURCE11} >> macros.in +%patch20 -p1 +%patch21 -p1 %patch22 -p1 %patch23 -p1 %patch24 -p1 @@ -593,15 +628,15 @@ cat %{SOURCE11} >> macros.in %patch31 -p1 %patch32 -p1 %patch33 -p1 -%patch35 -p1 +%patch34 -p1 +%patch35 -p0 %patch36 -p1 %patch37 -p1 -%patch38 -p1 +%{?with_distver:%patch38 -p1} +%patch39 -p1 %patch40 -p1 -%patch41 -p1 -%patch43 -p0 -%patch44 -p1 -#%patch100 -p1 +%patch0 -p1 +%patch3 -p1 cd scripts; mv -f perl.req perl.req.in @@ -611,7 +646,7 @@ cd .. mv -f po/{no,nb}.po mv -f po/{sr,sr@Latn}.po -rm -rf zlib libelf db db3 popt rpmdb/db.h +rm -rf neon zlib libelf db db3 popt rpmdb/db.h # generate Group translations to *.po awk -f %{SOURCE6} %{SOURCE1} @@ -655,7 +690,8 @@ mv -f macros.tmp macros.in CPP="%{__newcpp}" \ --enable-shared \ --enable-static \ - %{?with_doc:--with-apidocs} \ + %{?with_apidoc:--with-apidocs} \ + %{?with_pkgnameinautoreq:--enable-adding-packages-names-in-autogenerated-dependancies} \ %{?with_python:--with-python=auto} \ %{!?with_python:--without-python} \ %{!?with_selinux:--without-selinux} \ @@ -672,10 +708,11 @@ mv -f macros.tmp macros.in debugedit_LDADD="\$(WITH_LIBELF_LIB) -lpopt" # %{!?with_static:rpm_LDFLAGS="\$(myLDFLAGS)"} \ +%{?with_apidocs:%{__make} doxygen} %install rm -rf $RPM_BUILD_ROOT -install -d $RPM_BUILD_ROOT/%{_lib} +install -d $RPM_BUILD_ROOT{/%{_lib},/etc/sysconfig,%{_sysconfdir}/rpm} %{__make} install \ DESTDIR=$RPM_BUILD_ROOT \ @@ -695,17 +732,18 @@ install %{SOURCE3} $RPM_BUILD_ROOT%{_rpmlibdir}/install-build-tree install %{SOURCE4} $RPM_BUILD_ROOT%{_rpmlibdir}/find-spec-bcond install %{SOURCE7} $RPM_BUILD_ROOT%{_rpmlibdir}/compress-doc install %{SOURCE8} $RPM_BUILD_ROOT%{_rpmlibdir}/check-files +install %{SOURCE13} $RPM_BUILD_ROOT%{_rpmlibdir}/user_group.sh install scripts/find-php* $RPM_BUILD_ROOT%{_rpmlibdir} install scripts/php.{prov,req} $RPM_BUILD_ROOT%{_rpmlibdir} +install %{SOURCE14} $RPM_BUILD_ROOT/etc/sysconfig/rpm install %{SOURCE30} $RPM_BUILD_ROOT%{_bindir}/builder install %{SOURCE31} $RPM_BUILD_ROOT%{_bindir}/adapter.awk install %{SOURCE32} $RPM_BUILD_ROOT%{_bindir}/pldnotify.awk +install %{SOURCE33} $RPM_BUILD_ROOT%{_bindir}/banner.sh install rpmio/ugid.h $RPM_BUILD_ROOT%{_includedir}/rpm -install -d $RPM_BUILD_ROOT%{_sysconfdir}/rpm - %ifarch %{ix86} ix86re=$(echo "(%{ix86})"|sed 's/ /|/g') perl -p -i -e 's/^(buildarchtranslate: '"$ix86re"': ).*/\1%{_target_cpu}/' \ @@ -732,8 +770,8 @@ cat > $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 <