Blame rpm.spec

Bernhard M. Wiedemann 1250f9
#
Bernhard M. Wiedemann 1250f9
# spec file for package rpm
Bernhard M. Wiedemann 1250f9
#
Bernhard M. Wiedemann 4b0d85
# Copyright (c) 2020 SUSE LLC
Bernhard M. Wiedemann 1250f9
#
Bernhard M. Wiedemann 1250f9
# All modifications and additions to the file contributed by third parties
Bernhard M. Wiedemann 1250f9
# remain the property of their copyright owners, unless otherwise agreed
Bernhard M. Wiedemann 1250f9
# upon. The license for this file, and modifications and additions to the
Bernhard M. Wiedemann 1250f9
# file, is the same license as for the pristine package itself (unless the
Bernhard M. Wiedemann 1250f9
# license for the pristine package is not an Open Source License, in which
Bernhard M. Wiedemann 1250f9
# case the license is the MIT License). An "Open Source License" is a
Bernhard M. Wiedemann 1250f9
# license that conforms to the Open Source Definition (Version 1.9)
Bernhard M. Wiedemann 1250f9
# published by the Open Source Initiative.
Bernhard M. Wiedemann 1250f9
Bernhard M. Wiedemann 4b0d85
# Please submit bugfixes or comments via https://bugs.opensuse.org/
Bernhard M. Wiedemann 1250f9
#
Bernhard M. Wiedemann 1250f9
Bernhard M. Wiedemann 1250f9
Bernhard M. Wiedemann 1250f9
#Compat macro for new _fillupdir macro introduced in Nov 2017
Bernhard M. Wiedemann 1250f9
%{?!_fillupdir:%define _fillupdir /var/adm/fillup-templates}
Bernhard M. Wiedemann 1250f9
Bernhard M. Wiedemann eb41fd
%global librpmsover 9
Bernhard M. Wiedemann 018f1b
%global without_bdb 1
Bernhard M. Wiedemann 9cd258
Bernhard M. Wiedemann 1250f9
Name:           rpm
Bernhard M. Wiedemann 1250f9
BuildRequires:  binutils
Bernhard M. Wiedemann 1250f9
BuildRequires:  bzip2
Bernhard M. Wiedemann 1250f9
BuildRequires:  file-devel
Bernhard M. Wiedemann 1250f9
BuildRequires:  findutils
Bernhard M. Wiedemann 1250f9
BuildRequires:  gcc
Bernhard M. Wiedemann 1250f9
BuildRequires:  gettext-devel
Bernhard M. Wiedemann 1250f9
BuildRequires:  glibc-devel
Bernhard M. Wiedemann 1250f9
BuildRequires:  gzip
Bernhard M. Wiedemann 1250f9
BuildRequires:  libacl-devel
Bernhard M. Wiedemann 1250f9
BuildRequires:  libbz2-devel
Bernhard M. Wiedemann 1250f9
BuildRequires:  libcap-devel
Bernhard M. Wiedemann 1250f9
BuildRequires:  libdw-devel
Bernhard M. Wiedemann 1250f9
BuildRequires:  libelf-devel
Bernhard M. Wiedemann 018f1b
BuildRequires:  libgcrypt-devel
Bernhard M. Wiedemann 1250f9
BuildRequires:  libselinux-devel
Bernhard M. Wiedemann 1250f9
BuildRequires:  libsemanage-devel
Bernhard M. Wiedemann 1250f9
BuildRequires:  libtool
Bernhard M. Wiedemann 1250f9
BuildRequires:  lua-devel
Bernhard M. Wiedemann 1250f9
BuildRequires:  make
Bernhard M. Wiedemann 1250f9
BuildRequires:  ncurses-devel
Bernhard M. Wiedemann 1250f9
BuildRequires:  patch
Bernhard M. Wiedemann 1250f9
BuildRequires:  perl-base
Bernhard M. Wiedemann 1250f9
BuildRequires:  popt-devel
Bernhard M. Wiedemann 1250f9
BuildRequires:  rpm-build
Bernhard M. Wiedemann 1250f9
BuildRequires:  xz-devel
Bernhard M. Wiedemann 1250f9
BuildRequires:  zlib-devel
Bernhard M. Wiedemann 1250f9
BuildRequires:  pkgconfig(libzstd)
Bernhard M. Wiedemann 1250f9
#!BuildIgnore:  rpmlint-Factory
Bernhard M. Wiedemann 1250f9
Provides:       rpminst
Bernhard M. Wiedemann 1250f9
Requires(post): %fillup_prereq
Bernhard M. Wiedemann 1250f9
Requires:       rpm-config-SUSE
Bernhard M. Wiedemann 1250f9
# awk is needed for rpm --last
Bernhard M. Wiedemann 1250f9
Requires:       /usr/bin/awk
Bernhard M. Wiedemann 1250f9
Summary:        The RPM Package Manager
Bernhard M. Wiedemann 1250f9
License:        GPL-2.0-or-later
Bernhard M. Wiedemann 1250f9
Group:          System/Packages
Bernhard M. Wiedemann eb41fd
Version:        4.15.1
Bernhard M. Wiedemann 1250f9
Release:        0
Bernhard M. Wiedemann 1250f9
URL:            https://rpm.org/
Bernhard M. Wiedemann 1250f9
#Git-Clone:     https://github.com/rpm-software-management/rpm
Bernhard M. Wiedemann eb41fd
Source:         http://ftp.rpm.org/releases/rpm-4.15.x/rpm-%{version}.tar.bz2
Bernhard M. Wiedemann 1250f9
Source1:        RPM-HOWTO.tar.bz2
Bernhard M. Wiedemann 1250f9
Source5:        rpmsort
Bernhard M. Wiedemann 1250f9
Source8:        rpmconfigcheck
Bernhard M. Wiedemann 1250f9
Source9:        sysconfig.services-rpm
Bernhard M. Wiedemann 1250f9
Source11:       db-4.8.30.tar.bz2
Bernhard M. Wiedemann 1250f9
Source12:       baselibs.conf
Bernhard M. Wiedemann 1250f9
Source13:       rpmconfigcheck.service
Bernhard M. Wiedemann 1250f9
Patch2:         db.diff
Bernhard M. Wiedemann 1250f9
Patch3:         rpm-4.12.0.1-fix-bashisms.patch
Bernhard M. Wiedemann 1250f9
Patch5:         usr-lib-sysimage-rpm.patch
Bernhard M. Wiedemann 1250f9
# quilt patches start here
Bernhard M. Wiedemann 1250f9
Patch11:        debugedit.diff
Bernhard M. Wiedemann 1250f9
Patch13:        ignore-auxv.diff
Bernhard M. Wiedemann 1250f9
Patch12:        localetag.diff
Bernhard M. Wiedemann 1250f9
Patch15:        dbfsync.diff
Bernhard M. Wiedemann 1250f9
Patch16:        dbrointerruptable.diff
Bernhard M. Wiedemann 1250f9
Patch18:        refreshtestarch.diff
Bernhard M. Wiedemann 1250f9
Patch20:        waitlock.diff
Bernhard M. Wiedemann 1250f9
Patch21:        suspendlock.diff
Bernhard M. Wiedemann 1250f9
Patch24:        brp.diff
Bernhard M. Wiedemann 1250f9
Patch25:        brpcompress.diff
Bernhard M. Wiedemann 1250f9
Patch26:        checkfilesnoinfodir.diff
Bernhard M. Wiedemann 1250f9
Patch27:        finddebuginfo.diff
Bernhard M. Wiedemann 1250f9
Patch29:        findlang.diff
Bernhard M. Wiedemann 1250f9
Patch30:        macrosin.diff
Bernhard M. Wiedemann 1250f9
Patch32:        platformin.diff
Bernhard M. Wiedemann 1250f9
Patch33:        rpmpopt.diff
Bernhard M. Wiedemann 1250f9
Patch34:        rpmrc.diff
Bernhard M. Wiedemann 1250f9
Patch35:        taggedfileindex.diff
Bernhard M. Wiedemann 1250f9
Patch36:        rpmqpack.diff
Bernhard M. Wiedemann 1250f9
Patch38:        build.diff
Bernhard M. Wiedemann 1250f9
Patch43:        rpm-shorten-changelog.diff
Bernhard M. Wiedemann 1250f9
Patch45:        whatrequires-doc.diff
Bernhard M. Wiedemann 1250f9
Patch46:        remove-brp-strips.diff
Bernhard M. Wiedemann 1250f9
Patch47:        requires-ge-macro.diff
Bernhard M. Wiedemann 1250f9
Patch49:        finddebuginfo-absolute-links.diff
Bernhard M. Wiedemann 1250f9
Patch51:        specfilemacro.diff
Bernhard M. Wiedemann 1250f9
Patch55:        debugsubpkg.diff
Bernhard M. Wiedemann 1250f9
Patch56:        debuglink.diff
Bernhard M. Wiedemann 1250f9
Patch57:        debuginfo-mono.patch
Bernhard M. Wiedemann 1250f9
Patch58:        lazystatfs.diff
Bernhard M. Wiedemann 1250f9
Patch60:        safeugid.diff
Bernhard M. Wiedemann 1250f9
Patch61:        noprereqdeprec.diff
Bernhard M. Wiedemann 1250f9
Patch66:        remove-translations.diff
Bernhard M. Wiedemann 1250f9
Patch67:        headeradddb.diff
Bernhard M. Wiedemann 1250f9
Patch68:        dbprivate.diff
Bernhard M. Wiedemann 1250f9
Patch69:        nobuildcolor.diff
Bernhard M. Wiedemann 1250f9
Patch70:        fileattrs.diff
Bernhard M. Wiedemann 1250f9
Patch71:        nomagiccheck.diff
Bernhard M. Wiedemann 1250f9
Patch73:        assumeexec.diff
Bernhard M. Wiedemann 1250f9
Patch75:        rpm-deptracking.patch
Bernhard M. Wiedemann 1250f9
Patch77:        langnoc.diff
Bernhard M. Wiedemann 1250f9
Patch78:        headerchk2.diff
Bernhard M. Wiedemann 1250f9
Patch85:        brp-compress-no-img.patch
Bernhard M. Wiedemann 1250f9
Patch93:        weakdepscompat.diff
Bernhard M. Wiedemann 1250f9
Patch94:        checksepwarn.diff
Bernhard M. Wiedemann 1250f9
Patch99:        enable-postin-scripts-error.diff
Bernhard M. Wiedemann 1250f9
Patch100:       rpm-findlang-inject-metainfo.patch
Bernhard M. Wiedemann 1250f9
Patch102:       emptymanifest.diff
Bernhard M. Wiedemann 1250f9
Patch103:       find-lang-qt-qm.patch
Bernhard M. Wiedemann 1250f9
Patch109:       pythondistdeps.diff
Bernhard M. Wiedemann 1250f9
Patch117:       findsupplements.diff
Bernhard M. Wiedemann 018f1b
Patch118:       db_ops_name.diff
Bernhard M. Wiedemann 018f1b
Patch119:       bdb_ro.diff
Bernhard M. Wiedemann 018f1b
Patch120:       disable_bdb.diff
Bernhard M. Wiedemann 018f1b
Patch121:       ndb_backport.diff
Bernhard M. Wiedemann 018f1b
Patch122:       db_conversion.diff
Bernhard M. Wiedemann 88e749
Patch123:       initgcrypt.diff
Bernhard M. Wiedemann 4b0d85
Patch124:       gcryptdsa2.diff
Bernhard M. Wiedemann 4b0d85
Patch125:       ndb_backport2.diff
Bernhard M. Wiedemann 1250f9
Patch6464:      auto-config-update-aarch64-ppc64le.diff
Bernhard M. Wiedemann 1250f9
BuildRoot:      %{_tmppath}/%{name}-%{version}-build
Bernhard M. Wiedemann 1250f9
#
Bernhard M. Wiedemann 1250f9
# avoid bootstrapping problem
Bernhard M. Wiedemann 1250f9
%define _binary_payload w9.bzdio
Bernhard M. Wiedemann 1250f9
Bernhard M. Wiedemann 1250f9
%description
Bernhard M. Wiedemann 1250f9
RPM Package Manager is the main tool for managing the software packages
Bernhard M. Wiedemann 1250f9
of the SUSE Linux distribution.
Bernhard M. Wiedemann 1250f9
Bernhard M. Wiedemann 1250f9
RPM can be used to install and remove software packages. With rpm, it
Bernhard M. Wiedemann 1250f9
is easy to update packages.  RPM keeps track of all these manipulations
Bernhard M. Wiedemann 1250f9
in a central database.	This way it is possible to get an overview of
Bernhard M. Wiedemann 1250f9
all installed packages.  RPM also supports database queries.
Bernhard M. Wiedemann 1250f9
Bernhard M. Wiedemann 9cd258
%package -n librpmbuild%{librpmsover}
Bernhard M. Wiedemann 9cd258
Summary:        Library for building RPM packages
Bernhard M. Wiedemann 9cd258
# Was part of rpm before
Bernhard M. Wiedemann 9cd258
Group:          System/Libraries
Bernhard M. Wiedemann 9cd258
Conflicts:      rpm < %{version}
Bernhard M. Wiedemann 9cd258
Bernhard M. Wiedemann 9cd258
%description -n librpmbuild%{librpmsover}
Bernhard M. Wiedemann 9cd258
Thie package contains a library with functions for building RPM packages.
Bernhard M. Wiedemann 9cd258
Bernhard M. Wiedemann 1250f9
%package devel
Bernhard M. Wiedemann 1250f9
Summary:        Development files for librpm
Bernhard M. Wiedemann 1250f9
Group:          Development/Libraries/C and C++
Bernhard M. Wiedemann 1250f9
Requires:       rpm = %{version}
Bernhard M. Wiedemann 1250f9
# for people confusing the one with the other
Bernhard M. Wiedemann 1250f9
Recommends:     rpm-build = %{version}
Bernhard M. Wiedemann 1250f9
Requires:       popt-devel
Bernhard M. Wiedemann 1250f9
Bernhard M. Wiedemann 1250f9
%description devel
Bernhard M. Wiedemann 1250f9
This package contains the RPM C library and header files.  These
Bernhard M. Wiedemann 1250f9
development files will simplify the process of writing programs which
Bernhard M. Wiedemann 1250f9
manipulate RPM packages and databases and are intended to make it
Bernhard M. Wiedemann 1250f9
easier to create graphical package managers or any other tools that
Bernhard M. Wiedemann 1250f9
need an intimate knowledge of RPM packages in order to function.
Bernhard M. Wiedemann 1250f9
Bernhard M. Wiedemann 1250f9
%package build
Bernhard M. Wiedemann 1250f9
Summary:        Tools and Scripts to create rpm packages
Bernhard M. Wiedemann 1250f9
Group:          System/Packages
Bernhard M. Wiedemann 1250f9
Requires:       rpm = %{version}
Bernhard M. Wiedemann 1250f9
Provides:       rpm:%_bindir/rpmbuild
Bernhard M. Wiedemann 1250f9
Provides:       rpmbuild
Bernhard M. Wiedemann 1250f9
# SUSE's build essentials
Bernhard M. Wiedemann 1250f9
Requires:       binutils
Bernhard M. Wiedemann 1250f9
Requires:       bzip2
Bernhard M. Wiedemann 1250f9
Requires:       coreutils
Bernhard M. Wiedemann 1250f9
Requires:       diffutils
Bernhard M. Wiedemann 1250f9
Requires:       dwz
Bernhard M. Wiedemann 1250f9
Requires:       file
Bernhard M. Wiedemann 1250f9
Requires:       findutils
Bernhard M. Wiedemann 1250f9
Requires:       gawk
Bernhard M. Wiedemann 1250f9
Requires:       gcc
Bernhard M. Wiedemann 1250f9
#Requires:       gcc-PIE
Bernhard M. Wiedemann 1250f9
Requires:       gettext-tools
Bernhard M. Wiedemann 1250f9
Requires:       glibc-devel
Bernhard M. Wiedemann 1250f9
Requires:       glibc-locale
Bernhard M. Wiedemann 1250f9
Requires:       grep
Bernhard M. Wiedemann 1250f9
Requires:       gzip
Bernhard M. Wiedemann 1250f9
Requires:       make
Bernhard M. Wiedemann 1250f9
Requires:       patch
Bernhard M. Wiedemann 1250f9
Requires:       sed
Bernhard M. Wiedemann 1250f9
Requires:       systemd-rpm-macros
Bernhard M. Wiedemann 1250f9
Requires:       tar
Bernhard M. Wiedemann 1250f9
Requires:       util-linux
Bernhard M. Wiedemann 1250f9
Requires:       which
Bernhard M. Wiedemann 1250f9
Requires:       xz
Bernhard M. Wiedemann 1250f9
# drop candidates
Bernhard M. Wiedemann 1250f9
Requires:       cpio
Bernhard M. Wiedemann 1250f9
Requires:       file
Bernhard M. Wiedemann 88e749
# Mandatory generators
Bernhard M. Wiedemann 88e749
Requires:       (%{name}-build-perl if perl-base)
Bernhard M. Wiedemann 88e749
Requires:       (%{name}-build-python if python3-base)
Bernhard M. Wiedemann eb41fd
# The point of the split
Bernhard M. Wiedemann eb41fd
Conflicts:      rpm < 4.15.0
Bernhard M. Wiedemann 1250f9
Bernhard M. Wiedemann 1250f9
%description build
Bernhard M. Wiedemann 1250f9
If you want to build a rpm, you need this package. It provides rpmbuild
Bernhard M. Wiedemann 1250f9
and requires some packages that are usually required.
Bernhard M. Wiedemann 1250f9
Bernhard M. Wiedemann 88e749
%package build-python
Bernhard M. Wiedemann 88e749
Summary:        RPM dependency generator for Python
Bernhard M. Wiedemann 88e749
Group:          Development/Languages/Python
Bernhard M. Wiedemann 88e749
Requires:       python3-base
Bernhard M. Wiedemann 88e749
Bernhard M. Wiedemann 88e749
%description build-python
Bernhard M. Wiedemann 88e749
Provides and requires generator for .py files and modules.
Bernhard M. Wiedemann dbd852
Bernhard M. Wiedemann 88e749
%package build-perl
Bernhard M. Wiedemann 88e749
Summary:        RPM dependency generator for Perl
Bernhard M. Wiedemann 88e749
Group:          Development/Languages/Perl
Bernhard M. Wiedemann 88e749
Requires:       perl-base
Bernhard M. Wiedemann 88e749
Bernhard M. Wiedemann 88e749
%description build-perl
Bernhard M. Wiedemann 88e749
Provides and requires generator for .pl files and modules.
Bernhard M. Wiedemann 88e749
Bernhard M. Wiedemann 1250f9
%prep
Bernhard M. Wiedemann 1250f9
%setup -q -n rpm-%{version}
Bernhard M. Wiedemann 1250f9
rm -rf sqlite
Bernhard M. Wiedemann 018f1b
%if 0%{?!without_bdb:1}
Bernhard M. Wiedemann 1250f9
tar xjf %{SOURCE11}
Bernhard M. Wiedemann 1250f9
ln -s db-4.8.30 db
Bernhard M. Wiedemann 1250f9
cd db
Bernhard M. Wiedemann 1250f9
%patch2 -p1
Bernhard M. Wiedemann 1250f9
cd ..
Bernhard M. Wiedemann 1250f9
chmod -R u+w db/*
Bernhard M. Wiedemann 1250f9
rm -f rpmdb/db.h
Bernhard M. Wiedemann 018f1b
cp config.guess config.sub db/dist/
Bernhard M. Wiedemann 018f1b
%endif
Bernhard M. Wiedemann 1250f9
%patch3 -p1
Bernhard M. Wiedemann 1250f9
%patch5 -p1
Bernhard M. Wiedemann eb41fd
%patch       -P 11 -P 12 -P 13       -P 15 -P 16       -P 18
Bernhard M. Wiedemann 1250f9
%patch -P 20 -P 21             -P 24 -P 25 -P 26 -P 27       -P 29
Bernhard M. Wiedemann 1250f9
%patch -P 30       -P 32 -P 33 -P 34 -P 35 -P 36       -P 38
Bernhard M. Wiedemann 1250f9
%patch                   -P 43       -P 45 -P 46 -P 47       -P 49
Bernhard M. Wiedemann 1250f9
%patch       -P 51                   -P 55 -P 56 -P 57 -P 58
Bernhard M. Wiedemann 1250f9
%patch -P 60 -P 61                         -P 66 -P 67 -P 68 -P 69
Bernhard M. Wiedemann eb41fd
%patch -P 70 -P 71       -P 73       -P 75       -P 77 -P 78
Bernhard M. Wiedemann 1250f9
%patch                               -P 85
Bernhard M. Wiedemann 1250f9
%patch                   -P 93 -P 94                         -P 99
Bernhard M. Wiedemann dbd852
%patch -P 100        -P 102 -P 103
Bernhard M. Wiedemann eb41fd
%patch -P 109                                           -P 117
Bernhard M. Wiedemann 4b0d85
%patch -P 118 -P 119 -P 120 -P 121 -P 122 -P 123 -P 124 -P 125
Bernhard M. Wiedemann 1250f9
Bernhard M. Wiedemann 1250f9
%ifarch aarch64 ppc64le riscv64
Bernhard M. Wiedemann 1250f9
%patch6464
Bernhard M. Wiedemann 1250f9
%endif
Bernhard M. Wiedemann 1250f9
Bernhard M. Wiedemann 1250f9
tar -xjvf %{SOURCE1}
Bernhard M. Wiedemann 1250f9
rm -f m4/libtool.m4
Bernhard M. Wiedemann 1250f9
rm -f m4/lt*.m4
Bernhard M. Wiedemann 1250f9
Bernhard M. Wiedemann 1250f9
%build
Bernhard M. Wiedemann 1250f9
export CFLAGS="%{optflags} -ffunction-sections"
Bernhard M. Wiedemann 1250f9
export LDFLAGS="-Wl,-Bsymbolic-functions -ffunction-sections"
Bernhard M. Wiedemann 1250f9
%ifarch alpha
Bernhard M. Wiedemann 1250f9
export CFLAGS="-g -O0 -fno-strict-aliasing -ffunction-sections"
Bernhard M. Wiedemann 1250f9
%endif
Bernhard M. Wiedemann 1250f9
Bernhard M. Wiedemann 1250f9
%ifarch %arm
Bernhard M. Wiedemann 1250f9
BUILDTARGET="--build=%{_target_cpu}-suse-linux-gnueabi"
Bernhard M. Wiedemann 1250f9
%else
Bernhard M. Wiedemann 1250f9
BUILDTARGET="--build=%{_target_cpu}-suse-linux"
Bernhard M. Wiedemann 1250f9
%endif
Bernhard M. Wiedemann 1250f9
Bernhard M. Wiedemann 1250f9
autoreconf -fi
Bernhard M. Wiedemann 1250f9
./configure --disable-dependency-tracking --prefix=%{_prefix} --mandir=%{_mandir} --infodir=%{_infodir} \
Bernhard M. Wiedemann eb41fd
--libdir=%{_libdir} --sysconfdir=/etc --localstatedir=/var --sharedstatedir=/var/lib \
Bernhard M. Wiedemann eb41fd
--with-lua \
Bernhard M. Wiedemann 1250f9
--with-vendor=suse \
Bernhard M. Wiedemann 1250f9
--with-rundir=/run \
Bernhard M. Wiedemann 1250f9
--without-archive \
Bernhard M. Wiedemann eb41fd
--with-selinux \
Bernhard M. Wiedemann 018f1b
--with-crypto=libgcrypt \
Bernhard M. Wiedemann eb41fd
--with-acl \
Bernhard M. Wiedemann eb41fd
--with-cap \
Bernhard M. Wiedemann 018f1b
--enable-shared \
Bernhard M. Wiedemann 018f1b
--enable-ndb \
Bernhard M. Wiedemann 018f1b
--enable-bdb-ro \
Bernhard M. Wiedemann eb41fd
--enable-zstd \
Bernhard M. Wiedemann 018f1b
%{?without_bdb: --enable-bdb=no} \
Bernhard M. Wiedemann 018f1b
%{?with_python: --enable-python} \
Bernhard M. Wiedemann 018f1b
$BUILDTARGET
Bernhard M. Wiedemann 1250f9
Bernhard M. Wiedemann 1250f9
rm po/de.gmo
Bernhard M. Wiedemann 1250f9
make %{?_smp_mflags}
Bernhard M. Wiedemann 1250f9
Bernhard M. Wiedemann 1250f9
%install
Bernhard M. Wiedemann 1250f9
mkdir -p %{buildroot}/usr/lib
Bernhard M. Wiedemann 1250f9
mkdir -p %{buildroot}/usr/share/locale
Bernhard M. Wiedemann 1250f9
ln -s ../share/locale %{buildroot}/usr/lib/locale
Bernhard M. Wiedemann 1250f9
%make_install
Bernhard M. Wiedemann 1250f9
mkdir -p %{buildroot}/bin
Bernhard M. Wiedemann 1250f9
ln -s /usr/bin/rpm %{buildroot}/bin/rpm
Bernhard M. Wiedemann 018f1b
%if 0%{?!without_bdb:1}
Bernhard M. Wiedemann 1250f9
install -m 644 db3/db.h %{buildroot}/usr/include/rpm
Bernhard M. Wiedemann 018f1b
%endif
Bernhard M. Wiedemann 1250f9
# remove .la file and the static variant of libpopt
Bernhard M. Wiedemann 1250f9
# have to remove the dependency from other .la files as well
Bernhard M. Wiedemann 1250f9
for f in %{buildroot}/%{_libdir}/*.la; do
Bernhard M. Wiedemann 1250f9
    sed -i -e "s,/%_lib/libpopt.la,-lpopt,g" $f
Bernhard M. Wiedemann 1250f9
done
Bernhard M. Wiedemann 1250f9
mkdir -p %{buildroot}/usr/sbin
Bernhard M. Wiedemann 1250f9
install -m 755 %{SOURCE8} %{buildroot}/usr/sbin
Bernhard M. Wiedemann 1250f9
mkdir -p %{buildroot}/usr/lib/systemd/system
Bernhard M. Wiedemann 1250f9
install -m 644 %{SOURCE13} %{buildroot}/usr/lib/systemd/system/
Bernhard M. Wiedemann 1250f9
mkdir -p %{buildroot}/usr/lib/rpm/macros.d
Bernhard M. Wiedemann 1250f9
mkdir -p %{buildroot}/usr/lib/rpm/suse
Bernhard M. Wiedemann 1250f9
for d in BUILD RPMS SOURCES SPECS SRPMS BUILDROOT ; do
Bernhard M. Wiedemann 1250f9
  mkdir -p %{buildroot}/usr/src/packages/$d
Bernhard M. Wiedemann 1250f9
  chmod 755 %{buildroot}/usr/src/packages/$d
Bernhard M. Wiedemann 1250f9
done
Bernhard M. Wiedemann 1250f9
for d in %{buildroot}/usr/lib/rpm/platform/*-linux/macros ; do
Bernhard M. Wiedemann 1250f9
  dd=${d%%-linux/macros}
Bernhard M. Wiedemann 1250f9
  dd=${dd##*/}
