openSUSE Commits
Threads by month
- ----- 2025 -----
- January
- ----- 2024 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2023 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2022 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2021 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2020 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2019 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2018 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2017 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2016 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2015 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2014 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2013 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2012 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2011 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2010 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2009 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2008 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2007 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2006 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
May 2020
- 1 participants
- 4645 discussions
Hello community,
here is the log from the commit of package acpica for openSUSE:Factory checked in at 2020-05-01 11:07:29
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/acpica (Old)
and /work/SRC/openSUSE:Factory/.acpica.new.2738 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "acpica"
Fri May 1 11:07:29 2020 rev:62 rq:798830 version:20200110
Changes:
--------
--- /work/SRC/openSUSE:Factory/acpica/acpica.changes 2020-02-14 16:27:29.571259639 +0100
+++ /work/SRC/openSUSE:Factory/.acpica.new.2738/acpica.changes 2020-05-01 11:07:48.819124622 +0200
@@ -1,0 +2,6 @@
+Mon Apr 27 19:33:25 UTC 2020 - Martin Liška <mliska(a)suse.cz>
+
+- Enable -fcommon in CFLAGS and CXXFLAGS in order
+ to fix boo#1160383.
+
+-------------------------------------------------------------------
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ acpica.spec ++++++
--- /var/tmp/diff_new_pack.BBJT21/_old 2020-05-01 11:07:50.887129120 +0200
+++ /var/tmp/diff_new_pack.BBJT21/_new 2020-05-01 11:07:50.891129128 +0200
@@ -1,7 +1,7 @@
#
# spec file for package acpica
#
-# Copyright (c) 2020 SUSE LINUX GmbH, Nuernberg, Germany.
+# Copyright (c) 2020 SUSE LLC
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@@ -68,6 +68,9 @@
(cd %{_prefix}/src/linux ; tar -cf - COPYING CREDITS README tools include scripts Kbuild Makefile drivers/acpi lib) | tar -xf -
%build
+%global optflags %{optflags} -fcommon
+export CFLAGS="%{optflags}"
+export CXXFLAGS="%{optflags}"
cc %{SOURCE1} %{optflags} -o ec_access
make %{?_smp_mflags} -C acpi_genl CFLAGS="%{optflags}"
make %{?_smp_mflags} -C wmidump CFLAGS="%{optflags}"
1
0
Hello community,
here is the log from the commit of package podman for openSUSE:Factory checked in at 2020-05-01 11:07:25
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/podman (Old)
and /work/SRC/openSUSE:Factory/.podman.new.2738 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "podman"
Fri May 1 11:07:25 2020 rev:62 rq:798807 version:1.9.1
Changes:
--------
--- /work/SRC/openSUSE:Factory/podman/podman.changes 2020-04-18 00:29:08.237891652 +0200
+++ /work/SRC/openSUSE:Factory/.podman.new.2738/podman.changes 2020-05-01 11:07:40.031105511 +0200
@@ -1,0 +2,16 @@
+Wed Apr 29 06:34:51 UTC 2020 - Sascha Grunert <sgrunert(a)suse.com>
+
+- Update podman to v1.9.1:
+ * Bugfixes
+ - Fixed a bug where healthchecks could become nonfunctional if
+ container log paths were manually set with --log-path and
+ multiple container logs were placed in the same directory
+ - Fixed a bug where rootless Podman could, when using an older
+ libpod.conf, print numerous warning messages about an invalid
+ CGroup manager config
+ - Fixed a bug where rootless Podman would sometimes fail to
+ close the rootless user namespace when joining it
+ * Misc
+ - Updated containers/common to v0.8.2
+
+-------------------------------------------------------------------
@@ -5 +21 @@
-- Update podman to v1.8.2:
+- Update podman to v1.9.0:
Old:
----
podman-1.9.0.tar.xz
New:
----
podman-1.9.1.tar.xz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ podman.spec ++++++
--- /var/tmp/diff_new_pack.OXIPZ6/_old 2020-05-01 11:07:43.075112131 +0200
+++ /var/tmp/diff_new_pack.OXIPZ6/_new 2020-05-01 11:07:43.075112131 +0200
@@ -22,7 +22,7 @@
%define with_libostree 1
%endif
Name: podman
-Version: 1.9.0
+Version: 1.9.1
Release: 0
Summary: Daemon-less container engine for managing containers, pods and images
License: Apache-2.0
++++++ _service ++++++
--- /var/tmp/diff_new_pack.OXIPZ6/_old 2020-05-01 11:07:43.115112218 +0200
+++ /var/tmp/diff_new_pack.OXIPZ6/_new 2020-05-01 11:07:43.119112227 +0200
@@ -4,8 +4,8 @@
<param name="url">https://github.com/containers/libpod.git</param>
<param name="scm">git</param>
<param name="filename">podman</param>
-<param name="versionformat">1.9.0</param>
-<param name="revision">v1.9.0</param>
+<param name="versionformat">1.9.1</param>
+<param name="revision">v1.9.1</param>
</service>
<service name="set_version" mode="disabled">
++++++ podman-1.9.0.tar.xz -> podman-1.9.1.tar.xz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/podman-1.9.0/.cirrus.yml new/podman-1.9.1/.cirrus.yml
--- old/podman-1.9.0/.cirrus.yml 2020-04-15 16:51:28.000000000 +0200
+++ new/podman-1.9.1/.cirrus.yml 2020-04-28 22:29:37.000000000 +0200
@@ -14,7 +14,7 @@
#### Global variables used for all tasks
####
# Name of the ultimate destination branch for this CI run, PR or post-merge.
- DEST_BRANCH: "master"
+ DEST_BRANCH: "v1.9"
# Overrides default location (/tmp/cirrus) for repo clone
GOPATH: "/var/tmp/go"
GOBIN: "${GOPATH}/bin"
@@ -106,7 +106,7 @@
# Note: Image has dual purpose, see contrib/gate/README.md
# The entrypoint.sh script ensures a prestine copy of $SRCPATH is
# available at $GOSRC before executing make instructions.
- image: "quay.io/libpod/gate:master"
+ image: "quay.io/libpod/gate:v1.9"
cpu: 8
memory: 12
@@ -234,7 +234,7 @@
# Runs within Cirrus's "community cluster"
container:
# Note: Image has dual purpose, see contrib/gate/README.md
- image: "quay.io/libpod/gate:master"
+ image: "quay.io/libpod/gate:v1.9"
cpu: 4
memory: 12
@@ -321,7 +321,7 @@
- "build_without_cgo"
container:
- image: "quay.io/libpod/imgts:master" # see contrib/imgts
+ image: "quay.io/libpod/imgts:v1.9" # see contrib/imgts
cpu: 1
memory: 1
@@ -346,32 +346,6 @@
script: '$CIRRUS_WORKING_DIR/$SCRIPT_BASE/update_meta.sh |& ${TIMESTAMP}'
-# Remove old and disused images based on labels set by meta_task
-image_prune_task:
-
- # This should ONLY ever run from the master branch, and never
- # anywhere else so it's behavior is always consistent, even
- # as new branches are created.
- only_if: $CIRRUS_BRANCH == "master"
-
- depends_on:
- - "meta"
-
- container:
- image: "quay.io/libpod/imgprune:master" # see contrib/imgprune
- cpu: 1
- memory: 1
-
- env:
- <<: *meta_env_vars
- GCPJSON: ENCRYPTED[4c11d8e09c904c30fc70eecb95c73dec0ddf19976f9b981a0f80f3f6599e8f990bcef93c253ac0277f200850d98528e7]
- GCPNAME: ENCRYPTED[7f54557ba6e5a437f11283a53e71baec9ca546f48a9835538cc54d297f79968eb1337d4596a1025b14f9d1c5723fbd29]
-
- timeout_in: 10m
-
- script: '/usr/local/bin/entrypoint.sh |& ${TIMESTAMP}'
-
-
# This task does the unit and integration testing for every platform
testing_task:
alias: "testing"
@@ -766,7 +740,6 @@
- "build_each_commit"
- "build_without_cgo"
- "meta"
- - "image_prune"
- "testing"
- "rpmbuild"
- "special_testing_rootless"
@@ -785,7 +758,7 @@
container:
# Note: Image has dual purpose, see contrib/gate/README.md
- image: "quay.io/libpod/gate:master"
+ image: "quay.io/libpod/gate:v1.9"
cpu: 1
memory: 1
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/podman-1.9.0/RELEASE_NOTES.md new/podman-1.9.1/RELEASE_NOTES.md
--- old/podman-1.9.0/RELEASE_NOTES.md 2020-04-15 16:51:28.000000000 +0200
+++ new/podman-1.9.1/RELEASE_NOTES.md 2020-04-28 22:29:37.000000000 +0200
@@ -1,5 +1,14 @@
# Release Notes
+## 1.9.1
+### Bugfixes
+- Fixed a bug where healthchecks could become nonfunctional if container log paths were manually set with `--log-path` and multiple container logs were placed in the same directory ([#5915](https://github.com/containers/libpod/issues/5915))
+- Fixed a bug where rootless Podman could, when using an older `libpod.conf`, print numerous warning messages about an invalid CGroup manager config
+- Fixed a bug where rootless Podman would sometimes fail to close the rootless user namespace when joining it ([#5873](https://github.com/containers/libpod/issues/5873))
+
+### Misc
+- Updated containers/common to v0.8.2
+
## 1.9.0
### Features
- Experimental support has been added for `podman run --userns=auto`, which automatically allocates a unique UID and GID range for the new container's user namespace
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/podman-1.9.0/changelog.txt new/podman-1.9.1/changelog.txt
--- old/podman-1.9.0/changelog.txt 2020-04-15 16:51:28.000000000 +0200
+++ new/podman-1.9.1/changelog.txt 2020-04-28 22:29:37.000000000 +0200
@@ -1,3 +1,15 @@
+- Changelog for v1.9.1 (2020-04-28):
+ * Update release notes for v1.9.1
+ * separate healthcheck and container log paths
+ * Update vendor to containers/common v0.8.2
+ * rootless: move join namespace inside child process
+ * rootless: skip looking up parent user ns
+ * Don't check configuration until user input is applied
+ * Move selinux labeling support from pkg/util to pkg/selinux
+ * Cirrus: Necessary changes for v1.9 branch automation
+ * Cirrus: Fix gate container build failure
+ * logformat: handle apiv2 results, add anchor links
+
- Changelog for v1.9.0 (2020-04-15)
* podmanV2: fix nil deref
* v2specgen prune libpod
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/podman-1.9.0/cmd/podman/cliconfig/config.go new/podman-1.9.1/cmd/podman/cliconfig/config.go
--- old/podman-1.9.0/cmd/podman/cliconfig/config.go 2020-04-15 16:51:28.000000000 +0200
+++ new/podman-1.9.1/cmd/podman/cliconfig/config.go 2020-04-28 22:29:37.000000000 +0200
@@ -708,7 +708,6 @@
func GetDefaultConfig() *config.Config {
var err error
conf, err := config.NewConfig("")
- conf.CheckCgroupsAndAdjustConfig()
if err != nil {
logrus.Errorf("Error loading container config %v\n", err)
os.Exit(1)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/podman-1.9.0/cmd/podman/main.go new/podman-1.9.1/cmd/podman/main.go
--- old/podman-1.9.0/cmd/podman/main.go 2020-04-15 16:51:28.000000000 +0200
+++ new/podman-1.9.1/cmd/podman/main.go 2020-04-28 22:29:37.000000000 +0200
@@ -126,6 +126,9 @@
return err
}
+ defaultContainerConfig.Engine.CgroupManager = MainGlobalOpts.CGroupManager
+ defaultContainerConfig.CheckCgroupsAndAdjustConfig()
+
if err := setupRootless(cmd, args); err != nil {
return err
}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/podman-1.9.0/cmd/podman/shared/create.go new/podman-1.9.1/cmd/podman/shared/create.go
--- old/podman-1.9.0/cmd/podman/shared/create.go 2020-04-15 16:51:28.000000000 +0200
+++ new/podman-1.9.1/cmd/podman/shared/create.go 2020-04-28 22:29:37.000000000 +0200
@@ -376,6 +376,10 @@
}
}
+ usernsType := c.String("userns")
+ if !c.IsSet("userns") && !idmappings.HostUIDMapping {
+ usernsType = "private"
+ }
// Kernel Namespaces
// TODO Fix handling of namespace from pod
// Instead of integrating here, should be done in libpod
@@ -386,7 +390,7 @@
"pid": c.String("pid"),
"net": c.String("network"),
"ipc": c.String("ipc"),
- "user": c.String("userns"),
+ "user": usernsType,
"uts": c.String("uts"),
}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/podman-1.9.0/contrib/cirrus/lib.sh new/podman-1.9.1/contrib/cirrus/lib.sh
--- old/podman-1.9.0/contrib/cirrus/lib.sh 2020-04-15 16:51:28.000000000 +0200
+++ new/podman-1.9.1/contrib/cirrus/lib.sh 2020-04-28 22:29:37.000000000 +0200
@@ -50,7 +50,7 @@
# Defaults when not running under CI
export CI="${CI:-false}"
CIRRUS_CI="${CIRRUS_CI:-false}"
-DEST_BRANCH="${DEST_BRANCH:-master}"
+DEST_BRANCH="${DEST_BRANCH:-v1.9}"
CONTINUOUS_INTEGRATION="${CONTINUOUS_INTEGRATION:-false}"
CIRRUS_REPO_NAME=${CIRRUS_REPO_NAME:-libpod}
CIRRUS_BASE_SHA=${CIRRUS_BASE_SHA:-unknown$(date +%s)} # difficult to reliably discover
@@ -71,7 +71,7 @@
# IN_PODMAN container image
IN_PODMAN_IMAGE="quay.io/libpod/in_podman:$DEST_BRANCH"
# Image for uploading releases
-UPLDREL_IMAGE="quay.io/libpod/upldrel:master"
+UPLDREL_IMAGE="quay.io/libpod/upldrel:v1.9"
# Avoid getting stuck waiting for user input
export DEBIAN_FRONTEND="noninteractive"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/podman-1.9.0/contrib/cirrus/logformatter new/podman-1.9.1/contrib/cirrus/logformatter
--- old/podman-1.9.0/contrib/cirrus/logformatter 2020-04-15 16:51:28.000000000 +0200
+++ new/podman-1.9.1/contrib/cirrus/logformatter 2020-04-28 22:29:37.000000000 +0200
@@ -220,8 +220,8 @@
$cirrus_task = $1;
}
- # BATS handling
- if ($line =~ /^1\.\.\d+$/) {
+ # BATS handling (used also for apiv2 tests, which emit TAP output)
+ if ($line =~ /^1\.\.\d+$/ || $line =~ m!/test-apiv2!) {
$looks_like_bats = 1;
}
if ($looks_like_bats) {
@@ -234,6 +234,10 @@
elsif ($line =~ /^#\s/) { $css = 'log' }
if ($css) {
+ # Make it linkable, e.g. foo.html#t--00001
+ if ($line =~ /^(not\s+)?ok\s+(\d+)/) {
+ $line = sprintf("<a name='t--%05d'>%s</a>", $2, $line);
+ }
$line = "<span class='bats-$css'>$line</span>";
}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/podman-1.9.0/contrib/gate/Dockerfile new/podman-1.9.1/contrib/gate/Dockerfile
--- old/podman-1.9.0/contrib/gate/Dockerfile 2020-04-15 16:51:28.000000000 +0200
+++ new/podman-1.9.1/contrib/gate/Dockerfile 2020-04-28 22:29:37.000000000 +0200
@@ -21,6 +21,7 @@
procps-ng \
python \
python3-dateutil \
+ python3-pip \
python3-psutil \
python3-pytoml \
python3-pyyaml \
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/podman-1.9.0/go.mod new/podman-1.9.1/go.mod
--- old/podman-1.9.0/go.mod 2020-04-15 16:51:28.000000000 +0200
+++ new/podman-1.9.1/go.mod 2020-04-28 22:29:37.000000000 +0200
@@ -10,7 +10,7 @@
github.com/containernetworking/cni v0.7.2-0.20200304161608-4fae32b84921
github.com/containernetworking/plugins v0.8.5
github.com/containers/buildah v1.14.8
- github.com/containers/common v0.8.1
+ github.com/containers/common v0.8.2
github.com/containers/conmon v2.0.14+incompatible
github.com/containers/image/v5 v5.4.3
github.com/containers/psgo v1.4.0
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/podman-1.9.0/go.sum new/podman-1.9.1/go.sum
--- old/podman-1.9.0/go.sum 2020-04-15 16:51:28.000000000 +0200
+++ new/podman-1.9.1/go.sum 2020-04-28 22:29:37.000000000 +0200
@@ -67,6 +67,8 @@
github.com/containers/buildah v1.14.8/go.mod h1:ytEjHJQnRXC1ygXMyc0FqYkjcoCydqBQkOdxbH563QU=
github.com/containers/common v0.8.1 h1:1IUwAtZ4mC7GYRr4AC23cHf2oXCuoLzTUoSzIkSgnYw=
github.com/containers/common v0.8.1/go.mod h1:VxDJbaA1k6N1TNv9Rt6bQEF4hyKVHNfOfGA5L91ADEs=
+github.com/containers/common v0.8.2 h1:TzbHcY1C6xAcZyPk0UJLAKVpW77AUkw5DWoApWB8Ge8=
+github.com/containers/common v0.8.2/go.mod h1:VxDJbaA1k6N1TNv9Rt6bQEF4hyKVHNfOfGA5L91ADEs=
github.com/containers/conmon v2.0.14+incompatible h1:knU1O1QxXy5YxtjMQVKEyCajROaehizK9FHaICl+P5Y=
github.com/containers/conmon v2.0.14+incompatible/go.mod h1:hgwZ2mtuDrppv78a/cOBNiCm6O0UMWGx1mu7P00nu5I=
github.com/containers/image/v5 v5.4.3 h1:zn2HR7uu4hpvT5QQHgjqonOzKDuM1I1UHUEmzZT5sbs=
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/podman-1.9.0/libpod/healthcheck.go new/podman-1.9.1/libpod/healthcheck.go
--- old/podman-1.9.0/libpod/healthcheck.go 2020-04-15 16:51:28.000000000 +0200
+++ new/podman-1.9.1/libpod/healthcheck.go 2020-04-28 22:29:37.000000000 +0200
@@ -238,7 +238,7 @@
// HealthCheckLogPath returns the path for where the health check log is
func (c *Container) healthCheckLogPath() string {
- return filepath.Join(filepath.Dir(c.LogPath()), "healthcheck.log")
+ return filepath.Join(filepath.Dir(c.state.RunDir), "healthcheck.log")
}
// GetHealthCheckLog returns HealthCheck results by reading the container's
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/podman-1.9.0/libpod/runtime.go new/podman-1.9.1/libpod/runtime.go
--- old/podman-1.9.0/libpod/runtime.go 2020-04-15 16:51:28.000000000 +0200
+++ new/podman-1.9.1/libpod/runtime.go 2020-04-28 22:29:37.000000000 +0200
@@ -131,8 +131,9 @@
if err != nil {
return nil, err
}
+ runtime, err = newRuntimeFromConfig(ctx, conf, options...)
conf.CheckCgroupsAndAdjustConfig()
- return newRuntimeFromConfig(ctx, conf, options...)
+ return runtime, err
}
// NewRuntimeFromConfig creates a new container runtime using the given
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/podman-1.9.0/pkg/rootless/rootless_linux.c new/podman-1.9.1/pkg/rootless/rootless_linux.c
--- old/podman-1.9.0/pkg/rootless/rootless_linux.c 2020-04-15 16:51:28.000000000 +0200
+++ new/podman-1.9.1/pkg/rootless/rootless_linux.c 2020-04-28 22:29:37.000000000 +0200
@@ -535,8 +535,36 @@
}
}
+static void
+join_namespace_or_die (int pid_to_join, const char *ns_file)
+{
+ char ns_path[PATH_MAX];
+ int ret;
+ int fd;
+
+ ret = snprintf (ns_path, PATH_MAX, "/proc/%d/ns/%s", pid_to_join, ns_file);
+ if (ret == PATH_MAX)
+ {
+ fprintf (stderr, "internal error: namespace path too long\n");
+ _exit (EXIT_FAILURE);
+ }
+
+ fd = open (ns_path, O_CLOEXEC | O_RDONLY);
+ if (fd < 0)
+ {
+ fprintf (stderr, "cannot open: %s\n", ns_path);
+ _exit (EXIT_FAILURE);
+ }
+ if (setns (fd, 0) < 0)
+ {
+ fprintf (stderr, "cannot set namespace to %s: %s\n", ns_path, strerror (errno));
+ _exit (EXIT_FAILURE);
+ }
+ close (fd);
+}
+
int
-reexec_userns_join (int userns, int mountns, char *pause_pid_file_path)
+reexec_userns_join (int pid_to_join, char *pause_pid_file_path)
{
char uid[16];
char gid[16];
@@ -606,19 +634,8 @@
_exit (EXIT_FAILURE);
}
- if (setns (userns, 0) < 0)
- {
- fprintf (stderr, "cannot setns: %s\n", strerror (errno));
- _exit (EXIT_FAILURE);
- }
- close (userns);
-
- if (mountns >= 0 && setns (mountns, 0) < 0)
- {
- fprintf (stderr, "cannot setns: %s\n", strerror (errno));
- _exit (EXIT_FAILURE);
- }
- close (mountns);
+ join_namespace_or_die (pid_to_join, "user");
+ join_namespace_or_die (pid_to_join, "mnt");
if (syscall_setresgid (0, 0, 0) < 0)
{
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/podman-1.9.0/pkg/rootless/rootless_linux.go new/podman-1.9.1/pkg/rootless/rootless_linux.go
--- old/podman-1.9.0/pkg/rootless/rootless_linux.go 2020-04-15 16:51:28.000000000 +0200
+++ new/podman-1.9.1/pkg/rootless/rootless_linux.go 2020-04-28 22:29:37.000000000 +0200
@@ -31,7 +31,7 @@
extern uid_t rootless_gid();
extern int reexec_in_user_namespace(int ready, char *pause_pid_file_path, char *file_to_read, int fd);
extern int reexec_in_user_namespace_wait(int pid, int options);
-extern int reexec_userns_join(int userns, int mountns, char *pause_pid_file_path);
+extern int reexec_userns_join(int pid, char *pause_pid_file_path);
*/
import "C"
@@ -124,91 +124,6 @@
return nil
}
-func readUserNs(path string) (string, error) {
- b := make([]byte, 256)
- _, err := unix.Readlink(path, b)
- if err != nil {
- return "", err
- }
- return string(b), nil
-}
-
-func readUserNsFd(fd uintptr) (string, error) {
- return readUserNs(fmt.Sprintf("/proc/self/fd/%d", fd))
-}
-
-func getParentUserNs(fd uintptr) (uintptr, error) {
- const nsGetParent = 0xb702
- ret, _, errno := unix.Syscall(unix.SYS_IOCTL, fd, uintptr(nsGetParent), 0)
- if errno != 0 {
- return 0, errno
- }
- return (uintptr)(unsafe.Pointer(ret)), nil
-}
-
-// getUserNSFirstChild returns an open FD for the first direct child user namespace that created the process
-// Each container creates a new user namespace where the runtime runs. The current process in the container
-// might have created new user namespaces that are child of the initial namespace we created.
-// This function finds the initial namespace created for the container that is a child of the current namespace.
-//
-// current ns
-// / \
-// TARGET -> a [other containers]
-// /
-// b
-// /
-// NS READ USING THE PID -> c
-func getUserNSFirstChild(fd uintptr) (*os.File, error) {
- currentNS, err := readUserNs("/proc/self/ns/user")
- if err != nil {
- return nil, err
- }
-
- ns, err := readUserNsFd(fd)
- if err != nil {
- return nil, errors.Wrapf(err, "cannot read user namespace")
- }
- if ns == currentNS {
- return nil, errors.New("process running in the same user namespace")
- }
-
- for {
- nextFd, err := getParentUserNs(fd)
- if err != nil {
- if err == unix.ENOTTY {
- return os.NewFile(fd, "userns child"), nil
- }
- return nil, errors.Wrapf(err, "cannot get parent user namespace")
- }
-
- ns, err = readUserNsFd(nextFd)
- if err != nil {
- return nil, errors.Wrapf(err, "cannot read user namespace")
- }
-
- if ns == currentNS {
- if err := unix.Close(int(nextFd)); err != nil {
- return nil, err
- }
-
- // Drop O_CLOEXEC for the fd.
- _, _, errno := unix.Syscall(unix.SYS_FCNTL, fd, unix.F_SETFD, 0)
- if errno != 0 {
- if err := unix.Close(int(fd)); err != nil {
- logrus.Errorf("failed to close file descriptor %d", fd)
- }
- return nil, errno
- }
-
- return os.NewFile(fd, "userns child"), nil
- }
- if err := unix.Close(int(fd)); err != nil {
- return nil, err
- }
- fd = nextFd
- }
-}
-
// joinUserAndMountNS re-exec podman in a new userNS and join the user and mount
// namespace of the specified PID without looking up its parent. Useful to join directly
// the conmon process.
@@ -220,31 +135,7 @@
cPausePid := C.CString(pausePid)
defer C.free(unsafe.Pointer(cPausePid))
- userNS, err := os.Open(fmt.Sprintf("/proc/%d/ns/user", pid))
- if err != nil {
- return false, -1, err
- }
- defer func() {
- if err := userNS.Close(); err != nil {
- logrus.Errorf("unable to close namespace: %q", err)
- }
- }()
-
- mountNS, err := os.Open(fmt.Sprintf("/proc/%d/ns/mnt", pid))
- if err != nil {
- return false, -1, err
- }
- defer func() {
- if err := mountNS.Close(); err != nil {
- logrus.Errorf("unable to close namespace: %q", err)
- }
- }()
-
- fd, err := getUserNSFirstChild(userNS.Fd())
- if err != nil {
- return false, -1, err
- }
- pidC := C.reexec_userns_join(C.int(fd.Fd()), C.int(mountNS.Fd()), cPausePid)
+ pidC := C.reexec_userns_join(C.int(pid), cPausePid)
if int(pidC) < 0 {
return false, -1, errors.Errorf("cannot re-exec process")
}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/podman-1.9.0/pkg/selinux/selinux.go new/podman-1.9.1/pkg/selinux/selinux.go
--- old/podman-1.9.0/pkg/selinux/selinux.go 1970-01-01 01:00:00.000000000 +0100
+++ new/podman-1.9.1/pkg/selinux/selinux.go 2020-04-28 22:29:37.000000000 +0200
@@ -0,0 +1,40 @@
+package util
+
+import (
+ "github.com/opencontainers/selinux/go-selinux"
+)
+
+// SELinuxKVMLabel returns labels for running kvm isolated containers
+func SELinuxKVMLabel(cLabel string) (string, error) {
+ if cLabel == "" {
+ // selinux is disabled
+ return "", nil
+ }
+ processLabel, _ := selinux.KVMContainerLabels()
+ selinux.ReleaseLabel(processLabel)
+ return swapSELinuxLabel(cLabel, processLabel)
+}
+
+// SELinuxInitLabel returns labels for running systemd based containers
+func SELinuxInitLabel(cLabel string) (string, error) {
+ if cLabel == "" {
+ // selinux is disabled
+ return "", nil
+ }
+ processLabel, _ := selinux.InitContainerLabels()
+ selinux.ReleaseLabel(processLabel)
+ return swapSELinuxLabel(cLabel, processLabel)
+}
+
+func swapSELinuxLabel(cLabel, processLabel string) (string, error) {
+ dcon, err := selinux.NewContext(cLabel)
+ if err != nil {
+ return "", err
+ }
+ scon, err := selinux.NewContext(processLabel)
+ if err != nil {
+ return "", err
+ }
+ dcon["type"] = scon["type"]
+ return dcon.Get(), nil
+}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/podman-1.9.0/test/apiv2/test-apiv2 new/podman-1.9.1/test/apiv2/test-apiv2
--- old/podman-1.9.0/test/apiv2/test-apiv2 2020-04-15 16:51:28.000000000 +0200
+++ new/podman-1.9.1/test/apiv2/test-apiv2 2020-04-28 22:29:37.000000000 +0200
@@ -355,7 +355,7 @@
if [ -n "$service_pid" ]; then
kill $service_pid
- wait -f $service_pid
+ wait $service_pid
fi
test_count=$(<$testcounter_file)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/podman-1.9.0/vendor/github.com/containers/common/pkg/config/containers.… new/podman-1.9.1/vendor/github.com/containers/common/pkg/config/containers.…
--- old/podman-1.9.0/vendor/github.com/containers/common/pkg/config/containers.… 2020-04-15 16:51:28.000000000 +0200
+++ new/podman-1.9.1/vendor/github.com/containers/common/pkg/config/containers.… 2020-04-28 22:29:37.000000000 +0200
@@ -376,6 +376,8 @@
# "/usr/local/sbin/kata-runtime",
# "/sbin/kata-runtime",
# "/bin/kata-runtime",
+# "/usr/bin/kata-qemu",
+# "/usr/bin/kata-fc",
# ]
# Number of seconds to wait for container to exit before sending kill signal.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/podman-1.9.0/vendor/github.com/containers/common/pkg/config/default.go new/podman-1.9.1/vendor/github.com/containers/common/pkg/config/default.go
--- old/podman-1.9.0/vendor/github.com/containers/common/pkg/config/default.go 2020-04-15 16:51:28.000000000 +0200
+++ new/podman-1.9.1/vendor/github.com/containers/common/pkg/config/default.go 2020-04-28 22:29:37.000000000 +0200
@@ -141,13 +141,18 @@
netns = "slirp4netns"
}
+ cgroupNS := "host"
+ if cgroup2, _ := cgroupv2.Enabled(); cgroup2 {
+ cgroupNS = "private"
+ }
+
return &Config{
Containers: ContainersConfig{
Devices: []string{},
Volumes: []string{},
Annotations: []string{},
ApparmorProfile: DefaultApparmorProfile,
- CgroupNS: "private",
+ CgroupNS: cgroupNS,
DefaultCapabilities: DefaultCapabilities,
DefaultSysctls: []string{},
DefaultUlimits: getDefaultProcessLimits(),
@@ -172,7 +177,7 @@
SeccompProfile: SeccompDefaultPath,
ShmSize: DefaultShmSize,
UTSNS: "private",
- UserNS: "private",
+ UserNS: "host",
UserNSSize: DefaultUserNSSize,
},
Network: NetworkConfig{
@@ -246,6 +251,8 @@
"/usr/local/sbin/kata-runtime",
"/sbin/kata-runtime",
"/bin/kata-runtime",
+ "/usr/bin/kata-qemu",
+ "/usr/bin/kata-fc",
},
}
c.ConmonEnvVars = []string{
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/podman-1.9.0/vendor/github.com/containers/common/pkg/config/libpodConfi… new/podman-1.9.1/vendor/github.com/containers/common/pkg/config/libpodConfi…
--- old/podman-1.9.0/vendor/github.com/containers/common/pkg/config/libpodConfi… 2020-04-15 16:51:28.000000000 +0200
+++ new/podman-1.9.1/vendor/github.com/containers/common/pkg/config/libpodConfi… 2020-04-28 22:29:37.000000000 +0200
@@ -224,6 +224,12 @@
}
}
+ // hard code EventsLogger to "file" to match older podman versions.
+ if config.EventsLogger != "file" {
+ logrus.Debugf("Ignoring lipod.conf EventsLogger setting %q. Use containers.conf if you want to change this setting and remove libpod.conf files.", config.EventsLogger)
+ config.EventsLogger = "file"
+ }
+
c.libpodToContainersConfig(config)
return nil
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/podman-1.9.0/vendor/modules.txt new/podman-1.9.1/vendor/modules.txt
--- old/podman-1.9.0/vendor/modules.txt 2020-04-15 16:51:28.000000000 +0200
+++ new/podman-1.9.1/vendor/modules.txt 2020-04-28 22:29:37.000000000 +0200
@@ -82,7 +82,7 @@
github.com/containers/buildah/pkg/supplemented
github.com/containers/buildah/pkg/umask
github.com/containers/buildah/util
-# github.com/containers/common v0.8.1
+# github.com/containers/common v0.8.2
github.com/containers/common/pkg/apparmor
github.com/containers/common/pkg/capabilities
github.com/containers/common/pkg/cgroupv2
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/podman-1.9.0/version/version.go new/podman-1.9.1/version/version.go
--- old/podman-1.9.0/version/version.go 2020-04-15 16:51:28.000000000 +0200
+++ new/podman-1.9.1/version/version.go 2020-04-28 22:29:37.000000000 +0200
@@ -4,7 +4,7 @@
// NOTE: remember to bump the version at the top
// of the top-level README.md file when this is
// bumped.
-const Version = "1.9.0"
+const Version = "1.9.1"
// RemoteAPIVersion is the version for the remote
// client API. It is used to determine compatibility
1
0
Hello community,
here is the log from the commit of package kured for openSUSE:Factory checked in at 2020-05-01 11:07:19
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/kured (Old)
and /work/SRC/openSUSE:Factory/.kured.new.2738 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "kured"
Fri May 1 11:07:19 2020 rev:11 rq:796462 version:1.3.0
Changes:
--------
--- /work/SRC/openSUSE:Factory/kured/kured.changes 2020-03-05 23:17:26.665148817 +0100
+++ /work/SRC/openSUSE:Factory/.kured.new.2738/kured.changes 2020-05-01 11:07:29.331082241 +0200
@@ -1,0 +2,6 @@
+Wed Apr 22 10:17:19 UTC 2020 - Dominique Leuenberger <dimstar(a)opensuse.org>
+
+- Fix build-dependency: we require golang(API) 1.12, not the exact
+ go package version 1.12.
+
+-------------------------------------------------------------------
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ kured.spec ++++++
--- /var/tmp/diff_new_pack.g283rJ/_old 2020-05-01 11:07:30.335084425 +0200
+++ /var/tmp/diff_new_pack.g283rJ/_new 2020-05-01 11:07:30.335084425 +0200
@@ -33,8 +33,8 @@
Source: %{name}-%{version}.tar.gz
Source1: vendor.tar.xz
BuildRequires: fdupes
-BuildRequires: go = 1.12
BuildRequires: go-go-md2man
+BuildRequires: golang(API) = 1.12
ExcludeArch: s390
%description
1
0
Hello community,
here is the log from the commit of package salt for openSUSE:Factory checked in at 2020-05-01 11:07:16
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/salt (Old)
and /work/SRC/openSUSE:Factory/.salt.new.2738 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "salt"
Fri May 1 11:07:16 2020 rev:103 rq:799271 version:3000.2
Changes:
--------
--- /work/SRC/openSUSE:Factory/salt/salt.changes 2020-04-10 23:52:59.664687426 +0200
+++ /work/SRC/openSUSE:Factory/.salt.new.2738/salt.changes 2020-05-01 11:07:22.511067410 +0200
@@ -1,0 +2,39 @@
+Thu Apr 30 13:24:35 UTC 2020 - Pablo Suárez Hernández <pablo.suarezhernandez(a)suse.com>
+
+- Update to Salt release version 3000.2
+ See release notes: https://docs.saltstack.com/en/latest/topics/releases/3000.2.html
+
+- Fix typo in 'minion_runner' for AESFuncs exposed methods
+
+- Added:
+ * fix-typo-in-minion_runner-for-aesfuncs-exposed-metho.patch
+
+- Removed:
+ * fix-cve-2020-11651-and-fix-cve-2020-11652.patch
+
+-------------------------------------------------------------------
+Thu Apr 30 12:30:04 UTC 2020 - Pablo Suárez Hernández <pablo.suarezhernandez(a)suse.com>
+
+- Update to Salt release version 3000.1
+ See release notes: https://docs.saltstack.com/en/latest/topics/releases/3000.1.html
+
+- Fix CVE-2020-11651 and CVE-2020-11652 (bsc#1170595)
+- Do not require vendored backports-abc (bsc#1170288)
+- Fix partition.mkpart to work without fstype (bsc#1169800)
+
+- Added:
+ * fixed-bug-lvm-has-no-parttion-type.-the-scipt-later-.patch
+ * remove-vendored-backports-abc-from-requirements.patch
+ * fix-cve-2020-11651-and-fix-cve-2020-11652.patch
+
+- Modified:
+ * fix-a-wrong-rebase-in-test_core.py-180.patch
+ * make-setup.py-script-to-not-require-setuptools-9.1.patch
+ * do-not-load-pip-state-if-there-is-no-3rd-party-depen.patch
+ * accumulated-changes-from-yomi-167.patch
+
+- Removed:
+ * fix-for-unless-requisite-when-pip-is-not-installed.patch
+ * fix-regression-in-service-states-with-reload-argumen.patch
+
+-------------------------------------------------------------------
Old:
----
fix-for-unless-requisite-when-pip-is-not-installed.patch
fix-regression-in-service-states-with-reload-argumen.patch
v3000.tar.gz
New:
----
fix-typo-in-minion_runner-for-aesfuncs-exposed-metho.patch
fixed-bug-lvm-has-no-parttion-type.-the-scipt-later-.patch
remove-vendored-backports-abc-from-requirements.patch
v3000.2.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ salt.spec ++++++
--- /var/tmp/diff_new_pack.6Mbovw/_old 2020-05-01 11:07:26.747076622 +0200
+++ /var/tmp/diff_new_pack.6Mbovw/_new 2020-05-01 11:07:26.751076630 +0200
@@ -63,7 +63,7 @@
%bcond_with builddocs
Name: salt
-Version: 3000
+Version: 3000.2
Release: 0
Summary: A parallel remote execution system
License: Apache-2.0
@@ -264,40 +264,42 @@
Patch91: add-missing-_utils-at-loader-grains_func.patch
# PATCH_FIX_OPENSUSE: https://github.com/openSUSE/salt/commit/25b4e3ea983b2606b2fb3d3c0e42f984020…
Patch92: remove-deprecated-usage-of-no_mock-and-no_mock_reaso.patch
-# PATCH-FIX_UPSTREAM: https://github.com/saltstack/salt/pull/56215
-Patch93: fix-for-unless-requisite-when-pip-is-not-installed.patch
# PATCH_FIX_OPENSUSE: https://github.com/openSUSE/salt/commit/a8f0a15e4067ec278c8a2d690e3bf815523…
-Patch94: fix-wrong-test_mod_del_repo_multiline_values-test-af.patch
-# PATCH-FIX_UPSTREAM: https://github.com/saltstack/salt/pull/56185
-Patch95: fix-regression-in-service-states-with-reload-argumen.patch
+Patch93: fix-wrong-test_mod_del_repo_multiline_values-test-af.patch
# PATCH-FIX_UPSTREAM: https://github.com/saltstack/salt/pull/56369
-Patch96: make-salt.ext.tornado.gen-to-use-salt.ext.backports_.patch
+Patch94: make-salt.ext.tornado.gen-to-use-salt.ext.backports_.patch
# PATCH_FIX_OPENSUSE: https://github.com/openSUSE/salt/pull/221
-Patch97: loader-invalidate-the-import-cachefor-extra-modules.patch
+Patch95: loader-invalidate-the-import-cachefor-extra-modules.patch
# PATCH-FIX_UPSTREAM: https://github.com/saltstack/salt/pull/55814
-Patch98: opensuse-3000-virt-defined-states-222.patch
+Patch96: opensuse-3000-virt-defined-states-222.patch
# PATCH_FIX_OPENSUSE: https://github.com/openSUSE/salt/pull/223
-Patch99: fix-for-temp-folder-definition-in-loader-unit-test.patch
+Patch97: fix-for-temp-folder-definition-in-loader-unit-test.patch
# PATCH-FIX_UPSTREAM: https://github.com/saltstack/salt/pull/56392
-Patch100: virt._get_domain-don-t-raise-an-exception-if-there-i.patch
+Patch98: virt._get_domain-don-t-raise-an-exception-if-there-i.patch
# PATCH-FIX_OPENSUSE: https://github.com/openSUSE/salt/pull/226
-Patch101: re-adding-function-to-test-for-root.patch
+Patch99: re-adding-function-to-test-for-root.patch
# PATCH-FIX_OPENSUSE: https://github.com/openSUSE/salt/pull/227
-Patch102: loop-fix-variable-names-for-until_no_eval.patch
+Patch100: loop-fix-variable-names-for-until_no_eval.patch
# PATCH-FIX_OPENSUSE: https://github.com/openSUSE/salt/pull/226
-Patch103: make-setup.py-script-to-not-require-setuptools-9.1.patch
+Patch101: make-setup.py-script-to-not-require-setuptools-9.1.patch
# PATCH-FIX_UPSTREAM: https://github.com/saltstack/salt/pull/50453
# https://github.com/saltstack/salt/commit/e20362f6f053eaa4144583604e6aac3d62…
# Can be dropped one pull/50453 is in released version.
-Patch104: reintroducing-reverted-changes.patch
+Patch102: reintroducing-reverted-changes.patch
# PATCH_FIX_OPENSUSE: https://github.com/openSUSE/salt/commit/b713d0b3031faadc17cd9cf09977ccc19e5…
-Patch105: add-new-custom-suse-capability-for-saltutil-state-mo.patch
+Patch103: add-new-custom-suse-capability-for-saltutil-state-mo.patch
# PATCH-FIX_UPSTREAM: https://github.com/saltstack/salt/pull/56463
-Patch106: fix-typo-on-msgpack-version-when-sanitizing-msgpack-.patch
+Patch104: fix-typo-on-msgpack-version-when-sanitizing-msgpack-.patch
# PATCH-FIX_UPSTREAM: https://github.com/saltstack/salt/pull/56491
-Patch107: sanitize-grains-loaded-from-roster_grains.json.patch
+Patch105: sanitize-grains-loaded-from-roster_grains.json.patch
# PATCH-FIX_OPENSUSE: https://github.com/openSUSE/salt/pull/228
-Patch108: adds-explicit-type-cast-for-port.patch
+Patch106: adds-explicit-type-cast-for-port.patch
+# PATCH-FIX_UPSTREAM: https://github.com/saltstack/salt/pull/53882
+Patch107: fixed-bug-lvm-has-no-parttion-type.-the-scipt-later-.patch
+# PATCH-FIX_OPENSUSE: https://github.com/openSUSE/salt/commit/4f80e969e31247a4755d98d25f29b5d8b1b…
+Patch108: remove-vendored-backports-abc-from-requirements.patch
+# PATCH-FIX_OPENSUSE: https://github.com/openSUSE/salt/commit/a5ef829408685d9e65eaa24bba40d221adf…
+Patch109: fix-typo-in-minion_runner-for-aesfuncs-exposed-metho.patch
BuildRoot: %{_tmppath}/%{name}-%{version}-build
BuildRequires: logrotate
@@ -802,7 +804,7 @@
%prep
# %setup -q -n salt-%{version}
-%setup -q -n salt-3000-suse
+%setup -q -n salt-3000.2-suse
cp %{S:1} .
cp %{S:5} ./.travis.yml
%patch1 -p1
@@ -913,6 +915,7 @@
%patch106 -p1
%patch107 -p1
%patch108 -p1
+%patch109 -p1
%build
%if 0%{?build_py2}
++++++ _lastrevision ++++++
--- /var/tmp/diff_new_pack.6Mbovw/_old 2020-05-01 11:07:26.807076752 +0200
+++ /var/tmp/diff_new_pack.6Mbovw/_new 2020-05-01 11:07:26.811076761 +0200
@@ -1 +1 @@
-c96fc684a059121ecc7baf013768b1b611777d73
\ No newline at end of file
+52475d78d58db61df54486af13c5eb4055c2d12e
\ No newline at end of file
++++++ _service ++++++
--- /var/tmp/diff_new_pack.6Mbovw/_old 2020-05-01 11:07:26.827076796 +0200
+++ /var/tmp/diff_new_pack.6Mbovw/_new 2020-05-01 11:07:26.827076796 +0200
@@ -3,7 +3,7 @@
<param name="url">https://github.com/openSUSE/salt-packaging.git</param>
<param name="subdir">salt</param>
<param name="filename">package</param>
- <param name="revision">3000</param>
+ <param name="revision">3000.2</param>
<param name="scm">git</param>
</service>
<service name="extract_file" mode="disabled">
@@ -12,8 +12,8 @@
</service>
<service name="download_url" mode="disabled">
<param name="host">codeload.github.com</param>
- <param name="path">openSUSE/salt/tar.gz/v3000-suse</param>
- <param name="filename">v3000.tar.gz</param>
+ <param name="path">openSUSE/salt/tar.gz/v3000.2-suse</param>
+ <param name="filename">v3000.2.tar.gz</param>
</service>
<service name="update_changelog" mode="disabled"></service>
</services>
++++++ accumulated-changes-from-yomi-167.patch ++++++
--- /var/tmp/diff_new_pack.6Mbovw/_old 2020-05-01 11:07:26.835076814 +0200
+++ /var/tmp/diff_new_pack.6Mbovw/_new 2020-05-01 11:07:26.839076822 +0200
@@ -1,4 +1,4 @@
-From 63f28a891449889fa3d7139470266162b10e88f2 Mon Sep 17 00:00:00 2001
+From 951d2a385a40c5322155f952e08430e8402bfbde Mon Sep 17 00:00:00 2001
From: Alberto Planas <aplanas(a)gmail.com>
Date: Tue, 22 Oct 2019 11:02:33 +0200
Subject: [PATCH] Accumulated changes from Yomi (#167)
@@ -88,13 +88,13 @@
'install_date_time_t': None,
}]
diff --git a/tests/unit/grains/test_core.py b/tests/unit/grains/test_core.py
-index 60914204b0..c4731f667a 100644
+index e722bfab5b..33d6a9507f 100644
--- a/tests/unit/grains/test_core.py
+++ b/tests/unit/grains/test_core.py
-@@ -1543,3 +1543,71 @@ class CoreGrainsTestCase(TestCase, LoaderModuleMockMixin):
-
- self.assertIn('osfullname', os_grains)
- self.assertEqual(os_grains.get('osfullname'), 'FreeBSD')
+@@ -1559,3 +1559,71 @@ class CoreGrainsTestCase(TestCase, LoaderModuleMockMixin):
+ assert len(info) == 2
+ assert all([x is not None for x in info])
+ assert all([isinstance(x, int) for x in info])
+
+ @skipIf(not salt.utils.platform.is_linux(), 'System is not Linux')
+ def test_kernelparams_return(self):
++++++ do-not-load-pip-state-if-there-is-no-3rd-party-depen.patch ++++++
--- /var/tmp/diff_new_pack.6Mbovw/_old 2020-05-01 11:07:26.915076987 +0200
+++ /var/tmp/diff_new_pack.6Mbovw/_new 2020-05-01 11:07:26.919076996 +0200
@@ -1,4 +1,4 @@
-From b1c96bdaec9723fd76a6dd5d72cf7fbfd681566f Mon Sep 17 00:00:00 2001
+From 3d5d89428ca333caa2c2259f679f8fffd7110ba6 Mon Sep 17 00:00:00 2001
From: Bo Maryniuk <bo(a)suse.de>
Date: Fri, 21 Sep 2018 17:31:39 +0200
Subject: [PATCH] Do not load pip state if there is no 3rd party
@@ -10,7 +10,7 @@
1 file changed, 10 insertions(+), 2 deletions(-)
diff --git a/salt/modules/pip.py b/salt/modules/pip.py
-index ffdb73aefa..ff0836c35f 100644
+index 0a0773a8f4..f19593ed1a 100644
--- a/salt/modules/pip.py
+++ b/salt/modules/pip.py
@@ -82,7 +82,10 @@ from __future__ import absolute_import, print_function, unicode_literals
@@ -25,7 +25,7 @@
import re
import shutil
import sys
-@@ -119,7 +122,12 @@ def __virtual__():
+@@ -121,7 +124,12 @@ def __virtual__():
entire filesystem. If it's not installed in a conventional location, the
user is required to provide the location of pip each time it is used.
'''
@@ -38,7 +38,7 @@
+ return ret
- def _clear_context(bin_env=None):
+ def _pip_bin_env(cwd, bin_env):
--
2.16.4
++++++ fix-a-wrong-rebase-in-test_core.py-180.patch ++++++
--- /var/tmp/diff_new_pack.6Mbovw/_old 2020-05-01 11:07:26.939077040 +0200
+++ /var/tmp/diff_new_pack.6Mbovw/_new 2020-05-01 11:07:26.943077048 +0200
@@ -1,4 +1,4 @@
-From 6418d9ebc3b269a0246262f79c0bab367e39cc52 Mon Sep 17 00:00:00 2001
+From 67830ea17ae1e87a6bffca2a9542788c200d7dd9 Mon Sep 17 00:00:00 2001
From: Alberto Planas <aplanas(a)gmail.com>
Date: Fri, 25 Oct 2019 15:43:16 +0200
Subject: [PATCH] Fix a wrong rebase in test_core.py (#180)
@@ -44,12 +44,12 @@
# PermissionError is new to Python 3, but corresponds to the EACESS and
# EPERM error numbers. Use those instead here for PY2 compatibility.
diff --git a/tests/unit/grains/test_core.py b/tests/unit/grains/test_core.py
-index c4731f667a..b4ed9379e5 100644
+index 33d6a9507f..7fa2436e58 100644
--- a/tests/unit/grains/test_core.py
+++ b/tests/unit/grains/test_core.py
-@@ -1544,51 +1544,6 @@ class CoreGrainsTestCase(TestCase, LoaderModuleMockMixin):
- self.assertIn('osfullname', os_grains)
- self.assertEqual(os_grains.get('osfullname'), 'FreeBSD')
+@@ -1560,51 +1560,6 @@ class CoreGrainsTestCase(TestCase, LoaderModuleMockMixin):
+ assert all([x is not None for x in info])
+ assert all([isinstance(x, int) for x in info])
- @skipIf(not salt.utils.platform.is_linux(), 'System is not Linux')
- def test_kernelparams_return(self):
++++++ fix-typo-in-minion_runner-for-aesfuncs-exposed-metho.patch ++++++
>From a5ef829408685d9e65eaa24bba40d221adffaa95 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Pablo=20Su=C3=A1rez=20Hern=C3=A1ndez?=
<psuarezhernandez(a)suse.com>
Date: Thu, 30 Apr 2020 14:15:00 +0100
Subject: [PATCH] Fix typo in 'minion_runner' for AESFuncs exposed
methods
---
salt/master.py | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/salt/master.py b/salt/master.py
index 997fd643b59aa133152b0280f408fcb41afe02b1..5a6ba44f11cf7a3ad3a4477524ed468dbba43993 100644
--- a/salt/master.py
+++ b/salt/master.py
@@ -1178,7 +1178,7 @@ class AESFuncs(TransportMethods):
'verify_minion', '_master_tops', '_ext_nodes', '_master_opts',
'_mine_get', '_mine', '_mine_delete', '_mine_flush', '_file_recv',
'_pillar', '_minion_event', '_handle_minion_event', '_return',
- '_syndic_return', '_minion_runner', 'pub_ret', 'minion_pub',
+ '_syndic_return', 'minion_runner', 'pub_ret', 'minion_pub',
'minion_publish', 'revoke_auth', 'run_func', '_serve_file',
'_file_find', '_file_hash', '_file_find_and_stat', '_file_list',
'_file_list_emptydirs', '_dir_list', '_symlink_list', '_file_envs',
--
2.23.0
++++++ fixed-bug-lvm-has-no-parttion-type.-the-scipt-later-.patch ++++++
>From 3df8359421f60140fd335d95c3c06de0bfd6ac4f Mon Sep 17 00:00:00 2001
From: tyl0re <andreas(a)vogler.name>
Date: Wed, 17 Jul 2019 10:13:09 +0200
Subject: [PATCH] Fixed Bug LVM has no Parttion Type. the Scipt Later
it is checked if fs_type: cmd = ('parted', '-m', '-s', '--', device,
'mkpart', part_type, fs_type, start, end) else: cmd = ('parted', '-m', '-s',
'--', device, 'mkpart', part_type, start, end) But never reached. The Check
was in earlier Versions with parted.py 443 if fs_type and fs_type not in
set(['ext2', 'fat32', 'fat16', 'linux-swap', 'reiserfs', 444 'hfs', 'hfs+',
'hfsx', 'NTFS', 'ufs', 'xfs', 'zfs']):
So the check on not defined fs_type is missing
---
salt/modules/parted_partition.py | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/salt/modules/parted_partition.py b/salt/modules/parted_partition.py
index 9441fec49fd1833da590b3f65637e8e92b287d1c..7d08a7b315c990e7a87c9c77fd6550a6174b7160 100644
--- a/salt/modules/parted_partition.py
+++ b/salt/modules/parted_partition.py
@@ -515,7 +515,7 @@ def mkpartfs(device, part_type, fs_type, start, end):
'Invalid part_type passed to partition.mkpartfs'
)
- if not _is_fstype(fs_type):
+ if fs_type and not _is_fstype(fs_type):
raise CommandExecutionError(
'Invalid fs_type passed to partition.mkpartfs'
)
--
2.23.0
++++++ make-setup.py-script-to-not-require-setuptools-9.1.patch ++++++
--- /var/tmp/diff_new_pack.6Mbovw/_old 2020-05-01 11:07:27.043077266 +0200
+++ /var/tmp/diff_new_pack.6Mbovw/_new 2020-05-01 11:07:27.043077266 +0200
@@ -1,23 +1,22 @@
-From 39b88fd0a3f882e0b33973665bbbacdd60c26a9b Mon Sep 17 00:00:00 2001
+From b73d7f73bebcde2936a55245471fbcb383778b6d Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Pablo=20Su=C3=A1rez=20Hern=C3=A1ndez?=
<psuarezhernandez(a)suse.com>
Date: Wed, 25 Mar 2020 13:09:52 +0000
Subject: [PATCH] Make setup.py script to not require setuptools > 9.1
---
- setup.py | 9 ---------
- 1 file changed, 9 deletions(-)
+ setup.py | 8 --------
+ 1 file changed, 8 deletions(-)
diff --git a/setup.py b/setup.py
-index 06374647df5e82a21fc39b08d41c596f0483ff0c..67a915c64ce5d774e8f89ff3502e85b6bc04b82f 100755
+index e852080e4b..033ccee8c3 100755
--- a/setup.py
+++ b/setup.py
-@@ -700,15 +700,6 @@ class Install(install):
+@@ -727,14 +727,6 @@ class Install(install):
install.finalize_options(self)
def run(self):
-- from distutils.version import StrictVersion
-- if StrictVersion(setuptools.__version__) < StrictVersion('9.1'):
+- if LooseVersion(setuptools.__version__) < LooseVersion('9.1'):
- sys.stderr.write(
- '\n\nInstalling Salt requires setuptools >= 9.1\n'
- 'Available setuptools version is {}\n\n'.format(setuptools.__version__)
@@ -29,6 +28,6 @@
# _version.py in the build command
self.distribution.running_salt_install = True
--
-2.23.0
+2.16.4
++++++ remove-vendored-backports-abc-from-requirements.patch ++++++
>From 3bbb31815bb3c6eacedb8891f6bf4ece8098deca Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Pablo=20Su=C3=A1rez=20Hern=C3=A1ndez?=
<psuarezhernandez(a)suse.com>
Date: Mon, 27 Apr 2020 16:37:38 +0100
Subject: [PATCH] Remove vendored 'backports-abc' from requirements
---
requirements/base.txt | 1 -
1 file changed, 1 deletion(-)
diff --git a/requirements/base.txt b/requirements/base.txt
index 922aec4c754178fd5c317ed636a0ebe487fcb25d..8adf76a2a045f4fca8695c584fedcfc913f54db2 100644
--- a/requirements/base.txt
+++ b/requirements/base.txt
@@ -4,7 +4,6 @@ PyYAML
MarkupSafe
requests>=1.0.0
# Requirements for Tornado 4.5.3 (vendored as salt.ext.tornado)
-backports-abc==0.5; python_version < '3.0'
singledispatch==3.4.0.3; python_version < '3.4'
# Required by Tornado to handle threads stuff.
futures>=2.0; python_version < '3.0'
--
2.23.0
++++++ v3000.tar.gz -> v3000.2.tar.gz ++++++
/work/SRC/openSUSE:Factory/salt/v3000.tar.gz /work/SRC/openSUSE:Factory/.salt.new.2738/v3000.2.tar.gz differ: char 16, line 1
1
0
Hello community,
here is the log from the commit of package python-Pillow for openSUSE:Factory checked in at 2020-05-01 11:07:10
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/python-Pillow (Old)
and /work/SRC/openSUSE:Factory/.python-Pillow.new.2738 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "python-Pillow"
Fri May 1 11:07:10 2020 rev:38 rq:799155 version:7.1.2
Changes:
--------
--- /work/SRC/openSUSE:Factory/python-Pillow/python-Pillow.changes 2019-11-22 10:21:35.505333103 +0100
+++ /work/SRC/openSUSE:Factory/.python-Pillow.new.2738/python-Pillow.changes 2020-05-01 11:07:15.791052795 +0200
@@ -1,0 +2,99 @@
+Thu Apr 30 08:47:06 UTC 2020 - Tomáš Chvátal <tchvatal(a)suse.com>
+
+- Update to 7.1.2:
+ * This fixes a regression introduced in 7.1.0 when adding support
+ for APNG files.
+ * When calling seek(n) on a regular PNG where n > 0, it failed to
+ raise an EOFError as it should have done
+
+-------------------------------------------------------------------
+Sat Apr 4 17:49:43 UTC 2020 - Arun Persaud <arun(a)gmx.de>
+
+- update to version 7.1.1:
+ * Fix regression seeking and telling PNGs #4512 #4514 [hugovk,
+ radarhere]
+
+- changes from version 7.1.0:
+ * Fix multiple OOB reads in FLI decoding #4503 [wiredfool]
+ * Fix buffer overflow in SGI-RLE decoding #4504 [wiredfool, hugovk]
+ * Fix bounds overflow in JPEG 2000 decoding #4505 [wiredfool]
+ * Fix bounds overflow in PCX decoding #4506 [wiredfool]
+ * Fix 2 buffer overflows in TIFF decoding #4507 [wiredfool]
+ * Add APNG support #4243 [pmrowla, radarhere, hugovk]
+ * ImageGrab.grab() for Linux with XCB #4260 [nulano, radarhere]
+ * Added three new channel operations #4230 [dwastberg, radarhere]
+ * Prevent masking of Image reduce method in Jpeg2KImagePlugin #4474
+ [radarhere, homm]
+ * Added reading of earlier ImageMagick PNG EXIF data #4471
+ [radarhere]
+ * Fixed endian handling for I;16 getextrema #4457 [radarhere]
+ * Release buffer if function returns prematurely #4381 [radarhere]
+ * Add JPEG comment to info dictionary #4455 [radarhere]
+ * Fix size calculation of Image.thumbnail() #4404 [orlnub123]
+ * Fixed stroke on FreeType < 2.9 #4401 [radarhere]
+ * If present, only use alpha channel for bounding box #4454
+ [radarhere]
+ * Warn if an unknown feature is passed to features.check() #4438
+ [jdufresne]
+ * Fix Name field length when saving IM images #4424 [hugovk,
+ radarhere]
+ * Allow saving of zero quality JPEG images #4440 [radarhere]
+ * Allow explicit zero width to hide outline #4334 [radarhere]
+ * Change ContainerIO return type to match file object mode #4297
+ [jdufresne, radarhere]
+ * Only draw each polygon pixel once #4333 [radarhere]
+ * Add support for shooting situation Exif IFD tags #4398 [alexagv]
+ * Handle multiple and malformed JPEG APP13 markers #4370 [homm]
+ * Depends: Update libwebp to 1.1.0 #4342, libjpeg to 9d #4352
+ [radarhere]
+
+-------------------------------------------------------------------
+Sun Jan 5 02:50:34 UTC 2020 - Arun Persaud <arun(a)gmx.de>
+
+- specfile:
+ * update copyright year
+ * drop python2 support
+
+- update to version 7.0.0:
+ * Drop support for EOL Python 2.7 #4109 [hugovk, radarhere,
+ jdufresne]
+ * Fix rounding error on RGB to L conversion #4320 [homm]
+ * Exif writing fixes: Rational boundaries and signed/unsigned types
+ #3980 [kkopachev, radarhere]
+ * Allow loading of WMF images at a given DPI #4311 [radarhere]
+ * Added reduce operation #4251 [homm]
+ * Raise ValueError for io.StringIO in Image.open #4302 [radarhere,
+ hugovk]
+ * Fix thumbnail geometry when DCT scaling is used #4231 [homm,
+ radarhere]
+ * Use default DPI when exif provides invalid x_resolution #4147
+ [beipang2, radarhere]
+ * Change default resize resampling filter from NEAREST to BICUBIC
+ #4255 [homm]
+ * Fixed black lines on upscaled images with the BOX filter #4278
+ [homm]
+ * Better thumbnail aspect ratio preservation #4256 [homm]
+ * Add La mode packing and unpacking #4248 [homm]
+ * Include tests in coverage reports #4173 [hugovk]
+ * Handle broken Photoshop data #4239 [radarhere]
+ * Raise a specific exception if no data is found for an MPO frame
+ #4240 [radarhere]
+ * Fix Unicode support for PyPy #4145 [nulano]
+ * Added UnidentifiedImageError #4182 [radarhere, hugovk]
+ * Remove deprecated __version__ from plugins #4197 [hugovk,
+ radarhere]
+ * Fixed freeing unallocated pointer when resizing with height too
+ large #4116 [radarhere]
+ * Copy info in Image.transform #4128 [radarhere]
+ * Corrected DdsImagePlugin setting info gamma #4171 [radarhere]
+ * Depends: Update libtiff to 4.1.0 #4195, Tk Tcl to 8.6.10 #4229,
+ libimagequant to 2.12.6 #4318 [radarhere]
+ * Improve handling of file resources #3577 [jdufresne]
+ * Removed CI testing of Fedora 29 #4165 [hugovk]
+ * Added pypy3 to tox envlist #4137 [jdufresne]
+ * Drop support for EOL PyQt4 and PySide #4108 [hugovk, radarhere]
+ * Removed deprecated setting of TIFF image sizes #4114 [radarhere]
+ * Removed deprecated PILLOW_VERSION #4107 [hugovk]
+ * Changed default frombuffer raw decoder args #1730 [radarhere]
+
+-------------------------------------------------------------------
Old:
----
Pillow-6.2.1.tar.gz
New:
----
Pillow-7.1.2.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ python-Pillow.spec ++++++
--- /var/tmp/diff_new_pack.j4CI2L/_old 2020-05-01 11:07:17.695056936 +0200
+++ /var/tmp/diff_new_pack.j4CI2L/_new 2020-05-01 11:07:17.695056936 +0200
@@ -1,7 +1,7 @@
#
# spec file for package python-Pillow
#
-# Copyright (c) 2019 SUSE LINUX GmbH, Nuernberg, Germany.
+# Copyright (c) 2020 SUSE LLC
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@@ -17,14 +17,10 @@
%define oldpython python
+%define skip_python2 1
%{?!python_module:%define python_module() python-%{**} python3-%{**}}
-%if 0%{?is_opensuse} || 0%{?suse_version} >= 1500
-%bcond_without tk
-%else
-%bcond_with tk
-%endif
Name: python-Pillow
-Version: 6.2.1
+Version: 7.1.2
Release: 0
Summary: Python Imaging Library (Fork)
License: HPND
@@ -50,9 +46,7 @@
BuildRequires: pkgconfig(tk)
BuildRequires: pkgconfig(zlib)
Requires: python-olefile
-%if %{with tk}
BuildRequires: %{python_module tk}
-%endif
%if 0%{?suse_version} >= 1500
BuildRequires: pkgconfig(libopenjp2)
%endif
@@ -127,19 +121,13 @@
%{python_sitearch}/PIL
%{python_sitearch}/PIL.pth
%{python_sitearch}/Pillow-%{version}-py%{python_version}.egg-info
-
-%if %{with tk}
%exclude %{python_sitearch}/PIL/ImageTk*
%exclude %{python_sitearch}/PIL/_imagingtk*
%pycache_only %exclude %{python_sitearch}/PIL/__pycache__/ImageTk.*
-%endif
-%if %{with tk}
%files %{python_files tk}
%{python_sitearch}/PIL/ImageTk*
%{python_sitearch}/PIL/_imagingtk*
%pycache_only %{python_sitearch}/PIL/__pycache__/ImageTk.*
-%endif
-
%changelog
++++++ Pillow-6.2.1.tar.gz -> Pillow-7.1.2.tar.gz ++++++
/work/SRC/openSUSE:Factory/python-Pillow/Pillow-6.2.1.tar.gz /work/SRC/openSUSE:Factory/.python-Pillow.new.2738/Pillow-7.1.2.tar.gz differ: char 5, line 1
1
0
Hello community,
here is the log from the commit of package python-pygments-pytest for openSUSE:Factory checked in at 2020-05-01 11:07:05
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/python-pygments-pytest (Old)
and /work/SRC/openSUSE:Factory/.python-pygments-pytest.new.2738 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "python-pygments-pytest"
Fri May 1 11:07:05 2020 rev:6 rq:798966 version:2.0.0
Changes:
--------
--- /work/SRC/openSUSE:Factory/python-pygments-pytest/python-pygments-pytest.changes 2020-04-19 21:44:14.203450795 +0200
+++ /work/SRC/openSUSE:Factory/.python-pygments-pytest.new.2738/python-pygments-pytest.changes 2020-05-01 11:07:08.131036137 +0200
@@ -1,0 +2,7 @@
+Wed Apr 29 15:01:50 UTC 2020 - Matej Cepl <mcepl(a)suse.com>
+
+- Switching off the failing coloring tests, it looks like
+ gh#asottile/pygments-pytest#18, but not completely certain
+ about it.
+
+-------------------------------------------------------------------
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ python-pygments-pytest.spec ++++++
--- /var/tmp/diff_new_pack.7sWhLo/_old 2020-05-01 11:07:08.715037406 +0200
+++ /var/tmp/diff_new_pack.7sWhLo/_new 2020-05-01 11:07:08.719037416 +0200
@@ -50,7 +50,7 @@
%python_expand %fdupes %{buildroot}%{$python_sitelib}
%check
-%pytest
+%pytest -k 'not (test_different_test_types or test_too_long_summary_line or test_deprecated_raises_exec_failure or test_blank_code_line)'
%files %{python_files}
%doc README.md
1
0
Hello community,
here is the log from the commit of package python-incremental for openSUSE:Factory checked in at 2020-05-01 11:07:00
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/python-incremental (Old)
and /work/SRC/openSUSE:Factory/.python-incremental.new.2738 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "python-incremental"
Fri May 1 11:07:00 2020 rev:4 rq:798928 version:17.5.0
Changes:
--------
--- /work/SRC/openSUSE:Factory/python-incremental/python-incremental.changes 2019-06-18 14:47:52.409706091 +0200
+++ /work/SRC/openSUSE:Factory/.python-incremental.new.2738/python-incremental.changes 2020-05-01 11:07:03.223025463 +0200
@@ -1,0 +2,6 @@
+Wed Apr 29 13:35:51 UTC 2020 - Tomáš Chvátal <tchvatal(a)suse.com>
+
+- Skip two tests that fail due to changes in pytest framework
+ needs to be fixed by upstream
+
+-------------------------------------------------------------------
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ python-incremental.spec ++++++
--- /var/tmp/diff_new_pack.qQcWqk/_old 2020-05-01 11:07:04.147027473 +0200
+++ /var/tmp/diff_new_pack.qQcWqk/_new 2020-05-01 11:07:04.147027473 +0200
@@ -1,7 +1,7 @@
#
# spec file for package python-incremental
#
-# Copyright (c) 2019 SUSE LINUX GmbH, Nuernberg, Germany.
+# Copyright (c) 2020 SUSE LLC
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@@ -30,7 +30,6 @@
Release: 0
Summary: Library that versions your Python projects
License: MIT
-Group: Development/Languages/Python
URL: https://github.com/twisted/incremental
Source: https://files.pythonhosted.org/packages/source/i/incremental/incremental-%{…
BuildRequires: %{python_module setuptools}
@@ -63,7 +62,9 @@
%if %{with test}
%check
-%pytest
+# test_prereleaseAttributeDeprecated - same as bellow
+# test_prereleaseDeprecated - uses deprecated pytest behaviour removed with pytest 5.4
+%pytest -k 'not test_prereleaseAttributeDeprecated and not test_prereleaseDeprecated'
%endif
%if !%{with test}
1
0
Hello community,
here is the log from the commit of package python-oauthlib for openSUSE:Factory checked in at 2020-05-01 11:06:55
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/python-oauthlib (Old)
and /work/SRC/openSUSE:Factory/.python-oauthlib.new.2738 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "python-oauthlib"
Fri May 1 11:06:55 2020 rev:27 rq:798907 version:3.1.0
Changes:
--------
--- /work/SRC/openSUSE:Factory/python-oauthlib/python-oauthlib.changes 2019-09-23 12:06:46.697911632 +0200
+++ /work/SRC/openSUSE:Factory/.python-oauthlib.new.2738/python-oauthlib.changes 2020-05-01 11:06:59.803018026 +0200
@@ -1,0 +2,6 @@
+Wed Apr 29 12:15:23 UTC 2020 - John Paul Adrian Glaubitz <adrian.glaubitz(a)suse.com>
+
+- Add patch to switch from external mock to unittest.mock
+ + o_switch_to_unitest_mock.patch
+
+-------------------------------------------------------------------
New:
----
o_switch_to_unitest_mock.patch
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ python-oauthlib.spec ++++++
--- /var/tmp/diff_new_pack.Eui1v8/_old 2020-05-01 11:07:00.551019652 +0200
+++ /var/tmp/diff_new_pack.Eui1v8/_new 2020-05-01 11:07:00.555019661 +0200
@@ -1,7 +1,7 @@
#
# spec file for package python-oauthlib
#
-# Copyright (c) 2019 SUSE LINUX GmbH, Nuernberg, Germany.
+# Copyright (c) 2020 SUSE LLC
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@@ -25,10 +25,10 @@
Group: Development/Languages/Python
URL: https://github.com/oauthlib/oauthlib
Source: https://files.pythonhosted.org/packages/source/o/oauthlib/oauthlib-%{versio…
+Patch: o_switch_to_unitest_mock.patch
BuildRequires: %{python_module PyJWT >= 1.0.0}
BuildRequires: %{python_module blinker}
BuildRequires: %{python_module cryptography}
-BuildRequires: %{python_module mock}
BuildRequires: %{python_module pyasn1}
BuildRequires: %{python_module setuptools}
BuildRequires: fdupes
@@ -58,6 +58,7 @@
%prep
%setup -q -n oauthlib-%{version}
+%patch0 -p1
%build
%python_build
++++++ o_switch_to_unitest_mock.patch ++++++
diff -Nru oauthlib-3.1.0.orig/tests/oauth1/rfc5849/endpoints/test_access_token.py oauthlib-3.1.0/tests/oauth1/rfc5849/endpoints/test_access_token.py
--- oauthlib-3.1.0.orig/tests/oauth1/rfc5849/endpoints/test_access_token.py 2019-08-06 16:49:50.000000000 +0200
+++ oauthlib-3.1.0/tests/oauth1/rfc5849/endpoints/test_access_token.py 2020-04-29 14:14:19.155418175 +0200
@@ -1,6 +1,6 @@
from __future__ import absolute_import, unicode_literals
-from mock import ANY, MagicMock
+from unittest.mock import ANY, MagicMock
from oauthlib.oauth1 import RequestValidator
from oauthlib.oauth1.rfc5849 import Client
diff -Nru oauthlib-3.1.0.orig/tests/oauth1/rfc5849/endpoints/test_authorization.py oauthlib-3.1.0/tests/oauth1/rfc5849/endpoints/test_authorization.py
--- oauthlib-3.1.0.orig/tests/oauth1/rfc5849/endpoints/test_authorization.py 2019-08-06 16:49:50.000000000 +0200
+++ oauthlib-3.1.0/tests/oauth1/rfc5849/endpoints/test_authorization.py 2020-04-29 14:14:19.147418149 +0200
@@ -1,6 +1,6 @@
from __future__ import absolute_import, unicode_literals
-from mock import MagicMock
+from unittest.mock import MagicMock
from oauthlib.oauth1 import RequestValidator
from oauthlib.oauth1.rfc5849 import errors
diff -Nru oauthlib-3.1.0.orig/tests/oauth1/rfc5849/endpoints/test_base.py oauthlib-3.1.0/tests/oauth1/rfc5849/endpoints/test_base.py
--- oauthlib-3.1.0.orig/tests/oauth1/rfc5849/endpoints/test_base.py 2019-08-06 16:49:50.000000000 +0200
+++ oauthlib-3.1.0/tests/oauth1/rfc5849/endpoints/test_base.py 2020-04-29 14:14:19.151418163 +0200
@@ -2,7 +2,7 @@
from re import sub
-from mock import MagicMock
+from unittest.mock import MagicMock
from oauthlib.common import CaseInsensitiveDict, safe_string_equals
from oauthlib.oauth1 import Client, RequestValidator
diff -Nru oauthlib-3.1.0.orig/tests/oauth1/rfc5849/endpoints/test_request_token.py oauthlib-3.1.0/tests/oauth1/rfc5849/endpoints/test_request_token.py
--- oauthlib-3.1.0.orig/tests/oauth1/rfc5849/endpoints/test_request_token.py 2019-08-06 16:49:50.000000000 +0200
+++ oauthlib-3.1.0/tests/oauth1/rfc5849/endpoints/test_request_token.py 2020-04-29 14:14:19.151418163 +0200
@@ -1,6 +1,6 @@
from __future__ import absolute_import, unicode_literals
-from mock import ANY, MagicMock
+from unittest.mock import ANY, MagicMock
from oauthlib.oauth1 import RequestValidator
from oauthlib.oauth1.rfc5849 import Client
diff -Nru oauthlib-3.1.0.orig/tests/oauth1/rfc5849/endpoints/test_resource.py oauthlib-3.1.0/tests/oauth1/rfc5849/endpoints/test_resource.py
--- oauthlib-3.1.0.orig/tests/oauth1/rfc5849/endpoints/test_resource.py 2019-08-06 16:49:50.000000000 +0200
+++ oauthlib-3.1.0/tests/oauth1/rfc5849/endpoints/test_resource.py 2020-04-29 14:14:19.151418163 +0200
@@ -1,6 +1,6 @@
from __future__ import absolute_import, unicode_literals
-from mock import ANY, MagicMock
+from unittest.mock import ANY, MagicMock
from oauthlib.oauth1 import RequestValidator
from oauthlib.oauth1.rfc5849 import Client
diff -Nru oauthlib-3.1.0.orig/tests/oauth1/rfc5849/endpoints/test_signature_only.py oauthlib-3.1.0/tests/oauth1/rfc5849/endpoints/test_signature_only.py
--- oauthlib-3.1.0.orig/tests/oauth1/rfc5849/endpoints/test_signature_only.py 2019-08-06 16:49:50.000000000 +0200
+++ oauthlib-3.1.0/tests/oauth1/rfc5849/endpoints/test_signature_only.py 2020-04-29 14:14:19.151418163 +0200
@@ -1,6 +1,6 @@
from __future__ import absolute_import, unicode_literals
-from mock import ANY, MagicMock
+from unittest.mock import ANY, MagicMock
from oauthlib.oauth1 import RequestValidator
from oauthlib.oauth1.rfc5849 import Client
diff -Nru oauthlib-3.1.0.orig/tests/oauth2/rfc6749/clients/test_backend_application.py oauthlib-3.1.0/tests/oauth2/rfc6749/clients/test_backend_application.py
--- oauthlib-3.1.0.orig/tests/oauth2/rfc6749/clients/test_backend_application.py 2019-08-06 16:49:50.000000000 +0200
+++ oauthlib-3.1.0/tests/oauth2/rfc6749/clients/test_backend_application.py 2020-04-29 14:14:19.135418111 +0200
@@ -3,7 +3,7 @@
import os
-from mock import patch
+from unittest.mock import patch
from oauthlib import signals
from oauthlib.oauth2 import BackendApplicationClient
diff -Nru oauthlib-3.1.0.orig/tests/oauth2/rfc6749/clients/test_legacy_application.py oauthlib-3.1.0/tests/oauth2/rfc6749/clients/test_legacy_application.py
--- oauthlib-3.1.0.orig/tests/oauth2/rfc6749/clients/test_legacy_application.py 2019-08-06 16:49:50.000000000 +0200
+++ oauthlib-3.1.0/tests/oauth2/rfc6749/clients/test_legacy_application.py 2020-04-29 14:14:19.131418098 +0200
@@ -3,7 +3,7 @@
import os
-from mock import patch
+from unittest.mock import patch
from oauthlib import signals
from oauthlib.oauth2 import LegacyApplicationClient
diff -Nru oauthlib-3.1.0.orig/tests/oauth2/rfc6749/clients/test_mobile_application.py oauthlib-3.1.0/tests/oauth2/rfc6749/clients/test_mobile_application.py
--- oauthlib-3.1.0.orig/tests/oauth2/rfc6749/clients/test_mobile_application.py 2019-08-06 16:49:50.000000000 +0200
+++ oauthlib-3.1.0/tests/oauth2/rfc6749/clients/test_mobile_application.py 2020-04-29 14:14:19.135418111 +0200
@@ -3,7 +3,7 @@
import os
-from mock import patch
+from unittest.mock import patch
from oauthlib import signals
from oauthlib.oauth2 import MobileApplicationClient
diff -Nru oauthlib-3.1.0.orig/tests/oauth2/rfc6749/clients/test_service_application.py oauthlib-3.1.0/tests/oauth2/rfc6749/clients/test_service_application.py
--- oauthlib-3.1.0.orig/tests/oauth2/rfc6749/clients/test_service_application.py 2019-08-06 16:49:50.000000000 +0200
+++ oauthlib-3.1.0/tests/oauth2/rfc6749/clients/test_service_application.py 2020-04-29 14:14:19.131418098 +0200
@@ -5,7 +5,7 @@
from time import time
import jwt
-from mock import patch
+from unittest.mock import patch
from oauthlib.common import Request
from oauthlib.oauth2 import ServiceApplicationClient
diff -Nru oauthlib-3.1.0.orig/tests/oauth2/rfc6749/clients/test_web_application.py oauthlib-3.1.0/tests/oauth2/rfc6749/clients/test_web_application.py
--- oauthlib-3.1.0.orig/tests/oauth2/rfc6749/clients/test_web_application.py 2019-08-06 16:49:50.000000000 +0200
+++ oauthlib-3.1.0/tests/oauth2/rfc6749/clients/test_web_application.py 2020-04-29 14:14:19.131418098 +0200
@@ -5,7 +5,7 @@
import os
import warnings
-from mock import patch
+from unittest.mock import patch
from oauthlib import common, signals
from oauthlib.oauth2 import (BackendApplicationClient, Client,
diff -Nru oauthlib-3.1.0.orig/tests/oauth2/rfc6749/endpoints/test_client_authentication.py oauthlib-3.1.0/tests/oauth2/rfc6749/endpoints/test_client_authentication.py
--- oauthlib-3.1.0.orig/tests/oauth2/rfc6749/endpoints/test_client_authentication.py 2019-08-06 16:49:50.000000000 +0200
+++ oauthlib-3.1.0/tests/oauth2/rfc6749/endpoints/test_client_authentication.py 2020-04-29 14:14:19.103418008 +0200
@@ -13,7 +13,7 @@
import json
-import mock
+from unittest import mock
from oauthlib.oauth2 import (BackendApplicationServer, LegacyApplicationServer,
MobileApplicationServer, RequestValidator,
diff -Nru oauthlib-3.1.0.orig/tests/oauth2/rfc6749/endpoints/test_credentials_preservation.py oauthlib-3.1.0/tests/oauth2/rfc6749/endpoints/test_credentials_preservation.py
--- oauthlib-3.1.0.orig/tests/oauth2/rfc6749/endpoints/test_credentials_preservation.py 2019-08-06 16:49:50.000000000 +0200
+++ oauthlib-3.1.0/tests/oauth2/rfc6749/endpoints/test_credentials_preservation.py 2020-04-29 14:14:19.111418034 +0200
@@ -7,7 +7,7 @@
import json
-import mock
+from unittest import mock
from oauthlib.oauth2 import (MobileApplicationServer, RequestValidator,
WebApplicationServer)
diff -Nru oauthlib-3.1.0.orig/tests/oauth2/rfc6749/endpoints/test_error_responses.py oauthlib-3.1.0/tests/oauth2/rfc6749/endpoints/test_error_responses.py
--- oauthlib-3.1.0.orig/tests/oauth2/rfc6749/endpoints/test_error_responses.py 2019-08-06 16:49:50.000000000 +0200
+++ oauthlib-3.1.0/tests/oauth2/rfc6749/endpoints/test_error_responses.py 2020-04-29 14:14:19.115418046 +0200
@@ -4,7 +4,7 @@
import json
-import mock
+from unittest import mock
from oauthlib.common import urlencode
from oauthlib.oauth2 import (BackendApplicationServer, LegacyApplicationServer,
diff -Nru oauthlib-3.1.0.orig/tests/oauth2/rfc6749/endpoints/test_extra_credentials.py oauthlib-3.1.0/tests/oauth2/rfc6749/endpoints/test_extra_credentials.py
--- oauthlib-3.1.0.orig/tests/oauth2/rfc6749/endpoints/test_extra_credentials.py 2019-08-06 16:49:50.000000000 +0200
+++ oauthlib-3.1.0/tests/oauth2/rfc6749/endpoints/test_extra_credentials.py 2020-04-29 14:14:19.123418072 +0200
@@ -2,7 +2,7 @@
"""
from __future__ import absolute_import, unicode_literals
-import mock
+from unittest import mock
from oauthlib.oauth2 import (BackendApplicationServer, LegacyApplicationServer,
MobileApplicationServer, RequestValidator,
diff -Nru oauthlib-3.1.0.orig/tests/oauth2/rfc6749/endpoints/test_introspect_endpoint.py oauthlib-3.1.0/tests/oauth2/rfc6749/endpoints/test_introspect_endpoint.py
--- oauthlib-3.1.0.orig/tests/oauth2/rfc6749/endpoints/test_introspect_endpoint.py 2019-08-06 16:49:50.000000000 +0200
+++ oauthlib-3.1.0/tests/oauth2/rfc6749/endpoints/test_introspect_endpoint.py 2020-04-29 14:14:19.119418060 +0200
@@ -3,7 +3,7 @@
from json import loads
-from mock import MagicMock
+from unittest.mock import MagicMock
from oauthlib.common import urlencode
from oauthlib.oauth2 import RequestValidator, IntrospectEndpoint
diff -Nru oauthlib-3.1.0.orig/tests/oauth2/rfc6749/endpoints/test_resource_owner_association.py oauthlib-3.1.0/tests/oauth2/rfc6749/endpoints/test_resource_owner_association.py
--- oauthlib-3.1.0.orig/tests/oauth2/rfc6749/endpoints/test_resource_owner_association.py 2019-08-06 16:49:50.000000000 +0200
+++ oauthlib-3.1.0/tests/oauth2/rfc6749/endpoints/test_resource_owner_association.py 2020-04-29 14:14:19.107418020 +0200
@@ -4,7 +4,7 @@
import json
-import mock
+from unittest import mock
from oauthlib.oauth2 import (BackendApplicationServer, LegacyApplicationServer,
MobileApplicationServer, RequestValidator,
diff -Nru oauthlib-3.1.0.orig/tests/oauth2/rfc6749/endpoints/test_revocation_endpoint.py oauthlib-3.1.0/tests/oauth2/rfc6749/endpoints/test_revocation_endpoint.py
--- oauthlib-3.1.0.orig/tests/oauth2/rfc6749/endpoints/test_revocation_endpoint.py 2019-08-06 16:49:50.000000000 +0200
+++ oauthlib-3.1.0/tests/oauth2/rfc6749/endpoints/test_revocation_endpoint.py 2020-04-29 14:14:19.111418034 +0200
@@ -3,7 +3,7 @@
from json import loads
-from mock import MagicMock
+from unittest.mock import MagicMock
from oauthlib.common import urlencode
from oauthlib.oauth2 import RequestValidator, RevocationEndpoint
diff -Nru oauthlib-3.1.0.orig/tests/oauth2/rfc6749/endpoints/test_scope_handling.py oauthlib-3.1.0/tests/oauth2/rfc6749/endpoints/test_scope_handling.py
--- oauthlib-3.1.0.orig/tests/oauth2/rfc6749/endpoints/test_scope_handling.py 2019-08-06 16:49:50.000000000 +0200
+++ oauthlib-3.1.0/tests/oauth2/rfc6749/endpoints/test_scope_handling.py 2020-04-29 14:14:19.119418060 +0200
@@ -7,7 +7,7 @@
import json
-import mock
+from unittest import mock
from oauthlib.oauth2 import (BackendApplicationServer, LegacyApplicationServer,
MobileApplicationServer, RequestValidator, Server,
diff -Nru oauthlib-3.1.0.orig/tests/oauth2/rfc6749/grant_types/test_authorization_code.py oauthlib-3.1.0/tests/oauth2/rfc6749/grant_types/test_authorization_code.py
--- oauthlib-3.1.0.orig/tests/oauth2/rfc6749/grant_types/test_authorization_code.py 2019-08-06 16:49:50.000000000 +0200
+++ oauthlib-3.1.0/tests/oauth2/rfc6749/grant_types/test_authorization_code.py 2020-04-29 14:14:19.139418124 +0200
@@ -3,7 +3,7 @@
import json
-import mock
+from unittest import mock
from oauthlib.common import Request
from oauthlib.oauth2.rfc6749 import errors
diff -Nru oauthlib-3.1.0.orig/tests/oauth2/rfc6749/grant_types/test_client_credentials.py oauthlib-3.1.0/tests/oauth2/rfc6749/grant_types/test_client_credentials.py
--- oauthlib-3.1.0.orig/tests/oauth2/rfc6749/grant_types/test_client_credentials.py 2019-08-06 16:49:50.000000000 +0200
+++ oauthlib-3.1.0/tests/oauth2/rfc6749/grant_types/test_client_credentials.py 2020-04-29 14:14:19.143418137 +0200
@@ -3,7 +3,7 @@
import json
-import mock
+from unittest import mock
from oauthlib.common import Request
from oauthlib.oauth2.rfc6749.grant_types import ClientCredentialsGrant
diff -Nru oauthlib-3.1.0.orig/tests/oauth2/rfc6749/grant_types/test_implicit.py oauthlib-3.1.0/tests/oauth2/rfc6749/grant_types/test_implicit.py
--- oauthlib-3.1.0.orig/tests/oauth2/rfc6749/grant_types/test_implicit.py 2019-08-06 16:49:50.000000000 +0200
+++ oauthlib-3.1.0/tests/oauth2/rfc6749/grant_types/test_implicit.py 2020-04-29 14:14:19.143418137 +0200
@@ -1,7 +1,7 @@
# -*- coding: utf-8 -*-
from __future__ import absolute_import, unicode_literals
-import mock
+from unittest import mock
from oauthlib.common import Request
from oauthlib.oauth2.rfc6749.grant_types import ImplicitGrant
diff -Nru oauthlib-3.1.0.orig/tests/oauth2/rfc6749/grant_types/test_refresh_token.py oauthlib-3.1.0/tests/oauth2/rfc6749/grant_types/test_refresh_token.py
--- oauthlib-3.1.0.orig/tests/oauth2/rfc6749/grant_types/test_refresh_token.py 2019-08-06 16:49:50.000000000 +0200
+++ oauthlib-3.1.0/tests/oauth2/rfc6749/grant_types/test_refresh_token.py 2020-04-29 14:14:19.139418124 +0200
@@ -3,7 +3,7 @@
import json
-import mock
+from unittest import mock
from oauthlib.common import Request
from oauthlib.oauth2.rfc6749 import errors
diff -Nru oauthlib-3.1.0.orig/tests/oauth2/rfc6749/grant_types/test_resource_owner_password.py oauthlib-3.1.0/tests/oauth2/rfc6749/grant_types/test_resource_owner_password.py
--- oauthlib-3.1.0.orig/tests/oauth2/rfc6749/grant_types/test_resource_owner_password.py 2019-08-06 16:49:50.000000000 +0200
+++ oauthlib-3.1.0/tests/oauth2/rfc6749/grant_types/test_resource_owner_password.py 2020-04-29 14:14:19.139418124 +0200
@@ -3,7 +3,7 @@
import json
-import mock
+from unittest import mock
from oauthlib.common import Request
from oauthlib.oauth2.rfc6749 import errors
diff -Nru oauthlib-3.1.0.orig/tests/oauth2/rfc6749/test_parameters.py oauthlib-3.1.0/tests/oauth2/rfc6749/test_parameters.py
--- oauthlib-3.1.0.orig/tests/oauth2/rfc6749/test_parameters.py 2019-08-06 16:49:50.000000000 +0200
+++ oauthlib-3.1.0/tests/oauth2/rfc6749/test_parameters.py 2020-04-29 14:14:19.127418085 +0200
@@ -1,6 +1,6 @@
from __future__ import absolute_import, unicode_literals
-from mock import patch
+from unittest.mock import patch
from oauthlib import signals
from oauthlib.oauth2.rfc6749.errors import *
diff -Nru oauthlib-3.1.0.orig/tests/oauth2/rfc6749/test_server.py oauthlib-3.1.0/tests/oauth2/rfc6749/test_server.py
--- oauthlib-3.1.0.orig/tests/oauth2/rfc6749/test_server.py 2019-08-06 16:49:50.000000000 +0200
+++ oauthlib-3.1.0/tests/oauth2/rfc6749/test_server.py 2020-04-29 14:14:19.123418072 +0200
@@ -3,7 +3,7 @@
import json
-import mock
+from unittest import mock
from oauthlib import common
from oauthlib.oauth2.rfc6749 import errors, tokens
diff -Nru oauthlib-3.1.0.orig/tests/oauth2/rfc6749/test_tokens.py oauthlib-3.1.0/tests/oauth2/rfc6749/test_tokens.py
--- oauthlib-3.1.0.orig/tests/oauth2/rfc6749/test_tokens.py 2019-08-06 16:49:50.000000000 +0200
+++ oauthlib-3.1.0/tests/oauth2/rfc6749/test_tokens.py 2020-04-29 14:14:19.127418085 +0200
@@ -1,6 +1,6 @@
from __future__ import absolute_import, unicode_literals
-import mock
+from unittest import mock
from oauthlib.common import Request
from oauthlib.oauth2.rfc6749.tokens import (
diff -Nru oauthlib-3.1.0.orig/tests/openid/connect/core/endpoints/test_claims_handling.py oauthlib-3.1.0/tests/openid/connect/core/endpoints/test_claims_handling.py
--- oauthlib-3.1.0.orig/tests/openid/connect/core/endpoints/test_claims_handling.py 2019-08-06 16:49:50.000000000 +0200
+++ oauthlib-3.1.0/tests/openid/connect/core/endpoints/test_claims_handling.py 2020-04-29 14:14:19.055417852 +0200
@@ -8,7 +8,7 @@
"""
from __future__ import absolute_import, unicode_literals
-import mock
+from unittest import mock
from oauthlib.openid import RequestValidator
from oauthlib.openid.connect.core.endpoints.pre_configured import Server
diff -Nru oauthlib-3.1.0.orig/tests/openid/connect/core/endpoints/test_openid_connect_params_handling.py oauthlib-3.1.0/tests/openid/connect/core/endpoints/test_openid_connect_params_handling.py
--- oauthlib-3.1.0.orig/tests/openid/connect/core/endpoints/test_openid_connect_params_handling.py 2019-08-06 16:49:50.000000000 +0200
+++ oauthlib-3.1.0/tests/openid/connect/core/endpoints/test_openid_connect_params_handling.py 2020-04-29 14:14:19.067417890 +0200
@@ -1,6 +1,6 @@
from __future__ import absolute_import, unicode_literals
-import mock
+from unittest import mock
from oauthlib.oauth2 import InvalidRequestError
from oauthlib.oauth2.rfc6749.endpoints.authorization import \
diff -Nru oauthlib-3.1.0.orig/tests/openid/connect/core/endpoints/test_userinfo_endpoint.py oauthlib-3.1.0/tests/openid/connect/core/endpoints/test_userinfo_endpoint.py
--- oauthlib-3.1.0.orig/tests/openid/connect/core/endpoints/test_userinfo_endpoint.py 2019-08-06 16:49:50.000000000 +0200
+++ oauthlib-3.1.0/tests/openid/connect/core/endpoints/test_userinfo_endpoint.py 2020-04-29 14:14:19.059417864 +0200
@@ -1,7 +1,7 @@
# -*- coding: utf-8 -*-
from __future__ import absolute_import, unicode_literals
-import mock
+from unittest import mock
import json
from oauthlib.openid import RequestValidator
diff -Nru oauthlib-3.1.0.orig/tests/openid/connect/core/grant_types/test_authorization_code.py oauthlib-3.1.0/tests/openid/connect/core/grant_types/test_authorization_code.py
--- oauthlib-3.1.0.orig/tests/openid/connect/core/grant_types/test_authorization_code.py 2019-08-06 16:49:50.000000000 +0200
+++ oauthlib-3.1.0/tests/openid/connect/core/grant_types/test_authorization_code.py 2020-04-29 14:14:19.091417969 +0200
@@ -3,7 +3,7 @@
import json
-import mock
+from unittest import mock
from oauthlib.common import Request
from oauthlib.oauth2.rfc6749.tokens import BearerToken
diff -Nru oauthlib-3.1.0.orig/tests/openid/connect/core/grant_types/test_base.py oauthlib-3.1.0/tests/openid/connect/core/grant_types/test_base.py
--- oauthlib-3.1.0.orig/tests/openid/connect/core/grant_types/test_base.py 2019-08-06 16:49:50.000000000 +0200
+++ oauthlib-3.1.0/tests/openid/connect/core/grant_types/test_base.py 2020-04-29 14:14:19.087417955 +0200
@@ -1,5 +1,5 @@
# -*- coding: utf-8 -*-
-import mock
+from unittest import mock
import time
from oauthlib.common import Request
diff -Nru oauthlib-3.1.0.orig/tests/openid/connect/core/grant_types/test_dispatchers.py oauthlib-3.1.0/tests/openid/connect/core/grant_types/test_dispatchers.py
--- oauthlib-3.1.0.orig/tests/openid/connect/core/grant_types/test_dispatchers.py 2019-08-06 16:49:50.000000000 +0200
+++ oauthlib-3.1.0/tests/openid/connect/core/grant_types/test_dispatchers.py 2020-04-29 14:14:19.083417943 +0200
@@ -1,6 +1,6 @@
# -*- coding: utf-8 -*-
from __future__ import absolute_import, unicode_literals
-import mock
+from unittest import mock
from oauthlib.common import Request
diff -Nru oauthlib-3.1.0.orig/tests/openid/connect/core/grant_types/test_hybrid.py oauthlib-3.1.0/tests/openid/connect/core/grant_types/test_hybrid.py
--- oauthlib-3.1.0.orig/tests/openid/connect/core/grant_types/test_hybrid.py 2019-08-06 16:49:50.000000000 +0200
+++ oauthlib-3.1.0/tests/openid/connect/core/grant_types/test_hybrid.py 2020-04-29 14:14:19.083417943 +0200
@@ -1,7 +1,7 @@
# -*- coding: utf-8 -*-
from __future__ import absolute_import, unicode_literals
-import mock
+from unittest import mock
from oauthlib.oauth2.rfc6749 import errors
from oauthlib.oauth2.rfc6749.tokens import BearerToken
diff -Nru oauthlib-3.1.0.orig/tests/openid/connect/core/grant_types/test_implicit.py oauthlib-3.1.0/tests/openid/connect/core/grant_types/test_implicit.py
--- oauthlib-3.1.0.orig/tests/openid/connect/core/grant_types/test_implicit.py 2019-08-06 16:49:50.000000000 +0200
+++ oauthlib-3.1.0/tests/openid/connect/core/grant_types/test_implicit.py 2020-04-29 14:14:19.091417969 +0200
@@ -1,7 +1,7 @@
# -*- coding: utf-8 -*-
from __future__ import absolute_import, unicode_literals
-import mock
+from unittest import mock
from oauthlib.common import Request
from oauthlib.oauth2.rfc6749 import errors
diff -Nru oauthlib-3.1.0.orig/tests/openid/connect/core/test_server.py oauthlib-3.1.0/tests/openid/connect/core/test_server.py
--- oauthlib-3.1.0.orig/tests/openid/connect/core/test_server.py 2019-08-06 16:49:50.000000000 +0200
+++ oauthlib-3.1.0/tests/openid/connect/core/test_server.py 2020-04-29 14:14:19.075417916 +0200
@@ -3,7 +3,7 @@
import json
-import mock
+from unittest import mock
from oauthlib.oauth2.rfc6749 import errors
from oauthlib.oauth2.rfc6749.endpoints.authorization import AuthorizationEndpoint
diff -Nru oauthlib-3.1.0.orig/tests/openid/connect/core/test_tokens.py oauthlib-3.1.0/tests/openid/connect/core/test_tokens.py
--- oauthlib-3.1.0.orig/tests/openid/connect/core/test_tokens.py 2019-08-06 16:49:50.000000000 +0200
+++ oauthlib-3.1.0/tests/openid/connect/core/test_tokens.py 2020-04-29 14:14:19.079417930 +0200
@@ -1,6 +1,6 @@
from __future__ import absolute_import, unicode_literals
-import mock
+from unittest import mock
from oauthlib.openid.connect.core.tokens import JWTToken
1
0
Hello community,
here is the log from the commit of package python-eventlet for openSUSE:Factory checked in at 2020-05-01 11:06:49
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/python-eventlet (Old)
and /work/SRC/openSUSE:Factory/.python-eventlet.new.2738 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "python-eventlet"
Fri May 1 11:06:49 2020 rev:34 rq:798871 version:0.25.2
Changes:
--------
--- /work/SRC/openSUSE:Factory/python-eventlet/python-eventlet.changes 2019-09-23 12:05:16.989926444 +0200
+++ /work/SRC/openSUSE:Factory/.python-eventlet.new.2738/python-eventlet.changes 2020-05-01 11:06:54.179005795 +0200
@@ -1,0 +2,6 @@
+Wed Apr 29 10:49:14 UTC 2020 - Dirk Mueller <dmueller(a)suse.com>
+
+- update to 0.25.2:
+ * green.ssl: redundant set_nonblocking() caused SSLWantReadError
+
+-------------------------------------------------------------------
Old:
----
eventlet-0.25.1.tar.gz
New:
----
eventlet-0.25.2.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ python-eventlet.spec ++++++
--- /var/tmp/diff_new_pack.GprWTE/_old 2020-05-01 11:06:55.459008579 +0200
+++ /var/tmp/diff_new_pack.GprWTE/_new 2020-05-01 11:06:55.459008579 +0200
@@ -1,7 +1,7 @@
#
# spec file for package python-eventlet
#
-# Copyright (c) 2019 SUSE LINUX GmbH, Nuernberg, Germany.
+# Copyright (c) 2020 SUSE LLC
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@@ -18,7 +18,7 @@
%{?!python_module:%define python_module() python-%{**} python3-%{**}}
Name: python-eventlet
-Version: 0.25.1
+Version: 0.25.2
Release: 0
Summary: Concurrent networking library for Python
License: MIT
++++++ eventlet-0.25.1.tar.gz -> eventlet-0.25.2.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/eventlet-0.25.1/NEWS new/eventlet-0.25.2/NEWS
--- old/eventlet-0.25.1/NEWS 2019-08-21 23:29:28.000000000 +0200
+++ new/eventlet-0.25.2/NEWS 2020-04-09 14:43:16.000000000 +0200
@@ -1,4 +1,9 @@
+0.25.2
+======
+* green.ssl: redundant set_nonblocking() caused SSLWantReadError
+
0.25.1
+======
* wsgi (tests): Stop using deprecated cgi.parse_qs() to support Python 3.8; Thanks to Miro Hrončok
* os: Add workaround to `open` for pathlib on py 3.7; Thanks to David Szotten
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/eventlet-0.25.1/PKG-INFO new/eventlet-0.25.2/PKG-INFO
--- old/eventlet-0.25.1/PKG-INFO 2019-08-21 23:35:05.000000000 +0200
+++ new/eventlet-0.25.2/PKG-INFO 2020-04-09 14:44:00.000000000 +0200
@@ -1,6 +1,6 @@
Metadata-Version: 1.1
Name: eventlet
-Version: 0.25.1
+Version: 0.25.2
Summary: Highly concurrent networking library
Home-page: http://eventlet.net
Author: Linden Lab
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/eventlet-0.25.1/benchmarks/__init__.py new/eventlet-0.25.2/benchmarks/__init__.py
--- old/eventlet-0.25.1/benchmarks/__init__.py 1970-01-01 01:00:00.000000000 +0100
+++ new/eventlet-0.25.2/benchmarks/__init__.py 2020-03-02 12:07:13.000000000 +0100
@@ -0,0 +1,207 @@
+from __future__ import print_function
+import argparse
+import gc
+import importlib
+import inspect
+import math
+import random
+import re
+import sys
+import timeit
+
+import eventlet
+import six
+
+
+# legacy, TODO convert context/localhost_socket benchmarks to new way
+def measure_best(repeat, iters,
+ common_setup='pass',
+ common_cleanup='pass',
+ *funcs):
+ funcs = list(funcs)
+ results = dict((f, []) for f in funcs)
+
+ for _ in range(repeat):
+ random.shuffle(funcs)
+ for func in funcs:
+ gc.collect()
+ t = timeit.Timer(func, setup=common_setup)
+ results[func].append(t.timeit(iters))
+ common_cleanup()
+
+ best_results = {}
+ for func, times in six.iteritems(results):
+ best_results[func] = min(times)
+ return best_results
+
+
+class Benchmark:
+ func = None
+ name = ''
+ iters = 0
+ ns_per_op = 0
+ allocs_per_op = 0
+ mb_per_s = 0
+
+ def __init__(self, **kwargs):
+ for k, v in six.iteritems(kwargs):
+ if not hasattr(self, k):
+ raise AttributeError(k)
+ setattr(self, k, v)
+
+ def __str__(self):
+ kvs = ', '.join('{}={}'.format(k, v) for k, v in six.iteritems(self.__dict__) if not k.startswith('_'))
+ return 'Benchmark<{}>'.format(kvs)
+
+ __repr__ = __str__
+
+ def format_result(self, name_pad_to=64):
+ # format compatible with golang.org/x/tools/cmd/benchcmp
+ return "Benchmark_{b.name}{pad}\t{b.iters}\t{b.ns_per_op} ns/op".format(
+ b=self, pad=' ' * (name_pad_to + 1 - len(self.name)))
+
+ def run(self, repeat=5):
+ wrapper_time = _run_timeit(self.func, 0)
+ times = []
+ for _ in range(repeat):
+ t = _run_timeit(self.func, self.iters)
+ if t == 0.0:
+ raise Exception('{} time=0'.format(repr(self)))
+ times.append(t)
+ best_time = min(times) - wrapper_time
+ self.ns_per_op = int((best_time * 1e9) / self.iters)
+
+
+def _run_timeit(func, number):
+ # common setup
+ gc.collect()
+ manager = getattr(func, '_benchmark_manager', None)
+ try:
+ # TODO collect allocations count, memory usage
+ # TODO collect custom MB/sec metric reported by benchmark
+ if manager is not None:
+ with manager(number) as ctx:
+ return timeit.Timer(lambda: func(ctx)).timeit(number=number)
+ else:
+ return timeit.Timer(func).timeit(number=number)
+ finally:
+ # common cleanup
+ eventlet.sleep(0.01)
+
+
+def optimal_iters(func, target_time):
+ '''Find optimal number of iterations to run func closely >= target_time.
+ '''
+ iters = 1
+ target_time = float(target_time)
+ max_iters = int(getattr(func, '_benchmark_max_iters', 0))
+ # TODO automatically detect non-linear time growth
+ scale_factor = getattr(func, '_benchmark_scale_factor', 0.0)
+ for _ in range(10):
+ if max_iters and iters > max_iters:
+ return max_iters
+ # print('try iters={iters}'.format(**locals()))
+ t = _run_timeit(func, number=iters)
+ # print('... t={t}'.format(**locals()))
+ if t >= target_time:
+ return iters
+
+ if scale_factor:
+ iters *= scale_factor
+ continue
+
+ # following assumes and works well for linear complexity target functions
+ if t < (target_time / 2):
+ # roughly target half optimal time, ensure iterations keep increasing
+ iters = iters * (target_time / t / 2) + 1
+ # round up to nearest power of 10
+ iters = int(10 ** math.ceil(math.log10(iters)))
+ elif t < target_time:
+ # half/double dance is less prone to overshooting iterations
+ iters *= 2
+ raise Exception('could not find optimal iterations for time={} func={}'.format(target_time, repr(func)))
+
+
+def collect(filter_fun):
+ # running `python benchmarks/__init__.py` or `python -m benchmarks`
+ # puts .../eventlet/benchmarks at top of sys.path, fix it to project root
+ if sys.path[0].endswith('/benchmarks'):
+ path = sys.path.pop(0)
+ correct = path.rsplit('/', 1)[0]
+ sys.path.insert(0, correct)
+
+ common_prefix = 'benchmark_'
+ result = []
+ # TODO step 1: put all toplevel benchmarking code under `if __name__ == '__main__'`
+ # TODO step 2: auto import benchmarks/*.py, remove whitelist below
+ # TODO step 3: convert existing benchmarks
+ for name in ('hub_timers', 'spawn'):
+ mod = importlib.import_module('benchmarks.' + name)
+ for name, obj in inspect.getmembers(mod):
+ if name.startswith(common_prefix) and inspect.isfunction(obj):
+ useful_name = name[len(common_prefix):]
+ if filter_fun(useful_name):
+ result.append(Benchmark(name=useful_name, func=obj))
+
+ return result
+
+
+def noop(*a, **kw):
+ pass
+
+
+def configure(manager=None, scale_factor=0.0, max_iters=0):
+ def wrapper(func):
+ func._benchmark_manager = manager
+ func._benchmark_scale_factor = scale_factor
+ func._benchmark_max_iters = max_iters
+ return func
+ return wrapper
+
+
+def main():
+ cmdline = argparse.ArgumentParser(description='Run benchmarks')
+ cmdline.add_argument('-autotime', default=3.0, type=float, metavar='seconds',
+ help='''autoscale iterations close to this time per benchmark,
+ in seconds (default: %(default).1f)''')
+ cmdline.add_argument('-collect', default=False, action='store_true',
+ help='stop after collecting, useful for debugging this tool')
+ cmdline.add_argument('-filter', default='', metavar='regex',
+ help='process benchmarks matching regex (default: all)')
+ cmdline.add_argument('-iters', default=None, type=int, metavar='int',
+ help='force this number of iterations (default: auto)')
+ cmdline.add_argument('-repeat', default=5, type=int, metavar='int',
+ help='repeat each benchmark, report best result (default: %(default)d)')
+ args = cmdline.parse_args()
+ filter_re = re.compile(args.filter)
+
+ bs = collect(filter_re.search)
+ if args.filter and not bs:
+ # TODO stderr
+ print('error: no benchmarks matched by filter "{}"'.format(args.filter))
+ sys.exit(1)
+ if args.collect:
+ bs.sort(key=lambda b: b.name)
+ print('\n'.join(b.name for b in bs))
+ return
+ if not bs:
+ raise Exception('no benchmarks to run')
+
+ # execute in random order
+ random.shuffle(bs)
+ for b in bs:
+ b.iters = args.iters or optimal_iters(b.func, target_time=args.autotime)
+ b.run()
+
+ # print results in alphabetic order
+ max_name_len = max(len(b.name) for b in bs)
+ bs.sort(key=lambda b: b.name)
+ for b in bs:
+ print(b.format_result(name_pad_to=max_name_len))
+
+
+if __name__ == '__main__':
+ try:
+ main()
+ except KeyboardInterrupt:
+ sys.exit(1)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/eventlet-0.25.1/benchmarks/localhost_socket.py new/eventlet-0.25.2/benchmarks/localhost_socket.py
--- old/eventlet-0.25.1/benchmarks/localhost_socket.py 1970-01-01 01:00:00.000000000 +0100
+++ new/eventlet-0.25.2/benchmarks/localhost_socket.py 2018-08-06 18:17:47.000000000 +0200
@@ -0,0 +1,117 @@
+"""Benchmark evaluating eventlet's performance at speaking to itself over a localhost socket."""
+from __future__ import print_function
+
+import time
+
+import benchmarks
+import six
+
+
+BYTES = 1000
+SIZE = 1
+CONCURRENCY = 50
+TRIES = 5
+
+
+def reader(sock):
+ expect = BYTES
+ while expect > 0:
+ d = sock.recv(min(expect, SIZE))
+ expect -= len(d)
+
+
+def writer(addr, socket_impl):
+ sock = socket_impl(socket.AF_INET, socket.SOCK_STREAM)
+ sock.connect(addr)
+ sent = 0
+ while sent < BYTES:
+ d = 'xy' * (max(min(SIZE / 2, BYTES - sent), 1))
+ sock.sendall(d)
+ sent += len(d)
+
+
+def green_accepter(server_sock, pool):
+ for i in six.moves.range(CONCURRENCY):
+ sock, addr = server_sock.accept()
+ pool.spawn_n(reader, sock)
+
+
+def heavy_accepter(server_sock, pool):
+ for i in six.moves.range(CONCURRENCY):
+ sock, addr = server_sock.accept()
+ t = threading.Thread(None, reader, "reader thread", (sock,))
+ t.start()
+ pool.append(t)
+
+
+import eventlet.green.socket
+import eventlet
+
+from eventlet import debug
+debug.hub_exceptions(True)
+
+
+def launch_green_threads():
+ pool = eventlet.GreenPool(CONCURRENCY * 2 + 1)
+ server_sock = eventlet.green.socket.socket(socket.AF_INET, socket.SOCK_STREAM)
+ server_sock.bind(('localhost', 0))
+ server_sock.listen(50)
+ addr = ('localhost', server_sock.getsockname()[1])
+ pool.spawn_n(green_accepter, server_sock, pool)
+ for i in six.moves.range(CONCURRENCY):
+ pool.spawn_n(writer, addr, eventlet.green.socket.socket)
+ pool.waitall()
+
+
+import threading
+import socket
+
+
+def launch_heavy_threads():
+ threads = []
+ server_sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
+ server_sock.bind(('localhost', 0))
+ server_sock.listen(50)
+ addr = ('localhost', server_sock.getsockname()[1])
+ accepter_thread = threading.Thread(
+ None, heavy_accepter, "accepter thread", (server_sock, threads))
+ accepter_thread.start()
+ threads.append(accepter_thread)
+ for i in six.moves.range(CONCURRENCY):
+ client_thread = threading.Thread(None, writer, "writer thread", (addr, socket.socket))
+ client_thread.start()
+ threads.append(client_thread)
+ for t in threads:
+ t.join()
+
+
+if __name__ == "__main__":
+ import optparse
+ parser = optparse.OptionParser()
+ parser.add_option('--compare-threading', action='store_true', dest='threading', default=False)
+ parser.add_option('-b', '--bytes', type='int', dest='bytes',
+ default=BYTES)
+ parser.add_option('-s', '--size', type='int', dest='size',
+ default=SIZE)
+ parser.add_option('-c', '--concurrency', type='int', dest='concurrency',
+ default=CONCURRENCY)
+ parser.add_option('-t', '--tries', type='int', dest='tries',
+ default=TRIES)
+
+ opts, args = parser.parse_args()
+ BYTES = opts.bytes
+ SIZE = opts.size
+ CONCURRENCY = opts.concurrency
+ TRIES = opts.tries
+
+ funcs = [launch_green_threads]
+ if opts.threading:
+ funcs = [launch_green_threads, launch_heavy_threads]
+ results = benchmarks.measure_best(TRIES, 3,
+ lambda: None, lambda: None,
+ *funcs)
+ print("green:", results[launch_green_threads])
+ if opts.threading:
+ print("threads:", results[launch_heavy_threads])
+ print("%", (results[launch_green_threads] - results[launch_heavy_threads]
+ ) / results[launch_heavy_threads] * 100)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/eventlet-0.25.1/benchmarks/spawn.py new/eventlet-0.25.2/benchmarks/spawn.py
--- old/eventlet-0.25.1/benchmarks/spawn.py 1970-01-01 01:00:00.000000000 +0100
+++ new/eventlet-0.25.2/benchmarks/spawn.py 2020-03-02 12:07:13.000000000 +0100
@@ -0,0 +1,79 @@
+import contextlib
+
+import eventlet
+import benchmarks
+
+
+def dummy(i=None):
+ return i
+
+
+def linked(gt, arg):
+ return arg
+
+
+def benchmark_sleep():
+ eventlet.sleep()
+
+
+def benchmark_spawn_link1():
+ t = eventlet.spawn(dummy)
+ t.link(linked, 1)
+ t.wait()
+
+
+def benchmark_spawn_link5():
+ t = eventlet.spawn(dummy)
+ t.link(linked, 1)
+ t.link(linked, 2)
+ t.link(linked, 3)
+ t.link(linked, 4)
+ t.link(linked, 5)
+ t.wait()
+
+
+def benchmark_spawn_link5_unlink3():
+ t = eventlet.spawn(dummy)
+ t.link(linked, 1)
+ t.link(linked, 2)
+ t.link(linked, 3)
+ t.link(linked, 4)
+ t.link(linked, 5)
+ t.unlink(linked, 3)
+ t.wait()
+
+
+(a)benchmarks.configure(max_iters=1e5)
+def benchmark_spawn_nowait():
+ eventlet.spawn(dummy, 1)
+
+
+def benchmark_spawn():
+ eventlet.spawn(dummy, 1).wait()
+
+
+(a)benchmarks.configure(max_iters=1e5)
+def benchmark_spawn_n():
+ eventlet.spawn_n(dummy, 1)
+
+
+(a)benchmarks.configure(max_iters=1e5)
+def benchmark_spawn_n_kw():
+ eventlet.spawn_n(dummy, i=1)
+
+
+(a)contextlib.contextmanager
+def pool_setup(iters):
+ pool = eventlet.GreenPool(iters)
+ yield pool
+ pool.waitall()
+
+
+(a)benchmarks.configure(manager=pool_setup)
+def benchmark_pool_spawn(pool):
+ pool.spawn(dummy, 1)
+
+
+(a)benchmarks.configure(manager=pool_setup, max_iters=1e5)
+def benchmark_pool_spawn_n(pool):
+ pool.spawn_n(dummy, 1)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/eventlet-0.25.1/eventlet/__init__.py new/eventlet-0.25.2/eventlet/__init__.py
--- old/eventlet-0.25.1/eventlet/__init__.py 2019-08-21 23:29:28.000000000 +0200
+++ new/eventlet-0.25.2/eventlet/__init__.py 2020-04-09 14:42:39.000000000 +0200
@@ -1,7 +1,7 @@
import os
-version_info = (0, 25, 1)
+version_info = (0, 25, 2)
__version__ = '.'.join(map(str, version_info))
# This is to make Debian packaging easier, it ignores import
# errors of greenlet so that the packager can still at least
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/eventlet-0.25.1/eventlet/green/ssl.py new/eventlet-0.25.2/eventlet/green/ssl.py
--- old/eventlet-0.25.1/eventlet/green/ssl.py 2019-05-24 11:00:38.000000000 +0200
+++ new/eventlet-0.25.2/eventlet/green/ssl.py 2020-03-02 13:04:48.000000000 +0100
@@ -384,7 +384,6 @@
while True:
try:
newsock, addr = socket.accept(self)
- set_nonblocking(newsock)
break
except orig_socket.error as e:
if get_errno(e) not in greenio.SOCKET_BLOCKING:
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/eventlet-0.25.1/eventlet.egg-info/PKG-INFO new/eventlet-0.25.2/eventlet.egg-info/PKG-INFO
--- old/eventlet-0.25.1/eventlet.egg-info/PKG-INFO 2019-08-21 23:35:04.000000000 +0200
+++ new/eventlet-0.25.2/eventlet.egg-info/PKG-INFO 2020-04-09 14:43:59.000000000 +0200
@@ -1,6 +1,6 @@
Metadata-Version: 1.1
Name: eventlet
-Version: 0.25.1
+Version: 0.25.2
Summary: Highly concurrent networking library
Home-page: http://eventlet.net
Author: Linden Lab
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/eventlet-0.25.1/eventlet.egg-info/SOURCES.txt new/eventlet-0.25.2/eventlet.egg-info/SOURCES.txt
--- old/eventlet-0.25.1/eventlet.egg-info/SOURCES.txt 2019-08-21 23:35:05.000000000 +0200
+++ new/eventlet-0.25.2/eventlet.egg-info/SOURCES.txt 2020-04-09 14:44:00.000000000 +0200
@@ -5,6 +5,9 @@
README.rst
setup.cfg
setup.py
+benchmarks/__init__.py
+benchmarks/localhost_socket.py
+benchmarks/spawn.py
doc/Makefile
doc/authors.rst
doc/basic_usage.rst
1
0
Hello community,
here is the log from the commit of package python-cachetools for openSUSE:Factory checked in at 2020-05-01 11:06:40
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/python-cachetools (Old)
and /work/SRC/openSUSE:Factory/.python-cachetools.new.2738 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "python-cachetools"
Fri May 1 11:06:40 2020 rev:9 rq:798870 version:4.1.0
Changes:
--------
--- /work/SRC/openSUSE:Factory/python-cachetools/python-cachetools.changes 2020-04-19 21:36:03.202464892 +0200
+++ /work/SRC/openSUSE:Factory/.python-cachetools.new.2738/python-cachetools.changes 2020-05-01 11:06:49.158994878 +0200
@@ -1,0 +2,10 @@
+Wed Apr 29 10:47:20 UTC 2020 - Dirk Mueller <dmueller(a)suse.com>
+
+- update to 4.1.0:
+ - Support ``user_function`` with ``cachetools.func`` decorators
+ (Python 3.8 compatibility).
+
+ - Support ``cache_parameters()`` with ``cachetools.func`` decorators
+ (Python 3.9 compatibility).
+
+-------------------------------------------------------------------
Old:
----
cachetools-4.0.0.tar.gz
New:
----
cachetools-4.1.0.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ python-cachetools.spec ++++++
--- /var/tmp/diff_new_pack.Ao2DPc/_old 2020-05-01 11:06:50.690998209 +0200
+++ /var/tmp/diff_new_pack.Ao2DPc/_new 2020-05-01 11:06:50.694998218 +0200
@@ -19,7 +19,7 @@
%define skip_python2 1
%{?!python_module:%define python_module() python-%{**} python3-%{**}}
Name: python-cachetools
-Version: 4.0.0
+Version: 4.1.0
Release: 0
Summary: Extensible memoizing collections and decorators
License: MIT
++++++ cachetools-4.0.0.tar.gz -> cachetools-4.1.0.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/cachetools-4.0.0/CHANGELOG.rst new/cachetools-4.1.0/CHANGELOG.rst
--- old/cachetools-4.0.0/CHANGELOG.rst 2019-12-15 20:53:38.000000000 +0100
+++ new/cachetools-4.1.0/CHANGELOG.rst 2020-04-08 13:32:37.000000000 +0200
@@ -1,3 +1,13 @@
+v4.1.0 (2020-04-08)
+===================
+
+- Support ``user_function`` with ``cachetools.func`` decorators
+ (Python 3.8 compatibility).
+
+- Support ``cache_parameters()`` with ``cachetools.func`` decorators
+ (Python 3.9 compatibility).
+
+
v4.0.0 (2019-12-15)
===================
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/cachetools-4.0.0/LICENSE new/cachetools-4.1.0/LICENSE
--- old/cachetools-4.0.0/LICENSE 2019-04-10 19:41:37.000000000 +0200
+++ new/cachetools-4.1.0/LICENSE 2020-04-08 13:32:25.000000000 +0200
@@ -1,6 +1,6 @@
The MIT License (MIT)
-Copyright (c) 2014-2019 Thomas Kemmer
+Copyright (c) 2014-2020 Thomas Kemmer
Permission is hereby granted, free of charge, to any person obtaining a copy of
this software and associated documentation files (the "Software"), to deal in
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/cachetools-4.0.0/PKG-INFO new/cachetools-4.1.0/PKG-INFO
--- old/cachetools-4.0.0/PKG-INFO 2019-12-15 20:54:06.000000000 +0100
+++ new/cachetools-4.1.0/PKG-INFO 2020-04-08 13:34:37.000000000 +0200
@@ -1,6 +1,6 @@
Metadata-Version: 1.2
Name: cachetools
-Version: 4.0.0
+Version: 4.1.0
Summary: Extensible memoizing collections and decorators
Home-page: https://github.com/tkem/cachetools/
Author: Thomas Kemmer
@@ -89,7 +89,7 @@
License
------------------------------------------------------------------------
- Copyright (c) 2014-2019 Thomas Kemmer.
+ Copyright (c) 2014-2020 Thomas Kemmer.
Licensed under the `MIT License`_.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/cachetools-4.0.0/README.rst new/cachetools-4.1.0/README.rst
--- old/cachetools-4.0.0/README.rst 2019-12-15 20:53:38.000000000 +0100
+++ new/cachetools-4.1.0/README.rst 2020-04-08 13:32:25.000000000 +0200
@@ -81,7 +81,7 @@
License
------------------------------------------------------------------------
-Copyright (c) 2014-2019 Thomas Kemmer.
+Copyright (c) 2014-2020 Thomas Kemmer.
Licensed under the `MIT License`_.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/cachetools-4.0.0/cachetools/__init__.py new/cachetools-4.1.0/cachetools/__init__.py
--- old/cachetools-4.0.0/cachetools/__init__.py 2019-12-15 20:53:38.000000000 +0100
+++ new/cachetools-4.1.0/cachetools/__init__.py 2020-04-08 13:32:25.000000000 +0200
@@ -17,4 +17,4 @@
'cachedmethod'
)
-__version__ = '4.0.0'
+__version__ = '4.1.0'
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/cachetools-4.0.0/cachetools/func.py new/cachetools-4.1.0/cachetools/func.py
--- old/cachetools-4.0.0/cachetools/func.py 2019-12-15 20:53:38.000000000 +0100
+++ new/cachetools-4.1.0/cachetools/func.py 2020-04-08 13:32:25.000000000 +0200
@@ -26,7 +26,9 @@
class _UnboundCache(dict):
- maxsize = None
+ @property
+ def maxsize(self):
+ return None
@property
def currsize(self):
@@ -42,26 +44,14 @@
return None
-def _cache(cache, typed=False):
+def _cache(cache, typed):
+ maxsize = cache.maxsize
+
def decorator(func):
key = keys.typedkey if typed else keys.hashkey
lock = RLock()
stats = [0, 0]
- def cache_info():
- with lock:
- hits, misses = stats
- maxsize = cache.maxsize
- currsize = cache.currsize
- return _CacheInfo(hits, misses, maxsize, currsize)
-
- def cache_clear():
- with lock:
- try:
- cache.clear()
- finally:
- stats[:] = [0, 0]
-
def wrapper(*args, **kwargs):
k = key(*args, **kwargs)
with lock:
@@ -78,9 +68,25 @@
except ValueError:
pass # value too large
return v
- functools.update_wrapper(wrapper, func)
+
+ def cache_info():
+ with lock:
+ hits, misses = stats
+ maxsize = cache.maxsize
+ currsize = cache.currsize
+ return _CacheInfo(hits, misses, maxsize, currsize)
+
+ def cache_clear():
+ with lock:
+ try:
+ cache.clear()
+ finally:
+ stats[:] = [0, 0]
+
wrapper.cache_info = cache_info
wrapper.cache_clear = cache_clear
+ wrapper.cache_parameters = lambda: {'maxsize': maxsize, 'typed': typed}
+ functools.update_wrapper(wrapper, func)
return wrapper
return decorator
@@ -93,6 +99,8 @@
"""
if maxsize is None:
return _cache(_UnboundCache(), typed)
+ elif callable(maxsize):
+ return _cache(LFUCache(128), typed)(maxsize)
else:
return _cache(LFUCache(maxsize), typed)
@@ -105,6 +113,8 @@
"""
if maxsize is None:
return _cache(_UnboundCache(), typed)
+ elif callable(maxsize):
+ return _cache(LRUCache(128), typed)(maxsize)
else:
return _cache(LRUCache(maxsize), typed)
@@ -117,6 +127,8 @@
"""
if maxsize is None:
return _cache(_UnboundCache(), typed)
+ elif callable(maxsize):
+ return _cache(RRCache(128, choice), typed)(maxsize)
else:
return _cache(RRCache(maxsize, choice), typed)
@@ -128,5 +140,7 @@
"""
if maxsize is None:
return _cache(_UnboundTTLCache(ttl, timer), typed)
+ elif callable(maxsize):
+ return _cache(TTLCache(128, ttl, timer), typed)(maxsize)
else:
return _cache(TTLCache(maxsize, ttl, timer), typed)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/cachetools-4.0.0/cachetools.egg-info/PKG-INFO new/cachetools-4.1.0/cachetools.egg-info/PKG-INFO
--- old/cachetools-4.0.0/cachetools.egg-info/PKG-INFO 2019-12-15 20:54:06.000000000 +0100
+++ new/cachetools-4.1.0/cachetools.egg-info/PKG-INFO 2020-04-08 13:34:37.000000000 +0200
@@ -1,6 +1,6 @@
Metadata-Version: 1.2
Name: cachetools
-Version: 4.0.0
+Version: 4.1.0
Summary: Extensible memoizing collections and decorators
Home-page: https://github.com/tkem/cachetools/
Author: Thomas Kemmer
@@ -89,7 +89,7 @@
License
------------------------------------------------------------------------
- Copyright (c) 2014-2019 Thomas Kemmer.
+ Copyright (c) 2014-2020 Thomas Kemmer.
Licensed under the `MIT License`_.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/cachetools-4.0.0/docs/conf.py new/cachetools-4.1.0/docs/conf.py
--- old/cachetools-4.0.0/docs/conf.py 2019-12-15 20:53:38.000000000 +0100
+++ new/cachetools-4.1.0/docs/conf.py 2020-04-08 13:32:25.000000000 +0200
@@ -9,7 +9,7 @@
project = 'cachetools'
-copyright = '2014-2019 Thomas Kemmer'
+copyright = '2014-2020 Thomas Kemmer'
version = get_version()
release = version
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/cachetools-4.0.0/docs/index.rst new/cachetools-4.1.0/docs/index.rst
--- old/cachetools-4.0.0/docs/index.rst 2019-12-15 20:53:38.000000000 +0100
+++ new/cachetools-4.1.0/docs/index.rst 2020-04-08 13:32:25.000000000 +0200
@@ -426,31 +426,50 @@
``f(3)`` and ``f(3.0)`` will be treated as distinct calls with
distinct results.
-The wrapped function is instrumented with :func:`cache_info` and
+If a `user_function` is specified instead, it must be a callable.
+This allows the decorator to be applied directly to a user function,
+leaving the `maxsize` at its default value of 128::
+
+ @cachetools.func.lru_cache
+ def count_vowels(sentence):
+ sentence = sentence.casefold()
+ return sum(sentence.count(vowel) for vowel in 'aeiou')
+
+The wrapped function is instrumented with a :func:`cache_parameters`
+function that returns a new :class:`dict` showing the values for
+`maxsize` and `typed`. This is for information purposes only.
+Mutating the values has no effect.
+
+The wrapped function is also instrumented with :func:`cache_info` and
:func:`cache_clear` functions to provide information about cache
performance and clear the cache. Please see the
:func:`functools.lru_cache` documentation for details. Also note that
all the decorators in this module are thread-safe by default.
-.. decorator:: lfu_cache(maxsize=128, typed=False)
+
+.. decorator:: lfu_cache(user_function)
+ lfu_cache(maxsize=128, typed=False)
Decorator that wraps a function with a memoizing callable that
saves up to `maxsize` results based on a Least Frequently Used
(LFU) algorithm.
-.. decorator:: lru_cache(maxsize=128, typed=False)
+.. decorator:: lru_cache(user_function)
+ lru_cache(maxsize=128, typed=False)
Decorator that wraps a function with a memoizing callable that
saves up to `maxsize` results based on a Least Recently Used (LRU)
algorithm.
-.. decorator:: rr_cache(maxsize=128, choice=random.choice, typed=False)
+.. decorator:: rr_cache(user_function)
+ rr_cache(maxsize=128, choice=random.choice, typed=False)
Decorator that wraps a function with a memoizing callable that
saves up to `maxsize` results based on a Random Replacement (RR)
algorithm.
-.. decorator:: ttl_cache(maxsize=128, ttl=600, timer=time.monotonic, typed=False)
+.. decorator:: ttl_cache(user_function)
+ ttl_cache(maxsize=128, ttl=600, timer=time.monotonic, typed=False)
Decorator to wrap a function with a memoizing callable that saves
up to `maxsize` results based on a Least Recently Used (LRU)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/cachetools-4.0.0/setup.cfg new/cachetools-4.1.0/setup.cfg
--- old/cachetools-4.0.0/setup.cfg 2019-12-15 20:54:06.000000000 +0100
+++ new/cachetools-4.1.0/setup.cfg 2020-04-08 13:34:37.000000000 +0200
@@ -1,6 +1,6 @@
[metadata]
name = cachetools
-version = 4.0.0
+version = 4.1.0
url = https://github.com/tkem/cachetools/
author = Thomas Kemmer
author_email = tkemmer(a)computer.org
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/cachetools-4.0.0/tests/test_func.py new/cachetools-4.1.0/tests/test_func.py
--- old/cachetools-4.0.0/tests/test_func.py 2019-04-10 19:41:37.000000000 +0200
+++ new/cachetools-4.1.0/tests/test_func.py 2020-04-08 13:32:25.000000000 +0200
@@ -5,12 +5,14 @@
class DecoratorTestMixin(object):
- def decorator(self, maxsize, typed=False, lock=None):
- raise NotImplementedError
+ def decorator(self, maxsize, **kwargs):
+ return self.DECORATOR(maxsize, **kwargs)
def test_decorator(self):
cached = self.decorator(maxsize=2)(lambda n: n)
-
+ self.assertEqual(cached.cache_parameters(), {
+ 'maxsize': 2, 'typed': False
+ })
self.assertEqual(cached.cache_info(), (0, 0, 2, 0))
self.assertEqual(cached(1), 1)
self.assertEqual(cached.cache_info(), (0, 1, 2, 1))
@@ -21,7 +23,9 @@
def test_decorator_clear(self):
cached = self.decorator(maxsize=2)(lambda n: n)
-
+ self.assertEqual(cached.cache_parameters(), {
+ 'maxsize': 2, 'typed': False
+ })
self.assertEqual(cached.cache_info(), (0, 0, 2, 0))
self.assertEqual(cached(1), 1)
self.assertEqual(cached.cache_info(), (0, 1, 2, 1))
@@ -32,7 +36,9 @@
def test_decorator_nocache(self):
cached = self.decorator(maxsize=0)(lambda n: n)
-
+ self.assertEqual(cached.cache_parameters(), {
+ 'maxsize': 0, 'typed': False
+ })
self.assertEqual(cached.cache_info(), (0, 0, 0, 0))
self.assertEqual(cached(1), 1)
self.assertEqual(cached.cache_info(), (0, 1, 0, 0))
@@ -43,7 +49,9 @@
def test_decorator_unbound(self):
cached = self.decorator(maxsize=None)(lambda n: n)
-
+ self.assertEqual(cached.cache_parameters(), {
+ 'maxsize': None, 'typed': False
+ })
self.assertEqual(cached.cache_info(), (0, 0, None, 0))
self.assertEqual(cached(1), 1)
self.assertEqual(cached.cache_info(), (0, 1, None, 1))
@@ -54,7 +62,9 @@
def test_decorator_typed(self):
cached = self.decorator(maxsize=2, typed=True)(lambda n: n)
-
+ self.assertEqual(cached.cache_parameters(), {
+ 'maxsize': 2, 'typed': True
+ })
self.assertEqual(cached.cache_info(), (0, 0, 2, 0))
self.assertEqual(cached(1), 1)
self.assertEqual(cached.cache_info(), (0, 1, 2, 1))
@@ -65,26 +75,35 @@
self.assertEqual(cached(1.0), 1.0)
self.assertEqual(cached.cache_info(), (2, 2, 2, 2))
+ def test_decorator_user_function(self):
+ cached = self.decorator(lambda n: n)
+ self.assertEqual(cached.cache_parameters(), {
+ 'maxsize': 128, 'typed': False
+ })
+ self.assertEqual(cached.cache_info(), (0, 0, 128, 0))
+ self.assertEqual(cached(1), 1)
+ self.assertEqual(cached.cache_info(), (0, 1, 128, 1))
+ self.assertEqual(cached(1), 1)
+ self.assertEqual(cached.cache_info(), (1, 1, 128, 1))
+ self.assertEqual(cached(1.0), 1.0)
+ self.assertEqual(cached.cache_info(), (2, 1, 128, 1))
+
class LFUDecoratorTest(unittest.TestCase, DecoratorTestMixin):
- def decorator(self, maxsize, **kwargs):
- return cachetools.func.lfu_cache(maxsize, **kwargs)
+ DECORATOR = staticmethod(cachetools.func.lfu_cache)
class LRUDecoratorTest(unittest.TestCase, DecoratorTestMixin):
- def decorator(self, maxsize, **kwargs):
- return cachetools.func.lru_cache(maxsize, **kwargs)
+ DECORATOR = staticmethod(cachetools.func.lru_cache)
class RRDecoratorTest(unittest.TestCase, DecoratorTestMixin):
- def decorator(self, maxsize, **kwargs):
- return cachetools.func.rr_cache(maxsize, **kwargs)
+ DECORATOR = staticmethod(cachetools.func.rr_cache)
class TTLDecoratorTest(unittest.TestCase, DecoratorTestMixin):
- def decorator(self, maxsize, **kwargs):
- return cachetools.func.ttl_cache(maxsize, **kwargs)
+ DECORATOR = staticmethod(cachetools.func.ttl_cache)
1
0