]> git.pld-linux.org Git - packages/rpm.git/blobdiff - rpm.spec
This commit was manufactured by cvs2git to create tag 'auto-ac-rpm-
[packages/rpm.git] / rpm.spec
index 1f1408727f34dc961a7fd8eaa00c8ee33edf502c..a246d1ccc30a0d2f35cef003d9fd0cdbe5a94dff 100644 (file)
--- a/rpm.spec
+++ b/rpm.spec
@@ -1,28 +1,26 @@
 #
 # 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
+# - python(abi) cap is not provided automatically (because /usr/bin/python matches
+#   ELF first; it should be provided by python-libs not binary anyway)
 # 
 # Conditional build:
-%bcond_with    distver # build with distversion field
-%bcond_with    static  # build static rpmi (not supported at the moment)
-%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
+%bcond_with    static          # build static rpmi (not supported at the moment)
+%bcond_without apidocs         # don't generate documentation with doxygen
+%bcond_without autoreqdep      # don't autogenerate package name deps in addition to sonames/perl(X)
+%bcond_without python          # don't build python bindings
+%bcond_without selinux         # build without selinux support
+%bcond_without system_libmagic # don't use system libmagic
+%bcond_with    neon            # build with HTTP/WebDAV support (neon library)
+
 # 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"
 
-%define        snap    20041121
 # versions of required libraries
-%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.188
+%define        reqdb_ver       4.2.52-10
+%define        reqpopt_ver     1.10.2
+%define        beecrypt_ver    2:4.1.2-4
+%define        rpm_macros_rev  1.239
 Summary:       RPM Package Manager
 Summary(de):   RPM Packet-Manager
 Summary(es):   Gestor de paquetes RPM
@@ -32,14 +30,12 @@ Summary(ru):        
 Summary(uk):   íÅÎÅÄÖÅÒ ÐÁËÅԦנצĠRPM
 Name:          rpm
 %define        sover   4.4
-Version:       4.4.1
-Release:       0.2
+Version:       4.4.2
+Release:       10
 License:       GPL
 Group:         Base
-#Source0:      ftp://ftp.rpm.org/pub/rpm/dist/rpm-4.2.x/%{name}-%{version}.%{snap}.tar.gz
-# 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
+# Source0-md5: e24ce468082479fe850c9d6563f56db5
 Source1:       %{name}.groups
 Source2:       %{name}.platform
 Source3:       %{name}-install-tree
@@ -78,13 +74,12 @@ 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
+Patch25:       %{name}-getcwd.patch
 Patch26:       %{name}-notsc.patch
 Patch27:       %{name}-hack-norpmlibdep.patch
 Patch28:       %{name}-makefile-no_myLDADD_deps.patch
@@ -97,42 +92,52 @@ 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/
+
+Patch39:       %{name}-pythondeps.patch
+Patch40:       %{name}-print-requires.patch
+Patch41:       %{name}-reduce-stack-usage.patch
+Patch42:       %{name}-amd64.patch
+Patch43:       %{name}-patch-quote.patch
+Patch44:       %{name}-no-neon.patch
+Patch45:       %{name}-no-sqlite.patch
+Patch46:       %{name}-mono.patch
+Patch47:       %{name}-posttrans.patch
+URL:           http://wraptastic.org/
 Icon:          rpm.gif
 BuildRequires: autoconf >= 2.52
 BuildRequires: automake
 BuildRequires: beecrypt-devel >= %{beecrypt_ver}
-BuildRequires: bzip2-devel >= 1.0.1
-BuildRequires: db4.3-devel >= %{reqdb_ver}
+BuildRequires: bzip2-devel >= 1.0.2-17
+BuildRequires: db-devel >= %{reqdb_ver}
 %{?with_apidocs:BuildRequires: doxygen}
-BuildRequires: elfutils-devel
+BuildRequires: elfutils-devel >= 0.108
 BuildRequires: findutils
 BuildRequires: gettext-devel >= 0.11.4-2
