From mboxrd@z Thu Jan  1 00:00:00 1970
Return-Path: <gentoo-commits+bounces-1320494-garchives=archives.gentoo.org@lists.gentoo.org>
Received: from lists.gentoo.org (pigeon.gentoo.org [208.92.234.80])
	(using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
	(No client certificate requested)
	by finch.gentoo.org (Postfix) with ESMTPS id 59781158093
	for <garchives@archives.gentoo.org>; Sun, 12 Sep 2021 23:19:27 +0000 (UTC)
Received: from pigeon.gentoo.org (localhost [127.0.0.1])
	by pigeon.gentoo.org (Postfix) with SMTP id 3D305E0839;
	Sun, 12 Sep 2021 23:19:26 +0000 (UTC)
Received: from smtp.gentoo.org (woodpecker.gentoo.org [140.211.166.183])
	(using TLSv1.2 with cipher ECDHE-RSA-CHACHA20-POLY1305 (256/256 bits))
	(No client certificate requested)
	by pigeon.gentoo.org (Postfix) with ESMTPS id C958CE083D
	for <gentoo-commits@lists.gentoo.org>; Sun, 12 Sep 2021 23:19:25 +0000 (UTC)
Received: from oystercatcher.gentoo.org (oystercatcher.gentoo.org [148.251.78.52])
	(using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits))
	(No client certificate requested)
	by smtp.gentoo.org (Postfix) with ESMTPS id 33BB7342DEA
	for <gentoo-commits@lists.gentoo.org>; Sun, 12 Sep 2021 23:19:24 +0000 (UTC)
Received: from localhost.localdomain (localhost [IPv6:::1])
	by oystercatcher.gentoo.org (Postfix) with ESMTP id 6B8C1A3
	for <gentoo-commits@lists.gentoo.org>; Sun, 12 Sep 2021 23:19:22 +0000 (UTC)
From: "Sam James" <sam@gentoo.org>
To: gentoo-commits@lists.gentoo.org
Content-Transfer-Encoding: 8bit
Content-type: text/plain; charset=UTF-8
Reply-To: gentoo-dev@lists.gentoo.org, "Sam James" <sam@gentoo.org>
Message-ID: <1631488741.e90110a0a63cb9177bb529d61b3a70f9797b82d6.sam@gentoo>
Subject: [gentoo-commits] repo/gentoo:master commit in: dev-libs/libffi/
X-VCS-Repository: repo/gentoo
X-VCS-Files: dev-libs/libffi/libffi-3.4.2-r1.ebuild dev-libs/libffi/libffi-3.4.2.ebuild
X-VCS-Directories: dev-libs/libffi/
X-VCS-Committer: sam
X-VCS-Committer-Name: Sam James
X-VCS-Revision: e90110a0a63cb9177bb529d61b3a70f9797b82d6
X-VCS-Branch: master
Date: Sun, 12 Sep 2021 23:19:22 +0000 (UTC)
Precedence: bulk
List-Post: <mailto:gentoo-commits@lists.gentoo.org>
List-Help: <mailto:gentoo-commits+help@lists.gentoo.org>
List-Unsubscribe: <mailto:gentoo-commits+unsubscribe@lists.gentoo.org>
List-Subscribe: <mailto:gentoo-commits+subscribe@lists.gentoo.org>
List-Id: Gentoo Linux mail <gentoo-commits.gentoo.org>
X-BeenThere: gentoo-commits@lists.gentoo.org
X-Auto-Response-Suppress: DR, RN, NRN, OOF, AutoReply
X-Archives-Salt: 38ed63f2-a733-49c6-bc12-c537fe644031
X-Archives-Hash: ba5345ffec6a92428154e42f5f800dba

commit:     e90110a0a63cb9177bb529d61b3a70f9797b82d6
Author:     Sam James <sam <AT> gentoo <DOT> org>
AuthorDate: Wed Sep  8 21:55:12 2021 +0000
Commit:     Sam James <sam <AT> gentoo <DOT> org>
CommitDate: Sun Sep 12 23:19:01 2021 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=e90110a0

