# 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
#
# Conditional build:
%bcond_with static # build static rpm+rpmi
%bcond_without selinux # build without selinux support
%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
# 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.6.18
%define reqpopt_ver 1.10.8
Summary(uk.UTF-8): Менеджер пакетів від RPM
Name: rpm
Version: 5.0
-Release: 0.1
+Release: 0.2
License: GPL
Group: Base
-Source0: rpm-20070927.tar.gz
-# Source0-md5: cf0bda3a41b74d68b36ef078edfafc6d
+Source0: %{name}-20071029.tar.bz2
+# Source0-md5: 572527ed1757842b2d8cb264473d2dea
Source1: %{name}.groups
Source2: %{name}.platform
Source3: %{name}-install-tree
Source16: %{name}-java-requires
# http://svn.pld-linux.org/banner.sh/
Source17: banner.sh
+Source18: %{name}-pld.macros
+
+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}-pl.po.patch
Patch3: %{name}-rpmpopt.patch
Patch18: %{name}-perl_req.patch
-Patch21: %{name}-dontneedutils.patch
-Patch22: %{name}-provides-dont-obsolete.patch
Patch23: %{name}-pkgconfigdeps.patch
-Patch25: %{name}-rpm2cpio-payload.patch
Patch26: %{name}-notsc.patch
Patch27: %{name}-hack-norpmlibdep.patch
Patch46: %{name}-mono.patch
Patch47: %{name}-javadeps.patch
-Patch50: %{name}-macros.patch
-
Patch52: %{name}-morearchs.patch
Patch55: %{name}-truncate-cvslog.patch
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
# 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
BuildRequires: libmagic-static
Summary(pl.UTF-8): Biblioteki RPM-a
Group: Libraries
Requires: beecrypt >= %{beecrypt_ver}
-Requires: db >= %{reqdb_ver}
+%{?with_db:Requires: db >= %{reqdb_ver}}
%{?with_selinux:Requires: libselinux >= 1.18}
Requires: libmagic >= 1.15-2
Requires: popt >= %{reqpopt_ver}
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
Requires: libmagic-devel
%{?with_selinux:Requires: libselinux-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
Requires: libmagic-static
Requires: popt-static >= %{reqpopt_ver}
%prep
%setup -q -n %{name}
-sed -i -e 's# no # nb #g' configure.ac
-mv po/no.po po/nb.po
-sed -i -e 's# sr # sr@Latn #g' configure.ac
-mv -f po/{sr,sr@Latn}.po
-
-sed -i -e 's#${prefix}/lib/python@WITH_PYTHON_VERSION@#@WITH_PYTHON_LIBDIR@#g' python/rpm/Makefile.am
# APPLIED ALREADY?
#%patch0 -p1
-# CHECK ME
-#%patch3 -p1
+%patch3 -p1
%patch4 -p1
%patch5 -p1
%patch6 -p1
%patch7 -p1
%patch8 -p1
%patch9 -p1
-# CHECK ME
-#%patch10 -p1
+%patch10 -p1
# CHECK ME
#%patch14 -p1
%patch16 -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
install %{SOURCE9} scripts/php.prov.in
install %{SOURCE10} scripts/php.req.in
install %{SOURCE12} scripts/perl.prov
-# CHECK ME
-#%patch21 -p1
-# CHECK ME
-#%patch22 -p1
%patch23 -p1
-%patch25 -p1
-# CHECK ME, possibly drop since we don't support i386 anymore
-# %patch26 -p1
+
+%ifarch i386 i486
+# disable TSC
+%patch26 -p1
+%endif
%patch27 -p1
# CHECK ME
#%patch31 -p1
-# CHECK ME
-#%patch32 -p1
+%patch32 -p1
%patch34 -p1
%patch35 -p0
-# CHECK ME
-#%patch36 -p1
+%patch36 -p1
%patch37 -p1
# CHECK ME
#%patch41 -p1
-# CHECK ME
-#%patch42 -p1
-# CHECK ME
+%patch42 -p1
+# CHECK ME, PROBABLY WILL NEED TO HANLE IN OTHER WAY since rpmfcSCRIPT already handles mono
#%patch46 -p1
-# CHECK ME
-#%patch47 -p1
-# CHECK ME, replace part by --with-path-macros
-#%patch50 -p1
+%patch47 -p1
# OLD COMMENTED OUT
#%patch52 -p1
%patch55 -p1
--with-neon=%{?with_neon:external}%{!?with_neon:no} \
--with-file=external \
--with-popt=external \
- --with-db=external \
+ --with-db=%{?with_db:external}%{!?with_db:no} \
--with-sqlite=%{?with_sqlite:external}%{!?with_sqlite:no} \
- --with-dbapi=db \
- --with-lua=none \
- --with-pcre=external \
+ --with-dbapi=%{!?sqlite_dbapi:db}%{?sqlite_dbapi:sqlite} \
+ --with-lua=internal \
+ --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-bugreport="http://bugs.pld-linux.org/"
%{__make} \
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
+
# first platform file entry can't contain regexps
echo "%{_target_cpu}-%{_target_vendor}-linux" > $RPM_BUILD_ROOT%{_sysconfdir}/rpm/platform
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
%{_rpmlibdir}/rpmpopt*
%{_rpmlibdir}/macros
+%{_rpmlibdir}/macros.pld
%files base
%defattr(644,root,root,755)
%{_pkgconfigdir}/*.pc
%attr(755,root,root) %{_libdir}/librpm.so
%attr(755,root,root) %{_libdir}/librpm-%{sover}.so
+%attr(755,root,root) %{_libdir}/librpmconstant.so
+%attr(755,root,root) %{_libdir}/librpmconstant-%{sover}.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
%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) %{_rpmlibdir}/pkgconfigdeps.sh
#%attr(755,root,root) %{_rpmlibdir}/rpmb
#%attr(755,root,root) %{_rpmlibdir}/rpmt
-# XXX FIXME FIXME FIXME XXX
-%if 0
%{_rpmlibdir}/noarch-*
%ifarch %{ix86}
%{_rpmlibdir}/i?86*
%{_rpmlibdir}/ia32e*
%{_rpmlibdir}/x86_64*
%endif
-%endif
# must be here for "Requires: rpm-*prov" to work
%{_rpmlibdir}/macros.java
%{_rpmlibdir}/macros.mono