openSUSE Commits
Threads by month
- ----- 2024 -----
- July
- June
- May
- April
- March
- February
- January
- ----- 2023 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2022 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2021 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2020 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2019 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2018 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2017 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2016 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2015 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2014 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2013 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2012 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2011 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2010 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2009 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2008 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2007 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2006 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
February 2021
- 1 participants
- 2358 discussions
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(a)suse.com>
+
+- Do not require libeconf-devel on products without /usr/etc.
+
+-------------------------------------------------------------------
+Mon Jan 25 17:07:55 UTC 2021 - Ludwig Nussel <lnussel(a)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(a)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(a)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(a)suse.de>
+
+- prepare usrmerge (boo#1029961)
+
+-------------------------------------------------------------------
+Wed Nov 4 11:07:03 UTC 2020 - Dr. Werner Fink <werner(a)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(a)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(a)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-Rele…
+- 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(a)suse.com>
+
+- Use plain #!/bin/sh for flushb
+
+-------------------------------------------------------------------
+Thu May 21 12:48:40 UTC 2020 - Marketa Calabkova <mcalabkova(a)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-%{versio…
+Source: https://www.kernel.org/pub/linux/utils/util-linux/v2.36/util-linux-%{versio…
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-%{versio…
+Source12: https://www.kernel.org/pub/linux/utils/util-linux/v2.36/util-linux-%{versio…
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-%{versio…
+Source: https://www.kernel.org/pub/linux/utils/util-linux/v2.36/util-linux-%{versio…
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-%{versio…
+Source12: https://www.kernel.org/pub/linux/utils/util-linux/v2.36/util-linux-%{versio…
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-%{versio…
+Source: https://www.kernel.org/pub/linux/utils/util-linux/v2.36/util-linux-%{versio…
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-%{versio…
+Source12: https://www.kernel.org/pub/linux/utils/util-linux/v2.36/util-linux-%{versio…
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(a)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);
1
0
Script 'mail_helper' called by obssrc
Hello community,
here is the log from the commit of package python-isort for openSUSE:Factory checked in at 2021-02-02 14:24:24
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/python-isort (Old)
and /work/SRC/openSUSE:Factory/.python-isort.new.28504 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "python-isort"
Tue Feb 2 14:24:24 2021 rev:24 rq:867793 version:5.7.0
Changes:
--------
--- /work/SRC/openSUSE:Factory/python-isort/python-isort.changes 2021-01-27 18:56:59.428317863 +0100
+++ /work/SRC/openSUSE:Factory/.python-isort.new.28504/python-isort.changes 2021-02-02 14:24:26.855277588 +0100
@@ -1,0 +2,5 @@
+Fri Jan 29 19:59:54 UTC 2021 - Benjamin Greiner <code(a)bnavigator.de>
+
+- Fix test suite: the location of the built wheel changed
+
+-------------------------------------------------------------------
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ python-isort.spec ++++++
--- /var/tmp/diff_new_pack.WWLA6h/_old 2021-02-02 14:24:27.695278894 +0100
+++ /var/tmp/diff_new_pack.WWLA6h/_new 2021-02-02 14:24:27.699278901 +0100
@@ -37,7 +37,7 @@
BuildRequires: %{python_module pip}
BuildRequires: %{python_module poetry-core}
BuildRequires: fdupes
-BuildRequires: python-rpm-macros
+BuildRequires: python-rpm-macros >= 20210127.3a18043
Requires: python-setuptools
Requires(post): update-alternatives
Requires(postun): update-alternatives
@@ -97,7 +97,7 @@
export PYTHONPATH="$(pwd)/isort-test-%{$python_bin_suffix}%{$python_sitelib}"
export PYTHONDONTWRITEBYTECODE=1
-for proj in isort-%{version}-py3-none-any.whl ./example_shared_isort_profile ./example_isort_formatting_plugin; do
+for proj in build/isort-%{version}-py3-none-any.whl ./example_shared_isort_profile ./example_isort_formatting_plugin; do
$python -m pip install --verbose \
--no-index \
--root $(pwd)/isort-test-%{$python_bin_suffix} \
1
0
Script 'mail_helper' called by obssrc
Hello community,
here is the log from the commit of package python2-setuptools for openSUSE:Factory checked in at 2021-02-02 14:24:22
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/python2-setuptools (Old)
and /work/SRC/openSUSE:Factory/.python2-setuptools.new.28504 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "python2-setuptools"
Tue Feb 2 14:24:22 2021 rev:3 rq:865317 version:44.0.0
Changes:
--------
--- /work/SRC/openSUSE:Factory/python2-setuptools/python2-setuptools.changes 2020-04-22 20:54:41.391591633 +0200
+++ /work/SRC/openSUSE:Factory/.python2-setuptools.new.28504/python2-setuptools.changes 2021-02-02 14:24:24.547273998 +0100
@@ -1,0 +2,5 @@
+Thu Jan 21 09:05:01 UTC 2021 - Mark��ta Machov�� <mmachova(a)suse.com>
+
+- Override new python-rpm-macros
+
+-------------------------------------------------------------------
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ python2-setuptools.spec ++++++
--- /var/tmp/diff_new_pack.kPpSg4/_old 2021-02-02 14:24:26.099276412 +0100
+++ /var/tmp/diff_new_pack.kPpSg4/_new 2021-02-02 14:24:26.103276418 +0100
@@ -1,7 +1,7 @@
#
# spec file for package python2-setuptools
#
-# 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
@@ -16,6 +16,7 @@
#
+%define python_version 2.7
Name: python2-setuptools
Version: 44.0.0
Release: 0
1
0
Script 'mail_helper' called by obssrc
Hello community,
here is the log from the commit of package libunwind for openSUSE:Factory checked in at 2021-02-02 14:24:21
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/libunwind (Old)
and /work/SRC/openSUSE:Factory/.libunwind.new.28504 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "libunwind"
Tue Feb 2 14:24:21 2021 rev:44 rq:864598 version:1.5.0
Changes:
--------
--- /work/SRC/openSUSE:Factory/libunwind/libunwind.changes 2020-10-25 18:08:12.215435206 +0100
+++ /work/SRC/openSUSE:Factory/.libunwind.new.28504/libunwind.changes 2021-02-02 14:24:23.531272418 +0100
@@ -1,0 +2,21 @@
+Tue Jan 19 21:29:19 UTC 2021 - Dirk M��ller <dmueller(a)suse.com>
+
+- update to 1.5.0:
+ * dwarf: clang doesn't respect the static alias
+ * Fixed a missing dependency in dwarf-eh.h
+ * x86_64: Fix tdep_init_done when built with libatomic_ops
+ * mips: make _step_n64 as a static function
+ * Added braces to suppress empty if/else warnings
+ * Delete hardcode of address size to support MIPS64.
+ * Fix format specifier for int64_t:29
+ * Add initial support for Solaris x86-64
+ * x86_64: Add fixup code if previous RIP was invalid
+ * x86-64: make `is_cached_valid_mem` functional
+ * arm: clear ip thumb/arm mode bit before move to previous instruction
+ * Fix compilation with -fno-common.
+ * Fix off-by-one error in x86_64 stack frames
+ * aarch64: Fix __sigset build issue on muslC
+ * Make SHF_COMPRESSED use contingent on its existence
+- remove libunwind_U_dyn_info_list.patch (upstream)
+
+-------------------------------------------------------------------
Old:
----
libunwind-1.4.0.tar.gz
libunwind-1.4.0.tar.gz.sig
libunwind_U_dyn_info_list.patch
New:
----
libunwind-1.5.0.tar.gz
libunwind-1.5.0.tar.gz.sig
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ libunwind.spec ++++++
--- /var/tmp/diff_new_pack.dMF1o1/_old 2021-02-02 14:24:24.063273245 +0100
+++ /var/tmp/diff_new_pack.dMF1o1/_new 2021-02-02 14:24:24.067273251 +0100
@@ -1,7 +1,7 @@
#
# spec file for package libunwind
#
-# 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
@@ -17,7 +17,7 @@
Name: libunwind
-Version: 1.4.0
+Version: 1.5.0
Release: 0
Summary: Call chain detection library
License: MIT
@@ -27,12 +27,11 @@
Source1: https://download.savannah.gnu.org/releases/%{name}/%{name}-%{version}.tar.g…
Source2: %{name}.keyring
Source3: baselibs.conf
-Patch0: libunwind_U_dyn_info_list.patch
BuildRequires: gcc-c++
BuildRequires: lzma-devel
BuildRequires: pkgconfig
BuildRequires: pkgconfig(atomic_ops)
-ExclusiveArch: %{ix86} ia64 x86_64 %{arm} ppc ppc64 ppc64le aarch64 s390x
+ExcludeArch: s390 riscv64
%description
A C programming interface (API) to determine the call chain of a program.
@@ -46,18 +45,17 @@
A C programming interface (API) to determine the call chain of a program.
%prep
-%setup -q -n %{name}-%{version}
-%patch0 -p1
+%setup -q
%build
%configure \
--enable-minidebuginfo
-make %{?_smp_mflags}
+%make_build
%check
%if ! 0%{?qemu_user_space_build}
# run-coredump-unwind fails
-make check %{?_smp_mflags} || :
+%make_build check || :
%endif
%install
++++++ libunwind-1.4.0.tar.gz -> libunwind-1.5.0.tar.gz ++++++
++++ 3566 lines of diff (skipped)
1
0
Script 'mail_helper' called by obssrc
Hello community,
here is the log from the commit of package rpm for openSUSE:Factory checked in at 2021-02-02 14:24:19
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/rpm (Old)
and /work/SRC/openSUSE:Factory/.rpm.new.28504 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "rpm"
Tue Feb 2 14:24:19 2021 rev:285 rq:864328 version:4.16.0
Changes:
--------
--- /work/SRC/openSUSE:Factory/rpm/rpm.changes 2021-01-10 19:38:10.337427792 +0100
+++ /work/SRC/openSUSE:Factory/.rpm.new.28504/rpm.changes 2021-02-02 14:24:21.159268729 +0100
@@ -1,0 +2,7 @@
+Thu Jan 14 15:40:39 UTC 2021 - Matej Cepl <mcepl(a)suse.com>
+
+- Add explicit requirement on python-rpm-macros to avoid widespread
+ breakage by package mistakenly ignoring their requirement of
+ python-rpm-macros (bsc#1180125).
+
+-------------------------------------------------------------------
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ rpm.spec ++++++
--- /var/tmp/diff_new_pack.FnuMjH/_old 2021-02-02 14:24:22.579270937 +0100
+++ /var/tmp/diff_new_pack.FnuMjH/_new 2021-02-02 14:24:22.579270937 +0100
@@ -215,6 +215,9 @@
Summary: RPM dependency generator for Python
Group: Development/Languages/Python
Requires: python3-base
+# To avoid widespread breakage by package mistakenly ignoring
+# their requirement of python-rpm-macros (bsc#1180125)
+Requires: python-rpm-macros
%description build-python
Provides and requires generator for .py files and modules.
1
0
Script 'mail_helper' called by obssrc
Hello community,
here is the log from the commit of package brp-check-suse for openSUSE:Factory checked in at 2021-02-02 14:24:18
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/brp-check-suse (Old)
and /work/SRC/openSUSE:Factory/.brp-check-suse.new.28504 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "brp-check-suse"
Tue Feb 2 14:24:18 2021 rev:68 rq:863264 version:84.87+git20201203.5008eba
Changes:
--------
--- /work/SRC/openSUSE:Factory/brp-check-suse/brp-check-suse.changes 2021-01-10 19:37:59.257413951 +0100
+++ /work/SRC/openSUSE:Factory/.brp-check-suse.new.28504/brp-check-suse.changes 2021-02-02 14:24:19.799266614 +0100
@@ -1,0 +2,10 @@
+Fri Jan 15 09:04:13 UTC 2021 - coolo(a)suse.com
+
+- Update to version 84.87+git20201203.5008eba:
+ * brp-25-symlink: Detect if a link points inside the build root
+ * brp-25-symlink: Remove unused $link part of the case statement
+ * brp-25-symlink: Print all errors before exiting
+ * Makefile: enable -O2, use standard variables and clean up
+ * simplify split_paths using std::getline
+
+-------------------------------------------------------------------
Old:
----
brp-check-suse-84.87+git20201201.9bbfade.tar.xz
New:
----
brp-check-suse-84.87+git20201203.5008eba.tar.xz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ brp-check-suse.spec ++++++
--- /var/tmp/diff_new_pack.WjvRX4/_old 2021-02-02 14:24:20.591267846 +0100
+++ /var/tmp/diff_new_pack.WjvRX4/_new 2021-02-02 14:24:20.595267852 +0100
@@ -1,7 +1,7 @@
#
# spec file for package brp-check-suse
#
-# 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
@@ -23,7 +23,7 @@
License: GPL-2.0-or-later
Group: Development/Tools/Building
Requires: perl
-Version: 84.87+git20201201.9bbfade
+Version: 84.87+git20201203.5008eba
Release: 0
URL: https://github.com/openSUSE/brp-check-suse
BuildRequires: gcc-c++
++++++ _servicedata ++++++
--- /var/tmp/diff_new_pack.WjvRX4/_old 2021-02-02 14:24:20.639267920 +0100
+++ /var/tmp/diff_new_pack.WjvRX4/_new 2021-02-02 14:24:20.643267927 +0100
@@ -1,5 +1,5 @@
<servicedata>
<service name="tar_scm">
<param name="url">git://github.com/openSUSE/brp-check-suse.git</param>
- <param name="changesrevision">e16a2204491eba4e9875fc7501c4abee96aeb30d</param></service>
+ <param name="changesrevision">94d2e68c24b161dcb5f986033e4e1eff53db06e6</param></service>
</servicedata>
\ No newline at end of file
++++++ brp-check-suse-84.87+git20201201.9bbfade.tar.xz -> brp-check-suse-84.87+git20201203.5008eba.tar.xz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/brp-check-suse-84.87+git20201201.9bbfade/brp-25-symlink new/brp-check-suse-84.87+git20201203.5008eba/brp-25-symlink
--- old/brp-check-suse-84.87+git20201201.9bbfade/brp-25-symlink 2020-12-01 11:11:06.000000000 +0100
+++ new/brp-check-suse-84.87+git20201203.5008eba/brp-25-symlink 2020-12-03 15:36:23.000000000 +0100
@@ -32,32 +32,42 @@
do
if test "$link" = "$link_dest"; then
echo "ERROR: $link points to itself (as $orig_link_dest)"
- exit 1
+ had_errors=1
+ continue
fi
- case "$link,$link_absolut" in
- *,/etc/alternatives/*) # update alternative links are special
+ case "$link_absolut" in
+ /etc/alternatives/*) # update alternative links are special
link_dest=$link_absolut
;;
- *,*share/automake-*)
- echo "ERROR: link target $link points into automake directory"
- echo " You might want to add a -c to the automake call (or just"
- echo " skip the files from packaging)"
- exit 1
+ /opt/kde3/share/doc*/HTML/*/common) # white listed for not existant
;;
- *,/opt/kde3/share/doc*/HTML/*/common) # white listed for not existant
+ /usr/share/doc/kde/HTML/*/common) # white listed for not existant
;;
- *,/usr/share/doc/kde/HTML/*/common) # white listed for not existant
- ;;
- *,/proc/*|*,/dev/*|*,/sys/*) # links pointing into kernel file system should be absolute
+ /proc/*|/dev/*|/sys/*) # links pointing into kernel file system should be absolute
link_dest=$link_absolut
;;
+ ${RPM_BUILD_ROOT}*)
+ echo "ERROR: Link $link -> $link_orig points inside build root!"
+ had_errors=1
+ continue
+ ;;
+ *share/automake-*)
+ echo "ERROR: link target $link points into automake directory"
+ echo " You might want to add a -c to the automake call (or just"
+ echo " skip the files from packaging)"
+ had_errors=1
+ continue
+ ;;
*)
if test ! -L ./"$link_absolut" && test ! -e "$link_absolut" && test ! -e ./"$link_absolut"; then
echo "ERROR: link target doesn't exist (neither in build root nor in installed system):"
echo " $link -> $link_orig"
echo "Add the package providing the target to BuildRequires and Requires"
- test "$NO_BRP_STALE_LINK_ERROR" != "yes" && had_errors=1
+ if [ "$NO_BRP_STALE_LINK_ERROR" != "yes" ]; then
+ had_errors=1
+ continue
+ fi
fi
;;
esac
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/brp-check-suse-84.87+git20201201.9bbfade/prg-brp-symlink/Makefile new/brp-check-suse-84.87+git20201203.5008eba/prg-brp-symlink/Makefile
--- old/brp-check-suse-84.87+git20201201.9bbfade/prg-brp-symlink/Makefile 2020-12-01 11:11:06.000000000 +0100
+++ new/brp-check-suse-84.87+git20201203.5008eba/prg-brp-symlink/Makefile 2020-12-03 15:36:23.000000000 +0100
@@ -1,7 +1,10 @@
+CXXFLAGS=-O2 -Wall
+CXX=g++
+
all: brp-symlink
brp-symlink: main.cpp
- g++ -I. -std=c++17 main.cpp -o brp-symlink
+ $(CXX) $(CXXFLAGS) -o $@ $^
check: brp-symlink
./brp-symlink < tests.in > tests.new
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/brp-check-suse-84.87+git20201201.9bbfade/prg-brp-symlink/main.cpp new/brp-check-suse-84.87+git20201203.5008eba/prg-brp-symlink/main.cpp
--- old/brp-check-suse-84.87+git20201201.9bbfade/prg-brp-symlink/main.cpp 2020-12-01 11:11:06.000000000 +0100
+++ new/brp-check-suse-84.87+git20201203.5008eba/prg-brp-symlink/main.cpp 2020-12-03 15:36:23.000000000 +0100
@@ -31,21 +31,18 @@
return (tmp + p2);
}
-vector<string> split_paths(string path)
+vector<string> split_paths(const string &path)
{
- size_t pos = 0;
string token;
vector<string> paths;
- while ((pos = path.find("/")) != string::npos) {
- token = path.substr(0, pos);
+ stringstream ss(path);
+ while (getline(ss, token, '/')) {
if (token == "..") {
paths.pop_back();
- } else if (token != ".") {
+ } else if (token != "." || ss.eof()) {
paths.push_back(token);
}
- path.erase(0, pos + 1);
}
- paths.push_back(path);
return paths;
}
1
0
Script 'mail_helper' called by obssrc
Hello community,
here is the log from the commit of package python-mss for openSUSE:Factory checked in at 2021-02-02 14:24:16
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/python-mss (Old)
and /work/SRC/openSUSE:Factory/.python-mss.new.28504 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "python-mss"
Tue Feb 2 14:24:16 2021 rev:2 rq:858348 version:6.1.0
Changes:
--------
--- /work/SRC/openSUSE:Factory/python-mss/python-mss.changes 2020-08-18 15:09:45.436008535 +0200
+++ /work/SRC/openSUSE:Factory/.python-mss.new.28504/python-mss.changes 2021-02-02 14:24:17.983263790 +0100
@@ -1,0 +2,9 @@
+Wed Dec 23 09:33:38 UTC 2020 - Benjamin Greiner <code(a)bnavigator.de>
+
+- Update to v6.1.0
+ * MSS: reworked how C functions are initialised
+ * tests: expand Python versions to 3.9 and 3.10
+ * tests: fix test_entry_point() when there are several monitors
+- clean test rig setup
+
+-------------------------------------------------------------------
Old:
----
mss-6.0.0.tar.gz
New:
----
mss-6.1.0.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ python-mss.spec ++++++
--- /var/tmp/diff_new_pack.SDbXoE/_old 2021-02-02 14:24:18.791265046 +0100
+++ /var/tmp/diff_new_pack.SDbXoE/_new 2021-02-02 14:24:18.795265052 +0100
@@ -19,7 +19,7 @@
%{?!python_module:%define python_module() python-%{**} python3-%{**}}
%define skip_python2 1
Name: python-mss
-Version: 6.0.0
+Version: 6.1.0
Release: 0
Summary: Python multiple screenshots module
License: MIT
@@ -45,8 +45,6 @@
%prep
%setup -q -n mss-%{version}
-mv mss/tests .
-rm tests/test_setup.py
%build
%python_build
@@ -65,12 +63,17 @@
%check
export LANG=en_US.UTF-8
# test_region_out_of_monitor_bounds fails on ppc64 only
-%python_expand PYTHONPATH=%{buildroot}%{$python_sitelib} xvfb-run --server-args "-screen 0 1920x1080x24" $python -m pytest tests/test_*.py -k 'not test_region_out_of_monitor_bounds'
+echo '
+%pytest --ignore mss/tests/test_setup.py -k "not test_region_out_of_monitor_bounds"
+'> pytest_script.sh
+# need explicitly set up screen.
+xvfb-run --server-args "-screen 0 1920x1080x24" sh pytest_script.sh
%files %{python_files}
%doc README.rst
%license LICENSE
%python_alternative %{_bindir}/mss
-%{python_sitelib}/*
+%{python_sitelib}/mss
+%{python_sitelib}/mss-%{version}*-info
%changelog
++++++ mss-6.0.0.tar.gz -> mss-6.1.0.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/mss-6.0.0/PKG-INFO new/mss-6.1.0/PKG-INFO
--- old/mss-6.0.0/PKG-INFO 2020-06-30 18:00:14.000000000 +0200
+++ new/mss-6.1.0/PKG-INFO 2020-10-31 18:18:32.501716100 +0100
@@ -1,6 +1,6 @@
Metadata-Version: 1.2
Name: mss
-Version: 6.0.0
+Version: 6.1.0
Summary: An ultra fast cross-platform multiple screenshots module in pure python using ctypes.
Home-page: https://github.com/BoboTiG/python-mss
Author: Micka��l 'Tiger-222' Schoentgen
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/mss-6.0.0/mss/__init__.py new/mss-6.1.0/mss/__init__.py
--- old/mss-6.0.0/mss/__init__.py 2020-06-28 19:22:53.000000000 +0200
+++ new/mss-6.1.0/mss/__init__.py 2020-10-31 18:09:38.000000000 +0100
@@ -12,7 +12,7 @@
from .exception import ScreenShotError
from .factory import mss
-__version__ = "6.0.0"
+__version__ = "6.1.0"
__author__ = "Micka��l 'Tiger-222' Schoentgen"
__copyright__ = """
Copyright (c) 2013-2020, Micka��l 'Tiger-222' Schoentgen
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/mss-6.0.0/mss/base.py new/mss-6.1.0/mss/base.py
--- old/mss-6.0.0/mss/base.py 2020-06-30 17:37:13.000000000 +0200
+++ new/mss-6.1.0/mss/base.py 2020-10-31 18:07:02.000000000 +0100
@@ -164,6 +164,7 @@
try:
monitor = monitors[mon]
except IndexError:
+ # pylint: disable=raise-missing-from
raise ScreenShotError("Monitor {!r} does not exist.".format(mon))
output = output.format(mon=mon, date=datetime.now(), **monitor)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/mss-6.0.0/mss/darwin.py new/mss-6.1.0/mss/darwin.py
--- old/mss-6.0.0/mss/darwin.py 2020-06-28 19:22:53.000000000 +0200
+++ new/mss-6.1.0/mss/darwin.py 2020-10-31 18:07:02.000000000 +0100
@@ -6,6 +6,18 @@
import ctypes
import ctypes.util
import sys
+from ctypes import (
+ POINTER,
+ Structure,
+ c_double,
+ c_float,
+ c_int32,
+ c_uint64,
+ c_ubyte,
+ c_uint32,
+ c_void_p,
+)
+from platform import mac_ver
from typing import TYPE_CHECKING
from .base import MSSBase
@@ -22,13 +34,13 @@
def cgfloat():
- # type: () -> Union[Type[ctypes.c_double], Type[ctypes.c_float]]
+ # type: () -> Union[Type[c_double], Type[c_float]]
""" Get the appropriate value for a float. """
- return ctypes.c_double if sys.maxsize > 2 ** 32 else ctypes.c_float
+ return c_double if sys.maxsize > 2 ** 32 else c_float
-class CGPoint(ctypes.Structure):
+class CGPoint(Structure):
""" Structure that contains coordinates of a rectangle. """
_fields_ = [("x", cgfloat()), ("y", cgfloat())]
@@ -37,7 +49,7 @@
return "{}(left={} top={})".format(type(self).__name__, self.x, self.y)
-class CGSize(ctypes.Structure):
+class CGSize(Structure):
""" Structure that contains dimensions of an rectangle. """
_fields_ = [("width", cgfloat()), ("height", cgfloat())]
@@ -48,7 +60,7 @@
)
-class CGRect(ctypes.Structure):
+class CGRect(Structure):
""" Structure that contains information about a rectangle. """
_fields_ = [("origin", CGPoint), ("size", CGSize)]
@@ -57,6 +69,42 @@
return "{}<{} {}>".format(type(self).__name__, self.origin, self.size)
+# C functions that will be initialised later.
+#
+# This is a dict:
+# cfunction: (attr, argtypes, restype)
+#
+# Available attr: core.
+#
+# Note: keep it sorted by cfunction.
+CFUNCTIONS = {
+ "CGDataProviderCopyData": ("core", [c_void_p], c_void_p),
+ "CGDisplayBounds": ("core", [c_uint32], CGRect),
+ "CGDisplayRotation": ("core", [c_uint32], c_float),
+ "CFDataGetBytePtr": ("core", [c_void_p], c_void_p),
+ "CFDataGetLength": ("core", [c_void_p], c_uint64),
+ "CFRelease": ("core", [c_void_p], c_void_p),
+ "CGDataProviderRelease": ("core", [c_void_p], c_void_p),
+ "CGGetActiveDisplayList": (
+ "core",
+ [c_uint32, POINTER(c_uint32), POINTER(c_uint32)],
+ c_int32,
+ ),
+ "CGImageGetBitsPerPixel": ("core", [c_void_p], int),
+ "CGImageGetBytesPerRow": ("core", [c_void_p], int),
+ "CGImageGetDataProvider": ("core", [c_void_p], c_void_p),
+ "CGImageGetHeight": ("core", [c_void_p], int),
+ "CGImageGetWidth": ("core", [c_void_p], int),
+ "CGRectStandardize": ("core", [CGRect], CGRect),
+ "CGRectUnion": ("core", [CGRect, CGRect], CGRect),
+ "CGWindowListCreateImage": (
+ "core",
+ [CGRect, c_uint32, c_uint32, c_uint32],
+ c_void_p,
+ ),
+}
+
+
class MSS(MSSBase):
"""
Multiple ScreenShots implementation for macOS.
@@ -72,54 +120,37 @@
self.max_displays = 32
- coregraphics = ctypes.util.find_library("CoreGraphics")
+ self._init_library()
+ self._set_cfunctions()
+
+ def _init_library(self):
+ """ Load the CoreGraphics library. """
+ version = float(".".join(mac_ver()[0].split(".")[:2]))
+ if version < 10.16:
+ coregraphics = ctypes.util.find_library("CoreGraphics")
+ else:
+ # macOS Big Sur and newer
+ # pylint: disable=line-too-long
+ coregraphics = "/System/Library/Frameworks/CoreGraphics.framework/Versions/Current/CoreGraphics"
+
if not coregraphics:
raise ScreenShotError("No CoreGraphics library found.")
self.core = ctypes.cdll.LoadLibrary(coregraphics)
- self._set_cfunctions()
-
def _set_cfunctions(self):
# type: () -> None
""" Set all ctypes functions and attach them to attributes. """
- def cfactory(func, argtypes, restype):
- # type: (str, List[Any], Any) -> None
- """ Factorize ctypes creations. """
- self._cfactory(
- attr=self.core, func=func, argtypes=argtypes, restype=restype
+ cfactory = self._cfactory
+ attrs = {"core": self.core}
+ for func, (attr, argtypes, restype) in CFUNCTIONS.items():
+ cfactory(
+ attr=attrs[attr],
+ func=func,
+ argtypes=argtypes, # type: ignore
+ restype=restype,
)
- uint32 = ctypes.c_uint32
- void = ctypes.c_void_p
- size_t = ctypes.c_size_t
- pointer = ctypes.POINTER
-
- cfactory(
- func="CGGetActiveDisplayList",
- argtypes=[uint32, pointer(uint32), pointer(uint32)],
- restype=ctypes.c_int32,
- )
- cfactory(func="CGDisplayBounds", argtypes=[uint32], restype=CGRect)
- cfactory(func="CGRectStandardize", argtypes=[CGRect], restype=CGRect)
- cfactory(func="CGRectUnion", argtypes=[CGRect, CGRect], restype=CGRect)
- cfactory(func="CGDisplayRotation", argtypes=[uint32], restype=ctypes.c_float)
- cfactory(
- func="CGWindowListCreateImage",
- argtypes=[CGRect, uint32, uint32, uint32],
- restype=void,
- )
- cfactory(func="CGImageGetWidth", argtypes=[void], restype=size_t)
- cfactory(func="CGImageGetHeight", argtypes=[void], restype=size_t)
- cfactory(func="CGImageGetDataProvider", argtypes=[void], restype=void)
- cfactory(func="CGDataProviderCopyData", argtypes=[void], restype=void)
- cfactory(func="CFDataGetBytePtr", argtypes=[void], restype=void)
- cfactory(func="CFDataGetLength", argtypes=[void], restype=ctypes.c_uint64)
- cfactory(func="CGImageGetBytesPerRow", argtypes=[void], restype=size_t)
- cfactory(func="CGImageGetBitsPerPixel", argtypes=[void], restype=size_t)
- cfactory(func="CGDataProviderRelease", argtypes=[void], restype=void)
- cfactory(func="CFRelease", argtypes=[void], restype=void)
-
def _monitors_impl(self):
# type: () -> None
""" Get positions of monitors. It will populate self._monitors. """
@@ -134,8 +165,8 @@
self._monitors.append({})
# Each monitors
- display_count = ctypes.c_uint32(0)
- active_displays = (ctypes.c_uint32 * self.max_displays)()
+ display_count = c_uint32(0)
+ active_displays = (c_uint32 * self.max_displays)()
core.CGGetActiveDisplayList(
self.max_displays, active_displays, ctypes.byref(display_count)
)
@@ -183,20 +214,20 @@
if not image_ref:
raise ScreenShotError("CoreGraphics.CGWindowListCreateImage() failed.")
- width = int(core.CGImageGetWidth(image_ref))
- height = int(core.CGImageGetHeight(image_ref))
+ width = core.CGImageGetWidth(image_ref)
+ height = core.CGImageGetHeight(image_ref)
prov = copy_data = None
try:
prov = core.CGImageGetDataProvider(image_ref)
copy_data = core.CGDataProviderCopyData(prov)
data_ref = core.CFDataGetBytePtr(copy_data)
buf_len = core.CFDataGetLength(copy_data)
- raw = ctypes.cast(data_ref, ctypes.POINTER(ctypes.c_ubyte * buf_len))
+ raw = ctypes.cast(data_ref, POINTER(c_ubyte * buf_len))
data = bytearray(raw.contents)
# Remove padding per row
- bytes_per_row = int(core.CGImageGetBytesPerRow(image_ref))
- bytes_per_pixel = int(core.CGImageGetBitsPerPixel(image_ref))
+ bytes_per_row = core.CGImageGetBytesPerRow(image_ref)
+ bytes_per_pixel = core.CGImageGetBitsPerPixel(image_ref)
bytes_per_pixel = (bytes_per_pixel + 7) // 8
if bytes_per_pixel * width != bytes_per_row:
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/mss-6.0.0/mss/linux.py new/mss-6.1.0/mss/linux.py
--- old/mss-6.0.0/mss/linux.py 2020-06-30 17:58:00.000000000 +0200
+++ new/mss-6.1.0/mss/linux.py 2020-10-31 18:07:02.000000000 +0100
@@ -7,6 +7,21 @@
import ctypes.util
import os
import threading
+from ctypes import (
+ POINTER,
+ CFUNCTYPE,
+ Structure,
+ c_char_p,
+ c_int,
+ c_int32,
+ c_long,
+ c_ubyte,
+ c_uint,
+ c_uint32,
+ c_ulong,
+ c_ushort,
+ c_void_p,
+)
from types import SimpleNamespace
from typing import TYPE_CHECKING
@@ -28,127 +43,127 @@
ZPIXMAP = 2
-class Display(ctypes.Structure):
+class Display(Structure):
"""
Structure that serves as the connection to the X server
and that contains all the information about that X server.
"""
-class Event(ctypes.Structure):
+class Event(Structure):
"""
XErrorEvent to debug eventual errors.
https://tronche.com/gui/x/xlib/event-handling/protocol-errors/default-handl…
"""
_fields_ = [
- ("type", ctypes.c_int),
- ("display", ctypes.POINTER(Display)),
- ("serial", ctypes.c_ulong),
- ("error_code", ctypes.c_ubyte),
- ("request_code", ctypes.c_ubyte),
- ("minor_code", ctypes.c_ubyte),
- ("resourceid", ctypes.c_void_p),
+ ("type", c_int),
+ ("display", POINTER(Display)),
+ ("serial", c_ulong),
+ ("error_code", c_ubyte),
+ ("request_code", c_ubyte),
+ ("minor_code", c_ubyte),
+ ("resourceid", c_void_p),
]
-class XWindowAttributes(ctypes.Structure):
+class XWindowAttributes(Structure):
""" Attributes for the specified window. """
_fields_ = [
- ("x", ctypes.c_int32),
- ("y", ctypes.c_int32),
- ("width", ctypes.c_int32),
- ("height", ctypes.c_int32),
- ("border_width", ctypes.c_int32),
- ("depth", ctypes.c_int32),
- ("visual", ctypes.c_ulong),
- ("root", ctypes.c_ulong),
- ("class", ctypes.c_int32),
- ("bit_gravity", ctypes.c_int32),
- ("win_gravity", ctypes.c_int32),
- ("backing_store", ctypes.c_int32),
- ("backing_planes", ctypes.c_ulong),
- ("backing_pixel", ctypes.c_ulong),
- ("save_under", ctypes.c_int32),
- ("colourmap", ctypes.c_ulong),
- ("mapinstalled", ctypes.c_uint32),
- ("map_state", ctypes.c_uint32),
- ("all_event_masks", ctypes.c_ulong),
- ("your_event_mask", ctypes.c_ulong),
- ("do_not_propagate_mask", ctypes.c_ulong),
- ("override_redirect", ctypes.c_int32),
- ("screen", ctypes.c_ulong),
+ ("x", c_int32),
+ ("y", c_int32),
+ ("width", c_int32),
+ ("height", c_int32),
+ ("border_width", c_int32),
+ ("depth", c_int32),
+ ("visual", c_ulong),
+ ("root", c_ulong),
+ ("class", c_int32),
+ ("bit_gravity", c_int32),
+ ("win_gravity", c_int32),
+ ("backing_store", c_int32),
+ ("backing_planes", c_ulong),
+ ("backing_pixel", c_ulong),
+ ("save_under", c_int32),
+ ("colourmap", c_ulong),
+ ("mapinstalled", c_uint32),
+ ("map_state", c_uint32),
+ ("all_event_masks", c_ulong),
+ ("your_event_mask", c_ulong),
+ ("do_not_propagate_mask", c_ulong),
+ ("override_redirect", c_int32),
+ ("screen", c_ulong),
]
-class XImage(ctypes.Structure):
+class XImage(Structure):
"""
Description of an image as it exists in the client's memory.
https://tronche.com/gui/x/xlib/graphics/images.html
"""
_fields_ = [
- ("width", ctypes.c_int),
- ("height", ctypes.c_int),
- ("xoffset", ctypes.c_int),
- ("format", ctypes.c_int),
- ("data", ctypes.c_void_p),
- ("byte_order", ctypes.c_int),
- ("bitmap_unit", ctypes.c_int),
- ("bitmap_bit_order", ctypes.c_int),
- ("bitmap_pad", ctypes.c_int),
- ("depth", ctypes.c_int),
- ("bytes_per_line", ctypes.c_int),
- ("bits_per_pixel", ctypes.c_int),
- ("red_mask", ctypes.c_ulong),
- ("green_mask", ctypes.c_ulong),
- ("blue_mask", ctypes.c_ulong),
+ ("width", c_int),
+ ("height", c_int),
+ ("xoffset", c_int),
+ ("format", c_int),
+ ("data", c_void_p),
+ ("byte_order", c_int),
+ ("bitmap_unit", c_int),
+ ("bitmap_bit_order", c_int),
+ ("bitmap_pad", c_int),
+ ("depth", c_int),
+ ("bytes_per_line", c_int),
+ ("bits_per_pixel", c_int),
+ ("red_mask", c_ulong),
+ ("green_mask", c_ulong),
+ ("blue_mask", c_ulong),
]
-class XRRModeInfo(ctypes.Structure):
+class XRRModeInfo(Structure):
""" Voil��, voil��. """
-class XRRScreenResources(ctypes.Structure):
+class XRRScreenResources(Structure):
"""
Structure that contains arrays of XIDs that point to the
available outputs and associated CRTCs.
"""
_fields_ = [
- ("timestamp", ctypes.c_ulong),
- ("configTimestamp", ctypes.c_ulong),
- ("ncrtc", ctypes.c_int),
- ("crtcs", ctypes.POINTER(ctypes.c_long)),
- ("noutput", ctypes.c_int),
- ("outputs", ctypes.POINTER(ctypes.c_long)),
- ("nmode", ctypes.c_int),
- ("modes", ctypes.POINTER(XRRModeInfo)),
+ ("timestamp", c_ulong),
+ ("configTimestamp", c_ulong),
+ ("ncrtc", c_int),
+ ("crtcs", POINTER(c_long)),
+ ("noutput", c_int),
+ ("outputs", POINTER(c_long)),
+ ("nmode", c_int),
+ ("modes", POINTER(XRRModeInfo)),
]
-class XRRCrtcInfo(ctypes.Structure):
+class XRRCrtcInfo(Structure):
""" Structure that contains CRTC information. """
_fields_ = [
- ("timestamp", ctypes.c_ulong),
- ("x", ctypes.c_int),
- ("y", ctypes.c_int),
- ("width", ctypes.c_int),
- ("height", ctypes.c_int),
- ("mode", ctypes.c_long),
- ("rotation", ctypes.c_int),
- ("noutput", ctypes.c_int),
- ("outputs", ctypes.POINTER(ctypes.c_long)),
- ("rotations", ctypes.c_ushort),
- ("npossible", ctypes.c_int),
- ("possible", ctypes.POINTER(ctypes.c_long)),
+ ("timestamp", c_ulong),
+ ("x", c_int),
+ ("y", c_int),
+ ("width", c_int),
+ ("height", c_int),
+ ("mode", c_long),
+ ("rotation", c_int),
+ ("noutput", c_int),
+ ("outputs", POINTER(c_long)),
+ ("rotations", c_ushort),
+ ("npossible", c_int),
+ ("possible", POINTER(c_long)),
]
-(a)ctypes.CFUNCTYPE(ctypes.c_int, ctypes.POINTER(Display), ctypes.POINTER(Event))
+@CFUNCTYPE(c_int, POINTER(Display), POINTER(Event))
def error_handler(_, event):
# type: (Any, Any) -> int
""" Specifies the program's supplied error handler. """
@@ -176,6 +191,71 @@
raise ScreenShotError(err, details=details)
+# C functions that will be initialised later.
+# See https://tronche.com/gui/x/xlib/function-index.html for details.
+#
+# This is a dict:
+# cfunction: (attr, argtypes, restype)
+#
+# Available attr: xlib, xrandr.
+#
+# Note: keep it sorted by cfunction.
+CFUNCTIONS = {
+ "XDefaultRootWindow": ("xlib", [POINTER(Display)], POINTER(XWindowAttributes)),
+ "XDestroyImage": ("xlib", [POINTER(XImage)], c_void_p),
+ "XGetErrorText": ("xlib", [POINTER(Display), c_int, c_char_p, c_int], c_void_p),
+ "XGetImage": (
+ "xlib",
+ [
+ POINTER(Display),
+ POINTER(Display),
+ c_int,
+ c_int,
+ c_uint,
+ c_uint,
+ c_ulong,
+ c_int,
+ ],
+ POINTER(XImage),
+ ),
+ "XGetWindowAttributes": (
+ "xlib",
+ [POINTER(Display), POINTER(XWindowAttributes), POINTER(XWindowAttributes)],
+ c_int,
+ ),
+ "XOpenDisplay": ("xlib", [c_char_p], POINTER(Display)),
+ "XQueryExtension": (
+ "xlib",
+ [
+ POINTER(Display),
+ c_char_p,
+ POINTER(c_int),
+ POINTER(c_int),
+ POINTER(c_int),
+ ],
+ c_uint,
+ ),
+ "XRRFreeCrtcInfo": ("xrandr", [POINTER(XRRCrtcInfo)], c_void_p),
+ "XRRFreeScreenResources": ("xrandr", [POINTER(XRRScreenResources)], c_void_p),
+ "XRRGetCrtcInfo": (
+ "xrandr",
+ [POINTER(Display), POINTER(XRRScreenResources), c_long],
+ POINTER(XRRCrtcInfo),
+ ),
+ "XRRGetScreenResources": (
+ "xrandr",
+ [POINTER(Display), POINTER(Display)],
+ POINTER(XRRScreenResources),
+ ),
+ "XRRGetScreenResourcesCurrent": (
+ "xrandr",
+ [POINTER(Display), POINTER(Display)],
+ POINTER(XRRScreenResources),
+ ),
+ "XSetErrorHandler": ("xlib", [c_void_p], c_int),
+}
+
+
class MSS(MSSBase):
"""
Multiple ScreenShots implementation for GNU/Linux.
@@ -197,6 +277,7 @@
try:
display = os.environ["DISPLAY"].encode("utf-8")
except KeyError:
+ # pylint: disable=raise-missing-from
raise ScreenShotError("$DISPLAY not set.")
if not isinstance(display, bytes):
@@ -228,14 +309,12 @@
# Fix for XRRGetScreenResources and XGetImage:
# expected LP_Display instance instead of LP_XWindowAttributes
- self.drawable = ctypes.cast(self.root, ctypes.POINTER(Display))
+ self.drawable = ctypes.cast(self.root, POINTER(Display))
def has_extension(self, extension):
# type: (str) -> bool
"""Return True if the given *extension* is part of the extensions list of the server."""
with lock:
- byref = ctypes.byref
- c_int = ctypes.c_int
major_opcode_return = c_int()
first_event_return = c_int()
first_error_return = c_int()
@@ -244,9 +323,9 @@
self.xlib.XQueryExtension(
self._get_display(),
extension.encode("latin1"),
- byref(major_opcode_return),
- byref(first_event_return),
- byref(first_error_return),
+ ctypes.byref(major_opcode_return),
+ ctypes.byref(first_event_return),
+ ctypes.byref(first_error_return),
)
except ScreenShotError:
return False
@@ -271,93 +350,24 @@
return display
def _set_cfunctions(self):
- """
- Set all ctypes functions and attach them to attributes.
- See https://tronche.com/gui/x/xlib/function-index.html for details.
- """
-
- def cfactory(func, argtypes, restype, attr=self.xlib):
- # type: (str, List[Any], Any, Any) -> None
- """ Factorize ctypes creations. """
- self._cfactory(
- attr=attr,
- errcheck=validate,
- func=func,
- argtypes=argtypes,
- restype=restype,
- )
+ """ Set all ctypes functions and attach them to attributes. """
- void = ctypes.c_void_p
- c_int = ctypes.c_int
- uint = ctypes.c_uint
- ulong = ctypes.c_ulong
- c_long = ctypes.c_long
- char_p = ctypes.c_char_p
- pointer = ctypes.POINTER
-
- cfactory("XSetErrorHandler", [void], c_int)
- cfactory("XGetErrorText", [pointer(Display), c_int, char_p, c_int], void)
- cfactory("XOpenDisplay", [char_p], pointer(Display))
- cfactory("XDefaultRootWindow", [pointer(Display)], pointer(XWindowAttributes))
- cfactory(
- "XGetWindowAttributes",
- [pointer(Display), pointer(XWindowAttributes), pointer(XWindowAttributes)],
- c_int,
- )
- cfactory(
- "XGetImage",
- [
- pointer(Display),
- pointer(Display),
- c_int,
- c_int,
- uint,
- uint,
- ulong,
- c_int,
- ],
- pointer(XImage),
- )
- cfactory("XDestroyImage", [pointer(XImage)], void)
- cfactory(
- "XQueryExtension",
- [pointer(Display), char_p, pointer(c_int), pointer(c_int), pointer(c_int)],
- uint,
- )
-
- # A simple benchmark calling 10 times those 2 functions:
- # XRRGetScreenResources(): 0.1755971429956844 s
- # XRRGetScreenResourcesCurrent(): 0.0039125580078689 s
- # The second is faster by a factor of 44! So try to use it first.
- try:
- cfactory(
- "XRRGetScreenResourcesCurrent",
- [pointer(Display), pointer(Display)],
- pointer(XRRScreenResources),
- attr=self.xrandr,
- )
- except AttributeError:
- cfactory(
- "XRRGetScreenResources",
- [pointer(Display), pointer(Display)],
- pointer(XRRScreenResources),
- attr=self.xrandr,
- )
- self.xrandr.XRRGetScreenResourcesCurrent = self.xrandr.XRRGetScreenResources
-
- cfactory(
- "XRRGetCrtcInfo",
- [pointer(Display), pointer(XRRScreenResources), c_long],
- pointer(XRRCrtcInfo),
- attr=self.xrandr,
- )
- cfactory(
- "XRRFreeScreenResources",
- [pointer(XRRScreenResources)],
- void,
- attr=self.xrandr,
- )
- cfactory("XRRFreeCrtcInfo", [pointer(XRRCrtcInfo)], void, attr=self.xrandr)
+ cfactory = self._cfactory
+ attrs = {
+ "xlib": self.xlib,
+ "xrandr": self.xrandr,
+ }
+ for func, (attr, argtypes, restype) in CFUNCTIONS.items():
+ try:
+ cfactory(
+ attr=attrs[attr],
+ errcheck=validate,
+ func=func,
+ argtypes=argtypes,
+ restype=restype,
+ ) # type: ignore
+ except AttributeError:
+ pass
def get_error_details(self):
# type: () -> Optional[Dict[str, Any]]
@@ -402,7 +412,15 @@
)
# Each monitors
- mon = xrandr.XRRGetScreenResourcesCurrent(display, self.drawable).contents
+ # A simple benchmark calling 10 times those 2 functions:
+ # XRRGetScreenResources(): 0.1755971429956844 s
+ # XRRGetScreenResourcesCurrent(): 0.0039125580078689 s
+ # The second is faster by a factor of 44! So try to use it first.
+ try:
+ mon = xrandr.XRRGetScreenResourcesCurrent(display, self.drawable).contents
+ except AttributeError:
+ mon = xrandr.XRRGetScreenResources(display, self.drawable).contents
+
crtcs = mon.crtcs
for idx in range(mon.ncrtc):
crtc = xrandr.XRRGetCrtcInfo(display, mon, crtcs[idx]).contents
@@ -447,9 +465,7 @@
raw_data = ctypes.cast(
ximage.contents.data,
- ctypes.POINTER(
- ctypes.c_ubyte * monitor["height"] * monitor["width"] * 4
- ),
+ POINTER(c_ubyte * monitor["height"] * monitor["width"] * 4),
)
data = bytearray(raw_data.contents)
finally:
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/mss-6.0.0/mss/screenshot.py new/mss-6.1.0/mss/screenshot.py
--- old/mss-6.0.0/mss/screenshot.py 2019-04-23 16:35:25.000000000 +0200
+++ new/mss-6.1.0/mss/screenshot.py 2020-10-31 18:07:02.000000000 +0100
@@ -152,6 +152,7 @@
try:
return self.pixels[coord_y][coord_x] # type: ignore
except IndexError:
+ # pylint: disable=raise-missing-from
raise ScreenShotError(
"Pixel location ({}, {}) is out of range.".format(coord_x, coord_y)
)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/mss-6.0.0/mss/tests/test_gnu_linux.py new/mss-6.1.0/mss/tests/test_gnu_linux.py
--- old/mss-6.0.0/mss/tests/test_gnu_linux.py 2020-06-30 17:37:13.000000000 +0200
+++ new/mss-6.1.0/mss/tests/test_gnu_linux.py 2020-10-31 18:07:02.000000000 +0100
@@ -37,14 +37,15 @@
# macOS
monkeypatch.setattr(platform, "system", lambda: "Darwin")
- with pytest.raises(ScreenShotError):
+ with pytest.raises((ScreenShotError, ValueError)):
+ # ValueError on macOS Big Sur
mss.mss()
monkeypatch.undo()
# Windows
monkeypatch.setattr(platform, "system", lambda: "wInDoWs")
- with pytest.raises(ValueError):
- # wintypes.py:19: ValueError: _type_ 'v' not supported
+ with pytest.raises(ImportError):
+ # ImportError: cannot import name 'WINFUNCTYPE'
mss.mss()
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/mss-6.0.0/mss/tests/test_implementation.py new/mss-6.1.0/mss/tests/test_implementation.py
--- old/mss-6.0.0/mss/tests/test_implementation.py 2020-06-28 18:08:11.000000000 +0200
+++ new/mss-6.1.0/mss/tests/test_implementation.py 2020-10-31 18:07:02.000000000 +0100
@@ -96,11 +96,12 @@
fmt = "sct-{width}x{height}.png"
for opt in ("-o", "--out"):
main([opt, fmt])
- filename = fmt.format(**sct.monitors[1])
out, _ = capsys.readouterr()
- assert out.endswith(filename + "\n")
- assert os.path.isfile(filename)
- os.remove(filename)
+ for monitor, line in zip(sct.monitors[1:], out.splitlines()):
+ filename = fmt.format(**monitor)
+ assert line.endswith(filename)
+ assert os.path.isfile(filename)
+ os.remove(filename)
fmt = "sct_{mon}-{date:%Y-%m-%d}.png"
for opt in ("-o", "--out"):
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/mss-6.0.0/mss/tests/test_macos.py new/mss-6.1.0/mss/tests/test_macos.py
--- old/mss-6.0.0/mss/tests/test_macos.py 2019-12-31 18:37:33.000000000 +0100
+++ new/mss-6.1.0/mss/tests/test_macos.py 2020-10-31 18:07:02.000000000 +0100
@@ -44,10 +44,13 @@
def test_implementation(monkeypatch):
# No `CoreGraphics` library
- monkeypatch.setattr(ctypes.util, "find_library", lambda x: None)
- with pytest.raises(ScreenShotError):
- mss.mss()
- monkeypatch.undo()
+ version = float(".".join(platform.mac_ver()[0].split(".")[:2]))
+
+ if version < 10.16:
+ monkeypatch.setattr(ctypes.util, "find_library", lambda x: None)
+ with pytest.raises(ScreenShotError):
+ mss.mss()
+ monkeypatch.undo()
with mss.mss() as sct:
# Test monitor's rotation
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/mss-6.0.0/mss/tests/test_third_party.py new/mss-6.1.0/mss/tests/test_third_party.py
--- old/mss-6.0.0/mss/tests/test_third_party.py 2020-01-04 21:27:05.000000000 +0100
+++ new/mss-6.1.0/mss/tests/test_third_party.py 2020-10-31 18:07:02.000000000 +0100
@@ -11,7 +11,8 @@
try:
import numpy
-except ImportError:
+except (ImportError, RuntimeError):
+ # RuntimeError on Python 3.9 (macOS): Polyfit sanity test emitted a warning, ...
numpy = None
try:
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/mss-6.0.0/mss/windows.py new/mss-6.1.0/mss/windows.py
--- old/mss-6.0.0/mss/windows.py 2020-06-28 19:22:53.000000000 +0200
+++ new/mss-6.1.0/mss/windows.py 2020-10-31 18:07:02.000000000 +0100
@@ -6,6 +6,7 @@
import sys
import ctypes
import threading
+from ctypes import POINTER, Structure, WINFUNCTYPE, c_void_p
from ctypes.wintypes import (
BOOL,
DOUBLE,
@@ -40,7 +41,7 @@
SRCCOPY = 0x00CC0020
-class BITMAPINFOHEADER(ctypes.Structure):
+class BITMAPINFOHEADER(Structure):
""" Information about the dimensions and color format of a DIB. """
_fields_ = [
@@ -58,7 +59,7 @@
]
-class BITMAPINFO(ctypes.Structure):
+class BITMAPINFO(Structure):
"""
Structure that defines the dimensions and color information for a DIB.
"""
@@ -66,10 +67,39 @@
_fields_ = [("bmiHeader", BITMAPINFOHEADER), ("bmiColors", DWORD * 3)]
+MONITORNUMPROC = WINFUNCTYPE(INT, DWORD, DWORD, POINTER(RECT), DOUBLE)
+
+
+# C functions that will be initialised later.
+#
+# This is a dict:
+# cfunction: (attr, argtypes, restype)
+#
+# Available attr: gdi32, user32.
+#
+# Note: keep it sorted by cfunction.
+CFUNCTIONS = {
+ "BitBlt": ("gdi32", [HDC, INT, INT, INT, INT, HDC, INT, INT, DWORD], BOOL),
+ "CreateCompatibleBitmap": ("gdi32", [HDC, INT, INT], HBITMAP),
+ "CreateCompatibleDC": ("gdi32", [HDC], HDC),
+ "DeleteObject": ("gdi32", [HGDIOBJ], INT),
+ "EnumDisplayMonitors": ("user32", [HDC, c_void_p, MONITORNUMPROC, LPARAM], BOOL),
+ "GetDeviceCaps": ("gdi32", [HWND, INT], INT),
+ "GetDIBits": (
+ "gdi32",
+ [HDC, HBITMAP, UINT, UINT, c_void_p, POINTER(BITMAPINFO), UINT],
+ BOOL,
+ ),
+ "GetSystemMetrics": ("user32", [INT], INT),
+ "GetWindowDC": ("user32", [HWND], HDC),
+ "SelectObject": ("gdi32", [HDC, HGDIOBJ], HGDIOBJ),
+}
+
+
class MSS(MSSBase):
""" Multiple ScreenShots implementation for Microsoft Windows. """
- __slots__ = {"_bbox", "_bmi", "_data", "gdi32", "monitorenumproc", "user32"}
+ __slots__ = {"_bbox", "_bmi", "_data", "gdi32", "user32"}
# Class attributes instanced one time to prevent resource leaks.
bmp = None
@@ -84,10 +114,6 @@
super().__init__()
- self.monitorenumproc = ctypes.WINFUNCTYPE(
- INT, DWORD, DWORD, ctypes.POINTER(RECT), DOUBLE
- )
-
self.user32 = ctypes.WinDLL("user32")
self.gdi32 = ctypes.WinDLL("gdi32")
self._set_cfunctions()
@@ -112,55 +138,18 @@
def _set_cfunctions(self):
""" Set all ctypes functions and attach them to attributes. """
- void = ctypes.c_void_p
- pointer = ctypes.POINTER
-
- self._cfactory(
- attr=self.user32, func="GetSystemMetrics", argtypes=[INT], restype=INT
- )
- self._cfactory(
- attr=self.user32,
- func="EnumDisplayMonitors",
- argtypes=[HDC, void, self.monitorenumproc, LPARAM],
- restype=BOOL,
- )
- self._cfactory(
- attr=self.user32, func="GetWindowDC", argtypes=[HWND], restype=HDC
- )
-
- self._cfactory(
- attr=self.gdi32, func="GetDeviceCaps", argtypes=[HWND, INT], restype=INT
- )
- self._cfactory(
- attr=self.gdi32, func="CreateCompatibleDC", argtypes=[HDC], restype=HDC
- )
- self._cfactory(
- attr=self.gdi32,
- func="CreateCompatibleBitmap",
- argtypes=[HDC, INT, INT],
- restype=HBITMAP,
- )
- self._cfactory(
- attr=self.gdi32,
- func="SelectObject",
- argtypes=[HDC, HGDIOBJ],
- restype=HGDIOBJ,
- )
- self._cfactory(
- attr=self.gdi32,
- func="BitBlt",
- argtypes=[HDC, INT, INT, INT, INT, HDC, INT, INT, DWORD],
- restype=BOOL,
- )
- self._cfactory(
- attr=self.gdi32, func="DeleteObject", argtypes=[HGDIOBJ], restype=INT
- )
- self._cfactory(
- attr=self.gdi32,
- func="GetDIBits",
- argtypes=[HDC, HBITMAP, UINT, UINT, void, pointer(BITMAPINFO), UINT],
- restype=BOOL,
- )
+ cfactory = self._cfactory
+ attrs = {
+ "gdi32": self.gdi32,
+ "user32": self.user32,
+ }
+ for func, (attr, argtypes, restype) in CFUNCTIONS.items():
+ cfactory(
+ attr=attrs[attr],
+ func=func,
+ argtypes=argtypes,
+ restype=restype,
+ ) # type: ignore
def _set_dpi_awareness(self):
""" Set DPI aware to capture full screen on Hi-DPI monitors. """
@@ -229,7 +218,7 @@
)
return 1
- callback = self.monitorenumproc(_callback)
+ callback = MONITORNUMPROC(_callback)
user32.EnumDisplayMonitors(0, 0, callback, 0)
def _grab_impl(self, monitor):
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/mss-6.0.0/mss.egg-info/PKG-INFO new/mss-6.1.0/mss.egg-info/PKG-INFO
--- old/mss-6.0.0/mss.egg-info/PKG-INFO 2020-06-30 18:00:14.000000000 +0200
+++ new/mss-6.1.0/mss.egg-info/PKG-INFO 2020-10-31 18:18:32.000000000 +0100
@@ -1,6 +1,6 @@
Metadata-Version: 1.2
Name: mss
-Version: 6.0.0
+Version: 6.1.0
Summary: An ultra fast cross-platform multiple screenshots module in pure python using ctypes.
Home-page: https://github.com/BoboTiG/python-mss
Author: Micka��l 'Tiger-222' Schoentgen
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/mss-6.0.0/setup.cfg new/mss-6.1.0/setup.cfg
--- old/mss-6.0.0/setup.cfg 2020-06-30 18:00:14.000000000 +0200
+++ new/mss-6.1.0/setup.cfg 2020-10-31 18:18:32.503833500 +0100
@@ -1,6 +1,6 @@
[metadata]
name = mss
-version = 6.0.0
+version = 6.1.0
author = Micka��l 'Tiger-222' Schoentgen
author-email = contact(a)tiger-222.fr
description = An ultra fast cross-platform multiple screenshots module in pure python using ctypes.
1
0
Script 'mail_helper' called by obssrc
Hello community,
here is the log from the commit of package 00Meta for openSUSE:Leap:15.2:Images checked in at 2021-02-02 14:15:31
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Leap:15.2:Images/00Meta (Old)
and /work/SRC/openSUSE:Leap:15.2:Images/.00Meta.new.28504 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "00Meta"
Tue Feb 2 14:15:31 2021 rev:761 rq: version:unknown
Changes:
--------
New Changes file:
NO CHANGES FILE!!!
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ version_snapshot ++++++
--- /var/tmp/diff_new_pack.eiXSmd/_old 2021-02-02 14:15:33.086361997 +0100
+++ /var/tmp/diff_new_pack.eiXSmd/_new 2021-02-02 14:15:33.090362005 +0100
@@ -1 +1 @@
-31.337
\ No newline at end of file
+31.338
\ No newline at end of file
1
0
Script 'mail_helper' called by obssrc
Hello community,
here is the log from the commit of package postfix for openSUSE:Factory checked in at 2021-02-02 14:14:54
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/postfix (Old)
and /work/SRC/openSUSE:Factory/.postfix.new.28504 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "postfix"
Tue Feb 2 14:14:54 2021 rev:197 rq: version:3.5.8
Changes:
--------
--- /work/SRC/openSUSE:Factory/postfix/postfix.changes 2021-02-01 13:25:45.337874413 +0100
+++ /work/SRC/openSUSE:Factory/.postfix.new.28504/postfix.changes 2021-02-02 14:14:56.170289767 +0100
@@ -2,78 +1,0 @@
-Wed Jan 27 15:14:50 UTC 2021 - Peter Varkoly <varkoly(a)suse.com>
-
-- bsc#1180473 - [Build 20201230] postfix has invalid default config
- Fixing config.postfix and sysconfig.postfix
-
--------------------------------------------------------------------
-Mon Jan 25 10:28:26 UTC 2021 - Paolo Stivanin <info(a)paolostivanin.com>
-
-- Update to 3.5.9
- * improves the reporting of DNSSEC problems that may affect
- DANE security
-
--------------------------------------------------------------------
-Thu Jan 7 12:26:08 UTC 2021 - Arjen de Korte <suse+build(a)de-korte.org>
-
-- Only do the conversion from the hash/btree databases to lmdb when
- the default database type changes from hash to lmdb and do not
- stop and start the service (the old compiled databases can live
- together with the new ones)
- - convert-bdb-to-lmdb.sh
-- Clean up the specfile
- * Remove < 1330 conditional builds
- * Use generated postfix-files instead of the obsolete one from
- postfix-SUSE.tar.gz
- * Use dynamicmaps.cf.d instead of modifying dynamicmaps.cf upon
- (de)installation of optional mysql, pgsql and ldap subpackages
- * Use default location for post-install, postfix-tls-script,
- postfix-wrapper and postmulti-script
-
--------------------------------------------------------------------
-Mon Jan 4 12:17:03 UTC 2021 - Peter Varkoly <varkoly(a)suse.com>
-
-- Set lmdb to be the default db.
-- Convert btree tables to lmdb too. Stop postfix before converting from
- bdb to lmdb
-- This package is without bdb support. That's why convert must be done
- without any suse release condition.
- o remove patch postfix-no-btree.patch
- o add set-default-db-type.patch
-
--------------------------------------------------------------------
-Fri Dec 25 20:32:04 UTC 2020 - Arjen de Korte <suse+build(a)de-korte.org>
-
-- Set database type for address_verify_map and postscreen_cache_map
- to lmdb (btree requires Berkeley DB)
- o add postfix-no-btree.patch
-
--------------------------------------------------------------------
-Fri Dec 25 10:28:30 UTC 2020 - Arjen de Korte <suse+build(a)de-korte.org>
-
-- Set default database type to lmdb and fix update_postmaps script
-
--------------------------------------------------------------------
-Thu Dec 24 14:09:32 UTC 2020 - Arjen de Korte <suse+build(a)de-korte.org>
-
-- Use variable substition instead of sed to remove .db suffix and
- substitute hash: for lmdb: in /etc/postfix/master.cf as well.
- Check before substitution if there is something to do (to keep
- rpmcheck happy).
-
--------------------------------------------------------------------
-Tue Dec 8 13:36:35 UTC 2020 - Peter Varkoly <varkoly(a)suse.com>
-
-- bsc#1176650 L3: What is regularly triggering the "fillup"
- command and changing modify-time of /etc/sysconfig/postfix?
- o Remove miss placed fillup_only call from %verifyscript
-
--------------------------------------------------------------------
-Thu Nov 26 15:30:10 UTC 2020 - Peter Varkoly <varkoly(a)suse.com>
-
-- Remove Berkeley DB dependency (JIRA#SLE-12191)
- The pacakges postfix is build without Berkely DB support.
- lmdb will be used instead of BDB.
- The pacakges postfix-bdb is build with Berkely DB support.
- o add patch for main.cf for postfix-bdb package
- postfix-bdb-main.cf.patch
-
--------------------------------------------------------------------
Old:
----
postfix-3.5.9.tar.gz
postfix-3.5.9.tar.gz.asc
postfix-bdb-main.cf.patch
postfix-bdb.changes
postfix-bdb.spec
pre_checkin.sh
set-default-db-type.patch
New:
----
postfix-3.5.8.tar.gz
postfix-3.5.8.tar.gz.asc
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ postfix.spec ++++++
--- /var/tmp/diff_new_pack.QOL3vu/_old 2021-02-02 14:14:57.158291700 +0100
+++ /var/tmp/diff_new_pack.QOL3vu/_new 2021-02-02 14:14:57.162291709 +0100
@@ -31,7 +31,15 @@
%define pf_html_directory %{_docdir}/%{name}-doc/html
%define pf_sample_directory %{_docdir}/%{name}-doc/samples
%define pf_data_directory %{_localstatedir}/lib/%{name}
-%define pf_database_convert %{_rundir}/%{name}-needs-convert
+%if 0%{?suse_version} < 1330
+%define pf_uid 51
+%define pf_gid 51
+%define maildrop_gid 59
+%define vmusr vmail
+%define vmgid 303
+%define vmid 303
+%define vmdir /srv/maildirs
+%endif
%define mail_group mail
%define conf_backup_dir %{_localstatedir}/adm/backup/%{name}
%define unitdir %{_prefix}/lib/systemd
@@ -39,10 +47,16 @@
%if ! %{defined _fillupdir}
%define _fillupdir %{_localstatedir}/adm/fillup-templates
%endif
+%if 0%{?suse_version} >= 1320 || ( 0%{?suse_version} == 1315 && 0%{?is_opensuse} )
+%bcond_without lmdb
%bcond_without libnsl
+%else
+%bcond_with lmdb
+%bcond_with libnsl
+%endif
%bcond_without ldap
Name: postfix
-Version: 3.5.9
+Version: 3.5.8
Release: 0
Summary: A fast, secure, and flexible mailer
License: IPL-1.0 OR EPL-2.0
@@ -68,10 +82,9 @@
Patch8: %{name}-vda-v14-3.0.3.patch
Patch9: fix-postfix-script.patch
Patch10: %{name}-avoid-infinit-loop-if-no-permission.patch
-Patch11: set-default-db-type.patch
BuildRequires: ca-certificates
BuildRequires: cyrus-sasl-devel
-#BuildRequires: db-devel
+BuildRequires: db-devel
BuildRequires: diffutils
BuildRequires: fdupes
BuildRequires: libicu-devel
@@ -81,7 +94,6 @@
%if %{with ldap}
BuildRequires: openldap2-devel
%endif
-BuildRequires: lmdb-devel
BuildRequires: pcre-devel
BuildRequires: pkgconfig
BuildRequires: postgresql-devel
@@ -94,19 +106,23 @@
Requires(pre): permissions
Conflicts: exim
Conflicts: sendmail
-Conflicts: postfix-bdb
-Provides: postfix-lmdb = %{version}-%{release}
-Obsoletes: postfix-lmdb < %{version}-%{release}
Provides: smtp_daemon
%{?systemd_ordering}
+%if %{with lmdb}
+BuildRequires: lmdb-devel
+%endif
%if %{with libnsl}
BuildRequires: libnsl-devel
%endif
+%if 0%{?suse_version} >= 1330
BuildRequires: sysuser-tools
Requires: system-user-nobody
Requires: group(%{mail_group})
Requires(pre): group(%{mail_group})
%sysusers_requires
+%else
+Requires(pre): shadow
+%endif
%description
Postfix aims to be an alternative to the widely-used sendmail program.
@@ -132,7 +148,11 @@
Summary: Postfix plugin to support MySQL maps
Group: Productivity/Networking/Email/Servers
Requires(pre): %{name} = %{version}
+%if 0%{?suse_version} >= 1330
%sysusers_requires
+%else
+Requires(pre): shadow
+%endif
%description mysql
Postfix plugin to support MySQL maps. This library will be loaded by
@@ -160,6 +180,18 @@
maps with Postfix, you need this.
%endif
+%if %{with lmdb}
+%package lmdb
+Summary: Postfix plugin to support LMDB maps
+Group: Productivity/Networking/Email/Servers
+Requires(pre): %{name} = %{version}
+
+%description lmdb
+Postfix plugin to support LMDB maps. This library will be loaded
+by starting %{name} if you'll access a postmap which is stored in
+PostgreSQL.
+%endif
+
%prep
%setup -q -a 2 -a 3
%patch1
@@ -172,7 +204,6 @@
%patch8
%patch9
%patch10
-%patch11
# ---------------------------------------------------------------------------
@@ -218,15 +249,15 @@
export AUXLIBS_PGSQL="-lpq"
fi
#
+%if %{with lmdb}
export CCARGS="${CCARGS} -DHAS_LMDB -I/usr/local/include" \
export AUXLIBS_LMDB="-llmdb"
+%endif
#
# TODO
#export AUXLIBS_SQLITE
#export AUXLIBS_CDB
#export AUXLIBS_SDBM
-# Remove berkeley DB and set lmdb as default
-export CCARGS="${CCARGS} -DNO_DB -DDEF_DB_TYPE=\\\"lmdb\\\""
export PIE=-pie
# using SHLIB_RPATH to specify unrelated linker flags, because LDFLAGS is
@@ -237,14 +268,17 @@
config_directory=%{_sysconfdir}/%{name} \
SHLIB_RPATH="-Wl,-rpath,%{pf_shlib_directory} -Wl,-z,relro,-z,now"
make %{?_smp_mflags}
+%if 0%{?suse_version} >= 1330
# Create postfix user
%sysusers_generate_pre %{SOURCE12} postfix
%sysusers_generate_pre %{SOURCE13} vmail
+%endif
# ---------------------------------------------------------------------------
%install
mkdir -p %{buildroot}/%{_libdir}
mkdir -p %{buildroot}%{_sysconfdir}/%{name}
+cp conf/* %{buildroot}%{_sysconfdir}/%{name}
# create our default postfix ssl DIR (/etc/postfix/ssl)
mkdir -p %{buildroot}%{_sysconfdir}/%{name}/ssl/certs
# link cacerts to /etc/ssl/certs
@@ -293,6 +327,7 @@
-e 's;@sample_directory@;%{pf_sample_directory};' \
-e 's;@mailq_path@;%{pf_mailq_path};' %{name}-SUSE/config.%{name} > %{buildroot}%{_sbindir}/config.%{name}
chmod 755 %{buildroot}%{_sbindir}/config.%{name}
+install -m 644 %{name}-SUSE/dynamicmaps.cf %{buildroot}%{_sysconfdir}/%{name}/dynamicmaps.cf
install -m 644 %{name}-SUSE/ldap_aliases.cf %{buildroot}%{_sysconfdir}/%{name}/ldap_aliases.cf
install -m 644 %{name}-SUSE/helo_access %{buildroot}%{_sysconfdir}/%{name}/helo_access
install -m 644 %{name}-SUSE/permissions %{buildroot}%{_sysconfdir}/permissions.d/%{name}
@@ -332,15 +367,7 @@
"disable_vrfy_command = yes" \
'smtpd_banner = $myhostname ESMTP'
#Set Permissions
-sed -i -e 's/\(.*ldap.*\)/#\1/g' \
- -e 's/\(.*mysql.*\)/#\1/g' \
- -e 's/\(.*pgsql.*\)/#\1/g' \
- -e 's/\(.*LICENSE.*\)/#\1/g' \
- -e '/html_directory/d' \
- -e '/manpage_directory/d' \
- -e '/readme_directory/d' \
- %{buildroot}%{pf_shlib_directory}/postfix-files
-mkdir -p %{buildroot}%{pf_shlib_directory}/postfix-files.d
+install -m 644 %{name}-SUSE/%{name}-files %{buildroot}%{pf_shlib_directory}/%{name}-files
# postfix-mysql
install -m 644 %{name}-mysql/main.cf-mysql %{buildroot}%{_sysconfdir}/%{name}/main.cf-mysql
install -m 640 %{name}-mysql/*_maps.cf %{buildroot}%{_sysconfdir}/%{name}/
@@ -378,46 +405,97 @@
rm -vf $path
ln -sf %{_libdir}/$name $path
done
-
-# create dynamicmaps.cf.d entries for optional modules
-sed -n -e '/^#/p' -e '/mysql/p' %{buildroot}%{pf_shlib_directory}/dynamicmaps.cf > %{buildroot}%{pf_shlib_directory}/dynamicmaps.cf.d/%{name}-mysql.cf
-sed -i -e '/mysql/d' %{buildroot}%{pf_shlib_directory}/dynamicmaps.cf
-sed -n -e '/^#/p' -e '/pgsql/p' %{buildroot}%{pf_shlib_directory}/dynamicmaps.cf > %{buildroot}%{pf_shlib_directory}/dynamicmaps.cf.d/%{name}-pgsql.cf
-sed -i -e '/pgsql/d' %{buildroot}%{pf_shlib_directory}/dynamicmaps.cf
-%if %{with ldap}
-sed -n -e '/^#/p' -e "/ldap/p" %{buildroot}%{pf_shlib_directory}/dynamicmaps.cf > %{buildroot}%{pf_shlib_directory}/dynamicmaps.cf.d/%{name}-ldap.cf
-sed -i -e '/ldap/d' %{buildroot}%{pf_shlib_directory}/dynamicmaps.cf
-%endif
-
+# ---------------------------------------------------------------------------
install -m 755 %{SOURCE11} %{buildroot}%{_sbindir}/
+%if 0%{?suse_version} >= 1330
mkdir -p %{buildroot}%{_sysusersdir}
install -m 644 %{SOURCE12} %{buildroot}%{_sysusersdir}/
install -m 644 %{SOURCE13} %{buildroot}%{_sysusersdir}/
+%endif
+
+%if 0%{?suse_version} >= 1330
+%pre -f postfix.pre
+%else
+%pre
+getent group %{name} >/dev/null || groupadd -g %{pf_gid} -o -r %{name}
+getent group maildrop >/dev/null || groupadd -g %{maildrop_gid} -o -r maildrop
+getent passwd %{name} >/dev/null || useradd -r -o -g %{name} -u %{pf_uid} -s /bin/false -c "Postfix Daemon" -d /%{pf_queue_directory} %{name}
+usermod -a -G %{maildrop_gid},%{mail_group} %{name}
+%endif
+%service_add_pre %{name}.service
+
+VERSIONTEST=$(test -x usr/sbin/postconf && usr/sbin/postconf proxy_read_maps 2>/dev/null || :)
+if [ -z "$VERSIONTEST" -a -f %{pf_queue_directory}/pid/master.pid ]; then
+ if checkproc -p %{pf_queue_directory}/pid/master.pid usr/lib/%{name}/master; then
+ echo "%{name} is still running. You have to stop %{name} in order to"
+ echo "install a newer version."
+ exit 1
+ fi
+fi
# ---------------------------------------------------------------------------
-%pre -f postfix.pre
-# If existing default database type is hash, we need to convert the
-# databases because hash (and btree) is no longer supported after
-# the upgrade
-if [ -x %{_sbindir}/postconf ]; then
- DEF_DB_TYPE=$(postconf default_database_type)
- case $DEF_DB_TYPE in *hash)
- touch %{pf_database_convert}
- esac
+%if 0%{?suse_version} >= 1330
+%pre mysql -f vmail.pre
+%else
+%pre mysql
+#echo "PARAM_pre: "$1
+# on `rpm -ivh` PARAM is 1
+# on `rpm -Uvh` PARAM is 2
+if [ "$1" = "1" ]; then
+ echo "Adding %{vmusr} user"
+ if [ -z "`getent group %{vmusr} 2>/dev/null`" ]; then
+ groupadd -r -g %{vmgid} %{vmusr}
+ fi
+ if [ -z "`getent passwd %{vmusr} 2>/dev/null`" ]; then
+ useradd -c "maildirs chef" -d %{vmdir} -g %{vmusr} -u %{vmid} -r -s /bin/false %{vmusr}
+ fi
fi
-%service_add_pre %{name}.service
+%endif
+# ---------------------------------------------------------------------------
%preun
+%stop_on_removal %{name}
%service_del_preun %{name}.service
+# ---------------------------------------------------------------------------
+
+%preun mysql
+#echo "PARAM_preun: "$1
+# on `rpm -e` PARAM is 0
+if [ "$1" = "0" ]; then
+ FILE=etc/%{name}/dynamicmaps.cf
+ if [ -e "$FILE" ] ; then
+ if grep -q "^mysql[[:space:]]" ${FILE}; then
+ echo "Removing mysql map entry from ${FILE}"
+ sed "/^mysql[[:space:]]/d" ${FILE} > ${FILE}.$$ && \
+ cp --remove-destination ${FILE}.$$ ${FILE} && \
+ rm ${FILE}.$$
+ fi
+ else
+ echo "Can not find \"$FILE\". Not updating the file." >&2
+ fi
+fi
+# ---------------------------------------------------------------------------
+
+%preun postgresql
+if [ "$1" = 0 ] ; then
+ FILE=etc/%{name}/dynamicmaps.cf
+ if [ -e "$FILE" ] ; then
+ if grep -q "^pgsql[[:space:]]" ${FILE}; then
+ echo "Removing pgsql map entry from ${FILE}"
+ sed "/^pgsql[[:space:]]/d" ${FILE} > ${FILE}.$$ && \
+ cp --remove-destination ${FILE}.$$ ${FILE} && \
+ rm ${FILE}.$$
+ fi
+ else
+ echo "Can not find \"$FILE\". Not updating the file." >&2
+ fi
+fi
+# ---------------------------------------------------------------------------
%post
# We never have to run suseconfig for postfix after installation
# We only start postfix own upgrade-configuration by update
-#
-# If the default database type of the previous installation was
-# hash, we also need to rebuild the databases in the new lmdb
-# format
if [ ${1:-0} -gt 1 ]; then
touch %{_localstatedir}/adm/%{name}.configured
echo "Executing upgrade-configuration."
@@ -425,54 +503,50 @@
if [ "$(%{_sbindir}/postconf -h daemon_directory)" != "%{pf_daemon_directory}" ]; then
%{_sbindir}/postconf daemon_directory=%{pf_daemon_directory}
fi
- if [ -e %{pf_database_convert} ]; then
- sed -i -E "s/(btree|hash):/lmdb:/g" %{pf_config_directory}/{main.cf,master.cf}
- for i in $(find %{pf_config_directory} -name "*.db"); do
- postmap ${i%.db}
- done
- for i in $(find %{_sysconfdir}/aliases.d/ -name "*.db"); do
- postalias ${i%.db}
- done
- if [ -e %{_sysconfdir}/aliases.db ]; then
- postalias %{_sysconfdir}/aliases
- fi
- rm %{pf_database_convert}
- fi
fi
+
+%service_add_post %{name}.service
+
%set_permissions %{_sbindir}/postqueue
%set_permissions %{_sbindir}/postdrop
%set_permissions %{_sysconfdir}/%{name}/sasl_passwd
%set_permissions %{_sbindir}/sendmail
+
%{fillup_only postfix}
%{fillup_only -an mail}
-%service_add_post %{name}.service
-
-%postun
-%service_del_postun %{name}.service
+/sbin/ldconfig
%verifyscript
%verify_permissions -e %{_sbindir}/postqueue
%verify_permissions -e %{_sbindir}/postdrop
%verify_permissions -e %{_sysconfdir}/%{name}/sasl_passwd
%verify_permissions -e %{_sbindir}/sendmail
+%{fillup_only postfix}
-# ---------------------------------------------------------------------------
-
-%pre mysql -f vmail.pre
+%postun
+%service_del_postun %{name}.service
+/sbin/ldconfig
-%post mysql -p /sbin/ldconfig
-%postun mysql -p /sbin/ldconfig
+# ---------------------------------------------------------------------------
-%post postgresql -p /sbin/ldconfig
-%postun postgresql -p /sbin/ldconfig
+%post postgresql
+FILE=etc/%{name}/dynamicmaps.cf
+if ! grep -q "^pgsql[[:space:]]" ${FILE}; then
+ echo "Adding pgsql map entry to ${FILE}"
+ echo "pgsql %{pf_shlib_directory}/dict_pgsql.so dict_pgsql_open" >> ${FILE}
+fi
+# ---------------------------------------------------------------------------
-%if %{with ldap}
-%post ldap -p /sbin/ldconfig
-%postun ldap -p /sbin/ldconfig
-%endif
+%post mysql
+FILE=etc/%{name}/dynamicmaps.cf
+if ! grep -q "^mysql[[:space:]]" ${FILE}; then
+ echo "Adding mysql map entry to ${FILE}"
+ echo "mysql %{pf_shlib_directory}/dict_mysql.so dict_mysql_open" >> ${FILE}
+fi
+# ---------------------------------------------------------------------------
%files
-%license LICENSE TLS_LICENSE
+%license LICENSE
%config %{_sysconfdir}/pam.d/*
%{_fillupdir}/sysconfig.%{name}
%{_fillupdir}/sysconfig.mail-%{name}
@@ -487,19 +561,24 @@
%config(noreplace) %{_sysconfdir}/%{name}/helo_access
%config(noreplace) %{_sysconfdir}/%{name}/main.cf
%config(noreplace) %{_sysconfdir}/%{name}/master.cf
+%attr(0750,root,root) %config %{_sysconfdir}/%{name}/post-install
+%attr(0750,root,root) %config %{_sysconfdir}/%{name}/%{name}-tls-script
+%attr(0750,root,root) %config %{_sysconfdir}/%{name}/%{name}-wrapper
+%attr(0750,root,root) %config %{_sysconfdir}/%{name}/postmulti-script
+%config(noreplace) %{_sysconfdir}/%{name}/%{name}-files
%config(noreplace) %{_sysconfdir}/%{name}/relay
%config(noreplace) %{_sysconfdir}/%{name}/relay_ccerts
%config(noreplace) %{_sysconfdir}/%{name}/sasl_passwd
%config(noreplace) %{_sysconfdir}/%{name}/sender_canonical
%config(noreplace) %{_sysconfdir}/%{name}/virtual
-%ghost %{_sysconfdir}/%{name}/*.lmdb
-%ghost %{_sysconfdir}/aliases.lmdb
+
%dir %{_sysconfdir}/sasl2
%config(noreplace) %{_sysconfdir}/sasl2/smtpd.conf
-%exclude %{_sysconfdir}/%{name}/LICENSE
-%exclude %{_sysconfdir}/%{name}/TLS_LICENSE
+%config %{_sysconfdir}/%{name}/LICENSE
+%config %{_sysconfdir}/%{name}/TLS_LICENSE
%config %{_sysconfdir}/permissions.d/%{name}
%config %{_sysconfdir}/permissions.d/%{name}.paranoid
+%attr(0644, root, root) %config %{_sysconfdir}/%{name}/makedefs.out
%{pf_shlib_directory}/%{name}-files
# create our default postfix ssl DIR (/etc/postfix/ssl)
%dir %{_sysconfdir}/%{name}/ssl
@@ -533,25 +612,20 @@
%{_libdir}/lib*
%{_libexecdir}/sendmail
%dir %{pf_shlib_directory}
+%{pf_shlib_directory}/*[^.so]
%{pf_shlib_directory}/%{name}-pcre.so
-%{pf_shlib_directory}/%{name}-lmdb.so
%{pf_shlib_directory}/lib%{name}-dns.so
%{pf_shlib_directory}/lib%{name}-global.so
%{pf_shlib_directory}/lib%{name}-master.so
%{pf_shlib_directory}/lib%{name}-tls.so
%{pf_shlib_directory}/lib%{name}-util.so
-%{pf_shlib_directory}/dynamicmaps.cf
%{pf_shlib_directory}/main.cf.proto
-%{pf_shlib_directory}/makedefs.out
%{pf_shlib_directory}/master.cf.proto
-%dir %{pf_daemon_directory}
-%{pf_daemon_directory}/*
-%dir %{pf_shlib_directory}/dynamicmaps.cf.d
-%dir %{pf_shlib_directory}/postfix-files.d
%{conf_backup_dir}
%dir %attr(0700,%{name},root) %{pf_data_directory}
%exclude %{_mandir}/man5/ldap_table.5*
+%exclude %{_mandir}/man5/lmdb_table.5*
%exclude %{_mandir}/man5/mysql_table.5*
%exclude %{_mandir}/man5/pgsql_table.5*
%{_mandir}/man?/*%{?ext_man}
@@ -569,7 +643,9 @@
%dir %attr(0700,%{name},root) /%{pf_queue_directory}/trace
%dir %attr(0730,%{name},maildrop) /%{pf_queue_directory}/maildrop
%dir %attr(0710,%{name},maildrop) /%{pf_queue_directory}/public
+%if 0%{?suse_version} >= 1330
%{_sysusersdir}/postfix-user.conf
+%endif
%files devel
%{_includedir}/%{name}/
@@ -583,21 +659,26 @@
%config(noreplace) %attr(640, root, %{name}) %{_sysconfdir}/%{name}/*_maps.cf
%config(noreplace) %{_sysconfdir}/%{name}/main.cf-mysql
%{pf_shlib_directory}/%{name}-mysql.so
-%{pf_shlib_directory}/dynamicmaps.cf.d/%{name}-mysql.cf
%{_mandir}/man5/mysql_table.5%{?ext_man}
+%if 0%{?suse_version} >= 1330
%{_sysusersdir}/postfix-vmail-user.conf
+%endif
%files postgresql
%{pf_shlib_directory}/%{name}-pgsql.so
-%{pf_shlib_directory}/dynamicmaps.cf.d/%{name}-pgsql.cf
%{_mandir}/man5/pgsql_table.5%{?ext_man}
%if %{with ldap}
%files ldap
%config(noreplace) %{_sysconfdir}/%{name}/ldap_aliases.cf
%{pf_shlib_directory}/%{name}-ldap.so
-%{pf_shlib_directory}/dynamicmaps.cf.d/%{name}-ldap.cf
%{_mandir}/man5/ldap_table.5%{?ext_man}
%endif
+%if %{with lmdb}
+%files lmdb
+%{pf_shlib_directory}/%{name}-lmdb.so
+%{_mandir}/man5/lmdb_table.5%{?ext_man}
+%endif
+
%changelog
++++++ postfix-3.5.9.tar.gz -> postfix-3.5.8.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/postfix-3.5.9/HISTORY new/postfix-3.5.8/HISTORY
--- old/postfix-3.5.9/HISTORY 2021-01-17 15:54:57.000000000 +0100
+++ new/postfix-3.5.8/HISTORY 2020-11-05 00:11:27.000000000 +0100
@@ -24882,26 +24882,3 @@
subsequent header content to become message body content.
Reported by Andreas Weigel, fix by Viktor Dukhovni. File:
smtp/smtp_proto.c.
-
-20210116
-
- Feature: when a Postfix program makes a DNS query that
- requests DNSSEC validation (usually for Postfix DANE support)
- but the DNS response is not DNSSEC validated, Postfix will
- send a DNS query configured with the "dnssec_probe" parameter
- to determine if DNSSEC support is available, and logs a
- warning if it is not. By default, the probe has type "ns"
- and domain name ".". The probe is sent once per process
- lifetime. Files: dns/dns.h, dns/dns_lookup.c, dns/dns_sec.c,
- test_dns_lookup.c, global/mail_params.[hc], mantools/postlink.
-
- The makedefs script no longer disables DNSSEC when Postfix
- is built with libc-musl. Instead Postfix will rely on the
- new dnssec_probe feature, and will log a warning when Postfix
- requests DNSSEC validation, but the infrastructure does not
- validate DNSSEC signatures. File: makedefs.
-
- The default "smtp_tls_dane_insecure_mx_policy = dane" was
- causing unnecessary dnssec_probe activity. The default is now
- "dane" when smtp_tls_security_level is "dane", otherwise it is
- "may". File: global/mail_params.h.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/postfix-3.5.9/RELEASE_NOTES new/postfix-3.5.8/RELEASE_NOTES
--- old/postfix-3.5.9/RELEASE_NOTES 2021-01-16 23:24:24.000000000 +0100
+++ new/postfix-3.5.8/RELEASE_NOTES 2020-05-16 23:20:59.000000000 +0200
@@ -25,50 +25,9 @@
the software under the license of their choice. Those who are more
comfortable with the IPL can continue with that license.
-Runtime detection of DNSSEC support
------------------------------------
-
-The Postfix build system will no longer automatically disable DNSSEC
-support when it determines that Postfix will use libc-musl. This removes
-the earlier libc-musl workaround for Postfix 3.2.15, 3.3.10, 3.4.12,
-and 3.5.2.
-
-Now, when a Postfix process requests DNSSEC support (typically, for
-Postfix DANE support), the process may do a runtime test to determine if
-DNSSEC validation is available. DNSSEC support may be broken because of
-local configuration, libc incompatibility, or other infrastructure issues.
-
-Background: DNSSEC validation is needed for Postfix DANE support;
-this ensures that Postfix receives TLSA records with secure TLS
-server certificate info. When DNSSEC validation is unavailable,
-mail deliveries using opportunistic DANE will not be protected by
-server certificate info in TLSA records, and mail deliveries using
-mandatory DANE will not be made at all.
-
-The dnssec_probe parameter specifies the DNS query type (default:
-"ns") and DNS query name (default: ".") that Postfix may use to
-determine whether DNSSEC validation is available. Specify an empty
-value to disable this feature.
-
-By default, a Postfix process will send a DNSSEC probe after 1) the
-process made a DNS query that requested DNSSEC validation, 2) the
-process did not receive a DNSSEC validated response to this query
-or to an earlier query, and 3) the process did not already send a
-DNSSEC probe.
-
-When the DNSSEC probe has no response, or when the response is not
-DNSSEC validated, Postfix logs a warning that DNSSEC validation may
-be unavailable. Examples:
-
-warning: DNSSEC validation may be unavailable
-warning: reason: dnssec_probe 'ns:.' received a response that is not DNSSEC validated
-warning: reason: dnssec_probe 'ns:.' received no response: Server failure
-
-This feature was backported from Postfix 3.6.
-
libc-musl workaround for Postfix 3.2.15, 3.3.10, 3.4.12, and 3.5.2
------------------------------------------------------------------
-
+
Security: this release disables DANE support on Linux systems with
libc-musl, because libc-musl provides no indication whether DNS
responses are authentic. This broke DANE support without a clear
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/postfix-3.5.9/html/lmtp.8.html new/postfix-3.5.8/html/lmtp.8.html
--- old/postfix-3.5.9/html/lmtp.8.html 2021-01-17 00:19:54.000000000 +0100
+++ new/postfix-3.5.8/html/lmtp.8.html 2020-03-08 16:09:09.000000000 +0100
@@ -365,13 +365,6 @@
The email address form that will be used in non-debug logging
(info, warning, etc.).
- Available in Postfix 3.5.9 and later:
-
- <b><a href="postconf.5.html#dnssec_probe">dnssec_probe</a> (ns:.)</b>
- The DNS query type (default: "ns") and DNS query name (default:
- ".") that Postfix may use to determine whether DNSSEC validation
- is available.
-
<b>MIME PROCESSING CONTROLS</b>
Available in Postfix version 2.0 and later:
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/postfix-3.5.9/html/postconf.5.html new/postfix-3.5.8/html/postconf.5.html
--- old/postfix-3.5.9/html/postconf.5.html 2021-01-17 16:10:20.000000000 +0100
+++ new/postfix-3.5.8/html/postconf.5.html 2020-05-09 17:51:27.000000000 +0200
@@ -3031,66 +3031,6 @@
</DD>
-<DT><b><a name="dnssec_probe">dnssec_probe</a>
-(default: ns:.)</b></DT><DD>
-
-<p> The DNS query type (default: "ns") and DNS query name (default:
-".") that Postfix may use to determine whether DNSSEC validation
-is available.
-</p>
-
-<p> Background: DNSSEC validation is needed for Postfix DANE support;
-this ensures that Postfix receives TLSA records with secure TLS
-server certificate info. When DNSSEC validation is unavailable,
-mail deliveries using <i>opportunistic</i> DANE will not be protected
-by server certificate info in TLSA records, and mail deliveries
-using <i>mandatory</i> DANE will not be made at all. </p>
-
-<p> By default, a Postfix process will send a DNSSEC probe after
-1) the process made a DNS query that requested DNSSEC validation,
-2) the process did not receive a DNSSEC validated response to this
-query or to an earlier query, and 3) the process did not already
-send a DNSSEC probe. <p>
-
-<p> When the DNSSEC probe has no response, or when the response is
-not DNSSEC validated, Postfix logs a warning that DNSSEC validation
-may be unavailable. </p>
-
-<p> Example: </p>
-
-<pre>
-warning: DNSSEC validation may be unavailable
-warning: reason: <a href="postconf.5.html#dnssec_probe">dnssec_probe</a> 'ns:.' received a response that is not DNSSEC validated
-warning: reason: <a href="postconf.5.html#dnssec_probe">dnssec_probe</a> 'ns:.' received no response: Server failure
-</pre>
-
-<p> Possible reasons why DNSSEC validation may be unavailable: </p>
-
-<ul>
-
-<li> The local /etc/resolv.conf file specifies a DNS resolver that
-does not validate DNSSEC signatures (that's
-$<a href="postconf.5.html#queue_directory">queue_directory</a>/etc/resolv.conf when a Postfix daemon runs in a
-chroot jail).
-
-<li> The local system library does not pass on the "DNSSEC validated"
-bit to Postfix, or Postfix does not know how to ask the library to
-do that.
-
-</ul>
-
-<p> By default, the DNSSEC probe asks for the DNS root zone NS
-records, because resolvers should always have that information
-cached. If Postfix runs on a network where the DNS root zone is not
-reachable, specify a different probe, or specify an empty <a href="postconf.5.html#dnssec_probe">dnssec_probe</a>
-value to disable the feature. </p>
-
-<p> This feature was backported from Postfix 3.6 to Postfix versions
-3.5.9, 3.4.19, 3.3.16. 3.2.21. </p>
-
-
-</DD>
-
<DT><b><a name="dont_remove">dont_remove</a>
(default: 0)</b></DT><DD>
@@ -12437,7 +12377,7 @@
</DD>
<DT><b><a name="smtp_tls_dane_insecure_mx_policy">smtp_tls_dane_insecure_mx_policy</a>
-(default: see "postconf -d" output)</b></DT><DD>
+(default: dane)</b></DT><DD>
<p> The TLS policy for MX hosts with "secure" TLSA records when the
nexthop destination security level is <b>dane</b>, but the MX
@@ -12461,12 +12401,6 @@
"Verified", because the MX host name could have been forged. </dd>
</dl>
-<p> The default setting for Postfix ≥ 3.6 is "dane" with
-"<a href="postconf.5.html#smtp_tls_security_level">smtp_tls_security_level</a> = dane", otherwise "may". This behavior
-was backported to Postfix versions 3.5.9, 3.4.19, 3.3.16. 3.2.21.
-With earlier
-Postfix versions the default setting was always "dane". </p>
-
<p> Though with "insecure" MX records an active attacker can
compromise SMTP transport security by returning forged MX records,
such attacks are "tamper-evident" since any forged MX hostnames
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/postfix-3.5.9/html/smtp.8.html new/postfix-3.5.8/html/smtp.8.html
--- old/postfix-3.5.9/html/smtp.8.html 2021-01-17 00:19:54.000000000 +0100
+++ new/postfix-3.5.8/html/smtp.8.html 2020-03-08 16:09:09.000000000 +0100
@@ -365,13 +365,6 @@
The email address form that will be used in non-debug logging
(info, warning, etc.).
- Available in Postfix 3.5.9 and later:
-
- <b><a href="postconf.5.html#dnssec_probe">dnssec_probe</a> (ns:.)</b>
- The DNS query type (default: "ns") and DNS query name (default:
- ".") that Postfix may use to determine whether DNSSEC validation
- is available.
-
<b>MIME PROCESSING CONTROLS</b>
Available in Postfix version 2.0 and later:
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/postfix-3.5.9/makedefs new/postfix-3.5.8/makedefs
--- old/postfix-3.5.9/makedefs 2021-01-16 16:10:00.000000000 +0100
+++ new/postfix-3.5.8/makedefs 2020-05-06 16:10:47.000000000 +0200
@@ -228,6 +228,19 @@
*) echo usage: $0 [system release] 1>&2; exit 1;;
esac
+case "$SYSTEM" in
+ Linux)
+ case "`PATH=/bin:/usr/bin ldd /bin/sh`" in
+ *-musl-*)
+ case "$CCARGS" in
+ *-DNO_DNSSEC*) ;;
+ *) echo Warning: libc-musl breaks DANE/TLSA security. 1>&2
+ echo This build will not support DANE/TLSA. 1>&2
+ CCARGS="$CCARGS -DNO_DNSSEC";;
+ esac;;
+ esac;;
+esac
+
case "$SYSTEM.$RELEASE" in
SCO_SV.3.2) SYSTYPE=SCO5
# Use the native compiler by default
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/postfix-3.5.9/man/man5/postconf.5 new/postfix-3.5.8/man/man5/postconf.5
--- old/postfix-3.5.9/man/man5/postconf.5 2021-01-17 16:10:20.000000000 +0100
+++ new/postfix-3.5.8/man/man5/postconf.5 2020-05-09 17:52:30.000000000 +0200
@@ -1897,60 +1897,6 @@
service performs DNS white/blacklist lookups.
.PP
This feature is available in Postfix 2.8 and later.
-.SH dnssec_probe (default: ns:.)
-The DNS query type (default: "ns") and DNS query name (default:
-".") that Postfix may use to determine whether DNSSEC validation
-is available.
-.PP
-Background: DNSSEC validation is needed for Postfix DANE support;
-this ensures that Postfix receives TLSA records with secure TLS
-server certificate info. When DNSSEC validation is unavailable,
-mail deliveries using \fIopportunistic\fR DANE will not be protected
-by server certificate info in TLSA records, and mail deliveries
-using \fImandatory\fR DANE will not be made at all.
-.PP
-By default, a Postfix process will send a DNSSEC probe after
-1) the process made a DNS query that requested DNSSEC validation,
-2) the process did not receive a DNSSEC validated response to this
-query or to an earlier query, and 3) the process did not already
-send a DNSSEC probe.
-.PP
-When the DNSSEC probe has no response, or when the response is
-not DNSSEC validated, Postfix logs a warning that DNSSEC validation
-may be unavailable.
-.PP
-Example:
-.PP
-.nf
-.na
-.ft C
-warning: DNSSEC validation may be unavailable
-warning: reason: dnssec_probe 'ns:.' received a response that is not DNSSEC validated
-warning: reason: dnssec_probe 'ns:.' received no response: Server failure
-.fi
-.ad
-.ft R
-.PP
-Possible reasons why DNSSEC validation may be unavailable:
-.IP \(bu
-The local /etc/resolv.conf file specifies a DNS resolver that
-does not validate DNSSEC signatures (that's
-$queue_directory/etc/resolv.conf when a Postfix daemon runs in a
-chroot jail).
-.IP \(bu
-The local system library does not pass on the "DNSSEC validated"
-bit to Postfix, or Postfix does not know how to ask the library to
-do that.
-.br
-.PP
-By default, the DNSSEC probe asks for the DNS root zone NS
-records, because resolvers should always have that information
-cached. If Postfix runs on a network where the DNS root zone is not
-reachable, specify a different probe, or specify an empty dnssec_probe
-value to disable the feature.
-.PP
-This feature was backported from Postfix 3.6 to Postfix versions
-3.5.9, 3.4.19, 3.3.16. 3.2.21.
.SH dont_remove (default: 0)
Don't remove queue files and save them to the "saved" mail queue.
This is a debugging aid. To inspect the envelope information and
@@ -7975,7 +7921,7 @@
TLS connection reuse" for background details.
.PP
This feature is available in Postfix 3.4 and later.
-.SH smtp_tls_dane_insecure_mx_policy (default: see "postconf \-d" output)
+.SH smtp_tls_dane_insecure_mx_policy (default: dane)
The TLS policy for MX hosts with "secure" TLSA records when the
nexthop destination security level is \fBdane\fR, but the MX
record was found via an "insecure" MX lookup. The choices are:
@@ -7996,12 +7942,6 @@
"Verified", because the MX host name could have been forged.
.br
.br
-The default setting for Postfix >= 3.6 is "dane" with
-"smtp_tls_security_level = dane", otherwise "may". This behavior
-was backported to Postfix versions 3.5.9, 3.4.19, 3.3.16. 3.2.21.
-With earlier
-Postfix versions the default setting was always "dane".
-.PP
Though with "insecure" MX records an active attacker can
compromise SMTP transport security by returning forged MX records,
such attacks are "tamper\-evident" since any forged MX hostnames
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/postfix-3.5.9/man/man8/smtp.8 new/postfix-3.5.8/man/man8/smtp.8
--- old/postfix-3.5.9/man/man8/smtp.8 2021-01-17 00:19:54.000000000 +0100
+++ new/postfix-3.5.8/man/man8/smtp.8 2020-03-08 16:09:08.000000000 +0100
@@ -356,12 +356,6 @@
.IP "\fBinfo_log_address_format (external)\fR"
The email address form that will be used in non\-debug logging
(info, warning, etc.).
-.PP
-Available in Postfix 3.5.9 and later:
-.IP "\fBdnssec_probe (ns:.)\fR"
-The DNS query type (default: "ns") and DNS query name (default:
-".") that Postfix may use to determine whether DNSSEC validation
-is available.
.SH "MIME PROCESSING CONTROLS"
.na
.nf
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/postfix-3.5.9/mantools/postlink new/postfix-3.5.8/mantools/postlink
--- old/postfix-3.5.9/mantools/postlink 2021-01-16 23:31:12.000000000 +0100
+++ new/postfix-3.5.8/mantools/postlink 2020-01-26 18:34:39.000000000 +0100
@@ -695,7 +695,6 @@
s;\bsmtp_per_record_deadline\b;<a href="postconf.5.html#smtp_per_record_deadline">$&</a>;g;
s;\bsmtp_send_dummy_mail_auth\b;<a href="postconf.5.html#smtp_send_dummy_mail_auth">$&</a>;g;
s;\bsmtp_balance_inet_protocols\b;<a href="postconf.5.html#smtp_balance_inet_protocols">$&</a>;g;
- s;\bdnssec_probe\b;<a href="postconf.5.html#dnssec_probe">$&</a>;g;
s;\bsmtp_tls_connection_reuse\b;<a href="postconf.5.html#smtp_tls_connection_reuse">$&</a>;g;
s;\blmtp_tls_connection_reuse\b;<a href="postconf.5.html#lmtp_tls_connection_reuse">$&</a>;g;
s;\bsmtpd_enforce_tls\b;<a href="postconf.5.html#smtpd_enforce_tls">$&</a>;g;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/postfix-3.5.9/proto/postconf.proto new/postfix-3.5.8/proto/postconf.proto
--- old/postfix-3.5.9/proto/postconf.proto 2021-01-17 16:10:15.000000000 +0100
+++ new/postfix-3.5.8/proto/postconf.proto 2020-05-09 17:51:27.000000000 +0200
@@ -16815,7 +16815,7 @@
This feature is available in Postfix 3.1 and later.
</p>
-%PARAM smtp_tls_dane_insecure_mx_policy see "postconf -d" output
+%PARAM smtp_tls_dane_insecure_mx_policy dane
<p> The TLS policy for MX hosts with "secure" TLSA records when the
nexthop destination security level is <b>dane</b>, but the MX
@@ -16839,12 +16839,6 @@
"Verified", because the MX host name could have been forged. </dd>
</dl>
-<p> The default setting for Postfix ≥ 3.6 is "dane" with
-"smtp_tls_security_level = dane", otherwise "may". This behavior
-was backported to Postfix versions 3.5.9, 3.4.19, 3.3.16. 3.2.21.
-With earlier
-Postfix versions the default setting was always "dane". </p>
-
<p> Though with "insecure" MX records an active attacker can
compromise SMTP transport security by returning forged MX records,
such attacks are "tamper-evident" since any forged MX hostnames
@@ -17704,59 +17698,3 @@
such games to circumvent Postfix access policies. </p>
<p> This feature is available in Postfix 3.5 and later. </p>
-
-%PARAM dnssec_probe ns:.
-
-<p> The DNS query type (default: "ns") and DNS query name (default:
-".") that Postfix may use to determine whether DNSSEC validation
-is available.
-</p>
-
-<p> Background: DNSSEC validation is needed for Postfix DANE support;
-this ensures that Postfix receives TLSA records with secure TLS
-server certificate info. When DNSSEC validation is unavailable,
-mail deliveries using <i>opportunistic</i> DANE will not be protected
-by server certificate info in TLSA records, and mail deliveries
-using <i>mandatory</i> DANE will not be made at all. </p>
-
-<p> By default, a Postfix process will send a DNSSEC probe after
-1) the process made a DNS query that requested DNSSEC validation,
-2) the process did not receive a DNSSEC validated response to this
-query or to an earlier query, and 3) the process did not already
-send a DNSSEC probe. <p>
-
-<p> When the DNSSEC probe has no response, or when the response is
-not DNSSEC validated, Postfix logs a warning that DNSSEC validation
-may be unavailable. </p>
-
-<p> Example: </p>
-
-<pre>
-warning: DNSSEC validation may be unavailable
-warning: reason: dnssec_probe 'ns:.' received a response that is not DNSSEC validated
-warning: reason: dnssec_probe 'ns:.' received no response: Server failure
-</pre>
-
-<p> Possible reasons why DNSSEC validation may be unavailable: </p>
-
-<ul>
-
-<li> The local /etc/resolv.conf file specifies a DNS resolver that
-does not validate DNSSEC signatures (that's
-$queue_directory/etc/resolv.conf when a Postfix daemon runs in a
-chroot jail).
-
-<li> The local system library does not pass on the "DNSSEC validated"
-bit to Postfix, or Postfix does not know how to ask the library to
-do that.
-
-</ul>
-
-<p> By default, the DNSSEC probe asks for the DNS root zone NS
-records, because resolvers should always have that information
-cached. If Postfix runs on a network where the DNS root zone is not
-reachable, specify a different probe, or specify an empty dnssec_probe
-value to disable the feature. </p>
-
-<p> This feature was backported from Postfix 3.6 to Postfix versions
-3.5.9, 3.4.19, 3.3.16. 3.2.21. </p>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/postfix-3.5.9/src/dns/Makefile.in new/postfix-3.5.8/src/dns/Makefile.in
--- old/postfix-3.5.9/src/dns/Makefile.in 2021-01-09 02:23:37.000000000 +0100
+++ new/postfix-3.5.8/src/dns/Makefile.in 2019-12-15 01:01:17.000000000 +0100
@@ -1,10 +1,10 @@
SHELL = /bin/sh
SRCS = dns_lookup.c dns_rr.c dns_strerror.c dns_strtype.c dns_rr_to_pa.c \
dns_sa_to_rr.c dns_rr_eq_sa.c dns_rr_to_sa.c dns_strrecord.c \
- dns_rr_filter.c dns_str_resflags.c dns_sec.c
+ dns_rr_filter.c dns_str_resflags.c
OBJS = dns_lookup.o dns_rr.o dns_strerror.o dns_strtype.o dns_rr_to_pa.o \
dns_sa_to_rr.o dns_rr_eq_sa.o dns_rr_to_sa.o dns_strrecord.o \
- dns_rr_filter.o dns_str_resflags.o dns_sec.o
+ dns_rr_filter.o dns_str_resflags.o
HDRS = dns.h
TESTSRC = test_dns_lookup.c test_alias_token.c
DEFS = -I. -I$(INC_DIR) -D$(SYSTYPE)
@@ -76,7 +76,7 @@
done
cd $(INC_DIR); chmod 644 $(HDRS)
-test_dns_lookup: test_dns_lookup.c all $(LIB) $(LIBS)
+test_dns_lookup: test_dns_lookup.c $(LIB) $(LIBS)
$(CC) $(CFLAGS) -o $@ $@.c $(LIB) $(LIBS) $(SYSLIBS)
dns_rr_to_pa: $(LIB) $(LIBS)
@@ -346,18 +346,6 @@
dns_sa_to_rr.o: ../../include/vstring.h
dns_sa_to_rr.o: dns.h
dns_sa_to_rr.o: dns_sa_to_rr.c
-dns_sec.o: ../../include/check_arg.h
-dns_sec.o: ../../include/mail_params.h
-dns_sec.o: ../../include/msg.h
-dns_sec.o: ../../include/myaddrinfo.h
-dns_sec.o: ../../include/mymalloc.h
-dns_sec.o: ../../include/sock_addr.h
-dns_sec.o: ../../include/split_at.h
-dns_sec.o: ../../include/sys_defs.h
-dns_sec.o: ../../include/vbuf.h
-dns_sec.o: ../../include/vstring.h
-dns_sec.o: dns.h
-dns_sec.o: dns_sec.c
dns_str_resflags.o: ../../include/check_arg.h
dns_str_resflags.o: ../../include/myaddrinfo.h
dns_str_resflags.o: ../../include/name_mask.h
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/postfix-3.5.9/src/dns/dns.h new/postfix-3.5.8/src/dns/dns.h
--- old/postfix-3.5.9/src/dns/dns.h 2021-01-16 23:37:12.000000000 +0100
+++ new/postfix-3.5.8/src/dns/dns.h 2020-04-16 19:07:58.000000000 +0200
@@ -244,12 +244,7 @@
(lflags), (ltype))
/*
- * The dns_lookup() rflag that requests DNSSEC validation.
- */
-#define DNS_WANT_DNSSEC_VALIDATION(rflags) ((rflags) & RES_USE_DNSSEC)
-
- /*
- * lflags.
+ * Request flags.
*/
#define DNS_REQ_FLAG_STOP_OK (1<<0)
#define DNS_REQ_FLAG_STOP_INVAL (1<<1)
@@ -314,18 +309,6 @@
*/
const char *dns_str_resflags(unsigned long);
- /*
- * dns_sec.c.
- */
-#define DNS_SEC_FLAG_AVAILABLE (1<<0) /* got some DNSSEC validated reply */
-#define DNS_SEC_FLAG_DONT_PROBE (1<<1) /* probe already sent, or disabled */
-
-#define DNS_SEC_STATS_SET(flags) (dns_sec_stats |= (flags))
-#define DNS_SEC_STATS_TEST(flags) (dns_sec_stats & (flags))
-
-extern int dns_sec_stats; /* See DNS_SEC_FLAG_XXX above */
-extern void dns_sec_probe(int);
-
/* LICENSE
/* .ad
/* .fi
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/postfix-3.5.9/src/dns/dns_lookup.c new/postfix-3.5.8/src/dns/dns_lookup.c
--- old/postfix-3.5.9/src/dns/dns_lookup.c 2021-01-16 17:24:08.000000000 +0100
+++ new/postfix-3.5.8/src/dns/dns_lookup.c 2020-04-16 19:07:58.000000000 +0200
@@ -171,12 +171,6 @@
/* Pointer to storage for the reply RCODE value. This gives
/* more detailed information than DNS_FAIL, DNS_RETRY, etc.
/* DIAGNOSTICS
-/* If DNSSEC validation is requested but the response is not
-/* DNSSEC validated, dns_lookup() will send a one-time probe
-/* query as configured with the \fBdnssec_probe\fR configuration
-/* parameter, and will log a warning when the probe response
-/* was not DNSSEC validated.
-/* .PP
/* dns_lookup() returns one of the following codes and sets the
/* \fIwhy\fR argument accordingly:
/* .IP DNS_OK
@@ -469,7 +463,7 @@
*/
#define XTRA_FLAGS (RES_USE_EDNS0 | RES_TRUSTAD)
- if (DNS_WANT_DNSSEC_VALIDATION(flags))
+ if (flags & RES_USE_DNSSEC)
flags |= (RES_USE_EDNS0 | RES_TRUSTAD);
/*
@@ -516,8 +510,6 @@
_res.options |= saved_options;
reply_header = (HEADER *) reply->buf;
reply->rcode = reply_header->rcode;
- if ((reply->dnssec_ad = !!reply_header->ad) != 0)
- DNS_SEC_STATS_SET(DNS_SEC_FLAG_AVAILABLE);
if (h_errno != 0) {
if (why)
vstring_sprintf(why, "Host or domain name not found. "
@@ -569,8 +561,13 @@
/*
* Initialize the reply structure. Some structure members are filled on
- * the fly while the reply is being parsed.
+ * the fly while the reply is being parsed. Coerce AD bit to boolean.
*/
+#if RES_USE_DNSSEC != 0
+ reply->dnssec_ad = (flags & RES_USE_DNSSEC) ? !!reply_header->ad : 0;
+#else
+ reply->dnssec_ad = 0;
+#endif
SET_HAVE_DNS_REPLY_PACKET(reply, len);
reply->query_start = reply->buf + sizeof(HEADER);
reply->answer_start = 0;
@@ -888,9 +885,7 @@
CORRUPT(DNS_RETRY);
if ((status = dns_get_fixed(pos, &fixed)) != DNS_OK)
CORRUPT(status);
- if (strcmp(orig_name, ".") == 0 && *rr_name == 0)
- /* Allow empty response name for root queries. */ ;
- else if (!valid_rr_name(rr_name, "resource name", fixed.type, reply))
+ if (!valid_rr_name(rr_name, "resource name", fixed.type, reply))
CORRUPT(DNS_INVAL);
if (fqdn)
vstring_strcpy(fqdn, rr_name);
@@ -978,7 +973,7 @@
/*
* The Linux resolver misbehaves when given an invalid domain name.
*/
- if (strcmp(name, ".") && !valid_hostname(name, DONT_GRIPE)) {
+ if (!valid_hostname(name, DONT_GRIPE)) {
if (why)
vstring_sprintf(why,
"Name service error for %s: invalid host or domain name",
@@ -1015,10 +1010,6 @@
(void) dns_get_answer(orig_name, &reply, T_SOA, rrlist, fqdn,
cname, c_len, &maybe_secure);
}
- if (DNS_WANT_DNSSEC_VALIDATION(flags)
- && !DNS_SEC_STATS_TEST(DNS_SEC_FLAG_AVAILABLE | \
- DNS_SEC_FLAG_DONT_PROBE))
- dns_sec_probe(flags); /* XXX Clobbers 'reply' */
return (status);
}
@@ -1028,10 +1019,6 @@
*/
status = dns_get_answer(orig_name, &reply, type, rrlist, fqdn,
cname, c_len, &maybe_secure);
- if (DNS_WANT_DNSSEC_VALIDATION(flags)
- && !DNS_SEC_STATS_TEST(DNS_SEC_FLAG_AVAILABLE | \
- DNS_SEC_FLAG_DONT_PROBE))
- dns_sec_probe(flags); /* XXX Clobbers 'reply' */
switch (status) {
default:
if (why)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/postfix-3.5.9/src/dns/dns_sec.c new/postfix-3.5.8/src/dns/dns_sec.c
--- old/postfix-3.5.9/src/dns/dns_sec.c 2021-01-12 00:32:06.000000000 +0100
+++ new/postfix-3.5.8/src/dns/dns_sec.c 1970-01-01 01:00:00.000000000 +0100
@@ -1,144 +0,0 @@
-/*++
-/* NAME
-/* dns_sec 3
-/* SUMMARY
-/* DNSSEC validation availability
-/* SYNOPSIS
-/* #include <dns.h>
-/*
-/* DNS_SEC_STATS_SET(
-/* int flags)
-/*
-/* DNS_SEC_STATS_TEST(
-/* int flags)
-/*
-/* void dns_sec_probe(
-/* int rflags)
-/* DESCRIPTION
-/* This module maintains information about the availability of
-/* DNSSEC validation, in global flags that summarize
-/* process-lifetime history.
-/* .IP DNS_SEC_FLAG_AVAILABLE
-/* The process has received at least one DNSSEC validated
-/* response to a query that requested DNSSEC validation.
-/* .IP DNS_SEC_FLAG_DONT_PROBE
-/* The process has sent a DNSSEC probe (see below), or DNSSEC
-/* probing is disabled by configuration.
-/* .PP
-/* DNS_SEC_STATS_SET() sets one or more DNS_SEC_FLAG_* flags,
-/* and DNS_SEC_STATS_TEST() returns non-zero if any of the
-/* specified flags is set.
-/*
-/* dns_sec_probe() generates a query to the target specified
-/* with the \fBdnssec_probe\fR configuration parameter. It
-/* sets the DNS_SEC_FLAG_DONT_PROBE flag, and it calls
-/* dns_lookup() which sets DNS_SEC_FLAG_AVAILABLE if it receives
-/* a DNSSEC validated response. Preconditions:
-/* .IP \(bu
-/* The rflags argument must request DNSSEC validation (in the
-/* same manner as dns_lookup() rflags argument).
-/* .IP \(bu
-/* The DNS_SEC_FLAG_AVAILABLE and DNS_SEC_FLAG_DONT_PROBE
-/* flags must be false.
-/* LICENSE
-/* .ad
-/* .fi
-/* The Secure Mailer license must be distributed with this software.
-/* AUTHOR(S)
-/* Wietse Venema
-/* Google, Inc.
-/* 111 8th Avenue
-/* New York, NY 10011, USA
-/*--*/
-
-#include <sys_defs.h>
-
- /*
- * Utility library.
- */
-#include <msg.h>
-#include <mymalloc.h>
-#include <split_at.h>
-#include <vstring.h>
-
- /*
- * Global library.
- */
-#include <mail_params.h>
-
- /*
- * DNS library.
- */
-#include <dns.h>
-
-int dns_sec_stats;
-
-/* dns_sec_probe - send a probe to establish DNSSEC viability */
-
-void dns_sec_probe(int rflags)
-{
- const char myname[] = "dns_sec_probe";
- char *saved_dnssec_probe;
- char *qname;
- int qtype;
- DNS_RR *rrlist = 0;
- int dns_status;
- VSTRING *why;
-
- /*
- * Sanity checks.
- */
- if (!DNS_WANT_DNSSEC_VALIDATION(rflags))
- msg_panic("%s: DNSSEC is not requested", myname);
- if (DNS_SEC_STATS_TEST(DNS_SEC_FLAG_DONT_PROBE))
- msg_panic("%s: DNSSEC probe was already sent, or probing is disabled",
- myname);
- if (DNS_SEC_STATS_TEST(DNS_SEC_FLAG_AVAILABLE))
- msg_panic("%s: already have validated DNS response", myname);
-
- /*
- * Don't recurse.
- */
- DNS_SEC_STATS_SET(DNS_SEC_FLAG_DONT_PROBE);
-
- /*
- * Don't probe.
- */
- if (*var_dnssec_probe == 0)
- return;
-
- /*
- * Parse the probe spec. Format is type:resource.
- */
- saved_dnssec_probe = mystrdup(var_dnssec_probe);
- if ((qname = split_at(saved_dnssec_probe, ':')) == 0 || *qname == 0
- || (qtype = dns_type(saved_dnssec_probe)) == 0)
- msg_fatal("malformed %s value: %s format is qtype:qname",
- VAR_DNSSEC_PROBE, var_dnssec_probe);
-
- why = vstring_alloc(100);
- dns_status = dns_lookup(qname, qtype, rflags, &rrlist, (VSTRING *) 0, why);
- if (!DNS_SEC_STATS_TEST(DNS_SEC_FLAG_AVAILABLE))
- msg_warn("DNSSEC validation may be unavailable");
- else if (msg_verbose)
- msg_info(VAR_DNSSEC_PROBE
- " '%s' received a response that is DNSSEC validated",
- var_dnssec_probe);
- switch (dns_status) {
- default:
- if (!DNS_SEC_STATS_TEST(DNS_SEC_FLAG_AVAILABLE))
- msg_warn("reason: " VAR_DNSSEC_PROBE
- " '%s' received a response that is not DNSSEC validated",
- var_dnssec_probe);
- if (rrlist)
- dns_rr_free(rrlist);
- break;
- case DNS_RETRY:
- case DNS_FAIL:
- msg_warn("reason: " VAR_DNSSEC_PROBE " '%s' received no response: %s",
- var_dnssec_probe, vstring_str(why));
- break;
- }
- myfree(saved_dnssec_probe);
- vstring_free(why);
-}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/postfix-3.5.9/src/dns/test_dns_lookup.c new/postfix-3.5.8/src/dns/test_dns_lookup.c
--- old/postfix-3.5.9/src/dns/test_dns_lookup.c 2021-01-16 17:24:08.000000000 +0100
+++ new/postfix-3.5.8/src/dns/test_dns_lookup.c 2016-02-22 00:06:59.000000000 +0100
@@ -77,9 +77,6 @@
int ch;
int lflags = DNS_REQ_FLAG_NONE;
- if (var_dnssec_probe == 0)
- var_dnssec_probe = mystrdup(DEF_DNSSEC_PROBE);
-
msg_vstream_init(argv[0], VSTREAM_ERR);
while ((ch = GETOPT(argc, argv, "f:npv")) > 0) {
switch (ch) {
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/postfix-3.5.9/src/global/mail_params.c new/postfix-3.5.8/src/global/mail_params.c
--- old/postfix-3.5.9/src/global/mail_params.c 2021-01-16 16:51:12.000000000 +0100
+++ new/postfix-3.5.8/src/global/mail_params.c 2020-05-13 01:32:37.000000000 +0200
@@ -152,8 +152,6 @@
/* char *var_maillog_file_comp;
/* char *var_maillog_file_stamp;
/* char *var_postlog_service;
-/*
-/* char *var_dnssec_probe;
/* DESCRIPTION
/* This module (actually the associated include file) defines
/* the names and defaults of all mail configuration parameters.
@@ -364,8 +362,6 @@
char *var_maillog_file_stamp;
char *var_postlog_service;
-char *var_dnssec_probe;
-
const char null_format_string[1] = "";
/*
@@ -693,7 +689,6 @@
VAR_MAILLOG_FILE_COMP, DEF_MAILLOG_FILE_COMP, &var_maillog_file_comp, 1, 0,
VAR_MAILLOG_FILE_STAMP, DEF_MAILLOG_FILE_STAMP, &var_maillog_file_stamp, 1, 0,
VAR_POSTLOG_SERVICE, DEF_POSTLOG_SERVICE, &var_postlog_service, 1, 0,
- VAR_DNSSEC_PROBE, DEF_DNSSEC_PROBE, &var_dnssec_probe, 0, 0,
0,
};
static const CONFIG_BOOL_TABLE first_bool_defaults[] = {
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/postfix-3.5.9/src/global/mail_params.h new/postfix-3.5.8/src/global/mail_params.h
--- old/postfix-3.5.9/src/global/mail_params.h 2021-01-17 14:11:47.000000000 +0100
+++ new/postfix-3.5.8/src/global/mail_params.h 2020-05-09 17:51:27.000000000 +0200
@@ -1617,7 +1617,7 @@
/* SMTP only */
#define VAR_SMTP_TLS_INSECURE_MX_POLICY "smtp_tls_dane_insecure_mx_policy"
-#define DEF_SMTP_TLS_INSECURE_MX_POLICY "${{$smtp_tls_security_level} == {dane} ? {dane} : {may}}"
+#define DEF_SMTP_TLS_INSECURE_MX_POLICY "dane"
extern char *var_smtp_tls_insecure_mx_policy;
/*
@@ -4202,13 +4202,6 @@
#define DEF_INFO_LOG_ADDR_FORM INFO_LOG_ADDR_FORM_NAME_EXTERNAL
extern char *var_info_log_addr_form;
- /*
- * DNSSEC probing, to find out if DNSSEC validation is available.
- */
-#define VAR_DNSSEC_PROBE "dnssec_probe"
-#define DEF_DNSSEC_PROBE "ns:."
-extern char *var_dnssec_probe;
-
/* LICENSE
/* .ad
/* .fi
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/postfix-3.5.9/src/global/mail_version.h new/postfix-3.5.8/src/global/mail_version.h
--- old/postfix-3.5.9/src/global/mail_version.h 2021-01-17 16:23:45.000000000 +0100
+++ new/postfix-3.5.8/src/global/mail_version.h 2020-11-07 22:27:54.000000000 +0100
@@ -20,8 +20,8 @@
* Patches change both the patchlevel and the release date. Snapshots have no
* patchlevel; they change the release date only.
*/
-#define MAIL_RELEASE_DATE "20210117"
-#define MAIL_VERSION_NUMBER "3.5.9"
+#define MAIL_RELEASE_DATE "20201107"
+#define MAIL_VERSION_NUMBER "3.5.8"
#ifdef SNAPSHOT
#define MAIL_VERSION_DATE "-" MAIL_RELEASE_DATE
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/postfix-3.5.9/src/smtp/smtp.c new/postfix-3.5.8/src/smtp/smtp.c
--- old/postfix-3.5.9/src/smtp/smtp.c 2021-01-16 17:30:07.000000000 +0100
+++ new/postfix-3.5.8/src/smtp/smtp.c 2020-03-08 15:53:22.000000000 +0100
@@ -330,12 +330,6 @@
/* .IP "\fBinfo_log_address_format (external)\fR"
/* The email address form that will be used in non-debug logging
/* (info, warning, etc.).
-/* .PP
-/* Available in Postfix 3.5.9 and later:
-/* .IP "\fBdnssec_probe (ns:.)\fR"
-/* The DNS query type (default: "ns") and DNS query name (default:
-/* ".") that Postfix may use to determine whether DNSSEC validation
-/* is available.
/* MIME PROCESSING CONTROLS
/* .ad
/* .fi
++++++ postfix-SUSE.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/postfix-SUSE/config.postfix new/postfix-SUSE/config.postfix
--- old/postfix-SUSE/config.postfix 2021-01-27 16:11:35.035521646 +0100
+++ new/postfix-SUSE/config.postfix 2019-08-09 16:49:41.000000000 +0200
@@ -12,7 +12,7 @@
if [ -d /run ]; then
export RUN="/run"
fi
-DEF_DB_TYPE=$(/usr/sbin/postconf -h default_database_type)
+
cpifnewer(){
# remove files, that do no longer exist
if [ -d $2 -a "$(echo $2/*)" != "$2/*" ]; then
@@ -266,16 +266,16 @@
# Some default settings, that seem to be useable, at least to me
$PCONF -e "mail_spool_directory = /var/mail"
- $PCONF -e "canonical_maps = $DEF_DB_TYPE:/etc/postfix/canonical"
+ $PCONF -e "canonical_maps = hash:/etc/postfix/canonical"
# virtual_alias_domains (default: $virtual_alias_maps)
- #$PCONF -e "virtual_alias_domains = $DEF_DB_TYPE:/etc/postfix/virtual"
- $PCONF -e "relocated_maps = $DEF_DB_TYPE:/etc/postfix/relocated"
+ #$PCONF -e "virtual_alias_domains = hash:/etc/postfix/virtual"
+ $PCONF -e "relocated_maps = hash:/etc/postfix/relocated"
if [ "$(echo "$POSTFIX_TRANSPORT_MAPS" | tr 'A-Z' 'a-z' )" != "" ]; then
$PCONF -e "transport_maps = $POSTFIX_TRANSPORT_MAPS"
else
- $PCONF -e "transport_maps = $DEF_DB_TYPE:/etc/postfix/transport"
+ $PCONF -e "transport_maps = hash:/etc/postfix/transport"
fi
- $PCONF -e "sender_canonical_maps = $DEF_DB_TYPE:/etc/postfix/sender_canonical"
+ $PCONF -e "sender_canonical_maps = hash:/etc/postfix/sender_canonical"
$PCONF -e "masquerade_exceptions = root"
$PCONF -e "masquerade_classes = envelope_sender, header_sender, header_recipient"
if [ -n "${FQHOSTNAME}" ]; then
@@ -428,7 +428,7 @@
case "$POSTFIX_BASIC_SPAM_PREVENTION" in
medium)
echo 1>&2 "Setting up medium SPAM protection..."
- $PCONF -e "smtpd_sender_restrictions = $DEF_DB_TYPE:/etc/postfix/access, reject_unknown_sender_domain"
+ $PCONF -e "smtpd_sender_restrictions = hash:/etc/postfix/access, reject_unknown_sender_domain"
if test -n "$POSTFIX_RBL_HOSTS"; then
rblhosts=$(echo ${POSTFIX_RBL_HOSTS//,/ })
clnt_restrictions=""
@@ -450,7 +450,7 @@
;;
hard)
echo 1>&2 "Setting up hard SPAM protection..."
- $PCONF -e "smtpd_sender_restrictions = $DEF_DB_TYPE:/etc/postfix/access, reject_unknown_sender_domain"
+ $PCONF -e "smtpd_sender_restrictions = hash:/etc/postfix/access, reject_unknown_sender_domain"
if test -n "$POSTFIX_RBL_HOSTS"; then
rblhosts=$(echo ${POSTFIX_RBL_HOSTS//,/ })
clnt_restrictions=""
@@ -506,7 +506,7 @@
sender_restrictions=$(echo ${POSTFIX_SMTPD_SENDER_RESTRICTIONS/\ \+/,/ })
$PCONF -e "smtpd_sender_restrictions = $sender_restrictions"
else
- $PCONF -e "smtpd_sender_restrictions = $DEF_DB_TYPE:/etc/postfix/access, reject_unknown_sender_domain"
+ $PCONF -e "smtpd_sender_restrictions = hash:/etc/postfix/access, reject_unknown_sender_domain"
fi
if [ -n "$POSTFIX_SMTPD_RECIPIENT_RESTRICTIONS" ]; then
rcpt_restrictions=$(echo ${POSTFIX_SMTPD_RECIPIENT_RESTRICTIONS/\ \+/,/ })
@@ -524,7 +524,7 @@
using \"off\" instead!"
fi
echo 1>&2 "Setting SPAM protection to \"off\"..."
- $PCONF -e "smtpd_sender_restrictions = $DEF_DB_TYPE:/etc/postfix/access"
+ $PCONF -e "smtpd_sender_restrictions = hash:/etc/postfix/access"
$PCONF -e "smtpd_client_restrictions ="
$PCONF -e "smtpd_helo_required = no"
$PCONF -e "smtpd_helo_restrictions ="
@@ -536,7 +536,7 @@
if [ "$( echo "$POSTFIX_SMTP_AUTH" | tr 'A-Z' 'a-z' )" != "no" ]; then
$PCONF -e "smtp_sasl_auth_enable = yes"
$PCONF -e "smtp_sasl_security_options = $POSTFIX_SMTP_AUTH_OPTIONS"
- $PCONF -e "smtp_sasl_password_maps = $DEF_DB_TYPE:/etc/postfix/sasl_passwd"
+ $PCONF -e "smtp_sasl_password_maps = hash:/etc/postfix/sasl_passwd"
else
$PCONF -e "smtp_sasl_auth_enable = no"
$PCONF -e "smtp_sasl_security_options = "
@@ -627,7 +627,7 @@
else
$PCONF -e "smtpd_tls_key_file ="
fi
- $PCONF -e "relay_clientcerts = $DEF_DB_TYPE:/etc/postfix/relay_ccerts"
+ $PCONF -e "relay_clientcerts = hash:/etc/postfix/relay_ccerts"
$PCONF -e "smtpd_tls_ask_ccert = yes"
$PCONF -e "smtpd_tls_received_header = yes"
touch -m -d "1 minute ago" $TMPDIR/main.cf
@@ -681,11 +681,7 @@
else
$PCONF -e "smtp_tls_key_file ="
fi
- if [ $DEF_DB_TYPE = "hash" ]; then
- $PCONF -e "smtp_tls_session_cache_database = btree:/var/lib/postfix/smtp_tls_session_cache"
- else
- $PCONF -e "smtp_tls_session_cache_database = $DEF_DB_TYPE:/var/lib/postfix/smtp_tls_session_cache"
- fi
+ $PCONF -e "smtp_tls_session_cache_database = btree:/var/lib/postfix/smtp_tls_session_cache"
else
$PCONF -e "smtp_tls_CAfile ="
$PCONF -e "smtp_tls_CApath ="
@@ -694,9 +690,9 @@
$PCONF -e "smtp_tls_session_cache_database ="
fi
- ALLMAPS="$DEF_DB_TYPE:/etc/aliases"
+ ALLMAPS="hash:/etc/aliases"
for i in $(get_alias_maps); do
- ALLMAPS="${ALLMAPS}, $DEF_DB_TYPE:$i"
+ ALLMAPS="${ALLMAPS}, hash:$i"
done
$PCONF -e "alias_maps = $ALLMAPS"
@@ -734,8 +730,6 @@
my $pf_relay_domains = $ENV{POSTFIX_RELAY_DOMAINS};
-my $def_db_type = $ENV{DEF_DB_TYPE};
-
open(MNCF,"<$mncf") || die "unable to open $mncf: $!";
while( <MNCF> ) {
@@ -743,13 +737,13 @@
if( /\#?(virtual_alias_maps\s=\s).*/ ) {
if ($with_mysql ne "yes" && $with_ldap ne "yes") {
- $line = $1."$def_db_type:/etc/postfix/virtual";
+ $line = $1."hash:/etc/postfix/virtual";
} elsif ($with_ldap eq "yes" && $with_mysql ne "yes") {
- $line = $1."$def_db_type:/etc/postfix/virtual ldap:/etc/postfix/ldap_aliases.cf";
+ $line = $1."hash:/etc/postfix/virtual ldap:/etc/postfix/ldap_aliases.cf";
} elsif ($with_mysql eq "yes" && $with_ldap ne "yes") {
- $line = $1."$def_db_type:/etc/postfix/virtual mysql:/etc/postfix/mysql_virtual_alias_maps.cf mysql:/etc/postfix/mysql_virtual_alias_domain_maps.cf mysql:/etc/postfix/mysql_virtual_alias_domain_catchall_maps.cf";
+ $line = $1."hash:/etc/postfix/virtual mysql:/etc/postfix/mysql_virtual_alias_maps.cf mysql:/etc/postfix/mysql_virtual_alias_domain_maps.cf mysql:/etc/postfix/mysql_virtual_alias_domain_catchall_maps.cf";
} elsif ($with_mysql eq "yes" && $with_ldap eq "yes") {
- $line = $1."$def_db_type:/etc/postfix/virtual ldap:/etc/postfix/ldap_aliases.cf mysql:/etc/postfix/mysql_virtual_alias_maps.cf mysql:/etc/postfix/mysql_virtual_alias_domain_maps.cf mysql:/etc/postfix/mysql_virtual_alias_domain_catchall_maps.cf";
+ $line = $1."hash:/etc/postfix/virtual ldap:/etc/postfix/ldap_aliases.cf mysql:/etc/postfix/mysql_virtual_alias_maps.cf mysql:/etc/postfix/mysql_virtual_alias_domain_maps.cf mysql:/etc/postfix/mysql_virtual_alias_domain_catchall_maps.cf";
}
} elsif( /\#?(virtual_uid_maps\s=.*)/ ) {
if ($with_mysql ne "yes") {
@@ -825,9 +819,9 @@
}
} elsif ( /^(relay_domains\s=\s).*/ ) {
if ($with_mysql ne "yes") {
- $line = $1."\$mydestination $def_db_type:/etc/postfix/relay $pf_relay_domains";
+ $line = $1."\$mydestination hash:/etc/postfix/relay $pf_relay_domains";
} else {
- $line = $1."\$mydestination $def_db_type:/etc/postfix/relay mysql:/etc/postfix/mysql_relay_domains_maps.cf $pf_relay_domains";
+ $line = $1."\$mydestination hash:/etc/postfix/relay mysql:/etc/postfix/mysql_relay_domains_maps.cf $pf_relay_domains";
}
} else {
$line = $_;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/postfix-SUSE/sysconfig.postfix new/postfix-SUSE/sysconfig.postfix
--- old/postfix-SUSE/sysconfig.postfix 2021-01-27 16:11:35.035521646 +0100
+++ new/postfix-SUSE/sysconfig.postfix 2019-03-25 18:13:09.000000000 +0100
@@ -186,15 +186,15 @@
## Type: string
## Default: ""
# Defaults by config.postfix:
-# without MySQL: $mydestination lmdb:/etc/postfix/relay
-# with MySQL: $mydestination lmdb:/etc/postfix/relay mysql:/etc/postfix/mysql_relay_domains_maps.cf
+# without MySQL: $mydestination hash:/etc/postfix/relay
+# with MySQL: $mydestination hash:/etc/postfix/relay mysql:/etc/postfix/mysql_relay_domains_maps.cf
#
# Here you can add further *maps.cf files if needed
#
POSTFIX_RELAY_DOMAINS=""
## Type: string
-## Default: lmdb:/etc/postfix/transport
+## Default: hash:/etc/postfix/transport
#
# The list of transport_maps postfix should look for
#
@@ -251,9 +251,9 @@
#
# Example:
# POSTFIX_SMTPD_CLIENT_RESTRICTIONS="permit_mynetworks,
-# check_client_access lmdb:/etc/postfix/pop-before-smtp,
-# check_client_access lmdb:/etc/postfix/relay,
-# check_client_access lmdb:/etc/postfix/access,
+# check_client_access hash:/etc/postfix/pop-before-smtp,
+# check_client_access hash:/etc/postfix/relay,
+# check_client_access hash:/etc/postfix/access,
# reject_unknown_client_hostname,
# reject_unauth_pipelining"
#
@@ -272,7 +272,7 @@
#
# Example:
# POSTFIX_SMTPD_HELO_RESTRICTIONS="permit_mynetworks,
-# check_helo_access lmdb:/etc/postfix/helo_access,
+# check_helo_access hash:/etc/postfix/helo_access,
# reject_invalid_helo_hostname,
# reject_non_fqdn_helo_hostname,
# reject_unknown_helo_hostname,
@@ -281,20 +281,20 @@
POSTFIX_SMTPD_HELO_RESTRICTIONS=""
## Type: string
-## Default: "lmdb:/etc/postfix/access, reject_unknown_sender_domain"
+## Default: "hash:/etc/postfix/access, reject_unknown_sender_domain"
## Config: postfix
#
# Fill "POSTFIX_SMTPD_SENDER_RESTRICTIONS" for completion of this RESTRICTION
#
# A comma or space separated list of restrictions
# Note: if set to ...
-# medium: "lmdb:/etc/postfix/access, reject_unknown_sender_domain"
-# hard : "lmdb:/etc/postfix/access, reject_unknown_sender_domain"
+# medium: "hash:/etc/postfix/access, reject_unknown_sender_domain"
+# hard : "hash:/etc/postfix/access, reject_unknown_sender_domain"
#
# Example:
# POSTFIX_SMTPD_SENDER_RESTRICTIONS="
-# check_sender_access lmdb:/etc/postfix/access,
-# check_sender_a_access lmdb:/etc/postfix/access,
+# check_sender_access hash:/etc/postfix/access,
+# check_sender_a_access hash:/etc/postfix/access,
# reject_non_fqdn_sender,
# reject_unknown_sender_domain,
# reject_unauth_pipelining"
@@ -314,7 +314,7 @@
#
# Example:
# POSTFIX_SMTPD_RECIPIENT_RESTRICTIONS="permit_mynetworks,
-# check_recipient_access lmdb:/etc/postfix/access,
+# check_recipient_access hash:/etc/postfix/access,
# reject_non_fqdn_recipient,
# reject_unauth_destination,
# reject_unknown_recipient_domain,
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/postfix-SUSE/update_postmaps.systemd new/postfix-SUSE/update_postmaps.systemd
--- old/postfix-SUSE/update_postmaps.systemd 2020-12-25 11:57:50.000000000 +0100
+++ new/postfix-SUSE/update_postmaps.systemd 2017-07-27 12:40:51.000000000 +0200
@@ -4,7 +4,7 @@
# Author: Peter Varkoly
# Please send feedback to http://www.suse.de/feedback/
#
-# /usr/lib/postfix/systemd/update_postmaps
+# /etc/postfix/system/update_postmaps
#
@@ -13,34 +13,22 @@
if [ -n "${POSTFIX_UPDATE_MAPS/[yY][Ee][Ss]/}" ]; then
return
fi
-# find extension based on default database type
-case $(postconf default_database_type) in
- *hash)
- e="db"
- ;;
- *lmdb)
- e="lmdb"
- ;;
- *)
- # not supported
- return
- ;;
-esac
# Update the postmaps
for i in $POSTFIX_MAP_LIST; do
p=${i#*:}
[ x$p = x$i ] && p=644
m=/etc/postfix/${i%:*};
- d=$m.$e
+ d=$m.db
if [ -e $m -a $m -nt $d ]; then
postmap $m;
fi
chmod $p $d
done
for i in /etc/aliases /etc/aliases.d/*; do
- m=${i%.$e}
- d=$m.$e
+ m=${i/.db//}
+ d=$m.db
if [ -e $m -a $m -nt $d ]; then
postalias $m;
fi
done
+
++++++ postfix-main.cf.patch ++++++
--- /var/tmp/diff_new_pack.QOL3vu/_old 2021-02-02 14:14:58.654294627 +0100
+++ /var/tmp/diff_new_pack.QOL3vu/_new 2021-02-02 14:14:58.654294627 +0100
@@ -1,46 +1,8 @@
---- conf/main.cf-orig 2020-11-26 19:22:10.273349060 +0100
-+++ conf/main.cf 2020-11-26 19:22:57.917974110 +0100
-@@ -278,7 +278,7 @@
- #
- #mynetworks = 168.100.189.0/28, 127.0.0.0/8
- #mynetworks = $config_directory/mynetworks
--#mynetworks = hash:/etc/postfix/network_table
-+#mynetworks = lmdb:/etc/postfix/network_table
-
- # The relay_domains parameter restricts what destinations this system will
- # relay mail to. See the smtpd_recipient_restrictions description in
-@@ -343,7 +343,7 @@
- # In the left-hand side, specify an @domain.tld wild-card, or specify
- # a user(a)domain.tld address.
- #
--#relay_recipient_maps = hash:/etc/postfix/relay_recipients
-+#relay_recipient_maps = lmdb:/etc/postfix/relay_recipients
-
- # INPUT RATE CONTROL
- #
-@@ -398,8 +398,8 @@
- # "postfix reload" to eliminate the delay.
- #
- #alias_maps = dbm:/etc/aliases
--#alias_maps = hash:/etc/aliases
--#alias_maps = hash:/etc/aliases, nis:mail.aliases
-+#alias_maps = lmdb:/etc/aliases
-+#alias_maps = lmdb:/etc/aliases, nis:mail.aliases
- #alias_maps = netinfo:/aliases
-
- # The alias_database parameter specifies the alias database(s) that
-@@ -409,8 +409,8 @@
- #
- #alias_database = dbm:/etc/aliases
- #alias_database = dbm:/etc/mail/aliases
--#alias_database = hash:/etc/aliases
--#alias_database = hash:/etc/aliases, hash:/opt/majordomo/aliases
-+#alias_database = lmdb:/etc/aliases
-+#alias_database = lmdb:/etc/aliases, lmdb:/opt/majordomo/aliases
-
- # ADDRESS EXTENSIONS (e.g., user+foo)
- #
-@@ -567,6 +567,7 @@
+Index: conf/main.cf
+===================================================================
+--- conf/main.cf.orig
++++ conf/main.cf
+@@ -567,6 +567,7 @@ unknown_local_recipient_reject_code = 55
#
#smtpd_banner = $myhostname ESMTP $mail_name
#smtpd_banner = $myhostname ESMTP $mail_name ($mail_version)
@@ -48,7 +10,7 @@
# PARALLEL DELIVERY TO THE SAME DESTINATION
#
-@@ -673,4 +674,140 @@
+@@ -673,4 +674,140 @@ sample_directory =
# readme_directory: The location of the Postfix README files.
#
readme_directory =
@@ -135,7 +97,7 @@
+smtp_tls_CApath =
+smtp_tls_cert_file =
+smtp_tls_key_file =
-+#smtp_tls_policy_maps = lmdb:/etc/postfix/tls_policy
++#smtp_tls_policy_maps = hash:/etc/postfix/tls_policy
+#smtp_tls_session_cache_timeout = 3600s
+smtp_tls_session_cache_database =
+
@@ -151,9 +113,9 @@
+############################################################
+# Start MySQL from postfixwiki.org
+############################################################
-+relay_domains = $mydestination, lmdb:/etc/postfix/relay
++relay_domains = $mydestination, hash:/etc/postfix/relay
+#virtual_alias_domains =
-+#virtual_alias_maps = lmdb:/etc/postfix/virtual
++#virtual_alias_maps = hash:/etc/postfix/virtual
+#virtual_uid_maps = static:303
+#virtual_gid_maps = static:303
+#virtual_minimum_uid = 303
@@ -169,9 +131,9 @@
+#virtual_mailbox_limit_override = yes
+### Needs Maildir++ compatible IMAP servers, like Courier-IMAP
+#virtual_maildir_filter = yes
-+#virtual_maildir_filter_maps = lmdb:/etc/postfix/vfilter
++#virtual_maildir_filter_maps = hash:/etc/postfix/vfilter
+#virtual_maildir_limit_message = Sorry, the user's maildir has overdrawn his diskspace quota, please try again later.
-+#virtual_maildir_limit_message_maps = lmdb:/etc/postfix/vmsg
++#virtual_maildir_limit_message_maps = hash:/etc/postfix/vmsg
+#virtual_overquota_bounce = yes
+#virtual_trash_count = yes
+#virtual_trash_name = ".Trash"
1
0
Script 'mail_helper' called by obssrc
Hello community,
here is the log from the commit of package 000product for openSUSE:Factory checked in at 2021-02-02 12:16:12
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/000product (Old)
and /work/SRC/openSUSE:Factory/.000product.new.28504 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "000product"
Tue Feb 2 12:16:12 2021 rev:2576 rq: version:unknown
Changes:
--------
New Changes file:
NO CHANGES FILE!!!
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
MicroOS-dvd5-kubic-dvd-x86_64.kiwi: same change
openSUSE-Addon-NonOss-ftp-ftp-i586_x86_64.kiwi: same change
openSUSE-cd-mini-i586.kiwi: same change
openSUSE-cd-mini-x86_64.kiwi: same change
openSUSE-dvd5-dvd-i586.kiwi: same change
openSUSE-dvd5-dvd-x86_64.kiwi: same change
openSUSE-ftp-ftp-i586_x86_64.kiwi: same change
stub.kiwi: same change
++++++ unsorted.yml ++++++
--- /var/tmp/diff_new_pack.Sf4FjL/_old 2021-02-02 12:16:16.919828256 +0100
+++ /var/tmp/diff_new_pack.Sf4FjL/_new 2021-02-02 12:16:16.923828263 +0100
@@ -20893,7 +20893,6 @@
- python3-napalm-exos
- python3-napalm-procurve
- python3-nemo
- - python3-neovim-remote
- python3-neutronclient
- python3-newt
- python3-nghttp2
@@ -20979,7 +20978,6 @@
- python3-pyginac-devel
- python3-pyglet
- python3-pyjnius
- - python3-pykickstart
- python3-pymod2pkg
- python3-pynest2d
- python3-pypandoc: [i586]
@@ -21033,9 +21031,6 @@
- python3-sphinxbase
- python3-sphinxbase5
- python3-splinter
- - python3-spyder-notebook
- - python3-spyder-terminal
- - python3-spyder-unittest
- python3-sqlite-utils: [x86_64]
- python3-sss-murmur
- python3-sss_nss_idmap
1
0