mgorny      14/03/30 08:41:53

  Modified:             ChangeLog multilib-build.eclass
  Log:
  Support rewriting symlinks in MULTILIB_CHOST_TOOLS, bug #506062.

Revision  Changes    Path
1.1187               eclass/ChangeLog

file : 
http://sources.gentoo.org/viewvc.cgi/gentoo-x86/eclass/ChangeLog?rev=1.1187&view=markup
plain: 
http://sources.gentoo.org/viewvc.cgi/gentoo-x86/eclass/ChangeLog?rev=1.1187&content-type=text/plain
diff : 
http://sources.gentoo.org/viewvc.cgi/gentoo-x86/eclass/ChangeLog?r1=1.1186&r2=1.1187

Index: ChangeLog
===================================================================
RCS file: /var/cvsroot/gentoo-x86/eclass/ChangeLog,v
retrieving revision 1.1186
retrieving revision 1.1187
diff -u -r1.1186 -r1.1187
--- ChangeLog   29 Mar 2014 16:06:44 -0000      1.1186
+++ ChangeLog   30 Mar 2014 08:41:53 -0000      1.1187
@@ -1,6 +1,9 @@
 # ChangeLog for eclass directory
 # Copyright 1999-2014 Gentoo Foundation; Distributed under the GPL v2
-# $Header: /var/cvsroot/gentoo-x86/eclass/ChangeLog,v 1.1186 2014/03/29 
16:06:44 ulm Exp $
+# $Header: /var/cvsroot/gentoo-x86/eclass/ChangeLog,v 1.1187 2014/03/30 
08:41:53 mgorny Exp $
+
+  30 Mar 2014; Michał Górny <[email protected]> multilib-build.eclass:
+  Support rewriting symlinks in MULTILIB_CHOST_TOOLS, bug #506062.
 
   29 Mar 2014; Ulrich Müller <[email protected]> check-reqs.eclass:
   Move test for MERGE_TYPE from check-reqs_pkg_setup() to check-reqs_run().



1.29                 eclass/multilib-build.eclass

file : 
http://sources.gentoo.org/viewvc.cgi/gentoo-x86/eclass/multilib-build.eclass?rev=1.29&view=markup
plain: 
http://sources.gentoo.org/viewvc.cgi/gentoo-x86/eclass/multilib-build.eclass?rev=1.29&content-type=text/plain
diff : 
http://sources.gentoo.org/viewvc.cgi/gentoo-x86/eclass/multilib-build.eclass?r1=1.28&r2=1.29

Index: multilib-build.eclass
===================================================================
RCS file: /var/cvsroot/gentoo-x86/eclass/multilib-build.eclass,v
retrieving revision 1.28
retrieving revision 1.29
diff -u -r1.28 -r1.29
--- multilib-build.eclass       29 Mar 2014 03:00:44 -0000      1.28
+++ multilib-build.eclass       30 Mar 2014 08:41:53 -0000      1.29
@@ -1,6 +1,6 @@
 # Copyright 1999-2014 Gentoo Foundation
 # Distributed under the terms of the GNU General Public License v2
-# $Header: /var/cvsroot/gentoo-x86/eclass/multilib-build.eclass,v 1.28 
2014/03/29 03:00:44 vapier Exp $
+# $Header: /var/cvsroot/gentoo-x86/eclass/multilib-build.eclass,v 1.29 
2014/03/30 08:41:53 mgorny Exp $
 
 # @ECLASS: multilib-build.eclass
 # @MAINTAINER:
@@ -246,8 +246,13 @@
 # and the native variant will be symlinked to the generic name.
 #
 # This variable has to be a bash array. Paths shall be relative to
-# installation root (${ED}), and name regular files. Recursive wrapping
-# is not supported.
+# installation root (${ED}), and name regular files or symbolic
+# links to regular files. Recursive wrapping is not supported.
+#
+# If symbolic link is passed, both symlink path and symlink target
+# will be changed. As a result, the symlink target is expected
+# to be wrapped as well (either by listing in MULTILIB_CHOST_TOOLS
+# or externally).
 #
 # Please note that tool wrapping is *discouraged*. It is preferred to
 # install pkg-config files for each ABI, and require reverse
@@ -374,6 +379,18 @@
                local dir=${f%/*}
                local fn=${f##*/}
 
+               if [[ -L ${root}/${f} ]]; then
+                       # rewrite the symlink target
+                       local target=$(readlink "${root}/${f}")
+                       local target_dir
+                       local target_fn=${target##*/}
+
+                       [[ ${target} == */* ]] && target_dir=${target%/*}
+
+                       ln -f -s 
"${target_dir+${target_dir}/}${CHOST}-${target_fn}" \
+                               "${root}/${f}" || die
+               fi
+
                mv "${root}/${f}" "${root}/${dir}/${CHOST}-${fn}" || die
 
                # symlink the native one back




Reply via email to