# 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/vcheck
# /usr/share/man/man8/rpmconstant.8
#
+# - headerGet() making poldek segfault http://rpm5.org/cvs/tktview?tn=38,1
+# - LUA segfault - http://rpm5.org/cvs/tktview?tn=39,1
+# - rpm doesn't exit when no sources/patches available http://rpm5.org/cvs/tktview?tn=40,1
+# - http://rpm5.org/cvs/tktview?tn=38&_submit=Show
+# - http://rpm5.org/cvs/tktview?tn=39&_submit=Show
+# - http://rpm5.org/cvs/tktview?tn=40&_submit=Show
+# - http://rpm5.org/cvs/tktview?tn=41&_submit=Show
+#
# Conditional build:
%bcond_with static # build static rpm+rpmi
+%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
%endif
# versions of required libraries
-%define reqdb_ver 4.6.18
+%define reqdb_ver 4.7.25
%define reqpopt_ver 1.10.8
%define beecrypt_ver 2:4.1.2-4
%define sover 5.0
-%define subver b2
-%define rel 0.1
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: 5.1
-Release: 0.%{subver}.%{rel}
+Version: 5.1.4
+Release: 0.9
License: LGPL
Group: Base
-Source0: http://rpm5.org/files/rpm/rpm-5.1/%{name}-%{version}b2.tar.gz
-# Source0-md5: 11950912cb8e5f3353fd6c95cfbc650f
+Source0: http://rpm5.org/files/rpm/rpm-5.1/%{name}-%{version}.tar.gz
+# Source0-md5: 9a04c22ce1dffc81a7e43d39b002aaa1
Source1: %{name}.groups
Source2: %{name}.platform
Source3: %{name}-install-tree
# http://svn.pld-linux.org/banner.sh/
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
Source110: %{name}-macros-ia32e
Source111: %{name}-macros-amd64
-#Patch0: %{name}-pl.po.patch
+Patch0: %{name}-branch.patch
Patch1: %{name}-man_pl.patch
Patch2: %{name}-popt-aliases.patch
Patch3: %{name}-rpmpopt.patch
Patch16: %{name}-php-deps.patch
Patch17: %{name}-macros.patch
Patch18: %{name}-macros-th.patch
+Patch19: %{name}-glob.patch
Patch23: %{name}-pkgconfigdeps.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
Patch42: %{name}-old-fileconflicts-behaviour.patch
Patch55: %{name}-truncate-cvslog.patch
-Patch58: %{name}-repackage-wo-lzma.patch
Patch59: %{name}-libtool-deps.patch
-
+Patch60: %{name}-mimetype.patch
Patch61: %{name}-sparc64.patch
URL: http://rpm5.org/
BuildRequires: autoconf >= 2.60
BuildRequires: elfutils-devel >= 0.108
BuildRequires: gettext-autopoint >= 0.11.4-2
BuildRequires: gettext-devel >= 0.11.4-2
+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
%{?with_python:BuildRequires: rpm-pythonprov}
%{?with_sqlite:BuildRequires: sqlite3-devel}
BuildRequires: zlib-devel
+%if %{with apidocs}
+BuildRequires: doxygen
+BuildRequires: ghostscript
+BuildRequires: graphviz
+BuildRequires: tetex-pdftex
+%endif
%if %{with static}
# Require static library only for static build
BuildRequires: beecrypt-static >= %{beecrypt_ver}
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
# 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
Requires: libmagic >= 1.15-2
%{?with_selinux:Requires: libselinux >= 1.18}
Requires: popt >= %{reqpopt_ver}
-%{?with_suggest_tags:Suggests: lzma}
-Obsoletes: rpm-apidocs
Obsoletes: rpm-libs
# avoid SEGV caused by mixed db versions
Conflicts: poldek < 0.18.1-16
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
Requires: glibc-devel
Requires: grep
Requires: gzip
-Requires: lzma
Requires: make
Requires: patch
Requires: sed
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.UTF-8): Documentacja API RPM-a i przewodniki
+Group: Documentation
+
+%description apidocs
+Documentation for RPM API and guides in HTML format generated from rpm
+sources by doxygen.
+
+%description apidocs -l pl.UTF-8
+Dokumentacja API RPM-a oraz przewodniki w formacie HTML generowane ze
+źrodeł RPM-a przez doxygen.
+
%prep
%setup -q -n %{name}-%{version}%{?subver}
-
-# APPLIED ALREADY? translationproject.org is used now
-#%%patch0 -p1
+%patch0 -p1
%patch1 -p1
%patch2 -p1
%patch3 -p1
%patch35 -p0
%patch36 -p1
%patch37 -p1
+%patch38 -p1
+%patch39 -p1
%patch42 -p1
%patch46 -p1
%patch47 -p1
# OLD COMMENTED OUT
#%%patch52 -p1 -- morearchs (rpmrc patch) adds ppc7400, ppc7400
%patch55 -p1
-%patch58 -p1
%patch59 -p1
%patch17 -p1
%patch18 -p1
+%patch19 -p1
+%patch60 -p1
%ifarch sparc64
%patch61 -p1
%endif
%build
%{__libtoolize}
-%{__autopoint}
+#%{__autopoint}
%{__aclocal}
%{__autoheader}
%{__autoconf}
# 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
-%{?with_system_lua:CPPFLAGS=-I/usr/include/lua51}
+%{?with_system_lua:CPPFLAGS="-I/usr/include/lua51 %{rpmcppflags}"}
# pass CC and CXX too in case of building with some older configure macro
%configure \
CC="%{__newcc}" \
%{?with_autoreqdep:--enable-adding-packages-names-in-autogenerated-dependancies} \
--enable-shared \
--enable-static \
+ %{!?with_apidocs:--without-apidocs} \
%{?with_python:--with-python=%{py_ver} --with-python-lib-dir=%{py_sitedir}} \
%{!?with_python:--without-python} \
--with%{!?with_selinux:out}-selinux \
--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-pcre=no \
--with-keyutils=none \
--without-path-versioned \
- --with-path-macros='%{_rpmlibdir}/macros:%{_rpmlibdir}/macros.pld:%{_rpmlibdir}/macros.build:%{_rpmlibdir}/%%{_target}/macros:%{_sysconfdir}/macros.*:%{_sysconfdir}/macros:%{_sysconfdir}/%%{_target}/macros:~/etc/rpmmacros:~/etc/.rpmmacros:~/.rpmmacros' \
+ --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 \
CXX="%{__cxx}" \
CPP="%{__cpp}"
+%{?with_apidocs:%{__make} apidocs}
+
%install
rm -rf $RPM_BUILD_ROOT
-install -d $RPM_BUILD_ROOT{/bin,/%{_lib},/etc/sysconfig,%{_sysconfdir}/rpm,/var/lib/banner,/var/cache/hrmib}
+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 \
pkgconfigdir=%{_pkgconfigdir} \
# x86_64 things
%ifarch x86_64
-amd64-[^-]*-linux(-gnu)?
-x86_64-[^-]*-linux(-gnu)?
+x86_64-[^-]*-[Ll]inux(-gnu)?
+amd64-[^-]*-[Ll]inux(-gnu)?
%endif
%ifarch amd64
-amd64-[^-]*-linux(-gnu)?
-x86_64-[^-]*-linux(-gnu)?
+amd64-[^-]*-[Ll]inux(-gnu)?
+x86_64-[^-]*-[Ll]inux(-gnu)?
%endif
%ifarch ia32e
-ia32e-[^-]*-linux(-gnu)?
-x86_64-[^-]*-linux(-gnu)?
+ia32e-[^-]*-[Ll]inux(-gnu)?
+x86_64-[^-]*-[Ll]inux(-gnu)?
%endif
# x86 things
%ifarch athlon %{x8664}
-athlon-[^-]*-linux(-gnu)?
+athlon-[^-]*-[Ll]inux(-gnu)?
%endif
%ifarch pentium4 athlon %{x8664}
-pentium4-[^-]*-linux(-gnu)?
+pentium4-[^-]*-[Ll]inux(-gnu)?
%endif
%ifarch pentium3 pentium4 athlon %{x8664}
-pentium3-[^-]*-linux(-gnu)?
+pentium3-[^-]*-[Ll]inux(-gnu)?
%endif
%ifarch i686 pentium3 pentium4 athlon %{x8664}
-i686-[^-]*-linux(-gnu)?
+i686-[^-]*-[Ll]inux(-gnu)?
%endif
%ifarch i586 i686 pentium3 pentium4 athlon %{x8664}
-i586-[^-]*-linux(-gnu)?
+i586-[^-]*-[Ll]inux(-gnu)?
%endif
%ifarch i486 i586 i686 pentium3 pentium4 athlon %{x8664}
-i486-[^-]*-linux(-gnu)?
+i486-[^-]*-[Ll]inux(-gnu)?
%endif
%ifarch %{ix86} %{x8664}
-i386-[^-]*-linux(-gnu)?
+i386-[^-]*-[Ll]inux(-gnu)?
%endif
%ifarch alpha
-alpha-[^-]*-linux(-gnu)?
+alpha-[^-]*-[Ll]inux(-gnu)?
%endif
%ifarch ia64
-ia64-[^-]*-linux(-gnu)?
+ia64-[^-]*-[Ll]inux(-gnu)?
%endif
%ifarch ppc64
-powerpc64-[^-]*-linux(-gnu)?
-ppc64-[^-]*-linux(-gnu)?
+powerpc64-[^-]*-[Ll]inux(-gnu)?
+ppc64-[^-]*-[Ll]inux(-gnu)?
%endif
%ifarch %{ppc} ppc64
-powerpc-[^-]*-linux(-gnu)?
-ppc-[^-]*-linux(-gnu)?
+powerpc-[^-]*-[Ll]inux(-gnu)?
+ppc-[^-]*-[Ll]inux(-gnu)?
%endif
%ifarch s390x
-s390x-[^-]*-linux(-gnu)?
+s390x-[^-]*-[Ll]inux(-gnu)?
%endif
%ifarch s390 s390x
-s390-[^-]*-linux(-gnu)?
+s390-[^-]*-[Ll]inux(-gnu)?
%endif
%ifarch sparc64
-sparc64-[^-]*-linux(-gnu)?
-sparcv8-[^-]*-linux(-gnu)?
-sparcv9-[^-]*-linux(-gnu)?
+sparc64-[^-]*-[Ll]inux(-gnu)?
+sparcv8-[^-]*-[Ll]inux(-gnu)?
+sparcv9-[^-]*-[Ll]inux(-gnu)?
%endif
%ifarch sparcv9
-sparcv8-[^-]*-linux(-gnu)?
-sparcv9-[^-]*-linux(-gnu)?
+sparcv8-[^-]*-[Ll]inux(-gnu)?
+sparcv9-[^-]*-[Ll]inux(-gnu)?
%endif
%ifarch sparc sparcv9 sparc64
-sparc-[^-]*-linux(-gnu)?
+sparc-[^-]*-[Ll]inux(-gnu)?
%endif
# noarch
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
# 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; do
+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
%defattr(644,root,root,755)
%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}/rpmquery
#%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
%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
%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)
%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}/rpmcmp
%{_mandir}/man8/rpm2cpio.8*
%{_mandir}/man8/rpmcache.8*
%{_mandir}/man8/rpmdeps.8*
+%{_mandir}/man8/rpmmtree.8*
%lang(ja) %{_mandir}/ja/man8/rpm2cpio.8*
%lang(ja) %{_mandir}/ja/man8/rpmcache.8*
%lang(ko) %{_mandir}/ko/man8/rpm2cpio.8*
%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) %{py_sitedir}/rpm/*.so
%{py_sitedir}/rpm/*.py[co]
%endif
+
+%if %{with apidocs}
+%files apidocs
+%defattr(644,root,root,755)
+%doc apidocs
+%endif