app-arch/dpkg: add 1.22.21

Add `dot-a.eclass` and drop USE=static-libs:

We're only building static libs at this point, there's no point in a USE
for the only valid combination. Instead, rely on the default behaviour
and hard-coded `--enable-static` (and upstream behaviour) to ensure that
an appropriate library is built and installed.

Signed-off-by: Matt Jolly <kangie@gentoo.org>
This commit is contained in:
Matt Jolly
2025-12-04 11:31:45 +10:00
parent a4a017d5d6
commit 599b18d0d5
2 changed files with 125 additions and 0 deletions

View File

@@ -1,2 +1,3 @@
DIST dpkg_1.22.14.tar.xz 5728012 BLAKE2B d14e4550f562fd054a073bfb5e9269aff82a3b582ce8676073b67c9ee72baf5a242ee62a91b56966db2569f93255a6475c75b246527142f94f3c1de91c48f673 SHA512 43b0776cf6fef8beb771c552b9824e86bbe554b0738c13ae4d1b89821c79aa2ae26a7d30d3b3b865df89374a1625adbb31da45bf208dafe87fc1a7b175fe4a28
DIST dpkg_1.22.19.tar.xz 5748756 BLAKE2B 6c5017bb6132c88215d23194120e4c52b02310cd593c79b1db96e0b7f22456f70a6749aa91cb9796ac99fe698edfcb025841e0cb676731d4232a088aa32119fe SHA512 951bf8b228c00899db6618752745d7db69e9c22754f4a5c84c9e45604477e448253713e51cb29d9ef2346825aa28f0812ce1c4653ab01c8e8c2ea962cf86ded9
DIST dpkg_1.22.21.tar.xz 5743920 BLAKE2B cac56e2c734e6d7374cff5174902d4b023e41202f3955bbcadddc59d549f1961a2068092d083e4271b209a2bb82546cf9ed45bcda9b84a433e82720eccdf30ad SHA512 80a45a019133481f8ab54f4e3db0e776324ba49ba960bc26ef234b6032626e0ea87d439883b9b533f0a404d66391a272fd239b88b7bbf4e2cd904a985867d7ef

View File

@@ -0,0 +1,124 @@
# Copyright 1999-2025 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
inherit autotools dot-a toolchain-funcs multiprocessing
DESCRIPTION="Package maintenance system for Debian"
HOMEPAGE="https://packages.qa.debian.org/dpkg"
SRC_URI="mirror://debian/pool/main/d/${PN}/${P/-/_}.tar.xz"
LICENSE="GPL-2+"
SLOT="0"
KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux"
IUSE="+bzip2 +lzma nls selinux test +update-alternatives +zlib +zstd"
RESTRICT="!test? ( test )"
RDEPEND="
>=app-arch/gzip-1.7
>=app-arch/tar-1.34-r1
app-crypt/libmd
>=dev-lang/perl-5.32.1:=
sys-libs/ncurses:=[unicode(+)]
bzip2? ( app-arch/bzip2 )
elibc_musl? ( sys-libs/obstack-standalone )
lzma? ( app-arch/xz-utils )
nls? ( virtual/libintl )
selinux? ( sys-libs/libselinux )
zlib? ( >=virtual/zlib-1.1.4:= )
zstd? ( app-arch/zstd:= )
"
DEPEND="
${RDEPEND}
app-arch/xz-utils
virtual/pkgconfig
test? (
dev-perl/IO-String
dev-perl/Test-Pod
)
"
BDEPEND="
sys-devel/flex
nls? (
app-text/po4a
>=sys-devel/gettext-0.18.2
)
"
RDEPEND+=" selinux? ( sec-policy/selinux-dpkg )"
PATCHES=(
"${FILESDIR}"/${PN}-1.22.0-flags.patch
)
src_prepare() {
default
sed -i -e 's|\<ar\>|${AR}|g' src/at/deb-format.at src/at/testsuite || die
eautoreconf
}
src_configure() {
tc-export AR CC
lto-guarantee-fat
# dpkg uses LT_INIT([disable-shared]) in configure.ac where GNU libtool
# enables static if both --disable-shared and --disable-static are set while
# slibtool disables both so explicitly set --enable-static until upstream
# supports shared libraries.
# https://bugs.gentoo.org/956332
local myconf=(
# We don't want to override our toolchain defaults which
# set the same things.
--disable-compiler-hardening
--disable-compiler-warnings
--disable-devel-docs
--disable-dselect
--disable-start-stop-daemon
--enable-static
--enable-unicode
--localstatedir="${EPREFIX}"/var
$(use_enable nls)
$(use_enable update-alternatives)
$(use_with bzip2 libbz2)
$(use_with lzma liblzma)
$(use_with selinux libselinux)
$(use_with zlib libz)
$(use_with zstd libzstd)
)
econf "${myconf[@]}"
}
src_compile() {
emake AR="$(tc-getAR)"
}
src_test() {
emake -Onone check TEST_PARALLEL="$(makeopts_jobs)" TEST_VERBOSE=1
}
src_install() {
local DOCS=( debian/changelog THANKS TODO )
default
strip-lto-bytecode usr/$(get_libdir)/libdpkg.a
# https://bugs.gentoo.org/835520
mv -v "${ED}"/usr/share/zsh/{vendor-completions,site-functions} || die
# https://bugs.gentoo.org/840320
insinto /etc/dpkg/origins
newins - gentoo <<-_EOF_
Vendor: Gentoo
Vendor-URL: https://www.gentoo.org/
Bugs: https://bugs.gentoo.org/
_EOF_
dosym gentoo /etc/dpkg/origins/default
keepdir \
/usr/$(get_libdir)/db/methods/{mnt,floppy,disk} \
/var/lib/dpkg/{alternatives,info,parts,updates}
find "${ED}" -name '*.la' -delete || die
}