Bernhard M. Wiedemann 1250f9
  mkdir %{buildroot}/usr/src/packages/RPMS/$dd
Bernhard M. Wiedemann 1250f9
  chmod 755 %{buildroot}/usr/src/packages/RPMS/$dd
Bernhard M. Wiedemann 1250f9
done
Bernhard M. Wiedemann 1250f9
mkdir -p %{buildroot}/usr/lib/sysimage/rpm
Bernhard M. Wiedemann 1250f9
gzip -9 %{buildroot}/%{_mandir}/man[18]/*.[18]
Bernhard M. Wiedemann 1250f9
export RPM_BUILD_ROOT
Bernhard M. Wiedemann 1250f9
%ifarch s390x
Bernhard M. Wiedemann 1250f9
[ -f scripts/brp-%_arch-linux ] && sh scripts/brp-%_arch-linux
Bernhard M. Wiedemann 1250f9
%endif
Bernhard M. Wiedemann 1250f9
chmod 755 doc/manual
Bernhard M. Wiedemann 1250f9
rm -rf doc/manual/Makefile*
Bernhard M. Wiedemann 1250f9
rm -f %{buildroot}/usr/lib/rpmpopt
Bernhard M. Wiedemann 1250f9
rm -rf %{buildroot}%{_mandir}/{fr,ja,ko,pl,ru,sk}
Bernhard M. Wiedemann 1250f9
rm -f %{buildroot}%{_prefix}/share/locale/de/LC_MESSAGES/rpm.mo
Bernhard M. Wiedemann 1250f9
mkdir -p %{buildroot}%{_fillupdir}
Bernhard M. Wiedemann 1250f9
install -c -m0644 %{SOURCE9} %{buildroot}%{_fillupdir}/
Bernhard M. Wiedemann 1250f9
rm -f %{buildroot}/usr/lib/rpm/cpanflute %{buildroot}/usr/lib/rpm/cpanflute2
Bernhard M. Wiedemann 1250f9
install -m 755 %{SOURCE5} %{buildroot}/usr/lib/rpm
Bernhard M. Wiedemann 1250f9
install -m 755 scripts/debuginfo.prov %{buildroot}/usr/lib/rpm
Bernhard M. Wiedemann 1250f9
rm -f %{buildroot}/usr/lib/locale %{buildroot}/usr/lib/rpmrc
Bernhard M. Wiedemann 1250f9
mkdir -p %{buildroot}/etc/rpm
Bernhard M. Wiedemann 1250f9
chmod 755 %{buildroot}/etc/rpm
Bernhard M. Wiedemann 1250f9
# remove some nonsense or non-working scripts
Bernhard M. Wiedemann 1250f9
pushd %{buildroot}/usr/lib/rpm/
Bernhard M. Wiedemann 1250f9
for f in rpm2cpio.sh rpm.daily rpmdiff* rpm.log rpm.xinetd freshen.sh u_pkg.sh \
Bernhard M. Wiedemann dbd852
         ocaml-find-provides.sh ocaml-find-requires.sh fileattrs/ocaml.attr \
Bernhard M. Wiedemann 1250f9
         magic magic.mgc magic.mime* rpmfile *.pl javadeps brp-redhat \
Bernhard M. Wiedemann 1250f9
         brp-strip-static-archive vpkg-provides*.sh http.req sql.req tcl.req \
Bernhard M. Wiedemann 1250f9
         brp-sparc64-linux brp-strip-comment-note brp-java-gcjcompile
Bernhard M. Wiedemann 1250f9
do
Bernhard M. Wiedemann 1250f9
    rm -f $f
Bernhard M. Wiedemann 1250f9
done
Bernhard M. Wiedemann 1250f9
for i in /usr/share/automake-*/*; do
Bernhard M. Wiedemann 1250f9
  if test -f "$i" && test -f "${i##*/}"; then
