commit util-linux for openSUSE:Factory
![](https://seccdn.libravatar.org/avatar/128a7b98d536a9cf9b4d4d5a90d63475.jpg?s=120&d=mm&r=g)
Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package util-linux for openSUSE:Factory checked in at 2021-02-02 14:24:25 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/util-linux (Old) and /work/SRC/openSUSE:Factory/.util-linux.new.28504 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Package is "util-linux" Tue Feb 2 14:24:25 2021 rev:245 rq:867890 version:2.36.1 Changes: -------- --- /work/SRC/openSUSE:Factory/util-linux/python3-libmount.changes 2020-06-12 21:35:07.487276038 +0200 +++ /work/SRC/openSUSE:Factory/.util-linux.new.28504/python3-libmount.changes 2021-02-02 14:24:28.443280057 +0100 @@ -1,0 +2,128 @@ +Fri Jan 29 02:18:58 UTC 2021 - Stanislav Brabec <sbrabec@suse.com> + +- Do not require libeconf-devel on products without /usr/etc. + +------------------------------------------------------------------- +Mon Jan 25 17:07:55 UTC 2021 - Ludwig Nussel <lnussel@suse.de> + +- s/--enable-vendordir/--with-vendordir/ +- remove pam_securetty line again. As long as there is no agreement + from pam side having it would fail openQA (boo#1033626) + +------------------------------------------------------------------- +Sat Jan 16 02:30:02 UTC 2021 - Stanislav Brabec <sbrabec@suse.com> + +- Update to version 2.36.1: + * chrt: use SCHED_FLAG_RESET_ON_FORK for sched_setattr() + * fallocate: fix --dig-holes at end of files + * fdisk: always report fdisk_create_disklabel() errors + * flock: keep -E exit status more restrictive + * fstrim: remove fstab condition from fstrim.timer + * hexdump: automatically use -C when called as hd + * hwclock: add fallback if SYS_settimeofday does not exist, fix + SYS_settimeofday fallback + * libblkid: allow a lot of mac partitions, fix Atari prober logic, + limit amount of parsed partitions + * more libfdisk improvements + * losetup: avoid infinite busy loop, increase limit of setup + attempts + * lsblk: fix -T optional argument, fix SCSI_IDENT_SERIAL, print + zero rather than empty SIZE, read ID_SCSI_IDENT_SERIAL if + available + * lscpu: Add FUJITSU aarch64 A64FX cpupart, Even more Arm part + numbers, avoid segfault on PowerPC systems with valid hardware + configurations (bsc#1175623) + * mount: Add support for "nosymfollow" mount option. + * pg: fix wcstombs() + * sfdisk: correct --json --dump false exclusive, fix backward + --move-data + * vipw: fix short write handling in copyfile + * whereis: fix out of boundary read, support zst compressed man + pages + * minor code improvements and fixes + * minor licensing changes + * improve docs +- Require both group(uuidd) and user(uuidd). + +------------------------------------------------------------------- +Thu Nov 26 20:15:46 UTC 2020 - Jan Engelhardt <jengelh@inai.de> + +- Do search /usr/sbin for mount helpers. (This drops /sbin/fs, + /sbin/fs.d, which we do not use in openSUSE.) + +------------------------------------------------------------------- +Fri Nov 20 15:06:37 UTC 2020 - Ludwig Nussel <lnussel@suse.de> + +- prepare usrmerge (boo#1029961) + +------------------------------------------------------------------- +Wed Nov 4 11:07:03 UTC 2020 - Dr. Werner Fink <werner@suse.de> + +- Modernize patch util-linux-sulogin4bsc1175514.patch + * Try to autoconfigure broken serial lines + +------------------------------------------------------------------- +Fri Oct 30 14:03:47 UTC 2020 - Dr. Werner Fink <werner@suse.de> + +- Add patch util-linux-sulogin4bsc1175514.patch + Avoid sulogin failing on not existing or not functional console + devices (bsc#1175514) + +------------------------------------------------------------------- +Wed Sep 16 00:10:11 UTC 2020 - Stanislav Brabec <sbrabec@suse.com> + +- Fix default permissions of wall and write. +- Update to version 2.36: + * blkdiscard(8) refuses to proceed if filesystem or RAID + signatures are found in interactive mode (executed on a + terminal). The option --force is required to the discard + data. + * new commands irqtop(1) and lsirq(1)to monitor kernel + interrupts. + * cal(1) provides a new --vertical command line option. + * blkzone(8) implements open/close/finish commands now. + * unshare(1) and nsenter(1) commands support the time namespace + now. + * agetty(8) now supports multiple paths in the option + --issue-file. + * fdisk(8), sfdisk(8), cfdisk(8), mkswap(8) and wipefs(8) now + support block devices locking by flock(2), new command line + option --lock and $LOCK_BLOCK_DEVICE environmental variable. + * dmesg(1) new command line option --follow-new to wait and + print only new kernel messages. + * fdisk(8) new command line option --list-details and + --noauto-pt. + * fdisk(8) and sfdisk(8) support user-friendly aliases for + partition types. + * fstrim(8) supports new command line option --listed-in. + * libfdisk provides API to relocate GPT backup header. New + command line option "sfdisk --relocate". + * mount(8) now supports mount by ID= tag. + * login(1) supports list of "message of the day". + * All tools which read /etc/login.defs is possible to compile + with libeconf now. + * more(1) has been refactored. + * man pages cleanup + * other fixes and improvements, see: + https://mirrors.edge.kernel.org/pub/linux/utils/util-linux/v2.36/v2.36-Relea... +- Refresh Add-documentation-on-blacklisted-modules-to-mount-8-.patch. +- Drop upstreamed libeconf.patch, + libmount-Avoid-triggering-autofs-in-lookup_umount_fs.patch. +- util-linux-login_defs-check.sh: Perform all steps to integrate + MOTD_FIRSTONLY. +- Update baselibs.conf. + +------------------------------------------------------------------- +Fri May 22 11:15:01 UTC 2020 - Fabian Vogt <fvogt@suse.com> + +- Use plain #!/bin/sh for flushb + +------------------------------------------------------------------- +Thu May 21 12:48:40 UTC 2020 - Marketa Calabkova <mcalabkova@suse.com> + +- Include pam_securetty in login.pamd again (bsc#1033626) +- Update to 2.35.2 + * make glibc 2.31 compatible +- Dropped unneeded patch libfdisk-script-accept-sector-size.patch + +------------------------------------------------------------------- util-linux-systemd.changes: same change util-linux.changes: same change Old: ---- libeconf.patch libfdisk-script-accept-sector-size.patch libmount-Avoid-triggering-autofs-in-lookup_umount_fs.patch util-linux-2.35.1.tar.sign util-linux-2.35.1.tar.xz New: ---- util-linux-2.36.1.tar.sign util-linux-2.36.1.tar.xz util-linux-sulogin4bsc1175514.patch ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ python3-libmount.spec ++++++ --- /var/tmp/diff_new_pack.IeuCrN/_old 2021-02-02 14:24:30.695283559 +0100 +++ /var/tmp/diff_new_pack.IeuCrN/_new 2021-02-02 14:24:30.711283585 +0100 @@ -1,7 +1,7 @@ # # spec file for package python3-libmount # -# Copyright (c) 2020 SUSE LLC +# Copyright (c) 2021 SUSE LLC # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed @@ -79,13 +79,16 @@ %endif Summary: %main_summary License: GPL-2.0-or-later -Group: %group_pl +Group: %main_group BuildRequires: audit-devel BuildRequires: binutils-devel BuildRequires: fdupes BuildRequires: gettext-devel BuildRequires: libcap-ng-devel +# It should be %%if %%{defined no_config}, but OBS cannot handle it: +%if 0%{?suse_version} >= 1550 BuildRequires: libeconf-devel +%endif BuildRequires: libselinux-devel BuildRequires: libsepol-devel BuildRequires: libtool @@ -122,10 +125,10 @@ %endif %endif #END SECOND STAGE DEPENDENCIES -Version: 2.35.1 +Version: 2.36.1 Release: 0 URL: https://www.kernel.org/pub/linux/utils/util-linux/ -Source: https://www.kernel.org/pub/linux/utils/util-linux/v2.35/util-linux-%{version}.tar.xz +Source: https://www.kernel.org/pub/linux/utils/util-linux/v2.36/util-linux-%{version}.tar.xz Source1: util-linux-rpmlintrc Source2: util-linux-login_defs-check.sh Source4: raw.service @@ -136,7 +139,7 @@ Source9: remote.pamd Source10: su.pamd Source11: su.default -Source12: https://www.kernel.org/pub/linux/utils/util-linux/v2.35/util-linux-%{version}.tar.sign +Source12: https://www.kernel.org/pub/linux/utils/util-linux/v2.36/util-linux-%{version}.tar.sign Source13: %{_name}.keyring Source14: runuser.pamd Source15: runuser-l.pamd @@ -146,10 +149,8 @@ Patch0: make-sure-sbin-resp-usr-sbin-are-in-PATH.diff Patch1: libmount-print-a-blacklist-hint-for-unknown-filesyst.patch Patch2: Add-documentation-on-blacklisted-modules-to-mount-8-.patch -Patch3: libeconf.patch -Patch4: libmount-Avoid-triggering-autofs-in-lookup_umount_fs.patch -Patch5: libfdisk-script-accept-sector-size.patch -BuildRoot: %{_tmppath}/%{name}-%{version}-build +# PATCH-FIX-SUSE: Avoid sulogin failing on not existing or not functional console devices +Patch3: util-linux-sulogin4bsc1175514.patch # %if %build_util_linux Supplements: filesystem(minix) @@ -179,12 +180,12 @@ Provides: s390-32 %endif # uuid-runtime appeared in SLE11 SP1 to SLE11 SP3 -Provides: uuid-runtime = %{version}-%{release} +Provides: uuid-runtime = %{version} Obsoletes: uuid-runtime <= 2.19.1 # All login.defs variables require support from shadow side. # Upgrade this symbol version only if new variables appear! # Verify by shadow-login_defs-check.sh from shadow source package. -Requires: login_defs-support-for-util-linux >= 2.33.1 +Requires: login_defs-support-for-util-linux >= 2.36 # # Using "Requires" here would lend itself to help upgrading, but since # util-linux is in the initial bootstrap, that is not a good thing to do: @@ -378,6 +379,7 @@ Group: System/Filesystems %if 0%{?suse_version} >= 1330 Requires(pre): group(uuidd) +Requires(pre): user(uuidd) %else Requires(pre): /usr/sbin/groupadd Requires(pre): /usr/sbin/useradd @@ -550,11 +552,11 @@ --enable-static \ --disable-rpath \ --enable-all-programs \ - --disable-reset \ --disable-chfn-chsh \ --disable-newgrp \ --disable-vipw \ --disable-pg \ + --enable-fs-paths-default="/sbin:/usr/sbin" \ %if %{without enable_last} --disable-last \ %endif @@ -574,7 +576,7 @@ %else --without-python \ %endif - --enable-vendordir=%{_distconfdir} + --with-vendordir=%{_distconfdir} # # Safety check: HAVE_UUIDD should be always 1: @@ -637,7 +639,7 @@ %make_install rm -f %{buildroot}%{python3_sitearch}/libmount/*.*a %if %build_util_linux -#UsrMerge +%if !0%{?usrmerged} ln -s %{_bindir}/kill %{buildroot}/bin ln -s %{_bindir}/su %{buildroot}/bin ln -s %{_bindir}/dmesg %{buildroot}/bin @@ -675,9 +677,9 @@ ln -s %{_sbindir}/swaplabel %{buildroot}/sbin ln -s %{_sbindir}/fstrim %{buildroot}/sbin ln -s %{_sbindir}/chcpu %{buildroot}/sbin -#EndUsrMerge +%endif install -m 644 %{SOURCE6} %{buildroot}%{_sysconfdir}/filesystems -echo -e "#! /bin/bash\n/sbin/blockdev --flushbufs \$1" > %{buildroot}%{_sbindir}/flushb +echo -e "#!/bin/sh\n/sbin/blockdev --flushbufs \$1" > %{buildroot}%{_sbindir}/flushb chmod 755 %{buildroot}%{_sbindir}/flushb # Install scripts to configure raw devices at boot time install -m 644 $RPM_SOURCE_DIR%{_sysconfdir}.raw %{buildroot}%{_sysconfdir}/raw @@ -688,16 +690,18 @@ mv %{buildroot}%{_docdir}/%{_name}/getopt %{buildroot}%{_datadir}/ # Stupid hack so we don't have a tcsh dependency chmod 644 %{buildroot}%{_datadir}/getopt/getopt*.tcsh +%if !0%{?usrmerged} # login is always and only in /bin mv %{buildroot}%{_bindir}/login %{buildroot}/bin/ +%endif # arch dependent %ifarch s390 s390x rm -f %{buildroot}%{_sysconfdir}/fdprm rm -f %{buildroot}%{_sbindir}/fdformat rm -f %{buildroot}%{_sbindir}/hwclock -#UsrMerge +%if !0%{?usrmerged} rm -f %{buildroot}/sbin/hwclock -#EndUsrMerge +%endif rm -f %{buildroot}%{_bindir}/setterm rm -f %{buildroot}%{_sbindir}/tunelp rm -f %{buildroot}%{_mandir}/man8/fdformat.8* @@ -708,19 +712,17 @@ rm -f %{buildroot}%{_mandir}/man8/cfdisk.8* rm -f %{buildroot}%{_mandir}/man8/sfdisk.8* rm -f %{buildroot}%{_sbindir}/cfdisk -#UsrMerge -rm -f %{buildroot}/sbin/cfdisk -#EndUsrMerge rm -f %{buildroot}%{_sbindir}/sfdisk -#UsrMerge +%if !0%{?usrmerged} +rm -f %{buildroot}/sbin/cfdisk rm -f %{buildroot}/sbin/sfdisk -#EndUsrMerge +%endif %endif %ifarch ia64 m68k rm -f %{buildroot}%{_sbindir}/fdisk -#UsrMerge +%if !0%{?usrmerged} rm -f %{buildroot}/sbin/fdisk -#EndUsrMerge +%endif rm -f %{buildroot}%{_mandir}/man8/fdisk.8* %endif %find_lang %{name} %{name}.lang @@ -739,7 +741,9 @@ mkdir -p %{buildroot}%{_sbindir} mkdir -p %{buildroot}%{_localstatedir}/lib/libuuid mkdir -p %{buildroot}/run/uuidd +%if !0%{?usrmerged} ln -s %{_bindir}/logger %{buildroot}/bin +%endif # clock.txt from uuidd is a ghost file touch %{buildroot}%{_localstatedir}/lib/libuuid/clock.txt ln -sf /sbin/service %{buildroot}/usr/sbin/rcuuidd @@ -763,6 +767,7 @@ %service_add_post raw.service %set_permissions %{_bindir}/wall %{_bindir}/write %{_bindir}/mount %{_bindir}/umount %set_permissions %{_bindir}/su +%if ! %{defined no_config} # # If outdated PAM file is detected, issue a warning. for PAM_FILE in login remote runuser runuser-l su su-l ; do @@ -787,12 +792,15 @@ echo "Please edit %{_sysconfdir}/login.defs or %{_sysconfdir}/default/su to restore your customization." >&2 fi fi +%endif %posttrans +%if %{defined no_config} # Migration to /usr/etc. for i in login remote runuser runuser-l su su-l; do test -f /etc/pam.d/${i}.rpmsave && mv -v /etc/pam.d/${i}.rpmsave /etc/pam.d/${i} ||: done +%endif %preun %service_del_preun raw.service @@ -898,7 +906,9 @@ %{_distconfdir}/pam.d/runuser-l %{_distconfdir}/pam.d/su %{_distconfdir}/pam.d/su-l -%{_distconfdir}/default +%if 0%{?suse_version} <= 1520 +%dir %{_distconfdir}/default +%endif %{_distconfdir}/default/runuser %{_distconfdir}/default/su %else @@ -912,7 +922,7 @@ %config(noreplace) %{_sysconfdir}/default/su %endif %config %dir %{_sysconfdir}/issue.d -#UsrMerge +%if !0%{?usrmerged} /bin/kill /bin/su /bin/dmesg @@ -947,7 +957,7 @@ /sbin/swaplabel /sbin/fstrim /sbin/chcpu -#EndUsrMerge +%endif %{_bindir}/kill %verify(not mode) %{_bindir}/su %{_bindir}/eject @@ -971,6 +981,7 @@ %{_bindir}/ipcmk %{_bindir}/ipcrm %{_bindir}/ipcs +%{_bindir}/irqtop %{_bindir}/isosize %if %{with enable_last} %{_bindir}/last @@ -978,9 +989,13 @@ %endif %{_bindir}/line %{_bindir}/look +%if 0%{?usrmerged} +%{_bindir}/login +%endif %{_bindir}/lsblk %{_bindir}/lscpu %{_bindir}/lsipc +%{_bindir}/lsirq %{_bindir}/lslocks %{_bindir}/lsmem %{_bindir}/lsns @@ -1082,6 +1097,7 @@ %{_mandir}/man1/look.1.gz %{_mandir}/man1/lscpu.1.gz %{_mandir}/man1/lsipc.1.gz +%{_mandir}/man1/lsirq.1.gz %{_mandir}/man1/lsmem.1.gz %{_mandir}/man1/mcookie.1.gz %{_mandir}/man1/mesg.1.gz @@ -1089,6 +1105,7 @@ %{_mandir}/man1/namei.1.gz %{_mandir}/man1/nsenter.1.gz %{_mandir}/man1/ionice.1.gz +%{_mandir}/man1/irqtop.1.gz %{_mandir}/man1/prlimit.1.gz %{_mandir}/man1/rename.1.gz %{_mandir}/man1/rev.1.gz @@ -1182,27 +1199,27 @@ %ifnarch ia64 m68k #XXX: post our patches upstream #XXX: call fdupes on /usr/share/man -#UsrMerge +%if !0%{?usrmerged} /sbin/fdisk -#EndUsrMerge +%endif %{_sbindir}/fdisk %{_mandir}/man8/fdisk.8.gz %endif %ifnarch %sparc ia64 m68k %{_mandir}/man8/cfdisk.8.gz %{_mandir}/man8/sfdisk.8.gz -#UsrMerge +%if !0%{?usrmerged} /sbin/cfdisk /sbin/sfdisk -#EndUsrMerge +%endif %{_sbindir}/cfdisk %{_sbindir}/sfdisk %endif %ifnarch s390 s390x %{_sbindir}/fdformat -#UsrMerge +%if !0%{?usrmerged} /sbin/hwclock -#EndUsrMerge +%endif %{_sbindir}/hwclock %{_bindir}/setterm %{_sbindir}/tunelp @@ -1301,7 +1318,9 @@ %files %endif %defattr(-, root, root) +%if !0%{?usrmerged} /bin/logger +%endif %{_bindir}/logger %{_bindir}/lslogins #BEGIN bootstrap_hack ++++++ util-linux-systemd.spec ++++++ --- /var/tmp/diff_new_pack.IeuCrN/_old 2021-02-02 14:24:30.743283635 +0100 +++ /var/tmp/diff_new_pack.IeuCrN/_new 2021-02-02 14:24:30.747283641 +0100 @@ -1,7 +1,7 @@ # # spec file for package util-linux-systemd # -# Copyright (c) 2020 SUSE LLC +# Copyright (c) 2021 SUSE LLC # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed @@ -85,7 +85,10 @@ BuildRequires: fdupes BuildRequires: gettext-devel BuildRequires: libcap-ng-devel +# It should be %%if %%{defined no_config}, but OBS cannot handle it: +%if 0%{?suse_version} >= 1550 BuildRequires: libeconf-devel +%endif BuildRequires: libselinux-devel BuildRequires: libsepol-devel BuildRequires: libtool @@ -122,10 +125,10 @@ %endif %endif #END SECOND STAGE DEPENDENCIES -Version: 2.35.1 +Version: 2.36.1 Release: 0 URL: https://www.kernel.org/pub/linux/utils/util-linux/ -Source: https://www.kernel.org/pub/linux/utils/util-linux/v2.35/util-linux-%{version}.tar.xz +Source: https://www.kernel.org/pub/linux/utils/util-linux/v2.36/util-linux-%{version}.tar.xz Source1: util-linux-rpmlintrc Source2: util-linux-login_defs-check.sh Source4: raw.service @@ -136,7 +139,7 @@ Source9: remote.pamd Source10: su.pamd Source11: su.default -Source12: https://www.kernel.org/pub/linux/utils/util-linux/v2.35/util-linux-%{version}.tar.sign +Source12: https://www.kernel.org/pub/linux/utils/util-linux/v2.36/util-linux-%{version}.tar.sign Source13: %{_name}.keyring Source14: runuser.pamd Source15: runuser-l.pamd @@ -146,10 +149,8 @@ Patch0: make-sure-sbin-resp-usr-sbin-are-in-PATH.diff Patch1: libmount-print-a-blacklist-hint-for-unknown-filesyst.patch Patch2: Add-documentation-on-blacklisted-modules-to-mount-8-.patch -Patch3: libeconf.patch -Patch4: libmount-Avoid-triggering-autofs-in-lookup_umount_fs.patch -Patch5: libfdisk-script-accept-sector-size.patch -BuildRoot: %{_tmppath}/%{name}-%{version}-build +# PATCH-FIX-SUSE: Avoid sulogin failing on not existing or not functional console devices +Patch3: util-linux-sulogin4bsc1175514.patch # %if %build_util_linux Supplements: filesystem(minix) @@ -179,12 +180,12 @@ Provides: s390-32 %endif # uuid-runtime appeared in SLE11 SP1 to SLE11 SP3 -Provides: uuid-runtime = %{version}-%{release} +Provides: uuid-runtime = %{version} Obsoletes: uuid-runtime <= 2.19.1 # All login.defs variables require support from shadow side. # Upgrade this symbol version only if new variables appear! # Verify by shadow-login_defs-check.sh from shadow source package. -Requires: login_defs-support-for-util-linux >= 2.33.1 +Requires: login_defs-support-for-util-linux >= 2.36 # # Using "Requires" here would lend itself to help upgrading, but since # util-linux is in the initial bootstrap, that is not a good thing to do: @@ -378,6 +379,7 @@ Group: System/Filesystems %if 0%{?suse_version} >= 1330 Requires(pre): group(uuidd) +Requires(pre): user(uuidd) %else Requires(pre): /usr/sbin/groupadd Requires(pre): /usr/sbin/useradd @@ -550,11 +552,11 @@ --enable-static \ --disable-rpath \ --enable-all-programs \ - --disable-reset \ --disable-chfn-chsh \ --disable-newgrp \ --disable-vipw \ --disable-pg \ + --enable-fs-paths-default="/sbin:/usr/sbin" \ %if %{without enable_last} --disable-last \ %endif @@ -574,7 +576,7 @@ %else --without-python \ %endif - --enable-vendordir=%{_distconfdir} + --with-vendordir=%{_distconfdir} # # Safety check: HAVE_UUIDD should be always 1: @@ -637,7 +639,7 @@ %make_install rm -f %{buildroot}%{python3_sitearch}/libmount/*.*a %if %build_util_linux -#UsrMerge +%if !0%{?usrmerged} ln -s %{_bindir}/kill %{buildroot}/bin ln -s %{_bindir}/su %{buildroot}/bin ln -s %{_bindir}/dmesg %{buildroot}/bin @@ -675,9 +677,9 @@ ln -s %{_sbindir}/swaplabel %{buildroot}/sbin ln -s %{_sbindir}/fstrim %{buildroot}/sbin ln -s %{_sbindir}/chcpu %{buildroot}/sbin -#EndUsrMerge +%endif install -m 644 %{SOURCE6} %{buildroot}%{_sysconfdir}/filesystems -echo -e "#! /bin/bash\n/sbin/blockdev --flushbufs \$1" > %{buildroot}%{_sbindir}/flushb +echo -e "#!/bin/sh\n/sbin/blockdev --flushbufs \$1" > %{buildroot}%{_sbindir}/flushb chmod 755 %{buildroot}%{_sbindir}/flushb # Install scripts to configure raw devices at boot time install -m 644 $RPM_SOURCE_DIR%{_sysconfdir}.raw %{buildroot}%{_sysconfdir}/raw @@ -688,16 +690,18 @@ mv %{buildroot}%{_docdir}/%{_name}/getopt %{buildroot}%{_datadir}/ # Stupid hack so we don't have a tcsh dependency chmod 644 %{buildroot}%{_datadir}/getopt/getopt*.tcsh +%if !0%{?usrmerged} # login is always and only in /bin mv %{buildroot}%{_bindir}/login %{buildroot}/bin/ +%endif # arch dependent %ifarch s390 s390x rm -f %{buildroot}%{_sysconfdir}/fdprm rm -f %{buildroot}%{_sbindir}/fdformat rm -f %{buildroot}%{_sbindir}/hwclock -#UsrMerge +%if !0%{?usrmerged} rm -f %{buildroot}/sbin/hwclock -#EndUsrMerge +%endif rm -f %{buildroot}%{_bindir}/setterm rm -f %{buildroot}%{_sbindir}/tunelp rm -f %{buildroot}%{_mandir}/man8/fdformat.8* @@ -708,19 +712,17 @@ rm -f %{buildroot}%{_mandir}/man8/cfdisk.8* rm -f %{buildroot}%{_mandir}/man8/sfdisk.8* rm -f %{buildroot}%{_sbindir}/cfdisk -#UsrMerge -rm -f %{buildroot}/sbin/cfdisk -#EndUsrMerge rm -f %{buildroot}%{_sbindir}/sfdisk -#UsrMerge +%if !0%{?usrmerged} +rm -f %{buildroot}/sbin/cfdisk rm -f %{buildroot}/sbin/sfdisk -#EndUsrMerge +%endif %endif %ifarch ia64 m68k rm -f %{buildroot}%{_sbindir}/fdisk -#UsrMerge +%if !0%{?usrmerged} rm -f %{buildroot}/sbin/fdisk -#EndUsrMerge +%endif rm -f %{buildroot}%{_mandir}/man8/fdisk.8* %endif %find_lang %{name} %{name}.lang @@ -739,7 +741,9 @@ mkdir -p %{buildroot}%{_sbindir} mkdir -p %{buildroot}%{_localstatedir}/lib/libuuid mkdir -p %{buildroot}/run/uuidd +%if !0%{?usrmerged} ln -s %{_bindir}/logger %{buildroot}/bin +%endif # clock.txt from uuidd is a ghost file touch %{buildroot}%{_localstatedir}/lib/libuuid/clock.txt ln -sf /sbin/service %{buildroot}/usr/sbin/rcuuidd @@ -763,6 +767,7 @@ %service_add_post raw.service %set_permissions %{_bindir}/wall %{_bindir}/write %{_bindir}/mount %{_bindir}/umount %set_permissions %{_bindir}/su +%if ! %{defined no_config} # # If outdated PAM file is detected, issue a warning. for PAM_FILE in login remote runuser runuser-l su su-l ; do @@ -787,12 +792,15 @@ echo "Please edit %{_sysconfdir}/login.defs or %{_sysconfdir}/default/su to restore your customization." >&2 fi fi +%endif %posttrans +%if %{defined no_config} # Migration to /usr/etc. for i in login remote runuser runuser-l su su-l; do test -f /etc/pam.d/${i}.rpmsave && mv -v /etc/pam.d/${i}.rpmsave /etc/pam.d/${i} ||: done +%endif %preun %service_del_preun raw.service @@ -898,7 +906,9 @@ %{_distconfdir}/pam.d/runuser-l %{_distconfdir}/pam.d/su %{_distconfdir}/pam.d/su-l -%{_distconfdir}/default +%if 0%{?suse_version} <= 1520 +%dir %{_distconfdir}/default +%endif %{_distconfdir}/default/runuser %{_distconfdir}/default/su %else @@ -912,7 +922,7 @@ %config(noreplace) %{_sysconfdir}/default/su %endif %config %dir %{_sysconfdir}/issue.d -#UsrMerge +%if !0%{?usrmerged} /bin/kill /bin/su /bin/dmesg @@ -947,7 +957,7 @@ /sbin/swaplabel /sbin/fstrim /sbin/chcpu -#EndUsrMerge +%endif %{_bindir}/kill %verify(not mode) %{_bindir}/su %{_bindir}/eject @@ -971,6 +981,7 @@ %{_bindir}/ipcmk %{_bindir}/ipcrm %{_bindir}/ipcs +%{_bindir}/irqtop %{_bindir}/isosize %if %{with enable_last} %{_bindir}/last @@ -978,9 +989,13 @@ %endif %{_bindir}/line %{_bindir}/look +%if 0%{?usrmerged} +%{_bindir}/login +%endif %{_bindir}/lsblk %{_bindir}/lscpu %{_bindir}/lsipc +%{_bindir}/lsirq %{_bindir}/lslocks %{_bindir}/lsmem %{_bindir}/lsns @@ -1082,6 +1097,7 @@ %{_mandir}/man1/look.1.gz %{_mandir}/man1/lscpu.1.gz %{_mandir}/man1/lsipc.1.gz +%{_mandir}/man1/lsirq.1.gz %{_mandir}/man1/lsmem.1.gz %{_mandir}/man1/mcookie.1.gz %{_mandir}/man1/mesg.1.gz @@ -1089,6 +1105,7 @@ %{_mandir}/man1/namei.1.gz %{_mandir}/man1/nsenter.1.gz %{_mandir}/man1/ionice.1.gz +%{_mandir}/man1/irqtop.1.gz %{_mandir}/man1/prlimit.1.gz %{_mandir}/man1/rename.1.gz %{_mandir}/man1/rev.1.gz @@ -1182,27 +1199,27 @@ %ifnarch ia64 m68k #XXX: post our patches upstream #XXX: call fdupes on /usr/share/man -#UsrMerge +%if !0%{?usrmerged} /sbin/fdisk -#EndUsrMerge +%endif %{_sbindir}/fdisk %{_mandir}/man8/fdisk.8.gz %endif %ifnarch %sparc ia64 m68k %{_mandir}/man8/cfdisk.8.gz %{_mandir}/man8/sfdisk.8.gz -#UsrMerge +%if !0%{?usrmerged} /sbin/cfdisk /sbin/sfdisk -#EndUsrMerge +%endif %{_sbindir}/cfdisk %{_sbindir}/sfdisk %endif %ifnarch s390 s390x %{_sbindir}/fdformat -#UsrMerge +%if !0%{?usrmerged} /sbin/hwclock -#EndUsrMerge +%endif %{_sbindir}/hwclock %{_bindir}/setterm %{_sbindir}/tunelp @@ -1301,7 +1318,9 @@ %files %endif %defattr(-, root, root) +%if !0%{?usrmerged} /bin/logger +%endif %{_bindir}/logger %{_bindir}/lslogins #BEGIN bootstrap_hack ++++++ util-linux.spec ++++++ --- /var/tmp/diff_new_pack.IeuCrN/_old 2021-02-02 14:24:30.767283672 +0100 +++ /var/tmp/diff_new_pack.IeuCrN/_new 2021-02-02 14:24:30.771283678 +0100 @@ -1,7 +1,7 @@ # # spec file for package util-linux # -# Copyright (c) 2020 SUSE LLC +# Copyright (c) 2021 SUSE LLC # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed @@ -85,7 +85,10 @@ BuildRequires: fdupes BuildRequires: gettext-devel BuildRequires: libcap-ng-devel +# It should be %%if %%{defined no_config}, but OBS cannot handle it: +%if 0%{?suse_version} >= 1550 BuildRequires: libeconf-devel +%endif BuildRequires: libselinux-devel BuildRequires: libsepol-devel BuildRequires: libtool @@ -122,10 +125,10 @@ %endif %endif #END SECOND STAGE DEPENDENCIES -Version: 2.35.1 +Version: 2.36.1 Release: 0 URL: https://www.kernel.org/pub/linux/utils/util-linux/ -Source: https://www.kernel.org/pub/linux/utils/util-linux/v2.35/util-linux-%{version}.tar.xz +Source: https://www.kernel.org/pub/linux/utils/util-linux/v2.36/util-linux-%{version}.tar.xz Source1: util-linux-rpmlintrc Source2: util-linux-login_defs-check.sh Source4: raw.service @@ -136,7 +139,7 @@ Source9: remote.pamd Source10: su.pamd Source11: su.default -Source12: https://www.kernel.org/pub/linux/utils/util-linux/v2.35/util-linux-%{version}.tar.sign +Source12: https://www.kernel.org/pub/linux/utils/util-linux/v2.36/util-linux-%{version}.tar.sign Source13: %{_name}.keyring Source14: runuser.pamd Source15: runuser-l.pamd @@ -146,10 +149,8 @@ Patch0: make-sure-sbin-resp-usr-sbin-are-in-PATH.diff Patch1: libmount-print-a-blacklist-hint-for-unknown-filesyst.patch Patch2: Add-documentation-on-blacklisted-modules-to-mount-8-.patch -Patch3: libeconf.patch -Patch4: libmount-Avoid-triggering-autofs-in-lookup_umount_fs.patch -Patch5: libfdisk-script-accept-sector-size.patch -BuildRoot: %{_tmppath}/%{name}-%{version}-build +# PATCH-FIX-SUSE: Avoid sulogin failing on not existing or not functional console devices +Patch3: util-linux-sulogin4bsc1175514.patch # %if %build_util_linux Supplements: filesystem(minix) @@ -179,12 +180,12 @@ Provides: s390-32 %endif # uuid-runtime appeared in SLE11 SP1 to SLE11 SP3 -Provides: uuid-runtime = %{version}-%{release} +Provides: uuid-runtime = %{version} Obsoletes: uuid-runtime <= 2.19.1 # All login.defs variables require support from shadow side. # Upgrade this symbol version only if new variables appear! # Verify by shadow-login_defs-check.sh from shadow source package. -Requires: login_defs-support-for-util-linux >= 2.33.1 +Requires: login_defs-support-for-util-linux >= 2.36 # # Using "Requires" here would lend itself to help upgrading, but since # util-linux is in the initial bootstrap, that is not a good thing to do: @@ -378,6 +379,7 @@ Group: System/Filesystems %if 0%{?suse_version} >= 1330 Requires(pre): group(uuidd) +Requires(pre): user(uuidd) %else Requires(pre): /usr/sbin/groupadd Requires(pre): /usr/sbin/useradd @@ -550,11 +552,11 @@ --enable-static \ --disable-rpath \ --enable-all-programs \ - --disable-reset \ --disable-chfn-chsh \ --disable-newgrp \ --disable-vipw \ --disable-pg \ + --enable-fs-paths-default="/sbin:/usr/sbin" \ %if %{without enable_last} --disable-last \ %endif @@ -574,7 +576,7 @@ %else --without-python \ %endif - --enable-vendordir=%{_distconfdir} + --with-vendordir=%{_distconfdir} # # Safety check: HAVE_UUIDD should be always 1: @@ -637,7 +639,7 @@ %make_install rm -f %{buildroot}%{python3_sitearch}/libmount/*.*a %if %build_util_linux -#UsrMerge +%if !0%{?usrmerged} ln -s %{_bindir}/kill %{buildroot}/bin ln -s %{_bindir}/su %{buildroot}/bin ln -s %{_bindir}/dmesg %{buildroot}/bin @@ -675,9 +677,9 @@ ln -s %{_sbindir}/swaplabel %{buildroot}/sbin ln -s %{_sbindir}/fstrim %{buildroot}/sbin ln -s %{_sbindir}/chcpu %{buildroot}/sbin -#EndUsrMerge +%endif install -m 644 %{SOURCE6} %{buildroot}%{_sysconfdir}/filesystems -echo -e "#! /bin/bash\n/sbin/blockdev --flushbufs \$1" > %{buildroot}%{_sbindir}/flushb +echo -e "#!/bin/sh\n/sbin/blockdev --flushbufs \$1" > %{buildroot}%{_sbindir}/flushb chmod 755 %{buildroot}%{_sbindir}/flushb # Install scripts to configure raw devices at boot time install -m 644 $RPM_SOURCE_DIR%{_sysconfdir}.raw %{buildroot}%{_sysconfdir}/raw @@ -688,16 +690,18 @@ mv %{buildroot}%{_docdir}/%{_name}/getopt %{buildroot}%{_datadir}/ # Stupid hack so we don't have a tcsh dependency chmod 644 %{buildroot}%{_datadir}/getopt/getopt*.tcsh +%if !0%{?usrmerged} # login is always and only in /bin mv %{buildroot}%{_bindir}/login %{buildroot}/bin/ +%endif # arch dependent %ifarch s390 s390x rm -f %{buildroot}%{_sysconfdir}/fdprm rm -f %{buildroot}%{_sbindir}/fdformat rm -f %{buildroot}%{_sbindir}/hwclock -#UsrMerge +%if !0%{?usrmerged} rm -f %{buildroot}/sbin/hwclock -#EndUsrMerge +%endif rm -f %{buildroot}%{_bindir}/setterm rm -f %{buildroot}%{_sbindir}/tunelp rm -f %{buildroot}%{_mandir}/man8/fdformat.8* @@ -708,19 +712,17 @@ rm -f %{buildroot}%{_mandir}/man8/cfdisk.8* rm -f %{buildroot}%{_mandir}/man8/sfdisk.8* rm -f %{buildroot}%{_sbindir}/cfdisk -#UsrMerge -rm -f %{buildroot}/sbin/cfdisk -#EndUsrMerge rm -f %{buildroot}%{_sbindir}/sfdisk -#UsrMerge +%if !0%{?usrmerged} +rm -f %{buildroot}/sbin/cfdisk rm -f %{buildroot}/sbin/sfdisk -#EndUsrMerge +%endif %endif %ifarch ia64 m68k rm -f %{buildroot}%{_sbindir}/fdisk -#UsrMerge +%if !0%{?usrmerged} rm -f %{buildroot}/sbin/fdisk -#EndUsrMerge +%endif rm -f %{buildroot}%{_mandir}/man8/fdisk.8* %endif %find_lang %{name} %{name}.lang @@ -739,7 +741,9 @@ mkdir -p %{buildroot}%{_sbindir} mkdir -p %{buildroot}%{_localstatedir}/lib/libuuid mkdir -p %{buildroot}/run/uuidd +%if !0%{?usrmerged} ln -s %{_bindir}/logger %{buildroot}/bin +%endif # clock.txt from uuidd is a ghost file touch %{buildroot}%{_localstatedir}/lib/libuuid/clock.txt ln -sf /sbin/service %{buildroot}/usr/sbin/rcuuidd @@ -763,6 +767,7 @@ %service_add_post raw.service %set_permissions %{_bindir}/wall %{_bindir}/write %{_bindir}/mount %{_bindir}/umount %set_permissions %{_bindir}/su +%if ! %{defined no_config} # # If outdated PAM file is detected, issue a warning. for PAM_FILE in login remote runuser runuser-l su su-l ; do @@ -787,12 +792,15 @@ echo "Please edit %{_sysconfdir}/login.defs or %{_sysconfdir}/default/su to restore your customization." >&2 fi fi +%endif %posttrans +%if %{defined no_config} # Migration to /usr/etc. for i in login remote runuser runuser-l su su-l; do test -f /etc/pam.d/${i}.rpmsave && mv -v /etc/pam.d/${i}.rpmsave /etc/pam.d/${i} ||: done +%endif %preun %service_del_preun raw.service @@ -898,7 +906,9 @@ %{_distconfdir}/pam.d/runuser-l %{_distconfdir}/pam.d/su %{_distconfdir}/pam.d/su-l -%{_distconfdir}/default +%if 0%{?suse_version} <= 1520 +%dir %{_distconfdir}/default +%endif %{_distconfdir}/default/runuser %{_distconfdir}/default/su %else @@ -912,7 +922,7 @@ %config(noreplace) %{_sysconfdir}/default/su %endif %config %dir %{_sysconfdir}/issue.d -#UsrMerge +%if !0%{?usrmerged} /bin/kill /bin/su /bin/dmesg @@ -947,7 +957,7 @@ /sbin/swaplabel /sbin/fstrim /sbin/chcpu -#EndUsrMerge +%endif %{_bindir}/kill %verify(not mode) %{_bindir}/su %{_bindir}/eject @@ -971,6 +981,7 @@ %{_bindir}/ipcmk %{_bindir}/ipcrm %{_bindir}/ipcs +%{_bindir}/irqtop %{_bindir}/isosize %if %{with enable_last} %{_bindir}/last @@ -978,9 +989,13 @@ %endif %{_bindir}/line %{_bindir}/look +%if 0%{?usrmerged} +%{_bindir}/login +%endif %{_bindir}/lsblk %{_bindir}/lscpu %{_bindir}/lsipc +%{_bindir}/lsirq %{_bindir}/lslocks %{_bindir}/lsmem %{_bindir}/lsns @@ -1082,6 +1097,7 @@ %{_mandir}/man1/look.1.gz %{_mandir}/man1/lscpu.1.gz %{_mandir}/man1/lsipc.1.gz +%{_mandir}/man1/lsirq.1.gz %{_mandir}/man1/lsmem.1.gz %{_mandir}/man1/mcookie.1.gz %{_mandir}/man1/mesg.1.gz @@ -1089,6 +1105,7 @@ %{_mandir}/man1/namei.1.gz %{_mandir}/man1/nsenter.1.gz %{_mandir}/man1/ionice.1.gz +%{_mandir}/man1/irqtop.1.gz %{_mandir}/man1/prlimit.1.gz %{_mandir}/man1/rename.1.gz %{_mandir}/man1/rev.1.gz @@ -1182,27 +1199,27 @@ %ifnarch ia64 m68k #XXX: post our patches upstream #XXX: call fdupes on /usr/share/man -#UsrMerge +%if !0%{?usrmerged} /sbin/fdisk -#EndUsrMerge +%endif %{_sbindir}/fdisk %{_mandir}/man8/fdisk.8.gz %endif %ifnarch %sparc ia64 m68k %{_mandir}/man8/cfdisk.8.gz %{_mandir}/man8/sfdisk.8.gz -#UsrMerge +%if !0%{?usrmerged} /sbin/cfdisk /sbin/sfdisk -#EndUsrMerge +%endif %{_sbindir}/cfdisk %{_sbindir}/sfdisk %endif %ifnarch s390 s390x %{_sbindir}/fdformat -#UsrMerge +%if !0%{?usrmerged} /sbin/hwclock -#EndUsrMerge +%endif %{_sbindir}/hwclock %{_bindir}/setterm %{_sbindir}/tunelp @@ -1301,7 +1318,9 @@ %files %endif %defattr(-, root, root) +%if !0%{?usrmerged} /bin/logger +%endif %{_bindir}/logger %{_bindir}/lslogins #BEGIN bootstrap_hack ++++++ Add-documentation-on-blacklisted-modules-to-mount-8-.patch ++++++ --- /var/tmp/diff_new_pack.IeuCrN/_old 2021-02-02 14:24:30.791283709 +0100 +++ /var/tmp/diff_new_pack.IeuCrN/_new 2021-02-02 14:24:30.791283709 +0100 @@ -8,12 +8,12 @@ sys-utils/mount.8 | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) -diff --git a/sys-utils/mount.8 b/sys-utils/mount.8 -index da0ac5b..c231e12 100644 ---- a/sys-utils/mount.8 -+++ b/sys-utils/mount.8 -@@ -338,6 +338,32 @@ The - option is similar, with the restriction that the user must be +Index: util-linux-2.36/sys-utils/mount.8 +=================================================================== +--- util-linux-2.36.orig/sys-utils/mount.8 ++++ util-linux-2.36/sys-utils/mount.8 +@@ -400,6 +400,32 @@ The + option is similar, with the restriction that the user must be a member of the group of the special file. +.SS Blacklisted file systems @@ -45,6 +45,3 @@ .SS Bind mount operation Remount part of the file hierarchy somewhere else. The call is: --- -2.19.2 - ++++++ baselibs.conf ++++++ --- /var/tmp/diff_new_pack.IeuCrN/_old 2021-02-02 14:24:30.819283753 +0100 +++ /var/tmp/diff_new_pack.IeuCrN/_new 2021-02-02 14:24:30.819283753 +0100 @@ -1,12 +1,20 @@ -libuuid1 -libuuid-devel - requires -libuuid-<targettype> - requires "libuuid1-<targettype> = <version>" libblkid1 libblkid-devel requires -libblkid-<targettype> requires "libblkid1-<targettype> = <version>" +libfdisk1 +libfdisk-devel + requires -libfdisk-<targettype> + requires "libfdisk1-<targettype> = <version>" libmount1 libmount-devel requires -libmount-<targettype> requires "libmount1-<targettype> = <version>" +libsmartcols1 +libsmartcols-devel + requires -libsmartcols-<targettype> + requires "libsmartcols1-<targettype> = <version>" +libuuid1 +libuuid-devel + requires -libuuid-<targettype> + requires "libuuid1-<targettype> = <version>" ++++++ util-linux-2.35.1.tar.xz -> util-linux-2.36.1.tar.xz ++++++ ++++ 469119 lines of diff (skipped) ++++++ util-linux-login_defs-check.sh ++++++ --- /var/tmp/diff_new_pack.IeuCrN/_old 2021-02-02 14:24:33.251287535 +0100 +++ /var/tmp/diff_new_pack.IeuCrN/_new 2021-02-02 14:24:33.255287541 +0100 @@ -15,7 +15,7 @@ sed -n 's/^.*logindefs_setenv*("[A-Z0-9_]*", "\([A-Z0-9_]*\)".*$/\1/p' ) | LC_ALL=C sort -u >util-linux-login_defs-vars.lst -if test $(sha1sum util-linux-login_defs-vars.lst | sed 's/ .*$//') != ca9ea2bf3ee8c8c0c623ace938cdf0f04869f8cf ; then +if test $(sha1sum util-linux-login_defs-vars.lst | sed 's/ .*$//') != bdea2548d823e727ddf2cc3318dfce4aa6a9b48f ; then echo "does not match!" >&2 echo "Checksum is: $(sha1sum util-linux-login_defs-vars.lst | sed 's/ .*$//')" >&2 ++++++ util-linux-sulogin4bsc1175514.patch ++++++ From: Werner Fink <werner@suse.de> Date: Fri, 30 Oct 2020 14:54:59 +0100 Subject: [PATCH] sulogin: ignore not existing console devices and also not functional console devices. Redirect the error messages to the appropiate console device. --- login-utils/sulogin-consoles.h | 1 + login-utils/sulogin.c | 97 +++++++++++++++++++++++++++++++++++------- 2 files changed, 82 insertions(+), 16 deletions(-) diff --git a/login-utils/sulogin-consoles.h b/login-utils/sulogin-consoles.h index 0bfbc3871..12032c997 100644 --- a/login-utils/sulogin-consoles.h +++ b/login-utils/sulogin-consoles.h @@ -40,6 +40,7 @@ struct console { int fd, id; #define CON_SERIAL 0x0001 #define CON_NOTTY 0x0002 +#define CON_EIO 0x0004 pid_t pid; struct chardata cp; struct termios tio; diff --git a/login-utils/sulogin.c b/login-utils/sulogin.c index 9091caf14..c833796e7 100644 --- a/login-utils/sulogin.c +++ b/login-utils/sulogin.c @@ -52,6 +52,7 @@ #ifdef __linux__ # include <sys/kd.h> # include <sys/param.h> +# include <linux/serial.h> #endif #include "c.h" @@ -104,6 +105,9 @@ static void tcinit(struct console *con) int flags = 0, mode = 0; struct termios *tio = &con->tio; const int fd = con->fd; +#if defined(TIOCGSERIAL) + struct serial_struct serinfo; +#endif #ifdef USE_PLYMOUTH_SUPPORT struct termios lock; int i = (plymouth_command(MAGIC_PING)) ? PLYMOUTH_TERMIOS_FLAGS_DELAY : 0; @@ -123,27 +127,72 @@ static void tcinit(struct console *con) } memset(&lock, 0, sizeof(struct termios)); ioctl(fd, TIOCSLCKTRMIOS, &lock); + errno = 0; #endif + +#if defined(TIOCGSERIAL) + if (ioctl(fd, TIOCGSERIAL, &serinfo) >= 0) + con->flags |= CON_SERIAL; + errno = 0; +#else +# if defined(KDGKBMODE) + if (ioctl(fd, KDGKBMODE, &mode) < 0) + con->flags |= CON_SERIAL; errno = 0; +# endif +#endif if (tcgetattr(fd, tio) < 0) { - warn(_("tcgetattr failed")); - con->flags |= CON_NOTTY; - return; + int saveno = errno; +#if defined(KDGKBMODE) || defined(TIOCGSERIAL) + if (con->flags & CON_SERIAL) { /* Try to recover this */ + +# if defined(TIOCGSERIAL) + serinfo.flags |= ASYNC_SKIP_TEST; /* Skip test of UART */ + + if (ioctl(fd, TIOCSSERIAL, &serinfo) < 0) + goto tcgeterr; + if (ioctl(fd, TIOCSERCONFIG) < 0) /* Try to autoconfigure */ + goto tcgeterr; + if (ioctl(fd, TIOCGSERIAL, &serinfo) < 0) + goto tcgeterr; /* Ouch */ +# endif + if (tcgetattr(fd, tio) < 0) /* Retry to get tty attributes */ + saveno = errno; + } +# if defined(TIOCGSERIAL) + tcgeterr: +# endif + if (saveno) +#endif + { + FILE *fcerr = fdopen(fd, "w"); + if (fcerr) { + fprintf(fcerr, _("tcgetattr failed")); + fclose(fcerr); + } + warn(_("tcgetattr failed")); + + con->flags &= ~CON_SERIAL; + if (saveno != EIO) + con->flags |= CON_NOTTY; + else + con->flags |= CON_EIO; + + errno = 0; + return; + } } /* Handle lines other than virtual consoles here */ -#if defined(KDGKBMODE) - if (ioctl(fd, KDGKBMODE, &mode) < 0) +#if defined(KDGKBMODE) || defined(TIOCGSERIAL) + if (con->flags & CON_SERIAL) #endif { speed_t ispeed, ospeed; struct winsize ws; errno = 0; - /* this is a modem line */ - con->flags |= CON_SERIAL; - /* Flush input and output queues on modem lines */ tcflush(fd, TCIOFLUSH); @@ -220,6 +269,8 @@ static void tcfinal(struct console *con) struct termios *tio = &con->tio; const int fd = con->fd; + if (con->flags & CON_EIO) + return; if ((con->flags & CON_SERIAL) == 0) { xsetenv("TERM", "linux", 1); return; @@ -557,12 +608,16 @@ err: static void setup(struct console *con) { int fd = con->fd; - const pid_t pid = getpid(), pgrp = getpgid(0), ppgrp = - getpgid(getppid()), ttypgrp = tcgetpgrp(fd); + const pid_t pid = getpid(), pgrp = getpgid(0), ppgrp = getpgid(getppid()); + pid_t ttypgrp; if (con->flags & CON_NOTTY) + goto notty; + if (con->flags & CON_EIO) return; + ttypgrp = tcgetpgrp(fd); + /* * Only go through this trouble if the new * tty doesn't fall in this process group. @@ -585,6 +640,7 @@ static void setup(struct console *con) ioctl(fd, TIOCSCTTY, (char *)1); tcsetpgrp(fd, ppgrp); } +notty: dup2(fd, STDIN_FILENO); dup2(fd, STDOUT_FILENO); dup2(fd, STDERR_FILENO); @@ -608,20 +664,25 @@ static const char *getpasswd(struct console *con) struct termios tty; static char pass[128], *ptr; struct chardata *cp; - const char *ret = pass; + const char *ret = NULL; unsigned char tc; char c, ascval; int eightbit; const int fd = con->fd; - if (con->flags & CON_NOTTY) + if (con->flags & CON_EIO) goto out; + cp = &con->cp; tty = con->tio; + tc = 0; + ret = pass; tty.c_iflag &= ~(IUCLC|IXON|IXOFF|IXANY); tty.c_lflag &= ~(ECHO|ECHOE|ECHOK|ECHONL|TOSTOP|ISIG); - tc = (tcsetattr(fd, TCSAFLUSH, &tty) == 0); + + if ((con->flags & CON_NOTTY) == 0) + tc = (tcsetattr(fd, TCSAFLUSH, &tty) == 0); sigemptyset(&sa.sa_mask); sa.sa_handler = alrm_handler; @@ -647,11 +708,12 @@ static const char *getpasswd(struct console *con) } ret = NULL; switch (errno) { - case 0: case EIO: + con->flags |= CON_EIO; case ESRCH: case EINVAL: case ENOENT: + case 0: break; default: warn(_("cannot read %s"), con->tty); @@ -775,7 +837,7 @@ static void sushell(struct passwd *pwd) #ifdef HAVE_LIBSELINUX if (is_selinux_enabled() > 0) { - security_context_t scon=NULL; + char *scon=NULL; char *seuser=NULL; char *level=NULL; if (getseuserbyname("root", &seuser, &level) == 0) { @@ -968,10 +1030,13 @@ int main(int argc, char **argv) con = list_entry(ptr, struct console, entry); if (con->id >= CONMAX) break; + if (con->flags & CON_EIO) + goto next; switch ((con->pid = fork())) { case 0: mask_signal(SIGCHLD, SIG_DFL, NULL); + dup2(con->fd, STDERR_FILENO); nofork: setup(con); while (1) { @@ -1026,7 +1091,7 @@ int main(int argc, char **argv) default: break; } - + next: ptr = ptr->next; } while (ptr != &consoles);
participants (1)
-
Source-Sync