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
December 2019
- 1 participants
- 2204 discussions
Hello community,
here is the log from the commit of package alsaequal for openSUSE:Factory checked in at 2019-12-02 11:33:48
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/alsaequal (Old)
and /work/SRC/openSUSE:Factory/.alsaequal.new.4691 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "alsaequal"
Mon Dec 2 11:33:48 2019 rev:7 rq:752688 version:0.6
Changes:
--------
--- /work/SRC/openSUSE:Factory/alsaequal/alsaequal.changes 2019-11-04 17:15:18.992832265 +0100
+++ /work/SRC/openSUSE:Factory/.alsaequal.new.4691/alsaequal.changes 2019-12-02 11:38:12.010458899 +0100
@@ -1,0 +2,5 @@
+Sun Dec 1 09:31:45 UTC 2019 - Илья Индиго <ilya(a)ilya.pp.ua>
+
+- Add ladspa-caps to requires.
+
+-------------------------------------------------------------------
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ alsaequal.spec ++++++
--- /var/tmp/diff_new_pack.RhG4H9/_old 2019-12-02 11:38:12.354458971 +0100
+++ /var/tmp/diff_new_pack.RhG4H9/_new 2019-12-02 11:38:12.354458971 +0100
@@ -1,7 +1,7 @@
#
# spec file for package alsaequal
#
-# Copyright (c) 2019 SUSE LINUX GmbH, Nuernberg, Germany.
+# Copyright (c) 2019 SUSE LLC
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@@ -28,6 +28,7 @@
BuildRequires: alsa-devel
BuildRequires: gcc
BuildRequires: ladspa-caps
+Requires: ladspa-caps
%description
Alsaequal is a real-time adjustable equalizer plugin for ALSA
1
0
Hello community,
here is the log from the commit of package clazy for openSUSE:Factory checked in at 2019-12-02 11:33:52
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/clazy (Old)
and /work/SRC/openSUSE:Factory/.clazy.new.4691 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "clazy"
Mon Dec 2 11:33:52 2019 rev:7 rq:752689 version:1.6
Changes:
--------
--- /work/SRC/openSUSE:Factory/clazy/clazy.changes 2019-10-16 09:18:14.547010291 +0200
+++ /work/SRC/openSUSE:Factory/.clazy.new.4691/clazy.changes 2019-12-02 11:38:12.490459000 +0100
@@ -1,0 +2,6 @@
+Wed Nov 20 23:15:31 UTC 2019 - Simon Lees <sflees(a)suse.de>
+
+- %make_jobs is depricated replaced by %cmake_build
+- Use %autosetup to simplify maintenance
+
+-------------------------------------------------------------------
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ clazy.spec ++++++
--- /var/tmp/diff_new_pack.owxOsX/_old 2019-12-02 11:38:12.866459079 +0100
+++ /var/tmp/diff_new_pack.owxOsX/_new 2019-12-02 11:38:12.870459080 +0100
@@ -38,8 +38,7 @@
allocations to misusage of API, including fix-its for automatic refactoring.
%prep
-%setup -q
-%patch0 -p1
+%autosetup -p1
%build
%define _lto_cflags %{nil}
@@ -48,7 +47,7 @@
%cmake
-%make_jobs
+%cmake_build
%install
%cmake_install
1
0
Hello community,
here is the log from the commit of package kubernetes for openSUSE:Factory checked in at 2019-12-02 11:33:43
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/kubernetes (Old)
and /work/SRC/openSUSE:Factory/.kubernetes.new.4691 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "kubernetes"
Mon Dec 2 11:33:43 2019 rev:51 rq:752610 version:1.16.3
Changes:
--------
--- /work/SRC/openSUSE:Factory/kubernetes/kubectl.changes 2019-10-23 15:48:36.850549575 +0200
+++ /work/SRC/openSUSE:Factory/.kubernetes.new.4691/kubectl.changes 2019-12-02 11:38:10.114458501 +0100
@@ -1,0 +2,44 @@
+Sat Nov 30 15:03:42 UTC 2019 - Dominique Leuenberger <dimstar(a)opensuse.org>
+
+- Convert changes file to proper UTF-8 format: new
+ version of RPM are getting strict in interpreting files.
+
+-------------------------------------------------------------------
+Wed Nov 27 11:10:35 UTC 2019 - rbrown(a)suse.com
+
+- Update to version 1.16.3:
+ * kubeadm: fix skipped etcd upgrade on secondary cp nodes
+ * Add testcases covering large valid patches
+ * json unmarshal coded error at function applyJSPatch()
+ * Stop Watching when there is encoding error
+ * Remove HostPathV0 tests in preparation for removal in 1.17. This is so that upgrade tests dont fail when support for v0 drivers are removed in k8s 1.17
+ * add cache read type prefix for const
+ * update getmetadata to use unsafe read
+ * add allowunsafe read
+ * Flush data cache during unmount device for GCE-PD in Windows
+ * add a fallback for kube-scheduler when events.k8s.io is disabled
+ * modify detach timeout to be csiTimeout
+ * fix windows performance counter father information failed on Non-English environment
+ * bump metrics server version o v0.3.6
+ * Bump metrics-server version to v0.3.5
+ * rename metric for apiserver request terminations and reword corresponding documentation
+ * pluralize error metric name
+ * Fix double counting issue for request metrics on timeout.
+ * Do not bind block PV/PVCs when block feature gate is off
+ * Return an error when zone info is not found.
+ * Use --stamp flag in bazel builds
+ * Update to use go1.12.12
+ * Update Cluster Autoscaler version to 1.16.2
+ * add tombstoones handle for pdb
+ * Amend CHANGELOG-1.16.md for v1.16.2
+ * Fix proto.Merge of IntOrString type
+ * Bump to etcd 3.3.17 and bbolt v1.3.3
+ * Add/Update CHANGELOG-1.16.md for v1.16.2.
+ * Kubernetes version v1.16.3-beta.0 openapi-spec file updates
+ * release: lib: revert docker_registry to constant k8s.gcr.io
+ * Remove check causing informers to miss notifications
+ * auth/cloud-platform is a superset of devstorage.
+ * Remove e2e/common package usage in volumemode testsuite
+ * Mark startupProbe test as NodeAlphaFeature and fix podClient instanciation
+
+-------------------------------------------------------------------
@@ -299 +343 @@
- * Change the seven blanks to ` {7}` in the regex, so it will be more readable .
+ * Change the seven blanks to ` {7}` in the regex, so it will be more readable ^P.
--- /work/SRC/openSUSE:Factory/kubernetes/kubernetes.changes 2019-11-12 11:53:54.583247722 +0100
+++ /work/SRC/openSUSE:Factory/.kubernetes.new.4691/kubernetes.changes 2019-12-02 11:38:10.458458572 +0100
@@ -1,0 +2,44 @@
+Sat Nov 30 15:03:36 UTC 2019 - Dominique Leuenberger <dimstar(a)opensuse.org>
+
+- Convert changes file to proper UTF-8 format: new
+ version of RPM are getting strict in interpreting files.
+
+-------------------------------------------------------------------
+Wed Nov 27 11:10:35 UTC 2019 - rbrown(a)suse.com
+
+- Update to version 1.16.3:
+ * kubeadm: fix skipped etcd upgrade on secondary cp nodes
+ * Add testcases covering large valid patches
+ * json unmarshal coded error at function applyJSPatch()
+ * Stop Watching when there is encoding error
+ * Remove HostPathV0 tests in preparation for removal in 1.17. This is so that upgrade tests dont fail when support for v0 drivers are removed in k8s 1.17
+ * add cache read type prefix for const
+ * update getmetadata to use unsafe read
+ * add allowunsafe read
+ * Flush data cache during unmount device for GCE-PD in Windows
+ * add a fallback for kube-scheduler when events.k8s.io is disabled
+ * modify detach timeout to be csiTimeout
+ * fix windows performance counter father information failed on Non-English environment
+ * bump metrics server version o v0.3.6
+ * Bump metrics-server version to v0.3.5
+ * rename metric for apiserver request terminations and reword corresponding documentation
+ * pluralize error metric name
+ * Fix double counting issue for request metrics on timeout.
+ * Do not bind block PV/PVCs when block feature gate is off
+ * Return an error when zone info is not found.
+ * Use --stamp flag in bazel builds
+ * Update to use go1.12.12
+ * Update Cluster Autoscaler version to 1.16.2
+ * add tombstoones handle for pdb
+ * Amend CHANGELOG-1.16.md for v1.16.2
+ * Fix proto.Merge of IntOrString type
+ * Bump to etcd 3.3.17 and bbolt v1.3.3
+ * Add/Update CHANGELOG-1.16.md for v1.16.2.
+ * Kubernetes version v1.16.3-beta.0 openapi-spec file updates
+ * release: lib: revert docker_registry to constant k8s.gcr.io
+ * Remove check causing informers to miss notifications
+ * auth/cloud-platform is a superset of devstorage.
+ * Remove e2e/common package usage in volumemode testsuite
+ * Mark startupProbe test as NodeAlphaFeature and fix podClient instanciation
+
+-------------------------------------------------------------------
@@ -305 +349 @@
- * Change the seven blanks to ` {7}` in the regex, so it will be more readable .
+ * Change the seven blanks to ` {7}` in the regex, so it will be more readable ^P.
Old:
----
kubernetes-1.16.2.tar.xz
New:
----
kubernetes-1.16.3.tar.xz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ kubectl.spec ++++++
--- /var/tmp/diff_new_pack.dD5xcc/_old 2019-12-02 11:38:11.650458823 +0100
+++ /var/tmp/diff_new_pack.dD5xcc/_new 2019-12-02 11:38:11.650458823 +0100
@@ -20,7 +20,7 @@
# baseversion - version of kubernetes for this package
%define baseversion 1.16
Name: kubectl
-Version: %{baseversion}.2
+Version: %{baseversion}.3
Release: 0
Summary: Kubectl (Kubernetes client tools)
License: Apache-2.0
++++++ kubernetes.spec ++++++
--- /var/tmp/diff_new_pack.dD5xcc/_old 2019-12-02 11:38:11.666458826 +0100
+++ /var/tmp/diff_new_pack.dD5xcc/_new 2019-12-02 11:38:11.670458827 +0100
@@ -22,7 +22,7 @@
# maxcriversion - version of cri-tools which is notsupported by this version of kubeadm.
%define maxcriversion 1.17
Name: kubernetes
-Version: %{baseversion}.2
+Version: %{baseversion}.3
Release: 0
Summary: Container Scheduling and Management
License: Apache-2.0
++++++ _service ++++++
--- /var/tmp/diff_new_pack.dD5xcc/_old 2019-12-02 11:38:11.726458839 +0100
+++ /var/tmp/diff_new_pack.dD5xcc/_new 2019-12-02 11:38:11.726458839 +0100
@@ -3,8 +3,8 @@
<param name="url">https://github.com/kubernetes/kubernetes.git</param>
<param name="scm">git</param>
<param name="exclude">.git</param>
- <param name="versionformat">1.16.2</param>
- <param name="revision">v1.16.2</param>
+ <param name="versionformat">1.16.3</param>
+ <param name="revision">v1.16.3</param>
<param name="changesgenerate">enable</param>
</service>
<service name="tar" mode="disabled"/>
++++++ _servicedata ++++++
--- /var/tmp/diff_new_pack.dD5xcc/_old 2019-12-02 11:38:11.742458843 +0100
+++ /var/tmp/diff_new_pack.dD5xcc/_new 2019-12-02 11:38:11.742458843 +0100
@@ -1,4 +1,4 @@
<servicedata>
<service name="tar_scm">
<param name="url">https://github.com/kubernetes/kubernetes.git</param>
- <param name="changesrevision">c97fe5036ef3df2967d086711e6c0c405941e14b</param></service></servicedata>
\ No newline at end of file
+ <param name="changesrevision">b3cbbae08ec52a7fc73d334838e18d17e8512749</param></service></servicedata>
\ No newline at end of file
++++++ kubernetes-1.16.2.tar.xz -> kubernetes-1.16.3.tar.xz ++++++
/work/SRC/openSUSE:Factory/kubernetes/kubernetes-1.16.2.tar.xz /work/SRC/openSUSE:Factory/.kubernetes.new.4691/kubernetes-1.16.3.tar.xz differ: char 1, line 1
++++++ kubernetes.obsinfo ++++++
--- /var/tmp/diff_new_pack.dD5xcc/_old 2019-12-02 11:38:11.886458873 +0100
+++ /var/tmp/diff_new_pack.dD5xcc/_new 2019-12-02 11:38:11.886458873 +0100
@@ -1,5 +1,5 @@
name: kubernetes
-version: 1.16.2
-mtime: 1570855357
-commit: c97fe5036ef3df2967d086711e6c0c405941e14b
+version: 1.16.3
+mtime: 1573425816
+commit: b3cbbae08ec52a7fc73d334838e18d17e8512749
1
0
Hello community,
here is the log from the commit of package openSUSE-release-tools for openSUSE:Factory checked in at 2019-12-02 11:33:42
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/openSUSE-release-tools (Old)
and /work/SRC/openSUSE:Factory/.openSUSE-release-tools.new.4691 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "openSUSE-release-tools"
Mon Dec 2 11:33:42 2019 rev:254 rq:752682 version:20191129.411c0452
Changes:
--------
--- /work/SRC/openSUSE:Factory/openSUSE-release-tools/openSUSE-release-tools.changes 2019-11-30 10:39:37.076156070 +0100
+++ /work/SRC/openSUSE:Factory/.openSUSE-release-tools.new.4691/openSUSE-release-tools.changes 2019-12-02 11:38:08.790458221 +0100
@@ -1,0 +2,6 @@
+Fri Nov 29 11:37:38 UTC 2019 - opensuse-releaseteam(a)opensuse.org
+
+- Update to version 20191129.411c0452:
+ * staging-installcheck: Port to use XML to check delete requests
+
+-------------------------------------------------------------------
Old:
----
openSUSE-release-tools-20191128.fe8e6c23.obscpio
New:
----
openSUSE-release-tools-20191129.411c0452.obscpio
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ openSUSE-release-tools.spec ++++++
--- /var/tmp/diff_new_pack.IXZeEA/_old 2019-12-02 11:38:09.334458336 +0100
+++ /var/tmp/diff_new_pack.IXZeEA/_new 2019-12-02 11:38:09.334458336 +0100
@@ -20,7 +20,7 @@
%define source_dir openSUSE-release-tools
%define announcer_filename factory-package-news
Name: openSUSE-release-tools
-Version: 20191128.fe8e6c23
+Version: 20191129.411c0452
Release: 0
Summary: Tools to aid in staging and release work for openSUSE/SUSE
License: GPL-2.0-or-later AND MIT
++++++ _servicedata ++++++
--- /var/tmp/diff_new_pack.IXZeEA/_old 2019-12-02 11:38:09.366458342 +0100
+++ /var/tmp/diff_new_pack.IXZeEA/_new 2019-12-02 11:38:09.370458343 +0100
@@ -1,6 +1,6 @@
<servicedata>
<service name="tar_scm">
<param name="url">https://github.com/openSUSE/openSUSE-release-tools.git</param>
- <param name="changesrevision">6e918d63b6613f1190ccba1613346163271a85a1</param>
+ <param name="changesrevision">411c0452846248c39059cbd097d445b48612cd64</param>
</service>
</servicedata>
++++++ openSUSE-release-tools-20191128.fe8e6c23.obscpio -> openSUSE-release-tools-20191129.411c0452.obscpio ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/openSUSE-release-tools-20191128.fe8e6c23/staging-installcheck.py new/openSUSE-release-tools-20191129.411c0452/staging-installcheck.py
--- old/openSUSE-release-tools-20191128.fe8e6c23/staging-installcheck.py 2019-11-28 13:56:36.000000000 +0100
+++ new/openSUSE-release-tools-20191129.411c0452/staging-installcheck.py 2019-11-29 12:34:27.000000000 +0100
@@ -68,7 +68,7 @@
return False
def check_delete_request(self, req, to_ignore, comments):
- package = req['package']
+ package = req.get('package')
if package in to_ignore:
self.logger.info('Delete request for package {} ignored'.format(package))
return True
++++++ openSUSE-release-tools.obsinfo ++++++
--- /var/tmp/diff_new_pack.IXZeEA/_old 2019-12-02 11:38:09.922458460 +0100
+++ /var/tmp/diff_new_pack.IXZeEA/_new 2019-12-02 11:38:09.926458461 +0100
@@ -1,5 +1,5 @@
name: openSUSE-release-tools
-version: 20191128.fe8e6c23
-mtime: 1574945796
-commit: fe8e6c232db14fdfe79ad3aab9e71cda9230cb8c
+version: 20191129.411c0452
+mtime: 1575027267
+commit: 411c0452846248c39059cbd097d445b48612cd64
1
0
Hello community,
here is the log from the commit of package hyper-v for openSUSE:Factory checked in at 2019-12-02 11:33:37
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/hyper-v (Old)
and /work/SRC/openSUSE:Factory/.hyper-v.new.4691 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "hyper-v"
Mon Dec 2 11:33:37 2019 rev:40 rq:752453 version:7
Changes:
--------
--- /work/SRC/openSUSE:Factory/hyper-v/hyper-v.changes 2018-10-11 11:40:24.519171988 +0200
+++ /work/SRC/openSUSE:Factory/.hyper-v.new.4691/hyper-v.changes 2019-12-02 11:38:07.370457923 +0100
@@ -1,0 +2,16 @@
+Fri Nov 29 16:41:25 UTC 2019 - ohering(a)suse.de
+
+- Update lsvmbus interpreter from python(1) to python3(1) again
+ because only SLE12 lacked proper python3 support (bsc#1093910)
+
+-------------------------------------------------------------------
+Wed Nov 27 09:08:07 UTC 2019 - ohering(a)suse.de
+
+- async name resolution in kvp_daemon (bsc#1100758)
+- kvp: eliminate 'may be used uninitialized' warning (89eb4d8d)
+- fix typos in toolchain (2d35c660)
+- fixed Python pep8/flake8 warnings for lsvmbus (5912e791)
+- Replace GPLv2 boilerplate/reference with SPDX (43aa3132)
+- Fix a warning of buffer overflow with gcc 8.0.1 (4fcba780)
+
+-------------------------------------------------------------------
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ hyper-v.spec ++++++
--- /var/tmp/diff_new_pack.DRDJCE/_old 2019-12-02 11:38:07.910458036 +0100
+++ /var/tmp/diff_new_pack.DRDJCE/_new 2019-12-02 11:38:07.910458036 +0100
@@ -89,6 +89,7 @@
-DCN_KVP_IDX=0x9 \
-DCN_KVP_VAL=0x1 \
-DKVP_SCRIPTS_PATH= \
+ -pthread \
-o %{hv_kvp_daemon}
gcc \
$RPM_OPT_FLAGS \
++++++ hyper-v.lsvmbus.py ++++++
--- /var/tmp/diff_new_pack.DRDJCE/_old 2019-12-02 11:38:07.982458052 +0100
+++ /var/tmp/diff_new_pack.DRDJCE/_new 2019-12-02 11:38:07.986458052 +0100
@@ -1,13 +1,13 @@
-#!/usr/bin/python
+#!/usr/bin/python3
# SPDX-License-Identifier: GPL-2.0
import os
from optparse import OptionParser
+help_msg = "print verbose messages. Try -vv, -vvv for more verbose messages"
parser = OptionParser()
-parser.add_option("-v", "--verbose", dest="verbose",
- help="print verbose messages. Try -vv, -vvv for \
- more verbose messages", action="count")
+parser.add_option(
+ "-v", "--verbose", dest="verbose", help=help_msg, action="count")
(options, args) = parser.parse_args()
@@ -21,27 +21,28 @@
exit(-1)
vmbus_dev_dict = {
- '{0e0b6031-5213-4934-818b-38d90ced39db}' : '[Operating system shutdown]',
- '{9527e630-d0ae-497b-adce-e80ab0175caf}' : '[Time Synchronization]',
- '{57164f39-9115-4e78-ab55-382f3bd5422d}' : '[Heartbeat]',
- '{a9a0f4e7-5a45-4d96-b827-8a841e8c03e6}' : '[Data Exchange]',
- '{35fa2e29-ea23-4236-96ae-3a6ebacba440}' : '[Backup (volume checkpoint)]',
- '{34d14be3-dee4-41c8-9ae7-6b174977c192}' : '[Guest services]',
- '{525074dc-8985-46e2-8057-a307dc18a502}' : '[Dynamic Memory]',
- '{cfa8b69e-5b4a-4cc0-b98b-8ba1a1f3f95a}' : 'Synthetic mouse',
- '{f912ad6d-2b17-48ea-bd65-f927a61c7684}' : 'Synthetic keyboard',
- '{da0a7802-e377-4aac-8e77-0558eb1073f8}' : 'Synthetic framebuffer adapter',
- '{f8615163-df3e-46c5-913f-f2d2f965ed0e}' : 'Synthetic network adapter',
- '{32412632-86cb-44a2-9b5c-50d1417354f5}' : 'Synthetic IDE Controller',
- '{ba6163d9-04a1-4d29-b605-72e2ffb1dc7f}' : 'Synthetic SCSI Controller',
- '{2f9bcc4a-0069-4af3-b76b-6fd0be528cda}' : 'Synthetic fiber channel adapter',
- '{8c2eaf3d-32a7-4b09-ab99-bd1f1c86b501}' : 'Synthetic RDMA adapter',
- '{44c4f61d-4444-4400-9d52-802e27ede19f}' : 'PCI Express pass-through',
- '{276aacf4-ac15-426c-98dd-7521ad3f01fe}' : '[Reserved system device]',
- '{f8e65716-3cb3-4a06-9a60-1889c5cccab5}' : '[Reserved system device]',
- '{3375baf4-9e15-4b30-b765-67acb10d607b}' : '[Reserved system device]',
+ '{0e0b6031-5213-4934-818b-38d90ced39db}': '[Operating system shutdown]',
+ '{9527e630-d0ae-497b-adce-e80ab0175caf}': '[Time Synchronization]',
+ '{57164f39-9115-4e78-ab55-382f3bd5422d}': '[Heartbeat]',
+ '{a9a0f4e7-5a45-4d96-b827-8a841e8c03e6}': '[Data Exchange]',
+ '{35fa2e29-ea23-4236-96ae-3a6ebacba440}': '[Backup (volume checkpoint)]',
+ '{34d14be3-dee4-41c8-9ae7-6b174977c192}': '[Guest services]',
+ '{525074dc-8985-46e2-8057-a307dc18a502}': '[Dynamic Memory]',
+ '{cfa8b69e-5b4a-4cc0-b98b-8ba1a1f3f95a}': 'Synthetic mouse',
+ '{f912ad6d-2b17-48ea-bd65-f927a61c7684}': 'Synthetic keyboard',
+ '{da0a7802-e377-4aac-8e77-0558eb1073f8}': 'Synthetic framebuffer adapter',
+ '{f8615163-df3e-46c5-913f-f2d2f965ed0e}': 'Synthetic network adapter',
+ '{32412632-86cb-44a2-9b5c-50d1417354f5}': 'Synthetic IDE Controller',
+ '{ba6163d9-04a1-4d29-b605-72e2ffb1dc7f}': 'Synthetic SCSI Controller',
+ '{2f9bcc4a-0069-4af3-b76b-6fd0be528cda}': 'Synthetic fiber channel adapter',
+ '{8c2eaf3d-32a7-4b09-ab99-bd1f1c86b501}': 'Synthetic RDMA adapter',
+ '{44c4f61d-4444-4400-9d52-802e27ede19f}': 'PCI Express pass-through',
+ '{276aacf4-ac15-426c-98dd-7521ad3f01fe}': '[Reserved system device]',
+ '{f8e65716-3cb3-4a06-9a60-1889c5cccab5}': '[Reserved system device]',
+ '{3375baf4-9e15-4b30-b765-67acb10d607b}': '[Reserved system device]',
}
+
def get_vmbus_dev_attr(dev_name, attr):
try:
f = open('%s/%s/%s' % (vmbus_sys_path, dev_name, attr), 'r')
@@ -52,6 +53,7 @@
return lines
+
class VMBus_Dev:
pass
@@ -66,12 +68,13 @@
chn_vp_mapping = get_vmbus_dev_attr(f, 'channel_vp_mapping')
chn_vp_mapping = [c.strip() for c in chn_vp_mapping]
- chn_vp_mapping = sorted(chn_vp_mapping,
- key = lambda c : int(c.split(':')[0]))
+ chn_vp_mapping = sorted(
+ chn_vp_mapping, key=lambda c: int(c.split(':')[0]))
- chn_vp_mapping = ['\tRel_ID=%s, target_cpu=%s' %
- (c.split(':')[0], c.split(':')[1])
- for c in chn_vp_mapping]
+ chn_vp_mapping = [
+ '\tRel_ID=%s, target_cpu=%s' %
+ (c.split(':')[0], c.split(':')[1]) for c in chn_vp_mapping
+ ]
d = VMBus_Dev()
d.sysfs_path = '%s/%s' % (vmbus_sys_path, f)
d.vmbus_id = vmbus_id
@@ -85,7 +88,7 @@
vmbus_dev_list.append(d)
-vmbus_dev_list = sorted(vmbus_dev_list, key = lambda d : int(d.vmbus_id))
+vmbus_dev_list = sorted(vmbus_dev_list, key=lambda d: int(d.vmbus_id))
format0 = '%2s: %s'
format1 = '%2s: Class_ID = %s - %s\n%s'
@@ -95,9 +98,15 @@
if verbose == 0:
print(('VMBUS ID ' + format0) % (d.vmbus_id, d.dev_desc))
elif verbose == 1:
- print (('VMBUS ID ' + format1) % \
- (d.vmbus_id, d.class_id, d.dev_desc, d.chn_vp_mapping))
+ print(
+ ('VMBUS ID ' + format1) %
+ (d.vmbus_id, d.class_id, d.dev_desc, d.chn_vp_mapping)
+ )
else:
- print (('VMBUS ID ' + format2) % \
- (d.vmbus_id, d.class_id, d.dev_desc, \
- d.device_id, d.sysfs_path, d.chn_vp_mapping))
+ print(
+ ('VMBUS ID ' + format2) %
+ (
+ d.vmbus_id, d.class_id, d.dev_desc,
+ d.device_id, d.sysfs_path, d.chn_vp_mapping
+ )
+ )
++++++ hyper-v.tools.hv.hv_fcopy_daemon.c ++++++
--- /var/tmp/diff_new_pack.DRDJCE/_old 2019-12-02 11:38:08.002458055 +0100
+++ /var/tmp/diff_new_pack.DRDJCE/_new 2019-12-02 11:38:08.002458055 +0100
@@ -1,19 +1,10 @@
+// SPDX-License-Identifier: GPL-2.0-only
/*
* An implementation of host to guest copy functionality for Linux.
*
* Copyright (C) 2014, Microsoft, Inc.
*
* Author : K. Y. Srinivasan <kys(a)microsoft.com>
- *
- * This program is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License version 2 as published
- * by the Free Software Foundation.
- *
- * This program is distributed in the hope that it will be useful, but
- * WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE, GOOD TITLE or
- * NON INFRINGEMENT. See the GNU General Public License for more
- * details.
*/
++++++ hyper-v.tools.hv.hv_get_dhcp_info.sh ++++++
--- /var/tmp/diff_new_pack.DRDJCE/_old 2019-12-02 11:38:08.010458057 +0100
+++ /var/tmp/diff_new_pack.DRDJCE/_new 2019-12-02 11:38:08.014458058 +0100
@@ -12,7 +12,7 @@
# the script prints the string "Disabled" to stdout.
#
# Each Distro is expected to implement this script in a distro specific
-# fashion. For instance on Distros that ship with Network Manager enabled,
+# fashion. For instance, on Distros that ship with Network Manager enabled,
# this script can be based on the Network Manager APIs for retrieving DHCP
# information.
++++++ hyper-v.tools.hv.hv_kvp_daemon.c ++++++
--- /var/tmp/diff_new_pack.DRDJCE/_old 2019-12-02 11:38:08.030458062 +0100
+++ /var/tmp/diff_new_pack.DRDJCE/_new 2019-12-02 11:38:08.030458062 +0100
@@ -41,6 +41,7 @@
#include <net/if.h>
#include <limits.h>
#include <getopt.h>
+#include <pthread.h>
/*
* KVP protocol: The user mode component first registers with the
@@ -85,7 +86,7 @@
static char *os_build;
static char *os_version;
static char *lic_version = "Unknown version";
-static char full_domain_name[HV_KVP_EXCHANGE_MAX_VALUE_SIZE];
+static char *full_domain_name;
static struct utsname uts_buf;
/*
@@ -700,7 +701,7 @@
/*
- * Gather the DNS state.
+ * Gather the DNS state.
* Since there is no standard way to get this information
* across various distributions of interest; we just invoke
* an external script that needs to be ported across distros
@@ -809,7 +810,7 @@
int sn_offset = 0;
int error = 0;
char *buffer;
- struct hv_kvp_ipaddr_value *ip_buffer;
+ struct hv_kvp_ipaddr_value *ip_buffer = NULL;
char cidr_mask[5]; /* /xyz */
int weight;
int i;
@@ -1051,7 +1052,7 @@
char *start;
/*
- * in_buf has sequence of characters that are seperated by
+ * in_buf has sequence of characters that are separated by
* the character ';'. The last sequence does not have the
* terminating ";" character.
*/
@@ -1178,6 +1179,7 @@
FILE *file;
char cmd[PATH_MAX];
char *mac_addr;
+ int str_len;
/*
* Set the configuration for the specified interface with
@@ -1301,8 +1303,18 @@
* invoke the external script to do its magic.
*/
- snprintf(cmd, sizeof(cmd), KVP_SCRIPTS_PATH "%s %s",
- "hv_set_ifconfig", if_file);
+ str_len = snprintf(cmd, sizeof(cmd), KVP_SCRIPTS_PATH "%s %s",
+ "hv_set_ifconfig", if_file);
+ /*
+ * This is a little overcautious, but it's necessary to suppress some
+ * false warnings from gcc 8.0.1.
+ */
+ if (str_len <= 0 || (unsigned int)str_len >= sizeof(cmd)) {
+ syslog(LOG_ERR, "Cmd '%s' (len=%d) may be too long",
+ cmd, str_len);
+ return HV_E_FAIL;
+ }
+
if (system(cmd)) {
syslog(LOG_ERR, "Failed to execute cmd '%s'; error: %d %s",
cmd, errno, strerror(errno));
@@ -1317,27 +1329,76 @@
return error;
}
+/*
+ * Async retrival of Fully Qualified Domain Name because getaddrinfo takes an
+ * unpredictable amount of time to finish.
+ */
+static void *kvp_getaddrinfo(void *p)
+{
+ char *tmp, **str_ptr = (char **)p;
+ char hostname[HOST_NAME_MAX + 1];
+ struct addrinfo *info, hints = {
+ .ai_family = AF_INET, /* Get only ipv4 addrinfo. */
+ .ai_socktype = SOCK_STREAM,
+ .ai_flags = AI_CANONNAME,
+ };
+ int ret;
+ int prev_ret = 0, cnt = 5;
-static void
-kvp_get_domain_name(char *buffer, int length)
+ do {
+ if (gethostname(hostname, sizeof(hostname) - 1) < 0)
+ goto out;
+
+ ret = getaddrinfo(hostname, NULL, &hints, &info);
+ switch (ret) {
+ case 0:
+ break;
+ case EAI_BADFLAGS:
+ case EAI_MEMORY:
+ case EAI_OVERFLOW:
+ case EAI_SOCKTYPE:
+ case EAI_SYSTEM:
+ /* Permanent failure */
+ syslog(LOG_ERR, "getaddrinfo failed: %d %s",
+ ret, gai_strerror(ret));
+ goto out;
+ default:
+ /* runtime debug */
+ if (cnt) {
+ if (prev_ret != ret) {
+ prev_ret = ret;
+ syslog(LOG_ERR, "getaddrinfo warning: %d %s", ret, gai_strerror(ret));
+ cnt--;
+ }
+ }
+ /* Temporary failure, aim for success. */
+ sleep(5);
+ }
+ } while (ret);
+
+ ret = asprintf(&tmp, "%s", info->ai_canonname);
+ freeaddrinfo(info);
+ if (ret <= 0)
+ goto out;
+
+ if (ret > HV_KVP_EXCHANGE_MAX_VALUE_SIZE)
+ tmp[HV_KVP_EXCHANGE_MAX_VALUE_SIZE - 1] = '\0';
+ *str_ptr = tmp;
+
+out:
+ pthread_exit(NULL);
+}
+
+static void kvp_obtain_domain_name(char **str_ptr)
{
- struct addrinfo hints, *info ;
- int error = 0;
+ pthread_t t;
- gethostname(buffer, length);
- memset(&hints, 0, sizeof(hints));
- hints.ai_family = AF_INET; /*Get only ipv4 addrinfo. */
- hints.ai_socktype = SOCK_STREAM;
- hints.ai_flags = AI_CANONNAME;
-
- error = getaddrinfo(buffer, NULL, &hints, &info);
- if (error != 0) {
- snprintf(buffer, length, "getaddrinfo failed: 0x%x %s",
- error, gai_strerror(error));
+ if (pthread_create(&t, NULL, kvp_getaddrinfo, str_ptr)) {
+ syslog(LOG_ERR, "pthread_create failed; error: %d %s",
+ errno, strerror(errno));
return;
}
- snprintf(buffer, length, "%s", info->ai_canonname);
- freeaddrinfo(info);
+ pthread_detach(t);
}
void print_usage(char *argv[])
@@ -1376,6 +1437,8 @@
daemonize = 0;
break;
case 'h':
+ print_usage(argv);
+ exit(0);
default:
print_usage(argv);
exit(EXIT_FAILURE);
@@ -1400,11 +1463,7 @@
* Retrieve OS release information.
*/
kvp_get_os_info();
- /*
- * Cache Fully Qualified Domain Name because getaddrinfo takes an
- * unpredictable amount of time to finish.
- */
- kvp_get_domain_name(full_domain_name, sizeof(full_domain_name));
+ kvp_obtain_domain_name(&full_domain_name);
if (kvp_file_init()) {
syslog(LOG_ERR, "Failed to initialize the pools");
@@ -1480,7 +1539,7 @@
case KVP_OP_GET_IP_INFO:
kvp_ip_val = &hv_msg->body.kvp_ip_val;
- error = kvp_mac_to_ip(kvp_ip_val);
+ error = kvp_mac_to_ip(kvp_ip_val);
if (error)
hv_msg->error = error;
@@ -1559,7 +1618,7 @@
switch (hv_msg->body.kvp_enum_data.index) {
case FullyQualifiedDomainName:
- strcpy(key_value, full_domain_name);
+ strcpy(key_value, full_domain_name ? : "");
strcpy(key_name, "FullyQualifiedDomainName");
break;
case IntegrationServicesVersion:
++++++ hyper-v.tools.hv.hv_vss_daemon.c ++++++
--- /var/tmp/diff_new_pack.DRDJCE/_old 2019-12-02 11:38:08.062458068 +0100
+++ /var/tmp/diff_new_pack.DRDJCE/_new 2019-12-02 11:38:08.062458068 +0100
@@ -1,20 +1,9 @@
+// SPDX-License-Identifier: GPL-2.0-only
/*
* An implementation of the host initiated guest snapshot for Hyper-V.
*
- *
* Copyright (C) 2013, Microsoft, Inc.
* Author : K. Y. Srinivasan <kys(a)microsoft.com>
- *
- * This program is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License version 2 as published
- * by the Free Software Foundation.
- *
- * This program is distributed in the hope that it will be useful, but
- * WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE, GOOD TITLE or
- * NON INFRINGEMENT. See the GNU General Public License for more
- * details.
- *
*/
@@ -53,7 +42,7 @@
* If a partition is mounted more than once, only the first
* FREEZE/THAW can succeed and the later ones will get
* EBUSY/EINVAL respectively: there could be 2 cases:
- * 1) a user may mount the same partition to differnt directories
+ * 1) a user may mount the same partition to different directories
* by mistake or on purpose;
* 2) The subvolume of btrfs appears to have the same partition
* mounted more than once.
@@ -229,6 +218,8 @@
daemonize = 0;
break;
case 'h':
+ print_usage(argv);
+ exit(0);
default:
print_usage(argv);
exit(EXIT_FAILURE);
1
0
Hello community,
here is the log from the commit of package spotify-easyrpm for openSUSE:Factory checked in at 2019-12-02 11:33:37
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/spotify-easyrpm (Old)
and /work/SRC/openSUSE:Factory/.spotify-easyrpm.new.4691 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "spotify-easyrpm"
Mon Dec 2 11:33:37 2019 rev:2 rq:752659 version:2.1.0
Changes:
--------
--- /work/SRC/openSUSE:Factory/spotify-easyrpm/spotify-easyrpm.changes 2019-09-09 23:41:55.761304512 +0200
+++ /work/SRC/openSUSE:Factory/.spotify-easyrpm.new.4691/spotify-easyrpm.changes 2019-12-02 11:38:06.826457808 +0100
@@ -1,0 +2,10 @@
+Sat Nov 30 22:02:35 UTC 2019 - david(a)macemail.co.uk
+
+- Replace createrepo with createrepo_c
+
+-------------------------------------------------------------------
+Sat Aug 24 04:49:41 UTC 2019 - Jan Engelhardt <jengelh(a)inai.de>
+
+- Use noun phrase in summary. Wrap descriptions.
+
+-------------------------------------------------------------------
@@ -4 +14,2 @@
-- Remove use of the USER variable to fix edge cases with network users or characters that need to be escaped
+- Remove use of the USER variable to fix edge cases with network
+ users or characters that need to be escaped
Old:
----
spotify-easyrpm-2.0.3.tar.gz
New:
----
spotify-easyrpm-2.1.0.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ spotify-easyrpm.spec ++++++
--- /var/tmp/diff_new_pack.jrqzE3/_old 2019-12-02 11:38:07.210457889 +0100
+++ /var/tmp/diff_new_pack.jrqzE3/_new 2019-12-02 11:38:07.210457889 +0100
@@ -1,7 +1,7 @@
#
# spec file for package spotify-easyrpm
#
-# Copyright (c) 2018 SUSE LINUX GmbH, Nuernberg, Germany.
+# Copyright (c) 2019 SUSE LLC
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@@ -12,28 +12,30 @@
# license that conforms to the Open Source Definition (Version 1.9)
# published by the Open Source Initiative.
-# Please submit bugfixes or comments via http://bugs.opensuse.org/
+# Please submit bugfixes or comments via https://bugs.opensuse.org/
#
Name: spotify-easyrpm
-Version: 2.0.3
+Version: 2.1.0
Release: 0
-Summary: Download, convert and install the Spotify for Linux package
-License: GPL-3.0
+Summary: Tool to download, convert and install the Spotify for Linux package
+License: GPL-3.0-only
Group: Productivity/Multimedia/Sound/Utilities
URL: https://github.com/megamaced/spotify-easyrpm
Source: %{name}-%{version}.tar.gz
+Requires: createrepo_c
Requires: rpm-build
-Requires: createrepo
Requires: update-desktop-files
BuildArch: noarch
%description
-Spotify-easyrpm is a script which downloads the latest debian package from the Spotify
-repository and converts it into an RPM for installation
+Spotify-easyrpm is a script which downloads the latest Debian package
+from the Spotify repository and converts it into an RPM for
+installation.
-Automated updates are also supported and installed through the system update manager
+Automated updates are also supported and installed through the system
+update manager.
%prep
%setup -q
@@ -41,11 +43,9 @@
%build
%install
-
mkdir -p %{buildroot}%{_bindir}
cp %{name} %{buildroot}%{_bindir}/
-
%files
%doc README.md
%license LICENSE
++++++ spotify-easyrpm-2.0.3.tar.gz -> spotify-easyrpm-2.1.0.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/spotify-easyrpm-2.0.3/README.md new/spotify-easyrpm-2.1.0/README.md
--- old/spotify-easyrpm-2.0.3/README.md 2019-05-01 22:41:14.000000000 +0200
+++ new/spotify-easyrpm-2.1.0/README.md 2019-11-30 22:53:20.000000000 +0100
@@ -18,6 +18,13 @@
* Fully unattended quiet mode
+ News
+
+ * 13/09/19 - We got accepted into openSUSE:Factory! We are now in the official Tumbleweed oss repo
+ * 08/05/19 - We got accepted into multimedia:apps repo on the Open Build Service! I'm using their
+ one click install links below where possible
+
+
Howto
spotify-easyrpm
@@ -46,29 +53,39 @@
Requirements
- * Latest openSUSE Leap / SLE (x86_64), or Tumbleweed (x86_64 or i586)
+ * openSUSE Leap / SLE (x86_64), or Tumbleweed (x86_64 or i586)
- Download links (One Click Install)
+ Auto Updates
- * SLE 15 https://software.opensuse.org/ymp/home:megamaced:spotify-easyrpm/openSUSE_L…
- * openSUSE 15.0
- https://software.opensuse.org/ymp/home:megamaced:spotify-easyrpm/openSUSE_L…
- * openSUSE Tumbleweed https://software.opensuse.org/ymp/home:megamaced:spotify-easyrpm/openSUSE_T…
+ spotify-easyrpm can create a systemd user timer job which will run daily and 5 minutes after user login.
+ This will call the script to do a light check against the Spotify debian repo for a new release.
+ If a new release is found, a build process is kicked off in the background and the final RPM will
+ be placed on your machine in a local filesystem repo (/var/cache/spotify-easyrpm).
+ The next time you run the system updater or zypper up you will see spotify-client appear as an
+ update alongside regular updates.
+ If you want to modify the update check timer, the file is at $HOME/.local/share/systemd/user/spotify-easyrpm.timer
+ Please see the systemd documentation for more information
-Auto Updates
+ To see a brief summary of the last run do
-spotify-easyrpm can create a systemd user timer job which will run daily and 5 minutes after user login.
-This will call the script to do a light check against the Spotify debian repo for a new release.
-If a new release is found, a build process is kicked off in the background and the final RPM will
-be placed on your machine in a local filesystem repo (/var/cache/spotify-easyrpm).
-The next time you run the system updater or zypper up you will see spotify-client appear as an
-update alongside regular updates.
+ systemctl --user status spotify-easyrpm
-If you want to modify the update check timer, the file is at $HOME/.local/share/systemd/user/spotify-easyrpm.timer
-Please see the systemd documentation for more information
+ If you want to see the full output of the last run you can do
-If you want to see the output of the last update check or build process, you can run
+ journalctl --user-unit spotify-easyrpm
+
+
+ Download links (One Click Install)
-journalctl --user-unit spotify-easyrpm
\ No newline at end of file
+ * SLE 15
+ https://software.opensuse.org/ymp/home:megamaced:spotify-easyrpm/SLE_15/spo…
+ * openSUSE 42.3
+ https://software.opensuse.org/ymp/multimedia:apps/openSUSE_Leap_42.3/spotif…
+ * openSUSE 15.0
+ https://software.opensuse.org/ymp/multimedia:apps/openSUSE_Leap_15.0/spotif…
+ * openSUSE 15.1
+ https://software.opensuse.org/ymp/multimedia:apps/openSUSE_Leap_15.1/spotif…
+ * openSUSE Tumbleweed
+ We are included in Tumbleweed. Just a `zypper in spotify-easyrpm` away
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/spotify-easyrpm-2.0.3/spotify-easyrpm new/spotify-easyrpm-2.1.0/spotify-easyrpm
--- old/spotify-easyrpm-2.0.3/spotify-easyrpm 2019-05-01 22:41:14.000000000 +0200
+++ new/spotify-easyrpm-2.1.0/spotify-easyrpm 2019-11-30 22:53:20.000000000 +0100
@@ -40,7 +40,7 @@
EOF
sleep 2
cat <<EOF
-VERSION: 2.0.3
+VERSION: 2.1.0
SUPPORT: https://github.com/megamaced/spotify-easyrpm/issues
The latest openSUSE Leap, Tumbleweed or SLE are supported only
@@ -453,9 +453,9 @@
f_create_repo() {
-if ! rpm -q createrepo > /dev/null 2>&1; then
+if ! rpm -q createrepo_c > /dev/null 2>&1; then
echo "Installing CreateRepo for local filesystem repo"
- if ! sudo zypper --non-interactive in createrepo; then
+ if ! sudo zypper --non-interactive in createrepo_c; then
f_error "Failed to install createrepo. Aborting"
fi
fi
1
0
Hello community,
here is the log from the commit of package objectweb-asm for openSUSE:Factory checked in at 2019-12-02 11:33:32
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/objectweb-asm (Old)
and /work/SRC/openSUSE:Factory/.objectweb-asm.new.4691 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "objectweb-asm"
Mon Dec 2 11:33:32 2019 rev:22 rq:751513 version:7.2
Changes:
--------
--- /work/SRC/openSUSE:Factory/objectweb-asm/objectweb-asm.changes 2019-03-13 09:06:41.183439649 +0100
+++ /work/SRC/openSUSE:Factory/.objectweb-asm.new.4691/objectweb-asm.changes 2019-12-02 11:38:05.478457525 +0100
@@ -1,0 +2,6 @@
+Mon Nov 25 07:55:52 UTC 2019 - Fridrich Strba <fstrba(a)suse.com>
+
+- Upgrade to version 7.2
+ * Upstream dropped asm-xml submodule
+
+-------------------------------------------------------------------
Old:
----
asm-6.2.1.pom
asm-analysis-6.2.1.pom
asm-commons-6.2.1.pom
asm-test-6.2.1.pom
asm-tree-6.2.1.pom
asm-util-6.2.1.pom
asm-xml-6.2.1.pom
objectweb-asm-6.2.1-build.tar.xz
objectweb-asm-6.2.1.tar.xz
New:
----
asm-7.2.pom
asm-analysis-7.2.pom
asm-commons-7.2.pom
asm-test-7.2.pom
asm-tree-7.2.pom
asm-util-7.2.pom
objectweb-asm-7.2-build.tar.xz
objectweb-asm-7.2.tar.xz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ objectweb-asm.spec ++++++
--- /var/tmp/diff_new_pack.vcI6wD/_old 2019-12-02 11:38:06.334457704 +0100
+++ /var/tmp/diff_new_pack.vcI6wD/_new 2019-12-02 11:38:06.334457704 +0100
@@ -1,7 +1,7 @@
#
# spec file for package objectweb-asm
#
-# Copyright (c) 2019 SUSE LINUX GmbH, Nuernberg, Germany.
+# Copyright (c) 2019 SUSE LLC
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@@ -17,7 +17,7 @@
Name: objectweb-asm
-Version: 6.2.1
+Version: 7.2
Release: 0
Summary: Java bytecode manipulation framework
License: BSD-3-Clause
@@ -32,7 +32,6 @@
Source5: http://repo1.maven.org/maven2/org/ow2/asm/asm-test/%{version}/asm-test-%{ve…
Source6: http://repo1.maven.org/maven2/org/ow2/asm/asm-tree/%{version}/asm-tree-%{ve…
Source7: http://repo1.maven.org/maven2/org/ow2/asm/asm-util/%{version}/asm-util-%{ve…
-Source8: http://repo1.maven.org/maven2/org/ow2/asm/asm-xml/%{version}/asm-xml-%{vers…
# We still want to create an "all" uberjar, so this is a custom pom to generate it
# TODO: Fix other packages to no longer depend on "asm-all" so we can drop this
Source9: asm-all.pom
@@ -95,15 +94,17 @@
cp %{SOURCE5} asm-test/pom.xml
cp %{SOURCE6} asm-tree/pom.xml
cp %{SOURCE7} asm-util/pom.xml
-cp %{SOURCE8} asm-xml/pom.xml
# Insert asm-all pom
mkdir -p asm-all
sed 's/@VERSION@/%{version}/g' %{SOURCE9} > asm-all/pom.xml
-for i in asm asm-analysis asm-commons asm-tree asm-util asm-xml asm-all; do
+for i in asm asm-analysis asm-commons asm-tree asm-util asm-all; do
%pom_remove_parent ${i}
done
+# We don't want to build modular jars
+find . -name module-info.java -print -delete
+
%build
%ant \
package javadoc
@@ -111,13 +112,13 @@
%install
# jars
install -dm 0755 %{buildroot}/%{_javadir}/%{name}
-for i in asm asm-analysis asm-commons asm-tree asm-util asm-xml asm-all; do
+for i in asm asm-analysis asm-commons asm-tree asm-util asm-all; do
install -pm 0644 ${i}/target/${i}-%{version}.jar %{buildroot}/%{_javadir}/%{name}/${i}.jar
done
# poms
install -dm 0755 %{buildroot}%{_mavenpomdir}/%{name}
-for i in asm asm-analysis asm-commons asm-tree asm-util asm-xml; do
+for i in asm asm-analysis asm-commons asm-tree asm-util; do
install -pm 0644 ${i}/pom.xml %{buildroot}%{_mavenpomdir}/%{name}/${i}.pom
%add_maven_depmap %{name}/${i}.pom %{name}/${i}.jar
done
@@ -126,13 +127,13 @@
# javadoc
install -dm 0755 %{buildroot}/%{_javadocdir}/%{name}
-for i in asm asm-analysis asm-commons asm-tree asm-util asm-xml; do
+for i in asm asm-analysis asm-commons asm-tree asm-util; do
cp -pr ${i}/target/site/apidocs %{buildroot}/%{_javadocdir}/%{name}/${i}
done
%fdupes -s %{buildroot}/%{_javadocdir}
# script
-%jpackage_script org.objectweb.asm.xml.Processor "" "" %{name}/asm:%{name}/asm-util:%{name}/asm-xml %{name}-processor true
+%jpackage_script org.objectweb.asm.xml.Processor "" "" %{name}/asm:%{name}/asm-util %{name}-processor true
%files -f .mfiles
%license LICENSE.txt
++++++ asm-6.2.1.pom -> asm-7.2.pom ++++++
--- /work/SRC/openSUSE:Factory/objectweb-asm/asm-6.2.1.pom 2019-03-13 09:06:40.799439689 +0100
+++ /work/SRC/openSUSE:Factory/.objectweb-asm.new.4691/asm-7.2.pom 2019-12-02 11:38:05.270457481 +0100
@@ -9,10 +9,10 @@
</parent>
<groupId>org.ow2.asm</groupId>
<artifactId>asm</artifactId>
- <version>6.2.1</version>
+ <version>7.2</version>
<name>asm</name>
<description>ASM, a very small and fast Java bytecode manipulation framework</description>
- <url>http://asm.ow2.org/</url>
+ <url>http://asm.ow2.io/</url>
<inceptionYear>2000</inceptionYear>
<organization>
<name>OW2</name>
@@ -20,8 +20,8 @@
</organization>
<licenses>
<license>
- <name>BSD</name>
- <url>http://asm.ow2.org/license.html</url>
+ <name>BSD-3-Clause</name>
+ <url>https://asm.ow2.io/license.html</url>
</license>
</licenses>
<developers>
@@ -77,19 +77,19 @@
<dependency>
<groupId>org.ow2.asm</groupId>
<artifactId>asm-test</artifactId>
- <version>6.2.1</version>
+ <version>7.2</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.junit.jupiter</groupId>
<artifactId>junit-jupiter-api</artifactId>
- <version>5.1.0</version>
+ <version>5.3.2</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.junit.jupiter</groupId>
<artifactId>junit-jupiter-params</artifactId>
- <version>5.1.0</version>
+ <version>5.3.2</version>
<scope>test</scope>
</dependency>
</dependencies>
++++++ asm-all.pom ++++++
--- /var/tmp/diff_new_pack.vcI6wD/_old 2019-12-02 11:38:06.374457713 +0100
+++ /var/tmp/diff_new_pack.vcI6wD/_new 2019-12-02 11:38:06.374457713 +0100
@@ -36,11 +36,6 @@
<artifactId>asm-util</artifactId>
<version>@VERSION@</version>
</dependency>
- <dependency>
- <groupId>org.ow2.asm</groupId>
- <artifactId>asm-xml</artifactId>
- <version>@VERSION@</version>
- </dependency>
</dependencies>
<build>
<plugins>
++++++ asm-analysis-6.2.1.pom -> asm-analysis-7.2.pom ++++++
--- /work/SRC/openSUSE:Factory/objectweb-asm/asm-analysis-6.2.1.pom 2019-03-13 09:06:40.931439676 +0100
+++ /work/SRC/openSUSE:Factory/.objectweb-asm.new.4691/asm-analysis-7.2.pom 2019-12-02 11:38:05.314457490 +0100
@@ -9,10 +9,10 @@
</parent>
<groupId>org.ow2.asm</groupId>
<artifactId>asm-analysis</artifactId>
- <version>6.2.1</version>
+ <version>7.2</version>
<name>asm-analysis</name>
<description>Static code analysis API of ASM, a very small and fast Java bytecode manipulation framework</description>
- <url>http://asm.ow2.org/</url>
+ <url>http://asm.ow2.io/</url>
<inceptionYear>2000</inceptionYear>
<organization>
<name>OW2</name>
@@ -20,8 +20,8 @@
</organization>
<licenses>
<license>
- <name>BSD</name>
- <url>http://asm.ow2.org/license.html</url>
+ <name>BSD-3-Clause</name>
+ <url>https://asm.ow2.io/license.html</url>
</license>
</licenses>
<developers>
@@ -77,25 +77,25 @@
<dependency>
<groupId>org.ow2.asm</groupId>
<artifactId>asm-tree</artifactId>
- <version>6.2.1</version>
+ <version>7.2</version>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>org.ow2.asm</groupId>
<artifactId>asm-test</artifactId>
- <version>6.2.1</version>
+ <version>7.2</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.junit.jupiter</groupId>
<artifactId>junit-jupiter-api</artifactId>
- <version>5.1.0</version>
+ <version>5.3.2</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.junit.jupiter</groupId>
<artifactId>junit-jupiter-params</artifactId>
- <version>5.1.0</version>
+ <version>5.3.2</version>
<scope>test</scope>
</dependency>
</dependencies>
++++++ asm-commons-6.2.1.pom -> asm-commons-7.2.pom ++++++
--- /work/SRC/openSUSE:Factory/objectweb-asm/asm-commons-6.2.1.pom 2019-03-13 09:06:40.959439673 +0100
+++ /work/SRC/openSUSE:Factory/.objectweb-asm.new.4691/asm-commons-7.2.pom 2019-12-02 11:38:05.358457500 +0100
@@ -9,10 +9,10 @@
</parent>
<groupId>org.ow2.asm</groupId>
<artifactId>asm-commons</artifactId>
- <version>6.2.1</version>
+ <version>7.2</version>
<name>asm-commons</name>
<description>Usefull class adapters based on ASM, a very small and fast Java bytecode manipulation framework</description>
- <url>http://asm.ow2.org/</url>
+ <url>http://asm.ow2.io/</url>
<inceptionYear>2000</inceptionYear>
<organization>
<name>OW2</name>
@@ -20,8 +20,8 @@
</organization>
<licenses>
<license>
- <name>BSD</name>
- <url>http://asm.ow2.org/license.html</url>
+ <name>BSD-3-Clause</name>
+ <url>https://asm.ow2.io/license.html</url>
</license>
</licenses>
<developers>
@@ -77,43 +77,43 @@
<dependency>
<groupId>org.ow2.asm</groupId>
<artifactId>asm</artifactId>
- <version>6.2.1</version>
+ <version>7.2</version>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>org.ow2.asm</groupId>
<artifactId>asm-tree</artifactId>
- <version>6.2.1</version>
+ <version>7.2</version>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>org.ow2.asm</groupId>
<artifactId>asm-analysis</artifactId>
- <version>6.2.1</version>
+ <version>7.2</version>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>org.ow2.asm</groupId>
<artifactId>asm-util</artifactId>
- <version>6.2.1</version>
+ <version>7.2</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.ow2.asm</groupId>
<artifactId>asm-test</artifactId>
- <version>6.2.1</version>
+ <version>7.2</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.junit.jupiter</groupId>
<artifactId>junit-jupiter-api</artifactId>
- <version>5.1.0</version>
+ <version>5.3.2</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.junit.jupiter</groupId>
<artifactId>junit-jupiter-params</artifactId>
- <version>5.1.0</version>
+ <version>5.3.2</version>
<scope>test</scope>
</dependency>
</dependencies>
++++++ asm-test-6.2.1.pom -> asm-test-7.2.pom ++++++
--- /work/SRC/openSUSE:Factory/objectweb-asm/asm-test-6.2.1.pom 2019-03-13 09:06:40.999439668 +0100
+++ /work/SRC/openSUSE:Factory/.objectweb-asm.new.4691/asm-test-7.2.pom 2019-12-02 11:38:05.374457503 +0100
@@ -9,10 +9,10 @@
</parent>
<groupId>org.ow2.asm</groupId>
<artifactId>asm-test</artifactId>
- <version>6.2.1</version>
+ <version>7.2</version>
<name>asm-test</name>
<description>Utilities for testing ASM, a very small and fast Java bytecode manipulation framework</description>
- <url>http://asm.ow2.org/</url>
+ <url>http://asm.ow2.io/</url>
<inceptionYear>2000</inceptionYear>
<organization>
<name>OW2</name>
@@ -20,8 +20,8 @@
</organization>
<licenses>
<license>
- <name>BSD</name>
- <url>http://asm.ow2.org/license.html</url>
+ <name>BSD-3-Clause</name>
+ <url>https://asm.ow2.io/license.html</url>
</license>
</licenses>
<developers>
@@ -77,19 +77,19 @@
<dependency>
<groupId>org.junit.jupiter</groupId>
<artifactId>junit-jupiter-api</artifactId>
- <version>5.1.0</version>
+ <version>5.3.2</version>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>org.junit.jupiter</groupId>
<artifactId>junit-jupiter-params</artifactId>
- <version>5.1.0</version>
+ <version>5.3.2</version>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>org.ow2.asm</groupId>
<artifactId>asm-test</artifactId>
- <version>6.2.1</version>
+ <version>7.2</version>
<scope>test</scope>
</dependency>
</dependencies>
++++++ asm-tree-6.2.1.pom -> asm-tree-7.2.pom ++++++
--- /work/SRC/openSUSE:Factory/objectweb-asm/asm-tree-6.2.1.pom 2019-03-13 09:06:41.075439661 +0100
+++ /work/SRC/openSUSE:Factory/.objectweb-asm.new.4691/asm-tree-7.2.pom 2019-12-02 11:38:05.398457507 +0100
@@ -9,10 +9,10 @@
</parent>
<groupId>org.ow2.asm</groupId>
<artifactId>asm-tree</artifactId>
- <version>6.2.1</version>
+ <version>7.2</version>
<name>asm-tree</name>
<description>Tree API of ASM, a very small and fast Java bytecode manipulation framework</description>
- <url>http://asm.ow2.org/</url>
+ <url>http://asm.ow2.io/</url>
<inceptionYear>2000</inceptionYear>
<organization>
<name>OW2</name>
@@ -20,8 +20,8 @@
</organization>
<licenses>
<license>
- <name>BSD</name>
- <url>http://asm.ow2.org/license.html</url>
+ <name>BSD-3-Clause</name>
+ <url>https://asm.ow2.io/license.html</url>
</license>
</licenses>
<developers>
@@ -77,25 +77,25 @@
<dependency>
<groupId>org.ow2.asm</groupId>
<artifactId>asm</artifactId>
- <version>6.2.1</version>
+ <version>7.2</version>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>org.ow2.asm</groupId>
<artifactId>asm-test</artifactId>
- <version>6.2.1</version>
+ <version>7.2</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.junit.jupiter</groupId>
<artifactId>junit-jupiter-api</artifactId>
- <version>5.1.0</version>
+ <version>5.3.2</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.junit.jupiter</groupId>
<artifactId>junit-jupiter-params</artifactId>
- <version>5.1.0</version>
+ <version>5.3.2</version>
<scope>test</scope>
</dependency>
</dependencies>
++++++ asm-util-6.2.1.pom -> asm-util-7.2.pom ++++++
--- /work/SRC/openSUSE:Factory/objectweb-asm/asm-util-6.2.1.pom 2019-03-13 09:06:41.099439658 +0100
+++ /work/SRC/openSUSE:Factory/.objectweb-asm.new.4691/asm-util-7.2.pom 2019-12-02 11:38:05.426457514 +0100
@@ -9,10 +9,10 @@
</parent>
<groupId>org.ow2.asm</groupId>
<artifactId>asm-util</artifactId>
- <version>6.2.1</version>
+ <version>7.2</version>
<name>asm-util</name>
<description>Utilities for ASM, a very small and fast Java bytecode manipulation framework</description>
- <url>http://asm.ow2.org/</url>
+ <url>http://asm.ow2.io/</url>
<inceptionYear>2000</inceptionYear>
<organization>
<name>OW2</name>
@@ -20,8 +20,8 @@
</organization>
<licenses>
<license>
- <name>BSD</name>
- <url>http://asm.ow2.org/license.html</url>
+ <name>BSD-3-Clause</name>
+ <url>https://asm.ow2.io/license.html</url>
</license>
</licenses>
<developers>
@@ -77,43 +77,43 @@
<dependency>
<groupId>org.ow2.asm</groupId>
<artifactId>asm</artifactId>
- <version>6.2.1</version>
+ <version>7.2</version>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>org.ow2.asm</groupId>
<artifactId>asm-tree</artifactId>
- <version>6.2.1</version>
+ <version>7.2</version>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>org.ow2.asm</groupId>
<artifactId>asm-analysis</artifactId>
- <version>6.2.1</version>
+ <version>7.2</version>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>org.codehaus.janino</groupId>
<artifactId>janino</artifactId>
- <version>3.0.7</version>
+ <version>3.0.11</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.ow2.asm</groupId>
<artifactId>asm-test</artifactId>
- <version>6.2.1</version>
+ <version>7.2</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.junit.jupiter</groupId>
<artifactId>junit-jupiter-api</artifactId>
- <version>5.1.0</version>
+ <version>5.3.2</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.junit.jupiter</groupId>
<artifactId>junit-jupiter-params</artifactId>
- <version>5.1.0</version>
+ <version>5.3.2</version>
<scope>test</scope>
</dependency>
</dependencies>
++++++ objectweb-asm-6.2.1-build.tar.xz -> objectweb-asm-7.2-build.tar.xz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/asm/build.xml new/asm/build.xml
--- old/asm/build.xml 2019-03-06 10:32:07.973091330 +0100
+++ new/asm/build.xml 2019-11-25 08:26:49.513810766 +0100
@@ -102,7 +102,7 @@
<attribute name="Bundle-RequiredExecutionEnvironment" value="JavaSE-${compiler.target}"/>
<attribute name="Bundle-SymbolicName" value="org.objectweb.asm"/>
<attribute name="Bundle-Vendor" value="${project.organization.name}"/>
- <attribute name="Bundle-Version" value="${project.version}"/>
+ <attribute name="Bundle-Version" value="${bundle.version}"/>
<attribute name="Export-Package" value="org.objectweb.asm;version="${project.version}",org.objectweb.asm.signature;version="${project.version}""/>
<attribute name="JavaPackages-ArtifactId" value="${project.artifactId}"/>
<attribute name="JavaPackages-GroupId" value="${project.groupId}"/>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/asm-all/build.xml new/asm-all/build.xml
--- old/asm-all/build.xml 2019-03-06 10:25:35.579062799 +0100
+++ new/asm-all/build.xml 2019-11-25 08:19:07.423315208 +0100
@@ -54,7 +54,6 @@
<fileset dir="../asm-commons/target/classes/"/>
<fileset dir="../asm-tree/target/classes/"/>
<fileset dir="../asm-util/target/classes/"/>
- <fileset dir="../asm-xml/target/classes/"/>
<manifest>
<attribute name="JavaPackages-ArtifactId" value="${project.artifactId}"/>
<attribute name="JavaPackages-GroupId" value="${project.groupId}"/>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/asm-analysis/build.xml new/asm-analysis/build.xml
--- old/asm-analysis/build.xml 2019-03-06 10:31:59.173045832 +0100
+++ new/asm-analysis/build.xml 2019-11-25 08:26:53.237830878 +0100
@@ -105,9 +105,9 @@
<attribute name="Bundle-RequiredExecutionEnvironment" value="JavaSE-${compiler.target}"/>
<attribute name="Bundle-SymbolicName" value="org.objectweb.asm.analysis"/>
<attribute name="Bundle-Vendor" value="${project.organization.name}"/>
- <attribute name="Bundle-Version" value="${project.version}"/>
+ <attribute name="Bundle-Version" value="${bundle.version}"/>
<attribute name="Export-Package" value="org.objectweb.asm.tree.analysis;uses:="org.objectweb.asm,org.objectweb.asm.tree";version="${project.version}""/>
- <attribute name="Import-Package" value="org.objectweb.asm;version="[6.2,7)",org.objectweb.asm.tree;version="[6.2,7)""/>
+ <attribute name="Import-Package" value="org.objectweb.asm;version="[7.2,8)",org.objectweb.asm.tree;version="[7.2,8)""/>
<attribute name="JavaPackages-ArtifactId" value="${project.artifactId}"/>
<attribute name="JavaPackages-GroupId" value="${project.groupId}"/>
<attribute name="JavaPackages-Version" value="${project.version}"/>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/asm-commons/build.xml new/asm-commons/build.xml
--- old/asm-commons/build.xml 2019-03-06 10:32:13.733121111 +0100
+++ new/asm-commons/build.xml 2019-11-25 08:26:46.113792402 +0100
@@ -106,9 +106,9 @@
<attribute name="Bundle-RequiredExecutionEnvironment" value="JavaSE-${compiler.target}"/>
<attribute name="Bundle-SymbolicName" value="org.objectweb.asm.commons"/>
<attribute name="Bundle-Vendor" value="${project.organization.name}"/>
- <attribute name="Bundle-Version" value="${project.version}"/>
+ <attribute name="Bundle-Version" value="${bundle.version}"/>
<attribute name="Export-Package" value="org.objectweb.asm.commons;uses:="org.objectweb.asm,org.objectweb.asm.signature,org.objectweb.asm.tree";version="${project.version}""/>
- <attribute name="Import-Package" value="org.objectweb.asm;version="[6.2,7)",org.objectweb.asm.signature;version="[6.2,7)",org.objectweb.asm.tree;version="[6.2,7)""/>
+ <attribute name="Import-Package" value="org.objectweb.asm;version="[7.2,8)",org.objectweb.asm.signature;version="[7.2,8)",org.objectweb.asm.tree;version="[7.2,8)""/>
<attribute name="JavaPackages-ArtifactId" value="${project.artifactId}"/>
<attribute name="JavaPackages-GroupId" value="${project.groupId}"/>
<attribute name="JavaPackages-Version" value="${project.version}"/>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/asm-tree/build.xml new/asm-tree/build.xml
--- old/asm-tree/build.xml 2019-03-06 10:32:18.045143405 +0100
+++ new/asm-tree/build.xml 2019-11-25 08:26:42.097770714 +0100
@@ -104,9 +104,9 @@
<attribute name="Bundle-RequiredExecutionEnvironment" value="JavaSE-${compiler.target}"/>
<attribute name="Bundle-SymbolicName" value="org.objectweb.asm.tree"/>
<attribute name="Bundle-Vendor" value="${project.organization.name}"/>
- <attribute name="Bundle-Version" value="${project.version}"/>
+ <attribute name="Bundle-Version" value="${bundle.version}"/>
<attribute name="Export-Package" value="org.objectweb.asm.tree;uses:="org.objectweb.asm";version="${project.version}""/>
- <attribute name="Import-Package" value="org.objectweb.asm;version="[6.2,7)""/>
+ <attribute name="Import-Package" value="org.objectweb.asm;version="[7.2,8)""/>
<attribute name="JavaPackages-ArtifactId" value="${project.artifactId}"/>
<attribute name="JavaPackages-GroupId" value="${project.groupId}"/>
<attribute name="JavaPackages-Version" value="${project.version}"/>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/asm-util/build.xml new/asm-util/build.xml
--- old/asm-util/build.xml 2019-03-06 10:32:22.029164000 +0100
+++ new/asm-util/build.xml 2019-11-25 08:26:37.941748270 +0100
@@ -106,9 +106,9 @@
<attribute name="Bundle-RequiredExecutionEnvironment" value="JavaSE-${compiler.target}"/>
<attribute name="Bundle-SymbolicName" value="org.objectweb.asm.util"/>
<attribute name="Bundle-Vendor" value="${project.organization.name}"/>
- <attribute name="Bundle-Version" value="${project.version}"/>
+ <attribute name="Bundle-Version" value="${bundle.version}"/>
<attribute name="Export-Package" value="org.objectweb.asm.util;uses:="org.objectweb.asm,org.objectweb.asm.signature";version="${project.version}""/>
- <attribute name="Import-Package" value="org.objectweb.asm;version="[6.2,7)",org.objectweb.asm.signature;version="[6.2,7)",org.objectweb.asm.tree;version="[6.2,7)",org.objectweb.asm.tree.analysis;version="[6.2,7)""/>
+ <attribute name="Import-Package" value="org.objectweb.asm;version="[7.2,8)",org.objectweb.asm.signature;version="[7.2,8)",org.objectweb.asm.tree;version="[7.2,8)",org.objectweb.asm.tree.analysis;version="[7.2,8)""/>
<attribute name="JavaPackages-ArtifactId" value="${project.artifactId}"/>
<attribute name="JavaPackages-GroupId" value="${project.groupId}"/>
<attribute name="JavaPackages-Version" value="${project.version}"/>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/asm-xml/build.xml new/asm-xml/build.xml
--- old/asm-xml/build.xml 2019-03-06 10:32:26.149185298 +0100
+++ new/asm-xml/build.xml 1970-01-01 01:00:00.000000000 +0100
@@ -1,127 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-
-<project name="asm-xml" default="package" basedir=".">
-
- <!-- ====================================================================== -->
- <!-- Build environment properties -->
- <!-- ====================================================================== -->
-
- <include file="../common.xml"/>
- <property file="build.properties"/>
-
- <property name="project.artifactId" value="asm-xml"/>
-
- <property name="build.finalName" value="${project.artifactId}-${project.version}"/>
- <property name="build.dir" value="target"/>
- <property name="build.outputDir" value="${build.dir}/classes"/>
- <property name="build.srcDir.0" value="src/main/java"/>
- <property name="build.resourceDir.0" value="src/main/resources"/>
- <property name="reporting.outputDirectory" value="${build.dir}/site"/>
-
- <!-- ====================================================================== -->
- <!-- Defining classpaths -->
- <!-- ====================================================================== -->
-
- <path id="build.classpath">
- <pathelement location="../asm/target/classes"/>
- <pathelement location="../asm-util/target/classes"/>
- <pathelement location="../asm-tree/target/classes"/>
- <pathelement location="../asm-analysis/target/classes"/>
- </path>
-
- <!-- ====================================================================== -->
- <!-- Cleaning up target -->
- <!-- ====================================================================== -->
-
- <target name="clean" description="Clean the output directory">
- <delete dir="${build.dir}"/>
- </target>
-
- <!-- ====================================================================== -->
- <!-- Compilation target -->
- <!-- ====================================================================== -->
-
- <target name="compile" description="Compile the code">
- <mkdir dir="${build.outputDir}"/>
- <javac destdir="${build.outputDir}"
- nowarn="false"
- debug="true"
- optimize="false"
- deprecation="true"
- target="${compiler.target}"
- verbose="false"
- fork="false"
- source="${compiler.source}">
- <src>
- <pathelement location="${build.srcDir.0}"/>
- </src>
- <classpath refid="build.classpath"/>
- </javac>
- </target>
-
- <!-- ====================================================================== -->
- <!-- Javadoc target -->
- <!-- ====================================================================== -->
-
- <target name="javadoc" description="Generates the Javadoc of the application">
- <javadoc sourcepath="${build.srcDir.0}"
- packagenames="*"
- destdir="${reporting.outputDirectory}/apidocs"
- access="protected"
- source="${compiler.source}"
- verbose="false"
- version="true"
- use="true"
- author="true"
- splitindex="false"
- nodeprecated="false"
- nodeprecatedlist="false"
- notree="false"
- noindex="false"
- nohelp="false"
- nonavbar="false"
- serialwarn="false"
- charset="ISO-8859-1"
- linksource="false"
- breakiterator="false">
- <classpath refid="build.classpath"/>
- </javadoc>
- </target>
-
- <!-- ====================================================================== -->
- <!-- Package target -->
- <!-- ====================================================================== -->
-
- <target name="package" depends="compile" description="Package the application">
- <jar jarfile="${build.dir}/${build.finalName}.jar"
- compress="true"
- index="false"
- basedir="${build.outputDir}"
- excludes="**/package.html">
- <manifest>
- <attribute name="Bundle-Description" value="XML API of ASM, a very small and fast Java bytecode manipulation framework"/>
- <attribute name="Bundle-DocURL" value="${project.organization.url}"/>
- <attribute name="Bundle-License" value="${project.license.url}"/>
- <attribute name="Bundle-ManifestVersion" value="2"/>
- <attribute name="Bundle-Name" value="${project.artifactId}"/>
- <attribute name="Bundle-RequiredExecutionEnvironment" value="JavaSE-${compiler.target}"/>
- <attribute name="Bundle-SymbolicName" value="org.objectweb.asm.xml"/>
- <attribute name="Bundle-Vendor" value="${project.organization.name}"/>
- <attribute name="Bundle-Version" value="${project.version}"/>
- <attribute name="Export-Package" value="org.objectweb.asm.xml;uses:="javax.xml.transform,org.objectweb.asm,org.xml.sax,org.xml.sax.helpers";version="${project.version}""/>
- <attribute name="Import-Package" value="javax.xml.transform,javax.xml.transform.sax,javax.xml.transform.stream,org.objectweb.asm;version="[6.2,7)",org.objectweb.asm.util;version="[6.2,7)",org.xml.sax,org.xml.sax.ext,org.xml.sax.helpers"/>
- <attribute name="JavaPackages-ArtifactId" value="${project.artifactId}"/>
- <attribute name="JavaPackages-GroupId" value="${project.groupId}"/>
- <attribute name="JavaPackages-Version" value="${project.version}"/>
- <attribute name="Private-Package" value="org.objectweb.asm.xml"/>
- </manifest>
- </jar>
- </target>
-
- <!-- ====================================================================== -->
- <!-- A dummy target for the package named after the type it creates -->
- <!-- ====================================================================== -->
-
- <target name="jar" depends="package" description="Builds the jar for the application"/>
-
-</project>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/build.xml new/build.xml
--- old/build.xml 2019-03-06 10:08:47.573856218 +0100
+++ new/build.xml 2019-11-25 08:15:23.206102910 +0100
@@ -12,7 +12,6 @@
<ant antfile="build.xml" dir="asm-analysis" target="clean"/>
<ant antfile="build.xml" dir="asm-util" target="clean"/>
<ant antfile="build.xml" dir="asm-commons" target="clean"/>
- <ant antfile="build.xml" dir="asm-xml" target="clean"/>
<ant antfile="build.xml" dir="asm-all" target="clean"/>
</target>
@@ -26,7 +25,6 @@
<ant antfile="build.xml" dir="asm-analysis" target="compile"/>
<ant antfile="build.xml" dir="asm-util" target="compile"/>
<ant antfile="build.xml" dir="asm-commons" target="compile"/>
- <ant antfile="build.xml" dir="asm-xml" target="compile"/>
<ant antfile="build.xml" dir="asm-all" target="compile"/>
</target>
@@ -40,7 +38,6 @@
<ant antfile="build.xml" dir="asm-analysis" target="javadoc"/>
<ant antfile="build.xml" dir="asm-util" target="javadoc"/>
<ant antfile="build.xml" dir="asm-commons" target="javadoc"/>
- <ant antfile="build.xml" dir="asm-xml" target="javadoc"/>
<ant antfile="build.xml" dir="asm-all" target="javadoc"/>
</target>
@@ -54,7 +51,6 @@
<ant antfile="build.xml" dir="asm-analysis" target="package"/>
<ant antfile="build.xml" dir="asm-util" target="package"/>
<ant antfile="build.xml" dir="asm-commons" target="package"/>
- <ant antfile="build.xml" dir="asm-xml" target="package"/>
<ant antfile="build.xml" dir="asm-all" target="package"/>
</target>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/common.xml new/common.xml
--- old/common.xml 2019-03-06 10:13:54.095438674 +0100
+++ new/common.xml 2019-11-25 08:25:52.453502616 +0100
@@ -3,7 +3,7 @@
<project name="common" basedir=".">
<property file="build.properties"/>
- <property name="project.version" value="6.2.1"/>
+ <property name="project.version" value="7.2"/>
<property name="project.groupId" value="org.ow2.asm"/>
<property name="project.organization.name" value="OW2"/>
@@ -12,5 +12,7 @@
<property name="compiler.source" value="1.8"/>
<property name="compiler.target" value="${compiler.source}"/>
+
+ <property name="bundle.version" value="${project.version}.0"/>
</project>
++++++ objectweb-asm-6.2.1-build.tar.xz -> objectweb-asm-7.2.tar.xz ++++++
++++ 111235 lines of diff (skipped)
1
0
Hello community,
here is the log from the commit of package nginx for openSUSE:Factory checked in at 2019-12-02 11:33:28
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/nginx (Old)
and /work/SRC/openSUSE:Factory/.nginx.new.4691 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "nginx"
Mon Dec 2 11:33:28 2019 rev:43 rq:752658 version:1.17.6
Changes:
--------
--- /work/SRC/openSUSE:Factory/nginx/nginx.changes 2019-10-28 17:00:28.797766053 +0100
+++ /work/SRC/openSUSE:Factory/.nginx.new.4691/nginx.changes 2019-12-02 11:38:04.206457257 +0100
@@ -1,0 +2,10 @@
+Sat Nov 23 20:12:57 UTC 2019 - Marcus Rueckert <mrueckert(a)suse.de>
+
+- Update to 1.17.6
+ - Feature: the $proxy_protocol_server_addr and
+ $proxy_protocol_server_port variables.
+ - Feature: the "limit_conn_dry_run" directive.
+ - Feature: the $limit_req_status and $limit_conn_status
+ variables.
+
+-------------------------------------------------------------------
Old:
----
nginx-1.17.5.tar.gz
nginx-1.17.5.tar.gz.asc
New:
----
nginx-1.17.6.tar.gz
nginx-1.17.6.tar.gz.asc
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ nginx.spec ++++++
--- /var/tmp/diff_new_pack.CYJgCo/_old 2019-12-02 11:38:04.814457385 +0100
+++ /var/tmp/diff_new_pack.CYJgCo/_new 2019-12-02 11:38:04.818457385 +0100
@@ -70,7 +70,7 @@
%define ngx_doc_dir %{_datadir}/doc/packages/%{name}
#
Name: nginx
-Version: 1.17.5
+Version: 1.17.6
Release: 0
%define ngx_fancyindex_version 0.4.2
%define ngx_fancyindex_module_path ngx-fancyindex-%{ngx_fancyindex_version}
++++++ nginx-1.17.5.tar.gz -> nginx-1.17.6.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/nginx-1.17.5/CHANGES new/nginx-1.17.6/CHANGES
--- old/nginx-1.17.5/CHANGES 2019-10-22 17:16:13.000000000 +0200
+++ new/nginx-1.17.6/CHANGES 2019-11-19 15:19:02.000000000 +0100
@@ -1,4 +1,14 @@
+Changes with nginx 1.17.6 19 Nov 2019
+
+ *) Feature: the $proxy_protocol_server_addr and
+ $proxy_protocol_server_port variables.
+
+ *) Feature: the "limit_conn_dry_run" directive.
+
+ *) Feature: the $limit_req_status and $limit_conn_status variables.
+
+
Changes with nginx 1.17.5 22 Oct 2019
*) Feature: now nginx uses ioctl(FIONREAD), if available, to avoid
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/nginx-1.17.5/CHANGES.ru new/nginx-1.17.6/CHANGES.ru
--- old/nginx-1.17.5/CHANGES.ru 2019-10-22 17:16:11.000000000 +0200
+++ new/nginx-1.17.6/CHANGES.ru 2019-11-19 15:19:01.000000000 +0100
@@ -1,4 +1,14 @@
+Изменения в nginx 1.17.6 19.11.2019
+
+ *) Добавление: переменные $proxy_protocol_server_addr и
+ $proxy_protocol_server_port.
+
+ *) Добавление: директива limit_conn_dry_run.
+
+ *) Добавление: переменные $limit_req_status и $limit_conn_status.
+
+
Изменения в nginx 1.17.5 22.10.2019
*) Добавление: теперь nginx использует вызов ioctl(FIONREAD), если он
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/nginx-1.17.5/src/core/nginx.h new/nginx-1.17.6/src/core/nginx.h
--- old/nginx-1.17.5/src/core/nginx.h 2019-10-22 17:16:08.000000000 +0200
+++ new/nginx-1.17.6/src/core/nginx.h 2019-11-19 15:18:58.000000000 +0100
@@ -9,8 +9,8 @@
#define _NGINX_H_INCLUDED_
-#define nginx_version 1017005
-#define NGINX_VERSION "1.17.5"
+#define nginx_version 1017006
+#define NGINX_VERSION "1.17.6"
#define NGINX_VER "nginx/" NGINX_VERSION
#ifdef NGX_BUILD
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/nginx-1.17.5/src/core/ngx_connection.h new/nginx-1.17.6/src/core/ngx_connection.h
--- old/nginx-1.17.5/src/core/ngx_connection.h 2019-10-22 17:16:08.000000000 +0200
+++ new/nginx-1.17.6/src/core/ngx_connection.h 2019-11-19 15:18:58.000000000 +0100
@@ -147,8 +147,7 @@
socklen_t socklen;
ngx_str_t addr_text;
- ngx_str_t proxy_protocol_addr;
- in_port_t proxy_protocol_port;
+ ngx_proxy_protocol_t *proxy_protocol;
#if (NGX_SSL || NGX_COMPAT)
ngx_ssl_connection_t *ssl;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/nginx-1.17.5/src/core/ngx_core.h new/nginx-1.17.6/src/core/ngx_core.h
--- old/nginx-1.17.5/src/core/ngx_core.h 2019-10-22 17:16:08.000000000 +0200
+++ new/nginx-1.17.6/src/core/ngx_core.h 2019-11-19 15:18:58.000000000 +0100
@@ -26,6 +26,7 @@
typedef struct ngx_connection_s ngx_connection_t;
typedef struct ngx_thread_task_s ngx_thread_task_t;
typedef struct ngx_ssl_s ngx_ssl_t;
+typedef struct ngx_proxy_protocol_s ngx_proxy_protocol_t;
typedef struct ngx_ssl_connection_s ngx_ssl_connection_t;
typedef struct ngx_udp_connection_s ngx_udp_connection_t;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/nginx-1.17.5/src/core/ngx_proxy_protocol.c new/nginx-1.17.6/src/core/ngx_proxy_protocol.c
--- old/nginx-1.17.5/src/core/ngx_proxy_protocol.c 2019-10-22 17:16:08.000000000 +0200
+++ new/nginx-1.17.6/src/core/ngx_proxy_protocol.c 2019-11-19 15:18:58.000000000 +0100
@@ -40,6 +40,10 @@
} ngx_proxy_protocol_inet6_addrs_t;
+static u_char *ngx_proxy_protocol_read_addr(ngx_connection_t *c, u_char *p,
+ u_char *last, ngx_str_t *addr);
+static u_char *ngx_proxy_protocol_read_port(u_char *p, u_char *last,
+ in_port_t *port, u_char sep);
static u_char *ngx_proxy_protocol_v2_read(ngx_connection_t *c, u_char *buf,
u_char *last);
@@ -47,9 +51,9 @@
u_char *
ngx_proxy_protocol_read(ngx_connection_t *c, u_char *buf, u_char *last)
{
- size_t len;
- u_char ch, *p, *addr, *port;
- ngx_int_t n;
+ size_t len;
+ u_char *p;
+ ngx_proxy_protocol_t *pp;
static const u_char signature[] = "\r\n\r\n\0\r\nQUIT\n";
@@ -83,11 +87,77 @@
}
p += 5;
- addr = p;
+
+ pp = ngx_pcalloc(c->pool, sizeof(ngx_proxy_protocol_t));
+ if (pp == NULL) {
+ return NULL;
+ }
+
+ p = ngx_proxy_protocol_read_addr(c, p, last, &pp->src_addr);
+ if (p == NULL) {
+ goto invalid;
+ }
+
+ p = ngx_proxy_protocol_read_addr(c, p, last, &pp->dst_addr);
+ if (p == NULL) {
+ goto invalid;
+ }
+
+ p = ngx_proxy_protocol_read_port(p, last, &pp->src_port, ' ');
+ if (p == NULL) {
+ goto invalid;
+ }
+
+ p = ngx_proxy_protocol_read_port(p, last, &pp->dst_port, CR);
+ if (p == NULL) {
+ goto invalid;
+ }
+
+ if (p == last) {
+ goto invalid;
+ }
+
+ if (*p++ != LF) {
+ goto invalid;
+ }
+
+ ngx_log_debug4(NGX_LOG_DEBUG_CORE, c->log, 0,
+ "PROXY protocol src: %V %d, dst: %V %d",
+ &pp->src_addr, pp->src_port, &pp->dst_addr, pp->dst_port);
+
+ c->proxy_protocol = pp;
+
+ return p;
+
+skip:
+
+ for ( /* void */ ; p < last - 1; p++) {
+ if (p[0] == CR && p[1] == LF) {
+ return p + 2;
+ }
+ }
+
+invalid:
+
+ ngx_log_error(NGX_LOG_ERR, c->log, 0,
+ "broken header: \"%*s\"", (size_t) (last - buf), buf);
+
+ return NULL;
+}
+
+
+static u_char *
+ngx_proxy_protocol_read_addr(ngx_connection_t *c, u_char *p, u_char *last,
+ ngx_str_t *addr)
+{
+ size_t len;
+ u_char ch, *pos;
+
+ pos = p;
for ( ;; ) {
if (p == last) {
- goto invalid;
+ return NULL;
}
ch = *p++;
@@ -101,70 +171,54 @@
&& (ch < 'A' || ch > 'F')
&& (ch < '0' || ch > '9'))
{
- goto invalid;
+ return NULL;
}
}
- len = p - addr - 1;
- c->proxy_protocol_addr.data = ngx_pnalloc(c->pool, len);
+ len = p - pos - 1;
- if (c->proxy_protocol_addr.data == NULL) {
+ addr->data = ngx_pnalloc(c->pool, len);
+ if (addr->data == NULL) {
return NULL;
}
- ngx_memcpy(c->proxy_protocol_addr.data, addr, len);
- c->proxy_protocol_addr.len = len;
+ ngx_memcpy(addr->data, pos, len);
+ addr->len = len;
- for ( ;; ) {
- if (p == last) {
- goto invalid;
- }
+ return p;
+}
- if (*p++ == ' ') {
- break;
- }
- }
- port = p;
+static u_char *
+ngx_proxy_protocol_read_port(u_char *p, u_char *last, in_port_t *port,
+ u_char sep)
+{
+ size_t len;
+ u_char *pos;
+ ngx_int_t n;
+
+ pos = p;
for ( ;; ) {
if (p == last) {
- goto invalid;
+ return NULL;
}
- if (*p++ == ' ') {
+ if (*p++ == sep) {
break;
}
}
- len = p - port - 1;
-
- n = ngx_atoi(port, len);
+ len = p - pos - 1;
+ n = ngx_atoi(pos, len);
if (n < 0 || n > 65535) {
- goto invalid;
- }
-
- c->proxy_protocol_port = (in_port_t) n;
-
- ngx_log_debug2(NGX_LOG_DEBUG_CORE, c->log, 0,
- "PROXY protocol address: %V %d", &c->proxy_protocol_addr,
- c->proxy_protocol_port);
-
-skip:
-
- for ( /* void */ ; p < last - 1; p++) {
- if (p[0] == CR && p[1] == LF) {
- return p + 2;
- }
+ return NULL;
}
-invalid:
-
- ngx_log_error(NGX_LOG_ERR, c->log, 0,
- "broken header: \"%*s\"", (size_t) (last - buf), buf);
+ *port = (in_port_t) n;
- return NULL;
+ return p;
}
@@ -219,7 +273,8 @@
size_t len;
socklen_t socklen;
ngx_uint_t version, command, family, transport;
- ngx_sockaddr_t sockaddr;
+ ngx_sockaddr_t src_sockaddr, dst_sockaddr;
+ ngx_proxy_protocol_t *pp;
ngx_proxy_protocol_header_t *header;
ngx_proxy_protocol_inet_addrs_t *in;
#if (NGX_HAVE_INET6)
@@ -266,6 +321,11 @@
return end;
}
+ pp = ngx_pcalloc(c->pool, sizeof(ngx_proxy_protocol_t));
+ if (pp == NULL) {
+ return NULL;
+ }
+
family = header->family_transport >> 4;
switch (family) {
@@ -278,11 +338,16 @@
in = (ngx_proxy_protocol_inet_addrs_t *) buf;
- sockaddr.sockaddr_in.sin_family = AF_INET;
- sockaddr.sockaddr_in.sin_port = 0;
- memcpy(&sockaddr.sockaddr_in.sin_addr, in->src_addr, 4);
+ src_sockaddr.sockaddr_in.sin_family = AF_INET;
+ src_sockaddr.sockaddr_in.sin_port = 0;
+ memcpy(&src_sockaddr.sockaddr_in.sin_addr, in->src_addr, 4);
+
+ dst_sockaddr.sockaddr_in.sin_family = AF_INET;
+ dst_sockaddr.sockaddr_in.sin_port = 0;
+ memcpy(&dst_sockaddr.sockaddr_in.sin_addr, in->dst_addr, 4);
- c->proxy_protocol_port = ngx_proxy_protocol_parse_uint16(in->src_port);
+ pp->src_port = ngx_proxy_protocol_parse_uint16(in->src_port);
+ pp->dst_port = ngx_proxy_protocol_parse_uint16(in->dst_port);
socklen = sizeof(struct sockaddr_in);
@@ -300,11 +365,16 @@
in6 = (ngx_proxy_protocol_inet6_addrs_t *) buf;
- sockaddr.sockaddr_in6.sin6_family = AF_INET6;
- sockaddr.sockaddr_in6.sin6_port = 0;
- memcpy(&sockaddr.sockaddr_in6.sin6_addr, in6->src_addr, 16);
+ src_sockaddr.sockaddr_in6.sin6_family = AF_INET6;
+ src_sockaddr.sockaddr_in6.sin6_port = 0;
+ memcpy(&src_sockaddr.sockaddr_in6.sin6_addr, in6->src_addr, 16);
+
+ dst_sockaddr.sockaddr_in6.sin6_family = AF_INET6;
+ dst_sockaddr.sockaddr_in6.sin6_port = 0;
+ memcpy(&dst_sockaddr.sockaddr_in6.sin6_addr, in6->dst_addr, 16);
- c->proxy_protocol_port = ngx_proxy_protocol_parse_uint16(in6->src_port);
+ pp->src_port = ngx_proxy_protocol_parse_uint16(in6->src_port);
+ pp->dst_port = ngx_proxy_protocol_parse_uint16(in6->dst_port);
socklen = sizeof(struct sockaddr_in6);
@@ -321,23 +391,32 @@
return end;
}
- c->proxy_protocol_addr.data = ngx_pnalloc(c->pool, NGX_SOCKADDR_STRLEN);
- if (c->proxy_protocol_addr.data == NULL) {
+ pp->src_addr.data = ngx_pnalloc(c->pool, NGX_SOCKADDR_STRLEN);
+ if (pp->src_addr.data == NULL) {
+ return NULL;
+ }
+
+ pp->src_addr.len = ngx_sock_ntop(&src_sockaddr.sockaddr, socklen,
+ pp->src_addr.data, NGX_SOCKADDR_STRLEN, 0);
+
+ pp->dst_addr.data = ngx_pnalloc(c->pool, NGX_SOCKADDR_STRLEN);
+ if (pp->dst_addr.data == NULL) {
return NULL;
}
- c->proxy_protocol_addr.len = ngx_sock_ntop(&sockaddr.sockaddr, socklen,
- c->proxy_protocol_addr.data,
- NGX_SOCKADDR_STRLEN, 0);
-
- ngx_log_debug2(NGX_LOG_DEBUG_CORE, c->log, 0,
- "PROXY protocol v2 address: %V %d", &c->proxy_protocol_addr,
- c->proxy_protocol_port);
+ pp->dst_addr.len = ngx_sock_ntop(&dst_sockaddr.sockaddr, socklen,
+ pp->dst_addr.data, NGX_SOCKADDR_STRLEN, 0);
+
+ ngx_log_debug4(NGX_LOG_DEBUG_CORE, c->log, 0,
+ "PROXY protocol v2 src: %V %d, dst: %V %d",
+ &pp->src_addr, pp->src_port, &pp->dst_addr, pp->dst_port);
if (buf < end) {
ngx_log_debug1(NGX_LOG_DEBUG_CORE, c->log, 0,
"PROXY protocol v2 %z bytes of tlv ignored", end - buf);
}
+ c->proxy_protocol = pp;
+
return end;
}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/nginx-1.17.5/src/core/ngx_proxy_protocol.h new/nginx-1.17.6/src/core/ngx_proxy_protocol.h
--- old/nginx-1.17.5/src/core/ngx_proxy_protocol.h 2019-10-22 17:16:08.000000000 +0200
+++ new/nginx-1.17.6/src/core/ngx_proxy_protocol.h 2019-11-19 15:18:58.000000000 +0100
@@ -16,6 +16,14 @@
#define NGX_PROXY_PROTOCOL_MAX_HEADER 107
+struct ngx_proxy_protocol_s {
+ ngx_str_t src_addr;
+ ngx_str_t dst_addr;
+ in_port_t src_port;
+ in_port_t dst_port;
+};
+
+
u_char *ngx_proxy_protocol_read(ngx_connection_t *c, u_char *buf,
u_char *last);
u_char *ngx_proxy_protocol_write(ngx_connection_t *c, u_char *buf,
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/nginx-1.17.5/src/http/modules/ngx_http_limit_conn_module.c new/nginx-1.17.6/src/http/modules/ngx_http_limit_conn_module.c
--- old/nginx-1.17.5/src/http/modules/ngx_http_limit_conn_module.c 2019-10-22 17:16:08.000000000 +0200
+++ new/nginx-1.17.6/src/http/modules/ngx_http_limit_conn_module.c 2019-11-19 15:18:58.000000000 +0100
@@ -10,36 +10,49 @@
#include <ngx_http.h>
+#define NGX_HTTP_LIMIT_CONN_PASSED 1
+#define NGX_HTTP_LIMIT_CONN_REJECTED 2
+#define NGX_HTTP_LIMIT_CONN_REJECTED_DRY_RUN 3
+
+
typedef struct {
- u_char color;
- u_char len;
- u_short conn;
- u_char data[1];
+ u_char color;
+ u_char len;
+ u_short conn;
+ u_char data[1];
} ngx_http_limit_conn_node_t;
typedef struct {
- ngx_shm_zone_t *shm_zone;
- ngx_rbtree_node_t *node;
+ ngx_shm_zone_t *shm_zone;
+ ngx_rbtree_node_t *node;
} ngx_http_limit_conn_cleanup_t;
typedef struct {
- ngx_rbtree_t *rbtree;
- ngx_http_complex_value_t key;
+ ngx_rbtree_t rbtree;
+ ngx_rbtree_node_t sentinel;
+} ngx_http_limit_conn_shctx_t;
+
+
+typedef struct {
+ ngx_http_limit_conn_shctx_t *sh;
+ ngx_slab_pool_t *shpool;
+ ngx_http_complex_value_t key;
} ngx_http_limit_conn_ctx_t;
typedef struct {
- ngx_shm_zone_t *shm_zone;
- ngx_uint_t conn;
+ ngx_shm_zone_t *shm_zone;
+ ngx_uint_t conn;
} ngx_http_limit_conn_limit_t;
typedef struct {
- ngx_array_t limits;
- ngx_uint_t log_level;
- ngx_uint_t status_code;
+ ngx_array_t limits;
+ ngx_uint_t log_level;
+ ngx_uint_t status_code;
+ ngx_flag_t dry_run;
} ngx_http_limit_conn_conf_t;
@@ -48,6 +61,8 @@
static void ngx_http_limit_conn_cleanup(void *data);
static ngx_inline void ngx_http_limit_conn_cleanup_all(ngx_pool_t *pool);
+static ngx_int_t ngx_http_limit_conn_status_variable(ngx_http_request_t *r,
+ ngx_http_variable_value_t *v, uintptr_t data);
static void *ngx_http_limit_conn_create_conf(ngx_conf_t *cf);
static char *ngx_http_limit_conn_merge_conf(ngx_conf_t *cf, void *parent,
void *child);
@@ -55,6 +70,7 @@
void *conf);
static char *ngx_http_limit_conn(ngx_conf_t *cf, ngx_command_t *cmd,
void *conf);
+static ngx_int_t ngx_http_limit_conn_add_variables(ngx_conf_t *cf);
static ngx_int_t ngx_http_limit_conn_init(ngx_conf_t *cf);
@@ -102,12 +118,19 @@
offsetof(ngx_http_limit_conn_conf_t, status_code),
&ngx_http_limit_conn_status_bounds },
+ { ngx_string("limit_conn_dry_run"),
+ NGX_HTTP_MAIN_CONF|NGX_HTTP_SRV_CONF|NGX_HTTP_LOC_CONF|NGX_CONF_FLAG,
+ ngx_conf_set_flag_slot,
+ NGX_HTTP_LOC_CONF_OFFSET,
+ offsetof(ngx_http_limit_conn_conf_t, dry_run),
+ NULL },
+
ngx_null_command
};
static ngx_http_module_t ngx_http_limit_conn_module_ctx = {
- NULL, /* preconfiguration */
+ ngx_http_limit_conn_add_variables, /* preconfiguration */
ngx_http_limit_conn_init, /* postconfiguration */
NULL, /* create main configuration */
@@ -137,6 +160,22 @@
};
+static ngx_http_variable_t ngx_http_limit_conn_vars[] = {
+
+ { ngx_string("limit_conn_status"), NULL,
+ ngx_http_limit_conn_status_variable, 0, NGX_HTTP_VAR_NOCACHEABLE, 0 },
+
+ ngx_http_null_variable
+};
+
+
+static ngx_str_t ngx_http_limit_conn_status[] = {
+ ngx_string("PASSED"),
+ ngx_string("REJECTED"),
+ ngx_string("REJECTED_DRY_RUN")
+};
+
+
static ngx_int_t
ngx_http_limit_conn_handler(ngx_http_request_t *r)
{
@@ -144,7 +183,6 @@
uint32_t hash;
ngx_str_t key;
ngx_uint_t i;
- ngx_slab_pool_t *shpool;
ngx_rbtree_node_t *node;
ngx_pool_cleanup_t *cln;
ngx_http_limit_conn_ctx_t *ctx;
@@ -153,7 +191,7 @@
ngx_http_limit_conn_limit_t *limits;
ngx_http_limit_conn_cleanup_t *lccln;
- if (r->main->limit_conn_set) {
+ if (r->main->limit_conn_status) {
return NGX_DECLINED;
}
@@ -179,15 +217,13 @@
continue;
}
- r->main->limit_conn_set = 1;
+ r->main->limit_conn_status = NGX_HTTP_LIMIT_CONN_PASSED;
hash = ngx_crc32_short(key.data, key.len);
- shpool = (ngx_slab_pool_t *) limits[i].shm_zone->shm.addr;
-
- ngx_shmtx_lock(&shpool->mutex);
+ ngx_shmtx_lock(&ctx->shpool->mutex);
- node = ngx_http_limit_conn_lookup(ctx->rbtree, &key, hash);
+ node = ngx_http_limit_conn_lookup(&ctx->sh->rbtree, &key, hash);
if (node == NULL) {
@@ -195,11 +231,20 @@
+ offsetof(ngx_http_limit_conn_node_t, data)
+ key.len;
- node = ngx_slab_alloc_locked(shpool, n);
+ node = ngx_slab_alloc_locked(ctx->shpool, n);
if (node == NULL) {
- ngx_shmtx_unlock(&shpool->mutex);
+ ngx_shmtx_unlock(&ctx->shpool->mutex);
ngx_http_limit_conn_cleanup_all(r->pool);
+
+ if (lccf->dry_run) {
+ r->main->limit_conn_status =
+ NGX_HTTP_LIMIT_CONN_REJECTED_DRY_RUN;
+ return NGX_DECLINED;
+ }
+
+ r->main->limit_conn_status = NGX_HTTP_LIMIT_CONN_REJECTED;
+
return lccf->status_code;
}
@@ -210,7 +255,7 @@
lc->conn = 1;
ngx_memcpy(lc->data, key.data, key.len);
- ngx_rbtree_insert(ctx->rbtree, node);
+ ngx_rbtree_insert(&ctx->sh->rbtree, node);
} else {
@@ -218,13 +263,23 @@
if ((ngx_uint_t) lc->conn >= limits[i].conn) {
- ngx_shmtx_unlock(&shpool->mutex);
+ ngx_shmtx_unlock(&ctx->shpool->mutex);
ngx_log_error(lccf->log_level, r->connection->log, 0,
- "limiting connections by zone \"%V\"",
+ "limiting connections%s by zone \"%V\"",
+ lccf->dry_run ? ", dry run," : "",
&limits[i].shm_zone->shm.name);
ngx_http_limit_conn_cleanup_all(r->pool);
+
+ if (lccf->dry_run) {
+ r->main->limit_conn_status =
+ NGX_HTTP_LIMIT_CONN_REJECTED_DRY_RUN;
+ return NGX_DECLINED;
+ }
+
+ r->main->limit_conn_status = NGX_HTTP_LIMIT_CONN_REJECTED;
+
return lccf->status_code;
}
@@ -234,7 +289,7 @@
ngx_log_debug2(NGX_LOG_DEBUG_HTTP, r->connection->log, 0,
"limit conn: %08Xi %d", node->key, lc->conn);
- ngx_shmtx_unlock(&shpool->mutex);
+ ngx_shmtx_unlock(&ctx->shpool->mutex);
cln = ngx_pool_cleanup_add(r->pool,
sizeof(ngx_http_limit_conn_cleanup_t));
@@ -338,17 +393,15 @@
{
ngx_http_limit_conn_cleanup_t *lccln = data;
- ngx_slab_pool_t *shpool;
ngx_rbtree_node_t *node;
ngx_http_limit_conn_ctx_t *ctx;
ngx_http_limit_conn_node_t *lc;
ctx = lccln->shm_zone->data;
- shpool = (ngx_slab_pool_t *) lccln->shm_zone->shm.addr;
node = lccln->node;
lc = (ngx_http_limit_conn_node_t *) &node->color;
- ngx_shmtx_lock(&shpool->mutex);
+ ngx_shmtx_lock(&ctx->shpool->mutex);
ngx_log_debug2(NGX_LOG_DEBUG_HTTP, lccln->shm_zone->shm.log, 0,
"limit conn cleanup: %08Xi %d", node->key, lc->conn);
@@ -356,11 +409,11 @@
lc->conn--;
if (lc->conn == 0) {
- ngx_rbtree_delete(ctx->rbtree, node);
- ngx_slab_free_locked(shpool, node);
+ ngx_rbtree_delete(&ctx->sh->rbtree, node);
+ ngx_slab_free_locked(ctx->shpool, node);
}
- ngx_shmtx_unlock(&shpool->mutex);
+ ngx_shmtx_unlock(&ctx->shpool->mutex);
}
@@ -386,8 +439,6 @@
ngx_http_limit_conn_ctx_t *octx = data;
size_t len;
- ngx_slab_pool_t *shpool;
- ngx_rbtree_node_t *sentinel;
ngx_http_limit_conn_ctx_t *ctx;
ctx = shm_zone->data;
@@ -406,48 +457,63 @@
return NGX_ERROR;
}
- ctx->rbtree = octx->rbtree;
+ ctx->sh = octx->sh;
+ ctx->shpool = octx->shpool;
return NGX_OK;
}
- shpool = (ngx_slab_pool_t *) shm_zone->shm.addr;
+ ctx->shpool = (ngx_slab_pool_t *) shm_zone->shm.addr;
if (shm_zone->shm.exists) {
- ctx->rbtree = shpool->data;
+ ctx->sh = ctx->shpool->data;
return NGX_OK;
}
- ctx->rbtree = ngx_slab_alloc(shpool, sizeof(ngx_rbtree_t));
- if (ctx->rbtree == NULL) {
+ ctx->sh = ngx_slab_alloc(ctx->shpool, sizeof(ngx_http_limit_conn_shctx_t));
+ if (ctx->sh == NULL) {
return NGX_ERROR;
}
- shpool->data = ctx->rbtree;
+ ctx->shpool->data = ctx->sh;
- sentinel = ngx_slab_alloc(shpool, sizeof(ngx_rbtree_node_t));
- if (sentinel == NULL) {
- return NGX_ERROR;
- }
-
- ngx_rbtree_init(ctx->rbtree, sentinel,
+ ngx_rbtree_init(&ctx->sh->rbtree, &ctx->sh->sentinel,
ngx_http_limit_conn_rbtree_insert_value);
len = sizeof(" in limit_conn_zone \"\"") + shm_zone->shm.name.len;
- shpool->log_ctx = ngx_slab_alloc(shpool, len);
- if (shpool->log_ctx == NULL) {
+ ctx->shpool->log_ctx = ngx_slab_alloc(ctx->shpool, len);
+ if (ctx->shpool->log_ctx == NULL) {
return NGX_ERROR;
}
- ngx_sprintf(shpool->log_ctx, " in limit_conn_zone \"%V\"%Z",
+ ngx_sprintf(ctx->shpool->log_ctx, " in limit_conn_zone \"%V\"%Z",
&shm_zone->shm.name);
return NGX_OK;
}
+static ngx_int_t
+ngx_http_limit_conn_status_variable(ngx_http_request_t *r,
+ ngx_http_variable_value_t *v, uintptr_t data)
+{
+ if (r->main->limit_conn_status == 0) {
+ v->not_found = 1;
+ return NGX_OK;
+ }
+
+ v->valid = 1;
+ v->no_cacheable = 0;
+ v->not_found = 0;
+ v->len = ngx_http_limit_conn_status[r->main->limit_conn_status - 1].len;
+ v->data = ngx_http_limit_conn_status[r->main->limit_conn_status - 1].data;
+
+ return NGX_OK;
+}
+
+
static void *
ngx_http_limit_conn_create_conf(ngx_conf_t *cf)
{
@@ -466,6 +532,7 @@
conf->log_level = NGX_CONF_UNSET_UINT;
conf->status_code = NGX_CONF_UNSET_UINT;
+ conf->dry_run = NGX_CONF_UNSET;
return conf;
}
@@ -485,6 +552,8 @@
ngx_conf_merge_uint_value(conf->status_code, prev->status_code,
NGX_HTTP_SERVICE_UNAVAILABLE);
+ ngx_conf_merge_value(conf->dry_run, prev->dry_run, 0);
+
return NGX_CONF_OK;
}
@@ -651,6 +720,25 @@
}
+static ngx_int_t
+ngx_http_limit_conn_add_variables(ngx_conf_t *cf)
+{
+ ngx_http_variable_t *var, *v;
+
+ for (v = ngx_http_limit_conn_vars; v->name.len; v++) {
+ var = ngx_http_add_variable(cf, &v->name, v->flags);
+ if (var == NULL) {
+ return NGX_ERROR;
+ }
+
+ var->get_handler = v->get_handler;
+ var->data = v->data;
+ }
+
+ return NGX_OK;
+}
+
+
static ngx_int_t
ngx_http_limit_conn_init(ngx_conf_t *cf)
{
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/nginx-1.17.5/src/http/modules/ngx_http_limit_req_module.c new/nginx-1.17.6/src/http/modules/ngx_http_limit_req_module.c
--- old/nginx-1.17.5/src/http/modules/ngx_http_limit_req_module.c 2019-10-22 17:16:08.000000000 +0200
+++ new/nginx-1.17.6/src/http/modules/ngx_http_limit_req_module.c 2019-11-19 15:18:58.000000000 +0100
@@ -10,6 +10,13 @@
#include <ngx_http.h>
+#define NGX_HTTP_LIMIT_REQ_PASSED 1
+#define NGX_HTTP_LIMIT_REQ_DELAYED 2
+#define NGX_HTTP_LIMIT_REQ_REJECTED 3
+#define NGX_HTTP_LIMIT_REQ_DELAYED_DRY_RUN 4
+#define NGX_HTTP_LIMIT_REQ_REJECTED_DRY_RUN 5
+
+
typedef struct {
u_char color;
u_char dummy;
@@ -65,6 +72,8 @@
static void ngx_http_limit_req_expire(ngx_http_limit_req_ctx_t *ctx,
ngx_uint_t n);
+static ngx_int_t ngx_http_limit_req_status_variable(ngx_http_request_t *r,
+ ngx_http_variable_value_t *v, uintptr_t data);
static void *ngx_http_limit_req_create_conf(ngx_conf_t *cf);
static char *ngx_http_limit_req_merge_conf(ngx_conf_t *cf, void *parent,
void *child);
@@ -72,6 +81,7 @@
void *conf);
static char *ngx_http_limit_req(ngx_conf_t *cf, ngx_command_t *cmd,
void *conf);
+static ngx_int_t ngx_http_limit_req_add_variables(ngx_conf_t *cf);
static ngx_int_t ngx_http_limit_req_init(ngx_conf_t *cf);
@@ -131,7 +141,7 @@
static ngx_http_module_t ngx_http_limit_req_module_ctx = {
- NULL, /* preconfiguration */
+ ngx_http_limit_req_add_variables, /* preconfiguration */
ngx_http_limit_req_init, /* postconfiguration */
NULL, /* create main configuration */
@@ -161,6 +171,24 @@
};
+static ngx_http_variable_t ngx_http_limit_req_vars[] = {
+
+ { ngx_string("limit_req_status"), NULL,
+ ngx_http_limit_req_status_variable, 0, NGX_HTTP_VAR_NOCACHEABLE, 0 },
+
+ ngx_http_null_variable
+};
+
+
+static ngx_str_t ngx_http_limit_req_status[] = {
+ ngx_string("PASSED"),
+ ngx_string("DELAYED"),
+ ngx_string("REJECTED"),
+ ngx_string("DELAYED_DRY_RUN"),
+ ngx_string("REJECTED_DRY_RUN")
+};
+
+
static ngx_int_t
ngx_http_limit_req_handler(ngx_http_request_t *r)
{
@@ -173,7 +201,7 @@
ngx_http_limit_req_conf_t *lrcf;
ngx_http_limit_req_limit_t *limit, *limits;
- if (r->main->limit_req_set) {
+ if (r->main->limit_req_status) {
return NGX_DECLINED;
}
@@ -232,8 +260,6 @@
return NGX_DECLINED;
}
- r->main->limit_req_set = 1;
-
if (rc == NGX_BUSY || rc == NGX_ERROR) {
if (rc == NGX_BUSY) {
@@ -261,9 +287,12 @@
}
if (lrcf->dry_run) {
+ r->main->limit_req_status = NGX_HTTP_LIMIT_REQ_REJECTED_DRY_RUN;
return NGX_DECLINED;
}
+ r->main->limit_req_status = NGX_HTTP_LIMIT_REQ_REJECTED;
+
return lrcf->status_code;
}
@@ -276,6 +305,7 @@
delay = ngx_http_limit_req_account(limits, n, &excess, &limit);
if (!delay) {
+ r->main->limit_req_status = NGX_HTTP_LIMIT_REQ_PASSED;
return NGX_DECLINED;
}
@@ -285,9 +315,12 @@
excess / 1000, excess % 1000, &limit->shm_zone->shm.name);
if (lrcf->dry_run) {
+ r->main->limit_req_status = NGX_HTTP_LIMIT_REQ_DELAYED_DRY_RUN;
return NGX_DECLINED;
}
+ r->main->limit_req_status = NGX_HTTP_LIMIT_REQ_DELAYED;
+
if (ngx_handle_read_event(r->connection->read, 0) != NGX_OK) {
return NGX_HTTP_INTERNAL_SERVER_ERROR;
}
@@ -711,6 +744,25 @@
}
+static ngx_int_t
+ngx_http_limit_req_status_variable(ngx_http_request_t *r,
+ ngx_http_variable_value_t *v, uintptr_t data)
+{
+ if (r->main->limit_req_status == 0) {
+ v->not_found = 1;
+ return NGX_OK;
+ }
+
+ v->valid = 1;
+ v->no_cacheable = 0;
+ v->not_found = 0;
+ v->len = ngx_http_limit_req_status[r->main->limit_req_status - 1].len;
+ v->data = ngx_http_limit_req_status[r->main->limit_req_status - 1].data;
+
+ return NGX_OK;
+}
+
+
static void *
ngx_http_limit_req_create_conf(ngx_conf_t *cf)
{
@@ -995,6 +1047,25 @@
}
+static ngx_int_t
+ngx_http_limit_req_add_variables(ngx_conf_t *cf)
+{
+ ngx_http_variable_t *var, *v;
+
+ for (v = ngx_http_limit_req_vars; v->name.len; v++) {
+ var = ngx_http_add_variable(cf, &v->name, v->flags);
+ if (var == NULL) {
+ return NGX_ERROR;
+ }
+
+ var->get_handler = v->get_handler;
+ var->data = v->data;
+ }
+
+ return NGX_OK;
+}
+
+
static ngx_int_t
ngx_http_limit_req_init(ngx_conf_t *cf)
{
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/nginx-1.17.5/src/http/modules/ngx_http_realip_module.c new/nginx-1.17.6/src/http/modules/ngx_http_realip_module.c
--- old/nginx-1.17.5/src/http/modules/ngx_http_realip_module.c 2019-10-22 17:16:08.000000000 +0200
+++ new/nginx-1.17.6/src/http/modules/ngx_http_realip_module.c 2019-11-19 15:18:58.000000000 +0100
@@ -180,12 +180,11 @@
case NGX_HTTP_REALIP_PROXY:
- value = &r->connection->proxy_protocol_addr;
-
- if (value->len == 0) {
+ if (r->connection->proxy_protocol == NULL) {
return NGX_DECLINED;
}
+ value = &r->connection->proxy_protocol->src_addr;
xfwd = NULL;
break;
@@ -238,7 +237,7 @@
!= NGX_DECLINED)
{
if (rlcf->type == NGX_HTTP_REALIP_PROXY) {
- ngx_inet_set_port(addr.sockaddr, c->proxy_protocol_port);
+ ngx_inet_set_port(addr.sockaddr, c->proxy_protocol->src_port);
}
return ngx_http_realip_set_addr(r, &addr);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/nginx-1.17.5/src/http/ngx_http_request.h new/nginx-1.17.6/src/http/ngx_http_request.h
--- old/nginx-1.17.5/src/http/ngx_http_request.h 2019-10-22 17:16:08.000000000 +0200
+++ new/nginx-1.17.6/src/http/ngx_http_request.h 2019-11-19 15:18:58.000000000 +0100
@@ -510,10 +510,10 @@
/*
* instead of using the request context data in
* ngx_http_limit_conn_module and ngx_http_limit_req_module
- * we use the single bits in the request structure
+ * we use the bit fields in the request structure
*/
- unsigned limit_conn_set:1;
- unsigned limit_req_set:1;
+ unsigned limit_conn_status:2;
+ unsigned limit_req_status:3;
unsigned limit_rate_set:1;
unsigned limit_rate_after_set:1;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/nginx-1.17.5/src/http/ngx_http_variables.c new/nginx-1.17.6/src/http/ngx_http_variables.c
--- old/nginx-1.17.5/src/http/ngx_http_variables.c 2019-10-22 17:16:08.000000000 +0200
+++ new/nginx-1.17.6/src/http/ngx_http_variables.c 2019-11-19 15:18:58.000000000 +0100
@@ -199,10 +199,20 @@
{ ngx_string("remote_port"), NULL, ngx_http_variable_remote_port, 0, 0, 0 },
{ ngx_string("proxy_protocol_addr"), NULL,
- ngx_http_variable_proxy_protocol_addr, 0, 0, 0 },
+ ngx_http_variable_proxy_protocol_addr,
+ offsetof(ngx_proxy_protocol_t, src_addr), 0, 0 },
{ ngx_string("proxy_protocol_port"), NULL,
- ngx_http_variable_proxy_protocol_port, 0, 0, 0 },
+ ngx_http_variable_proxy_protocol_port,
+ offsetof(ngx_proxy_protocol_t, src_port), 0, 0 },
+
+ { ngx_string("proxy_protocol_server_addr"), NULL,
+ ngx_http_variable_proxy_protocol_addr,
+ offsetof(ngx_proxy_protocol_t, dst_addr), 0, 0 },
+
+ { ngx_string("proxy_protocol_server_port"), NULL,
+ ngx_http_variable_proxy_protocol_port,
+ offsetof(ngx_proxy_protocol_t, dst_port), 0, 0 },
{ ngx_string("server_addr"), NULL, ngx_http_variable_server_addr, 0, 0, 0 },
@@ -1293,11 +1303,22 @@
ngx_http_variable_proxy_protocol_addr(ngx_http_request_t *r,
ngx_http_variable_value_t *v, uintptr_t data)
{
- v->len = r->connection->proxy_protocol_addr.len;
+ ngx_str_t *addr;
+ ngx_proxy_protocol_t *pp;
+
+ pp = r->connection->proxy_protocol;
+ if (pp == NULL) {
+ v->not_found = 1;
+ return NGX_OK;
+ }
+
+ addr = (ngx_str_t *) ((char *) pp + data);
+
+ v->len = addr->len;
v->valid = 1;
v->no_cacheable = 0;
v->not_found = 0;
- v->data = r->connection->proxy_protocol_addr.data;
+ v->data = addr->data;
return NGX_OK;
}
@@ -1307,7 +1328,14 @@
ngx_http_variable_proxy_protocol_port(ngx_http_request_t *r,
ngx_http_variable_value_t *v, uintptr_t data)
{
- ngx_uint_t port;
+ ngx_uint_t port;
+ ngx_proxy_protocol_t *pp;
+
+ pp = r->connection->proxy_protocol;
+ if (pp == NULL) {
+ v->not_found = 1;
+ return NGX_OK;
+ }
v->len = 0;
v->valid = 1;
@@ -1319,7 +1347,7 @@
return NGX_ERROR;
}
- port = r->connection->proxy_protocol_port;
+ port = *(in_port_t *) ((char *) pp + data);
if (port > 0 && port < 65536) {
v->len = ngx_sprintf(v->data, "%ui", port) - v->data;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/nginx-1.17.5/src/stream/ngx_stream.h new/nginx-1.17.6/src/stream/ngx_stream.h
--- old/nginx-1.17.5/src/stream/ngx_stream.h 2019-10-22 17:16:08.000000000 +0200
+++ new/nginx-1.17.6/src/stream/ngx_stream.h 2019-11-19 15:18:58.000000000 +0100
@@ -226,6 +226,8 @@
unsigned stat_processing:1;
unsigned health_check:1;
+
+ unsigned limit_conn_status:2;
};
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/nginx-1.17.5/src/stream/ngx_stream_limit_conn_module.c new/nginx-1.17.6/src/stream/ngx_stream_limit_conn_module.c
--- old/nginx-1.17.5/src/stream/ngx_stream_limit_conn_module.c 2019-10-22 17:16:08.000000000 +0200
+++ new/nginx-1.17.6/src/stream/ngx_stream_limit_conn_module.c 2019-11-19 15:18:58.000000000 +0100
@@ -10,35 +10,48 @@
#include <ngx_stream.h>
+#define NGX_STREAM_LIMIT_CONN_PASSED 1
+#define NGX_STREAM_LIMIT_CONN_REJECTED 2
+#define NGX_STREAM_LIMIT_CONN_REJECTED_DRY_RUN 3
+
+
typedef struct {
- u_char color;
- u_char len;
- u_short conn;
- u_char data[1];
+ u_char color;
+ u_char len;
+ u_short conn;
+ u_char data[1];
} ngx_stream_limit_conn_node_t;
typedef struct {
- ngx_shm_zone_t *shm_zone;
- ngx_rbtree_node_t *node;
+ ngx_shm_zone_t *shm_zone;
+ ngx_rbtree_node_t *node;
} ngx_stream_limit_conn_cleanup_t;
typedef struct {
- ngx_rbtree_t *rbtree;
- ngx_stream_complex_value_t key;
+ ngx_rbtree_t rbtree;
+ ngx_rbtree_node_t sentinel;
+} ngx_stream_limit_conn_shctx_t;
+
+
+typedef struct {
+ ngx_stream_limit_conn_shctx_t *sh;
+ ngx_slab_pool_t *shpool;
+ ngx_stream_complex_value_t key;
} ngx_stream_limit_conn_ctx_t;
typedef struct {
- ngx_shm_zone_t *shm_zone;
- ngx_uint_t conn;
+ ngx_shm_zone_t *shm_zone;
+ ngx_uint_t conn;
} ngx_stream_limit_conn_limit_t;
typedef struct {
- ngx_array_t limits;
- ngx_uint_t log_level;
+ ngx_array_t limits;
+ ngx_uint_t log_level;
+ ngx_flag_t dry_run;
} ngx_stream_limit_conn_conf_t;
@@ -47,6 +60,8 @@
static void ngx_stream_limit_conn_cleanup(void *data);
static ngx_inline void ngx_stream_limit_conn_cleanup_all(ngx_pool_t *pool);
+static ngx_int_t ngx_stream_limit_conn_status_variable(ngx_stream_session_t *s,
+ ngx_stream_variable_value_t *v, uintptr_t data);
static void *ngx_stream_limit_conn_create_conf(ngx_conf_t *cf);
static char *ngx_stream_limit_conn_merge_conf(ngx_conf_t *cf, void *parent,
void *child);
@@ -54,6 +69,7 @@
void *conf);
static char *ngx_stream_limit_conn(ngx_conf_t *cf, ngx_command_t *cmd,
void *conf);
+static ngx_int_t ngx_stream_limit_conn_add_variables(ngx_conf_t *cf);
static ngx_int_t ngx_stream_limit_conn_init(ngx_conf_t *cf);
@@ -89,12 +105,19 @@
offsetof(ngx_stream_limit_conn_conf_t, log_level),
&ngx_stream_limit_conn_log_levels },
+ { ngx_string("limit_conn_dry_run"),
+ NGX_STREAM_MAIN_CONF|NGX_STREAM_SRV_CONF|NGX_CONF_FLAG,
+ ngx_conf_set_flag_slot,
+ NGX_STREAM_SRV_CONF_OFFSET,
+ offsetof(ngx_stream_limit_conn_conf_t, dry_run),
+ NULL },
+
ngx_null_command
};
static ngx_stream_module_t ngx_stream_limit_conn_module_ctx = {
- NULL, /* preconfiguration */
+ ngx_stream_limit_conn_add_variables, /* preconfiguration */
ngx_stream_limit_conn_init, /* postconfiguration */
NULL, /* create main configuration */
@@ -121,6 +144,22 @@
};
+static ngx_stream_variable_t ngx_stream_limit_conn_vars[] = {
+
+ { ngx_string("limit_conn_status"), NULL,
+ ngx_stream_limit_conn_status_variable, 0, NGX_STREAM_VAR_NOCACHEABLE, 0 },
+
+ ngx_stream_null_variable
+};
+
+
+static ngx_str_t ngx_stream_limit_conn_status[] = {
+ ngx_string("PASSED"),
+ ngx_string("REJECTED"),
+ ngx_string("REJECTED_DRY_RUN")
+};
+
+
static ngx_int_t
ngx_stream_limit_conn_handler(ngx_stream_session_t *s)
{
@@ -128,7 +167,6 @@
uint32_t hash;
ngx_str_t key;
ngx_uint_t i;
- ngx_slab_pool_t *shpool;
ngx_rbtree_node_t *node;
ngx_pool_cleanup_t *cln;
ngx_stream_limit_conn_ctx_t *ctx;
@@ -159,13 +197,13 @@
continue;
}
- hash = ngx_crc32_short(key.data, key.len);
+ s->limit_conn_status = NGX_STREAM_LIMIT_CONN_PASSED;
- shpool = (ngx_slab_pool_t *) limits[i].shm_zone->shm.addr;
+ hash = ngx_crc32_short(key.data, key.len);
- ngx_shmtx_lock(&shpool->mutex);
+ ngx_shmtx_lock(&ctx->shpool->mutex);
- node = ngx_stream_limit_conn_lookup(ctx->rbtree, &key, hash);
+ node = ngx_stream_limit_conn_lookup(&ctx->sh->rbtree, &key, hash);
if (node == NULL) {
@@ -173,11 +211,20 @@
+ offsetof(ngx_stream_limit_conn_node_t, data)
+ key.len;
- node = ngx_slab_alloc_locked(shpool, n);
+ node = ngx_slab_alloc_locked(ctx->shpool, n);
if (node == NULL) {
- ngx_shmtx_unlock(&shpool->mutex);
+ ngx_shmtx_unlock(&ctx->shpool->mutex);
ngx_stream_limit_conn_cleanup_all(s->connection->pool);
+
+ if (lccf->dry_run) {
+ s->limit_conn_status =
+ NGX_STREAM_LIMIT_CONN_REJECTED_DRY_RUN;
+ return NGX_DECLINED;
+ }
+
+ s->limit_conn_status = NGX_STREAM_LIMIT_CONN_REJECTED;
+
return NGX_STREAM_SERVICE_UNAVAILABLE;
}
@@ -188,7 +235,7 @@
lc->conn = 1;
ngx_memcpy(lc->data, key.data, key.len);
- ngx_rbtree_insert(ctx->rbtree, node);
+ ngx_rbtree_insert(&ctx->sh->rbtree, node);
} else {
@@ -196,13 +243,23 @@
if ((ngx_uint_t) lc->conn >= limits[i].conn) {
- ngx_shmtx_unlock(&shpool->mutex);
+ ngx_shmtx_unlock(&ctx->shpool->mutex);
ngx_log_error(lccf->log_level, s->connection->log, 0,
- "limiting connections by zone \"%V\"",
+ "limiting connections%s by zone \"%V\"",
+ lccf->dry_run ? ", dry run," : "",
&limits[i].shm_zone->shm.name);
ngx_stream_limit_conn_cleanup_all(s->connection->pool);
+
+ if (lccf->dry_run) {
+ s->limit_conn_status =
+ NGX_STREAM_LIMIT_CONN_REJECTED_DRY_RUN;
+ return NGX_DECLINED;
+ }
+
+ s->limit_conn_status = NGX_STREAM_LIMIT_CONN_REJECTED;
+
return NGX_STREAM_SERVICE_UNAVAILABLE;
}
@@ -212,7 +269,7 @@
ngx_log_debug2(NGX_LOG_DEBUG_STREAM, s->connection->log, 0,
"limit conn: %08Xi %d", node->key, lc->conn);
- ngx_shmtx_unlock(&shpool->mutex);
+ ngx_shmtx_unlock(&ctx->shpool->mutex);
cln = ngx_pool_cleanup_add(s->connection->pool,
sizeof(ngx_stream_limit_conn_cleanup_t));
@@ -317,17 +374,15 @@
{
ngx_stream_limit_conn_cleanup_t *lccln = data;
- ngx_slab_pool_t *shpool;
ngx_rbtree_node_t *node;
ngx_stream_limit_conn_ctx_t *ctx;
ngx_stream_limit_conn_node_t *lc;
ctx = lccln->shm_zone->data;
- shpool = (ngx_slab_pool_t *) lccln->shm_zone->shm.addr;
node = lccln->node;
lc = (ngx_stream_limit_conn_node_t *) &node->color;
- ngx_shmtx_lock(&shpool->mutex);
+ ngx_shmtx_lock(&ctx->shpool->mutex);
ngx_log_debug2(NGX_LOG_DEBUG_STREAM, lccln->shm_zone->shm.log, 0,
"limit conn cleanup: %08Xi %d", node->key, lc->conn);
@@ -335,11 +390,11 @@
lc->conn--;
if (lc->conn == 0) {
- ngx_rbtree_delete(ctx->rbtree, node);
- ngx_slab_free_locked(shpool, node);
+ ngx_rbtree_delete(&ctx->sh->rbtree, node);
+ ngx_slab_free_locked(ctx->shpool, node);
}
- ngx_shmtx_unlock(&shpool->mutex);
+ ngx_shmtx_unlock(&ctx->shpool->mutex);
}
@@ -365,8 +420,6 @@
ngx_stream_limit_conn_ctx_t *octx = data;
size_t len;
- ngx_slab_pool_t *shpool;
- ngx_rbtree_node_t *sentinel;
ngx_stream_limit_conn_ctx_t *ctx;
ctx = shm_zone->data;
@@ -385,48 +438,64 @@
return NGX_ERROR;
}
- ctx->rbtree = octx->rbtree;
+ ctx->sh = octx->sh;
+ ctx->shpool = octx->shpool;
return NGX_OK;
}
- shpool = (ngx_slab_pool_t *) shm_zone->shm.addr;
+ ctx->shpool = (ngx_slab_pool_t *) shm_zone->shm.addr;
if (shm_zone->shm.exists) {
- ctx->rbtree = shpool->data;
+ ctx->sh = ctx->shpool->data;
return NGX_OK;
}
- ctx->rbtree = ngx_slab_alloc(shpool, sizeof(ngx_rbtree_t));
- if (ctx->rbtree == NULL) {
+ ctx->sh = ngx_slab_alloc(ctx->shpool,
+ sizeof(ngx_stream_limit_conn_shctx_t));
+ if (ctx->sh == NULL) {
return NGX_ERROR;
}
- shpool->data = ctx->rbtree;
+ ctx->shpool->data = ctx->sh;
- sentinel = ngx_slab_alloc(shpool, sizeof(ngx_rbtree_node_t));
- if (sentinel == NULL) {
- return NGX_ERROR;
- }
-
- ngx_rbtree_init(ctx->rbtree, sentinel,
+ ngx_rbtree_init(&ctx->sh->rbtree, &ctx->sh->sentinel,
ngx_stream_limit_conn_rbtree_insert_value);
len = sizeof(" in limit_conn_zone \"\"") + shm_zone->shm.name.len;
- shpool->log_ctx = ngx_slab_alloc(shpool, len);
- if (shpool->log_ctx == NULL) {
+ ctx->shpool->log_ctx = ngx_slab_alloc(ctx->shpool, len);
+ if (ctx->shpool->log_ctx == NULL) {
return NGX_ERROR;
}
- ngx_sprintf(shpool->log_ctx, " in limit_conn_zone \"%V\"%Z",
+ ngx_sprintf(ctx->shpool->log_ctx, " in limit_conn_zone \"%V\"%Z",
&shm_zone->shm.name);
return NGX_OK;
}
+static ngx_int_t
+ngx_stream_limit_conn_status_variable(ngx_stream_session_t *s,
+ ngx_stream_variable_value_t *v, uintptr_t data)
+{
+ if (s->limit_conn_status == 0) {
+ v->not_found = 1;
+ return NGX_OK;
+ }
+
+ v->valid = 1;
+ v->no_cacheable = 0;
+ v->not_found = 0;
+ v->len = ngx_stream_limit_conn_status[s->limit_conn_status - 1].len;
+ v->data = ngx_stream_limit_conn_status[s->limit_conn_status - 1].data;
+
+ return NGX_OK;
+}
+
+
static void *
ngx_stream_limit_conn_create_conf(ngx_conf_t *cf)
{
@@ -444,6 +513,7 @@
*/
conf->log_level = NGX_CONF_UNSET_UINT;
+ conf->dry_run = NGX_CONF_UNSET;
return conf;
}
@@ -461,6 +531,8 @@
ngx_conf_merge_uint_value(conf->log_level, prev->log_level, NGX_LOG_ERR);
+ ngx_conf_merge_value(conf->dry_run, prev->dry_run, 0);
+
return NGX_CONF_OK;
}
@@ -627,6 +699,25 @@
}
+static ngx_int_t
+ngx_stream_limit_conn_add_variables(ngx_conf_t *cf)
+{
+ ngx_stream_variable_t *var, *v;
+
+ for (v = ngx_stream_limit_conn_vars; v->name.len; v++) {
+ var = ngx_stream_add_variable(cf, &v->name, v->flags);
+ if (var == NULL) {
+ return NGX_ERROR;
+ }
+
+ var->get_handler = v->get_handler;
+ var->data = v->data;
+ }
+
+ return NGX_OK;
+}
+
+
static ngx_int_t
ngx_stream_limit_conn_init(ngx_conf_t *cf)
{
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/nginx-1.17.5/src/stream/ngx_stream_realip_module.c new/nginx-1.17.6/src/stream/ngx_stream_realip_module.c
--- old/nginx-1.17.5/src/stream/ngx_stream_realip_module.c 2019-10-22 17:16:08.000000000 +0200
+++ new/nginx-1.17.6/src/stream/ngx_stream_realip_module.c 2019-11-19 15:18:58.000000000 +0100
@@ -108,7 +108,7 @@
c = s->connection;
- if (c->proxy_protocol_addr.len == 0) {
+ if (c->proxy_protocol == NULL) {
return NGX_DECLINED;
}
@@ -116,14 +116,14 @@
return NGX_DECLINED;
}
- if (ngx_parse_addr(c->pool, &addr, c->proxy_protocol_addr.data,
- c->proxy_protocol_addr.len)
+ if (ngx_parse_addr(c->pool, &addr, c->proxy_protocol->src_addr.data,
+ c->proxy_protocol->src_addr.len)
!= NGX_OK)
{
return NGX_DECLINED;
}
- ngx_inet_set_port(addr.sockaddr, c->proxy_protocol_port);
+ ngx_inet_set_port(addr.sockaddr, c->proxy_protocol->src_port);
return ngx_stream_realip_set_addr(s, &addr);
}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/nginx-1.17.5/src/stream/ngx_stream_variables.c new/nginx-1.17.6/src/stream/ngx_stream_variables.c
--- old/nginx-1.17.5/src/stream/ngx_stream_variables.c 2019-10-22 17:16:08.000000000 +0200
+++ new/nginx-1.17.6/src/stream/ngx_stream_variables.c 2019-11-19 15:18:58.000000000 +0100
@@ -64,10 +64,20 @@
ngx_stream_variable_remote_port, 0, 0, 0 },
{ ngx_string("proxy_protocol_addr"), NULL,
- ngx_stream_variable_proxy_protocol_addr, 0, 0, 0 },
+ ngx_stream_variable_proxy_protocol_addr,
+ offsetof(ngx_proxy_protocol_t, src_addr), 0, 0 },
{ ngx_string("proxy_protocol_port"), NULL,
- ngx_stream_variable_proxy_protocol_port, 0, 0, 0 },
+ ngx_stream_variable_proxy_protocol_port,
+ offsetof(ngx_proxy_protocol_t, src_port), 0, 0 },
+
+ { ngx_string("proxy_protocol_server_addr"), NULL,
+ ngx_stream_variable_proxy_protocol_addr,
+ offsetof(ngx_proxy_protocol_t, dst_addr), 0, 0 },
+
+ { ngx_string("proxy_protocol_server_port"), NULL,
+ ngx_stream_variable_proxy_protocol_port,
+ offsetof(ngx_proxy_protocol_t, dst_port), 0, 0 },
{ ngx_string("server_addr"), NULL,
ngx_stream_variable_server_addr, 0, 0, 0 },
@@ -557,11 +567,22 @@
ngx_stream_variable_proxy_protocol_addr(ngx_stream_session_t *s,
ngx_stream_variable_value_t *v, uintptr_t data)
{
- v->len = s->connection->proxy_protocol_addr.len;
+ ngx_str_t *addr;
+ ngx_proxy_protocol_t *pp;
+
+ pp = s->connection->proxy_protocol;
+ if (pp == NULL) {
+ v->not_found = 1;
+ return NGX_OK;
+ }
+
+ addr = (ngx_str_t *) ((char *) pp + data);
+
+ v->len = addr->len;
v->valid = 1;
v->no_cacheable = 0;
v->not_found = 0;
- v->data = s->connection->proxy_protocol_addr.data;
+ v->data = addr->data;
return NGX_OK;
}
@@ -571,7 +592,14 @@
ngx_stream_variable_proxy_protocol_port(ngx_stream_session_t *s,
ngx_stream_variable_value_t *v, uintptr_t data)
{
- ngx_uint_t port;
+ ngx_uint_t port;
+ ngx_proxy_protocol_t *pp;
+
+ pp = s->connection->proxy_protocol;
+ if (pp == NULL) {
+ v->not_found = 1;
+ return NGX_OK;
+ }
v->len = 0;
v->valid = 1;
@@ -583,7 +611,7 @@
return NGX_ERROR;
}
- port = s->connection->proxy_protocol_port;
+ port = *(in_port_t *) ((char *) pp + data);
if (port > 0 && port < 65536) {
v->len = ngx_sprintf(v->data, "%ui", port) - v->data;
1
0
Hello community,
here is the log from the commit of package dracut for openSUSE:Factory checked in at 2019-12-02 11:33:26
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/dracut (Old)
and /work/SRC/openSUSE:Factory/.dracut.new.4691 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "dracut"
Mon Dec 2 11:33:26 2019 rev:146 rq:751500 version:049+git115.c2d8d6fb
Changes:
--------
--- /work/SRC/openSUSE:Factory/dracut/dracut.changes 2019-10-10 11:52:12.919517097 +0200
+++ /work/SRC/openSUSE:Factory/.dracut.new.4691/dracut.changes 2019-12-02 11:38:02.490456895 +0100
@@ -1,0 +2,6 @@
+Thu Nov 28 08:05:53 UTC 2019 - daniel.molkentin(a)suse.com
+
+- Update to version 049+git115.c2d8d6fb:
+ * suse: Remove incorrect usage of %_libexecdir (boo#1155785)
+
+-------------------------------------------------------------------
Old:
----
dracut-049+git114.058e566c.obscpio
dracut-049+git114.058e566c.tar.xz
New:
----
dracut-049+git115.c2d8d6fb.obscpio
dracut-049+git115.c2d8d6fb.tar.xz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ dracut.spec ++++++
--- /var/tmp/diff_new_pack.TvCpia/_old 2019-12-02 11:38:03.154457035 +0100
+++ /var/tmp/diff_new_pack.TvCpia/_new 2019-12-02 11:38:03.154457035 +0100
@@ -16,10 +16,10 @@
#
-%define dracutlibdir %{_libexecdir}/dracut
+%define dracutlibdir %{_prefix}/lib/dracut
Name: dracut
-Version: 049+git114.058e566c
+Version: 049+git115.c2d8d6fb
Release: 0
Summary: Initramfs generator using udev
License: GPL-2.0-or-later AND LGPL-2.1-or-later
@@ -280,10 +280,10 @@
%{_mandir}/man8/dracut-shutdown.service.8.*
%{_mandir}/man5/dracut.conf.5*
-%dir %{_libexecdir}/kernel
-%dir %{_libexecdir}/kernel/install.d
-%{_libexecdir}/kernel/install.d/50-dracut.install
-%{_libexecdir}/kernel/install.d/51-dracut-rescue.install
+%dir %{_prefix}/lib/kernel
+%dir %{_prefix}/lib/kernel/install.d
+%{_prefix}/lib/kernel/install.d/50-dracut.install
+%{_prefix}/lib/kernel/install.d/51-dracut-rescue.install
%dir %{dracutlibdir}
%{dracutlibdir}/skipcpio
++++++ _servicedata ++++++
--- /var/tmp/diff_new_pack.TvCpia/_old 2019-12-02 11:38:03.198457045 +0100
+++ /var/tmp/diff_new_pack.TvCpia/_new 2019-12-02 11:38:03.202457045 +0100
@@ -1,4 +1,4 @@
<servicedata>
<service name="tar_scm">
<param name="url">https://github.com/opensuse/dracut.git</param>
- <param name="changesrevision">058e566c02c4cdaeecba1f946d41c3c7cee34dfd</param></service></servicedata>
\ No newline at end of file
+ <param name="changesrevision">c2d8d6fb4c700f40eaaa30cffac41e3d8071c20b</param></service></servicedata>
\ No newline at end of file
++++++ dracut-049+git114.058e566c.obscpio -> dracut-049+git115.c2d8d6fb.obscpio ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/dracut-049+git114.058e566c/suse/dracut.spec new/dracut-049+git115.c2d8d6fb/suse/dracut.spec
--- old/dracut-049+git114.058e566c/suse/dracut.spec 2019-10-01 12:44:21.000000000 +0200
+++ new/dracut-049+git115.c2d8d6fb/suse/dracut.spec 2019-11-27 05:13:39.000000000 +0100
@@ -16,7 +16,7 @@
#
-%define dracutlibdir %{_libexecdir}/dracut
+%define dracutlibdir %{_prefix}/lib/dracut
Name: dracut
Version: 049
@@ -280,10 +280,10 @@
%{_mandir}/man8/dracut-shutdown.service.8.*
%{_mandir}/man5/dracut.conf.5*
-%dir %{_libexecdir}/kernel
-%dir %{_libexecdir}/kernel/install.d
-%{_libexecdir}/kernel/install.d/50-dracut.install
-%{_libexecdir}/kernel/install.d/51-dracut-rescue.install
+%dir %{_prefix}/lib/kernel
+%dir %{_prefix}/lib/kernel/install.d
+%{_prefix}/lib/kernel/install.d/50-dracut.install
+%{_prefix}/lib/kernel/install.d/51-dracut-rescue.install
%dir %{dracutlibdir}
%{dracutlibdir}/skipcpio
++++++ dracut-049+git114.058e566c.tar.xz -> dracut-049+git115.c2d8d6fb.tar.xz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/dracut-049+git114.058e566c/suse/dracut.spec new/dracut-049+git115.c2d8d6fb/suse/dracut.spec
--- old/dracut-049+git114.058e566c/suse/dracut.spec 2019-10-01 12:44:21.000000000 +0200
+++ new/dracut-049+git115.c2d8d6fb/suse/dracut.spec 2019-11-27 05:13:39.000000000 +0100
@@ -16,7 +16,7 @@
#
-%define dracutlibdir %{_libexecdir}/dracut
+%define dracutlibdir %{_prefix}/lib/dracut
Name: dracut
Version: 049
@@ -280,10 +280,10 @@
%{_mandir}/man8/dracut-shutdown.service.8.*
%{_mandir}/man5/dracut.conf.5*
-%dir %{_libexecdir}/kernel
-%dir %{_libexecdir}/kernel/install.d
-%{_libexecdir}/kernel/install.d/50-dracut.install
-%{_libexecdir}/kernel/install.d/51-dracut-rescue.install
+%dir %{_prefix}/lib/kernel
+%dir %{_prefix}/lib/kernel/install.d
+%{_prefix}/lib/kernel/install.d/50-dracut.install
+%{_prefix}/lib/kernel/install.d/51-dracut-rescue.install
%dir %{dracutlibdir}
%{dracutlibdir}/skipcpio
++++++ dracut.obsinfo ++++++
--- /var/tmp/diff_new_pack.TvCpia/_old 2019-12-02 11:38:03.558457121 +0100
+++ /var/tmp/diff_new_pack.TvCpia/_new 2019-12-02 11:38:03.558457121 +0100
@@ -1,5 +1,5 @@
name: dracut
-version: 049+git114.058e566c
-mtime: 1569926661
-commit: 058e566c02c4cdaeecba1f946d41c3c7cee34dfd
+version: 049+git115.c2d8d6fb
+mtime: 1574828019
+commit: c2d8d6fb4c700f40eaaa30cffac41e3d8071c20b
1
0
Hello community,
here is the log from the commit of package tilix for openSUSE:Factory checked in at 2019-12-02 11:33:21
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/tilix (Old)
and /work/SRC/openSUSE:Factory/.tilix.new.4691 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "tilix"
Mon Dec 2 11:33:21 2019 rev:19 rq:752653 version:1.9.3
Changes:
--------
--- /work/SRC/openSUSE:Factory/tilix/tilix.changes 2019-06-03 18:51:01.844523565 +0200
+++ /work/SRC/openSUSE:Factory/.tilix.new.4691/tilix.changes 2019-12-02 11:37:59.802456330 +0100
@@ -1,0 +2,6 @@
+Sat Nov 30 18:58:24 UTC 2019 - Matthias Eliasson <elimat(a)opensuse.org>
+
+- Use python3-nautilus dependency for Tumbleweed since python2 support have
+ been droped. Still keep python2-nautilus for older Leap releases. (boo#1158039)
+
+-------------------------------------------------------------------
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ tilix.spec ++++++
--- /var/tmp/diff_new_pack.Jtasvq/_old 2019-12-02 11:38:00.466456470 +0100
+++ /var/tmp/diff_new_pack.Jtasvq/_new 2019-12-02 11:38:00.466456470 +0100
@@ -1,7 +1,7 @@
#
# spec file for package tilix
#
-# Copyright (c) 2019 SUSE LINUX GmbH, Nuernberg, Germany.
+# Copyright (c) 2019 SUSE LLC
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@@ -87,8 +87,12 @@
%package -n nautilus-extension-tilix
Summary: Nautilus Extension to Open Tilix in Folders
Group: System/GUI/GNOME
+%if 0%{?suse_version} < 1550
Requires: python-nautilus
-Supplements: packageand(nautilus:%{name})
+%else
+Requires: python3-nautilus
+%endif
+Supplements: (nautilus and %{name})
%description -n nautilus-extension-tilix
This is a Nautilus extension that allows you to open tilix in
1
0