dev-libs/libffi: use preserve-libs.eclass

1. Revision bump to re-install libffi now that
   glibc definitely has the correct version bounds
   on pax-utils. See linked bug for more information.

   This is unrelated to the preserve-libs eclass change,
   but we figured we should do this just as a nudge
   to help people in a "damaged" situation (see bug).

2. Use preserved-libs.eclass because SONAME of libffi
   changed from 7 -> 8. FEATURES="preserved-libs" (distinct from
   the eclass) is not required to be used (even if encouraged)
   and is not part of PMS, so alternative package managers
   to Portage don't have to implement it.

   Use the eclass to perserve libffi.so.7 to keep dev-lang/python
   working. Runtime failures will occur without Python being rebuilt
   in time.

   (Unfortunately, the same is true for the rewritten-in-Python
   revdep-rebuild, so revdep-rebuild.sh may help folks who are
   already bitten by this.)

Bug: https://bugs.gentoo.org/811462
Signed-off-by: Sam James <sam <AT> gentoo.org>
Closes: https://github.com/gentoo/gentoo/pull/22247
Signed-off-by: Sam James <sam <AT> gentoo.org>

 .../{libffi-3.4.2.ebuild => libffi-3.4.2-r1.ebuild} | 21 +++++++++++++++------
 1 file changed, 15 insertions(+), 6 deletions(-)

diff --git a/dev-libs/libffi/libffi-3.4.2.ebuild b/dev-libs/libffi/libffi-3.4.2-r1.ebuild
similarity index 82%
rename from dev-libs/libffi/libffi-3.4.2.ebuild
rename to dev-libs/libffi/libffi-3.4.2-r1.ebuild
index 71baf938aac..8af06625307 100644
--- a/dev-libs/libffi/libffi-3.4.2.ebuild
+++ b/dev-libs/libffi/libffi-3.4.2-r1.ebuild
@@ -2,7 +2,8 @@
 # Distributed under the terms of the GNU General Public License v2
 
 EAPI=7
-inherit multilib-minimal
+
+inherit multilib-minimal preserve-libs
 
 MY_PV=${PV/_rc/-rc}
 MY_P=${PN}-${MY_PV}
@@ -10,22 +11,22 @@ MY_P=${PN}-${MY_PV}
 DESCRIPTION="a portable, high level programming interface to various calling conventions"
 HOMEPAGE="https://sourceware.org/libffi/"
 SRC_URI="https://github.com/libffi/libffi/releases/download/v${MY_PV}/${MY_P}.tar.gz"
+S="${WORKDIR}"/${MY_P}
 
 LICENSE="MIT"
+# This is a core package which is depended on by e.g. Python
+# Please use preserve-libs.eclass in pkg_{pre,post}inst to cover users
+# with FEATURES="-preserved-libs" or another package manager if SONAME
+# changes.
 SLOT="0/8" # SONAME=libffi.so.8
 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"
 IUSE="debug exec-static-trampoline pax-kernel static-libs test"
 
 RESTRICT="!test? ( test )"
-
-RDEPEND=""
-DEPEND=""
 BDEPEND="test? ( dev-util/dejagnu )"
 
 DOCS="ChangeLog* README.md"
 
-S=${WORKDIR}/${MY_P}
-
 ECONF_SOURCE=${S}
 
 src_prepare() {
@@ -63,3 +64,11 @@ multilib_src_install_all() {
 	find "${ED}" -name "*.la" -delete || die
 	einstalldocs
 }
+
+pkg_preinst() {
+	preserve_old_lib /usr/$(get_libdir)/libffi.so.7
+}
+
+pkg_postinst() {
+	preserve_old_lib_notify /usr/$(get_libdir)/libffi.so.7
+}