1 |
commit: 90691e509210bce88c715022eaba72fac5cf76b5 |
2 |
Author: Fabian Groffen <grobian <AT> gentoo <DOT> org> |
3 |
AuthorDate: Fri Jun 20 18:50:13 2014 +0000 |
4 |
Commit: Fabian Groffen <grobian <AT> gentoo <DOT> org> |
5 |
CommitDate: Fri Jun 20 18:50:13 2014 +0000 |
6 |
URL: http://git.overlays.gentoo.org/gitweb/?p=proj/portage.git;a=commit;h=90691e50 |
7 |
|
8 |
install_qa_check_macho: introduce QA_INSTALL_NAME |
9 |
|
10 |
Allow certain install_names to be ignored when checking for validity. |
11 |
This is useful for libraries that will be managed by tools like eselect. |
12 |
|
13 |
--- |
14 |
bin/misc-functions.sh | 22 +++++++++++++++++++++- |
15 |
man/ebuild.5 | 5 +++++ |
16 |
2 files changed, 26 insertions(+), 1 deletion(-) |
17 |
|
18 |
diff --git a/bin/misc-functions.sh b/bin/misc-functions.sh |
19 |
index 9ce9df6..6088966 100644 |
20 |
--- a/bin/misc-functions.sh |
21 |
+++ b/bin/misc-functions.sh |
22 |
@@ -1098,7 +1098,27 @@ install_qa_check_macho() { |
23 |
fi |
24 |
done |
25 |
fi |
26 |
- if [[ ! -e ${D}${install_name} ]] ; then |
27 |
+ |
28 |
+ ignore= |
29 |
+ qa_var="QA_INSTALL_NAME_${ARCH/-/_}" |
30 |
+ eval "[[ -n \${!qa_var} ]] && QA_INSTALL_NAME=(\"\${${qa_var}[@]}\")" |
31 |
+ if [[ ${#QA_INSTALL_NAME[@]} -gt 1 ]] ; then |
32 |
+ for x in "${QA_INSTALL_NAME[@]}" ; do |
33 |
+ [[ ${EPREFIX}/${x#/} == ${install_name} ]] && \ |
34 |
+ ignore=true |
35 |
+ done |
36 |
+ else |
37 |
+ local shopts=$- |
38 |
+ set -o noglob |
39 |
+ for x in ${QA_INSTALL_NAME} ; do |
40 |
+ [[ ${EPREFIX}/${x#/} == ${install_name} ]] && \ |
41 |
+ ignore=true |
42 |
+ done |
43 |
+ set +o noglob |
44 |
+ set -${shopts} |
45 |
+ fi |
46 |
+ |
47 |
+ if [[ -z ${ignore} && ! -e ${D}${install_name} ]] ; then |
48 |
eqawarn "QA Notice: invalid self-reference install_name ${install_name} in ${obj}" |
49 |
# remember we are in an implicit subshell, that's |
50 |
# why we touch a file here ... ideally we should be |
51 |
|
52 |
diff --git a/man/ebuild.5 b/man/ebuild.5 |
53 |
index 89bd6a2..ad6bf40 100644 |
54 |
--- a/man/ebuild.5 |
55 |
+++ b/man/ebuild.5 |
56 |
@@ -799,6 +799,11 @@ shared libraries that have SONAMEs but should not have a corresponding SONAME |
57 |
symlink in the same directory. The paths may contain regular expressions |
58 |
with escape\-quoted special characters. |
59 |
.TP |
60 |
+.B QA_INSTALL_NAME |
61 |
+This should contain a list of install_names (excluding leading EPREFIX |
62 |
+or EROOT) of shared libraries that are allowed, despite pointing to |
63 |
+something not available in the image directory. |
64 |
+.TP |
65 |
.B QA_AM_MAINTAINER_MODE |
66 |
This should contain a list of lines containing automake missing \-\-run |
67 |
commands. The lines may contain regular expressions with escape\-quoted |