X-Git-Url: http://git.pld-linux.org/?p=packages%2Frpm.git;a=blobdiff_plain;f=rpm.spec;h=88040816c72f8327aa79f691ee0d0a0730523abe;hp=ad79f0db527c334f8d7c56d2f0b46e515a2a8ee3;hb=0931d8aea08f6a65907cd54cb699fcc2693a89b6;hpb=bb75684277c021eaf8f6b4965cf5526cfeb4dafa diff --git a/rpm.spec b/rpm.spec index ad79f0d..8804081 100644 --- a/rpm.spec +++ b/rpm.spec @@ -1,23 +1,26 @@ # # TODO: -# - use system libmagic not internal libfmagic -# - when really needed: _noauto{req,prov} for non-helper-generated deps -# +# - 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_without 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 20040107 +%define snap 20041118 # 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.143 +%define beecrypt_ver 2:4.1.0 +%define rpm_macros_rev 1.167 Summary: RPM Package Manager Summary(de): RPM Packet-Manager Summary(es): Gestor de paquetes RPM @@ -26,14 +29,15 @@ Summary(pt_BR): Gerenciador de pacotes RPM Summary(ru): íÅÎÅÄÖÅÒ ÐÁËÅÔÏ× ÏÔ RPM Summary(uk): íÅÎÅÄÖÅÒ ÐÁËÅÔ¦× ×¦Ä RPM Name: rpm -%define ver 4.3 +%define ver 4.4 +%define sover 4.3 Version: %{ver} -Release: 0.%{snap}.12 +Release: 0.%{snap}.0.1 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: c1bc4a2ae441fbd4da8dd90149bab2f2 +# Source0-md5: 5033d2c69d8db97ab0886e48743e96c7 Source1: %{name}.groups Source2: %{name}.platform Source3: %{name}-install-tree @@ -46,16 +50,16 @@ 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 -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 -Patch6: %{name}-glob.patch Patch7: %{name}-noexpand.patch Patch8: %{name}-scripts-closefds.patch Patch9: %{name}-python-macros.patch @@ -67,7 +71,6 @@ 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 @@ -82,15 +85,16 @@ 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 -Patch34: %{name}-nls-fixes.patch Patch35: %{name}-missing-prototypes.patch Patch36: %{name}-pld-autodep.patch Patch37: %{name}-rpmsq.patch -Patch38: %{name}-file-readelf.patch -Patch39: %{name}-pentiumX.patch Patch40: %{name}-epoch0.patch -Patch41: %{name}-file-readelf-fix.patch +Patch43: %{name}-perl_req-INC_dirs.patch +Patch44: %{name}-debuginfo.patch +Patch45: %{name}-beecrypt4.patch +Patch46: %{name}-doxygen_hack.patch +Patch47: %{name}-distver.patch +Patch100: %{name}-pl.po.patch URL: http://www.rpm.org/ Icon: rpm.gif BuildRequires: autoconf >= 2.52 @@ -98,16 +102,22 @@ BuildRequires: automake BuildRequires: beecrypt-devel >= %{beecrypt_ver} BuildRequires: bzip2-devel >= 1.0.1 BuildRequires: db-devel >= %{reqdb_ver} -%{?with_doc:BuildRequires: doxygen} -BuildRequires: gettext-devel >= 0.11.4-2 +%{?with_apidocs:BuildRequires: doxygen} BuildRequires: elfutils-devel +BuildRequires: findutils +BuildRequires: gettext-devel >= 0.11.4-2 #BuildRequires: libmagic-devel -BuildRequires: libselinux-devel +%{?with_selinux:BuildRequires: libselinux-devel} +# needed only for AM_PROG_CXX used for CXX substitution in rpm.macros +BuildRequires: libstdc++-devel BuildRequires: libtool +BuildRequires: libxml2-devel +BuildRequires: neon-devel 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 @@ -119,10 +129,11 @@ BuildRequires: db-static >= %{reqdb_ver} BuildRequires: glibc-static >= 2.2.94 BuildRequires: elfutils-static #BuildRequires: libmagic-static -BuildRequires: libselinux-static +%{?with_selinux:BuildRequires: libselinux-static} 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} @@ -136,11 +147,12 @@ BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n) # don't require very fresh rpm.macros to build %define __gettextize gettextize --copy --force --intl ; cp -f po/Makevars{.template,} +%define ix86 i386 i486 i586 i686 athlon pentium3 pentium4 # stabilize new build environment -%define __cc %{?force_cc}%{!?force_cc:%{_target_cpu}-pld-linux-gcc} -%define __cxx %{?force_cxx}%{!?force_cxx:%{_target_cpu}-pld-linux-g++} -%define __cpp %{?force_cpp}%{!?force_cpp:%{_target_cpu}-pld-linux-gcc -E} +%define __newcc %{?force_cc}%{!?force_cc:%{_target_cpu}-pld-linux-gcc} +%define __newcxx %{?force_cxx}%{!?force_cxx:%{_target_cpu}-pld-linux-g++} +%define __newcpp %{?force_cpp}%{!?force_cpp:%{_target_cpu}-pld-linux-gcc -E} %define _rpmlibdir /usr/lib/rpm @@ -207,7 +219,7 @@ Requires: beecrypt-devel >= %{beecrypt_ver} Requires: bzip2-devel Requires: db-devel >= %{reqdb_ver} Requires: elfutils-devel -Requires: libselinux-devel +%{?with_selinux:Requires: libselinux-devel} Requires: popt-devel >= %{reqpopt_ver} Requires: zlib-devel @@ -434,6 +446,7 @@ Summary(pl): Biblioteki RPM-a Group: Libraries Requires: db >= %{reqdb_ver} Requires: popt >= %{reqpopt_ver} +%{?with_distver:Provides: rpm-lib(distver)} # avoid SEGV caused by mixed db versions Conflicts: poldek < 0.18.1-16 @@ -457,7 +470,9 @@ Requires: /bin/id Requires: awk Requires: binutils Requires: chrpath >= 0.10-4 +Requires: cpio Requires: diffutils +Requires: elfutils Requires: file >= 4.01 Requires: fileutils Requires: findutils @@ -466,10 +481,6 @@ Requires: gcc >= 3.0.3 %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 Requires: gzip @@ -481,6 +492,11 @@ Requires: sh-utils Requires: tar Requires: textutils Provides: rpmbuild(macros) = %{rpm_macros_rev} +Provides: rpmbuild(noauto) = 3 +%ifarch amd64 +Conflicts: automake < 1:1.7.9-2 +Conflicts: libtool < 2:1.5-13 +%endif %description build Scripts for building binary RPM packages. @@ -537,15 +553,29 @@ construir pacotes usando o RPM. ò¦ÚÎÏÍÁΦÔΦ ÄÏÐÏͦÖΦ ÓËÒÉÐÔÉ ÔÁ ÕÔÉ̦ÔÉ, Ñ˦ ×ÉËÏÒÉÓÔÏ×ÕÀÔØÓÑ ÄÌÑ ÐÏÂÕÄÏ×É RPM'¦×. +%if %{with apidocs} +%package apidocs +Summary: rpm API documentation and guides +Summary(pl): Documentacja API rpm 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 oraz przewodniki w formacie html generowana +ze ¼rode³ rpm przez doxygen. +%endif + %prep -%setup -q -%patch0 -p1 +%setup -q -n %{name} %patch1 -p1 %patch2 -p1 -%patch3 -p1 +# temporarily moved after patch100 - messes too much in pl.po +#%patch3 -p1 %patch4 -p1 %patch5 -p1 -%patch6 -p1 %patch7 -p1 %patch8 -p1 %patch9 -p1 @@ -554,17 +584,17 @@ construir pacotes usando o RPM. %patch12 -p1 %patch13 -p1 %patch14 -p1 -%patch15 -p1 +# home-etc FIXME +#%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 /usr/lib/rpm/perl.prov' > macros.perl -echo '%%define __perl_requires /usr/lib/rpm/perl.req' >> macros.perl +echo '%%define __perl_provides %%{__perl} /usr/lib/rpm/perl.prov' > macros.perl +echo '%%define __perl_requires %%{__perl} /usr/lib/rpm/perl.req' >> macros.perl echo '# obsoleted file' > macros.python echo '%%define __php_provides /usr/lib/rpm/php.prov' > macros.php echo '%%define __php_requires /usr/lib/rpm/php.req' >> macros.php @@ -584,15 +614,20 @@ cat %{SOURCE11} >> macros.in %patch30 -p1 %patch31 -p1 %patch32 -p1 -%patch33 -p1 -%patch34 -p1 %patch35 -p1 %patch36 -p1 %patch37 -p1 -%patch38 -p1 -%patch39 -p1 %patch40 -p1 -%patch41 -p1 +%patch43 -p0 +%patch44 -p1 +# OBSOLETE +#%patch45 -p1 +# NEEDS UPDATE +# %patch46 -p1 +%{?with_distver:%patch47 -p1} +# NEEDS UPDATE +#%patch100 -p1 +%patch3 -p1 cd scripts; mv -f perl.req perl.req.in @@ -602,7 +637,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} @@ -613,6 +648,10 @@ for f in doc{,/ja,/pl}/rpm.8 doc{,/ja,/pl}/rpmbuild.8 ; do mv -f ${f}.tmp $f done +# ... and make some cleanings +rm -fr $(find ./ -type d -name CVS ) +rm -f $(find ./ -type f -name ".cvsignore" ) + %build cd file %{__libtoolize} @@ -631,34 +670,40 @@ cd .. # config.guess doesn't handle athlon, so we have to change it by hand. # rpm checks for CPU type at runtime, but it looks better -sed -e 's|@host@|%{_target_cpu}-%{_target_vendor}-linux-gnu|' \ - -e 's|@host_cpu@|%{_target_cpu}|' macros.in > macros.tmp +sed -e 's|@host@|%{_target_cpu}-%{_target_vendor}-linux-gnu|' \ + -e 's|@host_cpu@|%{_target_cpu}|' macros.in > macros.tmp mv -f macros.tmp macros.in # pass CC and CXX too in case of building with some older configure macro %configure \ - CC="%{__cc}" \ - CXX="%{__cxx}" \ - CPP="%{__cpp}" \ + CC="%{__newcc}" \ + CXX="%{__newcxx}" \ + 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} \ --without-db # file_LDFLAGS, debugedit_LDADD - no need to link "file" and "debugedit" statically %{__make} \ + CC="%{__cc}" \ + CXX="%{__cxx}" \ + CPP="%{__cpp}" \ pylibdir=%{py_libdir} \ myLDFLAGS="%{rpmldflags}" \ file_LDFLAGS= \ 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 \ @@ -678,8 +723,10 @@ 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 @@ -687,8 +734,6 @@ install %{SOURCE32} $RPM_BUILD_ROOT%{_bindir}/pldnotify.awk 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}/' \ @@ -703,8 +748,8 @@ 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 <