From 9173ac495b70d91abace8e732906b844522cdb3b Mon Sep 17 00:00:00 2001 From: V3n3RiX Date: Thu, 28 Mar 2024 19:13:18 +0000 Subject: gentoo auto-resync : 28:03:2024 - 19:13:18 --- sys-apps/Manifest.gz | Bin 50823 -> 50826 bytes sys-apps/coreutils/Manifest | 6 +- sys-apps/coreutils/coreutils-9.4_p20240326.ebuild | 305 --------------- sys-apps/coreutils/coreutils-9.5.ebuild | 305 +++++++++++++++ sys-apps/util-linux/Manifest | 2 + .../files/util-linux-2.39.3-CVE-2024-28085.patch | 25 ++ sys-apps/util-linux/util-linux-2.39.3-r6.ebuild | 415 +++++++++++++++++++++ 7 files changed, 750 insertions(+), 308 deletions(-) delete mode 100644 sys-apps/coreutils/coreutils-9.4_p20240326.ebuild create mode 100644 sys-apps/coreutils/coreutils-9.5.ebuild create mode 100644 sys-apps/util-linux/files/util-linux-2.39.3-CVE-2024-28085.patch create mode 100644 sys-apps/util-linux/util-linux-2.39.3-r6.ebuild (limited to 'sys-apps') diff --git a/sys-apps/Manifest.gz b/sys-apps/Manifest.gz index c85bffc540a5..e64f7a226238 100644 Binary files a/sys-apps/Manifest.gz and b/sys-apps/Manifest.gz differ diff --git a/sys-apps/coreutils/Manifest b/sys-apps/coreutils/Manifest index ac3b103166bb..da3f62c17e52 100644 --- a/sys-apps/coreutils/Manifest +++ b/sys-apps/coreutils/Manifest @@ -8,12 +8,12 @@ DIST coreutils-8.32.tar.xz 5547836 BLAKE2B 0ad99c176c19ec214fcfd0845523e5362f015 DIST coreutils-9.4-patches.tar.xz 6756 BLAKE2B 677454409ccb629fd0efde1e15d8f9c13f208391e63a17816011e84d4ca3fb2a42c2a60853f213ade2a53c821d76fd8924c59388d160c6e7c7fa5755e1db4c68 SHA512 2025c80b5ada92bafb479c678917862be208534becd8b347d335032c6b4cc23c7b7630f15ca7dd3b5d691567cb70f3491753e29441cc54d8700cc3d966a5e743 DIST coreutils-9.4.tar.xz 5979200 BLAKE2B 83d41c48804c1d470c0e5eed38e692bb6875436dda3f6e2c29784ad6ef563d86e8e066a050e222621b400f78ea4630b1e127d20fc9b76f12096528c42677e35d SHA512 7c55ee23b685a0462bbbd118b04d25278c902604a0dcf3bf4f8bf81faa0500dee5a7813cba6f586d676c98e520cafd420f16479619305e94ea6798d8437561f5 DIST coreutils-9.4.tar.xz.sig 833 BLAKE2B 870f7eb28e8851f41954820c7f4f4b43a965e6650b303b79541dfdf98ca0cd52fe964d7eec72bea68066452d7ad21a01df5e4db9e5bc4c20bf26d8b416856446 SHA512 9674f783f592c4f3e5c708ff31426ac009bf132fd0005019571bf39c8a1627efb5351c6cecc7faecb1eff8fa2970318666593bffc0eda9c750159e174ef42524 -DIST coreutils-9.4_p20240326.tar.xz 5995388 BLAKE2B 2aed1aae692182a657cd2c2a405c2e9939d8ca9cd0e15c7dbd4d6505a6e10704c8d958fa2f89736e27d4fe99be87bdffff50238610c6dd104aedc64532ac4828 SHA512 77d9f747adb1f2d40c9348f5fa14bb93e29807dfa8970d617d4ea543c95bce1c85e937229bd450373f74c511de8debd8645e7f86a508bc866b580bd1712ed300 -DIST coreutils-9.4_p20240326.tar.xz.sig 833 BLAKE2B 158521535c2f1410c324e957bd199c0519d68f1927c16453dfb521af20a64fd277c3dfa3e83b46822b9dfeb0583471b100c04b92167949f622a6770b4bb60c73 SHA512 7f4578c4665bb3d4504eba4a2bb12bb23b71da0f511f06e32495a6d6ad5c893aab19f5f65793caf399b9c68089d837894987154d1d3b2f4e600603f5a787b288 DIST coreutils-9.5-patches.tar.xz 5912 BLAKE2B 873fbe1a60f8f8034b3d35796146765ce388952d649c32dc81ca0e4c2823c9f2f00b69bc5cb3af686434867459b6dc378fb9a6d59563d28b87c3ee1eceeedbb3 SHA512 4b4ad356615d046b8d67ea35b789f887a787ab01ece3234f6344518aef33cd30ca364fef5d85e11acfdb24003114c16ffdab82922fb135d5425fbcd541064a76 +DIST coreutils-9.5.tar.xz 6007136 BLAKE2B 6fd3a77697c9e85f31415c6ad66559faf18acc7d346677a89d4a999c2027886551e78842a7283e7b3b44fe8ef2fde04ba2f88df32a7844d5f69d45bcb7a04b6f SHA512 2ca0deac4dc10a80fd0c6fd131252e99d457fd03b7bd626a6bc74fe5a0529c0a3d48ce1f5da1d3b3a7a150a1ce44f0fbb6b68a6ac543dfd5baa3e71f5d65401c +DIST coreutils-9.5.tar.xz.sig 833 BLAKE2B 37c29984bceee0ff3bffde76712f71dbb118c228e328dc230d5c53c37da12f5ec2130e0123b97fda4a561f556c3be307fdbe1f0c21279db2c84030818386f626 SHA512 029997e0f4ee64e561853cff7c8a124f58cc891598595b44c4a46f9813b4b71c9d677464bc8a26d294e9971832f4b87c23777fea4fac6e8e30f06ad93b9957d5 EBUILD coreutils-8.32-r1.ebuild 5947 BLAKE2B 19f30ddaa57e16326db783e2396ce653c17c8def86422ac517b45ee3869266a6e8c600d926814720b1b79485f1db34e3d8dbad32dcc5ad285987c53ab2dbab27 SHA512 a552a58864edf6a768933f85b6624f82b3bd1bf94c169acf3577394523c2768d6768d5a141283abac760bdab950a1ea394c8f36cf2c0793b8b9a2a1c6dda9622 EBUILD coreutils-9.4-r1.ebuild 8496 BLAKE2B ce3e8aefe60819c930e5f9282faef2bdc2f5013f49968ed52923c6d652a46c213655add76134dfb5a2b48b3183e98fad1a13bee51b544ceee284d5f1f92af5ef SHA512 cba56fc3152ffc851b9afe2d5bde574ca85a0f1dcc099311395cafc74d72d31b2b771f698b3b0bef6a04810d50b76fee90c0dc7f2a7c10e700301811a8a4a7be EBUILD coreutils-9.4.ebuild 8396 BLAKE2B 726efb986d7746043c9cdff74c12a66ff74b7910ec5f4a9b437c644132589155c0351df548e38c8eec2f5681bf1906594aebac6b5611880f2d7d80eac3f5b888 SHA512 4ec7e3b01025800a50bc1b5f772ab621411c142891e65cd77c4bc7d163962ac10e13d66e3add569a4caa78d873afbde8f662151f330768af49f5a45fb2b07732 -EBUILD coreutils-9.4_p20240326.ebuild 8359 BLAKE2B dd3778257afd7f85066e25ed006de8eab115f586be47918add7f6e9c64830cfe43e002339d2c65dc9b4a6552cc30366e92dc5c22f1bcfe136e72f49e76ca2555 SHA512 b2b5d5fa01ff9430d94de2cd81a5406b056fd6034c84241262ce6c320e823371a001a49dd3b5b9c863d7e142eef14f4ccbbfe82429d46feac2bb513cbf72c11a +EBUILD coreutils-9.5.ebuild 8359 BLAKE2B dd3778257afd7f85066e25ed006de8eab115f586be47918add7f6e9c64830cfe43e002339d2c65dc9b4a6552cc30366e92dc5c22f1bcfe136e72f49e76ca2555 SHA512 b2b5d5fa01ff9430d94de2cd81a5406b056fd6034c84241262ce6c320e823371a001a49dd3b5b9c863d7e142eef14f4ccbbfe82429d46feac2bb513cbf72c11a EBUILD coreutils-9999.ebuild 8359 BLAKE2B dd3778257afd7f85066e25ed006de8eab115f586be47918add7f6e9c64830cfe43e002339d2c65dc9b4a6552cc30366e92dc5c22f1bcfe136e72f49e76ca2555 SHA512 b2b5d5fa01ff9430d94de2cd81a5406b056fd6034c84241262ce6c320e823371a001a49dd3b5b9c863d7e142eef14f4ccbbfe82429d46feac2bb513cbf72c11a MISC metadata.xml 1093 BLAKE2B 68a653fe54fc668c7f2c7c01904cfca5a071192de4370dcbba427e673f8e9ec33b5104a868a5493117ef24e277446181383140c621b105689797aec4e077b86e SHA512 bf8f2653a1a81edb6e4090b127c5660e0c5ab41a33c985dea1b5cb05c6656b04f42084ce4e561f4550c3e54630893314d3084011c673e7d5aded022be1c065d1 diff --git a/sys-apps/coreutils/coreutils-9.4_p20240326.ebuild b/sys-apps/coreutils/coreutils-9.4_p20240326.ebuild deleted file mode 100644 index 187e8ba621a9..000000000000 --- a/sys-apps/coreutils/coreutils-9.4_p20240326.ebuild +++ /dev/null @@ -1,305 +0,0 @@ -# Copyright 1999-2024 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=8 - -# Try to keep an eye on Fedora's packaging: https://src.fedoraproject.org/rpms/coreutils -# The upstream coreutils maintainers also maintain the package in Fedora and may -# backport fixes which we want to pick up. -# -# Also recommend subscribing to the coreutils and bug-coreutils MLs. - -PYTHON_COMPAT=( python3_{10..12} ) -VERIFY_SIG_OPENPGP_KEY_PATH=/usr/share/openpgp-keys/coreutils.asc -inherit flag-o-matic python-any-r1 toolchain-funcs verify-sig - -MY_PATCH="${PN}-9.5-patches" -DESCRIPTION="Standard GNU utilities (chmod, cp, dd, ls, sort, tr, head, wc, who,...)" -HOMEPAGE="https://www.gnu.org/software/coreutils/" - -if [[ ${PV} == 9999 ]] ; then - EGIT_REPO_URI="https://git.savannah.gnu.org/git/coreutils.git" - inherit git-r3 -elif [[ ${PV} == *_p* ]] ; then - # Note: could put this in devspace, but if it's gone, we don't want - # it in tree anyway. It's just for testing. - MY_SNAPSHOT="$(ver_cut 1-2).185-541b02" - SRC_URI="https://www.pixelbeat.org/cu/coreutils-${MY_SNAPSHOT}.tar.xz -> ${P}.tar.xz" - SRC_URI+=" verify-sig? ( https://www.pixelbeat.org/cu/coreutils-${MY_SNAPSHOT}.tar.xz.sig -> ${P}.tar.xz.sig )" - S="${WORKDIR}"/${PN}-${MY_SNAPSHOT} -else - SRC_URI=" - mirror://gnu/${PN}/${P}.tar.xz - verify-sig? ( mirror://gnu/${PN}/${P}.tar.xz.sig ) - " - - KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~x86-linux" -fi - -SRC_URI+=" !vanilla? ( https://dev.gentoo.org/~sam/distfiles/${CATEGORY}/${PN}/${MY_PATCH}.tar.xz )" - -LICENSE="GPL-3+" -SLOT="0" -IUSE="acl caps gmp hostname kill multicall nls +openssl selinux +split-usr static test vanilla xattr" -RESTRICT="!test? ( test )" - -LIB_DEPEND=" - acl? ( sys-apps/acl[static-libs] ) - caps? ( sys-libs/libcap ) - gmp? ( dev-libs/gmp:=[static-libs] ) - openssl? ( dev-libs/openssl:=[static-libs] ) - xattr? ( sys-apps/attr[static-libs] ) -" -RDEPEND=" - !static? ( ${LIB_DEPEND//\[static-libs]} ) - selinux? ( sys-libs/libselinux ) - nls? ( virtual/libintl ) -" -DEPEND=" - ${RDEPEND} - static? ( ${LIB_DEPEND} ) -" -BDEPEND=" - app-arch/xz-utils - dev-lang/perl - test? ( - dev-debug/strace - dev-lang/perl - dev-perl/Expect - ${PYTHON_DEPS} - ) - verify-sig? ( sec-keys/openpgp-keys-coreutils ) -" -RDEPEND+=" - hostname? ( !sys-apps/net-tools[hostname] ) - kill? ( - !sys-apps/util-linux[kill] - !sys-process/procps[kill] - ) - !9.4?), we may want to wire up USE=systemd: - # still experimental at the moment, but: - # https://git.savannah.gnu.org/cgit/coreutils.git/commit/?id=85edb4afbd119fb69a0d53e1beb71f46c9525dd0 - local myconf=( - --with-packager="Gentoo" - --with-packager-version="${PVR} (p${PATCH_VER:-0})" - --with-packager-bug-reports="https://bugs.gentoo.org/" - # kill/uptime - procps - # groups/su - shadow - # hostname - net-tools - --enable-install-program="arch,$(usev hostname),$(usev kill)" - --enable-no-install-program="groups,$(usev !hostname),$(usev !kill),su,uptime" - $(usev !caps --disable-libcap) - $(use_enable nls) - $(use_enable acl) - $(use_enable multicall single-binary) - $(use_enable xattr) - $(use_with gmp libgmp) - $(use_with openssl) - ) - - if use gmp ; then - myconf+=( --with-libgmp-prefix="${ESYSROOT}"/usr ) - fi - - if tc-is-cross-compiler && [[ ${CHOST} == *linux* ]] ; then - # bug #311569 - export fu_cv_sys_stat_statfs2_bsize=yes - # bug #416629 - export gl_cv_func_realpath_works=yes - fi - - # bug #409919 - export gl_cv_func_mknod_works=yes - - if use static ; then - append-ldflags -static - # bug #321821 - sed -i '/elf_sys=yes/s:yes:no:' configure || die - fi - - if ! use selinux ; then - # bug #301782 - export ac_cv_{header_selinux_{context,flash,selinux}_h,search_setfilecon}=no - fi - - econf "${myconf[@]}" -} - -src_test() { - # Non-root tests will fail if the full path isn't - # accessible to non-root users - chmod -R go-w "${WORKDIR}" || die - chmod a+rx "${WORKDIR}" || die - - # coreutils tests like to do `mount` and such with temp dirs, - # so make sure: - # - /etc/mtab is writable (bug #265725) - # - /dev/loop* can be mounted (bug #269758) - mkdir -p "${T}"/mount-wrappers || die - mkwrap() { - local w ww - for w in "${@}" ; do - ww="${T}/mount-wrappers/${w}" - cat <<-EOF > "${ww}" - #!${EPREFIX}/bin/sh - exec env SANDBOX_WRITE="\${SANDBOX_WRITE}:/etc/mtab:/dev/loop" $(type -P ${w}) "\$@" - EOF - chmod a+rx "${ww}" || die - done - } - mkwrap mount umount - - addwrite /dev/full - - #local -x RUN_EXPENSIVE_TESTS="yes" - #local -x COREUTILS_GROUPS="portage wheel" - local -x PATH="${T}/mount-wrappers:${PATH}" - local -x gl_public_submodule_commit= - - local xfail_tests=( - # bug #629660 - #tests/dd/no-allocate.sh - - # bug #675802 - tests/env/env-S - tests/env/env-S.pl - - # bug #413621 and bug #548250 - tests/du/long-from-unreadable.sh - tests/ls/removed-directory - tests/ls/removed-directory.sh - tests/ls/stat-free-symlinks - tests/ls/stat-free-symlinks.sh - tests/rm/deep-2 - tests/rm/deep-2.sh - - # We have a patch which fixes this (bug #259876) - #tests/touch/not-owner - #tests/touch/not-owner.sh - ) - - # This test is flaky (bug #910640). - cat > tests/tty/tty-eof.pl <<-EOF || die - #!/usr/bin/perl - exit 77; - EOF - - # We set DISABLE_HARD_ERRORS because some of the tests hard error-out - # because of sandbox. They're skipped above but DISABLE_HARD_ERRORS is needed - # to downgrade them to FAIL. - emake -k check \ - VERBOSE=yes \ - DISABLE_HARD_ERRORS=yes \ - XFAIL_TESTS="${xfail_tests[*]}" -} - -src_install() { - default - - insinto /etc - newins src/dircolors.hin DIR_COLORS - - if use split-usr ; then - cd "${ED}"/usr/bin || die - dodir /bin - - # Move critical binaries into /bin (required by FHS) - local fhs="cat chgrp chmod chown cp date dd df echo false ln ls - mkdir mknod mv pwd rm rmdir stty sync true uname" - mv ${fhs} ../../bin/ || die "Could not move FHS bins!" - - if use hostname ; then - mv hostname ../../bin/ || die - fi - - if use kill ; then - mv kill ../../bin/ || die - fi - - # Move critical binaries into /bin (common scripts) - # (Why are these required for booting?) - local com="basename chroot cut dir dirname du env expr head mkfifo - mktemp readlink seq sleep sort tail touch tr tty vdir wc yes" - mv ${com} ../../bin/ || die "Could not move common bins!" - - # Create a symlink for uname in /usr/bin/ since autotools require it. - # (Other than uname, we need to figure out why we are - # creating symlinks for these in /usr/bin instead of leaving - # the files there in the first place...) - local x - for x in ${com} uname ; do - dosym ../../bin/${x} /usr/bin/${x} - done - fi -} - -pkg_postinst() { - ewarn "Make sure you run 'hash -r' in your active shells." - ewarn "You should also re-source your shell settings for LS_COLORS" - ewarn " changes, such as: source /etc/profile" -} diff --git a/sys-apps/coreutils/coreutils-9.5.ebuild b/sys-apps/coreutils/coreutils-9.5.ebuild new file mode 100644 index 000000000000..187e8ba621a9 --- /dev/null +++ b/sys-apps/coreutils/coreutils-9.5.ebuild @@ -0,0 +1,305 @@ +# Copyright 1999-2024 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +# Try to keep an eye on Fedora's packaging: https://src.fedoraproject.org/rpms/coreutils +# The upstream coreutils maintainers also maintain the package in Fedora and may +# backport fixes which we want to pick up. +# +# Also recommend subscribing to the coreutils and bug-coreutils MLs. + +PYTHON_COMPAT=( python3_{10..12} ) +VERIFY_SIG_OPENPGP_KEY_PATH=/usr/share/openpgp-keys/coreutils.asc +inherit flag-o-matic python-any-r1 toolchain-funcs verify-sig + +MY_PATCH="${PN}-9.5-patches" +DESCRIPTION="Standard GNU utilities (chmod, cp, dd, ls, sort, tr, head, wc, who,...)" +HOMEPAGE="https://www.gnu.org/software/coreutils/" + +if [[ ${PV} == 9999 ]] ; then + EGIT_REPO_URI="https://git.savannah.gnu.org/git/coreutils.git" + inherit git-r3 +elif [[ ${PV} == *_p* ]] ; then + # Note: could put this in devspace, but if it's gone, we don't want + # it in tree anyway. It's just for testing. + MY_SNAPSHOT="$(ver_cut 1-2).185-541b02" + SRC_URI="https://www.pixelbeat.org/cu/coreutils-${MY_SNAPSHOT}.tar.xz -> ${P}.tar.xz" + SRC_URI+=" verify-sig? ( https://www.pixelbeat.org/cu/coreutils-${MY_SNAPSHOT}.tar.xz.sig -> ${P}.tar.xz.sig )" + S="${WORKDIR}"/${PN}-${MY_SNAPSHOT} +else + SRC_URI=" + mirror://gnu/${PN}/${P}.tar.xz + verify-sig? ( mirror://gnu/${PN}/${P}.tar.xz.sig ) + " + + KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~x86-linux" +fi + +SRC_URI+=" !vanilla? ( https://dev.gentoo.org/~sam/distfiles/${CATEGORY}/${PN}/${MY_PATCH}.tar.xz )" + +LICENSE="GPL-3+" +SLOT="0" +IUSE="acl caps gmp hostname kill multicall nls +openssl selinux +split-usr static test vanilla xattr" +RESTRICT="!test? ( test )" + +LIB_DEPEND=" + acl? ( sys-apps/acl[static-libs] ) + caps? ( sys-libs/libcap ) + gmp? ( dev-libs/gmp:=[static-libs] ) + openssl? ( dev-libs/openssl:=[static-libs] ) + xattr? ( sys-apps/attr[static-libs] ) +" +RDEPEND=" + !static? ( ${LIB_DEPEND//\[static-libs]} ) + selinux? ( sys-libs/libselinux ) + nls? ( virtual/libintl ) +" +DEPEND=" + ${RDEPEND} + static? ( ${LIB_DEPEND} ) +" +BDEPEND=" + app-arch/xz-utils + dev-lang/perl + test? ( + dev-debug/strace + dev-lang/perl + dev-perl/Expect + ${PYTHON_DEPS} + ) + verify-sig? ( sec-keys/openpgp-keys-coreutils ) +" +RDEPEND+=" + hostname? ( !sys-apps/net-tools[hostname] ) + kill? ( + !sys-apps/util-linux[kill] + !sys-process/procps[kill] + ) + !9.4?), we may want to wire up USE=systemd: + # still experimental at the moment, but: + # https://git.savannah.gnu.org/cgit/coreutils.git/commit/?id=85edb4afbd119fb69a0d53e1beb71f46c9525dd0 + local myconf=( + --with-packager="Gentoo" + --with-packager-version="${PVR} (p${PATCH_VER:-0})" + --with-packager-bug-reports="https://bugs.gentoo.org/" + # kill/uptime - procps + # groups/su - shadow + # hostname - net-tools + --enable-install-program="arch,$(usev hostname),$(usev kill)" + --enable-no-install-program="groups,$(usev !hostname),$(usev !kill),su,uptime" + $(usev !caps --disable-libcap) + $(use_enable nls) + $(use_enable acl) + $(use_enable multicall single-binary) + $(use_enable xattr) + $(use_with gmp libgmp) + $(use_with openssl) + ) + + if use gmp ; then + myconf+=( --with-libgmp-prefix="${ESYSROOT}"/usr ) + fi + + if tc-is-cross-compiler && [[ ${CHOST} == *linux* ]] ; then + # bug #311569 + export fu_cv_sys_stat_statfs2_bsize=yes + # bug #416629 + export gl_cv_func_realpath_works=yes + fi + + # bug #409919 + export gl_cv_func_mknod_works=yes + + if use static ; then + append-ldflags -static + # bug #321821 + sed -i '/elf_sys=yes/s:yes:no:' configure || die + fi + + if ! use selinux ; then + # bug #301782 + export ac_cv_{header_selinux_{context,flash,selinux}_h,search_setfilecon}=no + fi + + econf "${myconf[@]}" +} + +src_test() { + # Non-root tests will fail if the full path isn't + # accessible to non-root users + chmod -R go-w "${WORKDIR}" || die + chmod a+rx "${WORKDIR}" || die + + # coreutils tests like to do `mount` and such with temp dirs, + # so make sure: + # - /etc/mtab is writable (bug #265725) + # - /dev/loop* can be mounted (bug #269758) + mkdir -p "${T}"/mount-wrappers || die + mkwrap() { + local w ww + for w in "${@}" ; do + ww="${T}/mount-wrappers/${w}" + cat <<-EOF > "${ww}" + #!${EPREFIX}/bin/sh + exec env SANDBOX_WRITE="\${SANDBOX_WRITE}:/etc/mtab:/dev/loop" $(type -P ${w}) "\$@" + EOF + chmod a+rx "${ww}" || die + done + } + mkwrap mount umount + + addwrite /dev/full + + #local -x RUN_EXPENSIVE_TESTS="yes" + #local -x COREUTILS_GROUPS="portage wheel" + local -x PATH="${T}/mount-wrappers:${PATH}" + local -x gl_public_submodule_commit= + + local xfail_tests=( + # bug #629660 + #tests/dd/no-allocate.sh + + # bug #675802 + tests/env/env-S + tests/env/env-S.pl + + # bug #413621 and bug #548250 + tests/du/long-from-unreadable.sh + tests/ls/removed-directory + tests/ls/removed-directory.sh + tests/ls/stat-free-symlinks + tests/ls/stat-free-symlinks.sh + tests/rm/deep-2 + tests/rm/deep-2.sh + + # We have a patch which fixes this (bug #259876) + #tests/touch/not-owner + #tests/touch/not-owner.sh + ) + + # This test is flaky (bug #910640). + cat > tests/tty/tty-eof.pl <<-EOF || die + #!/usr/bin/perl + exit 77; + EOF + + # We set DISABLE_HARD_ERRORS because some of the tests hard error-out + # because of sandbox. They're skipped above but DISABLE_HARD_ERRORS is needed + # to downgrade them to FAIL. + emake -k check \ + VERBOSE=yes \ + DISABLE_HARD_ERRORS=yes \ + XFAIL_TESTS="${xfail_tests[*]}" +} + +src_install() { + default + + insinto /etc + newins src/dircolors.hin DIR_COLORS + + if use split-usr ; then + cd "${ED}"/usr/bin || die + dodir /bin + + # Move critical binaries into /bin (required by FHS) + local fhs="cat chgrp chmod chown cp date dd df echo false ln ls + mkdir mknod mv pwd rm rmdir stty sync true uname" + mv ${fhs} ../../bin/ || die "Could not move FHS bins!" + + if use hostname ; then + mv hostname ../../bin/ || die + fi + + if use kill ; then + mv kill ../../bin/ || die + fi + + # Move critical binaries into /bin (common scripts) + # (Why are these required for booting?) + local com="basename chroot cut dir dirname du env expr head mkfifo + mktemp readlink seq sleep sort tail touch tr tty vdir wc yes" + mv ${com} ../../bin/ || die "Could not move common bins!" + + # Create a symlink for uname in /usr/bin/ since autotools require it. + # (Other than uname, we need to figure out why we are + # creating symlinks for these in /usr/bin instead of leaving + # the files there in the first place...) + local x + for x in ${com} uname ; do + dosym ../../bin/${x} /usr/bin/${x} + done + fi +} + +pkg_postinst() { + ewarn "Make sure you run 'hash -r' in your active shells." + ewarn "You should also re-source your shell settings for LS_COLORS" + ewarn " changes, such as: source /etc/profile" +} diff --git a/sys-apps/util-linux/Manifest b/sys-apps/util-linux/Manifest index 5e0e7f66c022..1c4ad1f13346 100644 --- a/sys-apps/util-linux/Manifest +++ b/sys-apps/util-linux/Manifest @@ -4,6 +4,7 @@ AUX su-l.pamd 140 BLAKE2B 34f00c8814d454c8caa6bd5f0dd0bb89b24c12dbc0e39e852dc459 AUX util-linux-2.39.2-backport-1d4456d.patch 993 BLAKE2B c65d13ece5de1486044b857e7b158ebdf239ba48600c74dff2401c2f96b670e9a369b36ba91c61eb6d7724b545799fc76a1632e0adcf097b25017290b6796c2e SHA512 76f057fee52a57d9305c50738ccc57adcfcdf92dbad05e8596ce9edcee0e0b8c126db2b9554e70a71fa80b59b35229d17c8e6ad79f768ce3c548eb7219c57f56 AUX util-linux-2.39.2-backport-pr2251.patch 6779 BLAKE2B bb8d4be48a55931e7f45a95953c1dd6e7ff59f7559b27ad254c2c3643cf0e6410fcd49da3a7d21af70ea1066a883e9db7c75e425baa983ed3a2918ec517fce82 SHA512 8c949125525a4e13086c63595da6c7423a747165ecf3357f2fbcf95cd5cf7840c7c33e992cf66151598a52d5d6e1fe04f5d6059efe044b41882002b808ff937c AUX util-linux-2.39.2-fincore-test.patch 848 BLAKE2B 8320b3ddc561907f6c34e6cf916202c30ab1671cd3e4f7a41187ecbe4efab7fd172d48271073d3d8aadc5c3ae2ee06c5a73b54af0165e5a885e1c5690db40eff SHA512 0562d2102fe1dea0579afcf1353844c8b84c61c6ed1ccfce3a2f010889000623f931fd2d2a0046f570ef5e8ffa0df98b19ce046903090043b292a0529b1db4b9 +AUX util-linux-2.39.3-CVE-2024-28085.patch 840 BLAKE2B 220232e6330b201b2a524a1ff75340e899f277590ee988cba6dd9c1450d99a86269a6aefadda3847657fbb150a422bf180d308f13f3399a5c8d4195d1ce7fdc1 SHA512 445cced246202ef174b96f3280ad380eb44e69a0759f1217e70a290444d5e5363d1df7f6d8757afb1e289486e838a97fa7d6b2602845f04a8fdf37b239859095 AUX util-linux-2.39.3-libblkid-luks.patch 1499 BLAKE2B d08f33f3be0709abb3969a89809a953da06dad98be44d804e1327fc57872331a1cd84d4c9cd4762529df53b3a3a3010ddc7fdcfc8d35e7e6be0447aa1bff055d SHA512 4dd4222a23262a6bfaa472bbfcf17faa0ecd6cbdf85da6459c4ed146f0bdcb0c7e249b6f5286faa4e97d811ebe13285523fb800b280a8eb053224a15bda47bf8 AUX util-linux-2.39.3-libmount-Fix-export-of-mnt_context_is_lazy-and-mnt_c.patch 1710 BLAKE2B 04a3b4db45447556edbf66bdb9bf9c895cdf47a801b41743603b14420bcffe9618c17c8153b6800b872dbc28d1e5c33a55667f2a31e9ff63f7f026c1beb9f524 SHA512 da91fb5f9443907558f6245d4eee3f578e0f0549866a6e9f39bd82d6123868180c1d2aa357e5ef47f163b7ddf67d1c24f6a4768837f21577b2887555a956afe9 AUX util-linux-2.39.3-musl-1.2.5-basename.patch 1814 BLAKE2B 29463f6aedec98cbd7edaa68e3ef0b6c7a4932e6f1b02948237689e75cb720d406970a6521564dd97c68c922b087f23683c219550c5092755057e734f94bc338 SHA512 74f6ccd530766fdbaac55a20becc8e2ce8dc8aeb65aaba3d22430a7c72e19e9483031b508b4448507d245d42e6d730d0d17ec6bc8edb63eaf0cb8ce0365be4d7 @@ -11,5 +12,6 @@ DIST util-linux-2.39.3.tar.sign 833 BLAKE2B 433b9ad6e97d9e2ffbd516addf8406587d00 DIST util-linux-2.39.3.tar.xz 8526168 BLAKE2B cd7b2b3c820e920d4a6ecd46fd807e018fc8e54439292f5e62c5f6863dd0f2505df3ec02c470d9be255a437c6ee8e4077908ac78d19a0d1273854d99eb571df0 SHA512 a2de1672f06ca5d2d431db1265a8499808770c3781019ec4a3a40170df4685826d8e3ca120841dcc5df4681ca8c935a993317bd0dc70465b21bf8e0efef65afa EBUILD util-linux-2.39.3-r2.ebuild 10816 BLAKE2B 675a18c3b90136b7f9dcdf80f32af95e762c34499fafb8955a4e65e8aafd275e1c1fd26ff42602c43e5448e45e657de00bf1e073d28b7a27724353fdc9384356 SHA512 549a47fb5864403951a9b4829d920e7856770d35758fb4fd00b6294dfe5926bbc538dbe70d62781f6de600650a14480f15a859c9d051c6cc74037ce360741efc EBUILD util-linux-2.39.3-r5.ebuild 11079 BLAKE2B c78e6ddad8fb281d0aae058db0d275110f6b63b3b149a2eb743c3a3b231641cf79b8bb2572bc81f27e0ad28894709788084d95968eb6a174e681596f32771f87 SHA512 10eeee14a9564dd3e35bbe4300d0a591cf66366d7c5e9796f15e7be1c87a2558606184958eb22001539cf5d16047f9e6ac26097bb176f0be97f77c5b672e2ab0 +EBUILD util-linux-2.39.3-r6.ebuild 11130 BLAKE2B 0bc7dd8134172de2a660ca6bdd49ca63c8e4647c76ba19607bea18947e3e63a78d92ba4f74d8086d533bbd667f8fe80b604b20d9c5677e15d73122b973cc2220 SHA512 232c7fc42850b5143af4c822e6d94039918c5c40372de6166834418cc0546dab6468ae35fa673266633aca5b5133a3037ad352b82ace0e1c8f50ba3947878689 EBUILD util-linux-9999.ebuild 10539 BLAKE2B cc0cf0445812fa59abfae68308c8c85052031859aa2fbb5e5da9dbd1de7886d71a784f8a6431596e27a08a87c8d0995b383f90d5ae583385e5a7ad60b70be8eb SHA512 7628e3d91ba9827138bccaebe1a9111695f24b006c535437e258e926b32e2d4722dbb09c863339d72cbc956d3fc46eaa93fbc485a606bb59e6afcd2deb11971f MISC metadata.xml 1553 BLAKE2B 1c4a18f6d91be4c90bf2505745cae42f6d249a1295c6a46fc1b8ea08297842b4d3a2aa232e679a167af9fef26730ed71f651b2f71b58cbfe66bd7a5cd3743c3b SHA512 e01d390c983ac47b9a6684f70b11cc796cde1355ae7d4c12406b3d6fc5b0897a9471720844e74fceee1648f4c7d685e6b12f157adc1ad951506acefb7441635c diff --git a/sys-apps/util-linux/files/util-linux-2.39.3-CVE-2024-28085.patch b/sys-apps/util-linux/files/util-linux-2.39.3-CVE-2024-28085.patch new file mode 100644 index 000000000000..99092c05aa7e --- /dev/null +++ b/sys-apps/util-linux/files/util-linux-2.39.3-CVE-2024-28085.patch @@ -0,0 +1,25 @@ +https://bugs.gentoo.org/927980 +https://people.rit.edu/sjf5462/6831711781/wall_2_27_2024.txt +https://github.com/util-linux/util-linux/commit/404b0781f52f7c045ca811b2dceec526408ac253 + +From 404b0781f52f7c045ca811b2dceec526408ac253 Mon Sep 17 00:00:00 2001 +From: Karel Zak +Date: Thu, 21 Mar 2024 11:16:20 +0100 +Subject: [PATCH] wall: fix escape sequence Injection [CVE-2024-28085] + +Let's use for all cases the same output function. + +Reported-by: Skyler Ferrante +Signed-off-by: Karel Zak +--- a/term-utils/wall.c ++++ b/term-utils/wall.c +@@ -368,7 +368,7 @@ static char *makemsg(char *fname, char **mvec, int mvecsz, + int i; + + for (i = 0; i < mvecsz; i++) { +- fputs(mvec[i], fs); ++ fputs_careful(mvec[i], fs, '^', true, TERM_WIDTH); + if (i < mvecsz - 1) + fputc(' ', fs); + } + diff --git a/sys-apps/util-linux/util-linux-2.39.3-r6.ebuild b/sys-apps/util-linux/util-linux-2.39.3-r6.ebuild new file mode 100644 index 000000000000..256c7ca3c751 --- /dev/null +++ b/sys-apps/util-linux/util-linux-2.39.3-r6.ebuild @@ -0,0 +1,415 @@ +# Copyright 1999-2024 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +PYTHON_COMPAT=( python3_{10..12} ) + +inherit toolchain-funcs libtool flag-o-matic bash-completion-r1 \ + pam python-r1 multilib-minimal multiprocessing systemd + +MY_PV="${PV/_/-}" +MY_P="${PN}-${MY_PV}" + +DESCRIPTION="Various useful Linux utilities" +HOMEPAGE="https://www.kernel.org/pub/linux/utils/util-linux/ https://github.com/util-linux/util-linux" + +if [[ ${PV} == 9999 ]] ; then + EGIT_REPO_URI="https://git.kernel.org/pub/scm/utils/util-linux/util-linux.git" + inherit autotools git-r3 +else + VERIFY_SIG_OPENPGP_KEY_PATH=/usr/share/openpgp-keys/karelzak.asc + inherit verify-sig + + if [[ ${PV} != *_rc* ]] ; then + KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux ~arm64-macos" + fi + + SRC_URI="https://www.kernel.org/pub/linux/utils/util-linux/v${PV:0:4}/${MY_P}.tar.xz" + SRC_URI+=" verify-sig? ( https://www.kernel.org/pub/linux/utils/util-linux/v${PV:0:4}/${MY_P}.tar.sign )" +fi + +S="${WORKDIR}/${MY_P}" + +LICENSE="GPL-2 GPL-3 LGPL-2.1 BSD-4 MIT public-domain" +SLOT="0" +IUSE="audit build caps +cramfs cryptsetup fdformat +hardlink kill +logger magic ncurses nls pam python +readline rtas selinux slang static-libs +su +suid systemd test tty-helpers udev unicode" + +# Most lib deps here are related to programs rather than our libs, +# so we rarely need to specify ${MULTILIB_USEDEP}. +RDEPEND=" + virtual/libcrypt:= + audit? ( >=sys-process/audit-2.6:= ) + caps? ( sys-libs/libcap-ng ) + cramfs? ( sys-libs/zlib:= ) + cryptsetup? ( >=sys-fs/cryptsetup-2.1.0 ) + hardlink? ( dev-libs/libpcre2:= ) + ncurses? ( + sys-libs/ncurses:=[unicode(+)?] + magic? ( sys-apps/file:0= ) + ) + nls? ( virtual/libintl[${MULTILIB_USEDEP}] ) + pam? ( sys-libs/pam ) + python? ( ${PYTHON_DEPS} ) + readline? ( sys-libs/readline:0= ) + rtas? ( sys-libs/librtas ) + selinux? ( >=sys-libs/libselinux-2.2.2-r4[${MULTILIB_USEDEP}] ) + slang? ( sys-libs/slang ) + !build? ( + systemd? ( sys-apps/systemd ) + udev? ( virtual/libudev:= ) + ) +" +BDEPEND=" + virtual/pkgconfig + nls? ( + app-text/po4a + sys-devel/gettext + ) + test? ( app-alternatives/bc ) +" +DEPEND=" + ${RDEPEND} + virtual/os-headers + acct-group/root +" +RDEPEND+=" + hardlink? ( !app-arch/hardlink ) + logger? ( !>=app-admin/sysklogd-2.0[logger] ) + kill? ( + !sys-apps/coreutils[kill] + !sys-process/procps[kill] + ) + su? ( + !=sys-apps/shadow-4.7-r2[su] + ) + !net-wireless/rfkill +" + +if [[ ${PV} == 9999 ]] ; then + # Required for man-page generation + BDEPEND+=" dev-ruby/asciidoctor" +else + BDEPEND+=" verify-sig? ( >=sec-keys/openpgp-keys-karelzak-20230517 )" +fi + +REQUIRED_USE="python? ( ${PYTHON_REQUIRED_USE} ) su? ( pam )" +RESTRICT="!test? ( test )" + +PATCHES=( + "${FILESDIR}"/${PN}-2.39.2-fincore-test.patch + "${FILESDIR}"/${PN}-2.39.2-backport-pr2251.patch + "${FILESDIR}"/${PN}-2.39.2-backport-1d4456d.patch + "${FILESDIR}"/${PN}-2.39.3-libblkid-luks.patch + "${FILESDIR}"/${PN}-2.39.3-musl-1.2.5-basename.patch + "${FILESDIR}"/${PN}-2.39.3-libmount-Fix-export-of-mnt_context_is_lazy-and-mnt_c.patch + "${FILESDIR}"/${PN}-2.39.3-CVE-2024-28085.patch +) + +pkg_pretend() { + if use su && ! use suid ; then + elog "su will be installed as suid despite USE=-suid (bug #832092)" + elog "To use su without suid, see e.g. Portage's suidctl feature." + fi +} + +src_unpack() { + if [[ ${PV} == 9999 ]] ; then + git-r3_src_unpack + return + fi + + if use verify-sig ; then + mkdir "${T}"/verify-sig || die + pushd "${T}"/verify-sig &>/dev/null || die + + # Upstream sign the decompressed .tar + # Let's do it separately in ${T} then cleanup to avoid external + # effects on normal unpack. + cp "${DISTDIR}"/${MY_P}.tar.xz . || die + xz -d ${MY_P}.tar.xz || die + verify-sig_verify_detached ${MY_P}.tar "${DISTDIR}"/${MY_P}.tar.sign + + popd &>/dev/null || die + rm -r "${T}"/verify-sig || die + fi + + default +} + +src_prepare() { + default + + if use test ; then + # Known-failing tests + # TODO: investigate these + local known_failing_tests=( + # Subtest 'options-maximum-size-8192' fails + hardlink/options + + # Fails in sandbox + lsns/ioctl_ns + + lsfd/mkfds-symlink + lsfd/mkfds-rw-character-device + # Fails with network-sandbox at least in nspawn + lsfd/option-inet + utmp/last-ipv6 + ) + + local known_failing_test + for known_failing_test in "${known_failing_tests[@]}" ; do + einfo "Removing known-failing test: ${known_failing_test}" + rm tests/ts/${known_failing_test} || die + done + fi + + if [[ ${PV} == 9999 ]] ; then + po/update-potfiles + eautoreconf + else + elibtoolize + fi +} + +python_configure() { + local myeconfargs=( + "${commonargs[@]}" + --disable-all-programs + --disable-bash-completion + --without-systemdsystemunitdir + --with-python + --enable-libblkid + --enable-libmount + --enable-pylibmount + ) + + mkdir "${BUILD_DIR}" || die + pushd "${BUILD_DIR}" >/dev/null || die + ECONF_SOURCE="${S}" econf "${myeconfargs[@]}" + popd >/dev/null || die +} + +multilib_src_configure() { + # The scanf test in a run-time test which fails while cross-compiling. + # Blindly assume a POSIX setup since we require libmount, and libmount + # itself fails when the scanf test fails. bug #531856 + tc-is-cross-compiler && export scanf_cv_alloc_modifier=ms + + # bug #485486 + export ac_cv_header_security_pam_misc_h=$(multilib_native_usex pam) + # bug #545042 + export ac_cv_header_security_pam_appl_h=$(multilib_native_usex pam) + + # Undo bad ncurses handling by upstream. Fall back to pkg-config. + # bug #601530 + export NCURSES6_CONFIG=false NCURSES5_CONFIG=false + export NCURSESW6_CONFIG=false NCURSESW5_CONFIG=false + + # Avoid automagic dependency on ppc* + export ac_cv_lib_rtas_rtas_get_sysparm=$(usex rtas) + + # configure args shared by python and non-python builds + local commonargs=( + --localstatedir="${EPREFIX}/var" + --runstatedir="${EPREFIX}/run" + --enable-fs-paths-extra="${EPREFIX}/usr/sbin:${EPREFIX}/bin:${EPREFIX}/usr/bin" + + # Temporary workaround until ~2.39.2. 2.39.x introduced a big rewrite. + # https://github.com/util-linux/util-linux/issues/2287#issuecomment-1576640373 + --disable-libmount-mountfd-support + ) + + local myeconfargs=( + "${commonargs[@]}" + --with-bashcompletiondir="$(get_bashcompdir)" + --without-python + $(multilib_native_use_enable suid makeinstall-chown) + $(multilib_native_use_enable suid makeinstall-setuid) + $(multilib_native_use_with readline) + $(multilib_native_use_with slang) + $(multilib_native_usex ncurses "$(use_with magic libmagic)" '--without-libmagic') + $(multilib_native_usex ncurses "$(use_with unicode ncursesw)" '--without-ncursesw') + $(multilib_native_usex ncurses "$(use_with !unicode ncurses)" '--without-ncurses') + $(multilib_native_use_with audit) + $(tc-has-tls || echo --disable-tls) + $(use_enable nls) + $(use_enable nls poman) + $(use_enable unicode widechar) + $(use_enable static-libs static) + $(use_with ncurses tinfo) + $(use_with selinux) + ) + + if use build ; then + myeconfargs+=( + --without-systemd + --without-udev + ) + else + myeconfargs+=( + $(multilib_native_use_with systemd) + $(multilib_native_use_with udev) + ) + fi + + if multilib_is_native_abi ; then + myeconfargs+=( + --disable-chfn-chsh + --disable-login + --disable-newgrp + --disable-nologin + --disable-pylibmount + --disable-raw + --disable-vipw + --enable-agetty + --enable-bash-completion + --enable-line + --enable-partx + --enable-rename + --enable-rfkill + --enable-schedutils + --with-systemdsystemunitdir="$(systemd_get_systemunitdir)" + $(use_enable caps setpriv) + $(use_enable cramfs) + $(use_enable fdformat) + $(use_enable hardlink) + $(use_enable kill) + $(use_enable logger) + $(use_enable ncurses pg) + $(use_enable su) + $(use_enable tty-helpers mesg) + $(use_enable tty-helpers wall) + $(use_enable tty-helpers write) + $(use_with cryptsetup) + ) + if [[ ${PV} == *9999 ]] ; then + myeconfargs+=( --enable-asciidoc ) + else + # Upstream is shipping pre-generated man-pages for releases + myeconfargs+=( --disable-asciidoc ) + fi + else + myeconfargs+=( + --disable-all-programs + --disable-asciidoc + --disable-bash-completion + --without-systemdsystemunitdir + --disable-poman + + # build libraries + --enable-libuuid + --enable-libblkid + --enable-libsmartcols + --enable-libfdisk + --enable-libmount + ) + fi + + ECONF_SOURCE="${S}" econf "${myeconfargs[@]}" + + if multilib_is_native_abi && use python ; then + python_foreach_impl python_configure + fi +} + +src_configure() { + append-lfs-flags + multilib-minimal_src_configure +} + +python_compile() { + pushd "${BUILD_DIR}" >/dev/null || die + emake all + popd >/dev/null || die +} + +multilib_src_compile() { + emake all + + if multilib_is_native_abi && use python ; then + python_foreach_impl python_compile + fi +} + +python_test() { + pushd "${BUILD_DIR}" >/dev/null || die + emake check TS_OPTS="--parallel=$(makeopts_jobs) --nonroot" + popd >/dev/null || die +} + +multilib_src_test() { + emake check TS_OPTS="--parallel=$(makeopts_jobs) --nonroot" + if multilib_is_native_abi && use python ; then + python_foreach_impl python_test + fi +} + +python_install() { + pushd "${BUILD_DIR}" >/dev/null || die + emake DESTDIR="${D}" install + python_optimize + popd >/dev/null || die +} + +multilib_src_install() { + if multilib_is_native_abi && use python ; then + python_foreach_impl python_install + fi + + # This needs to be called AFTER python_install call, bug #689190 + emake DESTDIR="${D}" install +} + +multilib_src_install_all() { + dodoc AUTHORS NEWS README* Documentation/{TODO,*.txt,releases/*} + + dosym hexdump /usr/bin/hd + newman - hd.1 <<< '.so man1/hexdump.1' + + # e2fsprogs-libs didn't install .la files, and .pc work fine + find "${ED}" -name "*.la" -delete || die + + if use pam ; then + # See https://github.com/util-linux/util-linux/blob/master/Documentation/PAM-configuration.txt + newpamd "${FILESDIR}/runuser.pamd" runuser + newpamd "${FILESDIR}/runuser-l.pamd" runuser-l + + newpamd "${FILESDIR}/su-l.pamd" su-l + fi + + if use su && ! use suid ; then + # Always force suid su, even when USE=-suid, as su is useless + # for the overwhelming-majority case without suid. + # Users who wish to truly have a no-suid su can strip it out + # via e.g. Portage's suidctl or some other hook. + # See bug #832092 + fperms u+s /bin/su + fi + + # Note: + # Bash completion for "runuser" command is provided by same file which + # would also provide bash completion for "su" command. However, we don't + # use "su" command from this package. + # This triggers a known QA warning which we ignore for now to magically + # keep bash completion for "su" command which shadow package does not + # provide. + + local ver=$(tools/git-version-gen .tarballversion) + local major=$(ver_cut 1 ${ver}) + local minor=$(ver_cut 2 ${ver}) + local release=$(ver_cut 3 ${ver}) + export QA_PKGCONFIG_VERSION="${major}.${minor}.${release:-0}" +} + +pkg_postinst() { + if ! use tty-helpers ; then + elog "The mesg/wall/write tools have been disabled due to USE=-tty-helpers." + fi + + if [[ -z ${REPLACING_VERSIONS} ]] ; then + elog "The agetty util now clears the terminal by default. You" + elog "might want to add --noclear to your /etc/inittab lines." + fi +} -- cgit v1.2.3