blob: c898dd04a8452a7101c13f50924949117f63bb94 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
|
# Copyright 1999-2017 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
# $Id$
EAPI=3
inherit eutils toolchain-funcs multilib prefix flag-o-matic user
# last part in e.g. 1.12.14.1704
PVER=1709
DESCRIPTION="Baselayout for Gentoo Prefix installs"
HOMEPAGE="https://prefix.gentoo.org/"
SRC_URI="https://dev.gentoo.org/~grobian/distfiles/${P}.${PVER}.tar.bz2"
LICENSE="GPL-2"
SLOT="0"
KEYWORDS="~ppc-aix ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~m68k-mint ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris ~x86-winnt"
IUSE="prefix-chaining"
DEPEND=">=sys-apps/portage-2.2.01"
RDEPEND=">=sys-libs/readline-5.0-r1
>=app-shells/bash-3.1_p7
>=sys-apps/coreutils-5.2.1
kernel_Darwin? ( sys-process/pidof-bsd )
kernel_FreeBSD? ( sys-process/pidof-bsd )"
S=${WORKDIR}/${P}.${PVER}
src_prepare() {
if use prefix-chaining; then
epatch "${S}"/baselayout-${PV}-prefix-chaining.patch
# need to set the PKG_CONFIG_PATH globally for this prefix, when
# chaining is enabled, since pkg-config may not be installed locally,
# but still .pc files should be found for all RDEPENDable prefixes in
# the chain.
echo "PKG_CONFIG_PATH=\"${EPREFIX}/usr/lib/pkgconfig:${EPREFIX}/usr/share/pkgconfig\"" >> "${S}"/etc/env.d/00basic
fi
cd "${S}"
eprefixify \
etc/env.d/00basic \
etc/profile
# add the host OS MANPATH
echo 'MANPATH="/usr/share/man"' > etc/env.d/99basic || die "can't make file"
# avoid a re-automake run
touch -r gnulib/configure.ac gnulib/Makefile.in gnulib/aclocal.m4 || die
}
src_configure() {
cd gnulib || die
default
}
src_compile() {
# build gnulib first
pushd gnulib > /dev/null || die
emake || die "Cannot build gnulib"
popd > /dev/null
# use gnulib (buildsystem doesn't respect cppflags)
append-cflags -I../gnulib -I../gnulib/gllib
append-ldflags -L../gnulib/gllib
append-libs gnu
local libdir="lib"
[[ ${SYMLINK_LIB} == "yes" ]] && libdir=$(get_abi_LIBDIR "${DEFAULT_ABI}")
}
src_install() {
local dir libdirs libdirs_env rcscripts_dir
dodir /etc
dodir /etc/env.d
dodir /etc/init.d # .keep file might mess up init.d stuff
libdirs=$(get_all_libdirs)
: ${libdirs:=lib} # it isn't that we don't trust multilib.eclass...
rcscripts_dir="/lib/rcscripts"
for dir in ${libdirs}; do
libdirs_env=${libdirs_env:+$libdirs_env:}/${dir}:/usr/${dir}:/usr/local/${dir}
[[ ${dir} == "lib" && ${SYMLINK_LIB} == "yes" ]] && continue
dodir /"${dir}"
dodir /usr/"${dir}"
dodir /usr/local/"${dir}"
done
# Ugly compatibility with stupid ebuilds and old profiles symlinks
if [[ ${SYMLINK_LIB} == "yes" ]] ; then
rm -r "${ED}"/{lib,usr/lib,usr/local/lib} &> /dev/null
dosym $(get_abi_LIBDIR ${DEFAULT_ABI}) /lib
dosym $(get_abi_LIBDIR ${DEFAULT_ABI}) /usr/lib
dosym $(get_abi_LIBDIR ${DEFAULT_ABI}) /usr/local/lib
fi
# FHS compatibility symlinks stuff
dosym /var/tmp /usr/tmp
# rc-scripts version for testing of features that *should* be present
echo "Gentoo Prefix Base System version ${PV}" > ${ED}/etc/gentoo-release
# get the basic stuff in there
doenvd "${S}"/etc/env.d/* || die "doenvd"
# copy the profile
cp "${S}"/etc/profile "${ED}"/etc/profile
# Setup files in /sbin
#
cd "${S}"/sbin
into /
# These moved from /etc/init.d/ to /sbin to help newb systems
# from breaking
#
# Install baselayout utilities
#
local libdir="lib"
[[ ${SYMLINK_LIB} == "yes" ]] && libdir=$(get_abi_LIBDIR "${DEFAULT_ABI}")
}
pkg_postinst() {
if [[ ${EUID} == 0 ]] ; then
# setup portage user, such that things that require root privs
# don't fail, bug #321623
enewgroup portage 250
enewuser portage 250 -1 "${EPREFIX}"/var/tmp/portage portage
fi
# This is also written in src_install (so it's in CONTENTS), but
# write it here so that the new version is immediately in the file
# (without waiting for the user to do etc-update)
rm -f "${EROOT}"/etc/._cfg????_gentoo-release
echo "Gentoo Prefix Base System version ${PV}" > "${EROOT}"/etc/gentoo-release
echo
einfo "Please be sure to update all pending '._cfg*' files in /etc,"
einfo "else things might break! You can use 'etc-update'"
einfo "to accomplish this:"
einfo
einfo " # etc-update"
echo
}
|