diff --git a/.cvsignore b/.cvsignore new file mode 100644 index 0000000..fe49e67 --- /dev/null +++ b/.cvsignore @@ -0,0 +1,2 @@ +floppy-0.12.tar.gz +util-linux-2.13-pre7.tar.bz2 diff --git a/.fmf/version b/.fmf/version deleted file mode 100644 index d00491f..0000000 --- a/.fmf/version +++ /dev/null @@ -1 +0,0 @@ -1 diff --git a/.gitignore b/.gitignore deleted file mode 100644 index 15c7c05..0000000 --- a/.gitignore +++ /dev/null @@ -1,108 +0,0 @@ -/floppy-0.16.tar.bz2 -/util-linux-2.19-rc1.tar.bz2 -/util-linux-2.19-rc1-32-gbded43d.tar.bz2 -/util-linux-2.19-rc2.tar.bz2 -/util-linux-2.19-rc3.tar.bz2 -/util-linux-2.19.tar.bz2 -*~ -.*.log -*.rpm -/floppy-0.18.tar.bz2 -/util-linux-2.19.1-rc1.tar.bz2 -/util-linux-2.19.1.tar.bz2 -/util-linux-2.20-rc1.tar.bz2 -/util-linux-2.20-rc2.tar.bz2 -/util-linux-2.20.tar.bz2 -/util-linux-2.20.1.tar.bz2 -/util-linux-2.21-rc2.tar.xz -/util-linux-2.21.tar.xz -/util-linux-2.21.1.tar.xz -/util-linux-2.21.2.tar.xz -/util-linux-2.22-rc2.tar.xz -/util-linux-2.22.tar.xz -/util-linux-2.22.1.tar.xz -/util-linux-2.22.2.tar.xz -/util-linux-2.23-rc1.tar.xz -/util-linux-2.23-rc2.tar.xz -/util-linux-2.23.tar.xz -/util-linux-2.23.1.tar.xz -/util-linux-2.23.2.tar.xz -/util-linux-2.24-rc1.tar.xz -/util-linux-2.24.tar.xz -/util-linux-2.24.1.tar.xz -/util-linux-2.24.2.tar.xz -/util-linux-2.25-rc1.tar.xz -/util-linux-2.25-rc2.tar.xz -/util-linux-2.25.tar.xz -/util-linux-2.25.1-rc1.tar.xz -/util-linux-2.25.1.tar.xz -/util-linux-2.25.2.tar.xz -/util-linux-2.26-rc1.tar.xz -/util-linux-2.26-rc2.tar.xz -/util-linux-2.26.tar.xz -/util-linux-2.26.2.tar.xz -/util-linux-2.27-rc1.tar.xz -/util-linux-2.27-rc2.tar.xz -/util-linux-2.27.tar.xz -/util-linux-2.27.1.tar.xz -/util-linux-2.28-rc1.tar.xz -/util-linux-2.28-rc2.tar.xz -/util-linux-2.28.tar.xz -/util-linux-2.28.1.tar.xz -/util-linux-2.28.2.tar.xz -/util-linux-2.29-rc1.tar.xz -/util-linux-2.29-rc2.tar.xz -/util-linux-2.29.tar.xz -/util-linux-2.29.1.tar.xz -/util-linux-2.29.2.tar.xz -/util-linux-2.30-rc1.tar.xz -/util-linux-2.30.tar.xz -/util-linux-2.30.1.tar.xz -/util-linux-2.30.2.tar.xz -/util-linux-2.31-rc1.tar.xz -/util-linux-2.31-rc2.tar.xz -/util-linux-2.31.tar.xz -/util-linux-2.32-rc1.tar.xz -/util-linux-2.32.tar.xz -/util-linux-2.32.1.tar.xz -/util-linux-2.33-rc2.tar.xz -/util-linux-2.33.1.tar.xz -/util-linux-2.33.2.tar.xz -/util-linux-2.34-rc1.tar.xz -/util-linux-2.34-rc2.tar.xz -/util-linux-2.34.tar.xz -/util-linux-2.35-rc1.tar.xz -/util-linux-2.35-rc1-20-63f8.tar.xz -/util-linux-2.35-rc2.tar.xz -/util-linux-2.35.tar.xz -/util-linux-2.35.1.tar.xz -/util-linux-2.35.2.tar.xz -/util-linux-2.36.tar.xz -/util-linux-2.36.1.tar.xz -/util-linux-2.36.2.tar.xz -/util-linux-2.37-rc2.tar.xz -/util-linux-2.37.tar.xz -/util-linux-2.37.2.tar.xz -/util-linux-2.38-rc1.tar.xz -/util-linux-2.38-rc3.tar.xz -/util-linux-2.38.tar.xz -/util-linux-2.38.1.tar.xz -/util-linux-2.39-rc1.tar.xz -/util-linux-2.39-rc2.tar.xz -/util-linux-2.39-rc3.tar.xz -/util-linux-2.39.tar.xz -/util-linux-2.39.1.tar.xz -/util-linux-2.39.2.tar.xz -/util-linux-2.39.3.tar.xz -/util-linux-2.40-rc1.tar.xz -/util-linux-2.40.tar.xz -/util-linux-2.40.1.tar.xz -/util-linux-2.40.2.tar.xz -/util-linux-2.40.4.tar.xz -/util-linux-2.41.tar.xz -/util-linux-2.41.1.tar.xz -/util-linux-2.41.2.tar.xz -/util-linux-2.41.3.tar.xz -/util-linux-2.42.tar.xz -/util-linux-2.42.1.tar.xz -/util-linux-2.42.2.tar.xz diff --git a/0000-login-use-O_CREAT-on-lastlog.patch b/0000-login-use-O_CREAT-on-lastlog.patch deleted file mode 100644 index 39751c2..0000000 --- a/0000-login-use-O_CREAT-on-lastlog.patch +++ /dev/null @@ -1,27 +0,0 @@ -From a2357184ff3dc3beb001fcb12e1e4c0dcf8d0dbd Mon Sep 17 00:00:00 2001 -From: Karel Zak -Date: Tue, 2 Dec 2025 16:15:44 +0100 -Subject: login: use O_CREAT on lastlog - -Addresses: https://bugzilla.redhat.com/show_bug.cgi?id=151635 -Signed-off-by: Karel Zak ---- - login-utils/login.c | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/login-utils/login.c b/login-utils/login.c -index 321f9d6ce..edc69fd9a 100644 ---- a/login-utils/login.c -+++ b/login-utils/login.c -@@ -682,7 +682,7 @@ static void log_lastlog(struct login_context *cxt) - sa.sa_handler = SIG_IGN; - sigaction(SIGXFSZ, &sa, &oldsa_xfsz); - -- fd = open(_PATH_LASTLOG, O_RDWR, 0); -+ fd = open(_PATH_LASTLOG, O_RDWR | O_CREAT, 0); - if (fd < 0) - goto done; - offset = cxt->pwd->pw_uid * sizeof(ll); --- -2.51.1 - diff --git a/0001-login-add-run-motd.d-to-the-hardcoded-MOTD_FILE.patch b/0001-login-add-run-motd.d-to-the-hardcoded-MOTD_FILE.patch deleted file mode 100644 index 91d7f5c..0000000 --- a/0001-login-add-run-motd.d-to-the-hardcoded-MOTD_FILE.patch +++ /dev/null @@ -1,27 +0,0 @@ -From 617a887a6ec7e433f6a9f4c60592ed38b12b9f18 Mon Sep 17 00:00:00 2001 -From: Karel Zak -Date: Tue, 2 Dec 2025 16:17:55 +0100 -Subject: login: add /run/motd.d` to the hardcoded MOTD_FILE - -Addresses: https://github.com/coreos/console-login-helper-messages/issues/60 -Signed-off-by: Karel Zak ---- - include/pathnames.h | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/include/pathnames.h b/include/pathnames.h -index 34ba11ca3..c91a077e1 100644 ---- a/include/pathnames.h -+++ b/include/pathnames.h -@@ -41,7 +41,7 @@ - #ifndef _PATH_MAILDIR - # define _PATH_MAILDIR "/var/spool/mail" - #endif --#define _PATH_MOTDFILE "/usr/share/misc/motd:/run/motd:/etc/motd" -+#define _PATH_MOTDFILE "/usr/share/misc/motd:/run/motd:/run/motd.d:/etc/motd:/etc/motd.d" - #ifndef _PATH_NOLOGIN - # define _PATH_NOLOGIN "/etc/nologin" - #endif --- -2.51.1 - diff --git a/Makefile b/Makefile new file mode 100644 index 0000000..4ec2b9c --- /dev/null +++ b/Makefile @@ -0,0 +1,6 @@ +# Makefile for source rpm: util-linux +# $Id$ +NAME := util-linux +SPECFILE = $(firstword $(wildcard *.spec)) + +include ../common/Makefile.common diff --git a/STAGE1-util-linux b/STAGE1-util-linux deleted file mode 100644 index f492ecb..0000000 --- a/STAGE1-util-linux +++ /dev/null @@ -1,12 +0,0 @@ -srpm util-linux -mcd $BUILDDIR/$1 -cat < config.cache -ax_cv_have_tls=yes -scanf_cv_alloc_modifier=ms -EOF -$SRC/${1}-*/configure $TCONFIGARGS --without-ncurses --without-tinfo \ - --prefix=/usr --libexecdir=/usr/lib${SUFFIX} --libdir=/usr/lib${SUFFIX} \ - --disable-wall --cache-file=config.cache --without-python --without-systemd -notparallel -make $J V=1 -make $J install DESTDIR=${ROOTFS} diff --git a/adjtime b/adjtime deleted file mode 100644 index 3127bd0..0000000 --- a/adjtime +++ /dev/null @@ -1,2 +0,0 @@ -0.0 0 0.0 -0 diff --git a/changelog b/changelog deleted file mode 100644 index e9f4163..0000000 --- a/changelog +++ /dev/null @@ -1,2341 +0,0 @@ -* Wed Feb 7 2024 Karel Zak - 2.40-0.8 -- add autorelease and autochangelog - -* Fri Feb 2 2024 Karel Zak - 2.40-0.1 -- upgrade to v2.40-rc1 -- add setpgid, enosys, exch and lsclocks commands - -* Thu Jan 25 2024 Karel Zak - 2.39.3-4 -- improve fix for #2256391 (util-linux-i18n conflicts) - -* Thu Jan 25 2024 Karel Zak - 2.39.3-3 -- fix #2258501 - dnf5 unusable with libsmartcols - -* Thu Jan 11 2024 Karel Zak - 2.39.3-2 -- fix #2256391 util-linux-i18n conflicts with file from package shadow-utils - -* Sun Dec 31 2023 Karel Zak - 2.39.3-1 -- upgrade to v2.39.3 - https://kernel.org/pub/linux/utils/util-linux/v2.39/v2.39.3-ReleaseNotes - -* Sat Dec 2 2023 Daan De Meyer - 2.39.2-2 -- Move sulogin to util-linux-core - -* Thu Aug 17 2023 Karel Zak - 2.39.2-1 -- fix libmount atime regression -- upgrade to v2.39.2 - https://kernel.org/pub/linux/utils/util-linux/v2.39/v2.39.2-ReleaseNotes - -* Sat Jul 22 2023 Fedora Release Engineering - 2.39.1-3 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_39_Mass_Rebuild - -* Wed Jun 28 2023 Python Maint - 2.39.1-2 -- Rebuilt for Python 3.12 - -* Wed Jun 28 2023 Karel Zak - 2.39.1-1 -- upgrade to v2.39.1 - https://kernel.org/pub/linux/utils/util-linux/v2.39/v2.39.1-ReleaseNotes - -* Tue Jun 13 2023 Python Maint - 2.39-5 -- Rebuilt for Python 3.12 - -* Thu May 25 2023 Karel Zak - 2.39-4 -- fix mount when /sbin/mount. executed - -* Mon May 22 2023 Karel Zak - 2.39-3 -- fix mount options prepend/insert and merging (upstream) - -* Thu May 18 2023 Adam Williamson - 2.39-2 -- Have util-linux obsolete and provide util-linux-user - -* Thu May 18 2023 Karel Zak - 2.39-1 -- upgrade to v2.39 -- remove dependence on libuser -- remove util-linux-user subpackage -- enable translated man pages -- add util-linux-i18n subpackage - -* Wed Apr 19 2023 Karel Zak - 2.39-0.5 -- upgrade to v2.39-rc3 (fixes XFS and rw/ro issues) - -* Wed Apr 5 2023 Karel Zak - 2.39-0.4 -- fix #2180593 (superblock reconfiguration libmount issue) - -* Tue Apr 4 2023 Karel Zak - 2.39-0.3 -- fix spec file - -* Tue Apr 4 2023 Karel Zak - 2.39-0.2 -- upgrade to v2.39-rc2 - -* Mon Mar 20 2023 Karel Zak - 2.39-0.1 -- upgrade to v2.39-rc1 - https://kernel.org/pub/linux/utils/util-linux/v2.39/v2.39-ReleaseNotes - -* Sat Jan 21 2023 Fedora Release Engineering - 2.38.1-4 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild - -* Sat Dec 17 2022 Florian Weimer - 2.38.1-3 -- Backport upstream patch to fix C99 issue in kill - -* Mon Aug 22 2022 Karel Zak - 2.38.1-2 -- improve tmpfiles.d use in spec file - -* Thu Aug 4 2022 Karel Zak - 2.38.1-1 -- upgrade to v2.38.1 - https://kernel.org/pub/linux/utils/util-linux/v2.38/v2.38.1-ReleaseNotes - -* Sat Jul 23 2022 Fedora Release Engineering - 2.38-5 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild - -* Mon Jun 13 2022 Python Maint - 2.38-4 -- Rebuilt for Python 3.11 - -* Wed Apr 13 2022 Karel Zak - 2.38-3 -- fix spec file changelog order - -* Wed Mar 30 2022 Zbigniew Jędrzejewski-Szmek - 2.38-2 -- simplify creation of /etc/mtab symlink - -* Wed Mar 30 2022 Karel Zak - 2.38-1 -- upgrade to v2.38 -- don't (re)generate build-system -- modernize spec file style (thanks to Zbigniew) - -* Thu Mar 17 2022 Zbigniew Jędrzejewski-Szmek - 2.38-0.5 -- Drop very old upgrade scriptlet for libblkid - -* Wed Mar 16 2022 Karel Zak - 2.38-0.4 -- upgrade to v2.38-rc3 - https://mirrors.edge.kernel.org/pub/linux/utils/util-linux/v2.38/v2.38-ReleaseNotes - -* Wed Feb 2 2022 Karel Zak - 2.38-0.3 -- add /usr/lib/tmpfiles.d/uuidd.conf (based on #2047952) - -* Wed Feb 2 2022 Karel Zak - 2.38-0.2 -- release ownership of /var/log/lastlog - -* Mon Jan 31 2022 Karel Zak - 2.38-0.1 -- upgrade to v2.38-rc1 - -* Sat Jan 22 2022 Fedora Release Engineering - 2.37.2-2 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild - -* Tue Aug 17 2021 Karel Zak - 2.37.2-1 -* upgrade to v2.37.2 - -* Fri Jul 23 2021 Fedora Release Engineering - 2.37-6 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild - -* Wed Jul 14 2021 Karel Zak - 2.37-5 -- remove unused util-linux-60-raw.rules - -* Wed Jul 14 2021 Karel Zak - 2.37-4 -- disable raw(8) - no more supported since Linux v5.14 (commit 03e4922f1c81fc2ed3a87b4f91a8d3aafc7e093) -- remove dependence on deprecated pcre2posix.h -- fix #1981729 - close_range() 3rd argument - -* Wed Jun 16 2021 Richard W.M. Jones - 2.37-3 -- Rebuild for updated pcre2 - -* Fri Jun 04 2021 Python Maint - 2.37-2 -- Rebuilt for Python 3.10 - -* Tue Jun 1 2021 Karel Zak - 2.37-1 -- upgrade to v2.37 -- introduce util-linux-core subpackage - -* Fri May 14 2021 Karel Zak - 2.37-0.1 -- upgrade to v2.37-rc2 - https://kernel.org/pub/linux/utils/util-linux/v2.37/v2.37-ReleaseNotes - -* Tue Mar 02 2021 Zbigniew Jędrzejewski-Szmek - 2.36.2-3 -- Rebuilt for updated systemd-rpm-macros - See https://pagure.io/fesco/issue/2583. - -* Tue Mar 2 2021 Karel Zak - 2.36.2-2 -- spec file cleanup https://src.fedoraproject.org/rpms/util-linux/pull-request/9 - -* Fri Feb 12 2021 Karel Zak - 2.36.2-1 -- upgrade to stable upstream 2.36.2 - https://mirrors.edge.kernel.org/pub/linux/utils/util-linux/v2.36/v2.36.2-ReleaseNotes - -* Wed Jan 27 2021 Kelvin Fan - 2.36.1-4 -- Add patch to add /run/motd.d to default MOTD_FILE in login(1) - -* Thu Jan 14 2021 Karel Zak - 2.36.1-3 -- improve uuidd scriptlets (fix #1767553) - -* Thu Nov 19 2020 Karel Zak - 2.36.1-2 -- remove unused patches -- remove versions and seq.numbers from patch names -- fix mount "symfollow" issue (upstream patch) - -* Mon Nov 16 2020 Karel Zak - 2.36.1-1 -- upgrade to stable upstream 2.36.1 - -* Thu Nov 12 2020 Tom Stellard - 2.36-4 -- Use make macros -- https://fedoraproject.org/wiki/Changes/UseMakeBuildInstallMacro - -* Tue Sep 01 2020 Karel Zak - 2.36-3 -- remove mountinfo workaround (unnecessary for kernel 5.8) -- fix #1860461 - sfdisk regression creating simple 3 partition MBR disk - -* Wed Jul 29 2020 Fedora Release Engineering - 2.36-2 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild - -* Thu Jul 23 2020 Karel Zak - 2.36-1 -- upgrade to upstream release v2.36 - https://www.kernel.org/pub/linux/utils/util-linux/v2.36/v2.36-ReleaseNotes -- add irqtop and lsirq commands - -* Tue May 26 2020 Miro Hrončok - 2.35.2-2 -- Rebuilt for Python 3.9 - -* Wed May 20 2020 Karel Zak - 2.35.2-1 -- upgrade to upstream bug fix release 2.35.2 - https://www.kernel.org/pub/linux/utils/util-linux/v2.35/v2.35.2-ReleaseNotes - -* Wed Apr 15 2020 Karel Zak - 2.35.1-9 -- fix copy & past bug in specfile changelog - -* Wed Apr 15 2020 Karel Zak - 2.35.1-8 -- fix #1822226 - remove pam_console dependency -- fix #1823463 - hwclock unable to set system time - -* Tue Mar 24 2020 Kalev Lember - 2.35.1-7 -- Another attempt at enabling fstrim.timer on F32 upgrades (#1811506) - -* Thu Mar 19 2020 Karel Zak - 2.35.1-6 -- fix #1811506 (triggerpostun) - -* Tue Feb 25 2020 Karel Zak - 2.35.1-5 -- fix lsblk -P output for RAIDs, etc. - -* Thu Feb 06 2020 Karel Zak - 2.35.1-4 -- add triggerpostun for fstrim.timer (#1785041, FESCo #2309) - -* Tue Feb 04 2020 Karel Zak - 2.35.1-3 -- fix fstrim.service (util-linux github #948) - -* Tue Feb 04 2020 Karel Zak - 2.35.1-2 -- fix sfdisk dump issue (util-linux github #949) - -* Mon Feb 03 2020 Karel Zak - 2.35.1-1 -- upgrade to upstream bug fix release 2.35.1 - -* Fri Jan 31 2020 Fedora Release Engineering - 2.35-2 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild - -* Tue Jan 21 2020 Karel Zak - 2.35-1 -- upgrade to v2.35 - -* Thu Jan 9 2020 Karel Zak - 2.35-0.5 -- upgrade to v2.35-rc2 - -* Fri Dec 20 2019 Karel Zak - 2.35-0.4 -- fix #1784536 - Segfaults in agetty during Cloud image testing - -* Fri Dec 20 2019 Karel Zak - 2.35-0.3 -- upgrade to the upstream git snapshot (v2.35-rc1-20-g63f8c66af) -- fix #1783066 - Fedora-Rawhide images do not boot - -* Thu Dec 12 2019 Adam Williamson - 2.35-0.2 -- Revert upstream commit 7ef86a0 to fix RHBZ #1783066 - -* Wed Dec 11 2019 Karel Zak - 2.35-0.1 -- upgrade to v2.35-rc1 - https://www.kernel.org/pub/linux/utils/util-linux/v2.35/v2.35-ReleaseNotes - -* Fri Sep 13 2019 Karel Zak - 2.34-6 -- fix https://github.com/systemd/systemd/issues/10872 - -* Thu Sep 12 2019 Karel Zak - 2.34-5 -- fix #1751290 - regression: lsblk not showing PKNAME in f31+ - -* Thu Sep 05 2019 Karel Zak - 2.34-4 -- add BuildRequires: readline for fdisks - -* Mon Aug 19 2019 Miro Hrončok - 2.34-3 -- Rebuilt for Python 3.8 - -* Wed Jul 24 2019 Karel Zak - 2.34-2 -- fix lscpu compilation on ppc - -* Fri Jun 14 2019 Karel Zak - 2.34-1 -- upgrade to v2.34 - -* Thu May 30 2019 Karel Zak - 2.34-0.2 -- upgrade to v2.34-rc2 - -* Tue Apr 30 2019 Karel Zak - 2.34-0.1 -- add command hardlink(1) (merged into util-linux upstream) -- upgrade to v2.34-rc1 - http://www.kernel.org/pub/linux/utils/util-linux/v2.34/v2.34-ReleaseNotes - -* Tue Apr 9 2019 Karel Zak - 2.33.2-1 -- upgrade to v2.33.2 - https://mirrors.edge.kernel.org/pub/linux/utils/util-linux/v2.33/v2.33.2-ReleaseNotes - -* Thu Mar 07 2019 Igor Gnatenko - 2.33.1-4 -- Remove obsolete scriptlets - -* Sun Feb 03 2019 Fedora Release Engineering - 2.33.1-3 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild - -* Mon Jan 14 2019 Björn Esser - 2.33.1-2 -- Rebuilt for libcrypt.so.2 (#1666033) - -* Wed Jan 9 2019 Karel Zak - 2.33.1-1 -- upgrade to v2.33.1 - https://mirrors.edge.kernel.org/pub/linux/utils/util-linux/v2.33/v2.33.1-ReleaseNotes - -* Thu Nov 1 2018 Karel Zak - 2.33-0.1 -- Remove ldconfig scriptlet, now done via. transfiletrigger in glibc [James Antill] -- upgrade to v2.33-rc2 - http://www.kernel.org/pub/linux/utils/util-linux/v2.33/v2.33-ReleaseNotes - -* Mon Jul 16 2018 Karel Zak - 2.32.1-1 -- upgrade to v2.32.1 - http://www.kernel.org/pub/linux/utils/util-linux/v2.32/v2.32.1-ReleaseNotes - -* Sat Jul 14 2018 Fedora Release Engineering - 2.32-7 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_29_Mass_Rebuild - -* Tue Jun 19 2018 Miro Hrončok - 2.32-6 -- Rebuilt for Python 3.7 - -* Fri May 18 2018 Karel Zak - 2.32-5 -- move /etc/adjtime config from initscripts to util-linux - -* Wed Apr 11 2018 Karel Zak - 2.32-4 -- fix #1560642 - uuidd.service does not start - -* Tue Apr 10 2018 Karel Zak - 2.32-3 -- remove unused build option --enable-libmount-force-mountinfo (it's default now) - -* Tue Mar 27 2018 Karel Zak - 2.32-2 -- fix #1560283 - column does not properly handle spaces at beginning of tab-separated table columns - -* Wed Mar 21 2018 Karel Zak - 2.32-1 -- upgrade to v2.32 - -* Tue Feb 20 2018 Karel Zak - 2.32-0.2 -- add BuildRequires gcc - -* Tue Feb 13 2018 Karel Zak - 2.32-0.1 -- upgrade to v2.32-rc1 - http://www.kernel.org/pub/linux/utils/util-linux/v2.32/v2.32-ReleaseNotes - -* Fri Feb 09 2018 Fedora Release Engineering - 2.31-5 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_28_Mass_Rebuild - -* Sat Jan 20 2018 Björn Esser - 2.31-4 -- Rebuilt for switch to libxcrypt - -* Wed Jan 03 2018 Lumír Balhar - 2.31-3 -- Fix directory ownership in python subpackage - -* Mon Oct 30 2017 Karel Zak - 2.31-2 -- fix dmesg for multi-line records - -* Mon Oct 23 2017 Karel Zak - 2.31-1 -- upgrade to final v2.31 -- move rfkill to sbin (for backward compatibility) - -* Mon Oct 9 2017 Karel Zak - 2.31-0.4 -- fix build error - -* Mon Oct 9 2017 Karel Zak - 2.31-0.3 -- upgrade to v2.31-rc2 -- enable rfkill - -* Mon Sep 25 2017 Karel Zak - 2.31-0.2 -- temporary disable rfkill (fix #1494855) - -* Fri Sep 22 2017 Karel Zak - 2.31-0.1 -- upgrade to v2.31-rc1 - http://ftp.kernel.org/pub/linux/utils/util-linux/v2.31/v2.31-ReleaseNotes - -* Fri Sep 22 2017 Karel Zak - 2.30.2-1 -- upgrade to v2.30.2 - http://ftp.kernel.org/pub/linux/utils/util-linux/v2.30/v2.30.2-ReleaseNotes - -* Mon Aug 14 2017 Karel Zak - 2.30.1-5 -- make ln-s usage more robust - -* Fri Aug 4 2017 Karel Zak - 2.30.1-4 -- fix post install script - -* Wed Aug 2 2017 Karel Zak - 2.30.1-3 -- fix #1390191 - systemd read-only container produces errors - -* Thu Jul 27 2017 Fedora Release Engineering - 2.30.1-2 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Mass_Rebuild - -* Thu Jul 20 2017 Karel Zak - 2.30.1-1 -- upgrade to v2.30.1 - http://ftp.kernel.org/pub/linux/utils/util-linux/v2.30/v2.30.1-ReleaseNotes - -* Fri Jun 2 2017 Karel Zak - 2.30-1 -- upgrade to v2.30 - -* Wed May 17 2017 Karel Zak - 2.30-0.1 -- upgrade to v2.30-rc1 - http://ftp.kernel.org/pub/linux/utils/util-linux/v2.30/v2.30-ReleaseNotes - -* Fri Feb 24 2017 Karel Zak - 2.29.2-1 -- upgrade to v2.29.2 - http://ftp.kernel.org/pub/linux/utils/util-linux/v2.29/v2.29.2-ReleaseNotes - -* Sat Feb 11 2017 Fedora Release Engineering - 2.29.1-2 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_26_Mass_Rebuild - -* Fri Jan 20 2017 Karel Zak - 2.29.1-1 -- upgrade to v2.29.1 - http://ftp.kernel.org/pub/linux/utils/util-linux/v2.29/v2.29.1-ReleaseNotes - -* Mon Dec 19 2016 Miro Hrončok - 2.29-2 -- Rebuild for Python 3.6 - -* Tue Nov 8 2016 Karel Zak - 2.29-1 -- upgrade to v2.29 - -* Wed Oct 19 2016 Karel Zak - 2.29-0.2 -- upgrade to v2.29-rc2 - -* Fri Sep 30 2016 Karel Zak - 2.29-0.1 -- upgrade to v2.29-rc1 - http://ftp.kernel.org/pub/linux/utils/util-linux/v2.29/v2.29-ReleaseNotes - -* Wed Sep 7 2016 Karel Zak - 2.28.2-1 -- upgrade to stable 2.28.2 - http://ftp.kernel.org/pub/linux/utils/util-linux/v2.28/v2.28.2-ReleaseNotes - -* Thu Aug 18 2016 Karel Zak - 2.28.1-1 -- upgrade to stable 2.28.1 - http://ftp.kernel.org/pub/linux/utils/util-linux/v2.28/v2.28.1-ReleaseNotes - -* Tue Jul 19 2016 Fedora Release Engineering - 2.28-4 -- https://fedoraproject.org/wiki/Changes/Automatic_Provides_for_Python_RPM_Packages - -* Mon Jun 13 2016 Karel Zak - 2.28-3 -- fix #1234317 - CD / DVD are rarely automounted - -* Tue Apr 26 2016 Karel Zak - 2.28-2 -- refresh login-lastlog-create.patch - -* Tue Apr 12 2016 Karel Zak - 2.28-1 -- upgrade to stable v2.28 - -* Wed Mar 30 2016 Karel Zak - 2.28-0.3 -- fix libblkid - -* Tue Mar 29 2016 Karel Zak - 2.28-0.2 -- upgrade to v2.28-rc2 - -* Tue Mar 22 2016 Karel Zak - 2.28-0.1 -- upgrade to v2.28-rc1 - http://ftp.kernel.org/pub/linux/utils/util-linux/v2.28/v2.28-ReleaseNotes -- add patch to fix broken swapon -- add subpackage util-linux-user (utils with dependence on libuser) - -* Fri Feb 05 2016 Fedora Release Engineering - 2.27.1-5 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_24_Mass_Rebuild - -* Mon Jan 18 2016 Karel Zak - 2.27.1-4 -- fix #1299255 - boot.iso (from 20160117 Rawhide compose) incorrectly detected as minix FS - -* Wed Nov 18 2015 Karel Zak - 2.27.1-3 -- fix #1259745 - Can't start installation in Rawhide or F23 recent development images - -* Tue Nov 10 2015 Fedora Release Engineering - 2.27.1-2 -- Rebuilt for https://fedoraproject.org/wiki/Changes/python3.5 - -* Mon Nov 2 2015 Karel Zak - 2.27.1 -- upgrade to v2.27.1 - http://ftp.kernel.org/pub/linux/utils/util-linux/v2.27/v2.27.1-ReleaseNotes - -* Mon Sep 7 2015 Karel Zak - 2.27 -- upgrade to v2.27 - -* Mon Aug 24 2015 Karel Zak - 2.27-0.4 -- upgrade to v2.27-rc2 - -* Thu Aug 13 2015 Karel Zak - 2.27-0.3 -- improve version usage in source url - -* Wed Aug 12 2015 Karel Zak - 2.27-0.2 -- fix #1251320 - rfe: please change login to not add /bin:/sbin to $PATH -- apply patches from Lokesh Mandvekar to make spec file more portable - -* Fri Jul 31 2015 Karel Zak - 2.27-0.1 -- upgrade to v2.27-rc1 - http://ftp.kernel.org/pub/linux/utils/util-linux/v2.27/v2.27-ReleaseNotes -- add lsipc - -* Thu Jul 16 2015 Karel Zak - 2.26.2-3 -- fix dates in the spec file - -* Fri Jun 19 2015 Fedora Release Engineering - 2.26.2-2 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_23_Mass_Rebuild - -* Thu Apr 30 2015 Karel Zak - 2.26.2-1 -- upgrade to stable release 2.26.2 - ftp://ftp.kernel.org/pub/linux/utils/util-linux/v2.26/v2.26.2-ReleaseNotes - -* Sat Feb 21 2015 Till Maas - 2.26-2 -- Rebuilt for Fedora 23 Change - https://fedoraproject.org/wiki/Changes/Harden_all_packages_with_position-independent_code - -* Thu Feb 19 2015 Karel Zak 2.26-1 -- upgrade to stable release 2.26 - -* Tue Feb 10 2015 Karel Zak 2.26-0.4 -- fix setarch build on PPC - -* Thu Feb 5 2015 Karel Zak 2.26-0.3 -- upgrade to 2.26-rc2 - -* Fri Jan 16 2015 Karel Zak 2.26-0.2 -- fix 1182778 - remount causes ro / and /home on boot - -* Thu Jan 15 2015 Karel Zak 2.26-0.1 -- upgrade to 2.26-rc1 - ftp://ftp.kernel.org/pub/linux/utils/util-linux/v2.26/v2.26-ReleaseNotes -- build with -pie for uuidd -- new command zramctl - -* Thu Nov 27 2014 Karel Zak 2.25.2-2 -- fix #1168490 - CVE-2014-9114 util-linux: command injection flaw in blkid - -* Fri Oct 24 2014 Karel Zak 2.25.2-1 -- upgrade to stable 2.25.2 - ftp://ftp.kernel.org/pub/linux/utils/util-linux/v2.25/v2.25.2-ReleaseNotes - -* Wed Sep 3 2014 Karel Zak 2.25.1-1 -- upgrade to stable 2.25.1 - ftp://ftp.kernel.org/pub/linux/utils/util-linux/v2.25/v2.25.1-ReleaseNotes - -* Wed Aug 27 2014 Karel Zak 2.25.1-0.1 -- upgrade to release 2.25.1-rc1 - ftp://ftp.kernel.org/pub/linux/utils/util-linux/v2.25/v2.25.1-ReleaseNotes - -* Mon Aug 18 2014 Fedora Release Engineering - 2.25-4 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_22_Mass_Rebuild - -* Wed Aug 6 2014 Tom Callaway 2.25-3 -- fix license handling - -* Thu Jul 24 2014 Karel Zak 2.25-2 -- remove fstrim unit files from uuidd subpackage - -* Tue Jul 22 2014 Karel Zak 2.25-1 -- upgrade to stable release 2.25 - -* Wed Jul 02 2014 Karel Zak 2.25-0.3 -- upgrade to release 2.25-rc2 - -* Wed Jun 25 2014 Peter Jones - 2.25-0.2 -- Fix libblkid's squashfs probe return checking. - Related: rhbz#1112315 - -* Thu Jun 19 2014 Karel Zak 2.25-0.1 -- upgrade to release 2.25-rc1 - ftp://ftp.kernel.org/pub/linux/utils/util-linux/v2.25/v2.25-ReleaseNotes - -* Sun Jun 08 2014 Fedora Release Engineering - 2.24.2-6 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_Mass_Rebuild - -* Wed May 28 2014 Kalev Lember - 2.24.2-5 -- Rebuilt for https://fedoraproject.org/wiki/Changes/Python_3.4 - -* Mon May 12 2014 Karel Zak 2.24.2-4 -- fix #1094935 - script and/or trigger should not directly enable systemd units - -* Mon May 12 2014 Karel Zak 2.24.2-3 -- fix #1090638 - remove pam_securetty.so from .pamd files - -* Wed May 7 2014 Karel Zak 2.24.2-2 -- use systemd macroized scriptlets (#850355) - -* Thu Apr 24 2014 Karel Zak 2.24.2-1 -- upgrade to stable release 2.24.2 - ftp://ftp.kernel.org/pub/linux/utils/util-linux/v2.24/v2.24.2-ReleaseNotes - -* Thu Jan 30 2014 Karel Zak 2.24.1-2 -- use rpm autosetup - -* Mon Jan 20 2014 Karel Zak 2.24.1-1 -- upgrade to stable release 2.24.1 - ftp://ftp.kernel.org/pub/linux/utils/util-linux/v2.24/v2.24.1-ReleaseNotes - -* Mon Nov 18 2013 Karel Zak 2.24-2 -- fix #1031262 - lsblk -D segfault - -* Wed Oct 23 2013 Karel Zak 2.24-1 -- upgrade to upstream release v2.24 -- remove nologin (merged upstream) -- fix #1022217 - fdisk mishandles GPT corruption - -* Fri Sep 27 2013 Karel Zak 2.24-0.1 -- upgrade to upstream release v2.24-rc1 -- add python3 libmount binding - -* Mon Sep 9 2013 Karel Zak 2.23.2-4 -- fix #1005566 - recount_geometry: Process /usr/sbin/fdisk was killed by signal 8 (SIGFPE) -- fix #1005194 - su generates incorrect log entries - -* Mon Sep 9 2013 Karel Zak 2.23.2-3 -- refresh and rename patches -- fix #987787 - Remove lastlogin from su -- fix #950497 - problem umounting loop device -- fix #921498 - multiple internal testsuite failures - -* Thu Aug 1 2013 Karel Zak 2.23.2-2 -- fix 990083 - su doesn't work with pam_ecryptfs - -* Wed Jul 31 2013 Karel Zak 2.23.2-1 -- upgrade to stable release 2.23.2 - ftp://ftp.kernel.org/pub/linux/utils/util-linux/v2.23/v2.23.2-ReleaseNotes - -* Thu Jun 13 2013 Karel Zak 2.23.1-3 -- fix #972457 - agetty idle I/O polling causes elevated CPU usage - -* Wed Jun 5 2013 Karel Zak 2.23.1-2 -- fix #962145 - in.telnetd immediately closes connection - -* Tue May 28 2013 Karel Zak 2.23.1-1 -- upgrade to 2.23.1 -- backport agetty --local-line path - -* Thu Apr 25 2013 Karel Zak 2.23-1 -- upgrade to 2.23 -- add --with check to call make check - -* Mon Apr 15 2013 Karel Zak 2.23-0.7 -- remove unused patches - -* Mon Apr 15 2013 Karel Zak 2.23-0.6 -- remove floppy from util-linux - -* Fri Apr 12 2013 Karel Zak 2.23-0.5 -- fix #948274 - interruption code 0x4003B in libmount.so.1.1.0 - -* Wed Apr 10 2013 Karel Zak 2.23-0.4 -- upgrade to the release 2.23-rc2 - -* Wed Mar 27 2013 Karel Zak 2.23-0.3 -- libblkid ntfs bugfix for build on s390 - -* Wed Mar 27 2013 Karel Zak 2.23-0.2 -- add upstream patches for to fix umount and mount. - -* Fri Mar 22 2013 Karel Zak 2.23-0.1 -- upgrade to the release 2.23-rc1 - ftp://ftp.kernel.org/pub/linux/utils/util-linux/v2.23/v2.23-ReleaseNotes -- add nsenter and blkdiscard -- remove tunelp - -* Wed Feb 20 2013 Karel Zak 2.22.2-6 -- fix #912778 - "runuser -l" doesn't register session to systemd - -* Tue Feb 19 2013 Karel Zak 2.22.2-5 -- fix #902512 - Dependency failed for /home (and blkid fails to tell UUID) -- refresh old patches - -* Wed Feb 6 2013 Karel Zak 2.22.2-4 -- improve convertion to mtab symlink in post script -- spec file cleanup (based on #894199) - -* Sun Feb 3 2013 Karel Zak 2.22.2-3 -- fix #882305 - agetty: unstable /dev/tty* permissions -- fix #885314 - hexdump segfault -- fix #896447 - No newlines in piped "cal" command -- fix libblkid cache usage (upstream patch) -- fix #905008 - uuidd: /usr/sbin/uuidd has incorrect file permissions - -* Tue Jan 15 2013 Karel Zak 2.22.2-2 -- fix #889888 - wipefs does not completely wipe btrfs volume - -* Thu Dec 13 2012 Karel Zak 2.22.2-1 -- upgrade to upstream maintenance release 2.22.2 - -* Mon Nov 19 2012 Karel Zak 2.22.1-5 -- sources cleanup - -* Fri Nov 16 2012 Karel Zak 2.22.1-4 -- fix #872787 - su: COMMAND not specified - -* Thu Nov 1 2012 Karel Zak 2.22.1-3 -- backport upstream runuser(1) -- enable su(1) - -* Thu Nov 1 2012 Karel Zak 2.22.1-2 -- apply pathes from upstream stable/v2.22 branch -- fix #865961 - wipefs -a should use O_EXCL - -* Wed Oct 10 2012 Karel Zak 2.22.1-1 -- upgrade to the release 2.22.1 - -* Wed Oct 3 2012 Karel Zak 2.22-2 -- remove obsolete references to e2fsprogs - -* Thu Sep 6 2012 Karel Zak 2.22-1 -- upgrade to the release 2.22 -- enable eject(1) from util-linux, obsolete original eject package -- fix #853164 - setuid program should have full RELRO -- fix #851230 - probe_ntfs: /usr/sbin/blkid was killed by SIGSEGV - -* Thu Aug 16 2012 Karel Zak 2.22-0.1 -- upgrade to the release 2.22-rc2 - ftp://ftp.kernel.org/pub/linux/utils/util-linux/v2.22/v2.22-ReleaseNotes -- add sulogin, utmpdump, lslocks, wdctl - -* Fri Jul 27 2012 Fedora Release Engineering - 2.21.2-3 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_18_Mass_Rebuild - -* Wed Jun 13 2012 Karel Zak 2.21.2-2 -- replace udev dependenceis with systemd - -* Fri May 25 2012 Karel Zak 2.21.2-1 -- upgrade to bugfix release 2.21.2 -- fix #814699 - namei(1) incorrectly resolves relative symlinks -- fix #820707 - Impossible to unmount nfsv4/krb5 mounts after network disconnect -- fix #816877 - libmount does not close device fd before mount(2) -- fix #822705 - unable to login after installing - -* Fri Mar 30 2012 Karel Zak 2.21.1-1 -- upgrade to bugfix release 2.21.1 - -* Fri Feb 24 2012 Karel Zak 2.21-1 -- upgrade to release 2.21 - -* Thu Feb 09 2012 Karel Zak 2.21-0.2 -- fix #788703 - /run/blkid does not exist - -* Tue Feb 07 2012 Karel Zak 2.21-0.1 -- upgrade to the release 2.21-rc2 - ftp://ftp.kernel.org/pub/linux/utils/util-linux/v2.21/v2.21-ReleaseNotes -- add {fsck,mkfs}.minix -- add new command chcpu(8) -- add new command prlimit(1) -- enable raw(8) command -- move 60-raw.rules from /etc from /usr/lib/udev/rules.d -- move blkid cache from etc to /run/blkid - -* Wed Jan 25 2012 Harald Hoyer 2.20.1-5 -- install everything in /usr - https://fedoraproject.org/wiki/Features/UsrMove - -* Sat Jan 14 2012 Fedora Release Engineering - 2.20.1-4 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_17_Mass_Rebuild - -* Tue Nov 22 2011 Karel Zak 2.20.1-3 -- fix #748216 - util-linux requires pam >= 1.1.3-7 -- remove ddate(1) - -* Wed Oct 26 2011 Fedora Release Engineering - 2.20.1-2 -- Rebuilt for glibc bug#747377 - -* Thu Oct 20 2011 Karel Zak 2.20.1-1 -- upgrade to the release 2.20.1 - ftp://ftp.infradead.org/pub/util-linux/v2.20/v2.20.1-ReleaseNotes - -* Mon Aug 29 2011 Karel Zak 2.20-1 -- upgrade to the release 2.20 - -* Wed Aug 17 2011 Karel Zak 2.20-0.2 -- upgrade to the release 2.20-rc2 - ftp://ftp.kernel.org/pub/linux/utils/util-linux/v2.20/v2.20-rc2-ChangeLog - -* Tue Aug 2 2011 Karel Zak 2.20-0.1 -- upgrade to the release 2.20-rc1 - ftp://ftp.kernel.org/pub/linux/utils/util-linux/v2.20/v2.20-ReleaseNotes - -* Mon Jul 4 2011 Karel Zak 2.19.1-2 -- fix #716483 - /var/tmp --(BIND-mounted)--> /tmp disrupts/hangs bootup -- fix #709681 - failure to mount if a mount point ends with a slash in /etc/fstab -- fix #709319 - 'mount -a' mounts already mounted directories -- fix kernel version parsing - -* Fri May 6 2011 Karel Zak 2.19.1-1 -- upgrade to the release 2.19.1 - ftp://ftp.kernel.org/pub/linux/utils/util-linux/v2.19/v2.19.1-ReleaseNotes - -* Wed Apr 20 2011 Karel Zak 2.19.1-0.1 -- upgrade to the release 2.19.1-rc1 - ftp://ftp.kernel.org/pub/linux/utils/util-linux/v2.19/v2.19.1-rc1-ChangeLog - -* Mon Mar 7 2011 Karel Zak 2.19-2 -- fix #682502 - Broken source URL to floppy tarball, new version available -- upgrade to floppy-0.18 - -* Thu Feb 10 2011 Karel Zak 2.19-1 -- upgrade to the release 2.19 - ftp://ftp.kernel.org/pub/linux/utils/util-linux/v2.19/v2.19-ReleaseNotes -- remove /sbin/mount.tmpfs -- integrated to mount(8) - -* Tue Feb 8 2011 Karel Zak 2.19-0.6 -- fix #665062 - add support for the postlogin PAM stack to util-linux-ng - -* Mon Feb 07 2011 Fedora Release Engineering - 2.19-0.5 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_15_Mass_Rebuild - -* Tue Jan 25 2011 Karel Zak 2.19-0.4 -- upgrade to the release 2.19-rc3 - ftp://ftp.kernel.org/pub/linux/utils/util-linux/v2.19/v2.19-rc3-ChangeLog - -* Tue Jan 25 2011 Karel Zak 2.19-0.3 -- upgrade to the release 2.19-rc2 - ftp://ftp.kernel.org/pub/linux/utils/util-linux/v2.19/v2.19-rc2-ChangeLog -- fix #671893 - SELinux is preventing /bin/chown from 'setattr' accesses - on the file mounts. - -* Wed Jan 19 2011 Karel Zak 2.19-0.2 -- clean up specfile (review #667416) - -* Wed Jan 5 2011 Karel Zak 2.19-0.1 -- upgrade to the release 2.19-rc1 - ftp://ftp.kernel.org/pub/linux/utils/util-linux/v2.19/v2.19-ReleaseNotes - -* Tue Oct 26 2010 Karel Zak 2.18-5 -- fix #645640 - new "-s" parameter parsing in agetty does not work -- add -l (lock) support to fsck - -* Wed Aug 18 2010 Karel Zak 2.18-4 -- fix #623685 - please extend agetty to not require a baud rate to be specified - -* Thu Aug 5 2010 Karel Zak 2.18-3 -- fix #620924 - /sbin/mount.tmpfs uses not available /usr/bin/id - -* Mon Aug 2 2010 Karel Zak 2.18-2 -- fix #615719 - tmpfs mount fails with 'user' option. -- fix #598631 - shutdown, reboot, halt and C-A-D don't work -- fix #618957 - ISO images listed in fstab are mounted twice at boot - -* Wed Jun 30 2010 Karel Zak 2.18-1 -- upgrade to the final 2.18 - ftp://ftp.kernel.org/pub/linux/utils/util-linux-ng/v2.18/v2.18-ReleaseNotes - -* Fri Jun 18 2010 Karel Zak 2.18-0.2 -- upgrade to 2.18-rc2 - ftp://ftp.kernel.org/pub/linux/utils/util-linux-ng/v2.18/v2.18-rc2-ChangeLog - -* Tue Jun 8 2010 Karel Zak 2.18-0.1 -- upgrade to the release 2.18-rc1 - ftp://ftp.kernel.org/pub/linux/utils/util-linux-ng/v2.18/v2.18-ReleaseNotes - ftp://ftp.kernel.org/pub/linux/utils/util-linux-ng/v2.18/v2.18-rc1-ChangeLog - -* Mon Apr 12 2010 Karel Zak 2.17.2-1 -- fix #581252 - remounting tmpfs fails because of hidden rootcontext= -- fix #580296 - "rtcwake" does miss the "off" option -- fix #575734 - use microsecond resolution for blkid cache entries -- upgrade to the bugfix release 2.17.2 - ftp://ftp.kernel.org/pub/linux/utils/util-linux-ng/v2.17/v2.17.2-ReleaseNotes - ftp://ftp.kernel.org/pub/linux/utils/util-linux-ng/v2.17/v2.17.2-ChangeLog -- minor fixed in spec file - -* Thu Mar 11 2010 Karel Zak 2.17.1-2 -- fix #533874 - libblkid should allow scanning of slow devices (eg. cdroms) - -* Mon Feb 22 2010 Karel Zak 2.17.1-1 -- upgrade to the final 2.17.1 - ftp://ftp.kernel.org/pub/linux/utils/util-linux-ng/v2.17/v2.17.1-ReleaseNotes - ftp://ftp.kernel.org/pub/linux/utils/util-linux-ng/v2.17/v2.17.1-ChangeLog - -* Tue Feb 16 2010 Karel Zak 2.17.1-0.1 -- upgrade to 2.17.1-rc1 - -* Tue Feb 16 2010 Karel Zak 2.17-4 -- fix uuidd init script - -* Fri Feb 12 2010 Karel Zak 2.17-3 -- fix #541402 - uuidd initscript lsb compliance - -* Fri Jan 8 2010 Karel Zak 2.17-2 -- remove Provides: lib{uuid,blkid}-static (thanks to Michael Schwendt) -- remove useless URL to sf.net - -* Fri Jan 8 2010 Karel Zak 2.17-1 -- upgrade to the final 2.17 - ftp://ftp.kernel.org/pub/linux/utils/util-linux-ng/v2.17/v2.17-ReleaseNotes - ftp://ftp.kernel.org/pub/linux/utils/util-linux-ng/v2.17/v2.17-ChangeLog -- fix #545147 - util-linux-ng : Violation of the Packaging Guidelines - (remove uuid and blkid static libs) - -* Mon Dec 14 2009 Karel Zak 2.17-0.6 -- minor fixes in spec file (fix URL, add Requires, add LGPLv2+) - -* Wed Dec 9 2009 Karel Zak 2.17-0.5 -- upgrade to 2.17-rc2 - ftp://ftp.kernel.org/pub/linux/utils/util-linux-ng/v2.17/v2.17-rc2-ChangeLog - -* Mon Dec 7 2009 Karel Zak 2.17-0.4 -- add clock.8 man page (manlink to hwclock) -- add --help to mount.tmpfs - -* Mon Nov 23 2009 Karel Zak 2.17-0.3 -- upgrade to 2.17-rc1 - ftp://ftp.kernel.org/pub/linux/utils/util-linux-ng/v2.17/v2.17-rc1-ChangeLog - -* Tue Nov 10 2009 Karel Zak 2.17-0.2.git10dfc39 -- upgrade to pre-release snapshot (official changelog not available yet, see - http://git.kernel.org/?p=utils/util-linux-ng/util-linux-ng.git for now) - -* Mon Oct 19 2009 Karel Zak 2.17-0.1.git5e51568 -- upgrade to pre-release snapshot (official changelog not available yet, see - http://git.kernel.org/?p=utils/util-linux-ng/util-linux-ng.git for now) -- new commands: fallocate, unshare, wipefs -- libblkid supports topology and partitions probing -- remove support for --rmpart[s] from blockdev(8) (util-linux-ng-2.14-blockdev-rmpart.patch) -- merged upstream: - util-linux-ng-2.14-sfdisk-dump.patch - util-linux-ng-2.16-blkid-swsuspend.patch - util-linux-ng-2.16-libblkid-compression.patch - util-linux-ng-2.16-libblkid-ext2.patch - util-linux-ng-2.16-switchroot-tty.patch - -* Mon Oct 5 2009 Karel Zak 2.16-13 -- fix spec file - -* Fri Oct 2 2009 Karel Zak 2.16-12 -- release++ - -* Thu Oct 1 2009 Karel Zak 2.16-11 -- fix #519237 - bash: cannot set terminal process group (-1): Inappropriate ioctl for device - -* Wed Sep 16 2009 Tomas Mraz - 2.16-10 -- use password-auth common PAM configuration instead of system-auth and - drop pam_console.so call from the remote PAM config file - -* Mon Sep 14 2009 Karel Zak 2.16-9 -- fix #522718 - sfdisk -d /dev/xxx | sfdisk --force /dev/yyy fails when LANG is set -- fix typo in swsuspend detection - -* Wed Aug 26 2009 Tomas Mraz - 2.16-8 -- rebuilt with new audit - -* Sun Aug 23 2009 Karel Zak 2.16-7 -- fix #518572 - blkid requires ext2.ko to be decompressed on installation media - -* Thu Aug 13 2009 Karel Zak 2.16-5 -- fix #513104 - blkid returns no fstype for ext2 device when ext2 module not loaded - -* Wed Aug 5 2009 Stepan Kasal 2.16-4 -- set conflict with versions of e2fsprogs containing fsck - -* Thu Jul 30 2009 Karel Zak 2.16-3 -- remove the mount.conf support (see #214891) - -* Mon Jul 27 2009 Karel Zak 2.16-2 -- fix #214891 - add mount.conf and MTAB_LOCK_DIR= option - -* Sat Jul 25 2009 Karel Zak 2.16-1 -- upgrade to 2.16 - ftp://ftp.kernel.org/pub/linux/utils/util-linux-ng/v2.16/v2.16-ReleaseNotes -- enable built-in libuuid (replacement for the old uuid stuff from e2fsprogs) -- new commands switch_root, uuidgen and uuidd (subpackage) - -* Wed Jun 10 2009 Karel Zak 2.15.1-1 -- upgrade to 2.15.1 - -* Mon Jun 8 2009 Karel Zak 2.15.1-0.2 -- set BuildRequires: e2fsprogs-devel -- add Requires: e2fsprogs-devel to libblkid-devel - -* Thu Jun 4 2009 Karel Zak 2.15.1-0.1 -- upgrade to 2.15.1-rc1 - ftp://ftp.kernel.org/pub/linux/utils/util-linux-ng/v2.15/v2.15-ReleaseNotes - ftp://ftp.kernel.org/pub/linux/utils/util-linux-ng/v2.15/v2.15.1-rc1-ChangeLog -- merged patches: - util-linux-ng-2.14-login-remote.patch - util-linux-ng-2.14-fdisk-4k-I.patch - util-linux-ng-2.14-fdisk-4k-II.patch - util-linux-ng-2.14-fdisk-4k-III.patch - util-linux-ng-2.14-dmesg-r.patch - util-linux-ng-2.14-flock-segfaults.patch - util-linux-ng-2.14-renice-n.patch -- new commands: lscpu, ipcmk -- remove support for "managed" and "kudzu" mount options -- cleanup spec file -- enable built-in libblkid (replacement for the old blkid from e2fsprogs) - -* Thu Apr 2 2009 Karel Zak 2.14.2-8 -- fix #490769 - post scriptlet failed (thanks to Dan Horak) - -* Fri Mar 20 2009 Karel Zak 2.14.2-7 -- fix some nits in mount.tmpfs - -* Fri Mar 20 2009 Karel Zak 2.14.2-6 -- fix #491175 - mount of tmpfs FSs fail at boot - -* Thu Mar 19 2009 Karel Zak 2.14.2-5 -- fix #489672 - flock segfaults when file name is not given (upstream) -- fix #476964 - Mount /var/tmp with tmpfs creates denials -- fix #487227 - fdisk 4KiB hw sectors support (upstream) -- fix #477303 - renice doesn't support -n option (upstream) - -* Wed Feb 25 2009 Fedora Release Engineering - 2.14.2-4 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_11_Mass_Rebuild - -* Fri Feb 20 2009 Karel Zak 2.14.2-3 -- add -r option to dmesg(1) - -* Mon Feb 9 2009 Karel Zak 2.14.2-2 -- fix typo in spec file - -* Mon Feb 9 2009 Karel Zak 2.14.2-1 -- upgrade to stable 2.14.2 - ftp://ftp.kernel.org/pub/linux/utils/util-linux-ng/v2.14/v2.14.2-ReleaseNotes - -* Thu Jan 22 2009 Karel Zak 2.14.2-0.2 -- fix #480413 - util-linux-ng doesn't include scriptreplay -- fix #479002 - remove dependency on ConsoleKit-libs -- upgrade to 2.14.2-rc2 - -* Mon Dec 22 2008 Karel Zak 2.14.2-0.1 -- upgrade to 2.14.2-rc1 -- refresh old patches - -* Fri Nov 21 2008 Karel Zak 2.14.1-5 -- fix #472502 - problem with fdisk and use +sectors for the end of partition - -* Mon Oct 6 2008 Karel Zak 2.14.1-3 -- fix #465761 - mount manpage is missing uid/gid mount options for tmpfs -- refresh util-linux-ng-2.14-mount-file_t.patch (fuzz=0) - -* Wed Sep 10 2008 Karel Zak 2.14.1-2 -- remove obsolete pam-console support - -* Wed Sep 10 2008 Karel Zak 2.14.1-1 -- upgrade to stable 2.14.1 - -* Thu Aug 14 2008 Karel Zak 2.14.1-0.1 -- upgrade to 2.14.1-rc1 -- refresh old patches - -* Thu Jul 24 2008 Karel Zak 2.14-3 -- update util-linux-ng-2.14-mount-file_t.patch to make - the SELinux warning optional (verbose mode is required) - -* Tue Jul 1 2008 Karel Zak 2.14-2 -- fix #390691 - mount should check selinux context on mount, and warn on file_t - -* Mon Jun 9 2008 Karel Zak 2.14-1 -- upgrade to stable util-linux-ng release - -* Mon May 19 2008 Karel Zak 2.14-0.1 -- upgrade to 2.14-rc3 -- remove arch(8) (deprecated in favor of uname(1) or arch(1) from coreutils) -- add a new command ldattach(8) -- cfdisk(8) linked with libncursesw - -* Tue Apr 22 2008 Karel Zak 2.13.1-9 -- fix audit log injection attack via login - -* Thu Apr 17 2008 Karel Zak 2.13.1-8 -- fix location of the command raw(8) - -* Tue Apr 15 2008 Karel Zak 2.13.1-7 -- fix 244383 - libblkid uses TYPE="swsuspend" for S1SUSPEND/S2SUSPEND - -* Wed Apr 2 2008 Karel Zak 2.13.1-6 -- fix 439984 - backport mkswap -U - -* Wed Mar 26 2008 Tom "spot" Callaway - 2.13.1-5 -- clean up sparc conditionals - -* Tue Feb 19 2008 Fedora Release Engineering - 2.13.1-4 -- Autorebuild for GCC 4.3 - -* Mon Jan 28 2008 Karel Zak 2.13.1-3 -- upgrade to new upstream release -- fix #427874 - util-linux-ng gets "excess command line argument" on update - -* Wed Jan 2 2008 Karel Zak 2.13.1-2 -- update to upstream 2.13.1-rc2 - -* Wed Dec 12 2007 Dan Walsh 2.13.1-1 -- Fix pam files so that pam_keyinit happens after pam_selinux.so - -* Wed Dec 12 2007 Karel Zak 2.13.1-0.2 -- remove viwp and vigr (in favour of shadow-utils) - -* Sun Dec 9 2007 Karel Zak 2.13.1-0.1 -- update to the latest upstream stable branch - (commit: fda9d11739ee88c3b2f22a73f12ec019bd3b8335) - -* Wed Oct 31 2007 Karel Zak 2.13-4 -- fix #354791 - blockdev command calls the blkpg ioctl with a wrong data structure - -* Tue Oct 16 2007 Karel Zak 2.13-3 -- fix mount -L | -U segfault -- fix script die on SIGWINCH - -* Thu Oct 4 2007 Karel Zak 2.13-2 -- update to the latest upstream stable branch - -* Tue Aug 28 2007 Karel Zak 2.13-1 -- upgrade to stable util-linux-ng release - -* Fri Aug 24 2007 Karel Zak 2.13-0.59 -- add release number to util-linux Provides and increment setarch Obsoletes -- fix #254114 - spec typo -- upgrade to floppy-0.16 -- add BuildRequires: popt-devel - -* Wed Aug 22 2007 Jesse Keating 2.13-0.58 -- Obsolete a sufficiently high enough version of setarch - -* Mon Aug 20 2007 Karel Zak 2.13-0.57 -- fix #253664 - util-linux-ng fails to build on sparc (patch by Dennis Gilmore) -- rebase to new GIT snapshot - -* Mon Aug 20 2007 Karel Zak 2.13-0.56 -- fix obsoletes field - -* Mon Aug 20 2007 Karel Zak 2.13-0.55 -- util-linux-ng includes setarch(1), define relevat Obsoletes+Provides - -* Mon Aug 20 2007 Karel Zak 2.13-0.54 -- port "blockdev --rmpart" patch from util-linux -- use same Provides/Obsoletes setting like in util-linux - -* Wed Aug 15 2007 Karel Zak 2.13-0.53 -- fix #252046 - review Request: util-linux-ng (util-linux replacement) - -* Mon Aug 13 2007 Karel Zak 2.13-0.52 -- rebase to util-linux-ng (new util-linux upstream fork, - based on util-linux 2.13-pre7) -- more than 70 Fedora/RHEL patches have been merged to upstream code - -* Fri Apr 6 2007 Karel Zak 2.13-0.51 -- fix #150493 - hwclock --systohc sets clock 0.5 seconds slow -- fix #220873 - starting RPC idmapd: Error: RPC MTAB does not exist. - (added rpc_pipefs to util-linux-2.13-umount-sysfs.patch) -- fix #227903 - mount -f does not work with NFS-mounted - -* Sat Mar 3 2007 David Zeuthen 2.13-0.50 -- include ConsoleKit session module by default (#229172) - -* Thu Jan 11 2007 Karel Zak 2.13-0.49 -- fix #222293 - undocumented partx,addpart, delpart - -* Sun Dec 17 2006 Karel Zak 2.13-0.48 -- fix paths in po/Makefile.in.in - -* Fri Dec 15 2006 Karel Zak 2.13-0.47 -- fix #217240 - namei ignores non-directory components instead of saying "Not a directory" -- fix #217241 - namei enforces symlink limits inconsistently - -* Thu Dec 14 2006 Karel Zak 2.13-0.46 -- fix leaking file descriptor in the more command (patch by Steve Grubb) - -* Wed Dec 13 2006 Karel Zak 2.13-0.45 -- use ncurses only -- fix #218915 - fdisk -b 4K -- upgrade to -pre7 release -- fix building problem with raw0 patch -- fix #217186 - /bin/sh: @MKINSTALLDIRS@: No such file or directory - (port po/Makefile.in.in from gettext-0.16) -- sync with FC6 and RHEL5: -- fix #216489 - SCHED_BATCH option missing in chrt -- fix #216712 - issues with raw device support ("raw0" is wrong device name) -- fix #216760 - mount with context or fscontext option fails - (temporarily disabled the support for additional contexts -- not supported by kernel yet) -- fix #211827 - Can't mount with additional contexts -- fix #213127 - mount --make-unbindable does not work -- fix #211749 - add -r option to losetup to create a read-only loop - -* Thu Oct 12 2006 Karel Zak 2.13-0.44 -- fix #209911 - losetup.8 updated (use dm-crypt rather than deprecated cryptoloop) -- fix #210338 - spurious error from '/bin/login -h $PHONENUMBER' (bug in IPv6 patch) -- fix #208634 - mkswap "works" without warning on a mounted device - -* Sun Oct 01 2006 Jesse Keating - 2.13-0.43 -- rebuilt for unwind info generation, broken in gcc-4.1.1-21 - -* Wed Sep 20 2006 Karel Zak 2.13-0.42 -- remove obsolete NFS code and patches (we use /sbin/mount.nfs - and /sbin/umount.nfs from nfs-utils now) -- move nfs.5 to nfs-utils - -* Fri Sep 15 2006 Karel Zak 2.13-0.41 -- fix #205038 - mount not allowing sloppy option (exports "-s" - to external /sbin/mount.nfs(4) calls) -- fix minor bug in util-linux-2.13-mount-twiceloop.patch -- fix #188193- util-linux should provide plugin infrastructure for HAL - -* Mon Aug 21 2006 Karel Zak 2.13-0.40 -- fix Makefile.am in util-linux-2.13-mount-context.patch -- fix #201343 - pam_securetty requires known user to work - (split PAM login configuration to two files) -- fix #203358 - change location of taskset binary to allow for early affinity work - -* Fri Aug 11 2006 Karel Zak 2.13-0.39 -- fix #199745 - non-existant simpleinit(8) mentioned in ctrlaltdel(8) - -* Thu Aug 10 2006 Dan Walsh 2.13-0.38 -- Change keycreate line to happen after pam_selinux open call so it gets correct context - -* Thu Aug 10 2006 Karel Zak 2.13-0.37 -- fix #176494 - last -i returns strange IP addresses (patch by Bill Nottingham) - -* Thu Jul 27 2006 Karel Zak 2.13-0.36 -- fix #198300, #199557 - util-linux "post" scriptlet failure - -* Thu Jul 27 2006 Steve Dickson 2.13-0.35 -- Added the -o fsc flag to nfsmount. - -* Wed Jul 26 2006 Karel Zak 2.13-0.34 -- rebuild - -* Tue Jul 18 2006 Karel Zak 2.13-0.33 -- add Requires(post): libselinux - -* Mon Jul 17 2006 Karel Zak 2.13-0.32 -- add IPv6 support to the login command (patch by Milan Zazrivec) -- fix #198626 - add keyinit instructions to the login PAM script - (patch by David Howells) - -* Wed Jul 12 2006 Jesse Keating - 2.13-0.31.1 -- rebuild - -* Tue Jul 11 2006 Karel Zak 2.13-0.31 -- cleanup dependences for post and preun scriptlets - -* Mon Jul 10 2006 Karsten Hopp 2.13-0.30 -- silence install in minimal buildroot without /var/log - -* Fri Jul 7 2006 Karel Zak 2.13-0.29 -- include the raw command for RHELs - -* Mon Jun 26 2006 Florian La Roche 2.13-0.28 -- move install-info parts from postun to preun - -* Wed Jun 21 2006 Dan Walsh 2.13-0.27 -- Only execute chcon on machines with selinux enabled - -* Wed Jun 14 2006 Steve Dickson 2.13-0.26 -- Remove unneeded header files from nfsmount.c - -* Mon Jun 12 2006 Karel Zak 2.13-0.25 -- fix #187014 - umount segfaults for normal user -- fix #183446 - cal not UTF-8-aware -- fix #186915 - mount does not translate SELIinux context options though libselinux -- fix #185500 - Need man page entry for -o context= mount option -- fix #152579 - missing info about /etc/mtab and /proc/mounts mismatch -- fix #183890 - missing info about possible ioctl() and fcntl() problems on NFS filesystem -- fix #191230 - using mount --move results in wrong data in /etc/mtab -- added mount subtrees support -- fdisk: wrong number of sectors for large disks (suse#160822) -- merge fdisk-xvd (#182553) with new fdisk-isfull (#188981) patch -- fix #181549 - raw(8) manpage has old information about dd -- remove asm/page.h usage - -* Wed May 24 2006 Dan Walsh 2.13-0.24 -- Remove requirement on restorecon, since we can do the same thing -- with chcon/matchpathcon, and not add requirement on policycoreutils - -* Wed May 24 2006 Steve Dickson 2.13-0.23 -- Fixed bug in patch for bz183713 which cause nfs4 mounts to fail. - -* Tue May 2 2006 Steve Dickson 2.13-0.22 -- Added syslog logging to background mounts as suggested - by a customer. - -* Mon May 1 2006 Steve Dickson 2.13-0.21 -- fix #183713 - foreground mounts are not retrying as advertised -- fix #151549 - Added 'noacl' mount flag -- fix #169042 - Changed nfsmount to try udp before using tcp when rpc-ing - the remote rpc.mountd (iff -o tcp is not specified). - This drastically increases the total number of tcp mounts - that can happen at once (ala autofs). - -* Thu Mar 9 2006 Jesse Keating 2.13-0.20 -- Better calling of restorecon as suggested by Bill Nottingham -- prereq restorecon to avoid ordering issues - -* Thu Mar 9 2006 Jesse Keating 2.13-0.19 -- restorecon /var/log/lastlog - -* Wed Mar 8 2006 Karel Zak 2.13-0.17 -- fix #181782 - mkswap selinux relabeling (fix util-linux-2.13-mkswap-selinux.patch) - -* Wed Feb 22 2006 Karel Zak 2.13-0.16 -- fix #181782 - mkswap should automatically add selinux label to swapfile -- fix #180730 - col is exiting with 1 (fix util-linux-2.12p-col-EILSEQ.patch) -- fix #181896 - broken example in schedutils man pages -- fix #177331 - login omits pam_acct_mgmt & pam_chauthtok when authentication is skipped. -- fix #177523 - umount -a should not unmount sysfs -- fix #182553 - fdisk -l inside xen guest shows no disks - -* Fri Feb 10 2006 Jesse Keating - 2.13-0.15.1 -- bump again for double-long bug on ppc(64) - -* Wed Feb 8 2006 Peter Jones 2.13-0.15 -- add "blockdev --rmpart N " and "blockdev --rmparts " - -* Tue Feb 07 2006 Jesse Keating - 2.13-0.14.1 -- rebuilt for new gcc4.1 snapshot and glibc changes - -* Thu Jan 19 2006 Steve Dickson 2.13-0.14 -- Updated the gssd_check() and idmapd_check(), used with - nfsv4 mounts, to looked for the correct file in /var/lock/subsys - which stops bogus warnings. - -* Tue Jan 3 2006 Karel Zak 2.13-0.13 -- fix #174676 - hwclock audit return code mismatch -- fix #176441: col truncates data -- fix #174111 - mount allows loopback devices to be mounted more than once to the same mount point -- better wide chars usage in the cal command (based on the old 'moremisc' patch) - -* Mon Dec 12 2005 Karel Zak 2.13-0.12 -- rebuilt - -* Fri Dec 09 2005 Jesse Keating -- rebuilt - -* Fri Nov 25 2005 Karel Zak 2.13-0.11.pre6 -- update to upstream version 2.13-pre6 -- fix #172203 - mount man page in RHEL4 lacks any info on cifs mount options - -* Mon Nov 7 2005 Karel Zak 2.13-0.10.pre5 -- fix #171337 - mkfs.cramfs doesn't work correctly with empty files - -* Fri Oct 28 2005 Karel Zak 2.13-0.9.pre5 -- rebuild - -* Wed Oct 26 2005 Karel Zak 2.13-0.8.pre5 -- updated version of the patch for hwclock audit - -* Thu Oct 20 2005 Karel Zak 2.13-0.7.pre5 -- fix #171337 - mkfs.cramfs dies creating installer image - -* Thu Oct 20 2005 Karel Zak 2.13-0.6.pre5 -- update to upstream 2.13pre5 -- remove separated cramfs1.1 (already in upstream package) -- remove odd symlink /usr/bin/mkcramfs -> ../../sbin/mkfs.cramfs -- fix #170171 - ipcs -lm always report "max total shared memory (kbytes) = 0" - -* Mon Oct 17 2005 Karel Zak 2.13-0.5.pre4 -* fix #170564 - add audit message to login - -* Fri Oct 7 2005 Karel Zak 2.13-0.4.pre4 -- fix #169628 - /usr/bin/floppy doesn't work with /dev/fd0 -- fix #168436 - login will attempt to run if it has no read/write access to its terminal -- fix #168434 - login's timeout can fail - needs to call siginterrupt(SIGALRM,1) -- fix #165253 - losetup missing option -a [new feature] -- update PAM files (replace pam_stack with new "include" PAM directive) -- remove kbdrate from src.rpm -- update to 2.13pre4 - -* Fri Oct 7 2005 Steve Dickson 2.13-0.3.pre3 -- fix #170110 - Documentation for 'rsize' and 'wsize' NFS mount options - is misleading - -* Fri Sep 2 2005 Karel Zak 2.13-0.3.pre2 -- fix #166923 - hwclock will not run on a non audit-enabled kernel -- fix #159410 - mkswap(8) claims max swap area size is 2 GB -- fix #165863 - swsusp swaps should be reinitialized -- change /var/log/lastlog perms to 0644 - -* Tue Aug 16 2005 Karel Zak 2.13-0.2.pre2 -- /usr/share/misc/getopt/* -move-> /usr/share/doc/util-linux-2.13/getopt-* -- the arch command marked as deprecated -- removed: elvtune, rescuept and setfdprm -- removed: man8/sln.8 (moved to man-pages, see #10601) -- removed REDAME.pg and README.reset -- .spec file cleanup -- added schedutils (commands: chrt, ionice and taskset) - -* Tue Jul 12 2005 Karel Zak 2.12p-9.7 -- fix #159339 - util-linux updates for new audit system -- fix #158737 - sfdisk warning for large partitions, gpt -- fix #150912 - Add ocfs2 support -- NULL is better than zero at end of execl() - -* Thu Jun 16 2005 Karel Zak 2.12p-9.5 -- fix #157656 - CRM 546998: Possible bug in vipw, changes permissions of /etc/shadow and /etc/gshadow -- fix #159339 - util-linux updates for new audit system (pam_loginuid.so added to util-linux-selinux.pamd) -- fix #159418 - sfdisk unusable - crashes immediately on invocation -- fix #157674 - sync option on VFAT mount destroys flash drives -- fix .spec file /usr/sbin/{hwclock,clock} symlinks - -* Wed May 4 2005 Jeremy Katz - 2.12p-9.3 -- rebuild against new libe2fsprogs (and libblkid) to fix cramfs auto-detection - -* Mon May 2 2005 Karel Zak 2.12p-9.2 -- rebuild - -* Mon May 2 2005 Karel Zak 2.12p-9 -- fix #156597 - look - doesn't work with separators - -* Mon Apr 25 2005 Karel Zak 2.12p-8 -- fix #154498 - util-linux login & pam session -- fix #155293 - man 5 nfs should include vers as a mount option -- fix #76467 - At boot time, fsck chokes on LVs listed by label in fstab -- new Source URL -- added note about ATAPI IDE floppy to fdformat.8 -- fix #145355 - Man pages for fstab and fstab-sync in conflict - -* Tue Apr 5 2005 Karel Zak 2.12p-7 -- enable build with libblkid from e2fsprogs-devel -- remove workaround for duplicated labels - -* Thu Mar 31 2005 Steve Dickson 2.12p-5 -- Fixed nfs mount to rollback correctly. - -* Fri Mar 25 2005 Karel Zak 2.12p-4 -- added /var/log/lastlog to util-linux (#151635) -- disabled 'newgrp' in util-linux (enabled in shadow-utils) (#149997, #151613) -- improved mtab lock (#143118) -- fixed ipcs typo (#151156) -- implemented mount workaround for duplicated labels (#116300) - -* Wed Mar 16 2005 Elliot Lee 2.12p-3 -- rebuilt - -* Fri Feb 25 2005 Steve Dickson 2.12p-2 -- Changed nfsmount to only use reserve ports when necessary - (bz# 141773) - -* Thu Dec 23 2004 Elliot Lee 2.12p-1 -- Update to util-linux-2.12p. This changes swap header format - from - you may need to rerun mkswap if you did a clean install of - FC3. - -* Fri Dec 10 2004 Elliot Lee 2.12j-1 -- Update to util-linux-2.12j - -* Tue Dec 7 2004 Steve Dickson 2.12a-20 -- Corrected a buffer overflow problem with nfs mounts. - (bz# 141733) - -* Wed Dec 01 2004 Elliot Lee 2.12a-19 -- Patches for various bugs. - -* Mon Nov 29 2004 Steve Dickson 2.12a-18 -- Made NFS mounts adhere to the IP protocol if specified on - command line as well as made NFS umounts adhere to the - current IP protocol. Fix #140016 - -* Thu Oct 14 2004 Elliot Lee 2.12a-16 -- Add include_raw macro, build with it off for Fedora - -* Wed Oct 13 2004 Stephen C. Tweedie - 2.12a-15 -- Add raw patch to allow binding of devices not yet in /dev - -* Wed Oct 13 2004 John (J5) Palmieri 2.12a-14 -- Add David Zeuthen's patch to enable the pamconsole flag #133941 - -* Wed Oct 13 2004 Stephen C. Tweedie 2.12a-13 -- Restore raw utils (bugzilla #130016) - -* Mon Oct 11 2004 Phil Knirsch 2.12a-12 -- Add the missing remote entry in pam.d - -* Wed Oct 6 2004 Steve Dickson -- Rechecked in some missing NFS mounting code. - -* Wed Sep 29 2004 Elliot Lee 2.12a-10 -- Make swaplabel support work with swapon -a -e - -* Tue Sep 28 2004 Steve Dickson -- Updated the NFS and NFS4 code to the latest CITI patch set - (in which they incorporate a number of our local patches). - -* Wed Sep 15 2004 Nalin Dahybhai 2.12a-8 -- Fix #132196 - turn on SELinux support at build-time. - -* Wed Sep 15 2004 Phil Knirsch 2.12a-7 -- Fix #91174 with pamstart.patch - -* Tue Aug 31 2004 Elliot Lee 2.12a-6 -- Fix #16415, #70616 with rdevman.patch -- Fix #102566 with loginman.patch -- Fix #104321 with rescuept.patch (just use plain lseek - we're in _FILE_OFFSET_BITS=64 land now) -- Fix #130016 - remove raw. -- Re-add agetty (replacing it with mgetty is too much pain, and mgetty is much larger) - -* Thu Aug 26 2004 Steve Dickson -- Made the NFS security checks more explicit to avoid confusion - (an upstream fix) -- Also removed a compilation warning - -* Wed Aug 11 2004 Alasdair Kergon -- Remove unused mount libdevmapper inclusion. - -* Wed Aug 11 2004 Alasdair Kergon -- Add device-mapper mount-by-label support -- Fix segfault in mount-by-label when a device without a label is present. - -* Wed Aug 11 2004 Steve Dickson -- Updated nfs man page to show that intr are on by - default for nfs4 - -* Thu Aug 05 2004 Jindrich Novy -- modified warning causing heart attack for >16 partitions, #107824 - -* Fri Jul 09 2004 Elliot Lee 2.12a-3 -- Fix #126623, #126572 -- Patch cleanup -- Remove agetty (use mgetty, agetty is broken) - -* Tue Jun 15 2004 Elliot Lee -- rebuilt - -* Thu Jun 03 2004 Elliot Lee 2.12a-1 -- Update to 2.12a -- Fix #122448 - -* Thu May 13 2004 Dan Walsh 2.12-19 -- Change pam_selinux to run last - -* Tue May 04 2004 Elliot Lee 2.12-18 -- Fix #122448 (autofs issues) - -* Fri Apr 23 2004 Elliot Lee 2.12-17 -- Fix #119157 by editing the patch -- Add patch145 to fix #119986 - -* Fri Apr 16 2004 Elliot Lee 2.12-16 -- Fix #118803 - -* Tue Mar 23 2004 Jeremy Katz 2.12-15 -- mkcramfs: use PAGE_SIZE for default blocksize (#118681) - -* Sat Mar 20 2004 -- Updated the nfs-mount.patch to correctly - handle the mounthost option and to ignore - servers that do not set auth flavors - -* Tue Mar 16 2004 Dan Walsh 2.12-13 -- Fix selinux ordering or pam for login - -* Tue Mar 16 2004 -- Make RPC error messages displayed with -v argument -- Added two checks to the nfs4 path what will print warnings - when rpc.idmapd and rpc.gssd are not running -- Ping NFS v4 servers before diving into kernel -- Make v4 mount interruptible which also make the intr option on by default - -* Sat Mar 13 2004 -- Reworked how the rpc.idmapd and rpc.gssd checks were - done due to review comments from upstream. -- Added rpc_strerror() so the '-v' flag will show RPC errors. - -* Sat Mar 13 2004 -- Added two checks to the nfs4 path what will print warnings - when rpc.idmapd and rpc.gssd are not running. - -* Thu Mar 11 2004 -- Reworked and updated the nfsv4 patches. - -* Wed Mar 10 2004 Dan Walsh -- Bump version - -* Wed Mar 10 2004 Steve Dickson -- Tried to make nfs error message a bit more meaninful -- Cleaned up some warnings - -* Sun Mar 7 2004 Steve Dickson -- Added pesudo flavors for nfsv4 mounts. -- Added BuildRequires: libselinux-devel and Requires: libselinux - when WITH_SELINUX is set. - -* Fri Feb 27 2004 Dan Walsh 2.12-5 -- check for 2.6.3 kernel in mount options - -* Mon Feb 23 2004 Elliot Lee 2.12-4 -- Remove /bin/kill for #116100 - -* Fri Feb 20 2004 Dan Walsh 2.12-3 -- rebuilt - -* Fri Feb 13 2004 Elliot Lee -- rebuilt - -* Thu Feb 12 2004 Elliot Lee 2.12-1 -- Final 2.12 has been out for ages - might as well use it. - -* Wed Jan 28 2004 Steve Dickson 2.12pre-4 -- Added mount patches that have NFS version 4 support - -* Mon Jan 26 2004 Elliot Lee 2.12pre-3 -- Provides: mount losetup - -* Mon Jan 26 2004 Dan Walsh 2.12pre-2 -- Add multiple to /etc/pam.d/login for SELinux - -* Thu Jan 15 2004 Elliot Lee 2.12pre-1 -- 2.12pre-1 -- Merge mount/losetup packages into the main package (#112324) -- Lose separate - -* Mon Nov 3 2003 Dan Walsh 2.11y-35.sel -- remove selinux code from login and use pam_selinux - -* Thu Oct 30 2003 Dan Walsh 2.11y-34.sel -- turn on selinux - -* Fri Oct 24 2003 Elliot Lee 2.11y-34 -- Add BuildRequires: texinfo (from a bug# I don't remember) -- Fix #90588 with mountman patch142. - -* Mon Oct 6 2003 Dan Walsh 2.11y-33 -- turn off selinux - -* Thu Sep 25 2003 Dan Walsh 2.11y-32.sel -- turn on selinux -- remove context selection - -* Fri Sep 19 2003 Elliot Lee 2.11y-31 -- Add patch140 (alldevs) to fix #101772. Printing the total size of - all devices was deemed a lower priority than having all devices - (e.g. /dev/ida/c0d9) displayed. - -* Fri Sep 12 2003 Dan Walsh 2.11y-31 -- turn off selinux - -* Fri Sep 12 2003 Dan Walsh 2.11y-30.sel -- turn on selinux - -* Fri Sep 5 2003 Elliot Lee 2.11y-28 -- Fix #103004, #103954 - -* Fri Sep 5 2003 Dan Walsh 2.11y-27 -- turn off selinux - -* Thu Sep 4 2003 Dan Walsh 2.11y-26.sel -- build with selinux - -* Mon Aug 11 2003 Elliot Lee 2.11y-25 -- Use urandom instead for mkcramfs - -* Tue Jul 29 2003 Dan Walsh 2.11y-24 -- add SELINUX 2.5 support - -* Wed Jul 23 2003 Elliot Lee 2.11y-22 -- #100433 patch - -* Sat Jun 14 2003 Elliot Lee 2.11y-20 -- #97381 patch - -* Wed Jun 04 2003 Elliot Lee -- rebuilt - -* Mon Apr 21 2003 Elliot Lee 2.11y-17 -- Change patch128 to improve ipcs -l - -* Fri Apr 11 2003 Elliot Lee 2.11y-16 -- Fix #85407 - -* Fri Apr 11 2003 Elliot Lee 2.11y-15 -- Change patch128 to util-linux-2.11f-ipcs-84243-86285.patch to get all -ipcs fixes - -* Thu Apr 10 2003 Matt Wilson 2.11y-14 -- fix last login date display on AMD64 (#88574) - -* Mon Apr 7 2003 Jeremy Katz 2.11y-13 -- include sfdisk on ppc - -* Fri Mar 28 2003 Jeremy Katz 2.11y-12 -- add patch from msw to change mkcramfs blocksize with a command line option - -* Tue Mar 25 2003 Phil Knirsch 2.11y-11 -- Fix segfault on s390x due to wrong usage of BLKGETSIZE. - -* Thu Mar 13 2003 Elliot Lee 2.11y-10 -- Really apply the ipcs patch. Doh. - -* Mon Feb 24 2003 Elliot Lee -- rebuilt - -* Wed Feb 19 2003 Elliot Lee 2.11y-8 -- ipcs-84243.patch to fix #84243 - -* Thu Feb 13 2003 Yukihiro Nakai 2.11y-7 -- Update moremisc patch to fix swprintf()'s minimum field (bug #83361). - -* Mon Feb 03 2003 Elliot Lee 2.11y-6 -- Fix mcookie segfault on many 64-bit architectures (bug #83345). - -* Mon Feb 03 2003 Tim Waugh 2.11y-5 -- Fix underlined multibyte characters (bug #83376). - -* Sun Feb 02 2003 Florian La Roche -- rebuild to have again a s390 rpm -- disable some more apps for mainframe - -* Wed Jan 29 2003 Elliot Lee 2.11y-4 -- util-linux-2.11y-umask-82552.patch - -* Wed Jan 22 2003 Tim Powers -- rebuilt - -* Mon Jan 13 2003 Elliot Lee 2.11y-2 -- Fix #81069, #75421 - -* Mon Jan 13 2003 Elliot Lee 2.11y-1 -- Update to 2.11y -- Fix #80953 -- Update patch0, patch107, patch117, patch120 for 2.11y -- Remove patch60, patch61, patch207, patch211, patch212, patch119, patch121 -- Remove patch122, patch200 - -* Wed Oct 30 2002 Elliot Lee 2.11w-2 -- Remove some crack/unnecessary patches while submitting stuff upstream. -- Build with -D_FILE_OFFSET_BITS=64 - -* Tue Oct 29 2002 Elliot Lee 2.11w-1 -- Update to 2.11w, resolve patch conflicts - -* Tue Oct 08 2002 Phil Knirsch 2.11r-10hammer.3 -- Extended util-linux-2.11b-s390x patch to work again. - -* Thu Oct 03 2002 Elliot Lee 2.11r-10hammer.2 -- Add patch122 for hwclock on x86_64 - -* Thu Sep 12 2002 Than Ngo 2.11r-10hammer.1 -- Fixed pam config files - -* Wed Sep 11 2002 Bernhard Rosenkraenzer 2.11r-10hammer -- Port to hammer - -* Fri Aug 30 2002 Elliot Lee 2.11r-10 -- Patch120 (hwclock) to fix #72140 -- Include isosize util - -* Wed Aug 7 2002 Elliot Lee 2.11r-9 -- Patch120 (skipraid2) to fix #70353, because the original patch was -totally useless. - -* Fri Aug 2 2002 Elliot Lee 2.11r-8 -- Patch119 (fdisk-add-primary) from #67898 - -* Wed Jul 24 2002 Elliot Lee 2.11r-7 -- Really add the gptsize patch, instead of what I think the patch says. -(+1) - -* Tue Jul 23 2002 Elliot Lee 2.11r-6 -- Add the sp[n].size part of the patch from #69603 - -* Mon Jul 22 2002 Florian La Roche -- adjust mainframe patches - -* Tue Jul 2 2002 Bill Nottingham 2.11r-4 -- only require usermode if we're shipping kbdrate here - -* Fri Jun 28 2002 Trond Eivind Glomsrod 2.11r-3 -- Port the large swap patch to new util-linux... the off_t changes - now in main aren't sufficient - -* Thu Jun 27 2002 Elliot Lee 2.11r-2 -- Remove swapondetect (patch301) until it avoids possible false positives. - -* Thu Jun 27 2002 Elliot Lee 2.11r-1 -- Update to 2.11r, wheeee -- Remove unused patches - -* Thu Jun 27 2002 Elliot Lee 2.11n-19 -- Make a note here that this package was the source of the single change -contained in util-linux-2.11f-18 (in 7.2/Alpha), and also contains the -rawman patch from util-linux-2.11f-17.1 (in 2.1AS). -- Package has no runtime deps on slang, so remove the BuildRequires: -slang-devel. - -* Fri Jun 21 2002 Tim Powers -- automated rebuild - -* Thu Jun 20 2002 Elliot Lee 2.11n-17 -- Fix teg's swapondetect patch to not print out the usage message when -'swapon -a -e' is run. (#66690) (edit existing patch) -- Apply hjl's utmp handling patch (#66950) (patch116) -- Fix fdisk man page notes on IDE disk partition limit (#64013) (patch117) -- Fix mount.8 man page notes on vfat shortname option (#65628) (patch117) -- Fix possible cal overflow with widechars (#67090) (patch117) - -* Tue Jun 11 2002 Trond Eivind Glomsrod 2.11n-16 -- support large swap partitions -- add '-d' option to autodetect available swap partitions - -* Thu May 23 2002 Tim Powers -- automated rebuild - -* Wed May 15 2002 Elliot Lee 2.11n-14 -- Remove kbdrate (again). - -* Mon Apr 29 2002 Florian La Roche -- adjust mainframe patches to apply to current rpm -- do not include fdisk until it is fixed to work on mainframe - -* Mon Apr 01 2002 Elliot Lee 2.11n-12 -- Don't strip binaries - rpm does it for us. - -* Sun Mar 31 2002 Elliot Lee 2.11n-11 -- Apply patch115 from ejb@ql.org for bug #61868 - -* Wed Mar 27 2002 Elliot Lee 2.11n-10 -- Finish fixing #60675 (ipcrm man page), updated the patch. -- Fix #61203 (patch114 - dumboctal.patch). - -* Tue Mar 12 2002 Elliot Lee 2.11n-9 -- Update ctty3 patch to ignore SIGHUP while dropping controlling terminal - -* Fri Mar 08 2002 Elliot Lee 2.11n-8 -- Update ctty3 patch to drop controlling terminal before forking. - -* Fri Mar 08 2002 Elliot Lee 2.11n-7 - Fix various bugs: -- Add patch110 (skipraid) to properly skip devices that are part of a RAID array. -- Add patch111 (mkfsman) to update the mkfs man page's "SEE ALSO" section. -- remove README.cfdisk -- Include partx -- Fix 54741 and related bugs for good(hah!) with patch113 (ctty3) - -* Wed Mar 06 2002 Elliot Lee 2.11n-6 -- Put kbdrate in, add usermode dep. - -* Tue Feb 26 2002 Elliot Lee 2.11n-5 -- Fix #60363 (tweak raw.8 man page, make rawdevices.8 symlink). - -* Mon Jan 28 2002 Bill Nottingham 2.11n-4 -- remove kbdrate (fixes kbd conflict) - -* Fri Dec 28 2001 Elliot Lee 2.11n-3 -- Add util-linux-2.11n-ownerumount.patch (#56593) -- Add patch102 (util-linux-2.11n-colrm.patch) to fix #51887 -- Fix #53452 nits. -- Fix #56953 (remove tunelp on s390) -- Fix #56459, and in addition switch to using sed instead of perl. -- Fix #58471 -- Fix #57300 -- Fix #37436 -- Fix #32132 - -* Wed Dec 26 2001 Elliot Lee 2.11n-1 -- Update to 2.11n -- Merge mount/losetup back in. - -* Tue Dec 04 2001 Elliot Lee 2.11f-17 -- Add patch38 (util-linux-2.11f-ctty2.patch) to ignore SIGINT/SIGTERM/SIGQUIT in the parent, so that ^\ won't break things. - -* Fri Nov 09 2001 Elliot Lee 2.11f-16 -- Merge patches 36, 75, 76, and 77 into patch #37, to attempt resolve all the remaining issues with #54741. - -* Wed Oct 24 2001 Florian La Roche -- add nologin man-page for s390/s390x - -* Wed Oct 24 2001 Bernhard Rosenkraenzer 2.11f-14 -- Don't build kbdrate on s390/s390x -- Don't make the pivot_root.8 man page executable(!) - -* Tue Oct 23 2001 Elliot Lee 2.11f-13 -- Patch/idea #76 from HJL, fixes bug #54741 (race condition in login -acquisition of controlling terminal). - -* Thu Oct 11 2001 Bill Nottingham -- fix permissions problem with vipw & shadow files, again (doh!) - -* Tue Oct 09 2001 Erik Troan -- added patch from Olaf Kirch to fix possible pwent structure overwriting - -* Fri Sep 28 2001 Elliot Lee 2.11f-10 -- fdisk patch from arjan - -* Sun Aug 26 2001 Elliot Lee 2.11f-9 -- Don't include cfdisk, since it appears to be an even bigger pile of junk than fdisk? :) - -* Wed Aug 1 2001 Tim Powers -- don't require usermode - -* Mon Jul 30 2001 Elliot Lee 2.11f-7 -- Incorporate kbdrate back in. - -* Mon Jul 30 2001 Bill Nottingham -- revert the patch that calls setsid() in login that we had reverted - locally but got integrated upstream (#46223) - -* Tue Jul 24 2001 Florian La Roche -- correct s390x patch - -* Mon Jul 23 2001 Elliot Lee -- Add my megapatch (various bugs) -- Include pivot_root (#44828) - -* Thu Jul 12 2001 Bill Nottingham -- make shadow files 0400, not 0600 - -* Wed Jul 11 2001 Bill Nottingham -- fix permissions problem with vipw & shadow files - -* Mon Jun 18 2001 Florian La Roche -- update to 2.11f, remove any merged patches -- add s390x patches for somewhat larger swap - -* Thu Jun 14 2001 Erik Troan -- added --verbose patch to mkcramfs; it's much quieter by default now - -* Tue May 22 2001 Erik Troan -- removed warning about starting partitions on cylinder 0 -- swap version2 - makes it unnecessary - -* Wed May 9 2001 Bernhard Rosenkraenzer 2.11b-2 -- Fix up s390x support - -* Mon May 7 2001 Bernhard Rosenkraenzer 2.11b-1 -- Fix up login for real (a console session should be the controlling tty) - by reverting to 2.10s code (#36839, #36840, #39237) -- Add man page for agetty (#39287) -- 2.11b, while at it - -* Fri Apr 27 2001 Preston Brown 2.11a-4 -- /sbin/nologin from OpenBSD added. - -* Fri Apr 20 2001 Bernhard Rosenkraenzer 2.11a-3 -- Fix up login - exiting immediately even if the password is correct - is not exactly a nice feature. -- Make definite plans to kill people who update login without checking - if the new version works ;) - -* Tue Apr 17 2001 Erik Troan -- upgraded to 2.11a (kbdrate moved to kbd, among other things) -- turned off ALLOW_VCS_USE -- modified mkcramfs to not use a large number of file descriptors -- include mkfs.bfs - -* Sun Apr 8 2001 Matt Wilson -- changed Requires: kernel >= 2.2.12-7 to Conflicts: kernel < 2.2.12-7 - (fixes a initscripts -> util-linux -> kernel -> initscripts prereq loop) - -* Tue Mar 20 2001 Matt Wilson -- patched mkcramfs to use the PAGE_SIZE from asm/page.h instead of hard - coding 4096 (fixes mkcramfs on alpha...) - -* Mon Mar 19 2001 Matt Wilson -- added mkcramfs (from linux/scripts/mkcramfs) - -* Mon Feb 26 2001 Tim Powers -- fixed bug #29131, where ipc.info didn't have an info dir entry, - added the dir entry to ipc.texi (Patch58) - -* Fri Feb 23 2001 Preston Brown -- use lang finder script -- install info files - -* Thu Feb 08 2001 Erik Troan -- reverted login patch; seems to cause problems -- added agetty - -* Wed Feb 07 2001 Erik Troan -- updated kill man page -- added patch to fix vipw race -- updated vipw to edit /etc/shadow and /etc/gshadow, if appropriate -- added patch to disassociate login from tty, session, and pgrp - -* Tue Feb 06 2001 Erik Troan -- fixed problem w/ empty extended partitions -- added patch to fix the date in the more man page -- set OPT to pass optimization flags to make rather then RPM_OPT_FLAG -- fixed fdisk -l /Proc/partitions parsing -- updated to 2.10s - -* Tue Jan 23 2001 Preston Brown -- danish translations added - -* Mon Jan 15 2001 Nalin Dahyabhai -- fix segfault in login in btmp patch (#24025) - -* Mon Dec 11 2000 Oliver Paukstadt -- ported to s390 - -* Wed Nov 01 2000 Florian La Roche -- update to 2.10p -- update patch37 to newer fdisk version - -* Mon Oct 9 2000 Jeff Johnson -- update to 2.10o -- fdformat: fixed to work with kernel 2.4.0test6 (Marek Wojtowicz) -- login: not installed suid -- getopt: by default install aux files in /usr/share/misc -- update to 2.10n: -- added blockdev.8 -- change to elvtune (andrea) -- fixed overrun in agetty (vii@penguinpowered.com) -- shutdown: prefer umounting by mount point (rgooch) -- fdisk: added plan9 -- fdisk: remove empty links in chain of extended partitions -- hwclock: handle both /dev/rtc and /dev/efirtc (Bill Nottingham) -- script: added -f (flush) option (Ivan Schreter) -- script: added -q (quiet) option (Per Andreas Buer) -- getopt: updated to version 1.1.0 (Frodo Looijaard) -- Czech messages (Jiri Pavlovsky) -- login.1 man page had not /var/spool/mail path (#16998). -- sln.8 man page (but not executable) included (#10601). -- teach fdisk 0xde(Dell), 0xee(EFI GPT), 0xef(EFI FAT) partitions (#17610). - -* Wed Aug 30 2000 Matt Wilson -- rebuild to cope with glibc locale binary incompatibility, again - -* Mon Aug 14 2000 Jeff Johnson -- setfdprm should open with O_WRONLY, not 3. - -* Fri Aug 11 2000 Jeff Johnson -- fdformat should open with O_WRONLY, not 3. - -* Fri Jul 21 2000 Nalin Dahyabhai -- make 'look' look in /usr/share/dict - -* Fri Jul 21 2000 Bill Nottingham -- put /usr/local/sbin:/usr/local/bin in root's path - -* Wed Jul 19 2000 Jakub Jelinek -- rebuild to cope with glibc locale binary incompatibility - -* Thu Jul 13 2000 Prospector -- automatic rebuild - -* Mon Jul 10 2000 Bill Nottingham -- enable hwclock to use /dev/efirtc on ia64 (gettext is fun. :( ) - -* Mon Jul 3 2000 Bill Nottingham -- move cfdisk to /usr/sbin, it depends on /usr stuff -- add rescuept - -* Fri Jun 23 2000 Bernhard Rosenkraenzer -- point more at the correct path to vi (for "v"), Bug #10882 - -* Sun Jun 4 2000 Jeff Johnson -- FHS packaging changes. - -* Thu Jun 1 2000 Nalin Dahyabhai -- modify PAM setup to use system-auth - -* Mon May 1 2000 Bill Nottingham -- eek, where did login go? (specfile tweaks) - -* Mon Apr 17 2000 Bernhard Rosenkraenzer -- 2.10k -- fix compilation with current glibc - -* Tue Mar 21 2000 Bernhard Rosenkraenzer -- 2.10h - -* Tue Mar 7 2000 Jeff Johnson -- rebuild for sparc baud rates > 38400. - -* Sat Mar 4 2000 Matt Wilson -- use snprintf - not sprintf - when doing - sprintf ("%%s\n", _("Some string")) to avoid overflows and - segfaults. - -* Mon Feb 21 2000 Jeff Johnson -- raw control file was /dev/raw, now /dev/rawctl. -- raw access files were /dev/raw*, now /dev/raw/raw*. - -* Thu Feb 17 2000 Erik Troan -- -v argument to mkswap wasn't working - -* Thu Feb 10 2000 Jakub Jelinek -- Recognize 0xfd on Sun disklabels as RAID - -* Tue Feb 8 2000 Bill Nottingham -- more lives in /bin, and was linked against /usr/lib/libnurses. Bad. - -* Thu Feb 03 2000 Jakub Jelinek -- update to 2.10f -- fix issues in the new realpath code, avoid leaking memory - -* Tue Feb 01 2000 Cristian Gafton -- rebuild to fix dependencies -- add NFSv3 patches - -* Fri Jan 28 2000 Bill Nottingham -- don't require csh - -* Mon Jan 24 2000 Nalin Dahyabhai -- update to 2.10e -- add rename - -* Thu Jan 20 2000 Jeff Johnson -- strip newlines in logger input. - -* Mon Jan 10 2000 Jeff Johnson -- rebuild with correct ncurses libs. - -* Tue Dec 7 1999 Matt Wilson -- updated to util-linux 2.10c -- deprecated IMAP login mail notification patch17 -- deprecated raw patch22 -- depricated readprofile patch24 - -* Tue Dec 7 1999 Bill Nottingham -- add patch for readprofile - -* Thu Nov 18 1999 Michael K. Johnson -- tunelp should come from util-linux - -* Tue Nov 9 1999 Jakub Jelinek -- kbdrate cannot use /dev/port on sparc. - -* Wed Nov 3 1999 Jakub Jelinek -- fix kbdrate on sparc. - -* Wed Oct 27 1999 Bill Nottingham -- ship hwclock on alpha. - -* Tue Oct 5 1999 Bill Nottingham -- don't ship symlinks to rdev if we don't ship rdev. - -* Tue Sep 07 1999 Cristian Gafton -- add rawIO support from sct - -* Mon Aug 30 1999 Preston Brown -- don't display "new mail" message when the only piece of mail is from IMAP - -* Fri Aug 27 1999 Michael K. Johnson -- kbdrate is now a console program - -* Thu Aug 26 1999 Jeff Johnson -- hostid is now in sh-utils. On sparc, install hostid as sunhostid (#4581). -- update to 2.9w: -- Updated mount.8 (Yann Droneaud) -- Improved makefiles -- Fixed flaw in fdisk - -* Tue Aug 10 1999 Jeff Johnson -- tsort is now in textutils. - -* Wed Aug 4 1999 Bill Nottingham -- turn off setuid bit on login. Again. :( - -* Tue Aug 3 1999 Peter Jones, -- hostid script for sparc (#3803). - -* Tue Aug 03 1999 Christian 'Dr. Disk' Hechelmann -- added locale message catalogs to %%file -- added patch for non-root build -- vigr.8 and /usr/lib/getopt man-page was missing from file list -- /etc/fdprm really is a config file - -* Fri Jul 23 1999 Jeff Johnson -- update to 2.9v: -- cfdisk no longer believes the kernel's HDGETGEO - (and may be able to partition a 2 TB disk) - -* Fri Jul 16 1999 Jeff Johnson -- update to 2.9u: -- Czech more.help and messages (Jiri Pavlovsky) -- Japanese messages (Daisuke Yamashita) -- fdisk fix (Klaus G. Wagner) -- mount fix (Hirokazu Takahashi) -- agetty: enable hardware flow control (Thorsten Kranzkowski) -- minor cfdisk improvements -- fdisk no longer accepts a default device -- Makefile fix - -* Tue Jul 6 1999 Jeff Johnson -- update to 2.9t: -- national language support for hwclock -- Japanese messages (both by Daisuke Yamashita) -- German messages and some misc i18n fixes (Elrond) -- Czech messages (Jiri Pavlovsky) -- wall fixed for /dev/pts/xx ttys -- make last and wall use getutent() (Sascha Schumann) - [Maybe this is bad: last reading all of wtmp may be too slow. - Revert in case people complain.] -- documented UUID= and LABEL= in fstab.5 -- added some partition types -- swapon: warn only if verbose - -* Fri Jun 25 1999 Jeff Johnson -- update to 2.9s. - -* Sat May 29 1999 Jeff Johnson -- fix mkswap sets incorrect bits on sparc64 (#3140). - -* Thu Apr 15 1999 Jeff Johnson -- on sparc64 random ioctls on clock interface cause kernel messages. - -* Thu Apr 15 1999 Jeff Johnson -- improved raid patch (H.J. Lu). - -* Wed Apr 14 1999 Michael K. Johnson -- added patch for smartraid controllers - -* Sat Apr 10 1999 Cristian Gafton -- fix logging problems caused by setproctitle and PAM interaction - (#2045) - -* Wed Mar 31 1999 Jeff Johnson -- include docs and examples for sfdisk (#1164) - -* Mon Mar 29 1999 Matt Wilson -- rtc is not working properly on alpha, we can't use hwclock yet. - -* Fri Mar 26 1999 Cristian Gafton -- add patch to make mkswap more 64 bit friendly... Patch from - eranian@hpl.hp.com (ahem!) - -* Thu Mar 25 1999 Jeff Johnson -- include sfdisk (#1164) -- fix write (#1784) -- use positive logic in spec file (ifarch rather than ifnarch). -- (re)-use 1st matching utmp slot if search by mypid not found. -- update to 2.9o -- lastb wants bad logins in wtmp clone /var/run/btmp (#884) - -* Thu Mar 25 1999 Jakub Jelinek -- if hwclock is to be compiled on sparc, - it must actually work. Also, it should obsolete - clock, otherwise it clashes. -- limit the swap size in mkswap for 2.2.1+ kernels - by the actual maximum size kernel can handle. -- fix kbdrate on sparc, patch by J. S. Connell - - -* Wed Mar 24 1999 Matt Wilson -- added pam_console back into pam.d/login - -* Tue Mar 23 1999 Matt Wilson -- updated to 2.9i -- added hwclock for sparcs and alpha - -* Mon Mar 22 1999 Erik Troan -- added vigr to file list - -* Sun Mar 21 1999 Cristian Gafton -- auto rebuild in the new build environment (release 12) - -* Thu Mar 18 1999 Cristian Gafton -- remove most of the ifnarch arm stuff - -* Mon Mar 15 1999 Michael Johnson -- added pam_console.so to /etc/pam.d/login - -* Thu Feb 4 1999 Michael K. Johnson -- .perms patch to login to make it retain root in parent process - for pam_close_session to work correctly - -* Tue Jan 12 1999 Jeff Johnson -- strip fdisk in buildroot correctly (#718) - -* Mon Jan 11 1999 Cristian Gafton -- have fdisk compiled on sparc and arm - -* Mon Jan 11 1999 Erik Troan -- added beos partition type to fdisk - -* Wed Dec 30 1998 Cristian Gafton -- incorporate fdisk on all arches - -* Sat Dec 5 1998 Jeff Johnson -- restore PAM functionality at end of login (Bug #201) - -* Thu Dec 03 1998 Cristian Gafton -- patch top build on the arm without PAM and related utilities, for now. -- build hwclock only on intel - -* Wed Nov 18 1998 Cristian Gafton -- upgraded to version 2.9 - -* Thu Oct 29 1998 Bill Nottingham -- build for Raw Hide (slang-1.2.2) -- patch kbdrate wackiness so it builds with egcs - -* Tue Oct 13 1998 Erik Troan -- patched more to use termcap - -* Mon Oct 12 1998 Erik Troan -- added warning about alpha/bsd label starting cylinder - -* Mon Sep 21 1998 Erik Troan -- use sigsetjmp/siglongjmp in more rather then sig'less versions - -* Fri Sep 11 1998 Jeff Johnson -- explicit attrs for setuid/setgid programs - -* Thu Aug 27 1998 Cristian Gafton -- sln is now included in glibc - -* Sun Aug 23 1998 Jeff Johnson -- add cbm1581 floppy definitions (problem #787) - -* Mon Jun 29 1998 Jeff Johnson -- remove /etc/nologin at end of shutdown/halt. - -* Fri Jun 19 1998 Jeff Johnson -- add mount/losetup. - -* Thu Jun 18 1998 Jeff Johnson -- update to 2.8 with 2.8b clean up. hostid now defunct? - -* Mon Jun 01 1998 David S. Miller -- "more" now works properly on sparc - -* Sat May 02 1998 Jeff Johnson -- Fix "fdisk -l" fault on mounted cdrom. (prob #513) - -* Fri Apr 24 1998 Prospector System -- translations modified for de, fr, tr - -* Sat Apr 11 1998 Cristian Gafton -- manhattan rebuild - -* Mon Dec 29 1997 Erik Troan -- more didn't suspend properly on glibc -- use proper tc*() calls rather then ioctl's - -* Sun Dec 21 1997 Cristian Gafton -- fixed a security problem in chfn and chsh accepting too - long gecos fields - -* Fri Dec 19 1997 Mike Wangsmo -- removed "." from default path - -* Tue Dec 02 1997 Cristian Gafton -- added (again) the vipw patch - -* Wed Oct 22 1997 Michael Fulbright -- minor cleanups for glibc 2.1 - -* Fri Oct 17 1997 Michael Fulbright -- added vfat32 filesystem type to list recognized by fdisk - -* Fri Oct 10 1997 Erik Troan -- don't build clock on the alpha -- don't install chkdupexe - -* Thu Oct 02 1997 Michael K. Johnson -- Update to new pam standard. -- BuildRoot. - -* Thu Sep 25 1997 Cristian Gafton -- added rootok and setproctitle patches -- updated pam config files for chfn and chsh - -* Tue Sep 02 1997 Erik Troan -- updated MCONFIG to automatically determine the architecture -- added glibc header hacks to fdisk code -- rdev is only available on the intel - -* Fri Jul 18 1997 Erik Troan -- update to util-linux 2.7, fixed login problems - -* Wed Jun 25 1997 Erik Troan -- Merged Red Hat changes into main util-linux source, updated package to - development util-linux (nearly 2.7). - -* Tue Apr 22 1997 Michael K. Johnson -- LOG_AUTH --> LOG_AUTHPRIV in login and shutdown - -* Mon Mar 03 1997 Michael K. Johnson -- Moved to new pam and from pam.conf to pam.d - -* Tue Feb 25 1997 Michael K. Johnson -- pam.patch differentiated between different kinds of bad logins. - In particular, "user does not exist" and "bad password" were treated - differently. This was a minor security hole. diff --git a/floppy-0.12-locale.patch b/floppy-0.12-locale.patch new file mode 100644 index 0000000..9c1aa53 --- /dev/null +++ b/floppy-0.12-locale.patch @@ -0,0 +1,10 @@ +--- floppy-0.12/superfloppy.c.fixfail 2004-07-15 14:41:21.835145325 -0400 ++++ floppy-0.12/superfloppy.c 2004-07-15 14:41:32.385876513 -0400 +@@ -12,6 +12,7 @@ + #include + #include + #include ++#include + #include + #include + #include diff --git a/nologin.8 b/nologin.8 new file mode 100644 index 0000000..5cb1601 --- /dev/null +++ b/nologin.8 @@ -0,0 +1,63 @@ +.\" $OpenBSD: nologin.8,v 1.8 1999/06/04 02:45:19 aaron Exp $ +.\" $NetBSD: nologin.8,v 1.3 1995/03/18 14:59:09 cgd Exp $ +.\" +.\" Copyright (c) 1993 +.\" The Regents of the University of California. All rights reserved. +.\" +.\" Redistribution and use in source and binary forms, with or without +.\" modification, are permitted provided that the following conditions +.\" are met: +.\" 1. Redistributions of source code must retain the above copyright +.\" notice, this list of conditions and the following disclaimer. +.\" 2. Redistributions in binary form must reproduce the above copyright +.\" notice, this list of conditions and the following disclaimer in the +.\" documentation and/or other materials provided with the distribution. +.\" 3. All advertising materials mentioning features or use of this software +.\" must display the following acknowledgement: +.\" This product includes software developed by the University of +.\" California, Berkeley and its contributors. +.\" 4. Neither the name of the University nor the names of its contributors +.\" may be used to endorse or promote products derived from this software +.\" without specific prior written permission. +.\" +.\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND +.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +.\" ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE +.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +.\" SUCH DAMAGE. +.\" +.\" @(#)nologin.8 8.1 (Berkeley) 6/19/93 +.\" +.Dd February 15, 1997 +.Dt NOLOGIN 8 +.Os +.Sh NAME +.Nm nologin +.Nd politely refuse a login +.Sh SYNOPSIS +.Nm nologin +.Sh DESCRIPTION +.Nm +displays a message that an account is not available and +exits non-zero. +It is intended as a replacement shell field for accounts that +have been disabled. +.Pp +If the file +.Pa /etc/nologin.txt +exists, +.Nm +displays its contents to the user instead of the default message. +.Sh SEE ALSO +.Xr login 1 +.Sh HISTORY +The +.Nm +command appeared in +.Bx 4.4 . diff --git a/nologin.c b/nologin.c new file mode 100644 index 0000000..8a51ba9 --- /dev/null +++ b/nologin.c @@ -0,0 +1,58 @@ +/* $OpenBSD: nologin.c,v 1.2 1997/04/04 16:51:37 millert Exp $ */ + +/* + * Copyright (c) 1997, Jason Downs. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR(S) ``AS IS'' AND ANY EXPRESS + * OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL THE AUTHOR(S) BE LIABLE FOR ANY DIRECT, + * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR + * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER + * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + */ + +#include +#include +#include +#include +#include + +/* Distinctly different from _PATH_NOLOGIN. */ +#define _PATH_NOLOGIN_TXT "/etc/nologin.txt" + +#define DEFAULT_MESG "This account is currently not available.\n" + +/*ARGSUSED*/ +int main(argc, argv) + int argc; + char *argv[]; +{ + int nfd, nrd; + char nbuf[128]; + + nfd = open(_PATH_NOLOGIN_TXT, O_RDONLY); + if (nfd < 0) { + write(STDOUT_FILENO, DEFAULT_MESG, strlen(DEFAULT_MESG)); + exit (1); + } + + while ((nrd = read(nfd, nbuf, sizeof(nbuf))) > 0) + write(STDOUT_FILENO, nbuf, nrd); + close (nfd); + + exit (1); +} diff --git a/plans/ci.fmf b/plans/ci.fmf deleted file mode 100644 index c1627f9..0000000 --- a/plans/ci.fmf +++ /dev/null @@ -1,5 +0,0 @@ -summary: Basic smoke test -discover: - how: fmf -execute: - how: tmt diff --git a/raw-handle-nonpresent-devs.patch b/raw-handle-nonpresent-devs.patch new file mode 100644 index 0000000..1dd0b76 --- /dev/null +++ b/raw-handle-nonpresent-devs.patch @@ -0,0 +1,73 @@ +--- util-linux-2.12a/disk-utils/raw.c.=K0000=.orig ++++ util-linux-2.12a/disk-utils/raw.c +@@ -31,6 +31,7 @@ + #endif + #define DEVFS_RAWCTLDEV "/dev/raw/rawctl" + ++#define RAW_NR_MINORS 8192 + + char * progname; + int do_query = 0; +@@ -94,7 +95,7 @@ int main(int argc, char *argv[]) + if (do_query_all) { + if (optind < argc) + usage(1); +- for (i=1; i<255; i++) ++ for (i = 1; i < RAW_NR_MINORS; i++) + query(i, 1); + exit(0); + } +@@ -109,9 +110,16 @@ int main(int argc, char *argv[]) + + err = stat(raw_name, &statbuf); + if (err) { +- fprintf (stderr, "Cannot locate raw device '%s' (%s)\n", +- raw_name, strerror(errno)); +- exit(2); ++ int rc; ++ ++ rc = sscanf(raw_name, RAWDEVDIR "raw%d", &raw_minor); ++ if (rc != 1) { ++ fprintf (stderr, ++ "Cannot locate raw device '%s' (%s)\n", ++ raw_name, strerror(errno)); ++ exit(2); ++ } ++ goto skip_test_rawdev; + } + + if (!S_ISCHR(statbuf.st_mode)) { +@@ -127,6 +135,7 @@ int main(int argc, char *argv[]) + + raw_minor = minor(statbuf.st_rdev); + ++skip_test_rawdev: + if (do_query) + return query(raw_minor, 0); + +@@ -193,6 +202,7 @@ void open_raw_ctl(void) + int query(int minor, int quiet) + { + struct raw_config_request rq; ++ static int has_worked = 0; + int err; + + rq.raw_minor = minor; +@@ -200,11 +210,17 @@ int query(int minor, int quiet) + if (err < 0) { + if (quiet && errno == ENODEV) + return 3; ++ if (has_worked && errno == EINVAL) ++ return 0; + fprintf (stderr, + "Error querying raw device (%s)\n", + strerror(errno)); + exit(3); + } ++ /* If one query has worked, mark that fact so that we don't ++ * report spurious fatal errors if raw(8) has been built to ++ * support more raw minor numbers than the kernel has. */ ++ has_worked = 1; + if (quiet && !rq.block_major && !rq.block_minor) + return 0; + printf (RAWDEVDIR "raw%d: bound to major %d, minor %d\n", diff --git a/sources b/sources index 8420d1b..dcc01f1 100644 --- a/sources +++ b/sources @@ -1 +1,2 @@ -SHA512 (util-linux-2.42.2.tar.xz) = 7415add0be2930654e322830808dde03ff6d511bd357f0679e6b6287a13ca79fe58ce4ac05edef86b76fb381b3a36ca2da9d3c31b5dc0a1d889c203156a57277 +7d3ac81855e26687dada6a31d2677875 floppy-0.12.tar.gz +13cdf4b76533e8421dc49de188f85291 util-linux-2.13-pre7.tar.bz2 diff --git a/tests/various/Makefile b/tests/various/Makefile deleted file mode 100644 index 2357934..0000000 --- a/tests/various/Makefile +++ /dev/null @@ -1,64 +0,0 @@ -# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -# -# Makefile of /CoreOS/util-linux/various -# Description: This test groups small sanity and regression tests for util-linux -# Author: Miroslav Vadkerti -# -# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -# -# Copyright (c) 2013 Red Hat, Inc. All rights reserved. -# -# This copyrighted material is made available to anyone wishing -# to use, modify, copy, or redistribute it subject to the terms -# and conditions of the GNU General Public License version 2. -# -# This program is distributed in the hope that it will be -# useful, but WITHOUT ANY WARRANTY; without even the implied -# warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR -# PURPOSE. See the GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public -# License along with this program; if not, write to the Free -# Software Foundation, Inc., 51 Franklin Street, Fifth Floor, -# Boston, MA 02110-1301, USA. -# -# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -export TEST=/CoreOS/util-linux/Sanity/various -export TESTVERSION=1.0 - -BUILT_FILES= - -FILES=$(METADATA) runtest.sh Makefile PURPOSE - -.PHONY: all install download clean - -run: $(FILES) build - ./runtest.sh - -build: $(BUILT_FILES) - test -x runtest.sh || chmod a+x runtest.sh - -clean: - rm -f *~ $(BUILT_FILES) - - -include /usr/share/rhts/lib/rhts-make.include - -$(METADATA): Makefile - @echo "Owner: Miroslav Vadkerti " > $(METADATA) - @echo "Name: $(TEST)" >> $(METADATA) - @echo "TestVersion: $(TESTVERSION)" >> $(METADATA) - @echo "Path: $(TEST_DIR)" >> $(METADATA) - @echo "Description: This test groups small sanity and regression tests for util-linux" >> $(METADATA) - @echo "Type: Sanity" >> $(METADATA) - @echo "TestTime: 10m" >> $(METADATA) - @echo "RunFor: util-linux" >> $(METADATA) - @echo "Requires: util-linux util-linux-user" >> $(METADATA) - @echo "Priority: Normal" >> $(METADATA) - @echo "License: GPLv2" >> $(METADATA) - @echo "Confidential: no" >> $(METADATA) - @echo "Destructive: no" >> $(METADATA) - @echo "Releases: -RHEL3 -RHEL4 -RHEL5Server -RHEL5Client -RHEL6" >> $(METADATA) - - rhts-lint $(METADATA) diff --git a/tests/various/PURPOSE b/tests/various/PURPOSE deleted file mode 100644 index b4de79a..0000000 --- a/tests/various/PURPOSE +++ /dev/null @@ -1,3 +0,0 @@ -PURPOSE of /CoreOS/util-linux/various -Description: This test groups small sanity and regression tests for util-linux -Author: Miroslav Vadkerti diff --git a/tests/various/main.fmf b/tests/various/main.fmf deleted file mode 100644 index c71537e..0000000 --- a/tests/various/main.fmf +++ /dev/null @@ -1,13 +0,0 @@ -summary: This test groups small sanity and regression tests for util-linux -description: '' -contact: Miroslav Vadkerti -component: - - util-linux -test: ./runtest.sh -framework: beakerlib -recommend: - - util-linux - - util-linux-user -duration: 10m -extra-summary: /CoreOS/util-linux/Sanity/various -extra-task: /CoreOS/util-linux/Sanity/various diff --git a/tests/various/runtest.sh b/tests/various/runtest.sh deleted file mode 100755 index 4394d41..0000000 --- a/tests/various/runtest.sh +++ /dev/null @@ -1,51 +0,0 @@ -#!/bin/bash -# vim: dict=/usr/share/beakerlib/dictionary.vim cpt=.,w,b,u,t,i,k -# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -# -# runtest.sh of /CoreOS/util-linux/various -# Description: This test groups small sanity and regression tests for util-linux -# Author: Miroslav Vadkerti -# -# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -# -# Copyright (c) 2013 Red Hat, Inc. All rights reserved. -# -# This copyrighted material is made available to anyone wishing -# to use, modify, copy, or redistribute it subject to the terms -# and conditions of the GNU General Public License version 2. -# -# This program is distributed in the hope that it will be -# useful, but WITHOUT ANY WARRANTY; without even the implied -# warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR -# PURPOSE. See the GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public -# License along with this program; if not, write to the Free -# Software Foundation, Inc., 51 Franklin Street, Fifth Floor, -# Boston, MA 02110-1301, USA. -# -# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -# Include Beaker environment -. /usr/share/beakerlib/beakerlib.sh || exit 1 - -PACKAGE="util-linux" - -rlJournalStart - rlPhaseStartSetup - rlAssertRpm $PACKAGE - rlPhaseEnd - - rlPhaseStartTest "return code of chfn should be always 1 in case failure" - rlRun "chfn -f a:b" 1 - rlRun "chfn -o a:b" 1 - rlRun "chfn -p a:b" 1 - rlRun "chfn -h a:b" 1 - rlRun "chfn -x a:b" 1 - rlRun "chfn -f a -o b -p c -h d unknown-user" 1 - rlPhaseEnd - - rlPhaseStartCleanup - rlPhaseEnd -rlJournalPrintText -rlJournalEnd diff --git a/util-linux-2.11f-rawman.patch b/util-linux-2.11f-rawman.patch new file mode 100644 index 0000000..c891c2b --- /dev/null +++ b/util-linux-2.11f-rawman.patch @@ -0,0 +1,14 @@ +--- util-linux-2.11f/disk-utils/raw.8.sopwith Tue Feb 26 13:15:34 2002 ++++ util-linux-2.11f/disk-utils/raw.8 Tue Feb 26 13:16:28 2002 +@@ -58,6 +58,11 @@ + disk, they must be an exact number of sectors long, and the data buffer + in virtual memory must also be aligned to a multiple of the sector + size. The sector size is 512 bytes for most devices. ++.PP ++Use the /etc/sysconfig/rawdevices file to define the set of raw device ++mappings automatically created during the system startup sequence. The ++format of the file is the same used in the command line with the exception ++that the "raw" command itself is omitted. + .SH OPTIONS + .TP + .B -q diff --git a/util-linux-2.11y-chsh-103004.patch b/util-linux-2.11y-chsh-103004.patch new file mode 100644 index 0000000..2bafab1 --- /dev/null +++ b/util-linux-2.11y-chsh-103004.patch @@ -0,0 +1,19 @@ +--- util-linux-2.11y/login-utils/chsh.c.sopwith Fri Sep 5 08:51:49 2003 ++++ util-linux-2.11y/login-utils/chsh.c Fri Sep 5 08:53:43 2003 +@@ -185,7 +185,6 @@ + printf (_("Shell not changed.\n")); + return 0; + } +- if (!strcmp(shell, "/bin/sh")) shell = ""; + pw->pw_shell = shell; + if (setpwnam (pw) < 0) { + perror ("setpwnam"); +@@ -299,6 +298,8 @@ + check_shell (char *shell) { + int i, c; + ++ if (! *shell) shell = "/bin/sh"; /* Fudge it */ ++ + if (*shell != '/') { + printf (_("%s: shell must be a full path name.\n"), whoami); + return (-1); diff --git a/util-linux-2.11y-fdisksegv-103954.patch b/util-linux-2.11y-fdisksegv-103954.patch new file mode 100644 index 0000000..367edb9 --- /dev/null +++ b/util-linux-2.11y-fdisksegv-103954.patch @@ -0,0 +1,31 @@ +*** util-linux-2.11y/fdisk/fdisk.c.000 2003-09-08 14:47:41.000000000 +0200 +--- util-linux-2.11y/fdisk/fdisk.c 2003-09-08 15:01:42.000000000 +0200 +*************** +*** 2020,2028 **** + for (i = 0; i < 4; i++) + free_primary += !ptes[i].part_table->sys_ind; + +! if (!free_primary && partitions >= MAXIMUM_PARTS) { +! printf(_("The maximum number of partitions has been created\n")); +! return; + } + + if (!free_primary) { +--- 2020,2036 ---- + for (i = 0; i < 4; i++) + free_primary += !ptes[i].part_table->sys_ind; + +! // Fix to only add primary partition if all logical partions are used +! if (partitions >= MAXIMUM_PARTS) { +! if (!free_primary) { +! printf(_("The maximum number of partitions has been created\n")); +! return; +! } +! else { +! add_partition(get_partition(0, 4), +! LINUX_NATIVE); +! return; +! } + } + + if (!free_primary) { diff --git a/util-linux-2.11y-multibyte.patch b/util-linux-2.11y-multibyte.patch new file mode 100644 index 0000000..46915e0 --- /dev/null +++ b/util-linux-2.11y-multibyte.patch @@ -0,0 +1,26 @@ +--- util-linux-2.11y/text-utils/more.c.multibyte 2003-02-03 16:22:32.000000000 +0000 ++++ util-linux-2.11y/text-utils/more.c 2003-02-03 17:03:45.000000000 +0000 +@@ -1163,7 +1163,23 @@ + my_putstring(state ? ULenter : ULexit); + } + if (c != ' ' || pstate == 0 || state != 0 || ulglitch == 0) ++#ifdef ENABLE_WIDECHAR ++ { ++ wchar_t wc; ++ size_t mblength; ++ mbstate_t state; ++ memset (&state, '\0', sizeof (mbstate_t)); ++ s--; n++; ++ mblength = mbrtowc (&wc, s, n, &state); ++ if (mblength == (size_t) -2 || mblength == (size_t) -1) ++ mblength = 1; ++ while (mblength--) ++ putchar (*s++); ++ n += mblength; ++ } ++#else + putchar(c); ++#endif /* ENABLE_WIDECHAR */ + if (state && *chUL) { + pr(chBS); + my_putstring(chUL); diff --git a/util-linux-2.11y-procpartitions-37436.patch b/util-linux-2.11y-procpartitions-37436.patch new file mode 100644 index 0000000..978e906 --- /dev/null +++ b/util-linux-2.11y-procpartitions-37436.patch @@ -0,0 +1,70 @@ +--- util-linux-2.11y/disk-utils/blockdev.c.procpartitions 2002-03-08 17:57:02.000000000 -0500 ++++ util-linux-2.11y/disk-utils/blockdev.c 2003-01-13 14:28:41.000000000 -0500 +@@ -290,6 +290,7 @@ + char ptname[200]; + char device[210]; + int ma, mi, sz; ++ char iobuf[32*1024]; + + procpt = fopen(PROC_PARTITIONS, "r"); + if (!procpt) { +@@ -297,6 +298,7 @@ + progname, PROC_PARTITIONS); + exit(1); + } ++ setvbuf(procpt, iobuf, _IOFBF, sizeof(iobuf)); + + while (fgets(line, sizeof(line), procpt)) { + if (sscanf (line, " %d %d %d %[^\n ]", +--- util-linux-2.11y/fdisk/fdisk.c.procpartitions 2003-01-13 14:28:41.000000000 -0500 ++++ util-linux-2.11y/fdisk/fdisk.c 2003-01-13 14:28:41.000000000 -0500 +@@ -2371,12 +2371,14 @@ + FILE *procpt; + char line[100], ptname[100], devname[120], *s; + int ma, mi, sz; ++ char iobuf[32*1024]; + + procpt = fopen(PROC_PARTITIONS, "r"); + if (procpt == NULL) { + fprintf(stderr, _("cannot open %s\n"), PROC_PARTITIONS); + return; + } ++ setvbuf(procpt, iobuf, _IOFBF, sizeof(iobuf)); + + while (fgets(line, sizeof(line), procpt)) { + if (sscanf (line, " %d %d %d %[^\n ]", +--- util-linux-2.11y/mount/mount_by_label.c.procpartitions 2002-11-26 04:23:49.000000000 -0500 ++++ util-linux-2.11y/mount/mount_by_label.c 2003-01-13 14:31:53.000000000 -0500 +@@ -136,9 +136,7 @@ + char device[110]; + int firstPass; + int handleOnFirst; +-#if 0 + char iobuf[32*1024]; /* For setvbuf */ +-#endif + + if (uuidCache) + return; +@@ -155,7 +153,6 @@ + PROC_PARTITIONS); + return; + } +-#if 0 + /* Ugly kludge - the contents of /proc/partitions change in time, + and this causes failures when the file is not read in one go. + In particular, one cannot use stdio on /proc/partitions. +@@ -166,9 +163,12 @@ + to keep statistics in /proc/partitions. Of course, statistics belong + in some /proc/diskstats, not in some /proc file that happened to + exist already. */ +- ++/* Until someone actually implements something else, /proc/partitions _IS_ ++ /proc/diskstats. And no matter what file we are reading, we will still ++ need to increase the buffer size, because 8k is just not Enough For ++ Everyone even if stats aren't in /proc/partitions. ++*/ + setvbuf(procpt, iobuf, _IOFBF, sizeof(iobuf)); +-#endif + + for (firstPass = 1; firstPass >= 0; firstPass--) { + fseek(procpt, 0, SEEK_SET); diff --git a/util-linux-2.11y-skipraid2.patch b/util-linux-2.11y-skipraid2.patch new file mode 100644 index 0000000..4778706 --- /dev/null +++ b/util-linux-2.11y-skipraid2.patch @@ -0,0 +1,109 @@ +--- util-linux-2.11y/mount/linux_fs.h.skipraid2 2002-10-07 09:08:22.000000000 -0400 ++++ util-linux-2.11y/mount/linux_fs.h 2003-01-13 14:42:57.000000000 -0500 +@@ -13,6 +13,12 @@ + #endif + #endif + ++#include ++#ifndef BLKGETSIZE64 ++#include ++#define BLKGETSIZE64 _IOR(0x12,114,sizeof(uint64_t)) ++#endif ++ + #define MINIX_SUPER_MAGIC 0x137F /* minix v1, 14 char names */ + #define MINIX_SUPER_MAGIC2 0x138F /* minix v1, 30 char names */ + #define MINIX2_SUPER_MAGIC 0x2468 /* minix v2, 14 char names */ +--- util-linux-2.11y/mount/get_label_uuid.c.skipraid2 2003-01-13 14:44:04.000000000 -0500 ++++ util-linux-2.11y/mount/get_label_uuid.c 2003-01-13 14:46:34.000000000 -0500 +@@ -6,6 +6,8 @@ + #include + #include + #include ++#include ++#include + + #include "linux_fs.h" + #include "get_label_uuid.h" +@@ -19,28 +21,62 @@ + * not on the disks that form the raid array. This test causes a lot of + * problems when run on my striped promise fasttrak 100 array." + */ +-static inline int +-is_raid_partition(int fd) { +-#if 0 +- struct mdp_super_block mdsb; +- int n; +- +- /* hardcode 4096 here in various places, because that's +- what it's defined to be. Note that even if we used +- the actual kernel headers, sizeof(mdp_super_t) is +- slightly larger in the 2.2 kernel on 64-bit archs, +- so using that wouldn't work. */ +- lseek(fd, -4096, SEEK_END); /* Ignore possible error +- about return value overflow */ +- n = 4096; +- if (sizeof(mdsb) < n) +- n = sizeof(mdsb); +- if (read(fd, &mdsb, n) != n) +- return 1; /* error */ +- return (mdsbmagic(mdsb) == MD_SB_MAGIC); ++ ++#if BYTE_ORDER == BIG_ENDIAN ++#define INT32_FROM_LE(val) ((unsigned int) ( \ ++ (((unsigned int) (val) & (unsigned int) 0x000000ffU) << 24) | \ ++ (((unsigned int) (val) & (unsigned int) 0x0000ff00U) << 8) | \ ++ (((unsigned int) (val) & (unsigned int) 0x00ff0000U) >> 8) | \ ++ (((unsigned int) (val) & (unsigned int) 0xff000000U) >> 24))) + #else +- return 0; ++#define INT32_FROM_LE(val) (val) ++#endif ++ ++typedef struct { ++ unsigned int md_magic; ++} mdp_super_t; ++#ifndef MD_SB_MAGIC ++#define MD_SB_MAGIC 0xa92b4efc ++#endif ++#ifndef MD_RESERVED_BYTES ++#define MD_RESERVED_BYTES 65536L + #endif ++#ifndef MD_NEW_SIZE_BYTES ++#define MD_NEW_SIZE_BYTES(x) ((x & ~(MD_RESERVED_BYTES - 1L)) - MD_RESERVED_BYTES) ++#endif ++ ++static int ++is_raid_partition(int fd) ++{ ++ mdp_super_t mdsb; ++ int n; ++ struct stat sbuf; ++ if(fstat(fd, &sbuf)) ++ return 2; ++ if(!sbuf.st_size) { ++ uint64_t bsize64; ++ unsigned int bsize32; ++ if(!ioctl(fd, BLKGETSIZE64, &bsize64)) ++ sbuf.st_size = bsize64; ++ else if(!ioctl(fd, BLKGETSIZE, &bsize32)) ++ sbuf.st_size = bsize32; ++ } ++ if(!sbuf.st_size) return 3; ++ /* hardcode 4096 here in various places, ++ because that's what it's defined to be. ++ Note that even if we used the actual kernel headers, ++ sizeof(mdp_super_t) is slightly larger in the 2.2 kernel on 64-bit ++ archs, so using that wouldn't work. */ ++ lseek(fd, MD_NEW_SIZE_BYTES(sbuf.st_size), SEEK_SET); ++ n = 4096; if(sizeof(mdsb) < n) n = sizeof(mdsb); ++ if(read(fd, &mdsb, n) != n) ++ return 4; /* error */ ++ mdsb.md_magic = INT32_FROM_LE(mdsb.md_magic); ++ return (mdsb.md_magic == MD_SB_MAGIC); /* If this device has a ++ RAID superblock at ++ the end, it must be ++ part of a RAID ++ array. */ + } + + /* for now, only ext2, ext3, xfs, ocfs are supported */ diff --git a/util-linux-2.12a-126572-fdiskman.patch b/util-linux-2.12a-126572-fdiskman.patch new file mode 100644 index 0000000..5142d1b --- /dev/null +++ b/util-linux-2.12a-126572-fdiskman.patch @@ -0,0 +1,32 @@ +--- util-linux-2.12a/fdisk/fdisk.8.sopwith 2004-07-09 17:49:08.522648265 -0400 ++++ util-linux-2.12a/fdisk/fdisk.8 2004-07-09 17:50:24.281128923 -0400 +@@ -213,28 +213,9 @@ + There are several *fdisk programs around. + Each has its problems and strengths. + Try them in the order +-.BR cfdisk , ++.BR parted , + .BR fdisk , + .BR sfdisk . +-(Indeed, +-.B cfdisk +-is a beautiful program that has strict requirements on +-the partition tables it accepts, and produces high quality partition +-tables. Use it if you can. +-.B fdisk +-is a buggy program that does fuzzy things - usually it happens to +-produce reasonable results. Its single advantage is that it has +-some support for BSD disk labels and other non-DOS partition tables. +-Avoid it if you can. +-.B sfdisk +-is for hackers only - the user interface is terrible, but it is +-more correct than fdisk and more powerful than both fdisk and cfdisk. +-Moreover, it can be used noninteractively.) +-.PP +-These days there also is +-.BR parted . +-The cfdisk interface is nicer, but parted does much more: it not only +-resizes partitions, but also the filesystems that live in them. + .PP + The IRIX/SGI type disklabel is currently not supported by the kernel. + Moreover, IRIX/SGI header directories are not fully supported yet. diff --git a/util-linux-2.12a-16415-rdevman.patch b/util-linux-2.12a-16415-rdevman.patch new file mode 100644 index 0000000..4003e43 --- /dev/null +++ b/util-linux-2.12a-16415-rdevman.patch @@ -0,0 +1,55 @@ +--- util-linux-2.12a/fdisk/fdisk.8.sopwith 2004-08-20 14:46:47.062722632 -0400 ++++ util-linux-2.12a/fdisk/fdisk.8 2004-08-20 14:47:12.496816302 -0400 +@@ -149,12 +149,12 @@ + this extra information even if the /U flag is given -- we consider + this a bug in DOS FORMAT and DOS FDISK. + +-The bottom line is that if you use cfdisk or fdisk to change the size of a ++The bottom line is that if you use fdisk to change the size of a + DOS partition table entry, then you must also use + .B dd + to zero the first 512 bytes of that partition before using DOS FORMAT to +-format the partition. For example, if you were using cfdisk to make a DOS +-partition table entry for /dev/hda1, then (after exiting fdisk or cfdisk ++format the partition. For example, if you were using disk to make a DOS ++partition table entry for /dev/hda1, then (after exiting fdisk + and rebooting Linux so that the partition table information is valid) you + would use the command "dd if=/dev/zero of=/dev/hda1 bs=512 count=1" to zero + the first 512 bytes of the partition. +@@ -166,7 +166,7 @@ + + For best results, you should always use an OS-specific partition table + program. For example, you should make DOS partitions with the DOS FDISK +-program and Linux partitions with the Linux fdisk or Linux cfdisk program. ++program and Linux partitions with the Linux fdisk program. + + .SH OPTIONS + .TP +@@ -228,7 +228,6 @@ + .\" Andreas Neuper (ANeuper@GUUG.de) + .\" and many others. + .SH "SEE ALSO" +-.BR cfdisk (8), + .BR mkfs (8), + .BR parted (8), + .BR sfdisk (8) +--- util-linux-2.12a/sys-utils/rdev.8.sopwith 2004-08-20 11:35:56.740842004 -0400 ++++ util-linux-2.12a/sys-utils/rdev.8 2004-08-20 11:38:38.291622818 -0400 +@@ -79,7 +79,8 @@ + .B ramsize + command, the + .B size +-parameter specifies the size of the RAM disk in kilobytes. ++parameter specifies the size of the RAM disk in kilobytes. 2.0.x kernels and newer dynamically allocate the ramdisk ++and do not need this setting. + + For the + .B rootflags +@@ -121,6 +122,7 @@ + .B rdev + to act like + .BR ramsize . ++(Not relevant for 2.0.x and newer kernels.) + .TP + .B \-R + Causes diff --git a/util-linux-2.12a-ipcs-84243-86285.patch b/util-linux-2.12a-ipcs-84243-86285.patch new file mode 100644 index 0000000..c20e5ba --- /dev/null +++ b/util-linux-2.12a-ipcs-84243-86285.patch @@ -0,0 +1,21 @@ +--- util-linux-2.12a/sys-utils/ipcs.c.ipcs 2004-03-04 14:28:42.000000000 -0500 ++++ util-linux-2.12a/sys-utils/ipcs.c 2004-05-26 18:05:44.967792668 -0400 +@@ -25,6 +25,7 @@ + #include + #include + #include ++#include + #include "nls.h" + + /* X/OPEN tells us to use for semctl() */ +@@ -279,8 +280,8 @@ + (unsigned long) shminfo.shmmni); + printf (_("max seg size (kbytes) = %lu\n"), + (unsigned long) (shminfo.shmmax >> 10)); +- printf (_("max total shared memory (pages) = %lu\n"), +- (unsigned long) shminfo.shmall); ++ printf (_("max total shared memory (kbytes) = %lu\n"), ++ (getpagesize()*((unsigned long) shminfo.shmall))/1024UL); + printf (_("min seg size (bytes) = %lu\n"), + (unsigned long) shminfo.shmmin); + return; diff --git a/util-linux-2.12a-mount-man-cifs.patch b/util-linux-2.12a-mount-man-cifs.patch new file mode 100644 index 0000000..df673ef --- /dev/null +++ b/util-linux-2.12a-mount-man-cifs.patch @@ -0,0 +1,19 @@ +--- util-linux-2.12a/mount/mount.8.cifs 2005-11-23 16:34:34.000000000 +0100 ++++ util-linux-2.12a/mount/mount.8 2005-11-23 16:38:37.000000000 +0100 +@@ -720,6 +720,16 @@ + (However, quota utilities may react to such strings in + .IR /etc/fstab .) + ++.SH "Mount options for cifs" ++Just like ++.IR nfs " or " smbfs ++implementation expects a binary argument ++to the mount system call. This argument is constructed by ++.BR mount.cifs (8) ++and the current version of ++.B mount ++(2.12) does not know anything about cifs. ++ + .SH "Mount options for coherent" + None. + diff --git a/util-linux-2.12a-mountbylabel-dm.patch b/util-linux-2.12a-mountbylabel-dm.patch new file mode 100644 index 0000000..fd8f567 --- /dev/null +++ b/util-linux-2.12a-mountbylabel-dm.patch @@ -0,0 +1,63 @@ +--- util-linux-2.12a/mount/mount_by_label.c.old 2004-08-11 22:25:06.000000000 +0100 ++++ util-linux-2.12a/mount/mount_by_label.c 2004-08-11 22:25:21.000000000 +0100 +@@ -17,6 +17,8 @@ + * - Added JFS v2 format support + * 2002-07-26 Luciano Chavez + * - Added EVMS support ++ * 2004-08-11 Alasdair Kergon ++ * - Added LVM2/device-mapper support + */ + + #include +@@ -38,6 +40,7 @@ + #define VG_DIR "/proc/lvm/VGs" + #define EVMS_VOLUME_NAME_SIZE 127 + #define PROC_EVMS_VOLUMES "/proc/evms/volumes" ++#define DEVICEMAPPERDIR "/dev/mapper" + + static struct uuidCache_s { + struct uuidCache_s *next; +@@ -101,6 +104,34 @@ + closedir(vg_dir); + } + ++/* LVM2/device-mapper support */ ++static void ++uuidcache_init_dm(void) { ++ char lvm_device[PATH_MAX]; ++ DIR *d; ++ struct dirent *lv_iter; ++ char uuid[16], *label; ++ ++ if (!(d = opendir(DEVICEMAPPERDIR))) { ++ if (errno != ENOENT) ++ perror("mount (init_dm)"); ++ return; ++ } ++ ++ while ((lv_iter = readdir(d))) { ++ if (!strcmp(lv_iter->d_name, "control") || ++ !strcmp(lv_iter->d_name, ".") || ++ !strcmp(lv_iter->d_name, "..")) ++ continue; ++ snprintf(lvm_device, sizeof(lvm_device), "%s/%s", ++ DEVICEMAPPERDIR, lv_iter->d_name); ++ if (!get_label_uuid(strdup(lvm_device), &label, uuid)) ++ uuidcache_addentry(strdup(lvm_device), ++ label, uuid); ++ } ++ closedir(d); ++} ++ + static int + uuidcache_init_evms(void) { + FILE *procvol; +@@ -250,6 +281,8 @@ + fclose(procpt); + + uuidcache_init_lvm(); ++ ++ uuidcache_init_dm(); + } + + #define UUID 1 diff --git a/util-linux-2.12a-pamsession.patch b/util-linux-2.12a-pamsession.patch new file mode 100644 index 0000000..cace510 --- /dev/null +++ b/util-linux-2.12a-pamsession.patch @@ -0,0 +1,12 @@ +diff -urb util-linux-2.12a.orig/login-utils/login.c util-linux-2.12a/login-utils/login.c +--- util-linux-2.12a.orig/login-utils/login.c 2005-04-08 09:43:37.000000000 -0400 ++++ util-linux-2.12a/login-utils/login.c 2005-04-08 11:14:37.850579656 -0400 +@@ -703,6 +703,8 @@ + PAM_FAIL_CHECK; + + retcode = pam_setcred(pamh, PAM_ESTABLISH_CRED); ++ if (retcode != PAM_SUCCESS) ++ pam_close_session(pamh, 0); + PAM_FAIL_CHECK; + + #else /* ! USE_PAM */ diff --git a/util-linux-2.12a-pamstart.patch b/util-linux-2.12a-pamstart.patch new file mode 100644 index 0000000..1ca73e2 --- /dev/null +++ b/util-linux-2.12a-pamstart.patch @@ -0,0 +1,11 @@ +--- util-linux-2.12a/login-utils/login.c.pamstart 2004-09-15 16:13:36.462028734 +0200 ++++ util-linux-2.12a/login-utils/login.c 2004-09-15 16:13:50.790278325 +0200 +@@ -549,7 +549,7 @@ + * Therefore, we are safe not setting it to anything + */ + +- retcode = pam_start("login",username, &conv, &pamh); ++ retcode = pam_start(hflag?"remote":"login",username, &conv, &pamh); + if(retcode != PAM_SUCCESS) { + fprintf(stderr, _("login: PAM Failure, aborting: %s\n"), + pam_strerror(pamh, retcode)); diff --git a/util-linux-2.12a-partlimit.patch b/util-linux-2.12a-partlimit.patch new file mode 100644 index 0000000..6912547 --- /dev/null +++ b/util-linux-2.12a-partlimit.patch @@ -0,0 +1,22 @@ +--- util-linux-2.12pre/fdisk/fdisk.8.miscfixes 2002-08-06 10:33:33.000000000 -0400 ++++ util-linux-2.12pre/fdisk/fdisk.8 2003-12-17 13:55:16.000000000 -0500 +@@ -65,7 +65,7 @@ + name followed by a partition number. For example, + .B /dev/hda1 + is the first partition on the first IDE hard disk in the system. +-IDE disks can have up to 63 partitions, SCSI disks up to 15. ++Disks can have up to 15 partitions. + See also + .IR /usr/src/linux/Documentation/devices.txt . + +--- util-linux-2.12pre/fdisk/fdisk.h.miscfixes 2003-07-13 14:25:00.000000000 -0400 ++++ util-linux-2.12pre/fdisk/fdisk.h 2003-12-17 13:55:16.000000000 -0500 +@@ -5,7 +5,7 @@ + #define DEFAULT_SECTOR_SIZE 512 + #define MAX_SECTOR_SIZE 2048 + #define SECTOR_SIZE 512 /* still used in BSD code */ +-#define MAXIMUM_PARTS 60 ++#define MAXIMUM_PARTS 15 + + #define ACTIVE_FLAG 0x80 + diff --git a/util-linux-2.12a-raw-man-dd.patch b/util-linux-2.12a-raw-man-dd.patch new file mode 100644 index 0000000..35f57eb --- /dev/null +++ b/util-linux-2.12a-raw-man-dd.patch @@ -0,0 +1,28 @@ +--- util-linux-2.12a/disk-utils/raw.8.dd 2006-04-24 15:27:39.000000000 +0200 ++++ util-linux-2.12a/disk-utils/raw.8 2006-04-24 15:53:46.000000000 +0200 +@@ -15,6 +15,12 @@ + .PP + .B raw + .B \-qa ++.SH WARNING ++Although Linux includes support for rawio, it is now a deprecated interface. If ++your application performs device access using this interface, Red Hat ++encourages you to modify your application to open the block device with the ++O_DIRECT flag. The rawio interface is a candidate for removal from future releases. ++ + .SH DESCRIPTION + .B raw + is used to bind a Linux raw character device to a block device. Any +@@ -82,8 +88,10 @@ + .SH BUGS + The Linux + .B dd +-(1) command does not currently align its buffers correctly, and so +-cannot be used on raw devices. ++(1) command should be used without bs= option or the blocksize needs to be a ++multiple of the sector size of the device (512 bytes usually) otherwise it ++will fail with "Invalid Argument" messages (EINVAL). ++ + .PP + Raw I/O devices do not maintain cache coherency with the Linux block + device buffer cache. If you use raw I/O to overwrite data already in diff --git a/util-linux-2.12j-113790-hotkeys.patch b/util-linux-2.12j-113790-hotkeys.patch new file mode 100644 index 0000000..afd8956 --- /dev/null +++ b/util-linux-2.12j-113790-hotkeys.patch @@ -0,0 +1,44 @@ +--- util-linux-2.12j/po/ca.po.sopwith 2004-12-05 14:08:08.000000000 -0500 ++++ util-linux-2.12j/po/ca.po 2004-12-10 13:10:52.411668785 -0500 +@@ -7183,7 +7183,7 @@ + #: login-utils/vipw.c:354 + #, c-format + msgid "Would you like to edit %s now [y/n]? " +-msgstr "Desitgeu editar %s ara? [s/n] " ++msgstr "Desitgeu editar %s ara? [y/n] " + + #: login-utils/wall.c:104 + #, c-format +--- util-linux-2.12j/po/da.po.sopwith 2004-12-05 14:08:09.000000000 -0500 ++++ util-linux-2.12j/po/da.po 2004-12-10 13:09:50.382880759 -0500 +@@ -1470,7 +1470,7 @@ + + #: fdisk/cfdisk.c:1526 + msgid "Do you wish to start with a zero table [y/N] ?" +-msgstr "Vil du starte med nulstillet tabel [j/N] ?" ++msgstr "Vil du starte med nulstillet tabel [y/N] ?" + + #: fdisk/cfdisk.c:1574 + msgid "You specified more cylinders than fit on disk" +--- util-linux-2.12j/po/nl.po.sopwith 2004-12-05 14:08:15.000000000 -0500 ++++ util-linux-2.12j/po/nl.po 2004-12-10 13:09:50.390878282 -0500 +@@ -1493,7 +1493,7 @@ + + #: fdisk/cfdisk.c:1526 + msgid "Do you wish to start with a zero table [y/N] ?" +-msgstr "Wilt u met een lege tabel beginnen [j/N] ?" ++msgstr "Wilt u met een lege tabel beginnen [y/N] ?" + + #: fdisk/cfdisk.c:1574 + msgid "You specified more cylinders than fit on disk" +--- util-linux-2.12j/po/pt_BR.po.sopwith 2004-12-05 14:08:15.000000000 -0500 ++++ util-linux-2.12j/po/pt_BR.po 2004-12-10 13:11:47.560587674 -0500 +@@ -7161,7 +7161,7 @@ + #: login-utils/vipw.c:354 + #, c-format + msgid "Would you like to edit %s now [y/n]? " +-msgstr "Voc gostaria de editar %s agora [s/n]" ++msgstr "Voc gostaria de editar %s agora [y/n]" + + #: login-utils/wall.c:104 + #, c-format diff --git a/util-linux-2.12j-managed.patch b/util-linux-2.12j-managed.patch new file mode 100644 index 0000000..48353d6 --- /dev/null +++ b/util-linux-2.12j-managed.patch @@ -0,0 +1,11 @@ +--- util-linux-2.12a/mount/mount.c.sopwith 2004-03-04 20:28:22.000000000 -0500 ++++ util-linux-2.12a/mount/mount.c 2004-07-16 16:50:18.792814782 -0400 +@@ -191,6 +191,8 @@ + { "diratime", 0, 1, MS_NODIRATIME }, /* Update dir access times */ + { "nodiratime", 0, 0, MS_NODIRATIME },/* Do not update dir access times */ + #endif ++ { "kudzu", 0, 0, MS_COMMENT }, /* Silently remove this option (backwards compat use only - deprecated) */ ++ { "managed", 0, 0, MS_COMMENT }, /* Silently remove this option */ + { NULL, 0, 0, 0 } + }; + diff --git a/util-linux-2.12j-pamconsole.patch b/util-linux-2.12j-pamconsole.patch new file mode 100644 index 0000000..8e02d1c --- /dev/null +++ b/util-linux-2.12j-pamconsole.patch @@ -0,0 +1,139 @@ +--- util-linux-2.12j/mount/mount.c.console 2004-12-10 12:32:57.887137495 -0500 ++++ util-linux-2.12j/mount/mount.c 2004-12-10 12:43:06.136750656 -0500 +@@ -97,14 +97,16 @@ + #define MS_USER 0x20000000 + #define MS_OWNER 0x10000000 + #define MS_GROUP 0x08000000 ++#define MS_PAMCONSOLE 0x04000000 + #define MS_COMMENT 0x00020000 + #define MS_LOOP 0x00010000 + ++ + /* Options that we keep the mount system call from seeing. */ +-#define MS_NOSYS (MS_NOAUTO|MS_USERS|MS_USER|MS_COMMENT|MS_LOOP) ++#define MS_NOSYS (MS_NOAUTO|MS_USERS|MS_USER|MS_COMMENT|MS_LOOP|MS_PAMCONSOLE) + + /* Options that we keep from appearing in the options field in the mtab. */ +-#define MS_NOMTAB (MS_REMOUNT|MS_NOAUTO|MS_USERS|MS_USER) ++#define MS_NOMTAB (MS_REMOUNT|MS_NOAUTO|MS_USERS|MS_USER|MS_PAMCONSOLE) + + /* Options that we make ordinary users have by default. */ + #define MS_SECURE (MS_NOEXEC|MS_NOSUID|MS_NODEV) +@@ -142,6 +144,8 @@ + { "comment", 0, 0, MS_COMMENT}, /* fstab comment only (kudzu,_netdev)*/ + + /* add new options here */ ++ { "pamconsole", 0, 0, MS_PAMCONSOLE }, /* Allow users at console to mount */ ++ { "nopamconsole", 0, 1, MS_PAMCONSOLE }, /* Console user has no special privs */ + #ifdef MS_NOSUB + { "sub", 0, 1, MS_NOSUB }, /* allow submounts */ + { "nosub", 0, 0, MS_NOSUB }, /* don't allow submounts */ +@@ -265,7 +269,7 @@ + *mask &= ~om->mask; + else + *mask |= om->mask; +- if ((om->mask == MS_USER || om->mask == MS_USERS) ++ if ((om->mask == MS_USER || om->mask == MS_USERS || om->mask == MS_PAMCONSOLE) + && !om->inv) + *mask |= MS_SECURE; + if ((om->mask == MS_OWNER || om->mask == MS_GROUP) +@@ -554,7 +558,29 @@ + } + } + +- /* James Kehl came with a similar patch: ++ /* Red Hat patch: allow users at console to mount when fstab ++ contains the console option. This option should not be used ++ in a high security environment but is useful to give console ++ users the possibility of using locally attached devices ++ such as USB keychains and USB harddisks where it is now suitable ++ to give the console owner write access to the device node */ ++ if (*flags & MS_PAMCONSOLE) { ++ char *username; ++ char pamconsole_file_name[256]; ++ struct stat sb; ++ ++ username = getusername (); ++ ++ if (username != NULL) { ++ snprintf (pamconsole_file_name, sizeof (pamconsole_file_name), ++ "/var/run/console/%s", username); ++ if (stat (pamconsole_file_name, &sb) == 0) { ++ *flags |= MS_USER; ++ } ++ } ++ } ++ ++ /* James Kehl came with a similar patch: + allow an arbitrary user to mount when he is the owner of + the mount-point and has write-access to the device. + This is even less secure. Let me skip it for the time being; +@@ -570,7 +596,7 @@ + *user = getusername(); + } + +- *flags &= ~(MS_OWNER | MS_GROUP); ++ *flags &= ~(MS_OWNER | MS_GROUP | MS_PAMCONSOLE); + } + + static int +--- util-linux-2.12j/mount/umount.c.console 2004-12-10 12:32:57.885138115 -0500 ++++ util-linux-2.12j/mount/umount.c 2004-12-10 12:44:51.494119742 -0500 +@@ -546,7 +546,7 @@ + umount_file (char *arg) { + struct mntentchn *mc, *fs; + const char *file, *options; +- int fstab_has_user, fstab_has_users, fstab_has_owner, fstab_has_group; ++ int fstab_has_user, fstab_has_users, fstab_has_owner, fstab_has_group, fstab_has_pamconsole; + int ok; + + file = canonicalize(arg); /* mtab paths are canonicalized */ +@@ -608,13 +608,16 @@ + fstab_has_users = contains(options, "users"); + fstab_has_owner = contains(options, "owner"); + fstab_has_group = contains(options, "group"); ++ fstab_has_pamconsole = contains(options, "pamconsole"); + ok = 0; + + if (fstab_has_users) + ok = 1; + + if (!ok && (fstab_has_user || fstab_has_owner || +- fstab_has_group)) { ++ fstab_has_group || fstab_has_pamconsole)) { ++ char pamconsole_file_name[256]; ++ struct stat sb; + char *user = getusername(); + + options = mc->m.mnt_opts; +@@ -624,6 +627,14 @@ + + if (user && mtab_user && streq (user, mtab_user)) + ok = 1; ++ ++ /*pam_console user check*/ ++ if (user && fstab_has_pamconsole) { ++ snprintf (pamconsole_file_name, sizeof (pamconsole_file_name), "/var/run/console/%s", user); ++ if (stat (pamconsole_file_name, &sb) == 0) { ++ ok = 1; ++ } ++ } + } + if (!ok) + die (2, _("umount: only %s can unmount %s from %s"), +--- util-linux-2.12j/mount/fstab.5.console 2004-09-28 10:13:42.000000000 -0400 ++++ util-linux-2.12j/mount/fstab.5 2004-12-10 12:59:05.088744506 -0500 +@@ -156,10 +156,10 @@ + .BR nfs (5). + Common for all types of file system are the options ``noauto'' + (do not mount when "mount -a" is given, e.g., at boot time), ``user'' +-(allow a user to mount), and ``owner'' +-(allow device owner to mount), and ``comment'' ++(allow a user to mount), ``owner'' ++(allow device owner to mount), ``pamconsole'' (allow a user at the console to mount), and ``comment'' + (e.g., for use by fstab-maintaining programs). +-The ``owner'' and ``comment'' options are Linux-specific. ++The ``owner'', ``pamconsole'' and ``comment'' options are Linux-specific. + For more details, see + .BR mount (8). + diff --git a/util-linux-2.12p-cal-wide.patch b/util-linux-2.12p-cal-wide.patch new file mode 100644 index 0000000..8440e53 --- /dev/null +++ b/util-linux-2.12p-cal-wide.patch @@ -0,0 +1,53 @@ +--- util-linux-2.12p/misc-utils/cal.c.wide 2004-12-05 20:20:36.000000000 +0100 ++++ util-linux-2.12p/misc-utils/cal.c 2006-01-02 15:13:50.000000000 +0100 +@@ -368,7 +368,7 @@ + int i, wd; + #ifdef ENABLE_WIDECHAR + wchar_t day_headings_wc[22],j_day_headings_wc[29]; +- wchar_t wd_wc[10]; ++ char *cur_dh = day_headings, *cur_j_dh = j_day_headings; + #endif + + strcpy(day_headings,""); +@@ -385,30 +385,25 @@ + #endif + + for(i = 0 ; i < 7 ; i++ ) { ++ ssize_t space_left; + wd = (i + week1stday) % 7; + #ifdef ENABLE_WIDECHAR +- mbstowcs(wd_wc,weekday(wd),10); +- if (wcswidth(wd_wc,10) < 3) +- wcscat(j_day_headings_wc,L" "); +- if (wcswidth(wd_wc,10) < 2) { +- wcscat(day_headings_wc, L" "); +- wcscat(j_day_headings_wc, L" "); +- } +- wcsncat(day_headings_wc,wd_wc,2); +- wcsncat(j_day_headings_wc,wd_wc,3); +- wcscat(day_headings_wc, L" "); +- wcscat(j_day_headings_wc, L" "); ++ swprintf(day_headings_wc, sizeof(day_headings_wc)/sizeof(day_headings_wc[0]), ++ L"%1.2s ", weekday(wd)); ++ swprintf(j_day_headings_wc, sizeof(j_day_headings_wc)/sizeof(j_day_headings_wc[0]), ++ L"%3.3s ", weekday(wd)); ++ space_left = sizeof(day_headings)-(cur_dh-day_headings); ++ if(space_left <= 0) break; ++ cur_dh += wcstombs(cur_dh,day_headings_wc, space_left); ++ space_left = sizeof(j_day_headings)-(cur_j_dh-j_day_headings); ++ if(space_left <= 0) break; ++ cur_j_dh += wcstombs(cur_j_dh,j_day_headings_wc, space_left); + #else + sprintf(eos(day_headings), "%2.2s ", weekday(wd)); + sprintf(eos(j_day_headings), "%3.3s ", weekday(wd)); + #endif + } + +-#ifdef ENABLE_WIDECHAR +- wcstombs(day_headings,day_headings_wc,sizeof(day_headings)); +- wcstombs(j_day_headings,j_day_headings_wc,sizeof(j_day_headings)); +-#endif +- + trim_trailing_spaces(day_headings); + trim_trailing_spaces(j_day_headings); + #undef weekday diff --git a/util-linux-2.12p-col-EILSEQ.patch b/util-linux-2.12p-col-EILSEQ.patch new file mode 100644 index 0000000..ef58ad4 --- /dev/null +++ b/util-linux-2.12p-col-EILSEQ.patch @@ -0,0 +1,38 @@ +--- util-linux-2.13-pre6/text-utils/col.c.kzak 2002-03-09 00:05:12.000000000 +0100 ++++ util-linux-2.13-pre6/text-utils/col.c 2006-02-21 22:25:48.000000000 +0100 +@@ -128,6 +128,7 @@ + int this_line; /* line l points to */ + int nflushd_lines; /* number of lines that were flushed */ + int adjust, opt, warned; ++ int ret = 0; + + setlocale(LC_ALL, ""); + bindtextdomain(PACKAGE, LOCALEDIR); +@@ -175,8 +176,16 @@ + cur_line = max_line = nflushd_lines = this_line = 0; + cur_set = last_set = CS_NORMAL; + lines = l = alloc_line(); +- +- while ((ch = getwchar()) != WEOF) { ++ ++ while (feof(stdin)==0) { ++ errno = 0; ++ if ((ch = getwchar()) == WEOF) { ++ if (errno==EILSEQ) { ++ perror("col"); ++ ret = 1; ++ } ++ break; ++ } + if (!iswgraph(ch)) { + switch (ch) { + case BS: /* can't go back further */ +@@ -332,7 +341,7 @@ + flush_blanks(); + if (ferror(stdout) || fclose(stdout)) + return 1; +- return 0; ++ return ret; + } + + void flush_lines(int nflush) diff --git a/util-linux-2.12p-execl.patch b/util-linux-2.12p-execl.patch new file mode 100644 index 0000000..3d88c5e --- /dev/null +++ b/util-linux-2.12p-execl.patch @@ -0,0 +1,25 @@ +--- util-linux-2.12p/login-utils/agetty.c.execl 2005-07-12 15:53:25.000000000 +0200 ++++ util-linux-2.12p/login-utils/agetty.c 2005-07-12 15:53:49.000000000 +0200 +@@ -382,7 +382,7 @@ + + /* Let the login program take care of password validation. */ + +- (void) execl(options.login, options.login, "--", logname, (char *) 0); ++ (void) execl(options.login, options.login, "--", logname, NULL); + error(_("%s: can't exec %s: %m"), options.tty, options.login); + exit(0); /* quiet GCC */ + } +--- util-linux-2.12p/misc-utils/script.c.execl 2005-07-12 15:54:17.000000000 +0200 ++++ util-linux-2.12p/misc-utils/script.c 2005-07-12 15:54:28.000000000 +0200 +@@ -325,9 +325,9 @@ + shname = shell; + + if (cflg) +- execl(shell, shname, "-c", cflg, 0); ++ execl(shell, shname, "-c", cflg, NULL); + else +- execl(shell, shname, "-i", 0); ++ execl(shell, shname, "-i", NULL); + + perror(shell); + fail(); diff --git a/util-linux-2.12p-fdformat-ide.patch b/util-linux-2.12p-fdformat-ide.patch new file mode 100644 index 0000000..80ea0b6 --- /dev/null +++ b/util-linux-2.12p-fdformat-ide.patch @@ -0,0 +1,22 @@ +--- util-linux-2.12p/disk-utils/fdformat.8.ide 2005-04-25 11:39:19.528340384 +0200 ++++ util-linux-2.12p/disk-utils/fdformat.8 2005-04-25 11:44:07.189609224 +0200 +@@ -45,6 +45,10 @@ + .BR setfdprm (8) + to load the disk parameters. + ++For ATAPI IDE floppy driver (also known as LS-120 drives or "Superdisk" ++drives) you have to use the ++.BR floppy (8). ++ + .SH OPTIONS + .TP + .B \-n +@@ -54,6 +58,7 @@ + .BR fd (4), + .BR setfdprm (8), + .BR mkfs (8), +-.BR emkfs (8) ++.BR emkfs (8), ++.BR floppy (8) + .SH AUTHOR + Werner Almesberger (almesber@nessie.cs.id.ethz.ch) diff --git a/util-linux-2.12p-floppy-generic.patch b/util-linux-2.12p-floppy-generic.patch new file mode 100644 index 0000000..ec33468 --- /dev/null +++ b/util-linux-2.12p-floppy-generic.patch @@ -0,0 +1,102 @@ +--- util-linux-2.12p/floppy-0.12/floppyfloppy.c.generic 2001-02-13 01:15:38.000000000 +0100 ++++ util-linux-2.12p/floppy-0.12/floppyfloppy.c 2005-09-30 15:38:08.000000000 +0200 +@@ -264,6 +264,33 @@ + #endif + } + ++/* -1=error, 1=true, 0=false */ ++static int check_generic(const char *dev, int n) ++{ ++ struct floppy_struct param; ++ int fd; ++ ++ if ((fd=open(dev, O_RDONLY)) < 0) ++ { ++ perror(dev); ++ return -1; ++ } ++ if (ioctl(fd,FDGETPRM,(long) ¶m) < 0) ++ { ++ perror(dev); ++ close(fd); ++ return -1; ++ } ++ close(fd); ++ ++ if (param.sect==floppy_type[n].sectors && ++ param.head==floppy_type[n].heads && ++ param.track==floppy_type[n].tracks) ++ /* generic device uses expected format */ ++ return 1; ++ ++ return 0; ++} + + static int do_format(const char *dev, int fmtnum, + int (*fmt_func)(const char *, int), int flags) +@@ -275,6 +302,7 @@ + struct format_descr curtrack; + int pct; + struct stat stat_buf; ++ int gen = 0; + + int i, j; + char *devname; +@@ -297,23 +325,52 @@ + + strcat(strcpy(devname, dev), floppy_type[fmtnum].dev); + ++ if (stat(devname, &stat_buf)==-1 && errno==ENOENT) ++ { ++ /* /dev/fd0xxxxx doesn't exist ...try to use generic device ++ * ++ * Note: we needn't size specific device if the generic device uses ++ * right floppy format (FDGETPRM). -- Karel Zak [30/09/2005] ++ */ ++ if ((gen = check_generic(dev, fmtnum))==1) /* true */ ++ { ++ fprintf(stderr, _("WARNING: size specific device %s doesn't exist, using generic device: %s\n"), ++ devname, dev); ++ strcpy(devname, dev); ++ } ++ else if (gen==0) /* false */ ++ { ++ fprintf(stderr, _("ERROR: size specific device %1$s doesn't exist. Use \"MAKEDEV %1$s\" and try it again.\n"), devname); ++ return (1); ++ } ++ else /* error -- no floppy medium or device? */ ++ return(1); ++ } + fd=open(devname, O_WRONLY); + if (fd < 0) + { + perror(devname); + return (1); + } +- +- if (fstat(fd, &stat_buf) || +- !S_ISBLK(stat_buf.st_mode) || +- MINOR_DEV(stat_buf.st_rdev) != fmtnum) ++ if (fstat(fd, &stat_buf) < 0) ++ { ++ perror(devname); ++ close(fd); ++ return (1); ++ } ++ if (!S_ISBLK(stat_buf.st_mode)) ++ { ++ fprintf(stderr,_("%s: not a block device\n"), devname); ++ close(fd); ++ return (1); ++ } ++ if (gen==0 && MINOR_DEV(stat_buf.st_rdev) != fmtnum) + { + errno=EINVAL; + perror(devname); + close(fd); + return (1); + } +- + if (ioctl(fd, FDGETPRM, &geo) < 0) + { + perror(devname); diff --git a/util-linux-2.12p-fstab-man.patch b/util-linux-2.12p-fstab-man.patch new file mode 100644 index 0000000..58075ea --- /dev/null +++ b/util-linux-2.12p-fstab-man.patch @@ -0,0 +1,25 @@ +--- util-linux-2.12p/mount/fstab.5.sync 2005-04-25 11:56:00.625150536 +0200 ++++ util-linux-2.12p/mount/fstab.5 2005-04-25 12:07:12.089072504 +0200 +@@ -49,10 +49,11 @@ + The file + .B fstab + contains descriptive information about the various file systems. ++It is the duty of the system administrator to properly create and maintain this file. + .B fstab +-is only read by programs, and not written; it is the duty of the system +-administrator to properly create and maintain this file. Each filesystem +-is described on a separate line; fields on each line are separated by tabs ++can be modified by special utils (e.g. ++.BR fstab-sync (8)). ++Each filesystem is described on a separate line; fields on each line are separated by tabs + or spaces. Lines starting with '#' are comments. The order of records in + .B fstab + is important because +@@ -200,6 +201,7 @@ + .BR swapon (8), + .BR fs (5) + .BR nfs (5) ++.BR fstab-sync (8) + .SH HISTORY + The ancestor of this + .B fstab diff --git a/util-linux-2.12p-ipcs-typo.patch b/util-linux-2.12p-ipcs-typo.patch new file mode 100644 index 0000000..3e74ab7 --- /dev/null +++ b/util-linux-2.12p-ipcs-typo.patch @@ -0,0 +1,14 @@ +--- util-linux-2.12p/sys-utils/ipcs.c.typo 2005-03-25 13:01:54.871752240 +0100 ++++ util-linux-2.12p/sys-utils/ipcs.c 2005-03-25 13:02:43.745322328 +0100 +@@ -423,9 +423,9 @@ + break; + + case TIME: +- printf (_("------ Shared Memory Operation/Change Times --------\n")); ++ printf (_("------ Semaphore Operation/Change Times --------\n")); + printf (_("%-8s %-10s %-26.24s %-26.24s\n"), +- _("shmid"),_("owner"),_("last-op"),_("last-changed")); ++ _("semid"),_("owner"),_("last-op"),_("last-changed")); + break; + + case PID: diff --git a/util-linux-2.12p-login-lastlog.patch b/util-linux-2.12p-login-lastlog.patch new file mode 100644 index 0000000..cd1b4f7 --- /dev/null +++ b/util-linux-2.12p-login-lastlog.patch @@ -0,0 +1,11 @@ +--- util-linux-2.12p/login-utils/login.c.login-lastlog 2005-03-24 13:26:06.516865128 +0100 ++++ util-linux-2.12p/login-utils/login.c 2005-03-24 13:26:58.136017824 +0100 +@@ -1397,7 +1397,7 @@ + struct lastlog ll; + int fd; + +- if ((fd = open(_PATH_LASTLOG, O_RDWR, 0)) >= 0) { ++ if ((fd = open(_PATH_LASTLOG, O_RDWR|O_CREAT, 0)) >= 0) { + lseek(fd, (off_t)pwd->pw_uid * sizeof(ll), SEEK_SET); + if (!quiet) { + if (read(fd, (char *)&ll, sizeof(ll)) == sizeof(ll) && diff --git a/util-linux-2.12p-look-separator.patch b/util-linux-2.12p-look-separator.patch new file mode 100644 index 0000000..cd48b34 --- /dev/null +++ b/util-linux-2.12p-look-separator.patch @@ -0,0 +1,16 @@ +--- util-linux-2.12p/misc-utils/look.c.sep 2005-05-02 12:51:17.808227240 +0200 ++++ util-linux-2.12p/misc-utils/look.c 2005-05-02 12:53:18.078943312 +0200 +@@ -327,9 +327,12 @@ + /* copy, ignoring things that should be ignored */ + p = comparbuf; + i = stringlen; +- while(s2 < s2end && *s2 != '\n' && i--) { ++ while(s2 < s2end && *s2 != '\n' && i) { + if (!dflag || isalnum(*s2)) ++ { + *p++ = *s2; ++ i--; ++ } + s2++; + } + *p = 0; diff --git a/util-linux-2.12p-lvm2dupes-76467.patch b/util-linux-2.12p-lvm2dupes-76467.patch new file mode 100644 index 0000000..3d74b33 --- /dev/null +++ b/util-linux-2.12p-lvm2dupes-76467.patch @@ -0,0 +1,27 @@ +--- util-linux-2.12p/mount/mount_by_label.c.lvm2dupes 2005-04-25 11:33:53.657880224 +0200 ++++ util-linux-2.12p/mount/mount_by_label.c 2005-04-25 11:36:32.075797040 +0200 +@@ -195,6 +195,15 @@ + return 1; + } + ++/* We need to avoid listing /dev/dm-X devices, because they are added to the uuidcache separately by the ++ uuidcache_init_dm routine. Duplicate entries cause mount-by-label to fail. ++ */ ++static int ++is_lvm2(char *ptname) ++{ ++ return !strncmp(ptname, "dm-", 3); ++} ++ + static void + uuidcache_init(void) { + char line[100]; +@@ -266,7 +275,7 @@ + /* devfs has .../disc and .../part1 etc. */ + + for (s = ptname; *s; s++); +- if (isdigit(s[-1]) || is_xvm(ptname)) { ++ if ((isdigit(s[-1]) || is_xvm(ptname)) && !is_lvm2(ptname)) { + + /* + * Note: this is a heuristic only - there is no reason diff --git a/util-linux-2.12p-mount-ocfs2.patch b/util-linux-2.12p-mount-ocfs2.patch new file mode 100644 index 0000000..37ddb1c --- /dev/null +++ b/util-linux-2.12p-mount-ocfs2.patch @@ -0,0 +1,187 @@ +--- util-linux-2.12p/mount/mount.c.ocfs2 2005-07-12 16:31:16.000000000 +0200 ++++ util-linux-2.12p/mount/mount.c 2005-07-12 16:31:46.000000000 +0200 +@@ -466,6 +466,61 @@ + } + + /* ++ * check_special_mountprog() ++ * If there is a special mount program for this type, exec it. ++ * returns: 0: no exec was done, 1: exec was done, status has result ++ */ ++ ++static int ++check_special_mountprog(const char *spec, const char *node, const char *type, int flags, ++ char *extra_opts, int *status) { ++ char mountprog[120]; ++ struct stat statbuf; ++ int res; ++ ++ if (!external_allowed) ++ return 0; ++ ++ if (type && strlen(type) < 100) { ++ sprintf(mountprog, "/sbin/mount.%s", type); ++ if (stat(mountprog, &statbuf) == 0) { ++ res = fork(); ++ if (res == 0) { ++ char *oo, *mountargs[10]; ++ int i = 0; ++ ++ setuid(getuid()); ++ setgid(getgid()); ++ oo = fix_opts_string (flags, extra_opts, NULL); ++ mountargs[i++] = mountprog; ++ mountargs[i++] = spec; ++ mountargs[i++] = node; ++ if (nomtab) ++ mountargs[i++] = "-n"; ++ if (verbose) ++ mountargs[i++] = "-v"; ++ if (oo && *oo) { ++ mountargs[i++] = "-o"; ++ mountargs[i++] = oo; ++ } ++ mountargs[i] = NULL; ++ execv(mountprog, mountargs); ++ exit(1); /* exec failed */ ++ } else if (res != -1) { ++ int st; ++ wait(&st); ++ *status = (WIFEXITED(st) ? WEXITSTATUS(st) : EX_SYSERR); ++ return 1; ++ } else { ++ int errsv = errno; ++ error(_("mount: cannot fork: %s"), strerror(errsv)); ++ } ++ } ++ } ++ return 0; ++} ++ ++/* + * guess_fstype_and_mount() + * Mount a single file system. Guess the type when unknown. + * returns: 0: OK, -1: error in errno, 1: other error +@@ -474,9 +529,11 @@ + */ + static int + guess_fstype_and_mount(const char *spec, const char *node, const char **types, +- int flags, char *mount_opts) { ++ int flags, char *mount_opts, int *special, int *status) { + struct mountargs args = { spec, node, NULL, flags & ~MS_NOSYS, mount_opts }; + ++ *special = 0; ++ + if (*types && strcasecmp (*types, "auto") == 0) + *types = NULL; + +@@ -485,10 +542,16 @@ + + if (!*types && !(flags & MS_REMOUNT)) { + *types = guess_fstype(spec); +- if (*types && !strcmp(*types, "swap")) { +- error(_("%s looks like swapspace - not mounted"), spec); +- *types = NULL; +- return 1; ++ if (*types) { ++ if (!strcmp(*types, "swap")) { ++ error(_("%s looks like swapspace - not mounted"), spec); ++ *types = NULL; ++ return 1; ++ } else if (check_special_mountprog(spec, node, *types, flags, ++ mount_opts, status)) { ++ *special = 1; ++ return 0; ++ } + } + } + +@@ -741,61 +804,6 @@ + } + + /* +- * check_special_mountprog() +- * If there is a special mount program for this type, exec it. +- * returns: 0: no exec was done, 1: exec was done, status has result +- */ +- +-static int +-check_special_mountprog(const char *spec, const char *node, const char *type, +- int flags, char *extra_opts, int *status) { +- char mountprog[120]; +- struct stat statbuf; +- int res; +- +- if (!external_allowed) +- return 0; +- +- if (type && strlen(type) < 100) { +- sprintf(mountprog, "/sbin/mount.%s", type); +- if (stat(mountprog, &statbuf) == 0) { +- res = fork(); +- if (res == 0) { +- const char *oo, *mountargs[10]; +- int i = 0; +- +- setuid(getuid()); +- setgid(getgid()); +- oo = fix_opts_string (flags, extra_opts, NULL); +- mountargs[i++] = mountprog; +- mountargs[i++] = spec; +- mountargs[i++] = node; +- if (nomtab) +- mountargs[i++] = "-n"; +- if (verbose) +- mountargs[i++] = "-v"; +- if (oo && *oo) { +- mountargs[i++] = "-o"; +- mountargs[i++] = oo; +- } +- mountargs[i] = NULL; +- execv(mountprog, (char **) mountargs); +- exit(1); /* exec failed */ +- } else if (res != -1) { +- int st; +- wait(&st); +- *status = (WIFEXITED(st) ? WEXITSTATUS(st) : EX_SYSERR); +- return 1; +- } else { +- int errsv = errno; +- error(_("mount: cannot fork: %s"), strerror(errsv)); +- } +- } +- } +- return 0; +-} +- +-/* + * try_mount_one() + * Try to mount one file system. When "bg" is 1, this is a retry + * in the background. One additional exit code EX_BG is used here. +@@ -807,7 +815,7 @@ + static int + try_mount_one (const char *spec0, const char *node0, const char *types0, + const char *opts0, int freq, int pass, int bg, int ro) { +- int res = 0, status; ++ int res = 0, status, special; + int mnt5_res = 0; /* only for gcc */ + int mnt_err; + int flags; +@@ -898,9 +906,15 @@ + block_signals (SIG_BLOCK); + nosigblock: + +- if (!fake) ++ if (!fake) { + mnt5_res = guess_fstype_and_mount (spec, node, &types, flags & ~MS_NOSYS, +- mount_opts); ++ mount_opts, &special, &status); ++ ++ if (special) { ++ block_signals (SIG_UNBLOCK); ++ return status; ++ } ++ } + + if (fake || mnt5_res == 0) { + /* Mount succeeded, report this (if verbose) and write mtab entry. */ diff --git a/util-linux-2.12p-mtab-lock.patch b/util-linux-2.12p-mtab-lock.patch new file mode 100644 index 0000000..98ea4d1 --- /dev/null +++ b/util-linux-2.12p-mtab-lock.patch @@ -0,0 +1,150 @@ +--- util-linux-2.12p/mount/fstab.c.mtab-lock 2005-03-22 14:05:22.481297072 +0100 ++++ util-linux-2.12p/mount/fstab.c 2005-03-22 14:50:55.719781664 +0100 +@@ -395,6 +395,7 @@ + + /* Flag for already existing lock file. */ + static int we_created_lockfile = 0; ++static int lockfile_fd = -1; + + /* Flag to indicate that signals have been set up. */ + static int signals_have_been_setup = 0; +@@ -416,6 +417,8 @@ + void + unlock_mtab (void) { + if (we_created_lockfile) { ++ close(lockfile_fd); ++ lockfile_fd = -1; + unlink (MOUNTED_LOCK); + we_created_lockfile = 0; + } +@@ -443,7 +446,7 @@ + + void + lock_mtab (void) { +- int tries = 3; ++ int tries = 100000, i; + char linktargetfile[MOUNTLOCK_LINKTARGET_LTH]; + + at_die = unlock_mtab; +@@ -469,45 +472,48 @@ + + sprintf(linktargetfile, MOUNTLOCK_LINKTARGET, getpid ()); + ++ i = open (linktargetfile, O_WRONLY|O_CREAT, 0); ++ if (i < 0) { ++ int errsv = errno; ++ /* linktargetfile does not exist (as a file) ++ and we cannot create it. Read-only filesystem? ++ Too many files open in the system? ++ Filesystem full? */ ++ die (EX_FILEIO, _("can't create lock file %s: %s " ++ "(use -n flag to override)"), ++ linktargetfile, strerror (errsv)); ++ } ++ close(i); ++ + /* Repeat until it was us who made the link */ + while (!we_created_lockfile) { + struct flock flock; +- int errsv, fd, i, j; +- +- i = open (linktargetfile, O_WRONLY|O_CREAT, 0); +- if (i < 0) { +- int errsv = errno; +- /* linktargetfile does not exist (as a file) +- and we cannot create it. Read-only filesystem? +- Too many files open in the system? +- Filesystem full? */ +- die (EX_FILEIO, _("can't create lock file %s: %s " +- "(use -n flag to override)"), +- linktargetfile, strerror (errsv)); +- } +- close(i); ++ int errsv, j; + + j = link(linktargetfile, MOUNTED_LOCK); + errsv = errno; + +- (void) unlink(linktargetfile); +- + if (j == 0) + we_created_lockfile = 1; + + if (j < 0 && errsv != EEXIST) { ++ (void) unlink(linktargetfile); + die (EX_FILEIO, _("can't link lock file %s: %s " + "(use -n flag to override)"), + MOUNTED_LOCK, strerror (errsv)); + } + +- fd = open (MOUNTED_LOCK, O_WRONLY); ++ lockfile_fd = open (MOUNTED_LOCK, O_WRONLY); + +- if (fd < 0) { ++ if (lockfile_fd < 0) { + int errsv = errno; + /* Strange... Maybe the file was just deleted? */ +- if (errno == ENOENT && tries-- > 0) ++ if (errno == ENOENT && tries-- > 0) { ++ if (tries % 200 == 0) ++ usleep(30); + continue; ++ } ++ (void) unlink(linktargetfile); + die (EX_FILEIO, _("can't open lock file %s: %s " + "(use -n flag to override)"), + MOUNTED_LOCK, strerror (errsv)); +@@ -520,7 +526,7 @@ + + if (j == 0) { + /* We made the link. Now claim the lock. */ +- if (fcntl (fd, F_SETLK, &flock) == -1) { ++ if (fcntl (lockfile_fd, F_SETLK, &flock) == -1) { + if (verbose) { + int errsv = errno; + printf(_("Can't lock lock file %s: %s\n"), +@@ -528,13 +534,15 @@ + } + /* proceed anyway */ + } ++ (void) unlink(linktargetfile); + } else { + static int tries = 0; + + /* Someone else made the link. Wait. */ + alarm(LOCK_TIMEOUT); +- if (fcntl (fd, F_SETLKW, &flock) == -1) { ++ if (fcntl (lockfile_fd, F_SETLKW, &flock) == -1) { + int errsv = errno; ++ (void) unlink(linktargetfile); + die (EX_FILEIO, _("can't lock lock file %s: %s"), + MOUNTED_LOCK, (errno == EINTR) ? + _("timed out") : strerror (errsv)); +@@ -542,16 +550,18 @@ + alarm(0); + /* Limit the number of iterations - maybe there + still is some old /etc/mtab~ */ +- if (tries++ > 3) { +- if (tries > 5) +- die (EX_FILEIO, _("Cannot create link %s\n" +- "Perhaps there is a stale lock file?\n"), +- MOUNTED_LOCK); +- sleep(1); +- } ++ ++tries; ++ if (tries % 200 == 0) ++ usleep(30); ++ if (tries > 100000) { ++ (void) unlink(linktargetfile); ++ close(lockfile_fd); ++ die (EX_FILEIO, _("Cannot create link %s\n" ++ "Perhaps there is a stale lock file?\n"), ++ MOUNTED_LOCK); ++ } ++ close(lockfile_fd); + } +- +- close(fd); + } + } + diff --git a/util-linux-2.12p-swaponsymlink-57300.patch b/util-linux-2.12p-swaponsymlink-57300.patch new file mode 100644 index 0000000..b1dc704 --- /dev/null +++ b/util-linux-2.12p-swaponsymlink-57300.patch @@ -0,0 +1,24 @@ +--- util-linux-2.12p/mount/swapon.c.sopwith Wed Dec 22 04:50:19 2004 ++++ util-linux-2.12p/mount/swapon.c Thu Dec 23 14:44:49 2004 +@@ -138,9 +138,19 @@ + is_in_proc_swaps(const char *fname) { + int i; + +- for (i = 0; i < numSwaps; i++) +- if (swapFiles[i] && !strcmp(fname, swapFiles[i])) ++ for (i = 0; i < numSwaps; i++) { ++ struct stat swapped, swapping; ++ ++ if (!swapFiles[i]) continue; ++ ++ if (!strcmp(fname, swapFiles[i]) ++ || (!stat (swapFiles[i], &swapped) ++ && !stat (fname, &swapping) ++ && (swapped.st_dev == swapping.st_dev ++ && swapped.st_ino == swapping.st_ino)) ++ ) + return 1; ++ } + return 0; + } + diff --git a/util-linux-2.12p-vipw-perm.patch b/util-linux-2.12p-vipw-perm.patch new file mode 100644 index 0000000..13c9cd8 --- /dev/null +++ b/util-linux-2.12p-vipw-perm.patch @@ -0,0 +1,16 @@ +--- util-linux-2.12p/login-utils/vipw.c.perm 2005-06-16 10:33:46.387891456 +0200 ++++ util-linux-2.12p/login-utils/vipw.c 2005-06-16 10:34:37.077185512 +0200 +@@ -299,11 +299,11 @@ + } + if (!is_shadow) + chmod(tmp_file, 0644); +-#if 0 ++/*#if 0*/ + /* if shadow file, then mode is 0600 now */ + else + chmod(tmp_file, 0400); +-#endif ++/*#endif*/ + pw_unlock(); + } + diff --git a/util-linux-2.13-arch.patch b/util-linux-2.13-arch.patch new file mode 100644 index 0000000..472e4fb --- /dev/null +++ b/util-linux-2.13-arch.patch @@ -0,0 +1,94 @@ +--- util-linux-2.13-pre1/sys-utils/Makefile.am.arch 2005-08-16 12:54:22.000000000 +0200 ++++ util-linux-2.13-pre1/sys-utils/Makefile.am 2005-08-16 12:55:00.000000000 +0200 +@@ -1,6 +1,6 @@ + include $(top_srcdir)/config/include-Makefile.am + +-bin_PROGRAMS = dmesg ++bin_PROGRAMS = dmesg arch + + usrbin_PROGRAMS = cytune flock ipcrm ipcs renice setsid + +@@ -8,7 +8,7 @@ + + usrsbin_PROGRAMS = readprofile tunelp + +-man_MANS = flock.1 readprofile.1 \ ++man_MANS = flock.1 readprofile.1 arch.1 \ + ctrlaltdel.8 cytune.8 dmesg.8 ipcrm.8 ipcs.8 renice.8 \ + setsid.8 tunelp.8 + +--- util-linux-2.13-pre1/sys-utils/arch.1.arch 2005-08-16 12:55:34.000000000 +0200 ++++ util-linux-2.13-pre1/sys-utils/arch.1 2005-08-16 12:59:51.000000000 +0200 +@@ -0,0 +1,34 @@ ++.\" arch.1 -- ++.\" Copyright 1993 Rickard E. Faith (faith@cs.unc.edu) ++.\" Public domain: may be freely distributed. ++.TH ARCH 1 "4 July 1997" "Linux 2.0" "Linux Programmer's Manual" ++.SH NAME ++arch \- print machine architecture ++.SH SYNOPSIS ++.B arch ++.SH DESCRIPTION ++.B arch ++is deprecated command since release util-linux 2.13. Use ++.BR "uname -m" . ++ ++On current Linux systems, ++.B arch ++prints things such as "i386", "i486", "i586", "alpha", "sparc", ++"arm", "m68k", "mips", "ppc". ++.SH SEE ALSO ++.BR uname (1), ++.BR uname (2) ++.\" ++.\" Details: ++.\" arch prints the machine part of the system_utsname struct ++.\" This struct is defined in version.c, and this field is ++.\" initialized with UTS_MACHINE, which is defined as $ARCH ++.\" in the main Makefile. ++.\" That gives the possibilities ++.\" alpha arm i386 m68k mips ppc sparc sparc64 ++.\" ++.\" If Makefile is not edited, ARCH is guessed by ++.\" ARCH := $(shell uname -m | sed -e s/i.86/i386/ -e s/sun4u/sparc64/) ++.\" Then how come we get these i586 values? ++.\" Well, the routine check_bugs() does system_utsname.machine[1] = '0' + x86; ++.\" (called in init/main.c, defined in ./include/asm-i386/bugs.h) +--- util-linux-2.13-pre1/sys-utils/arch.c.arch 2005-08-16 12:55:43.000000000 +0200 ++++ util-linux-2.13-pre1/sys-utils/arch.c 1999-07-09 04:56:41.000000000 +0200 +@@ -0,0 +1,35 @@ ++/* arch -- print machine architecture information ++ * Created: Mon Dec 20 12:27:15 1993 by faith@cs.unc.edu ++ * Revised: Mon Dec 20 12:29:23 1993 by faith@cs.unc.edu ++ * Copyright 1993 Rickard E. Faith (faith@cs.unc.edu) ++ ++ * This program is free software; you can redistribute it and/or modify it ++ * under the terms of the GNU General Public License as published by the ++ * Free Software Foundation; either version 2, or (at your option) any ++ * later version. ++ ++ * This program is distributed in the hope that it will be useful, but ++ * WITHOUT ANY WARRANTY; without even the implied warranty of ++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ * General Public License for more details. ++ ++ * You should have received a copy of the GNU General Public License along ++ * with this program; if not, write to the Free Software Foundation, Inc., ++ * 675 Mass Ave, Cambridge, MA 02139, USA. */ ++ ++#include ++#include ++ ++int main (void) ++{ ++ struct utsname utsbuf; ++ ++ if (uname( &utsbuf )) { ++ perror( "arch" ); ++ return 1; ++ } ++ ++ printf( "%s\n", utsbuf.machine ); ++ ++ return 0; ++} diff --git a/util-linux-2.13-audit-hwclock.patch b/util-linux-2.13-audit-hwclock.patch new file mode 100644 index 0000000..0173655 --- /dev/null +++ b/util-linux-2.13-audit-hwclock.patch @@ -0,0 +1,314 @@ +diff -urN util-linux-2.13-pre5.orig/hwclock/audit.c util-linux-2.13-pre5/hwclock/audit.c +--- util-linux-2.13-pre5.orig/hwclock/audit.c 1969-12-31 19:00:00.000000000 -0500 ++++ util-linux-2.13-pre5/hwclock/audit.c 2005-10-25 17:14:46.000000000 -0400 +@@ -0,0 +1,50 @@ ++/* audit.c -- This file contains the audit system extensions ++ * ++ * Copyright 2005 Red Hat Inc., Durham, North Carolina. ++ * All Rights Reserved. ++ * ++ * This program is free software; you can redistribute it and/or modify ++ * it under the terms of the GNU General Public License as published by ++ * the Free Software Foundation; either version 2 of the License, or ++ * (at your option) any later version. ++ * ++ * This program is distributed in the hope that it will be useful, ++ * but WITHOUT ANY WARRANTY; without even the implied warranty of ++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ++ * GNU General Public License for more details. ++ * ++ * You should have received a copy of the GNU General Public License ++ * along with this program; if not, write to the Free Software ++ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ++ * ++ * Authors: ++ * Steve Grubb ++ */ ++ ++#include ++#include ++#include ++#include ++#include ++#include "audit.h" ++ ++int audit_fd = -1; ++static int audit_this = 0; ++ ++ ++void auditable_event(int i) ++{ ++ audit_this = i; ++} ++ ++ ++void audit_exit(int status) ++{ ++ if (audit_this) { ++ audit_log_user_message(audit_fd, AUDIT_USYS_CONFIG, ++ "changing system time", NULL, NULL, NULL, status ? 0 : 1); ++ close(audit_fd); ++ } ++ exit(status); ++} ++ +diff -urN util-linux-2.13-pre5.orig/hwclock/audit.h util-linux-2.13-pre5/hwclock/audit.h +--- util-linux-2.13-pre5.orig/hwclock/audit.h 1969-12-31 19:00:00.000000000 -0500 ++++ util-linux-2.13-pre5/hwclock/audit.h 2005-10-25 17:09:40.000000000 -0400 +@@ -0,0 +1,34 @@ ++/* audit.h -- This file contains the function prototypes for audit calls ++ * Copyright 2005 Red Hat Inc., Durham, North Carolina. ++ * All Rights Reserved. ++ * ++ * This program is free software; you can redistribute it and/or modify ++ * it under the terms of the GNU General Public License as published by ++ * the Free Software Foundation; either version 2 of the License, or ++ * (at your option) any later version. ++ * ++ * This program is distributed in the hope that it will be useful, ++ * but WITHOUT ANY WARRANTY; without even the implied warranty of ++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ++ * GNU General Public License for more details. ++ * ++ * You should have received a copy of the GNU General Public License ++ * along with this program; if not, write to the Free Software ++ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ++ * ++ * Author: ++ * Steve Grubb ++ * ++ */ ++ ++#ifndef HW_AUDIT_H ++#define HW_AUDIT_H ++ ++/* This is the file descriptor used by the audit system */ ++extern int audit_fd; ++ ++/* This is the logging functions */ ++void auditable_event(int i); ++void audit_exit(int status); ++ ++#endif +diff -urN util-linux-2.13-pre5.orig/hwclock/clock.h util-linux-2.13-pre5/hwclock/clock.h +--- util-linux-2.13-pre5.orig/hwclock/clock.h 2005-10-25 17:08:26.000000000 -0400 ++++ util-linux-2.13-pre5/hwclock/clock.h 2005-10-25 17:09:40.000000000 -0400 +@@ -24,7 +24,12 @@ + extern char *progname; + extern int debug; + extern int epoch_option; +-extern void outsyserr(char *msg, ...); ++extern void outsyserr(char *msg, ...) ++#ifdef __GNUC__ ++ __attribute__ ((format (printf, 1, 2))); ++#else ++ ; ++#endif + + /* cmos.c */ + extern void set_cmos_epoch(int ARCconsole, int SRM); +diff -urN util-linux-2.13-pre5.orig/hwclock/hwclock.c util-linux-2.13-pre5/hwclock/hwclock.c +--- util-linux-2.13-pre5.orig/hwclock/hwclock.c 2005-10-25 17:08:26.000000000 -0400 ++++ util-linux-2.13-pre5/hwclock/hwclock.c 2005-10-25 17:09:40.000000000 -0400 +@@ -81,9 +81,11 @@ + #include + #include + #include ++#include + + #include "clock.h" + #include "nls.h" ++#include "audit.h" + + #define MYNAME "hwclock" + +@@ -1234,7 +1236,7 @@ + va_end(ap); + } + +- exit(fmt ? EX_USAGE : 0); ++ audit_exit(fmt ? EX_USAGE : 0); + } + + static const struct option longopts[] = { +@@ -1298,6 +1300,15 @@ + /* Remember what time we were invoked */ + gettimeofday(&startup_time, NULL); + ++ audit_fd = audit_open(); ++ if (audit_fd < 0 && !(errno == EINVAL || errno == EPROTONOSUPPORT || ++ errno == EAFNOSUPPORT)) { ++ /* You get these error codes only when the kernel doesn't have ++ * audit compiled in. */ ++ fprintf(stderr, "Error - unable to connect to audit system\n"); ++ return EX_NOPERM; ++ } ++ + setlocale(LC_ALL, ""); + #ifdef LC_NUMERIC + /* We need LC_CTYPE and LC_TIME and LC_MESSAGES, but must avoid +@@ -1393,6 +1404,13 @@ + argc -= optind; + argv += optind; + ++ if (testing != TRUE) { ++ if (adjust == TRUE || hctosys == TRUE || systohc == TRUE || ++ set == TRUE || setepoch == TRUE) { ++ auditable_event(1); ++ } ++ } ++ + if (argc > 0) { + usage(_("%s takes no non-option arguments. " + "You supplied %d.\n"), +@@ -1403,27 +1421,27 @@ + fprintf(stderr, _("You have specified multiple functions.\n" + "You can only perform one function " + "at a time.\n")); +- exit(EX_USAGE); ++ audit_exit(EX_USAGE); + } + + if (utc && local_opt) { + fprintf(stderr, _("%s: The --utc and --localtime options " + "are mutually exclusive. You specified " + "both.\n"), MYNAME); +- exit(EX_USAGE); ++ audit_exit(EX_USAGE); + } + + if (adjust && noadjfile) { + fprintf(stderr, _("%s: The --adjust and --noadjfile options " + "are mutually exclusive. You specified " + "both.\n"), MYNAME); +- exit(EX_USAGE); ++ audit_exit(EX_USAGE); + } + + if (noadjfile && !(utc || local_opt)) { + fprintf(stderr, _("%s: With --noadjfile, you must specify " + "either --utc or --localtime\n"), MYNAME); +- exit(EX_USAGE); ++ audit_exit(EX_USAGE); + } + + #ifdef __alpha__ +@@ -1437,7 +1455,7 @@ + if (rc != 0) { + fprintf(stderr, _("No usable set-to time. " + "Cannot set clock.\n")); +- exit(EX_USAGE); ++ audit_exit(EX_USAGE); + } + } + +@@ -1469,11 +1487,11 @@ + } + + if (!permitted) +- exit(EX_NOPERM); ++ audit_exit(EX_NOPERM); + + if (getepoch || setepoch) { + manipulate_epoch(getepoch, setepoch, epoch_option, testing); +- return 0; ++ audit_exit(0); + } + + if (debug) +@@ -1487,12 +1505,14 @@ + fprintf(stderr, + _("Use the --debug option to see the details " + "of our search for an access method.\n")); +- exit(1); ++ audit_exit(1); + } + +- return manipulate_clock(show, adjust, noadjfile, set, set_time, ++ rc = manipulate_clock(show, adjust, noadjfile, set, set_time, + hctosys, systohc, startup_time, utc, + local_opt, testing); ++ audit_exit(rc); ++ return rc; /* Not reached */ + } + + /* A single routine for greater uniformity */ +diff -urN util-linux-2.13-pre5.orig/hwclock/kd.c util-linux-2.13-pre5/hwclock/kd.c +--- util-linux-2.13-pre5.orig/hwclock/kd.c 2005-10-25 17:08:26.000000000 -0400 ++++ util-linux-2.13-pre5/hwclock/kd.c 2005-10-25 17:09:40.000000000 -0400 +@@ -19,6 +19,7 @@ + + #include "clock.h" + #include "nls.h" ++#include "audit.h" + + static int con_fd = -1; /* opened by probe_for_kd_clock() */ + /* never closed */ +@@ -103,7 +104,7 @@ + + if (ioctl(con_fd, KDGHWCLK, &t) == -1) { + outsyserr(_("ioctl() failed to read time from %s"), con_fd_filename); +- exit(EX_IOERR); ++ audit_exit(EX_IOERR); + } + + tm->tm_sec = t.sec; +@@ -139,7 +140,7 @@ + + if (ioctl(con_fd, KDSHWCLK, &t ) == -1) { + outsyserr(_("ioctl KDSHWCLK failed")); +- exit(1); ++ audit_exit(1); + } + return 0; + } +diff -urN util-linux-2.13-pre5.orig/hwclock/Makefile.am util-linux-2.13-pre5/hwclock/Makefile.am +--- util-linux-2.13-pre5.orig/hwclock/Makefile.am 2005-10-25 17:08:26.000000000 -0400 ++++ util-linux-2.13-pre5/hwclock/Makefile.am 2005-10-25 17:09:40.000000000 -0400 +@@ -4,4 +4,5 @@ + + sbin_PROGRAMS = hwclock + +-hwclock_SOURCES = hwclock.c cmos.c rtc.c kd.c +\ No newline at end of file ++hwclock_SOURCES = hwclock.c cmos.c rtc.c kd.c audit.c ++hwclock_LDADD = -laudit +\ No newline at end of file +diff -urN util-linux-2.13-pre5.orig/hwclock/rtc.c util-linux-2.13-pre5/hwclock/rtc.c +--- util-linux-2.13-pre5.orig/hwclock/rtc.c 2005-10-25 17:08:26.000000000 -0400 ++++ util-linux-2.13-pre5/hwclock/rtc.c 2005-10-25 17:09:40.000000000 -0400 +@@ -8,6 +8,7 @@ + + #include "clock.h" + #include "nls.h" ++#include "audit.h" + + /* + * Get defines for rtc stuff. +@@ -114,7 +115,7 @@ + + if (rtc_fd < 0) { + outsyserr(_("open() of %s failed"), rtc_dev_name); +- exit(EX_OSFILE); ++ audit_exit(EX_OSFILE); + } + return rtc_fd; + } +@@ -149,7 +150,7 @@ + perror(ioctlname); + fprintf(stderr, _("ioctl() to %s to read the time failed.\n"), + rtc_dev_name); +- exit(EX_IOERR); ++ audit_exit(EX_IOERR); + } + + tm->tm_isdst = -1; /* don't know whether it's dst */ +@@ -329,7 +330,7 @@ + perror(ioctlname); + fprintf(stderr, _("ioctl() to %s to set the time failed.\n"), + rtc_dev_name); +- exit(EX_IOERR); ++ audit_exit(EX_IOERR); + } + + if (debug) diff --git a/util-linux-2.13-audit-login.patch b/util-linux-2.13-audit-login.patch new file mode 100644 index 0000000..ca88bdc --- /dev/null +++ b/util-linux-2.13-audit-login.patch @@ -0,0 +1,101 @@ +diff -ur util-linux-2.13-pre4.orig/login-utils/login.c util-linux-2.13-pre4/login-utils/login.c +--- util-linux-2.13-pre4.orig/login-utils/login.c 2005-10-14 13:59:08.000000000 -0400 ++++ util-linux-2.13-pre4/login-utils/login.c 2005-10-14 15:43:54.000000000 -0400 +@@ -106,6 +106,7 @@ + #include + #include + #include ++#include + #include "pathnames.h" + #include "my_crypt.h" + #include "login.h" +@@ -329,6 +330,7 @@ + #ifdef LOGIN_CHOWN_VCS + char vcsn[20], vcsan[20]; + #endif ++ int audit_fd; + + pid = getpid(); + +@@ -545,11 +547,25 @@ + (retcode == PAM_USER_UNKNOWN) || + (retcode == PAM_CRED_INSUFFICIENT) || + (retcode == PAM_AUTHINFO_UNAVAIL))) { ++ struct passwd *pw; ++ char buf[64]; + pam_get_item(pamh, PAM_USER, (const void **) &username); + + syslog(LOG_NOTICE,_("FAILED LOGIN %d FROM %s FOR %s, %s"), + failcount, hostname, username, pam_strerror(pamh, retcode)); + logbtmp(tty_name, username, hostname); ++ audit_fd = audit_open(); ++ pw = getpwnam(username); ++ if (pw) { ++ snprintf(buf, sizeof(buf), "uid=%d", pw->pw_uid); ++ audit_log_user_message(audit_fd, AUDIT_USER_LOGIN, ++ buf, hostname, NULL, tty_name, 0); ++ } else { ++ snprintf(buf, sizeof(buf), "acct=%s", username); ++ audit_log_user_message(audit_fd, AUDIT_USER_LOGIN, ++ buf, hostname, NULL, tty_name, 0); ++ } ++ close(audit_fd); + + fprintf(stderr,_("Login incorrect\n\n")); + pam_set_item(pamh,PAM_USER,NULL); +@@ -557,6 +573,8 @@ + } + + if (retcode != PAM_SUCCESS) { ++ struct passwd *pw; ++ char buf[64]; + pam_get_item(pamh, PAM_USER, (const void **) &username); + + if (retcode == PAM_MAXTRIES) +@@ -567,6 +585,18 @@ + syslog(LOG_NOTICE,_("FAILED LOGIN SESSION FROM %s FOR %s, %s"), + hostname, username, pam_strerror(pamh, retcode)); + logbtmp(tty_name, username, hostname); ++ audit_fd = audit_open(); ++ pw = getpwnam(username); ++ if (pw) { ++ snprintf(buf, sizeof(buf), "uid=%d", pw->pw_uid); ++ audit_log_user_message(audit_fd, AUDIT_USER_LOGIN, ++ buf, hostname, NULL, tty_name, 0); ++ } else { ++ snprintf(buf, sizeof(buf), "acct=%s", username); ++ audit_log_user_message(audit_fd, AUDIT_USER_LOGIN, ++ buf, hostname, NULL, tty_name, 0); ++ } ++ close(audit_fd); + + fprintf(stderr,_("\nLogin incorrect\n")); + pam_end(pamh, retcode); +@@ -908,6 +938,15 @@ + #endif + #endif + } ++ ++ { ++ char buf[32]; ++ audit_fd = audit_open(); ++ snprintf(buf, sizeof(buf), "uid=%d", pwd->pw_uid); ++ audit_log_user_message(audit_fd, AUDIT_USER_LOGIN, ++ buf, hostname, NULL, tty_name, 1); ++ close(audit_fd); ++ } + + dolastlog(quietlog); + +diff -ur util-linux-2.13-pre4.orig/login-utils/Makefile.am util-linux-2.13-pre4/login-utils/Makefile.am +--- util-linux-2.13-pre4.orig/login-utils/Makefile.am 2005-10-14 13:59:08.000000000 -0400 ++++ util-linux-2.13-pre4/login-utils/Makefile.am 2005-10-14 15:45:22.000000000 -0400 +@@ -55,7 +55,7 @@ + if HAVE_PAM + chfn_LDADD += -lpam -lpam_misc + chsh_LDADD += -lpam -lpam_misc +-login_LDADD += -lpam -lpam_misc ++login_LDADD += -lpam -lpam_misc -laudit + login_SOURCES = login.c + else + login_SOURCES = login.c checktty.c diff --git a/util-linux-2.13-cal-wide.patch b/util-linux-2.13-cal-wide.patch new file mode 100644 index 0000000..ac51aa8 --- /dev/null +++ b/util-linux-2.13-cal-wide.patch @@ -0,0 +1,236 @@ +--- util-linux-2.13-pre7/include/widechar.h.kzak 2005-08-01 20:18:35.000000000 +0200 ++++ util-linux-2.13-pre7/include/widechar.h 2006-03-29 19:38:56.000000000 +0200 +@@ -2,7 +2,7 @@ + /* This file must be included last because the redefinition of wchar_t may + cause conflicts when system include files were included after it. */ + +-#ifdef ENABLE_WIDECHAR ++#ifdef HAVE_WIDECHAR + + # include + # include +--- util-linux-2.13-pre7/misc-utils/cal.c.kzak 2006-03-29 19:40:26.000000000 +0200 ++++ util-linux-2.13-pre7/misc-utils/cal.c 2006-03-29 19:40:34.000000000 +0200 +@@ -355,7 +355,7 @@ + exit(0); + } + +-#ifndef ENABLE_WIDECHAR ++#ifndef HAVE_WIDECHAR + static char *eos(char *s) { + while (s && *s) + s++; +@@ -366,14 +366,14 @@ + void headers_init(void) + { + int i, wd; +-#ifdef ENABLE_WIDECHAR ++#ifdef HAVE_WIDECHAR + wchar_t day_headings_wc[22],j_day_headings_wc[29]; + char *cur_dh = day_headings, *cur_j_dh = j_day_headings; + #endif + + strcpy(day_headings,""); + strcpy(j_day_headings,""); +-#ifdef ENABLE_WIDECHAR ++#ifdef HAVE_WIDECHAR + wcscpy(day_headings_wc,L""); + wcscpy(j_day_headings_wc,L""); + #endif +@@ -387,7 +387,7 @@ + for(i = 0 ; i < 7 ; i++ ) { + ssize_t space_left; + wd = (i + week1stday) % 7; +-#ifdef ENABLE_WIDECHAR ++#ifdef HAVE_WIDECHAR + swprintf(day_headings_wc, sizeof(day_headings_wc)/sizeof(day_headings_wc[0]), + L"%1.2s ", weekday(wd)); + swprintf(j_day_headings_wc, sizeof(j_day_headings_wc)/sizeof(j_day_headings_wc[0]), +@@ -718,7 +718,7 @@ + void + center_str(const char* src, char* dest, size_t dest_size, int width) + { +-#ifdef ENABLE_WIDECHAR ++#ifdef HAVE_WIDECHAR + wchar_t str_wc[FMT_ST_CHARS]; + #endif + char str[FMT_ST_CHARS]; +@@ -727,7 +727,7 @@ + + len = strlen(src); + +-#ifdef ENABLE_WIDECHAR ++#ifdef HAVE_WIDECHAR + if (mbstowcs(str_wc, src, FMT_ST_CHARS) > 0) { + wide_char_enabled = 1; + len = wcswidth(str_wc, SIZE(str_wc)); +@@ -736,7 +736,7 @@ + if (len > width) { + str_to_print=str; + if (wide_char_enabled) { +-#ifdef ENABLE_WIDECHAR ++#ifdef HAVE_WIDECHAR + str_wc[width]=L'\0'; + wcstombs(str, str_wc, SIZE(str)); + #endif +--- util-linux-2.13-pre7/text-utils/column.c.kzak 2006-03-29 19:41:20.000000000 +0200 ++++ util-linux-2.13-pre7/text-utils/column.c 2006-03-29 19:41:25.000000000 +0200 +@@ -52,7 +52,7 @@ + + #include "widechar.h" + +-#ifdef ENABLE_WIDECHAR ++#ifdef HAVE_WIDECHAR + #define wcs_width(s) wcswidth(s,wcslen(s)) + static wchar_t *mbs_to_wcs(const char *); + #else +@@ -312,7 +312,7 @@ + } + } + +-#ifdef ENABLE_WIDECHAR ++#ifdef HAVE_WIDECHAR + static wchar_t *mbs_to_wcs(const char *s) + { + size_t n; +@@ -330,7 +330,7 @@ + } + #endif + +-#ifndef ENABLE_WIDECHAR ++#ifndef HAVE_WIDECHAR + static char *mtsafe_strtok(char *str, const char *delim, char **ptr) + { + if (str == NULL) { +--- util-linux-2.13-pre7/text-utils/pg.c.kzak 2006-03-29 19:41:52.000000000 +0200 ++++ util-linux-2.13-pre7/text-utils/pg.c 2006-03-29 19:41:59.000000000 +0200 +@@ -255,7 +255,7 @@ + usage(); + } + +-#ifdef ENABLE_WIDECHAR ++#ifdef HAVE_WIDECHAR + /* + * A mbstowcs()-alike function that transparently handles invalid sequences. + */ +@@ -402,7 +402,7 @@ + return 0; + } + +-#ifdef ENABLE_WIDECHAR ++#ifdef HAVE_WIDECHAR + /* + * Return the last character that will fit on the line at col columns + * in case MB_CUR_MAX > 1. +@@ -489,7 +489,7 @@ + unsigned pos = 0; + char *t = s; + +-#ifdef ENABLE_WIDECHAR ++#ifdef HAVE_WIDECHAR + if (MB_CUR_MAX > 1) + return endline_for_mb(col, s); + #endif +@@ -776,7 +776,7 @@ + cmd.count = getcount(cmd.cmdline); + } + +-#ifdef ENABLE_WIDECHAR ++#ifdef HAVE_WIDECHAR + /* + * Remove backspace formatting, for searches + * in case MB_CUR_MAX > 1. +@@ -817,7 +817,7 @@ + { + char *p = s, *q; + +-#ifdef ENABLE_WIDECHAR ++#ifdef HAVE_WIDECHAR + if (MB_CUR_MAX > 1) + return colb_for_mb(s); + #endif +@@ -836,7 +836,7 @@ + return s; + } + +-#ifdef ENABLE_WIDECHAR ++#ifdef HAVE_WIDECHAR + /* + * Convert nonprintable characters to spaces + * in case MB_CUR_MAX > 1. +@@ -867,7 +867,7 @@ + static void + makeprint(char *s, size_t l) + { +-#ifdef ENABLE_WIDECHAR ++#ifdef HAVE_WIDECHAR + if (MB_CUR_MAX > 1) + return makeprint_for_mb(s, l); + #endif +--- util-linux-2.13-pre7/text-utils/more.c.kzak 2006-03-29 19:41:01.000000000 +0200 ++++ util-linux-2.13-pre7/text-utils/more.c 2006-03-29 19:41:08.000000000 +0200 +@@ -782,7 +782,7 @@ + int column; + static int colflg; + +-#ifdef ENABLE_WIDECHAR ++#ifdef HAVE_WIDECHAR + int i; + wchar_t wc; + int wc_width; +@@ -805,7 +805,7 @@ + c = Getc (f); + } + while (p < &Line[LINSIZ - 1]) { +-#ifdef ENABLE_WIDECHAR ++#ifdef HAVE_WIDECHAR + if (fold_opt && use_mbc_buffer_flag && MB_CUR_MAX > 1) { + use_mbc_buffer_flag = 0; + state_bak = state; +@@ -923,7 +923,7 @@ + *length = p - Line; + return (column); + } else { +-#ifdef ENABLE_WIDECHAR ++#ifdef HAVE_WIDECHAR + if (fold_opt && MB_CUR_MAX > 1) { + memset (mbc, '\0', MB_LEN_MAX); + mbc_pos = 0; +@@ -1054,7 +1054,7 @@ + my_putstring(state ? ULenter : ULexit); + } + if (c != ' ' || pstate == 0 || state != 0 || ulglitch == 0) +-#ifdef ENABLE_WIDECHAR ++#ifdef HAVE_WIDECHAR + { + wchar_t wc; + size_t mblength; +@@ -1070,7 +1070,7 @@ + } + #else + putchar(c); +-#endif /* ENABLE_WIDECHAR */ ++#endif /* HAVE_WIDECHAR */ + if (state && *chUL) { + putsout(chBS); + my_putstring(chUL); +@@ -1867,7 +1867,7 @@ + } + else if (((cc_t) c == otty.c_cc[VERASE]) && !slash) { + if (sp > buf) { +-#ifdef ENABLE_WIDECHAR ++#ifdef HAVE_WIDECHAR + if (MB_CUR_MAX > 1) + { + wchar_t wc; +--- util-linux-2.13-pre7/text-utils/ul.c.kzak 2006-03-29 19:42:09.000000000 +0200 ++++ util-linux-2.13-pre7/text-utils/ul.c 2006-03-29 19:42:25.000000000 +0200 +@@ -50,7 +50,7 @@ + + #include "widechar.h" + +-#ifdef ENABLE_WIDECHAR ++#ifdef HAVE_WIDECHAR + static int put1wc(int c) /* Output an ASCII character as a wide character */ + { + if (putwchar(c) == WEOF) diff --git a/util-linux-2.13-cramfs-maxentries.patch b/util-linux-2.13-cramfs-maxentries.patch new file mode 100644 index 0000000..07b8822 --- /dev/null +++ b/util-linux-2.13-cramfs-maxentries.patch @@ -0,0 +1,47 @@ +--- util-linux-2.13-pre5/disk-utils/mkfs.cramfs.c.maxentries 2005-10-20 23:46:19.000000000 +0200 ++++ util-linux-2.13-pre5/disk-utils/mkfs.cramfs.c 2005-10-20 23:54:07.000000000 +0200 +@@ -471,11 +471,13 @@ + * entries, using a stack to remember the directories + * we've seen. + */ +-#define MAXENTRIES (100) + static unsigned int write_directory_structure(struct entry *entry, char *base, unsigned int offset) + { + int stack_entries = 0; +- struct entry *entry_stack[MAXENTRIES]; ++ int stack_size = 64; ++ struct entry **entry_stack; ++ ++ entry_stack = xmalloc(stack_size * sizeof(struct entry *)); + + for (;;) { + int dir_start = stack_entries; +@@ -508,13 +510,13 @@ + if (verbose) + printf(" %s\n", entry->name); + if (entry->child) { +- if (stack_entries >= MAXENTRIES) { +- fprintf(stderr, +- _("Exceeded MAXENTRIES. Raise" +- " this value in mkcramfs.c " +- "and recompile. Exiting.\n") +- ); +- exit(8); ++ if (stack_entries >= stack_size) { ++ stack_size *= 2; ++ entry_stack = realloc(entry_stack, stack_size * sizeof(struct entry *)); ++ if (!entry_stack) { ++ perror(NULL); ++ exit(8); /* out of memory */ ++ } + } + entry_stack[stack_entries] = entry; + stack_entries++; +@@ -551,6 +553,7 @@ + printf("'%s':\n", entry->name); + entry = entry->child; + } ++ free(entry_stack); + return offset; + } + diff --git a/util-linux-2.13-cramfs-zerofiles.patch b/util-linux-2.13-cramfs-zerofiles.patch new file mode 100644 index 0000000..3d97419 --- /dev/null +++ b/util-linux-2.13-cramfs-zerofiles.patch @@ -0,0 +1,11 @@ +--- util-linux-2.13-pre5/disk-utils/mkfs.cramfs.c.zerofiles 2005-11-07 13:05:27.000000000 +0100 ++++ util-linux-2.13-pre5/disk-utils/mkfs.cramfs.c 2005-11-07 13:06:38.000000000 +0100 +@@ -661,7 +661,7 @@ + if (e->same) { + set_data_offset(e, base, e->same->offset); + e->offset = e->same->offset; +- } else { ++ } else if (e->size) { + set_data_offset(e, base, offset); + e->offset = offset; + offset = do_compress(base, offset, e->name, diff --git a/util-linux-2.13-ctrlaltdel-man.patch b/util-linux-2.13-ctrlaltdel-man.patch new file mode 100644 index 0000000..ab7c6bd --- /dev/null +++ b/util-linux-2.13-ctrlaltdel-man.patch @@ -0,0 +1,10 @@ +--- util-linux-2.13-pre6/sys-utils/ctrlaltdel.8.kzak 2006-08-10 12:23:53.000000000 +0200 ++++ util-linux-2.13-pre6/sys-utils/ctrlaltdel.8 2006-08-10 12:24:08.000000000 +0200 +@@ -32,7 +32,6 @@ + .SH FILES + .I /etc/rc.local + .SH "SEE ALSO" +-.BR simpleinit (8), + .BR init (8) + .SH AUTHOR + Peter Orbaek (poe@daimi.aau.dk) diff --git a/util-linux-2.13-ctty3.patch b/util-linux-2.13-ctty3.patch new file mode 100644 index 0000000..e33fef7 --- /dev/null +++ b/util-linux-2.13-ctty3.patch @@ -0,0 +1,102 @@ +--- util-linux-2.13-pre1/login-utils/login.c.ctty3 2005-08-02 18:10:24.000000000 +0200 ++++ util-linux-2.13-pre1/login-utils/login.c 2005-08-15 15:51:35.000000000 +0200 +@@ -285,7 +285,21 @@ + updwtmp(_PATH_BTMP, &ut); + #endif + } +-#endif /* HAVE_SECURITY_PAM_MISC_H */ ++ ++static int childPid = 0; ++static volatile int got_sig = 0; ++ ++static void ++parent_sig_handler(int signal) ++{ ++ if(childPid) ++ kill(-childPid, signal); ++ else ++ got_sig = 1; ++ if(signal == SIGTERM) ++ kill(-childPid, SIGHUP); /* because the shell often ignores SIGTERM */ ++} ++#endif /* HAVE_SECURITY_PAM_MISC_H */ + + int + main(int argc, char **argv) +@@ -307,7 +321,7 @@ + int retcode; + pam_handle_t *pamh = NULL; + struct pam_conv conv = { misc_conv, NULL }; +- pid_t childPid; ++ struct sigaction sa, oldsa_hup, oldsa_term; + #else + char *salt, *pp; + #endif +@@ -1023,7 +1037,18 @@ + * We must fork before setuid() because we need to call + * pam_close_session() as root. + */ ++ memset(&sa, 0, sizeof(sa)); ++ sa.sa_handler = SIG_IGN; ++ sigaction(SIGINT, &sa, NULL); ++ ++ sigaction(SIGHUP, &sa, &oldsa_hup); /* ignore while we detach from the tty */ ++ ioctl(0, TIOCNOTTY, NULL); ++ ++ sa.sa_handler = parent_sig_handler; ++ sigaction(SIGHUP, &sa, NULL); ++ sigaction(SIGTERM, &sa, &oldsa_term); + ++ closelog(); + childPid = fork(); + if (childPid < 0) { + int errsv = errno; +@@ -1034,19 +1059,20 @@ + } + + if (childPid) { +- /* parent - wait for child to finish, then cleanup session */ +- signal(SIGHUP, SIG_IGN); +- signal(SIGINT, SIG_IGN); +- signal(SIGQUIT, SIG_IGN); +- signal(SIGTSTP, SIG_IGN); +- signal(SIGTTIN, SIG_IGN); +- signal(SIGTTOU, SIG_IGN); +- +- wait(NULL); ++ close(0); close(1); close(2); ++ sa.sa_handler = SIG_IGN; ++ sigaction(SIGQUIT, &sa, NULL); ++ sigaction(SIGINT, &sa, NULL); ++ while(wait(NULL) == -1 && errno == EINTR) /**/ ; ++ openlog("login", LOG_ODELAY, LOG_AUTHPRIV); + PAM_END; + exit(0); + } + ++ sigaction(SIGHUP, &oldsa_hup, NULL); ++ sigaction(SIGTERM, &oldsa_term, NULL); ++ if(got_sig) exit(1); ++ + /* child */ + /* + * Problem: if the user's shell is a shell like ash that doesnt do +@@ -1058,14 +1084,15 @@ + setsid(); + + /* make sure we have a controlling tty */ +- opentty(ttyn); + openlog("login", LOG_ODELAY, LOG_AUTHPRIV); /* reopen */ + + /* + * TIOCSCTTY: steal tty from other process group. + */ +- if (ioctl(0, TIOCSCTTY, 1)) +- syslog(LOG_ERR, _("TIOCSCTTY failed: %m")); ++ if (ioctl(0, TIOCSCTTY, (char *)1)) { ++ syslog(LOG_ERR, _("Couldn't set controlling terminal: %s"), strerror(errno)); ++ exit(1); ++ } + #endif + signal(SIGINT, SIG_DFL); + diff --git a/util-linux-2.13-fdisk-b-4096.patch b/util-linux-2.13-fdisk-b-4096.patch new file mode 100644 index 0000000..b2dde20 --- /dev/null +++ b/util-linux-2.13-fdisk-b-4096.patch @@ -0,0 +1,15 @@ + + The "-b" option allows to manually define size of sector size. We need to support + 4096 bytes for really huge disks. [kzak 12/14/2006] + +--- util-linux-2.13-pre7/fdisk/fdisk.c.kzak 2006-12-14 10:21:57.000000000 +0100 ++++ util-linux-2.13-pre7/fdisk/fdisk.c 2006-12-14 10:22:21.000000000 +0100 +@@ -2491,7 +2491,7 @@ + */ + sector_size = atoi(optarg); + if (sector_size != 512 && sector_size != 1024 && +- sector_size != 2048) ++ sector_size != 2048 && sector_size != 4096) + fatal(usage); + sector_offset = 2; + user_set_sector_size = 1; diff --git a/util-linux-2.13-fdisk-gpt.patch b/util-linux-2.13-fdisk-gpt.patch new file mode 100644 index 0000000..03c6ca9 --- /dev/null +++ b/util-linux-2.13-fdisk-gpt.patch @@ -0,0 +1,493 @@ +--- util-linux-2.13-pre6/fdisk/fdisk.c.gpt 2005-11-24 15:30:36.000000000 +0100 ++++ util-linux-2.13-pre6/fdisk/fdisk.c 2005-11-24 15:30:36.000000000 +0100 +@@ -34,6 +34,8 @@ + #include + #endif + ++#include "gpt.h" ++ + static void delete_partition(int i); + + #define hex_val(c) ({ \ +@@ -2400,6 +2402,14 @@ + } + + static void ++gpt_warning(char *dev) ++{ ++ if (gpt_probe_signature_devname(dev)) ++ fprintf(stderr, _("\nWARNING: GPT (GUID Partition Table) detected on '%s'! " ++ "The util fdisk doesn't support GPT. Use GNU Parted.\n\n"), dev); ++} ++ ++static void + try(char *device, int user_specified) { + int gb; + +@@ -2409,6 +2419,7 @@ + if (!user_specified) + if (is_ide_cdrom_or_tape(device)) + return; ++ gpt_warning(device); + if ((fd = open(disk_device, type_open)) >= 0) { + gb = get_boot(try_only); + if (gb > 0) { /* I/O error */ +@@ -2470,6 +2481,8 @@ + printf(_("%c: unknown command\n"), c); + } + ++ ++ + int + main(int argc, char **argv) { + int j, c; +@@ -2574,6 +2587,7 @@ + + for (j = optind; j < argc; j++) { + disk_device = argv[j]; ++ gpt_warning(disk_device); + if ((fd = open(disk_device, type_open)) < 0) + fatal(unable_to_open); + if (disksize(fd, &size)) +@@ -2594,6 +2608,7 @@ + else + fatal(usage2); + ++ gpt_warning(disk_device); + get_boot(fdisk); + + if (osf_label) { +--- /dev/null 2005-11-14 15:52:26.044616250 +0100 ++++ util-linux-2.13-pre6/fdisk/gpt.h 2005-11-24 15:30:36.000000000 +0100 +@@ -0,0 +1,9 @@ ++ ++#ifndef __GPT_H__ ++#define __GPT_H__ ++ ++extern int gpt_probe_signature_fd(int fd); ++extern int gpt_probe_signature_devname(char *devname); ++ ++#endif /* __GPT_H__ */ ++ +--- util-linux-2.13-pre6/fdisk/Makefile.am.gpt 2005-10-16 14:12:52.000000000 +0200 ++++ util-linux-2.13-pre6/fdisk/Makefile.am 2005-11-24 15:31:42.000000000 +0100 +@@ -5,13 +5,13 @@ + sbin_PROGRAMS = fdisk + man_MANS = fdisk.8 + fdisk_SOURCES = fdisk.c disksize.c fdiskbsdlabel.c fdisksgilabel.c \ +- fdisksunlabel.c fdiskaixlabel.c i386_sys_types.c partname.c ++ fdisksunlabel.c fdiskaixlabel.c i386_sys_types.c partname.c gpt.c + + if !SPARC + + sbin_PROGRAMS += sfdisk + man_MANS += sfdisk.8 +-sfdisk_SOURCES = sfdisk.c disksize.c i386_sys_types.c partname.c ++sfdisk_SOURCES = sfdisk.c disksize.c i386_sys_types.c partname.c gpt.c + + if USE_SLANG + sbin_PROGRAMS += cfdisk +--- util-linux-2.13-pre6/fdisk/fdisk.8.gpt 2005-11-24 15:30:36.000000000 +0100 ++++ util-linux-2.13-pre6/fdisk/fdisk.8 2005-11-24 15:30:36.000000000 +0100 +@@ -42,6 +42,11 @@ + partition tables. + It understands DOS type partition tables and BSD or SUN type disklabels. + ++.B fdisk ++doesn't understand GUID Partition Table (GPT) and ++it is not designed for large partitions. In particular case use more advanced GNU ++.B parted(8). ++ + The + .I device + is usually one of the following: +--- util-linux-2.13-pre6/fdisk/sfdisk.8.gpt 2004-12-31 17:28:30.000000000 +0100 ++++ util-linux-2.13-pre6/fdisk/sfdisk.8 2005-11-24 15:30:36.000000000 +0100 +@@ -18,6 +18,11 @@ + on a device, check the partitions on a device, and - very dangerous - + repartition a device. + ++.B sfdisk ++doesn't understand GUID Partition Table (GPT) and ++it is not designed for large partitions. In particular case use more advanced GNU ++.B parted(8). ++ + .SS "List Sizes" + .BI "sfdisk \-s " partition + gives the size of +--- /dev/null 2005-11-14 15:52:26.044616250 +0100 ++++ util-linux-2.13-pre6/fdisk/gpt.c 2005-11-24 15:30:36.000000000 +0100 +@@ -0,0 +1,287 @@ ++/* ++ GPT (GUID Partition Table) signature detection. Based on libparted and ++ util-linux/partx. ++ ++ Warning: this code doesn't do all GPT checks (CRC32, Protective MBR, ..). It's ++ really GPT signature detection only. ++ ++ -- Karel Zak (Jun-2-2005) ++ ++*/ ++ ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++ ++#include "gpt.h" ++ ++#define KERNEL_VERSION(a,b,c) (((a) << 16) + ((b) << 8) + (c)) ++#define SECTOR_SIZE 512 /* default */ ++ ++#define _GET_BYTE(x, n) ( ((x) >> (8 * (n))) & 0xff ) ++ ++#define _PED_SWAP64(x) ( (_GET_BYTE(x, 0) << 56) \ ++ + (_GET_BYTE(x, 1) << 48) \ ++ + (_GET_BYTE(x, 2) << 40) \ ++ + (_GET_BYTE(x, 3) << 32) \ ++ + (_GET_BYTE(x, 4) << 24) \ ++ + (_GET_BYTE(x, 5) << 16) \ ++ + (_GET_BYTE(x, 6) << 8) \ ++ + (_GET_BYTE(x, 7) << 0) ) ++ ++#define PED_SWAP64(x) ((uint64_t) _PED_SWAP64( (uint64_t) (x) )) ++ ++#if __BYTE_ORDER == __LITTLE_ENDIAN ++# define CPU_TO_LE64(x) (x) ++#else ++# define CPU_TO_LE64(x) PED_SWAP64(x) ++#endif ++ ++#define BLKSSZGET _IO(0x12,104) /* get block device sector size */ ++#define BLKGETLASTSECT _IO(0x12,108) /* get last sector of block device */ ++#define BLKGETSIZE _IO(0x12,96) /* return device size */ ++#define BLKGETSIZE64 _IOR(0x12,114,size_t) /* return device size in bytes (u64 *arg) */ ++ ++#define GPT_HEADER_SIGNATURE 0x5452415020494645LL ++#define GPT_PRIMARY_PARTITION_TABLE_LBA 1 ++ ++typedef struct { ++ uint32_t time_low; ++ uint16_t time_mid; ++ uint16_t time_hi_and_version; ++ uint8_t clock_seq_hi_and_reserved; ++ uint8_t clock_seq_low; ++ uint8_t node[6]; ++} /* __attribute__ ((packed)) */ efi_guid_t; ++/* commented out "__attribute__ ((packed))" to work around gcc bug (fixed ++ * in gcc3.1): __attribute__ ((packed)) breaks addressing on initialized ++ * data. It turns out we don't need it in this case, so it doesn't break ++ * anything :) ++ */ ++ ++typedef struct _GuidPartitionTableHeader_t { ++ uint64_t Signature; ++ uint32_t Revision; ++ uint32_t HeaderSize; ++ uint32_t HeaderCRC32; ++ uint32_t Reserved1; ++ uint64_t MyLBA; ++ uint64_t AlternateLBA; ++ uint64_t FirstUsableLBA; ++ uint64_t LastUsableLBA; ++ efi_guid_t DiskGUID; ++ uint64_t PartitionEntryLBA; ++ uint32_t NumberOfPartitionEntries; ++ uint32_t SizeOfPartitionEntry; ++ uint32_t PartitionEntryArrayCRC32; ++ uint8_t Reserved2[512 - 92]; ++} __attribute__ ((packed)) GuidPartitionTableHeader_t; ++ ++struct blkdev_ioctl_param { ++ unsigned int block; ++ size_t content_length; ++ char * block_contents; ++}; ++ ++static int ++_get_linux_version (void) ++{ ++ static int kver = -1; ++ struct utsname uts; ++ int major; ++ int minor; ++ int teeny; ++ ++ if (kver != -1) ++ return kver; ++ if (uname (&uts)) ++ return kver = 0; ++ if (sscanf (uts.release, "%u.%u.%u", &major, &minor, &teeny) != 3) ++ return kver = 0; ++ return kver = KERNEL_VERSION (major, minor, teeny); ++} ++ ++static unsigned int ++_get_sector_size (int fd) ++{ ++ unsigned int sector_size; ++ ++ if (_get_linux_version() < KERNEL_VERSION (2,3,0)) ++ return SECTOR_SIZE; ++ if (ioctl (fd, BLKSSZGET, §or_size)) ++ return SECTOR_SIZE; ++ return sector_size; ++} ++ ++static uint64_t ++_get_num_sectors(int fd) ++{ ++ int version = _get_linux_version(); ++ unsigned long size; ++ uint64_t bytes=0; ++ ++ if (version >= KERNEL_VERSION(2,5,4) || ++ (version < KERNEL_VERSION(2,5,0) && ++ version >= KERNEL_VERSION (2,4,18))) ++ { ++ if (ioctl(fd, BLKGETSIZE64, &bytes) == 0) ++ return bytes / _get_sector_size(fd); ++ } ++ if (ioctl (fd, BLKGETSIZE, &size)) ++ return 0; ++ return size; ++} ++ ++static uint64_t ++last_lba(int fd) ++{ ++ int rc; ++ uint64_t sectors = 0; ++ struct stat s; ++ ++ memset(&s, 0, sizeof (s)); ++ rc = fstat(fd, &s); ++ if (rc == -1) ++ { ++ fprintf(stderr, "last_lba() could not stat: %s\n", ++ strerror(errno)); ++ return 0; ++ } ++ if (S_ISBLK(s.st_mode)) ++ sectors = _get_num_sectors(fd); ++ else ++ { ++ fprintf(stderr, ++ "last_lba(): I don't know how to handle files with mode %x\n", ++ s.st_mode); ++ sectors = 1; ++ } ++ return sectors - 1; ++} ++ ++static ssize_t ++read_lastoddsector(int fd, uint64_t lba, void *buffer, size_t count) ++{ ++ int rc; ++ struct blkdev_ioctl_param ioctl_param; ++ ++ if (!buffer) return 0; ++ ++ ioctl_param.block = 0; /* read the last sector */ ++ ioctl_param.content_length = count; ++ ioctl_param.block_contents = buffer; ++ ++ rc = ioctl(fd, BLKGETLASTSECT, &ioctl_param); ++ if (rc == -1) perror("read failed"); ++ ++ return !rc; ++} ++ ++static ssize_t ++read_lba(int fd, uint64_t lba, void *buffer, size_t bytes) ++{ ++ int sector_size = _get_sector_size(fd); ++ off_t offset = lba * sector_size; ++ ssize_t bytesread; ++ ++ lseek(fd, offset, SEEK_SET); ++ bytesread = read(fd, buffer, bytes); ++ ++ /* Kludge. This is necessary to read/write the last ++ block of an odd-sized disk, until Linux 2.5.x kernel fixes. ++ This is only used by gpt.c, and only to read ++ one sector, so we don't have to be fancy. ++ */ ++ if (!bytesread && !(last_lba(fd) & 1) && lba == last_lba(fd)) ++ bytesread = read_lastoddsector(fd, lba, buffer, bytes); ++ return bytesread; ++} ++ ++static GuidPartitionTableHeader_t * ++alloc_read_gpt_header(int fd, uint64_t lba) ++{ ++ GuidPartitionTableHeader_t *gpt = ++ (GuidPartitionTableHeader_t *) malloc(sizeof (GuidPartitionTableHeader_t)); ++ if (!gpt) ++ return NULL; ++ memset(gpt, 0, sizeof (*gpt)); ++ if (!read_lba(fd, lba, gpt, sizeof (GuidPartitionTableHeader_t))) ++ { ++ free(gpt); ++ return NULL; ++ } ++ return gpt; ++} ++ ++static int ++gpt_check_signature(int fd, uint64_t lba) ++{ ++ GuidPartitionTableHeader_t *gpt; ++ int res=0; ++ ++ if ((gpt = alloc_read_gpt_header(fd, lba))) ++ { ++ if (gpt->Signature == CPU_TO_LE64(GPT_HEADER_SIGNATURE)) ++ res = 1; ++ free(gpt); ++ } ++ return res; ++} ++ ++/* returns: ++ * 0 not found GPT ++ * 1 for valid primary GPT header ++ * 2 for valid alternative GPT header ++ */ ++int ++gpt_probe_signature_fd(int fd) ++{ ++ int res = 0; ++ ++ /* check primary GPT header */ ++ if (gpt_check_signature(fd, GPT_PRIMARY_PARTITION_TABLE_LBA)) ++ res = 1; ++ else ++ { ++ /* check alternative GPT header */ ++ uint64_t lastlba = last_lba(fd); ++ if (gpt_check_signature(fd, lastlba)) ++ res = 2; ++ } ++ return res; ++} ++ ++int ++gpt_probe_signature_devname(char *devname) ++{ ++ int res, fd; ++ if ((fd = open(devname, O_RDONLY)) < 0) ++ return 0; ++ res = gpt_probe_signature_fd(fd); ++ close(fd); ++ return res; ++} ++ ++#ifdef GPT_TEST_MAIN ++int ++main(int argc, char **argv) ++{ ++ if (argc!=2) ++ { ++ fprintf(stderr, "usage: %s \n", argv[0]); ++ exit(EXIT_FAILURE); ++ } ++ if (gpt_probe_signature_devname(argv[1])) ++ printf("GPT (GUID Partition Table) detected on %s\n", argv[1]); ++ exit(EXIT_SUCCESS); ++} ++#endif +--- util-linux-2.13-pre6/fdisk/sfdisk.c.gpt 2005-10-16 14:18:32.000000000 +0200 ++++ util-linux-2.13-pre6/fdisk/sfdisk.c 2005-11-24 15:30:36.000000000 +0100 +@@ -50,6 +50,8 @@ + #include "nls.h" + #include "common.h" + ++#include "gpt.h" ++ + #define SIZE(a) (sizeof(a)/sizeof(a[0])) + + /* +@@ -2457,6 +2459,23 @@ + return NULL; + } + ++static void ++gpt_warning(char *dev, int warn_only) ++{ ++ if (force) ++ warn_only = 1; ++ ++ if (gpt_probe_signature_devname(dev)) { ++ fflush(stdout); ++ fprintf(stderr, _("\nWARNING: GPT (GUID Partition Table) detected on '%s'! " ++ "The util sfdisk doesn't support GPT. Use GNU Parted.\n\n"), dev); ++ if (!warn_only) { ++ fprintf(stderr, _("Use the --force flag to overrule this check.\n")); ++ exit(1); ++ } ++ } ++} ++ + static void do_list(char *dev, int silent); + static void do_size(char *dev, int silent); + static void do_geom(char *dev, int silent); +@@ -2602,6 +2621,7 @@ + while ((dev = nextproc()) != NULL) { + if (is_ide_cdrom_or_tape(dev)) + continue; ++ gpt_warning(dev, 1); + if (opt_out_geom) + do_geom(dev, 1); + if (opt_out_pt_geom) +@@ -2629,6 +2649,7 @@ + + if (opt_list || opt_out_geom || opt_out_pt_geom || opt_size || verify) { + while (optind < argc) { ++ gpt_warning(argv[optind], 1); + if (opt_out_geom) + do_geom(argv[optind], 0); + if (opt_out_pt_geom) +@@ -2657,6 +2678,7 @@ + fatal(_("usage: sfdisk --change-id device partition-number Id\n")); + else if (optind != argc-3 && optind != argc-2) + fatal(_("usage: sfdisk --id device partition-number [Id]\n")); ++ gpt_warning(argv[optind], 0); + do_change_id(argv[optind], argv[optind+1], + (optind == argc-2) ? 0 : argv[optind+2]); + exit(exit_status); +@@ -2666,6 +2688,8 @@ + fatal(_("can specify only one device (except with -l or -s)\n")); + dev = argv[optind]; + ++ gpt_warning(dev, 0); ++ + if (opt_reread) + do_reread(dev); + else if (restore_sector_file) +@@ -2842,6 +2866,8 @@ + + z = &oldp; + ++ gpt_warning(dev, 0); ++ + rw = (!no_write && (arg || ac > 1)); + fd = my_open(dev, rw, 0); + +@@ -2943,6 +2969,8 @@ + + z = &oldp; + ++ gpt_warning(dev, 0); ++ + rw = !no_write; + fd = my_open(dev, rw, 0); + diff --git a/util-linux-2.13-fdisk-isfull.patch b/util-linux-2.13-fdisk-isfull.patch new file mode 100644 index 0000000..91fdace --- /dev/null +++ b/util-linux-2.13-fdisk-isfull.patch @@ -0,0 +1,103 @@ +--- util-linux-2.13-pre6/fdisk/sfdisk.c.isfull 2006-06-12 13:31:46.000000000 +0200 ++++ util-linux-2.13-pre6/fdisk/sfdisk.c 2006-06-12 13:31:47.000000000 +0200 +@@ -2413,19 +2413,6 @@ + return is_ide; + } + +-static int +-is_probably_full_disk(char *name) { +- struct hd_geometry geometry; +- int fd, i = 0; +- +- fd = open(name, O_RDONLY); +- if (fd >= 0) { +- i = ioctl(fd, HDIO_GETGEO, &geometry); +- close(fd); +- } +- return (fd >= 0 && i == 0 && geometry.start == 0); +-} +- + #define PROC_PARTITIONS "/proc/partitions" + static FILE *procf = NULL; + +--- util-linux-2.13-pre6/fdisk/common.h.isfull 2004-09-06 20:07:11.000000000 +0200 ++++ util-linux-2.13-pre6/fdisk/common.h 2006-06-12 13:31:47.000000000 +0200 +@@ -28,5 +28,6 @@ + extern struct systypes i386_sys_types[]; + + extern char *partname(char *dev, int pno, int lth); ++extern int is_probably_full_disk(char *name); + + int disksize(int fd, unsigned long long *sectors); +--- util-linux-2.13-pre6/fdisk/partname.c.isfull 2002-07-07 14:16:43.000000000 +0200 ++++ util-linux-2.13-pre6/fdisk/partname.c 2006-06-12 13:32:54.000000000 +0200 +@@ -1,6 +1,9 @@ + #include + #include + #include ++#include ++#include ++#include + #include "common.h" + + /* +@@ -45,3 +48,30 @@ + partname(char *dev, int pno, int lth) { + return partnamebf(dev, pno, lth, 0, NULL); + } ++ ++int ++is_probably_full_disk(char *name) { ++#ifdef HDIO_GETGEO ++ struct hd_geometry geometry; ++ int fd, i = 0; ++ ++ fd = open(name, O_RDONLY); ++ if (fd >= 0) { ++ i = ioctl(fd, HDIO_GETGEO, &geometry); ++ close(fd); ++ } ++ if (i==0) ++ return (fd >= 0 && geometry.start == 0); ++ /* ++ * "silly heuristic" is still so sexy for us, because ++ * for example Xen doesn't implement HDIO_GETGEO for virtual ++ * block devices (/dev/xvda). ++ * -- kzak@redhat.com (23-Feb-2006) ++ */ ++#endif ++ /* silly heuristic */ ++ while (*name) ++ name++; ++ return !isdigit(name[-1]); ++} ++ +--- util-linux-2.13-pre6/fdisk/fdisk.c.isfull 2006-06-12 13:31:47.000000000 +0200 ++++ util-linux-2.13-pre6/fdisk/fdisk.c 2006-06-12 13:31:47.000000000 +0200 +@@ -788,26 +788,6 @@ + #endif + } + +-static int +-is_probably_full_disk(char *name) { +-#ifdef HDIO_GETGEO +- struct hd_geometry geometry; +- int fd, i = 0; +- +- fd = open(name, O_RDONLY); +- if (fd >= 0) { +- i = ioctl(fd, HDIO_GETGEO, &geometry); +- close(fd); +- } +- return (fd >= 0 && i == 0 && geometry.start == 0); +-#else +- /* silly heuristic */ +- while (*name) +- name++; +- return !isdigit(name[-1]); +-#endif +-} +- + static void + get_partition_table_geometry(void) { + unsigned char *bufp = MBRbuffer; diff --git a/util-linux-2.13-fdisk-sectors.patch b/util-linux-2.13-fdisk-sectors.patch new file mode 100644 index 0000000..c8de359 --- /dev/null +++ b/util-linux-2.13-fdisk-sectors.patch @@ -0,0 +1,345 @@ +--- util-linux-2.13-pre6/fdisk/fdisk.h.sectors 2006-06-12 10:50:11.000000000 +0200 ++++ util-linux-2.13-pre6/fdisk/fdisk.h 2006-06-12 10:50:52.000000000 +0200 +@@ -81,8 +81,8 @@ + #define SINGULAR 1 + extern char *const str_units(int); + +-extern unsigned int get_start_sect(struct partition *p); +-extern unsigned int get_nr_sects(struct partition *p); ++extern unsigned long long get_start_sect(struct partition *p); ++extern unsigned long long get_nr_sects(struct partition *p); + + extern int osf_label; + +--- util-linux-2.13-pre6/fdisk/fdisksgilabel.h.sectors 2004-12-14 00:39:29.000000000 +0100 ++++ util-linux-2.13-pre6/fdisk/fdisksgilabel.h 2006-06-12 10:50:52.000000000 +0200 +@@ -103,8 +103,9 @@ + /* fdisk.c */ + #define sgilabel ((sgi_partition *)MBRbuffer) + #define sgiparam (sgilabel->devparam) +-extern char MBRbuffer[MAX_SECTOR_SIZE]; +-extern unsigned int heads, sectors, cylinders, sector_size; ++extern unsigned char MBRbuffer[MAX_SECTOR_SIZE]; ++extern unsigned int heads, cylinders, sector_size; ++extern unsigned long long sectors; + extern int show_begin; + extern int sgi_label; + extern char *partition_type(unsigned char type); +--- util-linux-2.13-pre6/fdisk/fdisksunlabel.h.sectors 2004-12-14 00:39:18.000000000 +0100 ++++ util-linux-2.13-pre6/fdisk/fdisksunlabel.h 2006-06-12 10:50:52.000000000 +0200 +@@ -37,8 +37,9 @@ + : (__u32)(x)) + + /* fdisk.c */ +-extern char MBRbuffer[MAX_SECTOR_SIZE]; +-extern unsigned int heads, sectors, cylinders; ++extern unsigned char MBRbuffer[MAX_SECTOR_SIZE]; ++extern unsigned int heads, cylinders; ++extern unsigned long long sectors; + extern int show_begin; + extern int sun_label; + extern char *partition_type(unsigned char type); +--- util-linux-2.13-pre6/fdisk/fdiskaixlabel.h.sectors 2004-12-14 00:39:47.000000000 +0100 ++++ util-linux-2.13-pre6/fdisk/fdiskaixlabel.h 2006-06-12 10:50:52.000000000 +0200 +@@ -19,9 +19,10 @@ + + /* fdisk.c */ + #define aixlabel ((aix_partition *)MBRbuffer) +-extern char MBRbuffer[MAX_SECTOR_SIZE]; ++extern unsigned char MBRbuffer[MAX_SECTOR_SIZE]; + extern char changed[MAXIMUM_PARTS]; +-extern unsigned int heads, sectors, cylinders; ++extern unsigned int heads, cylinders; ++extern unsigned long long sectors; + extern int show_begin; + extern int aix_label; + extern char *partition_type(unsigned char type); +--- util-linux-2.13-pre6/fdisk/fdisksunlabel.c.sectors 2005-07-31 18:00:29.000000000 +0200 ++++ util-linux-2.13-pre6/fdisk/fdisksunlabel.c 2006-06-12 10:50:52.000000000 +0200 +@@ -348,7 +348,7 @@ + } + + snprintf(sunlabel->info, sizeof(sunlabel->info), +- "%s%s%s cyl %d alt %d hd %d sec %d", ++ "%s%s%s cyl %d alt %d hd %d sec %llu", + p ? p->vendor : "", (p && *p->vendor) ? " " : "", + p ? p->model + : (floppy ? _("3,5\" floppy") : _("Linux custom")), +@@ -655,7 +655,7 @@ + w = strlen(disk_device); + if (xtra) + printf( +- _("\nDisk %s (Sun disk label): %d heads, %d sectors, %d rpm\n" ++ _("\nDisk %s (Sun disk label): %d heads, %llu sectors, %d rpm\n" + "%d cylinders, %d alternate cylinders, %d physical cylinders\n" + "%d extra sects/cyl, interleave %d:1\n" + "%s\n" +@@ -669,7 +669,7 @@ + str_units(PLURAL), units_per_sector); + else + printf( +- _("\nDisk %s (Sun disk label): %d heads, %d sectors, %d cylinders\n" ++ _("\nDisk %s (Sun disk label): %d heads, %llu sectors, %d cylinders\n" + "Units = %s of %d * 512 bytes\n\n"), + disk_device, heads, sectors, cylinders, + str_units(PLURAL), units_per_sector); +--- util-linux-2.13-pre6/fdisk/fdisk.c.sectors 2006-06-12 10:50:11.000000000 +0200 ++++ util-linux-2.13-pre6/fdisk/fdisk.c 2006-06-12 10:51:53.000000000 +0200 +@@ -64,7 +64,7 @@ + + /* A valid partition table sector ends in 0x55 0xaa */ + static unsigned int +-part_table_flag(char *b) { ++part_table_flag(unsigned char *b) { + return ((unsigned int) b[510]) + (((unsigned int) b[511]) << 8); + } + +@@ -74,7 +74,7 @@ + } + + static void +-write_part_table_flag(char *b) { ++write_part_table_flag(unsigned char *b) { + b[510] = 0x55; + b[511] = 0xaa; + } +@@ -101,17 +101,17 @@ + store4_little_endian(p->start4, start_sect); + } + +-unsigned int ++unsigned long long + get_start_sect(struct partition *p) { + return read4_little_endian(p->start4); + } + + static void +-set_nr_sects(struct partition *p, unsigned int nr_sects) { ++set_nr_sects(struct partition *p, unsigned long long nr_sects) { + store4_little_endian(p->size4, nr_sects); + } + +-unsigned int ++unsigned long long + get_nr_sects(struct partition *p) { + return read4_little_endian(p->size4); + } +@@ -123,7 +123,7 @@ + * Raw disk label. For DOS-type partition tables the MBR, + * with descriptions of the primary partitions. + */ +-char MBRbuffer[MAX_SECTOR_SIZE]; ++unsigned char MBRbuffer[MAX_SECTOR_SIZE]; + + /* + * per partition table entry data +@@ -137,8 +137,8 @@ + struct partition *part_table; /* points into sectorbuffer */ + struct partition *ext_pointer; /* points into sectorbuffer */ + char changed; /* boolean */ +- unsigned int offset; /* disk sector number */ +- char *sectorbuffer; /* disk sector contents */ ++ unsigned long long offset; /* disk sector number */ ++ unsigned char *sectorbuffer; /* disk sector contents */ + } ptes[MAXIMUM_PARTS]; + + char *disk_device, /* must be specified */ +@@ -157,15 +157,14 @@ + unsigned int pt_heads, pt_sectors; + unsigned int kern_heads, kern_sectors; + ++unsigned long long sector_offset = 1, extended_offset = 0, sectors; ++ + unsigned int heads, +- sectors, + cylinders, + sector_size = DEFAULT_SECTOR_SIZE, + user_set_sector_size = 0, +- sector_offset = 1, + units_per_sector = 1, +- display_in_cyl_units = 1, +- extended_offset = 0; /* offset of link pointers */ ++ display_in_cyl_units = 1; + + unsigned long long total_number_of_sectors; + +@@ -242,21 +241,21 @@ + } + + static void +-seek_sector(int fd, unsigned int secno) { ++seek_sector(int fd, unsigned long long secno) { + off_t offset = (off_t) secno * sector_size; + if (lseek(fd, offset, SEEK_SET) == (off_t) -1) + fatal(unable_to_seek); + } + + static void +-read_sector(int fd, unsigned int secno, char *buf) { ++read_sector(int fd, unsigned long long secno, char *buf) { + seek_sector(fd, secno); + if (read(fd, buf, sector_size) != sector_size) + fatal(unable_to_read); + } + + static void +-write_sector(int fd, unsigned int secno, char *buf) { ++write_sector(int fd, unsigned long long secno, char *buf) { + seek_sector(fd, secno); + if (write(fd, buf, sector_size) != sector_size) + fatal(unable_to_write); +@@ -264,11 +263,11 @@ + + /* Allocate a buffer and read a partition table sector */ + static void +-read_pte(int fd, int pno, unsigned int offset) { ++read_pte(int fd, int pno, unsigned long long offset) { + struct pte *pe = &ptes[pno]; + + pe->offset = offset; +- pe->sectorbuffer = (char *) malloc(sector_size); ++ pe->sectorbuffer = malloc(sector_size); + if (!pe->sectorbuffer) + fatal(out_of_memory); + read_sector(fd, offset, pe->sectorbuffer); +@@ -276,7 +275,7 @@ + pe->part_table = pe->ext_pointer = NULL; + } + +-static unsigned int ++static unsigned long long + get_partition_start(struct pte *pe) { + return pe->offset + get_start_sect(pe->part_table); + } +@@ -542,10 +541,10 @@ + } + + static void +-set_partition(int i, int doext, unsigned int start, unsigned int stop, +- int sysid) { ++set_partition(int i, int doext, unsigned long long start, ++ unsigned long long stop, int sysid) { + struct partition *p; +- unsigned int offset; ++ unsigned long long offset; + + if (doext) { + p = ptes[i].ext_pointer; +@@ -1544,7 +1543,7 @@ + else + printf(_("\nDisk %s: %ld.%ld GB, %lld bytes\n"), + disk_device, megabytes/1000, (megabytes/100)%10, bytes); +- printf(_("%d heads, %d sectors/track, %d cylinders"), ++ printf(_("%d heads, %Ld sectors/track, %d cylinders"), + heads, sectors, cylinders); + if (units_per_sector == 1) + printf(_(", total %llu sectors"), +@@ -1776,20 +1775,21 @@ + struct partition *p; + int i; + +- printf(_("\nDisk %s: %d heads, %d sectors, %d cylinders\n\n"), ++ printf(_("\nDisk %s: %d heads, %Ld sectors, %d cylinders\n\n"), + disk_device, heads, sectors, cylinders); + printf(_("Nr AF Hd Sec Cyl Hd Sec Cyl Start Size ID\n")); + for (i = 0 ; i < partitions; i++) { + pe = &ptes[i]; + p = (extend ? pe->ext_pointer : pe->part_table); + if (p != NULL) { +- printf("%2d %02x%4d%4d%5d%4d%4d%5d%11u%11u %02x\n", ++ printf("%2d %02x%4d%4d%5d%4d%4d%5d%11lu%11lu %02x\n", + i + 1, p->boot_ind, p->head, + sector(p->sector), + cylinder(p->sector, p->cyl), p->end_head, + sector(p->end_sector), + cylinder(p->end_sector, p->end_cyl), +- get_start_sect(p), get_nr_sects(p), p->sys_ind); ++ (unsigned long) get_start_sect(p), ++ (unsigned long) get_nr_sects(p), p->sys_ind); + if (p->sys_ind) + check_consistency(p, i); + } +@@ -1797,7 +1797,7 @@ + } + + static void +-fill_bounds(unsigned int *first, unsigned int *last) { ++fill_bounds(unsigned long long *first, unsigned long long *last) { + int i; + struct pte *pe = &ptes[0]; + struct partition *p; +@@ -1830,7 +1830,7 @@ + n, h + 1, heads); + if (real_s >= sectors) + fprintf(stderr, _("Partition %d: sector %d greater than " +- "maximum %d\n"), n, s, sectors); ++ "maximum %Ld\n"), n, s, sectors); + if (real_c >= cylinders) + fprintf(stderr, _("Partitions %d: cylinder %d greater than " + "maximum %d\n"), n, real_c + 1, cylinders); +@@ -1843,8 +1843,8 @@ + static void + verify(void) { + int i, j; +- unsigned int total = 1; +- unsigned int first[partitions], last[partitions]; ++ unsigned long total = 1; ++ unsigned long long first[partitions], last[partitions]; + struct partition *p; + + if (warn_geometry()) +@@ -1888,7 +1888,7 @@ + + if (extended_offset) { + struct pte *pex = &ptes[ext_index]; +- unsigned int e_last = get_start_sect(pex->part_table) + ++ unsigned long long e_last = get_start_sect(pex->part_table) + + get_nr_sects(pex->part_table) - 1; + + for (i = 4; i < partitions; i++) { +@@ -1907,8 +1907,8 @@ + } + + if (total > total_number_of_sectors) +- printf(_("Total allocated sectors %d greater than the maximum " +- "%lld\n"), total, total_number_of_sectors); ++ printf(_("Total allocated sectors %ld greater than the maximum" ++ " %lld\n"), total, total_number_of_sectors); + else if (total < total_number_of_sectors) + printf(_("%lld unallocated sectors\n"), + total_number_of_sectors - total); +@@ -1921,7 +1921,7 @@ + struct partition *p = ptes[n].part_table; + struct partition *q = ptes[ext_index].part_table; + long long llimit; +- unsigned int start, stop = 0, limit, temp, ++ unsigned long long start, stop = 0, limit, temp, + first[partitions], last[partitions]; + + if (p && p->sys_ind) { +@@ -1967,7 +1967,7 @@ + if (start > limit) + break; + if (start >= temp+units_per_sector && read) { +- printf(_("Sector %d is already allocated\n"), temp); ++ printf(_("Sector %llu is already allocated\n"), temp); + temp = start; + read = 0; + } +@@ -2225,14 +2225,14 @@ + + #define MAX_PER_LINE 16 + static void +-print_buffer(char pbuffer[]) { ++print_buffer(unsigned char pbuffer[]) { + int i, + l; + + for (i = 0, l = 0; i < sector_size; i++, l++) { + if (l == 0) + printf("0x%03X:", i); +- printf(" %02X", (unsigned char) pbuffer[i]); ++ printf(" %02X", pbuffer[i]); + if (l == MAX_PER_LINE - 1) { + printf("\n"); + l = -1; diff --git a/util-linux-2.13-hexdump-gcc.patch b/util-linux-2.13-hexdump-gcc.patch new file mode 100644 index 0000000..f088147 --- /dev/null +++ b/util-linux-2.13-hexdump-gcc.patch @@ -0,0 +1,17 @@ + + gcc 4.1.0: "warning: memset used with constant zero length parameter; this + could be due to transposed parameters". So, fix it! + -- 03/30/2006 Karel Zak + +--- util-linux-2.13-pre7/text-utils/display.c.gcc 2006-03-31 10:44:50.000000000 +0200 ++++ util-linux-2.13-pre7/text-utils/display.c 2006-03-31 10:45:22.000000000 +0200 +@@ -255,7 +255,8 @@ + (void)printf("*\n"); + return(NULL); + } +- memset((char *)curp + nread, 0, need); ++ if (need > 0) ++ memset((char *)curp + nread, 0, need); + eaddress = address + nread; + return(curp); + } diff --git a/util-linux-2.13-hwclock-systohc.patch b/util-linux-2.13-hwclock-systohc.patch new file mode 100644 index 0000000..d0d1eb0 --- /dev/null +++ b/util-linux-2.13-hwclock-systohc.patch @@ -0,0 +1,46 @@ +commit 99c392d8ba163e35b9d562dd4bcf7dd476ad3573 +Author: Karel Zak +Date: Tue Mar 20 00:32:37 2007 +0100 + + hwclock: fix --systohc sets clock 0.5 seconds slow + + quote from rh150493: + + The kernel code, when setting the BIOS clock notes that the clock time + ticks to the next second 0.5 seconds after adjusting it (see + linux/arch/i386/kernel/time.c). + + hwclock --systohc sets the CMOS clock at the 1 second boundry and thus + causes the clock to be wrong by 500ms each time it is reset. If the + clock is set every shutdown then the clock will have a reboot-count + related drift as well as the natural drift problems of the clock. Note + that this also mucks up the drift calculations, of course. + + Signed-off-by: Karel Zak + +diff --git a/hwclock/hwclock.c b/hwclock/hwclock.c +index 9731dad..820c388 100644 +--- a/hwclock/hwclock.c ++++ b/hwclock/hwclock.c +@@ -517,14 +517,19 @@ set_hardware_clock_exact(const time_t sethwtime, + "Delaying further to reach the next full second.\n"), + time_diff(beginsystime, refsystime)); + +- /* Now delay some more until Hardware Clock time newhwtime arrives */ ++ /* ++ * Now delay some more until Hardware Clock time newhwtime arrives. The -500 ++ * ms is because the Hardware Clock always sets to your set time plus 500 ms ++ * (because it is designed to update to the next second precisely 500 ms ++ * after you finish the setting). ++ */ + do { + float tdiff; + gettimeofday(&nowsystime, NULL); + tdiff = time_diff(nowsystime, beginsystime); + if (tdiff < 0) + goto time_resync; /* probably time was reset */ +- } while (time_diff(nowsystime, refsystime) < newhwtime - sethwtime); ++ } while (time_diff(nowsystime, refsystime) - 0.5 < newhwtime - sethwtime); + + set_hardware_clock(newhwtime, universal, testing); + } diff --git a/util-linux-2.13-ipcs-shmax.patch b/util-linux-2.13-ipcs-shmax.patch new file mode 100644 index 0000000..d855bf5 --- /dev/null +++ b/util-linux-2.13-ipcs-shmax.patch @@ -0,0 +1,18 @@ +--- util-linux-2.13-pre4/sys-utils/ipcs.c.shmax 2005-10-18 17:04:42.000000000 +0200 ++++ util-linux-2.13-pre4/sys-utils/ipcs.c 2005-10-18 17:31:28.000000000 +0200 +@@ -280,8 +280,14 @@ + (unsigned long) shminfo.shmmni); + printf (_("max seg size (kbytes) = %lu\n"), + (unsigned long) (shminfo.shmmax >> 10)); ++ ++ /* max shmem = pagesize * shminfo.shmall / 1024 ++ * ++ * note: that "shminfo.shmall * getpagesize()" is greater than ULONG_MAX (32bit) ++ * it means that better is "/" before "*" or use "long long" ++ */ + printf (_("max total shared memory (kbytes) = %lu\n"), +- (getpagesize()*((unsigned long) shminfo.shmall))/1024UL); ++ getpagesize()/1024 * (unsigned long) shminfo.shmall); + printf (_("min seg size (bytes) = %lu\n"), + (unsigned long) shminfo.shmmin); + return; diff --git a/util-linux-2.13-login-hang.patch b/util-linux-2.13-login-hang.patch new file mode 100644 index 0000000..e6031f3 --- /dev/null +++ b/util-linux-2.13-login-hang.patch @@ -0,0 +1,20 @@ +--- util-linux-2.13-pre2/login-utils/login.c.hang 2005-10-03 16:02:54.000000000 +0200 ++++ util-linux-2.13-pre2/login-utils/login.c 2005-10-03 16:16:16.000000000 +0200 +@@ -223,7 +223,8 @@ + + if (lstat(ttyn, &statbuf) + || !S_ISCHR(statbuf.st_mode) +- || (statbuf.st_nlink > 1 && strncmp(ttyn, "/dev/", 5))) { ++ || (statbuf.st_nlink > 1 && strncmp(ttyn, "/dev/", 5)) ++ || (access(ttyn, R_OK | W_OK) != 0)) { + syslog(LOG_ERR, _("FATAL: bad tty")); + sleep(1); + exit(1); +@@ -332,6 +333,7 @@ + pid = getpid(); + + signal(SIGALRM, timedout); ++ siginterrupt(SIGALRM,1); /* we have to interrupt syscalls like ioclt() */ + alarm((unsigned int)timeout); + signal(SIGQUIT, SIG_IGN); + signal(SIGINT, SIG_IGN); diff --git a/util-linux-2.13-login-ipv6.patch b/util-linux-2.13-login-ipv6.patch new file mode 100644 index 0000000..5eba0c6 --- /dev/null +++ b/util-linux-2.13-login-ipv6.patch @@ -0,0 +1,80 @@ +--- util-linux-2.13-pre6/login-utils/login.c.ipv6 2006-10-12 10:10:34.000000000 +0200 ++++ util-linux-2.13-pre6/login-utils/login.c 2006-10-12 10:17:16.000000000 +0200 +@@ -173,7 +173,7 @@ + #ifdef HAVE_SECURITY_PAM_MISC_H + static struct passwd pwdcopy; + #endif +-char hostaddress[4]; /* used in checktty.c */ ++char hostaddress[16]; /* used in checktty.c */ + char *hostname; /* idem */ + static char *username, *tty_name, *tty_number; + static char thishost[100]; +@@ -281,7 +281,7 @@ + if (hostname) { + xstrncpy(ut.ut_host, hostname, sizeof(ut.ut_host)); + if (hostaddress[0]) +- memcpy(&ut.ut_addr, hostaddress, sizeof(ut.ut_addr)); ++ memcpy(&ut.ut_addr_v6, hostaddress, sizeof(ut.ut_addr_v6)); + } + #if HAVE_UPDWTMP /* bad luck for ancient systems */ + updwtmp(_PATH_BTMP, &ut); +@@ -380,13 +380,33 @@ + + hostname = strdup(optarg); /* strdup: Ambrose C. Li */ + { +- struct hostent *he = gethostbyname(hostname); ++ struct addrinfo hints, *info = NULL; ++ ++ memset(&hints, '\0', sizeof(hints)); ++ hints.ai_flags = AI_ADDRCONFIG; ++ ++ hostaddress[0] = 0; + +- /* he points to static storage; copy the part we use */ +- hostaddress[0] = 0; +- if (he && he->h_addr_list && he->h_addr_list[0]) +- memcpy(hostaddress, he->h_addr_list[0], +- sizeof(hostaddress)); ++ if (getaddrinfo(hostname, NULL, &hints, &info)==0 && info) ++ { ++ if (info->ai_family == AF_INET) ++ { ++ struct sockaddr_in *sa4; ++ ++ sa4 = (struct sockaddr_in *) info->ai_addr; ++ memcpy(hostaddress, &(sa4->sin_addr), ++ sizeof(sa4->sin_addr)); ++ } ++ if (info->ai_family == AF_INET6) ++ { ++ struct sockaddr_in6 *sa6; ++ ++ sa6 = (struct sockaddr_in6 *) info->ai_addr; ++ memcpy(hostaddress, &(sa6->sin6_addr), ++ sizeof(sa6->sin6_addr)); ++ } ++ freeaddrinfo(info); ++ } + } + break; + +@@ -906,7 +926,7 @@ + if (hostname) { + xstrncpy(ut.ut_host, hostname, sizeof(ut.ut_host)); + if (hostaddress[0]) +- memcpy(&ut.ut_addr, hostaddress, sizeof(ut.ut_addr)); ++ memcpy(&ut.ut_addr_v6, hostaddress, sizeof(ut.ut_addr_v6)); + } + + pututline(&ut); +--- util-linux-2.13-pre6/login-utils/login.h.ipv6 2005-08-02 14:01:18.000000000 +0200 ++++ util-linux-2.13-pre6/login-utils/login.h 2006-10-12 10:10:34.000000000 +0200 +@@ -1,7 +1,7 @@ + /* defined in login.c */ + extern void badlogin(const char *s); + extern void sleepexit(int); +-extern char hostaddress[4]; ++extern char hostaddress[16]; + extern char *hostname; + + /* defined in checktty.c */ diff --git a/util-linux-2.13-login-pam-acct.patch b/util-linux-2.13-login-pam-acct.patch new file mode 100644 index 0000000..24fba08 --- /dev/null +++ b/util-linux-2.13-login-pam-acct.patch @@ -0,0 +1,31 @@ +--- util-linux-2.13-pre6/login-utils/login.c.acct 2006-02-22 21:43:03.000000000 +0100 ++++ util-linux-2.13-pre6/login-utils/login.c 2006-02-22 21:57:55.000000000 +0100 +@@ -602,16 +602,22 @@ + pam_end(pamh, retcode); + exit(0); + } ++ } + +- retcode = pam_acct_mgmt(pamh, 0); +- +- if(retcode == PAM_NEW_AUTHTOK_REQD) { +- retcode = pam_chauthtok(pamh, PAM_CHANGE_EXPIRED_AUTHTOK); +- } ++ /* ++ * Authentication may be skipped (for example, during krlogin, rlogin, etc...), ++ * but it doesn't mean that we can skip other account checks. The account ++ * could be disabled or password expired (althought kerberos ticket is valid). ++ * -- kzak@redhat.com (22-Feb-2006) ++ */ ++ retcode = pam_acct_mgmt(pamh, 0); + +- PAM_FAIL_CHECK; ++ if(retcode == PAM_NEW_AUTHTOK_REQD) { ++ retcode = pam_chauthtok(pamh, PAM_CHANGE_EXPIRED_AUTHTOK); + } + ++ PAM_FAIL_CHECK; ++ + /* + * Grab the user information out of the password file for future usage + * First get the username that we are actually using, though. diff --git a/util-linux-2.13-login-timeval.patch b/util-linux-2.13-login-timeval.patch new file mode 100644 index 0000000..2f8e46a --- /dev/null +++ b/util-linux-2.13-login-timeval.patch @@ -0,0 +1,49 @@ + +On 64-bit platforms such as x86_64, glibc is usally built with 32-bit +compatibilty for various structures. One of them is utmp. + +What this means is that gettimeofday(&ut.ut_tv, NULL) on x86_64 will +end up overwriting the first parts of ut_addr_v6, leading to garbage +in the utmp file. + + +--- util-linux-2.13-pre6/login-utils/login.c.kzak 2006-08-10 11:38:33.000000000 +0200 ++++ util-linux-2.13-pre6/login-utils/login.c 2006-08-10 11:38:49.000000000 +0200 +@@ -257,6 +257,7 @@ + static void + logbtmp(const char *line, const char *username, const char *hostname) { + struct utmp ut; ++ struct timeval tv; + + memset(&ut, 0, sizeof(ut)); + +@@ -267,7 +268,9 @@ + xstrncpy(ut.ut_line, line, sizeof(ut.ut_line)); + + #if defined(_HAVE_UT_TV) /* in included by */ +- gettimeofday(&ut.ut_tv, NULL); ++ gettimeofday(&tv, NULL); ++ ut.ut_tv.tv_sec = tv.tv_sec; ++ ut.ut_tv.tv_usec = tv.tv_usec; + #else + { + time_t t; +@@ -872,6 +875,7 @@ + { + struct utmp ut; + struct utmp *utp; ++ struct timeval tv; + + utmpname(_PATH_UTMP); + setutent(); +@@ -911,7 +915,9 @@ + strncpy(ut.ut_user, username, sizeof(ut.ut_user)); + xstrncpy(ut.ut_line, tty_name, sizeof(ut.ut_line)); + #ifdef _HAVE_UT_TV /* in included by */ +- gettimeofday(&ut.ut_tv, NULL); ++ gettimeofday(&tv, NULL); ++ ut.ut_tv.tv_sec = tv.tv_sec; ++ ut.ut_tv.tv_usec = tv.tv_usec; + #else + { + time_t t; diff --git a/util-linux-2.13-losetup-all.patch b/util-linux-2.13-losetup-all.patch new file mode 100644 index 0000000..bd12f2e --- /dev/null +++ b/util-linux-2.13-losetup-all.patch @@ -0,0 +1,160 @@ +--- util-linux-2.13-pre6/mount/losetup.8.all 2006-10-12 10:34:47.000000000 +0200 ++++ util-linux-2.13-pre6/mount/losetup.8 2006-10-12 10:37:35.000000000 +0200 +@@ -9,6 +9,8 @@ + .B losetup + .I loop_device + .sp ++.B losetup -a ++.sp + .in -5 + Delete loop: + .sp +@@ -66,6 +68,8 @@ + .B \-e + option.) + .SH OPTIONS ++.IP \fB\-a\fP ++Show status of all loop devices. + .IP \fB\-d\fP + Detach the file or device associated with the specified loop device. + .IP "\fB\-E \fIencryption_type\fP" +--- util-linux-2.13-pre6/mount/lomount.c.all 2004-12-20 23:11:04.000000000 +0100 ++++ util-linux-2.13-pre6/mount/lomount.c 2006-10-12 10:29:55.000000000 +0200 +@@ -28,6 +28,8 @@ + extern char *xstrdup (const char *s); /* not: #include "sundries.h" */ + extern void error (const char *fmt, ...); /* idem */ + ++#define SIZE(a) (sizeof(a)/sizeof(a[0])) ++ + #ifdef LOOP_SET_FD + + static int +@@ -128,6 +130,42 @@ + close (fd); + return 1; + } ++ ++static int ++show_used_loop_devices (void) { ++ char dev[20]; ++ char *loop_formats[] = { "/dev/loop%d", "/dev/loop/%d" }; ++ int i, j, fd, permission = 0, somedev = 0; ++ struct stat statbuf; ++ struct loop_info loopinfo; ++ ++ for (j = 0; j < SIZE(loop_formats); j++) { ++ for(i = 0; i < 256; i++) { ++ sprintf(dev, loop_formats[j], i); ++ if (stat (dev, &statbuf) == 0 && S_ISBLK(statbuf.st_mode)) { ++ somedev++; ++ fd = open (dev, O_RDONLY); ++ if (fd >= 0) { ++ if(ioctl (fd, LOOP_GET_STATUS, &loopinfo) == 0) ++ show_loop(dev); ++ close (fd); ++ somedev++; ++ } else if (errno == EACCES) ++ permission++; ++ continue; /* continue trying as long as devices exist */ ++ } ++ break; ++ } ++ } ++ ++ if (somedev==0 && permission) { ++ error(_("%s: no permission to look at /dev/loop#"), progname); ++ return 1; ++ } ++ return 0; ++} ++ ++ + #endif + + int +@@ -139,8 +177,6 @@ + major(statbuf.st_rdev) == LOOPMAJOR); + } + +-#define SIZE(a) (sizeof(a)/sizeof(a[0])) +- + char * + find_unused_loop_device (void) { + /* Just creating a device, say in /tmp, is probably a bad idea - +@@ -403,12 +439,13 @@ + + static void + usage(void) { +- fprintf(stderr, _("usage:\n\ +- %s loop_device # give info\n\ +- %s -d loop_device # delete\n\ +- %s -f # find unused\n\ +- %s [-e encryption] [-o offset] {-f|loop_device} file # setup\n"), +- progname, progname, progname, progname); ++ fprintf(stderr, _("usage:\n" ++ " %1$s loop_device # give info\n" ++ " %1$s -d loop_device # delete\n" ++ " %1$s -f # find unused\n" ++ " %1$s -a # list all used\n" ++ " %1$s [-e encryption] [-o offset] {-f|loop_device} file # setup\n"), ++ progname); + exit(1); + } + +@@ -442,7 +479,7 @@ + int + main(int argc, char **argv) { + char *p, *offset, *encryption, *passfd, *device, *file; +- int delete, find, c; ++ int delete, find, c, all; + int res = 0; + int ro = 0; + int pfd = -1; +@@ -452,7 +489,7 @@ + bindtextdomain(PACKAGE, LOCALEDIR); + textdomain(PACKAGE); + +- delete = find = 0; ++ delete = find = all = 0; + off = 0; + offset = encryption = passfd = NULL; + +@@ -460,8 +497,11 @@ + if ((p = strrchr(progname, '/')) != NULL) + progname = p+1; + +- while ((c = getopt(argc, argv, "de:E:fo:p:v")) != -1) { ++ while ((c = getopt(argc, argv, "ade:E:fo:p:v")) != -1) { + switch (c) { ++ case 'a': ++ all = 1; ++ break; + case 'd': + delete = 1; + break; +@@ -489,17 +529,22 @@ + if (argc == 1) { + usage(); + } else if (delete) { +- if (argc != optind+1 || encryption || offset || find) ++ if (argc != optind+1 || encryption || offset || find || all) + usage(); + } else if (find) { +- if (argc < optind || argc > optind+1) ++ if (all || argc < optind || argc > optind+1) ++ usage(); ++ } else if (all) { ++ if (argc > 2) + usage(); + } else { + if (argc < optind+1 || argc > optind+2) + usage(); + } + +- if (find) { ++ if (all) ++ return show_used_loop_devices(); ++ else if (find) { + device = find_unused_loop_device(); + if (device == NULL) + return -1; diff --git a/util-linux-2.13-losetup-deprecated.patch b/util-linux-2.13-losetup-deprecated.patch new file mode 100644 index 0000000..73e45c0 --- /dev/null +++ b/util-linux-2.13-losetup-deprecated.patch @@ -0,0 +1,13 @@ +--- util-linux-2.13-pre6/mount/losetup.8.kzak 2006-10-12 10:39:39.000000000 +0200 ++++ util-linux-2.13-pre6/mount/losetup.8 2006-10-12 10:40:04.000000000 +0200 +@@ -133,6 +133,10 @@ + .fi + .SH RESTRICTION + DES encryption is painfully slow. On the other hand, XOR is terribly weak. ++ ++Cryptoloop is deprecated and unmaintained in 2.6 kernels. Use dm-crypt. For ++more details see ++.B cryptsetup(8). + .\" .SH AUTHORS + .\" .nf + .\" Original version: Theodore Ts'o diff --git a/util-linux-2.13-losetup-rdonly.patch b/util-linux-2.13-losetup-rdonly.patch new file mode 100644 index 0000000..19e9f13 --- /dev/null +++ b/util-linux-2.13-losetup-rdonly.patch @@ -0,0 +1,47 @@ +--- util-linux-2.13-pre6/mount/lomount.c.ronly 2006-11-01 14:14:14.000000000 +0100 ++++ util-linux-2.13-pre6/mount/lomount.c 2006-11-01 15:01:52.000000000 +0100 +@@ -444,7 +444,8 @@ + " %1$s -d loop_device # delete\n" + " %1$s -f # find unused\n" + " %1$s -a # list all used\n" +- " %1$s [-e encryption] [-o offset] {-f|loop_device} file # setup\n"), ++ " %1$s -r # read-only loop\n" ++ " %1$s [-e encryption] [-o offset] [-r] {-f|loop_device} file # setup\n"), + progname); + exit(1); + } +@@ -497,11 +498,14 @@ + if ((p = strrchr(progname, '/')) != NULL) + progname = p+1; + +- while ((c = getopt(argc, argv, "ade:E:fo:p:v")) != -1) { ++ while ((c = getopt(argc, argv, "ade:E:fo:p:vr")) != -1) { + switch (c) { + case 'a': + all = 1; + break; ++ case 'r': ++ ro = 1; ++ break; + case 'd': + delete = 1; + break; +--- util-linux-2.13-pre6/mount/losetup.8.ronly 2006-11-01 14:49:14.000000000 +0100 ++++ util-linux-2.13-pre6/mount/losetup.8 2006-11-01 15:06:21.000000000 +0100 +@@ -35,6 +35,7 @@ + .IR offset ] + .RB [ \-p + .IR pfd ] ++.RB [ \-r ] + .in +8 + .RB { \-f | \fIloop_device\fP } + .I file +@@ -87,6 +88,8 @@ + Read the passphrase from file descriptor with number + .I num + instead of from the terminal. ++.IP \fB\-r\fP ++Setup read-only loop device. + .SH RETURN VALUE + .B losetup + returns 0 on success, nonzero on failure. When diff --git a/util-linux-2.13-mkdir_p.patch b/util-linux-2.13-mkdir_p.patch new file mode 100644 index 0000000..eb8ed15 --- /dev/null +++ b/util-linux-2.13-mkdir_p.patch @@ -0,0 +1,97 @@ +--- util-linux-2.13-pre7/po/Makefile.in.in.mkdir_p 2005-10-14 22:22:14.000000000 +0200 ++++ util-linux-2.13-pre7/po/Makefile.in.in 2006-12-17 00:06:29.000000000 +0100 +@@ -1,5 +1,5 @@ + # Makefile for PO directory in any package using GNU gettext. +-# Copyright (C) 1995-1997, 2000-2005 by Ulrich Drepper ++# Copyright (C) 1995-1997, 2000-2006 by Ulrich Drepper + # + # This file can be copied and used freely without restrictions. It can + # be used in projects which are not available under the GNU General Public +@@ -8,7 +8,7 @@ + # Please note that the actual code of GNU gettext is covered by the GNU + # General Public License and is *not* in the public domain. + # +-# Origin: gettext-0.14.4 ++# Origin: gettext-0.16 + + PACKAGE = @PACKAGE@ + VERSION = @VERSION@ +@@ -29,8 +29,18 @@ + + INSTALL = @INSTALL@ + INSTALL_DATA = @INSTALL_DATA@ +-MKINSTALLDIRS = @MKINSTALLDIRS@ +-mkinstalldirs = $(SHELL) $(MKINSTALLDIRS) ++ ++# We use $(mkdir_p). ++# In automake <= 1.9.x, $(mkdir_p) is defined either as "mkdir -p --" or as ++# "$(mkinstalldirs)" or as "$(install_sh) -d". For these automake versions, ++# @install_sh@ does not start with $(SHELL), so we add it. ++# In automake >= 1.10, @mkdir_p@ is derived from ${MKDIR_P}, which is defined ++# either as "/path/to/mkdir -p" or ".../install-sh -c -d". For these automake ++# versions, $(mkinstalldirs) and $(install_sh) are unused. ++mkinstalldirs = $(SHELL) @install_sh@ -d ++install_sh = $(SHELL) @install_sh@ ++MKDIR_P = @MKDIR_P@ ++mkdir_p = @mkdir_p@ + + GMSGFMT = @GMSGFMT@ + MSGFMT = @MSGFMT@ +@@ -158,7 +168,7 @@ + install-exec: + install-data: install-data-@USE_NLS@ + if test "$(PACKAGE)" = "gettext-tools"; then \ +- $(mkinstalldirs) $(DESTDIR)$(gettextsrcdir); \ ++ $(mkdir_p) $(DESTDIR)$(gettextsrcdir); \ + for file in $(DISTFILES.common) Makevars.template; do \ + $(INSTALL_DATA) $(srcdir)/$$file \ + $(DESTDIR)$(gettextsrcdir)/$$file; \ +@@ -171,13 +181,13 @@ + fi + install-data-no: all + install-data-yes: all +- $(mkinstalldirs) $(DESTDIR)$(datadir) ++ $(mkdir_p) $(DESTDIR)$(datadir) + @catalogs='$(CATALOGS)'; \ + for cat in $$catalogs; do \ + cat=`basename $$cat`; \ + lang=`echo $$cat | sed -e 's/\.gmo$$//'`; \ + dir=$(localedir)/$$lang/LC_MESSAGES; \ +- $(mkinstalldirs) $(DESTDIR)$$dir; \ ++ $(mkdir_p) $(DESTDIR)$$dir; \ + if test -r $$cat; then realcat=$$cat; else realcat=$(srcdir)/$$cat; fi; \ + $(INSTALL_DATA) $$realcat $(DESTDIR)$$dir/$(DOMAIN).mo; \ + echo "installing $$realcat as $(DESTDIR)$$dir/$(DOMAIN).mo"; \ +@@ -217,19 +227,19 @@ + installdirs-exec: + installdirs-data: installdirs-data-@USE_NLS@ + if test "$(PACKAGE)" = "gettext-tools"; then \ +- $(mkinstalldirs) $(DESTDIR)$(gettextsrcdir); \ ++ $(mkdir_p) $(DESTDIR)$(gettextsrcdir); \ + else \ + : ; \ + fi + installdirs-data-no: + installdirs-data-yes: +- $(mkinstalldirs) $(DESTDIR)$(datadir) ++ $(mkdir_p) $(DESTDIR)$(datadir) + @catalogs='$(CATALOGS)'; \ + for cat in $$catalogs; do \ + cat=`basename $$cat`; \ + lang=`echo $$cat | sed -e 's/\.gmo$$//'`; \ + dir=$(localedir)/$$lang/LC_MESSAGES; \ +- $(mkinstalldirs) $(DESTDIR)$$dir; \ ++ $(mkdir_p) $(DESTDIR)$$dir; \ + for lc in '' $(EXTRA_LOCALE_CATEGORIES); do \ + if test -n "$$lc"; then \ + if (cd $(DESTDIR)$(localedir)/$$lang && LC_ALL=C ls -l -d $$lc 2>/dev/null) | grep ' -> ' >/dev/null; then \ +@@ -374,8 +384,7 @@ + + Makefile: Makefile.in.in Makevars $(top_builddir)/config.status @POMAKEFILEDEPS@ + cd $(top_builddir) \ +- && CONFIG_FILES=$(subdir)/$@.in CONFIG_HEADERS= \ +- $(SHELL) ./config.status ++ && $(SHELL) ./config.status $(subdir)/$@.in po-directories + + force: + diff --git a/util-linux-2.13-mkswap-mounted.patch b/util-linux-2.13-mkswap-mounted.patch new file mode 100644 index 0000000..cc78b7d --- /dev/null +++ b/util-linux-2.13-mkswap-mounted.patch @@ -0,0 +1,62 @@ +--- util-linux-2.13-pre6/disk-utils/mkswap.c.kzak 2006-10-12 11:33:50.000000000 +0200 ++++ util-linux-2.13-pre6/disk-utils/mkswap.c 2006-10-12 11:36:08.000000000 +0200 +@@ -36,6 +36,7 @@ + #include + #include + #include ++#include + #include /* for _IO */ + #include + #include +@@ -485,6 +486,29 @@ + return (c >= '1' && c <= '9'); + } + ++ ++/* ++ * Check to make certain that our new filesystem won't be created on ++ * an already mounted partition. Code adapted from mke2fs, Copyright ++ * (C) 1994 Theodore Ts'o. Also licensed under GPL. ++ * (C) 2006 Karel Zak -- port to mkswap ++ */ ++static int ++check_mount(void) { ++ FILE * f; ++ struct mntent * mnt; ++ ++ if ((f = setmntent (MOUNTED, "r")) == NULL) ++ return 0; ++ while ((mnt = getmntent (f)) != NULL) ++ if (strcmp (device_name, mnt->mnt_fsname) == 0) ++ break; ++ endmntent (f); ++ if (!mnt) ++ return 0; ++ return 1; ++} ++ + int + main(int argc, char ** argv) { + struct stat statbuf; +@@ -648,8 +672,19 @@ + /* Want a block device. Probably not /dev/hda or /dev/hdb. */ + if (!S_ISBLK(statbuf.st_mode)) + check=0; +- else if (statbuf.st_rdev == 0x0300 || statbuf.st_rdev == 0x0340) +- die(_("Will not try to make swapdevice on '%s'")); ++ else if (statbuf.st_rdev == 0x0300 || statbuf.st_rdev == 0x0340) { ++ fprintf(stderr, ++ _("%s: error: " ++ "will not try to make swapdevice on '%s'\n"), ++ program_name, device_name); ++ exit(1); ++ } else if (check_mount()) { ++ fprintf(stderr, ++ _("%s: error: " ++ "%s is mounted; will not make swapspace.\n"), ++ program_name, device_name); ++ exit(1); ++ } + + #ifdef __sparc__ + if (!force && version == 0) { diff --git a/util-linux-2.13-mkswap-selinux.patch b/util-linux-2.13-mkswap-selinux.patch new file mode 100644 index 0000000..2d89115 --- /dev/null +++ b/util-linux-2.13-mkswap-selinux.patch @@ -0,0 +1,81 @@ +--- util-linux-2.13-pre6/disk-utils/mkswap.c.selinux 2005-08-14 17:34:49.000000000 +0200 ++++ util-linux-2.13-pre6/disk-utils/mkswap.c 2006-03-08 16:35:08.000000000 +0100 +@@ -39,6 +39,12 @@ + #include /* for _IO */ + #include + #include ++#include ++#ifdef HAVE_LIBSELINUX ++#include ++#include ++#endif ++ + #include "swapheader.h" + #include "xstrncpy.h" + #include "nls.h" +@@ -76,6 +82,8 @@ + + #define MAKE_VERSION(p,q,r) (65536*(p) + 256*(q) + (r)) + ++#define SELINUX_SWAPFILE_TYPE "swapfile_t" ++ + static int + linux_version_code(void) { + struct utsname my_utsname; +@@ -718,5 +726,39 @@ + if (fsync(DEV)) + die(_("fsync failed")); + #endif ++ ++#ifdef HAVE_LIBSELINUX ++ if (S_ISREG(statbuf.st_mode) && is_selinux_enabled()) { ++ security_context_t context_string; ++ security_context_t oldcontext; ++ context_t newcontext; ++ ++ if ((fgetfilecon(DEV, &oldcontext) < 0) && ++ (errno != ENODATA)) { ++ fprintf(stderr, _("%s: %s: unable to obtain selinux file label: %s\n"), ++ program_name, device_name, ++ strerror(errno)); ++ exit(1); ++ } ++ if (!(newcontext = context_new(oldcontext))) ++ die(_("unable to create new selinux context")); ++ if (context_type_set(newcontext, SELINUX_SWAPFILE_TYPE)) ++ die(_("couldn't compute selinux context")); ++ ++ context_string = context_str(newcontext); ++ ++ if (strcmp(context_string, oldcontext)!=0) { ++ if (fsetfilecon(DEV, context_string)) { ++ fprintf(stderr, _("%s: unable to relabel %s to %s: %s\n"), ++ program_name, device_name, ++ context_string, ++ strerror(errno)); ++ exit(1); ++ } ++ } ++ context_free(newcontext); ++ freecon(oldcontext); ++ } ++#endif + return 0; + } +--- util-linux-2.13-pre6/disk-utils/Makefile.am.selinux 2005-09-10 19:46:10.000000000 +0200 ++++ util-linux-2.13-pre6/disk-utils/Makefile.am 2006-03-08 16:27:03.000000000 +0100 +@@ -30,6 +30,13 @@ + mkfs_cramfs_LDADD = -lz $(top_srcdir)/lib/libmd5.a + endif + ++mkswap_LDADD = ++ + if HAVE_UUID +-mkswap_LDADD = -luuid ++mkswap_LDADD += -luuid ++endif ++ ++if HAVE_SELINUX ++mkswap_LDADD += -lselinux + endif ++ diff --git a/util-linux-2.13-more-CLOEXEC.patch b/util-linux-2.13-more-CLOEXEC.patch new file mode 100644 index 0000000..fe69e7a --- /dev/null +++ b/util-linux-2.13-more-CLOEXEC.patch @@ -0,0 +1,19 @@ + +When you view a file with the more command and run a shell, the file descriptor +for reading the file is leaked to that process. + +To test, more any file. Then do !/bin/sh. At the prompt do "ls -l /proc/$$/fd" +and you'll see the leaked fd. + +From: Steve Grubb + +--- util-linux-2.13-pre7/text-utils/more.c.cloexec 2006-12-14 14:05:31.000000000 +0100 ++++ util-linux-2.13-pre7/text-utils/more.c 2006-12-14 14:04:57.000000000 +0100 +@@ -478,6 +478,7 @@ + } + if (magic(f, fs)) + return((FILE *)NULL); ++ fcntl(fileno(f), F_SETFD, FD_CLOEXEC ); + c = Getc(f); + *clearfirst = (c == '\f'); + Ungetc (c, f); diff --git a/util-linux-2.13-moretc.patch b/util-linux-2.13-moretc.patch new file mode 100644 index 0000000..d30b625 --- /dev/null +++ b/util-linux-2.13-moretc.patch @@ -0,0 +1,106 @@ +--- util-linux-2.13-pre2/text-utils/Makefile.am.moretc 2005-08-17 10:40:44.000000000 +0200 ++++ util-linux-2.13-pre2/text-utils/Makefile.am 2005-08-17 10:41:52.000000000 +0200 +@@ -7,16 +7,13 @@ + man_MANS = col.1 colcrt.1 colrm.1 column.1 hexdump.1 rev.1 line.1 tailf.1 + + if HAVE_NCURSES +-bin_PROGRAMS = more + usrbinexec_PROGRAMS += ul pg +-more_LDADD = -lncurses + pg_LDADD = -lncurses + ul_LDADD = -lncurses +-man_MANS += ul.1 more.1 pg.1 +-else ++man_MANS += ul.1 pg.1 ++endif + if HAVE_TERMCAP + bin_PROGRAMS = more + more_LDADD = -ltermcap + man_MANS += more.1 + endif +-endif +--- util-linux-2.13-pre2/text-utils/more.c.moretc 2005-07-28 23:49:31.000000000 +0200 ++++ util-linux-2.13-pre2/text-utils/more.c 2005-08-17 10:40:23.000000000 +0200 +@@ -59,6 +59,8 @@ + #include "nls.h" + #include "widechar.h" + ++#include "../config.h" ++ + #define _REGEX_RE_COMP + #include + #undef _REGEX_RE_COMP +@@ -165,19 +167,60 @@ + } context, screen_start; + extern char PC; /* pad character */ + ++#ifdef HAVE_LIBTERMCAP ++ ++#include ++ ++char termbuffer[4096]; ++char tcbuffer[4096]; ++char *strbuf = termbuffer; ++ ++static void ++my_putstring(char *s) { ++ tputs (s, 1, putchar); ++} ++ ++static void ++my_setupterm(const char *term, int fildes, int *errret) { ++ *errret = tgetent(tcbuffer, term); ++} ++ ++static int ++my_tgetnum(char *s, char *ss) { ++ return tgetnum(s); ++} ++ ++static int ++my_tgetflag(char *s, char *ss) { ++ return tgetflag(s); ++} ++ ++static char * ++my_tgetstr(char *s, char *ss) { ++ return tgetstr(s, &strbuf); ++} ++ ++static char * ++my_tgoto(const char *cap, int col, int row) { ++ return tgoto(cap, col, row); ++} ++ ++#else /* !HAVE_TERMCAP */ ++ + #ifdef HAVE_NCURSES_H +-#include ++# include ++# include + #elif defined(HAVE_NCURSES_NCURSES_H) +-#include ++# include ++# include + #endif + +-#include /* include after */ +- + static void + my_putstring(char *s) { + tputs (s, 1, putchar); /* putp(s); */ + } + ++ + static void + my_setupterm(const char *term, int fildes, int *errret) { + setupterm(term, fildes, errret); +@@ -203,6 +246,8 @@ + return tparm(cap, col, row); + } + ++#endif /* !HAVE_TERMCAP */ ++ + static void + idummy(int *kk) {} + diff --git a/util-linux-2.13-mount-comment.patch b/util-linux-2.13-mount-comment.patch new file mode 100644 index 0000000..04ef9ad --- /dev/null +++ b/util-linux-2.13-mount-comment.patch @@ -0,0 +1,14 @@ + + The original MS_COMMENT is in conflict with MS_UNBINDABLE. + +--- util-linux-2.13-pre6/mount/mount.c.comment 2006-11-01 13:31:45.000000000 +0100 ++++ util-linux-2.13-pre6/mount/mount.c 2006-11-01 13:31:38.000000000 +0100 +@@ -106,7 +106,7 @@ + #define MS_OWNER 0x10000000 + #define MS_GROUP 0x08000000 + #define MS_PAMCONSOLE 0x04000000 +-#define MS_COMMENT 0x00020000 ++#define MS_COMMENT 0x02000000 + #define MS_LOOP 0x00010000 + + diff --git a/util-linux-2.13-mount-context.patch b/util-linux-2.13-mount-context.patch new file mode 100644 index 0000000..09f9d79 --- /dev/null +++ b/util-linux-2.13-mount-context.patch @@ -0,0 +1,218 @@ +--- util-linux-2.13-pre6/mount/Makefile.am.context 2005-09-12 22:41:11.000000000 +0200 ++++ util-linux-2.13-pre6/mount/Makefile.am 2006-11-01 11:31:46.000000000 +0100 +@@ -37,6 +37,9 @@ + man_MANS += pivot_root.8 + endif + ++if HAVE_SELINUX ++mount_LDADD += -lselinux ++endif + + swapon.c: swapargs.h + +--- util-linux-2.13-pre6/mount/mount.c.context 2006-11-01 11:31:46.000000000 +0100 ++++ util-linux-2.13-pre6/mount/mount.c 2006-11-01 11:36:17.000000000 +0100 +@@ -21,6 +21,11 @@ + #include + #include + ++#ifdef HAVE_LIBSELINUX ++#include ++#include ++#endif ++ + #include "mount_blkid.h" + #include "mount_constants.h" + #include "sundries.h" +@@ -255,13 +260,79 @@ + free((void *) s); + } + ++#ifdef HAVE_LIBSELINUX ++/* strip quotes from a "string" ++ * Warning: This function modify the "str" argument. ++ */ ++static char * ++strip_quotes(char *str) ++{ ++ char *end = NULL; ++ ++ if (*str != '"') ++ return str; ++ ++ end = strrchr(str, '"'); ++ if (end == NULL || end == str) ++ die (EX_USAGE, _("mount: improperly quoted option string '%s'"), str); ++ ++ *end = '\0'; ++ return str+1; ++} ++ ++/* translates SELinux context from human to raw format and ++ * appends it to the mount extra options. ++ * ++ * returns -1 on error and 0 on success ++ */ ++static int ++append_context(const char *optname, char *optdata, char *extra_opts, int *len) ++{ ++ security_context_t raw = NULL; ++ char *data = NULL; ++ char *buf = NULL; ++ int bufsz; ++ ++ if (!is_selinux_enabled()) ++ /* ignore the option if we running without selinux */ ++ return 0; ++ ++ if (optdata==NULL || *optdata=='\0' || optname==NULL) ++ return -1; ++ ++ /* TODO: use strip_quotes() for all mount options? */ ++ data = *optdata =='"' ? strip_quotes(optdata) : optdata; ++ ++ if (selinux_trans_to_raw_context( ++ (security_context_t) data, &raw)==-1 || ++ raw==NULL) ++ return -1; ++ ++ if (verbose) ++ printf(_("mount: translated %s '%s' to '%s'\n"), ++ optname, data, (char *) raw); ++ ++ bufsz = strlen(optname) + strlen(raw) + 4; /* 4 is \0, '=' and 2x '"' */ ++ buf = xmalloc(bufsz); ++ ++ snprintf(buf, bufsz, "%s=\"%s\"", optname, (char *) raw); ++ freecon(raw); ++ ++ if ((*len -= bufsz-1) > 0) ++ strcat(extra_opts, buf); ++ ++ my_free(buf); ++ return 0; ++} ++#endif ++ + /* + * Look for OPT in opt_map table and return mask value. + * If OPT isn't found, tack it onto extra_opts (which is non-NULL). + * For the options uid= and gid= replace user or group name by its value. + */ + static inline void +-parse_opt(const char *opt, int *mask, char *extra_opts, int len) { ++parse_opt(char *opt, int *mask, char *extra_opts, int len) { + const struct opt_map *om; + + for (om = opt_map; om->opt != NULL; om++) +@@ -313,7 +384,20 @@ + return; + } + } +- ++#ifdef HAVE_LIBSELINUX ++ if (strncmp(opt, "context=", 8)==0 && *(opt+8)) { ++ if (append_context("context", opt+8, extra_opts, &len)==0) ++ return; ++ } ++ if (strncmp(opt, "fscontext=", 10)==0 && *(opt+10)) { ++ if (append_context("fscontext", opt+10, extra_opts, &len)==0) ++ return; ++ } ++ if (strncmp(opt, "defcontext=", 11)==0 && *(opt+11)) { ++ if (append_context("defcontext", opt+11, extra_opts, &len)==0) ++ return; ++ } ++#endif + if ((len -= strlen(opt)) > 0) + strcat(extra_opts, opt); + } +@@ -329,16 +413,29 @@ + + if (options != NULL) { + char *opts = xstrdup(options); +- char *opt; +- int len = strlen(opts) + 20; ++ int len = strlen(opts) + 256; ++ int open_quote = 0; ++ char *opt, *p; + + *extra_opts = xmalloc(len); + **extra_opts = '\0'; + +- for (opt = strtok(opts, ","); opt; opt = strtok(NULL, ",")) +- if (!parse_string_opt(opt)) +- parse_opt(opt, flags, *extra_opts, len); +- ++ for (p=opts, opt=NULL; p && *p; p++) { ++ if (!opt) ++ opt = p; /* begin of the option item */ ++ if (*p == '"') ++ open_quote ^= 1; /* reverse the status */ ++ if (open_quote) ++ continue; /* still in quoted block */ ++ if (*p == ',') ++ *p = '\0'; /* terminate the option item */ ++ /* end of option item or last item */ ++ if (*p == '\0' || *(p+1) == '\0') { ++ if (!parse_string_opt(opt)) ++ parse_opt(opt, flags, *extra_opts, len); ++ opt = NULL; ++ } ++ } + free(opts); + } + +--- util-linux-2.13-pre6/mount/mount.8.context 2006-11-01 11:31:46.000000000 +0100 ++++ util-linux-2.13-pre6/mount/mount.8 2006-11-01 11:31:46.000000000 +0100 +@@ -660,6 +660,50 @@ + .BR noexec ", " nosuid ", and " nodev + (unless overridden by subsequent options, as in the option line + .BR users,exec,dev,suid ). ++.TP ++\fBcontext=\fP\fIcontext\fP, \fBfscontext=\fP\fIcontext\fP and \fBdefcontext=\fP\fIcontext\fP ++The ++.BR context= ++option is useful when mounting filesystems that do not support ++extended attributes, such as a floppy or hard disk formatted with VFAT, or ++systems that are not normally running under SELinux, such as an ext3 formatted ++disk from a non-SELinux workstation. You can also use ++.BR context= ++on filesystems you do not trust, such as a floppy. It also helps in compatibility with ++xattr-supporting filesystems on earlier 2.4. kernel versions. Even where ++xattrs are supported, you can save time not having to label every file by ++assigning the entire disk one security context. ++ ++A commonly used option for removable media is ++.BR context=system_u:object_r:removable_t . ++ ++Two other options are ++.BR fscontext= ++and ++.BR defcontext= , ++both of which are mutually exclusive of the context option. This means you ++can use fscontext and defcontext with each other, but neither can be used with ++context. ++ ++The ++.BR fscontext= ++option works for all filesystems, regardless of their xattr ++support. The fscontext option sets the overarching filesystem label to a ++specific security context. This filesystem label is separate from the ++individual labels on the files. It represents the entire filesystem for ++certain kinds of permission checks, such as during mount or file creation. ++Individual file labels are still obtained from the xattrs on the files ++themselves. The context option actually sets the aggregate context that ++fscontext provides, in addition to supplying the same label for individual ++files. ++ ++You can set the default security context for unlabeled files using ++.BR defcontext= ++option. This overrides the value set for unlabeled files in the policy and requires a ++file system that supports xattr labeling. ++ ++For more details see ++.BR selinux (8) + .RE + .TP + .B \-\-bind diff --git a/util-linux-2.13-mount-fake.patch b/util-linux-2.13-mount-fake.patch new file mode 100644 index 0000000..627b1e2 --- /dev/null +++ b/util-linux-2.13-mount-fake.patch @@ -0,0 +1,11 @@ +--- util-linux-2.13-pre7/mount/mount.c.kzak 2007-02-09 12:54:20.000000000 +0100 ++++ util-linux-2.13-pre7/mount/mount.c 2007-02-09 12:54:14.000000000 +0100 +@@ -602,6 +602,8 @@ + mountargs[i++] = node; + if (sloppy && (strcmp(type, "nfs")==0 || strcmp(type, "nfs4")==0)) + mountargs[i++] = "-s"; ++ if (fake) ++ mountargs[i++] = "-f"; + if (nomtab) + mountargs[i++] = "-n"; + if (verbose) diff --git a/util-linux-2.13-mount-man-bugs.patch b/util-linux-2.13-mount-man-bugs.patch new file mode 100644 index 0000000..59f8c8f --- /dev/null +++ b/util-linux-2.13-mount-man-bugs.patch @@ -0,0 +1,26 @@ +--- util-linux-2.13-pre7/mount/mount.8.bugs 2006-03-30 21:36:56.000000000 +0200 ++++ util-linux-2.13-pre7/mount/mount.8 2006-03-30 21:37:35.000000000 +0200 +@@ -2047,6 +2047,23 @@ + .IR /proc/partitions . + In particular, it may well fail if the kernel was compiled with devfs + but devfs is not mounted. ++.PP ++It is possible that files ++.IR /etc/mtab ++and ++.IR /proc/mounts ++don't match. The first file is based only on the mount command options, but the ++content of the second file also depends on the kernel and others settings (e.g. ++remote NFS server. In particular case the mount command may reports unreliable ++information about a NFS mount point and the /proc/mounts file usually contains ++more reliable information.) ++.PP ++Checking files on NFS filesystem referenced by file descriptors (i.e. the ++.BR fcntl ++and ++.BR ioctl ++families of functions) may lead to inconsistent result due to the lack of ++consistency check in kernel even if noac is used. + .SH HISTORY + A + .B mount diff --git a/util-linux-2.13-mount-man-nfs.patch b/util-linux-2.13-mount-man-nfs.patch new file mode 100644 index 0000000..4c24f6c --- /dev/null +++ b/util-linux-2.13-mount-man-nfs.patch @@ -0,0 +1,84 @@ +--- util-linux-2.12p/mount/mount.8.nfsdoc 2005-05-10 11:46:25.119592000 -0400 ++++ util-linux-2.12p/mount/mount.8 2005-10-07 09:46:13.374277000 -0400 +@@ -1339,29 +1339,17 @@ For details, see + + Especially useful options include + .TP +-.B rsize=8192,wsize=8192 +-This will make your nfs connection faster than with the default +-buffer size of 4096. (NFSv2 does not work with larger values of +-.B rsize +-and +-.BR wsize .) +-.TP +-.B hard +-The program accessing a file on a NFS mounted file system will hang +-when the server crashes. The process cannot be interrupted or +-killed unless you also specify +-.BR intr . +-When the NFS server is back online the program will continue undisturbed +-from where it was. This is probably what you want. +-.TP +-.B soft +-This option allows the kernel to time out if the nfs server is not +-responding for some time. The time can be +-specified with +-.BR timeo=time . +-This option might be useful if your nfs server sometimes doesn't respond +-or will be rebooted while some process tries to get a file from the server. +-Usually it just causes lots of trouble. ++.B rsize=32768,wsize=32768 ++This causes the NFS client to try to negotiate a buffer size ++up to the size specified. ++A large buffer size does improve performance, but both the ++server and client have to support it. ++In the case where one of these does not support the size specified, ++the size negotiated will be the largest that both support. ++.TP ++.B intr ++This will allow NFS operations (on hard mounts) to be ++interrupted while waiting for a response from the server. + .TP + .B nolock + Do not use locking. Do not start lockd. +@@ -1408,30 +1396,16 @@ For details, see + Especially useful options include + .TP + .B rsize=32768,wsize=32768 +-This will make your NFS connection faster than with the default +-buffer size of 4096. +-.TP +-.B hard +-The program accessing a file on a NFS mounted file system will hang +-when the server crashes. The process cannot be interrupted or +-killed unless you also specify +-.BR intr . +-When the NFS server is back online the program will continue undisturbed +-from where it was. This is probably what you want. +-.TP +-.B soft +-This option allows the kernel to time out if the NFS server is not +-responding for some time. The time can be +-specified with +-.BR timeo=time . +-This timeout value is expressed in tenths of a second. +-The +-.BR soft +-option might be useful if your NFS server sometimes doesn't respond +-or will be rebooted while some process tries to get a file from the server. +-Avoid using this option with +-.BR proto=udp +-or with a short timeout. ++This causes the NFS4 client to try to negotiate a buffer size ++up to the size specified. ++A large buffer size does improve performance, but both the ++server and client have to support it. ++In the case where one of these does not support the size specified, ++the size negotiated will be the largest that both support. ++.TP ++.B intr ++This will allow NFS4 operations (on hard mounts) to be ++interrupted while waiting for a response from the server. + + .SH "Mount options for ntfs" + .TP diff --git a/util-linux-2.13-mount-man-nfs4.patch b/util-linux-2.13-mount-man-nfs4.patch new file mode 100644 index 0000000..07d4811 --- /dev/null +++ b/util-linux-2.13-mount-man-nfs4.patch @@ -0,0 +1,106 @@ +--- util-linux-2.13-pre7/mount/mount.8.man-nfs4 2006-03-06 00:04:37.000000000 +0100 ++++ util-linux-2.13-pre7/mount/mount.8 2006-12-14 00:30:33.000000000 +0100 +@@ -385,6 +385,7 @@ + .IR msdos , + .IR ncpfs , + .IR nfs , ++.IR nfs4 , + .IR ntfs , + .IR proc , + .IR qnx4 , +@@ -422,7 +423,7 @@ + program has to do is issue a simple + .IR mount (2) + system call, and no detailed knowledge of the filesystem type is required. +-For a few types however (like nfs, cifs, smbfs, ncpfs) ad hoc code is ++For a few types however (like nfs, nfs4, cifs, smbfs, ncpfs) ad hoc code is + necessary. The nfs ad hoc code is built in, but cifs, smbfs, and ncpfs + have a separate mount program. In order to make it possible to + treat all types in a uniform way, mount will execute the program +@@ -450,9 +451,10 @@ + All of the filesystem types listed there will be tried, + except for those that are labeled "nodev" (e.g., + .IR devpts , +-.I proc ++.IR proc , ++.IR nfs , + and +-.IR nfs ). ++.IR nfs4 ). + If + .I /etc/filesystems + ends in a line with a single * only, mount will read +@@ -1368,6 +1370,73 @@ + .B nolock + Do not use locking. Do not start lockd. + ++.SH "Mount options for nfs4" ++Instead of a textual option string, parsed by the kernel, the ++.I nfs4 ++file system expects a binary argument of type ++.IR "struct nfs4_mount_data" . ++The program ++.B mount ++itself parses the following options of the form `tag=value', ++and puts them in the structure mentioned: ++.BI rsize= n, ++.BI wsize= n, ++.BI timeo= n, ++.BI retrans= n, ++.BI acregmin= n, ++.BI acregmax= n, ++.BI acdirmin= n, ++.BI acdirmax= n, ++.BI actimeo= n, ++.BI retry= n, ++.BI port= n, ++.BI proto= n, ++.BI clientaddr= n, ++.BI sec= n. ++The option ++.BI addr= n ++is accepted but ignored. ++Also the following Boolean options, possibly preceded by ++.B no ++are recognized: ++.BR bg , ++.BR fg , ++.BR soft , ++.BR hard , ++.BR intr , ++.BR cto , ++.BR ac , ++For details, see ++.BR nfs (5). ++ ++Especially useful options include ++.TP ++.B rsize=32768,wsize=32768 ++This will make your NFS connection faster than with the default ++buffer size of 4096. ++.TP ++.B hard ++The program accessing a file on a NFS mounted file system will hang ++when the server crashes. The process cannot be interrupted or ++killed unless you also specify ++.BR intr . ++When the NFS server is back online the program will continue undisturbed ++from where it was. This is probably what you want. ++.TP ++.B soft ++This option allows the kernel to time out if the NFS server is not ++responding for some time. The time can be ++specified with ++.BR timeo=time . ++This timeout value is expressed in tenths of a second. ++The ++.BR soft ++option might be useful if your NFS server sometimes doesn't respond ++or will be rebooted while some process tries to get a file from the server. ++Avoid using this option with ++.BR proto=udp ++or with a short timeout. ++ + .SH "Mount options for ntfs" + .TP + .BI iocharset= name diff --git a/util-linux-2.13-mount-move.patch b/util-linux-2.13-mount-move.patch new file mode 100644 index 0000000..c7d1c77 --- /dev/null +++ b/util-linux-2.13-mount-move.patch @@ -0,0 +1,28 @@ +--- util-linux-2.13-pre6/mount/mount.c.move 2006-06-12 09:19:43.000000000 +0200 ++++ util-linux-2.13-pre6/mount/mount.c 2006-06-12 09:45:05.000000000 +0200 +@@ -768,6 +768,25 @@ + else { + mntFILE *mfp; + ++ /* when moving a mount point, we have to make sure the mtab ++ * gets updated properly. We get info about the old mount ++ * point, copy it to the new mount point, and then delete ++ * the old mount point. */ ++ if (flags & MS_MOVE) { ++ const char *olddir = mnt.mnt_fsname; ++ struct mntentchn *oldmc = oldmc = getmntfile(olddir); ++ if (oldmc != NULL) { ++ mnt.mnt_fsname = strdup(oldmc->m.mnt_fsname); ++ mnt.mnt_type = oldmc->m.mnt_type; ++ mnt.mnt_opts = oldmc->m.mnt_opts; ++ mnt.mnt_freq = oldmc->m.mnt_freq; ++ mnt.mnt_passno = oldmc->m.mnt_passno; ++ } ++ update_mtab(olddir, NULL); ++ if (oldmc != NULL) ++ my_free(olddir); ++ } ++ + lock_mtab(); + mfp = my_setmntent(MOUNTED, "a+"); + if (mfp == NULL || mfp->mntent_fp == NULL) { diff --git a/util-linux-2.13-mount-nonfs.patch b/util-linux-2.13-mount-nonfs.patch new file mode 100644 index 0000000..e2ccb2b --- /dev/null +++ b/util-linux-2.13-mount-nonfs.patch @@ -0,0 +1,196 @@ +--- util-linux-2.13-pre6/mount/Makefile.am.nonfs 2006-09-20 12:45:50.000000000 +0200 ++++ util-linux-2.13-pre6/mount/Makefile.am 2006-09-20 12:46:51.000000000 +0200 +@@ -1,15 +1,12 @@ + include $(top_srcdir)/config/include-Makefile.am + +-AM_CPPFLAGS += -DHAVE_NFS +- + bin_PROGRAMS = mount umount + sbin_PROGRAMS = losetup swapon +-man_MANS = fstab.5 nfs.5 mount.8 swapoff.8 swapon.8 umount.8 losetup.8 ++man_MANS = fstab.5 mount.8 swapoff.8 swapon.8 umount.8 losetup.8 + + mount_SOURCES = mount.c fstab.c sundries.c xmalloc.c realpath.c mntent.c \ + get_label_uuid.c mount_by_label.c mount_blkid.c mount_guess_fstype.c \ + getusername.c \ +- nfsmount.c nfsmount_xdr.c nfsmount_clnt.c \ + lomount.c + + mount_LDADD = $(top_srcdir)/lib/libenv.a $(top_srcdir)/lib/libsetproctitle.a +--- util-linux-2.13-pre6/mount/sundries.c.nonfs 2006-09-20 12:53:09.000000000 +0200 ++++ util-linux-2.13-pre6/mount/sundries.c 2006-09-20 12:53:13.000000000 +0200 +@@ -15,7 +15,6 @@ + #include "fstab.h" + #include "sundries.h" + #include "realpath.h" +-#include "nfsmount.h" + #include "nls.h" + + char * +--- util-linux-2.13-pre6/mount/umount.c.nonfs 2006-09-20 12:51:11.000000000 +0200 ++++ util-linux-2.13-pre6/mount/umount.c 2006-09-20 12:52:26.000000000 +0200 +@@ -20,15 +20,6 @@ + #include "env.h" + #include "nls.h" + +-#include +-#include +-#include +-#include +-#include +-#include +-#include "nfsmount.h" +-#include +- + #if defined(MNT_FORCE) && !defined(__sparc__) && !defined(__arm__) + /* Interesting ... it seems libc knows about MNT_FORCE and presumably + about umount2 as well -- need not do anything */ +@@ -144,98 +135,6 @@ + return 0; + } + +-static int xdr_dir(XDR *xdrsp, char *dirp) +-{ +- return (xdr_string(xdrsp, &dirp, MNTPATHLEN)); +-} +- +-static int +-nfs_umount_rpc_call(const char *spec, const char *opts) +-{ +- register CLIENT *clp; +- struct sockaddr_in saddr; +- struct timeval pertry, try; +- enum clnt_stat clnt_stat; +- int port = 0; +- int so = RPC_ANYSOCK; +- struct hostent *hostp; +- char *hostname; +- char *dirname; +- char *p; +- +- if (spec == NULL || (p = strchr(spec,':')) == NULL) +- return 0; +- hostname = xstrndup(spec, p-spec); +- dirname = xstrdup(p+1); +-#ifdef DEBUG +- printf(_("host: %s, directory: %s\n"), hostname, dirname); +-#endif +- +- if (opts && (p = strstr(opts, "addr="))) { +- char *q; +- +- free(hostname); +- p += 5; +- q = p; +- while (*q && *q != ',') q++; +- hostname = xstrndup(p,q-p); +- } +- +- if (opts && (p = strstr(opts, "mountport=")) && isdigit(*(p+10))) +- port = atoi(p+10); +- +- if (hostname[0] >= '0' && hostname[0] <= '9') +- saddr.sin_addr.s_addr = inet_addr(hostname); +- else { +- if ((hostp = gethostbyname(hostname)) == NULL) { +- fprintf(stderr, _("umount: can't get address for %s\n"), +- hostname); +- return 1; +- } +- if (hostp->h_length > sizeof(struct in_addr)) { +- fprintf(stderr, _("umount: got bad hostp->h_length\n")); +- hostp->h_length = sizeof(struct in_addr); +- } +- memcpy(&saddr.sin_addr, hostp->h_addr, hostp->h_length); +- } +- +- saddr.sin_family = AF_INET; +- saddr.sin_port = htons(port); +- pertry.tv_sec = 3; +- pertry.tv_usec = 0; +- if (opts && (p = strstr(opts, "tcp"))) { +- /* possibly: make sure option is not "notcp" +- possibly: try udp if tcp fails */ +- if ((clp = clnttcp_create(&saddr, MOUNTPROG, MOUNTVERS, +- &so, 0, 0)) == NULL) { +- clnt_pcreateerror("Cannot MOUNTPROG RPC (tcp)"); +- return 1; +- } +- } else { +- if ((clp = clntudp_create(&saddr, MOUNTPROG, MOUNTVERS, +- pertry, &so)) == NULL) { +- clnt_pcreateerror("Cannot MOUNTPROG RPC"); +- return 1; +- } +- } +- clp->cl_auth = authunix_create_default(); +- try.tv_sec = 20; +- try.tv_usec = 0; +- clnt_stat = clnt_call(clp, MOUNTPROC_UMNT, +- (xdrproc_t) xdr_dir, dirname, +- (xdrproc_t) xdr_void, (caddr_t) 0, +- try); +- +- if (clnt_stat != RPC_SUCCESS) { +- clnt_perror(clp, "Bad UMNT RPC"); +- return 1; +- } +- auth_destroy(clp->cl_auth); +- clnt_destroy(clp); +- +- return 0; +-} +- + /* complain about a failed umount */ + static void complain(int err, const char *dev) { + switch (err) { +@@ -289,11 +188,6 @@ + if (check_special_umountprog(spec, node, type, &status)) + return status; + +- /* Ignore any RPC errors, so that you can umount the filesystem +- if the server is down. */ +- if (strcasecmp(type, "nfs") == 0) +- nfs_umount_rpc_call(spec, opts); +- + umnt_err = umnt_err2 = 0; + if (lazy) { + res = umount2 (node, MNT_DETACH); +--- util-linux-2.13-pre6/mount/mount.c.nonfs 2006-09-20 12:48:48.000000000 +0200 ++++ util-linux-2.13-pre6/mount/mount.c 2006-09-20 12:48:33.000000000 +0200 +@@ -966,19 +966,6 @@ + goto out; + } + +- /* +- * Also nfs requires a separate program, but it is built in. +- */ +- if (!fake && types && streq (types, "nfs")) { +-retry_nfs: +- mnt_err = nfsmount (spec, node, &flags, &extra_opts, &mount_opts, +- &nfs_mount_version, bg); +- if (mnt_err) { +- res = mnt_err; +- goto out; +- } +- } +- + block_signals (SIG_BLOCK); + + if (!fake) { +@@ -1018,15 +1005,6 @@ + + block_signals (SIG_UNBLOCK); + +- if (mnt_err && types && streq (types, "nfs")) { +- if (nfs_mount_version == 4 && mnt_err != EBUSY && mnt_err != ENOENT) { +- if (verbose) +- printf(_("mount: failed with nfs mount version 4, trying 3..\n")); +- nfs_mount_version = 3; +- goto retry_nfs; +- } +- } +- + /* Mount failed, complain, but don't die. */ + + if (types == 0) { diff --git a/util-linux-2.13-mount-sloppy.patch b/util-linux-2.13-mount-sloppy.patch new file mode 100644 index 0000000..43b985c --- /dev/null +++ b/util-linux-2.13-mount-sloppy.patch @@ -0,0 +1,20 @@ +--- util-linux-2.13-pre6/mount/mount.c.sloppy 2006-09-15 08:39:53.000000000 +0200 ++++ util-linux-2.13-pre6/mount/mount.c 2006-09-15 08:43:24.000000000 +0200 +@@ -554,7 +554,7 @@ + if (stat(mountprog, &statbuf) == 0) { + res = fork(); + if (res == 0) { +- char *oo, *mountargs[10]; ++ char *oo, *mountargs[11]; + int i = 0; + + setuid(getuid()); +@@ -563,6 +563,8 @@ + mountargs[i++] = mountprog; + mountargs[i++] = spec; + mountargs[i++] = node; ++ if (sloppy && (strcmp(type, "nfs")==0 || strcmp(type, "nfs4")==0)) ++ mountargs[i++] = "-s"; + if (nomtab) + mountargs[i++] = "-n"; + if (verbose) diff --git a/util-linux-2.13-mount-subtree.patch b/util-linux-2.13-mount-subtree.patch new file mode 100644 index 0000000..b16ae99 --- /dev/null +++ b/util-linux-2.13-mount-subtree.patch @@ -0,0 +1,187 @@ +--- util-linux-2.13-pre6/mount/mount.8.subtree 2006-06-12 09:18:26.000000000 +0200 ++++ util-linux-2.13-pre6/mount/mount.8 2006-06-12 09:19:43.000000000 +0200 +@@ -131,6 +131,41 @@ + .B "mount --move olddir newdir" + .RE + ++Since Linux 2.6.15 it is possible to mark a mount and its submounts as shared, ++private, slave or unbindable. A shared mount provides ability to create mirrors ++of that mount such that mounts and umounts within any of the mirrors propagate ++to the other mirror. A slave mount receives propagation from its master, but ++any not vice-versa. A private mount carries no propagation abilities. A ++unbindable mount is a private mount which cannot cloned through a bind ++operation. Detailed semantics is documented in Documentation/sharedsubtree.txt ++file in the kernel source tree. ++.RS ++.br ++.B "mount --make-shared mountpoint" ++.br ++.B "mount --make-slave mountpoint" ++.br ++.B "mount --make-private mountpoint" ++.br ++.B "mount --make-unbindable mountpoint" ++.br ++.RE ++ ++The following commands allows one to recursively change the type of all the ++mounts under a given mountpoint. ++.RS ++.br ++.B "mount --make-rshared mountpoint" ++.br ++.B "mount --make-rslave mountpoint" ++.br ++.B "mount --make-rprivate mountpoint" ++.br ++.B ++"mount --make-runbindable mountpoint" ++.br ++.RE ++ + The + .I proc + file system is not associated with a special device, and when +--- util-linux-2.13-pre6/mount/mount_constants.h.subtree 2002-11-01 01:24:36.000000000 +0100 ++++ util-linux-2.13-pre6/mount/mount_constants.h 2006-06-12 09:19:43.000000000 +0200 +@@ -57,6 +57,18 @@ + #ifndef MS_VERBOSE + #define MS_VERBOSE 0x8000 /* 32768 */ + #endif ++#ifndef MS_UNBINDABLE ++#define MS_UNBINDABLE (1<<17) /* 131072 unbindable*/ ++#endif ++#ifndef MS_PRIVATE ++#define MS_PRIVATE (1<<18) /* 262144 Private*/ ++#endif ++#ifndef MS_SLAVE ++#define MS_SLAVE (1<<19) /* 524288 Slave*/ ++#endif ++#ifndef MS_SHARED ++#define MS_SHARED (1<<20) /* 1048576 Shared*/ ++#endif + /* + * Magic mount flag number. Had to be or-ed to the flag values. + */ +--- util-linux-2.13-pre6/mount/mount.c.subtree 2006-06-12 09:18:26.000000000 +0200 ++++ util-linux-2.13-pre6/mount/mount.c 2006-06-12 09:19:43.000000000 +0200 +@@ -74,7 +74,9 @@ + /* Add volumelabel in a listing of mounted devices (-l). */ + static int list_with_volumelabel = 0; + +-/* Nonzero for mount {--bind|--replace|--before|--after|--over|--move} */ ++/* Nonzero for mount {--bind|--replace|--before|--after|--over|--move| ++ * make-shared|make-private|make-unbindable|make-slave} ++ */ + static int mounttype = 0; + + /* True if ruid != euid. */ +@@ -109,6 +111,8 @@ + /* Options that we keep from appearing in the options field in the mtab. */ + #define MS_NOMTAB (MS_REMOUNT|MS_NOAUTO|MS_USERS|MS_USER|MS_PAMCONSOLE) + ++#define MS_PROPAGATION (MS_SHARED|MS_SLAVE|MS_UNBINDABLE|MS_PRIVATE) ++ + /* Options that we make ordinary users have by default. */ + #define MS_SECURE (MS_NOEXEC|MS_NOSUID|MS_NODEV) + +@@ -346,6 +350,9 @@ + *flags |= MS_RDONLY; + if (readwrite) + *flags &= ~MS_RDONLY; ++ ++ if (mounttype & MS_PROPAGATION) ++ *flags &= ~MS_BIND; + *flags |= mounttype; + } + +@@ -916,13 +923,15 @@ + if (loop) + opt_loopdev = loopdev; + +- update_mtab_entry(loop ? loopfile : spec, ++ if (!(mounttype & MS_PROPAGATION)) { ++ update_mtab_entry(loop ? loopfile : spec, + node, + types ? types : "unknown", + fix_opts_string (flags & ~MS_NOMTAB, extra_opts, user), + flags, + freq, + pass); ++ } + + block_signals (SIG_UNBLOCK); + res = 0; +@@ -1461,6 +1470,14 @@ + { "move", 0, 0, 133 }, + { "guess-fstype", 1, 0, 134 }, + { "rbind", 0, 0, 135 }, ++ { "make-shared", 0, 0, 136 }, ++ { "make-slave", 0, 0, 137 }, ++ { "make-private", 0, 0, 138 }, ++ { "make-unbindable", 0, 0, 139 }, ++ { "make-rshared", 0, 0, 140 }, ++ { "make-rslave", 0, 0, 141 }, ++ { "make-rprivate", 0, 0, 142 }, ++ { "make-runbindable", 0, 0, 143 }, + { "internal-only", 0, 0, 'i' }, + { NULL, 0, 0, 0 } + }; +@@ -1487,6 +1504,17 @@ + " mount --bind olddir newdir\n" + "or move a subtree:\n" + " mount --move olddir newdir\n" ++ "One can change the type of mount containing the directory dir:\n" ++ " mount --make-shared dir\n" ++ " mount --make-slave dir\n" ++ " mount --make-private dir\n" ++ " mount --make-unbindable dir\n" ++ "One can change the type of all the mounts in a mount subtree\n" ++ "containing the directory dir:\n" ++ " mount --make-rshared dir\n" ++ " mount --make-rslave dir\n" ++ " mount --make-rprivate dir\n" ++ " mount --make-runbindable dir\n" + "A device can be given by name, say /dev/hda1 or /dev/cdrom,\n" + "or by label, using -L label or by uuid, using -U uuid .\n" + "Other options: [-nfFrsvw] [-o options] [-p passwdfd].\n" +@@ -1638,6 +1666,39 @@ + case 135: + mounttype = (MS_BIND | MS_REC); + break; ++ ++ case 136: ++ mounttype = MS_SHARED; ++ break; ++ ++ case 137: ++ mounttype = MS_SLAVE; ++ break; ++ ++ case 138: ++ mounttype = MS_PRIVATE; ++ break; ++ ++ case 139: ++ mounttype = MS_UNBINDABLE; ++ break; ++ ++ case 140: ++ mounttype = (MS_SHARED | MS_REC); ++ break; ++ ++ case 141: ++ mounttype = (MS_SLAVE | MS_REC); ++ break; ++ ++ case 142: ++ mounttype = (MS_PRIVATE | MS_REC); ++ break; ++ ++ case 143: ++ mounttype = (MS_UNBINDABLE | MS_REC); ++ break; ++ + case '?': + default: + usage (stderr, EX_USAGE); diff --git a/util-linux-2.13-mount-twiceloop.patch b/util-linux-2.13-mount-twiceloop.patch new file mode 100644 index 0000000..f694bcf --- /dev/null +++ b/util-linux-2.13-mount-twiceloop.patch @@ -0,0 +1,72 @@ +--- util-linux-2.13-pre6/mount/fstab.h.twiceloop 2006-09-15 08:50:46.000000000 +0200 ++++ util-linux-2.13-pre6/mount/fstab.h 2006-09-15 08:51:10.000000000 +0200 +@@ -2,6 +2,7 @@ + int mtab_is_writable(void); + int mtab_does_not_exist(void); + int is_mounted_once(const char *name); ++int is_mounted_same_loopfile(const char *loopfile, const char *dir); + + struct mntentchn { + struct mntentchn *nxt, *prev; +--- util-linux-2.13-pre6/mount/mount.c.twiceloop 2006-09-15 08:50:23.000000000 +0200 ++++ util-linux-2.13-pre6/mount/mount.c 2006-09-15 08:50:24.000000000 +0200 +@@ -671,7 +671,7 @@ + + static int + loop_check(const char **spec, const char **type, int *flags, +- int *loop, const char **loopdev, const char **loopfile) { ++ int *loop, const char **loopdev, const char **loopfile, const char *dir) { + int looptype; + unsigned long long offset; + +@@ -709,6 +709,11 @@ + } else { + int loopro = (*flags & MS_RDONLY); + ++ if (is_mounted_same_loopfile(*loopfile, dir)) { ++ error(_("mount: %s already mounted on %s"), *loopfile, dir); ++ return EX_FAIL; ++ } ++ + if (!*loopdev || !**loopdev) + *loopdev = find_unused_loop_device(); + if (!*loopdev) +@@ -856,7 +861,7 @@ + * stale assignments of files to loop devices. Nasty when used for + * encryption. + */ +- res = loop_check(&spec, &types, &flags, &loop, &loopdev, &loopfile); ++ res = loop_check(&spec, &types, &flags, &loop, &loopdev, &loopfile, node); + if (res) + goto out; + } +--- util-linux-2.13-pre6/mount/fstab.c.twiceloop 2006-09-15 08:50:23.000000000 +0200 ++++ util-linux-2.13-pre6/mount/fstab.c 2006-09-15 08:50:24.000000000 +0200 +@@ -254,6 +254,27 @@ + return (ct == 1); + } + ++/* ++ * Given the loop file LOOPFILE, and the mount point DIR, check that ++ * same file is already mounted on same directory ++ * ++ * Don't forget there's ++ * /path/loopfile /path/dir loop=/dev/loop0 ++ * in mtab for loop devices. ++ */ ++int ++is_mounted_same_loopfile(const char *loopfile, const char *dir) { ++ struct mntentchn *mc, *mc0; ++ int ct = 0; ++ ++ mc0 = mtab_head(); ++ for (mc = mc0->prev; mc && mc != mc0; mc = mc->prev) ++ if (streq(mc->m.mnt_fsname, loopfile) && ++ streq(mc->m.mnt_dir, dir)) ++ ct++; ++ return (ct == 1); ++} ++ + /* Given the name FILE, try to find the option "loop=FILE" in mtab. */ + struct mntentchn * + getmntoptfile (const char *file) { diff --git a/util-linux-2.13-mount-uhelper.patch b/util-linux-2.13-mount-uhelper.patch new file mode 100644 index 0000000..0dbda6c --- /dev/null +++ b/util-linux-2.13-mount-uhelper.patch @@ -0,0 +1,68 @@ +--- util-linux-2.13-pre6/mount/mount.c.uhelper 2006-09-15 13:23:23.000000000 +0200 ++++ util-linux-2.13-pre6/mount/mount.c 2006-09-15 13:23:23.000000000 +0200 +@@ -183,7 +183,7 @@ + }; + + static const char *opt_loopdev, *opt_vfstype, *opt_offset, *opt_encryption, +- *opt_speed, *opt_comment; ++ *opt_speed, *opt_comment, *opt_uhelper; + + static struct string_opt_map { + char *tag; +@@ -196,6 +196,7 @@ + { "encryption=", 0, &opt_encryption }, + { "speed=", 0, &opt_speed }, + { "comment=", 1, &opt_comment }, ++ { "uhelper=", 0, &opt_uhelper }, + { NULL, 0, NULL } + }; + +--- util-linux-2.13-pre6/mount/umount.8.uhelper 2004-11-10 20:49:37.000000000 +0100 ++++ util-linux-2.13-pre6/mount/umount.8 2006-09-15 14:02:25.000000000 +0200 +@@ -122,6 +122,19 @@ + Any pending loop devices can be freed using `losetup -d', see + .BR losetup (8). + ++.SH NOTES ++The syntax of external umount helpers is: ++ ++.br ++.BI "/sbin/umount. [\-nlfvr] " "dir " | " device " ++.br ++ ++where the is filesystem type or a value from "uhelper=" mtab option. ++ ++The uhelper (unprivileged umount request helper) is possible used when non-root ++user wants to umount a mountpoint which is not defined in the /etc/fstab file ++(e.g devices mounted by HAL). ++ + .SH FILES + .I /etc/mtab + table of mounted file systems +--- util-linux-2.13-pre6/mount/umount.c.uhelper 2006-09-15 13:23:23.000000000 +0200 ++++ util-linux-2.13-pre6/mount/umount.c 2006-09-15 13:23:23.000000000 +0200 +@@ -565,11 +565,24 @@ + + if (suid) { + char *mtab_user = NULL; ++ char *uhelper = NULL; + + if (!mc) + die(2, + _("umount: %s is not mounted (according to mtab)"), + file); ++ /* ++ * uhelper - unprivileged umount helper ++ * -- external umount (for example HAL mounts) ++ */ ++ if (mc->m.mnt_opts) ++ uhelper = get_value(mc->m.mnt_opts, "uhelper="); ++ if (uhelper) { ++ int status = 0; ++ if (check_special_umountprog(arg, arg, uhelper, &status)) ++ return status; ++ } ++ + /* The 2.4 kernel will generally refuse to mount the same + filesystem on the same mount point, but will accept NFS. + So, unmounting must be possible. */ diff --git a/util-linux-2.13-mount-uuid.patch b/util-linux-2.13-mount-uuid.patch new file mode 100644 index 0000000..43a4d7a --- /dev/null +++ b/util-linux-2.13-mount-uuid.patch @@ -0,0 +1,60 @@ + + The UUID code in the mount command is broken -- en example UUID= in the fstab + file is reason for SIGSEG when non-root user tries umount any device. + -- 03/30/2006 Karel Zak + +--- util-linux-2.13-pre6/mount/mount_blkid.h.uuid 2006-03-29 15:34:24.000000000 +0200 ++++ util-linux-2.13-pre6/mount/mount_blkid.h 2006-03-29 15:34:57.000000000 +0200 +@@ -8,5 +8,6 @@ + extern const char *mount_get_devname_by_uuid(const char *uuid); + extern const char *mount_get_devname_by_label(const char *label); + extern const char *mount_get_volume_label_by_spec(const char *spec); ++extern const char *mount_get_volume_uuid_by_spec(const char *spec); + extern const char *mount_get_devname(const char *spec); + extern const char *mount_get_devname_for_mounting(const char *spec); +--- util-linux-2.13-pre6/mount/mount_blkid.c.uuid 2006-03-29 15:33:44.000000000 +0200 ++++ util-linux-2.13-pre6/mount/mount_blkid.c 2006-03-29 15:34:14.000000000 +0200 +@@ -21,6 +21,11 @@ + } + + const char * ++mount_get_volume_uuid_by_spec(const char *spec) { ++ return blkid_get_tag_value(blkid, "UUID", spec); ++} ++ ++const char * + mount_get_devname(const char *spec) { + return blkid_get_devname(blkid, spec, 0); + } +--- util-linux-2.13-pre6/mount/fstab.c.uuid 2006-03-29 15:29:28.000000000 +0200 ++++ util-linux-2.13-pre6/mount/fstab.c 2006-03-29 15:36:30.000000000 +0200 +@@ -301,23 +301,19 @@ + static int + has_label(const char *device, const char *label) { + const char *devlabel; +- int ret; + +- devlabel = mount_get_volume_label_by_spec(device); +- ret = !strcmp(label, devlabel); +- /* free(devlabel); */ +- return ret; ++ if (!(devlabel = mount_get_volume_label_by_spec(device))) ++ return 0; ++ return !strcmp(label, devlabel); + } + + static int + has_uuid(const char *device, const char *uuid){ + const char *devuuid; +- int ret; + +- devuuid = mount_get_devname_by_uuid(device); +- ret = !strcmp(uuid, devuuid); +- /* free(devuuid); */ +- return ret; ++ if (!(devuuid = mount_get_volume_uuid_by_spec(device))) ++ return 0; ++ return !strcmp(uuid, devuuid); + } + + /* Find the entry (SPEC,FILE) in fstab */ diff --git a/util-linux-2.13-namei-logic.patch b/util-linux-2.13-namei-logic.patch new file mode 100644 index 0000000..b3b811f --- /dev/null +++ b/util-linux-2.13-namei-logic.patch @@ -0,0 +1,129 @@ +--- util-linux-2.13-pre7/misc-utils/namei.1.nodir 2006-12-15 10:58:38.000000000 +0100 ++++ util-linux-2.13-pre7/misc-utils/namei.1 2006-12-15 10:58:51.000000000 +0100 +@@ -52,9 +52,5 @@ + Roger Southwick (rogers@amadeus.wr.tek.com) + .SH BUGS + To be discovered. +-.SH CAVEATS +-.I Namei +-will follow an infinite loop of symbolic links forever. To escape, use +-SIGINT (usually ^C). + .SH "SEE ALSO" + ls(1), stat(1) +--- util-linux-2.13-pre7/misc-utils/namei.c.nodir 2006-12-14 21:38:41.000000000 +0100 ++++ util-linux-2.13-pre7/misc-utils/namei.c 2006-12-15 10:58:31.000000000 +0100 +@@ -42,6 +42,10 @@ + 1999-02-22 Arkadiusz Mikiewicz + - added Native Language Support + ++2006-12-15 Karel Zak ++- fixed logic; don't follow the path if a component is not directory ++- fixed infinite loop of symbolic links; stack size is very limited ++ + -------------------------------------------------------------*/ + + #include +@@ -66,7 +70,7 @@ + #endif + + static char *pperm(unsigned short); +-static void namei(char *, int); ++static void namei(char *, int, mode_t *); + static void usage(void); + + int +@@ -107,9 +111,10 @@ + + + for(; optind < argc; optind++){ ++ mode_t lastmode = 0; + (void)printf("f: %s\n", argv[optind]); + symcount = 1; +- namei(argv[optind], 0); ++ namei(argv[optind], 0, &lastmode); + + if(chdir(curdir) == -1){ + (void)fprintf(stderr, +@@ -131,8 +136,10 @@ + #define NODEV (dev_t)(-1) + #endif + ++int kzak; ++ + static void +-namei(char *file, int lev) { ++namei(char *file, int lev, mode_t *lastmode) { + char *cp; + char buf[BUFSIZ], sym[BUFSIZ]; + struct stat stb; +@@ -143,7 +150,7 @@ + * See if the file has a leading /, and if so cd to root + */ + +- if(*file == '/'){ ++ if(file && *file == '/'){ + while(*file == '/') + file++; + +@@ -166,7 +173,7 @@ + (void)printf(" d /\n"); + } + +- for(;;){ ++ for(; file && *file;){ + + if (strlen(file) >= BUFSIZ) { + fprintf(stderr,_("namei: buf overflow\n")); +@@ -198,6 +205,20 @@ + for(i = 0; i < lev; i++) + (void)printf(" "); + ++ ++ /* ++ * Previous element in the path wasn't directory, it means ++ * we cannot walk on *path* and check the actual element by lstat(), because ++ * there could be a component with same name. Try: ++ * ++ * $ touch a b ++ * $ namei a/b <-- "a" is not directory so namei shouldn't check for "b" ++ */ ++ if (*lastmode && S_ISDIR(*lastmode)==0 && S_ISLNK(*lastmode)==0){ ++ (void)printf(" ? %s - %s (%d)\n", buf, strerror(ENOENT), ENOENT); ++ return; ++ } ++ + /* + * See what type of critter this file is + */ +@@ -207,6 +228,8 @@ + return; + } + ++ *lastmode = stb.st_mode; ++ + switch(stb.st_mode & S_IFMT){ + case S_IFDIR: + +@@ -241,7 +264,6 @@ + * Sigh, another symlink. Read its contents and + * call namei() + */ +- + bzero(sym, BUFSIZ); + if(readlink(buf, sym, BUFSIZ) == -1){ + (void)printf(_(" ? problems reading symlink %s - %s (%d)\n"), buf, ERR); +@@ -255,11 +277,12 @@ + + if(symcount > 0 && symcount++ > MAXSYMLINKS){ + (void)printf(_(" *** EXCEEDED UNIX LIMIT OF SYMLINKS ***\n")); +- symcount = -1; + } else { + (void)printf("\n"); +- namei(sym, lev + 1); ++ namei(sym, lev + 1, lastmode); + } ++ if (symcount > MAXSYMLINKS) ++ return; + break; + + case S_IFCHR: diff --git a/util-linux-2.13-partx-man.patch b/util-linux-2.13-partx-man.patch new file mode 100644 index 0000000..ff1d023 --- /dev/null +++ b/util-linux-2.13-partx-man.patch @@ -0,0 +1,129 @@ +--- util-linux-2.13-pre7/partx/Makefile.am.kzak 2007-01-11 16:30:39.000000000 +0100 ++++ util-linux-2.13-pre7/partx/Makefile.am 2007-01-11 16:30:30.000000000 +0100 +@@ -4,5 +4,6 @@ + + usrsbinexec_PROGRAMS = addpart delpart partx + partx_SOURCES = bsd.c dos.c partx.c solaris.c unixware.c gpt.c crc32.c ++man_MANS = addpart.8 delpart.8 partx.8 + + endif +--- /dev/null 2007-01-05 11:17:33.335119060 +0100 ++++ util-linux-2.13-pre7/partx/delpart.8 2007-01-11 16:28:37.000000000 +0100 +@@ -0,0 +1,30 @@ ++.\" delpart.8 -- ++.\" Copyright 2007 Karel Zak ++.\" Copyright 2007 Red Hat, Inc. ++.\" May be distributed under the GNU General Public License ++.TH DELPART 8 "11 Jan 2007" ++.SH NAME ++delpart \- ++simple wrapper around the "del partition" ioctl ++.SH SYNOPSIS ++.B delpart device partition ++.SH DESCRIPTION ++.B delpart ++is a program that asks the Linux kernel to remove a partition. ++ ++This command doesn't manipulate with partitions on hard drive. ++ ++.SH OPTIONS ++.TP ++.BI device ++Specify the disk device. ++.TP ++.BI partition ++Specify the partition number. ++ ++.SH SEE ALSO ++.BR addpart (8), ++.BR fdisk (8), ++.BR parted (8), ++.BR partprobe (8), ++.BR partx (8) +--- /dev/null 2007-01-05 11:17:33.335119060 +0100 ++++ util-linux-2.13-pre7/partx/addpart.8 2007-01-11 16:28:37.000000000 +0100 +@@ -0,0 +1,36 @@ ++.\" addpart.8 -- ++.\" Copyright 2007 Karel Zak ++.\" Copyright 2007 Red Hat, Inc. ++.\" May be distributed under the GNU General Public License ++.TH ADDPART 8 "11 Jan 2007" ++.SH NAME ++addpart \- ++simple wrapper around the "add partition" ioctl ++.SH SYNOPSIS ++.B addpart device partition start length ++.SH DESCRIPTION ++.B addpart ++is a program that informs the Linux kernel of new partition. ++ ++This command doesn't manipulate with partitions on hard drive. ++ ++.SH PARAMETERS ++.TP ++.BI device ++Specify the disk device. ++.TP ++.BI partition ++Specify the partition number. ++.TP ++.BI start ++Specify the begin of the partition (in bytes). ++.TP ++.BI length ++Specify the length of the partition (in bytes). ++ ++.SH SEE ALSO ++.BR delpart (8), ++.BR fdisk (8), ++.BR parted (8), ++.BR partprobe (8), ++.BR partx (8) +--- /dev/null 2007-01-05 11:17:33.335119060 +0100 ++++ util-linux-2.13-pre7/partx/partx.8 2007-01-11 16:28:37.000000000 +0100 +@@ -0,0 +1,45 @@ ++.\" partx.8 -- ++.\" Copyright 2007 Karel Zak ++.\" Copyright 2007 Red Hat, Inc. ++.\" May be distributed under the GNU General Public License ++.TH PARTX 8 "11 Jan 2007" ++.SH NAME ++partx \- ++telling the kernel about presence and numbering of on-disk partitions. ++.SH SYNOPSIS ++.B partx [-a|-d|-l] [--type TYPE] [--nr M-N] [partition] disk ++.SH DESCRIPTION ++Given a block device ( ++.B disk ++) and a partition table ++.B type ++, try to parse the partition table, and list the ++contents. Optionally add or remove partitions. ++ ++This is not an fdisk - adding and removing partitions ++is not a change of the disk, but just telling the kernel ++about presence and numbering of on-disk partitions. ++ ++.SH OPTIONS ++.TP ++.B \-a ++add specified partitions or read disk and add all partitions ++.TP ++.B \-d ++delete specified or all partitions ++.TP ++.B \-l ++list partitions ++.TP ++.BI --type " TYPE" ++Specify the partition type -- dos, bsd, solaris, unixware or gpt. ++.TP ++.BI --nr " M-N" ++Specify the range of partitions (e.g --nr 2-4). ++ ++.SH SEE ALSO ++.BR addpart (8), ++.BR delpart (8), ++.BR fdisk (8), ++.BR parted (8), ++.BR partprobe (8) diff --git a/util-linux-2.13-raw-raw0.patch b/util-linux-2.13-raw-raw0.patch new file mode 100644 index 0000000..c92e3bd --- /dev/null +++ b/util-linux-2.13-raw-raw0.patch @@ -0,0 +1,45 @@ +--- util-linux-2.13-pre6/disk-utils/raw.c.kzak 2006-11-21 21:56:40.000000000 +0100 ++++ util-linux-2.13-pre6/disk-utils/raw.c 2006-11-21 22:35:11.000000000 +0100 +@@ -66,6 +66,7 @@ + int err; + int block_major, block_minor; + int i; ++ int rc; + + struct stat statbuf; + +@@ -108,19 +109,23 @@ + usage(1); + raw_name = argv[optind++]; + ++ rc = sscanf(raw_name, RAWDEVDIR "raw%d", &raw_minor); ++ if (rc != 1) { ++ fprintf (stderr, ++ "Unsupported raw device name '%s' (format is " RAWDEVDIR "rawN))\n", ++ raw_name); ++ exit(2); ++ } ++ if (raw_minor == 0) { ++ fprintf (stderr, ++ "Unsupported raw device name '%s' (minor number cannot be zero)\n", ++ raw_name); ++ exit(2); ++ } ++ + err = stat(raw_name, &statbuf); +- if (err) { +- int rc; +- +- rc = sscanf(raw_name, RAWDEVDIR "raw%d", &raw_minor); +- if (rc != 1) { +- fprintf (stderr, +- "Cannot locate raw device '%s' (%s)\n", +- raw_name, strerror(errno)); +- exit(2); +- } ++ if (err) + goto skip_test_rawdev; +- } + + if (!S_ISCHR(statbuf.st_mode)) { + fprintf (stderr, "raw device '%s' is not a character dev\n", diff --git a/util-linux-2.13-rmparts.patch b/util-linux-2.13-rmparts.patch new file mode 100644 index 0000000..128337d --- /dev/null +++ b/util-linux-2.13-rmparts.patch @@ -0,0 +1,105 @@ +--- util-linux-2.13-pre6/disk-utils/blockdev.c.rmparts 2006-02-08 14:10:48.000000000 -0500 ++++ util-linux-2.13-pre6/disk-utils/blockdev.c 2006-02-08 14:19:31.000000000 -0500 +@@ -29,6 +29,28 @@ + #define BLKGETSIZE64 _IOR(0x12,114,size_t) + #endif + ++#ifndef BLKPG ++#define BLKPG _IO(0x12,105) ++#define BLKPG_DEL_PARTITION 2 ++#define BLKPG_DEVNAMELTH 64 ++#define BLKPG_VOLNAMELTH 64 ++ ++struct blkpg_partition { ++ long long start; ++ long long length; ++ long long pno; ++ char devname[BLKPG_DEVNAMELTH]; ++ char volname[BLKPG_VOLNAMELTH]; ++}; ++ ++struct blkpg_ioctl_arg { ++ int op; ++ int flags; ++ int datalen; ++ void *data; ++}; ++#endif ++ + /* Maybe could be included */ + #ifndef HDIO_GETGEO + #define HDIO_GETGEO 0x0301 +@@ -93,6 +115,10 @@ + { "--rereadpt", "BLKRRPART", BLKRRPART, ARGNONE, 0, NULL, + N_("reread partition table") }, + #endif ++#ifdef BLKPG ++ { "--rmpart", "BLKPG", BLKPG, ARGINTAP, 0, "PARTNO", N_("disable partition") }, ++ { "--rmparts", "BLKPG", BLKPG, ARGNONE, 0, NULL, N_("disable all partitions") }, ++#endif + }; + + #define SIZE(a) (sizeof(a)/sizeof((a)[0])) +@@ -144,6 +170,35 @@ + return 0; + } + ++#ifdef BLKPG ++static int ++disable_partition(int fd, int partno) { ++ struct blkpg_partition part = { ++ .pno = partno, ++ }; ++ struct blkpg_ioctl_arg io = { ++ .op = BLKPG_DEL_PARTITION, ++ .datalen = sizeof(part), ++ .data = &part, ++ }; ++ int res; ++ ++ res = ioctl(fd, BLKPG, &io); ++ if (res < 0) ++ return 0; ++ return 1; ++} ++ ++static int ++disable_partitions(int fd) { ++ int p, res = 0; ++ ++ for (p = 1; p <= 256; p++) ++ res += disable_partition(fd, p); ++ return res ? 0 : -1; ++} ++#endif ++ + void do_commands(int fd, char **argv, int d); + void report_header(void); + void report_device(char *device, int quiet); +@@ -259,6 +314,12 @@ + switch(bdcms[j].argtype) { + default: + case ARGNONE: ++#ifdef BLKPG ++ if (bdcms[j].ioc == BLKPG) { ++ res = disable_partitions(fd); ++ break; ++ } ++#endif + res = ioctl(fd, bdcms[j].ioc, 0); + break; + case ARGINTA: +@@ -276,6 +337,13 @@ + bdcms[j].name); + usage(); + } ++#ifdef BLKPG ++ if (bdcms[j].ioc == BLKPG) { ++ iarg = atoi(argv[++i]); ++ res = disable_partition(fd, iarg) ? 0 : -1; ++ break; ++ } ++#endif + iarg = atoi(argv[++i]); + res = ioctl(fd, bdcms[j].ioc, &iarg); + break; diff --git a/util-linux-2.13-schedutils-SCHED_BATCH.patch b/util-linux-2.13-schedutils-SCHED_BATCH.patch new file mode 100644 index 0000000..f0abaaa --- /dev/null +++ b/util-linux-2.13-schedutils-SCHED_BATCH.patch @@ -0,0 +1,102 @@ +--- util-linux-2.13-pre6/schedutils/chrt.1.batch 2006-11-10 13:23:37.000000000 -0500 ++++ util-linux-2.13-pre6/schedutils/chrt.1 2006-11-10 13:27:23.000000000 -0500 +@@ -36,10 +36,11 @@ + .BR chrt (1) + sets or retrieves the real-time scheduling attributes of an existing PID or + runs COMMAND with the given attributes. Both policy (one of ++.BR SCHED_OTHER , + .BR SCHED_FIFO , + .BR SCHED_RR , + or +-.BR SCHED_OTHER ) ++.BR SCHED_BATCH ) + and priority can be set and retrieved. + .SH OPTIONS + .TP +@@ -48,6 +49,10 @@ + .TP + + .TP ++.B -b, --batch ++set scheduling policy to ++.BR SCHED_BATCH ++.TP + .B -f, --fifo + set scheduling policy to + .BR SCHED_FIFO +--- util-linux-2.13-pre6/schedutils/chrt.c.batch 2005-08-14 11:18:54.000000000 -0400 ++++ util-linux-2.13-pre6/schedutils/chrt.c 2006-11-10 13:27:52.000000000 -0500 +@@ -36,6 +36,8 @@ + fprintf(stderr, "usage: %s [options] [prio] [pid | cmd [args...]]\n", + cmd); + fprintf(stderr, "manipulate real-time attributes of a process\n"); ++ fprintf(stderr, " -b, --batch " ++ "set policy to SCHED_BATCH\n"); + fprintf(stderr, " -f, --fifo " + "set policy to SCHED_FF\n"); + fprintf(stderr, " -p, --pid " +@@ -83,6 +85,9 @@ + case SCHED_RR: + printf("SCHED_RR\n"); + break; ++ case SCHED_BATCH: ++ printf("SCHED_BATCH\n"); ++ break; + default: + printf("unknown\n"); + } +@@ -101,6 +106,13 @@ + { + int max, min; + ++ max = sched_get_priority_max(SCHED_OTHER); ++ min = sched_get_priority_min(SCHED_OTHER); ++ if (max >= 0 && min >= 0) ++ printf("SCHED_OTHER min/max priority\t: %d/%d\n", min, max); ++ else ++ printf("SCHED_OTHER not supported?\n"); ++ + max = sched_get_priority_max(SCHED_FIFO); + min = sched_get_priority_min(SCHED_FIFO); + if (max >= 0 && min >= 0) +@@ -115,12 +127,12 @@ + else + printf("SCHED_RR not supported?\n"); + +- max = sched_get_priority_max(SCHED_OTHER); +- min = sched_get_priority_min(SCHED_OTHER); ++ max = sched_get_priority_max(SCHED_BATCH); ++ min = sched_get_priority_min(SCHED_BATCH); + if (max >= 0 && min >= 0) +- printf("SCHED_OTHER min/max priority\t: %d/%d\n", min, max); ++ printf("SCHED_BATCH min/max priority\t: %d/%d\n", min, max); + else +- printf("SCHED_OTHER not supported?\n"); ++ printf("SCHED_BATCH not supported?\n"); + } + + int main(int argc, char *argv[]) +@@ -130,6 +142,7 @@ + pid_t pid = 0; + + struct option longopts[] = { ++ { "batch", 0, NULL, 'b' }, + { "fifo", 0, NULL, 'f' }, + { "pid", 0, NULL, 'p' }, + { "help", 0, NULL, 'h' }, +@@ -141,11 +154,14 @@ + { NULL, 0, NULL, 0 } + }; + +- while((i = getopt_long(argc, argv, "+fphmorvV", longopts, NULL)) != -1) ++ while((i = getopt_long(argc, argv, "+bfphmorvV", longopts, NULL)) != -1) + { + int ret = 1; + + switch (i) { ++ case 'b': ++ policy = SCHED_BATCH; ++ break; + case 'f': + policy = SCHED_FIFO; + break; diff --git a/util-linux-2.13-schedutils-man.patch b/util-linux-2.13-schedutils-man.patch new file mode 100644 index 0000000..a5b7e31 --- /dev/null +++ b/util-linux-2.13-schedutils-man.patch @@ -0,0 +1,22 @@ +--- util-linux-2.13-pre6/schedutils/taskset.1.kzak 2006-02-22 16:10:26.000000000 +0100 ++++ util-linux-2.13-pre6/schedutils/taskset.1 2006-02-22 16:10:38.000000000 +0100 +@@ -82,7 +82,7 @@ + .SH USAGE + .TP + The default behavior is to run a new command with a given affinity mask: +-taskset [mask] -- [command] [arguments] ++taskset [mask] [command] [arguments] + .TP + You can also retrieve the CPU affinity of an existing task: + taskset -p [pid] +--- util-linux-2.13-pre6/schedutils/chrt.1.kzak 2006-02-22 16:09:02.000000000 +0100 ++++ util-linux-2.13-pre6/schedutils/chrt.1 2006-02-22 16:09:22.000000000 +0100 +@@ -72,7 +72,7 @@ + .SH USAGE + .TP + The default behavior is to run a new command:: +-chrt [prio] -- [command] [arguments] ++chrt [prio] [command] [arguments] + .TP + You can also retrieve the real-time attributes of an existing task: + chrt -p [pid] diff --git a/util-linux-2.13-swap-page.patch b/util-linux-2.13-swap-page.patch new file mode 100644 index 0000000..797f646 --- /dev/null +++ b/util-linux-2.13-swap-page.patch @@ -0,0 +1,68 @@ +--- util-linux-2.13-pre6/disk-utils/mkswap.c.page 2006-06-12 17:30:57.000000000 +0200 ++++ util-linux-2.13-pre6/disk-utils/mkswap.c 2006-06-12 17:30:31.000000000 +0200 +@@ -53,17 +53,6 @@ + #include + #endif + +-/* Try to get PAGE_SIZE from libc or kernel includes */ +-#ifdef HAVE_SYS_USER_H +- /* Note: says: for gdb only */ +-#include /* for PAGE_SIZE and PAGE_SHIFT */ +-#else +-#ifdef HAVE_ASM_PAGE_H +-#include /* for PAGE_SIZE and PAGE_SHIFT */ +- /* we also get PAGE_SIZE via getpagesize() */ +-#endif +-#endif +- + #ifndef _IO + /* pre-1.3.45 */ + #define BLKGETSIZE 0x1260 +@@ -172,10 +161,6 @@ + + static void + init_signature_page(void) { +- +-#ifdef PAGE_SIZE +- defined_pagesize = PAGE_SIZE; +-#endif + kernel_pagesize = getpagesize(); + pagesize = kernel_pagesize; + +--- util-linux-2.13-pre6/configure.ac.page 2006-06-12 17:28:51.000000000 +0200 ++++ util-linux-2.13-pre6/configure.ac 2006-06-12 17:28:28.000000000 +0200 +@@ -26,7 +26,8 @@ + ]) + AC_CHECK_HEADERS(langinfo.h) + AC_CHECK_HEADERS(sys/user.h) +-AC_CHECK_HEADERS(asm/page.h) ++# Suck ... ++#AC_CHECK_HEADERS(asm/page.h) + AC_CHECK_HEADERS(rpcsvc/nfs_prot.h) + AC_CHECK_HEADERS(sys/io.h) + AC_CHECK_HEADERS(pty.h) +--- util-linux-2.13-pre6/mount/swap.configure.page 2006-06-12 17:23:27.000000000 +0200 ++++ util-linux-2.13-pre6/mount/swap.configure 2006-06-12 17:25:28.000000000 +0200 +@@ -3,7 +3,7 @@ + + # Prepare test + CC=${CC-cc} +-compile="$CC -o conftest conftest.c >/dev/null 2>&1" ++compile="$CC -o conftest conftest.c" + rm -f conftest conftest.c swapargs.h + + # What include files shall we try? +@@ -14,9 +14,10 @@ + PAGEH= + if [ -f /usr/include/sys/swap.h ]; then + SWAPH="#include " +- if [ -f /usr/include/asm/page.h ]; then +- PAGEH="#include " +- fi ++ # Suck ... ++ #if [ -f /usr/include/asm/page.h ]; then ++ # PAGEH="#include " ++ #fi + fi + echo $PAGEH > conftest.c + echo $SWAPH >> conftest.c diff --git a/util-linux-2.13-swapon-suspend.patch b/util-linux-2.13-swapon-suspend.patch new file mode 100644 index 0000000..6c716d2 --- /dev/null +++ b/util-linux-2.13-swapon-suspend.patch @@ -0,0 +1,161 @@ +--- util-linux-2.13-pre2/mount/swapon.c.swsuspend 2005-09-02 14:32:53.000000000 +0200 ++++ util-linux-2.13-pre2/mount/swapon.c 2005-09-02 16:29:43.000000000 +0200 +@@ -11,6 +11,9 @@ + #include + #include + #include ++#include ++#include ++#include + #include "xmalloc.h" + #include "swap_constants.h" + #include "swapargs.h" +@@ -22,6 +25,7 @@ + + #define _PATH_FSTAB "/etc/fstab" + #define PROC_SWAPS "/proc/swaps" ++#define PATH_MKSWAP "/sbin/mkswap" + + #define SWAPON_NEEDS_TWO_ARGS + +@@ -173,6 +177,84 @@ + return 0 ; + } + ++/* ++ * It's better do swsuspend detection by follow routine than ++ * include huge mount_guess_fstype.o to swapon. We need only ++ * swsuspend and no the others filesystems. ++ */ ++#ifdef HAVE_LIBBLKID ++static int ++swap_is_swsuspend(const char *device) { ++ const char *type = blkid_get_tag_value(blkid, "TYPE", device); ++ ++ if (type && strcmp(type, "swsuspend")==0) ++ return 0; ++ return 1; ++} ++#else ++static int ++swap_is_swsuspend(const char *device) { ++ int fd, re = 1, n = getpagesize() - 10; ++ char buf[10]; ++ ++ fd = open(device, O_RDONLY); ++ if (fd < 0) ++ return -1; ++ ++ if (lseek(fd, n, SEEK_SET) >= 0 && ++ read(fd, buf, sizeof buf) == sizeof buf && ++ (memcmp("S1SUSPEND", buf, 9)==0 || ++ memcmp("S2SUSPEND", buf, 9)==0)) ++ re = 0; ++ ++ close(fd); ++ return re; ++} ++#endif ++ ++/* calls mkswap */ ++static int ++swap_reinitialize(const char *device) { ++ const char *label = mount_get_volume_label_by_spec(device); ++ pid_t pid; ++ ++ switch((pid=fork())) { ++ case -1: /* fork error */ ++ fprintf(stderr, _("%s: cannot fork: %s\n"), ++ progname, strerror(errno)); ++ return -1; ++ ++ case 0: /* child */ ++ if (label && *label) ++ execl(PATH_MKSWAP, PATH_MKSWAP, "-L", label, device, NULL); ++ else ++ execl(PATH_MKSWAP, PATH_MKSWAP, device, NULL); ++ exit(1); /* error */ ++ ++ default: /* parent */ ++ { ++ int status; ++ int ret; ++ ++ do { ++ if ((ret = waitpid(pid, &status, 0)) < 0 ++ && errno == EINTR) ++ continue; ++ else if (ret < 0) { ++ fprintf(stderr, _("%s: waitpid: %s\n"), ++ progname, strerror(errno)); ++ return -1; ++ } ++ } while (0); ++ ++ /* mkswap returns: 0=suss, 1=error */ ++ if (WIFEXITED(status) && WEXITSTATUS(status)==0) ++ return 0; /* ok */ ++ } ++ } ++ return -1; /* error */ ++} ++ + static int + do_swapon(const char *orig_special, int prio) { + int status; +@@ -196,6 +278,18 @@ + return -1; + } + ++ /* We have to reinitialize swap with old (=useless) software suspend ++ * data. The problem is that if we don't do it, then we get data ++ * corruption the next time with suspended on. ++ */ ++ if (swap_is_swsuspend(special)==0) { ++ fprintf(stdout, _("%s: %s: software suspend data detected. " ++ "Reinitializing the swap.\n"), ++ progname, special); ++ if (swap_reinitialize(special) < 0) ++ return -1; ++ } ++ + /* people generally dislike this warning - now it is printed + only when `verbose' is set */ + if (verbose) { +--- util-linux-2.13-pre2/mount/get_label_uuid.c.swsuspend 2005-09-02 14:32:53.000000000 +0200 ++++ util-linux-2.13-pre2/mount/get_label_uuid.c 2005-09-02 16:21:20.000000000 +0200 +@@ -129,7 +129,24 @@ + } + return 0; + } +- ++ ++static int ++is_swsuspend_partition(int fd, char **label, char *uuid) { ++ int n = getpagesize(); ++ char *buf = xmalloc(n); ++ struct swap_header_v1_2 *p = (struct swap_header_v1_2 *) buf; ++ ++ if (lseek(fd, 0, SEEK_SET) == 0 ++ && read(fd, buf, n) == n ++ && (strncmp(buf+n-10, "S1SUSPEND", 9)==0 || ++ strncmp(buf+n-10, "S2SUSPEND", 9)==0) ++ && p->version == 1) { ++ store_uuid(uuid, p->uuid); ++ store_label(label, p->volume_name, 16); ++ return 1; ++ } ++ return 0; ++} + + /* + * Get both label and uuid. +@@ -162,6 +179,8 @@ + + if (is_v1_swap_partition(fd, label, uuid)) + goto done; ++ if (is_swsuspend_partition(fd, label, uuid)) ++ goto done; + + if (lseek(fd, 1024, SEEK_SET) == 1024 + && read(fd, (char *) &e2sb, sizeof(e2sb)) == sizeof(e2sb) diff --git a/util-linux-2.13-umount-sysfs.patch b/util-linux-2.13-umount-sysfs.patch new file mode 100644 index 0000000..5d92a9c --- /dev/null +++ b/util-linux-2.13-umount-sysfs.patch @@ -0,0 +1,11 @@ +--- util-linux-2.13-pre6/mount/umount.c.sysfs 2006-02-23 10:09:53.000000000 +0100 ++++ util-linux-2.13-pre6/mount/umount.c 2006-02-23 10:10:39.000000000 +0100 +@@ -734,7 +734,7 @@ + if (all) { + /* nodev stuff: sysfs, usbfs, oprofilefs, ... */ + if (types == NULL) +- types = "noproc,nodevfs,nodevpts"; ++ types = "noproc,nodevfs,nodevpts,nosysfs,rpc_pipefs"; + result = umount_all (types, test_opts); + } else if (argc < 1) { + usage (stderr, 2); diff --git a/util-linux-60-raw.rules b/util-linux-60-raw.rules new file mode 100644 index 0000000..2279c91 --- /dev/null +++ b/util-linux-60-raw.rules @@ -0,0 +1,11 @@ +# This file and interface are deprecated. +# Applications needing raw device access should open regular +# block devices with O_DIRECT. +# +# Enter raw device bindings here. +# +# An example would be: +# ACTION=="add", KERNEL=="sda", RUN+="/bin/raw /dev/raw/raw1 %N" +# to bind /dev/raw/raw1 to /dev/sda, or +# ACTION=="add", ENV{MAJOR}=="8", ENV{MINOR}=="1", RUN+="/bin/raw /dev/raw/raw2 %M %m" +# to bind /dev/raw/raw2 to the device with major 8, minor 1. diff --git a/util-linux-login.pamd b/util-linux-login.pamd index 517b798..04195f7 100644 --- a/util-linux-login.pamd +++ b/util-linux-login.pamd @@ -1,16 +1,15 @@ #%PAM-1.0 -auth substack system-auth -auth include postlogin +auth [user_unknown=ignore success=ok ignore=ignore default=bad] pam_securetty.so +auth include system-auth account required pam_nologin.so account include system-auth password include system-auth # pam_selinux.so close should be the first session rule session required pam_selinux.so close +session include system-auth session required pam_loginuid.so +session optional pam_console.so # pam_selinux.so open should only be followed by sessions to be executed in the user context session required pam_selinux.so open -session required pam_namespace.so session optional pam_keyinit.so force revoke -session include system-auth -session include postlogin --session optional pam_ck_connector.so +session optional pam_ck_connector.so diff --git a/util-linux-remote.pamd b/util-linux-remote.pamd index 100ec98..4cf49ea 100644 --- a/util-linux-remote.pamd +++ b/util-linux-remote.pamd @@ -1,15 +1,14 @@ #%PAM-1.0 -auth substack password-auth -auth include postlogin +auth required pam_securetty.so +auth include system-auth account required pam_nologin.so -account include password-auth -password include password-auth +account include system-auth +password include system-auth # pam_selinux.so close should be the first session rule session required pam_selinux.so close +session include system-auth session required pam_loginuid.so +session optional pam_console.so # pam_selinux.so open should only be followed by sessions to be executed in the user context session required pam_selinux.so open -session required pam_namespace.so session optional pam_keyinit.so force revoke -session include password-auth -session include postlogin diff --git a/util-linux-runuser-l.pamd b/util-linux-runuser-l.pamd deleted file mode 100644 index 7a9a48c..0000000 --- a/util-linux-runuser-l.pamd +++ /dev/null @@ -1,5 +0,0 @@ -#%PAM-1.0 -auth include runuser -session optional pam_keyinit.so force revoke --session optional pam_systemd.so -session include runuser diff --git a/util-linux-runuser.pamd b/util-linux-runuser.pamd deleted file mode 100644 index 37f0e84..0000000 --- a/util-linux-runuser.pamd +++ /dev/null @@ -1,5 +0,0 @@ -#%PAM-1.0 -auth sufficient pam_rootok.so -session optional pam_keyinit.so revoke -session required pam_limits.so -session required pam_unix.so diff --git a/util-linux-su-l.pamd b/util-linux-su-l.pamd deleted file mode 100644 index 656a139..0000000 --- a/util-linux-su-l.pamd +++ /dev/null @@ -1,6 +0,0 @@ -#%PAM-1.0 -auth include su -account include su -password include su -session optional pam_keyinit.so force revoke -session include su diff --git a/util-linux-su.pamd b/util-linux-su.pamd deleted file mode 100644 index 5733201..0000000 --- a/util-linux-su.pamd +++ /dev/null @@ -1,15 +0,0 @@ -#%PAM-1.0 -auth required pam_env.so -auth sufficient pam_rootok.so -# Uncomment the following line to implicitly trust users in the "wheel" group. -#auth sufficient pam_wheel.so trust use_uid -# Uncomment the following line to require a user to be in the "wheel" group. -#auth required pam_wheel.so use_uid -auth substack system-auth -auth include postlogin -account sufficient pam_succeed_if.so uid = 0 use_uid quiet -account include system-auth -password include system-auth -session include system-auth -session include postlogin -session optional pam_xauth.so diff --git a/util-linux.spec b/util-linux.spec index d92cb07..e3500e6 100644 --- a/util-linux.spec +++ b/util-linux.spec @@ -1,409 +1,462 @@ -### Header -Summary: Collection of basic system utilities +# Rules for hacking: +# - when adding patches, please make sure that it is easy to find out what bug ID +# patch fixes. Tip: cut&past bug title with bug ID from bugzilla. +# +# Notes: +# - upstream maintainer Adrian Bunk + +### Header +Summary: A collection of basic system utilities. Name: util-linux -Version: 2.42.2 -# -p -e rc1 -Release: %autorelease -License: GPL-1.0-or-later AND GPL-2.0-only AND GPL-2.0-or-later AND GPL-3.0-or-later AND LGPL-2.1-or-later AND BSD-2-Clause AND BSD-3-Clause AND BSD-4-Clause-UC AND LicenseRef-Fedora-Public-Domain -URL: https://en.wikipedia.org/wiki/Util-linux +Version: 2.13 +Release: 0.51%{?dist} +License: distributable +Group: System Environment/Base -### Macros -%global upstream_version %{version} -%global upstream_major %(eval echo %{version} | sed -e 's/\([[:digit:]]*\)\.\([[:digit:]]*\)\.[[:digit:]]*$/\1.\2/') - -%global compldir %{_datadir}/bash-completion/completions/ - -%global pypkg python3 -%global pyver 3 - -### Dependencies -BuildRequires: make -BuildRequires: audit-libs-devel >= 1.0.6 -BuildRequires: gettext-devel -BuildRequires: libselinux-devel -BuildRequires: libxcrypt-devel -BuildRequires: ncurses-devel -BuildRequires: readline-devel -BuildRequires: pam-devel -BuildRequires: zlib-devel -BuildRequires: popt-devel -BuildRequires: libutempter-devel -BuildRequires: systemd-devel -BuildRequires: systemd -BuildRequires: libcap-ng-devel -BuildRequires: %{pypkg}-devel -BuildRequires: gcc -BuildRequires: rubygem-asciidoctor -BuildRequires: po4a -BuildRequires: sqlite-devel -%ifarch ppc64le -BuildRequires: librtas-devel +### Features +%if 0%{?rhel} +%define include_raw 1 +%else +%define include_raw 0 %endif -# enable if make changes to build-system -#BuildRequires: autoconf -#BuildRequires: automake -#BuildRequires: libtool -BuildRequires: bison -BuildRequires: flex +### Macros +%define floppyver 0.12 +%define no_hwclock_archs s390 s390x +%define cytune_archs %{ix86} alpha armv4l + +### Paths +BuildRoot: %{_tmppath}/%{name}-root +# see build section for _prefix + +### Dependences +BuildRequires: audit-libs-devel >= 1.0.6 +BuildRequires: autoconf +BuildRequires: automake +BuildRequires: e2fsprogs-devel >= 1.36 +BuildRequires: gettext-devel +BuildRequires: libselinux-devel +# ncurses is the right way now [kzak, 12/14/2006] +#BuildRequires: libtermcap-devel +BuildRequires: ncurses-devel +BuildRequires: pam-devel +BuildRequires: sed +BuildRequires: slang-devel +BuildRequires: texinfo +BuildRequires: zlib-devel ### Sources -Source0: https://www.kernel.org/pub/linux/utils/util-linux/v%{upstream_major}/util-linux-%{upstream_version}.tar.xz +# TODO [stable]: s/2.13-pre7/%{version}/ +Source0: ftp://ftp.win.tue.nl/pub/linux-local/utils/util-linux/util-linux-2.13-pre7.tar.bz2 Source1: util-linux-login.pamd Source2: util-linux-remote.pamd Source3: util-linux-chsh-chfn.pamd -Source5: adjtime -Source12: util-linux-su.pamd -Source13: util-linux-su-l.pamd -Source14: util-linux-runuser.pamd -Source15: util-linux-runuser-l.pamd +Source4: util-linux-60-raw.rules +Source8: nologin.c +Source9: nologin.8 +Source11: http://download.sourceforge.net/floppyutil/floppy-%{floppyver}.tar.gz ### Obsoletes & Conflicts & Provides -Conflicts: initscripts < 9.79-4 -Conflicts: bash-completion < 1:2.1-1 -# su(1) and runuser(1) merged into util-linux v2.22 -Conflicts: coreutils < 8.20 -# eject has been merged into util-linux v2.22 -Obsoletes: eject <= 2.1.5 -Provides: eject = 2.1.6 -# rfkill has been merged into util-linux v2.31 -Obsoletes: rfkill <= 0.5 -Provides: rfkill = 0.5 -# sulogin, utmpdump merged into util-linux v2.22; -# last, lastb merged into util-linux v2.24 -Conflicts: sysvinit-tools < 2.88-14 -# rename from util-linux-ng back to util-linux -Obsoletes: util-linux-ng < 2.19 -Provides: util-linux-ng = %{version}-%{release} -Conflicts: filesystem < 3 -Provides: /sbin/nologin -Provides: /sbin/findfs -# util-linux-user was dropped in 2.39-1 and its contents moved back -# to util-linux -Obsoletes: util-linux-user < 2.39-1 -Provides: util-linux-user = %{version}-%{release} - -Requires(post): coreutils -Requires: (pam >= 1.1.3-7 if systemd) -Requires: (/etc/pam.d/system-auth if systemd) -Requires: audit-libs >= 1.0.6 -Requires: libuuid = %{version}-%{release} -Requires: libblkid = %{version}-%{release} -Requires: libmount = %{version}-%{release} -Requires: libsmartcols = %{version}-%{release} -Requires: libfdisk = %{version}-%{release} -Requires: liblastlog2 = %{version}-%{release} -Requires: util-linux-core = %{version}-%{release} - -%if "%{_sbindir}" == "%{_bindir}" -# Compat symlinks for Requires in other packages. -# We rely on filesystem to create the symlinks for us. -Requires: filesystem(unmerged-sbin-symlinks) -Provides: /usr/sbin/runuser -Provides: /usr/sbin/sfdisk +Obsoletes: fdisk tunelp mount losetup schedutils +%ifarch alpha sparc sparc64 sparcv9 s390 +Obsoletes: clock %endif +%ifarch alpha +Conflicts: initscripts <= 4.58, timeconfig <= 3.0.1 +%endif +Requires: pam >= 0.66-4, /etc/pam.d/system-auth +Requires: audit-libs >= 1.0.6 +Conflicts: kernel < 2.2.12-7, +Requires(preun): /sbin/install-info +Requires(post): /sbin/install-info +Requires(post): coreutils +%if %{include_raw} +Requires: udev +%endif +Requires: ConsoleKit-libs -### Fedora specific patches -Patch0: 0000-login-use-O_CREAT-on-lastlog.patch -Patch1: 0001-login-add-run-motd.d-to-the-hardcoded-MOTD_FILE.patch +Provides: mount = %{version} +Provides: losetup = %{version} +Provides: schedutils + +### Patches +# let's use -ltermcap from the more command +Patch1: util-linux-2.13-moretc.patch +# Reduce MAX_PARTS to 16 (upstream reasonably won't take it) +Patch70: util-linux-2.12a-partlimit.patch +# Note on how to set up raw device mappings using RHL /etc/sysconfig/rawdevices +Patch109: util-linux-2.11f-rawman.patch + +Patch100: util-linux-2.12j-managed.patch + +Patch106: util-linux-2.12p-swaponsymlink-57300.patch +Patch107: util-linux-2.11y-procpartitions-37436.patch +Patch113: util-linux-2.13-ctty3.patch + +Patch120: util-linux-2.11y-skipraid2.patch +Patch126: util-linux-2.11y-multibyte.patch +Patch128: util-linux-2.12a-ipcs-84243-86285.patch + +Patch138: util-linux-2.11y-chsh-103004.patch +Patch139: util-linux-2.11y-fdisksegv-103954.patch + +Patch147: util-linux-2.12a-126572-fdiskman.patch +Patch150: floppy-0.12-locale.patch + +Patch151: util-linux-2.12a-mountbylabel-dm.patch +Patch153: util-linux-2.12a-16415-rdevman.patch + +# Patch to enabled remote service for login/pam (#91174) +Patch157: util-linux-2.12a-pamstart.patch +# Patch to enable the pamconsole flag for restricting mounting to users at the console (#133941) +Patch159: util-linux-2.12j-pamconsole.patch +# Allow raw(8) to bind raw devices whose device nodes do not yet exist. +Patch160: raw-handle-nonpresent-devs.patch + +Patch164: util-linux-2.12j-113790-hotkeys.patch + +# Info about NFS4 +Patch170: util-linux-2.13-mount-man-nfs4.patch +# Makeing /var/log/lastlog (#151635) +Patch180: util-linux-2.12p-login-lastlog.patch +# Improved /etc/mtab lock (#143118) +Patch181: util-linux-2.12p-mtab-lock.patch +# Stupid typo (#151156) +Patch182: util-linux-2.12p-ipcs-typo.patch +# 154498 - util-linux login & pam session +Patch183: util-linux-2.12a-pamsession.patch +# 76467 - At boot time, fsck chokes on LVs listed by label in fstab +Patch185: util-linux-2.12p-lvm2dupes-76467.patch +# add note about ATAPI IDE floppy to fdformat.8 +Patch186: util-linux-2.12p-fdformat-ide.patch +# 145355 - Man pages for fstab and fstab-sync in conflict. +Patch187: util-linux-2.12p-fstab-man.patch +# 156597 - look - doesn't work with separators +Patch188: util-linux-2.12p-look-separator.patch +# 157656 - CRM 546998 : Possible bug in vipw, changes permissions of /etc/shadow +Patch189: util-linux-2.12p-vipw-perm.patch +# 159339 - util-linux updates for new audit system +Patch202: util-linux-2.13-audit-hwclock.patch +# 158737 - sfdisk warning for large partitions, gpt +Patch203: util-linux-2.13-fdisk-gpt.patch +# 150912 - Add ocfs2 support +Patch204: util-linux-2.12p-mount-ocfs2.patch +# NULL is better than zero at end of execl() +Patch205: util-linux-2.12p-execl.patch +# deprecated the arch command (for compatibility only) +Patch206: util-linux-2.13-arch.patch +# 165863 - swsusp swaps should be reinitialized +Patch210: util-linux-2.13-swapon-suspend.patch +# 170110 - Documentation for 'rsize' and 'wsize' NFS mount options is misleading +Patch211: util-linux-2.13-mount-man-nfs.patch +# 169628 - /usr/bin/floppy doesn't work with /dev/fd0 +Patch212: util-linux-2.12p-floppy-generic.patch +# 168436 - login will attempt to run if it has no read/write access to its terminal +# 168434 - login's timeout can fail - needs to call siginterrupt(SIGALRM,1) +Patch213: util-linux-2.13-login-hang.patch +# 165253 - losetup missing option -a [new feature] +Patch214: util-linux-2.13-losetup-all.patch +# 170564 - add audit message to login +Patch215: util-linux-2.13-audit-login.patch +# 170171 - ipcs -lm always report "max total shared memory (kbytes) = 0" +Patch216: util-linux-2.13-ipcs-shmax.patch +# 171337 - mkfs.cramfs dies creating installer image +Patch217: util-linux-2.13-cramfs-maxentries.patch +# [also 171337] - mkfs.cramfs doesn't work correctly with empty files +Patch218: util-linux-2.13-cramfs-zerofiles.patch +# 172203 - mount man page in RHEL4 lacks any info on cifs mount options +Patch219: util-linux-2.12a-mount-man-cifs.patch +# better wide chars usage in the cal command (based on the old 'moremisc' patch) +Patch220: util-linux-2.12p-cal-wide.patch +# 176441: col truncates data +Patch221: util-linux-2.12p-col-EILSEQ.patch +# 174111 - mount allows loopback devices to be mounted more than once to the same mount point +Patch222: util-linux-2.13-mount-twiceloop.patch +# nobug - add --rmpart N and --rmparts +Patch223: util-linux-2.13-rmparts.patch +# 181782 - mkswap should automatically add selinux label to swapfile +Patch224: util-linux-2.13-mkswap-selinux.patch +# 181896 - broken example in man pages +Patch225: util-linux-2.13-schedutils-man.patch +# 177331 - login omits pam_acct_mgmt & pam_chauthtok when authentication is skipped. +Patch226: util-linux-2.13-login-pam-acct.patch +# 177523 - umount -a should not unmount sysfs +Patch227: util-linux-2.13-umount-sysfs.patch +# 187014 - umount segfaults for normal user +Patch233: util-linux-2.13-mount-uuid.patch +# 183446 - cal not UTF-8-aware +Patch234: util-linux-2.13-cal-wide.patch +# 186915 - mount does not translate SELIinux context options though libselinux +# 185500 - Need man page entry for -o context= mount option +# 211827 - Can't mount with additional contexts +Patch235: util-linux-2.13-mount-context.patch +# 152579 - missing info about /etc/mtab and /proc/mounts mismatch +# 183890 - missing info about possible ioctl() and fcntl() problems on NFS filesystem +Patch236: util-linux-2.13-mount-man-bugs.patch +# Keep gcc happy +Patch237: util-linux-2.13-hexdump-gcc.patch +# 191230 - using mount --move results in wrong data in /etc/mtab +Patch238: util-linux-2.13-mount-move.patch +# Subtrees support +Patch239: util-linux-2.13-mount-subtree.patch +# wrong number of sectors for large disks (suse#160822) +Patch240: util-linux-2.13-fdisk-sectors.patch +# 182553 - fdisk -l inside xen guest shows no disks +# 188981 - "sfdisk -l" tries to open partitions +Patch241: util-linux-2.13-fdisk-isfull.patch +# 181549 - raw(8) manpage has old information about dd +Patch242: util-linux-2.12a-raw-man-dd.patch +# Don't use asm/page.h +Patch243: util-linux-2.13-swap-page.patch +# IPv6 support to login command +Patch245: util-linux-2.13-login-ipv6.patch +# 176494 - last -i returns strange IP addresses +Patch247: util-linux-2.13-login-timeval.patch +# 199745 - Non-existant simpleinit(8) mentioned in ctrlaltdel(8) +Patch248: util-linux-2.13-ctrlaltdel-man.patch +# 205038 - mount not allowing sloppy option +Patch249: util-linux-2.13-mount-sloppy.patch +# 188193 - util-linux should provide plugin infrastructure for HAL +Patch250: util-linux-2.13-mount-uhelper.patch +# Removes obsolete NFS code (we use /sbin/[u]mount.nfs[4] from nfs-utils) +Patch251: util-linux-2.13-mount-nonfs.patch +# Losetup.8 update -- add info about dm-crypt +Patch252: util-linux-2.13-losetup-deprecated.patch +# 208634 - mkswap "works" without warning on a mounted device +Patch253: util-linux-2.13-mkswap-mounted.patch +# 213127 - mount --make-unbindable does not work +Patch254: util-linux-2.13-mount-comment.patch +# 211749 - add -r option to losetup to create a read-only loop +Patch255: util-linux-2.13-losetup-rdonly.patch +# 216489 - SCHED_BATCH option missing in chrt +Patch256: util-linux-2.13-schedutils-SCHED_BATCH.patch +# 216712 - issues with raw device support ("raw0" is wrong device name) +Patch257: util-linux-2.13-raw-raw0.patch +# 217186 - /bin/sh: @MKINSTALLDIRS@: No such file or directory +Patch258: util-linux-2.13-mkdir_p.patch +# 218915 - fdisk -b 4K +Patch259: util-linux-2.13-fdisk-b-4096.patch +# leaking file descriptor +Patch260: util-linux-2.13-more-CLOEXEC.patch +# 217240 - namei ignores non-directory components instead of saying "Not a directory" +# 217241 - namei enforces symlink limits inconsistently +Patch261: util-linux-2.13-namei-logic.patch +# 222293 - undocumented partx,addpart, delpart +Patch262: util-linux-2.13-partx-man.patch +# 150493 - hwclock --systohc sets clock 0.5 seconds slow +Patch263: util-linux-2.13-hwclock-systohc.patch +# 227903 - mount -f does not work with NFS-mounted +Patch264: util-linux-2.13-mount-fake.patch + + +# When adding patches, please make sure that it is easy to find out what bug # the +# patch fixes. +########### END upstreamable %description The util-linux package contains a large variety of low-level system utilities that are necessary for a Linux system to function. Among -others, util-linux contains the fdisk configuration tool and the login +others, Util-linux contains the fdisk configuration tool and the login program. - -%package -n util-linux-core -Summary: The most essential utilities from the util-linux suite -License: GPL-2.0-only AND GPL-2.0-or-later AND BSD-2-Clause AND BSD-3-Clause AND BSD-4-Clause-UC AND LicenseRef-Fedora-Public-Domain - -Provides: /bin/dmesg -Provides: /bin/kill -Provides: /bin/more -Provides: /bin/mount -Provides: /bin/umount -Provides: /sbin/blkid -Provides: /sbin/blockdev -Provides: /sbin/fsck -# hardlink has been merged into util-linux v2.34 -Obsoletes: hardlink <= 1:1.3-9 -Provides: hardlink = 1:1.3-9 -Requires: libuuid = %{version}-%{release} -Requires: libblkid = %{version}-%{release} -Requires: libmount = %{version}-%{release} -Requires: libsmartcols = %{version}-%{release} -# old versions of e2fsprogs contain fsck, uuidgen -Conflicts: e2fsprogs < 1.41.8-5 - -%if "%{_sbindir}" == "%{_bindir}" -# Compat symlinks for Requires in other packages. -# We rely on filesystem to create the symlinks for us. -Requires: filesystem(unmerged-sbin-symlinks) -Provides: /usr/sbin/fsck -%endif - -%description -n util-linux-core -This is a very basic set of Linux utilities that is necessary on -minimal installations. - - -%package -n libfdisk -Summary: Partitioning library for fdisk-like programs -License: LGPL-2.1-or-later - -%description -n libfdisk -This is library for fdisk-like programs, part of util-linux. - - -%package -n libfdisk-devel -Summary: Partitioning library for fdisk-like programs -License: LGPL-2.1-or-later -Requires: libfdisk%{?_isa} = %{version}-%{release} -Requires: pkgconfig - -%description -n libfdisk-devel -This is development library and headers for fdisk-like programs, -part of util-linux. - - -%package -n libsmartcols -Summary: Formatting library for ls-like programs -License: LGPL-2.1-or-later - -%description -n libsmartcols -This is library for ls-like terminal programs, part of util-linux. - - -%package -n libsmartcols-devel -Summary: Formatting library for ls-like programs -License: LGPL-2.1-or-later -Requires: libsmartcols%{?_isa} = %{version}-%{release} -Requires: pkgconfig - -%description -n libsmartcols-devel -This is development library and headers for ls-like terminal programs, -part of util-linux. - - -%package -n libmount -Summary: Device mounting library -License: LGPL-2.1-or-later -Requires: libblkid%{?_isa} = %{version}-%{release} -Requires: libuuid%{?_isa} = %{version}-%{release} -Conflicts: filesystem < 3 - -%description -n libmount -This is the device mounting library, part of util-linux. - - -%package -n libmount-devel -Summary: Device mounting library -License: LGPL-2.1-or-later -Requires: libmount%{?_isa} = %{version}-%{release} -Requires: pkgconfig - -%description -n libmount-devel -This is the device mounting development library and headers, -part of util-linux. - - -%package -n liblastlog2 -Summary: lastlog database library and PAM module -License: BSD-2-Clause - -%description -n liblastlog2 -This is the lastlog database library and PAM module, part of util-linux. - - -%package -n liblastlog2-devel -Summary: lastlog database library -License: BSD-2-Clause -Requires: liblastlog2%{?_isa} = %{version}-%{release} -Requires: pkgconfig - -%description -n liblastlog2-devel -This is the lastlog database development library and headers, -part of util-linux. - - -%package -n libblkid -Summary: Block device ID library -License: LGPL-2.1-or-later -Requires: libuuid%{?_isa} = %{version}-%{release} -Conflicts: filesystem < 3 - -%description -n libblkid -This is block device identification library, part of util-linux. - - -%package -n libblkid-devel -Summary: Block device ID library -License: LGPL-2.1-or-later -Requires: libblkid%{?_isa} = %{version}-%{release} -Requires: pkgconfig - -%description -n libblkid-devel -This is the block device identification development library and headers, -part of util-linux. - - -%package -n libuuid -Summary: Universally unique ID library -License: BSD-3-Clause -Conflicts: filesystem < 3 - -%description -n libuuid -This is the universally unique ID library, part of util-linux. - -The libuuid library generates and parses 128-bit universally unique -id's (UUID's). A UUID is an identifier that is unique across both -space and time, with respect to the space of all UUIDs. A UUID can -be used for multiple purposes, from tagging objects with an extremely -short lifetime, to reliably identifying very persistent objects -across a network. - -See also the "uuid" package, which is a separate implementation. - -%package -n libuuid-devel -Summary: Universally unique ID library -License: BSD-3-Clause AND LGPL-2.1-or-later -Requires: libuuid%{?_isa} = %{version}-%{release} -Requires: pkgconfig - -%description -n libuuid-devel -This is the universally unique ID development library and headers, -part of util-linux. - -The libuuid library generates and parses 128-bit universally unique -id's (UUID's). A UUID is an identifier that is unique across both -space and time, with respect to the space of all UUIDs. A UUID can -be used for multiple purposes, from tagging objects with an extremely -short lifetime, to reliably identifying very persistent objects -across a network. - -See also the "uuid-devel" package, which is a separate implementation. - - -%package -n uuidd -Summary: Helper daemon to guarantee uniqueness of time-based UUIDs -Requires: libuuid = %{version}-%{release} -License: GPL-2.0-only -Requires(pre): shadow-utils -%{?systemd_ordering} - -%description -n uuidd -The uuidd package contains a userspace daemon (uuidd) which guarantees -uniqueness of time-based UUID generation even at very high rates on -SMP systems. - - -%package -n %{pypkg}-libmount -Summary: Python bindings for the libmount library -Requires: libmount%{?_isa} = %{version}-%{release} -License: LGPL-2.1-or-later - -%description -n %{pypkg}-libmount -The libmount-python package contains a module that permits applications -written in the Python programming language to use the interface -supplied by the libmount library to work with mount tables (fstab, -mountinfo, etc) and mount filesystems. - - -%package -n util-linux-i18n -Summary: Internationalization pack for util-linux -Requires: util-linux = %{version}-%{release} -License: GPL-2.0-or-later - -%description -n util-linux-i18n -Internationalization pack with translated messages and manual pages for -util-linux commands. - -%package -n util-linux-script -Summary: Utilities for creating and replaying typescripts of terminal session -Requires: util-linux = %{version}-%{release} - -%description -n util-linux-script -The utilities scripts, scriptreplay, and scriptlive are used to create and replay terminal sessions. - %prep -%autosetup -p1 -n %{name}-%{upstream_version} +# TODO [stable]: remove -n +%setup -q -a 11 -n util-linux-2.13-pre7 + +# ncurses vs. termcap for the more command +#%patch1 -p1 + + +%patch70 -p1 +# nologin +cp %{SOURCE8} %{SOURCE9} . +%patch100 -p1 +%patch106 -p1 +%patch107 -p1 +%patch109 -p1 +%patch113 -p1 +%patch120 -p1 +%patch126 -p1 +%patch128 -p1 +%patch138 -p1 +%patch139 -p1 +%patch147 -p1 +%patch150 -p0 +%patch151 -p1 +%patch153 -p1 +%patch157 -p1 +%patch159 -p1 +%patch160 -p1 +%patch164 -p1 +%patch170 -p1 +%patch180 -p1 +%patch181 -p1 +%patch182 -p1 +%patch183 -p1 +%patch185 -p1 +%patch186 -p1 +%patch187 -p1 +%patch188 -p1 +%patch189 -p1 +%patch202 -p1 +%patch203 -p1 +%patch204 -p1 +%patch205 -p1 +%patch206 -p1 +%patch210 -p1 +%patch211 -p1 +%patch212 -p1 +%patch213 -p1 +%patch214 -p1 +%patch215 -p1 +%patch216 -p1 +%patch217 -p1 +%patch218 -p1 +%patch219 -p1 +%patch220 -p1 +%patch221 -p1 +%patch222 -p1 +%patch223 -p1 +%patch224 -p1 +%patch225 -p1 +%patch226 -p1 +%patch227 -p1 +%patch233 -p1 +%patch234 -p1 +%patch235 -p1 +%patch236 -p1 +%patch237 -p1 +%patch238 -p1 +%patch239 -p1 +%patch240 -p1 +%patch241 -p1 +%patch242 -p1 +%patch243 -p1 +%patch245 -p1 +%patch247 -p1 +%patch248 -p1 +%patch249 -p1 +%patch250 -p1 +%patch251 -p1 +%patch252 -p1 +%patch253 -p1 +%patch254 -p1 +%patch255 -p1 +%patch256 -p1 +%patch257 -p1 +%patch258 -p1 +%patch259 -p1 +%patch260 -p1 +%patch261 -p1 +%patch262 -p1 +%patch263 -p1 +%patch264 -p1 %build unset LINGUAS || : -# enable only when make a change to the build-system -#./autogen.sh +# rebuild build system +aclocal +automake -a +autoconf +# CFLAGS +%define make_cflags -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -export CFLAGS="-D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 $RPM_OPT_FLAGS" -export SUID_CFLAGS="-fpie" -export SUID_LDFLAGS="-pie -Wl,-z,relro -Wl,-z,now" -export DAEMON_CFLAGS="$SUID_CFLAGS" -export DAEMON_LDFLAGS="$SUID_LDFLAGS" +# note: we install to /bin and /usr/bin, so there's $bindir and $usrbindir in +# util-linux build system. It's better follow package build-system than rpm +# macros (where is prefix=/usr) +%define _prefix "" + +# configure +# note: we disable tty group (USE_TTY_GROUP) in Makefiles to prevent call chgrp +# during the "make install". But we define -DUSE_TTY_GROUP that enable tty groups in +# *.c files only. +export CFLAGS="%{make_cflags} -DUSE_TTY_GROUP $RPM_OPT_FLAGS" %configure \ - --with-systemdsystemunitdir=%{_unitdir} \ - --without-user \ - --disable-silent-rules \ - --disable-bfs \ - --disable-pg \ - --enable-chfn-chsh \ - --enable-usrdir-path \ + --disable-wall \ + --disable-use-tty-group \ + --enable-partx \ + --enable-login-utils \ + --enable-kill \ --enable-write \ - --disable-raw \ - --enable-hardlink \ - --enable-fdformat \ - --enable-asciidoc \ - --with-python=%{pyver} \ - --with-systemd \ - --with-udev \ - --with-selinux \ - --with-audit \ - --with-utempter \ - --disable-makeinstall-chown \ -%ifarch s390 s390x - --disable-hwclock \ - --disable-fdformat +%if %{include_raw} + --enable-raw \ %endif + --enable-rdev + +# reset to original +%define _prefix /usr # build util-linux -%make_build +make %{?_smp_mflags} -%check -#to run tests use "--with check" -%if %{?_with_check:1}%{!?_with_check:0} -make check -%endif +# build floppy stuff +pushd floppy-%{floppyver} +# We have to disable floppygtk somehow... +%configure --with-gtk-prefix=/asfd/jkl +make %{?_smp_mflags} +popd +# build nologin +gcc $RPM_OPT_FLAGS -o nologin nologin.c + +# build docs +pushd sys-utils + makeinfo --number-sections ipc.texi +popd %install -mkdir -p %{buildroot}%{_bindir} -mkdir -p %{buildroot}%{_mandir}/man{1,6,8,5} -mkdir -p %{buildroot}%{_sbindir} -mkdir -p %{buildroot}%{_sysconfdir}/{pam.d,security/console.apps} +rm -rf ${RPM_BUILD_ROOT} +mkdir -p ${RPM_BUILD_ROOT}/{bin,sbin} +mkdir -p ${RPM_BUILD_ROOT}%{_bindir} +mkdir -p ${RPM_BUILD_ROOT}%{_infodir} +mkdir -p ${RPM_BUILD_ROOT}%{_mandir}/man{1,6,8,5} +mkdir -p ${RPM_BUILD_ROOT}%{_sbindir} +mkdir -p ${RPM_BUILD_ROOT}%{_sysconfdir}/{pam.d,security/console.apps} +mkdir -p %{buildroot}/var/log +touch %{buildroot}/var/log/lastlog +chmod 0644 %{buildroot}/var/log/lastlog # install util-linux -%make_install +make install DESTDIR=${RPM_BUILD_ROOT} -# And a dirs that the makefiles don't create -install -d %{buildroot}%{_rundir}/uuidd -install -d %{buildroot}%{_sharedstatedir}/libuuid -install -d %{buildroot}%{_sharedstatedir}/lastlog +# inslall floppy stuff +pushd floppy-%{floppyver} +%makeinstall +popd -# /etc/adjtime -install -m 644 %{SOURCE5} %{buildroot}%{_sysconfdir}/adjtime +# install no login +install -m 755 nologin ${RPM_BUILD_ROOT}/sbin +install -m 644 nologin.8 ${RPM_BUILD_ROOT}%{_mandir}/man8 -# libtool junk -rm -rf %{buildroot}%{_libdir}/*.la -rm -f %{buildroot}%{_libdir}/python*/site-packages/*.la -rm -f %{buildroot}%{_libdir}/python*/site-packages/*.a +%if %{include_raw} +echo '.so man8/raw.8' > $RPM_BUILD_ROOT%{_mandir}/man8/rawdevices.8 +{ + # see RH bugzilla #216664 + mkdir -p ${RPM_BUILD_ROOT}%{_sysconfdir}/udev/rules.d + pushd ${RPM_BUILD_ROOT}%{_sysconfdir}/udev/rules.d + install -m 644 %{SOURCE4} ./60-raw.rules + popd +} +%endif -%ifarch %{sparc} -rm -rf %{buildroot}%{_bindir}/sunhostid -cat << E-O-F > %{buildroot}%{_bindir}/sunhostid +# Correct mail spool path. +sed -e 's,/usr/spool/mail,/var/spool/mail,g' ${RPM_BUILD_ROOT}%{_mandir}/man1/login.1 > ${RPM_BUILD_ROOT}%{_mandir}/man1/login.1.new +mv ${RPM_BUILD_ROOT}%{_mandir}/man1/login.1.new ${RPM_BUILD_ROOT}%{_mandir}/man1/login.1 + +if [ "%{_infodir}" != "%{_prefix}/info" -a -d ${RPM_BUILD_ROOT}%{_prefix}/info ]; then + ( cd ${RPM_BUILD_ROOT}%{_prefix}/info; tar cf - ./* ) | + ( cd ${RPM_BUILD_ROOT}%{_infodir}; tar xf - ) + ( cd ${RPM_BUILD_ROOT}%{_prefix}; rm -rf ./info ) +fi + +%ifarch sparc sparc64 sparcv9 +rm -rf ${RPM_BUILD_ROOT}%{_bindir}/sunhostid +cat << E-O-F > ${RPM_BUILD_ROOT}%{_bindir}/sunhostid #!/bin/sh -# this should be _bindir/sunhostid or somesuch. -# Copyright 1999 Peter Jones, . +# this should be %{_bindir}/sunhostid or somesuch. +# Copyright 1999 Peter Jones, . # GPL and all that good stuff apply. ( idprom=\`cat /proc/openprom/idprom\` @@ -412,640 +465,1531 @@ echo \$idprom|dd bs=1 skip=27 count=6 echo ) 2>/dev/null E-O-F -chmod 755 %{buildroot}%{_bindir}/sunhostid +chmod 755 ${RPM_BUILD_ROOT}%{_bindir}/sunhostid %endif +gzip -9nf ${RPM_BUILD_ROOT}%{_infodir}/ipc.info + # PAM settings -{ - pushd %{buildroot}%{_sysconfdir}/pam.d - install -m 644 %{SOURCE1} ./login - install -m 644 %{SOURCE2} ./remote - install -m 644 %{SOURCE3} ./chsh - install -m 644 %{SOURCE3} ./chfn - install -m 644 %{SOURCE12} ./su - install -m 644 %{SOURCE13} ./su-l - install -m 644 %{SOURCE14} ./runuser - install -m 644 %{SOURCE15} ./runuser-l - popd +{ + pushd ${RPM_BUILD_ROOT}%{_sysconfdir}/pam.d + install -m 644 %{SOURCE1} ./login + install -m 644 %{SOURCE2} ./remote + install -m 644 %{SOURCE3} ./chsh + install -m 644 %{SOURCE3} ./chfn + popd } -%ifnarch s390 s390x -ln -sf hwclock %{buildroot}%{_sbindir}/clock -echo ".so man8/hwclock.8" > %{buildroot}%{_mandir}/man8/clock.8 +ln -sf ../../sbin/hwclock ${RPM_BUILD_ROOT}/usr/sbin/hwclock +ln -sf hwclock ${RPM_BUILD_ROOT}/sbin/clock + + +# Final cleanup +%ifnarch %cytune_archs +rm -f $RPM_BUILD_ROOT%{_bindir}/cytune $RPM_BUILD_ROOT%{_mandir}/man8/cytune.8* +%endif +%ifarch %no_hwclock_archs +rm -f $RPM_BUILD_ROOT/sbin/{hwclock,clock} $RPM_BUILD_ROOT%{_mandir}/man8/hwclock.8* $RPM_BUILD_ROOT/usr/sbin/{hwclock,clock} +%endif +%ifarch s390 s390x +rm -f $RPM_BUILD_ROOT/usr/{bin,sbin}/{fdformat,tunelp,floppy} $RPM_BUILD_ROOT%{_mandir}/man8/{fdformat,tunelp,floppy}.8* %endif -# unsupported on SPARCs -%ifarch %{sparc} -rm -f %{buildroot}/sbin/sfdisk \ - %{buildroot}%{_mandir}/man8/sfdisk.8* \ - %{buildroot}/sbin/cfdisk \ - %{buildroot}%{_mandir}/man8/cfdisk.8* -%endif +# deprecated commands +for I in /sbin/cfdisk /sbin/fsck.minix /sbin/mkfs.{bfs,minix} /sbin/sln \ + /usr/bin/chkdupexe %{_bindir}/line %{_bindir}/pg %{_bindir}/newgrp \ + /sbin/shutdown %{_bindir}/wall %{_bindir}/scriptreplay; do + rm -f $RPM_BUILD_ROOT$I +done -# we install getopt-*.{bash,tcsh} by doc directive -#chmod 644 misc-utils/getopt-*.{bash,tcsh} -#rm -f %{buildroot}%{_datadir}/doc/util-linux/getopt/* -#rmdir %{buildroot}%{_datadir}/doc/util-linux/getopt +# deprecated man pages +for I in man1/chkdupexe.1 man1/line.1 man1/pg.1 man1/newgrp.1 man8/cfdisk.8 \ + man8/fsck.minix.8 man8/mkfs.minix.8 man8/mkfs.bfs.8 man1/wall.1; do + rm -rf $RPM_BUILD_ROOT%{_mandir}/${I}* +done -ln -sf ../proc/self/mounts %{buildroot}/etc/mtab +# deprecated docs +for I in fdisk/README.cfdisk text-utils/README.pg text-utils/README.reset; do + rm -rf $I +done -# remove static libs -rm -f %{buildroot}%{_libdir}/lib{uuid,blkid,mount,smartcols,fdisk,lastlog2}.a +# we install getopt/getopt-*.{bash,tcsh} as doc files +# note: versions <=2.12 use path "%{_datadir}/misc/getopt/*" +chmod 644 getopt/getopt-*.{bash,tcsh} +rm -f ${RPM_BUILD_ROOT}%{_datadir}/getopt/* +rmdir ${RPM_BUILD_ROOT}%{_datadir}/getopt -# temporary remove to avoid conflicts with bash-completion pkg -rm -f %{buildroot}%{compldir}/{mount,umount} +ln -sf ../../bin/kill $RPM_BUILD_ROOT%{_bindir}/kill -# remove unvanted translations (conflicts with shadow-utils) -rm -f %{buildroot}%{_mandir}/*/man1/newgrp.* -rm -f %{buildroot}%{_mandir}/*/man8/vigr.* -rm -f %{buildroot}%{_mandir}/*/man8/vipw.* +# /bin -> /sbin +for I in pivot_root losetup swapon swapoff; do + if [ -e $RPM_BUILD_ROOT/bin/$I -o -h $RPM_BUILD_ROOT/bin/$I ]; then + mv $RPM_BUILD_ROOT/bin/$I $RPM_BUILD_ROOT/sbin/$I + fi +done +# /usr/sbin -> /sbin +for I in addpart delpart partx; do + if [ -e $RPM_BUILD_ROOT/usr/sbin/$I ]; then + mv $RPM_BUILD_ROOT/usr/sbin/$I $RPM_BUILD_ROOT/sbin/$I + fi +done -# find MO files -%find_lang %{name} --all-name --with-man +# /usr/bin -> /bin +for I in taskset raw; do + if [ -e $RPM_BUILD_ROOT/usr/bin/$I ]; then + mv $RPM_BUILD_ROOT/usr/bin/$I $RPM_BUILD_ROOT/bin/$I + fi +done -touch %{name}.files +# omit info/dir file +rm -f ${RPM_BUILD_ROOT}%{_infodir}/dir -# create list of setarch(8) symlinks -find %{buildroot}%{_bindir}/ -regextype posix-egrep -type l \ - -regex ".*(linux32|linux64|s390|s390x|i386|ppc|ppc64|ppc32|sparc|sparc64|sparc32|sparc32bash|mips|mips64|mips32|ia64|x86_64|uname26)$" \ - -printf "%{_bindir}/%f\n" >> %{name}.files - -find %{buildroot}%{_mandir}/man8 -regextype posix-egrep \ - -regex ".*(linux32|linux64|s390|s390x|i386|ppc|ppc64|ppc32|sparc|sparc64|sparc32|sparc32bash|mips|mips64|mips32|ia64|x86_64|uname26)\.8.*" \ - -printf "%{_mandir}/man8/%f*\n" >> %{name}.files - -%if "%{_sbindir}" == "%{_bindir}" -# Autotools installation script gets the location wrong :( -mv -v %{buildroot}/usr/sbin/* %{buildroot}/usr/bin/ -%endif +%find_lang %{name} +%clean +[ "${RPM_BUILD_ROOT}" != "/" ] && rm -rf ${RPM_BUILD_ROOT} %post -%systemd_post fstrim.{service,timer} - -%post -n liblastlog2 -%systemd_post lastlog2-import.service - +/sbin/install-info %{_infodir}/ipc.info* %{_infodir}/dir +# only for minimal buildroots without /var/log +[ -d /var/log ] || /bin/mkdir -p /var/log +/bin/touch /var/log/lastlog +/bin/chown root:root /var/log/lastlog +/bin/chmod 0644 /var/log/lastlog +# Fix the file context, do not use restorecon +if [ -x /usr/sbin/selinuxenabled ] && /usr/sbin/selinuxenabled; then + SECXT=$( /usr/sbin/matchpathcon -n /var/log/lastlog 2> /dev/null ) + if [ -n "$SECXT" ]; then + # Selinux enabled, but without policy? It's true for buildroots + # without selinux stuff on host machine with enabled selinux. + # We don't want to use any RPM dependence on selinux policy for + # matchpathcon(2). SELinux policy should be optional. + /usr/bin/chcon "$SECXT" /var/log/lastlog >/dev/null 2>&1 + fi +fi %preun -%systemd_preun fstrim.{service,timer} - - -%postun -%systemd_postun_with_restart fstrim.timer -%systemd_postun fstrim.service - -%postun -n liblastlog2 -%systemd_postun lastlog2-import.service - - -# Please, keep uuidd running after installation! Note that systemd_post is -# "systemctl preset" and it enable/disable service only. -%post -n uuidd -%systemd_post uuidd.service -if [ $1 -eq 1 ] && [ -x /usr/bin/systemctl ]; then - # install - /usr/bin/systemctl start uuidd.service > /dev/null 2>&1 || : +if [ "$1" = 0 ]; then + /sbin/install-info --del %{_infodir}/ipc.info* %{_infodir}/dir fi +exit 0 -%preun -n uuidd -%systemd_preun uuidd.socket uuidd.service +%files -f %{name}.lang +%defattr(-,root,root) +%doc */README.* NEWS AUTHORS +%doc getopt/getopt-*.{bash,tcsh} -%postun -n uuidd -%systemd_postun_with_restart uuidd.socket uuidd.service +/bin/arch +/bin/dmesg +%attr(755,root,root) /bin/login +/bin/more +/bin/kill +/bin/taskset +%if %{include_raw} +/bin/raw +%config %{_sysconfdir}/udev/rules.d/60-raw.rules +%endif -%triggerpostun -- util-linux < 2.40-0.2 -if [ $1 -gt 1 ] && [ -x /usr/bin/systemctl ] ; then - # Enable fstrim.timer for upgrades from older versions - /usr/bin/systemctl --no-reload preset fstrim.timer || : -fi +%config %{_sysconfdir}/pam.d/chfn +%config %{_sysconfdir}/pam.d/chsh +%config %{_sysconfdir}/pam.d/login +%config %{_sysconfdir}/pam.d/remote -%files -f %{name}.files -%doc README NEWS AUTHORS -%doc Documentation/deprecated.txt -%license Documentation/licenses/* -%doc misc-utils/getopt-*.{bash,tcsh} +/sbin/agetty +%{_mandir}/man8/agetty.8* +/sbin/blockdev +/sbin/pivot_root +/sbin/ctrlaltdel +/sbin/addpart +/sbin/delpart +/sbin/partx +%{_mandir}/man8/partx.8* +%{_mandir}/man8/addpart.8* +%{_mandir}/man8/delpart.8* -%config(noreplace) %{_sysconfdir}/pam.d/login -%config(noreplace) %{_sysconfdir}/pam.d/remote -%config(noreplace) %{_sysconfdir}/pam.d/su -%config(noreplace) %{_sysconfdir}/pam.d/su-l -%config(noreplace) %{_sysconfdir}/pam.d/runuser -%config(noreplace) %{_sysconfdir}/pam.d/runuser-l -%config(noreplace) %{_sysconfdir}/pam.d/chfn -%config(noreplace) %{_sysconfdir}/pam.d/chsh +/sbin/sfdisk +%{_mandir}/man8/sfdisk.8* +%doc fdisk/sfdisk.examples -%config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/adjtime +/sbin/fdisk +%{_mandir}/man8/fdisk.8* +%ifnarch %no_hwclock_archs +/sbin/clock +/sbin/hwclock +/usr/sbin/hwclock +%{_mandir}/man8/hwclock.8* +%endif +/sbin/mkfs +/sbin/mkswap +/sbin/nologin +%{_mandir}/man8/nologin.8* +%ghost %attr(0644,root,root) %verify(not md5 size mtime) /var/log/lastlog -%attr(4755,root,root) %{_bindir}/su -%attr(755,root,root) %{_bindir}/login +%{_bindir}/chrt +%{_bindir}/ionice + +%{_bindir}/cal %attr(4711,root,root) %{_bindir}/chfn %attr(4711,root,root) %{_bindir}/chsh - -%{_unitdir}/fstrim.* - -%{_bindir}/bits -%{_bindir}/cal -%{_bindir}/chmem -%{_bindir}/choom %{_bindir}/col %{_bindir}/colcrt %{_bindir}/colrm %{_bindir}/column -%{_bindir}/copyfilerange -%{_bindir}/coresched -%{_bindir}/eject -%{_bindir}/enosys -%{_bindir}/exch -%{_bindir}/fallocate -%{_bindir}/fincore -%{_bindir}/fadvise -%{_bindir}/getino +%ifarch %cytune_archs +%{_bindir}/cytune +%{_mandir}/man8/cytune.8* +%endif +%{_bindir}/ddate +%ifnarch s390 s390x +%{_bindir}/fdformat +%endif +%{_bindir}/flock %{_bindir}/getopt %{_bindir}/hexdump -%{_bindir}/irqtop +%{_bindir}/ipcrm +%{_bindir}/ipcs %{_bindir}/isosize -%{_bindir}/last -%{_bindir}/lastb -%{_bindir}/lastlog2 +%{_bindir}/kill +%{_bindir}/logger %{_bindir}/look -%{_bindir}/lsblk -%{_bindir}/lscpu -%{_bindir}/lsclocks -%{_bindir}/lsfd -%{_bindir}/lsipc -%{_bindir}/lsirq -%{_bindir}/lslocks -%{_bindir}/lslogins -%{_bindir}/lsmem -%{_bindir}/lsns %{_bindir}/mcookie -%{_bindir}/mesg +/sbin/fsck.cramfs +/sbin/mkfs.cramfs +%ifnarch s390 s390x +%{_bindir}/floppy +%{_mandir}/man8/floppy.8* +%endif %{_bindir}/namei -%{_bindir}/pipesz -%{_bindir}/prlimit %{_bindir}/rename +%{_bindir}/renice %{_bindir}/rev -%{_bindir}/setarch -%{_bindir}/setpgid -%{_bindir}/setpriv +%{_bindir}/script +%{_bindir}/setsid %{_bindir}/setterm -%{_bindir}/uclampset +%ifarch sparc sparc64 sparcv9 +%{_bindir}/sunhostid +%endif +%{_bindir}/tailf %{_bindir}/ul -%{_bindir}/utmpdump -%{_bindir}/uuidgen -%{_bindir}/uuidparse -%{_bindir}/waitpid -%{_bindir}/wall -%{_bindir}/wdctl %{_bindir}/whereis -%{_bindir}/write +%attr(2755,root,tty) %{_bindir}/write -%{_mandir}/man1/bits.1* +%ifarch %{ix86} +%{_sbindir}/rdev +%{_sbindir}/ramsize +%{_sbindir}/rootflags +%{_sbindir}/vidmode +%{_mandir}/man8/rdev.8* +%{_mandir}/man8/ramsize.8* +%{_mandir}/man8/rootflags.8* +%{_mandir}/man8/vidmode.8* +%endif +%{_sbindir}/readprofile +%ifnarch s390 s390x +%{_sbindir}/tunelp +%endif +%{_sbindir}/vipw +%{_sbindir}/vigr + +%{_infodir}/ipc.info* + +%{_mandir}/man1/arch.1* %{_mandir}/man1/cal.1* %{_mandir}/man1/chfn.1* -%{_mandir}/man1/choom.1* %{_mandir}/man1/chsh.1* %{_mandir}/man1/col.1* %{_mandir}/man1/colcrt.1* %{_mandir}/man1/colrm.1* %{_mandir}/man1/column.1* -%{_mandir}/man1/copyfilerange.1* -%{_mandir}/man1/coresched.1.* -%{_mandir}/man1/eject.1* -%{_mandir}/man1/enosys.1* -%{_mandir}/man1/exch.1* -%{_mandir}/man1/fadvise.1* -%{_mandir}/man1/fallocate.1* -%{_mandir}/man1/fincore.1* -%{_mandir}/man1/getino.1* +%{_mandir}/man1/ddate.1* +%{_mandir}/man1/flock.1* %{_mandir}/man1/getopt.1* %{_mandir}/man1/hexdump.1* -%{_mandir}/man1/irqtop.1* -%{_mandir}/man1/last.1* -%{_mandir}/man1/lastb.1* -%{_mandir}/man1/login.1* -%{_mandir}/man1/look.1* -%{_mandir}/man1/lscpu.1* -%{_mandir}/man1/lsclocks.1* -%{_mandir}/man1/lsfd.1* -%{_mandir}/man1/lsipc.1* -%{_mandir}/man1/lsirq.1* -%{_mandir}/man1/lslogins.1* -%{_mandir}/man1/lsmem.1* -%{_mandir}/man1/mcookie.1* -%{_mandir}/man1/mesg.1* -%{_mandir}/man1/namei.1* -%{_mandir}/man1/pipesz.1.* -%{_mandir}/man1/prlimit.1* -%{_mandir}/man1/rename.1* -%{_mandir}/man1/rev.1* -%{_mandir}/man1/runuser.1* -%{_mandir}/man1/setpgid.1* -%{_mandir}/man1/setpriv.1* -%{_mandir}/man1/setterm.1* -%{_mandir}/man1/su.1* -%{_mandir}/man1/uclampset.1.* -%{_mandir}/man1/ul.1* -%{_mandir}/man1/utmpdump.1.gz -%{_mandir}/man1/uuidgen.1* -%{_mandir}/man1/uuidparse.1* -%{_mandir}/man1/waitpid.1.* -%{_mandir}/man1/wall.1* -%{_mandir}/man1/whereis.1* -%{_mandir}/man1/write.1* -%{_mandir}/man5/fstab.5* -%{_mandir}/man5/scols-filter.5* -%{_mandir}/man5/terminal-colors.d.5* -%{_mandir}/man8/addpart.8* -%{_mandir}/man8/blkdiscard.8* -%{_mandir}/man8/blkpr.8.* -%{_mandir}/man8/blkzone.8* -%{_mandir}/man8/chcpu.8* -%{_mandir}/man8/chmem.8* -%{_mandir}/man8/ctrlaltdel.8* -%{_mandir}/man8/delpart.8* -%{_mandir}/man8/fdisk.8* -%{_mandir}/man8/findfs.8* -%{_mandir}/man8/fsck.cramfs.8* -%{_mandir}/man8/fsck.minix.8* -%{_mandir}/man8/fsfreeze.8* -%{_mandir}/man8/fstrim.8* -%{_mandir}/man8/isosize.8* -%{_mandir}/man8/lastlog2.8* -%{_mandir}/man8/ldattach.8* -%{_mandir}/man8/lsblk.8* -%{_mandir}/man8/lslocks.8* -%{_mandir}/man8/lsns.8* -%{_mandir}/man8/mkfs.8* -%{_mandir}/man8/mkfs.cramfs.8* -%{_mandir}/man8/mkfs.minix.8* -%{_mandir}/man8/nologin.8* -%{_mandir}/man8/pivot_root.8* -%{_mandir}/man8/readprofile.8* -%{_mandir}/man8/resizepart.8* -%{_mandir}/man8/rfkill.8* -%{_mandir}/man8/rtcwake.8* -%{_mandir}/man8/setarch.8* -%{_mandir}/man8/swaplabel.8* -%{_mandir}/man8/wdctl.8.gz -%{_mandir}/man8/wipefs.8* -%{_mandir}/man8/zramctl.8* -%{_sbindir}/addpart -%{_sbindir}/blkdiscard -%{_sbindir}/blkpr -%{_sbindir}/blkzone -%{_sbindir}/chcpu -%{_sbindir}/ctrlaltdel -%{_sbindir}/delpart -%{_sbindir}/fdisk -%{_sbindir}/findfs -%{_sbindir}/fsck.cramfs -%{_sbindir}/fsck.minix -%{_sbindir}/fsfreeze -%{_sbindir}/fstrim -%{_sbindir}/ldattach -%{_sbindir}/mkfs -%{_sbindir}/mkfs.cramfs -%{_sbindir}/mkfs.minix -%{_sbindir}/nologin -%{_sbindir}/pivot_root -%{_sbindir}/readprofile -%{_sbindir}/resizepart -%{_sbindir}/rfkill -%{_sbindir}/rtcwake -%{_sbindir}/runuser -%{_sbindir}/swaplabel -%{_sbindir}/wipefs -%{_sbindir}/zramctl - -%{compldir}/addpart -%{compldir}/bits -%{compldir}/blkdiscard -%{compldir}/blkpr -%{compldir}/blkzone -%{compldir}/cal -%{compldir}/chcpu -%{compldir}/chfn -%{compldir}/chmem -%{compldir}/choom -%{compldir}/chsh -%{compldir}/col -%{compldir}/colcrt -%{compldir}/colrm -%{compldir}/column -%{compldir}/copyfilerange -%{compldir}/coresched -%{compldir}/ctrlaltdel -%{compldir}/delpart -%{compldir}/eject -%{compldir}/enosys -%{compldir}/exch -%{compldir}/fadvise -%{compldir}/fallocate -%{compldir}/fdisk -%{compldir}/fincore -%{compldir}/findfs -%{compldir}/fsck.cramfs -%{compldir}/fsck.minix -%{compldir}/fsfreeze -%{compldir}/fstrim -%{compldir}/getino -%{compldir}/getopt -%{compldir}/hexdump -%{compldir}/irqtop -%{compldir}/isosize -%{compldir}/last -%{compldir}/lastb -%{compldir}/lastlog2 -%{compldir}/ldattach -%{compldir}/look -%{compldir}/lsblk -%{compldir}/lscpu -%{compldir}/lsclocks -%{compldir}/lsfd -%{compldir}/lsipc -%{compldir}/lsirq -%{compldir}/lslocks -%{compldir}/lslogins -%{compldir}/lsmem -%{compldir}/lsns -%{compldir}/mcookie -%{compldir}/mesg -%{compldir}/mkfs -%{compldir}/mkfs.cramfs -%{compldir}/mkfs.minix -%{compldir}/namei -%{compldir}/pipesz -%{compldir}/pivot_root -%{compldir}/prlimit -%{compldir}/readprofile -%{compldir}/rename -%{compldir}/resizepart -%{compldir}/rev -%{compldir}/rfkill -%{compldir}/rtcwake -%{compldir}/runuser -%{compldir}/setarch -%{compldir}/setpriv -%{compldir}/setpgid -%{compldir}/setterm -%{compldir}/su -%{compldir}/swaplabel -%{compldir}/uclampset -%{compldir}/ul -%{compldir}/utmpdump -%{compldir}/uuidgen -%{compldir}/uuidparse -%{compldir}/wall -%{compldir}/waitpid -%{compldir}/wdctl -%{compldir}/whereis -%{compldir}/wipefs -%{compldir}/write -%{compldir}/zramctl - -%ifnarch s390 s390x -%{_sbindir}/clock -%{_sbindir}/fdformat -%{_sbindir}/hwclock -%{_mandir}/man8/fdformat.8* -%{_mandir}/man8/hwclock.8* -%{_mandir}/man8/clock.8* -%{_mandir}/man5/adjtime_config.5* -%{compldir}/fdformat -%{compldir}/hwclock -%endif - -%ifnarch %{sparc} -%{_sbindir}/cfdisk -%{_sbindir}/sfdisk -%{_mandir}/man8/cfdisk.8* -%{_mandir}/man8/sfdisk.8* -%{compldir}/cfdisk -%{compldir}/sfdisk -%endif - -%ifarch %{sparc} -%{_bindir}/sunhostid -%endif - - -%files -n util-linux-core -%license Documentation/licenses/* -%attr(4755,root,root) %{_bindir}/mount -%attr(4755,root,root) %{_bindir}/umount -%{_bindir}/chrt -%{_bindir}/dmesg -%{_bindir}/findmnt -%{_bindir}/flock -%{_bindir}/hardlink -%{_bindir}/ionice -%{_bindir}/ipcmk -%{_bindir}/ipcrm -%{_bindir}/ipcs -%{_bindir}/kill -%{_bindir}/logger -%{_bindir}/more -%{_bindir}/mountpoint -%{_bindir}/nsenter -%{_bindir}/renice -%{_bindir}/setsid -%{_bindir}/taskset -%{_bindir}/unshare -%{compldir}/blkid -%{compldir}/blockdev -%{compldir}/chrt -%{compldir}/dmesg -%{compldir}/findmnt -%{compldir}/flock -%{compldir}/hardlink -%{compldir}/fsck -%{compldir}/ionice -%{compldir}/ipcmk -%{compldir}/ipcrm -%{compldir}/ipcs -%{compldir}/logger -%{compldir}/losetup -%{compldir}/mkswap -%{compldir}/more -%{compldir}/mountpoint -%{compldir}/nsenter -%{compldir}/partx -%{compldir}/renice -%{compldir}/setsid -%{compldir}/swapoff -%{compldir}/swapon -%{compldir}/taskset -%{compldir}/unshare -%{_mandir}/man1/chrt.1* -%{_mandir}/man1/dmesg.1* -%{_mandir}/man1/flock.1* -%{_mandir}/man1/hardlink.1* -%{_mandir}/man1/ionice.1* -%{_mandir}/man1/ipcmk.1* -%{_mandir}/man1/ipcrm.1* -%{_mandir}/man1/ipcs.1* %{_mandir}/man1/kill.1* %{_mandir}/man1/logger.1* +%{_mandir}/man1/login.1* +%{_mandir}/man1/look.1* +%{_mandir}/man1/mcookie.1* %{_mandir}/man1/more.1* -%{_mandir}/man1/mountpoint.1* -%{_mandir}/man1/nsenter.1* -%{_mandir}/man1/renice.1* -%{_mandir}/man1/setsid.1* +%{_mandir}/man1/namei.1* +%{_mandir}/man1/readprofile.1* +%{_mandir}/man1/rename.1* +%{_mandir}/man1/rev.1* +%{_mandir}/man1/script.1* +%{_mandir}/man1/setterm.1* +%{_mandir}/man1/tailf.1* +%{_mandir}/man1/ul.1* +%{_mandir}/man1/whereis.1* +%{_mandir}/man1/write.1* + +%{_mandir}/man1/chrt.1* +%{_mandir}/man1/ionice.1* %{_mandir}/man1/taskset.1* -%{_mandir}/man1/unshare.1* -%{_mandir}/man8/agetty.8* -%{_mandir}/man8/blkid.8* + %{_mandir}/man8/blockdev.8* -%{_mandir}/man8/findmnt.8* -%{_mandir}/man8/fsck.8* -%{_mandir}/man8/losetup.8* +%{_mandir}/man8/ctrlaltdel.8* +%{_mandir}/man8/dmesg.8* +%ifnarch s390 s390x +%{_mandir}/man8/fdformat.8* +%endif +%{_mandir}/man8/ipcrm.8* +%{_mandir}/man8/ipcs.8* +%{_mandir}/man8/isosize.8* +%{_mandir}/man8/mkfs.8* %{_mandir}/man8/mkswap.8* +%{_mandir}/man8/pivot_root.8* +%if %{include_raw} +%{_mandir}/man8/raw.8* +%{_mandir}/man8/rawdevices.8* +%endif +%{_mandir}/man8/renice.8* +%{_mandir}/man8/setsid.8* +%ifnarch s390 s390x +%{_mandir}/man8/tunelp.8* +%endif +%{_mandir}/man8/vigr.8* +%{_mandir}/man8/vipw.8* + +%attr(4755,root,root) /bin/mount +%attr(4755,root,root) /bin/umount +/sbin/swapon +/sbin/swapoff +%{_mandir}/man5/fstab.5* %{_mandir}/man8/mount.8* -%{_mandir}/man8/partx.8* -%{_mandir}/man8/sulogin.8* %{_mandir}/man8/swapoff.8* %{_mandir}/man8/swapon.8* -%{_mandir}/man8/switch_root.8* %{_mandir}/man8/umount.8* -%{_sbindir}/agetty -%{_sbindir}/blkid -%{_sbindir}/blockdev -%{_sbindir}/fsck -%{_sbindir}/losetup -%{_sbindir}/mkswap -%{_sbindir}/partx -%{_sbindir}/sulogin -%{_sbindir}/swapoff -%{_sbindir}/swapon -%{_sbindir}/switch_root -/etc/mtab - - -%files -n uuidd -%license Documentation/licenses/COPYING.GPL-2.0-only -%{_mandir}/man8/uuidd.8* -%{_sbindir}/uuidd -%{_unitdir}/uuidd.* -%dir %attr(2775, uuidd, uuidd) %{_sharedstatedir}/libuuid -%dir %attr(2775, uuidd, uuidd) %{_rundir}/uuidd -%{compldir}/uuidd -%{_tmpfilesdir}/uuidd-tmpfiles.conf -%{_sysusersdir}/uuidd-sysusers.conf - - -%files -n libfdisk -%license Documentation/licenses/COPYING.LGPL-2.1-or-later -%{_libdir}/libfdisk.so.* - -%files -n libfdisk-devel -%license Documentation/licenses/COPYING.LGPL-2.1-or-later -%{_libdir}/libfdisk.so -%{_includedir}/libfdisk -%{_libdir}/pkgconfig/fdisk.pc - - -%files -n libsmartcols -%license Documentation/licenses/COPYING.LGPL-2.1-or-later -%{_libdir}/libsmartcols.so.* - -%files -n libsmartcols-devel -%license Documentation/licenses/COPYING.LGPL-2.1-or-later -%{_libdir}/libsmartcols.so -%{_includedir}/libsmartcols -%{_libdir}/pkgconfig/smartcols.pc - - -%files -n libmount -%license Documentation/licenses/COPYING.LGPL-2.1-or-later -%{_libdir}/libmount.so.* - -%files -n libmount-devel -%license Documentation/licenses/COPYING.LGPL-2.1-or-later -%{_libdir}/libmount.so -%{_includedir}/libmount -%{_libdir}/pkgconfig/mount.pc - - -%files -n liblastlog2 -%license Documentation/licenses/COPYING.BSD-2-Clause -%dir %{_sharedstatedir}/lastlog -%{_libdir}/liblastlog2.so.* -%{_pam_moduledir}/pam_lastlog2.so -%{_tmpfilesdir}/lastlog2-tmpfiles.conf -%{_unitdir}/lastlog2* -%{_mandir}/man8/pam_lastlog2.8* - -%files -n liblastlog2-devel -%license Documentation/licenses/COPYING.BSD-2-Clause -%{_libdir}/liblastlog2.so -%{_includedir}/liblastlog2 -%{_libdir}/pkgconfig/lastlog2.pc -%{_mandir}/man3/lastlog2.3.* -%{_mandir}/man3/ll2_import_lastlog.3* -%{_mandir}/man3/ll2_new_context.3* -%{_mandir}/man3/ll2_read_all.3* -%{_mandir}/man3/ll2_read_entry.3* -%{_mandir}/man3/ll2_remove_entry.3* -%{_mandir}/man3/ll2_rename_user.3* -%{_mandir}/man3/ll2_unref_context.3* -%{_mandir}/man3/ll2_update_login_time.3* -%{_mandir}/man3/ll2_write_entry.3* - - -%files -n libblkid -%license Documentation/licenses/COPYING.LGPL-2.1-or-later -%{_libdir}/libblkid.so.* - -%files -n libblkid-devel -%license Documentation/licenses/COPYING.LGPL-2.1-or-later -%{_libdir}/libblkid.so -%{_includedir}/blkid -%{_mandir}/man3/libblkid.3* -%{_libdir}/pkgconfig/blkid.pc - - -%files -n libuuid -%license Documentation/licenses/COPYING.BSD-3-Clause -%{_libdir}/libuuid.so.* - -%files -n libuuid-devel -%license Documentation/licenses/COPYING.BSD-3-Clause Documentation/licenses/COPYING.LGPL-2.1-or-later -%{_libdir}/libuuid.so -%{_includedir}/uuid -%{_mandir}/man3/uuid.3* -%{_mandir}/man3/uuid_clear.3* -%{_mandir}/man3/uuid_compare.3* -%{_mandir}/man3/uuid_copy.3* -%{_mandir}/man3/uuid_generate.3* -%{_mandir}/man3/uuid_generate_random.3* -%{_mandir}/man3/uuid_generate_time.3* -%{_mandir}/man3/uuid_generate_time_safe.3* -%{_mandir}/man3/uuid_is_null.3* -%{_mandir}/man3/uuid_parse.3* -%{_mandir}/man3/uuid_time.3* -%{_mandir}/man3/uuid_unparse.3* -%{_libdir}/pkgconfig/uuid.pc - -%files -n %{pypkg}-libmount -%license Documentation/licenses/COPYING.LGPL-2.1-or-later -%{_libdir}/python*/site-packages/libmount/ - -%files -n util-linux-i18n -f %{name}.lang -%license Documentation/licenses/COPYING.GPL-2.0-or-later - -%files -n util-linux-script -%{_bindir}/script -%{_bindir}/scriptlive -%{_bindir}/scriptreplay -%{_mandir}/man1/script.1* -%{_mandir}/man1/scriptlive.1* -%{_mandir}/man1/scriptreplay.1* -%{compldir}/script -%{compldir}/scriptlive -%{compldir}/scriptreplay +%{_mandir}/man8/losetup.8* +/sbin/losetup %changelog -%autochangelog +* Fri Apr 6 2007 Karel Zak 2.13-0.51 +- fix #150493 - hwclock --systohc sets clock 0.5 seconds slow +- fix #220873 - starting RPC idmapd: Error: RPC MTAB does not exist. + (added rpc_pipefs to util-linux-2.13-umount-sysfs.patch) +- fix #227903 - mount -f does not work with NFS-mounted + +* Sat Mar 3 2007 David Zeuthen 2.13-0.50 +- include ConsoleKit session module by default (#229172) + +* Thu Jan 11 2007 Karel Zak 2.13-0.49 +- fix #222293 - undocumented partx,addpart, delpart + +* Sun Dec 17 2006 Karel Zak 2.13-0.48 +- fix paths in po/Makefile.in.in + +* Fri Dec 15 2006 Karel Zak 2.13-0.47 +- fix #217240 - namei ignores non-directory components instead of saying "Not a directory" +- fix #217241 - namei enforces symlink limits inconsistently + +* Wed Dec 14 2006 Karel Zak 2.13-0.46 +- fix leaking file descriptor in the more command (patch by Steve Grubb) + +* Wed Dec 13 2006 Karel Zak 2.13-0.45 +- use ncurses only +- fix #218915 - fdisk -b 4K +- upgrade to -pre7 release +- fix building problem with raw0 patch +- fix #217186 - /bin/sh: @MKINSTALLDIRS@: No such file or directory + (port po/Makefile.in.in from gettext-0.16) +- sync with FC6 and RHEL5: +- fix #216489 - SCHED_BATCH option missing in chrt +- fix #216712 - issues with raw device support ("raw0" is wrong device name) +- fix #216760 - mount with context or fscontext option fails + (temporarily disabled the support for additional contexts -- not supported by kernel yet) +- fix #211827 - Can't mount with additional contexts +- fix #213127 - mount --make-unbindable does not work +- fix #211749 - add -r option to losetup to create a read-only loop + +* Thu Oct 12 2006 Karel Zak 2.13-0.44 +- fix #209911 - losetup.8 updated (use dm-crypt rather than deprecated cryptoloop) +- fix #210338 - spurious error from '/bin/login -h $PHONENUMBER' (bug in IPv6 patch) +- fix #208634 - mkswap "works" without warning on a mounted device + +* Sun Oct 01 2006 Jesse Keating - 2.13-0.43 +- rebuilt for unwind info generation, broken in gcc-4.1.1-21 + +* Wed Sep 20 2006 Karel Zak 2.13-0.42 +- remove obsolete NFS code and patches (we use /sbin/mount.nfs + and /sbin/umount.nfs from nfs-utils now) +- move nfs.5 to nfs-utils + +* Fri Sep 15 2006 Karel Zak 2.13-0.41 +- fix #205038 - mount not allowing sloppy option (exports "-s" + to external /sbin/mount.nfs(4) calls) +- fix minor bug in util-linux-2.13-mount-twiceloop.patch +- fix #188193- util-linux should provide plugin infrastructure for HAL + +* Mon Aug 21 2006 Karel Zak 2.13-0.40 +- fix Makefile.am in util-linux-2.13-mount-context.patch +- fix #201343 - pam_securetty requires known user to work + (split PAM login configuration to two files) +- fix #203358 - change location of taskset binary to allow for early affinity work + +* Fri Aug 11 2006 Karel Zak 2.13-0.39 +- fix #199745 - non-existant simpleinit(8) mentioned in ctrlaltdel(8) + +* Thu Aug 10 2006 Dan Walsh 2.13-0.38 +- Change keycreate line to happen after pam_selinux open call so it gets correct context + +* Thu Aug 10 2006 Karel Zak 2.13-0.37 +- fix #176494 - last -i returns strange IP addresses (patch by Bill Nottingham) + +* Thu Jul 27 2006 Karel Zak 2.13-0.36 +- fix #198300, #199557 - util-linux "post" scriptlet failure + +* Thu Jul 27 2006 Steve Dickson 2.13-0.35 +- Added the -o fsc flag to nfsmount. + +* Wed Jul 26 2006 Karel Zak 2.13-0.34 +- rebuild + +* Tue Jul 18 2006 Karel Zak 2.13-0.33 +- add Requires(post): libselinux + +* Mon Jul 17 2006 Karel Zak 2.13-0.32 +- add IPv6 support to the login command (patch by Milan Zazrivec) +- fix #198626 - add keyinit instructions to the login PAM script + (patch by David Howells) + +* Wed Jul 12 2006 Jesse Keating - 2.13-0.31.1 +- rebuild + +* Tue Jul 11 2006 Karel Zak 2.13-0.31 +- cleanup dependences for post and preun scriptlets + +* Mon Jul 10 2006 Karsten Hopp 2.13-0.30 +- silence install in minimal buildroot without /var/log + +* Fri Jul 7 2006 Karel Zak 2.13-0.29 +- include the raw command for RHELs + +* Mon Jun 26 2006 Florian La Roche 2.13-0.28 +- move install-info parts from postun to preun + +* Wed Jun 21 2006 Dan Walsh 2.13-0.27 +- Only execute chcon on machines with selinux enabled + +* Wed Jun 14 2006 Steve Dickson 2.13-0.26 +- Remove unneeded header files from nfsmount.c + +* Mon Jun 12 2006 Karel Zak 2.13-0.25 +- fix #187014 - umount segfaults for normal user +- fix #183446 - cal not UTF-8-aware +- fix #186915 - mount does not translate SELIinux context options though libselinux +- fix #185500 - Need man page entry for -o context= mount option +- fix #152579 - missing info about /etc/mtab and /proc/mounts mismatch +- fix #183890 - missing info about possible ioctl() and fcntl() problems on NFS filesystem +- fix #191230 - using mount --move results in wrong data in /etc/mtab +- added mount subtrees support +- fdisk: wrong number of sectors for large disks (suse#160822) +- merge fdisk-xvd (#182553) with new fdisk-isfull (#188981) patch +- fix #181549 - raw(8) manpage has old information about dd +- remove asm/page.h usage + +* Wed May 24 2006 Dan Walsh 2.13-0.24 +- Remove requirement on restorecon, since we can do the same thing +- with chcon/matchpathcon, and not add requirement on policycoreutils + +* Wed May 24 2006 Steve Dickson 2.13-0.23 +- Fixed bug in patch for bz183713 which cause nfs4 mounts to fail. + +* Tue May 2 2006 Steve Dickson 2.13-0.22 +- Added syslog logging to background mounts as suggested + by a customer. + +* Mon May 1 2006 Steve Dickson 2.13-0.21 +- fix #183713 - foreground mounts are not retrying as advertised +- fix #151549 - Added 'noacl' mount flag +- fix #169042 - Changed nfsmount to try udp before using tcp when rpc-ing + the remote rpc.mountd (iff -o tcp is not specified). + This drastically increases the total number of tcp mounts + that can happen at once (ala autofs). + +* Wed Mar 9 2006 Jesse Keating 2.13-0.20 +- Better calling of restorecon as suggested by Bill Nottingham +- prereq restorecon to avoid ordering issues + +* Wed Mar 9 2006 Jesse Keating 2.13-0.19 +- restorecon /var/log/lastlog + +* Wed Mar 8 2006 Karel Zak 2.13-0.17 +- fix #181782 - mkswap selinux relabeling (fix util-linux-2.13-mkswap-selinux.patch) + +* Wed Feb 22 2006 Karel Zak 2.13-0.16 +- fix #181782 - mkswap should automatically add selinux label to swapfile +- fix #180730 - col is exiting with 1 (fix util-linux-2.12p-col-EILSEQ.patch) +- fix #181896 - broken example in schedutils man pages +- fix #177331 - login omits pam_acct_mgmt & pam_chauthtok when authentication is skipped. +- fix #177523 - umount -a should not unmount sysfs +- fix #182553 - fdisk -l inside xen guest shows no disks + +* Fri Feb 10 2006 Jesse Keating - 2.13-0.15.1 +- bump again for double-long bug on ppc(64) + +* Wed Feb 8 2006 Peter Jones 2.13-0.15 +- add "blockdev --rmpart N " and "blockdev --rmparts " + +* Tue Feb 07 2006 Jesse Keating - 2.13-0.14.1 +- rebuilt for new gcc4.1 snapshot and glibc changes + +* Thu Jan 19 2006 Steve Dickson 2.13-0.14 +- Updated the gssd_check() and idmapd_check(), used with + nfsv4 mounts, to looked for the correct file in /var/lock/subsys + which stops bogus warnings. + +* Tue Jan 3 2006 Karel Zak 2.13-0.13 +- fix #174676 - hwclock audit return code mismatch +- fix #176441: col truncates data +- fix #174111 - mount allows loopback devices to be mounted more than once to the same mount point +- better wide chars usage in the cal command (based on the old 'moremisc' patch) + +* Mon Dec 12 2005 Karel Zak 2.13-0.12 +- rebuilt + +* Fri Dec 09 2005 Jesse Keating +- rebuilt + +* Fri Nov 25 2005 Karel Zak 2.13-0.11.pre6 +- update to upstream version 2.13-pre6 +- fix #172203 - mount man page in RHEL4 lacks any info on cifs mount options + +* Mon Nov 7 2005 Karel Zak 2.13-0.10.pre5 +- fix #171337 - mkfs.cramfs doesn't work correctly with empty files + +* Fri Oct 28 2005 Karel Zak 2.13-0.9.pre5 +- rebuild + +* Wed Oct 26 2005 Karel Zak 2.13-0.8.pre5 +- updated version of the patch for hwclock audit + +* Thu Oct 20 2005 Karel Zak 2.13-0.7.pre5 +- fix #171337 - mkfs.cramfs dies creating installer image + +* Thu Oct 20 2005 Karel Zak 2.13-0.6.pre5 +- update to upstream 2.13pre5 +- remove separated cramfs1.1 (already in upstream package) +- remove odd symlink /usr/bin/mkcramfs -> ../../sbin/mkfs.cramfs +- fix #170171 - ipcs -lm always report "max total shared memory (kbytes) = 0" + +* Mon Oct 17 2005 Karel Zak 2.13-0.5.pre4 +* fix #170564 - add audit message to login + +* Fri Oct 7 2005 Karel Zak 2.13-0.4.pre4 +- fix #169628 - /usr/bin/floppy doesn't work with /dev/fd0 +- fix #168436 - login will attempt to run if it has no read/write access to its terminal +- fix #168434 - login's timeout can fail - needs to call siginterrupt(SIGALRM,1) +- fix #165253 - losetup missing option -a [new feature] +- update PAM files (replace pam_stack with new "include" PAM directive) +- remove kbdrate from src.rpm +- update to 2.13pre4 + +* Fri Oct 7 2005 Steve Dickson 2.13-0.3.pre3 +- fix #170110 - Documentation for 'rsize' and 'wsize' NFS mount options + is misleading + +* Fri Sep 2 2005 Karel Zak 2.13-0.3.pre2 +- fix #166923 - hwclock will not run on a non audit-enabled kernel +- fix #159410 - mkswap(8) claims max swap area size is 2 GB +- fix #165863 - swsusp swaps should be reinitialized +- change /var/log/lastlog perms to 0644 + +* Tue Aug 16 2005 Karel Zak 2.13-0.2.pre2 +- /usr/share/misc/getopt/* -move-> /usr/share/doc/util-linux-2.13/getopt-* +- the arch command marked as deprecated +- removed: elvtune, rescuept and setfdprm +- removed: man8/sln.8 (moved to man-pages, see #10601) +- removed REDAME.pg and README.reset +- .spec file cleanup +- added schedutils (commands: chrt, ionice and taskset) + +* Tue Jul 12 2005 Karel Zak 2.12p-9.7 +- fix #159339 - util-linux updates for new audit system +- fix #158737 - sfdisk warning for large partitions, gpt +- fix #150912 - Add ocfs2 support +- NULL is better than zero at end of execl() + +* Thu Jun 16 2005 Karel Zak 2.12p-9.5 +- fix #157656 - CRM 546998: Possible bug in vipw, changes permissions of /etc/shadow and /etc/gshadow +- fix #159339 - util-linux updates for new audit system (pam_loginuid.so added to util-linux-selinux.pamd) +- fix #159418 - sfdisk unusable - crashes immediately on invocation +- fix #157674 - sync option on VFAT mount destroys flash drives +- fix .spec file /usr/sbin/{hwclock,clock} symlinks + +* Wed May 4 2005 Jeremy Katz - 2.12p-9.3 +- rebuild against new libe2fsprogs (and libblkid) to fix cramfs auto-detection + +* Mon May 2 2005 Karel Zak 2.12p-9.2 +- rebuild + +* Mon May 2 2005 Karel Zak 2.12p-9 +- fix #156597 - look - doesn't work with separators + +* Mon Apr 25 2005 Karel Zak 2.12p-8 +- fix #154498 - util-linux login & pam session +- fix #155293 - man 5 nfs should include vers as a mount option +- fix #76467 - At boot time, fsck chokes on LVs listed by label in fstab +- new Source URL +- added note about ATAPI IDE floppy to fdformat.8 +- fix #145355 - Man pages for fstab and fstab-sync in conflict + +* Tue Apr 5 2005 Karel Zak 2.12p-7 +- enable build with libblkid from e2fsprogs-devel +- remove workaround for duplicated labels + +* Thu Mar 31 2005 Steve Dickson 2.12p-5 +- Fixed nfs mount to rollback correctly. + +* Fri Mar 25 2005 Karel Zak 2.12p-4 +- added /var/log/lastlog to util-linux (#151635) +- disabled 'newgrp' in util-linux (enabled in shadow-utils) (#149997, #151613) +- improved mtab lock (#143118) +- fixed ipcs typo (#151156) +- implemented mount workaround for duplicated labels (#116300) + +* Wed Mar 16 2005 Elliot Lee 2.12p-3 +- rebuilt + +* Fri Feb 25 2005 Steve Dickson 2.12p-2 +- Changed nfsmount to only use reserve ports when necessary + (bz# 141773) + +* Thu Dec 23 2004 Elliot Lee 2.12p-1 +- Update to util-linux-2.12p. This changes swap header format + from - you may need to rerun mkswap if you did a clean install of + FC3. + +* Fri Dec 10 2004 Elliot Lee 2.12j-1 +- Update to util-linux-2.12j + +* Tue Dec 7 2004 Steve Dickson 2.12a-20 +- Corrected a buffer overflow problem with nfs mounts. + (bz# 141733) + +* Wed Dec 01 2004 Elliot Lee 2.12a-19 +- Patches for various bugs. + +* Mon Nov 29 2004 Steve Dickson 2.12a-18 +- Made NFS mounts adhere to the IP protocol if specified on + command line as well as made NFS umounts adhere to the + current IP protocol. Fix #140016 + +* Thu Oct 14 2004 Elliot Lee 2.12a-16 +- Add include_raw macro, build with it off for Fedora + +* Wed Oct 13 2004 Stephen C. Tweedie - 2.12a-15 +- Add raw patch to allow binding of devices not yet in /dev + +* Wed Oct 13 2004 John (J5) Palmieri 2.12a-14 +- Add David Zeuthen's patch to enable the pamconsole flag #133941 + +* Wed Oct 13 2004 Stephen C. Tweedie 2.12a-13 +- Restore raw utils (bugzilla #130016) + +* Mon Oct 11 2004 Phil Knirsch 2.12a-12 +- Add the missing remote entry in pam.d + +* Wed Oct 6 2004 Steve Dickson +- Rechecked in some missing NFS mounting code. + +* Wed Sep 29 2004 Elliot Lee 2.12a-10 +- Make swaplabel support work with swapon -a -e + +* Tue Sep 28 2004 Steve Dickson +- Updated the NFS and NFS4 code to the latest CITI patch set + (in which they incorporate a number of our local patches). + +* Wed Sep 15 2004 Nalin Dahybhai 2.12a-8 +- Fix #132196 - turn on SELinux support at build-time. + +* Wed Sep 15 2004 Phil Knirsch 2.12a-7 +- Fix #91174 with pamstart.patch + +* Tue Aug 31 2004 Elliot Lee 2.12a-6 +- Fix #16415, #70616 with rdevman.patch +- Fix #102566 with loginman.patch +- Fix #104321 with rescuept.patch (just use plain lseek - we're in _FILE_OFFSET_BITS=64 land now) +- Fix #130016 - remove raw. +- Re-add agetty (replacing it with mgetty is too much pain, and mgetty is much larger) + +* Thu Aug 26 2004 Steve Dickson +- Made the NFS security checks more explicit to avoid confusion + (an upstream fix) +- Also removed a compilation warning + +* Wed Aug 11 2004 Alasdair Kergon +- Remove unused mount libdevmapper inclusion. + +* Wed Aug 11 2004 Alasdair Kergon +- Add device-mapper mount-by-label support +- Fix segfault in mount-by-label when a device without a label is present. + +* Wed Aug 11 2004 Steve Dickson +- Updated nfs man page to show that intr are on by + default for nfs4 + +* Thu Aug 05 2004 Jindrich Novy +- modified warning causing heart attack for >16 partitions, #107824 + +* Fri Jul 09 2004 Elliot Lee 2.12a-3 +- Fix #126623, #126572 +- Patch cleanup +- Remove agetty (use mgetty, agetty is broken) + +* Tue Jun 15 2004 Elliot Lee +- rebuilt + +* Thu Jun 03 2004 Elliot Lee 2.12a-1 +- Update to 2.12a +- Fix #122448 + +* Thu May 13 2004 Dan Walsh 2.12-19 +- Change pam_selinux to run last + +* Tue May 04 2004 Elliot Lee 2.12-18 +- Fix #122448 (autofs issues) + +* Fri Apr 23 2004 Elliot Lee 2.12-17 +- Fix #119157 by editing the patch +- Add patch145 to fix #119986 + +* Fri Apr 16 2004 Elliot Lee 2.12-16 +- Fix #118803 + +* Tue Mar 23 2004 Jeremy Katz 2.12-15 +- mkcramfs: use PAGE_SIZE for default blocksize (#118681) + +* Sat Mar 20 2004 +- Updated the nfs-mount.patch to correctly + handle the mounthost option and to ignore + servers that do not set auth flavors + +* Tue Mar 16 2004 Dan Walsh 2.12-13 +- Fix selinux ordering or pam for login + +* Tue Mar 16 2004 +- Make RPC error messages displayed with -v argument +- Added two checks to the nfs4 path what will print warnings + when rpc.idmapd and rpc.gssd are not running +- Ping NFS v4 servers before diving into kernel +- Make v4 mount interruptible which also make the intr option on by default + +* Sun Mar 13 2004 +- Reworked how the rpc.idmapd and rpc.gssd checks were + done due to review comments from upstream. +- Added rpc_strerror() so the '-v' flag will show RPC errors. + +* Sat Mar 13 2004 +- Added two checks to the nfs4 path what will print warnings + when rpc.idmapd and rpc.gssd are not running. + +* Thu Mar 11 2004 +- Reworked and updated the nfsv4 patches. + +* Wed Mar 10 2004 Dan Walsh +- Bump version + +* Wed Mar 10 2004 Steve Dickson +- Tried to make nfs error message a bit more meaninful +- Cleaned up some warnings + +* Sun Mar 7 2004 Steve Dickson +- Added pesudo flavors for nfsv4 mounts. +- Added BuildRequires: libselinux-devel and Requires: libselinux + when WITH_SELINUX is set. + +* Fri Feb 27 2004 Dan Walsh 2.12-5 +- check for 2.6.3 kernel in mount options + +* Mon Feb 23 2004 Elliot Lee 2.12-4 +- Remove /bin/kill for #116100 + +* Fri Feb 20 2004 Dan Walsh 2.12-3 +- rebuilt + +* Fri Feb 13 2004 Elliot Lee +- rebuilt + +* Thu Feb 12 2004 Elliot Lee 2.12-1 +- Final 2.12 has been out for ages - might as well use it. + +* Wed Jan 28 2004 Steve Dickson 2.12pre-4 +- Added mount patches that have NFS version 4 support + +* Mon Jan 26 2004 Elliot Lee 2.12pre-3 +- Provides: mount losetup + +* Mon Jan 26 2004 Dan Walsh 2.12pre-2 +- Add multiple to /etc/pam.d/login for SELinux + +* Thu Jan 15 2004 Elliot Lee 2.12pre-1 +- 2.12pre-1 +- Merge mount/losetup packages into the main package (#112324) +- Lose separate + +* Mon Nov 3 2003 Dan Walsh 2.11y-35.sel +- remove selinux code from login and use pam_selinux + +* Thu Oct 30 2003 Dan Walsh 2.11y-34.sel +- turn on selinux + +* Fri Oct 24 2003 Elliot Lee 2.11y-34 +- Add BuildRequires: texinfo (from a bug# I don't remember) +- Fix #90588 with mountman patch142. + +* Mon Oct 6 2003 Dan Walsh 2.11y-33 +- turn off selinux + +* Thu Sep 25 2003 Dan Walsh 2.11y-32.sel +- turn on selinux +- remove context selection + +* Fri Sep 19 2003 Elliot Lee 2.11y-31 +- Add patch140 (alldevs) to fix #101772. Printing the total size of + all devices was deemed a lower priority than having all devices + (e.g. /dev/ida/c0d9) displayed. + +* Fri Sep 12 2003 Dan Walsh 2.11y-31 +- turn off selinux + +* Fri Sep 12 2003 Dan Walsh 2.11y-30.sel +- turn on selinux + +* Fri Sep 5 2003 Elliot Lee 2.11y-28 +- Fix #103004, #103954 + +* Fri Sep 5 2003 Dan Walsh 2.11y-27 +- turn off selinux + +* Thu Sep 4 2003 Dan Walsh 2.11y-26.sel +- build with selinux + +* Mon Aug 11 2003 Elliot Lee 2.11y-25 +- Use urandom instead for mkcramfs + +* Tue Jul 29 2003 Dan Walsh 2.11y-24 +- add SELINUX 2.5 support + +* Wed Jul 23 2003 Elliot Lee 2.11y-22 +- #100433 patch + +* Mon Jun 14 2003 Elliot Lee 2.11y-20 +- #97381 patch + +* Wed Jun 04 2003 Elliot Lee +- rebuilt + +* Mon Apr 21 2003 Elliot Lee 2.11y-17 +- Change patch128 to improve ipcs -l + +* Fri Apr 11 2003 Elliot Lee 2.11y-16 +- Fix #85407 + +* Fri Apr 11 2003 Elliot Lee 2.11y-15 +- Change patch128 to util-linux-2.11f-ipcs-84243-86285.patch to get all +ipcs fixes + +* Thu Apr 10 2003 Matt Wilson 2.11y-14 +- fix last login date display on AMD64 (#88574) + +* Mon Apr 7 2003 Jeremy Katz 2.11y-13 +- include sfdisk on ppc + +* Fri Mar 28 2003 Jeremy Katz 2.11y-12 +- add patch from msw to change mkcramfs blocksize with a command line option + +* Tue Mar 25 2003 Phil Knirsch 2.11y-11 +- Fix segfault on s390x due to wrong usage of BLKGETSIZE. + +* Thu Mar 13 2003 Elliot Lee 2.11y-10 +- Really apply the ipcs patch. Doh. + +* Mon Feb 24 2003 Elliot Lee +- rebuilt + +* Wed Feb 19 2003 Elliot Lee 2.11y-8 +- ipcs-84243.patch to fix #84243 + +* Thu Feb 13 2003 Yukihiro Nakai 2.11y-7 +- Update moremisc patch to fix swprintf()'s minimum field (bug #83361). + +* Mon Feb 03 2003 Elliot Lee 2.11y-6 +- Fix mcookie segfault on many 64-bit architectures (bug #83345). + +* Mon Feb 03 2003 Tim Waugh 2.11y-5 +- Fix underlined multibyte characters (bug #83376). + +* Sun Feb 02 2003 Florian La Roche +- rebuild to have again a s390 rpm +- disable some more apps for mainframe + +* Wed Jan 29 2003 Elliot Lee 2.11y-4 +- util-linux-2.11y-umask-82552.patch + +* Wed Jan 22 2003 Tim Powers +- rebuilt + +* Mon Jan 13 2003 Elliot Lee 2.11y-2 +- Fix #81069, #75421 + +* Mon Jan 13 2003 Elliot Lee 2.11y-1 +- Update to 2.11y +- Fix #80953 +- Update patch0, patch107, patch117, patch120 for 2.11y +- Remove patch60, patch61, patch207, patch211, patch212, patch119, patch121 +- Remove patch122, patch200 + +* Wed Oct 30 2002 Elliot Lee 2.11w-2 +- Remove some crack/unnecessary patches while submitting stuff upstream. +- Build with -D_FILE_OFFSET_BITS=64 + +* Tue Oct 29 2002 Elliot Lee 2.11w-1 +- Update to 2.11w, resolve patch conflicts + +* Tue Oct 08 2002 Phil Knirsch 2.11r-10hammer.3 +- Extended util-linux-2.11b-s390x patch to work again. + +* Thu Oct 03 2002 Elliot Lee 2.11r-10hammer.2 +- Add patch122 for hwclock on x86_64 + +* Thu Sep 12 2002 Than Ngo 2.11r-10hammer.1 +- Fixed pam config files + +* Wed Sep 11 2002 Bernhard Rosenkraenzer 2.11r-10hammer +- Port to hammer + +* Fri Aug 30 2002 Elliot Lee 2.11r-10 +- Patch120 (hwclock) to fix #72140 +- Include isosize util + +* Wed Aug 7 2002 Elliot Lee 2.11r-9 +- Patch120 (skipraid2) to fix #70353, because the original patch was +totally useless. + +* Fri Aug 2 2002 Elliot Lee 2.11r-8 +- Patch119 (fdisk-add-primary) from #67898 + +* Wed Jul 24 2002 Elliot Lee 2.11r-7 +- Really add the gptsize patch, instead of what I think the patch says. +(+1) + +* Tue Jul 23 2002 Elliot Lee 2.11r-6 +- Add the sp[n].size part of the patch from #69603 + +* Mon Jul 22 2002 Florian La Roche +- adjust mainframe patches + +* Tue Jul 2 2002 Bill Nottingham 2.11r-4 +- only require usermode if we're shipping kbdrate here + +* Fri Jun 28 2002 Trond Eivind Glomsrod 2.11r-3 +- Port the large swap patch to new util-linux... the off_t changes + now in main aren't sufficient + +* Thu Jun 27 2002 Elliot Lee 2.11r-2 +- Remove swapondetect (patch301) until it avoids possible false positives. + +* Thu Jun 27 2002 Elliot Lee 2.11r-1 +- Update to 2.11r, wheeee +- Remove unused patches + +* Thu Jun 27 2002 Elliot Lee 2.11n-19 +- Make a note here that this package was the source of the single change +contained in util-linux-2.11f-18 (in 7.2/Alpha), and also contains the +rawman patch from util-linux-2.11f-17.1 (in 2.1AS). +- Package has no runtime deps on slang, so remove the BuildRequires: +slang-devel. + +* Fri Jun 21 2002 Tim Powers +- automated rebuild + +* Thu Jun 20 2002 Elliot Lee 2.11n-17 +- Fix teg's swapondetect patch to not print out the usage message when +'swapon -a -e' is run. (#66690) (edit existing patch) +- Apply hjl's utmp handling patch (#66950) (patch116) +- Fix fdisk man page notes on IDE disk partition limit (#64013) (patch117) +- Fix mount.8 man page notes on vfat shortname option (#65628) (patch117) +- Fix possible cal overflow with widechars (#67090) (patch117) + +* Tue Jun 11 2002 Trond Eivind Glomsrod 2.11n-16 +- support large swap partitions +- add '-d' option to autodetect available swap partitions + +* Thu May 23 2002 Tim Powers +- automated rebuild + +* Wed May 15 2002 Elliot Lee 2.11n-14 +- Remove kbdrate (again). + +* Mon Apr 29 2002 Florian La Roche +- adjust mainframe patches to apply to current rpm +- do not include fdisk until it is fixed to work on mainframe + +* Mon Apr 01 2002 Elliot Lee 2.11n-12 +- Don't strip binaries - rpm does it for us. + +* Sun Mar 31 2002 Elliot Lee 2.11n-11 +- Apply patch115 from ejb@ql.org for bug #61868 + +* Wed Mar 27 2002 Elliot Lee 2.11n-10 +- Finish fixing #60675 (ipcrm man page), updated the patch. +- Fix #61203 (patch114 - dumboctal.patch). + +* Tue Mar 12 2002 Elliot Lee 2.11n-9 +- Update ctty3 patch to ignore SIGHUP while dropping controlling terminal + +* Fri Mar 08 2002 Elliot Lee 2.11n-8 +- Update ctty3 patch to drop controlling terminal before forking. + +* Fri Mar 08 2002 Elliot Lee 2.11n-7 + Fix various bugs: +- Add patch110 (skipraid) to properly skip devices that are part of a RAID array. +- Add patch111 (mkfsman) to update the mkfs man page's "SEE ALSO" section. +- remove README.cfdisk +- Include partx +- Fix 54741 and related bugs for good(hah!) with patch113 (ctty3) + +* Wed Mar 06 2002 Elliot Lee 2.11n-6 +- Put kbdrate in, add usermode dep. + +* Tue Feb 26 2002 Elliot Lee 2.11n-5 +- Fix #60363 (tweak raw.8 man page, make rawdevices.8 symlink). + +* Tue Jan 28 2002 Bill Nottingham 2.11n-4 +- remove kbdrate (fixes kbd conflict) + +* Fri Dec 28 2001 Elliot Lee 2.11n-3 +- Add util-linux-2.11n-ownerumount.patch (#56593) +- Add patch102 (util-linux-2.11n-colrm.patch) to fix #51887 +- Fix #53452 nits. +- Fix #56953 (remove tunelp on s390) +- Fix #56459, and in addition switch to using sed instead of perl. +- Fix #58471 +- Fix #57300 +- Fix #37436 +- Fix #32132 + +* Wed Dec 26 2001 Elliot Lee 2.11n-1 +- Update to 2.11n +- Merge mount/losetup back in. + +* Tue Dec 04 2001 Elliot Lee 2.11f-17 +- Add patch38 (util-linux-2.11f-ctty2.patch) to ignore SIGINT/SIGTERM/SIGQUIT in the parent, so that ^\ won't break things. + +* Fri Nov 09 2001 Elliot Lee 2.11f-16 +- Merge patches 36, 75, 76, and 77 into patch #37, to attempt resolve all the remaining issues with #54741. + +* Wed Oct 24 2001 Florian La Roche +- add nologin man-page for s390/s390x + +* Wed Oct 24 2001 Bernhard Rosenkraenzer 2.11f-14 +- Don't build kbdrate on s390/s390x +- Don't make the pivot_root.8 man page executable(!) + +* Tue Oct 23 2001 Elliot Lee 2.11f-13 +- Patch/idea #76 from HJL, fixes bug #54741 (race condition in login +acquisition of controlling terminal). + +* Thu Oct 11 2001 Bill Nottingham +- fix permissions problem with vipw & shadow files, again (doh!) + +* Tue Oct 09 2001 Erik Troan +- added patch from Olaf Kirch to fix possible pwent structure overwriting + +* Fri Sep 28 2001 Elliot Lee 2.11f-10 +- fdisk patch from arjan + +* Sun Aug 26 2001 Elliot Lee 2.11f-9 +- Don't include cfdisk, since it appears to be an even bigger pile of junk than fdisk? :) + +* Wed Aug 1 2001 Tim Powers +- don't require usermode + +* Mon Jul 30 2001 Elliot Lee 2.11f-7 +- Incorporate kbdrate back in. + +* Mon Jul 30 2001 Bill Nottingham +- revert the patch that calls setsid() in login that we had reverted + locally but got integrated upstream (#46223) + +* Tue Jul 24 2001 Florian La Roche +- correct s390x patch + +* Mon Jul 23 2001 Elliot Lee +- Add my megapatch (various bugs) +- Include pivot_root (#44828) + +* Thu Jul 12 2001 Bill Nottingham +- make shadow files 0400, not 0600 + +* Wed Jul 11 2001 Bill Nottingham +- fix permissions problem with vipw & shadow files + +* Mon Jun 18 2001 Florian La Roche +- update to 2.11f, remove any merged patches +- add s390x patches for somewhat larger swap + +* Thu Jun 14 2001 Erik Troan +- added --verbose patch to mkcramfs; it's much quieter by default now + +* Tue May 22 2001 Erik Troan +- removed warning about starting partitions on cylinder 0 -- swap version2 + makes it unnecessary + +* Wed May 9 2001 Bernhard Rosenkraenzer 2.11b-2 +- Fix up s390x support + +* Mon May 7 2001 Bernhard Rosenkraenzer 2.11b-1 +- Fix up login for real (a console session should be the controlling tty) + by reverting to 2.10s code (#36839, #36840, #39237) +- Add man page for agetty (#39287) +- 2.11b, while at it + +* Fri Apr 27 2001 Preston Brown 2.11a-4 +- /sbin/nologin from OpenBSD added. + +* Fri Apr 20 2001 Bernhard Rosenkraenzer 2.11a-3 +- Fix up login - exiting immediately even if the password is correct + is not exactly a nice feature. +- Make definite plans to kill people who update login without checking + if the new version works ;) + +* Tue Apr 17 2001 Erik Troan +- upgraded to 2.11a (kbdrate moved to kbd, among other things) +- turned off ALLOW_VCS_USE +- modified mkcramfs to not use a large number of file descriptors +- include mkfs.bfs + +* Sun Apr 8 2001 Matt Wilson +- changed Requires: kernel >= 2.2.12-7 to Conflicts: kernel < 2.2.12-7 + (fixes a initscripts -> util-linux -> kernel -> initscripts prereq loop) + +* Tue Mar 20 2001 Matt Wilson +- patched mkcramfs to use the PAGE_SIZE from asm/page.h instead of hard + coding 4096 (fixes mkcramfs on alpha...) + +* Mon Mar 19 2001 Matt Wilson +- added mkcramfs (from linux/scripts/mkcramfs) + +* Mon Feb 26 2001 Tim Powers +- fixed bug #29131, where ipc.info didn't have an info dir entry, + added the dir entry to ipc.texi (Patch58) + +* Fri Feb 23 2001 Preston Brown +- use lang finder script +- install info files + +* Thu Feb 08 2001 Erik Troan +- reverted login patch; seems to cause problems +- added agetty + +* Wed Feb 07 2001 Erik Troan +- updated kill man page +- added patch to fix vipw race +- updated vipw to edit /etc/shadow and /etc/gshadow, if appropriate +- added patch to disassociate login from tty, session, and pgrp + +* Tue Feb 06 2001 Erik Troan +- fixed problem w/ empty extended partitions +- added patch to fix the date in the more man page +- set OPT to pass optimization flags to make rather then RPM_OPT_FLAG +- fixed fdisk -l /Proc/partitions parsing +- updated to 2.10s + +* Tue Jan 23 2001 Preston Brown +- danish translations added + +* Mon Jan 15 2001 Nalin Dahyabhai +- fix segfault in login in btmp patch (#24025) + +* Mon Dec 11 2000 Oliver Paukstadt +- ported to s390 + +* Wed Nov 01 2000 Florian La Roche +- update to 2.10p +- update patch37 to newer fdisk version + +* Mon Oct 9 2000 Jeff Johnson +- update to 2.10o +- fdformat: fixed to work with kernel 2.4.0test6 (Marek Wojtowicz) +- login: not installed suid +- getopt: by default install aux files in /usr/share/misc +- update to 2.10n: +- added blockdev.8 +- change to elvtune (andrea) +- fixed overrun in agetty (vii@penguinpowered.com) +- shutdown: prefer umounting by mount point (rgooch) +- fdisk: added plan9 +- fdisk: remove empty links in chain of extended partitions +- hwclock: handle both /dev/rtc and /dev/efirtc (Bill Nottingham) +- script: added -f (flush) option (Ivan Schreter) +- script: added -q (quiet) option (Per Andreas Buer) +- getopt: updated to version 1.1.0 (Frodo Looijaard) +- Czech messages (Jiri Pavlovsky) +- login.1 man page had not /var/spool/mail path (#16998). +- sln.8 man page (but not executable) included (#10601). +- teach fdisk 0xde(Dell), 0xee(EFI GPT), 0xef(EFI FAT) partitions (#17610). + +* Wed Aug 30 2000 Matt Wilson +- rebuild to cope with glibc locale binary incompatibility, again + +* Mon Aug 14 2000 Jeff Johnson +- setfdprm should open with O_WRONLY, not 3. + +* Fri Aug 11 2000 Jeff Johnson +- fdformat should open with O_WRONLY, not 3. + +* Fri Jul 21 2000 Nalin Dahyabhai +- make 'look' look in /usr/share/dict + +* Fri Jul 21 2000 Bill Nottingham +- put /usr/local/sbin:/usr/local/bin in root's path + +* Wed Jul 19 2000 Jakub Jelinek +- rebuild to cope with glibc locale binary incompatibility + +* Thu Jul 13 2000 Prospector +- automatic rebuild + +* Mon Jul 10 2000 Bill Nottingham +- enable hwclock to use /dev/efirtc on ia64 (gettext is fun. :( ) + +* Mon Jul 3 2000 Bill Nottingham +- move cfdisk to /usr/sbin, it depends on /usr stuff +- add rescuept + +* Fri Jun 23 2000 Bernhard Rosenkraenzer +- point more at the correct path to vi (for "v"), Bug #10882 + +* Sun Jun 4 2000 Jeff Johnson +- FHS packaging changes. + +* Thu Jun 1 2000 Nalin Dahyabhai +- modify PAM setup to use system-auth + +* Mon May 1 2000 Bill Nottingham +- eek, where did login go? (specfile tweaks) + +* Mon Apr 17 2000 Bernhard Rosenkraenzer +- 2.10k +- fix compilation with current glibc + +* Tue Mar 21 2000 Bernhard Rosenkraenzer +- 2.10h + +* Tue Mar 7 2000 Jeff Johnson +- rebuild for sparc baud rates > 38400. + +* Sat Mar 4 2000 Matt Wilson +- use snprintf - not sprintf - when doing + sprintf ("%s\n", _("Some string")) to avoid overflows and + segfaults. + +* Mon Feb 21 2000 Jeff Johnson +- raw control file was /dev/raw, now /dev/rawctl. +- raw access files were /dev/raw*, now /dev/raw/raw*. + +* Thu Feb 17 2000 Erik Troan +- -v argument to mkswap wasn't working + +* Thu Feb 10 2000 Jakub Jelinek +- Recognize 0xfd on Sun disklabels as RAID + +* Tue Feb 8 2000 Bill Nottingham +- more lives in /bin, and was linked against /usr/lib/libnurses. Bad. + +* Thu Feb 03 2000 Jakub Jelinek +- update to 2.10f +- fix issues in the new realpath code, avoid leaking memory + +* Tue Feb 01 2000 Cristian Gafton +- rebuild to fix dependencies +- add NFSv3 patches + +* Fri Jan 28 2000 Bill Nottingham +- don't require csh + +* Mon Jan 24 2000 Nalin Dahyabhai +- update to 2.10e +- add rename + +* Thu Jan 20 2000 Jeff Johnson +- strip newlines in logger input. + +* Mon Jan 10 2000 Jeff Johnson +- rebuild with correct ncurses libs. + +* Tue Dec 7 1999 Matt Wilson +- updated to util-linux 2.10c +- deprecated IMAP login mail notification patch17 +- deprecated raw patch22 +- depricated readprofile patch24 + +* Tue Dec 7 1999 Bill Nottingham +- add patch for readprofile + +* Thu Nov 18 1999 Michael K. Johnson +- tunelp should come from util-linux + +* Tue Nov 9 1999 Jakub Jelinek +- kbdrate cannot use /dev/port on sparc. + +* Wed Nov 3 1999 Jakub Jelinek +- fix kbdrate on sparc. + +* Wed Oct 27 1999 Bill Nottingham +- ship hwclock on alpha. + +* Tue Oct 5 1999 Bill Nottingham +- don't ship symlinks to rdev if we don't ship rdev. + +* Tue Sep 07 1999 Cristian Gafton +- add rawIO support from sct + +* Mon Aug 30 1999 Preston Brown +- don't display "new mail" message when the only piece of mail is from IMAP + +* Fri Aug 27 1999 Michael K. Johnson +- kbdrate is now a console program + +* Thu Aug 26 1999 Jeff Johnson +- hostid is now in sh-utils. On sparc, install hostid as sunhostid (#4581). +- update to 2.9w: +- Updated mount.8 (Yann Droneaud) +- Improved makefiles +- Fixed flaw in fdisk + +* Tue Aug 10 1999 Jeff Johnson +- tsort is now in textutils. + +* Wed Aug 4 1999 Bill Nottingham +- turn off setuid bit on login. Again. :( + +* Tue Aug 3 1999 Peter Jones, +- hostid script for sparc (#3803). + +* Tue Aug 03 1999 Christian 'Dr. Disk' Hechelmann +- added locale message catalogs to %file +- added patch for non-root build +- vigr.8 and /usr/lib/getopt man-page was missing from file list +- /etc/fdprm really is a config file + +* Fri Jul 23 1999 Jeff Johnson +- update to 2.9v: +- cfdisk no longer believes the kernel's HDGETGEO + (and may be able to partition a 2 TB disk) + +* Fri Jul 16 1999 Jeff Johnson +- update to 2.9u: +- Czech more.help and messages (Jiri Pavlovsky) +- Japanese messages (Daisuke Yamashita) +- fdisk fix (Klaus G. Wagner) +- mount fix (Hirokazu Takahashi) +- agetty: enable hardware flow control (Thorsten Kranzkowski) +- minor cfdisk improvements +- fdisk no longer accepts a default device +- Makefile fix + +* Tue Jul 6 1999 Jeff Johnson +- update to 2.9t: +- national language support for hwclock +- Japanese messages (both by Daisuke Yamashita) +- German messages and some misc i18n fixes (Elrond) +- Czech messages (Jiri Pavlovsky) +- wall fixed for /dev/pts/xx ttys +- make last and wall use getutent() (Sascha Schumann) + [Maybe this is bad: last reading all of wtmp may be too slow. + Revert in case people complain.] +- documented UUID= and LABEL= in fstab.5 +- added some partition types +- swapon: warn only if verbose + +* Fri Jun 25 1999 Jeff Johnson +- update to 2.9s. + +* Sat May 29 1999 Jeff Johnson +- fix mkswap sets incorrect bits on sparc64 (#3140). + +* Thu Apr 15 1999 Jeff Johnson +- on sparc64 random ioctls on clock interface cause kernel messages. + +* Thu Apr 15 1999 Jeff Johnson +- improved raid patch (H.J. Lu). + +* Wed Apr 14 1999 Michael K. Johnson +- added patch for smartraid controllers + +* Sat Apr 10 1999 Cristian Gafton +- fix logging problems caused by setproctitle and PAM interaction + (#2045) + +* Wed Mar 31 1999 Jeff Johnson +- include docs and examples for sfdisk (#1164) + +* Mon Mar 29 1999 Matt Wilson +- rtc is not working properly on alpha, we can't use hwclock yet. + +* Fri Mar 26 1999 Cristian Gafton +- add patch to make mkswap more 64 bit friendly... Patch from + eranian@hpl.hp.com (ahem!) + +* Thu Mar 25 1999 Jeff Johnson +- include sfdisk (#1164) +- fix write (#1784) +- use positive logic in spec file (%ifarch rather than %ifnarch). +- (re)-use 1st matching utmp slot if search by mypid not found. +- update to 2.9o +- lastb wants bad logins in wtmp clone /var/run/btmp (#884) + +* Thu Mar 25 1999 Jakub Jelinek +- if hwclock is to be compiled on sparc, + it must actually work. Also, it should obsolete + clock, otherwise it clashes. +- limit the swap size in mkswap for 2.2.1+ kernels + by the actual maximum size kernel can handle. +- fix kbdrate on sparc, patch by J. S. Connell + + +* Wed Mar 24 1999 Matt Wilson +- added pam_console back into pam.d/login + +* Tue Mar 23 1999 Matt Wilson +- updated to 2.9i +- added hwclock for sparcs and alpha + +* Mon Mar 22 1999 Erik Troan +- added vigr to file list + +* Sun Mar 21 1999 Cristian Gafton +- auto rebuild in the new build environment (release 12) + +* Thu Mar 18 1999 Cristian Gafton +- remove most of the ifnarch arm stuff + +* Mon Mar 15 1999 Michael Johnson +- added pam_console.so to /etc/pam.d/login + +* Thu Feb 4 1999 Michael K. Johnson +- .perms patch to login to make it retain root in parent process + for pam_close_session to work correctly + +* Tue Jan 12 1999 Jeff Johnson +- strip fdisk in buildroot correctly (#718) + +* Mon Jan 11 1999 Cristian Gafton +- have fdisk compiled on sparc and arm + +* Mon Jan 11 1999 Erik Troan +- added beos partition type to fdisk + +* Wed Dec 30 1998 Cristian Gafton +- incorporate fdisk on all arches + +* Sat Dec 5 1998 Jeff Johnson +- restore PAM functionality at end of login (Bug #201) + +* Thu Dec 03 1998 Cristian Gafton +- patch top build on the arm without PAM and related utilities, for now. +- build hwclock only on intel + +* Wed Nov 18 1998 Cristian Gafton +- upgraded to version 2.9 + +* Thu Oct 29 1998 Bill Nottingham +- build for Raw Hide (slang-1.2.2) +- patch kbdrate wackiness so it builds with egcs + +* Tue Oct 13 1998 Erik Troan +- patched more to use termcap + +* Mon Oct 12 1998 Erik Troan +- added warning about alpha/bsd label starting cylinder + +* Mon Sep 21 1998 Erik Troan +- use sigsetjmp/siglongjmp in more rather then sig'less versions + +* Fri Sep 11 1998 Jeff Johnson +- explicit attrs for setuid/setgid programs + +* Thu Aug 27 1998 Cristian Gafton +- sln is now included in glibc + +* Sun Aug 23 1998 Jeff Johnson +- add cbm1581 floppy definitions (problem #787) + +* Mon Jun 29 1998 Jeff Johnson +- remove /etc/nologin at end of shutdown/halt. + +* Fri Jun 19 1998 Jeff Johnson +- add mount/losetup. + +* Thu Jun 18 1998 Jeff Johnson +- update to 2.8 with 2.8b clean up. hostid now defunct? + +* Mon Jun 01 1998 David S. Miller +- "more" now works properly on sparc + +* Sat May 02 1998 Jeff Johnson +- Fix "fdisk -l" fault on mounted cdrom. (prob #513) + +* Fri Apr 24 1998 Prospector System +- translations modified for de, fr, tr + +* Sat Apr 11 1998 Cristian Gafton +- manhattan rebuild + +* Mon Dec 29 1997 Erik Troan +- more didn't suspend properly on glibc +- use proper tc*() calls rather then ioctl's + +* Sun Dec 21 1997 Cristian Gafton +- fixed a security problem in chfn and chsh accepting too + long gecos fields + +* Fri Dec 19 1997 Mike Wangsmo +- removed "." from default path + +* Tue Dec 02 1997 Cristian Gafton +- added (again) the vipw patch + +* Wed Oct 22 1997 Michael Fulbright +- minor cleanups for glibc 2.1 + +* Fri Oct 17 1997 Michael Fulbright +- added vfat32 filesystem type to list recognized by fdisk + +* Fri Oct 10 1997 Erik Troan +- don't build clock on the alpha +- don't install chkdupexe + +* Thu Oct 02 1997 Michael K. Johnson +- Update to new pam standard. +- BuildRoot. + +* Thu Sep 25 1997 Cristian Gafton +- added rootok and setproctitle patches +- updated pam config files for chfn and chsh + +* Tue Sep 02 1997 Erik Troan +- updated MCONFIG to automatically determine the architecture +- added glibc header hacks to fdisk code +- rdev is only available on the intel + +* Fri Jul 18 1997 Erik Troan +- update to util-linux 2.7, fixed login problems + +* Wed Jun 25 1997 Erik Troan +- Merged Red Hat changes into main util-linux source, updated package to + development util-linux (nearly 2.7). + +* Tue Apr 22 1997 Michael K. Johnson +- LOG_AUTH --> LOG_AUTHPRIV in login and shutdown + +* Mon Mar 03 1997 Michael K. Johnson +- Moved to new pam and from pam.conf to pam.d + +* Tue Feb 25 1997 Michael K. Johnson +- pam.patch differentiated between different kinds of bad logins. + In particular, "user does not exist" and "bad password" were treated + differently. This was a minor security hole. diff --git a/uuidd-tmpfiles.conf b/uuidd-tmpfiles.conf deleted file mode 100644 index 4158c7d..0000000 --- a/uuidd-tmpfiles.conf +++ /dev/null @@ -1 +0,0 @@ -d /run/uuidd 2775 uuidd uuidd