openSUSE Commits
Threads by month
- ----- 2024 -----
- 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
October 2024
- 1 participants
- 1410 discussions
Script 'mail_helper' called by obssrc
Hello community,
here is the log from the commit of package kubefirst for openSUSE:Factory checked in at 2024-10-30 17:34:25
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/kubefirst (Old)
and /work/SRC/openSUSE:Factory/.kubefirst.new.2020 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "kubefirst"
Wed Oct 30 17:34:25 2024 rev:23 rq:1219063 version:2.7.3
Changes:
--------
--- /work/SRC/openSUSE:Factory/kubefirst/kubefirst.changes 2024-10-27 11:24:48.693251811 +0100
+++ /work/SRC/openSUSE:Factory/.kubefirst.new.2020/kubefirst.changes 2024-10-30 17:34:58.133595784 +0100
@@ -1,0 +2,20 @@
+Tue Oct 29 14:49:34 UTC 2024 - opensuse_buildservice(a)ojkastl.de
+
+- Update to version 2.7.3:
+ * set next macro chart for kubefirst - 2.7.3
+ * set next macro chart for kubefirst - 2.7.3-rc3
+ * set next macro chart for kubefirst - 2.7.3-rc2
+ * set next macro chart for kubefirst - 2.7.3-rc1
+
+-------------------------------------------------------------------
+Tue Oct 29 14:45:04 UTC 2024 - opensuse_buildservice(a)ojkastl.de
+
+- Update to version 2.7.2 (there is no 2.7.1):
+ * set next macro chart for kubefirst - 2.7.2
+ * feat: change tag
+ * set next macro chart for kubefirst - 2.7.2-rc1
+ * set next macro chart for kubefirst - 2.7.1-rc3
+ * set next macro chart for kubefirst - 2.7.1-rc2
+ * set next macro chart for kubefirst - 2.7.1-rc1
+
+-------------------------------------------------------------------
Old:
----
kubefirst-2.7.0.obscpio
New:
----
kubefirst-2.7.3.obscpio
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ kubefirst.spec ++++++
--- /var/tmp/diff_new_pack.ijxlhW/_old 2024-10-30 17:34:59.297644542 +0100
+++ /var/tmp/diff_new_pack.ijxlhW/_new 2024-10-30 17:34:59.301644710 +0100
@@ -17,7 +17,7 @@
Name: kubefirst
-Version: 2.7.0
+Version: 2.7.3
Release: 0
Summary: CLI for the KubeFirst GitOps Infrastructure & Application Delivery Platform
License: MIT
++++++ _service ++++++
--- /var/tmp/diff_new_pack.ijxlhW/_old 2024-10-30 17:34:59.329645882 +0100
+++ /var/tmp/diff_new_pack.ijxlhW/_new 2024-10-30 17:34:59.333646051 +0100
@@ -3,7 +3,7 @@
<param name="url">https://github.com/kubefirst/kubefirst</param>
<param name="scm">git</param>
<param name="exclude">.git</param>
- <param name="revision">v2.7.0</param>
+ <param name="revision">v2.7.3</param>
<param name="versionformat">@PARENT_TAG@</param>
<param name="versionrewrite-pattern">v(.*)</param>
<param name="changesgenerate">enable</param>
++++++ _servicedata ++++++
--- /var/tmp/diff_new_pack.ijxlhW/_old 2024-10-30 17:34:59.353646889 +0100
+++ /var/tmp/diff_new_pack.ijxlhW/_new 2024-10-30 17:34:59.357647056 +0100
@@ -1,6 +1,6 @@
<servicedata>
<service name="tar_scm">
<param name="url">https://github.com/kubefirst/kubefirst</param>
- <param name="changesrevision">6bae0bf0a4aec4c67adaa921e8111e90b7962f0e</param></service></servicedata>
+ <param name="changesrevision">718318062ccbcb9b94c0ab527c50f54c42475721</param></service></servicedata>
(No newline at EOF)
++++++ kubefirst-2.7.0.obscpio -> kubefirst-2.7.3.obscpio ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kubefirst-2.7.0/go.mod new/kubefirst-2.7.3/go.mod
--- old/kubefirst-2.7.0/go.mod 2024-10-24 23:11:35.000000000 +0200
+++ new/kubefirst-2.7.3/go.mod 2024-10-29 01:20:21.000000000 +0100
@@ -14,7 +14,7 @@
github.com/dustin/go-humanize v1.0.1
github.com/go-git/go-git/v5 v5.12.0
github.com/hashicorp/vault/api v1.9.0
- github.com/konstructio/kubefirst-api v0.111.0
+ github.com/konstructio/kubefirst-api v0.113.0
github.com/kubefirst/metrics-client v0.3.0
github.com/nxadm/tail v1.4.8
github.com/rs/zerolog v1.29.1
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kubefirst-2.7.0/go.sum new/kubefirst-2.7.3/go.sum
--- old/kubefirst-2.7.0/go.sum 2024-10-24 23:11:35.000000000 +0200
+++ new/kubefirst-2.7.3/go.sum 2024-10-29 01:20:21.000000000 +0100
@@ -724,8 +724,8 @@
github.com/konsorten/go-windows-terminal-sequences v1.0.1/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ=
github.com/konsorten/go-windows-terminal-sequences v1.0.2/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ=
github.com/konsorten/go-windows-terminal-sequences v1.0.3/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ=
-github.com/konstructio/kubefirst-api v0.111.0 h1:t9X1FYmEyoYNOiwEQPw4EpqLAsOY2/sdJ8LqeXY90C0=
-github.com/konstructio/kubefirst-api v0.111.0/go.mod h1:9zAeU7nPxwAoiEv3Cs7+gRjoFDfK60iR6CeYPFAeBY4=
+github.com/konstructio/kubefirst-api v0.113.0 h1:J1BkjkEJQSCcTQnyfXDXv9BEkXw4acfTqbzPtLPaiik=
+github.com/konstructio/kubefirst-api v0.113.0/go.mod h1:9zAeU7nPxwAoiEv3Cs7+gRjoFDfK60iR6CeYPFAeBY4=
github.com/kr/fs v0.1.0/go.mod h1:FFnZGqtBN9Gxj7eW1uZ42v5BccTP0vu6NEaFoC2HwRg=
github.com/kr/logfmt v0.0.0-20140226030751-b84e30acd515/go.mod h1:+0opPa2QZZtGFBFZlji/RkVcI2GknAs/DXo4wKdlNEc=
github.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo=
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kubefirst-2.7.0/internal/launch/constants.go new/kubefirst-2.7.3/internal/launch/constants.go
--- old/kubefirst-2.7.0/internal/launch/constants.go 2024-10-24 23:11:35.000000000 +0200
+++ new/kubefirst-2.7.3/internal/launch/constants.go 2024-10-29 01:20:21.000000000 +0100
@@ -11,7 +11,7 @@
helmChartName = "kubefirst"
helmChartRepoName = "konstruct"
helmChartRepoURL = "https://charts.konstruct.io"
- helmChartVersion = "2.7.0"
+ helmChartVersion = "2.7.3"
namespace = "kubefirst"
secretName = "kubefirst-initial-secrets"
)
++++++ kubefirst.obsinfo ++++++
--- /var/tmp/diff_new_pack.ijxlhW/_old 2024-10-30 17:34:59.569655937 +0100
+++ /var/tmp/diff_new_pack.ijxlhW/_new 2024-10-30 17:34:59.573656104 +0100
@@ -1,5 +1,5 @@
name: kubefirst
-version: 2.7.0
-mtime: 1729804295
-commit: 6bae0bf0a4aec4c67adaa921e8111e90b7962f0e
+version: 2.7.3
+mtime: 1730161221
+commit: 718318062ccbcb9b94c0ab527c50f54c42475721
++++++ vendor.tar.gz ++++++
/work/SRC/openSUSE:Factory/kubefirst/vendor.tar.gz /work/SRC/openSUSE:Factory/.kubefirst.new.2020/vendor.tar.gz differ: char 5, line 1
1
0
30 Oct '24
Script 'mail_helper' called by obssrc
Hello community,
here is the log from the commit of package python-google-ai-generativelanguage for openSUSE:Factory checked in at 2024-10-30 17:34:14
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/python-google-ai-generativelanguage (Old)
and /work/SRC/openSUSE:Factory/.python-google-ai-generativelanguage.new.2020 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "python-google-ai-generativelanguage"
Wed Oct 30 17:34:14 2024 rev:3 rq:1219040 version:0.6.10
Changes:
--------
--- /work/SRC/openSUSE:Factory/python-google-ai-generativelanguage/python-google-ai-generativelanguage.changes 2024-09-25 21:56:16.651734326 +0200
+++ /work/SRC/openSUSE:Factory/.python-google-ai-generativelanguage.new.2020/python-google-ai-generativelanguage.changes 2024-10-30 17:34:46.789120599 +0100
@@ -1,0 +2,6 @@
+Tue Oct 1 21:50:35 UTC 2024 - Guang Yee <gyee(a)suse.com>
+
+- Run the tests inside the tests dir only.
+
+
+-------------------------------------------------------------------
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ python-google-ai-generativelanguage.spec ++++++
--- /var/tmp/diff_new_pack.Cm7xNU/_old 2024-10-30 17:34:48.193179410 +0100
+++ /var/tmp/diff_new_pack.Cm7xNU/_new 2024-10-30 17:34:48.213180248 +0100
@@ -58,7 +58,8 @@
%python_expand %fdupes %{buildroot}%{$python_sitelib}
%check
-%pytest -v
+cd tests
+%pytest
%files %{python_files}
%{python_sitelib}/google
1
0
Script 'mail_helper' called by obssrc
Hello community,
here is the log from the commit of package picotool for openSUSE:Factory checked in at 2024-10-30 17:34:12
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/picotool (Old)
and /work/SRC/openSUSE:Factory/.picotool.new.2020 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "picotool"
Wed Oct 30 17:34:12 2024 rev:11 rq:1219038 version:2.0.0
Changes:
--------
--- /work/SRC/openSUSE:Factory/picotool/picotool.changes 2023-07-26 13:25:13.120461244 +0200
+++ /work/SRC/openSUSE:Factory/.picotool.new.2020/picotool.changes 2024-10-30 17:34:44.753035315 +0100
@@ -1,0 +2,10 @@
+Tue Oct 29 08:40:16 UTC 2024 - Michal Suchanek <msuchanek(a)suse.de>
+
+- Update to 2.0.0
+ * Offset now valid for ELF and UF2 files on RP2350
+ * Displays info on the embedded block for RP2350
+ * Displays information for binaries in partitions too
+ * Added -cpu option on RP2350 to switch archtectures
+ * Added diagnostic partition option on RP2350
+
+-------------------------------------------------------------------
Old:
----
pico-sdk-1.5.1.tar.gz
picotool-1.1.2.tar.gz
New:
----
pico-sdk-2.0.0.tar.gz
picotool-2.0.0.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ picotool.spec ++++++
--- /var/tmp/diff_new_pack.0HIwtI/_old 2024-10-30 17:34:45.401062459 +0100
+++ /var/tmp/diff_new_pack.0HIwtI/_new 2024-10-30 17:34:45.401062459 +0100
@@ -1,7 +1,7 @@
#
# spec file for package picotool
#
-# Copyright (c) 2023 SUSE LLC
+# Copyright (c) 2024 SUSE LLC
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@@ -16,19 +16,19 @@
#
-%define sdk_version 1.5.1
+%define sdk_version 2.0.0
Name: picotool
-URL: https://github.com/raspberrypi/picotool
-Version: 1.1.2
+Version: 2.0.0
Release: 0
Summary: Tool to inspect RP2040 binaries
License: BSD-3-Clause
Group: Development/Tools/Other
+URL: https://github.com/raspberrypi/picotool
+Source0: https://github.com/raspberrypi/picotool/archive/%{version}.tar.gz#/%{name}-…
+Source1: https://github.com/raspberrypi/pico-sdk/archive/%{sdk_version}.tar.gz#/pico…
BuildRequires: cmake >= 3.12
BuildRequires: gcc-c++
BuildRequires: libusb-1_0-devel
-Source0: https://github.com/raspberrypi/picotool/archive/%{version}.tar.gz#/%{name}-…
-Source1: https://github.com/raspberrypi/pico-sdk/archive/%{sdk_version}.tar.gz#/pico…
%description
Picotool is a tool for inspecting RP2040 binaries, and interacting with RP2040 devices when they are in BOOTSEL mode.
@@ -44,8 +44,9 @@
%cmake_install
%files
-%defattr(-,root,root)
%doc README.md
%license LICENSE.TXT
%{_bindir}/picotool
+%{_libdir}/cmake/picotool
+%{_datadir}/picotool
++++++ pico-sdk-1.5.1.tar.gz -> pico-sdk-2.0.0.tar.gz ++++++
++++ 481390 lines of diff (skipped)
++++++ picotool-1.1.2.tar.gz -> picotool-2.0.0.tar.gz ++++++
++++ 76452 lines of diff (skipped)
1
0
Script 'mail_helper' called by obssrc
Hello community,
here is the log from the commit of package grype for openSUSE:Factory checked in at 2024-10-30 17:34:03
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/grype (Old)
and /work/SRC/openSUSE:Factory/.grype.new.2020 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "grype"
Wed Oct 30 17:34:03 2024 rev:78 rq:1219049 version:0.83.0
Changes:
--------
--- /work/SRC/openSUSE:Factory/grype/grype.changes 2024-10-22 14:54:08.522963313 +0200
+++ /work/SRC/openSUSE:Factory/.grype.new.2020/grype.changes 2024-10-30 17:34:33.440561475 +0100
@@ -1,0 +2,21 @@
+Tue Oct 29 14:02:25 UTC 2024 - opensuse_buildservice(a)ojkastl.de
+
+- Update to version 0.83.0:
+ * bump syft to v1.15.0, sterescope to v0.0.5 (#2219)
+ * Add `grype db providers` command (#2174)
+ * chore(deps): bump github.com/charmbracelet/bubbletea from 1.1.1
+ to 1.1.2 (#2214)
+ * chore(deps): update tools to latest versions (#2213)
+ * docs: update config section to be valid, reference config
+ subcommand (#2218)
+ * chore(deps): bump github.com/charmbracelet/lipgloss (#2207)
+ * chore(deps): bump github/codeql-action from 3.26.13 to 3.27.0
+ (#2208)
+ * chore(deps): bump actions/checkout from 4.2.1 to 4.2.2 (#2209)
+ * chore(deps): bump actions/setup-go from 5.0.2 to 5.1.0 (#2211)
+ * feat: multi-level configuration and profiles (#2194)
+ * chore(deps): bump actions/cache from 4.1.1 to 4.1.2 (#2204)
+ * chore(deps): bump anchore/sbom-action from 0.17.4 to 0.17.5
+ (#2205)
+
+-------------------------------------------------------------------
Old:
----
grype-0.82.2.obscpio
New:
----
grype-0.83.0.obscpio
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ grype.spec ++++++
--- /var/tmp/diff_new_pack.rTMUUu/_old 2024-10-30 17:34:38.956792530 +0100
+++ /var/tmp/diff_new_pack.rTMUUu/_new 2024-10-30 17:34:38.956792530 +0100
@@ -17,7 +17,7 @@
Name: grype
-Version: 0.82.2
+Version: 0.83.0
Release: 0
Summary: A vulnerability scanner for container images and filesystems
License: Apache-2.0
++++++ _service ++++++
--- /var/tmp/diff_new_pack.rTMUUu/_old 2024-10-30 17:34:38.988793871 +0100
+++ /var/tmp/diff_new_pack.rTMUUu/_new 2024-10-30 17:34:38.992794038 +0100
@@ -3,7 +3,7 @@
<param name="url">https://github.com/anchore/grype</param>
<param name="scm">git</param>
<param name="exclude">.git</param>
- <param name="revision">v0.82.2</param>
+ <param name="revision">v0.83.0</param>
<param name="versionformat">@PARENT_TAG@</param>
<param name="changesgenerate">enable</param>
<param name="versionrewrite-pattern">v(.*)</param>
++++++ _servicedata ++++++
--- /var/tmp/diff_new_pack.rTMUUu/_old 2024-10-30 17:34:39.012794876 +0100
+++ /var/tmp/diff_new_pack.rTMUUu/_new 2024-10-30 17:34:39.012794876 +0100
@@ -1,6 +1,6 @@
<servicedata>
<service name="tar_scm">
<param name="url">https://github.com/anchore/grype</param>
- <param name="changesrevision">d018ffa51b60dff0a3ea42868b3b9aecac894d0f</param></service></servicedata>
+ <param name="changesrevision">0602464ebc9f3c417b1175b3e104b19a006604b7</param></service></servicedata>
(No newline at EOF)
++++++ grype-0.82.2.obscpio -> grype-0.83.0.obscpio ++++++
/work/SRC/openSUSE:Factory/grype/grype-0.82.2.obscpio /work/SRC/openSUSE:Factory/.grype.new.2020/grype-0.83.0.obscpio differ: char 49, line 1
++++++ grype.obsinfo ++++++
--- /var/tmp/diff_new_pack.rTMUUu/_old 2024-10-30 17:34:39.052796551 +0100
+++ /var/tmp/diff_new_pack.rTMUUu/_new 2024-10-30 17:34:39.056796719 +0100
@@ -1,5 +1,5 @@
name: grype
-version: 0.82.2
-mtime: 1729533026
-commit: d018ffa51b60dff0a3ea42868b3b9aecac894d0f
+version: 0.83.0
+mtime: 1730151426
+commit: 0602464ebc9f3c417b1175b3e104b19a006604b7
++++++ vendor.tar.gz ++++++
/work/SRC/openSUSE:Factory/grype/vendor.tar.gz /work/SRC/openSUSE:Factory/.grype.new.2020/vendor.tar.gz differ: char 5, line 1
1
0
Script 'mail_helper' called by obssrc
Hello community,
here is the log from the commit of package byte-buddy for openSUSE:Factory checked in at 2024-10-30 17:34:00
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/byte-buddy (Old)
and /work/SRC/openSUSE:Factory/.byte-buddy.new.2020 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "byte-buddy"
Wed Oct 30 17:34:00 2024 rev:9 rq:1219036 version:1.15.7
Changes:
--------
--- /work/SRC/openSUSE:Factory/byte-buddy/byte-buddy.changes 2024-10-14 13:06:44.471530308 +0200
+++ /work/SRC/openSUSE:Factory/.byte-buddy.new.2020/byte-buddy.changes 2024-10-30 17:34:24.896203580 +0100
@@ -1,0 +2,22 @@
+Wed Oct 23 10:55:21 UTC 2024 - Anton Shvetz <shvetz.anton(a)gmail.com>
+
+- Update to v1.15.7
+ * Changes of v1.15.7
+ + Additional release after time out during previous Gradle
+ plugin release.
+ * Changes of v1.15.6
+ + Add ConstructorResolver to Super annotation for
+ MethodDelegation to allow for dynamic constructor resolution.
+ + Add Java 8 versions of shaded ASM to allow for faster class
+ file validation and CDS support.
+
+-------------------------------------------------------------------
+Thu Oct 17 10:23:16 UTC 2024 - Anton Shvetz <shvetz.anton(a)gmail.com>
+
+- Update to v1.15.5
+ * Changes of v1.15.5
+ + Publish Byte Buddy and Byte Buddy agent artifacts as
+ multi-release jars to support CDS and faster validation.
+- Remove Windows-specific resources
+
+-------------------------------------------------------------------
@@ -4 +26 @@
-- Update to v1.15.3
+- Update to v1.15.4
Old:
----
byte-buddy-1.15.4.tar.gz
New:
----
byte-buddy-1.15.7.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ byte-buddy.spec ++++++
--- /var/tmp/diff_new_pack.g6EwKR/_old 2024-10-30 17:34:25.492228545 +0100
+++ /var/tmp/diff_new_pack.g6EwKR/_new 2024-10-30 17:34:25.496228713 +0100
@@ -17,7 +17,7 @@
Name: byte-buddy
-Version: 1.15.4
+Version: 1.15.7
Release: 0
Summary: Runtime code generation for the Java virtual machine
License: Apache-2.0
@@ -78,6 +78,9 @@
%setup -q -n %{name}-%{name}-%{version}
%patch -P 0 -p1
+# Remove Windows-specific resources
+rm -rf byte-buddy-agent/src/main/resources/win32-x86{,-64}
+
# Don't ship android or benchmark modules
%pom_disable_module byte-buddy-android
%pom_disable_module byte-buddy-android-test
++++++ byte-buddy-1.15.4.tar.gz -> byte-buddy-1.15.7.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/byte-buddy-byte-buddy-1.15.4/.github/workflows/main.yml new/byte-buddy-byte-buddy-1.15.7/.github/workflows/main.yml
--- old/byte-buddy-byte-buddy-1.15.4/.github/workflows/main.yml 2024-10-09 21:56:16.000000000 +0200
+++ new/byte-buddy-byte-buddy-1.15.7/.github/workflows/main.yml 2024-10-23 09:27:02.000000000 +0200
@@ -68,7 +68,7 @@
strategy:
fail-fast: false
matrix:
- java: [ 9, 10, 12, 13, 14, 15, 16, 18, 19, 20, 22 ]
+ java: [ 9, 10, 12, 13, 14, 15, 16, 18, 19, 20, 22, 23 ]
runs-on: ubuntu-24.04
needs: [ extended ]
steps:
@@ -155,7 +155,7 @@
architecture: x64
cache: maven
- name: Build project
- run: ./mvnw jacoco:prepare-agent verify jacoco:report coveralls:report -DrepoToken=${{ secrets.coveralls }} -Pextras -Pchecks -Panalysis -Pintegration -Pchecksum-enforce
+ run: ./mvnw jacoco:prepare-agent verify jacoco:report coveralls:report -DrepoToken=${{ secrets.coveralls }} -Pextras -Pchecks -Panalysis -Pintegration -Pmulti-release -Pchecksum-enforce
release:
name: Release new version
runs-on: ubuntu-24.04
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/byte-buddy-byte-buddy-1.15.4/.mvn/checksums.sha256 new/byte-buddy-byte-buddy-1.15.7/.mvn/checksums.sha256
--- old/byte-buddy-byte-buddy-1.15.4/.mvn/checksums.sha256 2024-10-09 21:56:16.000000000 +0200
+++ new/byte-buddy-byte-buddy-1.15.7/.mvn/checksums.sha256 2024-10-23 09:27:02.000000000 +0200
@@ -38,6 +38,8 @@
classworlds:classworlds:jar:1.1-alpha-2 2bf4e59f3acd106fea6145a9a88fe8956509f8b9c0fdd11eb96fee757269e3f3
classworlds:classworlds:pom:1.1 25a1efc00bcd1f029fd20c44df843b8b12d1fa17485235470764f011d2f5cb29
classworlds:classworlds:pom:1.1-alpha-2 0cc647963b74ad1d7a37c9868e9e5a8f474e49297e1863582253a08a4c719cb1
+codes.rafael.bytecodeupdate:bytecode-update-maven-plugin:jar:1.0 cfa943b4e5f837c0028fbe3f6f9484f42dfed9174953b30ede0d84ec4aeaf2c9
+codes.rafael.bytecodeupdate:bytecode-update-maven-plugin:pom:1.0 6e783d2d272a5a86dc4831ca66bf3006108b42d2f0156513f0f2d86b6bbbf197
codes.rafael.modulemaker:modulemaker-maven-plugin:jar:1.11 21873e7ae9bab90de820bc35108c1891f9c49b698ef300f19ed79232213c690f
codes.rafael.modulemaker:modulemaker-maven-plugin:jar:1.9 ddaf9e624b0c92f6193f97084d1384613694ff7bc73e183e73fff51567c4c7fa
codes.rafael.modulemaker:modulemaker-maven-plugin:pom:1.11 e212d74e3b0734238617531d1a55ad8df74c2da18a0da6a10d3fa7a9c574fc9c
@@ -494,6 +496,7 @@
commons-io:commons-io:jar:1.4 a7f713593007813bf07d19bd1df9f81c86c0719e9a0bb2ef1b98b78313fc940d
commons-io:commons-io:jar:2.11.0 961b2f6d87dbacc5d54abf45ab7a6e2495f89b75598962d8c723cea9bc210908
commons-io:commons-io:jar:2.13.0 671eaa39688dac2ffaa4645b3c9980ae2d0ea2471e4ae6a5da199cd15ae23666
+commons-io:commons-io:jar:2.14.0 e35d1df7232568ed4b81d9a9ed94a0159b3ff6cf1915cc21eef5cb55d7b157a2
commons-io:commons-io:jar:2.15.1 a58af12ee1b68cfd2ebb0c27caef164f084381a00ec81a48cc275fd7ea54e154
commons-io:commons-io:jar:2.2 675f60bd11a82d481736591fe4054c66471fa5463d45616652fd71585792ba87
commons-io:commons-io:jar:2.4 cc6a41dc3eaacc9e440a6bd0d2890b20d36b4ee408fe2d67122f328bb6e01581
@@ -503,6 +506,7 @@
commons-io:commons-io:pom:1.4 2dae496a19c82b8e9985a1246aa80cf98082b1ae2217cf4b2d4d5ff13a365af2
commons-io:commons-io:pom:2.11.0 2e016fd7e3244b5f2c20acad834d93aa4790486ee1e4564641361a3e831eef59
commons-io:commons-io:pom:2.13.0 db3fed64c2e1774ebfd6b1a749037732b149b9111dd7e6b985f08dda55470439
+commons-io:commons-io:pom:2.14.0 34d40b58f8a86574200f08ac8b8d1d0a1aa74c72c1c7f6d898f8b8b76eda7d8b
commons-io:commons-io:pom:2.15.1 171a1af82b6759eb5740b3b8809aca80113deaf1153036f2f4445901dfd3f91d
commons-io:commons-io:pom:2.2 6c221dc2dca94331a92a9cb19b3943631f7cb7c0302255fb5cd0450654e812c7
commons-io:commons-io:pom:2.4 b2b5dd46cf998fa626eb6f8a1c114f6167c8d392694164e62533e5898e9b31f2
@@ -649,6 +653,8 @@
net.bytebuddy:byte-buddy-agent:jar:1.15.1 77a39846b42110eb50e49e4ff6137e3f0a92eb3bb6f59ce52dc4095c8b901005
net.bytebuddy:byte-buddy-agent:jar:1.15.2 f8673a2dec2a4c2b0a910d92b4b332bb9622890332138e4c401364cba74eda77
net.bytebuddy:byte-buddy-agent:jar:1.15.3 f228fd30294bba92e0409edf1318c487d0df0a48a276081bf6e47bb3fb1c14ab
+net.bytebuddy:byte-buddy-agent:jar:1.15.4 1d76defd159a564b9cb7a968d0dea27367b8b70ebde75a968e7ef1921bc75ee4
+net.bytebuddy:byte-buddy-agent:jar:1.15.5 af7473d13f69b555558067b9c8d0d6ffc568b926d1b53b94b8bb419aec151a2c
net.bytebuddy:byte-buddy-android:jar:1.12.19 bb73d3b9ace5a60a9a9aa1701761073b3df3baf79ff463aed6cd94b724fd3ba9
net.bytebuddy:byte-buddy-android:jar:1.12.20 f43b8b7eb840f6140135066224f0e6b565b9becb05345fdc572a66bfb92df0aa
net.bytebuddy:byte-buddy-android:jar:1.12.21 bf4ad1405c2fcaa8b179929f9a64c8ee66d04f34b0e3fe8a90b28c738f883fe9
@@ -679,6 +685,8 @@
net.bytebuddy:byte-buddy-android:jar:1.15.1 b8724a3372f76dbbe01ea3385baad0c325c583f637a87d32428b612be70b5b32
net.bytebuddy:byte-buddy-android:jar:1.15.2 a19d628dee90c74e96a321e9814e2c5f3fe4e6404b05a7b25ec407e227e25e7e
net.bytebuddy:byte-buddy-android:jar:1.15.3 ee0b719fd4c707bc3be4932257f2110d0732ae934a208973ad0f40c4dfc72419
+net.bytebuddy:byte-buddy-android:jar:1.15.4 eeb6912d72c39585dd49b5eb315fcb87d2f901af46c3cb0879fc9c1956a15205
+net.bytebuddy:byte-buddy-android:jar:1.15.5 e6c58086cd3d8ca97d6e0ad3b93fa162bbeec759d24749e3a0f90f418f3d9d45
net.bytebuddy:byte-buddy-dep:jar:1.12.19 a85bb853ec6ec156b10ea0b5b0e38ac0f89c6c2bc89dd0358772a0dff2eb85c9
net.bytebuddy:byte-buddy-dep:jar:1.12.20 d7e15d3ccc0508e78a146f1be420779eb3e2e9a537e3c8add3cd6d802c9a615e
net.bytebuddy:byte-buddy-dep:jar:1.12.21 116b320c1f3f8539978ea67989d94e9bfed3e9422beb5a76749d967439ec8f9d
@@ -709,6 +717,8 @@
net.bytebuddy:byte-buddy-dep:jar:1.15.1 ade2ebcc897db4ecc13ab61188d8251665314cbf8f3268e558e75f9728380fc6
net.bytebuddy:byte-buddy-dep:jar:1.15.2 50f05dad8a626e588b2f89de7eefc9212515d45d6a03fb87870f946f0bab56f7
net.bytebuddy:byte-buddy-dep:jar:1.15.3 6fb92a21fa28436bc794737fc01b45b16e1178b3f6aa1f1f3b93b197d3a6d0ac
+net.bytebuddy:byte-buddy-dep:jar:1.15.4 d20dea5ae80fed8ff173461c0d200fdfd4bd268a0dcd544753d3b74e7e7dfde6
+net.bytebuddy:byte-buddy-dep:jar:1.15.5 972e5b204703ec2b9748f4f0f545614869b5ab20e5e242523f9eeb5fa34a5a6f
net.bytebuddy:byte-buddy-maven-plugin:jar:1.12.19 3419e2afbfac4f21ef709ee3f8f08fc1d71001e07ba2524a0bb2a3c28f3e1087
net.bytebuddy:byte-buddy-maven-plugin:jar:1.12.20 48a36e2e8c2dbe2b3673ef8bf6be22b021cfca35d6205a3d5e722f74db42d52b
net.bytebuddy:byte-buddy-maven-plugin:jar:1.12.21 cb3332f89cc6502e3637dbe509c08c55cb5ad528c675131858dda89eabf7c9fc
@@ -736,6 +746,8 @@
net.bytebuddy:byte-buddy-maven-plugin:jar:1.15.1 9cb4a37d5bb17cd55ea52e9f660a87b7b9fdae56bfe886f9588b09929207f7e3
net.bytebuddy:byte-buddy-maven-plugin:jar:1.15.2 1cda61087db3b8159f77be5f74e04f816a24ea1d9cd54ba0b537c6573c6d118e
net.bytebuddy:byte-buddy-maven-plugin:jar:1.15.3 16610e701b07628b3ef47a9666748234217e53e6fb36c03b556ff8080558ce89
+net.bytebuddy:byte-buddy-maven-plugin:jar:1.15.4 2274f3e5fb88248cd237f4b3e43b53a8befd09e71cc4f0f3fcfad09bd7cbd83d
+net.bytebuddy:byte-buddy-maven-plugin:jar:1.15.5 9dc9c2afc60aa5b02a0f29dfb8d0e9172f1f3aecd43bdd767fd83d7be6d482a6
net.bytebuddy:byte-buddy-maven-plugin:pom:1.12.19 c2051f8cbdf328692f36077627be07168334ee9167b72e5bf608eae624163b4f
net.bytebuddy:byte-buddy-maven-plugin:pom:1.12.20 2d112ff342e7db7da484d038807749c1a87c81419b789a86b950a37bdd65b207
net.bytebuddy:byte-buddy-maven-plugin:pom:1.12.21 13576ca6b9c44ab9789ada11ee400dcd3f4bcc22a7cab6f7052aeeb49a8c02e1
@@ -763,6 +775,8 @@
net.bytebuddy:byte-buddy-maven-plugin:pom:1.15.1 d8f649ffa066009efc71e967a45cca915c6ffb1c4a4508b0718f4a51d4437197
net.bytebuddy:byte-buddy-maven-plugin:pom:1.15.2 11d71812ac7ea9f397967f984750d4484dd9c027a4a64f5730d840bb3542aa15
net.bytebuddy:byte-buddy-maven-plugin:pom:1.15.3 03e3efd289dad0b03dedfcb73d6fef643ff2eb883de698aa87a80fffcab8489c
+net.bytebuddy:byte-buddy-maven-plugin:pom:1.15.4 419d1b41d67718c954af8f3ba7d0dd6d52e8a7c8d4cd8a9a9ee73d3388a36ea2
+net.bytebuddy:byte-buddy-maven-plugin:pom:1.15.5 1686ef4a2465af5d7ac46880b0d65f0bf2c25912aac9621e506452344f4392b8
net.bytebuddy:byte-buddy-parent:pom:1.12.19 72ab6fef409e812921f4728b3c4b6ef4fa53bc25fabb0488fc2cae367368b54d
net.bytebuddy:byte-buddy-parent:pom:1.12.20 ac59dd7bc0316c51ab29e7c44ae7941ba8c7bf84789edb1dc8fbef2f16535b99
net.bytebuddy:byte-buddy-parent:pom:1.12.21 ff66d886607137e2095f20c90ee093f3c80329164eff091a0688bdce37e3e6b2
@@ -790,6 +804,8 @@
net.bytebuddy:byte-buddy-parent:pom:1.15.1 7bb21259d04796865f0d83dd3344fcffdd34c94515c00a6525a8996acb1c413f
net.bytebuddy:byte-buddy-parent:pom:1.15.2 3be68060e65990669555e02f4cf7826e10122462c14cb14c1b2db78447795bfd
net.bytebuddy:byte-buddy-parent:pom:1.15.3 6e2f8cb09d5f363ddf1f9a1f479ebae5ca82fd93f5434c9c61d765393d6252e9
+net.bytebuddy:byte-buddy-parent:pom:1.15.4 9702c2213e3fdb7087bfd334b6343cd05f44508a93eb8f94aa7da654ac1fb48f
+net.bytebuddy:byte-buddy-parent:pom:1.15.5 2a9971f032f3c726004a02695270a812378453e5395cf1b6ebb9082cd295e5c3
net.bytebuddy:byte-buddy:jar:1.12.19 030704139e46f32c38d27060edee9e0676b0a0fff8a8be53461515154ba8a7be
net.bytebuddy:byte-buddy:jar:1.12.20 0a9b2795e0e2391117062f0fc7f6ae98fa3c2a7c927847ff1e01bb7cffcd9167
net.bytebuddy:byte-buddy:jar:1.12.21 f6f45c2237a7f132c16745ad2a52c4cdde58028b11ee80b09f0d422f4930d685
@@ -817,6 +833,8 @@
net.bytebuddy:byte-buddy:jar:1.15.1 cc5f178f37ef83339b7ec93e8d0bed6b0730871cdb39c663527ddeae4a54a825
net.bytebuddy:byte-buddy:jar:1.15.2 c754a34c3bf9cc7efbe9c229a2ad185504f017b1c255100a4d3023b38e1e14d5
net.bytebuddy:byte-buddy:jar:1.15.3 50f3beedb2caa1f5cc6030eebe716cf409a476c03ec9bea08993cbbc4a32bf68
+net.bytebuddy:byte-buddy:jar:1.15.4 4a683d83ff219f20d44f35ca302d821e0c6842e3fa8f9f1ee913eb16f49cec6c
+net.bytebuddy:byte-buddy:jar:1.15.5 7fb8dbd0da63bb4a5b12c75f020f6a5324120a3991c2291be54f6a96cf419570
net.bytebuddy:byte-buddy:pom:1.12.19 435fb8664aa9b7e120c8dd6c707d4eafa642fa262dff6d5e3f71dc25c69e89eb
net.bytebuddy:byte-buddy:pom:1.12.20 46353d5c52659c40f0f54d05c757665552e492be36087c19307598d1bf07bbfb
net.bytebuddy:byte-buddy:pom:1.12.21 95eb42c89fd04f62187dd33b9cdf04d2df1b876b375c16ad32c0a5a1cc1a070b
@@ -844,6 +862,8 @@
net.bytebuddy:byte-buddy:pom:1.15.1 e358152bf7abff7b763a9670c79e798e14aed9a1b07f83476a909e3eaa222f21
net.bytebuddy:byte-buddy:pom:1.15.2 2d72568104ae6c61368aede1864519a2a233ecf0a7aee3c52eed2d046fc4fb2f
net.bytebuddy:byte-buddy:pom:1.15.3 b8a90d2dbb3d98d91344d69cf7b51e41b13c02151cada67cb6126ca3174054f5
+net.bytebuddy:byte-buddy:pom:1.15.4 2fbb9eb7ed5b70285bf04397be78dc2a851d0dc2e74865d81497c61a898e21bd
+net.bytebuddy:byte-buddy:pom:1.15.5 278642c7ac504a30be5f063ca94789fc1ec701a4c69ec7bc2ab2195bea556903
net.i2p.crypto:eddsa:jar:0.3.0 4dda1120db856640dbec04140ed23242215a075fe127bdefa0dcfa29fb31267d
net.i2p.crypto:eddsa:pom:0.3.0 b6b13878e4bae8b768d7ea5732cb4d66ab2f5e9fe707c0a1a776cde9de52051b
net.java.dev.jna:jna-platform:jar:5.12.1 8ce969116cac95bd61b07a8d5e07174b352e63301473caac72c395e3c08488d2
@@ -998,6 +1018,7 @@
org.apache.commons:commons-parent:pom:52 75dbe8f34e98e4c3ff42daae4a2f9eb4cbcd3b5f1047d54460ace906dbb4502e
org.apache.commons:commons-parent:pom:54 000d8187952b223702fde296df799563f35de82ce72adb4e7bf157342378fbe3
org.apache.commons:commons-parent:pom:58 2d4b12e18899063abd7c75278b5fa97a3729d80878ceecb6a40d946e9c0d5590
+org.apache.commons:commons-parent:pom:62 74cd62d68b09aad7fb9424ea88269ab76aba0d65088d9569ff273bd207427439
org.apache.commons:commons-parent:pom:64 6f19638994e8357b4ed734696f992057efaafa1235673998133299798e2ccddb
org.apache.commons:commons-parent:pom:65 6cf3495fc2e6ac913a2b7f2e03fb5908fb3f229fb06d3358dc45678d5af3e36e
org.apache.commons:commons-parent:pom:66 48fd6dc846e56b1f408660d163e75300f9e384bb63be482a8082a21d72a8db9c
@@ -1017,9 +1038,11 @@
org.apache.felix:maven-bundle-plugin:jar:2.5.4 52f230e7e2e4140f2e4f1c5938fedb63912a722bd21b4fbb266a9471a59cbedc
org.apache.felix:maven-bundle-plugin:jar:3.5.1 b30befd53e02ccf45c44b4e30b7d3f7e5a9ee48f2b2c1a624900dfb123ca2cd3
org.apache.felix:maven-bundle-plugin:jar:5.1.7 debeb427c6794948ada6c2e2582cd20bf9a9a14592b8e550b2bfff9cb090519d
+org.apache.felix:maven-bundle-plugin:jar:5.1.9 d5379a3b8dd9b898c2953a1efea780cb5dc06029399ac492bbca13d65aa28eaf
org.apache.felix:maven-bundle-plugin:pom:2.5.4 97635ddf3cdd839bf91c056b30c804619e15994fabee9ebc62a325486fa5d0c8
org.apache.felix:maven-bundle-plugin:pom:3.5.1 6eb2c0e09a1ee52fea479285ddb30ce31c1b760898a42e493634b57ea85af27e
org.apache.felix:maven-bundle-plugin:pom:5.1.7 43f317f35ebadd5bb3c4a2de2eb21988d407d8d80926a9ebae54998f608326f2
+org.apache.felix:maven-bundle-plugin:pom:5.1.9 5b85e06c7edaef3430c3dfd43e7ae165914a8a7b3cf94f61aa92b9a3f1307890
org.apache.felix:org.apache.felix.bundlerepository:jar:1.6.6 6759ca9b14032623096706be4cf8a85cc1345be4c3c08d95b745b9ad672c7599
org.apache.felix:org.apache.felix.bundlerepository:pom:1.6.6 c4a603649248eac9222f7be1a5950f4a3db41fe2d38647fddf6a8d3731b3af6e
org.apache.felix:org.apache.felix.utils:jar:1.6.0 03dc4ee75332284f4ba4b187c8c946c07f0c822b09e02f8821d85c8d8f46ccfa
@@ -1728,6 +1751,7 @@
org.apache.maven:maven-aether-provider:jar:3.0 1205a1f229999170dcadcfb885a278ad0bc2295540a251f4c438f887ead7bbd9
org.apache.maven:maven-aether-provider:jar:3.0.4 33ff4aabbd0d02e4dd8279cda8f366c69915302bc4bb97bc01814a985f5c0643
org.apache.maven:maven-aether-provider:jar:3.1.0 ec5edc09f3cc4d4e23c7f8a1105b520d63498f5a18bd00b8d3833aa38d3f136e
+org.apache.maven:maven-aether-provider:jar:3.1.1 db89b9a2738d42ee05ec2279c2114bfe4f7e33b3aae3a6ca9bfe4fe9196f9ad8
org.apache.maven:maven-aether-provider:jar:3.2.5 703944b922d5351aad53b842f7dd38439b7213425f13c6c7f034b8b699b7d578
org.apache.maven:maven-aether-provider:jar:3.3.9 f46962583d812cd4459a4cc963113b9c52f1f9b169172354693bc9efa0b3e3cb
org.apache.maven:maven-aether-provider:pom:3.0 755c07a1ae47cff80f633265b224341d6d8cc26f02d37eb407bc45ff5db9a71d
@@ -1763,6 +1787,7 @@
org.apache.maven:maven-artifact:jar:3.0 759079b9cf0cddae5ba06c96fd72347d82d0bc1d903c95d398c96522b139e470
org.apache.maven:maven-artifact:jar:3.0.4 3c199a96af9550872724f41c053d7839dfcc6512e7704fa16c675363c4146796
org.apache.maven:maven-artifact:jar:3.1.0 7f8a8ca4b2df5f81918fab2b9231a008f470d88ec54ddcbe38474bbf21b7571e
+org.apache.maven:maven-artifact:jar:3.1.1 d0d8b67c283c804e792001bd063b1dc62418f7cf8524dbae401ba3fffd55238b
org.apache.maven:maven-artifact:jar:3.2.5 270385907ecfbcb256fe5afb883869fd57a5c021b5242693743ef787605c6335
org.apache.maven:maven-artifact:jar:3.3.9 1f702928f2233c6ecdf308fbd8f2932ea287c7062183d3c8364b0db7e9c4445d
org.apache.maven:maven-artifact:jar:3.5.2 c636e3ee0531abda2e45ff956a1cdc93031b2ac4eacbe311fb3192b586d41e90
@@ -1807,6 +1832,7 @@
org.apache.maven:maven-core:jar:3.0 ba03294ee53e7ba31838e4950f280d033c7744c6c7b31253afc75aa351fbd989
org.apache.maven:maven-core:jar:3.0.4 3dd795c0ad9742a0be65a2a5ec22428d59dd2a891a7565ae94f64661e3740528
org.apache.maven:maven-core:jar:3.1.0 603cea35d0812036f68c48d02a20af674db2235ce9d251ecb96fe72df07be8fe
+org.apache.maven:maven-core:jar:3.1.1 40e7f78eecf682a4d395dab14049e7a948c58268aee97248d0a0a0332de668e9
org.apache.maven:maven-core:jar:3.2.5 4f1a0af8997e1daf778b91c5ae9e973f92df699439d909fdec7fc6055c09de12
org.apache.maven:maven-core:jar:3.3.9 070d55ec5a6f3e4a785564283a9704bb39a93f1a2f89cdf60a3b899fde563bf9
org.apache.maven:maven-core:pom:2.0.6 1ab7fdd1b82382690c081d3ea3f53bad2902e1d62a11a8096488711e7a5f607e
@@ -1828,6 +1854,7 @@
org.apache.maven:maven-model-builder:jar:3.0 1c98a4ec9eb0cb86ecf01710aa75c0346ee3f96edc6edeabcb21ed984120e154
org.apache.maven:maven-model-builder:jar:3.0.4 b4f1d3ae53c290e1ae45694c5ce2d17bf8d577ff5ece0f9aa0cffe151a6ef4e7
org.apache.maven:maven-model-builder:jar:3.1.0 45f437ef89851578e7d230c873b7aa766147e807100a044e7d17213f0a8ac2e5
+org.apache.maven:maven-model-builder:jar:3.1.1 a4edbd8a8c0a6724c25200f71df3407a0b400a4f15c4999d058ee6aaac04ec73
org.apache.maven:maven-model-builder:jar:3.2.5 cc5321269d080ad6694458f53186be5391a21c488ab3a7d6dd73123c7681879d
org.apache.maven:maven-model-builder:jar:3.3.9 6909cb229489e693df7960678528800a1759625835a1cb939c37b051c22193c3
org.apache.maven:maven-model-builder:pom:3.0 c1413ace47dafabe7917072f26e0b667f5b3a762156f82893544cd71e6a6c4ba
@@ -1844,6 +1871,7 @@
org.apache.maven:maven-model:jar:3.0 27e426d73f8662b47f60df0e43439b3dec2909c42b89175a6e4431dfed3edafd
org.apache.maven:maven-model:jar:3.0.4 26b6825ea73ac4d7b1a6f5e62ac1c11b0fc272504da6dde9ba8f894cd847e1c1
org.apache.maven:maven-model:jar:3.1.0 f9f7ad6301942d385fc79ed0615a7d5f06dbda60dee70b709e679624313e642a
+org.apache.maven:maven-model:jar:3.1.1 e71bad235af182c43dfcaa9b649032352cf859f9d09f79e1f537268384176de1
org.apache.maven:maven-model:jar:3.2.5 8d439cc1661349dab1c69eed0f831336d187e162cc6d68aa4deefcff57ee0624
org.apache.maven:maven-model:jar:3.3.9 15abde67fa7ea1e573e1f68c34921e995f0971351aaf1fb96790688ff510efcd
org.apache.maven:maven-model:jar:3.5.2 e2978746770e3356e8bcf04f7ee1c8cded1fcd94926ab71c6763810a99c1587e
@@ -1907,6 +1935,7 @@
org.apache.maven:maven-plugin-api:jar:3.0 f5ecc6eaa4a32ee0c115d31525f588f491b2cc75fdeb4ed3c0c662c12ac0c32f
org.apache.maven:maven-plugin-api:jar:3.0.4 4e5ee7f7ab7e43f691788489e59f2da4a322e3e35f2a2d8b714ad929f624eead
org.apache.maven:maven-plugin-api:jar:3.1.0 c6e743680d5ca55a39652f14777181fadf98b6cfef870c3985996f2a5cd0bf6d
+org.apache.maven:maven-plugin-api:jar:3.1.1 21955fd1f1f4527a9d6d2d23e3c1255333257db9f95ae6d47ddfe9aa90ed48bc
org.apache.maven:maven-plugin-api:jar:3.2.5 194a6f0ce889ed3b0d8a9bc4d3c79541e878098b7e303e4ac76c1031850772c3
org.apache.maven:maven-plugin-api:jar:3.3.9 14cae18fd7125901b12fc914e30ea26ad9bd43dbd399dd6e8fcbc6c754ef2c9c
org.apache.maven:maven-plugin-api:jar:3.5.2 3a569e42fbdec2de7dd4515e7334fbcef13ff030c5e63aafd6796e5b92337fcf
@@ -1965,6 +1994,7 @@
org.apache.maven:maven-repository-metadata:jar:3.0 c938e4d8cdf0674496749a87e6d3b29aa41b1b35a39898a1ade2bc9eae214c17
org.apache.maven:maven-repository-metadata:jar:3.0.4 a25c4db27cffda9e9229db168b1190d6a3e5439f3f67d6afec3df9470e0752d5
org.apache.maven:maven-repository-metadata:jar:3.1.0 1f98b8b101fea1167d3d5dfd6439757bd96f79e62388323af258fddc1e60382e
+org.apache.maven:maven-repository-metadata:jar:3.1.1 820e45f0fd150a02ea02a6fc246852e61c725fd69bdac8f6186bb00f19dc7640
org.apache.maven:maven-repository-metadata:jar:3.2.5 62b517b77f24edebdee0e382ecddb44bb6632b7c08c528d625aed7d2980df12b
org.apache.maven:maven-repository-metadata:jar:3.3.9 6dbcc3d3d1dfb34df46c1ddb080fdd09fb899c80207016419cf13236c6b10399
org.apache.maven:maven-repository-metadata:pom:2.0.2 4dd5ff83a2089613e828ee6c8bd6888d8732217392e2c442f6302df4a025e629
@@ -1988,6 +2018,7 @@
org.apache.maven:maven-settings-builder:jar:3.0 e17e706c6f03c453f6000599cab607c2af5f1cc6e3a3b1e6fce27e5ef4999eab
org.apache.maven:maven-settings-builder:jar:3.0.4 a38a54ec1e69a30ddfc14434e0aec2764fc268668abcc0e132d86692a5dce3e4
org.apache.maven:maven-settings-builder:jar:3.1.0 d73d0740f1ae3f903eaac1e9f69229068d8ffd60e6afe84e64cc6bad42de2ff2
+org.apache.maven:maven-settings-builder:jar:3.1.1 cdc8e2653971b0303dbbfce0c1d1b3a7591c128cd7d6fda9f18831f1a2bd5d0b
org.apache.maven:maven-settings-builder:jar:3.2.5 9c5a014ceb8abb55e997dcc41d17bbe0ae145db574be6b7186e75950c241269f
org.apache.maven:maven-settings-builder:jar:3.3.9 b4da54d52e2996a8a77c4db1ca8e98fc31792f07eeff695776f00ecffc3d5b60
org.apache.maven:maven-settings-builder:pom:3.0 1e707086b2efabe7527e75539f87e5b4544ed20e8b5ae8aa35bcc24d7ba3a2b0
@@ -2003,6 +2034,7 @@
org.apache.maven:maven-settings:jar:3.0 3b1a46b4bc26a0176acaf99312ff2f3a631faf3224b0996af546aa48bd73c647
org.apache.maven:maven-settings:jar:3.0.4 3e3df17f5df5e4ce1e7b7f2011c57d61d328e65678542ade2048f0d0fa295f09
org.apache.maven:maven-settings:jar:3.1.0 a44bb2a6c8571269a06ab8efba046fd319af34c4985deda66512dc1e648f301a
+org.apache.maven:maven-settings:jar:3.1.1 7fa1eb820cae20961a818650899b72cc79e76d560aa7aeef8b2259d3d639202f
org.apache.maven:maven-settings:jar:3.2.5 1874d4ee660b935675a60bdb2ef63e0ff5a81769f4fc04a035fa9d4c4e238224
org.apache.maven:maven-settings:jar:3.3.9 e4f569be53a076424e784222e7088f1827fcb2ef18d409132b3cda2fd92799e2
org.apache.maven:maven-settings:pom:2.0.4 9469dbe562fcf278a4a31d6050629790c1158bab3cd39b5ce8f6fb4ccdd13deb
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/byte-buddy-byte-buddy-1.15.4/.mvn/mvn-collect.sh new/byte-buddy-byte-buddy-1.15.7/.mvn/mvn-collect.sh
--- old/byte-buddy-byte-buddy-1.15.4/.mvn/mvn-collect.sh 2024-10-09 21:56:16.000000000 +0200
+++ new/byte-buddy-byte-buddy-1.15.7/.mvn/mvn-collect.sh 2024-10-23 09:27:02.000000000 +0200
@@ -1 +1 @@
-./mvnw clean jacoco:prepare-agent verify jacoco:report -Pextras -Pchecks -Panalysis -Pintegration -Pchecksum-collect -U
+./mvnw clean jacoco:prepare-agent verify jacoco:report -Pextras -Pchecks -Panalysis -Pintegration -Pmulti-release -Pchecksum-collect -U
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/byte-buddy-byte-buddy-1.15.4/README.md new/byte-buddy-byte-buddy-1.15.7/README.md
--- old/byte-buddy-byte-buddy-1.15.4/README.md 2024-10-09 21:56:16.000000000 +0200
+++ new/byte-buddy-byte-buddy-1.15.7/README.md 2024-10-23 09:27:02.000000000 +0200
@@ -292,6 +292,17 @@
Please note the [security policy](https://github.com/raphw/byte-buddy/blob/master/SECURITY.md) of this project.
+Byte Buddy supports execution on all JVM versions from version five and onwards in a single jar. This is done to ease
+the development of Java agents which often require to support older, or unknown, applications which are not actively
+updated. To allow for this while also supporting modern Java and features like CDS or class validation with stack
+map frames, the main jars for Byte Buddy ship as multi-release jars that contain class files in version five and eight.
+As a result, the jar size of Byte Buddy is higher as one would expect. Jar file size is not normally a problem, as
+the majority of Byte Buddy's classes will never be loaded. Yet, file size might be an issue when distributing Java
+agents. As agents already need to be bundled as a single jar, it is therefore recommended to remove either the basic
+Java five version, or the multi-release Java eight version of the contained class files, to reduce this issue. This
+is supported by most build plugins for this purpose, such as the
+[Maven Shade plugin](https://maven.apache.org/plugins/maven-shade-plugin/shade-mojo.html….
+
License and development
-----------------------
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/byte-buddy-byte-buddy-1.15.4/byte-buddy/pom.xml new/byte-buddy-byte-buddy-1.15.7/byte-buddy/pom.xml
--- old/byte-buddy-byte-buddy-1.15.4/byte-buddy/pom.xml 2024-10-09 21:56:16.000000000 +0200
+++ new/byte-buddy-byte-buddy-1.15.7/byte-buddy/pom.xml 2024-10-23 09:27:02.000000000 +0200
@@ -5,7 +5,7 @@
<parent>
<groupId>net.bytebuddy</groupId>
<artifactId>byte-buddy-parent</artifactId>
- <version>1.15.4</version>
+ <version>1.15.7</version>
</parent>
<artifactId>byte-buddy</artifactId>
@@ -411,6 +411,51 @@
</plugin>
</plugins>
</build>
+ </profile>
+ <profile>
+ <id>multi-release</id>
+ <activation>
+ <activeByDefault>false</activeByDefault>
+ </activation>
+ <build>
+ <plugins>
+ <plugin>
+ <groupId>codes.rafael.bytecodeupdate</groupId>
+ <artifactId>bytecode-update-maven-plugin</artifactId>
+ <version>${version.plugin.bytecode-update}</version>
+ <dependencies>
+ <dependency>
+ <groupId>org.ow2.asm</groupId>
+ <artifactId>asm-commons</artifactId>
+ <version>${version.asm}</version>
+ </dependency>
+ </dependencies>
+ <executions>
+ <execution>
+ <id>multi-release</id>
+ <goals>
+ <goal>update-bytecode</goal>
+ </goals>
+ <phase>prepare-package</phase>
+ <configuration>
+ <outputDirectory>${project.build.outputDirectory}/META-INF/versions/9</outputDirectory>
+ <oldPackage>${shade.source}</oldPackage>
+ <newPackage>${shade.target}</newPackage>
+ <artifacts>
+ <artifact>org\.ow2\.asm:.*</artifact>
+ </artifacts>
+ <includes>
+ <include>org/objectweb/asm/[a-zA-Z\.]+</include>
+ <include>org/objectweb/asm/signature/[a-zA-Z\.]+</include>
+ <include>org/objectweb/asm/commons/.*Remapper.*</include>
+ <include>org/objectweb/asm/commons/ModuleHashesAttribute.class</include>
+ </includes>
+ </configuration>
+ </execution>
+ </executions>
+ </plugin>
+ </plugins>
+ </build>
</profile>
</profiles>
</project>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/byte-buddy-byte-buddy-1.15.4/byte-buddy-agent/pom.xml new/byte-buddy-byte-buddy-1.15.7/byte-buddy-agent/pom.xml
--- old/byte-buddy-byte-buddy-1.15.4/byte-buddy-agent/pom.xml 2024-10-09 21:56:16.000000000 +0200
+++ new/byte-buddy-byte-buddy-1.15.7/byte-buddy-agent/pom.xml 2024-10-23 09:27:02.000000000 +0200
@@ -5,7 +5,7 @@
<parent>
<groupId>net.bytebuddy</groupId>
<artifactId>byte-buddy-parent</artifactId>
- <version>1.15.4</version>
+ <version>1.15.7</version>
</parent>
<artifactId>byte-buddy-agent</artifactId>
@@ -69,7 +69,7 @@
<dependency>
<groupId>net.bytebuddy</groupId>
<artifactId>byte-buddy</artifactId>
- <version>1.15.3</version>
+ <version>1.15.5</version>
<scope>test</scope>
</dependency>
</dependencies>
@@ -223,6 +223,34 @@
</configuration>
</execution>
</executions>
+ </plugin>
+ </plugins>
+ </build>
+ </profile>
+ <profile>
+ <id>multi-release</id>
+ <activation>
+ <activeByDefault>false</activeByDefault>
+ </activation>
+ <build>
+ <plugins>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-compiler-plugin</artifactId>
+ <version>${version.plugin.compiler}</version>
+ <executions>
+ <execution>
+ <id>multi-release</id>
+ <goals>
+ <goal>compile</goal>
+ </goals>
+ <phase>prepare-package</phase>
+ <configuration>
+ <outputDirectory>${project.build.outputDirectory}/META-INF/versions/9</outputDirectory>
+ <target>1.8</target>
+ </configuration>
+ </execution>
+ </executions>
</plugin>
</plugins>
</build>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/byte-buddy-byte-buddy-1.15.4/byte-buddy-android/pom.xml new/byte-buddy-byte-buddy-1.15.7/byte-buddy-android/pom.xml
--- old/byte-buddy-byte-buddy-1.15.4/byte-buddy-android/pom.xml 2024-10-09 21:56:16.000000000 +0200
+++ new/byte-buddy-byte-buddy-1.15.7/byte-buddy-android/pom.xml 2024-10-23 09:27:02.000000000 +0200
@@ -5,7 +5,7 @@
<parent>
<groupId>net.bytebuddy</groupId>
<artifactId>byte-buddy-parent</artifactId>
- <version>1.15.4</version>
+ <version>1.15.7</version>
</parent>
<artifactId>byte-buddy-android</artifactId>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/byte-buddy-byte-buddy-1.15.4/byte-buddy-android-test/pom.xml new/byte-buddy-byte-buddy-1.15.7/byte-buddy-android-test/pom.xml
--- old/byte-buddy-byte-buddy-1.15.4/byte-buddy-android-test/pom.xml 2024-10-09 21:56:16.000000000 +0200
+++ new/byte-buddy-byte-buddy-1.15.7/byte-buddy-android-test/pom.xml 2024-10-23 09:27:02.000000000 +0200
@@ -5,7 +5,7 @@
<parent>
<groupId>net.bytebuddy</groupId>
<artifactId>byte-buddy-parent</artifactId>
- <version>1.15.4</version>
+ <version>1.15.7</version>
</parent>
<artifactId>byte-buddy-android-test</artifactId>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/byte-buddy-byte-buddy-1.15.4/byte-buddy-benchmark/pom.xml new/byte-buddy-byte-buddy-1.15.7/byte-buddy-benchmark/pom.xml
--- old/byte-buddy-byte-buddy-1.15.4/byte-buddy-benchmark/pom.xml 2024-10-09 21:56:16.000000000 +0200
+++ new/byte-buddy-byte-buddy-1.15.7/byte-buddy-benchmark/pom.xml 2024-10-23 09:27:02.000000000 +0200
@@ -5,7 +5,7 @@
<parent>
<groupId>net.bytebuddy</groupId>
<artifactId>byte-buddy-parent</artifactId>
- <version>1.15.4</version>
+ <version>1.15.7</version>
</parent>
<artifactId>byte-buddy-benchmark</artifactId>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/byte-buddy-byte-buddy-1.15.4/byte-buddy-dep/pom.xml new/byte-buddy-byte-buddy-1.15.7/byte-buddy-dep/pom.xml
--- old/byte-buddy-byte-buddy-1.15.4/byte-buddy-dep/pom.xml 2024-10-09 21:56:16.000000000 +0200
+++ new/byte-buddy-byte-buddy-1.15.7/byte-buddy-dep/pom.xml 2024-10-23 09:27:02.000000000 +0200
@@ -5,7 +5,7 @@
<parent>
<groupId>net.bytebuddy</groupId>
<artifactId>byte-buddy-parent</artifactId>
- <version>1.15.4</version>
+ <version>1.15.7</version>
</parent>
<!--
@@ -127,7 +127,7 @@
<plugin>
<groupId>net.bytebuddy</groupId>
<artifactId>byte-buddy-maven-plugin</artifactId>
- <version>1.15.3</version>
+ <version>1.15.5</version>
<executions>
<execution>
<phase>compile</phase>
@@ -142,7 +142,7 @@
<transformation>
<groupId>net.bytebuddy</groupId>
<artifactId>byte-buddy</artifactId>
- <version>1.15.3</version>
+ <version>1.15.5</version>
<plugin>net.bytebuddy.build.HashCodeAndEqualsPlugin$WithNonNullableFields</plugin>
<arguments>
<argument>
@@ -154,13 +154,13 @@
<transformation>
<groupId>net.bytebuddy</groupId>
<artifactId>byte-buddy</artifactId>
- <version>1.15.3</version>
+ <version>1.15.5</version>
<plugin>net.bytebuddy.build.CachedReturnPlugin</plugin>
</transformation>
<transformation>
<groupId>net.bytebuddy</groupId>
<artifactId>byte-buddy</artifactId>
- <version>1.15.3</version>
+ <version>1.15.5</version>
<plugin>net.bytebuddy.build.AccessControllerPlugin</plugin>
<arguments>
<argument>
@@ -172,13 +172,13 @@
<transformation>
<groupId>net.bytebuddy</groupId>
<artifactId>byte-buddy</artifactId>
- <version>1.15.3</version>
+ <version>1.15.5</version>
<plugin>net.bytebuddy.build.DispatcherAnnotationPlugin</plugin>
</transformation>
<transformation>
<groupId>net.bytebuddy</groupId>
<artifactId>byte-buddy</artifactId>
- <version>1.15.3</version>
+ <version>1.15.5</version>
<plugin>net.bytebuddy.build.RepeatedAnnotationPlugin</plugin>
</transformation>
</transformations>
@@ -353,6 +353,34 @@
</configuration>
</execution>
</executions>
+ </plugin>
+ </plugins>
+ </build>
+ </profile>
+ <profile>
+ <id>multi-release</id>
+ <activation>
+ <activeByDefault>false</activeByDefault>
+ </activation>
+ <build>
+ <plugins>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-compiler-plugin</artifactId>
+ <version>${version.plugin.compiler}</version>
+ <executions>
+ <execution>
+ <id>multi-release</id>
+ <goals>
+ <goal>compile</goal>
+ </goals>
+ <phase>prepare-package</phase>
+ <configuration>
+ <outputDirectory>${project.build.outputDirectory}/META-INF/versions/9</outputDirectory>
+ <target>1.8</target>
+ </configuration>
+ </execution>
+ </executions>
</plugin>
</plugins>
</build>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/byte-buddy-byte-buddy-1.15.4/byte-buddy-dep/src/main/java/net/bytebuddy/implementation/auxiliary/TypeProxy.java new/byte-buddy-byte-buddy-1.15.7/byte-buddy-dep/src/main/java/net/bytebuddy/implementation/auxiliary/TypeProxy.java
--- old/byte-buddy-byte-buddy-1.15.4/byte-buddy-dep/src/main/java/net/bytebuddy/implementation/auxiliary/TypeProxy.java 2024-10-09 21:56:16.000000000 +0200
+++ new/byte-buddy-byte-buddy-1.15.7/byte-buddy-dep/src/main/java/net/bytebuddy/implementation/auxiliary/TypeProxy.java 2024-10-23 09:27:02.000000000 +0200
@@ -41,7 +41,6 @@
import org.objectweb.asm.Type;
import java.io.Serializable;
-import java.util.List;
import static net.bytebuddy.matcher.ElementMatchers.*;
@@ -396,14 +395,14 @@
private final TypeDescription proxiedType;
/**
- * The implementation target this type proxy is created for.
+ * The constructor to invoke to create the proxy.
*/
- private final Implementation.Target implementationTarget;
+ private final MethodDescription.InDefinedShape constructor;
/**
- * The parameter types of the constructor that should be called.
+ * The implementation target this type proxy is created for.
*/
- private final List<TypeDescription> constructorParameters;
+ private final Implementation.Target implementationTarget;
/**
* {@code true} if any finalizers should be ignored for the delegation.
@@ -419,19 +418,19 @@
* Creates a new stack operation for creating a type proxy by calling one of its constructors.
*
* @param proxiedType The type for the type proxy to subclass or implement.
+ * @param constructor The constructor to invoke to create the proxy.
* @param implementationTarget The implementation target this type proxy is created for.
- * @param constructorParameters The parameter types of the constructor that should be called.
* @param ignoreFinalizer {@code true} if any finalizers should be ignored for the delegation.
* @param serializableProxy Determines if the proxy should be serializable.
*/
public ForSuperMethodByConstructor(TypeDescription proxiedType,
+ MethodDescription.InDefinedShape constructor,
Implementation.Target implementationTarget,
- List<TypeDescription> constructorParameters,
boolean ignoreFinalizer,
boolean serializableProxy) {
this.proxiedType = proxiedType;
+ this.constructor = constructor;
this.implementationTarget = implementationTarget;
- this.constructorParameters = constructorParameters;
this.ignoreFinalizer = ignoreFinalizer;
this.serializableProxy = serializableProxy;
}
@@ -440,22 +439,23 @@
* {@inheritDoc}
*/
public Size apply(MethodVisitor methodVisitor, Implementation.Context implementationContext) {
- TypeDescription proxyType = implementationContext
- .register(new TypeProxy(proxiedType,
- implementationTarget,
- InvocationFactory.Default.SUPER_METHOD,
- ignoreFinalizer,
- serializableProxy));
- StackManipulation[] constructorValue = new StackManipulation[constructorParameters.size()];
+ TypeDescription proxyType = implementationContext.register(new TypeProxy(proxiedType,
+ implementationTarget,
+ InvocationFactory.Default.SUPER_METHOD,
+ ignoreFinalizer,
+ serializableProxy));
+ StackManipulation[] constructorValue = new StackManipulation[constructor.getParameters().size()];
int index = 0;
- for (TypeDescription parameterType : constructorParameters) {
+ for (TypeDescription parameterType : constructor.getParameters().asTypeList().asErasures()) {
constructorValue[index++] = DefaultValue.of(parameterType);
}
return new Compound(
TypeCreation.of(proxyType),
Duplication.SINGLE,
new Compound(constructorValue),
- MethodInvocation.invoke(proxyType.getDeclaredMethods().filter(isConstructor().and(takesArguments(constructorParameters))).getOnly()),
+ MethodInvocation.invoke(proxyType.getDeclaredMethods()
+ .filter(isConstructor().and(takesArguments(constructor.getParameters().asTypeList().asErasures())))
+ .getOnly()),
Duplication.SINGLE,
MethodVariableAccess.loadThis(),
FieldAccess.forField(proxyType.getDeclaredFields().filter((named(INSTANCE_FIELD))).getOnly()).write()
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/byte-buddy-byte-buddy-1.15.4/byte-buddy-dep/src/main/java/net/bytebuddy/implementation/bind/annotation/Super.java new/byte-buddy-byte-buddy-1.15.7/byte-buddy-dep/src/main/java/net/bytebuddy/implementation/bind/annotation/Super.java
--- old/byte-buddy-byte-buddy-1.15.4/byte-buddy-dep/src/main/java/net/bytebuddy/implementation/bind/annotation/Super.java 2024-10-09 21:56:16.000000000 +0200
+++ new/byte-buddy-byte-buddy-1.15.7/byte-buddy-dep/src/main/java/net/bytebuddy/implementation/bind/annotation/Super.java 2024-10-23 09:27:02.000000000 +0200
@@ -30,9 +30,11 @@
import net.bytebuddy.implementation.bytecode.assign.Assigner;
import java.lang.annotation.*;
+import java.lang.reflect.InvocationTargetException;
import java.util.Arrays;
+import java.util.List;
-import static net.bytebuddy.matcher.ElementMatchers.named;
+import static net.bytebuddy.matcher.ElementMatchers.*;
/**
* Parameters that are annotated with this annotation are assigned an instance of an auxiliary proxy type that allows calling
@@ -103,6 +105,16 @@
Class<?>[] constructorParameters() default {};
/**
+ * Specifies a class to resolve a constructor of the proxied type to use for instantiation if
+ * {@link Instantiation#CONSTRUCTOR} is used. Note that the specified class will be loaded and instantiated by
+ * Byte Buddy in order to resolve the constructor. For this, the specified class requires a public
+ * default constructor.
+ *
+ * @return The type of the {@link ConstructorResolver} to use.
+ */
+ Class<? extends ConstructorResolver> constructorResolver() default ConstructorResolver.Default.class;
+
+ /**
* Determines the type that is implemented by the proxy. When this value is set to its default value
* {@code void}, the proxy is created as an instance of the parameter's type. When it is set to
* {@link TargetType}, it is created as an instance of the generated class. Otherwise, the proxy type
@@ -113,6 +125,46 @@
Class<?> proxyType() default void.class;
/**
+ * A constructor resolver is responsible to specify the constructor to be used for creating a proxy.
+ */
+ interface ConstructorResolver {
+
+ /**
+ * Resolves the constructor to be used.
+ *
+ * @param proxiedType The type being proxied.
+ * @param constructorParameters The types being specified on the annotation.
+ * @return The constructor to invoke with default arguments for instantiation.
+ */
+ MethodDescription.InDefinedShape resolve(TypeDescription proxiedType, List<TypeDescription> constructorParameters);
+
+ /**
+ * A default constructor resolver that attempts to resolve a constructor with the given argument types.
+ */
+ class Default implements ConstructorResolver {
+
+ /**
+ * {@inheritDoc}
+ */
+ public MethodDescription.InDefinedShape resolve(TypeDescription proxiedType, List<TypeDescription> constructorParameters) {
+ if (proxiedType.isInterface()) {
+ return TypeDescription.ForLoadedType.of(Object.class).getDeclaredMethods()
+ .filter(isConstructor())
+ .getOnly();
+ }
+ MethodList<MethodDescription.InDefinedShape> candidates = proxiedType.getDeclaredMethods().filter(isConstructor()
+ .and(not(isPrivate()))
+ .and(takesArguments(constructorParameters)));
+ if (candidates.size() == 1) {
+ return candidates.getOnly();
+ } else {
+ throw new IllegalStateException("Did not discover exactly one constructor on " + proxiedType + " with parameters " + constructorParameters);
+ }
+ }
+ }
+ }
+
+ /**
* Determines the instantiation of the proxy type.
*
* @see net.bytebuddy.implementation.bind.annotation.Super
@@ -125,12 +177,32 @@
*/
CONSTRUCTOR {
@Override
- protected StackManipulation proxyFor(TypeDescription parameterType,
+ protected StackManipulation proxyFor(TypeDescription proxyType,
Implementation.Target implementationTarget,
AnnotationDescription.Loadable<Super> annotation) {
- return new TypeProxy.ForSuperMethodByConstructor(parameterType,
+ MethodDescription.InDefinedShape constructor;
+ try {
+ @SuppressWarnings("unchecked")
+ ConstructorResolver constructorResolver = (ConstructorResolver) annotation.getValue(CONSTRUCTOR_RESOLVER)
+ .load(ConstructorResolver.class.getClassLoader())
+ .resolve(Class.class)
+ .getConstructor()
+ .newInstance();
+ constructor = constructorResolver.resolve(
+ proxyType,
+ Arrays.asList(annotation.getValue(CONSTRUCTOR_PARAMETERS).resolve(TypeDescription[].class)));
+ } catch (NoSuchMethodException exception) {
+ throw new IllegalStateException("No default constructor specified by " + annotation.getValue(CONSTRUCTOR_RESOLVER)
+ .resolve(TypeDescription.class)
+ .getName(), exception);
+ } catch (InvocationTargetException exception) {
+ throw new IllegalStateException("Failed to resolve constructor specified by " + annotation, exception.getTargetException());
+ } catch (Exception exception) {
+ throw new IllegalStateException("Failed to resolve constructor specified by " + annotation, exception);
+ }
+ return new TypeProxy.ForSuperMethodByConstructor(proxyType,
+ constructor,
implementationTarget,
- Arrays.asList(annotation.getValue(CONSTRUCTOR_PARAMETERS).resolve(TypeDescription[].class)),
annotation.getValue(IGNORE_FINALIZER).resolve(Boolean.class),
annotation.getValue(SERIALIZABLE_PROXY).resolve(Boolean.class));
}
@@ -142,10 +214,10 @@
*/
UNSAFE {
@Override
- protected StackManipulation proxyFor(TypeDescription parameterType,
+ protected StackManipulation proxyFor(TypeDescription proxyType,
Implementation.Target implementationTarget,
AnnotationDescription.Loadable<Super> annotation) {
- return new TypeProxy.ForSuperMethodByReflectionFactory(parameterType,
+ return new TypeProxy.ForSuperMethodByReflectionFactory(proxyType,
implementationTarget,
annotation.getValue(IGNORE_FINALIZER).resolve(Boolean.class),
annotation.getValue(SERIALIZABLE_PROXY).resolve(Boolean.class));
@@ -167,6 +239,11 @@
*/
private static final MethodDescription.InDefinedShape CONSTRUCTOR_PARAMETERS;
+ /**
+ * A reference to the constructor parameters resolver method.
+ */
+ private static final MethodDescription.InDefinedShape CONSTRUCTOR_RESOLVER;
+
/*
* Extracts method references to the annotation methods.
*/
@@ -175,18 +252,19 @@
IGNORE_FINALIZER = annotationProperties.filter(named("ignoreFinalizer")).getOnly();
SERIALIZABLE_PROXY = annotationProperties.filter(named("serializableProxy")).getOnly();
CONSTRUCTOR_PARAMETERS = annotationProperties.filter(named("constructorParameters")).getOnly();
+ CONSTRUCTOR_RESOLVER = annotationProperties.filter(named("constructorResolver")).getOnly();
}
/**
* Creates a stack manipulation which loads a {@code super}-call proxy onto the stack.
*
- * @param parameterType The type of the parameter that was annotated with
+ * @param proxyType The type of the proxy that is bound to the parameter annotated by
* {@link net.bytebuddy.implementation.bind.annotation.Super}
* @param implementationTarget The implementation target for the currently created type.
* @param annotation The annotation that caused this method call.
* @return A stack manipulation representing this instance's instantiation strategy.
*/
- protected abstract StackManipulation proxyFor(TypeDescription parameterType,
+ protected abstract StackManipulation proxyFor(TypeDescription proxyType,
Implementation.Target implementationTarget,
AnnotationDescription.Loadable<Super> annotation);
}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/byte-buddy-byte-buddy-1.15.4/byte-buddy-dep/src/test/java/net/bytebuddy/implementation/EqualsMethodOtherTest.java new/byte-buddy-byte-buddy-1.15.7/byte-buddy-dep/src/test/java/net/bytebuddy/implementation/EqualsMethodOtherTest.java
--- old/byte-buddy-byte-buddy-1.15.4/byte-buddy-dep/src/test/java/net/bytebuddy/implementation/EqualsMethodOtherTest.java 2024-10-09 21:56:16.000000000 +0200
+++ new/byte-buddy-byte-buddy-1.15.7/byte-buddy-dep/src/test/java/net/bytebuddy/implementation/EqualsMethodOtherTest.java 2024-10-23 09:27:02.000000000 +0200
@@ -95,7 +95,6 @@
.defineField(FOO, Object.class, Visibility.PUBLIC)
.method(isEquals())
.intercept(EqualsMethod.isolated().withIdentityFields(named(FOO)))
- .visit(DebuggingWrapper.makeDefault(true))
.make()
.load(ClassLoadingStrategy.BOOTSTRAP_LOADER, ClassLoadingStrategy.Default.WRAPPER);
assertThat(loaded.getLoadedAuxiliaryTypes().size(), is(0));
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/byte-buddy-byte-buddy-1.15.4/byte-buddy-dep/src/test/java/net/bytebuddy/implementation/auxiliary/TypeProxyCreationTest.java new/byte-buddy-byte-buddy-1.15.7/byte-buddy-dep/src/test/java/net/bytebuddy/implementation/auxiliary/TypeProxyCreationTest.java
--- old/byte-buddy-byte-buddy-1.15.4/byte-buddy-dep/src/test/java/net/bytebuddy/implementation/auxiliary/TypeProxyCreationTest.java 2024-10-09 21:56:16.000000000 +0200
+++ new/byte-buddy-byte-buddy-1.15.7/byte-buddy-dep/src/test/java/net/bytebuddy/implementation/auxiliary/TypeProxyCreationTest.java 2024-10-23 09:27:02.000000000 +0200
@@ -222,8 +222,8 @@
.thenReturn(new StackManipulation.Size(0, 0));
when(methodAccessorFactory.registerAccessorFor(specialMethodInvocation, MethodAccessorFactory.AccessType.DEFAULT)).thenReturn(proxyMethod);
StackManipulation stackManipulation = new TypeProxy.ForSuperMethodByConstructor(foo,
+ new MethodDescription.ForLoadedConstructor(Foo.class.getConstructor(Void.class)),
implementationTarget,
- Collections.singletonList((TypeDescription) TypeDescription.ForLoadedType.of(Void.class)),
true,
false);
MethodVisitor methodVisitor = mock(MethodVisitor.class);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/byte-buddy-byte-buddy-1.15.4/byte-buddy-dep/src/test/java/net/bytebuddy/implementation/bind/annotation/SuperBinderTest.java new/byte-buddy-byte-buddy-1.15.7/byte-buddy-dep/src/test/java/net/bytebuddy/implementation/bind/annotation/SuperBinderTest.java
--- old/byte-buddy-byte-buddy-1.15.4/byte-buddy-dep/src/test/java/net/bytebuddy/implementation/bind/annotation/SuperBinderTest.java 2024-10-09 21:56:16.000000000 +0200
+++ new/byte-buddy-byte-buddy-1.15.7/byte-buddy-dep/src/test/java/net/bytebuddy/implementation/bind/annotation/SuperBinderTest.java 2024-10-23 09:27:02.000000000 +0200
@@ -1,5 +1,7 @@
package net.bytebuddy.implementation.bind.annotation;
+import net.bytebuddy.description.method.MethodDescription;
+import net.bytebuddy.description.method.MethodList;
import net.bytebuddy.description.type.TypeDescription;
import net.bytebuddy.implementation.bind.MethodDelegationBinder;
import net.bytebuddy.implementation.bytecode.assign.Assigner;
@@ -31,7 +33,10 @@
when(genericTargetType.asErasure()).thenReturn(targetType);
when(annotation.strategy()).thenReturn(Super.Instantiation.CONSTRUCTOR);
when(annotation.constructorParameters()).thenReturn(new Class<?>[0]);
+ doReturn(Super.ConstructorResolver.Default.class).when(annotation).constructorResolver();
when(targetType.asErasure()).thenReturn(targetType);
+ when(targetType.getDeclaredMethods()).thenReturn(new MethodList.Explicit<MethodDescription.InDefinedShape>(
+ new MethodDescription.ForLoadedConstructor(Object.class.getConstructor())));
}
protected TargetMethodAnnotationDrivenBinder.ParameterBinder<Super> getSimpleBinder() {
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/byte-buddy-byte-buddy-1.15.4/byte-buddy-gradle-plugin/pom.xml new/byte-buddy-byte-buddy-1.15.7/byte-buddy-gradle-plugin/pom.xml
--- old/byte-buddy-byte-buddy-1.15.4/byte-buddy-gradle-plugin/pom.xml 2024-10-09 21:56:16.000000000 +0200
+++ new/byte-buddy-byte-buddy-1.15.7/byte-buddy-gradle-plugin/pom.xml 2024-10-23 09:27:02.000000000 +0200
@@ -5,7 +5,7 @@
<parent>
<groupId>net.bytebuddy</groupId>
<artifactId>byte-buddy-parent</artifactId>
- <version>1.15.4</version>
+ <version>1.15.7</version>
</parent>
<artifactId>byte-buddy-gradle-plugin</artifactId>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/byte-buddy-byte-buddy-1.15.4/byte-buddy-maven-plugin/pom.xml new/byte-buddy-byte-buddy-1.15.7/byte-buddy-maven-plugin/pom.xml
--- old/byte-buddy-byte-buddy-1.15.4/byte-buddy-maven-plugin/pom.xml 2024-10-09 21:56:16.000000000 +0200
+++ new/byte-buddy-byte-buddy-1.15.7/byte-buddy-maven-plugin/pom.xml 2024-10-23 09:27:02.000000000 +0200
@@ -5,7 +5,7 @@
<parent>
<groupId>net.bytebuddy</groupId>
<artifactId>byte-buddy-parent</artifactId>
- <version>1.15.4</version>
+ <version>1.15.7</version>
</parent>
<artifactId>byte-buddy-maven-plugin</artifactId>
@@ -23,7 +23,7 @@
<version.slf4j>1.7.36</version.slf4j>
<version.maven.plexus-archiver>4.8.0</version.maven.plexus-archiver>
<version.maven.plexus-util>3.4.2</version.maven.plexus-util>
- <version.commons-io>2.11.0</version.commons-io>
+ <version.commons-io>2.14.0</version.commons-io>
<version.commons-compress>1.26.0</version.commons-compress>
<version.guava>32.1.2-jre</version.guava>
<japicmp.skip>true</japicmp.skip>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/byte-buddy-byte-buddy-1.15.4/pom.xml new/byte-buddy-byte-buddy-1.15.7/pom.xml
--- old/byte-buddy-byte-buddy-1.15.4/pom.xml 2024-10-09 21:56:16.000000000 +0200
+++ new/byte-buddy-byte-buddy-1.15.7/pom.xml 2024-10-23 09:27:02.000000000 +0200
@@ -4,7 +4,7 @@
<groupId>net.bytebuddy</groupId>
<artifactId>byte-buddy-parent</artifactId>
- <version>1.15.4</version>
+ <version>1.15.7</version>
<packaging>pom</packaging>
<inceptionYear>2014</inceptionYear>
@@ -61,7 +61,7 @@
<bytebuddy.integration>false</bytebuddy.integration>
<bytebuddy.experimental>false</bytebuddy.experimental>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
- <project.build.outputTimestamp>1728503677</project.build.outputTimestamp>
+ <project.build.outputTimestamp>1729668319</project.build.outputTimestamp>
<sourcecode.main.version>1.5</sourcecode.main.version>
<sourcecode.test.version>1.6</sourcecode.test.version>
<bytecode.main.version>1.5</bytecode.main.version>
@@ -73,7 +73,7 @@
<version.junit>4.13.2</version.junit>
<version.mockito>2.28.2</version.mockito>
<version.plugin.clean>3.2.0</version.plugin.clean>
- <version.plugin.bundle>5.1.7</version.plugin.bundle>
+ <version.plugin.bundle>5.1.9</version.plugin.bundle>
<version.plugin.compiler>3.10.1</version.plugin.compiler>
<version.plugin.install>3.0.1</version.plugin.install>
<version.plugin.deploy>3.0.0</version.plugin.deploy>
@@ -107,6 +107,7 @@
<version.plugin.license>3.0</version.plugin.license>
<version.plugin.japicmp>0.15.7</version.plugin.japicmp>
<version.plugin.antrun>3.1.0</version.plugin.antrun>
+ <version.plugin.bytecode-update>1.0</version.plugin.bytecode-update>
<version.checkstyle>9.3</version.checkstyle>
<version.android.sdk>4.1.1.4</version.android.sdk>
<version.utility.findbugs>3.0.1</version.utility.findbugs>
@@ -154,7 +155,7 @@
<connection>scm:git:${repository.url}</connection>
<developerConnection>scm:git:${repository.url}</developerConnection>
<url>${repository.url}</url>
- <tag>byte-buddy-1.15.4</tag>
+ <tag>byte-buddy-1.15.7</tag>
</scm>
<dependencies>
@@ -183,7 +184,7 @@
<version>${version.plugin.release}</version>
<configuration>
<useReleaseProfile>false</useReleaseProfile>
- <releaseProfiles>extras,gpg,gradle-release</releaseProfiles>
+ <releaseProfiles>extras,gpg,gradle-release,multi-release</releaseProfiles>
<autoVersionSubmodules>true</autoVersionSubmodules>
<tagNameFormat>byte-buddy-(a){project.version}</tagNameFormat>
</configuration>
@@ -570,7 +571,6 @@
<jdk>9</jdk>
</activation>
<properties>
- <project.build.outputTimestamp />
<sourcecode.main.version>1.6</sourcecode.main.version>
<sourcecode.test.version>1.6</sourcecode.test.version>
<bytecode.main.version>1.6</bytecode.main.version>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/byte-buddy-byte-buddy-1.15.4/release-notes.md new/byte-buddy-byte-buddy-1.15.7/release-notes.md
--- old/byte-buddy-byte-buddy-1.15.4/release-notes.md 2024-10-09 21:56:16.000000000 +0200
+++ new/byte-buddy-byte-buddy-1.15.7/release-notes.md 2024-10-23 09:27:02.000000000 +0200
@@ -1,6 +1,19 @@
Byte Buddy release notes
------------------------
+### 21. October 2024: version 1.15.6
+
+- Add ConstructorResolver to Super annotation for MethodDelegation to allow for dynamic constructor resolution.
+- Add Java 8 versions of shaded ASM to allow for faster class file validation and CDS support.
+
+### 17. October 2024: version 1.15.5
+
+- Publish Byte Buddy and Byte Buddy agent artifacts as multi-release jars to support CDS and faster validation.
+
+### 9. October 2024: version 1.15.4
+
+- Add non-experimental support for Java 24.
+
### 26. September 2024: version 1.15.3
- Treat multi-release class files that are newer than the supported version as regular resources.
1
0
Script 'mail_helper' called by obssrc
Hello community,
here is the log from the commit of package kst for openSUSE:Factory checked in at 2024-10-30 17:33:57
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/kst (Old)
and /work/SRC/openSUSE:Factory/.kst.new.2020 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "kst"
Wed Oct 30 17:33:57 2024 rev:54 rq:1219029 version:2.1.0
Changes:
--------
--- /work/SRC/openSUSE:Factory/kst/kst.changes 2023-01-06 21:07:35.407776953 +0100
+++ /work/SRC/openSUSE:Factory/.kst.new.2020/kst.changes 2024-10-30 17:34:23.428142088 +0100
@@ -1,0 +2,17 @@
+Mon Oct 28 15:20:57 UTC 2024 - Antonio Larrosa <alarrosa(a)suse.com>
+
+- Update to kst 2.1.0
+ This release includes all updates since 2.0.8 released in 2014:
+ * Too many bug fixes to list
+ * Many feature improvements
+ Some of the changes can be seen at:
+ https://invent.kde.org/graphics/kst-plot/-/compare/v2.0.8...v2.1-2024-10-20
+- Remove patches that are already included in 2.1.0:
+ * gsl2-support.patch
+ * Fix-build-with-Qt-511.patch
+ * 0001-Fix-build-with-CMake-3.20.patch
+- Add patch to fix a hdf5 include path that we install in
+ another directory:
+ * fix-hdf5-include-path.patch
+
+-------------------------------------------------------------------
Old:
----
0001-Fix-build-with-CMake-3.20.patch
Fix-build-with-Qt-511.patch
Kst-2.0.8.tar.gz
gsl2-support.patch
New:
----
_service
fix-hdf5-include-path.patch
kst-plot-2.1.0.obscpio
kst-plot.obsinfo
BETA DEBUG BEGIN:
Old: * Fix-build-with-Qt-511.patch
* 0001-Fix-build-with-CMake-3.20.patch
- Add patch to fix a hdf5 include path that we install in
Old: * gsl2-support.patch
* Fix-build-with-Qt-511.patch
* 0001-Fix-build-with-CMake-3.20.patch
Old:- Remove patches that are already included in 2.1.0:
* gsl2-support.patch
* Fix-build-with-Qt-511.patch
BETA DEBUG END:
BETA DEBUG BEGIN:
New: another directory:
* fix-hdf5-include-path.patch
BETA DEBUG END:
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ kst.spec ++++++
--- /var/tmp/diff_new_pack.Ji9mkU/_old 2024-10-30 17:34:24.664193862 +0100
+++ /var/tmp/diff_new_pack.Ji9mkU/_new 2024-10-30 17:34:24.664193862 +0100
@@ -1,7 +1,7 @@
#
# spec file for package kst
#
-# Copyright (c) 2023 SUSE LLC
+# Copyright (c) 2024 SUSE LLC
# Copyright (c) 2011 Christian Trippe ctrippe(a)opensuse.org
#
# All modifications and additions to the file contributed by third parties
@@ -18,33 +18,31 @@
Name: kst
-Version: 2.0.8
+Version: 2.1.0
Release: 0
Summary: Real-Time Data Viewing and Plotting Tool with Basic Data Analysis Functionality
License: GPL-2.0-or-later
-Group: Productivity/Graphics/Visualization/Graph
URL: https://kst-plot.kde.org/
-Source: Kst-%{version}.tar.gz
-# PATCH-FIX-UPSTREAM gsl2-support.patch -- fixes build with GSL-2.0
-Patch0: gsl2-support.patch
-# PATCH-FIX-UPSTREAM -- Fix-build-with-Qt-511.patch -- Fixes build with Qt 5.11
-Patch1: Fix-build-with-Qt-511.patch
-# PATCH-FIX-UPSTREAM
-Patch2: 0001-Fix-build-with-CMake-3.20.patch
+Source: kst-plot-%{version}.tar.zst
+# PATCH-FIX-OPENSUSE
+Patch0: fix-hdf5-include-path.patch
BuildRequires: Mesa-devel
BuildRequires: cmake
BuildRequires: fdupes
BuildRequires: gsl-devel
+BuildRequires: hdf5-devel
BuildRequires: libmatio-devel
BuildRequires: libnetcdf_c++-devel
BuildRequires: libqt5-linguist
BuildRequires: netcdf-devel
+BuildRequires: pkgconfig
BuildRequires: readline-devel
BuildRequires: update-desktop-files
BuildRequires: cmake(Qt5Concurrent)
BuildRequires: cmake(Qt5Core)
BuildRequires: cmake(Qt5Network)
BuildRequires: cmake(Qt5PrintSupport)
+BuildRequires: cmake(Qt5Svg)
BuildRequires: cmake(Qt5Widgets)
BuildRequires: cmake(Qt5Xml)
BuildRequires: pkgconfig(cfitsio)
@@ -65,9 +63,8 @@
- Powerful graphical user interface
%package devel
-Summary: Development files for %{name}
-Group: Development/Libraries/KDE
-Requires: %{name} = %{version}
+Summary: Development files for kst
+Requires: kst = %{version}
Requires: cmake(Qt5Concurrent)
Requires: cmake(Qt5Core)
Requires: cmake(Qt5Network)
@@ -77,10 +74,10 @@
%description devel
Development libraries and headers needed to build software
-making use of %{name}
+making use of kst
%prep
-%autosetup -p1 -n Kst-2.0.8
+%autosetup -p1 -n kst-plot-%{version}
%build
%global _lto_cflags %{_lto_cflags} -ffat-lto-objects
@@ -97,11 +94,10 @@
%install
%cmake_install
-%suse_update_desktop_file -r %{name}2 Qt KDE Science Math
+%suse_update_desktop_file -r kst2 Qt KDE Science Math
%fdupes %{buildroot}
-%post -p /sbin/ldconfig
-%postun -p /sbin/ldconfig
+%ldconfig_scriptlets
%files
%license COPYING*
@@ -109,20 +105,17 @@
%dir %{_datadir}/icons/hicolor
%dir %{_datadir}/icons/hicolor/*
%dir %{_datadir}/icons/hicolor/*/apps
-%dir %{_datadir}/kst
-%dir %{_datadir}/kst/locale
-%{_bindir}/%{name}2
-%{_datadir}/applications/%{name}2.desktop
-%{_datadir}/applnk/
-%{_datadir}/icons/hicolor/*/apps/*%{name}.*
-%{_datadir}/kst/locale/kst_common_*.qm
-%{_datadir}/mimelink/
-%{_libdir}/%{name}2/
-%{_libdir}/lib%{name}*.so.*
-%{_mandir}/man1/%{name}2.1%{?ext_man}
+%dir %{_datadir}/icons/hicolor/*/mimetypes
+%{_bindir}/kst2
+%{_datadir}/applications/kst2.desktop
+%{_datadir}/icons/hicolor/*/*/*kst.*
+%{_libdir}/kst2/
+%{_libdir}/libkst*.so.*
+%{_mandir}/man1/kst2.1%{?ext_man}
+%{_datadir}/mime/packages/x-kst.xml
%files devel
%license COPYING*
%{_libdir}/*.so
-%{_libdir}/lib%{name}2app.a
+%{_libdir}/libkst2app.a
++++++ _service ++++++
<?xml version="1.0"?>
<services>
<service name="obs_scm" mode="manual">
<param name="scm">git</param>
<param name="url">https://invent.kde.org/graphics/kst-plot.git</param>
<param name="revision">v2.1-2024-10-20</param>
<param name="versionformat">2.1.0</param>
</service>
<service name="tar" mode="buildtime"/>
<service name="recompress" mode="buildtime">
<param name="file">*.tar</param>
<param name="compression">zst</param>
</service>
<service name="set_version" mode="manual" />
</services>
++++++ fix-hdf5-include-path.patch ++++++
Subject: Fix a header path
From: Antonio Larrosa <alarrosa(a)suse.com>
We install H5Cpp.h in /usr/include so we need to fix the include line.
Index: kst-plot/src/datasources/hdf5/hdf5.h
===================================================================
--- kst-plot.orig/src/datasources/hdf5/hdf5.h
+++ kst-plot/src/datasources/hdf5/hdf5.h
@@ -18,7 +18,7 @@
#include <dataplugin.h>
#include <QFileInfo>
-#include <hdf5/serial/H5Cpp.h>
+#include <H5Cpp.h>
#include <exception>
#include "debug.h"
++++++ kst-plot.obsinfo ++++++
name: kst-plot
version: 2.1.0
mtime: 1729390534
commit: 07d15fac34c718b9433bd9480b78079031032e4e
1
0
Script 'mail_helper' called by obssrc
Hello community,
here is the log from the commit of package neofetch for openSUSE:Factory checked in at 2024-10-30 17:33:56
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/neofetch (Old)
and /work/SRC/openSUSE:Factory/.neofetch.new.2020 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "neofetch"
Wed Oct 30 17:33:56 2024 rev:8 rq:1219026 version:7.1.0
Changes:
--------
--- /work/SRC/openSUSE:Factory/neofetch/neofetch.changes 2024-05-08 11:41:44.041138664 +0200
+++ /work/SRC/openSUSE:Factory/.neofetch.new.2020/neofetch.changes 2024-10-30 17:34:19.455975708 +0100
@@ -1,0 +2,9 @@
+Tue Oct 29 12:39:54 UTC 2024 - Lubos Kocman <lubos.kocman(a)suse.com>
+
+- Update release to 7.1.0-1
+ * Start using gh#openSUSE/neofetch fork
+ * Refresh Leap and TW distro logos
+ * Drop 2342.patch and fix-shebang.patch as they're already
+ included in our fork.
+
+-------------------------------------------------------------------
Old:
----
2342.patch
fix-shebang.patch
BETA DEBUG BEGIN:
Old: * Refresh Leap and TW distro logos
* Drop 2342.patch and fix-shebang.patch as they're already
included in our fork.
Old: * Refresh Leap and TW distro logos
* Drop 2342.patch and fix-shebang.patch as they're already
included in our fork.
BETA DEBUG END:
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ neofetch.spec ++++++
--- /var/tmp/diff_new_pack.kqfQdW/_old 2024-10-30 17:34:21.256051107 +0100
+++ /var/tmp/diff_new_pack.kqfQdW/_new 2024-10-30 17:34:21.268051609 +0100
@@ -1,7 +1,7 @@
#
# spec file for package neofetch
#
-# Copyright (c) 2023 SUSE LLC
+# Copyright (c) 2024 SUSE LLC
# Copyright (c) 2017-2023 Malcolm J Lewis <malcolmlewis(a)opensuse.org>
#
# All modifications and additions to the file contributed by third parties
@@ -23,12 +23,8 @@
Summary: CLI system information tool written in BASH
License: MIT
Group: Productivity/Text/Utilities
-URL: https://github.com/dylanaraps/neofetch
-Source0: https://github.com/dylanaraps/%{name}/archive/%{version}.tar.gz
-# PATCH-FIX-SUSE Fix E: env-script-interpreter
-Patch0: fix-shebang.patch
-# PATCH-FIX-UPSTREAM -- bmwiedemann - Smoothen Tumbleweed Logo
-Patch1: https://github.com/dylanaraps/neofetch/pull/2342.patch
+URL: https://github.com/openSUSE/neofetch
+Source0: https://github.com/openSUSE/%{name}/archive/%{version}.tar.gz
Recommends: maim
Recommends: w3m-inline-image
BuildArch: noarch
++++++ 7.1.0.tar.gz ++++++
++++ 3430 lines of diff (skipped)
1
0
Script 'mail_helper' called by obssrc
Hello community,
here is the log from the commit of package speech-dispatcher for openSUSE:Factory checked in at 2024-10-30 17:33:43
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/speech-dispatcher (Old)
and /work/SRC/openSUSE:Factory/.speech-dispatcher.new.2020 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "speech-dispatcher"
Wed Oct 30 17:33:43 2024 rev:49 rq:1219167 version:0.12.0~rc4
Changes:
--------
--- /work/SRC/openSUSE:Factory/speech-dispatcher/speech-dispatcher.changes 2024-07-08 19:06:42.635339626 +0200
+++ /work/SRC/openSUSE:Factory/.speech-dispatcher.new.2020/speech-dispatcher.changes 2024-10-30 17:33:52.574849749 +0100
@@ -1,0 +2,21 @@
+Tue Oct 29 18:29:19 UTC 2024 - Michael Gorse <mgorse(a)suse.com>
+
+- Update to version 0.12.0~rc4:
+ * audio: Fix logging from audio modules in server-side audio.
+ * Sort Baratinoo engine higher.
+ * espeak-ng-mbrola: Fix mbrola voices with rate different from
+ 22KHz
+ * Add a run-spd-say script and make run-speechd and run-spd-say
+ able to talk directly.
+ * Add initial pipewire support.
+- Drop speech-dispatcher-missing-return-vals.patch and
+ speech-dispatcher-pulseaudio-samples.patch: fixed upstream.
+- Add libpipewire-0.3 to BuildRequires to build Pipewire support.
+- Package speechd_module library.
+
+-------------------------------------------------------------------
+Wed Oct 16 07:25:09 UTC 2024 - Dominique Leuenberger <dimstar(a)opensuse.org>
+
+- Drop rcFOO symlinks (PED-266).
+
+-------------------------------------------------------------------
Old:
----
speech-dispatcher-0.12.0-rc3.tar.gz
speech-dispatcher-missing-return-vals.patch
speech-dispatcher-pulseaudio-samples.patch
New:
----
speech-dispatcher-0.12.0-rc4.tar.gz
BETA DEBUG BEGIN:
Old: * Add initial pipewire support.
- Drop speech-dispatcher-missing-return-vals.patch and
speech-dispatcher-pulseaudio-samples.patch: fixed upstream.
Old:- Drop speech-dispatcher-missing-return-vals.patch and
speech-dispatcher-pulseaudio-samples.patch: fixed upstream.
- Add libpipewire-0.3 to BuildRequires to build Pipewire support.
BETA DEBUG END:
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ speech-dispatcher.spec ++++++
--- /var/tmp/diff_new_pack.Yn6XrP/_old 2024-10-30 17:33:54.518931180 +0100
+++ /var/tmp/diff_new_pack.Yn6XrP/_new 2024-10-30 17:33:54.534931850 +0100
@@ -47,7 +47,7 @@
%else
Name: speech-dispatcher-%{_python}
%endif
-Version: 0.12.0~rc3
+Version: 0.12.0~rc4
Release: 0
# FIXME missing backends: festival lite, ibmeci (ibm tts), dumbtts/ivona, nas
# The API and bindings are LGPL-2.1-or-later, other parts are
@@ -56,12 +56,8 @@
License: GPL-2.0-or-later AND LGPL-2.1-or-later
Group: System/Daemons
URL: https://devel.freebsoft.org/speechd
-Source0: https://github.com/brailcom/speechd/releases/download/0.12.0-rc3/speech-dis…
+Source0: https://github.com/brailcom/speechd/releases/download/0.12.0-rc4/speech-dis…
Patch0: harden_speech-dispatcherd.service.patch
-# PATCH-FIX-UPSTREAM speech-dispatcher-missing-return-vals.patch
-Patch1: speech-dispatcher-missing-return-vals.patch
-# PATCH-FIX-OPENSUSE speech-dispatcher-pulseaudio-samples.patch
-Patch2: speech-dispatcher-pulseaudio-samples.patch
# Logrotate file taken from Debian
Source2: speech-dispatcher.logrotate
Source99: baselibs.conf
@@ -78,6 +74,7 @@
BuildRequires: libtool
BuildRequires: makeinfo
BuildRequires: systemd-rpm-macros
+BuildRequires: pkgconfig(libpipewire-0.3)
BuildRequires: pkgconfig(libsystemd)
BuildRequires: pkgconfig(systemd)
# FIXME: use proper Requires(pre/post/preun/...)
@@ -159,6 +156,22 @@
devices directly nor to handle concurrent access, sound output and other
tricky aspects of the speech subsystem.
+%package -n libspeechd_module0
+Summary: Library for creating speech-dispatcher modules
+License: LGPL-2.1-or-later
+Group: System/Libraries
+Recommends: %{name}
+
+%description -n libspeechd_module0
+The goal of Speech Dispatcher project is to provide a high-level device
+independent layer for speech synthesis through a simple, stable and
+well documented interface.
+
+What is a very high level GUI library to graphics, Speech Dispatcher is
+to speech synthesis. The application neither needs to talk to the
+devices directly nor to handle concurrent access, sound output and other
+tricky aspects of the speech subsystem.
+
%package -n libspeechd-devel
Summary: Device independent layer for speech synthesis - Development files
License: LGPL-2.1-or-later
@@ -199,7 +212,7 @@
tricky aspects of the speech subsystem.
%prep
-%autosetup -p1 -n speech-dispatcher-0.12.0-rc3
+%autosetup -p1 -n speech-dispatcher-0.12.0-rc4
# dummy module must almost never be disabled
sed -i "s/#AddModule \"dummy\"/AddModule \"dummy\"/" -i config/speechd.conf
# you must enable at least one module (except dummy), otherwise it will load
@@ -234,8 +247,6 @@
%make_install
find %{buildroot} -type f -name "*.la" -delete -print
%if "%{flavor}" == ""
-mkdir -p %{buildroot}%{_sbindir}
-ln -s %{_sbindir}/service %{buildroot}%{_sbindir}/rcspeech-dispatcherd
# Create log dir. 0700 since the logs can contain user information.
install -d -m 0700 %{buildroot}%{_localstatedir}/log/speech-dispatcher/
# Install logrotate script
@@ -338,7 +349,6 @@
%{_unitdir}/speech-dispatcherd.service
%{_userunitdir}/speech-dispatcher.service
%{_userunitdir}/speech-dispatcher.socket
-%{_sbindir}/rcspeech-dispatcherd
%{_datadir}/speech-dispatcher/
%files configure
@@ -353,6 +363,9 @@
%files -n libspeechd2
%{_libdir}/libspeechd.so.*
+%files -n libspeechd_module0
+%{_libdir}/libspeechd_module.so.*
+
%files -n libspeechd-devel
%{_includedir}/%{name}/
%{_libdir}/*.so
++++++ speech-dispatcher-0.12.0-rc3.tar.gz -> speech-dispatcher-0.12.0-rc4.tar.gz ++++++
/work/SRC/openSUSE:Factory/speech-dispatcher/speech-dispatcher-0.12.0-rc3.tar.gz /work/SRC/openSUSE:Factory/.speech-dispatcher.new.2020/speech-dispatcher-0.12.0-rc4.tar.gz differ: char 13, line 1
1
0
Script 'mail_helper' called by obssrc
Hello community,
here is the log from the commit of package apache-commons-logging for openSUSE:Factory checked in at 2024-10-30 17:33:33
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/apache-commons-logging (Old)
and /work/SRC/openSUSE:Factory/.apache-commons-logging.new.2020 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "apache-commons-logging"
Wed Oct 30 17:33:33 2024 rev:27 rq:1219037 version:1.3.4
Changes:
--------
--- /work/SRC/openSUSE:Factory/apache-commons-logging/apache-commons-logging.changes 2024-08-14 14:14:01.930485459 +0200
+++ /work/SRC/openSUSE:Factory/.apache-commons-logging.new.2020/apache-commons-logging.changes 2024-10-30 17:33:41.686393669 +0100
@@ -1,0 +2,8 @@
+Tue Oct 29 13:57:40 UTC 2024 - Fridrich Strba <fstrba(a)suse.com>
+
+- Upgrade to 1.3.4
+ * Bug fix:
+ + LOGGING-192: Fix factory loading from context class
+ loader #280, #281.
+
+-------------------------------------------------------------------
Old:
----
commons-logging-1.3.3-src.tar.gz
commons-logging-1.3.3-src.tar.gz.asc
commons-logging-api-1.1.pom
New:
----
commons-logging-1.3.4-src.tar.gz
commons-logging-1.3.4-src.tar.gz.asc
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ apache-commons-logging.spec ++++++
--- /var/tmp/diff_new_pack.9phDhV/_old 2024-10-30 17:33:42.958446951 +0100
+++ /var/tmp/diff_new_pack.9phDhV/_new 2024-10-30 17:33:42.962447119 +0100
@@ -20,15 +20,14 @@
%define base_name logging
%define short_name commons-%{base_name}
Name: apache-%{short_name}
-Version: 1.3.3
+Version: 1.3.4
Release: 0
Summary: Apache Commons Logging
License: Apache-2.0
URL: https://commons.apache.org/%{base_name}
Source0: https://archive.apache.org/dist/commons/%{base_name}/source/%{short_name}-%…
Source1: https://archive.apache.org/dist/commons/%{base_name}/source/%{short_name}-%…
-Source2: apache-commons-logging.keyring
-Source4: http://central.maven.org/maven2/%{short_name}/%{short_name}-api/1.1/%{short…
+Source2: %{name}.keyring
Source5: build.xml
Source6: build.properties
Patch0: commons-logging-1.3.3-dependencies.patch
@@ -92,14 +91,10 @@
# pom
install -d -m 755 %{buildroot}%{_mavenpomdir}
-%mvn_install_pom pom.xml %{buildroot}/%{_mavenpomdir}/%{short_name}-%{version}.pom
-sed 's#<version>1.1</version>#<version>1.2</version>#g' < %{SOURCE4} > tmp.pom
-%mvn_install_pom tmp.pom %{buildroot}/%{_mavenpomdir}/%{short_name}-api-%{version}.pom
-sed -e 's#<version>1.1</version>#<version>1.2</version>#g' -e "s#%{short_name}-api#%{short_name}-adapters#g" < %{SOURCE4} > tmp.pom
-%mvn_install_pom tmp.pom %{buildroot}/%{_mavenpomdir}/%{short_name}-adapters-%{version}.pom
-%add_maven_depmap %{short_name}-%{version}.pom %{short_name}.jar -a "org.apache.commons:%{short_name}","apache:%{short_name}"
-%add_maven_depmap %{short_name}-api-%{version}.pom %{short_name}-api.jar -a "org.apache.commons:%{short_name}-api","apache:%{short_name}-api"
-%add_maven_depmap %{short_name}-adapters-%{version}.pom %{short_name}-adapters.jar -a "org.apache.commons:%{short_name}-adapters","apache:%{short_name}-adapters"
+%{mvn_install_pom} pom.xml %{buildroot}/%{_mavenpomdir}/%{short_name}.pom
+%add_maven_depmap %{short_name}.pom %{short_name}.jar -a "org.apache.commons:%{short_name}","apache:%{short_name}"
+%add_maven_depmap %{short_name}:%{short_name}::api:%{version} %{short_name}-api.jar -a "%{short_name}:%{short_name}-api","org.apache.commons:%{short_name}-api","apache:%{short_name}-api"
+%add_maven_depmap %{short_name}:%{short_name}::adapters:%{version} %{short_name}-adapters.jar -a "%{short_name}:%{short_name}-adapters","org.apache.commons:%{short_name}-adapters","apache:%{short_name}-adapters"
%files -f .mfiles
%{_javadir}/%{name}*.jar
++++++ build.xml ++++++
--- /var/tmp/diff_new_pack.9phDhV/_old 2024-10-30 17:33:43.030449967 +0100
+++ /var/tmp/diff_new_pack.9phDhV/_new 2024-10-30 17:33:43.038450302 +0100
@@ -94,7 +94,7 @@
<property name="component.title" value="Logging Wrapper Library"/>
<!-- The current version number of this component -->
- <property name="component.version" value="1.3.3"/>
+ <property name="component.version" value="1.3.4"/>
<!-- The base directory for compilation targets -->
<property name="build.home" value="${basedir}/target"/>
++++++ commons-logging-1.3.3-src.tar.gz -> commons-logging-1.3.4-src.tar.gz ++++++
++++ 3238 lines of diff (skipped)
1
0
Script 'mail_helper' called by obssrc
Hello community,
here is the log from the commit of package python-handy-archives for openSUSE:Factory checked in at 2024-10-30 17:33:26
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/python-handy-archives (Old)
and /work/SRC/openSUSE:Factory/.python-handy-archives.new.2020 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "python-handy-archives"
Wed Oct 30 17:33:26 2024 rev:3 rq:1219347 version:0.2.0
Changes:
--------
--- /work/SRC/openSUSE:Factory/python-handy-archives/python-handy-archives.changes 2024-08-13 13:23:05.977885437 +0200
+++ /work/SRC/openSUSE:Factory/.python-handy-archives.new.2020/python-handy-archives.changes 2024-10-30 17:33:37.230207015 +0100
@@ -1,0 +2,5 @@
+Wed Oct 30 08:27:37 UTC 2024 - Dirk Müller <dmueller(a)suse.com>
+
+- add py313-tests-update.patch, py313-mode-repr.patch
+
+-------------------------------------------------------------------
New:
----
py313-mode-repr.patch
py313-tests-update.patch
BETA DEBUG BEGIN:
New:
- add py313-tests-update.patch, py313-mode-repr.patch
New:
- add py313-tests-update.patch, py313-mode-repr.patch
BETA DEBUG END:
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ python-handy-archives.spec ++++++
--- /var/tmp/diff_new_pack.FeNGo5/_old 2024-10-30 17:33:37.826231980 +0100
+++ /var/tmp/diff_new_pack.FeNGo5/_new 2024-10-30 17:33:37.826231980 +0100
@@ -35,6 +35,8 @@
Patch0: ignore-tarfile-deprecation-warning.patch
# PATCH-FIX-UPSTREAM: 0001-Use-reason-instead-of-msg-for-pytest.skip.patch gh#domdfcoding/handy-archives#35
Patch1: 0001-Use-reason-instead-of-msg-for-pytest.skip.patch
+Patch2: https://github.com/domdfcoding/handy-archives/commit/18b4319972210d7b4512bb…
+Patch3: https://github.com/domdfcoding/handy-archives/commit/85526bff5b6b46aa77dd36…
BuildRequires: %{python_module flit-core >= 3.2}
BuildRequires: %{python_module pip}
%if %{with test}
++++++ py313-mode-repr.patch ++++++
From 85526bff5b6b46aa77dd361ba031291fcb21b195 Mon Sep 17 00:00:00 2001
From: Dominic Davis-Foster <dominic(a)davis-foster.co.uk>
Date: Fri, 21 Jun 2024 11:03:42 +0100
Subject: [PATCH] Skip check for mode in repr on Python 3.13
---
tests/test_zipfile.py | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/tests/test_zipfile.py b/tests/test_zipfile.py
index f2e528f..a54ca21 100644
--- a/tests/test_zipfile.py
+++ b/tests/test_zipfile.py
@@ -458,7 +458,8 @@ def test_repr(self, tmp_pathplus: PathPlus, testfn: PathPlus):
with zipfp.open(fname) as zipopen:
r = repr(zipopen)
assert f"name={fname!r}" in r
- assert "mode='r'" in r
+ if sys.version_info < (3, 13):
+ assert "mode='r'" in r
if self.compression != zipfile.ZIP_STORED:
assert "compress_type=" in r
assert "[closed]" in repr(zipopen)
++++++ py313-tests-update.patch ++++++
From 18b4319972210d7b4512bb3431c2746708ff8be5 Mon Sep 17 00:00:00 2001
From: Dominic Davis-Foster <dominic(a)davis-foster.co.uk>
Date: Tue, 26 Mar 2024 15:41:01 +0000
Subject: [PATCH] Update tests for Python 3.13
---
tests/test_tarfile.py | 47 ++++++++++++++++++++++++++++++++++---------
tests/test_zipfile.py | 6 ++++--
2 files changed, 41 insertions(+), 12 deletions(-)
diff --git a/tests/test_tarfile.py b/tests/test_tarfile.py
index e4d3214..910d3a7 100644
--- a/tests/test_tarfile.py
+++ b/tests/test_tarfile.py
@@ -55,7 +55,8 @@ def sha256sum(data):
return sha256(data).hexdigest()
-tarname = findfile("testtar.tar")
+findfile_subdir = "archivetestdata" if sys.version_info >= (3, 13) else None
+tarname = findfile("testtar.tar", subdir=findfile_subdir)
sha256_regtype = ("e09e4bc8b3c9d9177e77256353b36c159f5f040531bbd4b024a8f9b9196c71ce")
sha256_sparse = ("4f05a776071146756345ceee937b33fc5644f5a96b9780d1c7d6a32cdf164d7b")
@@ -319,18 +320,44 @@ def test_list_verbose(self):
# accessories if verbose flag is being used
# ...
# ?rw-r--r-- tarfile/tarfile 7011 2003-01-06 07:19:43 ustar/conttype
- # ?rw-r--r-- tarfile/tarfile 7011 2003-01-06 07:19:43 ustar/regtype
+ # -rw-r--r-- tarfile/tarfile 7011 2003-01-06 07:19:43 ustar/regtype
+ # drwxr-xr-x tarfile/tarfile 0 2003-01-05 15:19:43 ustar/dirtype/
# ...
- assert re.search((
- br'\?rw-r--r-- tarfile/tarfile\s+7011 '
- br'\d{4}-\d\d-\d\d\s+\d\d:\d\d:\d\d '
- br'ustar/\w+type ?\r?\n'
- ) * 2,
- out)
+
+ if sys.version_info >= (3, 13):
+ # Array of values to modify the regex below:
+ # ((file_type, file_permissions, file_length), ...)
+ type_perm_lengths = (
+ (br'\?', b'rw-r--r--', b'7011'),
+ (b'-', b'rw-r--r--', b'7011'),
+ (b'd', b'rwxr-xr-x', b'0'),
+ (b'd', b'rwxr-xr-x', b'255'),
+ (br'\?', b'rw-r--r--', b'0'),
+ (b'l', b'rwxrwxrwx', b'0'),
+ (b'b', b'rw-rw----', b'3,0'),
+ (b'c', b'rw-rw-rw-', b'1,3'),
+ (b'p', b'rw-r--r--', b'0'),
+ )
+ search_pattern_elems = []
+ for tp, perm, ln in type_perm_lengths:
+ search_pattern_elems.append(tp)
+ search_pattern_elems.append(br'%s tarfile/tarfile\s+%s ' % (perm, ln))
+ search_pattern_elems.append(br'\d{4}-\d\d-\d\d\s+\d\d:\d\d:\d\d ustar/\w+type[/>\sa-z-]*\n')
+ re_search_pattern = b''.join(search_pattern_elems)
+
+ else:
+ re_search_pattern = (
+ br'\?rw-r--r-- tarfile/tarfile\s+7011 '
+ br'\d{4}-\d\d-\d\d\s+\d\d:\d\d:\d\d '
+ br'ustar/\w+type ?\r?\n'
+ ) * 2
+
+ assert re.search(re_search_pattern, out)
+
# Make sure it prints the source of link with verbose flag
assert b'ustar/symtype -> regtype' in out
assert b'./ustar/linktest2/symtype -> ../linktest1/regtype' in out
- assert b'./ustar/linktest2/lnktype link to ' b'./ustar/linktest1/regtype' in out
+ assert b'./ustar/linktest2/lnktype link to ./ustar/linktest1/regtype' in out
assert b'gnu' + (b'/123' * 125) + b'/longlink link to gnu' + (b'/123' * 125) + b'/longname' in out
assert b'pax' + (b'/123' * 125) + b'/longlink link to pax' + (b'/123' * 125) + b'/longname' in out
@@ -494,7 +521,7 @@ def test_premature_end_of_archive(self, tmp_pathplus: PathPlus):
def test_length_zero_header(self):
# bpo-39017 (CVE-2019-20907): reading a zero-length header should fail with an exception
with pytest.raises(tarfile.ReadError, match="file could not be opened successfully"):
- with TarFile.open(findfile("recursion.tar")):
+ with TarFile.open(findfile("recursion.tar", subdir=findfile_subdir)):
pass
diff --git a/tests/test_zipfile.py b/tests/test_zipfile.py
index b245453..f2e528f 100644
--- a/tests/test_zipfile.py
+++ b/tests/test_zipfile.py
@@ -51,6 +51,8 @@
("ziptest2dir/ziptest3dir/ziptest4dir/_ziptest3", "6y7u8i9o0p"),
]
+findfile_subdir = "archivetestdata" if sys.version_info >= (3, 13) else None
+
@pytest.fixture()
def testfn(tmp_pathplus: PathPlus):
@@ -1509,7 +1511,7 @@ def test_unsupported_version(self):
@requires_zlib()
def test_read_unicode_filenames(self):
# bug #10801
- fname = findfile("zip_cp437_header.zip")
+ fname = findfile("zip_cp437_header.zip", subdir=findfile_subdir)
with ZipFile(fname) as zipfp:
for name in zipfp.namelist():
zipfp.open(name).close()
@@ -2413,7 +2415,7 @@ def test_write_while_reading(self, tmp_pathplus: PathPlus):
class TestWithDirectory:
def test_extract_dir(self, tmp_pathplus: PathPlus):
- with ZipFile(findfile("zipdir.zip")) as zipf:
+ with ZipFile(findfile("zipdir.zip", subdir=findfile_subdir)) as zipf:
zipf.extractall(tmp_pathplus / TESTFN2)
assert os.path.isdir(tmp_pathplus / TESTFN2 / 'a')
assert os.path.isdir(tmp_pathplus / TESTFN2 / 'a' / 'b')
1
0
Script 'mail_helper' called by obssrc
Hello community,
here is the log from the commit of package python-argcomplete for openSUSE:Factory checked in at 2024-10-30 17:33:05
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/python-argcomplete (Old)
and /work/SRC/openSUSE:Factory/.python-argcomplete.new.2020 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "python-argcomplete"
Wed Oct 30 17:33:05 2024 rev:38 rq:1219176 version:3.5.1
Changes:
--------
--- /work/SRC/openSUSE:Factory/python-argcomplete/python-argcomplete.changes 2024-10-08 17:16:28.853205359 +0200
+++ /work/SRC/openSUSE:Factory/.python-argcomplete.new.2020/python-argcomplete.changes 2024-10-30 17:33:12.665178069 +0100
@@ -1,0 +2,11 @@
+Tue Oct 29 17:07:05 UTC 2024 - Matej Cepl <mcepl(a)cepl.eu>
+
+- Update to the version 3.5.1:
+ - Restore compatibility with argparse in Python 3.12.7+
+ - Use project.scripts instead of setuptools scripts
+ - Test infrastructure improvements
+- Remove upstreamed patches:
+ - argparse-3_12_7.patch
+- Add _multibuild (to make testing against fully installed package)
+
+-------------------------------------------------------------------
Old:
----
argcomplete-3.4.0.tar.gz
argparse-3_12_7.patch
New:
----
_multibuild
argcomplete-3.5.1.tar.gz
BETA DEBUG BEGIN:
Old:- Remove upstreamed patches:
- argparse-3_12_7.patch
- Add _multibuild (to make testing against fully installed package)
BETA DEBUG END:
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ python-argcomplete.spec ++++++
--- /var/tmp/diff_new_pack.okt5Zh/_old 2024-10-30 17:33:13.577216271 +0100
+++ /var/tmp/diff_new_pack.okt5Zh/_new 2024-10-30 17:33:13.577216271 +0100
@@ -18,27 +18,36 @@
%{?sle15_python_module_pythons}
-Name: python-argcomplete
-Version: 3.4.0
+%global flavor @BUILD_FLAVOR@%{nil}
+%if "%{flavor}" == "test"
+%define psuffix -test
+%bcond_without test
+%else
+%define psuffix %{nil}
+%bcond_with test
+%endif
+Name: python-argcomplete%{psuffix}
+Version: 3.5.1
Release: 0
Summary: Bash tab completion for argparse
License: Apache-2.0
Group: Development/Languages/Python
URL: https://github.com/kislyuk/argcomplete
Source: https://files.pythonhosted.org/packages/source/a/argcomplete/argcomplete-%{…
-# PATCH-FIX-OPENSUSE argparse-3_12_7.patch gh#kislyuk/argcomplete#507 mcepl(a)suse.com
-# fix the incompatibility with Python 3.12.7+
-Patch0: argparse-3_12_7.patch
BuildRequires: %{python_module base >= 3.8}
-BuildRequires: %{python_module pexpect}
BuildRequires: %{python_module pip}
BuildRequires: %{python_module setuptools >= 67.2}
BuildRequires: %{python_module setuptools_scm >= 6.2}
BuildRequires: %{python_module wheel}
-BuildRequires: ca-certificates-mozilla
BuildRequires: fdupes
BuildRequires: python-rpm-macros
+%if %{with test}
+BuildRequires: %{python_module argcomplete == %{version}}
+BuildRequires: %{python_module pexpect}
+BuildRequires: ca-certificates-mozilla
+BuildRequires: fish
BuildRequires: zsh
+%endif
Requires(post): update-alternatives
Requires(postun): update-alternatives
BuildArch: noarch
@@ -62,31 +71,40 @@
%autosetup -p1 -n argcomplete-%{version}
%build
+%if %{without test}
%pyproject_wheel
+%endif
%install
+%if %{without test}
%pyproject_install
+%python_clone -a %{buildroot}%{_bindir}/activate-global-python-argcomplete
%python_clone -a %{buildroot}%{_bindir}/register-python-argcomplete
%python_clone -a %{buildroot}%{_bindir}/python-argcomplete-check-easy-install-script
-rm %{buildroot}%{_bindir}/activate-global-python-argcomplete
%python_expand %fdupes %{buildroot}%{$python_sitelib}
+%endif
%check
+%if %{with test}
export LANG=en_US.UTF-8
export TERM=xterm-mono
%{python_expand \
# https://github.com/kislyuk/argcomplete/issues/255
# https://github.com/kislyuk/argcomplete/issues/299
- sed -i -e "1s|#!.*python.*|#!%{__$python}|" test/prog test/*.py scripts/*
+ sed -i -e "1s|#!.*python.*|#!%{__$python}|" test/prog test/*.py
sed -i -e "s|python3 |$python |g" test/test.py
- PYTHONPATH=%{buildroot}%{$python_sitelib} $python ./test/test.py -v
+ $python ./test/test.py -v
}
+%endif
+%if %{without test}
%post
+%python_install_alternative activate-global-python-argcomplete
%python_install_alternative register-python-argcomplete
%python_install_alternative python-argcomplete-check-easy-install-script
%postun
+%python_uninstall_alternative activate-global-python-argcomplete
%python_uninstall_alternative register-python-argcomplete
%python_uninstall_alternative python-argcomplete-check-easy-install-script
@@ -95,6 +113,8 @@
%license LICENSE.rst
%{python_sitelib}/argcomplete-%{version}.dist-info
%{python_sitelib}/argcomplete
+%python_alternative %{_bindir}/activate-global-python-argcomplete
%python_alternative %{_bindir}/python-argcomplete-check-easy-install-script
%python_alternative %{_bindir}/register-python-argcomplete
+%endif
++++++ _multibuild ++++++
<multibuild>
<package>test</package>
</multibuild>
++++++ argcomplete-3.4.0.tar.gz -> argcomplete-3.5.1.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/argcomplete-3.4.0/.github/workflows/ci.yml new/argcomplete-3.5.1/.github/workflows/ci.yml
--- old/argcomplete-3.4.0/.github/workflows/ci.yml 2023-12-29 02:33:45.000000000 +0100
+++ new/argcomplete-3.5.1/.github/workflows/ci.yml 2024-08-05 01:55:57.000000000 +0200
@@ -8,7 +8,7 @@
strategy:
fail-fast: false
matrix:
- os: [ubuntu-20.04, ubuntu-22.04, macos-11, macos-12]
+ os: [ubuntu-20.04, ubuntu-22.04, macos-12, macos-14]
python-version: ["3.8", "3.9", "3.10", "3.11", "3.12"]
steps:
@@ -29,6 +29,7 @@
- run: make lint
- run: make test
- uses: codecov/codecov-action@v3
+ if: ${{matrix.python-version == '3.12' && matrix.os == 'ubuntu-22.04'}}
black:
runs-on: ubuntu-22.04
steps:
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/argcomplete-3.4.0/Changes.rst new/argcomplete-3.5.1/Changes.rst
--- old/argcomplete-3.4.0/Changes.rst 2024-06-16 09:06:51.000000000 +0200
+++ new/argcomplete-3.5.1/Changes.rst 2024-10-07 06:00:12.000000000 +0200
@@ -1,3 +1,15 @@
+Changes for v3.5.1 (2024-10-06)
+===============================
+
+- Restore compatibility with argparse in Python 3.12.7+ (#508)
+
+Changes for v3.5.0 (2024-08-06)
+===============================
+
+- Use project.scripts instead of setuptools scripts (#498)
+
+- Test infrastructure improvements
+
Changes for v3.4.0 (2024-06-16)
===============================
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/argcomplete-3.4.0/Makefile new/argcomplete-3.5.1/Makefile
--- old/argcomplete-3.4.0/Makefile 2023-10-23 23:31:16.000000000 +0200
+++ new/argcomplete-3.5.1/Makefile 2024-08-04 21:20:00.000000000 +0200
@@ -4,9 +4,9 @@
python -m pip install .[test]
lint:
- for dir in $$(dirname */__init__.py); do ruff $$dir; done
- for script in scripts/*[^cmd]; do if grep -q python $$script; then ruff $$script; fi; done
- mypy --install-types --non-interactive --check-untyped-defs argcomplete
+ for dir in $$(dirname */__init__.py); do ruff check $$dir; done
+ for script in scripts/*[^cmd]; do if grep -q python $$script; then ruff check $$script; fi; done
+ mypy --install-types --non-interactive argcomplete
test:
coverage run --source=argcomplete --omit=argcomplete/packages/_shlex.py ./test/test.py -v
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/argcomplete-3.4.0/PKG-INFO new/argcomplete-3.5.1/PKG-INFO
--- old/argcomplete-3.4.0/PKG-INFO 2024-06-16 09:07:02.136315300 +0200
+++ new/argcomplete-3.5.1/PKG-INFO 2024-10-07 06:00:27.670457100 +0200
@@ -1,6 +1,6 @@
Metadata-Version: 2.1
Name: argcomplete
-Version: 3.4.0
+Version: 3.5.1
Summary: Bash tab completion for argparse
Home-page: https://github.com/kislyuk/argcomplete
Author: Andrey Kislyuk
@@ -9,7 +9,7 @@
Project-URL: Documentation, https://kislyuk.github.io/argcomplete
Project-URL: Source Code, https://github.com/kislyuk/argcomplete
Project-URL: Issue Tracker, https://github.com/kislyuk/argcomplete/issues
-Project-URL: Change Log, https://github.com/kislyuk/argcomplete/blob/master/Changes.rst
+Project-URL: Change Log, https://github.com/kislyuk/argcomplete/blob/develop/Changes.rst
Platform: MacOS X
Platform: Posix
Classifier: Environment :: Console
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/argcomplete-3.4.0/argcomplete/bash_completion.d/_python-argcomplete new/argcomplete-3.5.1/argcomplete/bash_completion.d/_python-argcomplete
--- old/argcomplete-3.4.0/argcomplete/bash_completion.d/_python-argcomplete 2024-06-16 05:20:34.000000000 +0200
+++ new/argcomplete-3.5.1/argcomplete/bash_completion.d/_python-argcomplete 2024-06-18 04:45:43.000000000 +0200
@@ -1,5 +1,6 @@
#compdef -default-
+# argcomplete global completion loader for zsh and bash
# Copyright 2012-2023, Andrey Kislyuk and argcomplete contributors.
# Licensed under the Apache License. See https://github.com/kislyuk/argcomplete for more info.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/argcomplete-3.4.0/argcomplete/completers.py new/argcomplete-3.5.1/argcomplete/completers.py
--- old/argcomplete-3.4.0/argcomplete/completers.py 2023-10-23 23:31:16.000000000 +0200
+++ new/argcomplete-3.5.1/argcomplete/completers.py 2024-06-16 09:16:32.000000000 +0200
@@ -22,7 +22,7 @@
def __call__(
self, *, prefix: str, action: argparse.Action, parser: argparse.ArgumentParser, parsed_args: argparse.Namespace
- ):
+ ) -> None:
raise NotImplementedError("This method should be implemented by a subclass.")
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/argcomplete-3.4.0/argcomplete/finders.py new/argcomplete-3.5.1/argcomplete/finders.py
--- old/argcomplete-3.4.0/argcomplete/finders.py 2024-01-29 18:14:15.000000000 +0100
+++ new/argcomplete-3.5.1/argcomplete/finders.py 2024-06-17 00:09:25.000000000 +0200
@@ -7,10 +7,10 @@
import os
import sys
from collections.abc import Mapping
-from typing import Callable, Dict, List, Optional, Sequence, Union
+from typing import Callable, Dict, List, Optional, Sequence, TextIO, Union
from . import io as _io
-from .completers import ChoicesCompleter, FilesCompleter, SuppressCompleter
+from .completers import BaseCompleter, ChoicesCompleter, FilesCompleter, SuppressCompleter
from .io import debug, mute_stderr
from .lexers import split_line
from .packages._argparse import IntrospectiveArgumentParser, action_is_greedy, action_is_open, action_is_satisfied
@@ -66,13 +66,13 @@
argument_parser: argparse.ArgumentParser,
always_complete_options: Union[bool, str] = True,
exit_method: Callable = os._exit,
- output_stream=None,
+ output_stream: Optional[TextIO] = None,
exclude: Optional[Sequence[str]] = None,
validator: Optional[Callable] = None,
print_suppressed: bool = False,
append_space: Optional[bool] = None,
- default_completer=FilesCompleter(),
- ):
+ default_completer: BaseCompleter = FilesCompleter(),
+ ) -> None:
"""
:param argument_parser: The argument parser to autocomplete on
:param always_complete_options:
@@ -132,6 +132,8 @@
debug("Unable to open fd 8 for writing, quitting")
exit_method(1)
+ assert output_stream is not None
+
ifs = os.environ.get("_ARGCOMPLETE_IFS", "\013")
if len(ifs) != 1:
debug("Invalid value for IFS, quitting [{v}]".format(v=ifs))
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/argcomplete-3.4.0/argcomplete/packages/_argparse.py new/argcomplete-3.5.1/argcomplete/packages/_argparse.py
--- old/argcomplete-3.4.0/argcomplete/packages/_argparse.py 2024-04-14 23:11:57.000000000 +0200
+++ new/argcomplete-3.5.1/argcomplete/packages/_argparse.py 2024-10-07 05:58:42.000000000 +0200
@@ -162,6 +162,8 @@
def consume_optional(start_index):
# get the optional identified at this index
option_tuple = option_string_indices[start_index]
+ if isinstance(option_tuple, list): # Python 3.12.7+
+ option_tuple = option_tuple[0]
if len(option_tuple) == 3:
action, option_string, explicit_arg = option_tuple
else: # Python 3.11.9+, 3.12.3+, 3.13+
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/argcomplete-3.4.0/argcomplete/scripts/activate_global_python_argcomplete.py new/argcomplete-3.5.1/argcomplete/scripts/activate_global_python_argcomplete.py
--- old/argcomplete-3.4.0/argcomplete/scripts/activate_global_python_argcomplete.py 1970-01-01 01:00:00.000000000 +0100
+++ new/argcomplete-3.5.1/argcomplete/scripts/activate_global_python_argcomplete.py 2024-08-05 01:45:54.000000000 +0200
@@ -0,0 +1,168 @@
+#!/usr/bin/env python3
+# PYTHON_ARGCOMPLETE_OK
+
+# Copyright 2012-2023, Andrey Kislyuk and argcomplete contributors.
+# Licensed under the Apache License. See https://github.com/kislyuk/argcomplete for more info.
+
+"""
+Activate the generic bash-completion script or zsh completion autoload function for the argcomplete module.
+"""
+
+import argparse
+import os
+import shutil
+import site
+import subprocess
+import sys
+
+import argcomplete
+
+# PEP 366
+__package__ = "argcomplete.scripts"
+
+zsh_shellcode = """
+# Begin added by argcomplete
+fpath=( {zsh_fpath} "${{fpath[@]}}" )
+# End added by argcomplete
+"""
+
+bash_shellcode = """
+# Begin added by argcomplete
+source "{activator}"
+# End added by argcomplete
+"""
+
+parser = argparse.ArgumentParser(description=__doc__, formatter_class=argparse.RawDescriptionHelpFormatter)
+parser.add_argument("-y", "--yes", help="automatically answer yes for all questions", action="store_true")
+parser.add_argument("--dest", help='Specify the shell completion modules directory to install into, or "-" for stdout')
+parser.add_argument("--user", help="Install into user directory", action="store_true")
+argcomplete.autocomplete(parser)
+args = None
+
+
+def get_local_dir():
+ try:
+ return subprocess.check_output(["brew", "--prefix"]).decode().strip()
+ except (FileNotFoundError, subprocess.CalledProcessError):
+ return "/usr/local"
+
+
+def get_zsh_system_dir():
+ return f"{get_local_dir()}/share/zsh/site-functions"
+
+
+def get_bash_system_dir():
+ if "BASH_COMPLETION_COMPAT_DIR" in os.environ:
+ return os.environ["BASH_COMPLETION_COMPAT_DIR"]
+ elif sys.platform == "darwin":
+ return f"{get_local_dir()}/etc/bash_completion.d" # created by homebrew
+ else:
+ return "/etc/bash_completion.d" # created by bash-completion
+
+
+def get_activator_dir():
+ return os.path.join(os.path.abspath(os.path.dirname(argcomplete.__file__)), "bash_completion.d")
+
+
+def get_activator_path():
+ return os.path.join(get_activator_dir(), "_python-argcomplete")
+
+
+def install_to_destination(dest):
+ activator = get_activator_path()
+ if dest == "-":
+ with open(activator) as fh:
+ sys.stdout.write(fh.read())
+ return
+ destdir = os.path.dirname(dest)
+ if not os.path.exists(destdir):
+ try:
+ os.makedirs(destdir, exist_ok=True)
+ except Exception as e:
+ parser.error(f"path {destdir} does not exist and could not be created: {e}")
+ try:
+ print(f"Installing {activator} to {dest}...", file=sys.stderr)
+ shutil.copy(activator, dest)
+ print("Installed.", file=sys.stderr)
+ except Exception as e:
+ parser.error(
+ f"while installing to {dest}: {e}. Please run this command using sudo, or see --help for more options."
+ )
+
+
+def get_consent():
+ assert args is not None
+ if args.yes is True:
+ return True
+ while True:
+ res = input("OK to proceed? [y/n] ")
+ if res.lower() not in {"y", "n", "yes", "no"}:
+ print('Please answer "yes" or "no".', file=sys.stderr)
+ elif res.lower() in {"y", "yes"}:
+ return True
+ else:
+ return False
+
+
+def append_to_config_file(path, shellcode):
+ if os.path.exists(path):
+ with open(path, 'r') as fh:
+ if shellcode in fh.read():
+ print(f"The code already exists in the file {path}.", file=sys.stderr)
+ return
+ print(f"argcomplete needs to append to the file {path}. The following code will be appended:", file=sys.stderr)
+ for line in shellcode.splitlines():
+ print(">", line, file=sys.stderr)
+ if not get_consent():
+ print("Not added.", file=sys.stderr)
+ return
+ print(f"Adding shellcode to {path}...", file=sys.stderr)
+ with open(path, "a") as fh:
+ fh.write(shellcode)
+ print("Added.", file=sys.stderr)
+
+
+def link_user_rcfiles():
+ # TODO: warn if running as superuser
+ zsh_rcfile = os.path.join(os.path.expanduser(os.environ.get("ZDOTDIR", "~")), ".zshenv")
+ append_to_config_file(zsh_rcfile, zsh_shellcode.format(zsh_fpath=get_activator_dir()))
+
+ bash_completion_user_file = os.path.expanduser("~/.bash_completion")
+ append_to_config_file(bash_completion_user_file, bash_shellcode.format(activator=get_activator_path()))
+
+
+def main():
+ global args
+ args = parser.parse_args()
+
+ destinations = []
+
+ if args.dest:
+ if args.dest != "-" and not os.path.exists(args.dest):
+ parser.error(f"directory {args.dest} was specified via --dest, but it does not exist")
+ destinations.append(args.dest)
+ elif site.ENABLE_USER_SITE and site.USER_SITE and site.USER_SITE in argcomplete.__file__:
+ print(
+ "Argcomplete was installed in the user site local directory. Defaulting to user installation.",
+ file=sys.stderr,
+ )
+ link_user_rcfiles()
+ elif sys.prefix != sys.base_prefix:
+ print("Argcomplete was installed in a virtual environment. Defaulting to user installation.", file=sys.stderr)
+ link_user_rcfiles()
+ elif args.user:
+ link_user_rcfiles()
+ else:
+ print("Defaulting to system-wide installation.", file=sys.stderr)
+ destinations.append(f"{get_zsh_system_dir()}/_python-argcomplete")
+ destinations.append(f"{get_bash_system_dir()}/python-argcomplete")
+
+ for destination in destinations:
+ install_to_destination(destination)
+
+ if args.dest is None:
+ print("Please restart your shell or source the installed file to activate it.", file=sys.stderr)
+
+
+if __name__ == "__main__":
+ sys.exit(main())
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/argcomplete-3.4.0/argcomplete/scripts/python_argcomplete_check_easy_install_script.py new/argcomplete-3.5.1/argcomplete/scripts/python_argcomplete_check_easy_install_script.py
--- old/argcomplete-3.4.0/argcomplete/scripts/python_argcomplete_check_easy_install_script.py 1970-01-01 01:00:00.000000000 +0100
+++ new/argcomplete-3.5.1/argcomplete/scripts/python_argcomplete_check_easy_install_script.py 2024-08-05 01:45:54.000000000 +0200
@@ -0,0 +1,84 @@
+#!/usr/bin/env python3
+
+# Copyright 2012-2023, Andrey Kislyuk and argcomplete contributors.
+# Licensed under the Apache License. See https://github.com/kislyuk/argcomplete for more info.
+
+"""
+This script is part of the Python argcomplete package (https://github.com/kislyuk/argcomplete)
+It is used to check if an EASY-INSTALL-SCRIPT wrapper redirects to a script that contains the string
+"PYTHON_ARGCOMPLETE_OK". If you have enabled global completion in argcomplete, the completion hook will run it every
+time you press <TAB> in your shell.
+
+Usage:
+ python-argcomplete-check-easy-install-script <input executable file>
+"""
+
+import sys
+
+# PEP 366
+__package__ = "argcomplete.scripts"
+
+
+def main():
+ if len(sys.argv) != 2:
+ sys.exit(__doc__)
+
+ sys.tracebacklimit = 0
+
+ with open(sys.argv[1]) as fh:
+ line1, head = fh.read(1024).split("\n", 1)[:2]
+ if line1.startswith("#") and ("py" in line1 or "Py" in line1):
+ import re
+
+ lines = head.split("\n", 12)
+ for line in lines:
+ if line.startswith("# EASY-INSTALL-SCRIPT"):
+ import pkg_resources
+
+ re_match = re.match("# EASY-INSTALL-SCRIPT: '(.+)','(.+)'", line)
+ assert re_match is not None
+ dist, script = re_match.groups()
+ if "PYTHON_ARGCOMPLETE_OK" in pkg_resources.get_distribution(dist).get_metadata(
+ "scripts/" + script
+ ):
+ return 0
+ elif line.startswith("# EASY-INSTALL-ENTRY-SCRIPT"):
+ re_match = re.match("# EASY-INSTALL-ENTRY-SCRIPT: '(.+)','(.+)','(.+)'", line)
+ assert re_match is not None
+ dist, group, name = re_match.groups()
+ import pkgutil
+
+ import pkg_resources
+
+ entry_point_info = pkg_resources.get_distribution(dist).get_entry_info(group, name)
+ assert entry_point_info is not None
+ module_name = entry_point_info.module_name
+ with open(pkgutil.get_loader(module_name).get_filename()) as mod_fh: # type: ignore
+ if "PYTHON_ARGCOMPLETE_OK" in mod_fh.read(1024):
+ return 0
+ elif line.startswith("# EASY-INSTALL-DEV-SCRIPT"):
+ for line2 in lines:
+ if line2.startswith("__file__"):
+ re_match = re.match("__file__ = '(.+)'", line2)
+ assert re_match is not None
+ filename = re_match.group(1)
+ with open(filename) as mod_fh:
+ if "PYTHON_ARGCOMPLETE_OK" in mod_fh.read(1024):
+ return 0
+ elif line.startswith("# PBR Generated"):
+ re_match = re.search("from (.*) import", head)
+ assert re_match is not None
+ module = re_match.groups()[0]
+ import pkgutil
+
+ import pkg_resources
+
+ with open(pkgutil.get_loader(module).get_filename()) as mod_fh: # type: ignore
+ if "PYTHON_ARGCOMPLETE_OK" in mod_fh.read(1024):
+ return 0
+
+ return 1
+
+
+if __name__ == "__main__":
+ sys.exit(main())
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/argcomplete-3.4.0/argcomplete/scripts/register_python_argcomplete.py new/argcomplete-3.5.1/argcomplete/scripts/register_python_argcomplete.py
--- old/argcomplete-3.4.0/argcomplete/scripts/register_python_argcomplete.py 1970-01-01 01:00:00.000000000 +0100
+++ new/argcomplete-3.5.1/argcomplete/scripts/register_python_argcomplete.py 2024-08-05 01:45:54.000000000 +0200
@@ -0,0 +1,79 @@
+#!/usr/bin/env python3
+# PYTHON_ARGCOMPLETE_OK
+
+# Copyright 2012-2023, Andrey Kislyuk and argcomplete contributors.
+# Licensed under the Apache License. See https://github.com/kislyuk/argcomplete for more info.
+
+"""
+Register a Python executable for use with the argcomplete module.
+
+To perform the registration, source the output of this script in your bash shell
+(quote the output to avoid interpolation).
+
+Example:
+
+ $ eval "$(register-python-argcomplete my-favorite-script.py)"
+
+For Tcsh
+
+ $ eval `register-python-argcomplete --shell tcsh my-favorite-script.py`
+
+For Fish
+
+ $ register-python-argcomplete --shell fish my-favourite-script.py > ~/.config/fish/my-favourite-script.py.fish
+"""
+
+import argparse
+import sys
+
+import argcomplete
+
+# PEP 366
+__package__ = "argcomplete.scripts"
+
+
+def main():
+ parser = argparse.ArgumentParser(description=__doc__, formatter_class=argparse.RawDescriptionHelpFormatter)
+
+ parser.add_argument(
+ "--no-defaults",
+ dest="use_defaults",
+ action="store_false",
+ default=True,
+ help="when no matches are generated, do not fallback to readline's default completion (affects bash only)",
+ )
+ parser.add_argument(
+ "--complete-arguments",
+ nargs=argparse.REMAINDER,
+ help="arguments to call complete with; use of this option discards default options (affects bash only)",
+ )
+ parser.add_argument(
+ "-s",
+ "--shell",
+ choices=("bash", "zsh", "tcsh", "fish", "powershell"),
+ default="bash",
+ help="output code for the specified shell",
+ )
+ parser.add_argument(
+ "-e", "--external-argcomplete-script", help="external argcomplete script for auto completion of the executable"
+ )
+
+ parser.add_argument("executable", nargs="+", help="executable to completed (when invoked by exactly this name)")
+
+ argcomplete.autocomplete(parser)
+
+ if len(sys.argv) == 1:
+ parser.print_help()
+ sys.exit(1)
+
+ args = parser.parse_args()
+
+ sys.stdout.write(
+ argcomplete.shellcode(
+ args.executable, args.use_defaults, args.shell, args.complete_arguments, args.external_argcomplete_script
+ )
+ )
+
+
+if __name__ == "__main__":
+ sys.exit(main())
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/argcomplete-3.4.0/argcomplete.egg-info/PKG-INFO new/argcomplete-3.5.1/argcomplete.egg-info/PKG-INFO
--- old/argcomplete-3.4.0/argcomplete.egg-info/PKG-INFO 2024-06-16 09:07:02.000000000 +0200
+++ new/argcomplete-3.5.1/argcomplete.egg-info/PKG-INFO 2024-10-07 06:00:27.000000000 +0200
@@ -1,6 +1,6 @@
Metadata-Version: 2.1
Name: argcomplete
-Version: 3.4.0
+Version: 3.5.1
Summary: Bash tab completion for argparse
Home-page: https://github.com/kislyuk/argcomplete
Author: Andrey Kislyuk
@@ -9,7 +9,7 @@
Project-URL: Documentation, https://kislyuk.github.io/argcomplete
Project-URL: Source Code, https://github.com/kislyuk/argcomplete
Project-URL: Issue Tracker, https://github.com/kislyuk/argcomplete/issues
-Project-URL: Change Log, https://github.com/kislyuk/argcomplete/blob/master/Changes.rst
+Project-URL: Change Log, https://github.com/kislyuk/argcomplete/blob/develop/Changes.rst
Platform: MacOS X
Platform: Posix
Classifier: Environment :: Console
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/argcomplete-3.4.0/argcomplete.egg-info/SOURCES.txt new/argcomplete-3.5.1/argcomplete.egg-info/SOURCES.txt
--- old/argcomplete-3.4.0/argcomplete.egg-info/SOURCES.txt 2024-06-16 09:07:02.000000000 +0200
+++ new/argcomplete-3.5.1/argcomplete.egg-info/SOURCES.txt 2024-10-07 06:00:27.000000000 +0200
@@ -26,6 +26,7 @@
argcomplete.egg-info/PKG-INFO
argcomplete.egg-info/SOURCES.txt
argcomplete.egg-info/dependency_links.txt
+argcomplete.egg-info/entry_points.txt
argcomplete.egg-info/not-zip-safe
argcomplete.egg-info/requires.txt
argcomplete.egg-info/top_level.txt
@@ -33,6 +34,10 @@
argcomplete/packages/__init__.py
argcomplete/packages/_argparse.py
argcomplete/packages/_shlex.py
+argcomplete/scripts/__init__.py
+argcomplete/scripts/activate_global_python_argcomplete.py
+argcomplete/scripts/python_argcomplete_check_easy_install_script.py
+argcomplete/scripts/register_python_argcomplete.py
contrib/README.rst
docs/changelog.rst
docs/conf.py
@@ -40,9 +45,6 @@
docs/index.rst
docs/toc.html
docs/examples/describe_github_user.py
-scripts/activate-global-python-argcomplete
-scripts/python-argcomplete-check-easy-install-script
-scripts/register-python-argcomplete
test/__init__.py
test/inputrc
test/prog
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/argcomplete-3.4.0/argcomplete.egg-info/entry_points.txt new/argcomplete-3.5.1/argcomplete.egg-info/entry_points.txt
--- old/argcomplete-3.4.0/argcomplete.egg-info/entry_points.txt 1970-01-01 01:00:00.000000000 +0100
+++ new/argcomplete-3.5.1/argcomplete.egg-info/entry_points.txt 2024-10-07 06:00:27.000000000 +0200
@@ -0,0 +1,4 @@
+[console_scripts]
+activate-global-python-argcomplete = argcomplete.scripts.activate_global_python_argcomplete:main
+python-argcomplete-check-easy-install-script = argcomplete.scripts.python_argcomplete_check_easy_install_script:main
+register-python-argcomplete = argcomplete.scripts.register_python_argcomplete:main
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/argcomplete-3.4.0/pyproject.toml new/argcomplete-3.5.1/pyproject.toml
--- old/argcomplete-3.4.0/pyproject.toml 2024-04-14 23:01:41.000000000 +0200
+++ new/argcomplete-3.5.1/pyproject.toml 2024-09-29 07:02:08.000000000 +0200
@@ -34,6 +34,11 @@
"Topic :: Terminals",
]
+[project.scripts]
+activate-global-python-argcomplete = "argcomplete.scripts.activate_global_python_argcomplete:main"
+python-argcomplete-check-easy-install-script = "argcomplete.scripts.python_argcomplete_check_easy_install_script:main"
+register-python-argcomplete = "argcomplete.scripts.register_python_argcomplete:main"
+
[project.optional-dependencies]
test = ["coverage", "pexpect", "wheel", "ruff", "mypy"]
@@ -41,7 +46,7 @@
"Documentation"= "https://kislyuk.github.io/argcomplete"
"Source Code"= "https://github.com/kislyuk/argcomplete"
"Issue Tracker"= "https://github.com/kislyuk/argcomplete/issues"
-"Change Log"= "https://github.com/kislyuk/argcomplete/blob/master/Changes.rst"
+"Change Log"= "https://github.com/kislyuk/argcomplete/blob/develop/Changes.rst"
[tool.setuptools_scm]
@@ -66,6 +71,8 @@
files = [
"argcomplete"
]
+check_untyped_defs = true
+disallow_incomplete_defs = true
[[tool.mypy.overrides]]
module = "importlib.*"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/argcomplete-3.4.0/scripts/activate-global-python-argcomplete new/argcomplete-3.5.1/scripts/activate-global-python-argcomplete
--- old/argcomplete-3.4.0/scripts/activate-global-python-argcomplete 2023-12-03 02:13:18.000000000 +0100
+++ new/argcomplete-3.5.1/scripts/activate-global-python-argcomplete 1970-01-01 01:00:00.000000000 +0100
@@ -1,154 +0,0 @@
-#!/usr/bin/env python
-# PYTHON_ARGCOMPLETE_OK
-
-# Copyright 2012-2023, Andrey Kislyuk and argcomplete contributors.
-# Licensed under the Apache License. See https://github.com/kislyuk/argcomplete for more info.
-
-"""
-Activate the generic bash-completion script or zsh completion autoload function for the argcomplete module.
-"""
-
-import argparse
-import os
-import shutil
-import site
-import subprocess
-import sys
-
-import argcomplete
-
-zsh_shellcode = """
-# Begin added by argcomplete
-fpath=( {zsh_fpath} "${{fpath[@]}}" )
-# End added by argcomplete
-"""
-
-bash_shellcode = """
-# Begin added by argcomplete
-source "{activator}"
-# End added by argcomplete
-"""
-
-
-def get_local_dir():
- try:
- return subprocess.check_output(["brew", "--prefix"]).decode().strip()
- except (FileNotFoundError, subprocess.CalledProcessError):
- return "/usr/local"
-
-
-def get_zsh_system_dir():
- return f"{get_local_dir()}/share/zsh/site-functions"
-
-
-def get_bash_system_dir():
- if "BASH_COMPLETION_COMPAT_DIR" in os.environ:
- return os.environ["BASH_COMPLETION_COMPAT_DIR"]
- elif sys.platform == "darwin":
- return f"{get_local_dir()}/etc/bash_completion.d" # created by homebrew
- else:
- return "/etc/bash_completion.d" # created by bash-completion
-
-
-def get_activator_dir():
- return os.path.join(os.path.abspath(os.path.dirname(argcomplete.__file__)), "bash_completion.d")
-
-
-def get_activator_path():
- return os.path.join(get_activator_dir(), "_python-argcomplete")
-
-
-def install_to_destination(dest):
- activator = get_activator_path()
- if dest == "-":
- with open(activator) as fh:
- sys.stdout.write(fh.read())
- return
- destdir = os.path.dirname(dest)
- if not os.path.exists(destdir):
- try:
- os.makedirs(destdir, exist_ok=True)
- except Exception as e:
- parser.error(f"path {destdir} does not exist and could not be created: {e}")
- try:
- print(f"Installing {activator} to {dest}...", file=sys.stderr)
- shutil.copy(activator, dest)
- print("Installed.", file=sys.stderr)
- except Exception as e:
- parser.error(
- f"while installing to {dest}: {e}. Please run this command using sudo, or see --help for more options."
- )
-
-
-def get_consent():
- if args.yes is True:
- return True
- while True:
- res = input("OK to proceed? [y/n] ")
- if res.lower() not in {"y", "n", "yes", "no"}:
- print('Please answer "yes" or "no".', file=sys.stderr)
- elif res.lower() in {"y", "yes"}:
- return True
- else:
- return False
-
-
-def append_to_config_file(path, shellcode):
- if os.path.exists(path):
- with open(path, 'r') as fh:
- if shellcode in fh.read():
- print(f"The code already exists in the file {path}.", file=sys.stderr)
- return
- print(f"argcomplete needs to append to the file {path}. The following code will be appended:", file=sys.stderr)
- for line in shellcode.splitlines():
- print(">", line, file=sys.stderr)
- if not get_consent():
- print("Not added.", file=sys.stderr)
- return
- print(f"Adding shellcode to {path}...", file=sys.stderr)
- with open(path, "a") as fh:
- fh.write(shellcode)
- print("Added.", file=sys.stderr)
-
-
-def link_user_rcfiles():
- # TODO: warn if running as superuser
- zsh_rcfile = os.path.join(os.path.expanduser(os.environ.get("ZDOTDIR", "~")), ".zshenv")
- append_to_config_file(zsh_rcfile, zsh_shellcode.format(zsh_fpath=get_activator_dir()))
-
- bash_completion_user_file = os.path.expanduser("~/.bash_completion")
- append_to_config_file(bash_completion_user_file, bash_shellcode.format(activator=get_activator_path()))
-
-
-parser = argparse.ArgumentParser(description=__doc__, formatter_class=argparse.RawDescriptionHelpFormatter)
-parser.add_argument("-y", "--yes", help="automatically answer yes for all questions", action="store_true")
-parser.add_argument("--dest", help='Specify the shell completion modules directory to install into, or "-" for stdout')
-parser.add_argument("--user", help="Install into user directory", action="store_true")
-argcomplete.autocomplete(parser)
-args = parser.parse_args()
-destinations = []
-
-if args.dest:
- if args.dest != "-" and not os.path.exists(args.dest):
- parser.error(f"directory {args.dest} was specified via --dest, but it does not exist")
- destinations.append(args.dest)
-elif site.ENABLE_USER_SITE and site.USER_SITE in argcomplete.__file__:
- print(
- "Argcomplete was installed in the user site local directory. Defaulting to user installation.", file=sys.stderr
- )
- link_user_rcfiles()
-elif sys.prefix != sys.base_prefix:
- print("Argcomplete was installed in a virtual environment. Defaulting to user installation.", file=sys.stderr)
- link_user_rcfiles()
-elif args.user:
- link_user_rcfiles()
-else:
- print("Defaulting to system-wide installation.", file=sys.stderr)
- destinations.append(f"{get_zsh_system_dir()}/_python-argcomplete")
- destinations.append(f"{get_bash_system_dir()}/python-argcomplete")
-
-for destination in destinations:
- install_to_destination(destination)
-
-if args.dest is None:
- print("Please restart your shell or source the installed file to activate it.", file=sys.stderr)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/argcomplete-3.4.0/scripts/python-argcomplete-check-easy-install-script new/argcomplete-3.5.1/scripts/python-argcomplete-check-easy-install-script
--- old/argcomplete-3.4.0/scripts/python-argcomplete-check-easy-install-script 2023-10-23 23:31:17.000000000 +0200
+++ new/argcomplete-3.5.1/scripts/python-argcomplete-check-easy-install-script 1970-01-01 01:00:00.000000000 +0100
@@ -1,63 +0,0 @@
-#!/usr/bin/env python
-
-# Copyright 2012-2023, Andrey Kislyuk and argcomplete contributors.
-# Licensed under the Apache License. See https://github.com/kislyuk/argcomplete for more info.
-
-"""
-This script is part of the Python argcomplete package (https://github.com/kislyuk/argcomplete)
-It is used to check if an EASY-INSTALL-SCRIPT wrapper redirects to a script that contains the string
-"PYTHON_ARGCOMPLETE_OK". If you have enabled global completion in argcomplete, the completion hook will run it every
-time you press <TAB> in your shell.
-
-Usage:
- python-argcomplete-check-easy-install-script <input executable file>
-"""
-
-import sys
-
-if len(sys.argv) != 2:
- sys.exit(__doc__)
-
-sys.tracebacklimit = 0
-
-with open(sys.argv[1]) as fh:
- line1, head = fh.read(1024).split("\n", 1)[:2]
- if line1.startswith("#") and ("py" in line1 or "Py" in line1):
- import re
-
- lines = head.split("\n", 12)
- for line in lines:
- if line.startswith("# EASY-INSTALL-SCRIPT"):
- import pkg_resources
-
- dist, script = re.match("# EASY-INSTALL-SCRIPT: '(.+)','(.+)'", line).groups()
- if "PYTHON_ARGCOMPLETE_OK" in pkg_resources.get_distribution(dist).get_metadata("scripts/" + script):
- exit(0)
- elif line.startswith("# EASY-INSTALL-ENTRY-SCRIPT"):
- dist, group, name = re.match("# EASY-INSTALL-ENTRY-SCRIPT: '(.+)','(.+)','(.+)'", line).groups()
- import pkgutil
-
- import pkg_resources
-
- module_name = pkg_resources.get_distribution(dist).get_entry_info(group, name).module_name
- with open(pkgutil.get_loader(module_name).get_filename()) as mod_fh:
- if "PYTHON_ARGCOMPLETE_OK" in mod_fh.read(1024):
- exit(0)
- elif line.startswith("# EASY-INSTALL-DEV-SCRIPT"):
- for line2 in lines:
- if line2.startswith("__file__"):
- filename = re.match("__file__ = '(.+)'", line2).group(1)
- with open(filename) as mod_fh:
- if "PYTHON_ARGCOMPLETE_OK" in mod_fh.read(1024):
- exit(0)
- elif line.startswith("# PBR Generated"):
- module = re.search("from (.*) import", head).groups()[0]
- import pkgutil
-
- import pkg_resources
-
- with open(pkgutil.get_loader(module).get_filename()) as mod_fh:
- if "PYTHON_ARGCOMPLETE_OK" in mod_fh.read(1024):
- exit(0)
-
-exit(1)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/argcomplete-3.4.0/scripts/register-python-argcomplete new/argcomplete-3.5.1/scripts/register-python-argcomplete
--- old/argcomplete-3.4.0/scripts/register-python-argcomplete 2023-10-23 23:31:17.000000000 +0200
+++ new/argcomplete-3.5.1/scripts/register-python-argcomplete 1970-01-01 01:00:00.000000000 +0100
@@ -1,71 +0,0 @@
-#!/usr/bin/env python3
-# PYTHON_ARGCOMPLETE_OK
-
-# Copyright 2012-2023, Andrey Kislyuk and argcomplete contributors.
-# Licensed under the Apache License. See https://github.com/kislyuk/argcomplete for more info.
-
-"""
-Register a Python executable for use with the argcomplete module.
-
-To perform the registration, source the output of this script in your bash shell
-(quote the output to avoid interpolation).
-
-Example:
-
- $ eval "$(register-python-argcomplete my-favorite-script.py)"
-
-For Tcsh
-
- $ eval `register-python-argcomplete --shell tcsh my-favorite-script.py`
-
-For Fish
-
- $ register-python-argcomplete --shell fish my-favourite-script.py > ~/.config/fish/my-favourite-script.py.fish
-"""
-
-import argparse
-import sys
-
-import argcomplete
-
-parser = argparse.ArgumentParser(description=__doc__, formatter_class=argparse.RawDescriptionHelpFormatter)
-
-parser.add_argument(
- "--no-defaults",
- dest="use_defaults",
- action="store_false",
- default=True,
- help="when no matches are generated, do not fallback to readline's default completion (affects bash only)",
-)
-parser.add_argument(
- "--complete-arguments",
- nargs=argparse.REMAINDER,
- help="arguments to call complete with; use of this option discards default options (affects bash only)",
-)
-parser.add_argument(
- "-s",
- "--shell",
- choices=("bash", "zsh", "tcsh", "fish", "powershell"),
- default="bash",
- help="output code for the specified shell",
-)
-parser.add_argument(
- "-e", "--external-argcomplete-script", help="external argcomplete script for auto completion of the executable"
-)
-
-parser.add_argument("executable", nargs="+", help="executable to completed (when invoked by exactly this name)")
-
-argcomplete.autocomplete(parser)
-
-if len(sys.argv) == 1:
- parser.print_help()
- sys.exit(1)
-
-args = parser.parse_args()
-
-
-sys.stdout.write(
- argcomplete.shellcode(
- args.executable, args.use_defaults, args.shell, args.complete_arguments, args.external_argcomplete_script
- )
-)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/argcomplete-3.4.0/setup.py new/argcomplete-3.5.1/setup.py
--- old/argcomplete-3.4.0/setup.py 2024-04-14 07:42:07.000000000 +0200
+++ new/argcomplete-3.5.1/setup.py 2024-08-05 00:42:13.000000000 +0200
@@ -7,7 +7,6 @@
setup(
url="https://github.com/kislyuk/argcomplete",
packages=find_packages(exclude=["test", "test.*"]),
- scripts=glob.glob("scripts/*"),
package_data={"argcomplete": ["bash_completion.d/_python-argcomplete", "py.typed"]},
zip_safe=False,
include_package_data=True,
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/argcomplete-3.4.0/test/test.py new/argcomplete-3.5.1/test/test.py
--- old/argcomplete-3.4.0/test/test.py 2024-06-16 05:20:34.000000000 +0200
+++ new/argcomplete-3.5.1/test/test.py 2024-08-04 21:19:49.000000000 +0200
@@ -65,6 +65,7 @@
def _repl_sh(command, args, non_printable_insert):
os.environ["PS1"] = "$"
+ os.environ["TERM"] = ""
child = pexpect.spawn(command, args, echo=False, encoding="utf-8")
ps1 = PEXPECT_PROMPT[:5] + non_printable_insert + PEXPECT_PROMPT[5:]
ps2 = PEXPECT_CONTINUATION_PROMPT[:5] + non_printable_insert + PEXPECT_CONTINUATION_PROMPT[5:]
@@ -79,7 +80,7 @@
def zsh_repl(command="zsh"):
- sh = _repl_sh(command, ["--no-rcs", "-V"], non_printable_insert="%(!..)")
+ sh = _repl_sh(command, ["--no-rcs", "--no-globalrcs", "-V"], non_printable_insert="%(!..)")
# Require two tabs to print all options (some tests rely on this).
sh.run_command("setopt BASH_AUTO_LIST")
return sh
1
0
Script 'mail_helper' called by obssrc
Hello community,
here is the log from the commit of package python-aiohappyeyeballs for openSUSE:Factory checked in at 2024-10-30 17:33:02
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/python-aiohappyeyeballs (Old)
and /work/SRC/openSUSE:Factory/.python-aiohappyeyeballs.new.2020 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "python-aiohappyeyeballs"
Wed Oct 30 17:33:02 2024 rev:3 rq:1219103 version:2.4.3
Changes:
--------
--- /work/SRC/openSUSE:Factory/python-aiohappyeyeballs/python-aiohappyeyeballs.changes 2024-09-03 13:37:03.053531495 +0200
+++ /work/SRC/openSUSE:Factory/.python-aiohappyeyeballs.new.2020/python-aiohappyeyeballs.changes 2024-10-30 17:33:10.117071338 +0100
@@ -1,0 +2,15 @@
+Mon Oct 28 15:43:47 UTC 2024 - Martin Hauke <mardnh(a)gmx.de>
+
+- Update to version 2.4.3
+ * fix: rewrite staggered_race to be race safe.
+ * fix: re-raise RuntimeError when uvloop raises RuntimeError
+ during connect (#105).
+- Update to version 2.4.2
+ * fix: copy staggered from standard lib for python 3.12+ (#95).
+- Update to version 2.4.1
+ * fix: avoid passing loop to staggered.staggered_race (#94).
+- Update to version 2.4.0
+ * docs: fix a trivial typo in README.md (#84).
+ * feat: add support for python 3.13 (#86).
+
+-------------------------------------------------------------------
Old:
----
aiohappyeyeballs-2.3.7.tar.gz
New:
----
aiohappyeyeballs-2.4.3.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ python-aiohappyeyeballs.spec ++++++
--- /var/tmp/diff_new_pack.EJZysU/_old 2024-10-30 17:33:10.789099487 +0100
+++ /var/tmp/diff_new_pack.EJZysU/_new 2024-10-30 17:33:10.789099487 +0100
@@ -18,7 +18,7 @@
%{?sle15_python_module_pythons}
Name: python-aiohappyeyeballs
-Version: 2.3.7
+Version: 2.4.3
Release: 0
Summary: Happy Eyeballs for asyncio
License: Python-2.0
++++++ aiohappyeyeballs-2.3.7.tar.gz -> aiohappyeyeballs-2.4.3.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/aiohappyeyeballs-2.3.7/PKG-INFO new/aiohappyeyeballs-2.4.3/PKG-INFO
--- old/aiohappyeyeballs-2.3.7/PKG-INFO 1970-01-01 01:00:00.000000000 +0100
+++ new/aiohappyeyeballs-2.4.3/PKG-INFO 1970-01-01 01:00:00.000000000 +0100
@@ -1,9 +1,9 @@
Metadata-Version: 2.1
Name: aiohappyeyeballs
-Version: 2.3.7
+Version: 2.4.3
Summary: Happy Eyeballs for asyncio
Home-page: https://github.com/aio-libs/aiohappyeyeballs
-License: Python-2.0.1
+License: PSF-2.0
Author: J. Nick Koston
Author-email: nick(a)koston.org
Requires-Python: >=3.8
@@ -19,6 +19,7 @@
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
+Classifier: Programming Language :: Python :: 3.13
Classifier: Topic :: Software Development :: Libraries
Project-URL: Bug Tracker, https://github.com/aio-libs/aiohappyeyeballs/issues
Project-URL: Changelog, https://github.com/aio-libs/aiohappyeyeballs/blob/main/CHANGELOG.md
@@ -43,8 +44,8 @@
<a href="https://python-poetry.org/">
<img src="https://img.shields.io/badge/packaging-poetry-299bd7?style=flat-square&logo…
KuuXm3jP+s3KbZVra7y2EAAAAAASUVORK5CYII=" alt="Poetry">
</a>
- <a href="https://github.com/ambv/black">
- <img src="https://img.shields.io/badge/code%20style-black-000000.svg?style=flat-square" alt="black">
+ <a href="https://github.com/astral-sh/ruff">
+ <img src="https://img.shields.io/endpoint?url=https://raw.githubusercontent.com/astra…" alt="Ruff">
</a>
<a href="https://github.com/pre-commit/pre-commit">
<img src="https://img.shields.io/badge/pre--commit-enabled-brightgreen?logo=pre-commi…" alt="pre-commit">
@@ -80,7 +81,7 @@
The stdlib version of `loop.create_connection()`
will only work when you pass in an unresolved name which
is not a good fit when using DNS caching or resolving
-names via another method such was `zeroconf`.
+names via another method such as `zeroconf`.
## Installation
@@ -88,6 +89,10 @@
`pip install aiohappyeyeballs`
+## License
+
+[aiohappyeyeballs is licensed under the same terms as cpython itself.](https://github.com/python/cpython/blob/main/LICENSE)
+
## Example usage
```python
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/aiohappyeyeballs-2.3.7/README.md new/aiohappyeyeballs-2.4.3/README.md
--- old/aiohappyeyeballs-2.3.7/README.md 2024-08-17 15:00:11.435407200 +0200
+++ new/aiohappyeyeballs-2.4.3/README.md 2024-09-30 21:40:43.734043400 +0200
@@ -15,8 +15,8 @@
<a href="https://python-poetry.org/">
<img src="https://img.shields.io/badge/packaging-poetry-299bd7?style=flat-square&logo…
KuuXm3jP+s3KbZVra7y2EAAAAAASUVORK5CYII=" alt="Poetry">
</a>
- <a href="https://github.com/ambv/black">
- <img src="https://img.shields.io/badge/code%20style-black-000000.svg?style=flat-square" alt="black">
+ <a href="https://github.com/astral-sh/ruff">
+ <img src="https://img.shields.io/endpoint?url=https://raw.githubusercontent.com/astra…" alt="Ruff">
</a>
<a href="https://github.com/pre-commit/pre-commit">
<img src="https://img.shields.io/badge/pre--commit-enabled-brightgreen?logo=pre-commi…" alt="pre-commit">
@@ -52,7 +52,7 @@
The stdlib version of `loop.create_connection()`
will only work when you pass in an unresolved name which
is not a good fit when using DNS caching or resolving
-names via another method such was `zeroconf`.
+names via another method such as `zeroconf`.
## Installation
@@ -60,6 +60,10 @@
`pip install aiohappyeyeballs`
+## License
+
+[aiohappyeyeballs is licensed under the same terms as cpython itself.](https://github.com/python/cpython/blob/main/LICENSE)
+
## Example usage
```python
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/aiohappyeyeballs-2.3.7/pyproject.toml new/aiohappyeyeballs-2.4.3/pyproject.toml
--- old/aiohappyeyeballs-2.3.7/pyproject.toml 2024-08-17 15:00:12.423407600 +0200
+++ new/aiohappyeyeballs-2.4.3/pyproject.toml 2024-09-30 21:40:44.716034200 +0200
@@ -1,9 +1,9 @@
[tool.poetry]
name = "aiohappyeyeballs"
-version = "2.3.7"
+version = "2.4.3"
description = "Happy Eyeballs for asyncio"
authors = ["J. Nick Koston <nick(a)koston.org>"]
-license = "Python-2.0.1"
+license = "PSF-2.0"
readme = "README.md"
repository = "https://github.com/aio-libs/aiohappyeyeballs"
documentation = "https://aiohappyeyeballs.readthedocs.io"
@@ -18,6 +18,7 @@
"Programming Language :: Python :: 3.10",
"Programming Language :: Python :: 3.11",
"Programming Language :: Python :: 3.12",
+ "Programming Language :: Python :: 3.13",
"License :: OSI Approved :: Python Software Foundation License"
]
packages = [
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/aiohappyeyeballs-2.3.7/src/aiohappyeyeballs/__init__.py new/aiohappyeyeballs-2.4.3/src/aiohappyeyeballs/__init__.py
--- old/aiohappyeyeballs-2.3.7/src/aiohappyeyeballs/__init__.py 2024-08-17 15:00:12.427407500 +0200
+++ new/aiohappyeyeballs-2.4.3/src/aiohappyeyeballs/__init__.py 2024-09-30 21:40:44.716034200 +0200
@@ -1,4 +1,4 @@
-__version__ = "2.3.7"
+__version__ = "2.4.3"
from .impl import start_connection
from .types import AddrInfoType
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/aiohappyeyeballs-2.3.7/src/aiohappyeyeballs/_staggered.py new/aiohappyeyeballs-2.4.3/src/aiohappyeyeballs/_staggered.py
--- old/aiohappyeyeballs-2.3.7/src/aiohappyeyeballs/_staggered.py 1970-01-01 01:00:00.000000000 +0100
+++ new/aiohappyeyeballs-2.4.3/src/aiohappyeyeballs/_staggered.py 2024-09-30 21:40:43.735043300 +0200
@@ -0,0 +1,202 @@
+import asyncio
+import contextlib
+from typing import (
+ TYPE_CHECKING,
+ Any,
+ Awaitable,
+ Callable,
+ Iterable,
+ List,
+ Optional,
+ Set,
+ Tuple,
+ TypeVar,
+ Union,
+)
+
+_T = TypeVar("_T")
+
+
+def _set_result(wait_next: "asyncio.Future[None]") -> None:
+ """Set the result of a future if it is not already done."""
+ if not wait_next.done():
+ wait_next.set_result(None)
+
+
+async def _wait_one(
+ futures: "Iterable[asyncio.Future[Any]]",
+ loop: asyncio.AbstractEventLoop,
+) -> _T:
+ """Wait for the first future to complete."""
+ wait_next = loop.create_future()
+
+ def _on_completion(fut: "asyncio.Future[Any]") -> None:
+ if not wait_next.done():
+ wait_next.set_result(fut)
+
+ for f in futures:
+ f.add_done_callback(_on_completion)
+
+ try:
+ return await wait_next
+ finally:
+ for f in futures:
+ f.remove_done_callback(_on_completion)
+
+
+async def staggered_race(
+ coro_fns: Iterable[Callable[[], Awaitable[_T]]],
+ delay: Optional[float],
+ *,
+ loop: Optional[asyncio.AbstractEventLoop] = None,
+) -> Tuple[Optional[_T], Optional[int], List[Optional[BaseException]]]:
+ """
+ Run coroutines with staggered start times and take the first to finish.
+
+ This method takes an iterable of coroutine functions. The first one is
+ started immediately. From then on, whenever the immediately preceding one
+ fails (raises an exception), or when *delay* seconds has passed, the next
+ coroutine is started. This continues until one of the coroutines complete
+ successfully, in which case all others are cancelled, or until all
+ coroutines fail.
+
+ The coroutines provided should be well-behaved in the following way:
+
+ * They should only ``return`` if completed successfully.
+
+ * They should always raise an exception if they did not complete
+ successfully. In particular, if they handle cancellation, they should
+ probably reraise, like this::
+
+ try:
+ # do work
+ except asyncio.CancelledError:
+ # undo partially completed work
+ raise
+
+ Args:
+ ----
+ coro_fns: an iterable of coroutine functions, i.e. callables that
+ return a coroutine object when called. Use ``functools.partial`` or
+ lambdas to pass arguments.
+
+ delay: amount of time, in seconds, between starting coroutines. If
+ ``None``, the coroutines will run sequentially.
+
+ loop: the event loop to use. If ``None``, the running loop is used.
+
+ Returns:
+ -------
+ tuple *(winner_result, winner_index, exceptions)* where
+
+ - *winner_result*: the result of the winning coroutine, or ``None``
+ if no coroutines won.
+
+ - *winner_index*: the index of the winning coroutine in
+ ``coro_fns``, or ``None`` if no coroutines won. If the winning
+ coroutine may return None on success, *winner_index* can be used
+ to definitively determine whether any coroutine won.
+
+ - *exceptions*: list of exceptions returned by the coroutines.
+ ``len(exceptions)`` is equal to the number of coroutines actually
+ started, and the order is the same as in ``coro_fns``. The winning
+ coroutine's entry is ``None``.
+
+ """
+ loop = loop or asyncio.get_running_loop()
+ exceptions: List[Optional[BaseException]] = []
+ tasks: Set[asyncio.Task[Optional[Tuple[_T, int]]]] = set()
+
+ async def run_one_coro(
+ coro_fn: Callable[[], Awaitable[_T]],
+ this_index: int,
+ start_next: "asyncio.Future[None]",
+ ) -> Optional[Tuple[_T, int]]:
+ """
+ Run a single coroutine.
+
+ If the coroutine fails, set the exception in the exceptions list and
+ start the next coroutine by setting the result of the start_next.
+
+ If the coroutine succeeds, return the result and the index of the
+ coroutine in the coro_fns list.
+
+ If SystemExit or KeyboardInterrupt is raised, re-raise it.
+ """
+ try:
+ result = await coro_fn()
+ except (SystemExit, KeyboardInterrupt):
+ raise
+ except BaseException as e:
+ exceptions[this_index] = e
+ _set_result(start_next) # Kickstart the next coroutine
+ return None
+
+ return result, this_index
+
+ start_next_timer: Optional[asyncio.TimerHandle] = None
+ start_next: Optional[asyncio.Future[None]]
+ task: asyncio.Task[Optional[Tuple[_T, int]]]
+ done: Union[asyncio.Future[None], asyncio.Task[Optional[Tuple[_T, int]]]]
+ coro_iter = iter(coro_fns)
+ this_index = -1
+ try:
+ while True:
+ if coro_fn := next(coro_iter, None):
+ this_index += 1
+ exceptions.append(None)
+ start_next = loop.create_future()
+ task = loop.create_task(run_one_coro(coro_fn, this_index, start_next))
+ tasks.add(task)
+ start_next_timer = (
+ loop.call_later(delay, _set_result, start_next) if delay else None
+ )
+ elif not tasks:
+ # We exhausted the coro_fns list and no tasks are running
+ # so we have no winner and all coroutines failed.
+ break
+
+ while tasks:
+ done = await _wait_one(
+ [*tasks, start_next] if start_next else tasks, loop
+ )
+ if done is start_next:
+ # The current task has failed or the timer has expired
+ # so we need to start the next task.
+ start_next = None
+ if start_next_timer:
+ start_next_timer.cancel()
+ start_next_timer = None
+
+ # Break out of the task waiting loop to start the next
+ # task.
+ break
+
+ if TYPE_CHECKING:
+ assert isinstance(done, asyncio.Task)
+
+ tasks.remove(done)
+ if winner := done.result():
+ return *winner, exceptions
+ finally:
+ # We either have:
+ # - a winner
+ # - all tasks failed
+ # - a KeyboardInterrupt or SystemExit.
+
+ #
+ # If the timer is still running, cancel it.
+ #
+ if start_next_timer:
+ start_next_timer.cancel()
+
+ #
+ # If there are any tasks left, cancel them and than
+ # wait them so they fill the exceptions list.
+ #
+ for task in tasks:
+ task.cancel()
+ with contextlib.suppress(asyncio.CancelledError):
+ await task
+
+ return None, None, exceptions
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/aiohappyeyeballs-2.3.7/src/aiohappyeyeballs/impl.py new/aiohappyeyeballs-2.4.3/src/aiohappyeyeballs/impl.py
--- old/aiohappyeyeballs-2.3.7/src/aiohappyeyeballs/impl.py 2024-08-17 15:00:11.435407200 +0200
+++ new/aiohappyeyeballs-2.4.3/src/aiohappyeyeballs/impl.py 2024-09-30 21:40:43.735043300 +0200
@@ -6,9 +6,9 @@
import itertools
import socket
import sys
-from asyncio import staggered
-from typing import List, Optional, Sequence
+from typing import List, Optional, Sequence, Union
+from . import _staggered
from .types import AddrInfoType
if sys.version_info < (3, 8, 2): # noqa: UP036
@@ -73,7 +73,8 @@
addr_infos = _interleave_addrinfos(addr_infos, interleave)
sock: Optional[socket.socket] = None
- exceptions: List[List[OSError]] = []
+ # uvloop can raise RuntimeError instead of OSError
+ exceptions: List[List[Union[OSError, RuntimeError]]] = []
if happy_eyeballs_delay is None or single_addr_info:
# not using happy eyeballs
for addrinfo in addr_infos:
@@ -82,10 +83,10 @@
current_loop, exceptions, addrinfo, local_addr_infos
)
break
- except OSError:
+ except (RuntimeError, OSError):
continue
else: # using happy eyeballs
- sock, _, _ = await staggered.staggered_race(
+ sock, _, _ = await _staggered.staggered_race(
(
functools.partial(
_connect_sock, current_loop, exceptions, addrinfo, local_addr_infos
@@ -93,7 +94,6 @@
for addrinfo in addr_infos
),
happy_eyeballs_delay,
- loop=current_loop,
)
if sock is None:
@@ -114,12 +114,20 @@
)
# If the errno is the same for all exceptions, raise
# an OSError with that errno.
- first_errno = first_exception.errno
- if all(
- isinstance(exc, OSError) and exc.errno == first_errno
- for exc in all_exceptions
+ if isinstance(first_exception, OSError):
+ first_errno = first_exception.errno
+ if all(
+ isinstance(exc, OSError) and exc.errno == first_errno
+ for exc in all_exceptions
+ ):
+ raise OSError(first_errno, msg)
+ elif isinstance(first_exception, RuntimeError) and all(
+ isinstance(exc, RuntimeError) for exc in all_exceptions
):
- raise OSError(first_errno, msg)
+ raise RuntimeError(msg)
+ # We have a mix of OSError and RuntimeError
+ # so we have to pick which one to raise.
+ # and we raise OSError for compatibility
raise OSError(msg)
finally:
all_exceptions = None # type: ignore[assignment]
@@ -130,12 +138,12 @@
async def _connect_sock(
loop: asyncio.AbstractEventLoop,
- exceptions: List[List[OSError]],
+ exceptions: List[List[Union[OSError, RuntimeError]]],
addr_info: AddrInfoType,
local_addr_infos: Optional[Sequence[AddrInfoType]] = None,
) -> socket.socket:
"""Create, bind and connect one socket."""
- my_exceptions: list[OSError] = []
+ my_exceptions: List[Union[OSError, RuntimeError]] = []
exceptions.append(my_exceptions)
family, type_, proto, _, address = addr_info
sock = None
@@ -165,7 +173,7 @@
raise OSError(f"no matching local address with {family=} found")
await loop.sock_connect(sock, address)
return sock
- except OSError as exc:
+ except (RuntimeError, OSError) as exc:
my_exceptions.append(exc)
if sock is not None:
sock.close()
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/aiohappyeyeballs-2.3.7/src/aiohappyeyeballs/utils.py new/aiohappyeyeballs-2.4.3/src/aiohappyeyeballs/utils.py
--- old/aiohappyeyeballs-2.3.7/src/aiohappyeyeballs/utils.py 2024-08-17 15:00:11.435407200 +0200
+++ new/aiohappyeyeballs-2.4.3/src/aiohappyeyeballs/utils.py 2024-09-30 21:40:43.735043300 +0200
@@ -10,7 +10,7 @@
def addr_to_addr_infos(
addr: Optional[
Union[Tuple[str, int, int, int], Tuple[str, int, int], Tuple[str, int]]
- ]
+ ],
) -> Optional[List[AddrInfoType]]:
"""Convert an address tuple to a list of addr_info tuples."""
if addr is None:
@@ -59,7 +59,7 @@
def _addr_tuple_to_ip_address(
- addr: Union[Tuple[str, int], Tuple[str, int, int, int]]
+ addr: Union[Tuple[str, int], Tuple[str, int, int, int]],
) -> Union[
Tuple[ipaddress.IPv4Address, int], Tuple[ipaddress.IPv6Address, int, int, int]
]:
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/aiohappyeyeballs-2.3.7/tests/conftest.py new/aiohappyeyeballs-2.4.3/tests/conftest.py
--- old/aiohappyeyeballs-2.3.7/tests/conftest.py 1970-01-01 01:00:00.000000000 +0100
+++ new/aiohappyeyeballs-2.4.3/tests/conftest.py 2024-09-30 21:40:43.735043300 +0200
@@ -0,0 +1,32 @@
+"""Configuration for the tests."""
+
+import asyncio
+import threading
+from typing import Generator
+
+import pytest
+
+
+(a)pytest.fixture(autouse=True)
+def verify_threads_ended():
+ """Verify that the threads are not running after the test."""
+ threads_before = frozenset(threading.enumerate())
+ yield
+ threads = frozenset(threading.enumerate()) - threads_before
+ assert not threads
+
+
+(a)pytest.fixture(autouse=True)
+def verify_no_lingering_tasks(
+ event_loop: asyncio.AbstractEventLoop,
+) -> Generator[None, None, None]:
+ """Verify that all tasks are cleaned up."""
+ tasks_before = asyncio.all_tasks(event_loop)
+ yield
+
+ tasks = asyncio.all_tasks(event_loop) - tasks_before
+ for task in tasks:
+ pytest.fail(f"Task still running: {task!r}")
+ task.cancel()
+ if tasks:
+ event_loop.run_until_complete(asyncio.wait(tasks))
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/aiohappyeyeballs-2.3.7/tests/test_impl.py new/aiohappyeyeballs-2.4.3/tests/test_impl.py
--- old/aiohappyeyeballs-2.3.7/tests/test_impl.py 2024-08-17 15:00:11.435407200 +0200
+++ new/aiohappyeyeballs-2.4.3/tests/test_impl.py 2024-09-30 21:40:43.735043300 +0200
@@ -1368,6 +1368,458 @@
]
+@patch_socket
+(a)pytest.mark.asyncio
+async def test_uvloop_runtime_error(
+ m_socket: ModuleType,
+) -> None:
+ """
+ Test RuntimeError is handled when connecting a socket with uvloop.
+
+ Connecting a socket can raise a RuntimeError, OSError or ValueError.
+
+ - OSError: If the address is invalid or the connection fails.
+ - ValueError: if a non-sock it passed (this should never happen).
+ https://github.com/python/cpython/blob/e44eebfc1eccdaaebc219accbfc705c9a9de…
+ - RuntimeError: If the file descriptor is already in use by a transport.
+
+ We should never get ValueError since we are using the correct types.
+
+ selector_events.py never seems to raise a RuntimeError, but it is possible
+ with uvloop. This test is to ensure that we handle it correctly.
+ """
+ mock_socket = mock.MagicMock(
+ family=socket.AF_INET,
+ type=socket.SOCK_STREAM,
+ proto=socket.IPPROTO_TCP,
+ fileno=mock.MagicMock(return_value=1),
+ )
+ create_calls = []
+
+ def _socket(*args, **kw):
+ for attr in kw:
+ setattr(mock_socket, attr, kw[attr])
+ return mock_socket
+
+ async def _sock_connect(
+ sock: socket.socket, address: Tuple[str, int, int, int]
+ ) -> None:
+ create_calls.append(address)
+ raise RuntimeError("all fail")
+
+ m_socket.socket = _socket # type: ignore
+ ipv6_addr_info = (
+ socket.AF_INET6,
+ socket.SOCK_STREAM,
+ socket.IPPROTO_TCP,
+ "",
+ ("dead:beef::", 80, 0, 0),
+ )
+ ipv6_addr_info_2 = (
+ socket.AF_INET6,
+ socket.SOCK_STREAM,
+ socket.IPPROTO_TCP,
+ "",
+ ("dead:aaaa::", 80, 0, 0),
+ )
+ ipv4_addr_info = (
+ socket.AF_INET,
+ socket.SOCK_STREAM,
+ socket.IPPROTO_TCP,
+ "",
+ ("107.6.106.83", 80),
+ )
+ addr_info = [ipv6_addr_info, ipv6_addr_info_2, ipv4_addr_info]
+ local_addr_infos = [
+ (
+ socket.AF_INET6,
+ socket.SOCK_STREAM,
+ socket.IPPROTO_TCP,
+ "",
+ ("::1", 0, 0, 0),
+ ),
+ (
+ socket.AF_INET,
+ socket.SOCK_STREAM,
+ socket.IPPROTO_TCP,
+ "",
+ ("127.0.0.1", 0),
+ ),
+ ]
+ loop = asyncio.get_running_loop()
+ # We should get the same exception raised if they are all the same
+ with mock.patch.object(loop, "sock_connect", _sock_connect), pytest.raises(
+ RuntimeError, match="all fail"
+ ):
+ assert (
+ await start_connection(
+ addr_info,
+ happy_eyeballs_delay=0.3,
+ interleave=2,
+ local_addr_infos=local_addr_infos,
+ )
+ == mock_socket
+ )
+
+ # All calls failed
+ assert create_calls == [
+ ("dead:beef::", 80, 0, 0),
+ ("dead:aaaa::", 80, 0, 0),
+ ("107.6.106.83", 80),
+ ]
+
+
+@patch_socket
+(a)pytest.mark.asyncio
+async def test_uvloop_different_runtime_error(
+ m_socket: ModuleType,
+) -> None:
+ """Test different RuntimeErrors are handled when connecting a socket with uvloop."""
+ mock_socket = mock.MagicMock(
+ family=socket.AF_INET,
+ type=socket.SOCK_STREAM,
+ proto=socket.IPPROTO_TCP,
+ fileno=mock.MagicMock(return_value=1),
+ )
+ create_calls = []
+ counter = 0
+
+ def _socket(*args, **kw):
+ for attr in kw:
+ setattr(mock_socket, attr, kw[attr])
+ return mock_socket
+
+ async def _sock_connect(
+ sock: socket.socket, address: Tuple[str, int, int, int]
+ ) -> None:
+ create_calls.append(address)
+ nonlocal counter
+ counter += 1
+ raise RuntimeError(counter)
+
+ m_socket.socket = _socket # type: ignore
+ ipv6_addr_info = (
+ socket.AF_INET6,
+ socket.SOCK_STREAM,
+ socket.IPPROTO_TCP,
+ "",
+ ("dead:beef::", 80, 0, 0),
+ )
+ ipv6_addr_info_2 = (
+ socket.AF_INET6,
+ socket.SOCK_STREAM,
+ socket.IPPROTO_TCP,
+ "",
+ ("dead:aaaa::", 80, 0, 0),
+ )
+ ipv4_addr_info = (
+ socket.AF_INET,
+ socket.SOCK_STREAM,
+ socket.IPPROTO_TCP,
+ "",
+ ("107.6.106.83", 80),
+ )
+ addr_info = [ipv6_addr_info, ipv6_addr_info_2, ipv4_addr_info]
+ local_addr_infos = [
+ (
+ socket.AF_INET6,
+ socket.SOCK_STREAM,
+ socket.IPPROTO_TCP,
+ "",
+ ("::1", 0, 0, 0),
+ ),
+ (
+ socket.AF_INET,
+ socket.SOCK_STREAM,
+ socket.IPPROTO_TCP,
+ "",
+ ("127.0.0.1", 0),
+ ),
+ ]
+ loop = asyncio.get_running_loop()
+ # We should get the same exception raised if they are all the same
+ with mock.patch.object(loop, "sock_connect", _sock_connect), pytest.raises(
+ RuntimeError, match="Multiple exceptions: 1, 2, 3"
+ ):
+ assert (
+ await start_connection(
+ addr_info,
+ happy_eyeballs_delay=0.3,
+ interleave=2,
+ local_addr_infos=local_addr_infos,
+ )
+ == mock_socket
+ )
+
+ # All calls failed
+ assert create_calls == [
+ ("dead:beef::", 80, 0, 0),
+ ("dead:aaaa::", 80, 0, 0),
+ ("107.6.106.83", 80),
+ ]
+
+
+@patch_socket
+(a)pytest.mark.asyncio
+async def test_uvloop_mixing_os_and_runtime_error(
+ m_socket: ModuleType,
+) -> None:
+ """Test uvloop raising OSError and RuntimeError."""
+ mock_socket = mock.MagicMock(
+ family=socket.AF_INET,
+ type=socket.SOCK_STREAM,
+ proto=socket.IPPROTO_TCP,
+ fileno=mock.MagicMock(return_value=1),
+ )
+ create_calls = []
+ counter = 0
+
+ def _socket(*args, **kw):
+ for attr in kw:
+ setattr(mock_socket, attr, kw[attr])
+ return mock_socket
+
+ async def _sock_connect(
+ sock: socket.socket, address: Tuple[str, int, int, int]
+ ) -> None:
+ create_calls.append(address)
+ nonlocal counter
+ counter += 1
+ if counter == 1:
+ raise RuntimeError(counter)
+ raise OSError(counter, f"all fail {counter}")
+
+ m_socket.socket = _socket # type: ignore
+ ipv6_addr_info = (
+ socket.AF_INET6,
+ socket.SOCK_STREAM,
+ socket.IPPROTO_TCP,
+ "",
+ ("dead:beef::", 80, 0, 0),
+ )
+ ipv6_addr_info_2 = (
+ socket.AF_INET6,
+ socket.SOCK_STREAM,
+ socket.IPPROTO_TCP,
+ "",
+ ("dead:aaaa::", 80, 0, 0),
+ )
+ ipv4_addr_info = (
+ socket.AF_INET,
+ socket.SOCK_STREAM,
+ socket.IPPROTO_TCP,
+ "",
+ ("107.6.106.83", 80),
+ )
+ addr_info = [ipv6_addr_info, ipv6_addr_info_2, ipv4_addr_info]
+ local_addr_infos = [
+ (
+ socket.AF_INET6,
+ socket.SOCK_STREAM,
+ socket.IPPROTO_TCP,
+ "",
+ ("::1", 0, 0, 0),
+ ),
+ (
+ socket.AF_INET,
+ socket.SOCK_STREAM,
+ socket.IPPROTO_TCP,
+ "",
+ ("127.0.0.1", 0),
+ ),
+ ]
+ loop = asyncio.get_running_loop()
+ # We should get the same exception raised if they are all the same
+ with mock.patch.object(loop, "sock_connect", _sock_connect), pytest.raises(
+ OSError, match="Multiple exceptions: 1"
+ ):
+ assert (
+ await start_connection(
+ addr_info,
+ happy_eyeballs_delay=0.3,
+ interleave=2,
+ local_addr_infos=local_addr_infos,
+ )
+ == mock_socket
+ )
+
+ # All calls failed
+ assert create_calls == [
+ ("dead:beef::", 80, 0, 0),
+ ("dead:aaaa::", 80, 0, 0),
+ ("107.6.106.83", 80),
+ ]
+
+
+@patch_socket
+(a)pytest.mark.asyncio
+(a)pytest.mark.xfail(reason="raises RuntimeError: coroutine ignored GeneratorExit")
+async def test_handling_system_exit(
+ m_socket: ModuleType,
+) -> None:
+ """Test handling SystemExit."""
+ mock_socket = mock.MagicMock(
+ family=socket.AF_INET,
+ type=socket.SOCK_STREAM,
+ proto=socket.IPPROTO_TCP,
+ fileno=mock.MagicMock(return_value=1),
+ )
+ create_calls = []
+
+ def _socket(*args, **kw):
+ for attr in kw:
+ setattr(mock_socket, attr, kw[attr])
+ return mock_socket
+
+ async def _sock_connect(
+ sock: socket.socket, address: Tuple[str, int, int, int]
+ ) -> None:
+ create_calls.append(address)
+ raise SystemExit
+
+ m_socket.socket = _socket # type: ignore
+ ipv6_addr_info = (
+ socket.AF_INET6,
+ socket.SOCK_STREAM,
+ socket.IPPROTO_TCP,
+ "",
+ ("dead:beef::", 80, 0, 0),
+ )
+ ipv6_addr_info_2 = (
+ socket.AF_INET6,
+ socket.SOCK_STREAM,
+ socket.IPPROTO_TCP,
+ "",
+ ("dead:aaaa::", 80, 0, 0),
+ )
+ ipv4_addr_info = (
+ socket.AF_INET,
+ socket.SOCK_STREAM,
+ socket.IPPROTO_TCP,
+ "",
+ ("107.6.106.83", 80),
+ )
+ addr_info = [ipv6_addr_info, ipv6_addr_info_2, ipv4_addr_info]
+ local_addr_infos = [
+ (
+ socket.AF_INET6,
+ socket.SOCK_STREAM,
+ socket.IPPROTO_TCP,
+ "",
+ ("::1", 0, 0, 0),
+ ),
+ (
+ socket.AF_INET,
+ socket.SOCK_STREAM,
+ socket.IPPROTO_TCP,
+ "",
+ ("127.0.0.1", 0),
+ ),
+ ]
+ loop = asyncio.get_running_loop()
+ with pytest.raises(SystemExit), mock.patch.object(
+ loop, "sock_connect", _sock_connect
+ ):
+ await start_connection(
+ addr_info,
+ happy_eyeballs_delay=0.3,
+ interleave=2,
+ local_addr_infos=local_addr_infos,
+ )
+
+ # Stopped after the first call
+ assert create_calls == [
+ ("dead:beef::", 80, 0, 0),
+ ]
+
+
+@patch_socket
+(a)pytest.mark.asyncio
+async def test_cancellation_is_not_swallowed(
+ m_socket: ModuleType,
+) -> None:
+ """Test that cancellation is not swallowed."""
+ mock_socket = mock.MagicMock(
+ family=socket.AF_INET,
+ type=socket.SOCK_STREAM,
+ proto=socket.IPPROTO_TCP,
+ fileno=mock.MagicMock(return_value=1),
+ )
+ create_calls = []
+
+ def _socket(*args, **kw):
+ for attr in kw:
+ setattr(mock_socket, attr, kw[attr])
+ return mock_socket
+
+ async def _sock_connect(
+ sock: socket.socket, address: Tuple[str, int, int, int]
+ ) -> None:
+ create_calls.append(address)
+ await asyncio.sleep(1000)
+
+ m_socket.socket = _socket # type: ignore
+ ipv6_addr_info = (
+ socket.AF_INET6,
+ socket.SOCK_STREAM,
+ socket.IPPROTO_TCP,
+ "",
+ ("dead:beef::", 80, 0, 0),
+ )
+ ipv6_addr_info_2 = (
+ socket.AF_INET6,
+ socket.SOCK_STREAM,
+ socket.IPPROTO_TCP,
+ "",
+ ("dead:aaaa::", 80, 0, 0),
+ )
+ ipv4_addr_info = (
+ socket.AF_INET,
+ socket.SOCK_STREAM,
+ socket.IPPROTO_TCP,
+ "",
+ ("107.6.106.83", 80),
+ )
+ addr_info = [ipv6_addr_info, ipv6_addr_info_2, ipv4_addr_info]
+ local_addr_infos = [
+ (
+ socket.AF_INET6,
+ socket.SOCK_STREAM,
+ socket.IPPROTO_TCP,
+ "",
+ ("::1", 0, 0, 0),
+ ),
+ (
+ socket.AF_INET,
+ socket.SOCK_STREAM,
+ socket.IPPROTO_TCP,
+ "",
+ ("127.0.0.1", 0),
+ ),
+ ]
+ loop = asyncio.get_running_loop()
+ # We should get the same exception raised if they are all the same
+ with mock.patch.object(loop, "sock_connect", _sock_connect), pytest.raises(
+ asyncio.CancelledError
+ ):
+ task = asyncio.create_task(
+ start_connection(
+ addr_info,
+ happy_eyeballs_delay=0.3,
+ interleave=2,
+ local_addr_infos=local_addr_infos,
+ )
+ )
+ await asyncio.sleep(0)
+ task.cancel()
+ await task
+
+ # After calls are cancelled now more are made
+ assert create_calls == [
+ ("dead:beef::", 80, 0, 0),
+ ]
+
+
@pytest.mark.asyncio
@pytest.mark.skipif(sys.version_info >= (3, 8, 2), reason="requires < python 3.8.2")
def test_python_38_compat() -> None:
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/aiohappyeyeballs-2.3.7/tests/test_staggered.py new/aiohappyeyeballs-2.4.3/tests/test_staggered.py
--- old/aiohappyeyeballs-2.3.7/tests/test_staggered.py 1970-01-01 01:00:00.000000000 +0100
+++ new/aiohappyeyeballs-2.4.3/tests/test_staggered.py 2024-09-30 21:40:43.735043300 +0200
@@ -0,0 +1,86 @@
+import asyncio
+import sys
+from functools import partial
+
+import pytest
+
+from aiohappyeyeballs._staggered import staggered_race
+
+
+(a)pytest.mark.asyncio
+async def test_one_winners():
+ """Test that there is only one winner when there is no await in the coro."""
+ winners = []
+
+ async def coro(idx):
+ winners.append(idx)
+ return idx
+
+ coros = [partial(coro, idx) for idx in range(4)]
+
+ winner, index, excs = await staggered_race(
+ coros,
+ delay=None,
+ )
+ assert len(winners) == 1
+ assert winners == [0]
+ assert winner == 0
+ assert index == 0
+ assert excs == [None]
+
+
+(a)pytest.mark.asyncio
+async def test_multiple_winners():
+ """Test multiple winners are handled correctly."""
+ loop = asyncio.get_running_loop()
+ winners = []
+ finish = loop.create_future()
+
+ async def coro(idx):
+ await finish
+ winners.append(idx)
+ return idx
+
+ coros = [partial(coro, idx) for idx in range(4)]
+
+ task = loop.create_task(staggered_race(coros, delay=0.00001))
+ await asyncio.sleep(0.1)
+ loop.call_soon(finish.set_result, None)
+ winner, index, excs = await task
+ assert len(winners) == 4
+ assert winners == [0, 1, 2, 3]
+ assert winner == 0
+ assert index == 0
+ assert excs == [None, None, None, None]
+
+
+(a)pytest.mark.skipif(sys.version_info < (3, 12), reason="requires python3.12 or higher")
+def test_multiple_winners_eager_task_factory():
+ """Test multiple winners are handled correctly."""
+ loop = asyncio.new_event_loop()
+ eager_task_factory = asyncio.create_eager_task_factory(asyncio.Task)
+ loop.set_task_factory(eager_task_factory)
+ asyncio.set_event_loop(None)
+
+ async def run():
+ winners = []
+ finish = loop.create_future()
+
+ async def coro(idx):
+ await finish
+ winners.append(idx)
+ return idx
+
+ coros = [partial(coro, idx) for idx in range(4)]
+
+ task = loop.create_task(staggered_race(coros, delay=0.00001))
+ await asyncio.sleep(0.1)
+ loop.call_soon(finish.set_result, None)
+ winner, index, excs = await task
+ assert len(winners) == 4
+ assert winners == [0, 1, 2, 3]
+ assert winner == 0
+ assert index == 0
+ assert excs == [None, None, None, None]
+
+ loop.run_until_complete(run())
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/aiohappyeyeballs-2.3.7/tests/test_staggered_cpython.py new/aiohappyeyeballs-2.4.3/tests/test_staggered_cpython.py
--- old/aiohappyeyeballs-2.3.7/tests/test_staggered_cpython.py 1970-01-01 01:00:00.000000000 +0100
+++ new/aiohappyeyeballs-2.4.3/tests/test_staggered_cpython.py 2024-09-30 21:40:43.735043300 +0200
@@ -0,0 +1,146 @@
+"""
+Tests for staggered_race.
+
+These tests are copied from cpython to ensure our implementation is
+compatible with the one in cpython.
+"""
+
+import asyncio
+import unittest
+
+from aiohappyeyeballs._staggered import staggered_race
+
+
+def tearDownModule():
+ asyncio.set_event_loop_policy(None)
+
+
+class StaggeredTests(unittest.IsolatedAsyncioTestCase):
+ async def test_empty(self):
+ winner, index, excs = await staggered_race(
+ [],
+ delay=None,
+ )
+
+ self.assertIs(winner, None)
+ self.assertIs(index, None)
+ self.assertEqual(excs, [])
+
+ async def test_one_successful(self):
+ async def coro(index):
+ return f"Res: {index}"
+
+ winner, index, excs = await staggered_race(
+ [
+ lambda: coro(0),
+ lambda: coro(1),
+ ],
+ delay=None,
+ )
+
+ self.assertEqual(winner, "Res: 0")
+ self.assertEqual(index, 0)
+ self.assertEqual(excs, [None])
+
+ async def test_first_error_second_successful(self):
+ async def coro(index):
+ if index == 0:
+ raise ValueError(index)
+ return f"Res: {index}"
+
+ winner, index, excs = await staggered_race(
+ [
+ lambda: coro(0),
+ lambda: coro(1),
+ ],
+ delay=None,
+ )
+
+ self.assertEqual(winner, "Res: 1")
+ self.assertEqual(index, 1)
+ self.assertEqual(len(excs), 2)
+ self.assertIsInstance(excs[0], ValueError)
+ self.assertIs(excs[1], None)
+
+ async def test_first_timeout_second_successful(self):
+ async def coro(index):
+ if index == 0:
+ await asyncio.sleep(10) # much bigger than delay
+ return f"Res: {index}"
+
+ winner, index, excs = await staggered_race(
+ [
+ lambda: coro(0),
+ lambda: coro(1),
+ ],
+ delay=0.1,
+ )
+
+ self.assertEqual(winner, "Res: 1")
+ self.assertEqual(index, 1)
+ self.assertEqual(len(excs), 2)
+ self.assertIsInstance(excs[0], asyncio.CancelledError)
+ self.assertIs(excs[1], None)
+
+ async def test_none_successful(self):
+ async def coro(index):
+ raise ValueError(index)
+
+ for delay in [None, 0, 0.1, 1]:
+ with self.subTest(delay=delay):
+ winner, index, excs = await staggered_race(
+ [
+ lambda: coro(0),
+ lambda: coro(1),
+ ],
+ delay=delay,
+ )
+
+ self.assertIs(winner, None)
+ self.assertIs(index, None)
+ self.assertEqual(len(excs), 2)
+ self.assertIsInstance(excs[0], ValueError)
+ self.assertIsInstance(excs[1], ValueError)
+
+ async def test_long_delay_early_failure(self):
+ async def coro(index):
+ await asyncio.sleep(0) # Dummy coroutine for the 1 case
+ if index == 0:
+ await asyncio.sleep(0.1) # Dummy coroutine
+ raise ValueError(index)
+
+ return f"Res: {index}"
+
+ winner, index, excs = await staggered_race(
+ [
+ lambda: coro(0),
+ lambda: coro(1),
+ ],
+ delay=10,
+ )
+
+ self.assertEqual(winner, "Res: 1")
+ self.assertEqual(index, 1)
+ self.assertEqual(len(excs), 2)
+ self.assertIsInstance(excs[0], ValueError)
+ self.assertIsNone(excs[1])
+
+ def test_loop_argument(self):
+ loop = asyncio.new_event_loop()
+
+ async def coro():
+ self.assertEqual(loop, asyncio.get_running_loop())
+ return "coro"
+
+ async def main():
+ winner, index, excs = await staggered_race([coro], delay=0.1, loop=loop)
+
+ self.assertEqual(winner, "coro")
+ self.assertEqual(index, 0)
+
+ loop.run_until_complete(main())
+ loop.close()
+
+
+if __name__ == "__main__":
+ unittest.main()
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/aiohappyeyeballs-2.3.7/tests/test_staggered_cpython_eager_task_factory.py new/aiohappyeyeballs-2.4.3/tests/test_staggered_cpython_eager_task_factory.py
--- old/aiohappyeyeballs-2.3.7/tests/test_staggered_cpython_eager_task_factory.py 1970-01-01 01:00:00.000000000 +0100
+++ new/aiohappyeyeballs-2.4.3/tests/test_staggered_cpython_eager_task_factory.py 2024-09-30 21:40:43.735043300 +0200
@@ -0,0 +1,96 @@
+"""
+Tests staggered_race and eager_task_factory with asyncio.Task.
+
+These tests are copied from cpython to ensure our implementation is
+compatible with the one in cpython.
+"""
+
+import asyncio
+import sys
+import unittest
+
+from aiohappyeyeballs._staggered import staggered_race
+
+
+def tearDownModule():
+ asyncio.set_event_loop_policy(None)
+
+
+class EagerTaskFactoryLoopTests(unittest.TestCase):
+ def close_loop(self, loop):
+ loop.close()
+
+ def set_event_loop(self, loop, *, cleanup=True):
+ if loop is None:
+ raise AssertionError("loop is None")
+ # ensure that the event loop is passed explicitly in asyncio
+ asyncio.set_event_loop(None)
+ if cleanup:
+ self.addCleanup(self.close_loop, loop)
+
+ def tearDown(self):
+ asyncio.set_event_loop(None)
+ self.doCleanups()
+
+ def setUp(self):
+ if sys.version_info < (3, 12):
+ self.skipTest("eager_task_factory is only available in Python 3.12+")
+
+ super().setUp()
+ self.loop = asyncio.new_event_loop()
+ self.eager_task_factory = asyncio.create_eager_task_factory(asyncio.Task)
+ self.loop.set_task_factory(self.eager_task_factory)
+ self.set_event_loop(self.loop)
+
+ def test_staggered_race_with_eager_tasks(self):
+ # See https://github.com/python/cpython/issues/124309
+
+ async def fail():
+ await asyncio.sleep(0)
+ raise ValueError("no good")
+
+ async def run():
+ winner, index, excs = await staggered_race(
+ [
+ lambda: asyncio.sleep(2, result="sleep2"),
+ lambda: asyncio.sleep(1, result="sleep1"),
+ lambda: fail(),
+ ],
+ delay=0.25,
+ )
+ self.assertEqual(winner, "sleep1")
+ self.assertEqual(index, 1)
+ assert index is not None
+ self.assertIsNone(excs[index])
+ self.assertIsInstance(excs[0], asyncio.CancelledError)
+ self.assertIsInstance(excs[2], ValueError)
+
+ self.loop.run_until_complete(run())
+
+ def test_staggered_race_with_eager_tasks_no_delay(self):
+ # See https://github.com/python/cpython/issues/124309
+ async def fail():
+ raise ValueError("no good")
+
+ async def run():
+ winner, index, excs = await staggered_race(
+ [
+ lambda: fail(),
+ lambda: asyncio.sleep(1, result="sleep1"),
+ lambda: asyncio.sleep(0, result="sleep0"),
+ ],
+ delay=None,
+ )
+ self.assertEqual(winner, "sleep1")
+ self.assertEqual(index, 1)
+ assert index is not None
+ self.assertIsNone(excs[index])
+ self.assertIsInstance(excs[0], ValueError)
+ self.assertEqual(len(excs), 2)
+
+ self.loop.run_until_complete(run())
+
+
+if __name__ == "__main__":
+ if sys.version_info >= (3, 12):
+ unittest.main()
1
0
Script 'mail_helper' called by obssrc
Hello community,
here is the log from the commit of package yast2-trans for openSUSE:Factory checked in at 2024-10-30 17:32:34
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/yast2-trans (Old)
and /work/SRC/openSUSE:Factory/.yast2-trans.new.2020 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "yast2-trans"
Wed Oct 30 17:32:34 2024 rev:352 rq:1219088 version:84.87.20241029.4907c8ec47
Changes:
--------
--- /work/SRC/openSUSE:Factory/yast2-trans/yast2-trans.changes 2024-08-07 06:10:18.894097875 +0200
+++ /work/SRC/openSUSE:Factory/.yast2-trans.new.2020/yast2-trans.changes 2024-10-30 17:32:40.255820552 +0100
@@ -1,0 +2,511 @@
+Tue Oct 29 16:11:51 UTC 2024 - git(a)opensuse.org
+
+- Update to version 84.87.20241029.4907c8ec47:
+ * Translated using Weblate (Swedish)
+ * Translated using Weblate (Czech)
+ * New POT for text domain 'control'.
+ * Translated using Weblate (German)
+ * Translated using Weblate (Dutch)
+ * Translated using Weblate (Catalan)
+ * Translated using Weblate (Japanese)
+ * Translated using Weblate (French)
+ * Translated using Weblate (Slovak)
+ * Translated using Weblate (Slovenian)
+ * Translated using Weblate (Slovenian)
+ * New POT for text domain 'auth-client'.
+ * Translated using Weblate (Slovenian)
+ * Translated using Weblate (Slovenian)
+ * Translated using Weblate (Slovenian)
+ * Translated using Weblate (Slovenian)
+ * Translated using Weblate (Slovenian)
+ * Translated using Weblate (Slovenian)
+ * Translated using Weblate (Slovenian)
+ * Translated using Weblate (Slovenian)
+ * Translated using Weblate (Slovenian)
+ * Translated using Weblate (Slovenian)
+ * Translated using Weblate (Slovenian)
+ * Translated using Weblate (Slovenian)
+ * Translated using Weblate (Slovenian)
+ * Translated using Weblate (Slovenian)
+ * Translated using Weblate (Slovenian)
+ * Translated using Weblate (Slovenian)
+ * Translated using Weblate (Slovenian)
+ * Translated using Weblate (Galician)
+ * Translated using Weblate (Czech)
+ * Translated using Weblate (Spanish)
+ * Translated using Weblate (Spanish)
+ * Translated using Weblate (Spanish)
+ * Translated using Weblate (Spanish)
+ * Translated using Weblate (Spanish)
+ * Translated using Weblate (Spanish)
+ * Translated using Weblate (Spanish)
+ * Translated using Weblate (Dutch)
+ * Translated using Weblate (Slovak)
+ * Translated using Weblate (French)
+ * Translated using Weblate (Japanese)
+ * Translated using Weblate (Arabic)
+ * Translated using Weblate (Catalan)
+ * New POT for text domain 'installation'.
+ * Translated using Weblate (Spanish)
+ * Translated using Weblate (Slovenian)
+ * Translated using Weblate (Slovenian)
+ * Translated using Weblate (Slovenian)
+ * New POT for text domain 'security'.
+ * New POT for text domain 'iscsi-client'.
+ * Translated using Weblate (Lithuanian)
+ * New POT for text domain 'registration'.
+ * Translated using Weblate (Turkish)
+ * Translated using Weblate (Turkish)
+ * Translated using Weblate (Turkish)
+ * Translated using Weblate (Turkish)
+ * Translated using Weblate (Turkish)
+ * Translated using Weblate (Turkish)
+ * Translated using Weblate (Turkish)
+ * Translated using Weblate (Turkish)
+ * Translated using Weblate (Turkish)
+ * Translated using Weblate (Turkish)
+ * Translated using Weblate (Turkish)
+ * Translated using Weblate (Turkish)
+ * Translated using Weblate (Turkish)
+ * Translated using Weblate (Turkish)
+ * Translated using Weblate (Turkish)
+ * Translated using Weblate (Turkish)
+ * Translated using Weblate (Turkish)
+ * Translated using Weblate (Turkish)
+ * Translated using Weblate (Turkish)
+ * Translated using Weblate (Turkish)
+ * Translated using Weblate (Turkish)
+ * Translated using Weblate (Turkish)
+ * Translated using Weblate (Turkish)
+ * Translated using Weblate (Turkish)
+ * Translated using Weblate (Turkish)
+ * Translated using Weblate (Turkish)
+ * Translated using Weblate (Turkish)
+ * Translated using Weblate (Turkish)
+ * Translated using Weblate (Turkish)
+ * Translated using Weblate (Turkish)
+ * Translated using Weblate (Turkish)
+ * Translated using Weblate (Turkish)
+ * Translated using Weblate (Turkish)
+ * Translated using Weblate (Turkish)
+ * Translated using Weblate (Turkish)
+ * Translated using Weblate (Turkish)
+ * Translated using Weblate (Turkish)
+ * Translated using Weblate (Turkish)
+ * Translated using Weblate (Turkish)
+ * Translated using Weblate (Turkish)
+ * Translated using Weblate (Turkish)
+ * Translated using Weblate (Turkish)
+ * Translated using Weblate (Turkish)
+ * Translated using Weblate (Turkish)
+ * Translated using Weblate (Turkish)
+ * Translated using Weblate (Turkish)
+ * Translated using Weblate (Turkish)
+ * Translated using Weblate (Turkish)
+ * Translated using Weblate (Turkish)
+ * Translated using Weblate (Turkish)
+ * Translated using Weblate (Turkish)
+ * Translated using Weblate (Turkish)
+ * Translated using Weblate (Turkish)
+ * Translated using Weblate (Turkish)
+ * Translated using Weblate (Turkish)
+ * Translated using Weblate (Turkish)
+ * Translated using Weblate (Turkish)
+ * Translated using Weblate (Turkish)
+ * Translated using Weblate (Turkish)
+ * Translated using Weblate (Turkish)
+ * Translated using Weblate (Turkish)
+ * Translated using Weblate (Turkish)
+ * Translated using Weblate (Turkish)
+ * Translated using Weblate (Turkish)
+ * Translated using Weblate (Turkish)
+ * Translated using Weblate (Turkish)
+ * Translated using Weblate (Turkish)
+ * Translated using Weblate (Turkish)
+ * Translated using Weblate (Turkish)
+ * Translated using Weblate (Turkish)
+ * Translated using Weblate (Turkish)
+ * Translated using Weblate (Turkish)
+ * Translated using Weblate (Turkish)
+ * Translated using Weblate (Turkish)
+ * Translated using Weblate (Turkish)
+ * Translated using Weblate (Turkish)
+ * Translated using Weblate (Turkish)
+ * Translated using Weblate (Turkish)
+ * Translated using Weblate (Turkish)
+ * Translated using Weblate (Turkish)
+ * Translated using Weblate (Turkish)
+ * Translated using Weblate (Turkish)
+ * Translated using Weblate (Turkish)
+ * Translated using Weblate (Turkish)
+ * Translated using Weblate (Turkish)
+ * Translated using Weblate (Turkish)
+ * Translated using Weblate (Turkish)
+ * Translated using Weblate (Turkish)
+ * Translated using Weblate (Turkish)
+ * Translated using Weblate (Turkish)
+ * Translated using Weblate (Turkish)
+ * Translated using Weblate (Turkish)
+ * Translated using Weblate (Turkish)
+ * Translated using Weblate (Turkish)
+ * Translated using Weblate (Turkish)
+ * Translated using Weblate (Turkish)
+ * Translated using Weblate (Turkish)
+ * Translated using Weblate (Turkish)
+ * Translated using Weblate (Turkish)
+ * Translated using Weblate (Turkish)
+ * Translated using Weblate (Turkish)
+ * Translated using Weblate (Turkish)
+ * Translated using Weblate (Turkish)
+ * Translated using Weblate (Turkish)
+ * Translated using Weblate (Turkish)
+ * Translated using Weblate (Turkish)
+ * Translated using Weblate (Turkish)
+ * Translated using Weblate (Turkish)
+ * Translated using Weblate (Turkish)
+ * Translated using Weblate (Turkish)
+ * Translated using Weblate (Turkish)
+ * Translated using Weblate (Turkish)
+ * Translated using Weblate (Turkish)
+ * Translated using Weblate (Turkish)
+ * Translated using Weblate (Turkish)
+ * Translated using Weblate (Turkish)
+ * Translated using Weblate (Turkish)
+ * Translated using Weblate (Turkish)
+ * Translated using Weblate (Turkish)
+ * Translated using Weblate (Turkish)
+ * Translated using Weblate (Turkish)
+ * Translated using Weblate (Turkish)
+ * Translated using Weblate (Turkish)
+ * Translated using Weblate (Turkish)
+ * Translated using Weblate (Turkish)
+ * Translated using Weblate (Galician)
+ * Translated using Weblate (Galician)
+ * Translated using Weblate (Galician)
+ * Translated using Weblate (Galician)
+ * Translated using Weblate (Turkish)
+ * Translated using Weblate (Turkish)
+ * Translated using Weblate (Turkish)
+ * Translated using Weblate (Turkish)
+ * Translated using Weblate (Turkish)
+ * Translated using Weblate (Turkish)
+ * Translated using Weblate (Turkish)
+ * Translated using Weblate (Turkish)
+ * Translated using Weblate (Turkish)
+ * Translated using Weblate (Turkish)
+ * Translated using Weblate (Turkish)
+ * Translated using Weblate (Turkish)
+ * Translated using Weblate (Turkish)
+ * Translated using Weblate (Turkish)
+ * Translated using Weblate (Turkish)
+ * Translated using Weblate (Turkish)
+ * Translated using Weblate (Turkish)
+ * Translated using Weblate (Turkish)
+ * Translated using Weblate (Turkish)
+ * Translated using Weblate (Turkish)
+ * Translated using Weblate (Turkish)
+ * Translated using Weblate (Turkish)
+ * Translated using Weblate (Turkish)
+ * Translated using Weblate (Turkish)
+ * Translated using Weblate (Turkish)
+ * Translated using Weblate (Turkish)
+ * Translated using Weblate (Turkish)
+ * Translated using Weblate (Turkish)
+ * Translated using Weblate (Turkish)
+ * Translated using Weblate (Turkish)
+ * Translated using Weblate (Turkish)
+ * Translated using Weblate (Turkish)
+ * Translated using Weblate (Turkish)
+ * Translated using Weblate (Turkish)
+ * Translated using Weblate (Turkish)
+ * Translated using Weblate (Turkish)
+ * Translated using Weblate (Turkish)
+ * Translated using Weblate (Turkish)
+ * Translated using Weblate (Turkish)
+ * Translated using Weblate (Turkish)
+ * Translated using Weblate (Turkish)
+ * Translated using Weblate (Turkish)
+ * Translated using Weblate (Turkish)
+ * Translated using Weblate (Turkish)
+ * Translated using Weblate (Turkish)
+ * Translated using Weblate (Turkish)
+ * Translated using Weblate (Turkish)
+ * Translated using Weblate (Turkish)
+ * Translated using Weblate (Turkish)
+ * Translated using Weblate (Turkish)
+ * Translated using Weblate (Turkish)
+ * Translated using Weblate (Turkish)
+ * Translated using Weblate (Turkish)
+ * Translated using Weblate (Turkish)
+ * Translated using Weblate (Turkish)
+ * Translated using Weblate (Turkish)
+ * Translated using Weblate (Turkish)
+ * Translated using Weblate (Turkish)
+ * Translated using Weblate (Turkish)
+ * Translated using Weblate (Turkish)
+ * Translated using Weblate (Turkish)
+ * Translated using Weblate (Turkish)
+ * Translated using Weblate (Turkish)
+ * Translated using Weblate (Turkish)
+ * Translated using Weblate (Turkish)
+ * Translated using Weblate (Turkish)
+ * Translated using Weblate (Turkish)
+ * Translated using Weblate (Turkish)
+ * Translated using Weblate (Turkish)
+ * Translated using Weblate (Turkish)
+ * Translated using Weblate (Turkish)
+ * Translated using Weblate (Turkish)
+ * Translated using Weblate (Turkish)
+ * Translated using Weblate (Turkish)
+ * Translated using Weblate (Turkish)
+ * Translated using Weblate (Turkish)
+ * Translated using Weblate (Turkish)
+ * Translated using Weblate (Turkish)
+ * Translated using Weblate (Turkish)
+ * Translated using Weblate (Turkish)
+ * Translated using Weblate (Turkish)
+ * Translated using Weblate (Turkish)
+ * Translated using Weblate (Turkish)
+ * Translated using Weblate (Turkish)
+ * Translated using Weblate (Turkish)
+ * Translated using Weblate (Turkish)
+ * Translated using Weblate (Turkish)
+ * Translated using Weblate (Turkish)
+ * Translated using Weblate (Turkish)
+ * Translated using Weblate (Turkish)
+ * Translated using Weblate (Turkish)
+ * Translated using Weblate (Turkish)
+ * Translated using Weblate (Turkish)
+ * Translated using Weblate (Turkish)
+ * Translated using Weblate (Turkish)
+ * Translated using Weblate (Turkish)
+ * Translated using Weblate (Turkish)
+ * Translated using Weblate (Turkish)
+ * Translated using Weblate (Turkish)
+ * Translated using Weblate (Turkish)
+ * Translated using Weblate (Turkish)
+ * Translated using Weblate (Turkish)
+ * Translated using Weblate (Turkish)
+ * Translated using Weblate (Turkish)
+ * Translated using Weblate (Turkish)
+ * Translated using Weblate (Turkish)
+ * Translated using Weblate (Turkish)
+ * Translated using Weblate (Turkish)
+ * Translated using Weblate (Turkish)
+ * Translated using Weblate (Turkish)
+ * Translated using Weblate (Turkish)
+ * Translated using Weblate (Turkish)
++++ 214 more lines (skipped)
++++ between /work/SRC/openSUSE:Factory/yast2-trans/yast2-trans.changes
++++ and /work/SRC/openSUSE:Factory/.yast2-trans.new.2020/yast2-trans.changes
Old:
----
yast2-trans-84.87.20240801.d54b6ae08f.tar.xz
New:
----
yast2-trans-84.87.20241029.4907c8ec47.tar.xz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ yast2-trans.spec ++++++
--- /var/tmp/diff_new_pack.j34oA8/_old 2024-10-30 17:32:41.511873164 +0100
+++ /var/tmp/diff_new_pack.j34oA8/_new 2024-10-30 17:32:41.515873332 +0100
@@ -17,7 +17,7 @@
Name: yast2-trans
-Version: 84.87.20240801.d54b6ae08f
+Version: 84.87.20241029.4907c8ec47
Release: 0
Summary: YaST2 - Translation Container Package
License: GPL-2.0-or-later
++++++ _servicedata ++++++
--- /var/tmp/diff_new_pack.j34oA8/_old 2024-10-30 17:32:41.563875342 +0100
+++ /var/tmp/diff_new_pack.j34oA8/_new 2024-10-30 17:32:41.567875510 +0100
@@ -1,6 +1,6 @@
<servicedata>
<service name="tar_scm">
<param name="url">https://github.com/yast/yast-translations.git</param>
- <param name="changesrevision">d54b6ae08f9fb26fcd8198b45783f3522ac16e59</param></service></servicedata>
+ <param name="changesrevision">4907c8ec47f1afccbc413eaa94a4435d859b6a01</param></service></servicedata>
(No newline at EOF)
++++++ yast2-trans-84.87.20240801.d54b6ae08f.tar.xz -> yast2-trans-84.87.20241029.4907c8ec47.tar.xz ++++++
/work/SRC/openSUSE:Factory/yast2-trans/yast2-trans-84.87.20240801.d54b6ae08f.tar.xz /work/SRC/openSUSE:Factory/.yast2-trans.new.2020/yast2-trans-84.87.20241029.4907c8ec47.tar.xz differ: char 27, line 1
1
0
Script 'mail_helper' called by obssrc
Hello community,
here is the log from the commit of package qemu for openSUSE:Factory checked in at 2024-10-30 17:30:01
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/qemu (Old)
and /work/SRC/openSUSE:Factory/.qemu.new.2020 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "qemu"
Wed Oct 30 17:30:01 2024 rev:279 rq:1219012 version:9.1.1
Changes:
--------
--- /work/SRC/openSUSE:Factory/qemu/qemu.changes 2024-10-18 15:51:15.948223965 +0200
+++ /work/SRC/openSUSE:Factory/.qemu.new.2020/qemu.changes 2024-10-30 17:31:14.024209540 +0100
@@ -1,0 +2,47 @@
+Tue Oct 29 11:03:28 UTC 2024 - Dario Faggioli <dfaggioli(a)suse.com>
+
+- Update to version 9.1.1:
+ Full changelog here:
+ https://lore.kernel.org/qemu-devel/7f0561ec-3564-4860-bacf-a98071a5ce52@tls…
+ Some of the most notable features:
+ * ui/dbus: fix filtering all update messages
+ * ui/win32: fix potential use-after-free with dbus shared memory
+ * ui/dbus: fix leak on message filtering
+ * hw/audio/hda: fix memory leak on audio setup
+ * hw/audio/hda: free timer on exit
+ * hw/char/pl011: Use correct masks for IBRD and FBRD
+ * hw/intc/arm_gicv3_cpuif: Add cast to match the documentation
+ * hw/intc/arm_gicv3: Add cast to match the documentation
+ * hw/intc/arm_gicv3: Add cast to match the documentation
+ * meson: ensure -mcx16 is passed when detecting ATOMIC128
+ * meson: define qemu_isa_flags
+ * meson: fix machine option for x86_version
+ * target/m68k: Always return a temporary from gen_lea_mode
+ * tcg/ppc: Use TCG_REG_TMP2 for scratch index in prepare_host_addr
+ * tcg/ppc: Use TCG_REG_TMP2 for scratch tcg_out_qemu_st
+ * linux-user: Fix parse_elf_properties GNU0_MAGIC check
+ * linux-user/flatload: Take mmap_lock in load_flt_binary()
+ * vnc: fix crash when no console attached
+ * testing: bump mips64el cross to bookworm and fix package list
+ * hw/sd/sdcard: Fix handling of disabled boot partitions
+ * target/arm: Avoid target_ulong for physical address lookups
+ * block/reqlist: allow adding overlapping requests
+ * util/timer: avoid deadlock when shutting down
+ * hw/mips/jazz: fix typo in in-built NIC alias
+ * tcg: Fix iteration step in 32-bit gvec operation
+ * hw/loongarch/virt: Add description for virt machine type
+ * migration/multifd: Fix p->iov leak in multifd-uadk.c
+ * target/ppc: Fix migration of CPUs with TLB_EMB TLB type
+ * target/hppa: Fix random 32-bit linux-user crashes
+ * target/arm: Correct ID_AA64ISAR1_EL1 value for neoverse-v1
+ * hw/char/stm32l4x5_usart.c: Enable USART ACK bit response
+ * migration/multifd: Fix rb->receivedmap cleanup race
+ * mac_dbdma: Remove leftover `dma_memory_unmap` calls
+
+-------------------------------------------------------------------
+Tue Oct 29 10:43:50 UTC 2024 - dfaggioli(a)suse.com
+
+- Fix boo#1231166:
+ * [openSUSE][RPM] The qemu translation is not being installed (boo#1231166)
+
+-------------------------------------------------------------------
Old:
----
qemu-9.1.0.obscpio
New:
----
qemu-9.1.1.obscpio
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ qemu-linux-user.spec ++++++
--- /var/tmp/diff_new_pack.y6xZGD/_old 2024-10-30 17:31:26.552733714 +0100
+++ /var/tmp/diff_new_pack.y6xZGD/_new 2024-10-30 17:31:26.556733881 +0100
@@ -27,7 +27,7 @@
Summary: CPU emulator for user space
License: BSD-2-Clause AND BSD-3-Clause AND GPL-2.0-only AND GPL-2.0-or-later AND LGPL-2.1-or-later AND MIT
Group: System/Emulators/PC
-Version: 9.1.0
+Version: 9.1.1
Release: 0
Source0: qemu-%{version}.tar.xz
Source1: common.inc
++++++ qemu.spec ++++++
--- /var/tmp/diff_new_pack.y6xZGD/_old 2024-10-30 17:31:26.588735220 +0100
+++ /var/tmp/diff_new_pack.y6xZGD/_new 2024-10-30 17:31:26.592735387 +0100
@@ -82,7 +82,7 @@
Summary: Machine emulator and virtualizer
License: BSD-2-Clause AND BSD-3-Clause AND GPL-2.0-only AND GPL-2.0-or-later AND LGPL-2.1-or-later AND MIT
Group: System/Emulators/PC
-Version: 9.1.0
+Version: 9.1.1
Release: 0
Source0: qemu-%{version}.tar.xz
Source1: common.inc
@@ -262,7 +262,6 @@
Suggests: qemu-block-ssh
Suggests: qemu-chardev-baum
Suggests: qemu-extra
-Suggests: qemu-lang
Suggests: qemu-microvm
Suggests: qemu-skiboot
Suggests: qemu-vhost-user-gpu
@@ -314,6 +313,8 @@
This package acts as an umbrella package to the other QEMU sub-packages.
+%lang_package
+
%files
%if %{kvm_available}
%ifarch s390x
@@ -888,17 +889,17 @@
# Upstream provides services for qemu-pr-helper. So far, we've not needed
# them, so let's continue not to ship them for now. If that changes, just
-# uncomment these lines (and the ones in the %file pr-helper section)
-#install -m 0644 contrib/systemd/qemu-pr-helper.service %{buildroot}%{_unitdir}
-#install -m 0644 contrib/systemd/qemu-pr-helper.socket %{buildroot}%{_unitdir}
+# uncomment these lines (and the ones in the %%file pr-helper section)
+#install -m 0644 contrib/systemd/qemu-pr-helper.service %%{buildroot}%%{_unitdir}
+#install -m 0644 contrib/systemd/qemu-pr-helper.socket %%{buildroot}%%{_unitdir}
%if 0%{with vmsr_helper}
echo ""
# Upstream provides services for qemu-vmsr-helper. So far, we've not needed
# them, so let's continue not to ship them for now. If that changes, just
-# uncomment these lines (and the ones in the %file vmsr-helper section)
-#install -m 0644 contrib/systemd/qemu-vmsr-helper.service %{buildroot}%{_unitdir}
-#install -m 0644 contrib/systemd/qemu-vmsr-helper.socket %{buildroot}%{_unitdir}
+# uncomment these lines (and the ones in the %%file vmsr-helper section)
+#install -m 0644 contrib/systemd/qemu-vmsr-helper.service %%{buildroot}%%{_unitdir}
+#install -m 0644 contrib/systemd/qemu-vmsr-helper.socket %%{buildroot}%%{_unitdir}
%endif
%suse_update_desktop_file qemu
@@ -1210,15 +1211,6 @@
%_datadir/%name/QEMU,cgthree.bin
%_datadir/%name/QEMU,tcx.bin
-%package lang
-Summary: Translations for QEMU
-Group: System/Emulators/PC
-
-%description lang
-This package contains a few language translations, particularly for the
-graphical user interface components that come with QEMU. The bulk of strings
-in QEMU are not localized.
-
%files lang -f %blddir/%name.lang
%package audio-alsa
@@ -1579,8 +1571,8 @@
%files pr-helper
%_bindir/qemu-pr-helper
-#%{_unitdir}/qemu-pr-helper.service
-#%{_unitdir}/qemu-pr-helper.socket
+#%%{_unitdir}/qemu-pr-helper.service
+#%%{_unitdir}/qemu-pr-helper.socket
%_mandir/man8/qemu-pr-helper.8.gz
%if 0%{with vmsr_helper}
@@ -1593,8 +1585,8 @@
%files vmsr-helper
%_bindir/qemu-vmsr-helper
-#%{_unitdir}/qemu-vmsr-helper.service
-#%{_unitdir}/qemu-vmsr-helper.socket
+#%%{_unitdir}/qemu-vmsr-helper.service
+#%%{_unitdir}/qemu-vmsr-helper.socket
%endif
%package tools
@@ -1862,7 +1854,7 @@
%package seabios
Summary: x86 Legacy BIOS for QEMU
Group: System/Emulators/PC
-Version: 9.1.0%{sbver}
+Version: 9.1.1%{sbver}
Release: 0
BuildArch: noarch
Conflicts: %name < 1.6.0
@@ -1883,7 +1875,7 @@
%package vgabios
Summary: VGA BIOSes for QEMU
Group: System/Emulators/PC
-Version: 9.1.0%{sbver}
+Version: 9.1.1%{sbver}
Release: 0
BuildArch: noarch
Conflicts: %name < 1.6.0
@@ -1909,7 +1901,7 @@
%package ipxe
Summary: PXE ROMs for QEMU NICs
Group: System/Emulators/PC
-Version: 9.1.0
+Version: 9.1.1
Release: 0
BuildArch: noarch
Conflicts: %name < 1.6.0
++++++ _servicedata ++++++
--- /var/tmp/diff_new_pack.y6xZGD/_old 2024-10-30 17:31:26.668738567 +0100
+++ /var/tmp/diff_new_pack.y6xZGD/_new 2024-10-30 17:31:26.676738902 +0100
@@ -1,6 +1,6 @@
<servicedata>
<service name="tar_scm">
<param name="url">https://github.com/opensuse/qemu.git</param>
- <param name="changesrevision">0dbd22c0dd1c7781582a94bc4d4f55daaab27158</param></service></servicedata>
+ <param name="changesrevision">b0b6a79d592ce8d759bf3e2a5915cf84e51f0cc6</param></service></servicedata>
(No newline at EOF)
++++++ qemu-9.1.0.obscpio -> qemu-9.1.1.obscpio ++++++
/work/SRC/openSUSE:Factory/qemu/qemu-9.1.0.obscpio /work/SRC/openSUSE:Factory/.qemu.new.2020/qemu-9.1.1.obscpio differ: char 49, line 1
++++++ qemu.obsinfo ++++++
--- /var/tmp/diff_new_pack.y6xZGD/_old 2024-10-30 17:31:26.744741747 +0100
+++ /var/tmp/diff_new_pack.y6xZGD/_new 2024-10-30 17:31:26.744741747 +0100
@@ -1,5 +1,5 @@
name: qemu
-version: 9.1.0
-mtime: 1729087038
-commit: 0dbd22c0dd1c7781582a94bc4d4f55daaab27158
+version: 9.1.1
+mtime: 1730196107
+commit: b0b6a79d592ce8d759bf3e2a5915cf84e51f0cc6
1
0
Script 'mail_helper' called by obssrc
Hello community,
here is the log from the commit of package mercurial for openSUSE:Factory checked in at 2024-10-30 17:29:58
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/mercurial (Old)
and /work/SRC/openSUSE:Factory/.mercurial.new.2020 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "mercurial"
Wed Oct 30 17:29:58 2024 rev:205 rq:1219011 version:6.8.2
Changes:
--------
--- /work/SRC/openSUSE:Factory/mercurial/mercurial.changes 2024-09-15 12:33:49.126067140 +0200
+++ /work/SRC/openSUSE:Factory/.mercurial.new.2020/mercurial.changes 2024-10-30 17:30:11.789605740 +0100
@@ -1,0 +2,26 @@
+Tue Oct 29 11:19:25 UTC 2024 - Andrei Dziahel <develop7(a)develop7.info>
+
+- Mercurial 6.8.2
+
+ This is the last version that supports Python 3.6 and 3.7.
+
+ * Compatibility for Python 3.12 and 3.13
+ * evolution: stop wrongly flagging unrelated part of a split as divergent
+ * histedit: create state and acquire locks earlier
+ * copytracing: fix a bug in an edge
+ case in metadata.compute_all_files_changes
+ * rhg: ignore readonly FS error when saving dirstate
+ * merge: sort filemap only if requested by the caller
+ * windows: implement `util.cachestat` to fix numerous dirstate problems
+ * subrepo: propagate non-default path on outgoing
+ * import: fix erroneous comparison of str with bytes
+ * largefiles: fix check that ensures that --all-largefiles is only
+ used locally
+ * profiling: improve 3.12 error message for calling lsprof twice
+ * profiling: use "stat" profiler to profile individual request
+ * module-policy: ignore empty module policy
+ * relnotes: skip the test if the source repository is not readable
+ * wireprototypes: fix exception handling code with a bad pytype suppression
+ * Many more type fixes and improvements
+ * Improvements to the test suite
+-------------------------------------------------------------------
Old:
----
mercurial-6.8.1.tar.gz
New:
----
mercurial-6.8.2.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ mercurial.spec ++++++
--- /var/tmp/diff_new_pack.nTnIVK/_old 2024-10-30 17:30:13.625682558 +0100
+++ /var/tmp/diff_new_pack.nTnIVK/_new 2024-10-30 17:30:13.629682726 +0100
@@ -28,7 +28,7 @@
%endif
Name: mercurial
-Version: 6.8.1
+Version: 6.8.2
Release: 0
Summary: Scalable Distributed SCM
License: GPL-2.0-or-later
++++++ mercurial-6.8.1.tar.gz -> mercurial-6.8.2.tar.gz ++++++
/work/SRC/openSUSE:Factory/mercurial/mercurial-6.8.1.tar.gz /work/SRC/openSUSE:Factory/.mercurial.new.2020/mercurial-6.8.2.tar.gz differ: char 5, line 1
1
0
Script 'mail_helper' called by obssrc
Hello community,
here is the log from the commit of package suitesparse for openSUSE:Factory checked in at 2024-10-30 17:29:54
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/suitesparse (Old)
and /work/SRC/openSUSE:Factory/.suitesparse.new.2020 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "suitesparse"
Wed Oct 30 17:29:54 2024 rev:47 rq:1218947 version:7.8.3
Changes:
--------
--- /work/SRC/openSUSE:Factory/suitesparse/suitesparse.changes 2024-02-15 20:59:05.305196503 +0100
+++ /work/SRC/openSUSE:Factory/.suitesparse.new.2020/suitesparse.changes 2024-10-30 17:30:02.985237378 +0100
@@ -1,0 +2,28 @@
+Sat Oct 26 06:34:09 UTC 2024 - Christoph G <foss(a)grueninger.de>
+
+- update to version 7.8.3
+ * ParU 1.0.0: first stable release. No change since last version
+- update to version 7.8.2
+ * LAGraph 1.1.4: bug fix for LAGraph_MMWrite when matrix is dense
+- update to version 7.8.1
+ * GraphBLAS 9.3.1: bug fix in creation of JIT package
+- update to version 7.8.0
+ * ParU 0.2.0: many changes; nearing a stable release.
+ * CHOLMOD 5.3.0: added cholmod_query, and #define's in cholmod.h,
+ to query which Modules and features have been configured.
+- update to version 7.7.0
+ * SPEX 3.1.0: major revision to API, new methods.
+ Added SPEX_Cholesky, SPEX_Backslash, and python interface.
+ * Example 1.7.0: revised for change in SPEX API
+ * GraphBLAS 9.1.0: revised defn of C11 complex type, bug fix
+ * CXSparse 4.4.0: revise malloc/calloc/realloc/free wrappers
+- update to version 7.6.1
+ * GraphBLAS 9.0.3: performance bug fix (JIT kernels were not
+ compiled with OpenMP, since v8.3.1), and fix to Makefile
+ ("make static")
+- update to version 7.6.0
+ * CHOLMOD 5.2.0: bug fix (restore ABI compatibility with 5.0.x,
+ i.e., 5.2.0 is ABI incompatible to 5.1.x)
+ * SPQR 4.3.2: remove unused parameters
+
+-------------------------------------------------------------------
Old:
----
SuiteSparse-7.5.1.tar.gz
New:
----
SuiteSparse-7.8.3.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ suitesparse.spec ++++++
--- /var/tmp/diff_new_pack.cO6DzU/_old 2024-10-30 17:30:05.865357878 +0100
+++ /var/tmp/diff_new_pack.cO6DzU/_new 2024-10-30 17:30:05.869358046 +0100
@@ -29,7 +29,7 @@
Name: suitesparse
Summary: A collection of sparse matrix libraries
License: BSD-3-Clause AND GPL-2.0-or-later AND LGPL-2.1-or-later
-Version: 7.5.1
+Version: 7.8.3
Release: 0
Group: Development/Libraries/C and C++
URL: https://people.engr.tamu.edu/davis/suitesparse.html
@@ -90,7 +90,6 @@
BuildRequires: gcc-fortran
BuildRequires: gmp-devel
BuildRequires: lapack-devel
-BuildRequires: m4
BuildRequires: make
BuildRequires: memory-constraints
BuildRequires: metis-devel
@@ -116,12 +115,12 @@
%define ldl_sover 3
%define lagraph_sover 1
%define lagraphx_sover 1
-%define paru_sover 0
+%define paru_sover 1
%define mongoose_sover 3
%define suitesparse_mongoose_sover 3
%define rbio_sover 4
%define sliplu_sover 1
-%define spex_sover 2
+%define spex_sover 3
%define spqr_sover 4
%define umfpack_sover 6
%define klu_cholmod_sover 2
@@ -832,9 +831,10 @@
%files -n %{spexlib}
%license SPEX/LICENSE.txt
-%license SPEX/SPEX_Util/License/license.txt SPEX/SPEX_Util/License/GPLv2.txt
-%license SPEX/SPEX_Util/License/lesserv3.txt SPEX/SPEX_Util/License/CONTRIBUTOR-LICENSE.txt
+%license SPEX/SPEX_Utilities/License/license.txt SPEX/SPEX_Utilities/License/GPLv2.txt
+%license SPEX/SPEX_Utilities/License/lesserv3.txt SPEX/SPEX_Utilities/License/CONTRIBUTOR-LICENSE.txt
%{_libdir}/libspex.so.*
+%{_libdir}/libspexpython.so.*
%files -n libspex-doc
%doc SPEX/README.md
@@ -866,7 +866,7 @@
%files -n %{parulib}
%doc ParU/README.md
-%license ParU/LICENSE
+%license ParU/LICENSE.txt
%{_libdir}/libparu.so.*
%files -n %{klu_cholmodlib}
++++++ SuiteSparse-7.5.1.tar.gz -> SuiteSparse-7.8.3.tar.gz ++++++
/work/SRC/openSUSE:Factory/suitesparse/SuiteSparse-7.5.1.tar.gz /work/SRC/openSUSE:Factory/.suitesparse.new.2020/SuiteSparse-7.8.3.tar.gz differ: char 13, line 1
1
0
Script 'mail_helper' called by obssrc
Hello community,
here is the log from the commit of package libHX for openSUSE:Factory checked in at 2024-10-30 17:29:46
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/libHX (Old)
and /work/SRC/openSUSE:Factory/.libHX.new.2020 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "libHX"
Wed Oct 30 17:29:46 2024 rev:80 rq:1218870 version:4.24
Changes:
--------
--- /work/SRC/openSUSE:Factory/libHX/libHX.changes 2024-02-23 16:41:50.451749553 +0100
+++ /work/SRC/openSUSE:Factory/.libHX.new.2020/libHX.changes 2024-10-30 17:29:49.064654963 +0100
@@ -1,0 +2,8 @@
+Wed Jul 17 17:39:05 UTC 2024 - Jan Engelhardt <jengelh(a)inai.de>
+
+- Update to release 4.24
+ * io: resolve use-after-free and out-of-bounds writes in
+ conjunction with ``HX_realpath``
+ * io: add ``HX_getcwd`` function
+
+-------------------------------------------------------------------
Old:
----
libHX-4.23.tar.asc
libHX-4.23.tar.xz
New:
----
_scmsync.obsinfo
build.specials.obscpio
libHX-4.24.tar.asc
libHX-4.24.tar.xz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ libHX.spec ++++++
--- /var/tmp/diff_new_pack.CbHwnz/_old 2024-10-30 17:29:50.128699481 +0100
+++ /var/tmp/diff_new_pack.CbHwnz/_new 2024-10-30 17:29:50.132699648 +0100
@@ -18,7 +18,7 @@
Name: libHX
%define lname libHX32
-Version: 4.23
+Version: 4.24
Release: 0
Summary: Collection of routines for C and C++ programming
License: LGPL-2.1-or-later
++++++ _scmsync.obsinfo ++++++
mtime: 1721238307
commit: d55d2c50a9ae9c03dcff9e9ce643422a8435cc384aa8de7daa5ddc0e72414b9d
url: https://src.opensuse.org/jengelh/libHX
revision: master
++++++ libHX-4.23.tar.xz -> libHX-4.24.tar.xz ++++++
++++ 6643 lines of diff (skipped)
++++ retrying with extended exclude list
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/libHX-4.23/config.h.in new/libHX-4.24/config.h.in
--- old/libHX-4.23/config.h.in 2024-02-15 17:30:43.398275427 +0100
+++ new/libHX-4.24/config.h.in 2024-07-17 19:35:56.003063613 +0200
@@ -1,45 +1,45 @@
/* config.h.in. Generated from configure.ac by autoheader. */
-/* Define to 1 if you have the `copy_file_range' function. */
+/* Define to 1 if you have the 'copy_file_range' function. */
#undef HAVE_COPY_FILE_RANGE
/* Define to 1 if you have the <dlfcn.h> header file. */
#undef HAVE_DLFCN_H
-/* Define to 1 if you have the `execv' function. */
+/* Define to 1 if you have the 'execv' function. */
#undef HAVE_EXECV
-/* Define to 1 if you have the `execvp' function. */
+/* Define to 1 if you have the 'execvp' function. */
#undef HAVE_EXECVP
-/* Define to 1 if you have the `fork' function. */
+/* Define to 1 if you have the 'fork' function. */
#undef HAVE_FORK
-/* Define to 1 if you have the `getegid' function. */
+/* Define to 1 if you have the 'getegid' function. */
#undef HAVE_GETEGID
-/* Define to 1 if you have the `geteuid' function. */
+/* Define to 1 if you have the 'geteuid' function. */
#undef HAVE_GETEUID
-/* Define to 1 if you have the `getpid' function. */
+/* Define to 1 if you have the 'getpid' function. */
#undef HAVE_GETPID
-/* Define to 1 if you have the `getppid' function. */
+/* Define to 1 if you have the 'getppid' function. */
#undef HAVE_GETPPID
-/* Define to 1 if you have the `initgroups' function. */
+/* Define to 1 if you have the 'initgroups' function. */
#undef HAVE_INITGROUPS
/* Define to 1 if you have the <inttypes.h> header file. */
#undef HAVE_INTTYPES_H
-/* Define to 1 if you have the `pipe' function. */
+/* Define to 1 if you have the 'pipe' function. */
#undef HAVE_PIPE
-/* Define to 1 if you have the `posix_fadvise' function. */
+/* Define to 1 if you have the 'posix_fadvise' function. */
#undef HAVE_POSIX_FADVISE
-/* Define to 1 if you have the `setgid' function. */
+/* Define to 1 if you have the 'setgid' function. */
#undef HAVE_SETGID
/* Define to 1 if you have the <stdint.h> header file. */
@@ -57,34 +57,34 @@
/* Define to 1 if you have the <string.h> header file. */
#undef HAVE_STRING_H
-/* Define to 1 if `st_mtim' is a member of `struct stat'. */
+/* Define to 1 if 'st_mtim' is a member of 'struct stat'. */
#undef HAVE_STRUCT_STAT_ST_MTIM
-/* Define to 1 if `st_mtime' is a member of `struct stat'. */
+/* Define to 1 if 'st_mtime' is a member of 'struct stat'. */
#undef HAVE_STRUCT_STAT_ST_MTIME
-/* Define to 1 if `st_mtimensec' is a member of `struct stat'. */
+/* Define to 1 if 'st_mtimensec' is a member of 'struct stat'. */
#undef HAVE_STRUCT_STAT_ST_MTIMENSEC
-/* Define to 1 if `st_mtimespec' is a member of `struct stat'. */
+/* Define to 1 if 'st_mtimespec' is a member of 'struct stat'. */
#undef HAVE_STRUCT_STAT_ST_MTIMESPEC
-/* Define to 1 if `st_otim' is a member of `struct stat'. */
+/* Define to 1 if 'st_otim' is a member of 'struct stat'. */
#undef HAVE_STRUCT_STAT_ST_OTIM
-/* Define to 1 if `st_otime' is a member of `struct stat'. */
+/* Define to 1 if 'st_otime' is a member of 'struct stat'. */
#undef HAVE_STRUCT_STAT_ST_OTIME
-/* Define to 1 if `st_otimensec' is a member of `struct stat'. */
+/* Define to 1 if 'st_otimensec' is a member of 'struct stat'. */
#undef HAVE_STRUCT_STAT_ST_OTIMENSEC
-/* Define to 1 if `st_otimespec' is a member of `struct stat'. */
+/* Define to 1 if 'st_otimespec' is a member of 'struct stat'. */
#undef HAVE_STRUCT_STAT_ST_OTIMESPEC
-/* Define to 1 if `tv_nsec' is a member of `struct timespec'. */
+/* Define to 1 if 'tv_nsec' is a member of 'struct timespec'. */
#undef HAVE_STRUCT_TIMESPEC_TV_NSEC
-/* Define to 1 if `tv_usec' is a member of `struct timeval'. */
+/* Define to 1 if 'tv_usec' is a member of 'struct timeval'. */
#undef HAVE_STRUCT_TIMEVAL_TV_USEC
/* Define to 1 if you have the <sys/resource.h> header file. */
@@ -129,19 +129,19 @@
/* Define to the version of this package. */
#undef PACKAGE_VERSION
-/* The size of `char *', as computed by sizeof. */
+/* The size of 'char *', as computed by sizeof. */
#undef SIZEOF_CHAR_P
-/* The size of `struct x *', as computed by sizeof. */
+/* The size of 'struct x *', as computed by sizeof. */
#undef SIZEOF_STRUCT_X_P
-/* The size of `struct x **', as computed by sizeof. */
+/* The size of 'struct x **', as computed by sizeof. */
#undef SIZEOF_STRUCT_X_PP
-/* The size of `void *', as computed by sizeof. */
+/* The size of 'void *', as computed by sizeof. */
#undef SIZEOF_VOID_P
-/* Define to 1 if all of the C90 standard headers exist (not just the ones
+/* Define to 1 if all of the C89 standard headers exist (not just the ones
required in a freestanding environment). This macro is provided for
backward compatibility; new code need not use it. */
#undef STDC_HEADERS
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/libHX-4.23/configure.ac new/libHX-4.24/configure.ac
--- old/libHX-4.23/configure.ac 2024-02-15 17:25:36.606354473 +0100
+++ new/libHX-4.24/configure.ac 2024-07-17 19:35:41.339776737 +0200
@@ -1,4 +1,4 @@
-AC_INIT([libHX], [4.23])
+AC_INIT([libHX], [4.24])
AC_CONFIG_AUX_DIR([build-aux])
AC_CONFIG_HEADERS([config.h])
AC_CONFIG_MACRO_DIR([m4])
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/libHX-4.23/doc/api.rst new/libHX-4.24/doc/api.rst
--- old/libHX-4.23/doc/api.rst 2023-11-27 12:23:38.307646091 +0100
+++ new/libHX-4.24/doc/api.rst 2024-07-17 19:32:53.706976228 +0200
@@ -9,7 +9,8 @@
====== ====== ====== ========================================
RMV MinVer FirstA Name
====== ====== ====== ========================================
-4.18 4.18 4.18 HX_getopt5
+4.24 4.24 4.24 HX_getcwd
+4.19 4.18 4.18 HX_getopt5
4.16 4.16 4.16 HX_strtoull_nsec
4.15 4.15 4.15 HX_flpr
4.15 4.15 4.15 HX_flprf
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/libHX-4.23/doc/changelog.rst new/libHX-4.24/doc/changelog.rst
--- old/libHX-4.23/doc/changelog.rst 2024-02-15 17:25:43.159657826 +0100
+++ new/libHX-4.24/doc/changelog.rst 2024-07-17 19:35:41.339776737 +0200
@@ -1,3 +1,12 @@
+v4.24 (2024-07-17)
+==================
+
+Fixes:
+
+* io: resolve use-after-free and out-of-bounds writes in conjunction
+ with HX_realpath
+
+
v4.23 (2024-02-15)
==================
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/libHX-4.23/doc/files_and_dirs.rst new/libHX-4.24/doc/files_and_dirs.rst
--- old/libHX-4.23/doc/files_and_dirs.rst 2023-11-02 09:21:21.307067051 +0100
+++ new/libHX-4.24/doc/files_and_dirs.rst 2024-07-17 19:33:03.896943730 +0200
@@ -57,9 +57,15 @@
#include <libHX/io.h>
+ int HX_getcwd(hxmc_t **buf);
int HX_readlink(hxmc_t **buf, const char *path);
int HX_realpath(hxmc_t **buf, const char *path, unsigned int flags);
+``HX_getcwd`` is a length-agnostic version of getcwd. On error, a negative
+integer is returned indicating the errno; the contents of ``*buf`` are
+unspecified if that happens. On success, a non-zero positive integer is
+returned.
+
``HX_readlink`` calls through to readlink to read the target of a symbolic
link, and stores the result in the memory container referenced by ``*buf``
(similar to ``HX_getl`` semantics). If ``*buf`` is ``NULL``, a new container
@@ -91,7 +97,8 @@
The result is stored in a memory container whose pointer is returned through
``*buf``. The return value of the function will be negative to indicate a
-possible system error, or be positive non-zero for success.
+possible system error, or be positive non-zero for success. The contents of the
+buffer are unspecified in case HX_realpath returns an error.
Operations on directories
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/libHX-4.23/include/libHX/io.h new/libHX-4.24/include/libHX/io.h
--- old/libHX-4.23/include/libHX/io.h 2023-01-23 02:50:13.540712293 +0100
+++ new/libHX-4.24/include/libHX/io.h 2024-07-17 19:32:53.706976228 +0200
@@ -33,6 +33,7 @@
extern int HX_copy_dir(const char *, const char *, unsigned int, ...);
extern int HX_copy_file(const char *, const char *, unsigned int, ...);
extern int HX_mkdir(const char *, unsigned int);
+extern int HX_getcwd(hxmc_t **);
extern int HX_readlink(hxmc_t **, const char *);
extern int HX_realpath(hxmc_t **, const char *, unsigned int);
extern int HX_rrmdir(const char *);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/libHX-4.23/src/Makefile.am new/libHX-4.24/src/Makefile.am
--- old/libHX-4.23/src/Makefile.am 2024-02-04 23:44:08.208501461 +0100
+++ new/libHX-4.24/src/Makefile.am 2024-07-17 19:32:53.706976228 +0200
@@ -9,7 +9,7 @@
mc.c misc.c opt.c proc.c \
rand.c socket.c string.c time.c
libHX_la_LIBADD = ${libdl_LIBS} -lm ${libpthread_LIBS} ${librt_LIBS} ${libsocket_LIBS}
-libHX_la_LDFLAGS = -no-undefined -version-info 39:0:7
+libHX_la_LDFLAGS = -no-undefined -version-info 40:0:8
if WITH_GNU_LD
libHX_la_LDFLAGS += -Wl,--version-script=${srcdir}/libHX.map
endif
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/libHX-4.23/src/io.c new/libHX-4.24/src/io.c
--- old/libHX-4.23/src/io.c 2024-02-15 17:23:20.596974250 +0100
+++ new/libHX-4.24/src/io.c 2024-07-17 19:33:24.623544359 +0200
@@ -351,12 +351,17 @@
size_t linkbuf_size;
if (allocate) {
- linkbuf_size = 32;
- *target = HXmc_meminit(NULL, 32);
+ linkbuf_size = 128;
+ *target = HXmc_meminit(nullptr, 128);
if (*target == NULL)
return -errno;
} else {
linkbuf_size = HXmc_length(*target);
+ if (linkbuf_size < 128) {
+ linkbuf_size = 128;
+ if (HXmc_setlen(target, 128) == nullptr)
+ return -errno;
+ }
}
while (true) {
ssize_t ret = readlink(path, *target, linkbuf_size);
@@ -453,6 +458,45 @@
return 1;
}
+EXPORT_SYMBOL int HX_getcwd(hxmc_t **target)
+{
+ bool allocate = *target == nullptr;
+ size_t linkbuf_size;
+
+ if (allocate) {
+ linkbuf_size = 128;
+ *target = HXmc_meminit(nullptr, linkbuf_size);
+ if (*target == nullptr)
+ return -errno;
+ } else {
+ linkbuf_size = HXmc_length(*target);
+ if (linkbuf_size < 128) {
+ linkbuf_size = 128;
+ if (HXmc_setlen(target, linkbuf_size) == nullptr)
+ return -errno;
+ }
+ }
+ while (true) {
+ const char *ret = getcwd(*target, linkbuf_size);
+ if (ret != nullptr) {
+ HXmc_setlen(target, strlen(ret)); /* shrink to fit */
+ return 1;
+ }
+ if (errno == ERANGE) {
+ if (HXmc_setlen(target, linkbuf_size *= 2) != nullptr)
+ continue;
+ /* errno already set by realloc, fall into next if block */
+ }
+ int saved_errno = errno;
+ if (allocate) {
+ HXmc_free(*target);
+ *target = nullptr;
+ }
+ return -(errno = saved_errno);
+ }
+ return -EINVAL;
+}
+
EXPORT_SYMBOL int HX_realpath(hxmc_t **dest_pptr, const char *path,
unsigned int flags)
{
@@ -462,7 +506,7 @@
int ret = 0;
if (dnull) {
- state.dest = HXmc_meminit(NULL, PATH_MAX);
+ state.dest = HXmc_meminit(NULL, 256);
if (state.dest == NULL)
goto err;
}
@@ -470,11 +514,9 @@
if (*path == '/') {
rq_slash = true;
} else if (flags & HX_REALPATH_ABSOLUTE) {
- if (getcwd(state.dest, PATH_MAX) == NULL)
+ if (HX_getcwd(&state.dest) < 0)
goto err;
rq_slash = true;
- if (HXmc_setlen(&state.dest, strlen(state.dest)) == NULL)
- goto err;
}
while (*path != '\0') {
@@ -541,6 +583,8 @@
/* If caller supplied a buffer, do not take it away. */
HXmc_free(state.dest);
*dest_pptr = NULL;
+ } else {
+ *dest_pptr = state.dest;
}
HXmc_free(state.link_target);
HXmc_free(state.new_path);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/libHX-4.23/src/libHX.map new/libHX-4.24/src/libHX.map
--- old/libHX-4.23/src/libHX.map 2023-11-27 12:23:38.307646091 +0100
+++ new/libHX-4.24/src/libHX.map 2024-07-17 19:32:53.706976228 +0200
@@ -183,3 +183,8 @@
global:
HX_getopt5;
} LIBHX_4.16;
+
+LIBHX_4.24 {
+global:
+ HX_getcwd;
+} LIBHX_4.18;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/libHX-4.23/src/tc-io.c new/libHX-4.24/src/tc-io.c
--- old/libHX-4.23/src/tc-io.c 2023-11-02 09:21:21.307067051 +0100
+++ new/libHX-4.24/src/tc-io.c 2024-07-17 19:32:53.706976228 +0200
@@ -28,6 +28,16 @@
close(src);
}
+static void t_getcwd(void)
+{
+ hxmc_t *s = nullptr;
+ if (HX_getcwd(&s) > 0)
+ printf("cwd1: >%s<\n", s);
+ HXmc_setlen(&s, 0);
+ if (HX_getcwd(&s) > 0)
+ printf("cwd2: >%s<\n", s);
+}
+
int main(void)
{
size_t z;
@@ -55,5 +65,7 @@
fprintf(stderr, "copy_file ok\n");
unlink("tciocopy.txt");
}
+
+ t_getcwd();
return 0;
}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/libHX-4.23/src/tc-realpath.c new/libHX-4.24/src/tc-realpath.c
--- old/libHX-4.23/src/tc-realpath.c 2023-11-27 12:23:38.307646091 +0100
+++ new/libHX-4.24/src/tc-realpath.c 2024-07-17 19:33:00.006956135 +0200
@@ -48,6 +48,15 @@
HXmc_free(tmp);
}
+static void t_2(void)
+{
+ hxmc_t *tmp = HXmc_strinit("");
+ int ret = HX_realpath(&tmp, "../../../../dev/tty", HX_REALPATH_ABSOLUTE | HX_REALPATH_DEFAULT);
+ if (ret > 0)
+ printf("t_2: %s\n", tmp);
+ HXmc_free(tmp);
+}
+
int main(int argc, char **oargv)
{
char **argv = nullptr;
@@ -57,6 +66,7 @@
if (!rp_get_options(oargv, &argc, &argv))
return EXIT_FAILURE;
t_1();
+ t_2();
res = NULL;
for (int i = 1; i < argc; ++i) {
1
0
Script 'mail_helper' called by obssrc
Hello community,
here is the log from the commit of package 000release-packages for openSUSE:Factory checked in at 2024-10-30 08:39:34
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/000release-packages (Old)
and /work/SRC/openSUSE:Factory/.000release-packages.new.2020 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "000release-packages"
Wed Oct 30 08:39:34 2024 rev:3187 rq: version:unknown
Changes:
--------
--- /work/SRC/openSUSE:Factory/000release-packages/Aeon-release.changes 2024-10-29 14:41:35.369523218 +0100
+++ /work/SRC/openSUSE:Factory/.000release-packages.new.2020/Aeon-release.changes 2024-10-30 08:39:35.863837618 +0100
@@ -2 +2 @@
-Tue Oct 29 13:41:32 UTC 2024 - openSUSE <packaging(a)lists.opensuse.org>
+Wed Oct 30 07:39:33 UTC 2024 - openSUSE <packaging(a)lists.opensuse.org>
Kalpa-release.changes: same change
MicroOS-release.changes: same change
openSUSE-Addon-NonOss-release.changes: same change
openSUSE-release.changes: same change
stub.changes: same change
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
Kalpa-release.spec: same change
MicroOS-release.spec: same change
openSUSE-Addon-NonOss-release.spec: same change
openSUSE-release.spec: same change
stub.spec: same change
++++++ weakremovers.inc ++++++
--- /var/tmp/diff_new_pack.utmysR/_old 2024-10-30 08:39:38.023927428 +0100
+++ /var/tmp/diff_new_pack.utmysR/_new 2024-10-30 08:39:38.031927760 +0100
@@ -7872,6 +7872,7 @@
Provides: weakremover(guice-testlib)
Provides: weakremover(guile-modules-2_0)
Provides: weakremover(guile-modules-2_2)
+Provides: weakremover(gutenprint-gimpplugin)
Provides: weakremover(gvfs-32bit)
Provides: weakremover(gweather-data)
Provides: weakremover(gwget)
@@ -9391,6 +9392,7 @@
Provides: weakremover(letshelp-certbot)
Provides: weakremover(lib2geom1_1_0)
Provides: weakremover(lib2geom1_2_0)
+Provides: weakremover(lib2geom1_3_0)
Provides: weakremover(lib3270-5_0)
Provides: weakremover(lib3270-5_1)
Provides: weakremover(lib3270-5_2)
@@ -26594,6 +26596,7 @@
Provides: weakremover(python3-django-assets)
Provides: weakremover(python3-django-babel)
Provides: weakremover(python3-django-celery)
+Provides: weakremover(python3-django-debreach)
Provides: weakremover(python3-django-dynamic-fixture)
Provides: weakremover(python3-django-multiselectfield)
Provides: weakremover(python3-django-nose)
@@ -26795,6 +26798,8 @@
Provides: weakremover(python3-moviepy)
Provides: weakremover(python3-mox3)
Provides: weakremover(python3-mpmath-doc)
+Provides: weakremover(python3-msk)
+Provides: weakremover(python3-msm)
Provides: weakremover(python3-murano-pkg-check)
Provides: weakremover(python3-nagios-http-json)
Provides: weakremover(python3-nagiosplugin)
@@ -26951,6 +26956,7 @@
Provides: weakremover(python3-pytest5)
Provides: weakremover(python3-python-cjson)
Provides: weakremover(python3-python-consul)
+Provides: weakremover(python3-python-fedora)
Provides: weakremover(python3-python-fileinspector)
Provides: weakremover(python3-python-jsonrpc-server)
Provides: weakremover(python3-python-language-server)
@@ -27178,6 +27184,7 @@
Provides: weakremover(python310-delegator)
Provides: weakremover(python310-distob)
Provides: weakremover(python310-django-assets)
+Provides: weakremover(python310-django-debreach)
Provides: weakremover(python310-django-opentracing)
Provides: weakremover(python310-django-oscar)
Provides: weakremover(python310-django-pandas)
@@ -27254,6 +27261,8 @@
Provides: weakremover(python310-mockldap)
Provides: weakremover(python310-monitoring-plugins-http_json)
Provides: weakremover(python310-monotonic)
+Provides: weakremover(python310-msk)
+Provides: weakremover(python310-msm)
Provides: weakremover(python310-nagiosplugin)
Provides: weakremover(python310-napalm-arubaos-switch)
Provides: weakremover(python310-napalm-digineo-procurve)
@@ -27346,6 +27355,7 @@
Provides: weakremover(python310-pytest-travis-fold)
Provides: weakremover(python310-python-cjson)
Provides: weakremover(python310-python-consul)
+Provides: weakremover(python310-python-fedora)
Provides: weakremover(python310-python-rtmidi-doc)
Provides: weakremover(python310-python-sofa)
Provides: weakremover(python310-python-twitter)
@@ -27476,6 +27486,7 @@
Provides: weakremover(python311-delegator)
Provides: weakremover(python311-distob)
Provides: weakremover(python311-django-assets)
+Provides: weakremover(python311-django-debreach)
Provides: weakremover(python311-django-opentracing)
Provides: weakremover(python311-django-oscar)
Provides: weakremover(python311-django-pandas)
@@ -27531,6 +27542,8 @@
Provides: weakremover(python311-mesonpep517)
Provides: weakremover(python311-metamagic.json)
Provides: weakremover(python311-monotonic)
+Provides: weakremover(python311-msk)
+Provides: weakremover(python311-msm)
Provides: weakremover(python311-nagiosplugin)
Provides: weakremover(python311-napalm-arubaos-switch)
Provides: weakremover(python311-napalm-digineo-procurve)
@@ -27593,6 +27606,7 @@
Provides: weakremover(python311-pytest-toolbox)
Provides: weakremover(python311-python-cjson)
Provides: weakremover(python311-python-consul)
+Provides: weakremover(python311-python-fedora)
Provides: weakremover(python311-python-rtmidi-doc)
Provides: weakremover(python311-python-sofa)
Provides: weakremover(python311-python-twitter)
@@ -27669,6 +27683,7 @@
Provides: weakremover(python312-cu2qu)
Provides: weakremover(python312-cufflinks)
Provides: weakremover(python312-distob)
+Provides: weakremover(python312-django-debreach)
Provides: weakremover(python312-django-opentracing)
Provides: weakremover(python312-django-pandas)
Provides: weakremover(python312-django-utils-six)
@@ -27700,6 +27715,8 @@
Provides: weakremover(python312-meld3)
Provides: weakremover(python312-metamagic.json)
Provides: weakremover(python312-monotonic)
+Provides: weakremover(python312-msk)
+Provides: weakremover(python312-msm)
Provides: weakremover(python312-napalm-digineo-procurve)
Provides: weakremover(python312-nested-lookup)
Provides: weakremover(python312-numpy_1_26_2-gnu-hpc)
@@ -27725,6 +27742,7 @@
Provides: weakremover(python312-pymacaroons-pynacl)
Provides: weakremover(python312-pytest-reorder)
Provides: weakremover(python312-python-consul)
+Provides: weakremover(python312-python-fedora)
Provides: weakremover(python312-python-sofa)
Provides: weakremover(python312-pythreejs)
Provides: weakremover(python312-pywal)
@@ -45031,6 +45049,7 @@
Provides: weakremover(tepl-6-lang)
Provides: weakremover(tepl-devel)
Provides: weakremover(termcap-32bit)
+Provides: weakremover(terminus-ttf-fonts)
Provides: weakremover(terraform)
Provides: weakremover(terraform-provider-aws)
Provides: weakremover(terraform-provider-azurerm)
1
0
Script 'mail_helper' called by obssrc
Hello community,
here is the log from the commit of package 000update-repos for openSUSE:Factory checked in at 2024-10-29 21:03:09
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/000update-repos (Old)
and /work/SRC/openSUSE:Factory/.000update-repos.new.2020 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "000update-repos"
Tue Oct 29 21:03:09 2024 rev:2622 rq: version:unknown
Changes:
--------
New Changes file:
NO CHANGES FILE!!!
New:
----
factory:non-oss_4189.2.packages.zst
factory_20241028.packages.zst
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
1
0
Script 'mail_helper' called by obssrc
Hello community,
here is the log from the commit of package os-autoinst for openSUSE:Factory checked in at 2024-10-29 14:37:03
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/os-autoinst (Old)
and /work/SRC/openSUSE:Factory/.os-autoinst.new.2020 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "os-autoinst"
Tue Oct 29 14:37:03 2024 rev:463 rq:1219013 version:4.6.1730126707.79e7c91
Changes:
--------
--- /work/SRC/openSUSE:Factory/os-autoinst/os-autoinst.changes 2024-10-10 22:16:06.617837975 +0200
+++ /work/SRC/openSUSE:Factory/.os-autoinst.new.2020/os-autoinst.changes 2024-10-29 14:37:46.320037874 +0100
@@ -1,0 +2,13 @@
+Mon Oct 28 14:45:15 UTC 2024 - okurz(a)suse.com
+
+- Update to version 4.6.1730126707.79e7c91:
+ * Add dependencies of `tools/check-shellcheck` explicitly, fix CI checks
+ * Fully cover console in testapi.pm
+ * Fully cover select_console in testapi.pm
+ * Fully cover upload_asset in autotest.pm
+ * Fully cover mouse_drag in testapi.pm
+ * Fully cover get_test_data in testapi.pm
+ * Cover parse_extra_log in testapi.pm
+ * testapi: Slightly simplify upload_logs
+
+-------------------------------------------------------------------
Old:
----
os-autoinst-4.6.1728572709.326d308.obscpio
New:
----
os-autoinst-4.6.1730126707.79e7c91.obscpio
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ os-autoinst-devel-test.spec ++++++
--- /var/tmp/diff_new_pack.84pojD/_old 2024-10-29 14:37:47.128071220 +0100
+++ /var/tmp/diff_new_pack.84pojD/_new 2024-10-29 14:37:47.132071385 +0100
@@ -18,7 +18,7 @@
%define short_name os-autoinst-devel
Name: %{short_name}-test
-Version: 4.6.1728572709.326d308
+Version: 4.6.1730126707.79e7c91
Release: 0
Summary: Test package for %{short_name}
License: GPL-2.0-or-later
++++++ os-autoinst-openvswitch-test.spec ++++++
--- /var/tmp/diff_new_pack.84pojD/_old 2024-10-29 14:37:47.156072376 +0100
+++ /var/tmp/diff_new_pack.84pojD/_new 2024-10-29 14:37:47.160072541 +0100
@@ -19,7 +19,7 @@
%define name_ext -test
%define short_name os-autoinst-openvswitch
Name: %{short_name}%{?name_ext}
-Version: 4.6.1728572709.326d308
+Version: 4.6.1730126707.79e7c91
Release: 0
Summary: test package for %{short_name}
License: GPL-2.0-or-later
++++++ os-autoinst-test.spec ++++++
--- /var/tmp/diff_new_pack.84pojD/_old 2024-10-29 14:37:47.184073531 +0100
+++ /var/tmp/diff_new_pack.84pojD/_new 2024-10-29 14:37:47.188073696 +0100
@@ -19,7 +19,7 @@
%define name_ext -test
%define short_name os-autoinst
Name: %{short_name}%{?name_ext}
-Version: 4.6.1728572709.326d308
+Version: 4.6.1730126707.79e7c91
Release: 0
Summary: test package for os-autoinst
License: GPL-2.0-or-later
++++++ os-autoinst.spec ++++++
--- /var/tmp/diff_new_pack.84pojD/_old 2024-10-29 14:37:47.216074852 +0100
+++ /var/tmp/diff_new_pack.84pojD/_new 2024-10-29 14:37:47.220075017 +0100
@@ -17,7 +17,7 @@
Name: os-autoinst
-Version: 4.6.1728572709.326d308
+Version: 4.6.1730126707.79e7c91
Release: 0
Summary: OS-level test automation
License: GPL-2.0-or-later
@@ -120,7 +120,7 @@
# The following line is generated from dependencies.yaml
%define test_requires %build_requires %ocr_requires %spellcheck_requires %test_base_requires %test_non_s390_requires %yamllint_requires python3-Pillow-tk
# The following line is generated from dependencies.yaml
-%define devel_requires %python_style_requires %test_requires ShellCheck perl(Code::TidyAll) perl(Devel::Cover) perl(Module::CPANfile) perl(Perl::Tidy) perl(Template::Toolkit) shfmt
+%define devel_requires %python_style_requires %test_requires ShellCheck file perl(Code::TidyAll) perl(Devel::Cover) perl(Module::CPANfile) perl(Perl::Tidy) perl(Template::Toolkit) sed shfmt
%define s390_zvm_requires /usr/bin/xkbcomp /usr/bin/Xvnc x3270 icewm xterm xterm-console xdotool fonts-config mkfontdir mkfontscale openssh-clients
%define ipmi_requires ipmitool
%define qemu_requires qemu-tools e2fsprogs
++++++ os-autoinst-4.6.1728572709.326d308.obscpio -> os-autoinst-4.6.1730126707.79e7c91.obscpio ++++++
/work/SRC/openSUSE:Factory/os-autoinst/os-autoinst-4.6.1728572709.326d308.obscpio /work/SRC/openSUSE:Factory/.os-autoinst.new.2020/os-autoinst-4.6.1730126707.79e7c91.obscpio differ: char 49, line 1
++++++ os-autoinst.obsinfo ++++++
--- /var/tmp/diff_new_pack.84pojD/_old 2024-10-29 14:37:47.296078154 +0100
+++ /var/tmp/diff_new_pack.84pojD/_new 2024-10-29 14:37:47.300078319 +0100
@@ -1,5 +1,5 @@
name: os-autoinst
-version: 4.6.1728572709.326d308
-mtime: 1728572709
-commit: 326d308ba2fe22bc84df4e45411410bd022a1311
+version: 4.6.1730126707.79e7c91
+mtime: 1730126707
+commit: 79e7c91e3fa32f757c5c1c5cab616ac4dea322fd
1
0
Script 'mail_helper' called by obssrc
Hello community,
here is the log from the commit of package openssl-ibmca for openSUSE:Factory checked in at 2024-10-29 14:37:02
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/openssl-ibmca (Old)
and /work/SRC/openSUSE:Factory/.openssl-ibmca.new.2020 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "openssl-ibmca"
Tue Oct 29 14:37:02 2024 rev:53 rq:1219003 version:2.4.1
Changes:
--------
--- /work/SRC/openSUSE:Factory/openssl-ibmca/openssl-ibmca.changes 2024-07-16 22:04:08.501629125 +0200
+++ /work/SRC/openSUSE:Factory/.openssl-ibmca.new.2020/openssl-ibmca.changes 2024-10-29 14:37:44.715971677 +0100
@@ -1,0 +2,9 @@
+Tue Oct 29 11:08:46 UTC 2024 - Nikolay Gueorguiev <nikolay.gueorguiev(a)suse.com>
+
+- Applied patches(jsc#PED-10292)
+ * openssl-ibmca-01-engine-Enable-external-AES-GCM-IV-when-libica-is-in-FIPS-mode.patch
+ * openssl-ibmca-02-test-provider-Do-not-link-against-libica-use-dlopen-instead.patch
+ * openssl-ibmca-03-test-provider-Explicitly-initialize-OpenSSL-after-setting-env-vars.patch
+ * openssl-ibmca-04-engine-Fix-compile-error.patch
+
+-------------------------------------------------------------------
New:
----
openssl-ibmca-01-engine-Enable-external-AES-GCM-IV-when-libica-is-in-FIPS-mode.patch
openssl-ibmca-02-test-provider-Do-not-link-against-libica-use-dlopen-instead.patch
openssl-ibmca-03-test-provider-Explicitly-initialize-OpenSSL-after-setting-env-vars.patch
openssl-ibmca-04-engine-Fix-compile-error.patch
BETA DEBUG BEGIN:
New:- Applied patches(jsc#PED-10292)
* openssl-ibmca-01-engine-Enable-external-AES-GCM-IV-when-libica-is-in-FIPS-mode.patch
* openssl-ibmca-02-test-provider-Do-not-link-against-libica-use-dlopen-instead.patch
New: * openssl-ibmca-01-engine-Enable-external-AES-GCM-IV-when-libica-is-in-FIPS-mode.patch
* openssl-ibmca-02-test-provider-Do-not-link-against-libica-use-dlopen-instead.patch
* openssl-ibmca-03-test-provider-Explicitly-initialize-OpenSSL-after-setting-env-vars.patch
New: * openssl-ibmca-02-test-provider-Do-not-link-against-libica-use-dlopen-instead.patch
* openssl-ibmca-03-test-provider-Explicitly-initialize-OpenSSL-after-setting-env-vars.patch
* openssl-ibmca-04-engine-Fix-compile-error.patch
New: * openssl-ibmca-03-test-provider-Explicitly-initialize-OpenSSL-after-setting-env-vars.patch
* openssl-ibmca-04-engine-Fix-compile-error.patch
BETA DEBUG END:
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ openssl-ibmca.spec ++++++
--- /var/tmp/diff_new_pack.LmLrAl/_old 2024-10-29 14:37:45.267994458 +0100
+++ /var/tmp/diff_new_pack.LmLrAl/_new 2024-10-29 14:37:45.267994458 +0100
@@ -79,6 +79,13 @@
Patch001: openssl1-rename-libica-files.patch
%endif
+###
+Patch10: openssl-ibmca-01-engine-Enable-external-AES-GCM-IV-when-libica-is-in-FIPS-mode.patch
+Patch11: openssl-ibmca-02-test-provider-Do-not-link-against-libica-use-dlopen-instead.patch
+Patch12: openssl-ibmca-03-test-provider-Explicitly-initialize-OpenSSL-after-setting-env-vars.patch
+Patch13: openssl-ibmca-04-engine-Fix-compile-error.patch
+###
+
%description
This package contains a shared object OpenSSL dynamic engine which interfaces
to libica, a library enabling the IBM s390/x CPACF crypto instructions.
++++++ openssl-ibmca-01-engine-Enable-external-AES-GCM-IV-when-libica-is-in-FIPS-mode.patch ++++++
From 7186bff3fa2a3dd939e1bc0fed48e733da4477a7 Mon Sep 17 00:00:00 2001
From: Ingo Franzki <ifranzki(a)linux.ibm.com>
Date: Mon, 8 Jan 2024 08:52:24 +0100
Subject: [PATCH] engine: Enable external AES-GCM IV when libica is in FIPS
mode
When the system is in FIPS mode, newer libica versions may prevent AES-GCM
from being used with an external IV. FIPS requires that the AES-GCM IV is
created libica internally via an approved random source.
The IBMCA engine can not support the internal generation of the AES-GCM IV,
because the engine API for AES-GCM does not allow this. Applications using
OpenSSL to perform AES-GCM (e.g. the TLS protocol) may require to provide an
external IV.
Enable the use of external AES-GCM IVs for libica, if the used libica library
supports this. Newer libica versions support to allow external AES-GCM IVs via
function ica_allow_external_gcm_iv_in_fips_mode().
Signed-off-by: Ingo Franzki <ifranzki(a)linux.ibm.com>
---
src/engine/e_ibmca.c | 12 +++++++++++-
src/engine/ibmca.h | 1 +
2 files changed, 12 insertions(+), 1 deletion(-)
diff --git a/src/engine/e_ibmca.c b/src/engine/e_ibmca.c
index 6cbf745..afed3fe 100644
--- a/src/engine/e_ibmca.c
+++ b/src/engine/e_ibmca.c
@@ -103,6 +103,8 @@ ica_aes_gcm_intermediate_t p_ica_aes_gcm_intermediate;
ica_aes_gcm_last_t p_ica_aes_gcm_last;
#endif
ica_cleanup_t p_ica_cleanup;
+ica_allow_external_gcm_iv_in_fips_mode_t
+ p_ica_allow_external_gcm_iv_in_fips_mode;
/* save libcrypto's default ec methods */
#ifndef NO_EC
@@ -825,7 +827,15 @@ static int ibmca_init(ENGINE *e)
BIND(ibmca_dso, ica_ed448_ctx_del);
/* ica_cleanup is not always present and only needed for newer libraries */
- p_ica_cleanup = (ica_cleanup_t)dlsym(ibmca_dso, "ica_cleanup");
+ BIND(ibmca_dso, ica_cleanup);
+
+ /*
+ * Allow external AES-GCM IV when libica runs in FIPS mode.
+ * ica_allow_external_gcm_iv_in_fips_mode() is not always present and only
+ * available with newer libraries.
+ */
+ if (BIND(ibmca_dso, ica_allow_external_gcm_iv_in_fips_mode))
+ p_ica_allow_external_gcm_iv_in_fips_mode(1);
/* disable fallbacks on Libica */
if (BIND(ibmca_dso, ica_set_fallback_mode))
diff --git a/src/engine/ibmca.h b/src/engine/ibmca.h
index 7281a5b..01465eb 100644
--- a/src/engine/ibmca.h
+++ b/src/engine/ibmca.h
@@ -617,6 +617,7 @@ typedef
int (*ica_ed448_ctx_del_t)(ICA_ED448_CTX **ctx);
typedef void (*ica_cleanup_t)(void);
+typedef void (*ica_allow_external_gcm_iv_in_fips_mode_t)(int allow);
/* entry points into libica, filled out at DSO load time */
extern ica_get_functionlist_t p_ica_get_functionlist;
++++++ openssl-ibmca-02-test-provider-Do-not-link-against-libica-use-dlopen-instead.patch ++++++
From 2f420ff28cedfea2ca730d7e54dba39fa4e06cbc Mon Sep 17 00:00:00 2001
From: Ingo Franzki <ifranzki(a)linux.ibm.com>
Date: Wed, 10 Jan 2024 15:08:47 +0100
Subject: [PATCH] test/provider: Do not link against libica use dlopen instead
When an application links against libica (via -lica), then the libica library
constructor runs before the program's main function. Libica's library
constructor does initialize OpenSSL and thus parses the config file.
However, the test programs set up some OpenSSL configuration related
environment variables within function check_libica() called from the
main function. If libica has already initialized OpenSSL prior to that,
OpenSSL won't initialize again, and thus these environment variables have
no effect.
Dynamically load libica (via dlopen) only after setting the environment
variables.
Signed-off-by: Ingo Franzki <ifranzki(a)linux.ibm.com>
---
configure.ac | 2 ++
test/provider/Makefile.am | 15 +++++++++------
test/provider/dhkey.c | 24 ++++++++++++++++++++++--
test/provider/eckey.c | 24 ++++++++++++++++++++++--
test/provider/rsakey.c | 24 ++++++++++++++++++++++--
5 files changed, 77 insertions(+), 12 deletions(-)
diff --git a/configure.ac b/configure.ac
index b43a659..09df230 100644
--- a/configure.ac
+++ b/configure.ac
@@ -116,6 +116,8 @@ AC_ARG_WITH([provider-libica-full],
[])
AM_CONDITIONAL([PROVIDER_FULL_LIBICA], [test "x$useproviderfulllibica" = xyes])
+AC_SUBST(libicaversion, "$libicaversion")
+
# If compiled against OpenSSL 3.0 or later, build the provider unless
# explicitely disabled.
# If build against OpenSSL 1.1.1, we can not build the provider.
diff --git a/test/provider/Makefile.am b/test/provider/Makefile.am
index 15a5466..fce06b3 100644
--- a/test/provider/Makefile.am
+++ b/test/provider/Makefile.am
@@ -24,24 +24,27 @@ TESTS = \
check_PROGRAMS = rsakey eckey dhkey threadtest
dhkey_SOURCES = dhkey.c
+dhkey_LDADD = -lcrypto -ldl
if PROVIDER_FULL_LIBICA
-dhkey_LDADD = -lcrypto -lica
+dhkey_CFLAGS = -DLIBICA_NAME=\"libica.so.@libicaversion@\"
else
-dhkey_LDADD = -lcrypto -lica-cex
+dhkey_CFLAGS = -DLIBICA_NAME=\"libica-cex.so.@libicaversion@\"
endif
eckey_SOURCES = eckey.c
+eckey_LDADD = -lcrypto -ldl
if PROVIDER_FULL_LIBICA
-eckey_LDADD = -lcrypto -lica
+eckey_CFLAGS = -DLIBICA_NAME=\"libica.so.@libicaversion@\"
else
-eckey_LDADD = -lcrypto -lica-cex
+eckey_CFLAGS = -DLIBICA_NAME=\"libica-cex.so.@libicaversion@\"
endif
rsakey_SOURCES = rsakey.c
+rsakey_LDADD = -lcrypto -ldl
if PROVIDER_FULL_LIBICA
-rsakey_LDADD = -lcrypto -lica
+rsakey_CFLAGS = -DLIBICA_NAME=\"libica.so.@libicaversion@\"
else
-rsakey_LDADD = -lcrypto -lica-cex
+rsakey_CFLAGS = -DLIBICA_NAME=\"libica-cex.so.@libicaversion@\"
endif
threadtest_SOURCES = threadtest.c
diff --git a/test/provider/dhkey.c b/test/provider/dhkey.c
index 8829ecc..0ec2c03 100644
--- a/test/provider/dhkey.c
+++ b/test/provider/dhkey.c
@@ -18,6 +18,7 @@
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
+#include <dlfcn.h>
#include <openssl/conf.h>
#include <openssl/evp.h>
@@ -355,13 +356,32 @@ static const unsigned int required_ica_mechs[] = { RSA_ME };
static const unsigned int required_ica_mechs_len =
sizeof(required_ica_mechs) / sizeof(unsigned int);
+typedef unsigned int (*ica_get_functionlist_t)(libica_func_list_element *,
+ unsigned int *);
+
int check_libica()
{
unsigned int mech_len, i, k, found = 0;
libica_func_list_element *mech_list = NULL;
+ void *ibmca_dso;
+ ica_get_functionlist_t p_ica_get_functionlist;
int rc;
- rc = ica_get_functionlist(NULL, &mech_len);
+ ibmca_dso = dlopen(LIBICA_NAME, RTLD_NOW);
+ if (ibmca_dso == NULL) {
+ fprintf(stderr, "Failed to load libica '%s'!\n", LIBICA_NAME);
+ return 77;
+ }
+
+ p_ica_get_functionlist =
+ (ica_get_functionlist_t)dlsym(ibmca_dso, "ica_get_functionlist");
+ if (p_ica_get_functionlist == NULL) {
+ fprintf(stderr, "Failed to get ica_get_functionlist from '%s'!\n",
+ LIBICA_NAME);
+ return 77;
+ }
+
+ rc = p_ica_get_functionlist(NULL, &mech_len);
if (rc != 0) {
fprintf(stderr, "Failed to get function list from libica!\n");
return 77;
@@ -373,7 +393,7 @@ int check_libica()
return 77;
}
- rc = ica_get_functionlist(mech_list, &mech_len);
+ rc = p_ica_get_functionlist(mech_list, &mech_len);
if (rc != 0) {
fprintf(stderr, "Failed to get function list from libica!\n");
free(mech_list);
diff --git a/test/provider/eckey.c b/test/provider/eckey.c
index b2334d7..b8f47b7 100644
--- a/test/provider/eckey.c
+++ b/test/provider/eckey.c
@@ -18,6 +18,7 @@
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
+#include <dlfcn.h>
#include <openssl/conf.h>
#include <openssl/evp.h>
@@ -788,13 +789,32 @@ static const unsigned int required_ica_mechs[] = { EC_DH, EC_DSA_SIGN,
static const unsigned int required_ica_mechs_len =
sizeof(required_ica_mechs) / sizeof(unsigned int);
+typedef unsigned int (*ica_get_functionlist_t)(libica_func_list_element *,
+ unsigned int *);
+
int check_libica()
{
unsigned int mech_len, i, k, found = 0;
libica_func_list_element *mech_list = NULL;
+ void *ibmca_dso;
+ ica_get_functionlist_t p_ica_get_functionlist;
int rc;
- rc = ica_get_functionlist(NULL, &mech_len);
+ ibmca_dso = dlopen(LIBICA_NAME, RTLD_NOW);
+ if (ibmca_dso == NULL) {
+ fprintf(stderr, "Failed to load libica '%s'!\n", LIBICA_NAME);
+ return 77;
+ }
+
+ p_ica_get_functionlist =
+ (ica_get_functionlist_t)dlsym(ibmca_dso, "ica_get_functionlist");
+ if (p_ica_get_functionlist == NULL) {
+ fprintf(stderr, "Failed to get ica_get_functionlist from '%s'!\n",
+ LIBICA_NAME);
+ return 77;
+ }
+
+ rc = p_ica_get_functionlist(NULL, &mech_len);
if (rc != 0) {
fprintf(stderr, "Failed to get function list from libica!\n");
return 77;
@@ -806,7 +826,7 @@ int check_libica()
return 77;
}
- rc = ica_get_functionlist(mech_list, &mech_len);
+ rc = p_ica_get_functionlist(mech_list, &mech_len);
if (rc != 0) {
fprintf(stderr, "Failed to get function list from libica!\n");
free(mech_list);
diff --git a/test/provider/rsakey.c b/test/provider/rsakey.c
index 366b503..9d6a618 100644
--- a/test/provider/rsakey.c
+++ b/test/provider/rsakey.c
@@ -18,6 +18,7 @@
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
+#include <dlfcn.h>
#include <openssl/conf.h>
#include <openssl/evp.h>
@@ -735,13 +736,32 @@ static const unsigned int required_ica_mechs[] = { RSA_ME, RSA_CRT };
static const unsigned int required_ica_mechs_len =
sizeof(required_ica_mechs) / sizeof(unsigned int);
+typedef unsigned int (*ica_get_functionlist_t)(libica_func_list_element *,
+ unsigned int *);
+
int check_libica()
{
unsigned int mech_len, i, k, found = 0;
libica_func_list_element *mech_list = NULL;
+ void *ibmca_dso;
+ ica_get_functionlist_t p_ica_get_functionlist;
int rc;
- rc = ica_get_functionlist(NULL, &mech_len);
+ ibmca_dso = dlopen(LIBICA_NAME, RTLD_NOW);
+ if (ibmca_dso == NULL) {
+ fprintf(stderr, "Failed to load libica '%s'!\n", LIBICA_NAME);
+ return 77;
+ }
+
+ p_ica_get_functionlist =
+ (ica_get_functionlist_t)dlsym(ibmca_dso, "ica_get_functionlist");
+ if (p_ica_get_functionlist == NULL) {
+ fprintf(stderr, "Failed to get ica_get_functionlist from '%s'!\n",
+ LIBICA_NAME);
+ return 77;
+ }
+
+ rc = p_ica_get_functionlist(NULL, &mech_len);
if (rc != 0) {
fprintf(stderr, "Failed to get function list from libica!\n");
return 77;
@@ -753,7 +773,7 @@ int check_libica()
return 77;
}
- rc = ica_get_functionlist(mech_list, &mech_len);
+ rc = p_ica_get_functionlist(mech_list, &mech_len);
if (rc != 0) {
fprintf(stderr, "Failed to get function list from libica!\n");
free(mech_list);
++++++ openssl-ibmca-03-test-provider-Explicitly-initialize-OpenSSL-after-setting-env-vars.patch ++++++
From d2254c6641b1cf34d5f735f335edf9a05ddfd67e Mon Sep 17 00:00:00 2001
From: Ingo Franzki <ifranzki(a)linux.ibm.com>
Date: Thu, 18 Jan 2024 16:35:14 +0100
Subject: [PATCH] test/provider: Explicitly initialize OpenSSL after setting
env vars.
When running with a libica version without commit
https://github.com/opencryptoki/libica/commit/42e197f61b298c6e6992b080c1923…
it is necessary to explicitly initialize OpenSSL before loading libica. Because
otherwise libica's library constructor will initialize OpenSSL the first time,
which in turn will load the IBMCA provider, and it will fall into the same
problem as fixed by above libica commit, i.e. the provider won't be able to
get the supported algorithms from libica an thus will not register any
algorithms.
Signed-off-by: Ingo Franzki <ifranzki(a)linux.ibm.com>
---
test/provider/dhkey.c | 2 ++
test/provider/eckey.c | 2 ++
test/provider/rsakey.c | 2 ++
3 files changed, 6 insertions(+)
diff --git a/test/provider/dhkey.c b/test/provider/dhkey.c
index 0ec2c03..b1270f5 100644
--- a/test/provider/dhkey.c
+++ b/test/provider/dhkey.c
@@ -461,6 +461,8 @@ int main(int argc, char **argv)
return 77;
}
+ OPENSSL_init_crypto(OPENSSL_INIT_LOAD_CONFIG, NULL);
+
ret = check_libica();
if (ret != 0)
return ret;
diff --git a/test/provider/eckey.c b/test/provider/eckey.c
index b8f47b7..a65bea5 100644
--- a/test/provider/eckey.c
+++ b/test/provider/eckey.c
@@ -895,6 +895,8 @@ int main(int argc, char **argv)
return 77;
}
+ OPENSSL_init_crypto(OPENSSL_INIT_LOAD_CONFIG, NULL);
+
ret = check_libica();
if (ret != 0)
return ret;
diff --git a/test/provider/rsakey.c b/test/provider/rsakey.c
index 9d6a618..874de6d 100644
--- a/test/provider/rsakey.c
+++ b/test/provider/rsakey.c
@@ -839,6 +839,8 @@ int main(int argc, char **argv)
return 77;
}
+ OPENSSL_init_crypto(OPENSSL_INIT_LOAD_CONFIG, NULL);
+
ret = check_libica();
if (ret != 0)
return ret;
++++++ openssl-ibmca-04-engine-Fix-compile-error.patch ++++++
From 4ea48e0682ff9a58340421dc9d896c7ca06a2621 Mon Sep 17 00:00:00 2001
From: Ingo Franzki <ifranzki(a)linux.ibm.com>
Date: Mon, 13 May 2024 08:53:56 +0200
Subject: [PATCH] engine: Fix compile error on Fedora 40
ibmca_pkey.c:627:47: error: passing argument 2 of 'EVP_PKEY_meth_set_copy'
from incompatible pointer type [-Wincompatible-pointer-types]
627 | EVP_PKEY_meth_set_copy(ibmca_ed448_pmeth, ibmca_ed448_copy);
Signed-off-by: Ingo Franzki <ifranzki(a)linux.ibm.com>
---
src/engine/ibmca_pkey.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/src/engine/ibmca_pkey.c b/src/engine/ibmca_pkey.c
index 9c8de94c..6cd8fcd9 100644
--- a/src/engine/ibmca_pkey.c
+++ b/src/engine/ibmca_pkey.c
@@ -258,7 +258,7 @@ static int ibmca_x448_derive(EVP_PKEY_CTX *pkey_ctx, unsigned char *key, size_t
/* ED25519 */
-static int ibmca_ed25519_copy(EVP_PKEY_CTX *to, EVP_PKEY_CTX *from)
+static int ibmca_ed25519_copy(EVP_PKEY_CTX *to, const EVP_PKEY_CTX *from)
{
return 1;
}
@@ -402,7 +402,7 @@ static int ibmca_ed25519_verify(EVP_MD_CTX *md_ctx, const unsigned char *sig,
/* ED448 */
-static int ibmca_ed448_copy(EVP_PKEY_CTX *to, EVP_PKEY_CTX *from)
+static int ibmca_ed448_copy(EVP_PKEY_CTX *to, const EVP_PKEY_CTX *from)
{
return 1;
}
1
0
Script 'mail_helper' called by obssrc
Hello community,
here is the log from the commit of package openQA-devel-container for openSUSE:Factory checked in at 2024-10-29 14:37:00
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/openQA-devel-container (Old)
and /work/SRC/openSUSE:Factory/.openQA-devel-container.new.2020 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "openQA-devel-container"
Tue Oct 29 14:37:00 2024 rev:23 rq:1219006 version:unknown
Changes:
--------
--- /work/SRC/openSUSE:Factory/openQA-devel-container/openQA-devel-container.changes 2024-05-31 22:17:38.093808649 +0200
+++ /work/SRC/openSUSE:Factory/.openQA-devel-container.new.2020/openQA-devel-container.changes 2024-10-29 14:37:43.935939487 +0100
@@ -1,0 +2,6 @@
+Mon Oct 28 09:33:13 UTC 2024 - okurz(a)suse.de
+
+- Update to version 4.6.1729634304.9a22ad596:
+ * Update to latest openQA version
+
+-------------------------------------------------------------------
Old:
----
openQA-4.6.1717018874.263632817.obscpio
New:
----
openQA-4.6.1729634304.9a22ad596.obscpio
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ openQA-4.6.1717018874.263632817.obscpio -> openQA-4.6.1729634304.9a22ad596.obscpio ++++++
++++++ openQA.obsinfo ++++++
--- /var/tmp/diff_new_pack.lNHEXc/_old 2024-10-29 14:37:44.499962763 +0100
+++ /var/tmp/diff_new_pack.lNHEXc/_new 2024-10-29 14:37:44.503962928 +0100
@@ -1,5 +1,5 @@
name: openQA
-version: 4.6.1717018874.263632817
-mtime: 1717018874
-commit: 263632817f224e1ae8f240e0c8f614ec85bf2ec3
+version: 4.6.1729634304.9a22ad596
+mtime: 1729634304
+commit: 9a22ad5969cf81d1125c5f330984b50dd514e6da
1
0
Script 'mail_helper' called by obssrc
Hello community,
here is the log from the commit of package gutenprint for openSUSE:Factory checked in at 2024-10-29 14:36:51
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/gutenprint (Old)
and /work/SRC/openSUSE:Factory/.gutenprint.new.2020 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "gutenprint"
Tue Oct 29 14:36:51 2024 rev:37 rq:1218980 version:5.3.4
Changes:
--------
--- /work/SRC/openSUSE:Factory/gutenprint/gutenprint.changes 2024-02-27 22:49:38.177317970 +0100
+++ /work/SRC/openSUSE:Factory/.gutenprint.new.2020/gutenprint.changes 2024-10-29 14:37:39.259746509 +0100
@@ -1,0 +2,10 @@
+Tue Oct 22 14:11:16 UTC 2024 - Johannes Meixner <jsmeix(a)suse.com>
+
+- Spec file cleanup (removal of all SLE10/11/12 special cases).
+- No longer build the GIMP plugin as a test to find out
+ if it is really still needed because I (jsmeix(a)suse.com)
+ cannot maintain GUI software with reasonable effort.
+ If the GIMP plugin is still needed, a co-maintainer
+ is needed who will actually maintain it.
+
+-------------------------------------------------------------------
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ gutenprint.spec ++++++
--- /var/tmp/diff_new_pack.qWM1pD/_old 2024-10-29 14:37:39.731765988 +0100
+++ /var/tmp/diff_new_pack.qWM1pD/_new 2024-10-29 14:37:39.731765988 +0100
@@ -1,7 +1,7 @@
#
# spec file for package gutenprint
#
-# Copyright (c) 2023 SUSE LLC
+# Copyright (c) 2024 SUSE LLC
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@@ -20,80 +20,18 @@
URL: http://gutenprint.sourceforge.net
Version: 5.3.4
Release: 0
-#Version: 5.3.4
%define tarball_version %{version}
-#%%define tarball_version 5.3.4
%define gutenprintmajor 5.3
-BuildRequires: cairo-devel
-# SLE10 and SLE11 and SLE12 need special BuildRequires.
-# For suse_version values see https://en.opensuse.org/openSUSE:Build_Service_cross_distribution_howto
-%if 0%{?suse_version} != 1010 && 0%{?suse_version} != 1110 && 0%{?suse_version} != 1315
-# Anything what is not SLE10 or SLE11 or SLE12 (i.e. all openSUSE versions) have "normal" BuildRequires.
BuildRequires: cups-ddk
BuildRequires: cups-devel
-%endif
-%if 0%{?suse_version} == 1110 || 0%{?suse_version} == 1010
-# On SLE11 and SLE10 there is the separated package cupsddk.
-BuildRequires: cups-devel
-BuildRequires: cupsddk
-%endif
-%if 0%{?suse_version} == 1315
-# For SLE12 by default CUPS 1.7.5 is provided and alternatively CUPS 1.5.4 is provided in the "legacy" module.
-# For SLE12 build it with traditional CUPS 1.5.4 to ensure it works on SLE12 both with CUPS 1.7.5 and CUPS 1.5.4.
-# Only in the Printing project for SLE12 use cups154-ddk (a sub package of the cups154-SLE12 source package):
-BuildRequires: cups154-ddk
-BuildRequires: cups154-devel
-%endif
-BuildRequires: gimp-devel
-BuildRequires: glib2-devel
-BuildRequires: gtk2-devel
-BuildRequires: libpng-devel
-BuildRequires: libtiff-devel
-%if 0%{?suse_version} >= 1140
-# The CUPS dyesub USB backend requires libusb-1.0 which is available since openSUSE 11.4.
-# When libusb-1.0 is not available, the configure magic does not build the CUPS dyesub USB backend.
BuildRequires: libusb-1_0-devel
-%endif
-BuildRequires: pango-devel
+BuildRequires: zlib-devel
Summary: Printer drivers for CUPS from the Gutenprint project
-# The "rastertogutenprint" filter requires CUPS and the "cups" output device in Ghostscript:
License: GPL-2.0-or-later
Group: Hardware/Printing
-%if 0%{?suse_version} == 1010
-# For SLE10 it must be built with --disable-escputil because in SLE10 escputil is provided by ghostscript-library
-%define enable_or_disable_escputil disable-escputil
-# For SLE10 it must be built with --disable-cups-1_2-enhancements because SLE10 has CUPS 1.1
-%define enable_or_disable_cups_1_2_enhancements disable-cups-1_2-enhancements
+# The "rastertogutenprint" filter requires CUPS and the "cups" output device in Ghostscript:
Requires: cups
-%else
-%define enable_or_disable_escputil enable-escputil
-%define enable_or_disable_cups_1_2_enhancements enable-cups-1_2-enhancements
-Requires: cups >= 1.2.2
-%endif
-%if 0%{?suse_version} == 1110 || 0%{?suse_version} == 1010
-# For SLE11 and SLE10 it must be built --without-gimp2 because since Gutenprint 5.2.13
-# the gimp_pixels_to_units function is called in in src/gimp2/print.c and according to
-# https://developer.gimp.org/api/2.0/libgimpbase/libgimpbase-gimpunit.html
-# the gimp_pixels_to_units function is available since GIMP 2.8
-# but SLE11 provides GIMP 2.6.2 and SLE10 provides GIMP 2.2.10:
-%define with_or_without_gimp2 without-gimp2
-# Let the main package confict with an installed gutenprint-gimpplugin <= 5.2.12
-# which intentionally should break an automated RPM package version upgrade
-# to make the user aware that by installing Gutenprint 5.2.13
-# there will be no longer a gutenprint-gimpplugin:
-Conflicts: gutenprint-gimpplugin < 5.2.13
-%else
-%define with_or_without_gimp2 with-gimp2
-%endif
-# Up to openSUSE 12.1 the package cups has "Requires: ghostscript_any" so that the above
-# "Requires: cups" is sufficient to also get the "cups" output device in Ghostscript.
-# Since openSUSE 12.2 the package cups has only "Recommends: ghostscript" to avoid
-# an implicit build dependency cycle between the main-packages cups and ghostscript.
-# Therefore after openSUSE 12.1 gutenprint needs an explicit "Requires: ghostscript"
-# to ensure that the "cups" output device in Ghostscript is available:
-%if 0%{?suse_version} > 1210
Requires: ghostscript
-%endif
# Install into this non-root directory (required when it is built as non-root user):
BuildRoot: %{_tmppath}/%{name}-%{version}-build
@@ -112,28 +50,15 @@
%package devel
Summary: Development environment for Gutenprint
Group: Development/Libraries/C and C++
-Requires: cups >= 1.2.2
-Requires: ghostscript-library >= 7.05
+Requires: cups
+Requires: ghostscript
Requires: glibc-devel
-Requires: gtk2-devel
Requires: gutenprint = %{version}
%description devel
The development environment for the Gutenprint printer drivers.
See the developers guide to Gutenprint at /usr/share/gutenprint/doc/gutenprint.pdf
-%if 0%{?suse_version} > 1110
-# For SLE11 and SLE10 it is built --without-gimp2 (see above):
-%package gimpplugin
-Summary: Alternative GIMP print plug-in from the Gutenprint project
-Group: Hardware/Printing
-
-%description -n gutenprint-gimpplugin
-The enhanced Gutenprint GIMP print plug-in offers an alternative
-with additional capabilities to the plugin supplied with GIMP.
-See the user's manual at /usr/share/gutenprint/doc/gutenprint-users-manual.pdf
-%endif
-
%prep
%autosetup -p1 -n gutenprint-%{tarball_version}
@@ -149,10 +74,8 @@
--enable-cups-ppds \
--enable-simplified-cups-ppds \
--disable-translated-cups-ppds \
- --enable-libgutenprintui2 \
- --%{enable_or_disable_escputil} \
- --%{enable_or_disable_cups_1_2_enhancements} \
- --%{with_or_without_gimp2}
+ --disable-libgutenprintui2 \
+ --without-gimp2
make %{?_smp_mflags}
# Do not run "make check" here because it fails.
# But "make DESTDIR=$RPM_BUILD_ROOT installcheck" works (see below).
@@ -167,13 +90,11 @@
make DESTDIR=$RPM_BUILD_ROOT install
# Run self-tests using the binaries in their installed location:
make DESTDIR=$RPM_BUILD_ROOT installcheck
-# Remove libtool archives
+# Remove libtool archives:
rm -rf %{buildroot}%{_libdir}/*.la
# Work with upstream compliant CUPS 1.4 on all platforms
# which means to have a fixed "/usr/lib/cups/" directory
-# on all platforms (see Novell/Suse Bugzilla bnc#575544).
-# Do not do this for SLE11 and SLE10 where still /usr/lib64/cups/ is used on x86_64:
-%if 0%{?suse_version} > 1110
+# on all platforms (see Novell/Suse Bugzilla bnc#575544):
for D in lib32 lib64
do for F in commandtocanon commandtoepson rastertogutenprint.%{gutenprintmajor}
do if test -e $RPM_BUILD_ROOT/usr/$D/cups/filter/$F
@@ -185,26 +106,20 @@
then mv -f $RPM_BUILD_ROOT/usr/$D/cups/driver/$F $RPM_BUILD_ROOT/usr/lib/cups/driver/$F
fi
done
-%endif
-%if 0%{?suse_version} != 1010
-# Skip that on SLE10 because there is no .../cups/driver/ directory.
# Disable the run-time PPD generator /usr/lib/cups/driver/gutenprint.5.3
# so that it is not executed by the cups-driverd (e.g. in response to a "lpinfo -m" request)
# to avoid duplicated PPDs because we create the PPDs during compile-time (via --enable-cups-ppds)
# and provide ready-made PPDs in /usr/share/cups/model/gutenprint/... in the RPM package
# see "Regarding CUPS PPD files" at https://bugzilla.novell.com/show_bug.cgi?id=514994#c9
-%if 0%{?suse_version} == 1110
-# On SLE11 there is still /usr/lib64/cups/ used on x86_64.
-chmod a-x $RPM_BUILD_ROOT%_libdir/cups/driver/gutenprint.%{gutenprintmajor}
-%else
chmod a-x $RPM_BUILD_ROOT/usr/lib/cups/driver/gutenprint.%{gutenprintmajor}
-%endif
-%endif
# Move the special testpattern generator away from the usual bin directory:
mv $RPM_BUILD_ROOT/%{_bindir}/testpattern $RPM_BUILD_ROOT/%{_libdir}/gutenprint/%{gutenprintmajor}
-# Remove dispensable .po files (only the .mo files are needed on the end-users's system):
+# Remove dispensable .po files (only the .mo files are needed on the end-user's system):
rm $RPM_BUILD_ROOT/usr/share/locale/*/gutenprint_*.po
-rm $RPM_BUILD_ROOT%_libdir/gutenprint/*/config.summary # hostname in here made results vary
+# Remove to make builds reproducible because hostname in here made results vary:
+rm $RPM_BUILD_ROOT%_libdir/gutenprint/*/config.summary
+# Mark locale-dependent files with the respective %lang tag in the file list
+# see https://en.opensuse.org/openSUSE:Packaging_Conventions_RPM_Macros
%find_lang gutenprint
%post
@@ -225,10 +140,7 @@
%defattr(-,root,root)
%config /etc/cups/command.types
%{_bindir}/cups-calibrate
-%if 0%{?suse_version} != 1010
-# In SLE10 escputil is provided by ghostscript-library
%{_bindir}/escputil
-%endif
%{_sbindir}/cups-genppd*
%dir %{_libdir}/gutenprint
%dir %{_libdir}/gutenprint/%{gutenprintmajor}
@@ -241,28 +153,16 @@
%dir /usr/share/cups/model/gutenprint/%{gutenprintmajor}
%dir /usr/share/cups/model/gutenprint/%{gutenprintmajor}/C
/usr/share/cups/model/gutenprint/%{gutenprintmajor}/C/*
-%if 0%{?suse_version} == 1110 || 0%{?suse_version} == 1010
-# On SLE11 and SLE10 there is still /usr/lib64/cups/ used on x86_64.
-%if 0%{?suse_version} != 1010
-# On SLE10 there is no .../cups/driver/ directory
-%dir %_libdir/cups/driver
-%_libdir/cups/driver/gutenprint.%{gutenprintmajor}
-%endif
-%_libdir/cups/filter/commandtocanon
-%_libdir/cups/filter/commandtoepson
-%_libdir/cups/filter/rastertogutenprint.%{gutenprintmajor}
-%else
%dir /usr/lib/cups/driver
/usr/lib/cups/driver/gutenprint.%{gutenprintmajor}
+%dir /usr/lib/cups/filter
/usr/lib/cups/filter/commandtocanon
/usr/lib/cups/filter/commandtoepson
/usr/lib/cups/filter/rastertogutenprint.%{gutenprintmajor}
-%endif
-%if 0%{?suse_version} >= 1140
+%dir /usr/lib/cups/backend
/usr/lib/cups/backend/gutenprint53+usb
%dir /usr/share/cups/usb
/usr/share/cups/usb/net.sf.gimp-print.usb-quirks
-%endif
%dir /usr/share/gutenprint
%dir /usr/share/gutenprint/%{gutenprintmajor}
/usr/share/gutenprint/%{gutenprintmajor}/*
@@ -276,18 +176,6 @@
%defattr(-,root,root)
%dir /usr/include/gutenprint
/usr/include/gutenprint/*
-%dir /usr/include/gutenprintui2
-/usr/include/gutenprintui2/*
%{_libdir}/pkgconfig/gutenprint*
%{_libdir}/libgutenprint*.so
-%if 0%{?suse_version} > 1110
-# For SLE11 and SLE10 it is built --without-gimp2 (see above):
-%files gimpplugin
-%defattr(-,root,root)
-%dir %{_libdir}/gimp
-%dir %{_libdir}/gimp/2.0
-%dir %{_libdir}/gimp/2.0/plug-ins
-%{_libdir}/gimp/2.0/plug-ins/*
-%endif
-
1
0
Script 'mail_helper' called by obssrc
Hello community,
here is the log from the commit of package shotwell for openSUSE:Factory checked in at 2024-10-29 14:36:41
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/shotwell (Old)
and /work/SRC/openSUSE:Factory/.shotwell.new.2020 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "shotwell"
Tue Oct 29 14:36:41 2024 rev:114 rq:1218968 version:0.32.10
Changes:
--------
--- /work/SRC/openSUSE:Factory/shotwell/shotwell.changes 2024-09-25 21:56:02.487145171 +0200
+++ /work/SRC/openSUSE:Factory/.shotwell.new.2020/shotwell.changes 2024-10-29 14:37:31.443423942 +0100
@@ -1,0 +2,9 @@
+Tue Oct 29 07:53:56 UTC 2024 - Dominique Leuenberger <dimstar(a)opensuse.org>
+
+- Update to version 0.32.10:
+ + Add information to log and about about running environment.
+ + Fix video description upload for YouTube.
+ + Fix a regression causing a crash in crop again.
+ + Updated translations.
+
+-------------------------------------------------------------------
Old:
----
shotwell-0.32.9.tar.xz
New:
----
shotwell-0.32.10.tar.xz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ shotwell.spec ++++++
--- /var/tmp/diff_new_pack.q3U2D8/_old 2024-10-29 14:37:32.063449530 +0100
+++ /var/tmp/diff_new_pack.q3U2D8/_new 2024-10-29 14:37:32.067449695 +0100
@@ -17,7 +17,7 @@
Name: shotwell
-Version: 0.32.9
+Version: 0.32.10
Release: 0
Summary: Photo Manager for GNOME
License: LGPL-2.1-or-later
++++++ shotwell-0.32.9.tar.xz -> shotwell-0.32.10.tar.xz ++++++
/work/SRC/openSUSE:Factory/shotwell/shotwell-0.32.9.tar.xz /work/SRC/openSUSE:Factory/.shotwell.new.2020/shotwell-0.32.10.tar.xz differ: char 26, line 1
1
0
Script 'mail_helper' called by obssrc
Hello community,
here is the log from the commit of package goxel for openSUSE:Factory checked in at 2024-10-29 14:36:33
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/goxel (Old)
and /work/SRC/openSUSE:Factory/.goxel.new.2020 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "goxel"
Tue Oct 29 14:36:33 2024 rev:11 rq:1218948 version:0.15.1
Changes:
--------
--- /work/SRC/openSUSE:Factory/goxel/goxel.changes 2024-08-02 17:27:36.589978632 +0200
+++ /work/SRC/openSUSE:Factory/.goxel.new.2020/goxel.changes 2024-10-29 14:37:23.179082830 +0100
@@ -1,0 +2,9 @@
+Sat Oct 12 13:08:57 UTC 2024 - Joshua Smith <smolsheep(a)opensuse.org>
+
+- Update to 0.15.1:
+ * Improved extrude tool, with manual delta input.
+ * Improved help messages.
+ * Added support to emulate middle mouse button with Alt.
+ * Allow to configure the navigation mouse buttons.
+
+-------------------------------------------------------------------
Old:
----
goxel-0.15.0.tar.gz
New:
----
goxel-0.15.1.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ goxel.spec ++++++
--- /var/tmp/diff_new_pack.iJeCOk/_old 2024-10-29 14:37:24.627142621 +0100
+++ /var/tmp/diff_new_pack.iJeCOk/_new 2024-10-29 14:37:24.643143282 +0100
@@ -17,7 +17,7 @@
Name: goxel
-Version: 0.15.0
+Version: 0.15.1
Release: 0
Summary: Voxel graphics editor
License: GPL-3.0-only
++++++ goxel-0.15.0.tar.gz -> goxel-0.15.1.tar.gz ++++++
++++ 21246 lines of diff (skipped)
1
0