Use https by default
[gentoo.git] / sys-apps / sandbox / sandbox-2.6-r1.ebuild
1 # Copyright 1999-2015 Gentoo Foundation
2 # Distributed under the terms of the GNU General Public License v2
3 # $Id$
4
5 #
6 # don't monkey with this ebuild unless contacting portage devs.
7 # period.
8 #
9
10 inherit eutils flag-o-matic toolchain-funcs multilib unpacker multiprocessing
11
12 DESCRIPTION="sandbox'd LD_PRELOAD hack"
13 HOMEPAGE="https://www.gentoo.org/proj/en/portage/sandbox/"
14 SRC_URI="mirror://gentoo/${P}.tar.xz
15         https://dev.gentoo.org/~vapier/dist/${P}.tar.xz"
16
17 LICENSE="GPL-2"
18 SLOT="0"
19 KEYWORDS="alpha amd64 arm arm64 hppa ia64 m68k ~mips ppc ppc64 s390 sh sparc x86 ~sparc-fbsd -x86-fbsd"
20 IUSE="multilib"
21
22 DEPEND="app-arch/xz-utils
23         >=app-misc/pax-utils-0.1.19" #265376
24 RDEPEND=""
25
26 EMULTILIB_PKG="true"
27 has sandbox_death_notice ${EBUILD_DEATH_HOOKS} || EBUILD_DEATH_HOOKS="${EBUILD_DEATH_HOOKS} sandbox_death_notice"
28
29 sandbox_death_notice() {
30         ewarn "If configure failed with a 'cannot run C compiled programs' error, try this:"
31         ewarn "FEATURES=-sandbox emerge sandbox"
32 }
33
34 sb_get_install_abis() { use multilib && get_install_abis || echo ${ABI:-default} ; }
35
36 sb_foreach_abi() {
37         local OABI=${ABI}
38         for ABI in $(sb_get_install_abis) ; do
39                 cd "${WORKDIR}/build-${ABI}"
40                 einfo "Running $1 for ABI=${ABI}..."
41                 "$@"
42         done
43         ABI=${OABI}
44 }
45
46 src_unpack() {
47         unpacker
48         cd "${S}"
49         epatch "${FILESDIR}"/${P}-trace-hppa.patch #425062
50         epatch "${FILESDIR}"/${P}-log-var.patch
51         epatch "${FILESDIR}"/${P}-static-close-fd.patch #364877
52         epatch "${FILESDIR}"/${P}-desktop.patch #443672
53         epatch "${FILESDIR}"/${P}-open-nofollow.patch #413441
54         epatch "${FILESDIR}"/${P}-check-empty-paths-at.patch #346929
55         epatch "${FILESDIR}"/${P}-no-pch.patch #425524
56         epatch "${FILESDIR}"/${P}-gcc-5.patch
57         epatch_user
58 }
59
60 sb_configure() {
61         mkdir "${WORKDIR}/build-${ABI}"
62         cd "${WORKDIR}/build-${ABI}"
63
64         use multilib && multilib_toolchain_setup ${ABI}
65
66         einfo "Configuring sandbox for ABI=${ABI}..."
67         ECONF_SOURCE="../${P}/" \
68         econf ${myconf} || die
69 }
70
71 sb_compile() {
72         emake || die
73 }
74
75 src_compile() {
76         filter-lfs-flags #90228
77
78         # Run configures in parallel!
79         multijob_init
80         local OABI=${ABI}
81         for ABI in $(sb_get_install_abis) ; do
82                 multijob_child_init sb_configure
83         done
84         ABI=${OABI}
85         multijob_finish
86
87         sb_foreach_abi sb_compile
88 }
89
90 sb_test() {
91         emake check TESTSUITEFLAGS="--jobs=$(makeopts_jobs)" || die
92 }
93
94 src_test() {
95         sb_foreach_abi sb_test
96 }
97
98 sb_install() {
99         emake DESTDIR="${D}" install || die
100         insinto /etc/sandbox.d #333131
101         doins etc/sandbox.d/00default || die
102 }
103
104 src_install() {
105         sb_foreach_abi sb_install
106
107         doenvd "${FILESDIR}"/09sandbox
108
109         keepdir /var/log/sandbox
110         fowners root:portage /var/log/sandbox
111         fperms 0770 /var/log/sandbox
112
113         cd "${S}"
114         dodoc AUTHORS ChangeLog* NEWS README
115 }
116
117 pkg_preinst() {
118         chown root:portage "${D}"/var/log/sandbox
119         chmod 0770 "${D}"/var/log/sandbox
120
121         local old=$(find "${ROOT}"/lib* -maxdepth 1 -name 'libsandbox*')
122         if [[ -n ${old} ]] ; then
123                 elog "Removing old sandbox libraries for you:"
124                 elog ${old//${ROOT}}
125                 find "${ROOT}"/lib* -maxdepth 1 -name 'libsandbox*' -exec rm -fv {} \;
126         fi
127 }
128
129 pkg_postinst() {
130         chmod 0755 "${ROOT}"/etc/sandbox.d #265376
131 }