commit:     37e41391d7c52a73bef95a72e37992744bf2cbc4
Author:     Arfrever Frehtes Taifersar Arahesis <Arfrever <AT> Apache <DOT> Org>
AuthorDate: Sat Feb  8 00:17:34 2020 +0000
Commit:     Patrick McLean <chutzpah <AT> gentoo <DOT> org>
CommitDate: Sat Feb  8 00:50:31 2020 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=37e41391

sys-libs/libxcrypt: Fix installation with USE="split-usr system".

Do not install 3 unnecessary copies of full library (regular file) for each 
non-native ABI:
  /usr/$(get_libdir)/libcrypt.so
  /usr/$(get_libdir)/libowcrypt.so
  /usr/$(get_libdir)/libxcrypt.so

Do not install unnecessary symlinks for each ABI:
  /usr/$(get_libdir)/libcrypt.so.2
  /usr/$(get_libdir)/libowcrypt.so.2
  /usr/$(get_libdir)/libxcrypt.so.2

Do not use gen_usr_ldscript().

No changes for other combinations of USE flags.

Signed-off-by: Arfrever Frehtes Taifersar Arahesis <Arfrever <AT> Apache.Org>
Signed-off-by: Patrick McLean <chutzpah <AT> gentoo.org>

 ...4.4.12-r2.ebuild => libxcrypt-4.4.12-r3.ebuild} | 23 ++++++++++------------
 1 file changed, 10 insertions(+), 13 deletions(-)

diff --git a/sys-libs/libxcrypt/libxcrypt-4.4.12-r2.ebuild 
b/sys-libs/libxcrypt/libxcrypt-4.4.12-r3.ebuild
similarity index 84%
rename from sys-libs/libxcrypt/libxcrypt-4.4.12-r2.ebuild
rename to sys-libs/libxcrypt/libxcrypt-4.4.12-r3.ebuild
index eb95be5ae56..166f638a579 100644
--- a/sys-libs/libxcrypt/libxcrypt-4.4.12-r2.ebuild
+++ b/sys-libs/libxcrypt/libxcrypt-4.4.12-r3.ebuild
@@ -1,9 +1,9 @@
-# Copyright 1999-2020 Gentoo Authors
+# Copyright 2004-2020 Gentoo Authors
 # Distributed under the terms of the GNU General Public License v2
 
 EAPI=7
 PYTHON_COMPAT=( python3_{6,7,8} )
-inherit autotools multibuild python-any-r1 usr-ldscript multilib-minimal
+inherit autotools multibuild python-any-r1 multilib-minimal
 
 DESCRIPTION="Extended crypt library for descrypt, md5crypt, bcrypt, and others 
"
 SRC_URI="https://github.com/besser82/${PN}/archive/v${PV}.tar.gz -> 
${P}.tar.gz"
@@ -105,7 +105,7 @@ src_install() {
        (
                shopt -s failglob || die "failglob failed"
 
-               # make sure out man pages don't collide with glibc or man-pages
+               # Make sure our man pages do not collide with glibc or 
man-pages.
                for manpage in "${ED}"/usr/share/man/man3/crypt{,_r}.?*; do
                        mv -n "${manpage}" "$(dirname 
"${manpage}")/xcrypt_$(basename "${manpage}")" \
                                || die "mv failed"
@@ -143,20 +143,17 @@ multilib_src_install() {
                                        fi
 
                                        if use system; then
-                                               # now try to find libraries and 
make sure to generate
-                                               # ldscripts for them
+                                               # Move versionless .so symlinks 
from /$(get_libdir) to /usr/$(get_libdir)
+                                               # to allow linker to correctly 
find shared libraries.
                                                shopt -s failglob || die 
"failglob failed"
 
                                                for lib_file in 
"${ED}"$(get_xclibdir)/*$(get_libname); do
-                                                       libname="$(basename 
"${lib_file}")"
-
-                                                       cp -L "${lib_file}" \
-                                                               
"${ED}/usr/$(get_xclibdir)/${libname}" \
-                                                               || die "copying 
${libname} failed"
-
-                                                       gen_usr_ldscript 
${libname}
-                                                       dosym ${libname} 
/usr/$(get_xclibdir)/${libname}.2
+                                                       
lib_file_basename="$(basename "${lib_file}")"
+                                                       
lib_file_target="$(basename "$(readlink -f "${lib_file}")")"
+                                                       dosym 
"../../$(get_libdir)/${lib_file_target}" 
"/usr/$(get_xclibdir)/${lib_file_basename}"
                                                done
+
+                                               rm 
"${ED}"$(get_xclibdir)/*$(get_libname) || die "removing symlinks in incorrect 
location failed"
                                        fi
                                )
                        fi

Reply via email to