1 |
commit: c7ea8556fef6dcd2b7890e478bdfb3920e5a332a |
2 |
Author: Mike Gilbert <floppym <AT> gentoo <DOT> org> |
3 |
AuthorDate: Wed Apr 29 16:25:37 2020 +0000 |
4 |
Commit: Mike Gilbert <floppym <AT> gentoo <DOT> org> |
5 |
CommitDate: Wed Apr 29 16:25:37 2020 +0000 |
6 |
URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=c7ea8556 |
7 |
|
8 |
sys-apps/util-linux: backport hwclock fix for glibc-2.31 |
9 |
|
10 |
Closes: https://bugs.gentoo.org/720006 |
11 |
Signed-off-by: Mike Gilbert <floppym <AT> gentoo.org> |
12 |
|
13 |
.../util-linux-2.35.1-hwclock-glibc-2.31.patch | 165 +++++++++++ |
14 |
....35.1-r1.ebuild => util-linux-2.35.1-r2.ebuild} | 1 + |
15 |
sys-apps/util-linux/util-linux-2.35.1.ebuild | 314 --------------------- |
16 |
3 files changed, 166 insertions(+), 314 deletions(-) |
17 |
|
18 |
diff --git a/sys-apps/util-linux/files/util-linux-2.35.1-hwclock-glibc-2.31.patch b/sys-apps/util-linux/files/util-linux-2.35.1-hwclock-glibc-2.31.patch |
19 |
new file mode 100644 |
20 |
index 00000000000..c8b5cf76a23 |
21 |
--- /dev/null |
22 |
+++ b/sys-apps/util-linux/files/util-linux-2.35.1-hwclock-glibc-2.31.patch |
23 |
@@ -0,0 +1,165 @@ |
24 |
+From cd781c405be82540484da3bfe3d3f17a39b8eb5c Mon Sep 17 00:00:00 2001 |
25 |
+From: J William Piggott <elseifthen@×××.com> |
26 |
+Date: Fri, 21 Feb 2020 20:03:47 -0500 |
27 |
+Subject: hwclock: make glibc 2.31 compatible |
28 |
+ |
29 |
+______________________________________________________ |
30 |
+GNU C Library NEWS -- history of user-visible changes. |
31 |
+Version 2.31 |
32 |
+Deprecated and removed features, and other changes affecting compatibility: |
33 |
+ |
34 |
+* The settimeofday function can still be used to set a system-wide time |
35 |
+ zone when the operating system supports it. This is because the Linux |
36 |
+ kernel reused the API, on some architectures, to describe a system-wide |
37 |
+ time-zone-like offset between the software clock maintained by the kernel, |
38 |
+ and the "RTC" clock that keeps time when the system is shut down. |
39 |
+ |
40 |
+ However, to reduce the odds of this offset being set by accident, |
41 |
+ settimeofday can no longer be used to set the time and the offset |
42 |
+ simultaneously. If both of its two arguments are non-null, the call |
43 |
+ will fail (setting errno to EINVAL). |
44 |
+ |
45 |
+ Callers attempting to set this offset should also be prepared for the call |
46 |
+ to fail and set errno to ENOSYS; this already happens on the Hurd and on |
47 |
+ some Linux architectures. The Linux kernel maintainers are discussing a |
48 |
+ more principled replacement for the reused API. After a replacement |
49 |
+ becomes available, we will change settimeofday to fail with ENOSYS on all |
50 |
+ platforms when its 'tzp' argument is not a null pointer. |
51 |
+ |
52 |
+ settimeofday itself is obsolescent according to POSIX. Programs that set |
53 |
+ the system time should use clock_settime and/or the adjtime family of |
54 |
+ functions instead. We may cease to make settimeofday available to newly |
55 |
+ linked binaries after there is a replacement for Linux's time-zone-like |
56 |
+ offset API. |
57 |
+______________________________________________________ |
58 |
+ |
59 |
+hwclock(8) had one settimeofday(2) call where both args were set for |
60 |
+--hctosys when the RTC was ticking UTC. This allowed setting the system |
61 |
+time, timezone, and locking the warp_clock function with a single call. |
62 |
+That operation now takes 3 calls of settimeofday(2). |
63 |
+ |
64 |
+Although this common operation now takes three calls, the overall logic |
65 |
+for the set_system_clock() function was simplified. |
66 |
+ |
67 |
+Co-Author: Karel Zak <kzak@××××××.com> |
68 |
+Signed-off-by: J William Piggott <elseifthen@×××.com> |
69 |
+--- |
70 |
+ sys-utils/hwclock.c | 71 ++++++++++++++++++++++++++++------------------------- |
71 |
+ 1 file changed, 37 insertions(+), 34 deletions(-) |
72 |
+ |
73 |
+diff --git a/sys-utils/hwclock.c b/sys-utils/hwclock.c |
74 |
+index e736da717..1191a8571 100644 |
75 |
+--- a/sys-utils/hwclock.c |
76 |
++++ b/sys-utils/hwclock.c |
77 |
+@@ -643,28 +643,28 @@ display_time(struct timeval hwctime) |
78 |
+ * tz.tz_minuteswest argument and sets PCIL (see below). At boot settimeofday(2) |
79 |
+ * has one-shot access to this function as shown in the table below. |
80 |
+ * |
81 |
+- * +-------------------------------------------------------------------+ |
82 |
+- * | settimeofday(tv, tz) | |
83 |
+- * |-------------------------------------------------------------------| |
84 |
+- * | Arguments | System Time | PCIL | | warp_clock | |
85 |
+- * | tv | tz | set | warped | set | firsttime | locked | |
86 |
+- * |---------|---------|---------------|------|-----------|------------| |
87 |
+- * | pointer | NULL | yes | no | no | 1 | no | |
88 |
+- * | pointer | pointer | yes | no | no | 0 | yes | |
89 |
+- * | NULL | ptr2utc | no | no | no | 0 | yes | |
90 |
+- * | NULL | pointer | no | yes | yes | 0 | yes | |
91 |
+- * +-------------------------------------------------------------------+ |
92 |
++ * +-------------------------------------------------------------------------+ |
93 |
++ * | settimeofday(tv, tz) | |
94 |
++ * |-------------------------------------------------------------------------| |
95 |
++ * | Arguments | System Time | TZ | PCIL | | warp_clock | |
96 |
++ * | tv | tz | set | warped | set | set | firsttime | locked | |
97 |
++ * |---------|---------|---------------|-----|------|-----------|------------| |
98 |
++ * | pointer | NULL | yes | no | no | no | 1 | no | |
99 |
++ * | NULL | ptr2utc | no | no | yes | no | 0 | yes | |
100 |
++ * | NULL | pointer | no | yes | yes | yes | 0 | yes | |
101 |
++ * +-------------------------------------------------------------------------+ |
102 |
+ * ptr2utc: tz.tz_minuteswest is zero (UTC). |
103 |
+ * PCIL: persistent_clock_is_local, sets the "11 minute mode" timescale. |
104 |
+ * firsttime: locks the warp_clock function (initialized to 1 at boot). |
105 |
++ * Since glibc v2.31 settimeofday() will fail if both args are non NULL |
106 |
+ * |
107 |
+ * +---------------------------------------------------------------------------+ |
108 |
+ * | op | RTC scale | settimeofday calls | |
109 |
+ * |---------|-----------|-----------------------------------------------------| |
110 |
+ * | systz | Local | 1) warps system time*, sets PCIL* and kernel tz | |
111 |
+ * | systz | UTC | 1st) locks warp_clock* 2nd) sets kernel tz | |
112 |
+- * | hctosys | Local | 1st) sets PCIL* 2nd) sets system time and kernel tz | |
113 |
+- * | hctosys | UTC | 1) sets system time and kernel tz | |
114 |
++ * | hctosys | Local | 1st) sets PCIL* & kernel tz 2nd) sets system time | |
115 |
++ * | hctosys | UTC | 1st) locks warp* 2nd) sets tz 3rd) sets system time | |
116 |
+ * +---------------------------------------------------------------------------+ |
117 |
+ * * only on first call after boot |
118 |
+ */ |
119 |
+@@ -675,42 +675,45 @@ set_system_clock(const struct hwclock_control *ctl, |
120 |
+ struct tm broken; |
121 |
+ int minuteswest; |
122 |
+ int rc = 0; |
123 |
+- const struct timezone tz_utc = { 0 }; |
124 |
+ |
125 |
+ localtime_r(&newtime.tv_sec, &broken); |
126 |
+ minuteswest = -get_gmtoff(&broken) / 60; |
127 |
+ |
128 |
+ if (ctl->verbose) { |
129 |
+- if (ctl->hctosys && !ctl->universal) |
130 |
+- printf(_("Calling settimeofday(NULL, %d) to set " |
131 |
+- "persistent_clock_is_local.\n"), minuteswest); |
132 |
+- if (ctl->systz && ctl->universal) |
133 |
++ if (ctl->universal) { |
134 |
+ puts(_("Calling settimeofday(NULL, 0) " |
135 |
+- "to lock the warp function.")); |
136 |
++ "to lock the warp_clock function.")); |
137 |
++ if (!( ctl->universal && !minuteswest )) |
138 |
++ printf(_("Calling settimeofday(NULL, %d) " |
139 |
++ "to set the kernel timezone.\n"), |
140 |
++ minuteswest); |
141 |
++ } else |
142 |
++ printf(_("Calling settimeofday(NULL, %d) to warp " |
143 |
++ "System time, set PCIL and the kernel tz.\n"), |
144 |
++ minuteswest); |
145 |
++ |
146 |
+ if (ctl->hctosys) |
147 |
+- printf(_("Calling settimeofday(%ld.%06ld, %d)\n"), |
148 |
+- newtime.tv_sec, newtime.tv_usec, minuteswest); |
149 |
+- else { |
150 |
+- printf(_("Calling settimeofday(NULL, %d) "), minuteswest); |
151 |
+- if (ctl->universal) |
152 |
+- puts(_("to set the kernel timezone.")); |
153 |
+- else |
154 |
+- puts(_("to warp System time.")); |
155 |
+- } |
156 |
++ printf(_("Calling settimeofday(%ld.%06ld, NULL) " |
157 |
++ "to set the System time.\n"), |
158 |
++ newtime.tv_sec, newtime.tv_usec); |
159 |
+ } |
160 |
+ |
161 |
+ if (!ctl->testing) { |
162 |
++ const struct timezone tz_utc = { 0 }; |
163 |
+ const struct timezone tz = { minuteswest }; |
164 |
+ |
165 |
+- if (ctl->hctosys && !ctl->universal) /* set PCIL */ |
166 |
+- rc = settimeofday(NULL, &tz); |
167 |
+- if (ctl->systz && ctl->universal) /* lock warp_clock */ |
168 |
++ /* If UTC RTC: lock warp_clock and PCIL */ |
169 |
++ if (ctl->universal) |
170 |
+ rc = settimeofday(NULL, &tz_utc); |
171 |
+- if (!rc && ctl->hctosys) |
172 |
+- rc = settimeofday(&newtime, &tz); |
173 |
+- else if (!rc) |
174 |
++ |
175 |
++ /* Set kernel tz; if localtime RTC: warp_clock and set PCIL */ |
176 |
++ if (!rc && !( ctl->universal && !minuteswest )) |
177 |
+ rc = settimeofday(NULL, &tz); |
178 |
+ |
179 |
++ /* Set the System Clock */ |
180 |
++ if ((!rc || errno == ENOSYS) && ctl->hctosys) |
181 |
++ rc = settimeofday(&newtime, NULL); |
182 |
++ |
183 |
+ if (rc) { |
184 |
+ warn(_("settimeofday() failed")); |
185 |
+ return EXIT_FAILURE; |
186 |
+-- |
187 |
+cgit 1.2-0.3.lf.el7 |
188 |
+ |
189 |
|
190 |
diff --git a/sys-apps/util-linux/util-linux-2.35.1-r1.ebuild b/sys-apps/util-linux/util-linux-2.35.1-r2.ebuild |
191 |
similarity index 99% |
192 |
rename from sys-apps/util-linux/util-linux-2.35.1-r1.ebuild |
193 |
rename to sys-apps/util-linux/util-linux-2.35.1-r2.ebuild |
194 |
index c7848ba5518..68e7b84262b 100644 |
195 |
--- a/sys-apps/util-linux/util-linux-2.35.1-r1.ebuild |
196 |
+++ b/sys-apps/util-linux/util-linux-2.35.1-r2.ebuild |
197 |
@@ -83,6 +83,7 @@ S="${WORKDIR}/${MY_P}" |
198 |
PATCHES=( |
199 |
"${FILESDIR}"/util-linux-2.35.1-include_sys_types-header.patch |
200 |
"${FILESDIR}"/util-linux-2.35.1-cleanup-pidfd-include.patch |
201 |
+ "${FILESDIR}"/util-linux-2.35.1-hwclock-glibc-2.31.patch |
202 |
) |
203 |
|
204 |
src_prepare() { |
205 |
|
206 |
diff --git a/sys-apps/util-linux/util-linux-2.35.1.ebuild b/sys-apps/util-linux/util-linux-2.35.1.ebuild |
207 |
deleted file mode 100644 |
208 |
index 9153eb2da12..00000000000 |
209 |
--- a/sys-apps/util-linux/util-linux-2.35.1.ebuild |
210 |
+++ /dev/null |
211 |
@@ -1,314 +0,0 @@ |
212 |
-# Copyright 1999-2020 Gentoo Authors |
213 |
-# Distributed under the terms of the GNU General Public License v2 |
214 |
- |
215 |
-EAPI=7 |
216 |
- |
217 |
-PYTHON_COMPAT=( python3_{6,7,8} ) |
218 |
- |
219 |
-inherit toolchain-funcs libtool flag-o-matic bash-completion-r1 usr-ldscript \ |
220 |
- pam python-r1 multilib-minimal multiprocessing systemd |
221 |
- |
222 |
-MY_PV="${PV/_/-}" |
223 |
-MY_P="${PN}-${MY_PV}" |
224 |
- |
225 |
-if [[ ${PV} == 9999 ]] ; then |
226 |
- inherit git-r3 autotools |
227 |
- EGIT_REPO_URI="https://git.kernel.org/pub/scm/utils/util-linux/util-linux.git" |
228 |
-else |
229 |
- [[ "${PV}" = *_rc* ]] || \ |
230 |
- KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux" |
231 |
- SRC_URI="https://www.kernel.org/pub/linux/utils/util-linux/v${PV:0:4}/${MY_P}.tar.xz" |
232 |
-fi |
233 |
- |
234 |
-DESCRIPTION="Various useful Linux utilities" |
235 |
-HOMEPAGE="https://www.kernel.org/pub/linux/utils/util-linux/ https://github.com/karelzak/util-linux" |
236 |
- |
237 |
-LICENSE="GPL-2 GPL-3 LGPL-2.1 BSD-4 MIT public-domain" |
238 |
-SLOT="0" |
239 |
-IUSE="build caps +cramfs cryptsetup fdformat hardlink kill +logger ncurses nls pam python +readline selinux slang static-libs su +suid systemd test tty-helpers udev unicode userland_GNU" |
240 |
- |
241 |
-# Most lib deps here are related to programs rather than our libs, |
242 |
-# so we rarely need to specify ${MULTILIB_USEDEP}. |
243 |
-RDEPEND=" |
244 |
- virtual/libcrypt:= |
245 |
- caps? ( sys-libs/libcap-ng ) |
246 |
- cramfs? ( sys-libs/zlib:= ) |
247 |
- cryptsetup? ( sys-fs/cryptsetup ) |
248 |
- ncurses? ( >=sys-libs/ncurses-5.2-r2:0=[unicode?] ) |
249 |
- nls? ( virtual/libintl[${MULTILIB_USEDEP}] ) |
250 |
- pam? ( sys-libs/pam ) |
251 |
- python? ( ${PYTHON_DEPS} ) |
252 |
- readline? ( sys-libs/readline:0= ) |
253 |
- selinux? ( >=sys-libs/libselinux-2.2.2-r4[${MULTILIB_USEDEP}] ) |
254 |
- slang? ( sys-libs/slang ) |
255 |
- !build? ( systemd? ( sys-apps/systemd ) ) |
256 |
- udev? ( virtual/libudev:= )" |
257 |
-BDEPEND=" |
258 |
- virtual/pkgconfig |
259 |
- nls? ( sys-devel/gettext ) |
260 |
- test? ( sys-devel/bc ) |
261 |
-" |
262 |
-DEPEND=" |
263 |
- ${RDEPEND} |
264 |
- virtual/os-headers |
265 |
-" |
266 |
-RDEPEND+=" |
267 |
- hardlink? ( !app-arch/hardlink ) |
268 |
- logger? ( !>=app-admin/sysklogd-2.0[logger] ) |
269 |
- kill? ( |
270 |
- !sys-apps/coreutils[kill] |
271 |
- !sys-process/procps[kill] |
272 |
- ) |
273 |
- su? ( |
274 |
- !<sys-apps/shadow-4.7-r2 |
275 |
- !>=sys-apps/shadow-4.7-r2[su] |
276 |
- ) |
277 |
- !net-wireless/rfkill |
278 |
- !sys-process/schedutils |
279 |
- !sys-apps/setarch |
280 |
- !<sys-apps/sysvinit-2.88-r7 |
281 |
- !<sys-libs/e2fsprogs-libs-1.41.8 |
282 |
- !<sys-fs/e2fsprogs-1.41.8 |
283 |
- !<app-shells/bash-completion-2.7-r1" |
284 |
- |
285 |
-REQUIRED_USE="python? ( ${PYTHON_REQUIRED_USE} )" |
286 |
-RESTRICT="!test? ( test )" |
287 |
- |
288 |
-S="${WORKDIR}/${MY_P}" |
289 |
- |
290 |
-PATCHES=( |
291 |
- "${FILESDIR}"/util-linux-2.35.1-include_sys_types-header.patch |
292 |
- "${FILESDIR}"/util-linux-2.35.1-cleanup-pidfd-include.patch |
293 |
-) |
294 |
- |
295 |
-src_prepare() { |
296 |
- default |
297 |
- |
298 |
- # Prevent uuidd test failure due to socket path limit. #593304 |
299 |
- sed -i \ |
300 |
- -e "s|UUIDD_SOCKET=\"\$(mktemp -u \"\${TS_OUTDIR}/uuiddXXXXXXXXXXXXX\")\"|UUIDD_SOCKET=\"\$(mktemp -u \"${T}/uuiddXXXXXXXXXXXXX.sock\")\"|g" \ |
301 |
- tests/ts/uuid/uuidd || die "Failed to fix uuidd test" |
302 |
- |
303 |
- if ! use userland_GNU; then |
304 |
- # test runner is using GNU-specific xargs call |
305 |
- sed -i -e 's:xargs:gxargs:' tests/run.sh || die |
306 |
- # test requires util-linux uuidgen (which we don't build) |
307 |
- rm tests/ts/uuid/oids || die |
308 |
- fi |
309 |
- |
310 |
- if [[ ${PV} == 9999 ]] ; then |
311 |
- po/update-potfiles |
312 |
- eautoreconf |
313 |
- fi |
314 |
- |
315 |
- elibtoolize |
316 |
-} |
317 |
- |
318 |
-lfs_fallocate_test() { |
319 |
- # Make sure we can use fallocate with LFS #300307 |
320 |
- cat <<-EOF > "${T}"/fallocate.${ABI}.c |
321 |
- #define _GNU_SOURCE |
322 |
- #include <fcntl.h> |
323 |
- main() { return fallocate(0, 0, 0, 0); } |
324 |
- EOF |
325 |
- append-lfs-flags |
326 |
- $(tc-getCC) ${CFLAGS} ${CPPFLAGS} ${LDFLAGS} "${T}"/fallocate.${ABI}.c -o /dev/null >/dev/null 2>&1 \ |
327 |
- || export ac_cv_func_fallocate=no |
328 |
- rm -f "${T}"/fallocate.${ABI}.c |
329 |
-} |
330 |
- |
331 |
-python_configure() { |
332 |
- local myeconfargs=( |
333 |
- "${commonargs[@]}" |
334 |
- --disable-all-programs |
335 |
- --disable-bash-completion |
336 |
- --without-systemdsystemunitdir |
337 |
- --with-python |
338 |
- ) |
339 |
- if use userland_GNU; then |
340 |
- myeconfargs+=( |
341 |
- --enable-libblkid |
342 |
- --enable-libmount |
343 |
- --enable-pylibmount |
344 |
- ) |
345 |
- fi |
346 |
- mkdir "${BUILD_DIR}" || die |
347 |
- pushd "${BUILD_DIR}" >/dev/null || die |
348 |
- ECONF_SOURCE="${S}" econf "${myeconfargs[@]}" |
349 |
- popd >/dev/null || die |
350 |
-} |
351 |
- |
352 |
-multilib_src_configure() { |
353 |
- lfs_fallocate_test |
354 |
- # The scanf test in a run-time test which fails while cross-compiling. |
355 |
- # Blindly assume a POSIX setup since we require libmount, and libmount |
356 |
- # itself fails when the scanf test fails. #531856 |
357 |
- tc-is-cross-compiler && export scanf_cv_alloc_modifier=ms |
358 |
- export ac_cv_header_security_pam_misc_h=$(multilib_native_usex pam) #485486 |
359 |
- export ac_cv_header_security_pam_appl_h=$(multilib_native_usex pam) #545042 |
360 |
- |
361 |
- # Undo bad ncurses handling by upstream. Fall back to pkg-config. #601530 |
362 |
- export NCURSES6_CONFIG=false NCURSES5_CONFIG=false |
363 |
- export NCURSESW6_CONFIG=false NCURSESW5_CONFIG=false |
364 |
- |
365 |
- # configure args shared by python and non-python builds |
366 |
- local commonargs=( |
367 |
- --enable-fs-paths-extra="${EPREFIX}/usr/sbin:${EPREFIX}/bin:${EPREFIX}/usr/bin" |
368 |
- ) |
369 |
- |
370 |
- local myeconfargs=( |
371 |
- "${commonargs[@]}" |
372 |
- --with-bashcompletiondir="$(get_bashcompdir)" |
373 |
- --without-python |
374 |
- $(multilib_native_use_enable suid makeinstall-chown) |
375 |
- $(multilib_native_use_enable suid makeinstall-setuid) |
376 |
- $(multilib_native_use_with readline) |
377 |
- $(multilib_native_use_with slang) |
378 |
- $(multilib_native_use_with systemd) |
379 |
- $(multilib_native_use_with udev) |
380 |
- $(multilib_native_usex ncurses "$(use_with unicode ncursesw)" '--without-ncursesw') |
381 |
- $(multilib_native_usex ncurses "$(use_with !unicode ncurses)" '--without-ncurses') |
382 |
- $(tc-has-tls || echo --disable-tls) |
383 |
- $(use_enable nls) |
384 |
- $(use_enable unicode widechar) |
385 |
- $(use_enable static-libs static) |
386 |
- $(use_with ncurses tinfo) |
387 |
- $(use_with selinux) |
388 |
- ) |
389 |
- # build programs only on GNU, on *BSD we want libraries only |
390 |
- if multilib_is_native_abi && use userland_GNU; then |
391 |
- myeconfargs+=( |
392 |
- --disable-chfn-chsh |
393 |
- --disable-login |
394 |
- --disable-nologin |
395 |
- --disable-pylibmount |
396 |
- --enable-agetty |
397 |
- --enable-bash-completion |
398 |
- --enable-line |
399 |
- --enable-partx |
400 |
- --enable-raw |
401 |
- --enable-rename |
402 |
- --enable-rfkill |
403 |
- --enable-schedutils |
404 |
- --with-systemdsystemunitdir="$(systemd_get_systemunitdir)" |
405 |
- $(use_enable caps setpriv) |
406 |
- $(use_enable cramfs) |
407 |
- $(use_enable fdformat) |
408 |
- $(use_enable hardlink) |
409 |
- $(use_enable kill) |
410 |
- $(use_enable logger) |
411 |
- $(use_enable su) |
412 |
- $(use_enable tty-helpers mesg) |
413 |
- $(use_enable tty-helpers wall) |
414 |
- $(use_enable tty-helpers write) |
415 |
- $(use_with cryptsetup) |
416 |
- ) |
417 |
- else |
418 |
- myeconfargs+=( |
419 |
- --disable-all-programs |
420 |
- --disable-bash-completion |
421 |
- --without-systemdsystemunitdir |
422 |
- # build libraries |
423 |
- --enable-libuuid |
424 |
- --enable-libblkid |
425 |
- --enable-libsmartcols |
426 |
- --enable-libfdisk |
427 |
- ) |
428 |
- if use userland_GNU; then |
429 |
- # those libraries don't work on *BSD |
430 |
- myeconfargs+=( |
431 |
- --enable-libmount |
432 |
- ) |
433 |
- fi |
434 |
- fi |
435 |
- ECONF_SOURCE="${S}" econf "${myeconfargs[@]}" |
436 |
- |
437 |
- if multilib_is_native_abi && use python; then |
438 |
- python_foreach_impl python_configure |
439 |
- fi |
440 |
-} |
441 |
- |
442 |
-python_compile() { |
443 |
- pushd "${BUILD_DIR}" >/dev/null || die |
444 |
- emake all |
445 |
- popd >/dev/null || die |
446 |
-} |
447 |
- |
448 |
-multilib_src_compile() { |
449 |
- emake all |
450 |
- |
451 |
- if multilib_is_native_abi && use python; then |
452 |
- python_foreach_impl python_compile |
453 |
- fi |
454 |
-} |
455 |
- |
456 |
-python_test() { |
457 |
- pushd "${BUILD_DIR}" >/dev/null || die |
458 |
- emake check TS_OPTS="--parallel=$(makeopts_jobs) --nonroot" |
459 |
- popd >/dev/null || die |
460 |
-} |
461 |
- |
462 |
-multilib_src_test() { |
463 |
- emake check TS_OPTS="--parallel=$(makeopts_jobs) --nonroot" |
464 |
- if multilib_is_native_abi && use python; then |
465 |
- python_foreach_impl python_test |
466 |
- fi |
467 |
-} |
468 |
- |
469 |
-python_install() { |
470 |
- pushd "${BUILD_DIR}" >/dev/null || die |
471 |
- emake DESTDIR="${D}" install |
472 |
- python_optimize |
473 |
- popd >/dev/null || die |
474 |
-} |
475 |
- |
476 |
-multilib_src_install() { |
477 |
- if multilib_is_native_abi && use python; then |
478 |
- python_foreach_impl python_install |
479 |
- fi |
480 |
- |
481 |
- # This needs to be called AFTER python_install call (#689190) |
482 |
- emake DESTDIR="${D}" install |
483 |
- |
484 |
- if multilib_is_native_abi && use userland_GNU; then |
485 |
- # need the libs in / |
486 |
- gen_usr_ldscript -a blkid fdisk mount smartcols uuid |
487 |
- fi |
488 |
-} |
489 |
- |
490 |
-multilib_src_install_all() { |
491 |
- dodoc AUTHORS NEWS README* Documentation/{TODO,*.txt,releases/*} |
492 |
- |
493 |
- # e2fsprogs-libs didnt install .la files, and .pc work fine |
494 |
- find "${ED}" -name "*.la" -delete || die |
495 |
- |
496 |
- if ! use userland_GNU; then |
497 |
- # manpage collisions |
498 |
- # TODO: figure out a good way to keep them |
499 |
- rm "${ED}"/usr/share/man/man3/uuid* || die |
500 |
- fi |
501 |
- |
502 |
- if use pam; then |
503 |
- newpamd "${FILESDIR}/runuser.pamd" runuser |
504 |
- newpamd "${FILESDIR}/runuser-l.pamd" runuser-l |
505 |
- fi |
506 |
- |
507 |
- # Note: |
508 |
- # Bash completion for "runuser" command is provided by same file which |
509 |
- # would also provide bash completion for "su" command. However, we don't |
510 |
- # use "su" command from this package. |
511 |
- # This triggers a known QA warning which we ignore for now to magically |
512 |
- # keep bash completion for "su" command which shadow package does not |
513 |
- # provide. |
514 |
-} |
515 |
- |
516 |
-pkg_postinst() { |
517 |
- if ! use tty-helpers; then |
518 |
- elog "The mesg/wall/write tools have been disabled due to USE=-tty-helpers." |
519 |
- fi |
520 |
- |
521 |
- if [[ -z ${REPLACING_VERSIONS} ]]; then |
522 |
- elog "The agetty util now clears the terminal by default. You" |
523 |
- elog "might want to add --noclear to your /etc/inittab lines." |
524 |
- fi |
525 |
-} |