#
# 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 internal_db # internal db (db 4.5.20)
%bcond_with autoreqdep # autogenerate package name deps in addition to sonames/perl(X)
%bcond_without nptl # internal db: don't use process-shared POSIX mutexes (NPTL provides full interface)
%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). NOTE: neon libs are in /usr!
-# force_cc - force using __cc other than "%{_target_cpu}-tld-linux-gcc"
-# force_cxx - force using __cxx other than "%{_target_cpu}-tld-linux-g++"
-# force_cpp - force using __cpp other than "%{_target_cpu}-tld-linux-gcc -E"
-
-#%%define force_cc "%{_target_cpu}-tld-linux-gcc"
-#%%define force_cxx "%{_target_cpu}-tld-linux-g++"
-#%%define force_cpp '%{_target_cpu}-tld-linux-gcc -E'
# versions of required libraries
-%define reqdb_ver 4.5.20
+%define reqdb_pkg db4.7
+%define reqdb_ver 4.7.25
%define reqpopt_ver 1.10.8
%define beecrypt_ver 2:4.1.2-4
%define sover 4.5
Summary(uk.UTF-8): Менеджер пакетів від RPM
Name: rpm
Version: 4.5
-Release: 60
+Release: 83
License: LGPL
Group: Base
Source0: %{name}-%{version}.tar.gz
# http://svn.pld-linux.org/banner.sh/
Source18: banner.sh
Source19: %{name}-macros.gstreamer
+Source20: macros.php
+Source21: %{name}-php-requires.php
+Source22: rubygems.rb
+Source23: gem_helper.rb
Patch1000: %{name}-new-debuginfo.patch
-#Patch1067: %{name}-disable-features.patch
-#Patch1070: %{name}-rpmrc-ac.patch
#Patch0: %{name}-pl.po.patch
Patch1: %{name}-rpmrc.patch
Patch2: %{name}-arch.patch
Patch36: %{name}-debuginfo.patch
Patch37: %{name}-doxygen_hack.patch
Patch39: %{name}-popt-coreutils.patch
+Patch40: %{name}-helperEVR-noassert.patch
Patch42: %{name}-old-fileconflicts-behaviour.patch
Patch43: %{name}-rpm5-patchset-8637.patch
Patch44: %{name}-no-neon.patch
Patch102: pythondeps-speedup.patch
Patch103: %{name}-lua-exit-chroot-correctly.patch
Patch104: %{name}-glob.patch
+Patch105: %{name}-am.patch
+Patch106: %{name}-automake_1.12.patch
+Patch107: %{name}-debugedit-dwarf4.patch
+Patch108: %{name}-changelog_order_check_nonfatal.patch
+Patch109: %{name}-installplatform.patch
+Patch110: %{name}-xz.patch
+Patch111: %{name}-shrink.patch
+Patch112: notrans.patch
+Patch113: %{name}-rubyprov.patch
+Patch114: %{name}-ruby-gem-build.patch
URL: http://rpm5.org/
BuildRequires: autoconf >= 2.57
BuildRequires: automake >= 1.4
BuildRequires: beecrypt-devel >= %{beecrypt_ver}
BuildRequires: bzip2-devel >= 1.0.2-17
-%{!?with_internal_db:BuildRequires: db-devel >= %{reqdb_ver}}
+%{!?with_internal_db:BuildRequires: %{reqdb_pkg}-devel >= %{reqdb_ver}}
BuildRequires: elfutils-devel >= 0.108
BuildRequires: gettext-devel >= 0.11.4-2
BuildRequires: keyutils-devel
# Require static library only for static build
BuildRequires: beecrypt-static >= %{beecrypt_ver}
BuildRequires: bzip2-static >= 1.0.2-17
-%{!?with_internal_db:BuildRequires: db-static >= %{reqdb_ver}}
+%{!?with_internal_db:BuildRequires: %{reqdb_pkg}-static >= %{reqdb_ver}}
BuildRequires: elfutils-static
BuildRequires: glibc-static >= 2.2.94
%{?with_system_libmagic:BuildRequires: libmagic-static}
%{?with_selinux:BuildRequires: libselinux-static >= 1.18}
+BuildRequires: ossp-uuid-static >= 1.6.2-8
BuildRequires: popt-static >= %{reqpopt_ver}
BuildRequires: zlib-static >= 1.2.3.3
%endif
%define specflags -fno-strict-aliasing
-#%%define _host_alias %{_target_cpu}-tld-linux%{nil}
-#%%define _host_vendor tld
-#%%define _vendor tld
-
%description
RPM is a powerful package manager, which can be used to build,
install, query, verify, update, and uninstall individual software
Summary(pl.UTF-8): Biblioteki RPM-a
Group: Libraries
Requires: beecrypt >= %{beecrypt_ver}
-%{!?with_internal_db:Requires: db >= %{reqdb_ver}}
+%{!?with_internal_db:Requires: %{reqdb_pkg} >= %{reqdb_ver}}
%{?with_system_libmagic:Requires: libmagic >= 1.15-2}
%{?with_selinux:Requires: libselinux >= 1.18}
Requires: ossp-uuid >= 1.6.2-4
Requires: %{name}-lib = %{version}-%{release}
Requires: beecrypt-devel >= %{beecrypt_ver}
Requires: bzip2-devel
-%{!?with_internal_db:Requires: db-devel >= %{reqdb_ver}}
+%{!?with_internal_db:Requires: %{reqdb_pkg}-devel >= %{reqdb_ver}}
Requires: elfutils-devel
Requires: keyutils-devel
%{?with_system_libmagic:Requires: libmagic-devel}
Requires: %{name}-devel = %{version}-%{release}
Requires: beecrypt-static >= %{beecrypt_ver}
Requires: bzip2-static
-%{!?with_internal_db:Requires: db-static >= %{reqdb_ver}}
+%{!?with_internal_db:Requires: %{reqdb_pkg}-static >= %{reqdb_ver}}
Requires: elfutils-static
Requires: keyutils-static
%{?with_system_libmagic:Requires: libmagic-static}
Summary(uk.UTF-8): Скрипти та утиліти, необхідні для побудови пакетів
Group: Applications/File
Requires(pretrans): findutils
-Requires: %{name}-build-macros >= 1.514
+Requires: %{name}-build-macros >= 1.656
Requires: %{name}-utils = %{version}-%{release}
Requires: /bin/id
Requires: awk
Requires: file >= 4.17
Requires: fileutils
Requires: findutils
-# rpmrc patch adds flags specific to gcc >= 3.4
-Requires: gcc >= 5:3.4
+# rpmrc patch adds flags specific to gcc >= 4.7
+Requires: gcc >= 6:4.7.0
Requires: glibc-devel
Requires: grep
Requires: gzip
Dodatkowe narzędzia do sprawdzenia zależności skryptów PHP PEAR w
pakietach RPM.
+%package rubyprov
+Summary: Ruby tools, which simplify creation of RPM packages with Ruby software
+Summary(pl.UTF-8): Makra ułatwiające tworzenie pakietów RPM z programami napisanymi w Ruby
+Group: Applications/File
+Requires: %{name} = %{version}-%{release}
+Requires: ruby
+Requires: ruby-modules
+Requires: ruby-rubygems
+
+%description rubyprov
+Ruby tools, which simplifies creation of RPM packages with Ruby
+software.
+
+%description rubyprov -l pl.UTF-8
+Makra ułatwiające tworzenie pakietów RPM z programami napisanymi w
+Ruby.
+
%package -n python-rpm
Summary: Python interface to RPM library
Summary(pl.UTF-8): Pythonowy interfejs do biblioteki RPM-a
%prep
%setup -q
+cp -p %{SOURCE15} .
%patch1000 -p1
#%patch0 -p1
-%patch1 -p1
%patch2 -p1
+%patch1 -p1
%patch3 -p1
%patch4 -p1
%patch6 -p1
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
+cp -p %{SOURCE20} 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 %{SOURCE10} scripts/php.prov
%patch36 -p1
%patch37 -p1
%patch39 -p1
+%patch40 -p1
%patch42 -p1
%patch43 -p1
%patch82 -p1
%patch102 -p1
%patch103 -p1
%patch104 -p1
+%patch105 -p1
+%patch106 -p1
+%patch107 -p1
+%patch108 -p1
+%patch109 -p1
+%patch110 -p1
+%patch111 -p1
+%patch112 -p1
+%patch113 -p1
+%patch114 -p1
mv -f po/{sr,sr@Latn}.po
rm -rf sqlite zlib popt
rm -rf db3 db rpmdb/db.h
%endif
+cp -p %{SOURCE22} scripts/rubygems.rb
+cp -p %{SOURCE23} scripts/gem_helper.rb
+
# generate Group translations to *.po
awk -f %{SOURCE6} %{SOURCE1}
# pass CC and CXX too in case of building with some older configure macro
# disable perl-RPM2 build, we have it in separate spec
-CPPFLAGS="%{rpmcppflags} -I/usr/include/ossp-uuid"
+CPPFLAGS="%{rpmcppflags} -I/usr/include/ossp-uuid -I/usr/include/%{reqdb_pkg}"
%configure \
CC="%{__newcc}" \
CXX="%{__newcxx}" \
CC="%{__cc}" \
CXX="%{__cxx}" \
CPP="%{__cpp}" \
- libdb_la=%{_libdir}/libdb.la \
+ libdb_la=%{_libdir}/libdb-%(echo %{reqdb_pkg} | sed -e 's/^db//').la \
pylibdir=%{py_libdir} \
myLDFLAGS="%{rpmldflags}" \
staticLDFLAGS=%{?with_static:-all-static}
%{__make} install \
DESTDIR=$RPM_BUILD_ROOT \
staticLDFLAGS=%{?with_static:-all-static} \
- pylibdir=%{py_libdir} \
- pkgbindir="%{_bindir}"
+ pylibdir=%{py_libdir}
cat <<'EOF' > $RPM_BUILD_ROOT/etc/tmpwatch/rpm.conf
# Cleanup 90-days old repackage files.
%ifarch sparc sparcv9 sparc64
sparc-[^-]*-[Ll]inux(-gnu)?
%endif
+%ifarch armv6l
+armv6l-[^-]*-[Ll]inux(-gnu)?
+%endif
%ifarch armv5tel
armv5tel-[^-]*-[Ll]inux(-gnu)?
%endif
install -p %{SOURCE14} $RPM_BUILD_ROOT%{_rpmlibdir}/user_group.sh
install -p %{SOURCE17} $RPM_BUILD_ROOT%{_rpmlibdir}/java-find-requires
install -p scripts/php.{prov,req} $RPM_BUILD_ROOT%{_rpmlibdir}
+cp -p %{SOURCE21} $RPM_BUILD_ROOT%{_rpmlibdir}/php.req.php
install -p %{SOURCE5} $RPM_BUILD_ROOT%{_rpmlibdir}/hrmib-cache
install -p %{SOURCE18} $RPM_BUILD_ROOT%{_bindir}/banner.sh
-cp -a %{SOURCE15} $RPM_BUILD_ROOT/etc/sysconfig/rpm
+cp -p %{name}.sysconfig $RPM_BUILD_ROOT/etc/sysconfig/rpm
install -d $RPM_BUILD_ROOT%{_sysconfdir}/rpm/sysinfo
touch $RPM_BUILD_ROOT%{_sysconfdir}/rpm/sysinfo/Conflictname
# Boolean (i.e. 1 == "yes", 0 == "no") that controls whether files
# marked as %doc should be installed.
#%%_excludedocs 1
+
+# For static /dev not to update perms if upgraded and tmpfs mounted
+#%%_netsharedpath /dev/shm
EOF
cat > $RPM_BUILD_ROOT%{_sysconfdir}/rpm/macros.lang <<EOF
%{__rm} $RPM_BUILD_ROOT%{perl_archlib}/perllocal.pod
%{__rm} $RPM_BUILD_ROOT%{perl_vendorarch}/RPM.pm
%{__rm} $RPM_BUILD_ROOT%{perl_vendorarch}/auto/RPM/.packlist
-%{__rm} $RPM_BUILD_ROOT%{perl_vendorarch}/auto/RPM/RPM.bs
+%{__rm} -f $RPM_BUILD_ROOT%{perl_vendorarch}/auto/RPM/RPM.bs
%{__rm} $RPM_BUILD_ROOT%{perl_vendorarch}/auto/RPM/RPM.so
%{__rm} $RPM_BUILD_ROOT%{_mandir}/man3/RPM.3pm
%{__rm} $RPM_BUILD_ROOT%{_mandir}/{,ja,pl}/man8/rpm{cache,graph}.8
%{_rpmlibdir}/ia32e*
%{_rpmlibdir}/x86_64*
%endif
-%ifarch armv5tel armv4t armv3t armv5teb armv4b
+%ifarch armv6l armv5tel armv4t armv3t armv5teb armv4b
%{_rpmlibdir}/arm*
%endif
# must be here for "Requires: rpm-*prov" to work
%defattr(644,root,root,755)
%attr(755,root,root) %{_rpmlibdir}/php*
+%files rubyprov
+%defattr(644,root,root,755)
+%attr(755,root,root) %{_rpmlibdir}/gem_helper.rb
+%attr(755,root,root) %{_rpmlibdir}/rubygems.rb
+
%if %{with python}
%files -n python-rpm
%defattr(644,root,root,755)