Gentoo Archives: gentoo-commits

From: Mike Gilbert <floppym@g.o>
To: gentoo-commits@l.g.o
Subject: [gentoo-commits] repo/gentoo:master commit in: sys-apps/util-linux/files/, sys-apps/util-linux/
Date: Wed, 29 Apr 2020 16:29:45
Message-Id: 1588177537.c7ea8556fef6dcd2b7890e478bdfb3920e5a332a.floppym@gentoo
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 -}