blob: 7fa9050db4c77f2bbe0d546afa8527e32ae79b3f (
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
|
# Copyright 1999-2012 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
# $Header: /var/cvsroot/gentoo-x86/sys-apps/sandbox/sandbox-2.6.ebuild,v 1.2 2012/07/06 19:53:10 vapier Exp $
#
# don't monkey with this ebuild unless contacting portage devs.
# period.
#
inherit eutils flag-o-matic toolchain-funcs multilib unpacker multiprocessing prefix
DESCRIPTION="sandbox'd LD_PRELOAD hack"
HOMEPAGE="http://www.gentoo.org/"
SRC_URI="mirror://gentoo/${P}.tar.xz
http://dev.gentoo.org/~vapier/dist/${P}.tar.xz"
LICENSE="GPL-2"
SLOT="0"
KEYWORDS="~x86-freebsd ~amd64-linux ~ia64-linux ~x86-linux"
IUSE="multilib"
DEPEND="app-arch/xz-utils
>=app-misc/pax-utils-0.1.19" #265376
RDEPEND=""
EMULTILIB_PKG="true"
has sandbox_death_notice ${EBUILD_DEATH_HOOKS} || EBUILD_DEATH_HOOKS="${EBUILD_DEATH_HOOKS} sandbox_death_notice"
sandbox_death_notice() {
ewarn "If configure failed with a 'cannot run C compiled programs' error, try this:"
ewarn "FEATURES=-sandbox emerge sandbox"
}
sb_get_install_abis() { use multilib && get_install_abis || echo ${ABI:-default} ; }
src_unpack() {
unpacker_src_unpack
cd "${S}"
epatch "${FILESDIR}"/${PN}-2.2-prefix.patch
}
sb_foreach_abi() {
# enable usage of absolute libpath in prefix
use prefix && append-flags -DGENTOO_PREFIX
local OABI=${ABI}
for ABI in $(sb_get_install_abis) ; do
cd "${WORKDIR}/build-${ABI}"
einfo "Running $1 for ABI=${ABI}..."
"$@"
done
ABI=${OABI}
}
src_unpack() {
unpacker
cd "${S}"
epatch "${FILESDIR}"/${P}-trace-hppa.patch #425062
}
sb_configure() {
mkdir "${WORKDIR}/build-${ABI}"
cd "${WORKDIR}/build-${ABI}"
use multilib && multilib_toolchain_setup ${ABI}
einfo "Configuring sandbox for ABI=${ABI}..."
ECONF_SOURCE="../${P}/" \
econf ${myconf} || die
}
sb_compile() {
emake || die
}
src_compile() {
filter-lfs-flags #90228
# Run configures in parallel!
multijob_init
local OABI=${ABI}
for ABI in $(sb_get_install_abis) ; do
multijob_child_init sb_configure
done
ABI=${OABI}
multijob_finish
sb_foreach_abi sb_compile
}
sb_test() {
emake check TESTSUITEFLAGS="--jobs=$(makeopts_jobs)" || die
}
src_test() {
sb_foreach_abi sb_test
}
sb_install() {
emake DESTDIR="${D}" install || die
insinto /etc/sandbox.d #333131
doins etc/sandbox.d/00default || die
}
src_install() {
sb_foreach_abi sb_install
doenvd "${FILESDIR}"/09sandbox
keepdir /var/log/sandbox
use prefix || fowners root:portage /var/log/sandbox
fperms 0770 /var/log/sandbox
cd "${S}"
dodoc AUTHORS ChangeLog* NEWS README
}
pkg_preinst() {
use prefix || chown root:portage "${ED}"/var/log/sandbox
chmod 0770 "${ED}"/var/log/sandbox
local old=$(find "${EROOT}"/lib* -maxdepth 1 -name 'libsandbox*')
if [[ -n ${old} ]] ; then
elog "Removing old sandbox libraries for you:"
elog ${old//${EROOT}}
find "${EROOT}"/lib* -maxdepth 1 -name 'libsandbox*' -exec rm -fv {} \;
fi
}
pkg_postinst() {
chmod 0755 "${EROOT}"/etc/sandbox.d #265376
}
|