app-arch/arj: add 3.10.22_p28

Bump debian patches indirectly fixing build order issues. Debian patch removing
timestamps means that the timestamp target cannot race before the
prepare target anymore.

Clang build is fixed by enabling -fkeep-static-consts, build assumes it
can embed a value into the binary and find it later with postproc.

Bug: https://bugs.gentoo.org/509700
Bug: https://bugs.gentoo.org/800848
Signed-off-by: Alfred Wingate <parona@protonmail.com>
Closes: https://github.com/gentoo/gentoo/pull/40217
Signed-off-by: Sam James <sam@gentoo.org>
This commit is contained in:
Alfred Wingate
2025-01-19 22:54:33 +02:00
committed by Sam James
parent ddba1b060c
commit 6431d77871
2 changed files with 93 additions and 0 deletions

View File

@@ -1,2 +1,3 @@
DIST arj_3.10.22-15.debian.tar.xz 16756 BLAKE2B f9bf45f103cf3f76867006bdbd61f6c5e04d75d9543e99e01304b285b8858034c60f38ea76bc8cdc502b44a8515fb7a04fd9d2f3d07f9ea19e1c5d3a4d448eff SHA512 66e1bc3188afc24573fe98374f9b0cf939d0d3c7a1b356e6367ef544fb0e64721fa686fd1e791f58508576f0f50994878347bcb054f48ebe240cc9ab97e00688
DIST arj_3.10.22-28.debian.tar.xz 24380 BLAKE2B c188e9f7f37067fdba70ffd6a8066c49c616d9bfc5d1d6fbe53fe86655cb3106fff2b459d34d676c6261071e976be9f6fd87f608937156bd94de207db3fc1910 SHA512 d92be2fe407ced5cd21d7144c8b97d19a5bdfa2391579228d817111a7eef455a847958ae49444aa275d87f043af3133f9a7330309bbdd5df1cf923b0f439d271
DIST arj_3.10.22.orig.tar.gz 431467 BLAKE2B e40409b9f88a1a7e56de4200b464c3dc420659fa3991bf904ca86bbdb428fc8d17f095b9eabf3170712458ef2136e96545810201cc6755c15e45d4ae9a5e3a03 SHA512 4730dfdbab4f8095396c337578ed69bdaae52955ad468db50b52af8ad2846ecd6cfc05eb3ac0d03838c1c32ea60126f14a22b93e8181c06b9546456f3937ff76

View File

@@ -0,0 +1,92 @@
# Copyright 1999-2025 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
inherit autotools flag-o-matic toolchain-funcs
MY_PV="${PV%%_p*}"
PATCH_LEVEL="${PV##*_p}"
DESCRIPTION="Utility for opening arj archives"
HOMEPAGE="https://arj.sourceforge.net/"
SRC_URI="
mirror://debian/pool/main/a/arj/arj_${MY_PV}.orig.tar.gz
mirror://debian/pool/main/a/arj/arj_${MY_PV}-${PATCH_LEVEL}.debian.tar.xz"
S="${WORKDIR}/${PN}-${MY_PV}"
LICENSE="GPL-2"
SLOT="0"
KEYWORDS="~amd64 ~arm ~arm64 ~ppc ~ppc64 ~sparc ~x86 ~amd64-linux ~x86-linux ~ppc-macos"
PATCHES=(
# get order of patches from series file. otherwise the order is wrong :/
"${WORKDIR}"/debian/patches/001_arches_align.patch
"${WORKDIR}"/debian/patches/002_no_remove_static_const.patch
"${WORKDIR}"/debian/patches/003_64_bit_clean.patch
"${WORKDIR}"/debian/patches/004_parallel_build.patch
"${WORKDIR}"/debian/patches/005_use_system_strnlen.patch
"${WORKDIR}"/debian/patches/006_use_safe_strcpy.patch
"${WORKDIR}"/debian/patches/hurd_no_fcntl_getlk.patch
"${WORKDIR}"/debian/patches/security_format.patch
"${WORKDIR}"/debian/patches/doc_refer_robert_k_jung.patch
"${WORKDIR}"/debian/patches/gnu_build_fix.patch
"${WORKDIR}"/debian/patches/gnu_build_flags.patch
"${WORKDIR}"/debian/patches/gnu_build_strip.patch
"${WORKDIR}"/debian/patches/gnu_build_pie.patch
"${WORKDIR}"/debian/patches/self_integrity_64bit.patch
"${WORKDIR}"/debian/patches/security-afl.patch
"${WORKDIR}"/debian/patches/security-traversal-dir.patch
"${WORKDIR}"/debian/patches/security-traversal-symlink.patch
"${WORKDIR}"/debian/patches/out-of-bounds-read.patch
"${WORKDIR}"/debian/patches/remove_build_date.patch
"${WORKDIR}"/debian/patches/reproducible_help_archive.patch
"${WORKDIR}"/debian/patches/gnu_build_cross.patch
"${WORKDIR}"/debian/patches/fix-time_t-usage.patch
"${WORKDIR}"/debian/patches/gnu_build_fix_autoreconf.patch
"${WORKDIR}"/debian/patches/fix-implicit-func.patch
"${FILESDIR}"/arj-3.10.22-implicit-declarations.patch
"${FILESDIR}"/arj-3.10.22-darwin.patch
)
DOCS=( doc/compile.txt doc/debug.txt doc/glossary.txt doc/rev_hist.txt doc/xlation.txt )
src_prepare() {
default
cd gnu || die 'failed to change to the "gnu" directory'
echo -n "" > stripgcc.lnk || die "failed to disable stripgcc.lnk"
eautoreconf
}
src_configure() {
# Needed for keeping intergrity_identifier around so that postproc can find it later
# GCC defaults to enabling it, Clang doesn't.
# bug #509700
append-cflags -fkeep-static-consts
# Debian patches assume this is set. Can be updated with "date +%s"
export SOURCE_DATE_EPOCH="1737318540"
tc-export CC # Uses autoconf but not automake.
export CC_FOR_BUILD="$(tc-getBUILD_CC)"
if tc-is-cross-compiler; then
export CFLAGS_FOR_BUILD="${BUILD_CFLAGS}"
else
export CFLAGS_FOR_BUILD="${CFLAGS}"
fi
cd gnu || die 'failed to change to the "gnu" directory'
econf
}
src_test() {
# debian includes a test script. why not use it?
local -x AUTOPKGTEST_TMP="${T}/debian-test"
local -x PATH="${S}/linux-gnu/en/rs/arj/:${PATH}"
"${WORKDIR}"/debian/tests/test-command || die
}