Gentoo Archives: gentoo-commits

From: William Hubbs <williamh@g.o>
To: gentoo-commits@l.g.o
Subject: [gentoo-commits] repo/gentoo:master commit in: sys-apps/baselayout/
Date: Fri, 17 Nov 2017 22:23:47
Message-Id: 1510957359.fae21fc0b18fba048809c848b11b163229c02dfe.williamh@gentoo
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>