1 |
commit: fae21fc0b18fba048809c848b11b163229c02dfe |
2 |
Author: William Hubbs <williamh <AT> gentoo <DOT> org> |
3 |
AuthorDate: Fri Nov 17 22:22:00 2017 +0000 |
4 |
Commit: William Hubbs <williamh <AT> gentoo <DOT> org> |
5 |
CommitDate: Fri Nov 17 22:22:39 2017 +0000 |
6 |
URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=fae21fc0 |
7 |
|
8 |
sys-apps/baselayout: add support for usr merge to live for testing |
9 |
|
10 |
Package-Manager: Portage-2.3.13, Repoman-2.3.3 |
11 |
|
12 |
sys-apps/baselayout/baselayout-9999.ebuild | 39 ++++++++++++++++++++++++------ |
13 |
sys-apps/baselayout/metadata.xml | 3 +++ |
14 |
2 files changed, 34 insertions(+), 8 deletions(-) |
15 |
|
16 |
diff --git a/sys-apps/baselayout/baselayout-9999.ebuild b/sys-apps/baselayout/baselayout-9999.ebuild |
17 |
index 98795ba6d00..7e43ea7af59 100644 |
18 |
--- a/sys-apps/baselayout/baselayout-9999.ebuild |
19 |
+++ b/sys-apps/baselayout/baselayout-9999.ebuild |
20 |
@@ -3,7 +3,7 @@ |
21 |
|
22 |
EAPI=6 |
23 |
|
24 |
-inherit eutils multilib versionator prefix |
25 |
+inherit multilib versionator prefix |
26 |
|
27 |
DESCRIPTION="Filesystem baselayout and init scripts" |
28 |
HOMEPAGE="https://www.gentoo.org/" |
29 |
@@ -18,7 +18,7 @@ fi |
30 |
|
31 |
LICENSE="GPL-2" |
32 |
SLOT="0" |
33 |
-IUSE="build kernel_linux" |
34 |
+IUSE="build usrmerge kernel_linux" |
35 |
|
36 |
pkg_setup() { |
37 |
multilib_layout |
38 |
@@ -26,15 +26,22 @@ pkg_setup() { |
39 |
|
40 |
# Create our multilib dirs - the Makefile has no knowledge of this |
41 |
multilib_layout() { |
42 |
- local libdir libdirs=$(get_all_libdirs) def_libdir=$(get_abi_LIBDIR $DEFAULT_ABI) |
43 |
+ local def_libdir libdir libdirs |
44 |
+ def_libdir=$(get_abi_LIBDIR $DEFAULT_ABI) |
45 |
+ libdirs=$(get_all_libdirs) |
46 |
: ${libdirs:=lib} # it isn't that we don't trust multilib.eclass... |
47 |
|
48 |
- [ -z "${def_libdir}" ] && die "your DEFAULT_ABI=$DEFAULT_ABI appears to be invalid" |
49 |
+ [ -z "${def_libdir}" ] && |
50 |
+ die "your DEFAULT_ABI=$DEFAULT_ABI appears to be invalid" |
51 |
|
52 |
# figure out which paths should be symlinks and which should be directories |
53 |
local dirs syms exp d |
54 |
for libdir in ${libdirs} ; do |
55 |
- exp=( {,usr/,usr/local/}${libdir} ) |
56 |
+ if ! use usrmerge; then |
57 |
+ exp=( {,usr/,usr/local/}${libdir} ) |
58 |
+ else |
59 |
+ exp=( {usr/,usr/local/}${libdir} ) |
60 |
+ fi |
61 |
for d in "${exp[@]}" ; do |
62 |
# most things should be dirs |
63 |
if [ "${SYMLINK_LIB}" = "yes" ] && [ "${libdir}" = "lib" ] ; then |
64 |
@@ -56,8 +63,13 @@ multilib_layout() { |
65 |
|
66 |
# setup symlinks and dirs where we expect them to be; do not migrate |
67 |
# data ... just fall over in that case. |
68 |
- local prefix |
69 |
- for prefix in "${EROOT}"{,usr/,usr/local/} ; do |
70 |
+ local prefix prefix_lst |
71 |
+ if ! use usrmerge; then |
72 |
+ prefix_lst="${EROOT}"{,usr/,usr/local/} |
73 |
+ else |
74 |
+ prefix_lst="${EROOT}"{usr/,usr/local/} |
75 |
+ fi |
76 |
+ for prefix in "${prefix_lst}"; do |
77 |
if [ "${SYMLINK_LIB}" = yes ] ; then |
78 |
# we need to make sure "lib" points to the native libdir |
79 |
if [ -h "${prefix}lib" ] ; then |
80 |
@@ -115,6 +127,13 @@ multilib_layout() { |
81 |
fi |
82 |
fi |
83 |
done |
84 |
+ if use usrmerge; then |
85 |
+ for libdir in ${libdirs}; do |
86 |
+ if [[ ! -e "${EROOT}${libdir}" ]]; then |
87 |
+ ln -s usr/"${libdir}" "${EROOT}${libdir}" |
88 |
+ fi |
89 |
+ done |
90 |
+ fi |
91 |
} |
92 |
|
93 |
pkg_preinst() { |
94 |
@@ -135,7 +154,11 @@ pkg_preinst() { |
95 |
# Also, we cannot reference $S as binpkg will break so we do this. |
96 |
multilib_layout |
97 |
if use build ; then |
98 |
- emake -C "${ED}/usr/share/${PN}" DESTDIR="${EROOT}" layout || die |
99 |
+ if ! use usrmerge; then |
100 |
+ emake -C "${ED}/usr/share/${PN}" DESTDIR="${EROOT}" layout |
101 |
+ else |
102 |
+ emake -C "${ED}/usr/share/${PN}" DESTDIR="${EROOT}" layout-usrmerge |
103 |
+ fi |
104 |
fi |
105 |
rm -f "${ED}"/usr/share/${PN}/Makefile |
106 |
} |
107 |
|
108 |
diff --git a/sys-apps/baselayout/metadata.xml b/sys-apps/baselayout/metadata.xml |
109 |
index 53e04953d60..452b0130466 100644 |
110 |
--- a/sys-apps/baselayout/metadata.xml |
111 |
+++ b/sys-apps/baselayout/metadata.xml |
112 |
@@ -9,4 +9,7 @@ |
113 |
<email>base-system@g.o</email> |
114 |
<name>Gentoo Base System</name> |
115 |
</maintainer> |
116 |
+<use> |
117 |
+ <flag name="usrmerge">Activate the /usr merge when stages are built</flag> |
118 |
+</use> |
119 |
</pkgmetadata> |