blob: 232ec74a48b620c707a5e1a246d8182cd0e4cce9 (
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
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
|
# Copyright 1999-2026 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
inherit bash-completion-r1 cmake dot-a pam tmpfiles
MY_P=${PN}_${PV/_p/-}
DESCRIPTION="Utility to execute commands in a chroot environment"
HOMEPAGE="https://codeberg.org/shelter/reschroot"
SRC_URI="https://codeberg.org/shelter/reschroot/archive/release/re${P/%_p*}.tar.gz -> ${P/%_p*}.tar.gz
mirror://debian/pool/main/${PN::1}/${PN}/${MY_P}.debian.tar.xz"
S="${WORKDIR}/re${PN}"
LICENSE="GPL-3"
SLOT="0"
KEYWORDS="amd64 ~arm ~arm64 ~ppc64 ~riscv x86"
IUSE="btrfs +dchroot debug doc lvm nls pam test zfs"
RESTRICT="!test? ( test )"
COMMON_DEPEND="
dev-libs/boost:=
>=sys-apps/util-linux-2.16
btrfs? ( >=sys-fs/btrfs-progs-0.19-r2 )
lvm? ( sys-fs/lvm2 )
pam? ( sys-libs/pam )
zfs? ( sys-fs/zfs )
"
DEPEND="${COMMON_DEPEND}
app-arch/xz-utils
sys-apps/groff
doc? (
app-text/doxygen
media-gfx/graphviz
)
nls? (
>=app-text/po4a-0.40
sys-devel/gettext
)
test? ( >=dev-util/cppunit-1.10.0 )
"
#sys-apps/debianutils
RDEPEND="${COMMON_DEPEND}
dchroot? ( !sys-apps/dchroot )
nls? ( virtual/libintl )
"
PATCHES=(
"${FILESDIR}"/${PN}-1.6.13_p7-build-fixes.patch
# https://codeberg.org/shelter/reschroot/pulls/6
"${FILESDIR}"/${PN}-1.6.13-resize-reserve.patch
"${FILESDIR}"/${PN}-1.6.13_p2-boost-1.85.0.patch
"${FILESDIR}"/${PN}-1.6.13_p7-cmake4.patch # bug #953913
# https://codeberg.org/shelter/reschroot/issues/33
"${FILESDIR}"/${PN}-1.6.13_p7-boost-1.89.0.patch
)
src_unpack() {
unpack "${P/%_p*}".tar.gz
cd "${S}"
unpack ${MY_P}.debian.tar.xz
}
src_prepare() {
sed -i -e 's/warn(/message(WARNING /' man/CMakeLists.txt || die
eapply "${S}"/debian/patches/*.patch
cmake_src_prepare
}
src_configure() {
lto-guarantee-fat
local mycmakeargs=(
-Dbtrfs-snapshot=$(usex btrfs)
-Ddchroot=$(usex dchroot)
-Ddchroot-dsa=$(usex dchroot)
-Ddebug=$(usex debug)
-Ddoxygen=$(usex doc)
-Dlvm-snapshot=$(usex lvm)
-Dnls=$(usex nls)
-Dpam=$(usex pam)
-Dtest=$(usex test)
-Dzfs-snapshot=$(usex zfs)
-Dbash_completion_dir="$(get_bashcompdir)"
-DCMAKE_INSTALL_SYSCONFDIR="${EPREFIX}/etc"
-DCMAKE_INSTALL_LOCALSTATEDIR="${EPREFIX}/var"
-DSCHROOT_MOUNT_DIR="${EPREFIX}/run/${PN}/mount"
-DCMAKE_POLICY_DEFAULT_CMP0167="OLD" # FindBoost
-DBoost_NO_BOOST_CMAKE=ON # https://bugs.gentoo.org/791712 and https://bugs.gentoo.org/752120
)
if ! use nls; then
mycmakeargs+=(-DPO4A_EXECUTABLE=NOTFOUND)
fi
cmake_src_configure
}
src_compile() {
cmake_src_compile all $(usev doc)
}
src_test() {
if [[ ${EUID} -ne 0 ]]; then
ewarn "Disabling tests because you are not root"
return 0
fi
# -j1 to prevent race between test/setup-test-data and test/cleanup-test-data
cmake_src_test -j1
}
src_install() {
cmake_src_install
strip-lto-bytecode
# debian-stype PS1 for chroot
# checks for /etc/debian_chroot file, which is created by schroot
insinto /etc/bash/bashrc.d
doins "${FILESDIR}/schroot_prompt.sh"
# gentoo /var/tmp/portage handler
# e.g. portage.base.tmpdir=/var/tmp/portage in config file
# will use a subdirectory of hosts $PORTAGE_TMPDIR
exeinto /etc/schroot/setup.d
doexe "${FILESDIR}/11gentoo"
# support for zfs clone options.
# zfs.clone.options=com.sun:auto-snapshot=false
if use zfs; then
exeinto /etc/schroot/setup.d
doexe "${FILESDIR}/06zfscloneopts"
fi
keepdir /etc/schroot/chroot.d # bug 961345
keepdir /var/lib/schroot/{session,unpack,union/{overlay,underlay}}
docinto contrib/setup.d
dodoc contrib/setup.d/05customdir contrib/setup.d/09fsck contrib/setup.d/10mount-ssh
newdoc debian/schroot.NEWS NEWS.debian
newinitd "${FILESDIR}"/schroot.initd schroot
newconfd "${FILESDIR}"/schroot.confd schroot
newtmpfiles "${FILESDIR}"/schroot.tmpfilesd schroot.conf
if use doc; then
docinto html/sbuild
dodoc "${BUILD_DIR}"/doc/sbuild/html/*
docinto html/schroot
dodoc "${BUILD_DIR}"/doc/schroot/html/*
fi
if use pam; then
rm -f "${ED}"/etc/pam.d/schroot
pamd_mimic_system schroot auth account session
fi
}
pkg_postinst() {
tmpfiles_process ${PN}.conf
}
|