Bernhard M. Wiedemann 1250f9
    rm -f "${i##*/}"
Bernhard M. Wiedemann 1250f9
  fi
Bernhard M. Wiedemann 1250f9
done
Bernhard M. Wiedemann 1250f9
popd
Bernhard M. Wiedemann 1250f9
%ifarch aarch64 ppc64le riscv64
Bernhard M. Wiedemann 1250f9
install -m 755 config.guess %{buildroot}/usr/lib/rpm
Bernhard M. Wiedemann 1250f9
install -m 755 config.sub %{buildroot}/usr/lib/rpm
Bernhard M. Wiedemann 1250f9
%endif
Bernhard M. Wiedemann 1250f9
rm -rf %{buildroot}/%{_libdir}/python%{py_ver}
Bernhard M. Wiedemann 1250f9
rm -f %{buildroot}%{_libdir}/*.la
Bernhard M. Wiedemann 1250f9
rm -f %{buildroot}%{_libdir}/rpm-plugins/*.la
Bernhard M. Wiedemann 1250f9
sh %{buildroot}/usr/lib/rpm/find-lang.sh %{buildroot} rpm
Bernhard M. Wiedemann 1250f9
# On arm the kernel architecture is ignored. Not the best idea, but lets stay compatible with other distros
Bernhard M. Wiedemann 1250f9
%ifarch armv7hl armv6hl
Bernhard M. Wiedemann 1250f9
# rpm is using the host_cpu as default for the platform, but armv6/7hl is not known by the kernel.
Bernhard M. Wiedemann 1250f9
# so we need to enforce the platform here.
Bernhard M. Wiedemann 1250f9
echo -n "%{_target_cpu}-suse-linux-gnueabi" > %{buildroot}/etc/rpm/platform
Bernhard M. Wiedemann 1250f9
%endif
Bernhard M. Wiedemann 018f1b
%if 0%{?without_bdb:1}
Bernhard M. Wiedemann 018f1b
# make ndb the default database backend
Bernhard M. Wiedemann 018f1b
echo "setting the default database backend to 'ndb'"
Bernhard M. Wiedemann 018f1b
sed -i -e '/_db_backend/s/bdb/ndb/' %{buildroot}/usr/lib/rpm/macros
Bernhard M. Wiedemann 018f1b
%endif
Bernhard M. Wiedemann 1250f9
Bernhard M. Wiedemann 1250f9
%post
Bernhard M. Wiedemann 1250f9
%{fillup_only -an services}
Bernhard M. Wiedemann 1250f9
Bernhard M. Wiedemann 1250f9
# var/lib/rpm migration: set forwards compatible symlink for /usr/lib/sysimage/rpm so scriptlets in same transaction will still work
Bernhard M. Wiedemann 018f1b
if test ! -L var/lib/rpm -a ! -f usr/lib/sysimage/rpm/Packages -a ! -f usr/lib/sysimage/rpm/Packages.db ; then
Bernhard M. Wiedemann 018f1b
  if test -f var/lib/rpm/Packages -o -f var/lib/rpm/Packages.db ; then
Bernhard M. Wiedemann 018f1b
    rmdir usr/lib/sysimage/rpm
Bernhard M. Wiedemann 018f1b
    ln -s ../../../var/lib/rpm usr/lib/sysimage/rpm
Bernhard M. Wiedemann 018f1b
  fi
Bernhard M. Wiedemann 1250f9
fi
Bernhard M. Wiedemann 1250f9
Bernhard M. Wiedemann 018f1b
test -f usr/lib/sysimage/rpm/Packages -o -f usr/lib/sysimage/rpm/Packages.db || rpmdb --initdb
Bernhard M. Wiedemann eb41fd
test -e var/lib/rpm || ln -s ../../usr/lib/sysimage/rpm var/lib/rpm
Bernhard M. Wiedemann 1250f9
Bernhard M. Wiedemann 1250f9
%posttrans
Bernhard M. Wiedemann 1250f9
# var/lib/rpm migration
Bernhard M. Wiedemann 1250f9
if test ! -L var/lib/rpm ; then
Bernhard M. Wiedemann 1250f9
  # delete no longer maintained databases
Bernhard M. Wiedemann 1250f9
  rm -f var/lib/rpm/Filemd5s var/lib/rpm/Filedigests var/lib/rpm/Requireversion var/lib/rpm/Provideversion
Bernhard M. Wiedemann 1250f9
Bernhard M. Wiedemann 018f1b
  if test -f var/lib/rpm/Packages -o -f var/lib/rpm/Packages.db ; then
Bernhard M. Wiedemann 1250f9
    echo "migrating rpmdb from /var/lib/rpm to /usr/lib/sysimage/rpm..."
Bernhard M. Wiedemann 1250f9
Bernhard M. Wiedemann 1250f9
    # remove forwards compatible symlink
Bernhard M. Wiedemann 1250f9
    if test -L usr/lib/sysimage/rpm ; then
Bernhard M. Wiedemann 1250f9
      rm -f usr/lib/sysimage/rpm
Bernhard M. Wiedemann 1250f9
      mkdir -p usr/lib/sysimage/rpm
Bernhard M. Wiedemann 1250f9
    fi
Bernhard M. Wiedemann 1250f9
Bernhard M. Wiedemann 1250f9
    mv -f var/lib/rpm/.[!.]* usr/lib/sysimage/rpm/
Bernhard M. Wiedemann 1250f9
    mv -f var/lib/rpm/* usr/lib/sysimage/rpm/
Bernhard M. Wiedemann 1250f9
  fi
Bernhard M. Wiedemann eb41fd
  test -d var/lib/rpm && rmdir var/lib/rpm
Bernhard M. Wiedemann eb41fd
  test -e var/lib/rpm || ln -s ../../usr/lib/sysimage/rpm var/lib/rpm
Bernhard M. Wiedemann 1250f9
fi
Bernhard M. Wiedemann 1250f9
Bernhard M. Wiedemann 1250f9
%files -f rpm.lang
Bernhard M. Wiedemann 1250f9
%defattr(-,root,root)
Bernhard M. Wiedemann 1250f9
%license 	COPYING
Bernhard M. Wiedemann 1250f9
%doc 	doc/manual
Bernhard M. Wiedemann 1250f9
%doc    RPM-HOWTO
Bernhard M. Wiedemann 1250f9
	/etc/rpm
Bernhard M. Wiedemann 1250f9
	/bin/rpm
Bernhard M. Wiedemann 88e749
	%{_bindir}/gendiff
Bernhard M. Wiedemann 88e749
	%{_bindir}/rpm
Bernhard M. Wiedemann 88e749
	%{_bindir}/rpm2cpio
Bernhard M. Wiedemann 88e749
	%{_bindir}/rpmdb
Bernhard M. Wiedemann 88e749
	%{_bindir}/rpmgraph
Bernhard M. Wiedemann 88e749
	%{_bindir}/rpmkeys
Bernhard M. Wiedemann 88e749
	%{_bindir}/rpmqpack
Bernhard M. Wiedemann 88e749
	%{_bindir}/rpmquery
Bernhard M. Wiedemann 88e749
	%{_bindir}/rpmsign
Bernhard M. Wiedemann 88e749
	%{_bindir}/rpmverify
Bernhard M. Wiedemann 1250f9
	/usr/sbin/rpmconfigcheck
Bernhard M. Wiedemann 1250f9
	/usr/lib/systemd/system/rpmconfigcheck.service
Bernhard M. Wiedemann 88e749
	%dir /usr/lib/rpm
Bernhard M. Wiedemann 88e749
	/usr/lib/rpm/macros
Bernhard M. Wiedemann 88e749
	/usr/lib/rpm/macros.d/
Bernhard M. Wiedemann 88e749
	/usr/lib/rpm/platform/
Bernhard M. Wiedemann 88e749
	/usr/lib/rpm/rpm.supp
Bernhard M. Wiedemann 88e749
	/usr/lib/rpm/rpmdb_*
Bernhard M. Wiedemann 88e749
	/usr/lib/rpm/rpmpopt-*
Bernhard M. Wiedemann 88e749
	/usr/lib/rpm/rpmrc
Bernhard M. Wiedemann 88e749
	/usr/lib/rpm/rpmsort
Bernhard M. Wiedemann 88e749
	/usr/lib/rpm/suse
Bernhard M. Wiedemann 88e749
	/usr/lib/rpm/tgpg
Bernhard M. Wiedemann 1250f9
	%{_libdir}/rpm-plugins
Bernhard M. Wiedemann 1250f9
	%{_libdir}/librpm.so.*
Bernhard M. Wiedemann 1250f9
	%{_libdir}/librpmio.so.*
Bernhard M. Wiedemann 1250f9
	%{_libdir}/librpmsign.so.*
Bernhard M. Wiedemann 1250f9
%doc	%{_mandir}/man[18]/*.[18]*
Bernhard M. Wiedemann 1250f9
%dir 	/usr/lib/sysimage
Bernhard M. Wiedemann 1250f9
%dir 	/usr/lib/sysimage/rpm
Bernhard M. Wiedemann eb41fd
%ghost	/var/lib/rpm
Bernhard M. Wiedemann 1250f9
%dir 	%attr(755,root,root) /usr/src/packages/BUILD
Bernhard M. Wiedemann 1250f9
%dir 	%attr(755,root,root) /usr/src/packages/SPECS
Bernhard M. Wiedemann 1250f9
%dir 	%attr(755,root,root) /usr/src/packages/SOURCES
Bernhard M. Wiedemann 1250f9
%dir 	%attr(755,root,root) /usr/src/packages/SRPMS
Bernhard M. Wiedemann 1250f9
%dir	%attr(755,root,root) /usr/src/packages/RPMS
Bernhard M. Wiedemann 1250f9
%dir	%attr(755,root,root) /usr/src/packages/BUILDROOT
Bernhard M. Wiedemann 1250f9
%dir	%attr(755,root,root) /usr/src/packages/RPMS/*
Bernhard M. Wiedemann 1250f9
	%{_fillupdir}/sysconfig.services-rpm
Bernhard M. Wiedemann 1250f9
Bernhard M. Wiedemann 9cd258
%files -n librpmbuild%{librpmsover}
Bernhard M. Wiedemann 9cd258
%{_libdir}/librpmbuild.so.%{librpmsover}
Bernhard M. Wiedemann 9cd258
%{_libdir}/librpmbuild.so.%{librpmsover}.*
Bernhard M. Wiedemann 9cd258
Bernhard M. Wiedemann 1250f9
%files build
Bernhard M. Wiedemann 1250f9
%defattr(-,root,root)
Bernhard M. Wiedemann 1250f9
/usr/bin/rpmbuild
Bernhard M. Wiedemann 88e749
/usr/lib/rpm/libtooldeps.sh
Bernhard M. Wiedemann 88e749
/usr/lib/rpm/pkgconfigdeps.sh
Bernhard M. Wiedemann 88e749
/usr/lib/rpm/pythondeps.sh
Bernhard M. Wiedemann 9cd258
/usr/lib/rpm/elfdeps
Bernhard M. Wiedemann 9cd258
/usr/lib/rpm/rpmdeps
Bernhard M. Wiedemann 9cd258
/usr/lib/rpm/debugedit
Bernhard M. Wiedemann 9cd258
/usr/lib/rpm/sepdebugcrcfix
Bernhard M. Wiedemann 9cd258
/usr/bin/rpmspec
Bernhard M. Wiedemann 9cd258
/usr/lib/rpm/brp-*
Bernhard M. Wiedemann 9cd258
/usr/lib/rpm/check-*
Bernhard M. Wiedemann 9cd258
/usr/lib/rpm/*find*
Bernhard M. Wiedemann 88e749
/usr/lib/rpm/fileattrs/
Bernhard M. Wiedemann 88e749
%exclude /usr/lib/rpm/fileattrs/pythondist.attr
Bernhard M. Wiedemann 88e749
%exclude /usr/lib/rpm/fileattrs/perl*.attr
Bernhard M. Wiedemann 88e749
/usr/lib/rpm/*.prov
Bernhard M. Wiedemann 88e749
%exclude /usr/lib/rpm/perl.prov
Bernhard M. Wiedemann 88e749
/usr/lib/rpm/*.req
Bernhard M. Wiedemann 88e749
%exclude /usr/lib/rpm/perl.req
Bernhard M. Wiedemann 88e749
%ifarch aarch64 ppc64le riscv64
Bernhard M. Wiedemann 88e749
/usr/lib/rpm/config.guess
Bernhard M. Wiedemann 88e749
/usr/lib/rpm/config.sub
Bernhard M. Wiedemann 88e749
%endif
Bernhard M. Wiedemann 88e749
Bernhard M. Wiedemann 88e749
%files build-python
Bernhard M. Wiedemann 88e749
%defattr(-,root,root)
Bernhard M. Wiedemann eb41fd
/usr/lib/rpm/fileattrs/pythondist.attr
Bernhard M. Wiedemann eb41fd
/usr/lib/rpm/pythondistdeps.py
Bernhard M. Wiedemann 1250f9
Bernhard M. Wiedemann 88e749
%files build-perl
Bernhard M. Wiedemann 88e749
%defattr(-,root,root)
Bernhard M. Wiedemann 88e749
/usr/lib/rpm/fileattrs/perl*.attr
Bernhard M. Wiedemann 88e749
/usr/lib/rpm/perl.prov
Bernhard M. Wiedemann 88e749
/usr/lib/rpm/perl.req
Bernhard M. Wiedemann 88e749
Bernhard M. Wiedemann 1250f9
%files devel
Bernhard M. Wiedemann 1250f9
%defattr(644,root,root,755)
Bernhard M. Wiedemann 88e749
/usr/include/rpm
Bernhard M. Wiedemann 88e749
%{_libdir}/librpm.so
Bernhard M. Wiedemann 88e749
%{_libdir}/librpmbuild.so
Bernhard M. Wiedemann 88e749
%{_libdir}/librpmio.so
Bernhard M. Wiedemann 88e749
%{_libdir}/librpmsign.so
Bernhard M. Wiedemann 88e749
%{_libdir}/pkgconfig/rpm.pc
Bernhard M. Wiedemann 1250f9
Bernhard M. Wiedemann 1250f9
%changelog