#
# TODO:
-# - 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_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
+%bcond_with static # build static rpm+rpmi
+%bcond_without apidocs # don't generate documentation with doxygen
+%bcond_with autoreqdep # 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 20040614
# versions of required libraries
-%define reqdb_ver 4.2.50-1
-%define reqpopt_ver 1.9
-%define beecrypt_ver 2:4.0.0
-%define rpm_macros_rev 1.167
+%define reqdb_ver 4.4.20
+%define reqpopt_ver 1.10.5
+%define beecrypt_ver 2:4.1.2-4
Summary: RPM Package Manager
Summary(de): RPM Packet-Manager
Summary(es): Gestor de paquetes RPM
Summary(ru): íÅÎÅÄÖÅÒ ÐÁËÅÔÏ× ÏÔ RPM
Summary(uk): íÅÎÅÄÖÅÒ ÐÁËÅÔ¦× ×¦Ä RPM
Name: rpm
-%define ver 4.4
-%define sover 4.3
-Version: %{ver}
-Release: 0.%{snap}.0.8
+%define sover 4.4
+Version: 4.4.5
+Release: 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: a91b8e17f6e69208b188d2876e80aef9
+Source0: ftp://jbj.org/pub/rpm-4.4.x/%{name}-%{version}.tar.gz
+# Source0-md5: d5f434789c0c56d05d77be6f4262a561
Source1: %{name}.groups
Source2: %{name}.platform
Source3: %{name}-install-tree
Source8: %{name}-check-files
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
+Source34: php-pear-build-macros
+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
-Patch39: %{name}-no_version_check_in_obsoletes.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
+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}-rpmdeps-segv.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}-link.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}-getcwd.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}-empty-rpmlock-path.patch
+Patch39: %{name}-pythondeps.patch
+Patch40: %{name}-print-requires.patch
+Patch41: %{name}-reduce-stack-usage.patch
+Patch42: %{name}-old-fileconflicts-behaviour.patch
+Patch43: %{name}-patch-quote.patch
+Patch44: %{name}-no-neon.patch
+Patch45: %{name}-no-sqlite.patch
+Patch46: %{name}-mono.patch
+
+Patch48: %{name}-requireseq.patch
+Patch49: %{name}-p4.patch
+Patch50: %{name}-macros.patch
+Patch51: %{name}-cleanlibdirs.patch
+Patch52: %{name}-morearchs.patch
+URL: http://wraptastic.org/
BuildRequires: autoconf >= 2.52
BuildRequires: automake
BuildRequires: beecrypt-devel >= %{beecrypt_ver}
-BuildRequires: bzip2-devel >= 1.0.1
+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_selinux:BuildRequires: libselinux-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.25.5
+%endif
BuildRequires: patch >= 2.2
BuildRequires: popt-devel >= %{reqpopt_ver}
-%{?with_python:BuildRequires: python-devel >= 2.2}
-BuildRequires: python-modules >= 2.2
-BuildRequires: readline-devel
+%{?with_python:BuildRequires: python-devel >= 1:2.3}
+BuildRequires: python-modules >= 1:2.3
BuildRequires: rpm-perlprov
-BuildRequires: rpm-pythonprov
+%{?with_python: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: bzip2-static >= 1.0.2-17
BuildRequires: db-static >= %{reqdb_ver}
BuildRequires: glibc-static >= 2.2.94
BuildRequires: elfutils-static
-#BuildRequires: libmagic-static
-%{?with_selinux:BuildRequires: libselinux-static}
+%{?with_system_libmagic:BuildRequires: libmagic-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}-base = %{version}-%{release}
Requires: %{name}-lib = %{version}-%{release}
%{!?with_static:Obsoletes: rpm-utils-static}
Conflicts: glibc < 2.2.92
# 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 ppc ppc ppc7400 ppc7450
+%define x8664 amd64 ia32e x86_64
# stabilize new build environment
%define __newcc %{?force_cc}%{!?force_cc:%{_target_cpu}-pld-linux-gcc}
%define _rpmlibdir /usr/lib/rpm
+%define specflags -fno-strict-aliasing
+
%description
RPM is a powerful package manager, which can be used to build,
install, query, verify, update, and uninstall individual software
ÓÌÕÖÂÏ×ϧ ¦ÎÆÏÒÍÁæ§, ÝÏ Í¦ÓÔÉÔØ ÎÁÚ×Õ, ×ÅÒÓ¦À, ÏÐÉÓ ÔÁ ¦ÎÛÕ
¦ÎÆÏÒÍÁæÀ ÐÒÏ ÐÁËÅÔ.
+%package base
+Summary: RPM base package - scripts used by rpm packages themselves
+Summary(pl): Podstawowy pakiet RPM - skrypty u¿ywane przez same pakiety rpm
+Group: Base
+Obsoletes: vserver-rpm
+
+%description base
+The RPM base package contains scripts used by rpm packages themselves.
+These include:
+- scripts for adding/removing groups and users needed for rpm
+ packages,
+- banner.sh to display %%banner messages from rpm scriptlets.
+
+%description base -l pl
+Pakiet podstawowy RPM zwiera skrypty u¿ywane przez same pakiety rpm.
+Zawiera on:
+- skrypty dodaj±ce/usuwaj±ce grupy i u¿ytkowników dla pakietów rpm,
+- banner.sh do pokazywania komunikatów %%banner dla skryptletów rpm.
+
+%package lib
+Summary: RPMs library
+Summary(pl): Biblioteki RPM-a
+Group: Libraries
+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}
+Obsoletes: rpm-libs
+# 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
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
Requires: bzip2-static
Requires: db-static >= %{reqdb_ver}
Requires: elfutils-static
+%{?with_system_libmagic:Requires: libmagic-static}
Requires: popt-static >= %{reqpopt_ver}
Requires: zlib-static
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}
-%{?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 build
Summary: Scripts for building binary RPM packages
Summary(de): Scripts fürs Bauen binärer RPM-Pakete
Summary(uk): óËÒÉÐÔÉ ÔÁ ÕÔÉ̦ÔÉ, ÎÅÏÂȦÄΦ ÄÌÑ ÐÏÂÕÄÏ×É ÐÁËÅÔ¦×
Group: Applications/File
Requires(pre): findutils
+Requires: %{name}-build-macros >= 1.284
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: file >= 4.14-1
Requires: fileutils
Requires: findutils
-%ifarch athlon
-Requires: gcc >= 3.0.3
-%else
-Requires: gcc
-%endif
+Requires: gcc >= 5:3.4
Requires: glibc-devel
Requires: grep
Requires: gzip
Requires: make
Requires: patch
-Requires: popt >= 1.7
Requires: sed
Requires: sh-utils
Requires: tar
Requires: textutils
-Provides: rpmbuild(macros) = %{rpm_macros_rev}
+Provides: rpmbuild(monoautodeps)
Provides: rpmbuild(noauto) = 3
-%ifarch amd64
+%ifarch %{x8664}
Conflicts: automake < 1:1.7.9-2
Conflicts: libtool < 2:1.5-13
%endif
ò¦ÚÎÏÍÁΦÔΦ ÄÏÐÏͦÖΦ ÓËÒÉÐÔÉ ÔÁ ÕÔÉ̦ÔÉ, Ñ˦ ×ÉËÏÒÉÓÔÏ×ÕÀÔØÓÑ ÄÌÑ
ÐÏÂÕÄÏ×É RPM'¦×.
-%if %{with apidocs}
-%package apidocs
-Summary: rpm API documentation and guides
-Summary(pl): Documentacja API rpm i przewodniki.
+%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
+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}
+Requires: php-pear-PEAR >= 1:1.4.0-0.b1.3
+Requires: php-zlib
+Requires: sed >= 4.0
+
+%description php-pearprov
+Additional utilities for checking php pear provides/requires in rpm
+packages.
+
+This package provides rpm macros and dependencies to help building
+PEAR packages.
+
+%description php-pearprov -l pl
+Dodatkowe narzêdzia do sprawdzenia zale¿no¶ci skryptów php pear w
+pakietach rpm.
+
+Ten pakiet dostarcza makra rpm-a i zale¿no¶ci pomagaj±ce przy
+budowaniu pakietów PEAR-a.
+
+%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
+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
+Dokumentacja API RPM-a oraz przewodniki w formacie HTML generowane
+ze ¼rode³ RPM-a przez doxygen.
%prep
-%setup -q -n %{name}
+%setup -q
+%patch0 -p1
%patch1 -p1
%patch2 -p1
-# temporarily moved after patch100 - messes too much in pl.po
-#%patch3 -p1
+%patch3 -p1
%patch4 -p1
%patch5 -p1
+%patch6 -p1
%patch7 -p1
%patch8 -p1
%patch9 -p1
%patch12 -p1
%patch13 -p1
%patch14 -p1
-# home-etc FIXME
-#%patch15 -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
+#cp -f platform.in macros.pld.in # what for?
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
+install %{SOURCE34} 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
install %{SOURCE12} scripts/perl.prov
-cat %{SOURCE11} >> macros.in
+%patch19 -p1
+%patch20 -p1
+%patch21 -p1
%patch22 -p1
%patch23 -p1
%patch24 -p1
%patch31 -p1
%patch32 -p1
%patch33 -p1
-%patch35 -p1
+%patch34 -p1
+%patch35 -p0
%patch36 -p1
%patch37 -p1
%patch38 -p1
%patch39 -p1
%patch40 -p1
%patch41 -p1
-%patch43 -p0
-%patch44 -p1
+%patch42 -p1
+%patch43 -p1
+%{!?with_neon:%patch44 -p1}
%patch45 -p1
%patch46 -p1
-%{?with_distver:%patch47 -p1}
-%patch100 -p1
-%patch3 -p1
-cd scripts;
+%patch48 -p1
+%patch49 -p1
+%patch50 -p1
+%patch51 -p1
+%patch52 -p1
+
+cd scripts
mv -f perl.req perl.req.in
mv -f perl.prov perl.prov.in
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 sqlite zlib db db3 popt rpmdb/db.h
# generate Group translations to *.po
awk -f %{SOURCE6} %{SOURCE1}
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}
%{__autoconf}
%{__automake}
cd ..
+%endif
%{__libtoolize}
%{__gettextize}
-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
+# disable perl-RPM2 build, we have it in separate spec
%configure \
CC="%{__newcc}" \
CXX="%{__newcxx}" \
CPP="%{__newcpp}" \
+ WITH_PERL_VERSION=no \
+ %{?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} \
pylibdir=%{py_libdir} \
myLDFLAGS="%{rpmldflags}" \
file_LDFLAGS= \
- debugedit_LDADD="\$(WITH_LIBELF_LIB) -lpopt"
+ debugedit_LDADD="\$(WITH_LIBELF_LIB) -lpopt" \
+ staticLDFLAGS=%{?with_static:-all-static}
-# %{!?with_static:rpm_LDFLAGS="\$(myLDFLAGS)"} \
%{?with_apidocs:%{__make} doxygen}
%install
rm -rf $RPM_BUILD_ROOT
-install -d $RPM_BUILD_ROOT{/%{_lib},/etc/sysconfig,%{_sysconfdir}/rpm}
+install -d $RPM_BUILD_ROOT{/%{_lib},/etc/sysconfig,%{_sysconfdir}/rpm,/var/lib/banner}
%{__make} install \
DESTDIR=$RPM_BUILD_ROOT \
+ staticLDFLAGS=%{?with_static:-all-static} \
pylibdir=%{py_libdir} \
pkgbindir="%{_bindir}"
+%ifarch %{ppc}
+sed -e '/_target_platform/s/[%]{_target_cpu}/ppc/' \
+ -i $RPM_BUILD_ROOT%{_rpmlibdir}/ppc74[05]0-linux/macros
+%endif
+
rm $RPM_BUILD_ROOT%{_rpmlibdir}/vpkg-provides*
rm $RPM_BUILD_ROOT%{_rpmlibdir}/find-{prov,req}.pl
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
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
# global list of capabilities (SONAME, perl(module), php(module) regexps)
# which don't generate dependencies on package NAMES
# -- OpenGL implementation
-^libGL.so.1$
-^libGLU.so.1$
+^libGL.so.1
+^libGLU.so.1
^libOSMesa.so
# -- Glide
-^libglide3.so.3$
+^libglide3.so.3
# -- mozilla
-^libgtkmozembed.so$
-^libgtksuperwin.so$
-^libxpcom.so$
+^libgtkmozembed.so
+^libgtksuperwin.so
+^libxpcom.so
# -- X11 implementation
^libFS.so
^libI810XvMC.so
^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
ln -s /%{_lib}/$a $RPM_BUILD_ROOT%{_libdir}/$a
done
-for f in $RPM_BUILD_ROOT%{_datadir}/locale/{en_RN,eu_ES,gl,hu,ro,wa,zh,zh_CN.GB2312}/LC_MESSAGES/rpm.mo ; do
- [ "`file $f | sed -e 's/.*,//' -e 's/message.*//'`" -le 1 ] && rm -f $f
-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}
+
+rm -f $RPM_BUILD_ROOT%{py_sitedir}/rpm/*.{la,a,py}
+
+# (currently) not used or supported in PLD
+rm -f $RPM_BUILD_ROOT%{_rpmlibdir}/{Specfile.pm,cpanflute,cpanflute2,find-provides,find-requires,freshen.sh,http.req,magic.prov,magic.req,perldeps.pl,sql.prov,sql.req,tcl.req}
+# wrong location, not used anyway
+rm -f $RPM_BUILD_ROOT%{_rpmlibdir}/rpm.{daily,log,xinetd}
+
%find_lang %{name}
rm -rf manual
%files -f %{name}.lang
%defattr(644,root,root,755)
-%doc RPM-PGP-KEY CHANGES manual
+%doc RPM-PGP-KEY CHANGES manual/*
%attr(755,root,root) /bin/rpm
#%attr(755,root,root) %{_bindir}/rpmdb
#%attr(755,root,root) %{_bindir}/rpmverify
%dir %{_sysconfdir}/rpm
-%config(noreplace) %verify(not size mtime md5) %{_sysconfdir}/rpm/macros
-%config(noreplace) %verify(not size mtime md5) /etc/sysconfig/rpm
+%config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/rpm/macros
%{_mandir}/man8/rpm.8*
%lang(fr) %{_mandir}/fr/man8/rpm.8*
%dir /var/lock/rpm
/var/lock/rpm/transaction
-%dir %{_rpmlibdir}
#%attr(755,root,root) %{_rpmlibdir}/rpmd
#%{!?with_static:%attr(755,root,root) %{_rpmlibdir}/rpm[eiu]}
#%attr(755,root,root) %{_rpmlibdir}/rpmk
#%attr(755,root,root) %{_rpmlibdir}/rpm[qv]
%doc %attr(755,root,root) %{_rpmlibdir}/convertrpmrc.sh
-%attr(755,root,root) %{_rpmlibdir}/user_group.sh
%{_rpmlibdir}/rpmrc
%{_rpmlibdir}/rpmpopt*
%{_rpmlibdir}/macros
+%files base
+%defattr(644,root,root,755)
+%config(noreplace) %verify(not md5 mtime size) /etc/sysconfig/rpm
+%dir %{_rpmlibdir}
+%attr(755,root,root) %{_bindir}/banner.sh
+%attr(755,root,root) %{_rpmlibdir}/user_group.sh
+%dir /var/lib/banner
+
%files lib
%defattr(644,root,root,755)
%attr(755,root,root) /%{_lib}/librpm*-*.so
%attr(755,root,root) %{_libdir}/librpm*-*.so
+%files devel
+%defattr(644,root,root,755)
+%{_includedir}/rpm
+%{_libdir}/librpm*.la
+%attr(755,root,root) %{_libdir}/librpm.so
+%attr(755,root,root) %{_libdir}/librpm-%{sover}.so
+%attr(755,root,root) %{_libdir}/librpmio.so
+%attr(755,root,root) %{_libdir}/librpmio-%{sover}.so
+%attr(755,root,root) %{_libdir}/librpmdb.so
+%attr(755,root,root) %{_libdir}/librpmdb-%{sover}.so
+%attr(755,root,root) %{_libdir}/librpmbuild.so
+
+%files static
+%defattr(644,root,root,755)
+%{_libdir}/librpm*.a
+
+%files utils
+%defattr(644,root,root,755)
+%attr(755,root,root) %{_bindir}/debugedit
+%attr(755,root,root) %{_bindir}/rpm2cpio
+%attr(755,root,root) %{_bindir}/rpmcache
+%attr(755,root,root) %{_bindir}/rpmdeps
+%attr(755,root,root) %{_bindir}/rpmgraph
+%{!?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
+%attr(755,root,root) %{_rpmlibdir}/rpmdb_loadcvt
+%{_mandir}/man8/rpm2cpio.8*
+%{_mandir}/man8/rpmdeps.8*
+%{_mandir}/man8/rpmcache.8*
+%{_mandir}/man8/rpmgraph.8*
+%lang(ja) %{_mandir}/ja/man8/rpm2cpio.8*
+%lang(ja) %{_mandir}/ja/man8/rpmcache.8*
+%lang(ja) %{_mandir}/ja/man8/rpmgraph.8*
+%lang(ko) %{_mandir}/ko/man8/rpm2cpio.8*
+%lang(pl) %{_mandir}/pl/man8/rpm2cpio.8*
+%lang(pl) %{_mandir}/pl/man8/rpmdeps.8*
+%lang(pl) %{_mandir}/pl/man8/rpmcache.8*
+%lang(pl) %{_mandir}/pl/man8/rpmgraph.8*
+%lang(ru) %{_mandir}/ru/man8/rpm2cpio.8*
+
+%files utils-perl
+%defattr(644,root,root,755)
+%attr(755,root,root) %{_rpmlibdir}/rpmdiff*
+
+%if %{with static}
+%files utils-static
+%defattr(644,root,root,755)
+%attr(755,root,root) %{_bindir}/rpm[ieu]
+%attr(755,root,root) %{_rpmlibdir}/rpm[ieu]
+%endif
+
%files build
%defattr(644,root,root,755)
-%config(noreplace) %verify(not size mtime md5) %{_sysconfdir}/rpm/noauto*
+%config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/rpm/noauto*
+%attr(755,root,root) %{_rpmlibdir}/brp-*
+%attr(755,root,root) %{_rpmlibdir}/check-files
+%attr(755,root,root) %{_rpmlibdir}/check-prereqs
%attr(755,root,root) %{_rpmlibdir}/compress-doc
+%attr(755,root,root) %{_rpmlibdir}/config.*
%attr(755,root,root) %{_rpmlibdir}/cross-build
-#%attr(755,root,root) %{_rpmlibdir}/find-provides
-#%attr(755,root,root) %{_rpmlibdir}/find-provides-wrapper
-#%attr(755,root,root) %{_rpmlibdir}/find-requires
-#%attr(755,root,root) %{_rpmlibdir}/find-requires-wrapper
-#%attr(755,root,root) %{_rpmlibdir}/find-rpm-provides
%attr(755,root,root) %{_rpmlibdir}/find-spec-bcond
%attr(755,root,root) %{_rpmlibdir}/find-lang.sh
-%attr(755,root,root) %{_rpmlibdir}/mkinstalldirs
-%attr(755,root,root) %{_rpmlibdir}/config.*
%attr(755,root,root) %{_rpmlibdir}/getpo.sh
%attr(755,root,root) %{_rpmlibdir}/install-build-tree
-%attr(755,root,root) %{_rpmlibdir}/brp-*
-%attr(755,root,root) %{_rpmlibdir}/check-files
-%attr(755,root,root) %{_rpmlibdir}/check-prereqs
-#%attr(755,root,root) %{_rpmlibdir}/cpanflute
-#%attr(755,root,root) %{_rpmlibdir}/cpanflute2
-#%attr(755,root,root) %{_rpmlibdir}/Specfile.pm
+%attr(755,root,root) %{_rpmlibdir}/mkinstalldirs
%attr(755,root,root) %{_rpmlibdir}/u_pkg.sh
-#%attr(755,root,root) %{_rpmlibdir}/vpkg-provides.sh
-#%attr(755,root,root) %{_rpmlibdir}/vpkg-provides2.sh
+%attr(755,root,root) %{_rpmlibdir}/executabledeps.sh
+# needs jar (any jdk), jcf-dump (gcc-java) to work
+%attr(755,root,root) %{_rpmlibdir}/javadeps.sh
+%attr(755,root,root) %{_rpmlibdir}/libtooldeps.sh
+# needs hacked pkg-config to return anything
+%attr(755,root,root) %{_rpmlibdir}/pkgconfigdeps.sh
%attr(755,root,root) %{_rpmlibdir}/rpmb
%attr(755,root,root) %{_rpmlibdir}/rpmt
%{_rpmlibdir}/noarch-*
%ifarch alpha
%{_rpmlibdir}/alpha*
%endif
-%ifarch amd64
-%{_rpmlibdir}/amd64*
-%endif
%ifarch ia64
%{_rpmlibdir}/ia64*
%endif
%ifarch mips mipsel mips64 mips64el
%{_rpmlibdir}/mips*
%endif
-%ifarch ppc
+%ifarch %{ppc}
%{_rpmlibdir}/ppc*
%endif
%ifarch sparc sparc64
%{_rpmlibdir}/sparc*
%endif
+%ifarch %{x8664}
+%{_rpmlibdir}/x86_64*
+%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
%lang(pl) %{_mandir}/pl/man1/gendiff.1*
%lang(pl) %{_mandir}/pl/man8/rpmbuild.8*
-%files devel
-%defattr(644,root,root,755)
-%{_includedir}/rpm
-%{_libdir}/librpm*.la
-%attr(755,root,root) %{_libdir}/librpm.so
-%attr(755,root,root) %{_libdir}/librpmio.so
-%attr(755,root,root) %{_libdir}/librpmdb.so
-%attr(755,root,root) %{_libdir}/librpmbuild.so
-
-%files static
-%defattr(644,root,root,755)
-%{_libdir}/librpm*.a
-
-%files utils
-%defattr(644,root,root,755)
-%attr(755,root,root) %{_bindir}/debugedit
-%attr(755,root,root) %{_bindir}/rpm2cpio
-%attr(755,root,root) %{_bindir}/rpmcache
-%attr(755,root,root) %{_bindir}/rpmdeps
-%attr(755,root,root) %{_bindir}/rpmgraph
-%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
-%attr(755,root,root) %{_rpmlibdir}/rpmdb_loadcvt
-%{_mandir}/man8/rpm2cpio.8*
-%{_mandir}/man8/rpmdeps.8*
-%{_mandir}/man8/rpmcache.8*
-%{_mandir}/man8/rpmgraph.8*
-%lang(ja) %{_mandir}/ja/man8/rpm2cpio.8*
-%lang(ja) %{_mandir}/ja/man8/rpmcache.8*
-%lang(ja) %{_mandir}/ja/man8/rpmgraph.8*
-%lang(ko) %{_mandir}/ko/man8/rpm2cpio.8*
-%lang(pl) %{_mandir}/pl/man8/rpm2cpio.8*
-%lang(pl) %{_mandir}/pl/man8/rpmdeps.8*
-%lang(pl) %{_mandir}/pl/man8/rpmcache.8*
-%lang(pl) %{_mandir}/pl/man8/rpmgraph.8*
-%lang(ru) %{_mandir}/ru/man8/rpm2cpio.8*
-
-%files utils-perl
-%defattr(644,root,root,755)
-%attr(755,root,root) %{_rpmlibdir}/rpmdiff*
-# not here
-#%%{_rpmlibdir}/rpm.daily
-#%%{_rpmlibdir}/rpm.log
-#%%{_rpmlibdir}/rpm.xinetd
-
-
-%if %{with static}
-%files utils-static
+%files build-tools
%defattr(644,root,root,755)
-%attr(755,root,root) %{_bindir}/rpm[ieu]
-%attr(755,root,root) %{_rpmlibdir}/rpm[ieu]
-%endif
+%attr(755,root,root) %{_bindir}/builder
+%attr(755,root,root) %{_bindir}/adapter.awk
+%attr(755,root,root) %{_bindir}/pldnotify.awk
%files perlprov
%defattr(644,root,root,755)
%files pythonprov
%defattr(644,root,root,755)
%{_rpmlibdir}/macros.python
+%attr(755,root,root) %{_rpmlibdir}/pythondeps.sh
%files php-pearprov
%defattr(644,root,root,755)
%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}/rpmdb/*.so
-%{py_sitedir}/rpmdb/*.py*
+%dir %{py_sitedir}/rpm
+%attr(755,root,root) %{py_sitedir}/rpm/*.so
+%{py_sitedir}/rpm/*.py[co]
%endif
-%files build-tools
-%defattr(644,root,root,755)
-%attr(755,root,root) %{_bindir}/builder
-%attr(755,root,root) %{_bindir}/adapter.awk
-%attr(755,root,root) %{_bindir}/pldnotify.awk
-
%if %{with apidocs}
%files apidocs
%defattr(644,root,root,755)