openSUSE Commits
Threads by month
- ----- 2024 -----
- 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
June 2021
- 1 participants
- 2516 discussions
Script 'mail_helper' called by obssrc
Hello community,
here is the log from the commit of package ghostscript for openSUSE:Factory checked in at 2021-06-01 10:33:40
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/ghostscript (Old)
and /work/SRC/openSUSE:Factory/.ghostscript.new.1898 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "ghostscript"
Tue Jun 1 10:33:40 2021 rev:51 rq:895991 version:9.54.0
Changes:
--------
--- /work/SRC/openSUSE:Factory/ghostscript/ghostscript-mini.changes 2021-04-18 21:44:55.236702580 +0200
+++ /work/SRC/openSUSE:Factory/.ghostscript.new.1898/ghostscript-mini.changes 2021-06-01 10:33:53.172447799 +0200
@@ -2 +2,39 @@
-Wed Apr 14 11:57:25 UTC 2021 - Wolfgang Frisch <wolfgang.frisch(a)suse.com>
+Fri May 21 13:40:56 CEST 2021 - jsmeix(a)suse.de
+
+- Version upgrade to 9.54.0
+ Highlights in this release include
+ (excerpts from the Ghostscript upstream release summary
+ in https://www.ghostscript.com/doc/9.54.0/News.htm):
+ * The 9.54.0 release is a maintenance release,
+ and also adds new functionality.
+ * Overprint simulation is now available to all output devices,
+ allowing quality previewing/proofing of PostScript and
+ PDF jobs that rely on overprint. See the -dOverprint option
+ documentation in: doc/9.54.0/Use.htm#Overprint
+ * The "docxwrite" device adds the ability to output
+ to Microsoft Word "docx" format.
+ See: doc/9.54.0/VectorDevices.htm#DOCX
+ * The pdfwrite device is now capable of using the Tesseract OCR
+ engine when it is built into Ghostscript to improve
+ searchability and copy and paste functionality when the input
+ lacks the metadata for that purpose.
+ See: doc/9.54.0/VectorDevices.htm#UseOCR
+ * Ghostscript/GhostPDL now includes a "map text to black"
+ function, where text drawn by an input job (except when drawn
+ using a Type 3 font) can be forced to draw in solid black.
+ See: doc/9.54.0/Use.htm#BlackText
+ * Ghostscript/GhostPDL now supports simple N-up imposition
+ "internally". See: doc/9.54.0/Use.htm#NupControl
+ * Our efforts in code hygiene and maintainability continue.
+ * The usual round of bug fixes, compatibility changes,
+ and incremental improvements.
+ * For a list of open issues, or to report problems, please visit
+ bugs.ghostscript.com
+ For a release summary see:
+ https://www.ghostscript.com/doc/9.54.0/News.htm
+ For details see the News.htm and History9.htm files.
+- 41ef9a0bc36b9db7115fbe9623f989bfb47bbade.patch is no longer
+ needed because it is fixed in the upstream sources.
+
+-------------------------------------------------------------------
+Wed Apr 14 11:56:22 UTC 2021 - Wolfgang Frisch <wolfgang.frisch(a)suse.com>
--- /work/SRC/openSUSE:Factory/ghostscript/ghostscript.changes 2021-04-18 21:44:55.284702661 +0200
+++ /work/SRC/openSUSE:Factory/.ghostscript.new.1898/ghostscript.changes 2021-06-01 10:33:53.256447942 +0200
@@ -1,0 +2,38 @@
+Fri May 21 13:40:56 CEST 2021 - jsmeix(a)suse.de
+
+- Version upgrade to 9.54.0
+ Highlights in this release include
+ (excerpts from the Ghostscript upstream release summary
+ in https://www.ghostscript.com/doc/9.54.0/News.htm):
+ * The 9.54.0 release is a maintenance release,
+ and also adds new functionality.
+ * Overprint simulation is now available to all output devices,
+ allowing quality previewing/proofing of PostScript and
+ PDF jobs that rely on overprint. See the -dOverprint option
+ documentation in: doc/9.54.0/Use.htm#Overprint
+ * The "docxwrite" device adds the ability to output
+ to Microsoft Word "docx" format.
+ See: doc/9.54.0/VectorDevices.htm#DOCX
+ * The pdfwrite device is now capable of using the Tesseract OCR
+ engine when it is built into Ghostscript to improve
+ searchability and copy and paste functionality when the input
+ lacks the metadata for that purpose.
+ See: doc/9.54.0/VectorDevices.htm#UseOCR
+ * Ghostscript/GhostPDL now includes a "map text to black"
+ function, where text drawn by an input job (except when drawn
+ using a Type 3 font) can be forced to draw in solid black.
+ See: doc/9.54.0/Use.htm#BlackText
+ * Ghostscript/GhostPDL now supports simple N-up imposition
+ "internally". See: doc/9.54.0/Use.htm#NupControl
+ * Our efforts in code hygiene and maintainability continue.
+ * The usual round of bug fixes, compatibility changes,
+ and incremental improvements.
+ * For a list of open issues, or to report problems, please visit
+ bugs.ghostscript.com
+ For a release summary see:
+ https://www.ghostscript.com/doc/9.54.0/News.htm
+ For details see the News.htm and History9.htm files.
+- 41ef9a0bc36b9db7115fbe9623f989bfb47bbade.patch is no longer
+ needed because it is fixed in the upstream sources.
+
+-------------------------------------------------------------------
Old:
----
41ef9a0bc36b9db7115fbe9623f989bfb47bbade.patch
ghostscript-9.53.3.tar.gz
New:
----
ghostscript-9.54.0.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ ghostscript-mini.spec ++++++
--- /var/tmp/diff_new_pack.gyynpH/_old 2021-06-01 10:33:54.300449720 +0200
+++ /var/tmp/diff_new_pack.gyynpH/_new 2021-06-01 10:33:54.304449726 +0200
@@ -42,7 +42,7 @@
# so that we keep additionally the previous version number to upgrade from the previous version:
# Starting SLE12/rpm-4.10, one can use tildeversions: 9.15~rc1.
#Version: 9.25pre26rc1
-Version: 9.53.3
+Version: 9.54.0
Release: 0
# Normal version for Ghostscript releases is the upstream version:
# tarball_version is used below to specify the directory via "setup -n":
@@ -66,17 +66,13 @@
#Source0: ghostscript-%{tarball_version}.tar.gz
# Normal URLs for Ghostscript releases:
# URL for Source0:
-# wget -O ghostscript-9.53.3.tar.gz https://github.com/ArtifexSoftware/ghostpdl-downloads/releases/download/gs9…
+# wget -O ghostscript-9.54.0.tar.gz https://github.com/ArtifexSoftware/ghostpdl-downloads/releases/download/gs9…
# URL for MD5 checksums:
-# wget -O gs9533.MD5SUMS https://github.com/ArtifexSoftware/ghostpdl-downloads/releases/download/gs9…
-# MD5 checksum for Source0: 807a5c4934a814e8a6cd83eff702f212 ghostscript-9.53.3.tar.gz
+# wget -O gs9540.MD5SUMS https://github.com/ArtifexSoftware/ghostpdl-downloads/releases/download/gs9…
+# MD5 checksum for Source0: 5d571792a8eb826c9f618fb69918d9fc ghostscript-9.54.0.tar.gz
Source0: ghostscript-%{version}.tar.gz
Source1: apparmor_ghostscript
# Patch0...Patch9 is for patches from upstream:
-# Patch2 41ef9a0bc36b9db7115fbe9623f989bfb47bbade.patch fixes compilation with FreeType 2.10.3+
-# http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=41ef9a0bc36b9db71…
-# c.f. https://bugs.ghostscript.com/show_bug.cgi?id=702985
-Patch2: 41ef9a0bc36b9db7115fbe9623f989bfb47bbade.patch
# Source10...Source99 is for sources from SUSE which are intended for upstream:
# Patch10...Patch99 is for patches from SUSE which are intended for upstream:
# Source100...Source999 is for sources from SUSE which are not intended for upstream:
@@ -155,10 +151,6 @@
# Be quiet when unpacking and
# use a directory name matching Source0 to make it work also for ghostscript-mini:
%setup -q -n ghostscript-%{tarball_version}
-# Patch2 41ef9a0bc36b9db7115fbe9623f989bfb47bbade.patch fixes compilation with FreeType 2.10.3+
-# http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=41ef9a0bc36b9db71…
-# c.f. https://bugs.ghostscript.com/show_bug.cgi?id=702985
-%patch2 -p1
# Patch100 remove-zlib-h-dependency.patch removes dependency on zlib/zlib.h
# in makefiles as we do not use the zlib sources from the Ghostscript upstream tarball.
# Again use the zlib sources from Ghostscript upstream
++++++ ghostscript.spec ++++++
--- /var/tmp/diff_new_pack.gyynpH/_old 2021-06-01 10:33:54.332449774 +0200
+++ /var/tmp/diff_new_pack.gyynpH/_new 2021-06-01 10:33:54.336449780 +0200
@@ -71,7 +71,7 @@
# so that we keep additionally the previous version number to upgrade from the previous version:
# Starting SLE12/rpm-4.10, one can use tildeversions: 9.15~rc1.
#Version: 9.25pre26rc1
-Version: 9.53.3
+Version: 9.54.0
Release: 0
# Normal version for Ghostscript releases is the upstream version:
# tarball_version is used below to specify the directory via "setup -n":
@@ -95,17 +95,13 @@
#Source0: ghostscript-%{tarball_version}.tar.gz
# Normal URLs for Ghostscript releases:
# URL for Source0:
-# wget -O ghostscript-9.53.3.tar.gz https://github.com/ArtifexSoftware/ghostpdl-downloads/releases/download/gs9…
+# wget -O ghostscript-9.54.0.tar.gz https://github.com/ArtifexSoftware/ghostpdl-downloads/releases/download/gs9…
# URL for MD5 checksums:
-# wget -O gs9533.MD5SUMS https://github.com/ArtifexSoftware/ghostpdl-downloads/releases/download/gs9…
-# MD5 checksum for Source0: 807a5c4934a814e8a6cd83eff702f212 ghostscript-9.53.3.tar.gz
+# wget -O gs9540.MD5SUMS https://github.com/ArtifexSoftware/ghostpdl-downloads/releases/download/gs9…
+# MD5 checksum for Source0: 5d571792a8eb826c9f618fb69918d9fc ghostscript-9.54.0.tar.gz
Source0: ghostscript-%{version}.tar.gz
Source1: apparmor_ghostscript
# Patch0...Patch9 is for patches from upstream:
-# Patch2 41ef9a0bc36b9db7115fbe9623f989bfb47bbade.patch fixes compilation with FreeType 2.10.3+
-# http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=41ef9a0bc36b9db71…
-# c.f. https://bugs.ghostscript.com/show_bug.cgi?id=702985
-Patch2: 41ef9a0bc36b9db7115fbe9623f989bfb47bbade.patch
# Source10...Source99 is for sources from SUSE which are intended for upstream:
# Patch10...Patch99 is for patches from SUSE which are intended for upstream:
# Source100...Source999 is for sources from SUSE which are not intended for upstream:
@@ -296,10 +292,6 @@
# Be quiet when unpacking and
# use a directory name matching Source0 to make it work also for ghostscript-mini:
%setup -q -n ghostscript-%{tarball_version}
-# Patch2 41ef9a0bc36b9db7115fbe9623f989bfb47bbade.patch fixes compilation with FreeType 2.10.3+
-# http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=41ef9a0bc36b9db71…
-# c.f. https://bugs.ghostscript.com/show_bug.cgi?id=702985
-%patch2 -p1
# Patch100 remove-zlib-h-dependency.patch removes dependency on zlib/zlib.h
# in makefiles as we do not use the zlib sources from the Ghostscript upstream tarball.
# Again use the zlib sources from Ghostscript upstream
++++++ ghostscript-9.53.3.tar.gz -> ghostscript-9.54.0.tar.gz ++++++
/work/SRC/openSUSE:Factory/ghostscript/ghostscript-9.53.3.tar.gz /work/SRC/openSUSE:Factory/.ghostscript.new.1898/ghostscript-9.54.0.tar.gz differ: char 29, line 1
1
0
Script 'mail_helper' called by obssrc
Hello community,
here is the log from the commit of package simple-scan for openSUSE:Factory checked in at 2021-06-01 10:33:39
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/simple-scan (Old)
and /work/SRC/openSUSE:Factory/.simple-scan.new.1898 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "simple-scan"
Tue Jun 1 10:33:39 2021 rev:77 rq:895974 version:40.1
Changes:
--------
--- /work/SRC/openSUSE:Factory/simple-scan/simple-scan.changes 2021-04-12 12:37:28.501376972 +0200
+++ /work/SRC/openSUSE:Factory/.simple-scan.new.1898/simple-scan.changes 2021-06-01 10:33:51.260444544 +0200
@@ -1,0 +2,6 @@
+Tue May 25 10:37:05 UTC 2021 - Bj��rn Lie <bjorn.lie(a)gmail.com>
+
+- Update to version 40.1:
+ + Updated translations.
+
+-------------------------------------------------------------------
Old:
----
simple-scan-40.0.tar.xz
New:
----
simple-scan-40.1.tar.xz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ simple-scan.spec ++++++
--- /var/tmp/diff_new_pack.s5MjyF/_old 2021-06-01 10:33:51.740445361 +0200
+++ /var/tmp/diff_new_pack.s5MjyF/_new 2021-06-01 10:33:51.740445361 +0200
@@ -17,7 +17,7 @@
Name: simple-scan
-Version: 40.0
+Version: 40.1
Release: 0
Summary: Simple Scanning Utility
License: GPL-3.0-or-later
++++++ simple-scan-40.0.tar.xz -> simple-scan-40.1.tar.xz ++++++
++++ 8726 lines of diff (skipped)
1
0
Script 'mail_helper' called by obssrc
Hello community,
here is the log from the commit of package python-pytz for openSUSE:Factory checked in at 2021-06-01 10:33:38
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/python-pytz (Old)
and /work/SRC/openSUSE:Factory/.python-pytz.new.1898 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "python-pytz"
Tue Jun 1 10:33:38 2021 rev:41 rq:895961 version:2021.1
Changes:
--------
--- /work/SRC/openSUSE:Factory/python-pytz/python-pytz.changes 2021-03-02 12:29:20.659525891 +0100
+++ /work/SRC/openSUSE:Factory/.python-pytz.new.1898/python-pytz.changes 2021-06-01 10:33:49.656441813 +0200
@@ -1,0 +2,5 @@
+Fri May 28 09:56:44 UTC 2021 - pgajdos(a)suse.com
+
+- %check: use %pyunittest rpm macro
+
+-------------------------------------------------------------------
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ python-pytz.spec ++++++
--- /var/tmp/diff_new_pack.siPrH9/_old 2021-06-01 10:33:50.964444040 +0200
+++ /var/tmp/diff_new_pack.siPrH9/_new 2021-06-01 10:33:50.968444047 +0200
@@ -80,7 +80,7 @@
}
%check
-%python_exec setup.py test
+%pyunittest discover -v
%files %{python_files}
%license LICENSE.txt
1
0
Script 'mail_helper' called by obssrc
Hello community,
here is the log from the commit of package rpcbind for openSUSE:Factory checked in at 2021-06-01 10:33:37
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/rpcbind (Old)
and /work/SRC/openSUSE:Factory/.rpcbind.new.1898 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "rpcbind"
Tue Jun 1 10:33:37 2021 rev:64 rq:895947 version:1.2.6
Changes:
--------
--- /work/SRC/openSUSE:Factory/rpcbind/rpcbind.changes 2021-04-22 18:03:20.890449408 +0200
+++ /work/SRC/openSUSE:Factory/.rpcbind.new.1898/rpcbind.changes 2021-06-01 10:33:48.948440608 +0200
@@ -1,0 +2,10 @@
+Mon May 17 07:06:12 UTC 2021 - Petr Vorel <pvorel(a)suse.cz>
+
+- Update to rpcbind 1.2.6
+- Remove 0031-rpcbind-manpage.patch (accepted upstream in commit 4bedcee)
+- Drop pmap_set.c (installed as pmap_set2): bnc#446388 is from 2008, for
+ openSUSE 11.
+- Refresh 0001-change-lockingdir-to-run.patch
+- Replace %setup with %autosetup
+
+-------------------------------------------------------------------
Old:
----
0031-rpcbind-manpage.patch
pmap_set.c
rpcbind-1.2.5.tar.bz2
New:
----
rpcbind-1.2.6.tar.bz2
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ rpcbind.spec ++++++
--- /var/tmp/diff_new_pack.smBs3g/_old 2021-06-01 10:33:49.392441364 +0200
+++ /var/tmp/diff_new_pack.smBs3g/_new 2021-06-01 10:33:49.392441364 +0200
@@ -21,7 +21,7 @@
%define _fillupdir %{_localstatedir}/adm/fillup-templates
%endif
Name: rpcbind
-Version: 1.2.5
+Version: 1.2.6
Release: 0
Summary: Transport independent RPC portmapper
# Git-Web: http://git.linux-nfs.org/?p=steved/rpcbind.git;a=summary
@@ -30,11 +30,9 @@
URL: http://rpcbind.sourceforge.net
Source: https://downloads.sourceforge.net/sourceforge/%{name}/%{name}-%{version}.ta…
Source2: sysconfig.rpcbind
-Source4: pmap_set.c
Source5: rpc-user.conf
Patch1: 0001-systemd-unit-files.patch
Patch2: 0001-change-lockingdir-to-run.patch
-Patch31: 0031-rpcbind-manpage.patch
BuildRequires: libtirpc-devel >= 1.0.1
BuildRequires: libtool
BuildRequires: pkgconfig
@@ -58,11 +56,7 @@
regards to portmap.
%prep
-%setup -q
-cp %{SOURCE4} .
-%patch1 -p1
-%patch2 -p1
-%patch31 -p1
+%autosetup -p1
%build
autoreconf -fiv
@@ -80,7 +74,6 @@
--with-nss-modules="files usrfiles"
make %{?_smp_mflags}
-gcc -I/usr/include/tirpc -pie -fpie -fwhole-program -Wl,-z,relro,-z,now %{optflags} pmap_set.c -o pmap_set -ltirpc
%sysusers_generate_pre %{SOURCE5} rpc
%install
@@ -91,8 +84,6 @@
# sysusers.d config
mkdir -p %{buildroot}%{_sysusersdir}
install -m 644 %{SOURCE5} %{buildroot}%{_sysusersdir}/
-#
-install -m 755 pmap_set %{buildroot}/sbin/pmap_set2
# create symlink for rcrpcbind
mkdir -p %{buildroot}/%{_sbindir}
ln -s service %{buildroot}/%{_sbindir}/rc%{name}
@@ -114,7 +105,6 @@
%files
%license COPYING
%doc AUTHORS README
-/sbin/pmap_set2
/sbin/%{name}
/bin/rpcinfo
/sbin/rpcinfo
++++++ 0001-change-lockingdir-to-run.patch ++++++
--- /var/tmp/diff_new_pack.smBs3g/_old 2021-06-01 10:33:49.412441398 +0200
+++ /var/tmp/diff_new_pack.smBs3g/_new 2021-06-01 10:33:49.412441398 +0200
@@ -11,7 +11,7 @@
index cc848b1..65054ff 100644
--- a/src/rpcbind.c
+++ b/src/rpcbind.c
-@@ -106,7 +106,7 @@ char *nss_modules = "files";
+@@ -105,7 +105,7 @@ char *nss_modules = "files";
/* who to suid to if -s is given */
#define RUN_AS "daemon"
++++++ rpcbind-1.2.5.tar.bz2 -> rpcbind-1.2.6.tar.bz2 ++++++
++++ 1664 lines of diff (skipped)
++++ retrying with extended exclude list
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/rpcbind-1.2.5/README new/rpcbind-1.2.6/README
--- old/rpcbind-1.2.5/README 2018-08-15 16:51:19.000000000 +0200
+++ new/rpcbind-1.2.6/README 2021-05-10 19:10:19.000000000 +0200
@@ -1,3 +1,5 @@
This release was a native source release from Sun.
It has been ported from FreeBSD 5.2.1 to GNU/Linux in 2004.
+Please send bug reports to: libtirpc-devel(a)lists.sourceforge.net
+or linux-nfs(a)vger.kernel.org
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/rpcbind-1.2.5/compile new/rpcbind-1.2.6/compile
--- old/rpcbind-1.2.5/compile 2018-08-15 17:00:32.000000000 +0200
+++ new/rpcbind-1.2.6/compile 2021-05-10 19:13:17.000000000 +0200
@@ -1,9 +1,9 @@
-#!/bin/sh
+#! /bin/sh
# Wrapper for compilers which do not understand '-c -o'.
-scriptversion=2016-01-11.22; # UTC
+scriptversion=2018-03-07.03; # UTC
-# Copyright (C) 1999-2017 Free Software Foundation, Inc.
+# Copyright (C) 1999-2020 Free Software Foundation, Inc.
# Written by Tom Tromey <tromey(a)cygnus.com>.
#
# This program is free software; you can redistribute it and/or modify
@@ -17,7 +17,7 @@
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
-# along with this program. If not, see <http://www.gnu.org/licenses/>.
+# along with this program. If not, see <https://www.gnu.org/licenses/>.
# As a special exception to the GNU General Public License, if you
# distribute this file as part of a program that contains a
@@ -53,7 +53,7 @@
MINGW*)
file_conv=mingw
;;
- CYGWIN*)
+ CYGWIN* | MSYS*)
file_conv=cygwin
;;
*)
@@ -67,7 +67,7 @@
mingw/*)
file=`cmd //C echo "$file " | sed -e 's/"\(.*\) " *$/\1/'`
;;
- cygwin/*)
+ cygwin/* | msys/*)
file=`cygpath -m "$file" || echo "$file"`
;;
wine/*)
@@ -340,7 +340,7 @@
# Local Variables:
# mode: shell-script
# sh-indentation: 2
-# eval: (add-hook 'write-file-hooks 'time-stamp)
+# eval: (add-hook 'before-save-hook 'time-stamp)
# time-stamp-start: "scriptversion="
# time-stamp-format: "%:y-%02m-%02d.%02H"
# time-stamp-time-zone: "UTC0"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/rpcbind-1.2.5/configure.ac new/rpcbind-1.2.6/configure.ac
--- old/rpcbind-1.2.5/configure.ac 2018-08-15 16:51:19.000000000 +0200
+++ new/rpcbind-1.2.6/configure.ac 2021-05-10 19:10:19.000000000 +0200
@@ -1,4 +1,4 @@
-AC_INIT(rpcbind, 1.2.5)
+AC_INIT(rpcbind, 1.2.6)
AM_INIT_AUTOMAKE
AC_CONFIG_SRCDIR([src/rpcbind.c])
@@ -63,7 +63,7 @@
AC_SEARCH_LIBS([pthread_create], [pthread])
-AC_CHECK_HEADERS([nss.h rpcsvc/mount.h])
+AC_CHECK_HEADERS([nss.h])
# make sbindir available for substitution in config file
# 2 "evals" needed to expand variable names
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/rpcbind-1.2.5/man/rpcbind.8 new/rpcbind-1.2.6/man/rpcbind.8
--- old/rpcbind-1.2.5/man/rpcbind.8 2018-08-15 16:51:19.000000000 +0200
+++ new/rpcbind-1.2.6/man/rpcbind.8 2021-05-10 19:10:19.000000000 +0200
@@ -86,9 +86,16 @@
Do not fork and become a background process.
.It Fl h
Specify specific IP addresses to bind to for UDP requests.
-This option
-may be specified multiple times and is typically necessary when running
-on a multi-homed host.
+This option may be specified multiple times and can be used to
+restrict the interfaces rpcbind will respond to.
+When specifying IP addresses with
+.Fl h ,
+.Nm
+will automatically add
+.Li 127.0.0.1
+and if IPv6 is enabled,
+.Li ::1
+to the list.
If no
.Fl h
option is specified,
@@ -99,14 +106,19 @@
.Nm
returning a UDP packet from a different IP address than it was
sent to.
-Note that when specifying IP addresses with
-.Fl h ,
+Note that when
.Nm
-will automatically add
-.Li 127.0.0.1
-and if IPv6 is enabled,
-.Li ::1
-to the list.
+is controlled via systemd's socket activation,
+the
+.Fl h
+option is ignored. In this case, you need to edit
+the
+.Nm ListenStream
+and
+.Nm ListenDgram
+definitions in
+.Nm /usr/lib/systemd/system/rpcbind.socket
+instead.
.It Fl i
.Dq Insecure
mode.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/rpcbind-1.2.5/missing new/rpcbind-1.2.6/missing
--- old/rpcbind-1.2.5/missing 2018-08-15 17:00:32.000000000 +0200
+++ new/rpcbind-1.2.6/missing 2021-05-10 19:13:17.000000000 +0200
@@ -1,9 +1,9 @@
-#!/bin/sh
+#! /bin/sh
# Common wrapper for a few potentially missing GNU programs.
-scriptversion=2016-01-11.22; # UTC
+scriptversion=2018-03-07.03; # UTC
-# Copyright (C) 1996-2017 Free Software Foundation, Inc.
+# Copyright (C) 1996-2020 Free Software Foundation, Inc.
# Originally written by Fran,cois Pinard <pinard(a)iro.umontreal.ca>, 1996.
# This program is free software; you can redistribute it and/or modify
@@ -17,7 +17,7 @@
# GNU General Public License for more details.
# You should have received a copy of the GNU General Public License
-# along with this program. If not, see <http://www.gnu.org/licenses/>.
+# along with this program. If not, see <https://www.gnu.org/licenses/>.
# As a special exception to the GNU General Public License, if you
# distribute this file as part of a program that contains a
@@ -101,9 +101,9 @@
exit $st
fi
-perl_URL=http://www.perl.org/
-flex_URL=http://flex.sourceforge.net/
-gnu_software_URL=http://www.gnu.org/software
+perl_URL=https://www.perl.org/
+flex_URL=https://github.com/westes/flex
+gnu_software_URL=https://www.gnu.org/software
program_details ()
{
@@ -207,7 +207,7 @@
exit $st
# Local variables:
-# eval: (add-hook 'write-file-hooks 'time-stamp)
+# eval: (add-hook 'before-save-hook 'time-stamp)
# time-stamp-start: "scriptversion="
# time-stamp-format: "%:y-%02m-%02d.%02H"
# time-stamp-time-zone: "UTC0"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/rpcbind-1.2.5/src/pmap_svc.c new/rpcbind-1.2.6/src/pmap_svc.c
--- old/rpcbind-1.2.5/src/pmap_svc.c 2018-08-15 16:51:19.000000000 +0200
+++ new/rpcbind-1.2.6/src/pmap_svc.c 2021-05-10 19:10:19.000000000 +0200
@@ -50,6 +50,7 @@
#include <sys/types.h>
#include <sys/socket.h>
#include <stdio.h>
+#include <string.h>
#include <rpc/rpc.h>
#include <rpc/pmap_prot.h>
#include <rpc/rpcb_prot.h>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/rpcbind-1.2.5/src/rpcb_stat.c new/rpcbind-1.2.6/src/rpcb_stat.c
--- old/rpcbind-1.2.5/src/rpcb_stat.c 2018-08-15 16:51:19.000000000 +0200
+++ new/rpcbind-1.2.6/src/rpcb_stat.c 2021-05-10 19:10:19.000000000 +0200
@@ -151,7 +151,7 @@
rpcbs_rmtcalllist *rl;
struct netconfig *nconf;
- if (rtype > RPCBVERS_STAT)
+ if (rtype >= RPCBVERS_STAT)
return;
for (rl = inf[rtype].rmtinfo; rl; rl = rl->next) {
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/rpcbind-1.2.5/src/rpcb_svc_com.c new/rpcbind-1.2.6/src/rpcb_svc_com.c
--- old/rpcbind-1.2.5/src/rpcb_svc_com.c 2018-08-15 16:51:19.000000000 +0200
+++ new/rpcbind-1.2.6/src/rpcb_svc_com.c 2021-05-10 19:10:19.000000000 +0200
@@ -42,7 +42,7 @@
#include <sys/types.h>
#include <sys/stat.h>
#include <sys/param.h>
-#include <sys/poll.h>
+#include <poll.h>
#include <bits/poll.h>
#include <sys/socket.h>
#include <rpc/rpc.h>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/rpcbind-1.2.5/src/rpcbind.c new/rpcbind-1.2.6/src/rpcbind.c
--- old/rpcbind-1.2.5/src/rpcbind.c 2018-08-15 16:51:19.000000000 +0200
+++ new/rpcbind-1.2.6/src/rpcbind.c 2021-05-10 19:10:19.000000000 +0200
@@ -42,11 +42,10 @@
#include <sys/types.h>
#include <sys/stat.h>
-#include <sys/errno.h>
#include <sys/resource.h>
#include <sys/wait.h>
#include <sys/time.h>
-#include <sys/signal.h>
+#include <signal.h>
#include <sys/file.h>
#include <sys/socket.h>
#include <sys/un.h>
@@ -340,7 +339,7 @@
{
int fd = -1;
struct t_bind taddr;
- struct addrinfo hints, *res;
+ struct addrinfo hints, *res = NULL;
struct __rpc_sockinfo si;
SVCXPRT *my_xprt = NULL;
int status; /* bound checking ? */
@@ -506,7 +505,7 @@
hints.ai_flags |= AI_NUMERICHOST;
} else {
/*
- * Skip if we have an AF_INET6 adress.
+ * Skip if we have an AF_INET6 address.
*/
if (inet_pton(AF_INET6,
hosts[nhostsbak], host_addr) == 1)
@@ -519,7 +518,7 @@
hints.ai_flags |= AI_NUMERICHOST;
} else {
/*
- * Skip if we have an AF_INET adress.
+ * Skip if we have an AF_INET address.
*/
if (inet_pton(AF_INET, hosts[nhostsbak],
host_addr) == 1)
@@ -817,8 +816,12 @@
}
#endif
+ if (res != NULL)
+ freeaddrinfo(res);
return (0);
error:
+ if (res != NULL)
+ freeaddrinfo(res);
close(fd);
return (1);
}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/rpcbind-1.2.5/src/rpcinfo.c new/rpcbind-1.2.6/src/rpcinfo.c
--- old/rpcbind-1.2.5/src/rpcinfo.c 2018-08-15 16:51:19.000000000 +0200
+++ new/rpcbind-1.2.6/src/rpcinfo.c 2021-05-10 19:10:19.000000000 +0200
@@ -693,11 +693,11 @@
}
if (!(uaddr = taddr2uaddr (nconf, who)))
{
- uaddr = UNKNOWN;
+ printf ("%s\t%s\n", UNKNOWN, hostname);
+ } else {
+ printf ("%s\t%s\n", uaddr, hostname);
+ free ((char *) uaddr);
}
- printf ("%s\t%s\n", uaddr, hostname);
- if (strcmp (uaddr, UNKNOWN))
- free ((char *) uaddr);
return (FALSE);
}
@@ -973,6 +973,7 @@
(" program version(s) netid(s) service owner\n");
for (rs = rs_head; rs; rs = rs->next)
{
+ size_t netidmax = sizeof(buf) - 1;
char *p = buf;
printf ("%10ld ", rs->prog);
@@ -985,12 +986,22 @@
}
printf ("%-10s", buf);
buf[0] = '\0';
- for (nl = rs->nlist; nl; nl = nl->next)
- {
- strcat (buf, nl->netid);
- if (nl->next)
- strcat (buf, ",");
- }
+
+ for (nl = rs->nlist; nl; nl = nl->next)
+ {
+ strncat (buf, nl->netid, netidmax);
+ if (strlen (nl->netid) < netidmax)
+ netidmax -= strlen(nl->netid);
+ else
+ break;
+
+ if (nl->next && netidmax > 1)
+ {
+ strncat (buf, ",", netidmax);
+ netidmax --;
+ }
+ }
+
printf ("%-32s", buf);
rpc = getrpcbynumber (rs->prog);
if (rpc)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/rpcbind-1.2.5/src/security.c new/rpcbind-1.2.6/src/security.c
--- old/rpcbind-1.2.5/src/security.c 2018-08-15 16:51:19.000000000 +0200
+++ new/rpcbind-1.2.6/src/security.c 2021-05-10 19:10:19.000000000 +0200
@@ -22,29 +22,20 @@
/*
* XXX for special case checks in check_callit.
*/
-#ifdef HAVE_RPCSVC_MOUNT_H
-#include <rpcsvc/mount.h>
-#include <rpcsvc/rquota.h>
-#include <rpcsvc/nfs_prot.h>
-#include <rpcsvc/yp.h>
-#include <rpcsvc/ypclnt.h>
-#include <rpcsvc/yppasswd.h>
-#else
-# define MOUNTPROC_MNT 1
-# define MOUNTPROC_UMNT 3
-# define NFS_PROGRAM 100003
-# define YPPROG 100004
-# define MOUNTPROG 100005
-# define YPBINDPROG 100007
-# define YPPASSWDPROG 100009
-# define RQUOTAPROG 100011
-
-# define YPBINDPROC_SETDOM 2
-# define YPPROC_MATCH 3
-# define YPPROC_FIRST 4
-# define YPPROC_NEXT 5
-# define YPPROC_ALL 8
-#endif
+#define MOUNTPROC_MNT 1
+#define MOUNTPROC_UMNT 3
+#define NFS_PROGRAM 100003
+#define YPPROG 100004
+#define MOUNTPROG 100005
+#define YPBINDPROG 100007
+#define YPPASSWDPROG 100009
+#define RQUOTAPROG 100011
+
+#define YPBINDPROC_SETDOM 2
+#define YPPROC_MATCH 3
+#define YPPROC_FIRST 4
+#define YPPROC_NEXT 5
+#define YPPROC_ALL 8
#include "rpcbind.h"
@@ -154,7 +145,7 @@
#ifdef RPCBIND_DEBUG
if (debugging)
xlog(LOG_DEBUG,
- "Checking caller's adress (port = %d)\n",
+ "Checking caller's address (port = %d)\n",
ntohs(sin->sin_port));
#endif
return (sin->sin_addr.s_addr == htonl(INADDR_LOOPBACK));
@@ -166,7 +157,7 @@
#ifdef RPCBIND_DEBUG
if (debugging)
xlog(LOG_DEBUG,
- "Checking caller's adress (port = %d)\n",
+ "Checking caller's address (port = %d)\n",
ntohs(sin6->sin6_port));
#endif
return (IN6_IS_ADDR_LOOPBACK(&sin6->sin6_addr) ||
@@ -355,7 +346,7 @@
logit(deny_severity, sa, args->rmt_proc, args->rmt_prog,
": indirect call not allowed");
#else
- logit(0, sa, args->rmt_proc, args->rmt_prog,
+ logit(LOG_AUTH|LOG_WARNING, sa, args->rmt_proc, args->rmt_prog,
": indirect call not allowed");
#endif
return 0;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/rpcbind-1.2.5/src/util.c new/rpcbind-1.2.6/src/util.c
--- old/rpcbind-1.2.5/src/util.c 2018-08-15 16:51:19.000000000 +0200
+++ new/rpcbind-1.2.6/src/util.c 2021-05-10 19:10:19.000000000 +0200
@@ -45,7 +45,7 @@
#include <net/if.h>
#include <netinet/in.h>
#include <ifaddrs.h>
-#include <sys/poll.h>
+#include <poll.h>
#include <rpc/rpc.h>
#include <errno.h>
#include <stdlib.h>
@@ -103,7 +103,7 @@
addrmerge(struct netbuf *caller, char *serv_uaddr, char *clnt_uaddr,
char *netid)
{
- struct ifaddrs *ifap, *ifp = NULL, *bestif;
+ struct ifaddrs *ifap, *ifp = NULL, *bestif, *exactif;
struct netbuf *serv_nbp = NULL, *hint_nbp = NULL, tbuf;
struct sockaddr *caller_sa, *hint_sa, *ifsa, *ifmasksa, *serv_sa;
struct sockaddr_storage ss;
@@ -157,7 +157,10 @@
* network portion of its address is equal to that of the client.
* If so, we have found the interface that we want to use.
*/
- bestif = NULL;
+ bestif = NULL; /* first interface UP with same network & family */
+ exactif = NULL; /* the interface requested by the client */
+ u_int8_t maskAllAddrBits[16] = {0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+ 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff}; /* 16 bytes for IPv6 */
for (ifap = ifp; ifap != NULL; ifap = ifap->ifa_next) {
ifsa = ifap->ifa_addr;
ifmasksa = ifap->ifa_netmask;
@@ -175,8 +178,16 @@
if (!bitmaskcmp(&SA2SINADDR(ifsa),
&SA2SINADDR(hint_sa), &SA2SINADDR(ifmasksa),
sizeof(struct in_addr))) {
- bestif = ifap;
- goto found;
+ if(!bestif) /* for compatibility with previous code */
+ bestif = ifap;
+ /* Is this an exact match? */
+ if (!bitmaskcmp(&SA2SINADDR(ifsa),
+ &SA2SINADDR(hint_sa), maskAllAddrBits,
+ sizeof(struct in_addr))) {
+ exactif = ifap;
+ goto found;
+ }
+ /* else go-on looking for an exact match */
}
break;
#ifdef INET6
@@ -197,8 +208,16 @@
} else if (!bitmaskcmp(&SA2SIN6ADDR(ifsa),
&SA2SIN6ADDR(hint_sa), &SA2SIN6ADDR(ifmasksa),
sizeof(struct in6_addr))) {
- bestif = ifap;
- goto found;
+ if(!bestif) /* for compatibility with previous code */
+ bestif = ifap;
+ /* Is this an exact match? */
+ if (!bitmaskcmp(&SA2SIN6ADDR(ifsa),
+ &SA2SIN6ADDR(hint_sa), maskAllAddrBits,
+ sizeof(struct in6_addr))) {
+ exactif = ifap;
+ goto found;
+ }
+ /* else go-on looking for an exact match */
}
break;
#endif
@@ -215,10 +234,13 @@
(bestif->ifa_flags & (IFF_LOOPBACK | IFF_POINTOPOINT))))
bestif = ifap;
}
+
if (bestif == NULL)
goto freeit;
found:
+ if(exactif)
+ bestif = exactif;
/*
* Construct the new address using the the address from
* `bestif', and the port number from `serv_uaddr'.
@@ -287,7 +309,7 @@
int s;
#endif
int ecode;
- struct addrinfo hints, *res;
+ struct addrinfo hints, *res = NULL;
memset(&hints, 0, sizeof hints);
hints.ai_family = AF_INET;
@@ -322,13 +344,20 @@
/*
* Now join the RPC ipv6 multicast group on all interfaces.
*/
- if (getifaddrs(&ifp) < 0)
+ if (getifaddrs(&ifp) < 0) {
+ freeaddrinfo (res);
return;
-
+ }
mreq6.ipv6mr_interface = 0;
inet_pton(AF_INET6, RPCB_MULTICAST_ADDR, &mreq6.ipv6mr_multiaddr);
s = socket(AF_INET6, SOCK_DGRAM, IPPROTO_UDP);
+ if (s < 0) {
+ if (debugging)
+ fprintf(stderr, "socket(AF_INET6) failed: %s\n", strerror(errno));
+ freeaddrinfo (res);
+ return;
+ }
/*
* Loop through all interfaces. For each IPv6 multicast-capable
@@ -351,9 +380,9 @@
if (debugging)
perror("setsockopt v6 multicast");
}
+ close(s);
#endif
-
- /* close(s); */
+ freeaddrinfo (res);
}
struct sockaddr *
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/rpcbind-1.2.5/src/warmstart.c new/rpcbind-1.2.6/src/warmstart.c
--- old/rpcbind-1.2.5/src/warmstart.c 2018-08-15 16:51:19.000000000 +0200
+++ new/rpcbind-1.2.6/src/warmstart.c 2021-05-10 19:10:19.000000000 +0200
@@ -35,6 +35,7 @@
#include <sys/types.h>
#include <sys/stat.h>
#include <stdio.h>
+#include <string.h>
#include <rpc/rpc.h>
#include <rpc/rpcb_prot.h>
#include <rpc/xdr.h>
1
0
Script 'mail_helper' called by obssrc
Hello community,
here is the log from the commit of package logrotate for openSUSE:Factory checked in at 2021-06-01 10:33:35
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/logrotate (Old)
and /work/SRC/openSUSE:Factory/.logrotate.new.1898 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "logrotate"
Tue Jun 1 10:33:35 2021 rev:68 rq:895944 version:3.18.1
Changes:
--------
--- /work/SRC/openSUSE:Factory/logrotate/logrotate.changes 2021-02-11 12:48:16.865566948 +0100
+++ /work/SRC/openSUSE:Factory/.logrotate.new.1898/logrotate.changes 2021-06-01 10:33:48.140439232 +0200
@@ -1,0 +2,9 @@
+Thu May 27 16:31:55 UTC 2021 - Dirk M��ller <dmueller(a)suse.com>
+
+- update to 3.18.1:
+ * fix memory leaks on error-handling paths
+ * make `renamecopy` and `copytruncate` override each other
+ * improve error handling in the parser of configuration files
+ * improve user experience for non-privileged users of logrotate
+
+-------------------------------------------------------------------
Old:
----
logrotate-3.18.0.tar.xz
logrotate-3.18.0.tar.xz.asc
New:
----
logrotate-3.18.1.tar.xz
logrotate-3.18.1.tar.xz.asc
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ logrotate.spec ++++++
--- /var/tmp/diff_new_pack.wRZETJ/_old 2021-06-01 10:33:48.560439947 +0200
+++ /var/tmp/diff_new_pack.wRZETJ/_new 2021-06-01 10:33:48.560439947 +0200
@@ -17,17 +17,17 @@
Name: logrotate
-Version: 3.18.0
+Version: 3.18.1
Release: 0
Summary: Cron service for rotating, compressing, mailing and removing system log files
License: GPL-2.0-or-later
Group: System/Base
URL: https://github.com/logrotate/logrotate
Source0: https://github.com/%{name}/%{name}/releases/download/%{version}/%{name}-%{v…
-Source10: https://github.com/%{name}/%{name}/releases/download/%{version}/%{name}-%{v…
# SUSE specific logrotate configurations
Source1: logrotate.wtmp
Source2: logrotate.default
+Source10: https://github.com/%{name}/%{name}/releases/download/%{version}/%{name}-%{v…
Source100: %{name}-rpmlintrc
Patch0: logrotate-3.13.0-systemd_add_home_env.patch
BuildRequires: acl
@@ -36,7 +36,7 @@
BuildRequires: pkgconfig(libselinux)
BuildRequires: pkgconfig(popt)
BuildRequires: pkgconfig(systemd) >= 197
-Requires: /usr/bin/xz
+Requires: %{_bindir}/xz
%{?systemd_ordering}
%description
@@ -56,10 +56,10 @@
--disable-silent-rules \
--with-state-file-path=%{_localstatedir}/lib/misc/logrotate.status \
--disable-werror
-make %{?_smp_mflags}
+%make_build
%check
-make %{?_smp_mflags} check
+%make_build check
%install
%make_install
@@ -94,8 +94,8 @@
%doc ChangeLog.md README.md
%{_sbindir}/logrotate
%{_sbindir}/rc%{name}
-%{_mandir}/man8/logrotate.8*
-%{_mandir}/man5/logrotate.conf.5*
+%{_mandir}/man8/logrotate.8%{?ext_man}
+%{_mandir}/man5/logrotate.conf.5%{?ext_man}
%config %{_sysconfdir}/logrotate.conf
%config(noreplace) %{_sysconfdir}/logrotate.d/wtmp
%{_unitdir}/%{name}.service
++++++ logrotate-3.18.0.tar.xz -> logrotate-3.18.1.tar.xz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/logrotate-3.18.0/.tarball-version new/logrotate-3.18.1/.tarball-version
--- old/logrotate-3.18.0/.tarball-version 2021-01-08 08:34:25.000000000 +0100
+++ new/logrotate-3.18.1/.tarball-version 2021-05-21 15:39:05.000000000 +0200
@@ -1 +1 @@
-3.18.0
+3.18.1
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/logrotate-3.18.0/.version new/logrotate-3.18.1/.version
--- old/logrotate-3.18.0/.version 2021-01-08 08:34:25.000000000 +0100
+++ new/logrotate-3.18.1/.version 2021-05-21 15:39:05.000000000 +0200
@@ -1 +1 @@
-3.18.0
+3.18.1
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/logrotate-3.18.0/ChangeLog.md new/logrotate-3.18.1/ChangeLog.md
--- old/logrotate-3.18.0/ChangeLog.md 2021-01-08 08:19:35.000000000 +0100
+++ new/logrotate-3.18.1/ChangeLog.md 2021-05-21 12:39:41.000000000 +0200
@@ -4,7 +4,15 @@
## [UNRELEASED]
-[UNRELEASED]: https://github.com/logrotate/logrotate/compare/3.18.0...master
+[UNRELEASED]: https://github.com/logrotate/logrotate/compare/3.18.1...master
+
+## [3.18.1] - 2021-05-21
+ - fix memory leaks on error-handling paths (#383, #387)
+ - make `renamecopy` and `copytruncate` override each other (#386)
+ - improve error handling in the parser of configuration files (#383)
+ - improve user experience for non-privileged users of logrotate (#372)
+
+[3.18.1]: https://github.com/logrotate/logrotate/compare/3.18.0...3.18.1
## [3.18.0] - 2021-01-08
- allow UIDs and GIDs to be specified numerically (#217)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/logrotate-3.18.0/README.md new/logrotate-3.18.1/README.md
--- old/logrotate-3.18.0/README.md 2021-01-08 08:14:37.000000000 +0100
+++ new/logrotate-3.18.1/README.md 2021-05-21 12:29:35.000000000 +0200
@@ -6,10 +6,11 @@
The latest release is:
-* [logrotate-3.18.0](https://github.com/logrotate/logrotate/releases/download/… ([sig](https://github.com/logrotate/logrotate/releases/download/3.18.0/logrot…) ([Changelog](https://github.com/logrotate/logrotate/releases/tag/3.18.0))
+* [logrotate-3.18.1](https://github.com/logrotate/logrotate/releases/download/… ([sig](https://github.com/logrotate/logrotate/releases/download/3.18.1/logrot…) ([Changelog](https://github.com/logrotate/logrotate/releases/tag/3.18.1))
Previous releases:
+* [logrotate-3.18.0](https://github.com/logrotate/logrotate/releases/download/… ([sig](https://github.com/logrotate/logrotate/releases/download/3.18.0/logrot…) ([Changelog](https://github.com/logrotate/logrotate/releases/tag/3.18.0))
* [logrotate-3.17.0](https://github.com/logrotate/logrotate/releases/download/… ([sig](https://github.com/logrotate/logrotate/releases/download/3.17.0/logrot…) ([Changelog](https://github.com/logrotate/logrotate/releases/tag/3.17.0))
* [logrotate-3.16.0](https://github.com/logrotate/logrotate/releases/download/… ([sig](https://github.com/logrotate/logrotate/releases/download/3.16.0/logrot…) ([Changelog](https://github.com/logrotate/logrotate/releases/tag/3.16.0))
* [logrotate-3.15.1](https://github.com/logrotate/logrotate/releases/download/… ([sig](https://github.com/logrotate/logrotate/releases/download/3.15.1/logrot…) ([Changelog](https://github.com/logrotate/logrotate/releases/tag/3.15.1))
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/logrotate-3.18.0/config.c new/logrotate-3.18.1/config.c
--- old/logrotate-3.18.0/config.c 2021-01-05 14:01:16.000000000 +0100
+++ new/logrotate-3.18.1/config.c 2021-05-21 12:28:13.000000000 +0200
@@ -12,7 +12,6 @@
#include <stdlib.h>
#include <string.h>
#include <sys/stat.h>
-#include <time.h>
#include <unistd.h>
#include <assert.h>
#include <wchar.h>
@@ -61,24 +60,20 @@
va_start(arg, format);
size = vsnprintf(NULL, 0, format, arg);
- size++;
va_end(arg);
- va_start(arg, format);
- str = malloc(size);
+ if (size < 0) {
+ return -1;
+ }
+ str = malloc((size_t)size + 1);
if (str == NULL) {
- va_end(arg);
- /*
- * Strictly speaking, GNU asprintf doesn't do this,
- * but the caller isn't checking the return value.
- */
- message_OOM();
- exit(1);
+ return -1;
}
- rv = vsnprintf(str, size, format, arg);
+ va_start(arg, format);
+ rv = vsnprintf(str, (size_t)size + 1, format, arg);
va_end(arg);
*string_ptr = str;
- return (rv);
+ return rv;
}
#endif
@@ -315,7 +310,7 @@
return -1;
}
-static int readModeUidGid(const char *configFile, int lineNum, char *key,
+static int readModeUidGid(const char *configFile, int lineNum, const char *key,
const char *directive, mode_t *mode, uid_t *pUid,
gid_t *pGid)
{
@@ -815,21 +810,19 @@
for (i = 0; i < defTabooCount; i++) {
- int bytes;
char *pattern = NULL;
/* generate a pattern by concatenating star (wildcard) to the
* suffix literal
*/
- bytes = asprintf(&pattern, "*%s", defTabooExts[i]);
- if (bytes != -1) {
- tabooPatterns[i] = pattern;
- tabooCount++;
- } else {
+ if (asprintf(&pattern, "*%s", defTabooExts[i]) < 0) {
free_2d_array(tabooPatterns, tabooCount);
message_OOM();
return 1;
}
+
+ tabooPatterns[i] = pattern;
+ tabooCount++;
}
for (file = paths; *file; file++) {
@@ -943,12 +936,14 @@
newlog->what = NULL; \
} while (0)
#define RAISE_ERROR() \
- if (newlog != defConfig) { \
- state = STATE_ERROR; \
- goto next_state; \
- } else { \
- goto error; \
- }
+ do { \
+ if (newlog != defConfig) { \
+ state = STATE_ERROR; \
+ goto next_state; \
+ } else { \
+ goto error; \
+ } \
+ } while(0)
#define MAX_NESTING 16U
static int readConfigFile(const char *configFile, struct logInfo *defConfig)
@@ -969,6 +964,9 @@
static unsigned recursion_depth = 0U;
char *globerr_msg = NULL;
int in_config = 0;
+#ifdef HAVE_MADVISE
+ int r;
+#endif
struct flock fd_lock = {
.l_start = 0,
.l_len = 0,
@@ -1011,7 +1009,7 @@
if (getuid() == ROOT_UID) {
if ((sb.st_mode & 07533) != 0400) {
- message(MESS_DEBUG,
+ message(MESS_NORMAL,
"Potentially dangerous mode on %s: 0%o\n",
configFile, (unsigned) (sb.st_mode & 07777));
}
@@ -1068,12 +1066,14 @@
#ifdef HAVE_MADVISE
#ifdef MADV_DONTFORK
- madvise(buf, length + 2,
- MADV_SEQUENTIAL | MADV_WILLNEED | MADV_DONTFORK);
+ r = madvise(buf, length, MADV_SEQUENTIAL | MADV_WILLNEED | MADV_DONTFORK);
#else /* MADV_DONTFORK */
- madvise(buf, length + 2,
- MADV_SEQUENTIAL | MADV_WILLNEED);
+ r = madvise(buf, length, MADV_SEQUENTIAL | MADV_WILLNEED);
#endif /* MADV_DONTFORK */
+ if (r < 0) {
+ message(MESS_DEBUG, "Failed to advise use of memory: %s\n",
+ strerror(errno));
+ }
#endif /* HAVE_MADVISE */
message(MESS_DEBUG, "reading config file %s\n", configFile);
@@ -1092,8 +1092,16 @@
if (isalpha((unsigned char)*start)) {
free(key);
key = isolateWord(&start, &buf, length);
- if (key == NULL)
+ if (key == NULL) {
+ message(MESS_ERROR, "%s:%d failed to parse keyword\n",
+ configFile, lineNum);
continue;
+ }
+ if (!isspace((unsigned char)*start)) {
+ message(MESS_NORMAL, "%s:%d keyword '%s' not properly"
+ " separated, found %#x\n",
+ configFile, lineNum, key, *start);
+ }
if (!strcmp(key, "compress")) {
newlog->flags |= LOG_FLAG_COMPRESS;
} else if (!strcmp(key, "nocompress")) {
@@ -1112,10 +1120,12 @@
newlog->flags &= ~LOG_FLAG_SHAREDSCRIPTS;
} else if (!strcmp(key, "copytruncate")) {
newlog->flags |= LOG_FLAG_COPYTRUNCATE;
+ newlog->flags &= ~LOG_FLAG_TMPFILENAME;
} else if (!strcmp(key, "nocopytruncate")) {
newlog->flags &= ~LOG_FLAG_COPYTRUNCATE;
} else if (!strcmp(key, "renamecopy")) {
newlog->flags |= LOG_FLAG_TMPFILENAME;
+ newlog->flags &= ~LOG_FLAG_COPYTRUNCATE;
} else if (!strcmp(key, "norenamecopy")) {
newlog->flags &= ~LOG_FLAG_TMPFILENAME;
} else if (!strcmp(key, "copy")) {
@@ -1136,11 +1146,11 @@
newlog->flags |= LOG_FLAG_DATEHOURAGO;
} else if (!strcmp(key, "dateformat")) {
freeLogItem(dateformat);
- newlog->dateformat = isolateLine(&start, &buf, length);
- if (newlog->dateformat == NULL)
- continue;
+ newlog->dateformat = isolateValue(configFile, lineNum,
+ key, &start, &buf,
+ length);
} else if (!strcmp(key, "noolddir")) {
- newlog->oldDir = NULL;
+ freeLogItem(oldDir);
} else if (!strcmp(key, "mailfirst")) {
newlog->flags |= LOG_FLAG_MAILFIRST;
} else if (!strcmp(key, "maillast")) {
@@ -1150,8 +1160,11 @@
mode_t tmp_mode = NO_MODE;
free(key);
key = isolateLine(&start, &buf, length);
- if (key == NULL)
- continue;
+ if (key == NULL) {
+ message(MESS_ERROR, "%s:%d failed to parse su option value\n",
+ configFile, lineNum);
+ RAISE_ERROR();
+ }
rv = readModeUidGid(configFile, lineNum, key, "su",
&tmp_mode, &newlog->suUid,
@@ -1264,13 +1277,14 @@
free(key);
key = isolateValue(configFile, lineNum, "shred cycles",
&start, &buf, length);
- if (key == NULL)
- continue;
+ if (key == NULL) {
+ RAISE_ERROR();
+ }
newlog->shred_cycles = (int)strtoul(key, &chptr, 0);
if (*chptr || newlog->shred_cycles < 0) {
message(MESS_ERROR, "%s:%d bad shred cycles '%s'\n",
configFile, lineNum, key);
- goto error;
+ RAISE_ERROR();
}
} else if (!strcmp(key, "hourly")) {
set_criterium(&newlog->criterium, ROT_HOURLY, &criterium_set);
@@ -1305,8 +1319,9 @@
free(key);
key = isolateValue(configFile, lineNum, "rotate count", &start,
&buf, length);
- if (key == NULL)
- continue;
+ if (key == NULL) {
+ RAISE_ERROR();
+ }
newlog->rotateCount = (int)strtol(key, &chptr, 0);
if (*chptr || newlog->rotateCount < -1) {
message(MESS_ERROR,
@@ -1318,8 +1333,9 @@
free(key);
key = isolateValue(configFile, lineNum, "start count", &start,
&buf, length);
- if (key == NULL)
- continue;
+ if (key == NULL) {
+ RAISE_ERROR();
+ }
newlog->logStart = (int)strtoul(key, &chptr, 0);
if (*chptr || newlog->logStart < 0) {
message(MESS_ERROR, "%s:%d bad start count '%s'\n",
@@ -1330,8 +1346,9 @@
free(key);
key = isolateValue(configFile, lineNum, "minage count", &start,
&buf, length);
- if (key == NULL)
- continue;
+ if (key == NULL) {
+ RAISE_ERROR();
+ }
newlog->rotateMinAge = (int)strtoul(key, &chptr, 0);
if (*chptr || newlog->rotateMinAge < 0) {
message(MESS_ERROR, "%s:%d bad minimum age '%s'\n",
@@ -1342,8 +1359,9 @@
free(key);
key = isolateValue(configFile, lineNum, "maxage count", &start,
&buf, length);
- if (key == NULL)
- continue;
+ if (key == NULL) {
+ RAISE_ERROR();
+ }
newlog->rotateAge = (int)strtoul(key, &chptr, 0);
if (*chptr || newlog->rotateAge < 0) {
message(MESS_ERROR, "%s:%d bad maximum age '%s'\n",
@@ -1351,7 +1369,7 @@
RAISE_ERROR();
}
} else if (!strcmp(key, "errors")) {
- message(MESS_DEBUG,
+ message(MESS_NORMAL,
"%s: %d: the errors directive is deprecated and no longer used.\n",
configFile, lineNum);
} else if (!strcmp(key, "mail")) {
@@ -1360,7 +1378,6 @@
"mail", &start, &buf, length))) {
RAISE_ERROR();
}
- else continue;
} else if (!strcmp(key, "nomail")) {
freeLogItem(logAddress);
} else if (!strcmp(key, "missingok")) {
@@ -1421,7 +1438,6 @@
}
while (*endtag) {
- int bytes;
char *pattern = NULL;
chptr = endtag;
@@ -1437,10 +1453,11 @@
RAISE_ERROR();
}
tabooPatterns = tmp;
- bytes = asprintf(&pattern, "*%.*s", (int)(chptr - endtag), endtag);
+ if (asprintf(&pattern, "*%.*s", (int)(chptr - endtag), endtag) < 0) {
+ message_OOM();
+ RAISE_ERROR();
+ }
- /* should test for malloc() failure */
- assert(bytes != -1);
tabooPatterns[tabooCount] = pattern;
tabooCount++;
}
@@ -1481,7 +1498,6 @@
}
while (*endtag) {
- int bytes;
char *pattern = NULL;
char **tmp;
@@ -1496,10 +1512,11 @@
RAISE_ERROR();
}
tabooPatterns = tmp;
- bytes = asprintf(&pattern, "%.*s", (int)(chptr - endtag), endtag);
+ if (asprintf(&pattern, "%.*s", (int)(chptr - endtag), endtag) < 0) {
+ message_OOM();
+ RAISE_ERROR();
+ }
- /* should test for malloc() failure */
- assert(bytes != -1);
tabooPatterns[tabooCount] = pattern;
tabooCount++;
@@ -1515,8 +1532,9 @@
free(key);
key = isolateValue(configFile, lineNum, "include", &start,
&buf, length);
- if (key == NULL)
- continue;
+ if (key == NULL) {
+ RAISE_ERROR();
+ }
if (key[0] == '~' && key[1] == '/') {
/* replace '~' with content of $HOME cause low-level functions
@@ -1540,7 +1558,7 @@
env_home = pwd->pw_dir;
}
- if (asprintf(&new_key, "%s/%s", env_home, key + 2) == -1) {
+ if (asprintf(&new_key, "%s/%s", env_home, key + 2) < 0) {
message_OOM();
RAISE_ERROR();
}
@@ -1578,8 +1596,9 @@
free(key);
key = isolateValue(configFile, lineNum, "extension name", &start,
&buf, length);
- if (key == NULL)
- continue;
+ if (key == NULL) {
+ RAISE_ERROR();
+ }
freeLogItem (extension);
newlog->extension = key;
key = NULL;
@@ -1589,8 +1608,9 @@
free(key);
key = isolateValue(configFile, lineNum, "addextension name", &start,
&buf, length);
- if (key == NULL)
- continue;
+ if (key == NULL) {
+ RAISE_ERROR();
+ }
freeLogItem (addextension);
newlog->addextension = key;
key = NULL;
@@ -1892,13 +1912,12 @@
continue;
}
}
- ld = malloc(strlen(dirName) + strlen(newlog->oldDir) + 2);
- if (ld == NULL) {
+ if (asprintf(&ld, "%s/%s", dirName, newlog->oldDir) < 0) {
message_OOM();
free(dirpath);
goto error;
}
- sprintf(ld, "%s/%s", dirName, newlog->oldDir);
+
free(dirpath);
if (newlog->oldDir[0] != '/') {
@@ -2072,8 +2091,8 @@
break;
default:
message(MESS_FATAL,
- "%s: %d: readConfigFile() unknown state\n",
- configFile, lineNum);
+ "%s: %d: readConfigFile() unknown state: %#x\n",
+ configFile, lineNum, state);
}
if (*start == '\n') {
lineNum++;
@@ -2093,12 +2112,14 @@
munmap(buf, length);
close(fd);
+ free(globerr_msg);
return logerror;
error:
/* free is a NULL-safe operation */
free(key);
munmap(buf, length);
close(fd);
+ free(globerr_msg);
return 1;
}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/logrotate-3.18.0/configure new/logrotate-3.18.1/configure
--- old/logrotate-3.18.0/configure 2021-01-08 08:34:18.000000000 +0100
+++ new/logrotate-3.18.1/configure 2021-05-21 15:39:03.000000000 +0200
@@ -1,6 +1,6 @@
#! /bin/sh
# Guess values for system-dependent variables and create Makefiles.
-# Generated by GNU Autoconf 2.69 for logrotate 3.18.0.
+# Generated by GNU Autoconf 2.69 for logrotate 3.18.1.
#
#
# Copyright (C) 1992-1996, 1998-2012 Free Software Foundation, Inc.
@@ -577,8 +577,8 @@
# Identity of this package.
PACKAGE_NAME='logrotate'
PACKAGE_TARNAME='logrotate'
-PACKAGE_VERSION='3.18.0'
-PACKAGE_STRING='logrotate 3.18.0'
+PACKAGE_VERSION='3.18.1'
+PACKAGE_STRING='logrotate 3.18.1'
PACKAGE_BUGREPORT=''
PACKAGE_URL='https://github.com/logrotate/logrotate'
@@ -1297,7 +1297,7 @@
# Omit some internal or obsolete options to make the list less imposing.
# This message is too long to be a string in the A/UX 3.1 sh.
cat <<_ACEOF
-\`configure' configures logrotate 3.18.0 to adapt to many kinds of systems.
+\`configure' configures logrotate 3.18.1 to adapt to many kinds of systems.
Usage: $0 [OPTION]... [VAR=VALUE]...
@@ -1368,7 +1368,7 @@
if test -n "$ac_init_help"; then
case $ac_init_help in
- short | recursive ) echo "Configuration of logrotate 3.18.0:";;
+ short | recursive ) echo "Configuration of logrotate 3.18.1:";;
esac
cat <<\_ACEOF
@@ -1481,7 +1481,7 @@
test -n "$ac_init_help" && exit $ac_status
if $ac_init_version; then
cat <<\_ACEOF
-logrotate configure 3.18.0
+logrotate configure 3.18.1
generated by GNU Autoconf 2.69
Copyright (C) 2012 Free Software Foundation, Inc.
@@ -1903,7 +1903,7 @@
This file contains any messages produced by compilers while
running configure, to aid debugging if configure makes a mistake.
-It was created by logrotate $as_me 3.18.0, which was
+It was created by logrotate $as_me 3.18.1, which was
generated by GNU Autoconf 2.69. Invocation command line was
$ $0 $@
@@ -2767,7 +2767,7 @@
# Define the identity of the package.
PACKAGE='logrotate'
- VERSION='3.18.0'
+ VERSION='3.18.1'
cat >>confdefs.h <<_ACEOF
@@ -6437,7 +6437,7 @@
# report actual input values of CONFIG_FILES etc. instead of their
# values after options handling.
ac_log="
-This file was extended by logrotate $as_me 3.18.0, which was
+This file was extended by logrotate $as_me 3.18.1, which was
generated by GNU Autoconf 2.69. Invocation command line was
CONFIG_FILES = $CONFIG_FILES
@@ -6504,7 +6504,7 @@
cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`"
ac_cs_version="\\
-logrotate config.status 3.18.0
+logrotate config.status 3.18.1
configured by $0, generated by GNU Autoconf 2.69,
with options \\"\$ac_cs_config\\"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/logrotate-3.18.0/examples/logrotate.conf new/logrotate-3.18.1/examples/logrotate.conf
--- old/logrotate-3.18.0/examples/logrotate.conf 2020-06-07 16:39:56.000000000 +0200
+++ new/logrotate-3.18.1/examples/logrotate.conf 2021-04-16 18:32:39.000000000 +0200
@@ -20,4 +20,4 @@
# packages drop log rotation information into this directory
include /etc/logrotate.d
-# system-specific logs may be also be configured here.
+# system-specific logs may also be configured here.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/logrotate-3.18.0/log.c new/logrotate-3.18.1/log.c
--- old/logrotate-3.18.0/log.c 2019-12-04 10:17:23.000000000 +0100
+++ new/logrotate-3.18.1/log.c 2021-05-21 12:28:13.000000000 +0200
@@ -1,8 +1,6 @@
#include <stdarg.h>
#include <stdio.h>
#include <stdlib.h>
-#include <time.h>
-#include <sys/time.h>
#include <unistd.h>
#ifdef HAVE_VSYSLOG
#include <syslog.h>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/logrotate-3.18.0/log.h new/logrotate-3.18.1/log.h
--- old/logrotate-3.18.0/log.h 2020-04-08 18:55:16.000000000 +0200
+++ new/logrotate-3.18.1/log.h 2021-05-21 12:28:13.000000000 +0200
@@ -10,8 +10,6 @@
#define MESS_ERROR 5
#define MESS_FATAL 6
-#define LOG_TIMES (1 << 0)
-
void message(int level, const char *format, ...)
#ifdef __GNUC__
__attribute__ ((format(printf, 2, 3)));
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/logrotate-3.18.0/logrotate.8 new/logrotate-3.18.1/logrotate.8
--- old/logrotate-3.18.0/logrotate.8 2021-01-08 08:34:23.000000000 +0100
+++ new/logrotate-3.18.1/logrotate.8 2021-05-21 15:39:05.000000000 +0200
@@ -1,4 +1,4 @@
-.TH LOGROTATE 8 "3.18.0" "Linux" "System Administrator's Manual"
+.TH LOGROTATE 8 "3.18.1" "Linux" "System Administrator's Manual"
.\" Per groff_man(7), the TQ macro should be copied from an-ext.tmac when
.\" not running under groff. That's not quite right; not all groff
.\" installations include this macro. So bring it in with another name
@@ -154,6 +154,7 @@
rotate 2
olddir /var/log/news/old
missingok
+ sharedscripts
postrotate
kill \-HUP $(cat /var/run/inn.pid)
endscript
@@ -192,9 +193,7 @@
characters supported.
The next section defines the parameters for all of the files in
-\fI/var/log/news\fR. Each file is rotated on a monthly basis. This is
-considered a single rotation directive and if errors occur for more than
-one file, the log files are not compressed.
+\fI/var/log/news\fR. Each file is rotated on a monthly basis.
The last section uses tilde expansion to rotate log files in the home
directory of the current user. This is only available, if your glob
@@ -411,7 +410,8 @@
This option can be used, for instance, to make a snapshot of the current
log file, or when some other utility needs to truncate or parse the file.
When this option is used, the \fBcreate\fR option will have no effect,
-as the old log file stays in place.
+as the old log file stays in place. The \fBcopy\fR option allows storing
+rotated log files on the different devices using \fBolddir\fR directive.
.TP
\fBnocopy\fR
@@ -427,7 +427,9 @@
Note that there is a very small time slice between copying the file and
truncating it, so some logging data might be lost.
When this option is used, the \fBcreate\fR option will have no effect,
-as the old log file stays in place.
+as the old log file stays in place. The \fBcopytruncate\fR option allows
+storing rotated log files on the different devices using \fBolddir\fR
+directive. The \fBcopytruncate\fR option implies \fBnorenamecopy\fR.
.TP
\fBnocopytruncate\fR
@@ -438,9 +440,15 @@
\fBrenamecopy\fR
Log file is renamed to temporary filename in the same directory by adding
".tmp" extension to it. After that, \fBpostrotate\fR script is run
-and log file is copied from temporary filename to final filename. This allows
-storing rotated log files on the different devices using \fBolddir\fR
-directive. In the end, temporary filename is removed.
+and log file is copied from temporary filename to final filename. In the end,
+temporary filename is removed. The \fBrenamecopy\fR option allows storing
+rotated log files on the different devices using \fBolddir\fR directive.
+The \fBrenamecopy\fR option implies \fBnocopytruncate\fR.
+
+.TP
+\fBnorenamecopy\fR
+Do not rename and copy the original log file
+(this overrides the \fBrenamecopy\fR option).
.TP
\fBshred\fR
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/logrotate-3.18.0/logrotate.8.in new/logrotate-3.18.1/logrotate.8.in
--- old/logrotate-3.18.0/logrotate.8.in 2021-01-05 14:01:16.000000000 +0100
+++ new/logrotate-3.18.1/logrotate.8.in 2021-05-03 14:43:18.000000000 +0200
@@ -154,6 +154,7 @@
rotate 2
olddir /var/log/news/old
missingok
+ sharedscripts
postrotate
kill \-HUP $(cat /var/run/inn.pid)
endscript
@@ -192,9 +193,7 @@
characters supported.
The next section defines the parameters for all of the files in
-\fI/var/log/news\fR. Each file is rotated on a monthly basis. This is
-considered a single rotation directive and if errors occur for more than
-one file, the log files are not compressed.
+\fI/var/log/news\fR. Each file is rotated on a monthly basis.
The last section uses tilde expansion to rotate log files in the home
directory of the current user. This is only available, if your glob
@@ -411,7 +410,8 @@
This option can be used, for instance, to make a snapshot of the current
log file, or when some other utility needs to truncate or parse the file.
When this option is used, the \fBcreate\fR option will have no effect,
-as the old log file stays in place.
+as the old log file stays in place. The \fBcopy\fR option allows storing
+rotated log files on the different devices using \fBolddir\fR directive.
.TP
\fBnocopy\fR
@@ -427,7 +427,9 @@
Note that there is a very small time slice between copying the file and
truncating it, so some logging data might be lost.
When this option is used, the \fBcreate\fR option will have no effect,
-as the old log file stays in place.
+as the old log file stays in place. The \fBcopytruncate\fR option allows
+storing rotated log files on the different devices using \fBolddir\fR
+directive. The \fBcopytruncate\fR option implies \fBnorenamecopy\fR.
.TP
\fBnocopytruncate\fR
@@ -438,9 +440,15 @@
\fBrenamecopy\fR
Log file is renamed to temporary filename in the same directory by adding
".tmp" extension to it. After that, \fBpostrotate\fR script is run
-and log file is copied from temporary filename to final filename. This allows
-storing rotated log files on the different devices using \fBolddir\fR
-directive. In the end, temporary filename is removed.
+and log file is copied from temporary filename to final filename. In the end,
+temporary filename is removed. The \fBrenamecopy\fR option allows storing
+rotated log files on the different devices using \fBolddir\fR directive.
+The \fBrenamecopy\fR option implies \fBnocopytruncate\fR.
+
+.TP
+\fBnorenamecopy\fR
+Do not rename and copy the original log file
+(this overrides the \fBrenamecopy\fR option).
.TP
\fBshred\fR
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/logrotate-3.18.0/logrotate.c new/logrotate-3.18.1/logrotate.c
--- old/logrotate-3.18.0/logrotate.c 2020-07-13 14:03:46.000000000 +0200
+++ new/logrotate-3.18.1/logrotate.c 2021-05-03 21:37:19.000000000 +0200
@@ -582,8 +582,12 @@
return -1;
}
- if ((sb_create.st_uid != sb->st_uid || sb_create.st_gid != sb->st_gid) &&
- fchown(fd, sb->st_uid, sb->st_gid)) {
+ /* Only attempt to set user/group if running as root */
+ if (
+ ROOT_UID == geteuid() &&
+ (sb_create.st_uid != sb->st_uid || sb_create.st_gid != sb->st_gid) &&
+ fchown(fd, sb->st_uid, sb->st_gid)
+ ) {
message(MESS_ERROR, "error setting owner of %s to uid %u and gid %u: %s\n",
fileName, (unsigned) sb->st_uid, (unsigned) sb->st_gid, strerror(errno));
close(fd);
@@ -770,6 +774,8 @@
int error_printed = 0;
char *prevCtx;
pid_t pid;
+ int in_flags;
+ const char *in_how;
message(MESS_DEBUG, "compressing log with: %s\n", log->compress_prog);
if (debug)
@@ -785,8 +791,18 @@
compressedName = alloca(strlen(name) + strlen(log->compress_ext) + 2);
sprintf(compressedName, "%s%s", name, log->compress_ext);
- if ((inFile = open(name, O_RDWR | O_NOFOLLOW)) < 0) {
- message(MESS_ERROR, "unable to open %s for compression: %s\n", name, strerror(errno));
+ in_flags = O_NOFOLLOW;
+ if (log->flags & LOG_FLAG_SHRED) {
+ /* need write access for shredding */
+ in_flags |= O_RDWR;
+ in_how = "read-write";
+ } else {
+ in_flags |= O_RDONLY;
+ in_how = "read-only";
+ }
+ if ((inFile = open(name, in_flags)) < 0) {
+ message(MESS_ERROR, "unable to open %s (%s) for compression: %s\n",
+ name, in_how, strerror(errno));
return 1;
}
@@ -1529,7 +1545,6 @@
struct logState *state, struct logNames *rotNames)
{
struct tm now;
- char *oldName = NULL;
const char *compext = "";
const char *fileext = "";
int hasErrors = 0;
@@ -1567,7 +1582,7 @@
state->lastRotated = now;
{
- char *ld;
+ const char *ld;
char *logpath = strdup(log->files[logNum]);
if (logpath == NULL) {
message_OOM();
@@ -1576,9 +1591,9 @@
ld = dirname(logpath);
if (log->oldDir) {
if (log->oldDir[0] != '/') {
- rotNames->dirName =
- malloc(strlen(ld) + strlen(log->oldDir) + 2);
- sprintf(rotNames->dirName, "%s/%s", ld, log->oldDir);
+ if (asprintf(&rotNames->dirName, "%s/%s", ld, log->oldDir) < 0) {
+ rotNames->dirName = NULL;
+ }
} else
rotNames->dirName = strdup(log->oldDir);
} else
@@ -1770,11 +1785,8 @@
sortGlobResult(&globResult, strlen(rotNames->dirName) + 1 + strlen(rotNames->baseName), dformat);
for (glob_count = 0; glob_count < globResult.gl_pathc && !hasErrors; glob_count++) {
struct stat sbprev;
+ const char *oldName = globResult.gl_pathv[glob_count];
- if (asprintf(&oldName, "%s", (globResult.gl_pathv)[glob_count]) < 0) {
- message_OOM();
- return 1;
- }
if (stat(oldName, &sbprev)) {
if (errno == ENOENT)
message(MESS_DEBUG, "previous log %s does not exist\n", oldName);
@@ -1783,7 +1795,6 @@
} else {
hasErrors = compressLogFile(oldName, log, &sbprev);
}
- free(oldName);
}
} else {
message(MESS_DEBUG,
@@ -1793,6 +1804,7 @@
free(glob_pattern);
} else {
struct stat sbprev;
+ char *oldName;
if (asprintf(&oldName, "%s/%s.%d%s", rotNames->dirName,
rotNames->baseName, logStart, fileext) < 0) {
message_OOM();
@@ -1810,15 +1822,6 @@
}
}
- /* adding 2 due to / and \0 being added by snprintf */
- rotNames->firstRotated =
- malloc(strlen(rotNames->dirName) + strlen(rotNames->baseName) +
- strlen(fileext) + strlen(compext) + DATEEXT_LEN + 2 );
- if (rotNames->firstRotated == NULL) {
- message_OOM();
- return 1;
- }
-
if (log->flags & LOG_FLAG_DATEEXT) {
/* glob for compressed files with our pattern
* and compress ext */
@@ -1862,16 +1865,14 @@
}
if (mail_out != (size_t)-1) {
/* oldName is oldest Backup found (for unlink later) */
- if (asprintf(&oldName, "%s", (globResult.gl_pathv)[mail_out]) < 0) {
- message_OOM();
- return 1;
- }
+ const char *oldName = globResult.gl_pathv[mail_out];
rotNames->disposeName = strdup(oldName);
if (rotNames->disposeName == NULL) {
message_OOM();
+ globfree(&globResult);
+ free(glob_pattern);
return 1;
}
- free(oldName);
} else {
free(rotNames->disposeName);
rotNames->disposeName = NULL;
@@ -1882,14 +1883,21 @@
rotNames->disposeName = NULL;
}
/* firstRotated is most recently created/compressed rotated log */
- sprintf(rotNames->firstRotated, "%s/%s%s%s%s",
+ if (asprintf(&rotNames->firstRotated, "%s/%s%s%s%s",
rotNames->dirName, rotNames->baseName, dext_str, fileext,
- (log->flags & LOG_FLAG_DELAYCOMPRESS) ? "" : compext);
+ (log->flags & LOG_FLAG_DELAYCOMPRESS) ? "" : compext) < 0) {
+ message_OOM();
+ rotNames->firstRotated = NULL;
+ globfree(&globResult);
+ free(glob_pattern);
+ return 1;
+ }
globfree(&globResult);
free(glob_pattern);
} else {
int i;
char *newName = NULL;
+ char *oldName;
if (rotateCount == -1) {
rotateCount = findLastRotated(rotNames, fileext, compext);
@@ -1911,13 +1919,19 @@
rotNames->disposeName = strdup(oldName);
if (rotNames->disposeName == NULL) {
message_OOM();
+ free(oldName);
return 1;
}
}
- sprintf(rotNames->firstRotated, "%s/%s.%d%s%s", rotNames->dirName,
+ if (asprintf(&rotNames->firstRotated, "%s/%s.%d%s%s", rotNames->dirName,
rotNames->baseName, logStart, fileext,
- (log->flags & LOG_FLAG_DELAYCOMPRESS) ? "" : compext);
+ (log->flags & LOG_FLAG_DELAYCOMPRESS) ? "" : compext) < 0) {
+ message_OOM();
+ free(oldName);
+ rotNames->firstRotated = NULL;
+ return 1;
+ }
for (i = rotateCount + logStart - 1; (i >= 0) && !hasErrors; i--) {
free(newName);
@@ -1983,6 +1997,7 @@
if (asprintf(&(rotNames->finalName), "%s/%s%s%s", rotNames->dirName,
rotNames->baseName, dext_str, fileext) < 0) {
message_OOM();
+ rotNames->finalName = NULL;
return 1;
}
if (asprintf(&destFile, "%s%s", rotNames->finalName, compext) < 0) {
@@ -2001,6 +2016,7 @@
if (asprintf(&(rotNames->finalName), "%s/%s.%d%s", rotNames->dirName,
rotNames->baseName, logStart, fileext) < 0) {
message_OOM();
+ rotNames->finalName = NULL;
}
}
@@ -2084,6 +2100,7 @@
free(rotNames->disposeName);
if (asprintf(&rotNames->disposeName, "%s%s", rotNames->finalName, ext) < 0) {
message_OOM();
+ rotNames->disposeName = NULL;
return 1;
}
@@ -2212,11 +2229,6 @@
struct logState **state;
struct logNames **rotNames;
- logHasErrors = calloc(log->numFiles, sizeof(int));
- if (!logHasErrors) {
- message_OOM();
- return 1;
- }
message(MESS_DEBUG, "\nrotating pattern: %s ", log->pattern);
if (force) {
message(MESS_DEBUG, "forced from command line ");
@@ -2277,10 +2289,15 @@
if (log->numFiles == 0) {
message(MESS_DEBUG, "No logs found. Rotation not needed.\n");
- free(logHasErrors);
return 0;
}
+ logHasErrors = calloc(log->numFiles, sizeof(int));
+ if (!logHasErrors) {
+ message_OOM();
+ return 1;
+ }
+
if (log->flags & LOG_FLAG_SU) {
if (switch_user(log->suUid, log->suGid) != 0) {
free(logHasErrors);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/logrotate-3.18.0/logrotate.spec new/logrotate-3.18.1/logrotate.spec
--- old/logrotate-3.18.0/logrotate.spec 2021-01-08 08:34:23.000000000 +0100
+++ new/logrotate-3.18.1/logrotate.spec 2021-05-21 15:39:05.000000000 +0200
@@ -1,6 +1,6 @@
Summary: Rotates, compresses, removes and mails system log files
Name: logrotate
-Version: 3.18.0
+Version: 3.18.1
Release: 1%{?dist}
License: GPLv2+
Group: System Environment/Base
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/logrotate-3.18.0/test/test-common.sh new/logrotate-3.18.1/test/test-common.sh
--- old/logrotate-3.18.0/test/test-common.sh 2021-01-05 14:01:16.000000000 +0100
+++ new/logrotate-3.18.1/test/test-common.sh 2021-04-16 18:32:39.000000000 +0200
@@ -15,10 +15,10 @@
if command -v md5sum > /dev/null 2>&1; then
MD5SUM=md5sum
-elif command -v gmd5sum > /dev/null 2>&1; then
- MD5SUM=gmd5sum
+elif command -v md5 > /dev/null 2>&1; then
+ MD5SUM=md5
else
- echo "no md5sum command found"
+ echo "no md5sum/md5 command found"
exit 1
fi
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/logrotate-3.18.0/test/test-config.24.in new/logrotate-3.18.1/test/test-config.24.in
--- old/logrotate-3.18.0/test/test-config.24.in 2017-12-06 15:39:03.000000000 +0100
+++ new/logrotate-3.18.1/test/test-config.24.in 2021-05-03 14:43:18.000000000 +0200
@@ -1,5 +1,8 @@
create
+# will be overridden by copytruncate
+renamecopy
+
&DIR&/test*.log {
daily
copytruncate
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/logrotate-3.18.0/test/test-config.58.in new/logrotate-3.18.1/test/test-config.58.in
--- old/logrotate-3.18.0/test/test-config.58.in 2017-12-06 15:39:03.000000000 +0100
+++ new/logrotate-3.18.1/test/test-config.58.in 2021-05-03 14:43:18.000000000 +0200
@@ -1,5 +1,8 @@
create
+# will be overridden by renamecopy
+copytruncate
+
&DIR&/test.log {
renamecopy
weekly
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/logrotate-3.18.0/test/test-config.59.in new/logrotate-3.18.1/test/test-config.59.in
--- old/logrotate-3.18.0/test/test-config.59.in 2017-12-06 15:39:03.000000000 +0100
+++ new/logrotate-3.18.1/test/test-config.59.in 2021-05-03 14:43:18.000000000 +0200
@@ -1,5 +1,8 @@
create
+# will be overridden by renamecopy
+copytruncate
+
&DIR&/test.log {
renamecopy
weekly
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/logrotate-3.18.0/test/test-config.62.in new/logrotate-3.18.1/test/test-config.62.in
--- old/logrotate-3.18.0/test/test-config.62.in 2017-12-06 15:39:03.000000000 +0100
+++ new/logrotate-3.18.1/test/test-config.62.in 2021-05-03 14:43:18.000000000 +0200
@@ -1,5 +1,8 @@
create
+# will be overridden by copytruncate
+renamecopy
+
&DIR&/test*.log {
daily
copytruncate
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/logrotate-3.18.0/test/test-config.63.in new/logrotate-3.18.1/test/test-config.63.in
--- old/logrotate-3.18.0/test/test-config.63.in 2017-12-06 15:39:03.000000000 +0100
+++ new/logrotate-3.18.1/test/test-config.63.in 2021-05-03 14:43:18.000000000 +0200
@@ -1,5 +1,8 @@
create
+# will be overridden by copytruncate
+renamecopy
+
&DIR&/test*.log {
daily
copytruncate
1
0
Script 'mail_helper' called by obssrc
Hello community,
here is the log from the commit of package librsvg for openSUSE:Factory checked in at 2021-06-01 10:33:33
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/librsvg (Old)
and /work/SRC/openSUSE:Factory/.librsvg.new.1898 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "librsvg"
Tue Jun 1 10:33:33 2021 rev:108 rq:895942 version:2.50.6
Changes:
--------
--- /work/SRC/openSUSE:Factory/librsvg/librsvg.changes 2021-05-06 22:51:57.594914639 +0200
+++ /work/SRC/openSUSE:Factory/.librsvg.new.1898/librsvg.changes 2021-06-01 10:33:47.408437985 +0200
@@ -1,0 +2,12 @@
+Thu May 27 14:03:24 UTC 2021 - Bj��rn Lie <bjorn.lie(a)gmail.com>
+
+- Update to version 2.50.6:
+ + Librsvg now requires at least Pango 1.44.
+ + glgo#GNOME/librsvg#730: Incorrect text spacing when the
+ transform is not 1:1. You can see this when a small font-size
+ is scaled up due to a transform. It is less visible for a large
+ font-size scaled down.
+ + glgo#GNOME/librsvg#704: Fix circle/ellipse in paths when they
+ are made out of a single Arc command.
+
+-------------------------------------------------------------------
Old:
----
librsvg-2.50.5.tar.xz
New:
----
librsvg-2.50.6.tar.xz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ librsvg.spec ++++++
--- /var/tmp/diff_new_pack.TZGuaW/_old 2021-06-01 10:33:47.880438790 +0200
+++ /var/tmp/diff_new_pack.TZGuaW/_new 2021-06-01 10:33:47.880438790 +0200
@@ -20,7 +20,7 @@
%define librsvg_sover 2
Name: librsvg
-Version: 2.50.5
+Version: 2.50.6
Release: 0
Summary: A Library for Rendering SVG Data
License: Apache-2.0 AND GPL-2.0-or-later AND LGPL-2.0-or-later AND MIT
@@ -45,8 +45,8 @@
BuildRequires: pkgconfig(gmodule-2.0)
BuildRequires: pkgconfig(gthread-2.0) >= 2.12.0
BuildRequires: pkgconfig(libxml-2.0) >= 2.9.0
-BuildRequires: pkgconfig(pangocairo) >= 1.38.0
-BuildRequires: pkgconfig(pangoft2) >= 1.38.0
+BuildRequires: pkgconfig(pangocairo) >= 1.44.0
+BuildRequires: pkgconfig(pangoft2) >= 1.44.0
# Avoid cycle: we do not require the adwaita-icon-theme to be present. libgtk-3.0 requires this for end users
#!BuildIgnore: adwaita-icon-theme
++++++ librsvg-2.50.5.tar.xz -> librsvg-2.50.6.tar.xz ++++++
/work/SRC/openSUSE:Factory/librsvg/librsvg-2.50.5.tar.xz /work/SRC/openSUSE:Factory/.librsvg.new.1898/librsvg-2.50.6.tar.xz differ: char 27, line 1
1
0
Script 'mail_helper' called by obssrc
Hello community,
here is the log from the commit of package libmediaart for openSUSE:Factory checked in at 2021-06-01 10:33:31
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/libmediaart (Old)
and /work/SRC/openSUSE:Factory/.libmediaart.new.1898 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "libmediaart"
Tue Jun 1 10:33:31 2021 rev:14 rq:895941 version:1.9.5
Changes:
--------
--- /work/SRC/openSUSE:Factory/libmediaart/libmediaart.changes 2020-03-16 10:16:04.831532057 +0100
+++ /work/SRC/openSUSE:Factory/.libmediaart.new.1898/libmediaart.changes 2021-06-01 10:33:45.236434287 +0200
@@ -1,0 +2,16 @@
+Sat May 22 19:10:34 UTC 2021 - Bj��rn Lie <bjorn.lie(a)gmail.com>
+
+- Update to version 1.9.5:
+ + libmediaart:
+ - Remove QT4 support
+ - Mandate that input strings are UTF8
+ + extract: Remove local storage
+ + build:
+ - Drop autotools support
+ - Update to recent glib API
+ - Introspection fixes
+ - Added CI
+- Drop meson-Introspection-fix.patch: Fixed upstream.
+- Update meson option for building docs to new gtk_doc=true value.
+
+-------------------------------------------------------------------
Old:
----
libmediaart-1.9.4.tar.xz
meson-Introspection-fix.patch
New:
----
libmediaart-1.9.5.tar.xz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ libmediaart.spec ++++++
--- /var/tmp/diff_new_pack.Wqj9La/_old 2021-06-01 10:33:45.792435235 +0200
+++ /var/tmp/diff_new_pack.Wqj9La/_new 2021-06-01 10:33:45.792435235 +0200
@@ -1,7 +1,7 @@
#
# spec file for package libmediaart
#
-# Copyright (c) 2020 SUSE LLC
+# Copyright (c) 2021 SUSE LLC
# Copyright (c) 2013 Dominique Leuenberger, Amsterdam, The Netherlands
#
# All modifications and additions to the file contributed by third parties
@@ -18,7 +18,7 @@
Name: libmediaart
-Version: 1.9.4
+Version: 1.9.5
Release: 0
Summary: Media Art extraction library
# License note: src.rpm contains GPL-2.0+ (tests) and LGPL-2.1+ code
@@ -27,9 +27,6 @@
URL: https://gitlab.gnome.org/GNOME/libmediaart
Source0: https://download.gnome.org/sources/libmediaart/1.9/%{name}-%{version}.tar.xz
-# PATCH-FIX-UPSTREAM meson-Introspection-fix.patch bgo#792272 robert.munteanu(a)gmail.com -- meson: Introspection fix
-Patch1: meson-Introspection-fix.patch
-
BuildRequires: gcc-c++
BuildRequires: gobject-introspection-devel >= 1.30.0
BuildRequires: gtk-doc
@@ -83,7 +80,7 @@
%build
%meson \
-Dimage_library=gdk-pixbuf \
- -Dwith-docs=yes \
+ -Dgtk_doc=true \
%{nil}
%meson_build
++++++ libmediaart-1.9.4.tar.xz -> libmediaart-1.9.5.tar.xz ++++++
++++ 62752 lines of diff (skipped)
1
0
Script 'mail_helper' called by obssrc
Hello community,
here is the log from the commit of package python-pymongo for openSUSE:Factory checked in at 2021-06-01 10:33:28
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/python-pymongo (Old)
and /work/SRC/openSUSE:Factory/.python-pymongo.new.1898 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "python-pymongo"
Tue Jun 1 10:33:28 2021 rev:39 rq:895918 version:3.11.4
Changes:
--------
--- /work/SRC/openSUSE:Factory/python-pymongo/python-pymongo.changes 2021-04-26 16:38:58.294013292 +0200
+++ /work/SRC/openSUSE:Factory/.python-pymongo.new.1898/python-pymongo.changes 2021-06-01 10:33:43.348431073 +0200
@@ -1,0 +2,7 @@
+Fri May 28 07:38:51 UTC 2021 - pgajdos(a)suse.com
+
+- version update to 3.11.4
+ - Version 3.11.4 fixes a bug where a MongoClient would mistakenly attempt to
+ create minPoolSize connections to arbiter nodes (`PYTHON-2634`_).
+
+-------------------------------------------------------------------
Old:
----
pymongo-3.11.3.tar.gz
New:
----
pymongo-3.11.4.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ python-pymongo.spec ++++++
--- /var/tmp/diff_new_pack.gGVwpa/_old 2021-06-01 10:33:43.944432088 +0200
+++ /var/tmp/diff_new_pack.gGVwpa/_new 2021-06-01 10:33:43.948432095 +0200
@@ -18,7 +18,7 @@
%{?!python_module:%define python_module() python-%{**} python3-%{**}}
Name: python-pymongo
-Version: 3.11.3
+Version: 3.11.4
Release: 0
Summary: Python driver for MongoDB
License: Apache-2.0
@@ -56,7 +56,7 @@
%python_expand %fdupes %{buildroot}%{$python_sitearch}
%check
-%python_exec setup.py test -v
+%pyunittest discover -v
%files %{python_files}
%license LICENSE
++++++ pymongo-3.11.3.tar.gz -> pymongo-3.11.4.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pymongo-3.11.3/PKG-INFO new/pymongo-3.11.4/PKG-INFO
--- old/pymongo-3.11.3/PKG-INFO 2021-02-03 03:56:53.000000000 +0100
+++ new/pymongo-3.11.4/PKG-INFO 2021-05-05 00:15:41.111389600 +0200
@@ -1,6 +1,6 @@
Metadata-Version: 2.1
Name: pymongo
-Version: 3.11.3
+Version: 3.11.4
Summary: Python driver for MongoDB <http://www.mongodb.org>
Home-page: http://github.com/mongodb/mongo-python-driver
Author: Mike Dirolf
@@ -258,11 +258,11 @@
Classifier: Programming Language :: Python :: Implementation :: PyPy
Classifier: Topic :: Database
Requires-Python: >=2.7,!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*
-Provides-Extra: tls
Provides-Extra: encryption
-Provides-Extra: aws
-Provides-Extra: gssapi
+Provides-Extra: ocsp
Provides-Extra: snappy
-Provides-Extra: srv
+Provides-Extra: tls
Provides-Extra: zstd
-Provides-Extra: ocsp
+Provides-Extra: aws
+Provides-Extra: srv
+Provides-Extra: gssapi
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pymongo-3.11.3/bson/_cbsonmodule.c new/pymongo-3.11.4/bson/_cbsonmodule.c
--- old/pymongo-3.11.3/bson/_cbsonmodule.c 2021-02-03 01:53:34.000000000 +0100
+++ new/pymongo-3.11.4/bson/_cbsonmodule.c 2021-05-05 00:15:21.000000000 +0200
@@ -2621,7 +2621,7 @@
if (name_length > BSON_MAX_SIZE || position + name_length >= max) {
PyObject* InvalidBSON = _error("InvalidBSON");
if (InvalidBSON) {
- PyErr_SetNone(InvalidBSON);
+ PyErr_SetString(InvalidBSON, "field name too large");
Py_DECREF(InvalidBSON);
}
return -1;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pymongo-3.11.3/doc/changelog.rst new/pymongo-3.11.4/doc/changelog.rst
--- old/pymongo-3.11.3/doc/changelog.rst 2021-02-03 02:55:08.000000000 +0100
+++ new/pymongo-3.11.4/doc/changelog.rst 2021-05-05 00:15:21.000000000 +0200
@@ -1,6 +1,21 @@
Changelog
=========
+Changes in Version 3.11.4
+-------------------------
+
+Issues Resolved
+...............
+
+Version 3.11.4 fixes a bug where a MongoClient would mistakenly attempt to
+create minPoolSize connections to arbiter nodes (`PYTHON-2634`_).
+
+See the `PyMongo 3.11.4 release notes in JIRA`_ for the list of resolved issues
+in this release.
+
+.. _PYTHON-2634: https://jira.mongodb.org/browse/PYTHON-2452
+.. _PyMongo 3.11.4 release notes in JIRA: https://jira.mongodb.org/secure/ReleaseNote.jspa?projectId=10004&version=30…
+
Changes in Version 3.11.3
-------------------------
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pymongo-3.11.3/doc/conf.py new/pymongo-3.11.4/doc/conf.py
--- old/pymongo-3.11.3/doc/conf.py 2021-02-03 01:53:34.000000000 +0100
+++ new/pymongo-3.11.4/doc/conf.py 2021-05-05 00:15:21.000000000 +0200
@@ -91,13 +91,6 @@
# Additional static files.
html_static_path = ['static']
-# These paths are either relative to html_static_path
-# or fully qualified paths (eg. https://...)
-# Note: html_js_files was added in Sphinx 1.8.
-html_js_files = [
- 'delighted.js',
-]
-
# The name for this set of Sphinx documents. If None, it defaults to
# "<project> v<release> documentation".
#html_title = None
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pymongo-3.11.3/doc/static/delighted.js new/pymongo-3.11.4/doc/static/delighted.js
--- old/pymongo-3.11.3/doc/static/delighted.js 2021-01-16 00:06:11.000000000 +0100
+++ new/pymongo-3.11.4/doc/static/delighted.js 1970-01-01 01:00:00.000000000 +0100
@@ -1,22 +0,0 @@
-/* eslint-disable */
-// Delighted
-!function(e,t,r,n,a){if(!e[a]){for(var i=e[a]=[],s=0;s<r.length;s++){var c=r[s];i[c]=i[c]||function(e){return function(){var t=Array.prototype.slice.call(arguments);i.push([e,t])}}(c)}i.SNIPPET_VERSION="1.0.1";var o=t.createElement("script");o.type="text/javascript",o.async=!0,o.src="https://d2yyd1h5u9mauk.cloudfront.net/integrations/web/v1/library/"+n+"/"+a+".js";var l=t.getElementsByTagName("script")[0];l.parentNode.insertBefore(o,l)}}(window,document,["survey","reset","config","init","set","get","event","identify","track","page","screen","group","alias"],"Dk30CC86ba0nATlK","delighted");
-// Segment
-!function(){var analytics=window.analytics=window.analytics||[];if(!analytics.initialize)if(analytics.invoked)window.console&&console.error&&console.error("Segment snippet included twice.");else{analytics.invoked=!0;analytics.methods=["trackSubmit","trackClick","trackLink","trackForm","pageview","identify","reset","group","track","ready","alias","debug","page","once","off","on"];analytics.factory=function(t){return function(){var e=Array.prototype.slice.call(arguments);e.unshift(t);analytics.push(e);return analytics}};for(var t=0;t<analytics.methods.length;t++){var e=analytics.methods[t];analytics[e]=analytics.factory(e)}analytics.load=function(t,e){var n=document.createElement("script");n.type="text/javascript";n.async=!0;n.src="https://cdn.segment.com/analytics.js/v1/"+t+"/analytics.min.js";var a=document.getElementsByTagName("script")[0];a.parentNode.insertBefore(n,a);analytics._loadOptions=e};analytics.SNIPPET_VERSION="4.1.0";
- analytics.load("aGhVvyxnPWlyP71vVl9ZjGWxAtoVGLXX");
- }}();
-
-delighted.survey({
- minTimeOnPage: 180,
- sampleFactor: 0.1,
- properties: {
- project: 'pymongo'
- }
-});
-
-// Update Segment
-analytics.page({
- path: location.pathname,
- url: location.href,
- project: 'pymongo'
-});
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pymongo-3.11.3/pymongo/__init__.py new/pymongo-3.11.4/pymongo/__init__.py
--- old/pymongo-3.11.3/pymongo/__init__.py 2021-02-03 02:55:08.000000000 +0100
+++ new/pymongo-3.11.4/pymongo/__init__.py 2021-05-05 00:15:21.000000000 +0200
@@ -74,7 +74,7 @@
ALL = 2
"""Profile all operations."""
-version_tuple = (3, 11, 3)
+version_tuple = (3, 11, 4)
def get_version_string():
if isinstance(version_tuple[-1], str):
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pymongo-3.11.3/pymongo/topology.py new/pymongo-3.11.4/pymongo/topology.py
--- old/pymongo-3.11.3/pymongo/topology.py 2021-02-03 02:55:08.000000000 +0100
+++ new/pymongo-3.11.4/pymongo/topology.py 2021-05-05 00:15:21.000000000 +0200
@@ -430,15 +430,26 @@
ServerDescription(address, error=error), True)
server.request_check()
+ def data_bearing_servers(self):
+ """Return a list of all data-bearing servers.
+
+ This includes any server that might be selected for an operation.
+ """
+ if self._description.topology_type == TOPOLOGY_TYPE.Single:
+ return self._description.known_servers
+ return self._description.readable_servers
+
def update_pool(self, all_credentials):
# Remove any stale sockets and add new sockets if pool is too small.
servers = []
with self._lock:
- for server in self._servers.values():
- servers.append((server, server._pool.generation))
+ # Only update pools for data-bearing servers.
+ for sd in self.data_bearing_servers():
+ server = self._servers[sd.address]
+ servers.append((server, server.pool.generation))
for server, generation in servers:
- server._pool.remove_stale_sockets(generation, all_credentials)
+ server.pool.remove_stale_sockets(generation, all_credentials)
def close(self):
"""Clear pools and terminate monitors. Topology reopens on demand."""
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pymongo-3.11.3/pymongo.egg-info/PKG-INFO new/pymongo-3.11.4/pymongo.egg-info/PKG-INFO
--- old/pymongo-3.11.3/pymongo.egg-info/PKG-INFO 2021-02-03 03:56:52.000000000 +0100
+++ new/pymongo-3.11.4/pymongo.egg-info/PKG-INFO 2021-05-05 00:15:40.000000000 +0200
@@ -1,6 +1,6 @@
Metadata-Version: 2.1
Name: pymongo
-Version: 3.11.3
+Version: 3.11.4
Summary: Python driver for MongoDB <http://www.mongodb.org>
Home-page: http://github.com/mongodb/mongo-python-driver
Author: Mike Dirolf
@@ -258,11 +258,11 @@
Classifier: Programming Language :: Python :: Implementation :: PyPy
Classifier: Topic :: Database
Requires-Python: >=2.7,!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*
-Provides-Extra: tls
Provides-Extra: encryption
-Provides-Extra: aws
-Provides-Extra: gssapi
+Provides-Extra: ocsp
Provides-Extra: snappy
-Provides-Extra: srv
+Provides-Extra: tls
Provides-Extra: zstd
-Provides-Extra: ocsp
+Provides-Extra: aws
+Provides-Extra: srv
+Provides-Extra: gssapi
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pymongo-3.11.3/pymongo.egg-info/SOURCES.txt new/pymongo-3.11.4/pymongo.egg-info/SOURCES.txt
--- old/pymongo-3.11.3/pymongo.egg-info/SOURCES.txt 2021-02-03 03:56:52.000000000 +0100
+++ new/pymongo-3.11.4/pymongo.egg-info/SOURCES.txt 2021-05-05 00:15:40.000000000 +0200
@@ -121,7 +121,6 @@
doc/examples/uuid.rst
doc/pydoctheme/theme.conf
doc/pydoctheme/static/pydoctheme.css
-doc/static/delighted.js
doc/static/periodic-executor-refs.png
doc/static/sidebar.js
gridfs/__init__.py
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pymongo-3.11.3/pymongo.egg-info/requires.txt new/pymongo-3.11.4/pymongo.egg-info/requires.txt
--- old/pymongo-3.11.3/pymongo.egg-info/requires.txt 2021-02-03 03:56:52.000000000 +0100
+++ new/pymongo-3.11.4/pymongo.egg-info/requires.txt 2021-05-05 00:15:40.000000000 +0200
@@ -17,10 +17,9 @@
python-snappy
[srv]
-dnspython<1.17.0,>=1.16.0
+dnspython<2.0.0,>=1.16.0
[tls]
-ipaddress
[zstd]
zstandard
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pymongo-3.11.3/setup.py new/pymongo-3.11.4/setup.py
--- old/pymongo-3.11.3/setup.py 2021-02-03 02:55:08.000000000 +0100
+++ new/pymongo-3.11.4/setup.py 2021-05-05 00:15:21.000000000 +0200
@@ -39,7 +39,7 @@
except ImportError:
_HAVE_SPHINX = False
-version = "3.11.3"
+version = "3.11.4"
f = open("README.rst")
try:
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pymongo-3.11.3/test/pymongo_mocks.py new/pymongo-3.11.4/test/pymongo_mocks.py
--- old/pymongo-3.11.3/test/pymongo_mocks.py 2021-02-03 01:53:34.000000000 +0100
+++ new/pymongo-3.11.4/test/pymongo_mocks.py 2021-05-05 00:15:21.000000000 +0200
@@ -85,13 +85,13 @@
class MockClient(MongoClient):
def __init__(
self, standalones, members, mongoses, ismaster_hosts=None,
- *args, **kwargs):
+ arbiters=None, down_hosts=None, *args, **kwargs):
"""A MongoClient connected to the default server, with a mock topology.
- standalones, members, mongoses determine the configuration of the
- topology. They are formatted like ['a:1', 'b:2']. ismaster_hosts
- provides an alternative host list for the server's mocked ismaster
- response; see test_connect_with_internal_ips.
+ standalones, members, mongoses, arbiters, and down_hosts determine the
+ configuration of the topology. They are formatted like ['a:1', 'b:2'].
+ ismaster_hosts provides an alternative host list for the server's
+ mocked ismaster response; see test_connect_with_internal_ips.
"""
self.mock_standalones = standalones[:]
self.mock_members = members[:]
@@ -101,6 +101,9 @@
else:
self.mock_primary = None
+ # Hosts that should be considered an arbiter.
+ self.mock_arbiters = arbiters[:] if arbiters else []
+
if ismaster_hosts is not None:
self.mock_ismaster_hosts = ismaster_hosts
else:
@@ -109,7 +112,7 @@
self.mock_mongoses = mongoses[:]
# Hosts that should raise socket errors.
- self.mock_down_hosts = []
+ self.mock_down_hosts = down_hosts[:] if down_hosts else []
# Hostname -> (min wire version, max wire version)
self.mock_wire_versions = {}
@@ -182,6 +185,10 @@
if self.mock_primary:
response['primary'] = self.mock_primary
+
+ if host in self.mock_arbiters:
+ response['arbiterOnly'] = True
+ response['secondary'] = False
elif host in self.mock_mongoses:
response = {
'ok': 1,
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pymongo-3.11.3/test/test_bson.py new/pymongo-3.11.4/test/test_bson.py
--- old/pymongo-3.11.3/test/test_bson.py 2021-02-03 01:53:34.000000000 +0100
+++ new/pymongo-3.11.4/test/test_bson.py 2021-05-05 00:15:21.000000000 +0200
@@ -373,6 +373,13 @@
with self.assertRaises(InvalidBSON, msg=msg):
list(decode_file_iter(scratch))
+ def test_invalid_field_name(self):
+ # Decode a truncated field
+ with self.assertRaises(InvalidBSON) as ctx:
+ decode(b'\x0b\x00\x00\x00\x02field\x00')
+ # Assert that the InvalidBSON error message is not empty.
+ self.assertTrue(str(ctx.exception))
+
def test_data_timestamp(self):
self.assertEqual({"test": Timestamp(4, 20)},
decode(b"\x13\x00\x00\x00\x11\x74\x65\x73\x74\x00\x14"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pymongo-3.11.3/test/test_client.py new/pymongo-3.11.4/test/test_client.py
--- old/pymongo-3.11.3/test/test_client.py 2021-02-03 02:55:08.000000000 +0100
+++ new/pymongo-3.11.4/test/test_client.py 2021-05-05 00:15:21.000000000 +0200
@@ -35,7 +35,7 @@
from bson.son import SON
from bson.tz_util import utc
import pymongo
-from pymongo import auth, message
+from pymongo import auth, message, monitoring
from pymongo.common import CONNECT_TIMEOUT, _UUID_REPRESENTATIONS
from pymongo.command_cursor import CommandCursor
from pymongo.compression_support import _HAVE_SNAPPY, _HAVE_ZSTD
@@ -58,7 +58,7 @@
from pymongo.pool import SocketInfo, _METADATA
from pymongo.read_preferences import ReadPreference
from pymongo.server_description import ServerDescription
-from pymongo.server_selectors import (any_server_selector,
+from pymongo.server_selectors import (readable_server_selector,
writable_server_selector)
from pymongo.server_type import SERVER_TYPE
from pymongo.settings import TOPOLOGY_TYPE
@@ -76,6 +76,7 @@
from test.pymongo_mocks import MockClient
from test.utils import (assertRaisesExactly,
connected,
+ CMAPListener,
delay,
FunctionCallRecorder,
get_pool,
@@ -452,21 +453,25 @@
class TestClient(IntegrationTest):
- def test_max_idle_time_reaper(self):
+ def test_max_idle_time_reaper_default(self):
with client_knobs(kill_cursor_frequency=0.1):
# Assert reaper doesn't remove sockets when maxIdleTimeMS not set
client = rs_or_single_client()
- server = client._get_topology().select_server(any_server_selector)
+ server = client._get_topology().select_server(
+ readable_server_selector)
with server._pool.get_socket({}) as sock_info:
pass
self.assertEqual(1, len(server._pool.sockets))
self.assertTrue(sock_info in server._pool.sockets)
client.close()
+ def test_max_idle_time_reaper_removes_stale_minPoolSize(self):
+ with client_knobs(kill_cursor_frequency=0.1):
# Assert reaper removes idle socket and replaces it with a new one
client = rs_or_single_client(maxIdleTimeMS=500,
minPoolSize=1)
- server = client._get_topology().select_server(any_server_selector)
+ server = client._get_topology().select_server(
+ readable_server_selector)
with server._pool.get_socket({}) as sock_info:
pass
# When the reaper runs at the same time as the get_socket, two
@@ -478,11 +483,14 @@
"replace stale socket")
client.close()
+ def test_max_idle_time_reaper_does_not_exceed_maxPoolSize(self):
+ with client_knobs(kill_cursor_frequency=0.1):
# Assert reaper respects maxPoolSize when adding new sockets.
client = rs_or_single_client(maxIdleTimeMS=500,
minPoolSize=1,
maxPoolSize=1)
- server = client._get_topology().select_server(any_server_selector)
+ server = client._get_topology().select_server(
+ readable_server_selector)
with server._pool.get_socket({}) as sock_info:
pass
# When the reaper runs at the same time as the get_socket,
@@ -494,9 +502,12 @@
"replace stale socket")
client.close()
+ def test_max_idle_time_reaper_removes_stale(self):
+ with client_knobs(kill_cursor_frequency=0.1):
# Assert reaper has removed idle socket and NOT replaced it
client = rs_or_single_client(maxIdleTimeMS=500)
- server = client._get_topology().select_server(any_server_selector)
+ server = client._get_topology().select_server(
+ readable_server_selector)
with server._pool.get_socket({}) as sock_info_one:
pass
# Assert that the pool does not close sockets prematurely.
@@ -512,12 +523,14 @@
def test_min_pool_size(self):
with client_knobs(kill_cursor_frequency=.1):
client = rs_or_single_client()
- server = client._get_topology().select_server(any_server_selector)
+ server = client._get_topology().select_server(
+ readable_server_selector)
self.assertEqual(0, len(server._pool.sockets))
# Assert that pool started up at minPoolSize
client = rs_or_single_client(minPoolSize=10)
- server = client._get_topology().select_server(any_server_selector)
+ server = client._get_topology().select_server(
+ readable_server_selector)
wait_until(lambda: 10 == len(server._pool.sockets),
"pool initialized with 10 sockets")
@@ -532,7 +545,8 @@
# Use high frequency to test _get_socket_no_auth.
with client_knobs(kill_cursor_frequency=99999999):
client = rs_or_single_client(maxIdleTimeMS=500)
- server = client._get_topology().select_server(any_server_selector)
+ server = client._get_topology().select_server(
+ readable_server_selector)
with server._pool.get_socket({}) as sock_info:
pass
self.assertEqual(1, len(server._pool.sockets))
@@ -546,7 +560,8 @@
# Test that sockets are reused if maxIdleTimeMS is not set.
client = rs_or_single_client()
- server = client._get_topology().select_server(any_server_selector)
+ server = client._get_topology().select_server(
+ readable_server_selector)
with server._pool.get_socket({}) as sock_info:
pass
self.assertEqual(1, len(server._pool.sockets))
@@ -2008,5 +2023,62 @@
self.assertIsNone(ct.get())
+class TestClientPool(MockClientTest):
+
+ @client_context.require_connection
+ def test_rs_client_does_not_maintain_pool_to_arbiters(self):
+ listener = CMAPListener()
+ c = MockClient(
+ standalones=[],
+ members=['a:1', 'b:2', 'c:3', 'd:4'],
+ mongoses=[],
+ arbiters=['c:3'], # c:3 is an arbiter.
+ down_hosts=['d:4'], # d:4 is unreachable.
+ host=['a:1', 'b:2', 'c:3', 'd:4'],
+ replicaSet='rs',
+ minPoolSize=1, # minPoolSize
+ event_listeners=[listener],
+ )
+ self.addCleanup(c.close)
+
+ wait_until(lambda: len(c.nodes) == 3, 'connect')
+ self.assertEqual(c.address, ('a', 1))
+ self.assertEqual(c.arbiters, set([('c', 3)]))
+ # Assert that we create 2 and only 2 pooled connections.
+ listener.wait_for_event(monitoring.ConnectionReadyEvent, 2)
+ self.assertEqual(
+ listener.event_count(monitoring.ConnectionCreatedEvent), 2)
+ # Assert that we do not create connections to arbiters.
+ arbiter = c._topology.get_server_by_address(('c', 3))
+ self.assertFalse(arbiter.pool.sockets)
+ # Assert that we do not create connections to unknown servers.
+ arbiter = c._topology.get_server_by_address(('d', 4))
+ self.assertFalse(arbiter.pool.sockets)
+
+ @client_context.require_connection
+ def test_direct_client_maintains_pool_to_arbiter(self):
+ listener = CMAPListener()
+ c = MockClient(
+ standalones=[],
+ members=['a:1', 'b:2', 'c:3'],
+ mongoses=[],
+ arbiters=['c:3'], # c:3 is an arbiter.
+ host='c:3',
+ directConnection=True,
+ minPoolSize=1, # minPoolSize
+ event_listeners=[listener],
+ )
+ self.addCleanup(c.close)
+
+ wait_until(lambda: len(c.nodes) == 1, 'connect')
+ self.assertEqual(c.address, ('c', 3))
+ # Assert that we create 1 pooled connection.
+ listener.wait_for_event(monitoring.ConnectionReadyEvent, 1)
+ self.assertEqual(
+ listener.event_count(monitoring.ConnectionCreatedEvent), 1)
+ arbiter = c._topology.get_server_by_address(('c', 3))
+ self.assertEqual(len(arbiter.pool.sockets), 1)
+
+
if __name__ == "__main__":
unittest.main()
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pymongo-3.11.3/test/test_heartbeat_monitoring.py new/pymongo-3.11.4/test/test_heartbeat_monitoring.py
--- old/pymongo-3.11.3/test/test_heartbeat_monitoring.py 2021-02-03 01:53:34.000000000 +0100
+++ new/pymongo-3.11.4/test/test_heartbeat_monitoring.py 2021-05-05 00:15:14.000000000 +0200
@@ -51,12 +51,12 @@
# monitor thread may run multiple times during the execution
# of this test.
wait_until(
- lambda: len(listener.results) >= expected_len,
+ lambda: len(listener.events) >= expected_len,
"publish all events")
try:
# zip gives us len(expected_results) pairs.
- for expected, actual in zip(expected_results, listener.results):
+ for expected, actual in zip(expected_results, listener.events):
self.assertEqual(expected,
actual.__class__.__name__)
self.assertEqual(actual.connection_id,
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pymongo-3.11.3/test/test_streaming_protocol.py new/pymongo-3.11.4/test/test_streaming_protocol.py
--- old/pymongo-3.11.3/test/test_streaming_protocol.py 2021-02-03 02:55:08.000000000 +0100
+++ new/pymongo-3.11.4/test/test_streaming_protocol.py 2021-05-05 00:15:21.000000000 +0200
@@ -215,7 +215,7 @@
self.assertTrue(hb_failed_events[0].awaited)
# Depending on thread scheduling, the failed heartbeat could occur on
# the second or third check.
- events = [type(e) for e in hb_listener.results[:4]]
+ events = [type(e) for e in hb_listener.events[:4]]
if events == [monitoring.ServerHeartbeatStartedEvent,
monitoring.ServerHeartbeatSucceededEvent,
monitoring.ServerHeartbeatStartedEvent,
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pymongo-3.11.3/test/utils.py new/pymongo-3.11.4/test/utils.py
--- old/pymongo-3.11.3/test/utils.py 2021-02-03 02:55:08.000000000 +0100
+++ new/pymongo-3.11.4/test/utils.py 2021-05-05 00:15:21.000000000 +0200
@@ -36,7 +36,7 @@
from pymongo import (MongoClient,
monitoring, read_preferences)
from pymongo.errors import ConfigurationError, OperationFailure
-from pymongo.monitoring import _SENSITIVE_COMMANDS, ConnectionPoolListener
+from pymongo.monitoring import _SENSITIVE_COMMANDS
from pymongo.pool import (_CancellationContext,
PoolOptions)
from pymongo.read_concern import ReadConcern
@@ -60,7 +60,7 @@
IMPOSSIBLE_WRITE_CONCERN = WriteConcern(w=50)
-class CMAPListener(ConnectionPoolListener):
+class BaseListener(object):
def __init__(self):
self.events = []
@@ -71,8 +71,26 @@
self.events.append(event)
def event_count(self, event_type):
- return len([event for event in self.events[:]
- if isinstance(event, event_type)])
+ return len(self.events_by_type(event_type))
+
+ def events_by_type(self, event_type):
+ """Return the matching events by event class.
+
+ event_type can be a single class or a tuple of classes.
+ """
+ return self.matching(lambda e: isinstance(e, event_type))
+
+ def matching(self, matcher):
+ """Return the matching events."""
+ return [event for event in self.events[:] if matcher(event)]
+
+ def wait_for_event(self, event, count):
+ """Wait for a number of events to be published, or fail."""
+ wait_until(lambda: self.event_count(event) >= count,
+ 'find %s %s event(s)' % (count, event))
+
+
+class CMAPListener(BaseListener, monitoring.ConnectionPoolListener):
def connection_created(self, event):
self.add_event(event)
@@ -196,25 +214,17 @@
"""Listens to Server and Topology events."""
-class HeartbeatEventListener(monitoring.ServerHeartbeatListener):
+class HeartbeatEventListener(BaseListener, monitoring.ServerHeartbeatListener):
"""Listens to only server heartbeat events."""
- def __init__(self):
- self.results = []
-
def started(self, event):
- self.results.append(event)
+ self.add_event(event)
def succeeded(self, event):
- self.results.append(event)
+ self.add_event(event)
def failed(self, event):
- self.results.append(event)
-
- def matching(self, matcher):
- """Return the matching events."""
- results = self.results[:]
- return [event for event in results if matcher(event)]
+ self.add_event(event)
class MockSocketInfo(object):
1
0
Script 'mail_helper' called by obssrc
Hello community,
here is the log from the commit of package perl-IO-Socket-SSL for openSUSE:Factory checked in at 2021-06-01 10:33:30
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/perl-IO-Socket-SSL (Old)
and /work/SRC/openSUSE:Factory/.perl-IO-Socket-SSL.new.1898 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "perl-IO-Socket-SSL"
Tue Jun 1 10:33:30 2021 rev:88 rq:895920 version:2.071
Changes:
--------
--- /work/SRC/openSUSE:Factory/perl-IO-Socket-SSL/perl-IO-Socket-SSL.changes 2021-03-05 13:44:11.491563029 +0100
+++ /work/SRC/openSUSE:Factory/.perl-IO-Socket-SSL.new.1898/perl-IO-Socket-SSL.changes 2021-06-01 10:33:44.356432789 +0200
@@ -1,0 +2,9 @@
+Mon May 24 03:07:25 UTC 2021 - Tina M��ller <timueller+perl(a)suse.de>
+
+- updated to 2.071
+ see /usr/share/doc/packages/perl-IO-Socket-SSL/Changes
+
+ 2.071 2021/05/23
+ - fix t/nonblock.t race on some systems. Fixes issue #102, maybe #98 too.
+
+-------------------------------------------------------------------
Old:
----
IO-Socket-SSL-2.070.tar.gz
New:
----
IO-Socket-SSL-2.071.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ perl-IO-Socket-SSL.spec ++++++
--- /var/tmp/diff_new_pack.CObyRE/_old 2021-06-01 10:33:44.864433654 +0200
+++ /var/tmp/diff_new_pack.CObyRE/_new 2021-06-01 10:33:44.868433662 +0200
@@ -18,7 +18,7 @@
%define cpan_name IO-Socket-SSL
Name: perl-IO-Socket-SSL
-Version: 2.070
+Version: 2.071
Release: 0
Summary: Nearly transparent SSL encapsulation for IO::Socket::INET
License: Artistic-1.0 OR GPL-1.0-or-later
++++++ IO-Socket-SSL-2.070.tar.gz -> IO-Socket-SSL-2.071.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/IO-Socket-SSL-2.070/Changes new/IO-Socket-SSL-2.071/Changes
--- old/IO-Socket-SSL-2.070/Changes 2021-02-26 09:00:47.000000000 +0100
+++ new/IO-Socket-SSL-2.071/Changes 2021-05-23 10:05:33.000000000 +0200
@@ -1,3 +1,5 @@
+2.071 2021/05/23
+- fix t/nonblock.t race on some systems. Fixes issue #102, maybe #98 too.
2.070 2021/02/26
- changed bugtracker in Makefile.PL to github, away from obsolete rt.cpan.org
2.069 2021/01/22
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/IO-Socket-SSL-2.070/META.json new/IO-Socket-SSL-2.071/META.json
--- old/IO-Socket-SSL-2.070/META.json 2021-02-26 09:01:59.000000000 +0100
+++ new/IO-Socket-SSL-2.071/META.json 2021-05-23 10:11:06.000000000 +0200
@@ -52,6 +52,6 @@
"url" : "https://github.com/noxxi/p5-io-socket-ssl"
}
},
- "version" : "2.070",
+ "version" : "2.071",
"x_serialization_backend" : "JSON::PP version 4.02"
}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/IO-Socket-SSL-2.070/META.yml new/IO-Socket-SSL-2.071/META.yml
--- old/IO-Socket-SSL-2.070/META.yml 2021-02-26 09:01:59.000000000 +0100
+++ new/IO-Socket-SSL-2.071/META.yml 2021-05-23 10:11:06.000000000 +0200
@@ -27,5 +27,5 @@
homepage: https://github.com/noxxi/p5-io-socket-ssl
license: http://dev.perl.org/licenses/
repository: https://github.com/noxxi/p5-io-socket-ssl
-version: '2.070'
+version: '2.071'
x_serialization_backend: 'CPAN::Meta::YAML version 0.018'
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/IO-Socket-SSL-2.070/lib/IO/Socket/SSL.pm new/IO-Socket-SSL-2.071/lib/IO/Socket/SSL.pm
--- old/IO-Socket-SSL-2.070/lib/IO/Socket/SSL.pm 2021-02-26 09:00:28.000000000 +0100
+++ new/IO-Socket-SSL-2.071/lib/IO/Socket/SSL.pm 2021-05-23 10:04:33.000000000 +0200
@@ -13,7 +13,7 @@
package IO::Socket::SSL;
-our $VERSION = '2.070';
+our $VERSION = '2.071';
use IO::Socket;
use Net::SSLeay 1.46;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/IO-Socket-SSL-2.070/t/nonblock.t new/IO-Socket-SSL-2.071/t/nonblock.t
--- old/IO-Socket-SSL-2.070/t/nonblock.t 2020-02-14 15:23:13.000000000 +0100
+++ new/IO-Socket-SSL-2.071/t/nonblock.t 2021-05-22 19:47:07.000000000 +0200
@@ -20,6 +20,8 @@
$|=1;
print "1..27\n";
+my $START = time();
+
# first create simple non-blocking tcp-server
my $ID = 'server';
my $server = IO::Socket::INET->new(
@@ -186,12 +188,18 @@
WRITE:
for( my $i=0;$i<50000;$i++ ) {
my $offset = 0;
+ my $sel_server = IO::Select->new($to_server);
while (1) {
- if ( $can && ! IO::Select->new($to_server)->$can(30)) {
- diag("fail $can");
- print "not ";
+ if ($can && !$sel_server->$can(15)) {
+ if ( $bytes_send > 30000 ) {
+ diag("fail $can, but limit reached. Assume connection closed");
+ } else {
+ diag("fail $can");
+ print "not ";
+ }
last WRITE;
- };
+ }
+
my $n = syswrite( $to_server,$msg,length($msg)-$offset,$offset );
if ( !defined($n) ) {
diag( "\$!=$! \$SSL_ERROR=$SSL_ERROR send=$bytes_send" );
@@ -256,7 +264,8 @@
foreach my $test ( 'slow','fast' ) {
# accept a connection
- IO::Select->new( $server )->can_read(30);
+ my $can_read = IO::Select->new( $server )->can_read(30);
+ diag("tcp server socket is ".($can_read? "ready" : "NOT ready"));
my $from_client = $server->accept or print "not ";
ok( "tcp accept" );
$from_client || do {
@@ -388,5 +397,14 @@
-sub ok { print "ok # [$ID] @_\n"; }
-sub diag { print "# @_\n" }
+sub ok { unshift @_, "ok # "; goto &_out }
+sub diag { unshift @_, "# "; goto &_out }
+sub _out {
+ my $prefix = shift;
+ printf "%s [%04d.%s:%03d] %s\n",
+ $prefix,
+ time() - $START,
+ $ID,
+ (caller())[2],
+ "@_";
+}
1
0
Script 'mail_helper' called by obssrc
Hello community,
here is the log from the commit of package python-pylev for openSUSE:Factory checked in at 2021-06-01 10:33:27
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/python-pylev (Old)
and /work/SRC/openSUSE:Factory/.python-pylev.new.1898 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "python-pylev"
Tue Jun 1 10:33:27 2021 rev:2 rq:895916 version:1.3.0
Changes:
--------
--- /work/SRC/openSUSE:Factory/python-pylev/python-pylev.changes 2019-05-22 11:14:07.982554776 +0200
+++ /work/SRC/openSUSE:Factory/.python-pylev.new.1898/python-pylev.changes 2021-06-01 10:33:42.712429991 +0200
@@ -1,0 +2,5 @@
+Fri May 28 07:09:16 UTC 2021 - pgajdos(a)suse.com
+
+- %check: use %pyunittest rpm macro
+
+-------------------------------------------------------------------
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ python-pylev.spec ++++++
--- /var/tmp/diff_new_pack.jfUUJZ/_old 2021-06-01 10:33:43.156430747 +0200
+++ /var/tmp/diff_new_pack.jfUUJZ/_new 2021-06-01 10:33:43.160430753 +0200
@@ -1,7 +1,7 @@
#
# spec file for package python-pylev
#
-# Copyright (c) 2019 SUSE LINUX GmbH, Nuernberg, Germany.
+# 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
@@ -12,25 +12,25 @@
# license that conforms to the Open Source Definition (Version 1.9)
# published by the Open Source Initiative.
-# Please submit bugfixes or comments via http://bugs.opensuse.org/
+# Please submit bugfixes or comments via https://bugs.opensuse.org/
+#
%{?!python_module:%define python_module() python-%{**} python3-%{**}}
Name: python-pylev
Version: 1.3.0
Release: 0
-License: BSD-3-Clause
Summary: A pure Python Levenshtein implementation
-Url: http://github.com/toastdriven/pylev
+License: BSD-3-Clause
Group: Development/Languages/Python
+URL: https://github.com/toastdriven/pylev
Source: https://files.pythonhosted.org/packages/source/p/pylev/pylev-%{version}.tar…
Source1: https://raw.githubusercontent.com/toastdriven/pylev/master/LICENSE
Source2: https://raw.githubusercontent.com/toastdriven/pylev/master/tests.py
-BuildRequires: python-rpm-macros
BuildRequires: %{python_module setuptools}
BuildRequires: fdupes
+BuildRequires: python-rpm-macros
BuildArch: noarch
-
%python_subpackages
%description
@@ -48,7 +48,7 @@
%python_expand %fdupes %{buildroot}%{$python_sitelib}
%check
-%python_exec setup.py test
+%pyunittest discover -v
%files %{python_files}
%license LICENSE
1
0