#
# TODO:
+# - check if glob() patch needs resurrecting/rewriting
+# - check if we want shell autodeps: Requires: executable(ln) executable(mv)
+# - %{_arch} = i686 not as used to be i386 (platform file thing?):
+# 5.0.2: rpm -E '%_target_base_arch %_arch'
+# i386 i686
+# 4.4.9: rpm -E '%_target_base_arch %_arch'
+# i386 i386
# - python(abi) cap is not provided automatically because /usr/lib*/libpython2*.so.*
# matches ELF first
-# - repackaging when lzma is not installed (todo: fix digest signature of header)
-# rpmbuild computes digest when writing package to temporary file, then adds a few
-# tags (incl. digest) and writes whole package to destination file;
-# repackaging uses unchanged "immutable header" image from original rpm, also
-# preserving payload format and compressor from original rpm, _not_ current settings
+# - TODO: add macros for some ppc, mipsel, alpha and sparc
+# - uppackaged list:
+# /usr/lib/rpm/http.req
+# /usr/lib/rpm/install-sh
+# /usr/lib/rpm/mono-find-provides
+# /usr/lib/rpm/mono-find-requires
+# /usr/lib/rpm/osgideps.pl
+# /usr/lib/rpm/perldeps.pl
+# /usr/lib/rpm/vcheck
+# /usr/share/man/man8/rpmconstant.8
+#
+# - headerGet() making poldek segfault http://rpm5.org/cvs/tktview?tn=38,1
+# - rpm doesn't exit when no sources/patches available http://rpm5.org/cvs/tktview?tn=40,1
+# - http://rpm5.org/cvs/tktview?tn=41&_submit=Show
#
# Conditional build:
%bcond_with static # build static rpm+rpmi
-%bcond_without apidocs # don't generate documentation with doxygen
+%bcond_with 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_without suggest_tags # build without Suggest tag (bootstrapping)
%bcond_with neon # build with HTTP/WebDAV support (neon library)
+%bcond_without db # BerkeleyDB
+%bcond_with sqlite # build with SQLite support
+%bcond_with sqlite_dbapi # default database backend is sqlite
+%bcond_without system_lua # use system lua
# 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"
+#
+%if %{with sqlite_dbapi}
+%define with_sqlite 1
+%endif
+
+%if %{without db} && %{without sqlite}
+%{error:Need db or sqlite}
+ERROR
+%endif
# versions of required libraries
-%define reqdb_ver 4.5.20
-%define reqpopt_ver 1.10.8
-%define beecrypt_ver 2:4.1.2-4
-%define sover 4.4
+%define reqdb_ver 4.7.25
+%define reqpopt_ver 1.10.8
+%define beecrypt_ver 2:4.1.2-4
+%define sover 5.0
+
Summary: RPM Package Manager
Summary(de.UTF-8): RPM Packet-Manager
Summary(es.UTF-8): Gestor de paquetes RPM
Summary(ru.UTF-8): Менеджер пакетов от RPM
Summary(uk.UTF-8): Менеджер пакетів від RPM
Name: rpm
-Version: 4.4.9
-Release: 2
-License: GPL
+Version: 5.1.6
+Release: 0.1
+License: LGPL
Group: Base
-Source0: http://rpm5.org/files/rpm/rpm-4.4/%{name}-%{version}.tar.gz
-# Source0-md5: 210b768006e7d88dd8a3bcd498ea27f6
+Source0: http://rpm5.org/files/rpm/rpm-5.1/%{name}-%{version}.tar.gz
+# Source0-md5: 5eb40d7b756fcf04aad7d00a5b3d5b69
Source1: %{name}.groups
Source2: %{name}.platform
Source3: %{name}-install-tree
Source4: %{name}-find-spec-bcond
-Source5: %{name}-find-lang
+Source5: %{name}-hrmib-cache
Source6: %{name}-groups-po.awk
Source7: %{name}-compress-doc
Source8: %{name}-check-files
Source14: %{name}.sysconfig
Source15: %{name}-macros.java
Source16: %{name}-java-requires
-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
+Source17: banner.sh
+Source18: %{name}-pld.macros
+Source19: ftp://ftp.pld-linux.org/dists/th/PLD-3.0-Th-GPG-key.asc
+# Source19-md5: 08b29584dd349aac9caa7610131a0a88
+Source20: %{name}-mimetypedeps
+Source100: %{name}-macros-athlon
+Source101: %{name}-macros-i386
+Source102: %{name}-macros-i486
+Source103: %{name}-macros-i586
+Source104: %{name}-macros-i686
+Source105: %{name}-macros-noarch
+Source106: %{name}-macros-pentium3
+Source107: %{name}-macros-pentium4
+Source108: %{name}-macros-ppc
+Source109: %{name}-macros-x86_64
+Source110: %{name}-macros-ia32e
+Source111: %{name}-macros-amd64
+
+Patch0: %{name}-branch.patch
+Patch1: %{name}-man_pl.patch
+Patch2: %{name}-popt-aliases.patch
Patch3: %{name}-rpmpopt.patch
Patch4: %{name}-perl-macros.patch
Patch5: %{name}-perl-req-perlfile.patch
Patch6: %{name}-noexpand.patch
Patch7: %{name}-scripts-closefds.patch
-Patch8: %{name}-python-macros.patch
+Patch8: %{name}-php-macros.patch
Patch9: %{name}-gettext-in-header.patch
Patch10: %{name}-compress-doc.patch
-Patch11: %{name}-Nmalloc.patch
-Patch12: %{name}-system_libs.patch
-Patch13: %{name}-bb-and-short-circuit.patch
+Patch11: %{name}-lua.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
+Patch17: %{name}-macros.patch
+Patch18: %{name}-macros-th.patch
+Patch19: %{name}-glob.patch
+
Patch23: %{name}-pkgconfigdeps.patch
-Patch24: %{name}-po.patch
-Patch25: %{name}-rpm2cpio-payload.patch
+
Patch26: %{name}-notsc.patch
Patch27: %{name}-hack-norpmlibdep.patch
-Patch28: %{name}-makefile-no_myLDADD_deps.patch
-Patch29: %{name}-macros-dbhash.patch
-Patch31: %{name}-missing-prototypes.patch
+
Patch32: %{name}-pld-autodep.patch
-Patch33: %{name}-arch-x86_64.patch
Patch34: %{name}-epoch0.patch
Patch35: %{name}-perl_req-INC_dirs.patch
Patch36: %{name}-debuginfo.patch
Patch37: %{name}-doxygen_hack.patch
+Patch38: %{name}-perl_req-use_base.patch
+Patch39: %{name}-perl_req-skip_multiline.patch
+Patch40: %{name}-perl_req-heredocs_pod.patch
-Patch41: %{name}-reduce-stack-usage.patch
Patch42: %{name}-old-fileconflicts-behaviour.patch
-Patch44: %{name}-no-neon.patch
-Patch45: %{name}-no-sqlite.patch
Patch46: %{name}-mono.patch
Patch47: %{name}-javadeps.patch
-Patch49: %{name}-p4.patch
-Patch50: %{name}-macros.patch
-Patch51: %{name}-cleanlibdirs.patch
Patch52: %{name}-morearchs.patch
Patch55: %{name}-truncate-cvslog.patch
-Patch57: %{name}-as_needed-fix.patch
-Patch58: %{name}-repackage-wo-lzma.patch
Patch59: %{name}-libtool-deps.patch
-Patch60: %{name}-obsolete-rpmrc.patch
+Patch60: %{name}-mimetype.patch
Patch61: %{name}-sparc64.patch
-Patch62: %{name}-rpmdb.patch
+Patch62: %{name}-gendiff.patch
URL: http://rpm5.org/
-BuildRequires: autoconf >= 2.57
+BuildRequires: autoconf >= 2.60
BuildRequires: automake >= 1.4
BuildRequires: beecrypt-devel >= %{beecrypt_ver}
BuildRequires: bzip2-devel >= 1.0.2-17
-BuildRequires: db-devel >= %{reqdb_ver}
+%{?with_db:BuildRequires: db-devel >= %{reqdb_ver}}
BuildRequires: elfutils-devel >= 0.108
-%ifnarch sparc64
-# -fPIE/-pie
-BuildRequires: gcc >= 5:3.4
-%endif
+BuildRequires: gettext-autopoint >= 0.11.4-2
BuildRequires: gettext-devel >= 0.11.4-2
-%{?with_system_libmagic:BuildRequires: libmagic-devel}
+BuildRequires: lzma-devel >= 4.999.3
+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
%endif
BuildRequires: patch >= 2.2
BuildRequires: popt-devel >= %{reqpopt_ver}
-%{?with_python:BuildRequires: python-devel >= 1:2.5}
-BuildRequires: python-modules >= 1:2.5
+%{?with_system_lua:BuildRequires: lua51-devel >= 5.1.2}
+%{?with_python:BuildRequires: python-devel >= 1:2.3}
+BuildRequires: python-modules >= 1:2.3
BuildRequires: rpm-perlprov
%{?with_python:BuildRequires: rpm-pythonprov}
+%{?with_sqlite:BuildRequires: sqlite3-devel}
BuildRequires: zlib-devel
%if %{with apidocs}
BuildRequires: doxygen
# Require static library only for static build
BuildRequires: beecrypt-static >= %{beecrypt_ver}
BuildRequires: bzip2-static >= 1.0.2-17
-BuildRequires: db-static >= %{reqdb_ver}
+%{?with_db:BuildRequires: db-static >= %{reqdb_ver}}
BuildRequires: elfutils-static
BuildRequires: glibc-static >= 2.2.94
-%{?with_system_libmagic:BuildRequires: libmagic-static}
+BuildRequires: libmagic-static
%{?with_selinux:BuildRequires: libselinux-static >= 1.18}
BuildRequires: popt-static >= %{reqpopt_ver}
BuildRequires: zlib-static
Requires: %{name}-lib = %{version}-%{release}
Requires: beecrypt >= %{beecrypt_ver}
Requires: popt >= %{reqpopt_ver}
+Provides: rpm-db-ver = %{reqdb_ver}
+Obsoletes: rpm-getdeps
%{!?with_static:Obsoletes: rpm-utils-static}
Conflicts: glibc < 2.2.92
-# ABI changes in rpm, new poldek needed
-Conflicts: poldek < 0.20.1-0.20070108.1.4
+# db4.6 poldek needed
+Conflicts: poldek < 0.21-0.20070703.00.3
+# segfaults with lzma 0.42.2
+Conflicts: lzma-libs < 4.999.3
BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
%define _binary_payload w9.gzdio
# don't require very fresh rpm.macros to build
%define __gettextize gettextize --copy --force --intl ; cp -f po/Makevars{.template,}
+%define find_lang sh ./scripts/find-lang.sh $RPM_BUILD_ROOT
%define ix86 i386 i486 i586 i686 athlon pentium3 pentium4
%define ppc ppc ppc7400 ppc7450
%define x8664 amd64 ia32e x86_64
%define __newcpp %{?force_cpp}%{!?force_cpp:%{_target_cpu}-pld-linux-gcc -E}
%define _rpmlibdir /usr/lib/rpm
+%define _noautocompressdoc RPM-GPG-KEY
%define specflags -fno-strict-aliasing
Summary(pl.UTF-8): Podstawowy pakiet RPM - skrypty używane przez same pakiety rpm
Group: Base
Requires: filesystem
+Obsoletes: rpm-scripts
Obsoletes: vserver-rpm
%description base
Summary(pl.UTF-8): Biblioteki RPM-a
Group: Libraries
Requires: beecrypt >= %{beecrypt_ver}
-Requires: db >= %{reqdb_ver}
+%{?with_db:Requires: db >= %{reqdb_ver}}
+Requires: libmagic >= 1.15-2
%{?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
-%{?with_suggest_tags:Suggests: lzma}
%description lib
RPMs library.
Requires: %{name}-lib = %{version}-%{release}
Requires: beecrypt-devel >= %{beecrypt_ver}
Requires: bzip2-devel
-Requires: db-devel >= %{reqdb_ver}
+%{?with_db:Requires: db-devel >= %{reqdb_ver}}
Requires: elfutils-devel
-%{?with_system_libmagic:Requires: libmagic-devel}
+Requires: libmagic-devel
%{?with_selinux:Requires: libselinux-devel}
Requires: popt-devel >= %{reqpopt_ver}
Requires: zlib-devel
Requires: %{name}-devel = %{version}-%{release}
Requires: beecrypt-static >= %{beecrypt_ver}
Requires: bzip2-static
-Requires: db-static >= %{reqdb_ver}
+%{?with_db:Requires: db-static >= %{reqdb_ver}}
Requires: elfutils-static
-%{?with_system_libmagic:Requires: libmagic-static}
+Requires: libmagic-static
Requires: popt-static >= %{reqpopt_ver}
Requires: zlib-static
Group: Applications/File
Requires: %{name} = %{version}-%{release}
Requires: popt >= %{reqpopt_ver}
+%if %{with suggest_tags}
+Suggests: bzip2
+Suggests: gzip
+%endif
+Conflicts: filesystem-debuginfo < 3.0-16
%description utils
Additional utilities for managing RPM packages and database.
Summary(uk.UTF-8): Скрипти та утиліти, необхідні для побудови пакетів
Group: Applications/File
Requires(pre): findutils
-Requires: %{name}-build-macros >= 1.314
+Requires: %{name}-build-macros >= 1.433-2
Requires: %{name}-utils = %{version}-%{release}
Requires: /bin/id
Requires: awk
-# we need fixed binutils for -feliminate-dwarf2-dups
-Requires: binutils >= 3:2.17.50.0.3-2
Requires: bzip2
Requires: chrpath >= 0.10-4
Requires: cpio
Requires: file >= 4.17
Requires: fileutils
Requires: findutils
-Requires: gcc >= 5:3.4
+%ifarch athlon
+Requires: gcc >= 3.0.3
+%else
+Requires: gcc
+%endif
Requires: glibc-devel
Requires: grep
Requires: gzip
-Requires: lzma
Requires: make
Requires: patch
Requires: sed
Різноманітні допоміжні скрипти та утиліти, які використовуються для
побудови RPM'ів.
-%package build-tools
-Summary: Scripts for managing .spec files and building RPM packages
-Summary(de.UTF-8): Scripts fürs Bauen binärer RPM-Pakete
-Summary(pl.UTF-8): Skrypty pomocnicze do zarządznia plikami .spec i budowania RPM-ów
-Summary(pt_BR.UTF-8): Scripts e programas executáveis usados para construir pacotes
-Summary(ru.UTF-8): Скрипты и утилиты, необходимые для сборки пакетов
-Summary(uk.UTF-8): Скрипти та утиліти, необхідні для побудови пакетів
-Group: Applications/File
-Requires: %{name}-build = %{version}-%{release}
-# these are optional
-#Requires: cvs
-Requires: wget
-
-%description build-tools
-Scripts for managing .spec files and building RPM packages.
-
-%description build-tools -l de.UTF-8
-Scripts fürs Bauen RPM-Pakete.
-
-%description build-tools -l pl.UTF-8
-Skrypty pomocnicze do zarządzania plikami .spec i do budowania RPM-ów.
-
-%description build-tools -l pt_BR.UTF-8
-Este pacote contém scripts e programas executáveis que são usados para
-construir pacotes usando o RPM.
-
-%description build-tools -l ru.UTF-8
-Различные вспомогательные скрипты и исполняемые программы, которые
-используются для сборки RPM'ов.
-
-%description build-tools -l uk.UTF-8
-Різноманітні допоміжні скрипти та утиліти, які використовуються для
-побудови RPM'ів.
-
%package javaprov
Summary: Additional utilities for checking Java provides/requires in RPM packages
Summary(pl.UTF-8): Dodatkowe narzędzia do sprawdzania zależności kodu w Javie w pakietach RPM
źrodeł RPM-a przez doxygen.
%prep
-%setup -q
-%patch0 -p1
+%setup -q -n %{name}-%{version}%{?subver}
+#patch0 -p1
%patch1 -p1
%patch2 -p1
%patch3 -p1
%patch8 -p1
%patch9 -p1
%patch10 -p1
-%patch11 -p1
-%patch12 -p1
-%patch13 -p1
-%patch14 -p1
-%patch15 -p1
+%{?with_system_lua:%patch11 -p1}
+# CHECK ME - macrofiles: ~/etc could be used
+#%%patch14 -p1
%patch16 -p1
-%patch17 -p1
-%patch18 -p1
-sed -e 's/^/@pld@/' %{SOURCE2} >>platform.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_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
install %{SOURCE12} scripts/perl.prov
-%patch19 -p1
-%patch20 -p1
-%patch21 -p1
-%patch22 -p1
%patch23 -p1
-%patch24 -p1
-%patch25 -p1
+
+%ifarch i386 i486
+# disable TSC
%patch26 -p1
+%endif
%patch27 -p1
-%patch28 -p1
-%patch29 -p1
-%patch31 -p1
%patch32 -p1
-%patch33 -p1
%patch34 -p1
%patch35 -p0
%patch36 -p1
%patch37 -p1
-%patch41 -p1
+%patch38 -p1
+%patch39 -p1
+%patch40 -p1
%patch42 -p1
-%{!?with_neon:%patch44 -p1}
-%patch45 -p1
%patch46 -p1
%patch47 -p1
-%patch49 -p1
-%patch50 -p1
-%patch51 -p1
-#%patch52 -p1
+# OLD COMMENTED OUT
+#%%patch52 -p1 -- morearchs (rpmrc patch) adds ppc7400, ppc7400
%patch55 -p1
-%patch57 -p1
-%patch58 -p1
%patch59 -p1
+%patch17 -p1
+%patch18 -p1
+# Maybe, at last we can remove this?
+#patch19 -p1
%patch60 -p1
%ifarch sparc64
%patch61 -p1
mv -f perl.prov perl.prov.in
cd ..
-mv -f po/{no,nb}.po
-mv -f po/{sr,sr@Latn}.po
-
-rm -rf sqlite zlib db db3 popt rpmdb/db.h
-
# generate Group translations to *.po
awk -f %{SOURCE6} %{SOURCE1}
# 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
+#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
-%if %{with system_libmagic}
-rm -rf file
-%else
-cd file
%{__libtoolize}
-%{__aclocal}
-%{__autoheader}
-%{__autoconf}
-%{__automake}
-cd ..
-%endif
-
-%{__libtoolize}
-%{__gettextize}
+#%{__autopoint}
%{__aclocal}
%{__autoheader}
%{__autoconf}
# 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 -i -e 's|@host@|%{_target_cpu}-%{_target_vendor}-linux-gnu|' -e 's|@host_cpu@|%{_target_cpu}|' macros.in
+#sed -i -e 's|@host@|%{_target_cpu}-%{_target_vendor}-linux-gnu|' -e 's|@host_cpu@|%{_target_cpu}|' macros.in
+%{?with_system_lua:CPPFLAGS="-I/usr/include/lua51 %{rpmcppflags}"}
# 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}" \
--enable-shared \
--enable-static \
%{!?with_apidocs:--without-apidocs} \
- %{?with_python:--with-python=2.5} \
+ %{?with_python:--with-python=%{py_ver} --with-python-lib-dir=%{py_sitedir}} \
%{!?with_python:--without-python} \
- %{!?with_selinux:--without-selinux} \
- --without-db
-
-# file_LDFLAGS, debugedit_LDADD - no need to link "file" and "debugedit" statically
-%{__make} \
+ --with%{!?with_selinux:out}-selinux \
+ --with-libelf \
+ --with-zlib=external \
+ --with-bzip2=external \
+ --with-beecrypt=external \
+ --with-lzma=external \
+ --with-neon=%{?with_neon:external}%{!?with_neon:no} \
+ --with-file=external \
+ --with-popt=external \
+ --with-db=%{?with_db:external}%{!?with_db:no} \
+ --with-sqlite=%{?with_sqlite:external}%{!?with_sqlite:no} \
+ --with-dbapi=%{!?with_sqlite_dbapi:db}%{?with_sqlite_dbapi:sqlite} \
+ --with-lua=%{!?with_system_lua:internal}%{?with_system_lua:external} \
+ --with-pcre=no \
+ --with-keyutils=none \
+ --without-path-versioned \
+ --with-path-macros='%{_rpmlibdir}/macros:%{_rpmlibdir}/macros.pld:%{_rpmlibdir}/macros.build:%{_rpmlibdir}/%%{_target}/macros:%{_sysconfdir}/rpm/macros.*:%{_sysconfdir}/rpm/macros:%{_sysconfdir}/rpm/%%{_target}/macros:~/etc/rpmmacros:~/etc/.rpmmacros:~/.rpmmacros' \
+ --with-bugreport="http://bugs.pld-linux.org/"
+
+%{__make} -j1 \
CC="%{__cc}" \
CXX="%{__cxx}" \
- CPP="%{__cpp}" \
- pylibdir=%{py_libdir} \
- myLDFLAGS="%{rpmldflags}" \
- file_LDFLAGS= \
- debugedit_LDADD="\$(WITH_LIBELF_LIB) -lpopt" \
- staticLDFLAGS=%{?with_static:-all-static}
+ CPP="%{__cpp}"
+
+%{?with_apidocs:%{__make} apidocs}
%install
rm -rf $RPM_BUILD_ROOT
-install -d $RPM_BUILD_ROOT{/%{_lib},/etc/sysconfig,%{_sysconfdir}/rpm,/var/lib/banner}
+install -d $RPM_BUILD_ROOT{/bin,/%{_lib},/etc/sysconfig,%{_sysconfdir}/rpm,/var/lib/banner,/var/cache/hrmib,/etc/pki/rpm-gpg}
+
+install %{SOURCE19} $RPM_BUILD_ROOT%{_sysconfdir}/pki/rpm-gpg/PLD-3.0-Th-GPG-key.asc
%{__make} install \
- DESTDIR=$RPM_BUILD_ROOT \
- staticLDFLAGS=%{?with_static:-all-static} \
- pylibdir=%{py_libdir} \
- pkgbindir="%{_bindir}"
+ pkgconfigdir=%{_pkgconfigdir} \
+ DESTDIR=$RPM_BUILD_ROOT
+# install ARCH macros
+install -d $RPM_BUILD_ROOT%{_rpmlibdir}/noarch-linux
+install %{SOURCE105} $RPM_BUILD_ROOT%{_rpmlibdir}/noarch-linux/macros
+
+%ifarch %{ix86}
+install -d $RPM_BUILD_ROOT%{_rpmlibdir}/{i386,i486,i586,i686,athlon,pentium3,pentium4}-linux
+install %{SOURCE100} $RPM_BUILD_ROOT%{_rpmlibdir}/athlon-linux/macros
+install %{SOURCE101} $RPM_BUILD_ROOT%{_rpmlibdir}/i386-linux/macros
+install %{SOURCE102} $RPM_BUILD_ROOT%{_rpmlibdir}/i486-linux/macros
+install %{SOURCE103} $RPM_BUILD_ROOT%{_rpmlibdir}/i586-linux/macros
+install %{SOURCE104} $RPM_BUILD_ROOT%{_rpmlibdir}/i686-linux/macros
+install %{SOURCE106} $RPM_BUILD_ROOT%{_rpmlibdir}/pentium3-linux/macros
+install %{SOURCE107} $RPM_BUILD_ROOT%{_rpmlibdir}/pentium4-linux/macros
+%endif
+
+%ifarch %{x8664}
+install -d $RPM_BUILD_ROOT%{_rpmlibdir}/{x86_64,ia32e,amd64}-linux
+install %{SOURCE109} $RPM_BUILD_ROOT%{_rpmlibdir}/x86_64-linux/macros
+install %{SOURCE110} $RPM_BUILD_ROOT%{_rpmlibdir}/ia32e-linux/macros
+install %{SOURCE111} $RPM_BUILD_ROOT%{_rpmlibdir}/amd64-linux/macros
+%endif
+
+%ifarch %{ppc}
+install -d $RPM_BUILD_ROOT%{_rpmlibdir}/ppc-linux
+install %{SOURCE108} $RPM_BUILD_ROOT%{_rpmlibdir}/ppc-linux/macros
+%endif
+
+cat <<'EOF' > $RPM_BUILD_ROOT%{_sysconfdir}/rpm/platform
# first platform file entry can't contain regexps
-echo "%{_target_cpu}-%{_target_vendor}-linux" > $RPM_BUILD_ROOT%{_sysconfdir}/rpm/platform
+%{_target_cpu}-%{_target_vendor}-linux
# x86_64 things
%ifarch x86_64
-echo "x86_64-[^-]*-linux(-gnu)?" >> $RPM_BUILD_ROOT%{_sysconfdir}/rpm/platform
+x86_64-[^-]*-[Ll]inux(-gnu)?
+amd64-[^-]*-[Ll]inux(-gnu)?
%endif
-
%ifarch amd64
-echo "amd64-[^-]*-linux(-gnu)?" >> $RPM_BUILD_ROOT%{_sysconfdir}/rpm/platform
-echo "x86_64-[^-]*-linux(-gnu)?" >> $RPM_BUILD_ROOT%{_sysconfdir}/rpm/platform
+amd64-[^-]*-[Ll]inux(-gnu)?
+x86_64-[^-]*-[Ll]inux(-gnu)?
%endif
-
%ifarch ia32e
-echo "ia32e-[^-]*-linux(-gnu)?" >> $RPM_BUILD_ROOT%{_sysconfdir}/rpm/platform
-echo "x86_64-[^-]*-linux(-gnu)?" >> $RPM_BUILD_ROOT%{_sysconfdir}/rpm/platform
+ia32e-[^-]*-[Ll]inux(-gnu)?
+x86_64-[^-]*-[Ll]inux(-gnu)?
%endif
# x86 things
%ifarch athlon %{x8664}
-echo "athlon-[^-]*-linux(-gnu)?" >> $RPM_BUILD_ROOT%{_sysconfdir}/rpm/platform
+athlon-[^-]*-[Ll]inux(-gnu)?
%endif
%ifarch pentium4 athlon %{x8664}
-echo "pentium4-[^-]*-linux(-gnu)?" >> $RPM_BUILD_ROOT%{_sysconfdir}/rpm/platform
+pentium4-[^-]*-[Ll]inux(-gnu)?
%endif
%ifarch pentium3 pentium4 athlon %{x8664}
-echo "pentium3-[^-]*-linux(-gnu)?" >> $RPM_BUILD_ROOT%{_sysconfdir}/rpm/platform
+pentium3-[^-]*-[Ll]inux(-gnu)?
%endif
%ifarch i686 pentium3 pentium4 athlon %{x8664}
-echo "i686-[^-]*-linux(-gnu)?" >> $RPM_BUILD_ROOT%{_sysconfdir}/rpm/platform
+i686-[^-]*-[Ll]inux(-gnu)?
%endif
%ifarch i586 i686 pentium3 pentium4 athlon %{x8664}
-echo "i586-[^-]*-linux(-gnu)?" >> $RPM_BUILD_ROOT%{_sysconfdir}/rpm/platform
+i586-[^-]*-[Ll]inux(-gnu)?
%endif
%ifarch i486 i586 i686 pentium3 pentium4 athlon %{x8664}
-echo "i486-[^-]*-linux(-gnu)?" >> $RPM_BUILD_ROOT%{_sysconfdir}/rpm/platform
+i486-[^-]*-[Ll]inux(-gnu)?
%endif
%ifarch %{ix86} %{x8664}
-echo "i386-[^-]*-linux(-gnu)?" >> $RPM_BUILD_ROOT%{_sysconfdir}/rpm/platform
+i386-[^-]*-[Ll]inux(-gnu)?
+%endif
+
+%ifarch alpha
+alpha-[^-]*-[Ll]inux(-gnu)?
%endif
-# ppc
-%ifarch ppc
-echo "ppc-[^-]*-linux(-gnu)?" >> $RPM_BUILD_ROOT%{_sysconfdir}/rpm/platform
-echo "powerpc-[^-]*-linux(-gnu)?" >> $RPM_BUILD_ROOT%{_sysconfdir}/rpm/platform
+%ifarch ia64
+ia64-[^-]*-[Ll]inux(-gnu)?
+%endif
+
+%ifarch ppc64
+powerpc64-[^-]*-[Ll]inux(-gnu)?
+ppc64-[^-]*-[Ll]inux(-gnu)?
+%endif
+%ifarch %{ppc} ppc64
+powerpc-[^-]*-[Ll]inux(-gnu)?
+ppc-[^-]*-[Ll]inux(-gnu)?
+%endif
+
+%ifarch s390x
+s390x-[^-]*-[Ll]inux(-gnu)?
+%endif
+%ifarch s390 s390x
+s390-[^-]*-[Ll]inux(-gnu)?
+%endif
+
+%ifarch sparc64
+sparc64-[^-]*-[Ll]inux(-gnu)?
+sparcv8-[^-]*-[Ll]inux(-gnu)?
+sparcv9-[^-]*-[Ll]inux(-gnu)?
+%endif
+%ifarch sparcv9
+sparcv8-[^-]*-[Ll]inux(-gnu)?
+sparcv9-[^-]*-[Ll]inux(-gnu)?
+%endif
+%ifarch sparc sparcv9 sparc64
+sparc-[^-]*-[Ll]inux(-gnu)?
%endif
# noarch
-echo "noarch-[^-]*-.*" >> $RPM_BUILD_ROOT%{_sysconfdir}/rpm/platform
+noarch-[^-]*-.*
+EOF
%ifarch %{ppc}
#sed -e '/_target_platform/s/[%]{_target_cpu}/ppc/' \
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
+rm $RPM_BUILD_ROOT%{_rpmlibdir}/find-lang.sh
# not installed since 4.4.8 (-tools-perl subpackage)
install scripts/rpmdiff scripts/rpmdiff.cgi $RPM_BUILD_ROOT%{_rpmlibdir}
install macros.php $RPM_BUILD_ROOT%{_rpmlibdir}/macros.php
install macros.mono $RPM_BUILD_ROOT%{_rpmlibdir}/macros.mono
install %{SOURCE15} $RPM_BUILD_ROOT%{_rpmlibdir}/macros.java
+install %{SOURCE18} $RPM_BUILD_ROOT%{_rpmlibdir}/macros.pld
install %{SOURCE1} doc/manual/groups
install %{SOURCE3} $RPM_BUILD_ROOT%{_rpmlibdir}/install-build-tree
install %{SOURCE16} $RPM_BUILD_ROOT%{_rpmlibdir}/java-find-requires
install scripts/find-php* $RPM_BUILD_ROOT%{_rpmlibdir}
install scripts/php.{prov,req} $RPM_BUILD_ROOT%{_rpmlibdir}
+install %{SOURCE20} $RPM_BUILD_ROOT%{_rpmlibdir}/mimetypedeps.sh
+install %{SOURCE5} $RPM_BUILD_ROOT%{_rpmlibdir}/hrmib-cache
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 %{SOURCE17} $RPM_BUILD_ROOT%{_bindir}/banner.sh
-install %{SOURCE11} $RPM_BUILD_ROOT%{_sysconfdir}/rpm/sysinfo
+install -d $RPM_BUILD_ROOT%{_sysconfdir}/rpm/sysinfo
-# obsolete but still installed
-rm $RPM_BUILD_ROOT%{_rpmlibdir}/rpmrc
+touch $RPM_BUILD_ROOT%{_sysconfdir}/rpm/sysinfo/Conflictname
+touch $RPM_BUILD_ROOT%{_sysconfdir}/rpm/sysinfo/Dirnames
+install %{SOURCE11} $RPM_BUILD_ROOT%{_sysconfdir}/rpm/sysinfo/Filelinktos
+touch $RPM_BUILD_ROOT%{_sysconfdir}/rpm/sysinfo/Obsoletename
+touch $RPM_BUILD_ROOT%{_sysconfdir}/rpm/sysinfo/Providename
+touch $RPM_BUILD_ROOT%{_sysconfdir}/rpm/sysinfo/Requirename
cat > $RPM_BUILD_ROOT%{_sysconfdir}/rpm/macros <<EOF
# customized rpm macros - global for host
^libxkbui.so
# -- fam / gamin
^libfam.so.0
+# -- mdns-bonjour: mDNSResponder-libs / avahi-compat-libdns_sd
+^libdns_sd.so.1
EOF
cat > $RPM_BUILD_ROOT%{_sysconfdir}/rpm/noautocompressdoc <<EOF
# global list of file masks not to be compressed in DOCDIR
install -d $RPM_BUILD_ROOT/var/{spool/repackage,lock/rpm}
touch $RPM_BUILD_ROOT/var/lock/rpm/transaction
-# move libs to /lib
-for a in librpm-%{sover}.so librpmdb-%{sover}.so librpmio-%{sover}.so ; do
+# move rpm to /bin
+mv $RPM_BUILD_ROOT%{_bindir}/rpm $RPM_BUILD_ROOT/bin
+# move essential libs to /lib (libs that /bin/rpm links to)
+for a in librpm-%{sover}.so librpmdb-%{sover}.so librpmio-%{sover}.so librpmbuild-%{sover}.so librpmmisc-%{sover}.so; do
mv -f $RPM_BUILD_ROOT%{_libdir}/$a $RPM_BUILD_ROOT/%{_lib}
ln -s /%{_lib}/$a $RPM_BUILD_ROOT%{_libdir}/$a
done
+# Append rpm.platform contents to /usr/lib/rpm/${arch}-linux/macros
+for m in $RPM_BUILD_ROOT%{_rpmlibdir}/*/macros ; do
+ cat %{SOURCE2} | %{__sed} 's#@LIB@#%{_lib}#' >> $m
+done
# remove arch dependant macros which have no use on noarch
%{__sed} -i -e '
/{__spec_install_post_strip}/d
/{__spec_install_post_compress_modules}/d
' $RPM_BUILD_ROOT%{_rpmlibdir}/noarch-linux/macros
+# Bourne shell script vs ELF executable linked with rpm,rpmdb,rpmio
+mv $RPM_BUILD_ROOT{%{_rpmlibdir},%{_bindir}}/rpm2cpio
+
%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}
+rm $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}
-# manuals for utils dropped in 4.4.8 (?)
-#rm -f $RPM_BUILD_ROOT%{_mandir}/{,*/}/man8/{rpmcache,rpmgraph}.8
+rm $RPM_BUILD_ROOT%{_rpmlibdir}/rpm.{daily,log,xinetd}
+# utils dropped in 4.4.8 -- their manuals
+rm $RPM_BUILD_ROOT%{_mandir}/{,*/}/man8/rpmgraph.8
%find_lang %{name}
%clean
rm -rf $RPM_BUILD_ROOT
+%triggerpostun lib -- %{name}-lib < %{version}
+rm -f /var/lib/rpm/__db*
+
+%pretrans
+# this needs to be a dir
+if [ -f %{_sysconfdir}/rpm/sysinfo ]; then
+ umask 022
+ mv -f %{_sysconfdir}/rpm/sysinfo{,.rpmsave}
+ mkdir %{_sysconfdir}/rpm/sysinfo
+fi
+
+%triggerpostun -- %{name} < 4.4.9-44
+%{_rpmlibdir}/hrmib-cache
+
%post lib -p /sbin/ldconfig
%postun lib -p /sbin/ldconfig
-%pre build
+%pretrans build
find %{_rpmlibdir} -name '*-linux' -type l | xargs rm -f
%files -f %{name}.lang
%defattr(644,root,root,755)
-%doc CHANGES CREDITS README wdj/JBJ-GPG-KEY manual/*
+%doc CHANGES CREDITS README pubkeys/JBJ-GPG-KEY manual/*
+
+%dir %{_sysconfdir}/pki/rpm-gpg
+%{_sysconfdir}/pki/rpm-gpg/PLD-3.0-Th-GPG-key.asc
%attr(755,root,root) /bin/rpm
#%attr(755,root,root) %{_bindir}/rpmdb
#%attr(755,root,root) %{_bindir}/rpmsign
#%attr(755,root,root) %{_bindir}/rpmverify
-%dir %{_sysconfdir}/rpm
%config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/rpm/macros
+%dir %{_sysconfdir}/rpm/sysinfo
# these are ok to be replaced
-%config %verify(not md5 mtime size) %{_sysconfdir}/rpm/sysinfo
+%config %verify(not md5 mtime size) %{_sysconfdir}/rpm/sysinfo/*
%config %verify(not md5 mtime size) %{_sysconfdir}/rpm/platform
%dir /var/lock/rpm
/var/lock/rpm/transaction
+# exported package NVRA (stamped with install tid)
+# net-snmp hrSWInstalledName queries, bash-completions
+%dir /var/cache/hrmib
+
#%attr(755,root,root) %{_rpmlibdir}/rpmd
#%{!?with_static:%attr(755,root,root) %{_rpmlibdir}/rpm[eiu]}
#%attr(755,root,root) %{_rpmlibdir}/rpmk
%{_rpmlibdir}/rpmpopt*
%{_rpmlibdir}/macros
+%{_rpmlibdir}/macros.pld
+
+%attr(755,root,root) %{_rpmlibdir}/hrmib-cache
%files base
%defattr(644,root,root,755)
+%dir %{_sysconfdir}/rpm
%config(noreplace) %verify(not md5 mtime size) /etc/sysconfig/rpm
%dir %{_rpmlibdir}
%attr(755,root,root) %{_bindir}/banner.sh
%files lib
%defattr(644,root,root,755)
-%attr(755,root,root) /%{_lib}/librpm*-*.so
-%attr(755,root,root) %{_libdir}/librpm*-*.so
+%attr(755,root,root) /%{_lib}/librpm-%{sover}.so
+%attr(755,root,root) /%{_lib}/librpmdb-%{sover}.so
+%attr(755,root,root) /%{_lib}/librpmio-%{sover}.so
+%attr(755,root,root) /%{_lib}/librpmbuild-%{sover}.so
+%attr(755,root,root) /%{_lib}/librpmmisc-%{sover}.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}/librpmbuild.so
+%attr(755,root,root) %{_libdir}/librpmbuild-%{sover}.so
+%attr(755,root,root) %{_libdir}/librpmconstant.so
+%attr(755,root,root) %{_libdir}/librpmconstant-%{sover}.so
%attr(755,root,root) %{_libdir}/librpmdb.so
%attr(755,root,root) %{_libdir}/librpmdb-%{sover}.so
-%attr(755,root,root) %{_libdir}/librpmbuild.so
+%attr(755,root,root) %{_libdir}/librpmio.so
+%attr(755,root,root) %{_libdir}/librpmio-%{sover}.so
+%attr(755,root,root) %{_libdir}/librpmmisc.so
+%attr(755,root,root) %{_libdir}/librpmmisc-%{sover}.so
+%{_libdir}/librpm*.la
+%{_includedir}/rpm
+%{_pkgconfigdir}/*.pc
%files static
%defattr(644,root,root,755)
%files utils
%defattr(644,root,root,755)
-%attr(755,root,root) %{_bindir}/debugedit
%attr(755,root,root) %{_bindir}/rpm2cpio
-%attr(755,root,root) %{_bindir}/rpmdeps
-%{!?with_system_libmagic:%attr(755,root,root) %{_bindir}/rpmfile}
+%attr(755,root,root) %{_bindir}/rpmcache
+%attr(755,root,root) %{_bindir}/rpmconstant
+%attr(755,root,root) %{_bindir}/rpmdigest
+%attr(755,root,root) %{_bindir}/rpmgrep
+%attr(755,root,root) %{_bindir}/rpmrepo
+%attr(755,root,root) %{_bindir}/rpmmtree
+%attr(755,root,root) %{_rpmlibdir}/debugedit
%attr(755,root,root) %{_rpmlibdir}/find-debuginfo.sh
-%attr(755,root,root) %{_rpmlibdir}/tgpg
+%attr(755,root,root) %{_rpmlibdir}/rpmcmp
%attr(755,root,root) %{_rpmlibdir}/rpmdb_loadcvt
+%attr(755,root,root) %{_rpmlibdir}/rpmdeps
+%attr(755,root,root) %{_rpmlibdir}/tgpg
+%{_mandir}/man1/rpmgrep.1*
%{_mandir}/man8/rpm2cpio.8*
+%{_mandir}/man8/rpmcache.8*
%{_mandir}/man8/rpmdeps.8*
-#%{_mandir}/man8/rpmcache.8*
-#%{_mandir}/man8/rpmgraph.8*
+%{_mandir}/man8/rpmmtree.8*
%lang(ja) %{_mandir}/ja/man8/rpm2cpio.8*
-#%lang(ja) %{_mandir}/ja/man8/rpmcache.8*
-#%lang(ja) %{_mandir}/ja/man8/rpmgraph.8*
+%lang(ja) %{_mandir}/ja/man8/rpmcache.8*
%lang(ko) %{_mandir}/ko/man8/rpm2cpio.8*
%lang(pl) %{_mandir}/pl/man8/rpm2cpio.8*
+%lang(pl) %{_mandir}/pl/man8/rpmcache.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
%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}/config.*
%attr(755,root,root) %{_rpmlibdir}/cross-build
%attr(755,root,root) %{_rpmlibdir}/find-spec-bcond
-%attr(755,root,root) %{_rpmlibdir}/find-lang.sh
%attr(755,root,root) %{_rpmlibdir}/getpo.sh
%attr(755,root,root) %{_rpmlibdir}/install-build-tree
%attr(755,root,root) %{_rpmlibdir}/mkinstalldirs
%attr(755,root,root) %{_rpmlibdir}/u_pkg.sh
%attr(755,root,root) %{_rpmlibdir}/executabledeps.sh
%attr(755,root,root) %{_rpmlibdir}/libtooldeps.sh
+%attr(755,root,root) %{_rpmlibdir}/mimetypedeps.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
+#%attr(755,root,root) %{_rpmlibdir}/rpmb
+#%attr(755,root,root) %{_rpmlibdir}/rpmt
%{_rpmlibdir}/noarch-*
%ifarch %{ix86}
%{_rpmlibdir}/i?86*
%lang(pl) %{_mandir}/pl/man1/gendiff.1*
%lang(pl) %{_mandir}/pl/man8/rpmbuild.8*
-%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
-
%files javaprov
%defattr(644,root,root,755)
%attr(755,root,root) %{_rpmlibdir}/java-find-requires