-#BuildRequires:        libmagic-devel
+%{?with_system_libmagic:BuildRequires: libmagic-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
+%if %{with neon}
 BuildRequires: libxml2-devel
 BuildRequires: neon-devel >= 0.24.7-3
+%endif
 BuildRequires: patch >= 2.2
 BuildRequires: popt-devel >= %{reqpopt_ver}
-%{?with_python:BuildRequires:  python-devel >= 2.2}
-BuildRequires: python-modules >= 2.2
+%{?with_python:BuildRequires:  python-devel >= 1:2.3}
+BuildRequires: python-modules >= 1:2.3
 BuildRequires: readline-devel
 BuildRequires: rpm-perlprov
+BuildRequires: rpm-pythonprov
 BuildRequires: zlib-devel
 %if %{with static}
 # Require static library only for static build
 BuildRequires: beecrypt-static >= %{beecrypt_ver}
-BuildRequires: bzip2-static >= 1.0.2-5
-BuildRequires: db4.3-static >= %{reqdb_ver}
+BuildRequires: bzip2-static >= 1.0.2-17
+BuildRequires: db-static >= %{reqdb_ver}
 BuildRequires: glibc-static >= 2.2.94
 BuildRequires: elfutils-static
-#BuildRequires:        libmagic-static
+%{with_system_libmagic:BuildRequires:  libmagic-static}
 %{?with_selinux:BuildRequires: libselinux-static >= 1.18}
 BuildRequires: popt-static >= %{reqpopt_ver}
 BuildRequires: zlib-static
@@ -151,12 +156,13 @@ 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
+%define                ix86    i386 i486 i586 i686 athlon pentium3 pentium4
+%define                x8664   amd64 ia32e x86_64
 
 # stabilize new build environment
-%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                __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                _rpmlibdir /usr/lib/rpm
 
@@ -213,10 +219,12 @@ RPM - 
 Summary:       RPMs library
 Summary(pl):   Biblioteki RPM-a
 Group:         Libraries
-Requires:      db4.3 >= %{reqdb_ver}
-%{?with_selinux:BuildRequires: libselinux >= 1.18}
+Requires:      beecrypt >= %{beecrypt_ver}
+Requires:      db >= %{reqdb_ver}
+%{?with_selinux:Requires:      libselinux >= 1.18}
+%{?with_system_libmagic:Requires:      libmagic >= 1.15-2}
 Requires:      popt >= %{reqpopt_ver}
-%{?with_distver:Provides:      rpm-lib(distver)}
+Obsoletes:     rpm-libs
 # avoid SEGV caused by mixed db versions
 Conflicts:     poldek < 0.18.1-16
 
@@ -238,9 +246,10 @@ Group:             Development/Libraries
 Requires:      %{name}-lib = %{version}-%{release}
 Requires:      beecrypt-devel >= %{beecrypt_ver}
 Requires:      bzip2-devel
-Requires:      db4.3-devel >= %{reqdb_ver}
+Requires:      db-devel >= %{reqdb_ver}
 Requires:      elfutils-devel
 %{?with_selinux:Requires:      libselinux-devel}
+%{?with_system_libmagic:Requires:      libmagic-devel}
 Requires:      popt-devel >= %{reqpopt_ver}
 Requires:      zlib-devel
 
@@ -300,8 +309,9 @@ Group:              Development/Libraries
 Requires:      %{name}-devel = %{version}-%{release}
 Requires:      beecrypt-static >= %{beecrypt_ver}
 Requires:      bzip2-static
-Requires:      db4.3-static >= %{reqdb_ver}
+Requires:      db-static >= %{reqdb_ver}
 Requires:      elfutils-static
+%{?with_system_libmagic:Requires:      libmagic-static}
 Requires:      popt-static >= %{reqpopt_ver}
 Requires:      zlib-static
 
@@ -398,19 +408,14 @@ Requires: chrpath >= 0.10-4
 Requires:      cpio
 Requires:      diffutils
 Requires:      elfutils
-Requires:      file >= 4.01
+Requires:      file >= 4.14-1
 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
-%endif
 Requires:      glibc-devel
 Requires:      grep
 Requires:      gzip
@@ -422,13 +427,13 @@ Requires: sh-utils
 Requires:      tar
 Requires:      textutils
 Provides:      rpmbuild(macros) = %{rpm_macros_rev}
+Provides:      rpmbuild(monoautodeps)
 Provides:      rpmbuild(noauto) = 3
-# because of -fvisibility-inlines-hidden in rpm.macros
-Conflicts:     gcc-c++ < 5:3.4
-%ifarch amd64
+%ifarch %{x8664}
 Conflicts:     automake < 1:1.7.9-2
 Conflicts:     libtool < 2:1.5-13
 %endif
+Obsoletes:     rpmbuild(macros) < %{rpm_macros_rev}
 
 %description build
 Scripts for building binary RPM packages.
@@ -510,6 +515,7 @@ Summary:    Python macros, which simplifies creation of rpm packages with Python so
 Summary(pl):   Makra u³atwiaj±ce tworzenie pakietów rpm z programami napisanymi w Pythonie
 Group:         Applications/File
 Requires:      %{name} = %{version}-%{release}
+Requires:      python
 Requires:      python-modules
 
 %description pythonprov
@@ -595,13 +601,11 @@ ze 
 %patch11 -p1
 %patch12 -p1
 %patch13 -p1
-# home-etc FIXME
-#%patch14 -p1
+%patch14 -p1
 %patch15 -p1
 %patch16 -p1
 %patch17 -p1
 %patch18 -p1
-%patch19 -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
@@ -609,6 +613,8 @@ 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
+echo '%%define __mono_provides /usr/lib/rpm/mono-find-provides' > macros.mono
+echo '%%define __mono_requires /usr/lib/rpm/mono-find-requires' >> macros.mono
 install %{SOURCE5} scripts/find-lang.sh
 install %{SOURCE9} scripts/php.prov.in
 install %{SOURCE10} scripts/php.req.in
@@ -632,13 +638,19 @@ cat %{SOURCE11} >> macros.in
 %patch35 -p0
 %patch36 -p1
 %patch37 -p1
-%{?with_distver:%patch38 -p1}
 %patch39 -p1
 %patch40 -p1
+%patch41 -p1
+%patch42 -p1
+%patch43 -p1
+%{!?with_neon:%patch44 -p1}
+%patch45 -p1
+%patch46 -p1
+%patch47 -p1
 %patch0 -p1
 %patch3 -p1
 
-cd scripts;
+cd scripts
 mv -f perl.req perl.req.in
 mv -f perl.prov perl.prov.in
 cd ..
@@ -646,7 +658,7 @@ cd ..
 mv -f po/{no,nb}.po
 mv -f po/{sr,sr@Latn}.po
 
-rm -rf neon zlib libelf db db3 popt rpmdb/db.h
+rm -rf sqlite zlib db db3 popt rpmdb/db.h
 
 # generate Group translations to *.po
 awk -f %{SOURCE6} %{SOURCE1}
@@ -657,11 +669,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
+%if %{with system_libmagic}
+rm -rf file
+%else
 cd file
 %{__libtoolize}
 %{__aclocal}
@@ -669,6 +680,7 @@ cd file
 %{__autoconf}
 %{__automake}
 cd ..
+%endif
 
 %{__libtoolize}
 %{__gettextize}
@@ -683,15 +695,17 @@ 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
 
+CPPFLAGS="-Dglob=rpm_glob -Dglobfree=rpm_globfree"; export CPPFLAGS
+
 # pass CC and CXX too in case of building with some older configure macro
 %configure \
-       CC="%{__newcc}" \
-       CXX="%{__newcxx}" \
-       CPP="%{__newcpp}" \
+       CC="%{__cc}" \
+       CXX="%{__cxx}" \
+       CPP="%{__cpp}" \
+       %{?with_autoreqdep:--enable-adding-packages-names-in-autogenerated-dependancies} \
        --enable-shared \
        --enable-static \
-       %{?with_apidoc:--with-apidocs} \
-       %{?with_pkgnameinautoreq:--enable-adding-packages-names-in-autogenerated-dependancies} \
+       %{?with_apidocs:--with-apidocs} \
        %{?with_python:--with-python=auto} \
        %{!?with_python:--without-python} \
        %{!?with_selinux:--without-selinux} \
@@ -699,15 +713,13 @@ mv -f macros.tmp macros.in
 
 # 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
@@ -726,6 +738,7 @@ rm $RPM_BUILD_ROOT%{_rpmlibdir}/find-{provides,requires}.perl
 install macros.perl    $RPM_BUILD_ROOT%{_rpmlibdir}/macros.perl
 install macros.python  $RPM_BUILD_ROOT%{_rpmlibdir}/macros.python
 install macros.php     $RPM_BUILD_ROOT%{_rpmlibdir}/macros.php
+install macros.mono    $RPM_BUILD_ROOT%{_rpmlibdir}/macros.mono
 
 install %{SOURCE1} doc/manual/groups
 install %{SOURCE3} $RPM_BUILD_ROOT%{_rpmlibdir}/install-build-tree
@@ -831,6 +844,8 @@ cat > $RPM_BUILD_ROOT%{_sysconfdir}/rpm/noautoreqdep <<EOF
 ^libpsres.so
 ^libxkbfile.so
 ^libxkbui.so
+# -- fam / gamin
+^libfam.so.0
 EOF
 cat > $RPM_BUILD_ROOT%{_sysconfdir}/rpm/noautocompressdoc <<EOF
 # global list of file masks not to be compressed in DOCDIR
@@ -846,6 +861,13 @@ for a in librpm-%{sover}.so librpmdb-%{sover}.so librpmio-%{sover}.so ; do
        ln -s /%{_lib}/$a $RPM_BUILD_ROOT%{_libdir}/$a
 done
 
+# remove arch dependant macros which have no use on noarch
+sed -i -e '
+/{__spec_install_post_strip}/d
+/{__spec_install_post_chrpath}/d
+/{__spec_install_post_compress_modules}/d
+' $RPM_BUILD_ROOT%{_rpmlibdir}/noarch-linux/macros
+
 %py_ocomp $RPM_BUILD_ROOT%{py_sitedir}
 %py_comp $RPM_BUILD_ROOT%{py_sitedir}
 
@@ -937,7 +959,7 @@ find %{_rpmlibdir} -name '*-linux' -type l | xargs rm -f
 %attr(755,root,root) %{_bindir}/rpmcache
 %attr(755,root,root) %{_bindir}/rpmdeps
 %attr(755,root,root) %{_bindir}/rpmgraph
-%attr(755,root,root) %{_bindir}/rpmfile
+%{!?with_system_libmagic:%attr(755,root,root) %{_bindir}/rpmfile}
 %attr(755,root,root) %{_rpmlibdir}/find-debuginfo.sh
 %attr(755,root,root) %{_rpmlibdir}/rpm2cpio.sh
 %attr(755,root,root) %{_rpmlibdir}/tgpg
@@ -1009,6 +1031,7 @@ find %{_rpmlibdir} -name '*-linux' -type l | xargs rm -f
 %endif
 %ifarch amd64
 %{_rpmlibdir}/amd64*
+%{_rpmlibdir}/x86_64*
 %endif
 %ifarch ia64
 %{_rpmlibdir}/ia64*
@@ -1023,6 +1046,7 @@ find %{_rpmlibdir} -name '*-linux' -type l | xargs rm -f
 %{_rpmlibdir}/sparc*
 %endif
 # must be here for "Requires: rpm-*prov" to work
+%{_rpmlibdir}/macros.mono
 %{_rpmlibdir}/macros.perl
 %{_rpmlibdir}/macros.php
 # not used yet ... these six depend on perl
@@ -1073,11 +1097,8 @@ find %{_rpmlibdir} -name '*-linux' -type l | xargs rm -f
 %if %{with python}
 %files -n python-rpm
 %defattr(644,root,root,755)
-%attr(755,root,root) %{py_sitedir}/*.so
 %attr(755,root,root) %{py_sitedir}/rpm/*.so
 %attr(755,root,root) %{py_sitedir}/rpm/*.py[co]
-%attr(755,root,root) %{py_sitedir}/rpmdb/*.so
-%{py_sitedir}/rpmdb/*.py*
 %endif
 
 %if %{with apidocs}
This page took 0.046379 seconds and 4 git commands to generate.