diff options
| author | Eli Schwartz <eschwartz@gentoo.org> | 2025-06-08 11:28:42 -0400 |
|---|---|---|
| committer | Eli Schwartz <eschwartz@gentoo.org> | 2025-06-08 12:32:49 -0400 |
| commit | c4d6bd8fc2cc8a5d7bd6d53cd05cff30a60d2ba1 (patch) | |
| tree | dd53304da13784473c64363bddab08aacd4f9cfd /sys-devel/patch/patch-2.8-r1.ebuild | |
| parent | 62ad53b3d09a6378da6e7d8d6b29aa3e51b6dae4 (diff) | |
| download | gentoo-c4d6bd8fc2cc8a5d7bd6d53cd05cff30a60d2ba1.tar.gz gentoo-c4d6bd8fc2cc8a5d7bd6d53cd05cff30a60d2ba1.tar.bz2 gentoo-c4d6bd8fc2cc8a5d7bd6d53cd05cff30a60d2ba1.zip | |
sys-devel/patch: fix incorrect reliance on split-usr
It hardcodes a compile-time path to `ed`. This is known and handled
already because ${ED} is part of portage and does not point to `ed`. But
the "fix" was to do a $PATH lookup, which in turn broke binpackage
hosting (and profile migration, likely).
The package doesn't have USE=split-usr and we shouldn't add one just for
this. Make sure the portable API filename is used.
Bug: https://bugs.gentoo.org/470210
Closes: https://bugs.gentoo.org/957593
Signed-off-by: Eli Schwartz <eschwartz@gentoo.org>
Diffstat (limited to 'sys-devel/patch/patch-2.8-r1.ebuild')
| -rw-r--r-- | sys-devel/patch/patch-2.8-r1.ebuild | 77 |
1 files changed, 77 insertions, 0 deletions
diff --git a/sys-devel/patch/patch-2.8-r1.ebuild b/sys-devel/patch/patch-2.8-r1.ebuild new file mode 100644 index 000000000000..30b3eb9f3a66 --- /dev/null +++ b/sys-devel/patch/patch-2.8-r1.ebuild @@ -0,0 +1,77 @@ +# Copyright 1999-2025 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +VERIFY_SIG_OPENPGP_KEY_PATH=/usr/share/openpgp-keys/patch.asc +inherit flag-o-matic verify-sig + +DESCRIPTION="Utility to apply diffs to files" +HOMEPAGE="https://www.gnu.org/software/patch/patch.html" +if [[ ${PV} == 9999 ]] ; then + EGIT_REPO_URI="https://git.savannah.gnu.org/git/patch.git" + inherit git-r3 +elif [[ ${PV} = *_p* ]] ; then + # Note: could put this in devspace, but if it's gone, we don't want + # it in tree anyway. It's just for testing. + MY_SNAPSHOT="$(ver_cut 1-3).211-86ac" + SRC_URI="https://alpha.gnu.org/gnu/patch/patch-${MY_SNAPSHOT}.tar.xz -> ${P}.tar.xz" + SRC_URI+=" verify-sig? ( https://alpha.gnu.org/gnu/patch/patch-${MY_SNAPSHOT}.tar.xz.sig -> ${P}.tar.xz.sig )" + S="${WORKDIR}"/${PN}-${MY_SNAPSHOT} +else + SRC_URI="mirror://gnu/patch/${P}.tar.xz" + SRC_URI+=" verify-sig? ( mirror://gnu/patch/${P}.tar.xz.sig )" + + KEYWORDS="~alpha amd64 arm arm64 hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 ~sparc x86 ~amd64-linux ~x86-linux ~arm64-macos ~ppc-macos ~x64-macos ~x64-solaris" +fi + +LICENSE="GPL-3+" +SLOT="0" +IUSE="static test xattr" +RESTRICT="!test? ( test )" + +RDEPEND="xattr? ( sys-apps/attr )" +DEPEND="${RDEPEND}" +BDEPEND=" + test? ( sys-apps/ed ) + verify-sig? ( >=sec-keys/openpgp-keys-patch-20250206 ) +" + +src_unpack() { + if [[ ${PV} == 9999 ]] ; then + git-r3_src_unpack + + cd "${S}" || die + ./bootstrap || die + elif use verify-sig ; then + verify-sig_verify_detached "${DISTDIR}"/${P}.tar.xz{,.sig} + fi + + default +} + +src_configure() { + use static && append-ldflags -static + + local myeconfargs=( + $(use_enable xattr) + # rename to gpatch for better BSD compatibility + --program-prefix=g + ) + # Do not let $ED or $PATH (split-usr) mess up the search for `ed`: + # bug 470210 / bug 957593 + ac_cv_path_ED="${EPREFIX}/bin/ed" \ + econf "${myeconfargs[@]}" +} + +src_test() { + emake check gl_public_submodule_commit= +} + +src_install() { + default + + # symlink to the standard name + dosym gpatch /usr/bin/patch + dosym gpatch.1 /usr/share/man/man1/patch.1 +} |
