Gentoo Archives: gentoo-commits

From: Sam James <sam@g.o>
To: gentoo-commits@l.g.o
Subject: [gentoo-commits] repo/gentoo:master commit in: dev-libs/libffi/
Date: Sun, 12 Sep 2021 23:19:27
Message-Id: 1631488741.e90110a0a63cb9177bb529d61b3a70f9797b82d6.sam@gentoo
1 commit: e90110a0a63cb9177bb529d61b3a70f9797b82d6
2 Author: Sam James <sam <AT> gentoo <DOT> org>
3 AuthorDate: Wed Sep 8 21:55:12 2021 +0000
4 Commit: Sam James <sam <AT> gentoo <DOT> org>
5 CommitDate: Sun Sep 12 23:19:01 2021 +0000
6 URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=e90110a0
7
8 dev-libs/libffi: use preserve-libs.eclass
9
10 1. Revision bump to re-install libffi now that
11 glibc definitely has the correct version bounds
12 on pax-utils. See linked bug for more information.
13
14 This is unrelated to the preserve-libs eclass change,
15 but we figured we should do this just as a nudge
16 to help people in a "damaged" situation (see bug).
17
18 2. Use preserved-libs.eclass because SONAME of libffi
19 changed from 7 -> 8. FEATURES="preserved-libs" (distinct from
20 the eclass) is not required to be used (even if encouraged)
21 and is not part of PMS, so alternative package managers
22 to Portage don't have to implement it.
23
24 Use the eclass to perserve libffi.so.7 to keep dev-lang/python
25 working. Runtime failures will occur without Python being rebuilt
26 in time.
27
28 (Unfortunately, the same is true for the rewritten-in-Python
29 revdep-rebuild, so revdep-rebuild.sh may help folks who are
30 already bitten by this.)
31
32 Bug: https://bugs.gentoo.org/811462
33 Signed-off-by: Sam James <sam <AT> gentoo.org>
34 Closes: https://github.com/gentoo/gentoo/pull/22247
35 Signed-off-by: Sam James <sam <AT> gentoo.org>
36
37 .../{libffi-3.4.2.ebuild => libffi-3.4.2-r1.ebuild} | 21 +++++++++++++++------
38 1 file changed, 15 insertions(+), 6 deletions(-)
39
40 diff --git a/dev-libs/libffi/libffi-3.4.2.ebuild b/dev-libs/libffi/libffi-3.4.2-r1.ebuild
41 similarity index 82%
42 rename from dev-libs/libffi/libffi-3.4.2.ebuild
43 rename to dev-libs/libffi/libffi-3.4.2-r1.ebuild
44 index 71baf938aac..8af06625307 100644
45 --- a/dev-libs/libffi/libffi-3.4.2.ebuild
46 +++ b/dev-libs/libffi/libffi-3.4.2-r1.ebuild
47 @@ -2,7 +2,8 @@
48 # Distributed under the terms of the GNU General Public License v2
49
50 EAPI=7
51 -inherit multilib-minimal
52 +
53 +inherit multilib-minimal preserve-libs
54
55 MY_PV=${PV/_rc/-rc}
56 MY_P=${PN}-${MY_PV}
57 @@ -10,22 +11,22 @@ MY_P=${PN}-${MY_PV}
58 DESCRIPTION="a portable, high level programming interface to various calling conventions"
59 HOMEPAGE="https://sourceware.org/libffi/"
60 SRC_URI="https://github.com/libffi/libffi/releases/download/v${MY_PV}/${MY_P}.tar.gz"
61 +S="${WORKDIR}"/${MY_P}
62
63 LICENSE="MIT"
64 +# This is a core package which is depended on by e.g. Python
65 +# Please use preserve-libs.eclass in pkg_{pre,post}inst to cover users
66 +# with FEATURES="-preserved-libs" or another package manager if SONAME
67 +# changes.
68 SLOT="0/8" # SONAME=libffi.so.8
69 KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~x64-cygwin ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris"
70 IUSE="debug exec-static-trampoline pax-kernel static-libs test"
71
72 RESTRICT="!test? ( test )"
73 -
74 -RDEPEND=""
75 -DEPEND=""
76 BDEPEND="test? ( dev-util/dejagnu )"
77
78 DOCS="ChangeLog* README.md"
79
80 -S=${WORKDIR}/${MY_P}
81 -
82 ECONF_SOURCE=${S}
83
84 src_prepare() {
85 @@ -63,3 +64,11 @@ multilib_src_install_all() {
86 find "${ED}" -name "*.la" -delete || die
87 einstalldocs
88 }
89 +
90 +pkg_preinst() {
91 + preserve_old_lib /usr/$(get_libdir)/libffi.so.7
92 +}
93 +
94 +pkg_postinst() {
95 + preserve_old_lib_notify /usr/$(get_libdir)/libffi.so.7
96 +}