diff options
Diffstat (limited to 'app-arch/rpm')
-rw-r--r-- | app-arch/rpm/Manifest | 4 | ||||
-rw-r--r-- | app-arch/rpm/files/rpm-4.16.0-autotools.patch | 13 | ||||
-rw-r--r-- | app-arch/rpm/files/rpm-4.16.1.3-libdir.patch | 34 | ||||
-rw-r--r-- | app-arch/rpm/files/rpm-4.18.1-musl-nls.patch | 42 | ||||
-rw-r--r-- | app-arch/rpm/files/rpm-4.19.0-libdir.patch | 13 | ||||
-rw-r--r-- | app-arch/rpm/files/rpm-4.19.1.1-musl-compat.patch | 17 | ||||
-rw-r--r-- | app-arch/rpm/files/rpm-4.8.1-clang.patch | 52 | ||||
-rw-r--r-- | app-arch/rpm/metadata.xml | 12 | ||||
-rw-r--r-- | app-arch/rpm/rpm-4.16.1.3.ebuild | 148 | ||||
-rw-r--r-- | app-arch/rpm/rpm-4.18.1.ebuild (renamed from app-arch/rpm/rpm-4.17.0.ebuild) | 125 | ||||
-rw-r--r-- | app-arch/rpm/rpm-4.19.1.1.ebuild | 134 |
11 files changed, 342 insertions, 252 deletions
diff --git a/app-arch/rpm/Manifest b/app-arch/rpm/Manifest index 9473074a2a09..1598162f1521 100644 --- a/app-arch/rpm/Manifest +++ b/app-arch/rpm/Manifest @@ -1,2 +1,2 @@ -DIST rpm-4.16.1.3.tar.bz2 4354652 BLAKE2B 10013014bdeaf908b64c90f8e76f1d4b0cd0e8cb926f0cd979d7b1e1963b9a25c5b98531deea7e74e00168e2e6349f443fa4578c69c717ca1ab5e6b79d801f3a SHA512 54e503b32dffaa73d6168f26a00220d9d9124082d8a1eb1ddf34ce32a482f07cb06ec654cf065fca1607cc37b13fa7d4fa9895553541d7cfddecf68c9eb96f2e -DIST rpm-4.17.0.tar.bz2 4514138 BLAKE2B e2618f7ac59189fb880d6be853aae99080b5008865298d095a123a010ab70f9e2e3ad9402124afbf8291a3863e9e805c9c65ab47cc435df82a729e81984394bf SHA512 d32af8649c6d47796a645b6ecbe580df97f5423bfb17414d5ed0016373f5cfab86ebcfad6c480fb8bfafaf3a960f9bc095ef6faad7b40bdb208cc60e4080b0c8 +DIST rpm-4.18.1.tar.bz2 6396363 BLAKE2B 4bc582bdc34a89d83346a8e18133c4f1846f2e8741c85ae2d0fd3398166e5a5d81ed86869e34700d3ea414fbf8ccf6c918692e865b956b1e6b70830b64cd323e SHA512 0ede2138b9b4c3b50d7e914cf82655507fcc207ba67804c749ea17560002976cb26b95801e9138a51589b60459494a991213a1131dbef5af2eca9b5050a4f29c +DIST rpm-4.19.1.1.tar.bz2 5849649 BLAKE2B 66ed845007f3767fd92e2384962927b93cef7b825b8ea60f81f0a4b51b9d6a09d1cbec1668226fa85de675347d52635cb25c4d11204ada0eed6c898425b21536 SHA512 3364c453c29903c144a3680ceca7a17426eb085c288b6313fb7e857a42a5e0a965f623882e0f58e633f8b8770e839d9df9f7653d99c73759af5c89d0a981908d diff --git a/app-arch/rpm/files/rpm-4.16.0-autotools.patch b/app-arch/rpm/files/rpm-4.16.0-autotools.patch deleted file mode 100644 index 9b1f71ad86e5..000000000000 --- a/app-arch/rpm/files/rpm-4.16.0-autotools.patch +++ /dev/null @@ -1,13 +0,0 @@ -diff -uNr rpm-4.16.0.ORIG/configure.ac rpm-4.16.0/configure.ac ---- rpm-4.16.0.ORIG/configure.ac 2020-10-01 11:02:21.605485875 +0100 -+++ rpm-4.16.0/configure.ac 2020-10-01 11:05:34.077157904 +0100 -@@ -552,9 +552,6 @@ - - AM_CONDITIONAL([BDB], [test "x$have_bdb" != "xno"]) - AM_CONDITIONAL([WITH_INTERNAL_DB],[test "x$have_bdb" = "xinternal"]) --if test "x$have_bdb" = "xinternal"; then -- AC_CONFIG_SUBDIRS(db3) --fi - - - #================= diff --git a/app-arch/rpm/files/rpm-4.16.1.3-libdir.patch b/app-arch/rpm/files/rpm-4.16.1.3-libdir.patch deleted file mode 100644 index a2c95ff064e2..000000000000 --- a/app-arch/rpm/files/rpm-4.16.1.3-libdir.patch +++ /dev/null @@ -1,34 +0,0 @@ -diff -uNr rpm-4.16.1.3.ORIG/configure.ac rpm-4.16.1.3/configure.ac ---- rpm-4.16.1.3.ORIG/configure.ac 2021-04-13 19:32:35.630955569 +0100 -+++ rpm-4.16.1.3/configure.ac 2021-04-13 19:32:54.939623251 +0100 -@@ -957,13 +957,7 @@ - AC_DEFINE_UNQUOTED([RUNDIR],["${RUNDIR}"],[run-time variable directory]) - AC_SUBST(RUNDIR) - --if test X"$prefix" = XNONE ; then -- usrprefix="$ac_default_prefix" --else -- usrprefix=$prefix --fi -- --RPMCONFIGDIR="`echo ${usrprefix}/lib/rpm`" -+RPMCONFIGDIR="`echo ${libexecdir}/rpm/`" - AC_SUBST(RPMCONFIGDIR) - - AC_SUBST(OBJDUMP) -diff -uNr rpm-4.16.1.3.ORIG/rpm.am rpm-4.16.1.3/rpm.am ---- rpm-4.16.1.3.ORIG/rpm.am 2021-04-13 19:32:35.584956361 +0100 -+++ rpm-4.16.1.3/rpm.am 2021-04-13 19:32:54.940623234 +0100 -@@ -1,10 +1,8 @@ - # Internal binaries --## HACK: It probably should be $(libexecdir)/rpm or $(libdir)/rpm --rpmlibexecdir = $(prefix)/lib/rpm -+rpmlibexecdir = $(pkglibexecdir) - - # Host independent config files --## HACK: it probably should be $(datadir)/rpm --rpmconfigdir = $(prefix)/lib/rpm -+rpmconfigdir = $(pkglibexecdir) - - # Libtool version (current-revision-age) for all our libraries - rpm_version_info = 10:3:1 diff --git a/app-arch/rpm/files/rpm-4.18.1-musl-nls.patch b/app-arch/rpm/files/rpm-4.18.1-musl-nls.patch new file mode 100644 index 000000000000..7d1fde28bacf --- /dev/null +++ b/app-arch/rpm/files/rpm-4.18.1-musl-nls.patch @@ -0,0 +1,42 @@ +https://bugs.gentoo.org/888954 +https://github.com/rpm-software-management/rpm/commit/f401979a4c4829d68e9614860644bdb74b6dda66 + +From da222f0d82721d17e57d491d2749a4bc44754b9d Mon Sep 17 00:00:00 2001 +From: Takuya Wakazono <pastalian46@gmail.com> +Date: Thu, 18 Jan 2024 18:41:11 +0900 +Subject: [PATCH] Don't use _nl_msg_cat_cntr if __GLIC__ is not defined + +musl doesn't need to use libintl from GNU gettext because it has its +own NLS implementation. Assuming _nl_msg_cat_cntr exists breaks the +build against the musl system. +--- a/lib/tagexts.c ++++ b/lib/tagexts.c +@@ -532,7 +532,7 @@ static int filerequireTag(Header h, rpmtd td, headerGetFlags hgflags) + + /* I18N look aside diversions */ + +-#if defined(ENABLE_NLS) ++#if defined(ENABLE_NLS) && (defined(__GLIBC__) || !defined(__linux__)) + extern int _nl_msg_cat_cntr; /* XXX GNU gettext voodoo */ + #endif + static const char * const language = "LANGUAGE"; +@@ -569,7 +569,9 @@ static int i18nTag(Header h, rpmTag tag, rpmtd td, headerGetFlags hgflags) + /* change to en_US for msgkey -> msgid resolution */ + langval = getenv(language); + (void) setenv(language, "en_US", 1); ++#if defined(__GLIBC__) || !defined(__linux__) + ++_nl_msg_cat_cntr; ++#endif + + msgid = NULL; + for (domain = dstring; domain != NULL; domain = de) { +@@ -584,7 +586,9 @@ static int i18nTag(Header h, rpmTag tag, rpmtd td, headerGetFlags hgflags) + (void) setenv(language, langval, 1); + else + unsetenv(language); ++#if defined(__GLIBC__) || !defined(__linux__) + ++_nl_msg_cat_cntr; ++#endif + + if (domain && msgid) { + td->data = dgettext(domain, msgid); diff --git a/app-arch/rpm/files/rpm-4.19.0-libdir.patch b/app-arch/rpm/files/rpm-4.19.0-libdir.patch new file mode 100644 index 000000000000..9899827c985e --- /dev/null +++ b/app-arch/rpm/files/rpm-4.19.0-libdir.patch @@ -0,0 +1,13 @@ +diff --git a/CMakeLists.txt b/CMakeLists.txt +index c164e9c52..5738c821f 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -32,7 +32,7 @@ option(WITH_FSVERITY "Build with fsverity support" OFF) + option(WITH_IMAEVM "Build with IMA support" OFF) + option(WITH_FAPOLICYD "Build with fapolicyd support" ON) + +-set(RPM_CONFIGDIR "${CMAKE_INSTALL_PREFIX}/lib/rpm" CACHE PATH "rpm home") ++set(RPM_CONFIGDIR "${CMAKE_INSTALL_PREFIX}/libexec/rpm" CACHE PATH "rpm home") + set(RPM_VENDOR "vendor" CACHE STRING "rpm vendor string") + + # Emulate libtool versioning. Before a public release: diff --git a/app-arch/rpm/files/rpm-4.19.1.1-musl-compat.patch b/app-arch/rpm/files/rpm-4.19.1.1-musl-compat.patch new file mode 100644 index 000000000000..441689febd5d --- /dev/null +++ b/app-arch/rpm/files/rpm-4.19.1.1-musl-compat.patch @@ -0,0 +1,17 @@ +musl doesn't implement GLOB_BRACE, simply disable it. + +https://bugs.gentoo.org/922286 +https://github.com/rpm-software-management/rpm/issues/2844 +--- a/rpmio/rpmglob.c ++++ b/rpmio/rpmglob.c +@@ -33,6 +33,10 @@ + + #include "debug.h" + ++#ifndef GLOB_BRACE ++#define GLOB_BRACE 0 ++#endif ++ + /* Return 1 if pattern contains a magic char, see glob(7) for a list */ + static int ismagic(const char *pattern) + { diff --git a/app-arch/rpm/files/rpm-4.8.1-clang.patch b/app-arch/rpm/files/rpm-4.8.1-clang.patch new file mode 100644 index 000000000000..714fbc09b534 --- /dev/null +++ b/app-arch/rpm/files/rpm-4.8.1-clang.patch @@ -0,0 +1,52 @@ +https://github.com/rpm-software-management/rpm/commit/6ad8a71407b173b6c50d389f01edd8a4aecd6807 +--- a/lib/fsm.c ++++ b/lib/fsm.c +@@ -1015,27 +1015,28 @@ + } + + setmeta: +- /* Special files require path-based ops */ +- int mayopen = S_ISREG(fp->sb.st_mode) || S_ISDIR(fp->sb.st_mode); +- if (!rc && fd == -1 && mayopen) { +- int flags = O_RDONLY; +- /* Only follow safe symlinks, and never on temporary files */ +- if (fp->suffix) +- flags |= AT_SYMLINK_NOFOLLOW; +- fd = fsmOpenat(di.dirfd, fp->fpath, flags, +- S_ISDIR(fp->sb.st_mode)); +- if (fd < 0) +- rc = RPMERR_OPEN_FAILED; +- } ++ { ++ /* Special files require path-based ops */ ++ int mayopen = S_ISREG(fp->sb.st_mode) || S_ISDIR(fp->sb.st_mode); ++ if (!rc && fd == -1 && mayopen) { ++ int flags = O_RDONLY; ++ /* Only follow safe symlinks, and never on temporary files */ ++ if (fp->suffix) ++ flags |= AT_SYMLINK_NOFOLLOW; ++ fd = fsmOpenat(di.dirfd, fp->fpath, flags, ++ S_ISDIR(fp->sb.st_mode)); ++ if (fd < 0) ++ rc = RPMERR_OPEN_FAILED; ++ } ++ if (!rc && fp->setmeta) { ++ rc = fsmSetmeta(fd, di.dirfd, fp->fpath, ++ fi, plugins, fp->action, ++ &fp->sb, nofcaps); ++ } + +- if (!rc && fp->setmeta) { +- rc = fsmSetmeta(fd, di.dirfd, fp->fpath, +- fi, plugins, fp->action, +- &fp->sb, nofcaps); +- } +- +- if (fd != firstlinkfile) +- fsmClose(&fd); ++ if (fd != firstlinkfile) ++ fsmClose(&fd); ++ } + } + + /* Notify on success. */ diff --git a/app-arch/rpm/metadata.xml b/app-arch/rpm/metadata.xml index 43a5b10a145b..8e808eda79fe 100644 --- a/app-arch/rpm/metadata.xml +++ b/app-arch/rpm/metadata.xml @@ -1,8 +1,18 @@ <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd"> <pkgmetadata> - <!-- maintainer-needed --> + <maintainer type="person" proxied="yes"> + <email>pastalian46@gmail.com</email> + <name>Takuya Wakazono</name> + </maintainer> + <maintainer type="project" proxied="proxy"> + <email>proxy-maint@gentoo.org</email> + <name>Proxy Maintainers</name> + </maintainer> <upstream> <remote-id type="github">rpm-software-management/rpm</remote-id> </upstream> + <use> + <flag name="sequoia">Use <pkg>app-crypt/rpm-sequoia</pkg> instead of the deprecated internal parser</flag> + </use> </pkgmetadata> diff --git a/app-arch/rpm/rpm-4.16.1.3.ebuild b/app-arch/rpm/rpm-4.16.1.3.ebuild deleted file mode 100644 index 2603c2191f03..000000000000 --- a/app-arch/rpm/rpm-4.16.1.3.ebuild +++ /dev/null @@ -1,148 +0,0 @@ -# Copyright 1999-2021 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=7 - -LUA_COMPAT=( lua5-{2..4} ) -PYTHON_COMPAT=( python3_{8,9} ) - -inherit autotools flag-o-matic lua-single perl-module python-single-r1 toolchain-funcs - -DESCRIPTION="Red Hat Package Management Utils" -HOMEPAGE="https://rpm.org - https://github.com/rpm-software-management/rpm" -SRC_URI="http://ftp.rpm.org/releases/rpm-$(ver_cut 1-2).x/${P}.tar.bz2" - -LICENSE="GPL-2 LGPL-2" -SLOT="0" -KEYWORDS="~alpha amd64 arm arm64 ~hppa ~ia64 ~mips ppc ppc64 ~riscv ~s390 ~sparc x86 ~amd64-linux ~x86-linux" - -# Tests are broken. See bug 657500 -RESTRICT="test" - -IUSE="acl caps doc dbus lua nls openmp python selinux test +zstd" -REQUIRED_USE="lua? ( ${LUA_REQUIRED_USE} ) - python? ( ${PYTHON_REQUIRED_USE} )" - -CDEPEND="!app-arch/rpm5 - app-arch/libarchive - >=sys-libs/db-4.5:* - >=sys-libs/zlib-1.2.3-r1 - >=app-arch/bzip2-1.0.1 - >=dev-libs/popt-1.7 - >=app-crypt/gnupg-1.2 - dbus? ( sys-apps/dbus ) - dev-libs/elfutils - virtual/libintl - >=dev-lang/perl-5.8.8 - dev-libs/libgcrypt - python? ( ${PYTHON_DEPS} ) - nls? ( virtual/libintl ) - lua? ( ${LUA_DEPS} ) - acl? ( virtual/acl ) - caps? ( >=sys-libs/libcap-2.0 ) - zstd? ( app-arch/zstd ) -" -DEPEND="${CDEPEND} - nls? ( sys-devel/gettext ) - doc? ( app-doc/doxygen ) - virtual/pkgconfig - test? ( sys-apps/fakechroot ) -" -RDEPEND="${CDEPEND} - selinux? ( sec-policy/selinux-rpm ) -" - -pkg_pretend() { - [[ ${MERGE_TYPE} != binary ]] && use openmp && tc-check-openmp -} - -pkg_setup() { - use lua && lua-single_pkg_setup - use python && python-single-r1_pkg_setup - - # Added USE=openmp and this check for bug #779769 - [[ ${MERGE_TYPE} != binary ]] && use openmp && tc-check-openmp -} - -src_prepare() { - eapply "${FILESDIR}"/${PN}-4.16.0-autotools.patch - eapply "${FILESDIR}"/${PN}-4.8.1-db-path.patch - eapply "${FILESDIR}"/${P}-libdir.patch - - # fix #356769 - sed -i 's:%{_var}/tmp:/var/tmp:' macros.in || die "Fixing tmppath failed" - # fix #492642 - sed -i "s:@__PYTHON@:${PYTHON}:" macros.in || die "Fixing %__python failed" - - eapply_user - eautoreconf - - # Prevent automake maintainer mode from kicking in (#450448). - touch -r Makefile.am preinstall.am -} - -src_configure() { - econf \ - --without-selinux \ - --with-crypto=libgcrypt \ - $(use_enable python) \ - $(use_enable nls) \ - $(use_enable openmp) \ - $(use_enable dbus inhibit-plugin) \ - $(use_with lua) \ - $(use_with caps cap) \ - $(use_with acl) \ - $(use_enable zstd zstd $(usex zstd yes no)) -} - -src_install() { - default - - # remove la files - find "${ED}" -name '*.la' -delete || die - - # fix symlinks to /bin/rpm (#349840) - for binary in rpmquery rpmverify;do - ln -sf rpm "${ED}"/usr/bin/${binary} || die - done - - if ! use nls; then - rm -rf "${ED}"/usr/share/man/?? || die - fi - - keepdir /usr/src/rpm/{SRPMS,SPECS,SOURCES,RPMS,BUILD} - - dodoc CREDITS README* - if use doc; then - for docname in librpm; do - docinto "html/${docname}" - dodoc -r "doc/${docname}/html/." - done - fi - - # Fix perllocal.pod file collision - perl_delete_localpod - - use python && python_optimize -} - -src_test() { - # Known to fail with FEATURES=usersandbox (bug #657500): - if has usersandbox $FEATURES ; then - ewarn "You are emerging ${P} with 'usersandbox' enabled." \ - "Expect some test failures or emerge with 'FEATURES=-usersandbox'!" - fi - - emake check -} - -pkg_postinst() { - if [[ -f "${EROOT}"/var/lib/rpm/Packages ]] ; then - einfo "RPM database found... Rebuilding database (may take a while)..." - "${EROOT}"/usr/bin/rpmdb --rebuilddb --root="${EROOT}/" || die - else - einfo "No RPM database found... Creating database..." - "${EROOT}"/usr/bin/rpmdb --initdb --root="${EROOT}/" || die - fi -} diff --git a/app-arch/rpm/rpm-4.17.0.ebuild b/app-arch/rpm/rpm-4.18.1.ebuild index 19b33b3904ef..5054bab122a8 100644 --- a/app-arch/rpm/rpm-4.17.0.ebuild +++ b/app-arch/rpm/rpm-4.18.1.ebuild @@ -1,31 +1,34 @@ -# Copyright 1999-2021 Gentoo Authors +# Copyright 1999-2024 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 -EAPI=7 +EAPI=8 LUA_COMPAT=( lua5-{3,4} ) -PYTHON_COMPAT=( python3_{8,9,10} ) +PYTHON_COMPAT=( python3_{10..11} ) inherit autotools lua-single perl-module python-single-r1 toolchain-funcs DESCRIPTION="Red Hat Package Management Utils" -HOMEPAGE="https://rpm.org - https://github.com/rpm-software-management/rpm" -SRC_URI="https://ftp.osuosl.org/pub/rpm/releases/rpm-$(ver_cut 1-2).x/${P}.tar.bz2 - http://ftp.rpm.org/releases/rpm-$(ver_cut 1-2).x/${P}.tar.bz2" +HOMEPAGE="https://rpm.org/ https://github.com/rpm-software-management/rpm" +SRC_URI=" + https://ftp.osuosl.org/pub/rpm/releases/rpm-$(ver_cut 1-2).x/${P}.tar.bz2 + http://ftp.rpm.org/releases/rpm-$(ver_cut 1-2).x/${P}.tar.bz2 +" LICENSE="GPL-2 LGPL-2" SLOT="0" -KEYWORDS="~alpha amd64 arm arm64 ~hppa ~ia64 ~mips ppc ppc64 ~riscv ~s390 ~sparc x86 ~amd64-linux ~x86-linux" - -# Tests are broken. See bug 657500 +KEYWORDS="~alpha amd64 arm arm64 ~hppa ~ia64 ~loong ~mips ppc ppc64 ~riscv ~s390 ~sparc x86 ~amd64-linux ~x86-linux" +IUSE="acl audit caps +berkdb doc dbus nls openmp python readline selinux +sqlite test +zstd" +REQUIRED_USE=" + ${LUA_REQUIRED_USE} + python? ( ${PYTHON_REQUIRED_USE} ) +" +# Tests are broken. See bug #657500 RESTRICT="test" -IUSE="acl caps +berkdb doc dbus nls openmp python selinux +sqlite test +zstd" -REQUIRED_USE="${LUA_REQUIRED_USE} - python? ( ${PYTHON_REQUIRED_USE} )" - -DEPEND="!app-arch/rpm5 +DEPEND=" + ${LUA_DEPS} + !app-arch/rpm5 app-arch/libarchive:= >=app-arch/bzip2-1.0.1 app-arch/xz-utils @@ -37,25 +40,34 @@ DEPEND="!app-arch/rpm5 sys-apps/file >=sys-libs/zlib-1.2.3-r1 virtual/libintl - ${LUA_DEPS} + acl? ( virtual/acl ) + audit? ( sys-process/audit ) + caps? ( >=sys-libs/libcap-2.0 ) dbus? ( sys-apps/dbus ) + readline? ( sys-libs/readline:= ) sqlite? ( dev-db/sqlite:3 ) python? ( ${PYTHON_DEPS} ) nls? ( virtual/libintl ) - acl? ( virtual/acl ) - caps? ( >=sys-libs/libcap-2.0 ) zstd? ( app-arch/zstd:= ) " BDEPEND=" - nls? ( sys-devel/gettext ) - doc? ( app-doc/doxygen ) virtual/pkgconfig + doc? ( app-text/doxygen ) + nls? ( sys-devel/gettext ) test? ( sys-apps/fakechroot ) " -RDEPEND="${DEPEND} +RDEPEND=" + ${DEPEND} selinux? ( sec-policy/selinux-rpm ) " +PATCHES=( + "${FILESDIR}"/${PN}-4.8.1-db-path.patch + "${FILESDIR}"/${PN}-4.8.1-clang.patch + "${FILESDIR}"/${PN}-4.17.0-libdir.patch + "${FILESDIR}"/${PN}-4.18.1-musl-nls.patch +) + pkg_pretend() { [[ ${MERGE_TYPE} != binary ]] && use openmp && tc-check-openmp } @@ -65,51 +77,66 @@ pkg_setup() { use python && python-single-r1_pkg_setup - # Added USE=openmp and this check for bug #779769 + # bug #779769 [[ ${MERGE_TYPE} != binary ]] && use openmp && tc-check-openmp } src_prepare() { - eapply "${FILESDIR}"/${PN}-4.8.1-db-path.patch - eapply "${FILESDIR}"/${PN}-4.17.0-libdir.patch + default - # fix #356769 + # bug #356769 sed -i 's:%{_var}/tmp:/var/tmp:' macros.in || die "Fixing tmppath failed" - # fix #492642 + # bug #492642 sed -i "s:@__PYTHON@:${PYTHON}:" macros.in || die "Fixing %__python failed" - eapply_user - eautoreconf + # Prevent automake maintainer mode from kicking in (bug #450448). + #touch -r Makefile.am preinstall.am || die - # Prevent automake maintainer mode from kicking in (#450448). - touch -r Makefile.am preinstall.am || die + eautoreconf } src_configure() { # rpm no longer supports berkdb, but has readonly support. # https://github.com/rpm-software-management/rpm/commit/4290300e24c5ab17c615b6108f38438e31eeb1d0 - econf \ - --without-selinux \ - --with-crypto=libgcrypt \ - $(use_enable berkdb bdb-ro) \ - $(use_enable python) \ - $(use_enable nls) \ - $(use_enable openmp) \ - $(use_enable dbus inhibit-plugin) \ - $(use_enable sqlite) \ - $(use_with caps cap) \ - $(use_with acl) \ + local myeconfargs=( + --enable-libelf + --without-selinux + --disable-inhibit-plugin + --with-crypto=libgcrypt + $(use_enable berkdb bdb-ro) + $(use_enable python) + $(use_enable nls) + $(use_enable openmp) + $(use_enable dbus inhibit-plugin) + $(use_enable sqlite) + $(use_with caps cap) + $(use_with acl) + $(use_with audit) + $(use_with readline) $(use_enable zstd zstd $(usex zstd yes no)) + ) + + econf "${myeconfargs[@]}" +} + +src_test() { + # Known to fail with FEATURES=usersandbox (bug #657500) + if has usersandbox ${FEATURES} ; then + ewarn "You are emerging ${P} with 'usersandbox' enabled." \ + "Expect some test failures or emerge with 'FEATURES=-usersandbox'!" + fi + + emake check } src_install() { default - # remove la files + # Remove la files find "${ED}" -name '*.la' -delete || die - # fix symlinks to /bin/rpm (#349840) - for binary in rpmquery rpmverify;do + # Fix symlinks to /bin/rpm (bug #349840) + for binary in rpmquery rpmverify; do ln -sf rpm "${ED}"/usr/bin/${binary} || die done @@ -134,16 +161,6 @@ src_install() { use python && python_optimize } -src_test() { - # Known to fail with FEATURES=usersandbox (bug #657500): - if has usersandbox ${FEATURES} ; then - ewarn "You are emerging ${P} with 'usersandbox' enabled." \ - "Expect some test failures or emerge with 'FEATURES=-usersandbox'!" - fi - - emake check -} - pkg_postinst() { if [[ -f "${EROOT}"/var/lib/rpm/Packages ]] ; then einfo "RPM database found... Rebuilding database (may take a while)..." diff --git a/app-arch/rpm/rpm-4.19.1.1.ebuild b/app-arch/rpm/rpm-4.19.1.1.ebuild new file mode 100644 index 000000000000..24b051845fce --- /dev/null +++ b/app-arch/rpm/rpm-4.19.1.1.ebuild @@ -0,0 +1,134 @@ +# Copyright 2023-2024 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +CMAKE_MAKEFILE_GENERATOR=emake +LUA_COMPAT=( lua5-{3,4} ) +PYTHON_COMPAT=( python3_{10..12} ) + +inherit cmake lua-single python-single-r1 toolchain-funcs + +DESCRIPTION="The RPM Package Manager" +HOMEPAGE="https://rpm.org/ https://github.com/rpm-software-management/rpm" +SRC_URI=" + https://ftp.osuosl.org/pub/rpm/releases/rpm-$(ver_cut 1-2).x/${P}.tar.bz2 + http://ftp.rpm.org/releases/rpm-$(ver_cut 1-2).x/${P}.tar.bz2 +" + +LICENSE="GPL-2 LGPL-2" +SLOT="0" +KEYWORDS="~alpha ~amd64 arm arm64 ~hppa ~ia64 ~loong ~mips ppc ~riscv ~s390 ~sparc x86" +IUSE="acl audit caps +berkdb doc dbus nls openmp python readline selinux +sequoia +sqlite" +REQUIRED_USE=" + ${LUA_REQUIRED_USE} + python? ( ${PYTHON_REQUIRED_USE} ) +" +# Tests run against a Fedora container image, which needs to be pulled. +RESTRICT="test" + +DEPEND=" + ${LUA_DEPS} + >=app-arch/bzip2-1.0.1 + app-arch/libarchive:= + app-arch/xz-utils + app-arch/zstd:= + >=app-crypt/gnupg-1.2 + >=dev-lang/perl-5.8.8 + dev-libs/elfutils + >=dev-libs/popt-1.7 + sys-apps/file + sys-libs/readline:= + >=sys-libs/zlib-1.2.3-r1 + acl? ( virtual/acl ) + audit? ( sys-process/audit ) + caps? ( >=sys-libs/libcap-2.0 ) + dbus? ( sys-apps/dbus ) + nls? ( virtual/libintl ) + python? ( ${PYTHON_DEPS} ) + readline? ( sys-libs/readline:= ) + sequoia? ( app-crypt/rpm-sequoia ) + !sequoia? ( dev-libs/libgcrypt:= ) + sqlite? ( dev-db/sqlite:3 ) +" +BDEPEND=" + virtual/pkgconfig + doc? ( app-text/doxygen ) + nls? ( sys-devel/gettext ) +" +RDEPEND=" + ${DEPEND} + selinux? ( sec-policy/selinux-rpm ) +" + +PATCHES=( + "${FILESDIR}"/${PN}-4.19.0-libdir.patch + "${FILESDIR}"/${P}-musl-compat.patch +) + +pkg_pretend() { + [[ ${MERGE_TYPE} != binary ]] && use openmp && tc-check-openmp +} + +pkg_setup() { + lua-single_pkg_setup + + use python && python-single-r1_pkg_setup + + # bug #779769 + [[ ${MERGE_TYPE} != binary ]] && use openmp && tc-check-openmp +} + +src_prepare() { + cmake_src_prepare +} + +src_configure() { + # rpm no longer supports berkdb, but has readonly support. + # https://github.com/rpm-software-management/rpm/commit/4290300e24c5ab17c615b6108f38438e31eeb1d0 + local mycmakeargs=( + -DENABLE_TESTSUITE=OFF + -DWITH_FAPOLICYD=OFF + -DWITH_SELINUX=OFF + -DENABLE_BDB_RO=$(usex berkdb) + -DENABLE_NLS=$(usex nls) + -DENABLE_OPENMP=$(usex openmp) + -DENABLE_PYTHON=$(usex python) + -DENABLE_SQLITE=$(usex sqlite) + -DWITH_ACL=$(usex acl) + -DWITH_AUDIT=$(usex audit) + -DWITH_CAP=$(usex caps) + -DWITH_DBUS=$(usex dbus) + -DWITH_INTERNAL_OPENPGP=$(usex sequoia OFF ON) + -DWITH_READLINE=$(usex readline) + $(cmake_use_find_package doc Doxygen) + ) + cmake_src_configure +} + +src_test() { + emake -C "${BUILD_DIR}" check +} + +src_install() { + cmake_src_install + + # Remove pre-built API docs. + use doc || rm -rf "${ED}/usr/share/doc/${PF}" || die + + dodoc CREDITS README + + keepdir /usr/src/rpm/{SRPMS,SPECS,SOURCES,RPMS,BUILD} + + use python && python_optimize +} + +pkg_postinst() { + if [[ -f "${EROOT}"/var/lib/rpm/rpmdb.sqlite ]] ; then + einfo "RPM database found... Rebuilding database (may take a while)..." + "${EROOT}"/usr/bin/rpmdb --rebuilddb --root="${EROOT}/" || die + else + einfo "No RPM database found... Creating database..." + "${EROOT}"/usr/bin/rpmdb --initdb --root="${EROOT}/" || die + fi +} |