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 gcc14 for openSUSE:Factory checked in at 2024-10-10 22:10:46
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/gcc14 (Old)
and /work/SRC/openSUSE:Factory/.gcc14.new.19354 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "gcc14"
Thu Oct 10 22:10:46 2024 rev:11 rq:1206541 version:14.2.1+git10750
Changes:
--------
--- /work/SRC/openSUSE:Factory/gcc14/gcc14.changes 2024-08-27 19:38:47.571097350 +0200
+++ /work/SRC/openSUSE:Factory/.gcc14.new.19354/gcc14.changes 2024-10-10 22:10:49.016619423 +0200
@@ -1,0 +2,8 @@
+Wed Oct 9 13:01:41 UTC 2024 - Richard Biener <rguenther(a)suse.com>
+
+- Update to gcc-14 branch head, 4af44f2cf7d281f3e4f3957ef, git10750
+ * includes libstdc++6 fix for parsing tzdata 2024b [gcc#116657]
+- Add gcc14-pr116629.patch to fix ICE with LTO building openvino
+ on aarch64 [boo#1230262]
+
+-------------------------------------------------------------------
Old:
----
gcc-14.2.0+git10526.tar.xz
New:
----
gcc-14.2.1+git10750.tar.xz
gcc14-pr116629.patch
BETA DEBUG BEGIN:
New: * includes libstdc++6 fix for parsing tzdata 2024b [gcc#116657]
- Add gcc14-pr116629.patch to fix ICE with LTO building openvino
on aarch64 [boo#1230262]
BETA DEBUG END:
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ cross-aarch64-gcc14-bootstrap.spec ++++++
--- /var/tmp/diff_new_pack.GKVicg/_old 2024-10-10 22:10:52.168750659 +0200
+++ /var/tmp/diff_new_pack.GKVicg/_new 2024-10-10 22:10:52.172750825 +0200
@@ -101,7 +101,7 @@
%define biarch_targets x86_64 s390x powerpc64 powerpc sparc sparc64
URL: https://gcc.gnu.org/
-Version: 14.2.0+git10526
+Version: 14.2.1+git10750
Release: 0
%define gcc_dir_version %(echo %version | sed 's/+.*//' | cut -d '.' -f 1)
%define gcc_snapshot_revision %(echo %version | sed 's/[3-9]\.[0-9]\.[0-6]//' | sed 's/+/-/')
@@ -123,6 +123,7 @@
Patch17: gcc9-reproducible-builds-buildid-for-checksum.patch
Patch19: gcc11-gdwarf-4-default.patch
Patch20: gcc13-pr101523.patch
+Patch21: gcc14-pr116629.patch
# A set of patches from the RH srpm
Patch51: gcc41-ppc32-retaddr.patch
# Some patches taken from Debian
@@ -320,7 +321,7 @@
%if %{suse_version} < 1550
%patch -p1 -P 19
%endif
-%patch -p1 -P 20
+%patch -p1 -P 20 -P 21
%patch -P 51
%patch -p1 -P 60 -P 61
cross-aarch64-gcc14.spec: same change
cross-amdgcn-gcc14.spec: same change
cross-arm-gcc14.spec: same change
cross-arm-none-gcc14-bootstrap.spec: same change
cross-arm-none-gcc14.spec: same change
cross-avr-gcc14-bootstrap.spec: same change
cross-avr-gcc14.spec: same change
cross-bpf-gcc14.spec: same change
cross-hppa-gcc14-bootstrap.spec: same change
cross-hppa-gcc14.spec: same change
cross-m68k-gcc14.spec: same change
cross-mips-gcc14.spec: same change
cross-nvptx-gcc14.spec: same change
cross-ppc64-gcc14.spec: same change
cross-ppc64le-gcc14-bootstrap.spec: same change
cross-ppc64le-gcc14.spec: same change
cross-pru-gcc14-bootstrap.spec: same change
cross-pru-gcc14.spec: same change
cross-riscv64-elf-gcc14-bootstrap.spec: same change
cross-riscv64-elf-gcc14.spec: same change
cross-riscv64-gcc14-bootstrap.spec: same change
cross-riscv64-gcc14.spec: same change
cross-rx-gcc14-bootstrap.spec: same change
cross-rx-gcc14.spec: same change
cross-s390x-gcc14-bootstrap.spec: same change
cross-s390x-gcc14.spec: same change
cross-sparc-gcc14.spec: same change
cross-sparc64-gcc14.spec: same change
cross-x86_64-gcc14.spec: same change
gcc14-testresults.spec: same change
++++++ gcc14.spec ++++++
--- /var/tmp/diff_new_pack.GKVicg/_old 2024-10-10 22:10:53.104789631 +0200
+++ /var/tmp/diff_new_pack.GKVicg/_new 2024-10-10 22:10:53.108789797 +0200
@@ -196,7 +196,7 @@
%define biarch_targets x86_64 s390x powerpc64 powerpc sparc sparc64
URL: https://gcc.gnu.org/
-Version: 14.2.0+git10526
+Version: 14.2.1+git10750
Release: 0
%define gcc_dir_version %(echo %version | sed 's/+.*//' | cut -d '.' -f 1)
%define gcc_snapshot_revision %(echo %version | sed 's/[3-9]\.[0-9]\.[0-6]//' | sed 's/+/-/')
@@ -361,6 +361,7 @@
Patch17: gcc9-reproducible-builds-buildid-for-checksum.patch
Patch19: gcc11-gdwarf-4-default.patch
Patch20: gcc13-pr101523.patch
+Patch21: gcc14-pr116629.patch
# A set of patches from the RH srpm
Patch51: gcc41-ppc32-retaddr.patch
# Some patches taken from Debian
@@ -2362,7 +2363,7 @@
%if %{suse_version} < 1550
%patch -p1 -P 19
%endif
-%patch -p1 -P 20
+%patch -p1 -P 20 -P 21
%patch -P 51
%patch -p1 -P 60 -P 61
++++++ gcc-14.2.0+git10526.tar.xz -> gcc-14.2.1+git10750.tar.xz ++++++
/work/SRC/openSUSE:Factory/gcc14/gcc-14.2.0+git10526.tar.xz /work/SRC/openSUSE:Factory/.gcc14.new.19354/gcc-14.2.1+git10750.tar.xz differ: char 15, line 1
++++++ gcc.spec.in ++++++
--- /var/tmp/diff_new_pack.GKVicg/_old 2024-10-10 22:10:53.336799290 +0200
+++ /var/tmp/diff_new_pack.GKVicg/_new 2024-10-10 22:10:53.340799456 +0200
@@ -200,7 +200,7 @@
%define biarch_targets x86_64 s390x powerpc64 powerpc sparc sparc64
URL: https://gcc.gnu.org/
-Version: 14.2.0+git10526
+Version: 14.2.1+git10750
Release: 1
%define gcc_dir_version %(echo %version | sed 's/+.*//' | cut -d '.' -f 1)
%define gcc_snapshot_revision %(echo %version | sed 's/[3-9]\.[0-9]\.[0-6]//' | sed 's/+/-/')
@@ -366,6 +366,7 @@
Patch17: gcc9-reproducible-builds-buildid-for-checksum.patch
Patch19: gcc11-gdwarf-4-default.patch
Patch20: gcc13-pr101523.patch
+Patch21: gcc14-pr116629.patch
# A set of patches from the RH srpm
Patch51: gcc41-ppc32-retaddr.patch
# Some patches taken from Debian
@@ -1336,7 +1337,7 @@
%if %{suse_version} < 1550
%patch -p1 -P 19
%endif
-%patch -p1 -P 20
+%patch -p1 -P 20 -P 21
%patch -P 51
%patch -p1 -P 60 -P 61
++++++ gcc14-pr116629.patch ++++++
From 9d45efe523ffb2d2fc1350aeaba9f1cfe9f58815 Mon Sep 17 00:00:00 2001
From: Richard Biener <rguenther(a)suse.de>
Date: Wed, 9 Oct 2024 13:57:36 +0100
Subject: [PATCH] aarch64: Fix SVE ACLE gimple folds for C++ LTO [PR116629]
To: gcc-patches(a)gcc.gnu.org
From: Richard Sandiford <richard.sandiford(a)arm.com>
The SVE ACLE code has two ways of handling overloaded functions.
One, used by C, is to define a single dummy function for each unique
overloaded name, with resolve_overloaded_builtin then resolving calls
to real non-overloaded functions. The other, used by C++, is to
define a separate function for each individual overload.
The builtins harness assigns integer function codes programmatically.
However, LTO requires it to use the same assignment for every
translation unit, regardless of language. This means that C++ TUs
need to create (unused) slots for the C overloads and that C TUs
need to create (unused) slots for the C++ overloads.
In many ways, it doesn't matter whether the LTO frontend itself
uses the C approach or the C++ approach to defining overloaded
functions, since the LTO frontend never has to resolve source-level
overloading. However, the C++ approach of defining a separate
function for each overload means that C++ calls never need to
be redirected to a different function. Calls to an overload
can appear in the LTO dump and survive until expand. In contrast,
calls to C's dummy overload functions are resolved by the front
end and never survive to LTO (or expand).
Some optimisations work by moving between sibling functions, such as _m
to _x. If the source function is an overload, the expected destination
function is too. The LTO frontend needs to define C++ overloads if it
wants to do this optimisation properly for C++.
The PR is about a tree checking failure caused by trying to use a
stubbed-out C++ overload in LTO. Dealing with that by detecting the
stub (rather than changing which overloads are defined) would have
turned this from an ice-on-valid to a missed optimisation.
In future, it would probably make sense to redirect overloads to
non-overloaded functions during gimple folding, in case that exposes
more CSE opportunities. But it'd probably be of limited benefit, since
it should be rare for code to mix overloaded and non-overloaded uses of
the same operation. It also wouldn't be suitable for backports.
gcc/
PR target/116629
* config/aarch64/aarch64-sve-builtins.cc
(function_builder::function_builder): Use direct overloads for LTO.
gcc/testsuite/
PR target/116629
* gcc.target/aarch64/sve/acle/general/pr106326_2.c: New test.
---
gcc/config/aarch64/aarch64-sve-builtins.cc | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/gcc/config/aarch64/aarch64-sve-builtins.cc b/gcc/config/aarch64/aarch64-sve-builtins.cc
index e0458f7c1f6..afc0c36e620 100644
--- a/gcc/config/aarch64/aarch64-sve-builtins.cc
+++ b/gcc/config/aarch64/aarch64-sve-builtins.cc
@@ -1259,7 +1259,7 @@ function_builder::function_builder (handle_pragma_index pragma_index,
bool function_nulls)
{
m_overload_type = build_function_type (void_type_node, void_list_node);
- m_direct_overloads = lang_GNU_CXX ();
+ m_direct_overloads = lang_GNU_CXX () || in_lto_p;
if (initial_indexes[pragma_index] == 0)
{
--
2.43.0
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-09 22:41:34
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/000release-packages (Old)
and /work/SRC/openSUSE:Factory/.000release-packages.new.19354 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "000release-packages"
Wed Oct 9 22:41:34 2024 rev:3148 rq: version:unknown
Changes:
--------
--- /work/SRC/openSUSE:Factory/000release-packages/Aeon-release.changes 2024-10-09 14:17:07.240589626 +0200
+++ /work/SRC/openSUSE:Factory/.000release-packages.new.19354/Aeon-release.changes 2024-10-09 22:41:36.362059639 +0200
@@ -2 +2 @@
-Wed Oct 09 12:17:04 UTC 2024 - openSUSE <packaging(a)lists.opensuse.org>
+Wed Oct 09 20:41: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:
------------------
++++++ Aeon-release.spec ++++++
--- /var/tmp/diff_new_pack.SkaSyZ/_old 2024-10-09 22:41:38.486149030 +0200
+++ /var/tmp/diff_new_pack.SkaSyZ/_new 2024-10-09 22:41:38.490149198 +0200
@@ -17,7 +17,7 @@
Name: Aeon-release
-Version: 20241008
+Version: 20241009
Release: 0
Summary: Aeon
License: GPL-2.0-or-later
@@ -174,9 +174,9 @@
%include %{SOURCE100}
Provides: %name-%version
Provides: product() = Aeon
-Provides: product(Aeon) = 20241008-0
+Provides: product(Aeon) = 20241009-0
Provides: product-label() = Aeon
-Provides: product-cpeid() = cpe%3A%2Fo%3Aopensuse%3Aaeon%3A20241008
+Provides: product-cpeid() = cpe%3A%2Fo%3Aopensuse%3Aaeon%3A20241009
Provides: product-url(releasenotes) = http%3A%2F%2Fdoc.opensuse.org%2Frelease%2Dnotes%2Fx86_64%2FopenSUSE%2FTumbleweed%2Frelease%2Dnotes%2DopenSUSE.rpm
Provides: product-endoflife()
Requires: product_flavor(Aeon)
@@ -192,7 +192,7 @@
Group: System/Fhs
Provides: product_flavor()
Provides: flavor(appliance)
-Provides: product_flavor(Aeon) = 20241008-0
+Provides: product_flavor(Aeon) = 20241009-0
Summary: Aeon%{?betaversion: %{betaversion}}
%description appliance
@@ -257,11 +257,11 @@
<product schemeversion="0">
<vendor>openSUSE</vendor>
<name>Aeon</name>
- <version>20241008</version>
+ <version>20241009</version>
<release>0</release>
<endoflife></endoflife>
<arch>%{_target_cpu}</arch>
- <cpeid>cpe:/o:opensuse:aeon:20241008</cpeid>
+ <cpeid>cpe:/o:opensuse:aeon:20241009</cpeid>
<productline>Aeon</productline>
<register>
<pool>
++++++ Kalpa-release.spec ++++++
--- /var/tmp/diff_new_pack.SkaSyZ/_old 2024-10-09 22:41:38.514150208 +0200
+++ /var/tmp/diff_new_pack.SkaSyZ/_new 2024-10-09 22:41:38.514150208 +0200
@@ -17,7 +17,7 @@
Name: Kalpa-release
-Version: 20241008
+Version: 20241009
Release: 0
Summary: openSUSE Kalpa
License: GPL-2.0-or-later
@@ -174,9 +174,9 @@
%include %{SOURCE100}
Provides: %name-%version
Provides: product() = Kalpa
-Provides: product(Kalpa) = 20241008-0
+Provides: product(Kalpa) = 20241009-0
Provides: product-label() = openSUSE%20Kalpa
-Provides: product-cpeid() = cpe%3A%2Fo%3Aopensuse%3Akalpa%3A20241008
+Provides: product-cpeid() = cpe%3A%2Fo%3Aopensuse%3Akalpa%3A20241009
Provides: product-url(releasenotes) = http%3A%2F%2Fdoc.opensuse.org%2Frelease%2Dnotes%2Fx86_64%2FopenSUSE%2FTumbleweed%2Frelease%2Dnotes%2DopenSUSE.rpm
Provides: product-endoflife()
Requires: product_flavor(Kalpa)
@@ -192,7 +192,7 @@
Group: System/Fhs
Provides: product_flavor()
Provides: flavor(appliance)
-Provides: product_flavor(Kalpa) = 20241008-0
+Provides: product_flavor(Kalpa) = 20241009-0
Summary: openSUSE Kalpa%{?betaversion: %{betaversion}}
%description appliance
@@ -257,11 +257,11 @@
<product schemeversion="0">
<vendor>openSUSE</vendor>
<name>Kalpa</name>
- <version>20241008</version>
+ <version>20241009</version>
<release>0</release>
<endoflife></endoflife>
<arch>%{_target_cpu}</arch>
- <cpeid>cpe:/o:opensuse:kalpa:20241008</cpeid>
+ <cpeid>cpe:/o:opensuse:kalpa:20241009</cpeid>
<productline>Kalpa</productline>
<register>
<pool>
++++++ MicroOS-release.spec ++++++
--- /var/tmp/diff_new_pack.SkaSyZ/_old 2024-10-09 22:41:38.542151386 +0200
+++ /var/tmp/diff_new_pack.SkaSyZ/_new 2024-10-09 22:41:38.542151386 +0200
@@ -17,7 +17,7 @@
Name: MicroOS-release
-Version: 20241008
+Version: 20241009
Release: 0
Summary: openSUSE MicroOS
License: GPL-2.0-or-later
@@ -179,9 +179,9 @@
%include %{SOURCE100}
Provides: %name-%version
Provides: product() = MicroOS
-Provides: product(MicroOS) = 20241008-0
+Provides: product(MicroOS) = 20241009-0
Provides: product-label() = openSUSE%20MicroOS
-Provides: product-cpeid() = cpe%3A%2Fo%3Aopensuse%3Amicroos%3A20241008
+Provides: product-cpeid() = cpe%3A%2Fo%3Aopensuse%3Amicroos%3A20241009
Provides: product-url(releasenotes) = http%3A%2F%2Fdoc.opensuse.org%2Frelease%2Dnotes%2Fx86_64%2FopenSUSE%2FTumbleweed%2Frelease%2Dnotes%2DopenSUSE.rpm
Provides: product-endoflife()
Requires: product_flavor(MicroOS)
@@ -197,7 +197,7 @@
Group: System/Fhs
Provides: product_flavor()
Provides: flavor(dvd)
-Provides: product_flavor(MicroOS) = 20241008-0
+Provides: product_flavor(MicroOS) = 20241009-0
Summary: openSUSE MicroOS%{?betaversion: %{betaversion}}
%description dvd
@@ -213,7 +213,7 @@
Group: System/Fhs
Provides: product_flavor()
Provides: flavor(appliance)
-Provides: product_flavor(MicroOS) = 20241008-0
+Provides: product_flavor(MicroOS) = 20241009-0
Summary: openSUSE MicroOS%{?betaversion: %{betaversion}}
%description appliance
@@ -278,11 +278,11 @@
<product schemeversion="0">
<vendor>openSUSE</vendor>
<name>MicroOS</name>
- <version>20241008</version>
+ <version>20241009</version>
<release>0</release>
<endoflife></endoflife>
<arch>%{_target_cpu}</arch>
- <cpeid>cpe:/o:opensuse:microos:20241008</cpeid>
+ <cpeid>cpe:/o:opensuse:microos:20241009</cpeid>
<productline>MicroOS</productline>
<register>
<pool>
++++++ openSUSE-Addon-NonOss-release.spec ++++++
--- /var/tmp/diff_new_pack.SkaSyZ/_old 2024-10-09 22:41:38.570152565 +0200
+++ /var/tmp/diff_new_pack.SkaSyZ/_new 2024-10-09 22:41:38.570152565 +0200
@@ -18,7 +18,7 @@
Name: openSUSE-Addon-NonOss-release
%define product openSUSE-Addon-NonOss
-Version: 20241008
+Version: 20241009
#!BcntSyncTag: openSUSE-Addon-NonOss
Release: 0
Summary: openSUSE NonOSS Addon
@@ -26,9 +26,9 @@
Group: System/Fhs
Provides: %name-%version
Provides: product() = openSUSE%2DAddon%2DNonOss
-Provides: product(openSUSE-Addon-NonOss) = 20241008-0
+Provides: product(openSUSE-Addon-NonOss) = 20241009-0
Provides: product-label() = non%20oss%20addon
-Provides: product-cpeid() = cpe%3A%2Fo%3Aopensuse%3Aopensuse%2Daddon%2Dnonoss%3A20241008
+Provides: product-cpeid() = cpe%3A%2Fo%3Aopensuse%3Aopensuse%2Daddon%2Dnonoss%3A20241009
@@ -48,10 +48,10 @@
<product schemeversion="0">
<vendor>openSUSE</vendor>
<name>openSUSE-Addon-NonOss</name>
- <version>20241008</version>
+ <version>20241009</version>
<release>0</release>
<arch>%{_target_cpu}</arch>
- <cpeid>cpe:/o:opensuse:opensuse-addon-nonoss:20241008</cpeid>
+ <cpeid>cpe:/o:opensuse:opensuse-addon-nonoss:20241009</cpeid>
<register>
<pool>
</pool>
++++++ openSUSE-release.spec ++++++
--- /var/tmp/diff_new_pack.SkaSyZ/_old 2024-10-09 22:41:38.594153575 +0200
+++ /var/tmp/diff_new_pack.SkaSyZ/_new 2024-10-09 22:41:38.598153743 +0200
@@ -20,7 +20,7 @@
#define betaversion %{nil}
%define codename Tumbleweed
Name: openSUSE-release
-Version: 20241008
+Version: 20241009
Release: 0
# 0 is the product release, not the build release of this package
Summary: openSUSE Tumbleweed
@@ -185,7 +185,7 @@
%include %{SOURCE100}
Provides: %name-%version
Provides: product() = openSUSE
-Provides: product(openSUSE) = 20241008-0
+Provides: product(openSUSE) = 20241009-0
%ifarch x86_64
Provides: product-register-target() = openSUSE%2DTumbleweed%2Dx86_64
%endif
@@ -199,7 +199,7 @@
Provides: product-register-target() = openSUSE%2DTumbleweed%2Daarch64
%endif
Provides: product-label() = openSUSE
-Provides: product-cpeid() = cpe%3A%2Fo%3Aopensuse%3Aopensuse%3A20241008
+Provides: product-cpeid() = cpe%3A%2Fo%3Aopensuse%3Aopensuse%3A20241009
Provides: product-url(releasenotes) = http%3A%2F%2Fdoc.opensuse.org%2Frelease%2Dnotes%2Fx86_64%2FopenSUSE%2FTumbleweed%2Frelease%2Dnotes%2DopenSUSE.rpm
Provides: product-url(repository) = http%3A%2F%2Fdownload.opensuse.org%2Ftumbleweed%2Frepo%2Foss%2F
Requires: product_flavor(openSUSE)
@@ -213,7 +213,7 @@
Group: System/Fhs
Provides: product_flavor()
Provides: flavor(ftp)
-Provides: product_flavor(openSUSE) = 20241008-0
+Provides: product_flavor(openSUSE) = 20241009-0
Summary: openSUSE Tumbleweed%{?betaversion: %{betaversion}}
%description ftp
@@ -228,7 +228,7 @@
Group: System/Fhs
Provides: product_flavor()
Provides: flavor(mini)
-Provides: product_flavor(openSUSE) = 20241008-0
+Provides: product_flavor(openSUSE) = 20241009-0
Summary: openSUSE Tumbleweed%{?betaversion: %{betaversion}}
%description mini
@@ -243,7 +243,7 @@
Group: System/Fhs
Provides: product_flavor()
Provides: flavor(dvd)
-Provides: product_flavor(openSUSE) = 20241008-0
+Provides: product_flavor(openSUSE) = 20241009-0
Summary: openSUSE Tumbleweed%{?betaversion: %{betaversion}}
%description dvd
@@ -258,7 +258,7 @@
Group: System/Fhs
Provides: product_flavor()
Provides: flavor(livecd-kde)
-Provides: product_flavor(openSUSE) = 20241008-0
+Provides: product_flavor(openSUSE) = 20241009-0
Summary: openSUSE Tumbleweed%{?betaversion: %{betaversion}}
%description livecd-kde
@@ -273,7 +273,7 @@
Group: System/Fhs
Provides: product_flavor()
Provides: flavor(livecd-x11)
-Provides: product_flavor(openSUSE) = 20241008-0
+Provides: product_flavor(openSUSE) = 20241009-0
Summary: openSUSE Tumbleweed%{?betaversion: %{betaversion}}
%description livecd-x11
@@ -288,7 +288,7 @@
Group: System/Fhs
Provides: product_flavor()
Provides: flavor(livecd-gnome)
-Provides: product_flavor(openSUSE) = 20241008-0
+Provides: product_flavor(openSUSE) = 20241009-0
Summary: openSUSE Tumbleweed%{?betaversion: %{betaversion}}
%description livecd-gnome
@@ -303,7 +303,7 @@
Group: System/Fhs
Provides: product_flavor()
Provides: flavor(livecd-xfce)
-Provides: product_flavor(openSUSE) = 20241008-0
+Provides: product_flavor(openSUSE) = 20241009-0
Summary: openSUSE Tumbleweed%{?betaversion: %{betaversion}}
%description livecd-xfce
@@ -318,7 +318,7 @@
Group: System/Fhs
Provides: product_flavor()
Provides: flavor(usb-kde)
-Provides: product_flavor(openSUSE) = 20241008-0
+Provides: product_flavor(openSUSE) = 20241009-0
Summary: openSUSE Tumbleweed%{?betaversion: %{betaversion}}
%description usb-kde
@@ -333,7 +333,7 @@
Group: System/Fhs
Provides: product_flavor()
Provides: flavor(usb-gnome)
-Provides: product_flavor(openSUSE) = 20241008-0
+Provides: product_flavor(openSUSE) = 20241009-0
Summary: openSUSE Tumbleweed%{?betaversion: %{betaversion}}
%description usb-gnome
@@ -348,7 +348,7 @@
Group: System/Fhs
Provides: product_flavor()
Provides: flavor(usb-x11)
-Provides: product_flavor(openSUSE) = 20241008-0
+Provides: product_flavor(openSUSE) = 20241009-0
Summary: openSUSE Tumbleweed%{?betaversion: %{betaversion}}
%description usb-x11
@@ -363,7 +363,7 @@
Group: System/Fhs
Provides: product_flavor()
Provides: flavor(appliance)
-Provides: product_flavor(openSUSE) = 20241008-0
+Provides: product_flavor(openSUSE) = 20241009-0
Summary: openSUSE Tumbleweed%{?betaversion: %{betaversion}}
%description appliance
@@ -378,7 +378,7 @@
Group: System/Fhs
Provides: product_flavor()
Provides: flavor(appliance-docker)
-Provides: product_flavor(openSUSE) = 20241008-0
+Provides: product_flavor(openSUSE) = 20241009-0
Summary: openSUSE Tumbleweed%{?betaversion: %{betaversion}}
%description appliance-docker
@@ -393,7 +393,7 @@
Group: System/Fhs
Provides: product_flavor()
Provides: flavor(appliance-kvm)
-Provides: product_flavor(openSUSE) = 20241008-0
+Provides: product_flavor(openSUSE) = 20241009-0
Summary: openSUSE Tumbleweed%{?betaversion: %{betaversion}}
%description appliance-kvm
@@ -408,7 +408,7 @@
Group: System/Fhs
Provides: product_flavor()
Provides: flavor(appliance-vmware)
-Provides: product_flavor(openSUSE) = 20241008-0
+Provides: product_flavor(openSUSE) = 20241009-0
Summary: openSUSE Tumbleweed%{?betaversion: %{betaversion}}
%description appliance-vmware
@@ -423,7 +423,7 @@
Group: System/Fhs
Provides: product_flavor()
Provides: flavor(appliance-openstack)
-Provides: product_flavor(openSUSE) = 20241008-0
+Provides: product_flavor(openSUSE) = 20241009-0
Summary: openSUSE Tumbleweed%{?betaversion: %{betaversion}}
%description appliance-openstack
@@ -438,7 +438,7 @@
Group: System/Fhs
Provides: product_flavor()
Provides: flavor(appliance-hyperv)
-Provides: product_flavor(openSUSE) = 20241008-0
+Provides: product_flavor(openSUSE) = 20241009-0
Summary: openSUSE Tumbleweed%{?betaversion: %{betaversion}}
%description appliance-hyperv
@@ -453,7 +453,7 @@
Group: System/Fhs
Provides: product_flavor()
Provides: flavor(appliance-vagrant)
-Provides: product_flavor(openSUSE) = 20241008-0
+Provides: product_flavor(openSUSE) = 20241009-0
Summary: openSUSE Tumbleweed%{?betaversion: %{betaversion}}
%description appliance-vagrant
@@ -468,7 +468,7 @@
Group: System/Fhs
Provides: product_flavor()
Provides: flavor(appliance-wsl)
-Provides: product_flavor(openSUSE) = 20241008-0
+Provides: product_flavor(openSUSE) = 20241009-0
Summary: openSUSE Tumbleweed%{?betaversion: %{betaversion}}
%description appliance-wsl
@@ -483,7 +483,7 @@
Group: System/Fhs
Provides: product_flavor()
Provides: flavor(appliance-custom)
-Provides: product_flavor(openSUSE) = 20241008-0
+Provides: product_flavor(openSUSE) = 20241009-0
Summary: openSUSE Tumbleweed%{?betaversion: %{betaversion}}
%description appliance-custom
@@ -566,10 +566,10 @@
<product schemeversion="0">
<vendor>openSUSE</vendor>
<name>openSUSE</name>
- <version>20241008</version>
+ <version>20241009</version>
<release>0</release>
<arch>%{_target_cpu}</arch>
- <cpeid>cpe:/o:opensuse:opensuse:20241008</cpeid>
+ <cpeid>cpe:/o:opensuse:opensuse:20241009</cpeid>
<productline>openSUSE</productline>
<register>
<target>openSUSE-Tumbleweed-x86_64</target>
1
0
Script 'mail_helper' called by obssrc
Hello community,
here is the log from the commit of package python-audioread for openSUSE:Factory checked in at 2024-10-09 22:14:11
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/python-audioread (Old)
and /work/SRC/openSUSE:Factory/.python-audioread.new.19354 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "python-audioread"
Wed Oct 9 22:14:11 2024 rev:12 rq:1206573 version:3.0.1
Changes:
--------
--- /work/SRC/openSUSE:Factory/python-audioread/python-audioread.changes 2024-04-03 17:21:50.924666567 +0200
+++ /work/SRC/openSUSE:Factory/.python-audioread.new.19354/python-audioread.changes 2024-10-09 22:14:37.190439008 +0200
@@ -1,0 +2,10 @@
+Wed Oct 9 15:29:15 UTC 2024 - Dominique Leuenberger <dimstar(a)opensuse.org>
+
+- Use the distro default ffmpeg version:
+ + BuildRequire %ffmpeg_pref instead of ffmpeg-5.
+ + BuildConflict %{ffmpeg_pref}-mini-libs: we need to have the
+ decoders available in order to pass the test suite.
+ + Recommend /usr/bin/ffmpeg instead of ffmpeg-5: the python
+ library interacts via the ffmpeg binary.
+
+-------------------------------------------------------------------
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ python-audioread.spec ++++++
--- /var/tmp/diff_new_pack.D4osUe/_old 2024-10-09 22:14:37.854466700 +0200
+++ /var/tmp/diff_new_pack.D4osUe/_new 2024-10-09 22:14:37.858466867 +0200
@@ -23,16 +23,17 @@
License: MIT
URL: https://github.com/beetbox/audioread
Source0: https://github.com/beetbox/audioread/archive/v%{version}.tar.gz
+BuildRequires: %{ffmpeg_pref}
BuildRequires: %{python_module base}
BuildRequires: %{python_module flit-core}
BuildRequires: %{python_module pip}
BuildRequires: %{python_module pytest}
BuildRequires: %{python_module wheel}
BuildRequires: fdupes
-BuildRequires: ffmpeg-5
+BuildConflicts: %{ffmpeg_pref}-mini-libs
BuildRequires: python-rpm-macros
BuildArch: noarch
-Recommends: ffmpeg-5
+Recommends: /usr/bin/ffmpeg
Recommends: python-gobject
Recommends: python-pymad
Recommends: typelib(Gst) = 1.0
1
0
Script 'mail_helper' called by obssrc
Hello community,
here is the log from the commit of package hyprland for openSUSE:Factory checked in at 2024-10-09 22:14:04
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/hyprland (Old)
and /work/SRC/openSUSE:Factory/.hyprland.new.19354 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "hyprland"
Wed Oct 9 22:14:04 2024 rev:29 rq:1206562 version:0.44.1
Changes:
--------
--- /work/SRC/openSUSE:Factory/hyprland/hyprland.changes 2024-10-06 17:53:16.740363815 +0200
+++ /work/SRC/openSUSE:Factory/.hyprland.new.19354/hyprland.changes 2024-10-09 22:14:34.434324067 +0200
@@ -1,0 +2,18 @@
+Wed Oct 9 15:11:23 UTC 2024 - Florian "sp1rit" <sp1rit(a)disroot.org>
+
+- Update to version 0.44.1:
+ + A minor patch release with a few patches backported from main to
+ 0.44.0.
+ + Fixes backported
+ - output/xdg-output: avoid sending events to released globals
+ - keyboard: update group state on change for the sym resolve
+ state
+ - defaultConfig: add a nofocus rule for weird X windows
+ - pointer: expand sw cursor damage box
+ - keybinds: fixup xkb_states for resolve_by_sym
+ - config: give simple help for super+q not working
+ - screencopy: fix screencopy frames not being cleaned up
+ - layout: fix auto group when opening a new window in a
+ non-focused workspace
+
+-------------------------------------------------------------------
Old:
----
hyprland-0.44.0.tar.xz
New:
----
hyprland-0.44.1.tar.xz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ hyprland.spec ++++++
--- /var/tmp/diff_new_pack.IzgWqc/_old 2024-10-09 22:14:35.058350091 +0200
+++ /var/tmp/diff_new_pack.IzgWqc/_new 2024-10-09 22:14:35.062350258 +0200
@@ -22,7 +22,7 @@
%define shortname hypr
Name: hyprland
-Version: 0.44.0
+Version: 0.44.1
Release: 0
Summary: Dynamic tiling Wayland compositor
License: BSD-3-Clause
++++++ hyprland-0.44.0.tar.xz -> hyprland-0.44.1.tar.xz ++++++
/work/SRC/openSUSE:Factory/hyprland/hyprland-0.44.0.tar.xz /work/SRC/openSUSE:Factory/.hyprland.new.19354/hyprland-0.44.1.tar.xz differ: char 15, line 1
1
0
Script 'mail_helper' called by obssrc
Hello community,
here is the log from the commit of package homebank for openSUSE:Factory checked in at 2024-10-09 22:14:02
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/homebank (Old)
and /work/SRC/openSUSE:Factory/.homebank.new.19354 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "homebank"
Wed Oct 9 22:14:02 2024 rev:51 rq:1206546 version:5.8.5
Changes:
--------
--- /work/SRC/openSUSE:Factory/homebank/homebank.changes 2024-09-30 15:40:11.084480955 +0200
+++ /work/SRC/openSUSE:Factory/.homebank.new.19354/homebank.changes 2024-10-09 22:14:32.678250832 +0200
@@ -1,0 +2,22 @@
+Tue Oct 8 16:21:18 UTC 2024 - Carsten Ziepke <kieltux(a)gmail.com>
+
+- Update to 5.8.5:
+ * bugfix: date button shortened in ledger book
+- Changes in 5.8.4:
+ * bugfix: prevent some problems with xfer and both legder
+ window opened
+ * bugfix: lp#2083124 account rename doesn't allow case correction
+ * bugfix: lp#2081574 windows: budget report date fields not
+ showing in their entirety
+ * bugfix: lp#2081379 planned split operations are not modified
+ after a category merge
+ * bugfix: lp#2080864 HomeBank CLI --version or -V no longer
+ works in linux
+ * bugfix: lp#2080756 balance change from ledger toolbar not
+ updated for xfer target
+ * bugfix: lp#2080032 your accounts print/export hidden columns
+ * bugfix: lp#2079884 ledger window snap half left oversize
+ * bugfix: lp#2036404 grouped budget categories not showing
+ total amount
+
+-------------------------------------------------------------------
Old:
----
homebank-5.8.3.tar.gz
New:
----
homebank-5.8.5.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ homebank.spec ++++++
--- /var/tmp/diff_new_pack.E29JK5/_old 2024-10-09 22:14:33.394280693 +0200
+++ /var/tmp/diff_new_pack.E29JK5/_new 2024-10-09 22:14:33.394280693 +0200
@@ -17,7 +17,7 @@
Name: homebank
-Version: 5.8.3
+Version: 5.8.5
Release: 0
Summary: Application to manage personal accounts
License: GPL-2.0-or-later
++++++ homebank-5.8.3.tar.gz -> homebank-5.8.5.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/homebank-5.8.3/ChangeLog new/homebank-5.8.5/ChangeLog
--- old/homebank-5.8.3/ChangeLog 2024-09-08 09:17:31.000000000 +0200
+++ new/homebank-5.8.5/ChangeLog 2024-10-05 08:46:11.000000000 +0200
@@ -1,5 +1,27 @@
+2024-10-05 Maxime Doyen
+
+ Made 5.8.5 release
+
+ * bugfix: date button shortened in ledger book
+
+
+2024-10-04 Maxime Doyen
+
+ Made 5.8.4 release
+
+ * bugfix: prevent some problems with xfer and both legder window opened
+ * bugfix: #2083124 account rename doesn't allow case correction
+ * bugfix: #2081574 windows: budget report date fields not showing in their entirety
+ * bugfix: #2081379 planned split operations are not modified after a category merge
+ * bugfix: #2080864 HomeBank CLI --version or -V no longer works in linux
+ * bugfix: #2080756 balance change from ledger toolbar not updated for xfer target
+ * bugfix: #2080032 your accounts print/export hidden columns
+ * bugfix: #2079884 ledger window snap half left oversize
+ * bugfix: #2036404 grouped budget categories not showing total amount
+
+
2024-09-08 Maxime Doyen
Made 5.8.3 release
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/homebank-5.8.3/configure new/homebank-5.8.5/configure
--- old/homebank-5.8.3/configure 2024-08-10 09:50:29.000000000 +0200
+++ new/homebank-5.8.5/configure 2024-10-05 08:55:54.000000000 +0200
@@ -1,6 +1,6 @@
#! /bin/sh
# Guess values for system-dependent variables and create Makefiles.
-# Generated by GNU Autoconf 2.71 for homebank 5.8.3.
+# Generated by GNU Autoconf 2.71 for homebank 5.8.5.
#
#
# Copyright (C) 1992-1996, 1998-2017, 2020-2021 Free Software Foundation,
@@ -607,8 +607,8 @@
# Identity of this package.
PACKAGE_NAME='homebank'
PACKAGE_TARNAME='homebank'
-PACKAGE_VERSION='5.8.3'
-PACKAGE_STRING='homebank 5.8.3'
+PACKAGE_VERSION='5.8.5'
+PACKAGE_STRING='homebank 5.8.5'
PACKAGE_BUGREPORT=''
PACKAGE_URL=''
@@ -1365,7 +1365,7 @@
# Omit some internal or obsolete options to make the list less imposing.
# This message is too long to be a string in the A/UX 3.1 sh.
cat <<_ACEOF
-\`configure' configures homebank 5.8.3 to adapt to many kinds of systems.
+\`configure' configures homebank 5.8.5 to adapt to many kinds of systems.
Usage: $0 [OPTION]... [VAR=VALUE]...
@@ -1432,7 +1432,7 @@
if test -n "$ac_init_help"; then
case $ac_init_help in
- short | recursive ) echo "Configuration of homebank 5.8.3:";;
+ short | recursive ) echo "Configuration of homebank 5.8.5:";;
esac
cat <<\_ACEOF
@@ -1540,7 +1540,7 @@
test -n "$ac_init_help" && exit $ac_status
if $ac_init_version; then
cat <<\_ACEOF
-homebank configure 5.8.3
+homebank configure 5.8.5
generated by GNU Autoconf 2.71
Copyright (C) 2021 Free Software Foundation, Inc.
@@ -1815,7 +1815,7 @@
This file contains any messages produced by compilers while
running configure, to aid debugging if configure makes a mistake.
-It was created by homebank $as_me 5.8.3, which was
+It was created by homebank $as_me 5.8.5, which was
generated by GNU Autoconf 2.71. Invocation command line was
$ $0$ac_configure_args_raw
@@ -3089,7 +3089,7 @@
# Define the identity of the package.
PACKAGE='homebank'
- VERSION='5.8.3'
+ VERSION='5.8.5'
printf "%s\n" "#define PACKAGE \"$PACKAGE\"" >>confdefs.h
@@ -7256,7 +7256,7 @@
# report actual input values of CONFIG_FILES etc. instead of their
# values after options handling.
ac_log="
-This file was extended by homebank $as_me 5.8.3, which was
+This file was extended by homebank $as_me 5.8.5, which was
generated by GNU Autoconf 2.71. Invocation command line was
CONFIG_FILES = $CONFIG_FILES
@@ -7324,7 +7324,7 @@
cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
ac_cs_config='$ac_cs_config_escaped'
ac_cs_version="\\
-homebank config.status 5.8.3
+homebank config.status 5.8.5
configured by $0, generated by GNU Autoconf 2.71,
with options \\"\$ac_cs_config\\"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/homebank-5.8.3/configure.ac new/homebank-5.8.5/configure.ac
--- old/homebank-5.8.3/configure.ac 2024-08-10 09:48:54.000000000 +0200
+++ new/homebank-5.8.5/configure.ac 2024-10-05 08:54:48.000000000 +0200
@@ -2,7 +2,7 @@
# Process this file with autoconf to produce a configure script.
AC_PREREQ([2.71])
-AC_INIT([homebank],[5.8.3])
+AC_INIT([homebank],[5.8.5])
#AC_INIT([homebank],[x.x-rc])
AC_CONFIG_HEADERS(config.h)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/homebank-5.8.3/doc/dlg-curr.html new/homebank-5.8.5/doc/dlg-curr.html
--- old/homebank-5.8.3/doc/dlg-curr.html 2023-11-11 21:00:08.000000000 +0100
+++ new/homebank-5.8.5/doc/dlg-curr.html 2024-10-04 09:35:39.000000000 +0200
@@ -85,18 +85,22 @@
</p>
<p>Since 5.7.2: there is a log widget that track call and return of the API for debug purpose.</p>
- <h3>Compatible APIs</h3>
+<h3>Default API</h3>
<ul>
- <li>⧉ <a href="https://frankfurter.app" target="_blank">frankfurter.app</a> (this is the default)<br>
+ <li>⧉ <a href="https://frankfurter.app" target="_blank">frankfurter.app</a><br>
(no apikey): 30 currencies, Euro limited <a href="https://www.ecb.europa.eu/stats/policy_and_exchange_rates/euro_reference_ex…" target="_blank">listed here</a><br>
example call: <code>https://api.frankfurter.app/latest?base=EUR&symbols=USD,JPY,GBP</code>
</li>
+ </ul>
+
+<h3>Compatible APIs</h3>
+ <ul>
<li>⧉ <a href="https://fixer.io" target="_blank">fixer.io</a><br>
- (apikey): 170 world currencies, including Bitcoin, Gold and Silver rates. <a href="https://data.fixer.io/api/symbols?%20access_key=API_KEY" target="_blank">listed here</a><br>
+ (apikey): 170 world currencies, including Bitcoin, Gold and Silver rates. <a href="http://data.fixer.io/api/symbols?access_key=API_KEY" target="_blank">listed here</a><br>
example call: <code>http://data.fixer.io/api/latest?access_key=YOUR_ACCESS_KEY&base=EUR&symbols…</code>
</li>
<li>⧉ <a href="https://exchangerate.host" target="_blank">exchangerate.host</a><br>
- (apikey): 170 world currencies, including Bitcoin, Gold and Silver rates. <a href="https://api.exchangerate.host/symbols" target="_blank">listed here</a><br>
+ (apikey): 170 world currencies, including Bitcoin, Gold and Silver rates. <a href="http://api.exchangerate.host/symbols" target="_blank">listed here</a><br>
example call: <code>http://api.exchangerate.host/list?access_key=YOUR_ACCESS_KEY&base=EUR&symbo…</code>
</li>
</ul>
@@ -105,7 +109,7 @@
<code>
- https://api.frankfurter.app/latest<br>
- http://data.fixer.io/api/latest<br>
- - http://api.exchangerate.host/list<br>
+ - http://api.exchangerate.host/live<br>
</code>
</p>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/homebank-5.8.3/doc/dlg-pref.html new/homebank-5.8.5/doc/dlg-pref.html
--- old/homebank-5.8.3/doc/dlg-pref.html 2024-05-11 12:51:36.000000000 +0200
+++ new/homebank-5.8.5/doc/dlg-pref.html 2024-10-04 09:35:51.000000000 +0200
@@ -105,8 +105,9 @@
</tr>
<tr>
<th>Dark theme</th>
- <td>For GNU/Linux users the theme will follow the desktop preference<br>
- For other users, well, you know what this is about right ?</td>
+ <td>On GNU/Linux OS, HomeBank will follow the dark scheme preference if available, and
+ this option will be used ONLY if it is set to DEFAULT mode which is light, to enable force to dark mode.<br>
+ For other OS this enable to switch to theme dark mode, if available.</td>
</tr>
</table>
@@ -605,4 +606,4 @@
</div>
</body>
-</html>
\ No newline at end of file
+</html>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/homebank-5.8.3/doc/frm-main.html new/homebank-5.8.5/doc/frm-main.html
--- old/homebank-5.8.3/doc/frm-main.html 2024-09-08 09:16:23.000000000 +0200
+++ new/homebank-5.8.5/doc/frm-main.html 2024-10-04 09:36:36.000000000 +0200
@@ -10,8 +10,8 @@
<div class="mainpage">
<p><img src="images/web_title.png"><br></p>
- <p>Version: 5.8.3<br>
- Compilation date: Sep 8th, 2024</p><br>
+ <p>Version: 5.8.4<br>
+ Compilation date: Oct 4th, 2024</p><br>
<p>© Copyright 1995-2024 by Maxime Doyen<br>
All Rights Reserved</p>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/homebank-5.8.3/src/dsp-account.c new/homebank-5.8.5/src/dsp-account.c
--- old/homebank-5.8.3/src/dsp-account.c 2024-06-09 16:52:20.000000000 +0200
+++ new/homebank-5.8.5/src/dsp-account.c 2024-10-05 08:42:18.000000000 +0200
@@ -1189,19 +1189,31 @@
//#492755 removed 4.3 let the child transfer unchanged
//#2019193 option the sync xfer status
- if( PREFS->xfer_syncstat == TRUE )
+ if( txn->flags & OF_INTXFER )
{
- if( txn->flags & OF_INTXFER )
+ if( PREFS->xfer_syncstat == TRUE )
{
Transaction *child = transaction_xfer_child_strong_get(txn);
+
if(child != NULL)
{
+ GtkWindow *accwin = homebank_app_find_window(txn->kxferacc);
+
+ //#2080756 recompute bal
+ account_balances_sub(child);
child->status = txn->status;
child->flags |= OF_CHANGED;
+ account_balances_add(child);
+
+ //#2080756 if open refresh target account balances
+ if(accwin != NULL)
+ {
+ DB( g_print(" xfer call refresh %d\n", txn->kxferacc));
+ hub_ledger_update(GTK_WIDGET(accwin), GINT_TO_POINTER(FLG_REG_BALANCE));
+ }
}
}
}
-
}
@@ -3091,6 +3103,7 @@
gtk_box_pack_start (GTK_BOX (toolbar), hbox, FALSE, FALSE, 0);
label = gtk_label_new (_("Reconciled changes is"));
+ gtk_label_set_ellipsize(GTK_LABEL(label), PANGO_ELLIPSIZE_END);
data->LB_lockreconciled = label;
gtk_box_pack_start (GTK_BOX (hbox), label, FALSE, FALSE, 0);
@@ -3117,8 +3130,8 @@
{
struct hub_ledger_data *data;
struct WinGeometry *wg;
-GtkWidget *window, *mainvbox, *intbox, *menubar, *table, *scrollwin, *bar;
-GtkWidget *treeview, *label, *widget, *image;
+GtkWidget *window, *mainvbox, *intbox, *actionbox, *hbox, *table;
+GtkWidget *menubar, *bar, *scrollwin, *treeview, *label, *widget, *image;
GActionGroup *actions;
gint col;
@@ -3211,10 +3224,11 @@
mainvbox = gtk_box_new (GTK_ORIENTATION_VERTICAL, 0);
gtk_window_set_child(GTK_WINDOW(window), mainvbox);
+ //1 - menubar
menubar = hub_ledger_menubar_create2(data);
gtk_box_pack_start (GTK_BOX (mainvbox), menubar, FALSE, FALSE, 0);
- // info bar for duplicate
+ //2 - info bar for duplicate
bar = gtk_info_bar_new_with_buttons (_("_Refresh"), HB_RESPONSE_REFRESH, NULL);
data->IB_duplicate = bar;
gtk_box_pack_start (GTK_BOX (mainvbox), bar, FALSE, FALSE, 0);
@@ -3231,105 +3245,87 @@
data->NB_txn_daygap = widget;
gtk_box_pack_start (GTK_BOX (gtk_info_bar_get_content_area (GTK_INFO_BAR (bar))), widget, FALSE, FALSE, 0);
- // windows interior
+ //3 - windows interior
intbox = gtk_box_new (GTK_ORIENTATION_VERTICAL, SPACING_SMALL);
hb_widget_set_margin(GTK_WIDGET(intbox), SPACING_SMALL);
gtk_box_pack_start (GTK_BOX (mainvbox), intbox, TRUE, TRUE, 0);
- table = gtk_grid_new();
- gtk_grid_set_row_spacing (GTK_GRID (table), SPACING_SMALL);
- gtk_grid_set_column_spacing (GTK_GRID (table), SPACING_MEDIUM);
- gtk_box_pack_start (GTK_BOX (intbox), table, FALSE, FALSE, 0);
-
- //Search bar
- col = 0;
- //label = make_label_widget(_("_Range:"));
- //gtk_grid_attach (GTK_GRID(table), label, col, 0, 1, 1);
- //col++;
- data->CY_range = make_daterange(label, DATE_RANGE_FLAG_CUSTOM_DISABLE);
- gtk_grid_attach (GTK_GRID(table), data->CY_range, col, 0, 1, 1);
+ //3a - actionbox
+ actionbox = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, SPACING_MEDIUM);
+ //gtk_widget_set_hexpand(actionbox, TRUE);
+ gtk_box_pack_start (GTK_BOX (intbox), actionbox, FALSE, FALSE, 0);
+
+ hbox = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, SPACING_MEDIUM);
+ gtk_widget_set_halign(hbox, GTK_ALIGN_START);
+ //gtk_widget_set_hexpand(hbox, TRUE);
+ scrollwin = make_scrolled_window_ns(GTK_POLICY_AUTOMATIC, GTK_POLICY_NEVER);
+ //gtk_widget_set_hexpand(scrollwin, TRUE);
+ gtk_box_pack_start (GTK_BOX (actionbox), scrollwin, TRUE, TRUE, 0);
+ gtk_scrolled_window_set_child (GTK_SCROLLED_WINDOW(scrollwin), hbox);
+ //gtk_box_prepend (GTK_BOX (actionbox), hbox);
- col++;
- widget = gtk_toggle_button_new();
- //image = gtk_image_new_from_icon_name (ICONNAME_HB_OPE_FUTURE, GTK_ICON_SIZE_MENU);
- image = gtk_image_new();
- g_object_set(image, "icon-name", ICONNAME_HB_OPE_FUTURE, NULL);
- g_object_set (widget, "image", image, NULL);
- data->CM_future = widget;
- gtk_grid_attach (GTK_GRID(table), widget, col, 0, 1, 1);
+ widget = make_daterange(NULL, DATE_RANGE_FLAG_CUSTOM_DISABLE);
+ data->CY_range = widget;
+ gtk_box_pack_start (GTK_BOX (hbox), widget, FALSE, FALSE, 0);
- //#2008521 set more accurate tooltip
- gchar *tt = g_strdup_printf(_("Toggle show %d days ahead"), PREFS->date_future_nbdays);
- gtk_widget_set_tooltip_text (widget, tt);
- g_free(tt);
+ widget = gtk_toggle_button_new();
+ //image = gtk_image_new_from_icon_name (ICONNAME_HB_OPE_FUTURE, GTK_ICON_SIZE_MENU);
+ image = gtk_image_new();
+ g_object_set(image, "icon-name", ICONNAME_HB_OPE_FUTURE, NULL);
+ g_object_set (widget, "image", image, NULL);
+ data->CM_future = widget;
+ //#2008521 set more accurate tooltip
+ gchar *tt = g_strdup_printf(_("Toggle show %d days ahead"), PREFS->date_future_nbdays);
+ gtk_widget_set_tooltip_text (widget, tt);
+ g_free(tt);
+ gtk_box_pack_start (GTK_BOX (hbox), widget, FALSE, FALSE, 0);
//5.8 flag
- col++;
- label = NULL;
- data->CY_flag = make_fltgrpflag(label);
- gtk_grid_attach (GTK_GRID(table), data->CY_flag, col, 0, 1, 1);
-
- //col++;
- //label = make_label_widget(_("_Type:"));
- //gtk_grid_attach (GTK_GRID(table), label, col, 0, 1, 1);
- col++;
- data->CY_type = hbtk_combo_box_new_with_data(label, CYA_FLT_TYPE);
- gtk_grid_attach (GTK_GRID(table), data->CY_type, col, 0, 1, 1);
+ widget = make_fltgrpflag(NULL);
+ data->CY_flag = widget;
+ gtk_box_pack_start (GTK_BOX (hbox), widget, FALSE, FALSE, 0);
- //col++;
- //label = make_label_widget(_("_Status:"));
- //gtk_grid_attach (GTK_GRID(table), label, col, 0, 1, 1);
- col++;
- data->CY_status = hbtk_combo_box_new_with_data(label, CYA_FLT_STATUS);
- gtk_grid_attach (GTK_GRID(table), data->CY_status, col, 0, 1, 1);
+ widget = hbtk_combo_box_new_with_data(label, CYA_FLT_TYPE);
+ data->CY_type = widget;
+ gtk_box_pack_start (GTK_BOX (hbox), widget, FALSE, FALSE, 0);
+
+ widget = hbtk_combo_box_new_with_data(label, CYA_FLT_STATUS);
+ data->CY_status = widget;
+ gtk_box_pack_start (GTK_BOX (hbox), widget, FALSE, FALSE, 0);
+ //5.8 beta test
+ if( data->showall )
+ {
+ widget = create_popover_widget(GTK_WINDOW(data->window), data->filter);
+ data->PO_hubfilter = widget;
+ gtk_box_pack_start (GTK_BOX (hbox), widget, FALSE, FALSE, 0);
+ }
- //5.8 beta test
- if( data->showall )
- {
- col++;
- widget = create_popover_widget(GTK_WINDOW(data->window), data->filter);
- data->PO_hubfilter = widget;
- gtk_grid_attach (GTK_GRID(table), widget, col, 0, 1, 1);
- }
- col++;
widget = make_image_button(ICONNAME_HB_FILTER, _("Edit filter"));
data->BT_filter = widget;
- gtk_grid_attach (GTK_GRID(table), widget, col, 0, 1, 1);
+ gtk_box_pack_start (GTK_BOX (actionbox), widget, FALSE, FALSE, 0);
- col++;
//widget = gtk_button_new_with_mnemonic (_("Reset _filters"));
//widget = gtk_button_new_with_mnemonic (_("_Reset"));
widget = make_image_button(ICONNAME_HB_CLEAR, _("Clear filter"));
data->BT_reset = widget;
- gtk_grid_attach (GTK_GRID(table), widget, col, 0, 1, 1);
+ gtk_box_pack_start (GTK_BOX (actionbox), widget, FALSE, FALSE, 0);
- col++;
widget = make_image_button(ICONNAME_HB_REFRESH, _("Refresh results"));
data->BT_refresh = widget;
- gtk_grid_attach (GTK_GRID(table), widget, col, 0, 1, 1);
+ gtk_box_pack_start (GTK_BOX (actionbox), widget, FALSE, FALSE, 0);
- col++;
widget = make_image_toggle_button(ICONNAME_HB_LIFEENERGY, _("Toggle Life Energy"));
data->BT_lifnrg = widget;
- gtk_grid_attach (GTK_GRID(table), widget, col, 0, 1, 1);
+ gtk_box_pack_start (GTK_BOX (actionbox), widget, FALSE, FALSE, 0);
- col++;
//TRANSLATORS: this is for Euro specific users, a toggle to display in 'Minor' currency
widget = gtk_check_button_new_with_mnemonic (_("Euro _minor"));
data->CM_minor = widget;
- gtk_grid_attach (GTK_GRID(table), widget, col, 0, 1, 1);
-
- // account name (+ balance)
- col++;
- //space
- label = gtk_label_new(NULL);
- gtk_widget_set_hexpand (label, TRUE);
- gtk_grid_attach (GTK_GRID(table), label, col, 0, 1, 1);
+ gtk_box_pack_start (GTK_BOX (actionbox), widget, FALSE, FALSE, 0);
-
//test menubutton
/*
widget = gtk_menu_button_new();
@@ -3338,13 +3334,13 @@
gtk_grid_attach (GTK_GRID(table), widget, col, 0, 1, 1);
*/
- col++;
//quick search
widget = make_search ();
data->ST_search = widget;
gtk_widget_set_size_request(widget, HB_MINWIDTH_SEARCH, -1);
gtk_widget_set_halign(widget, GTK_ALIGN_END);
- gtk_grid_attach (GTK_GRID(table), widget, col, 0, 1, 1);
+ gtk_box_pack_start (GTK_BOX (actionbox), widget, FALSE, FALSE, 0);
+
/* grid line 2 */
@@ -3367,6 +3363,7 @@
col++;
// text total/selection
label = make_label(NULL, 0.0, 0.5);
+ gtk_label_set_ellipsize(GTK_LABEL(label), PANGO_ELLIPSIZE_END);
//#1930395 text selectable for copy/paste
gtk_label_set_selectable(GTK_LABEL(label), TRUE);
//gtk_widget_set_halign (label, GTK_ALIGN_START);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/homebank-5.8.3/src/hb-account.c new/homebank-5.8.5/src/hb-account.c
--- old/homebank-5.8.3/src/hb-account.c 2024-09-04 12:54:48.000000000 +0200
+++ new/homebank-5.8.5/src/hb-account.c 2024-09-29 09:04:34.000000000 +0200
@@ -582,7 +582,8 @@
{
existitem = da_acc_get_by_name(stripname);
- if( existitem != NULL )
+ //#2083124 enable case renaming
+ if( existitem != NULL && existitem->key != item->key )
{
DB( g_print("- error, same name already exist with other key %d <> %d\n", existitem->key, item->key) );
}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/homebank-5.8.3/src/hb-category.c new/homebank-5.8.5/src/hb-category.c
--- old/homebank-5.8.3/src/hb-category.c 2024-04-29 16:16:26.000000000 +0200
+++ new/homebank-5.8.5/src/hb-category.c 2024-10-02 14:17:41.000000000 +0200
@@ -843,28 +843,28 @@
lnk_txn = g_queue_peek_head_link(acc->txn_queue);
while (lnk_txn != NULL)
{
- Transaction *txn = lnk_txn->data;
+ Transaction *txnitem = lnk_txn->data;
//#1875070
//if(txn->kcat == srckey)
- if( category_move_match(txn->kcat, srckey, dosubcat) )
+ if( category_move_match(txnitem->kcat, srckey, dosubcat) )
{
- txn->kcat = newkey;
- txn->flags |= OF_CHANGED;
+ txnitem->kcat = newkey;
+ txnitem->flags |= OF_CHANGED;
}
// move split category #1340142
- nbsplit = da_splits_length(txn->splits);
+ nbsplit = da_splits_length(txnitem->splits);
for(i=0;i<nbsplit;i++)
{
- Split *split = da_splits_get(txn->splits, i);
+ Split *split = da_splits_get(txnitem->splits, i);
//#1875070
//if( split->kcat == srckey )
if( category_move_match(split->kcat, srckey, dosubcat) )
{
split->kcat = newkey;
- txn->flags |= OF_CHANGED;
+ txnitem->flags |= OF_CHANGED;
}
}
@@ -879,14 +879,31 @@
list = g_list_first(GLOBALS->arc_list);
while (list != NULL)
{
- Archive *entry = list->data;
+ Archive *arcitem = list->data;
//#1875070
//if(entry->kcat == srckey)
- if( category_move_match(entry->kcat, srckey, dosubcat) )
+ if( category_move_match(arcitem->kcat, srckey, dosubcat) )
{
- entry->kcat = newkey;
+ arcitem->kcat = newkey;
+ arcitem->flags |= OF_CHANGED;
}
+
+ //#2081379 handle split as well
+ nbsplit = da_splits_length(arcitem->splits);
+ for(i=0;i<nbsplit;i++)
+ {
+ Split *split = da_splits_get(arcitem->splits, i);
+
+ //#1875070
+ //if( split->kcat == srckey )
+ if( category_move_match(split->kcat, srckey, dosubcat) )
+ {
+ split->kcat = newkey;
+ arcitem->flags |= OF_CHANGED;
+ }
+ }
+
list = g_list_next(list);
}
@@ -894,11 +911,11 @@
lpay = list = g_hash_table_get_values(GLOBALS->h_pay);
while (list != NULL)
{
- Payee *entry = list->data;
+ Payee *payitem = list->data;
- if( category_move_match(entry->kcat, srckey, dosubcat) )
+ if( category_move_match(payitem->kcat, srckey, dosubcat) )
{
- entry->kcat = newkey;
+ payitem->kcat = newkey;
}
list = g_list_next(list);
}
@@ -908,13 +925,13 @@
lrul = list = g_hash_table_get_values(GLOBALS->h_rul);
while (list != NULL)
{
- Assign *entry = list->data;
+ Assign *asgitem = list->data;
//#1875070
//if(entry->kcat == srckey)
- if( category_move_match(entry->kcat, srckey, dosubcat) )
+ if( category_move_match(asgitem->kcat, srckey, dosubcat) )
{
- entry->kcat = newkey;
+ asgitem->kcat = newkey;
}
list = g_list_next(list);
}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/homebank-5.8.3/src/homebank.c new/homebank-5.8.5/src/homebank.c
--- old/homebank-5.8.3/src/homebank.c 2024-08-14 23:26:52.000000000 +0200
+++ new/homebank-5.8.5/src/homebank.c 2024-10-04 08:55:24.000000000 +0200
@@ -1110,15 +1110,32 @@
}
+//#2080864 handle version
static gint
-homebank_app_commandline(GApplication *application, GApplicationCommandLine *cl, gpointer user_data)
+homebank_app_handle_local_options (GApplication *application,
+ GVariantDict *options)
+{
+ if (g_variant_dict_contains (options, "version"))
+ {
+ g_print ("%s - Version %s\n", g_get_application_name (), VERSION);
+ return 0;
+ }
+
+
+ return -1;
+}
+
+
+static gint
+homebank_app_commandline(GApplication *application, GApplicationCommandLine *cmdline, gpointer user_data)
{
GVariantDict *options;
gchar **remaining_args;
DB( g_print("\n[homebank] app commandline\n") );
- options = g_application_command_line_get_options_dict (cl);
+
+ options = g_application_command_line_get_options_dict (cmdline);
/* Parse filenames */
if (g_variant_dict_lookup (options, G_OPTION_REMAINING, "^a&ay", &remaining_args))
@@ -1325,6 +1342,7 @@
g_signal_connect (app, "startup" , G_CALLBACK (homebank_app_startup) , NULL);
g_signal_connect (app, "command-line" , G_CALLBACK (homebank_app_commandline) , NULL);
+ g_signal_connect (app, "handle-local-options" , G_CALLBACK (homebank_app_handle_local_options) , NULL);
g_signal_connect (app, "activate" , G_CALLBACK (homebank_app_activate) , NULL);
g_signal_connect (app, "open" , G_CALLBACK (homebank_app_open) , NULL);
g_signal_connect (app, "shutdown" , G_CALLBACK (homebank_app_shutdown) , NULL);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/homebank-5.8.3/src/homebank.h new/homebank-5.8.5/src/homebank.h
--- old/homebank-5.8.3/src/homebank.h 2024-08-14 23:26:11.000000000 +0200
+++ new/homebank-5.8.5/src/homebank.h 2024-10-05 08:55:32.000000000 +0200
@@ -81,13 +81,13 @@
#define HOMEBANK_MAJOR 5
#define HOMEBANK_MINOR 8
-#define HOMEBANK_MICRO 3
+#define HOMEBANK_MICRO 5
-#define HB_VERSION "5.8.3"
+#define HB_VERSION "5.8.5"
#define HB_VERSION_NUM (HOMEBANK_MAJOR*10000) + (HOMEBANK_MINOR*100) + HOMEBANK_MICRO
#define FILE_VERSION 1.5
-#define PREF_VERSION 583
+#define PREF_VERSION 585
#if HB_UNSTABLE == FALSE
#define PROGNAME "HomeBank"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/homebank-5.8.3/src/list-account.c new/homebank-5.8.5/src/list-account.c
--- old/homebank-5.8.3/src/list-account.c 2024-05-11 12:03:01.000000000 +0200
+++ new/homebank-5.8.5/src/list-account.c 2024-10-04 08:57:52.000000000 +0200
@@ -41,14 +41,17 @@
-static void lst_accview_to_string_row(GString *node, ToStringMode mode, GtkTreeModel *model, GtkTreeIter *iter, gchar *sub)
+static void lst_accview_to_string_row(GString *node, ToStringMode mode, GtkTreeModel *model, GtkTreeIter *iter, gchar *sub, gint flags)
{
-const gchar *format;
gpointer p;
gint type;
gchar *text = "";
+gchar sep;
gdouble clear, recon, today, future;
guint32 kcur = GLOBALS->kcur;
+gchar buf[G_ASCII_DTOSTR_BUF_SIZE];
+
+ sep = (mode == HB_STRING_EXPORT) ? ';' : '\t';
clear = recon = today = future = 0.0;
@@ -61,7 +64,7 @@
{
PnlAccGrp *g = p;
text = g->name;
- g_string_append_printf(node, "%s\t\t\t\t\n", text);
+ g_string_append_printf(node, "%s\n", text);
}
else
{
@@ -90,29 +93,37 @@
if( type == DSPACC_TYPE_TOTAL )
text = _("Grand total");
- if( mode != HB_STRING_PRINT )
- {
- format = (mode == HB_STRING_CLIPBOARD) ? "%s%s\t%.2f\t%.2f\t%.2f\t%.2f\n" : "%s%s;%.2f;%.2f;%.2f;%.2f\n";
- g_string_append_printf(node, format, sub, text, recon, clear, today, future);
- }
- else
- {
- gchar buf[G_ASCII_DTOSTR_BUF_SIZE];
+ g_string_append_printf(node, "%s%s", sub, text);
- g_string_append_printf(node, "%s%s\t", sub, text);
+ if( flags & LST_TXN_ACC_REC )
+ {
hb_strfmon(buf, G_ASCII_DTOSTR_BUF_SIZE-1, recon, kcur, FALSE);
+ g_string_append_c(node, sep);
g_string_append(node, buf);
- g_string_append_c(node, '\t');
+ }
+
+ if( flags & LST_TXN_ACC_CLR )
+ {
hb_strfmon(buf, G_ASCII_DTOSTR_BUF_SIZE-1, clear, kcur, FALSE);
+ g_string_append_c(node, sep);
g_string_append(node, buf);
- g_string_append_c(node, '\t');
+ }
+
+ if( flags & LST_TXN_ACC_TOD )
+ {
hb_strfmon(buf, G_ASCII_DTOSTR_BUF_SIZE-1, today, kcur, FALSE);
+ g_string_append_c(node, sep);
g_string_append(node, buf);
- g_string_append_c(node, '\t');
+ }
+
+ if( flags & LST_TXN_ACC_FUT )
+ {
hb_strfmon(buf, G_ASCII_DTOSTR_BUF_SIZE-1, future, kcur, FALSE);
+ g_string_append_c(node, sep);
g_string_append(node, buf);
- g_string_append(node, "\n");
}
+
+ g_string_append(node, "\n");
}
}
@@ -124,6 +135,7 @@
GtkTreeIter iter, child;
gboolean valid;
guint32 nbcols, i;
+gint uid, flags = 0;
gchar sep;
DB( g_print("\n[lst_accview] to string\n") );
@@ -141,29 +153,42 @@
//todo: ? restrict to visibility
if( GTK_IS_TREE_VIEW_COLUMN(column) )
{
- g_string_append(node, gtk_tree_view_column_get_title (column));
- if( i < nbcols-1 )
+ if( gtk_tree_view_column_get_visible(column))
{
- g_string_append_c(node, sep);
+ uid = GPOINTER_TO_UINT(g_object_get_data(G_OBJECT(column), "uid"));
+ switch(uid)
+ {
+ case COL_DSPACC_RECON : flags |= LST_TXN_ACC_REC; break;
+ case COL_DSPACC_CLEAR : flags |= LST_TXN_ACC_CLR; break;
+ case COL_DSPACC_TODAY : flags |= LST_TXN_ACC_TOD; break;
+ case COL_DSPACC_FUTURE: flags |= LST_TXN_ACC_FUT; break;
+ }
+
+ g_string_append(node, gtk_tree_view_column_get_title (column));
+ if( i < nbcols-1 )
+ {
+ g_string_append_c(node, sep);
+ }
}
}
}
g_string_append_c(node, '\n');
-
//lines
model = gtk_tree_view_get_model(treeview);
valid = gtk_tree_model_get_iter_first(GTK_TREE_MODEL(model), &iter);
while (valid)
{
- lst_accview_to_string_row(node, mode, model, &iter, "");
+ lst_accview_to_string_row(node, mode, model, &iter, "", flags);
+
if( gtk_tree_model_iter_has_child(model, &iter) )
{
valid = gtk_tree_model_iter_children(model, &child, &iter);
while (valid)
{
- lst_accview_to_string_row(node, mode, model, &child, "- ");
+ lst_accview_to_string_row(node, mode, model, &child, "- ", flags);
+
valid = gtk_tree_model_iter_next(GTK_TREE_MODEL(model), &child);
}
}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/homebank-5.8.3/src/list-account.h new/homebank-5.8.5/src/list-account.h
--- old/homebank-5.8.3/src/list-account.h 2024-04-01 19:13:16.000000000 +0200
+++ new/homebank-5.8.5/src/list-account.h 2024-10-03 09:22:28.000000000 +0200
@@ -60,6 +60,14 @@
};
+enum {
+ LST_TXN_ACC_REC = 1 << 0, //detail/print
+ LST_TXN_ACC_CLR = 1 << 1, //!print
+ LST_TXN_ACC_TOD = 1 << 2,
+ LST_TXN_ACC_FUT = 1 << 3,
+};
+
+
struct lst_accview_data
{
GtkWidget *treeview;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/homebank-5.8.3/src/ui-account.c new/homebank-5.8.5/src/ui-account.c
--- old/homebank-5.8.3/src/ui-account.c 2024-08-07 18:40:06.000000000 +0200
+++ new/homebank-5.8.5/src/ui-account.c 2024-09-29 09:05:55.000000000 +0200
@@ -1491,7 +1491,6 @@
struct ui_acc_manage_data *data;
Account *item;
guint32 key;
-gboolean valid;
data = g_object_get_data(G_OBJECT(gtk_widget_get_ancestor(widget, GTK_TYPE_WINDOW)), "inst_data");
DB( g_print("\n(ui_acc_manage_rename) data=%p\n", data) );
@@ -1504,7 +1503,12 @@
gchar *name = dialog_get_name(_("Account name"), item->name, GTK_WINDOW(data->dialog));
if(name != NULL)
{
- if(account_exists(name))
+ if(account_rename(item, name))
+ {
+ gtk_tree_view_columns_autosize (GTK_TREE_VIEW(data->LV_acc));
+ data->change++;
+ }
+ else
{
ui_dialog_msg_infoerror(GTK_WINDOW(data->dialog), GTK_MESSAGE_ERROR,
_("Error"),
@@ -1515,18 +1519,7 @@
name
);
}
- else
- {
- valid = account_rename(item, name);
- if(valid)
- {
- gtk_tree_view_columns_autosize (GTK_TREE_VIEW(data->LV_acc));
- data->change++;
- }
- }
-
}
-
}
}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/homebank-5.8.3/src/ui-budget-tabview.c new/homebank-5.8.5/src/ui-budget-tabview.c
--- old/homebank-5.8.3/src/ui-budget-tabview.c 2024-08-04 21:53:46.000000000 +0200
+++ new/homebank-5.8.5/src/ui-budget-tabview.c 2024-10-04 09:29:23.000000000 +0200
@@ -125,6 +125,8 @@
UI_BUD_TABVIEW_IS_SAME_AMOUNT,
UI_BUD_TABVIEW_IS_SUB_CATEGORY,
UI_BUD_TABVIEW_HAS_BUDGET,
+
+ UI_BUD_TABVIEW_TOTAL,
UI_BUD_TABVIEW_SAME_AMOUNT,
UI_BUD_TABVIEW_JANUARY,
UI_BUD_TABVIEW_FEBRUARY,
@@ -302,7 +304,7 @@
{
if (parent_search.iterator)
{
- DB(g_print("\tRecursion optimisation: parent key %d already exists\n", parent_search.row_category_key));
+ DB(g_print(" Recursion optimisation: parent key %d already exists\n", parent_search.row_category_key));
// If parent already exists, stop recursion
parent = parent_search.iterator;
}
@@ -326,8 +328,7 @@
-1);
}
- DB(g_print("insert new category %s (key: %d, type: %d)\n",
- bdg_category->name, bdg_category->key, category_type_get (bdg_category)));
+ DB(g_print(" >insert '%s'\n", bdg_category->fullname));
gtk_tree_store_set(
budget,
@@ -542,61 +543,131 @@
return;
}
-// Update (or insert) total rows for a budget according to the view mode
-// This function will is used to initiate model and to refresh it after change by user
-static void ui_bud_tabview_model_update_monthly_total(GtkTreeStore* budget)
-{
-ui_bud_tabview_search_criteria_t root_search = ui_bud_tabview_search_criteria_default;
-GtkTreeIter total_root, child;
-double total_income[12] = {0}, total_expense[12] = {0};
-gboolean cat_is_same_amount;
-guint32 n_category;
- // Go through all categories to compute totals
- n_category = da_cat_get_max_key();
+static gdouble test_sum(Category *catitem, gdouble *total_tab)
+{
+gdouble totalcat = 0.0;
- for(guint32 i=1; i<=n_category; ++i)
+ for(gint j=1;j<=12;j++)
{
- Category *bdg_category;
- gboolean cat_is_income;
-
- bdg_category = da_cat_get(i);
-
- if (bdg_category == NULL)
+ if(!(catitem->flags & GF_CUSTOM))
{
- continue;
+ total_tab[j] += catitem->budget[0];
+ totalcat += catitem->budget[0];
+ }
+ else
+ {
+ total_tab[j] += catitem->budget[j];
+ totalcat += catitem->budget[j];
}
+ }
+ total_tab[0] += totalcat;
+ return totalcat;
+}
- cat_is_income = (category_type_get (bdg_category) == 1);
- cat_is_same_amount = (! (bdg_category->flags & GF_CUSTOM));
- for (gint j=0; j<=11; ++j)
+
+static void test_total_sum(GtkTreeStore *budget, GtkTreeIter *root, gdouble *total_tab)
+{
+GtkTreeIter iter, child;
+gboolean valid, cvalid, cheader, sep;
+guint32 key, ckey;
+
+ //valid = gtk_tree_model_get_iter_first(GTK_TREE_MODEL(budget), &iter);
+ valid = gtk_tree_model_iter_children (GTK_TREE_MODEL(budget), &iter, root);
+ while (valid)
+ {
+ Category *catitem;
+
+ gtk_tree_model_get(GTK_TREE_MODEL(budget), &iter,
+ UI_BUD_TABVIEW_CATEGORY_KEY, &key,
+ UI_BUD_TABVIEW_IS_CHILD_HEADER, &cheader,
+ UI_BUD_TABVIEW_IS_SEPARATOR, &sep,
+ -1);
+
+ if( cheader == FALSE && sep == FALSE )
{
- if (cat_is_income)
- {
- if (cat_is_same_amount)
- {
- total_income[j] += bdg_category->budget[0];
- }
- else
- {
- total_income[j] += bdg_category->budget[j+1];
- }
- }
- else
+ gdouble tmpsum = 0.0;
+
+ catitem = da_cat_get(key);
+ DB( g_print(" iter: %d %s\n", key, catitem->name) );
+ tmpsum += test_sum(catitem, total_tab);
+
+ // children ?
+ cvalid = gtk_tree_model_iter_children (GTK_TREE_MODEL(budget), &child, &iter);
+ while (cvalid)
{
- if (cat_is_same_amount)
- {
- total_expense[j] += bdg_category->budget[0];
- }
- else
+ gtk_tree_model_get(GTK_TREE_MODEL(budget), &child,
+ UI_BUD_TABVIEW_CATEGORY_KEY, &ckey,
+ UI_BUD_TABVIEW_IS_CHILD_HEADER, &cheader,
+ UI_BUD_TABVIEW_IS_SEPARATOR, &sep,
+ -1);
+
+ if( cheader == FALSE && sep == FALSE )
{
- total_expense[j] += bdg_category->budget[j+1];
+ gdouble cbudget;
+
+ catitem = da_cat_get(ckey);
+ DB( g_print(" child: %d %s\n", ckey, catitem->name) );
+ cbudget = test_sum(catitem, total_tab);
+
+ tmpsum += cbudget;
+ gtk_tree_store_set (
+ budget,
+ &child,
+ UI_BUD_TABVIEW_TOTAL, cbudget,
+ -1);
+
}
+
+ cvalid = gtk_tree_model_iter_next(GTK_TREE_MODEL(budget), &child);
}
+
+ gtk_tree_store_set (
+ budget,
+ &iter,
+ UI_BUD_TABVIEW_TOTAL, tmpsum,
+ -1);
+
}
+
+ valid = gtk_tree_model_iter_next(GTK_TREE_MODEL(budget), &iter);
}
+
+}
+
+
+
+// Update (or insert) total rows for a budget according to the view mode
+// This function will is used to initiate model and to refresh it after change by user
+static void ui_bud_tabview_model_update_monthly_total(GtkTreeStore* budget)
+{
+ui_bud_tabview_search_criteria_t root_search = ui_bud_tabview_search_criteria_default;
+GtkTreeIter total_root, child;
+double total_income[13] = {0}, total_expense[13] = {0};
+
+ // Retrieve required root
+ root_search.row_is_root = TRUE;
+ root_search.row_is_total = FALSE;
+
+ //#2036404 compute total
+ root_search.row_category_type = UI_BUD_TABVIEW_CAT_TYPE_INCOME;
+ gtk_tree_model_foreach(GTK_TREE_MODEL(budget),
+ (GtkTreeModelForeachFunc) ui_bud_tabview_model_search_iterator,
+ &root_search);
+
+ test_total_sum(budget, root_search.iterator, total_income);
+
+ //#2036404 compute total
+ root_search.row_category_type = UI_BUD_TABVIEW_CAT_TYPE_EXPENSE;
+ gtk_tree_model_foreach(GTK_TREE_MODEL(budget),
+ (GtkTreeModelForeachFunc) ui_bud_tabview_model_search_iterator,
+ &root_search);
+
+ test_total_sum(budget, root_search.iterator, total_expense);
+
+
// Retrieve total root and insert required total rows
root_search.row_is_root = TRUE;
root_search.row_is_total = FALSE;
@@ -639,18 +710,19 @@
UI_BUD_TABVIEW_CATEGORY_FULLNAME, _(UI_BUD_TABVIEW_VIEW_MODE[UI_BUD_TABVIEW_VIEW_INCOME]),
UI_BUD_TABVIEW_CATEGORY_TYPE, UI_BUD_TABVIEW_CAT_TYPE_INCOME,
UI_BUD_TABVIEW_IS_TOTAL, TRUE,
- UI_BUD_TABVIEW_JANUARY, total_income[0],
- UI_BUD_TABVIEW_FEBRUARY, total_income[1],
- UI_BUD_TABVIEW_MARCH, total_income[2],
- UI_BUD_TABVIEW_APRIL, total_income[3],
- UI_BUD_TABVIEW_MAY, total_income[4],
- UI_BUD_TABVIEW_JUNE, total_income[5],
- UI_BUD_TABVIEW_JULY, total_income[6],
- UI_BUD_TABVIEW_AUGUST, total_income[7],
- UI_BUD_TABVIEW_SEPTEMBER, total_income[8],
- UI_BUD_TABVIEW_OCTOBER, total_income[9],
- UI_BUD_TABVIEW_NOVEMBER, total_income[10],
- UI_BUD_TABVIEW_DECEMBER, total_income[11],
+ UI_BUD_TABVIEW_TOTAL, total_income[0],
+ UI_BUD_TABVIEW_JANUARY, total_income[1],
+ UI_BUD_TABVIEW_FEBRUARY, total_income[2],
+ UI_BUD_TABVIEW_MARCH, total_income[3],
+ UI_BUD_TABVIEW_APRIL, total_income[4],
+ UI_BUD_TABVIEW_MAY, total_income[5],
+ UI_BUD_TABVIEW_JUNE, total_income[6],
+ UI_BUD_TABVIEW_JULY, total_income[7],
+ UI_BUD_TABVIEW_AUGUST, total_income[8],
+ UI_BUD_TABVIEW_SEPTEMBER, total_income[9],
+ UI_BUD_TABVIEW_OCTOBER, total_income[10],
+ UI_BUD_TABVIEW_NOVEMBER, total_income[11],
+ UI_BUD_TABVIEW_DECEMBER, total_income[12],
-1);
// Then look for Expenses
@@ -676,18 +748,19 @@
UI_BUD_TABVIEW_CATEGORY_FULLNAME, _(UI_BUD_TABVIEW_VIEW_MODE[UI_BUD_TABVIEW_VIEW_EXPENSE]),
UI_BUD_TABVIEW_CATEGORY_TYPE, UI_BUD_TABVIEW_CAT_TYPE_EXPENSE,
UI_BUD_TABVIEW_IS_TOTAL, TRUE,
- UI_BUD_TABVIEW_JANUARY, total_expense[0],
- UI_BUD_TABVIEW_FEBRUARY, total_expense[1],
- UI_BUD_TABVIEW_MARCH, total_expense[2],
- UI_BUD_TABVIEW_APRIL, total_expense[3],
- UI_BUD_TABVIEW_MAY, total_expense[4],
- UI_BUD_TABVIEW_JUNE, total_expense[5],
- UI_BUD_TABVIEW_JULY, total_expense[6],
- UI_BUD_TABVIEW_AUGUST, total_expense[7],
- UI_BUD_TABVIEW_SEPTEMBER, total_expense[8],
- UI_BUD_TABVIEW_OCTOBER, total_expense[9],
- UI_BUD_TABVIEW_NOVEMBER, total_expense[10],
- UI_BUD_TABVIEW_DECEMBER, total_expense[11],
+ UI_BUD_TABVIEW_TOTAL, total_expense[0],
+ UI_BUD_TABVIEW_JANUARY, total_expense[1],
+ UI_BUD_TABVIEW_FEBRUARY, total_expense[2],
+ UI_BUD_TABVIEW_MARCH, total_expense[3],
+ UI_BUD_TABVIEW_APRIL, total_expense[4],
+ UI_BUD_TABVIEW_MAY, total_expense[5],
+ UI_BUD_TABVIEW_JUNE, total_expense[6],
+ UI_BUD_TABVIEW_JULY, total_expense[7],
+ UI_BUD_TABVIEW_AUGUST, total_expense[8],
+ UI_BUD_TABVIEW_SEPTEMBER, total_expense[9],
+ UI_BUD_TABVIEW_OCTOBER, total_expense[10],
+ UI_BUD_TABVIEW_NOVEMBER, total_expense[11],
+ UI_BUD_TABVIEW_DECEMBER, total_expense[12],
-1);
// Finally, set Balance total row
@@ -713,18 +786,19 @@
UI_BUD_TABVIEW_CATEGORY_FULLNAME, _(UI_BUD_TABVIEW_VIEW_MODE[UI_BUD_TABVIEW_VIEW_SUMMARY]),
UI_BUD_TABVIEW_CATEGORY_TYPE, UI_BUD_TABVIEW_CAT_TYPE_NONE,
UI_BUD_TABVIEW_IS_TOTAL, TRUE,
- UI_BUD_TABVIEW_JANUARY, total_income[0] + total_expense[0],
- UI_BUD_TABVIEW_FEBRUARY, total_income[1] + total_expense[1],
- UI_BUD_TABVIEW_MARCH, total_income[2] + total_expense[2],
- UI_BUD_TABVIEW_APRIL, total_income[3] + total_expense[3],
- UI_BUD_TABVIEW_MAY, total_income[4] + total_expense[4],
- UI_BUD_TABVIEW_JUNE, total_income[5] + total_expense[5],
- UI_BUD_TABVIEW_JULY, total_income[6] + total_expense[6],
- UI_BUD_TABVIEW_AUGUST, total_income[7] + total_expense[7],
- UI_BUD_TABVIEW_SEPTEMBER, total_income[8] + total_expense[8],
- UI_BUD_TABVIEW_OCTOBER, total_income[9] + total_expense[9],
- UI_BUD_TABVIEW_NOVEMBER, total_income[10] + total_expense[10],
- UI_BUD_TABVIEW_DECEMBER, total_income[11] + total_expense[11],
+ UI_BUD_TABVIEW_TOTAL, total_income[0] + total_expense[0],
+ UI_BUD_TABVIEW_JANUARY, total_income[1] + total_expense[1],
+ UI_BUD_TABVIEW_FEBRUARY, total_income[2] + total_expense[2],
+ UI_BUD_TABVIEW_MARCH, total_income[3] + total_expense[3],
+ UI_BUD_TABVIEW_APRIL, total_income[4] + total_expense[4],
+ UI_BUD_TABVIEW_MAY, total_income[5] + total_expense[5],
+ UI_BUD_TABVIEW_JUNE, total_income[6] + total_expense[6],
+ UI_BUD_TABVIEW_JULY, total_income[7] + total_expense[7],
+ UI_BUD_TABVIEW_AUGUST, total_income[8] + total_expense[8],
+ UI_BUD_TABVIEW_SEPTEMBER, total_income[9] + total_expense[9],
+ UI_BUD_TABVIEW_OCTOBER, total_income[10] + total_expense[10],
+ UI_BUD_TABVIEW_NOVEMBER, total_income[11] + total_expense[11],
+ UI_BUD_TABVIEW_DECEMBER, total_income[12] + total_expense[12],
-1);
g_free(root_search.iterator);
@@ -1048,44 +1122,14 @@
return order;
}
-// the budget model creation
-static GtkTreeModel * ui_bud_tabview_model_new ()
+
+static void ui_bud_tabview_model_populate (GtkTreeStore *budget)
{
-GtkTreeStore *budget;
GtkTreeIter *iter_income, *iter_expense;
guint32 n_category;
ui_bud_tabview_search_criteria_t root_search = ui_bud_tabview_search_criteria_default;
- // Create Tree Store
- budget = gtk_tree_store_new ( UI_BUD_TABVIEW_NUMBER_COLOMNS,
- G_TYPE_UINT, // UI_BUD_TABVIEW_CATEGORY_KEY
- G_TYPE_STRING, // UI_BUD_TABVIEW_CATEGORY_NAME
- G_TYPE_STRING, // UI_BUD_TABVIEW_CATEGORY_FULLNAME
- G_TYPE_INT, // UI_BUD_TABVIEW_CATEGORY_TYPE
- G_TYPE_BOOLEAN, // UI_BUD_TABVIEW_IS_ROOT
- G_TYPE_BOOLEAN, // UI_BUD_TABVIEW_IS_TOTAL
- G_TYPE_BOOLEAN, // UI_BUD_TABVIEW_IS_CHILD_HEADER
- G_TYPE_BOOLEAN, // UI_BUD_TABVIEW_IS_SEPARATOR
- G_TYPE_BOOLEAN, // UI_BUD_TABVIEW_IS_MONITORING_FORCED
- G_TYPE_BOOLEAN, // UI_BUD_TABVIEW_IS_SAME_AMOUNT
- G_TYPE_BOOLEAN, // UI_BUD_TABVIEW_IS_SUB_CATEGORY
- G_TYPE_BOOLEAN, // UI_BUD_TABVIEW_HAS_BUDGET
- G_TYPE_DOUBLE, // UI_BUD_TABVIEW_SAME_AMOUNT
- G_TYPE_DOUBLE, // UI_BUD_TABVIEW_JANUARY
- G_TYPE_DOUBLE, // UI_BUD_TABVIEW_FEBRUARY
- G_TYPE_DOUBLE, // UI_BUD_TABVIEW_MARCH
- G_TYPE_DOUBLE, // UI_BUD_TABVIEW_APRIL
- G_TYPE_DOUBLE, // UI_BUD_TABVIEW_MAY
- G_TYPE_DOUBLE, // UI_BUD_TABVIEW_JUNE
- G_TYPE_DOUBLE, // UI_BUD_TABVIEW_JULY
- G_TYPE_DOUBLE, // UI_BUD_TABVIEW_AUGUST
- G_TYPE_DOUBLE, // UI_BUD_TABVIEW_SEPTEMBER
- G_TYPE_DOUBLE, // UI_BUD_TABVIEW_OCTOBER
- G_TYPE_DOUBLE, // UI_BUD_TABVIEW_NOVEMBER
- G_TYPE_DOUBLE // UI_BUD_TABVIEW_DECEMBER
- );
-
- // Populate the store
+ DB( g_print("\n[ui-budget] model populate\n") )
/* Create tree roots */
ui_bud_tabview_model_insert_roots (budget);
@@ -1142,6 +1186,48 @@
/* Create rows for total root */
ui_bud_tabview_model_update_monthly_total(GTK_TREE_STORE(budget));
+ g_free(root_search.iterator);
+}
+
+
+// the budget model creation
+static GtkTreeModel * ui_bud_tabview_model_new ()
+{
+GtkTreeStore *budget;
+
+ // Create Tree Store
+ budget = gtk_tree_store_new ( UI_BUD_TABVIEW_NUMBER_COLOMNS,
+ G_TYPE_UINT, // UI_BUD_TABVIEW_CATEGORY_KEY
+ G_TYPE_STRING, // UI_BUD_TABVIEW_CATEGORY_NAME
+ G_TYPE_STRING, // UI_BUD_TABVIEW_CATEGORY_FULLNAME
+ G_TYPE_INT, // UI_BUD_TABVIEW_CATEGORY_TYPE
+ G_TYPE_BOOLEAN, // UI_BUD_TABVIEW_IS_ROOT
+ G_TYPE_BOOLEAN, // UI_BUD_TABVIEW_IS_TOTAL
+ G_TYPE_BOOLEAN, // UI_BUD_TABVIEW_IS_CHILD_HEADER
+ G_TYPE_BOOLEAN, // UI_BUD_TABVIEW_IS_SEPARATOR
+ G_TYPE_BOOLEAN, // UI_BUD_TABVIEW_IS_MONITORING_FORCED
+ G_TYPE_BOOLEAN, // UI_BUD_TABVIEW_IS_SAME_AMOUNT
+ G_TYPE_BOOLEAN, // UI_BUD_TABVIEW_IS_SUB_CATEGORY
+ G_TYPE_BOOLEAN, // UI_BUD_TABVIEW_HAS_BUDGET
+ G_TYPE_DOUBLE, // UI_BUD_TABVIEW_TOTAL
+ G_TYPE_DOUBLE, // UI_BUD_TABVIEW_SAME_AMOUNT
+ G_TYPE_DOUBLE, // UI_BUD_TABVIEW_JANUARY
+ G_TYPE_DOUBLE, // UI_BUD_TABVIEW_FEBRUARY
+ G_TYPE_DOUBLE, // UI_BUD_TABVIEW_MARCH
+ G_TYPE_DOUBLE, // UI_BUD_TABVIEW_APRIL
+ G_TYPE_DOUBLE, // UI_BUD_TABVIEW_MAY
+ G_TYPE_DOUBLE, // UI_BUD_TABVIEW_JUNE
+ G_TYPE_DOUBLE, // UI_BUD_TABVIEW_JULY
+ G_TYPE_DOUBLE, // UI_BUD_TABVIEW_AUGUST
+ G_TYPE_DOUBLE, // UI_BUD_TABVIEW_SEPTEMBER
+ G_TYPE_DOUBLE, // UI_BUD_TABVIEW_OCTOBER
+ G_TYPE_DOUBLE, // UI_BUD_TABVIEW_NOVEMBER
+ G_TYPE_DOUBLE // UI_BUD_TABVIEW_DECEMBER
+ );
+
+ // Populate the store
+ ui_bud_tabview_model_populate(budget);
+
/* Sort categories on same node level */
gtk_tree_sortable_set_sort_func (GTK_TREE_SORTABLE(budget),
UI_BUD_TABVIEW_CATEGORY_NAME, ui_bud_tabview_model_row_sort,
@@ -1149,18 +1235,16 @@
gtk_tree_sortable_set_sort_column_id (GTK_TREE_SORTABLE (budget),
UI_BUD_TABVIEW_CATEGORY_NAME, GTK_SORT_ASCENDING);
- g_free(root_search.iterator);
-
return GTK_TREE_MODEL(budget);
}
+
/**
* GtkTreeView functions
**/
-
static void ui_bud_tabview_icon_cell_data_function (GtkTreeViewColumn *col, GtkCellRenderer *renderer, GtkTreeModel *model, GtkTreeIter *iter, gpointer user_data)
{
-ui_bud_tabview_data_t *data = user_data;
+//ui_bud_tabview_data_t *data = user_data;
gchar *iconname = NULL;
gboolean has_budget, is_monitoring_forced;
ui_bud_tabview_view_mode_t view_mode = UI_BUD_TABVIEW_VIEW_SUMMARY;
@@ -1170,7 +1254,7 @@
UI_BUD_TABVIEW_HAS_BUDGET, &has_budget,
-1);
- view_mode = hbtk_switcher_get_active (HBTK_SWITCHER(data->RA_mode));
+ //view_mode = hbtk_switcher_get_active (HBTK_SWITCHER(data->RA_mode));
//5.3 added
if( is_monitoring_forced )
@@ -1190,19 +1274,20 @@
// Display category name in bold if it has budget
static void ui_bud_tabview_view_display_category_name (GtkTreeViewColumn *col, GtkCellRenderer *renderer, GtkTreeModel *model, GtkTreeIter *iter, gpointer user_data)
{
-ui_bud_tabview_data_t *data = user_data;
+//ui_bud_tabview_data_t *data = user_data;
gboolean has_budget, is_sub_category;
PangoWeight weight = PANGO_WEIGHT_NORMAL;
-ui_bud_tabview_view_mode_t view_mode = UI_BUD_TABVIEW_VIEW_SUMMARY;
+//ui_bud_tabview_view_mode_t view_mode = UI_BUD_TABVIEW_VIEW_SUMMARY;
gtk_tree_model_get(model, iter,
UI_BUD_TABVIEW_IS_SUB_CATEGORY, &is_sub_category,
UI_BUD_TABVIEW_HAS_BUDGET, &has_budget,
-1);
- view_mode = hbtk_switcher_get_active (HBTK_SWITCHER(data->RA_mode));
+ //view_mode = hbtk_switcher_get_active (HBTK_SWITCHER(data->RA_mode));
- if (view_mode != UI_BUD_TABVIEW_VIEW_SUMMARY && has_budget)
+ //if (view_mode != UI_BUD_TABVIEW_VIEW_SUMMARY && has_budget)
+ if (has_budget)
{
weight = PANGO_WEIGHT_BOLD;
}
@@ -1311,7 +1396,7 @@
// to enable or not edition on month columns
static void ui_bud_tabview_view_display_is_same_amount (GtkTreeViewColumn *col, GtkCellRenderer *renderer, GtkTreeModel *model, GtkTreeIter *iter, gpointer user_data)
{
-gboolean is_same_amount, is_root, is_total, is_visible, is_sensitive;
+gboolean is_same_amount, is_total, is_root, is_visible, is_sensitive;
gtk_tree_model_get(model, iter,
UI_BUD_TABVIEW_IS_ROOT, &is_root,
@@ -1340,21 +1425,22 @@
// Compute dynamically the annual total
static void ui_bud_tabview_view_display_annual_total (GtkTreeViewColumn *col, GtkCellRenderer *renderer, GtkTreeModel *model, GtkTreeIter *iter, gpointer user_data)
{
-gboolean is_same_amount = FALSE, is_total = FALSE, is_root = FALSE;
-gdouble amount = 0.0;
-gdouble total = 0.0;
+gboolean is_root = FALSE;
gchar *text;
gchar *fgcolor;
gboolean is_visible = TRUE;
+gdouble celltotal;
+
gtk_tree_model_get(model, iter,
UI_BUD_TABVIEW_IS_ROOT, &is_root,
- UI_BUD_TABVIEW_IS_SAME_AMOUNT, &is_same_amount,
- UI_BUD_TABVIEW_SAME_AMOUNT, &amount,
- UI_BUD_TABVIEW_IS_TOTAL, &is_total,
+ //UI_BUD_TABVIEW_IS_SAME_AMOUNT, &is_same_amount,
+ //UI_BUD_TABVIEW_SAME_AMOUNT, &amount,
+ //UI_BUD_TABVIEW_IS_TOTAL, &is_total,
+ UI_BUD_TABVIEW_TOTAL, &celltotal,
-1);
- if (is_same_amount)
+ /*if (is_same_amount)
{
total = 12.0 * amount;
}
@@ -1367,8 +1453,9 @@
}
}
- text = g_strdup_printf("%.2f", total);
- fgcolor = get_normal_color_amount(total);
+ text = g_strdup_printf("%.2f // %.2f", total, celltotal);*/
+ text = g_strdup_printf("%.2f", celltotal);
+ fgcolor = get_normal_color_amount(celltotal);
if (is_root)
{
@@ -1377,8 +1464,10 @@
// Finally, visibility depends on set amount
//is_visible = (is_visible && amount != 0.0);
+
//#1859275 visibility to be tested on total
- is_visible = (is_visible && total != 0.0);
+ is_visible = (is_visible && celltotal != 0.0);
+
g_object_set(renderer,
"text", text,
@@ -1394,7 +1483,7 @@
static void ui_bud_tabview_view_display_monthly_average(GtkTreeViewColumn *col, GtkCellRenderer *renderer, GtkTreeModel *model, GtkTreeIter *iter, gpointer user_data)
{
gboolean is_same_amount = FALSE, is_total = FALSE, is_root = FALSE;
-gdouble amount = 0.0;
+gdouble amount = 0.0, celltotal;
gdouble average = 0.0;
gchar *text;
gchar *fgcolor;
@@ -1405,9 +1494,10 @@
UI_BUD_TABVIEW_IS_SAME_AMOUNT, &is_same_amount,
UI_BUD_TABVIEW_SAME_AMOUNT, &amount,
UI_BUD_TABVIEW_IS_TOTAL, &is_total,
+ UI_BUD_TABVIEW_TOTAL, &celltotal,
-1);
- if (is_same_amount)
+ /*if (is_same_amount)
{
average = amount;
}
@@ -1419,7 +1509,9 @@
average += amount;
}
average = hb_amount_round(average / 12.0, 2);
- }
+ }*/
+
+ average = hb_amount_round(celltotal / 12.0, 2);
text = g_strdup_printf("%.2f", average);
fgcolor = get_normal_color_amount(average);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/homebank-5.8.3/src/ui-widgets.c new/homebank-5.8.5/src/ui-widgets.c
--- old/homebank-5.8.3/src/ui-widgets.c 2024-05-10 23:42:25.000000000 +0200
+++ new/homebank-5.8.5/src/ui-widgets.c 2024-10-04 09:17:38.000000000 +0200
@@ -1038,7 +1038,8 @@
//gtk_spin_button_set_numeric (GTK_SPIN_BUTTON (spinner), TRUE);
//g_object_set(spinner, "xalign", 1.0, NULL);
- //gtk_entry_set_width_chars(spinner, 10);
+ //#2081574 width too small
+ gtk_entry_set_width_chars(GTK_ENTRY(spinner), 10);
if(label)
gtk_label_set_mnemonic_widget (GTK_LABEL(label), spinner);
1
0
Script 'mail_helper' called by obssrc
Hello community,
here is the log from the commit of package calibre for openSUSE:Factory checked in at 2024-10-09 22:13:55
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/calibre (Old)
and /work/SRC/openSUSE:Factory/.calibre.new.19354 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "calibre"
Wed Oct 9 22:13:55 2024 rev:323 rq:1206544 version:7.19.0
Changes:
--------
--- /work/SRC/openSUSE:Factory/calibre/calibre.changes 2024-09-27 17:12:00.687952682 +0200
+++ /work/SRC/openSUSE:Factory/.calibre.new.19354/calibre.changes 2024-10-09 22:14:30.814173092 +0200
@@ -1,0 +2,8 @@
+Wed Oct 9 13:14:19 UTC 2024 - ecsos <ecsos(a)opensuse.org>
+
+- Fix build error and remove podofo as buildrequire and require,
+ after suse has removed podofo binary. boo#1231058
+ Upstream say only podofo >= 0.10.3, but not whether libpodofo is
+ sufficient or whether they need the binary podofo.
+
+-------------------------------------------------------------------
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ calibre.spec ++++++
--- /var/tmp/diff_new_pack.eYUUlZ/_old 2024-10-09 22:14:32.118227476 +0200
+++ /var/tmp/diff_new_pack.eYUUlZ/_new 2024-10-09 22:14:32.122227643 +0200
@@ -80,14 +80,14 @@
BuildRequires: libmtp-devel >= 1.1.21
# Upstream use libopenssl-devel >= 3.1.3
BuildRequires: libopenssl-3-devel >= 3.0.8
-BuildRequires: libpodofo-devel >= 0.10.1
+BuildRequires: libpodofo-devel >= 0.10.3
BuildRequires: libpoppler-devel >= 21.11.0
# upstream use: libstemmer-devel >= 2.2.0
BuildRequires: libstemmer-devel >= 2.1.0
BuildRequires: libwmf-devel >= 0.2.8
# upstream use: mozjpeg >= 4.0.3
BuildRequires: optipng >= 0.7.7
-BuildRequires: podofo >= 0.10.1
+# Dont known if upstream need it. It say only podofo. But suse has removed it: BuildRequires: podofo >= 0.10.3
BuildRequires: poppler-tools >= 21.11.0
BuildRequires: qt6-core-private-devel >= %{my_qtversion}
BuildRequires: qt6-declarative-devel >= %{my_qtversion}
@@ -114,6 +114,7 @@
BuildRequires: pkgconfig(glib-2.0) >= 2.70.1
BuildRequires: pkgconfig(gpg-error) >= 1.43
BuildRequires: pkgconfig(hunspell) >= 1.7.0
+BuildRequires: pkgconfig(icu-i18n) < 76.0
BuildRequires: pkgconfig(icu-i18n) >= 73.2
BuildRequires: pkgconfig(libffi) >= 3.4.4
BuildRequires: pkgconfig(libgcrypt) >= 1.9.4
@@ -206,7 +207,7 @@
Requires: libpng16-16 >= 1.6.40
Requires: libwmf >= 0.2.8
Requires: optipng >= 0.7.5
-Requires: podofo >= 0.10.1
+# Dont known if upstream need it. It say only podofo. But suse has removed it: Requires: podofo >= 0.10.1
Requires: poppler-tools >= 21.11.0
Requires: python311 >= 3.10
Requires: python311-Brotli >= 1.1.0
1
0
Script 'mail_helper' called by obssrc
Hello community,
here is the log from the commit of package genders for openSUSE:Factory checked in at 2024-10-09 22:13:50
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/genders (Old)
and /work/SRC/openSUSE:Factory/.genders.new.19354 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "genders"
Wed Oct 9 22:13:50 2024 rev:12 rq:1206533 version:1.29.1
Changes:
--------
--- /work/SRC/openSUSE:Factory/genders/genders.changes 2022-12-15 19:26:14.516410221 +0100
+++ /work/SRC/openSUSE:Factory/.genders.new.19354/genders.changes 2024-10-09 22:14:25.241940708 +0200
@@ -1,0 +2,7 @@
+Wed Oct 9 12:58:01 UTC 2024 - Christian Goll <cgoll(a)suse.com>
+
+- update to 1.29.1 which increased the internal buffer in nodeattr for large
+ cluster hostranges
+- removed also-check-for-python3.patch
+
+-------------------------------------------------------------------
Old:
----
also-check-for-python3.patch
genders-1.28.1.tar.gz
New:
----
genders-1.29.1.tar.gz
BETA DEBUG BEGIN:
Old: cluster hostranges
- removed also-check-for-python3.patch
BETA DEBUG END:
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ genders.spec ++++++
--- /var/tmp/diff_new_pack.oCg1sj/_old 2024-10-09 22:14:27.134019615 +0200
+++ /var/tmp/diff_new_pack.oCg1sj/_new 2024-10-09 22:14:27.146020116 +0200
@@ -1,7 +1,7 @@
#
# spec file for package genders
#
-# Copyright (c) 2022 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
@@ -19,10 +19,10 @@
# Check file META in sources: update so_version to (API_CURRENT - API_AGE)
%define c_api 0
%define cpp_api 2
-%define slash_ver 1-28-1
+%define slash_ver 1-29-1
Name: genders
-Version: 1.28.1
+Version: 1.29.1
Release: 0
Summary: Static cluster configuration database
License: GPL-2.0-or-later
@@ -31,7 +31,7 @@
Patch1: Fix-Python-package-installation-use-root.patch
Patch2: Remove-PERL_DESTDIR-use-DESTDIR-instead.patch
Patch4: lua_bindings.patch
-Patch5: also-check-for-python3.patch
+#Patch5: also-check-for-python3.patch
URL: https://github.com/chaos/genders
BuildRequires: autoconf
BuildRequires: autoconf-archive
++++++ genders-1.28.1.tar.gz -> genders-1.29.1.tar.gz ++++++
++++ 43291 lines of diff (skipped)
1
0
Script 'mail_helper' called by obssrc
Hello community,
here is the log from the commit of package python-azure-identity-broker for openSUSE:Factory checked in at 2024-10-09 22:13:45
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/python-azure-identity-broker (Old)
and /work/SRC/openSUSE:Factory/.python-azure-identity-broker.new.19354 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "python-azure-identity-broker"
Wed Oct 9 22:13:45 2024 rev:4 rq:1206534 version:1.2.0
Changes:
--------
--- /work/SRC/openSUSE:Factory/python-azure-identity-broker/python-azure-identity-broker.changes 2024-04-11 19:42:21.712443552 +0200
+++ /work/SRC/openSUSE:Factory/.python-azure-identity-broker.new.19354/python-azure-identity-broker.changes 2024-10-09 22:14:23.349861801 +0200
@@ -1,0 +2,12 @@
+Wed Oct 9 09:17:27 UTC 2024 - John Paul Adrian Glaubitz <adrian.glaubitz(a)suse.com>
+
+- New upstream release
+ + Version 1.2.0
+ + For detailed information about changes see the
+ CHANGELOG.md file provided with this package
+- Adjust upstream source name in spec file
+- Drop extra LICENSE.txt as upstream now ships its own
+- Rename LICENSE.txt to LICENSE in %files section
+- Update Requires from setup.py
+
+-------------------------------------------------------------------
Old:
----
LICENSE.txt
azure-identity-broker-1.1.0.tar.gz
New:
----
azure_identity_broker-1.2.0.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ python-azure-identity-broker.spec ++++++
--- /var/tmp/diff_new_pack.4HR9kG/_old 2024-10-09 22:14:24.089892663 +0200
+++ /var/tmp/diff_new_pack.4HR9kG/_new 2024-10-09 22:14:24.093892830 +0200
@@ -18,14 +18,13 @@
%{?sle15_python_module_pythons}
Name: python-azure-identity-broker
-Version: 1.1.0
+Version: 1.2.0
Release: 0
Summary: Microsoft Azure Identity Broker plugin for Python
License: MIT
Group: Development/Languages/Python
URL: https://github.com/Azure/azure-sdk-for-python
-Source: https://files.pythonhosted.org/packages/source/a/azure-identity-broker/azur…
-Source1: LICENSE.txt
+Source: https://files.pythonhosted.org/packages/source/a/azure_identity_broker/azur…
BuildRequires: %{python_module azure-identity < 2.0.0}
BuildRequires: %{python_module azure-identity >= 1.14.0}
BuildRequires: %{python_module azure-nspkg >= 3.0.0}
@@ -35,8 +34,8 @@
BuildRequires: fdupes
BuildRequires: python-rpm-macros
Requires: python-azure-nspkg >= 3.0.0
-Requires: (python-azure-identity >= 1.15.0 with python-azure-identity < 2.0.0)
-Requires: (python-msal >= 1.25.0 with python-msal < 2.0.0)
+Requires: (python-azure-identity >= 1.18.0 with python-azure-identity < 2.0.0)
+Requires: (python-msal >= 1.31.0 with python-msal < 2.0.0)
Conflicts: python-azure-sdk <= 2.0.0
%if 0%{?sle_version} >= 150400
Obsoletes: python3-azure-identity-broker < 1.0.0
@@ -54,10 +53,9 @@
Manager (WAM), is supported.
%prep
-%setup -q -n azure-identity-broker-%{version}
+%setup -q -n azure_identity_broker-%{version}
%build
-install -m 644 %{SOURCE1} %{_builddir}/azure-identity-broker-%{version}
%pyproject_wheel
%install
@@ -70,7 +68,7 @@
%files %{python_files}
%doc CHANGELOG.md README.md
-%license LICENSE.txt
+%license LICENSE
%{python_sitelib}/azure/identity/broker
%{python_sitelib}/azure_identity_broker-*.dist-info
1
0
Script 'mail_helper' called by obssrc
Hello community,
here is the log from the commit of package python-azure-storage-file-share for openSUSE:Factory checked in at 2024-10-09 22:13:47
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/python-azure-storage-file-share (Old)
and /work/SRC/openSUSE:Factory/.python-azure-storage-file-share.new.19354 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "python-azure-storage-file-share"
Wed Oct 9 22:13:47 2024 rev:26 rq:1206535 version:12.19.0
Changes:
--------
--- /work/SRC/openSUSE:Factory/python-azure-storage-file-share/python-azure-storage-file-share.changes 2024-09-18 15:29:19.694956271 +0200
+++ /work/SRC/openSUSE:Factory/.python-azure-storage-file-share.new.19354/python-azure-storage-file-share.changes 2024-10-09 22:14:24.285900837 +0200
@@ -1,0 +2,8 @@
+Wed Oct 9 09:44:08 UTC 2024 - John Paul Adrian Glaubitz <adrian.glaubitz(a)suse.com>
+
+- New upstream release
+ + Version 12.19.0
+ + For detailed information about changes see the
+ CHANGELOG.md file provided with this package
+
+-------------------------------------------------------------------
Old:
----
azure_storage_file_share-12.18.0.tar.gz
New:
----
azure_storage_file_share-12.19.0.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ python-azure-storage-file-share.spec ++++++
--- /var/tmp/diff_new_pack.k7Nayc/_old 2024-10-09 22:14:24.717918854 +0200
+++ /var/tmp/diff_new_pack.k7Nayc/_new 2024-10-09 22:14:24.717918854 +0200
@@ -18,7 +18,7 @@
%{?sle15_python_module_pythons}
Name: python-azure-storage-file-share
-Version: 12.18.0
+Version: 12.19.0
Release: 0
Summary: Azure Storage File Share client library for Python
License: MIT
++++++ azure_storage_file_share-12.18.0.tar.gz -> azure_storage_file_share-12.19.0.tar.gz ++++++
++++ 9390 lines of diff (skipped)
1
0
Script 'mail_helper' called by obssrc
Hello community,
here is the log from the commit of package swipl for openSUSE:Factory checked in at 2024-10-09 22:13:44
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/swipl (Old)
and /work/SRC/openSUSE:Factory/.swipl.new.19354 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "swipl"
Wed Oct 9 22:13:44 2024 rev:9 rq:1206537 version:9.3.12
Changes:
--------
--- /work/SRC/openSUSE:Factory/swipl/swipl.changes 2024-09-24 17:34:48.916944879 +0200
+++ /work/SRC/openSUSE:Factory/.swipl.new.19354/swipl.changes 2024-10-09 22:14:22.353820262 +0200
@@ -1,0 +2,9 @@
+Wed Oct 9 13:15:26 UTC 2024 - Matej Cepl <mcepl(a)cepl.eu>
+
+- Update to 9.3.12
+ Complete changelog is
+ https://www.swi-prolog.org/ChangeLog?branch=development&from=9.3.11&to=9.3.…
+ and upstream still doesn’t provide any abbreviated version, and
+ the list of changes is still too long to enumerate here.
+
+-------------------------------------------------------------------
Old:
----
swipl-9.3.11.tar.gz
New:
----
swipl-9.3.12.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ swipl.spec ++++++
--- /var/tmp/diff_new_pack.ZLDwXt/_old 2024-10-09 22:14:22.893842783 +0200
+++ /var/tmp/diff_new_pack.ZLDwXt/_new 2024-10-09 22:14:22.893842783 +0200
@@ -17,7 +17,7 @@
Name: swipl
-Version: 9.3.11
+Version: 9.3.12
Release: 0
Summary: Prolog Compiler
License: GPL-2.0-or-later AND LGPL-2.1-or-later
++++++ _scmsync.obsinfo ++++++
--- /var/tmp/diff_new_pack.ZLDwXt/_old 2024-10-09 22:14:22.921843951 +0200
+++ /var/tmp/diff_new_pack.ZLDwXt/_new 2024-10-09 22:14:22.925844117 +0200
@@ -1,5 +1,5 @@
-mtime: 1727171168
-commit: 53d056cc5963d8b43141e635764efd19a959691ead3c766dd38f022d93fe20bf
+mtime: 1728480010
+commit: d8968a3c359cb8896c6cf614bc71971ba9a2a7fb8d3e4a18cccdbac8ba0cf05f
url: https://src.opensuse.org/mcepl_pkgs/swipl.git
-revision: 53d056cc5963d8b43141e635764efd19a959691ead3c766dd38f022d93fe20bf
+revision: d8968a3c359cb8896c6cf614bc71971ba9a2a7fb8d3e4a18cccdbac8ba0cf05f
++++++ build.specials.obscpio ++++++
diff: old/*: No such file or directory
diff: new/*: No such file or directory
++++++ swipl-9.3.11.tar.gz -> swipl-9.3.12.tar.gz ++++++
/work/SRC/openSUSE:Factory/swipl/swipl-9.3.11.tar.gz /work/SRC/openSUSE:Factory/.swipl.new.19354/swipl-9.3.12.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 postfix-image for openSUSE:Factory checked in at 2024-10-09 22:13:34
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/postfix-image (Old)
and /work/SRC/openSUSE:Factory/.postfix-image.new.19354 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "postfix-image"
Wed Oct 9 22:13:34 2024 rev:15 rq:1206517 version:unknown
Changes:
--------
--- /work/SRC/openSUSE:Factory/postfix-image/postfix-image.changes 2024-10-08 17:26:17.761754546 +0200
+++ /work/SRC/openSUSE:Factory/.postfix-image.new.19354/postfix-image.changes 2024-10-09 22:14:07.873216395 +0200
@@ -1,0 +2,5 @@
+Wed Oct 9 08:36:44 UTC 2024 - SUSE Update Bot <bci-internal(a)suse.de>
+
+- Add tar to the container image
+
+-------------------------------------------------------------------
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ Dockerfile ++++++
--- /var/tmp/diff_new_pack.jEzvXc/_old 2024-10-09 22:14:08.845256923 +0200
+++ /var/tmp/diff_new_pack.jEzvXc/_new 2024-10-09 22:14:08.849257089 +0200
@@ -24,7 +24,7 @@
COPY --from=target / /target
RUN set -euo pipefail; \
- zypper -n --installroot /target --gpg-auto-import-keys install --no-recommends ca-certificates-mozilla curl cyrus-sasl cyrus-sasl-plain ed findutils gawk grep netcfg openldap2 openldap2-client postfix postfix-ldap postfix-lmdb sed timezone mandoc spamassassin-spamc spamass-milter; \
+ zypper -n --installroot /target --gpg-auto-import-keys install --no-recommends ca-certificates-mozilla curl cyrus-sasl cyrus-sasl-plain ed findutils gawk grep netcfg postfix postfix-ldap postfix-lmdb sed timezone openldap2 openldap2-client mandoc spamassassin-spamc spamass-milter tar; \
zypper -n clean; \
rm -rf {/target,}/var/log/{alternatives.log,lastlog,tallylog,zypper.log,zypp/history,YaST2}
FROM opensuse/bci/bci-micro:latest
1
0
Script 'mail_helper' called by obssrc
Hello community,
here is the log from the commit of package nerdctl for openSUSE:Factory checked in at 2024-10-09 22:13:18
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/nerdctl (Old)
and /work/SRC/openSUSE:Factory/.nerdctl.new.19354 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "nerdctl"
Wed Oct 9 22:13:18 2024 rev:15 rq:1206510 version:1.7.7
Changes:
--------
--- /work/SRC/openSUSE:Factory/nerdctl/nerdctl.changes 2024-07-19 15:27:47.884287462 +0200
+++ /work/SRC/openSUSE:Factory/.nerdctl.new.19354/nerdctl.changes 2024-10-09 22:13:51.400529598 +0200
@@ -1,0 +2,35 @@
+Fri Sep 20 11:44:25 UTC 2024 - danish.prakash(a)suse.com
+
+- Update to version 1.7.7:
+ * Update containerd version to 1.7.22
+ * Update deprecated packages
+ * Fix S1009 (see https://staticcheck.dev/docs/checks#S1009)
+ * Update golangci-lint version and go mod cleanup
+ * Add ubuntu 22.04 test to the matrix
+ * update debian (12)
+ * build(deps): bump tonistiigi/xx from 1.4.0 to 1.5.0
+ * update soci-snapshotter (0.7.0)
+ * update Nydus (2.2.5)
+ * Update go mod and go sum
+ * CI: update Ubuntu (24.04)
+ * update Go (1.23)
+ * update Kubo (0.29.0)
+ * update bypass4netns (0.4.1)
+ * update RootlessKit (2.3.1)
+ * update slirp4netns (1.3.1)
+ * update imgcrypt (1.1.11)
+ * update BuildKit (0.15.2)
+ * fix: Anchor Docer Version to v24 and update dependencies
+ * fix: Update Test for CNI plugin upgrade
+ * Include init NetworkSettings within inspect response
+ * feat: adding filter infrastructure + status and event filter
+ * feat: add Status and ID as event attributes
+ * feat: support for -a and --attach in run
+ * feat: support for --sig-proxy in run
+ * fix: Test create with mac address after updating cni version
+ * chore: update runc to v1.1.14
+ * update CNI plugins (1.5.1)
+ * update Dockerfile go version to 1.22 to support containerd v2 builds
+ * build(deps): bump github.com/containerd/accelerated-container-image
+
+-------------------------------------------------------------------
Old:
----
nerdctl-1.7.6.tar.xz
New:
----
nerdctl-1.7.7.tar.xz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ nerdctl.spec ++++++
--- /var/tmp/diff_new_pack.20yWNP/_old 2024-10-09 22:13:52.844589805 +0200
+++ /var/tmp/diff_new_pack.20yWNP/_new 2024-10-09 22:13:52.844589805 +0200
@@ -24,7 +24,7 @@
%global import_path %{provider_prefix}
Name: nerdctl
-Version: 1.7.6
+Version: 1.7.7
Release: 0
Summary: Docker-compatible CLI for containerd
License: Apache-2.0
++++++ _service ++++++
--- /var/tmp/diff_new_pack.20yWNP/_old 2024-10-09 22:13:52.872590973 +0200
+++ /var/tmp/diff_new_pack.20yWNP/_new 2024-10-09 22:13:52.876591140 +0200
@@ -2,7 +2,7 @@
<service name="tar_scm" mode="disabled">
<param name="url">https://github.com/containerd/nerdctl.git</param>
<param name="scm">git</param>
- <param name="revision">v1.7.6</param>
+ <param name="revision">v1.7.7</param>
<param name="versionformat">@PARENT_TAG@</param>
<param name="changesgenerate">enable</param>
<param name="versionrewrite-pattern">v(.*)</param>
++++++ _servicedata ++++++
--- /var/tmp/diff_new_pack.20yWNP/_old 2024-10-09 22:13:52.896591974 +0200
+++ /var/tmp/diff_new_pack.20yWNP/_new 2024-10-09 22:13:52.900592141 +0200
@@ -1,6 +1,6 @@
<servicedata>
<service name="tar_scm">
<param name="url">https://github.com/containerd/nerdctl.git</param>
- <param name="changesrevision">845e989f69d25b420ae325fedc8e70186243fd93</param></service></servicedata>
+ <param name="changesrevision">5882c720f4e7f358fb26b759e514b3ae9dd8ea83</param></service></servicedata>
(No newline at EOF)
++++++ nerdctl-1.7.6.tar.xz -> nerdctl-1.7.7.tar.xz ++++++
++++ 3119 lines of diff (skipped)
++++++ vendor.tar.xz ++++++
++++ 31116 lines of diff (skipped)
1
0
Script 'mail_helper' called by obssrc
Hello community,
here is the log from the commit of package deno for openSUSE:Factory checked in at 2024-10-09 22:13:11
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/deno (Old)
and /work/SRC/openSUSE:Factory/.deno.new.19354 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "deno"
Wed Oct 9 22:13:11 2024 rev:48 rq:1206506 version:2.0.0
Changes:
--------
--- /work/SRC/openSUSE:Factory/deno/deno.changes 2024-10-07 21:49:46.580121997 +0200
+++ /work/SRC/openSUSE:Factory/.deno.new.19354/deno.changes 2024-10-09 22:13:46.560327796 +0200
@@ -1,0 +2,44 @@
+Wed Oct 9 09:46:54 UTC 2024 - Soc Virnyl Estela <obs(a)uncomfyhalomacro.pl>
+
+- update to version v2.0.0:
+ * fix: use tree-sitter for deno_doc
+ * fix: disable same-origin.html WPT
+ * refactor: remove usage of full_range
+ * fix(ext/node): internal buffer length in readSync
+ * fix(console): missing cause property on non-error objects
+ * fix(lsp): exclude missing import quick fixes with bad resolutions
+ * feat(lsp): add a message when someone runs 'deno lsp' manually
+ * fix(ext/webstorage): make `getOwnPropertyDescriptor` with symbol return `undefined`
+ * feat(ext/crypto): X448 support
+ * refactor: improve node permission checks
+ * chore: enable lock_deno_json_package_json_deps
+ * fix(node): fix worker_threads issues blocking Angular support
+ * tests: enable package_json_node_modules_none
+ * fix(install): surface package.json dependency errors
+ * Revert "feat: warn when using --allow-run with no allow list"
+ * tests: enable specs::run::package_json::invalid_value
+ * fix(npm): root package has peer dependency on itself
+ * fix(task): use current executable for deno even when not named deno
+ * chore: show expectation diff for wpt tests
+ * fix: don't prompt when using `Deno.permissions.request` with `--no-prompt`
+ * chore: remove custom `bench` profile
+ * fix(ext/crypto): fix identity test for x25519 derive bits
+ * feat(permissions): allow importing from cdn.jsdelivr.net by default
+ * perf: Use -O3 for sui in release builds
+ * fix: enable `Win32_Security` feature in `windows-sys`
+ * fix(install): store tags associated with package in node_modules dir
+ * chore: disable flaky uv_test.js for now
+ * fix(install): compare versions directly to decide whether to create a child node_modules dir for a workspace member
+ * feat(byonm): support `deno run npm:<package>` when package is not in package.json
+ * fix(node): implement libuv APIs needed to support `npm:sqlite3`
+ * Revert "fix(urlpattern): fallback to empty string for undefined group values"
+ * fix(workspace): handle when config has members when specified via --config
+ * fix(no-slow-types): better `override` handling
+ * perf(ext/node): reduce some allocations in require
+
+-------------------------------------------------------------------
+Mon Oct 7 23:26:04 UTC 2024 - Soc Virnyl Estela <obs(a)uncomfyhalomacro.pl>
+
+- Add bash, fish, and zsh completion subpackages
+
+-------------------------------------------------------------------
Old:
----
deno-2.0.0~rc10.tar.zst
New:
----
_servicedata
deno-2.0.0.tar.zst
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ deno.spec ++++++
--- /var/tmp/diff_new_pack.e6JqZL/_old 2024-10-09 22:13:49.920467890 +0200
+++ /var/tmp/diff_new_pack.e6JqZL/_new 2024-10-09 22:13:49.924468056 +0200
@@ -19,7 +19,7 @@
Name: deno
-Version: 2.0.0~rc10
+Version: 2.0.0
Release: 0
Summary: A secure JavaScript and TypeScript runtime
License: MIT
@@ -32,7 +32,7 @@
# needed by `libz-ng-sys` after 1.36.1
# see: https://build.opensuse.org/package/show/devel:languages:javascript/deno#com…
BuildRequires: cmake
-BuildRequires: cargo >= 1.68.0
+BuildRequires: cargo >= 1.80
BuildRequires: gn
BuildRequires: lld
BuildRequires: llvm
@@ -54,6 +54,39 @@
Patch10: deno-disable-lto.patch
%endif
+%package fish-completion
+Summary: Fish Completion for %{name}
+Group: System/Shells
+Supplements: (%{name} and fish)
+Requires: %{name}
+Requires: fish
+BuildArch: noarch
+
+%description fish-completion
+Fish command-line completion support for %{name}.
+
+%package zsh-completion
+Summary: Zsh Completion for %{name}
+Group: System/Shells
+Supplements: (%{name} and zsh)
+Requires: %{name}
+Requires: zsh
+BuildArch: noarch
+
+%description zsh-completion
+Zsh command-line completion support for %{name}.
+
+%package bash-completion
+Summary: Bash Completion for %{name}
+Group: System/Shells
+Supplements: (%{name} and bash-completion)
+Requires: %{name}
+Requires: bash-completion
+BuildArch: noarch
+
+%description bash-completion
+Bash command-line completion support for %{name}.
+
%description
A JavaScript and TypeScript platform built on V8
@@ -87,8 +120,17 @@
%install
# place deno cli manually (cannot cargo install)
mkdir -p %{buildroot}%{_bindir}
+export PATH="%{buildroot}%{_bindir}:${PATH}"
+mkdir -p %{buildroot}%{_datadir}/bash-completion/completions
+mkdir -p %{buildroot}%{_datadir}/fish/vendor_completions.d
+mkdir -p %{buildroot}%{_datadir}/zsh/site-functions
+
cp target/release/deno %{buildroot}%{_bindir}
+deno completions bash > %{buildroot}%{_datadir}/bash-completion/completions/%{name}
+deno completions fish > %{buildroot}%{_datadir}/fish/vendor_completions.d/%{name}.fish
+deno completions zsh > %{buildroot}%{_datadir}/zsh/site-functions/_%{name}
+
%check
export PATH="${PATH}:%{buildroot}%{_bindir}"
deno run tests/testdata/run/002_hello.ts
@@ -98,3 +140,18 @@
%doc README.md
%{_bindir}/%{name}
+%files bash-completion
+%dir %{_datadir}/bash-completion
+%dir %{_datadir}/bash-completion/completions
+%{_datadir}/bash-completion/completions/%{name}
+
+%files fish-completion
+%dir %{_datadir}/fish
+%dir %{_datadir}/fish/vendor_completions.d
+%{_datadir}/fish/vendor_completions.d/%{name}.fish
+
+%files zsh-completion
+%dir %{_datadir}/zsh
+%dir %{_datadir}/zsh/site-functions
+%{_datadir}/zsh/site-functions/_%{name}
+
++++++ _service ++++++
--- /var/tmp/diff_new_pack.e6JqZL/_old 2024-10-09 22:13:49.964469724 +0200
+++ /var/tmp/diff_new_pack.e6JqZL/_new 2024-10-09 22:13:49.968469892 +0200
@@ -13,16 +13,22 @@
<service name="tar_scm" mode="manual">
<param name="scm">git</param>
<param name="url">https://github.com/denoland/deno</param>
- <param name="revision">c7cba4eda73e000baa6bfbce6a156f9974edee36</param>
- <param name="version">2.0.0~rc10</param>
+ <!-- param name="versionformat">@PARENT_TAG@+git@TAG_OFFSET@</param -->
+ <param name="versionformat">@PARENT_TAG@</param>
+ <param name="revision">v2.0.0</param>
+ <param name="versionrewrite-pattern">v(.*)</param>
+ <param name="versionrewrite-replacement">\1</param>
+ <param name="changesgenerate">enable</param>
</service>
<service name="tar" mode="manual"/>
<service name="recompress" mode="manual">
<param name="file">deno-2.0.0*.tar</param>
<param name="compression">zst</param>
</service>
+ <service mode="manual" name="set_version"/>
<service name="cargo_vendor" mode="manual">
<param name="srcdir">deno</param>
+ <param name="update">false</param>
</service>
</services>
++++++ _servicedata ++++++
<servicedata>
<service name="tar_scm">
<param name="url">https://github.com/denoland/deno</param>
<param name="changesrevision">a62c7e036ab6851c0293f407ead635a7331445b7</param></service></servicedata>
(No newline at EOF)
++++++ deno-2.0.0~rc10.tar.zst -> deno-2.0.0.tar.zst ++++++
/work/SRC/openSUSE:Factory/deno/deno-2.0.0~rc10.tar.zst /work/SRC/openSUSE:Factory/.deno.new.19354/deno-2.0.0.tar.zst differ: char 7, line 1
++++++ deno.obsinfo ++++++
--- /var/tmp/diff_new_pack.e6JqZL/_old 2024-10-09 22:13:50.032472560 +0200
+++ /var/tmp/diff_new_pack.e6JqZL/_new 2024-10-09 22:13:50.036472726 +0200
@@ -1,6 +1,5 @@
name: deno
-version: 2.0.0~rc10
-mtime: 1706983689
-commit: c7cba4eda73e000baa6bfbce6a156f9974edee36
-
+version: 2.0.0
+mtime: 1728465847
+commit: a62c7e036ab6851c0293f407ead635a7331445b7
++++++ vendor.tar.zst ++++++
/work/SRC/openSUSE:Factory/deno/vendor.tar.zst /work/SRC/openSUSE:Factory/.deno.new.19354/vendor.tar.zst differ: char 9285, line 42
1
0
Script 'mail_helper' called by obssrc
Hello community,
here is the log from the commit of package QR-Code-generator for openSUSE:Factory checked in at 2024-10-09 22:13:09
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/QR-Code-generator (Old)
and /work/SRC/openSUSE:Factory/.QR-Code-generator.new.19354 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "QR-Code-generator"
Wed Oct 9 22:13:09 2024 rev:5 rq:1206501 version:1.8.0+git17.856ba8a
Changes:
--------
--- /work/SRC/openSUSE:Factory/QR-Code-generator/QR-Code-generator.changes 2023-11-17 20:51:36.157674950 +0100
+++ /work/SRC/openSUSE:Factory/.QR-Code-generator.new.19354/QR-Code-generator.changes 2024-10-09 22:13:42.944177027 +0200
@@ -1,0 +2,17 @@
+Wed Oct 9 10:51:51 UTC 2024 - Marcus Rueckert <mrueckert(a)suse.de>
+
+- Update to 1.8.0+git17.856ba8a
+ https://github.com/nayuki/QR-Code-generator/compare/v1.8.0...856ba8a
+- switch build to cmake files from
+ https://github.com/EasyCoding/qrcodegen-cmake.git
+ - This build also adds the pkgconfig and cmake files for easier
+ integration with other projects ( like the upcoming obs-studio
+ 31.0.0)
+ - drop patches:
+ 0002-Make-use-of-fPIC-parameter-when-building.patch
+ 0003-Generate-both-shared-and-static-libraries.patch
+ 0004-Create-install-targets-for-C-and-CPP.patch
+- use %ldconfig_scriptlets
+- add BR for pkgconfig to ensure we get the pkgconfig provides
+
+-------------------------------------------------------------------
Old:
----
0002-Make-use-of-fPIC-parameter-when-building.patch
0003-Generate-both-shared-and-static-libraries.patch
0004-Create-install-targets-for-C-and-CPP.patch
v1.8.0.tar.gz
New:
----
QR-Code-generator-1.8.0+git17.856ba8a.tar.zst
_service
_servicedata
qrcodegen-cmake-1.8.0.cmake3.tar.zst
BETA DEBUG BEGIN:
Old: - drop patches:
0002-Make-use-of-fPIC-parameter-when-building.patch
0003-Generate-both-shared-and-static-libraries.patch
Old: 0002-Make-use-of-fPIC-parameter-when-building.patch
0003-Generate-both-shared-and-static-libraries.patch
0004-Create-install-targets-for-C-and-CPP.patch
Old: 0003-Generate-both-shared-and-static-libraries.patch
0004-Create-install-targets-for-C-and-CPP.patch
- use %ldconfig_scriptlets
BETA DEBUG END:
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ QR-Code-generator.spec ++++++
--- /var/tmp/diff_new_pack.083oWX/_old 2024-10-09 22:13:44.224230396 +0200
+++ /var/tmp/diff_new_pack.083oWX/_new 2024-10-09 22:13:44.228230563 +0200
@@ -1,7 +1,7 @@
#
# spec file for package QR-Code-generator
#
-# 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
@@ -18,20 +18,25 @@
%define libcname libqrcodegen1
%define libcppname libqrcodegencpp1
+
+%global cmake_code_version 1.8.0.cmake3
+
%{?sle15_python_module_pythons}
+
Name: QR-Code-generator
-Version: 1.8.0
+Version: 1.8.0+git17.856ba8a
Release: 0
Summary: QR Code generator library
License: MIT
URL: https://github.com/nayuki/QR-Code-generator
-Source: https://github.com/nayuki/QR-Code-generator/archive/v%{version}.tar.gz
-Patch2: 0002-Make-use-of-fPIC-parameter-when-building.patch
-Patch3: 0003-Generate-both-shared-and-static-libraries.patch
-Patch4: 0004-Create-install-targets-for-C-and-CPP.patch
+Source0: %{name}-%{version}.tar.zst
+Source1: qrcodegen-cmake-%cmake_code_version.tar.zst
BuildRequires: %{python_module setuptools}
+BuildRequires: cmake
BuildRequires: gcc-c++
+BuildRequires: pkgconfig
BuildRequires: python-rpm-macros
+BuildRequires: zstd
%python_subpackages
%description
@@ -70,46 +75,42 @@
C++ QR Code generator library
%prep
-%setup -q
-%autopatch -p1
+%autosetup -p1 -a1
+ln -s qrcodegen-cmake-%cmake_code_version/{CMakeLists.txt,cmake} .
+cp qrcodegen-cmake-%cmake_code_version/{README.md,LICENSE} .
%build
-export CFLAGS="%{optflags}"
-export CXXFLAGS="%{optflags}"
-pushd c
-make -j1
-popd
-pushd cpp
-make -j1
-popd
-pushd python
+%cmake
+
+pushd ../python
%python_build
popd
%install
-pushd c
-%make_install LIBDIR=%{buildroot}%{_libdir}
-popd
-pushd cpp
-%make_install LIBDIR=%{buildroot}%{_libdir}
-popd
+%cmake_install
+
pushd python
%python_install
popd
-rm -rf %{buildroot}%{_libdir}/*.a
-%post -n %{libcname} -p /sbin/ldconfig
-%postun -n %{libcname} -p /sbin/ldconfig
-%post -n %{libcppname} -p /sbin/ldconfig
-%postun -n %{libcppname} -p /sbin/ldconfig
+%ldconfig_scriptlets -n %{libcname}
+%ldconfig_scriptlets -n %{libcppname}
%files %{python_files}
%license Readme.markdown
%{python_sitelib}/*
%files -n QR-Code-generator-devel
-%{_includedir}/*
-%{_libdir}/*.so
+%license LICENSE Readme.markdown
+%doc README.md Readme.markdown
+%{_libdir}/cmake/qrcodegencpp/
+%{_libdir}/cmake/qrcodegen/
+%{_libdir}/libqrcodegen.so
+%{_libdir}/libqrcodegencpp.so
+%{_includedir}/qrcodegen/
+%{_includedir}/qrcodegencpp/
+%{_libdir}/pkgconfig/qrcodegencpp.pc
+%{_libdir}/pkgconfig/qrcodegen.pc
%files -n %{libcname}
%license Readme.markdown
++++++ _service ++++++
<services>
<service name="tar_scm" mode="disabled">
<param name="versionformat">@PARENT_TAG@+git@TAG_OFFSET@.%h</param>
<param name="revision">master</param>
<param name="url">https://github.com/nayuki/QR-Code-generator.git</param>
<param name="versionrewrite-pattern">v(.*)</param>
<param name="versionrewrite-replacement">\1</param>
<param name="scm">git</param>
<param name="changesgenerate">enable</param>
</service>
<service name="tar_scm" mode="disabled">
<param name="versionformat">@PARENT_TAG@</param>
<param name="revision">v1.8.0-cmake3</param>
<param name="url">https://github.com/EasyCoding/qrcodegen-cmake.git</param>
<param name="versionrewrite-pattern">v([\.\d]+)-([a-z].*)</param>
<param name="versionrewrite-replacement">\1.\2</param>
<param name="scm">git</param>
<param name="changesgenerate">enable</param>
</service>
<service name="recompress" mode="disabled">
<param name="compression">zst</param>
<param name="file">*.tar</param>
</service>
</services>
++++++ _servicedata ++++++
<servicedata>
<service name="tar_scm">
<param name="url">https://github.com/nayuki/QR-Code-generator.git</param>
<param name="changesrevision">856ba8a74b48a6b3b32dd86f13b66b61b8579fcd</param></service><service name="tar_scm">
<param name="url">https://github.com/EasyCoding/qrcodegen-cmake.git</param>
<param name="changesrevision">0bc38a5c3ce8bc700a7e1b3082a55b82e292530e</param></service></servicedata>
(No newline at EOF)
1
0
Script 'mail_helper' called by obssrc
Hello community,
here is the log from the commit of package cosmic-player for openSUSE:Factory checked in at 2024-10-09 22:12:48
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/cosmic-player (Old)
and /work/SRC/openSUSE:Factory/.cosmic-player.new.19354 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "cosmic-player"
Wed Oct 9 22:12:48 2024 rev:4 rq:1206437 version:0.1.0+git20241008.d614269
Changes:
--------
--- /work/SRC/openSUSE:Factory/cosmic-player/cosmic-player.changes 2024-09-16 17:46:20.989189709 +0200
+++ /work/SRC/openSUSE:Factory/.cosmic-player.new.19354/cosmic-player.changes 2024-10-09 22:13:14.250980720 +0200
@@ -1,0 +2,12 @@
+Tue Oct 8 15:35:23 UTC 2024 - Richard Rahl <rrahl0(a)opensuse.org>
+
+- update to 0.1.0+git20241008.d614269:
+ * rework app to use gstreamer, not ffmpeg
+ * update dependencies
+ * auto hide controls
+ * add fullscreen toggle
+ * auto selecting audio and subtitles
+- remove patch ffmpeg-7.patch as ffmpeg is not directly a requirement
+ anymore
+
+-------------------------------------------------------------------
Old:
----
cosmic-player-0.1.0+git20240702.52b9439.tar.zst
ffmpeg-7.patch
New:
----
cosmic-player-0.1.0+git20241008.d614269.tar.zst
BETA DEBUG BEGIN:
Old: * auto selecting audio and subtitles
- remove patch ffmpeg-7.patch as ffmpeg is not directly a requirement
anymore
BETA DEBUG END:
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ cosmic-player.spec ++++++
--- /var/tmp/diff_new_pack.X0mjji/_old 2024-10-09 22:13:22.355318615 +0200
+++ /var/tmp/diff_new_pack.X0mjji/_new 2024-10-09 22:13:22.355318615 +0200
@@ -18,7 +18,7 @@
%define appname com.system76.CosmicPlayer
Name: cosmic-player
-Version: 0.1.0+git20240702.52b9439
+Version: 0.1.0+git20241008.d614269
Release: 0
Summary: COSMIC media player
License: GPL-3.0-only
@@ -26,28 +26,24 @@
Source0: %{name}-%{version}.tar.zst
Source1: vendor.tar.zst
Patch0: ffmpeg-next.patch
-Patch1: ffmpeg-7.patch
BuildRequires: cargo-packaging
BuildRequires: clang-devel
BuildRequires: just
BuildRequires: pkgconfig
+BuildRequires: rust >= 1.80
BuildRequires: update-desktop-files
BuildRequires: pkgconfig(alsa)
-BuildRequires: pkgconfig(libavcodec)
-BuildRequires: pkgconfig(libavdevice)
-BuildRequires: pkgconfig(libavfilter)
-BuildRequires: pkgconfig(libavformat)
+BuildRequires: pkgconfig(glib-2.0)
+BuildRequires: pkgconfig(gstreamer-1.0)
+BuildRequires: pkgconfig(gstreamer-plugins-base-1.0)
+BuildRequires: pkgconfig(gstreamer-video-1.0)
BuildRequires: pkgconfig(xkbcommon)
%description
%{summary}.
%prep
-%autosetup -N -a1
-%patch -P0 -p1
-%if 0%{?suse_version} >= 1600
-%patch -P1 -p1
-%endif
+%autosetup -a1 -p1
%build
just build-release
++++++ cosmic-player-0.1.0+git20240702.52b9439.tar.zst -> cosmic-player-0.1.0+git20241008.d614269.tar.zst ++++++
++++ 7776 lines of diff (skipped)
++++++ ffmpeg-next.patch ++++++
--- /var/tmp/diff_new_pack.X0mjji/_old 2024-10-09 22:13:22.475323618 +0200
+++ /var/tmp/diff_new_pack.X0mjji/_new 2024-10-09 22:13:22.479323785 +0200
@@ -1,13 +1,13 @@
diff -rub cosmic-player/Cargo.toml cosmic-player-patched/Cargo.toml
---- cosmic-player/Cargo.toml 2024-09-16 13:50:59.801481433 +0200
-+++ cosmic-player-patched/Cargo.toml 2024-09-16 14:36:29.042729336 +0200
-@@ -5,7 +5,7 @@
-
- [dependencies]
- cpal = "0.15"
--ffmpeg-next = "6"
-+ffmpeg-next = "7"
- lazy_static = "1"
- paste = "1"
- serde = { version = "1", features = ["serde_derive"] }
+--- cosmic-player/Cargo.toml 2024-10-07 18:36:28.317281878 +0200
++++ cosmic-player-patched/Cargo.toml 2024-10-07 18:37:05.974062247 +0200
+@@ -11,7 +11,7 @@
+ url = "2"
+ # ffmpeg
+ cpal = { version = "0.15", optional = true }
+-ffmpeg-next = { version = "6", optional = true }
++ffmpeg-next = { version = "7", optional = true }
+ # Internationalization
+ i18n-embed = { version = "0.13", features = ["fluent-system", "desktop-requester"] }
+ i18n-embed-fl = "0.6"
++++++ vendor.tar.zst ++++++
/work/SRC/openSUSE:Factory/cosmic-player/vendor.tar.zst /work/SRC/openSUSE:Factory/.cosmic-player.new.19354/vendor.tar.zst differ: char 7, line 1
1
0
Script 'mail_helper' called by obssrc
Hello community,
here is the log from the commit of package python-tpm2-pytss for openSUSE:Factory checked in at 2024-10-09 22:12:46
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/python-tpm2-pytss (Old)
and /work/SRC/openSUSE:Factory/.python-tpm2-pytss.new.19354 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "python-tpm2-pytss"
Wed Oct 9 22:12:46 2024 rev:6 rq:1206411 version:2.3.0
Changes:
--------
--- /work/SRC/openSUSE:Factory/python-tpm2-pytss/python-tpm2-pytss.changes 2024-02-28 19:48:10.108098780 +0100
+++ /work/SRC/openSUSE:Factory/.python-tpm2-pytss.new.19354/python-tpm2-pytss.changes 2024-10-09 22:13:12.558910172 +0200
@@ -1,0 +2,18 @@
+Wed Oct 9 04:00:45 UTC 2024 - Steve Kowalik <steven.kowalik(a)suse.com>
+
+- Update to version 2.3.0:
+ * FAPI: support exists_ok for create_nv
+ * Compatibility with python-cryptography 42
+ * scripts: update regex for #defines
+ * cryptography: fixes for newer version of cryptography
+ * docs/maintainers: add gpg key details
+ * docs: fix whitespace error
+ * docs: fix error on SECURITY.md not being used
+ * cryptography: add module for using TPM keys with the cryptography module
+ * encoding: add deprecation warning to tools_encdec
+ * internal/crypto: fix _MyRSAPrivateNumbers with cryptograpy >= 42.0.1
+ * test: disable pcr_set_auth_value and pcr_set_auth_policy tests for swtpm
+- Drop patch python-tpm2-pytss-RSAPrivateNumbers.patch, included upstream.
+- Switch to pyproject macros.
+
+-------------------------------------------------------------------
Old:
----
python-tpm2-pytss-RSAPrivateNumbers.patch
tpm2-pytss-2.2.0.tar.gz
New:
----
tpm2-pytss-2.3.0.tar.gz
BETA DEBUG BEGIN:
Old: * test: disable pcr_set_auth_value and pcr_set_auth_policy tests for swtpm
- Drop patch python-tpm2-pytss-RSAPrivateNumbers.patch, included upstream.
- Switch to pyproject macros.
BETA DEBUG END:
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ python-tpm2-pytss.spec ++++++
--- /var/tmp/diff_new_pack.cCZnQ1/_old 2024-10-09 22:13:13.410945696 +0200
+++ /var/tmp/diff_new_pack.cCZnQ1/_new 2024-10-09 22:13:13.410945696 +0200
@@ -17,28 +17,27 @@
%define pythons python3
-%{?!python_module:%define python_module() python-%{**} python3-%{**}}
%define srcname tpm2-pytss
%bcond_with test
Name: python-%{srcname}
-Version: 2.2.0
+Version: 2.3.0
Release: 0
Summary: Python bindings for TSS
License: BSD-2-Clause
URL: https://github.com/tpm2-software/tpm2-pytss
Source: %{srcname}-%{version}.tar.gz
-# PATCH-FIX-UPSTREAM Fix tpm2-pkcs11 build: github.com/tpm2-software/tpm2-pytss/pull/562
-Patch0: python-tpm2-pytss-RSAPrivateNumbers.patch
BuildRequires: %{python_module PyYAML}
BuildRequires: %{python_module asn1crypto}
BuildRequires: %{python_module cffi}
BuildRequires: %{python_module cryptography}
BuildRequires: %{python_module devel}
BuildRequires: %{python_module packaging}
+BuildRequires: %{python_module pip}
BuildRequires: %{python_module pkgconfig}
BuildRequires: %{python_module pycparser}
BuildRequires: %{python_module setuptools_scm}
BuildRequires: %{python_module setuptools}
+BuildRequires: %{python_module wheel}
BuildRequires: fdupes
BuildRequires: pkgconfig
BuildRequires: python-rpm-macros
@@ -49,7 +48,6 @@
Requires: python3-cffi
Requires: python3-cryptography
Requires: python3-packaging
-Requires: python3-setuptools
Requires: pkgconfig(tss2-esys)
Requires: pkgconfig(tss2-fapi)
%if %{with test}
@@ -81,10 +79,10 @@
Version: %{version}
EOF
export CFLAGS="%{optflags}"
-%python_build
+%pyproject_wheel
%install
-%python_install
+%pyproject_install
%python_expand %fdupes %{buildroot}%{$python_sitearch}
%if %{with test}
@@ -95,5 +93,5 @@
%files %{python_files}
%license LICENSE
%{python_sitearch}/tpm2_pytss
-%{python_sitearch}/tpm2_pytss-%{version}*-info
+%{python_sitearch}/tpm2_pytss-%{version}.dist-info
++++++ _service ++++++
--- /var/tmp/diff_new_pack.cCZnQ1/_old 2024-10-09 22:13:13.438946864 +0200
+++ /var/tmp/diff_new_pack.cCZnQ1/_new 2024-10-09 22:13:13.442947030 +0200
@@ -1,7 +1,7 @@
<services>
<service name="tar_scm" mode="disabled">
<param name="filename">tpm2-pytss</param>
- <param name="revision">2.2.0</param>
+ <param name="revision">2.3.0</param>
<param name="scm">git</param>
<param name="submodules">disable</param>
<param name="url">https://github.com/tpm2-software/tpm2-pytss.git</param>
++++++ _servicedata ++++++
--- /var/tmp/diff_new_pack.cCZnQ1/_old 2024-10-09 22:13:13.462947865 +0200
+++ /var/tmp/diff_new_pack.cCZnQ1/_new 2024-10-09 22:13:13.466948031 +0200
@@ -1,6 +1,6 @@
<servicedata>
<service name="tar_scm">
<param name="url">https://github.com/tpm2-software/tpm2-pytss.git</param>
- <param name="changesrevision">b9dae8373baad0f9f09a8d745a063f4960dd9369</param></service></servicedata>
+ <param name="changesrevision">930cee2c45b84ac533c320b883b226edaeda9a38</param></service></servicedata>
(No newline at EOF)
++++++ tpm2-pytss-2.2.0.tar.gz -> tpm2-pytss-2.3.0.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/tpm2-pytss-2.2.0/CHANGELOG.md new/tpm2-pytss-2.3.0/CHANGELOG.md
--- old/tpm2-pytss-2.2.0/CHANGELOG.md 2024-01-06 00:50:04.000000000 +0100
+++ new/tpm2-pytss-2.3.0/CHANGELOG.md 2024-06-27 10:36:21.000000000 +0200
@@ -4,6 +4,23 @@
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
+## 2.3.0 - 2024-06-26
+### Fixed
+- Fix builds for tpm2-tss > 4.0.1.
+- Support newer releases of the cryptography package.
+
+### Added
+- Add module to use TPM keys with the cryptography package.
+- Support for exists_ok for FAPI.create_nv, behaves the same as for FAPI.create_key.
+
+### Changed
+- Support for the tpm2-tools encoder/decoder will be removed in the future and a warning has been added.
+
+## 2.2.1 - 2024-01-07
+### Fixed
+- Fix tests `pcr_set_auth_value` and `pcr_set_auth_policy` tests when running against libtpms-based simulators.
+- Fix integration with cryptography >= 42.0.1
+
## 2.2.0 - 2023-11-30
### Fixed
- Fix pycparse error for __float128.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/tpm2-pytss-2.2.0/docs/api.rst new/tpm2-pytss-2.3.0/docs/api.rst
--- old/tpm2-pytss-2.2.0/docs/api.rst 2024-01-06 00:50:04.000000000 +0100
+++ new/tpm2-pytss-2.3.0/docs/api.rst 2024-06-27 10:36:21.000000000 +0200
@@ -14,3 +14,4 @@
Utility Routines <utils>
TSS PEM Key (OpenSSL) <tsskey>
TSS2_Exception <exception>
+ cryptography <cryptography>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/tpm2-pytss-2.2.0/docs/cryptography.rst new/tpm2-pytss-2.3.0/docs/cryptography.rst
--- old/tpm2-pytss-2.2.0/docs/cryptography.rst 1970-01-01 01:00:00.000000000 +0100
+++ new/tpm2-pytss-2.3.0/docs/cryptography.rst 2024-06-27 10:36:21.000000000 +0200
@@ -0,0 +1,6 @@
+cryptography
+============
+
+.. automodule:: tpm2_pytss.cryptography
+ :members:
+ :undoc-members:
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/tpm2-pytss-2.2.0/docs/maintainers.rst new/tpm2-pytss-2.3.0/docs/maintainers.rst
--- old/tpm2-pytss-2.2.0/docs/maintainers.rst 2024-01-06 00:50:04.000000000 +0100
+++ new/tpm2-pytss-2.3.0/docs/maintainers.rst 2024-06-27 10:36:21.000000000 +0200
@@ -3,5 +3,15 @@
Project Maintainers
-------------------
-- William Roberts <william.c.roberts(a)intel.com>
-- Erik Larsson <who+github(a)cnackers.org>
+.. list-table:: Maintainers
+ :header-rows: 1
+
+ * - Name
+ - Email
+ - GPG Key Id
+ * - William Roberts
+ - bill.c.roberts(a)gmail.com
+ - D91A82DB310E8E07519C298A9877C26A3CD36409
+ * - Erik Larsson
+ - who+github(a)cnackers.org
+ - 2CAF442B36D6D5D0EB82FBEA28630DB7CEE35E6F
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/tpm2-pytss-2.2.0/docs/project.rst new/tpm2-pytss-2.3.0/docs/project.rst
--- old/tpm2-pytss-2.2.0/docs/project.rst 2024-01-06 00:50:04.000000000 +0100
+++ new/tpm2-pytss-2.3.0/docs/project.rst 2024-06-27 10:36:21.000000000 +0200
@@ -7,7 +7,8 @@
:maxdepth: 1
Release Process <release>
- Contributing <contributing>
+ Contributing <contributing>
Maintainers <maintainers>
Code of Conduct <CODE_OF_CONDUCT>
+ Security Practices <SECURITY>
LICENSE <https://github.com/tpm2-software/tpm2-pytss/blob/master/LICENSE>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/tpm2-pytss-2.2.0/scripts/prepare_headers.py new/tpm2-pytss-2.3.0/scripts/prepare_headers.py
--- old/tpm2-pytss-2.2.0/scripts/prepare_headers.py 2024-01-06 00:50:04.000000000 +0100
+++ new/tpm2-pytss-2.3.0/scripts/prepare_headers.py 2024-06-27 10:36:21.000000000 +0200
@@ -32,6 +32,7 @@
# Restructure #defines with ...
s = re.sub("(#define [A-Za-z0-9_]+) +\(\(.*?\) \(.*?\)\)", "\g<1>...", s)
+ s = re.sub("(#define [A-Za-z0-9_]+) +\(\(\(.*?\) .*\)", "\g<1>...", s)
s = re.sub("(#define [A-Za-z0-9_]+) +\(\(.*?\).*?\) ", "\g<1>...", s)
s = re.sub(
"(#define [A-Za-z0-9_]+) .*\n.*?.*\)\)", "\g<1>...", s, flags=re.MULTILINE
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/tpm2-pytss-2.2.0/src/tpm2_pytss/FAPI.py new/tpm2-pytss-2.3.0/src/tpm2_pytss/FAPI.py
--- old/tpm2-pytss-2.2.0/src/tpm2_pytss/FAPI.py 2024-01-06 00:50:04.000000000 +0100
+++ new/tpm2-pytss-2.3.0/src/tpm2_pytss/FAPI.py 2024-06-27 10:36:21.000000000 +0200
@@ -1110,7 +1110,8 @@
type_: Optional[Union[bytes, str]] = None,
policy_path: Optional[Union[bytes, str]] = None,
auth_value: Optional[Union[bytes, str]] = None,
- ) -> None:
+ exists_ok: bool = False,
+ ) -> bool:
"""Create non-volatile (NV) storage on the TPM.
Args:
@@ -1119,16 +1120,23 @@
type_ (bytes or str): Type of the storage area. A combination of `bitfield`, `counter`, `pcr`, `system`, `noda`. Defaults to None.
policy_path (bytes or str): The path to the policy which will be associated with the storage area. Defaults to None.
auth_value (bytes or str): Password to protect the new storage area. Defaults to None.
+ exists_ok (bool): Do not throw a TSS2_Exception if a storage area with the given path already exists. Defaults to False.
Raises:
TSS2_Exception: If Fapi returned an error code.
+
+ Returns:
+ bool: True if the storage area was created. False otherwise.
"""
path = _to_bytes_or_null(path)
type_ = _to_bytes_or_null(type_)
policy_path = _to_bytes_or_null(policy_path)
auth_value = _to_bytes_or_null(auth_value)
ret = lib.Fapi_CreateNv(self._ctx, path, type_, size, policy_path, auth_value)
- _chkrc(ret)
+ _chkrc(
+ ret, acceptable=lib.TSS2_FAPI_RC_PATH_ALREADY_EXISTS if exists_ok else None
+ )
+ return ret == lib.TPM2_RC_SUCCESS
def nv_read(self, path: Union[bytes, str]) -> Tuple[bytes, str]:
"""Read from non-volatile (NV) TPM storage.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/tpm2-pytss-2.2.0/src/tpm2_pytss/cryptography.py new/tpm2-pytss-2.3.0/src/tpm2_pytss/cryptography.py
--- old/tpm2-pytss-2.2.0/src/tpm2_pytss/cryptography.py 1970-01-01 01:00:00.000000000 +0100
+++ new/tpm2-pytss-2.3.0/src/tpm2_pytss/cryptography.py 2024-06-27 10:36:21.000000000 +0200
@@ -0,0 +1,430 @@
+# SPDX-License-Identifier: BSD-2
+
+from .ESAPI import ESAPI
+from .constants import ESYS_TR, TPM2_ALG, TPMA_OBJECT, TPM2_ST, TPM2_RH
+from .types import (
+ TPMT_RSA_DECRYPT,
+ TPM2B_DATA,
+ TPMT_SIG_SCHEME,
+ TPMT_TK_HASHCHECK,
+ TPM2B_ECC_POINT,
+ TPMT_ASYM_SCHEME,
+ TPMT_ECC_SCHEME,
+ TPMU_SIG_SCHEME,
+)
+from .internal.crypto import (
+ public_to_key,
+ _get_curve,
+ _rsa_decrypt_padding_to_scheme,
+ _rsa_sign_padding_to_scheme,
+ _int_to_buffer,
+ _ecc_sign_algorithm_to_scheme,
+ _get_digest,
+)
+from typing import Union
+from cryptography.hazmat.primitives.asymmetric import rsa, ec, padding
+from cryptography.hazmat.primitives import hashes
+from cryptography.hazmat.primitives.asymmetric.utils import Prehashed
+from cryptography.hazmat.primitives.serialization import (
+ Encoding,
+ PrivateFormat,
+ KeySerializationEncryption,
+)
+
+
+def _compare_schemes(
+ in_scheme: Union[TPMT_RSA_DECRYPT, TPMT_SIG_SCHEME], key_scheme: TPMT_SIG_SCHEME
+) -> None:
+ """Compare a keys scheme and any scheme passed to sign/decrypt functions.
+
+ Raises:
+ ValueError: On any scheme mismatch.
+ """
+ if key_scheme.scheme == TPM2_ALG.NULL:
+ return
+ if in_scheme.scheme != key_scheme.scheme:
+ raise ValueError(
+ f"invalid scheme, scheme has {in_scheme.scheme} but key requires {key_scheme.scheme}"
+ )
+ if in_scheme.scheme == TPM2_ALG.RSAES:
+ return
+ if isinstance(in_scheme.details, TPMU_SIG_SCHEME):
+ halg = in_scheme.details.any.hashAlg
+ else:
+ halg = in_scheme.details.anySig.hashAlg
+ if halg != key_scheme.details.anySig.hashAlg:
+ raise ValueError(
+ f"digest algorithm mismatch, scheme has {halg} but key requires {key_scheme.details.anySig.hashAlg}"
+ )
+
+
+class tpm_rsa_private_key(rsa.RSAPrivateKey):
+ """Interface to a TPM RSA key for use with the cryptography module.
+
+ Args:
+ ectx (ESAPI): The ESAPI instance to use.
+ handle (ESYS_TR): The key handle.
+ session (ESYS_TR): The session to authorize usage of the key, default is ESYS_TR.PASSWORD
+
+ Notes:
+ It is recommended to use the :func:`get_digest_algorithm`, :func:`get_decryption_padding` and :func:`get_signature_padding` methods for highest compatibility.
+
+ Raises:
+ ValueError: If the key has the restricted bit set or if the handle doesn't reference an RSA key.
+ """
+
+ def __init__(
+ self, ectx: ESAPI, handle: ESYS_TR, session: ESYS_TR = ESYS_TR.PASSWORD
+ ):
+ self._handle = handle
+ self._session = session
+ self._ectx = ectx
+ public, _, _ = ectx.read_public(handle)
+ self._public = public.publicArea
+ if self._public.type != TPM2_ALG.RSA:
+ raise ValueError(
+ f"invalid key type, expected {TPM2_ALG.RSA}, got {self._public.type}"
+ )
+ if self._public.objectAttributes & TPMA_OBJECT.RESTRICTED:
+ raise ValueError(
+ "TPM key does not allow generic signing and/or decryption (object attribute restricted is set)"
+ )
+
+ def decrypt(self, ciphertext: bytes, padding: padding) -> bytes:
+ """Implements the decrypt interface.
+
+ See :py:meth:`~cryptography.hazmat.primitives.asymmetric.rsa.RSAPrivateKey.decrypt` for documentation.
+
+ Notes:
+ If a non-empty label is used with OAEP padding, this will fail.
+
+ Raises:
+ ValueError: if the requested padding isn't supported by the key.
+ """
+ if not self._public.objectAttributes & TPMA_OBJECT.DECRYPT:
+ raise ValueError(
+ "TPM key does not allow decryption (object attribute decrypt is not set)"
+ )
+ scheme = TPMT_RSA_DECRYPT()
+ _rsa_decrypt_padding_to_scheme(padding, scheme)
+ _compare_schemes(scheme, self._public.parameters.rsaDetail.scheme)
+ data2b = self._ectx.rsa_decrypt(
+ self._handle, ciphertext, scheme, TPM2B_DATA(), session1=self._session
+ )
+ return bytes(data2b)
+
+ def public_key(self) -> rsa.RSAPublicKey:
+ """Get the public key.
+
+ Returns: the public part of the RSA key as a :py:class:`~cryptography.hazmat.primitives.asymmetric.rsa.RSAPublicKey`.
+ """
+ return public_to_key(self._public)
+
+ @property
+ def key_size(self) -> int:
+ """The RSA key size"""
+ return self._public.parameters.rsaDetail.keyBits
+
+ def get_digest_algorithm(self) -> hashes.HashAlgorithm:
+ """Get an usable digest algorithm for use with the key.
+
+ If any scheme with a specified digest algorithm is specified return that algorithm.
+ Otherwise the name digest algorithm is returned.
+
+ The returned digest algorithm can be used with different cryptography functions.
+
+ Returns:
+ The digest algorithm as a :py:class:`~cryptography.hazmat.primitives.hashes.HashAlgorithm` subclass.
+
+ Raises:
+ ValueError: If the digest algorithm is not supported.
+ """
+ if self._public.parameters.rsaDetail.scheme.scheme in (
+ TPM2_ALG.RSASSA,
+ TPM2_ALG.RSAPSS,
+ TPM2_ALG.OAEP,
+ ):
+ tpm_alg = self._public.parameters.rsaDetail.scheme.details.anySig.hashAlg
+ else:
+ tpm_alg = self._public.nameAlg
+ halg = _get_digest(tpm_alg)
+ if halg is None:
+ raise ValueError(f"unsupported digest algorithm {tpm_alg}")
+ return halg
+
+ def get_decryption_padding(self) -> padding.AsymmetricPadding:
+ """Get a padding configuration for use with the decrypt method.
+
+ If the key has a scheme specified, use that scheme.
+ Otherwise, use OAEP as the default.
+
+ Returns:
+ An instance of :py:class:`~cryptography.hazmat.primitives.asymmetric.padding.AsymmetricPadding`.
+
+ Raises:
+ ValueError: If the either the scheme or digest algorithm is unsupported.
+ """
+ if self._public.parameters.asymDetail.scheme.scheme == TPM2_ALG.NULL:
+ scheme = TPMT_ASYM_SCHEME(scheme=TPM2_ALG.OAEP)
+ scheme.details.anySig.hashAlg = self._public.nameAlg
+ else:
+ scheme = self._public.parameters.asymDetail.scheme
+ if scheme.scheme == TPM2_ALG.OAEP:
+ algorithm = self.get_digest_algorithm()
+ decrypt_padding = padding.OAEP(
+ mgf=padding.MGF1(algorithm=algorithm()),
+ algorithm=algorithm(),
+ label=b"",
+ )
+ elif scheme.scheme == TPM2_ALG.RSAES:
+ decrypt_padding = padding.PKCS1v15()
+ else:
+ raise ValueError(f"unsupported decryption scheme {scheme.scheme}")
+ return decrypt_padding
+
+ def get_signature_padding(self) -> padding.AsymmetricPadding:
+ """Get a padding configuration for use with the sign method.
+
+ If the key has a scheme specified, use that scheme.
+ Otherwise, use PSS as the default.
+
+ Returns:
+ An instance of :py:class:`~cryptography.hazmat.primitives.asymmetric.padding.AsymmetricPadding`.
+
+ Raises: ValueError if the either the scheme or digest algorithm is unsupported.
+ """
+ if self._public.parameters.asymDetail.scheme.scheme == TPM2_ALG.NULL:
+ scheme = TPMT_ASYM_SCHEME(scheme=TPM2_ALG.RSAPSS)
+ scheme.details.anySig.hashAlg = self._public.nameAlg
+ else:
+ scheme = self._public.parameters.asymDetail.scheme
+ if scheme.scheme == TPM2_ALG.RSAPSS:
+ algorithm = self.get_digest_algorithm()
+ sign_padding = padding.PSS(
+ mgf=padding.MGF1(algorithm=algorithm()),
+ salt_length=padding.PSS.DIGEST_LENGTH,
+ )
+ elif scheme.scheme == TPM2_ALG.RSASSA:
+ sign_padding = padding.PKCS1v15()
+ else:
+ raise ValueError(f"unsupported signature scheme {scheme.scheme}")
+ return sign_padding
+
+ def sign(
+ self,
+ data: bytes,
+ padding: padding,
+ algorithm: Union[hashes.HashAlgorithm, Prehashed],
+ ) -> bytes:
+ """Implements the sign interface.
+
+ See :py:meth:`~cryptography.hazmat.primitives.asymmetric.rsa.RSAPrivateKey.sign` for documentationen.
+
+ Notes:
+ For PSS padding, the salt length should be set to the length of the digest as that is the only setup the TPM uses.
+
+ Raises:
+ ValueError: If the requested padding isn't supported by the key or the sign_encrypt bit isn't set.
+ """
+ if not self._public.objectAttributes & TPMA_OBJECT.SIGN_ENCRYPT:
+ raise ValueError(
+ "TPM key does not allow signing (object attribute sign_encrypt is not set)"
+ )
+ if isinstance(algorithm, Prehashed):
+ raise ValueError("Prehashed data is not supported")
+ scheme = TPMT_SIG_SCHEME()
+ _rsa_sign_padding_to_scheme(padding, type(algorithm), scheme)
+ _compare_schemes(scheme, self._public.parameters.rsaDetail.scheme)
+ h = hashes.Hash(algorithm)
+ h.update(data)
+ digest = h.finalize()
+ validation = TPMT_TK_HASHCHECK(tag=TPM2_ST.HASHCHECK, hierarchy=TPM2_RH.NULL)
+ tpm_sig = self._ectx.sign(
+ self._handle, digest, scheme, validation, session1=self._session
+ )
+ return bytes(tpm_sig)
+
+ def private_numbers(self) -> None:
+ """Always raises a NotImplementedError."""
+ raise NotImplementedError()
+
+ def private_bytes(
+ self,
+ encoding: Encoding,
+ format: PrivateFormat,
+ encryption_algorithm: KeySerializationEncryption,
+ ) -> None:
+ """Always raises a NotImplementedError."""
+ raise NotImplementedError()
+
+
+class tpm_ecc_private_key(ec.EllipticCurvePrivateKey):
+ """Interface to a TPM ECC key for use with the cryptography module.
+
+ Args:
+ ectx (ESAPI): The ESAPI instance to use.
+ handle (ESYS_TR): The key handle.
+ session (ESYS_TR): The session to authorize usage of the key, default is ESYS_TR.PASSWORD
+
+ Notes:
+ It is recommended to use the :func:`get_digest_algorithm` and :func:`get_signature_algorithm` methods for highest compatibility.
+
+ Raises:
+ ValueError: If the key has the restricted bit set, the curve isn't supported or if the handle doesn't reference an ECC key.
+ """
+
+ def __init__(
+ self, ectx: ESAPI, handle: ESYS_TR, session: ESYS_TR = ESYS_TR.PASSWORD
+ ):
+ self._handle = handle
+ self._session = session
+ self._ectx = ectx
+ public, _, _ = ectx.read_public(handle)
+ self._public = public.publicArea
+ if self._public.type != TPM2_ALG.ECC:
+ raise ValueError(
+ f"invalid key type, expected {TPM2_ALG.ECC}, got {self._public.type}"
+ )
+ if self._public.objectAttributes & TPMA_OBJECT.RESTRICTED:
+ raise ValueError(
+ "TPM key does not allow generic signing and/or decryption (object attribute restricted is set)"
+ )
+ cid = _get_curve(self._public.parameters.eccDetail.curveID)
+ if cid is None:
+ raise ValueError(
+ f"unsupported curve {self._public.parameters.eccDetail.curveID}"
+ )
+ self._curve = cid
+
+ def exchange(
+ self, algorithm: ec.ECDH, peer_public_key: ec.EllipticCurvePublicKey
+ ) -> bytes:
+ """Implements the exchange interface.
+
+ See :py:meth:`~cryptography.hazmat.primitives.asymmetric.ec.EllipticCurvePrivateKey.exchange` for documentationen.
+
+ Raises:
+ ValueError: If the curves does not match or the decrypt bit isn't set.
+ """
+ if not self._public.objectAttributes & TPMA_OBJECT.DECRYPT:
+ raise ValueError(
+ "TPM key does not allow ECDH key exchange (object attribute decrypt is not set)"
+ )
+ if type(peer_public_key.curve) != type(self.curve):
+ raise ValueError(
+ f"curve mismatch for peer key, got {peer_public_key.curve.name}, expected {self.curve.name}"
+ )
+ scheme = TPMT_SIG_SCHEME(scheme=TPM2_ALG.ECDH)
+ _compare_schemes(scheme, self._public.parameters.eccDetail.scheme)
+ in_point = TPM2B_ECC_POINT()
+ nums = peer_public_key.public_numbers()
+ _int_to_buffer(nums.x, in_point.point.x)
+ _int_to_buffer(nums.y, in_point.point.y)
+
+ out_point = self._ectx.ecdh_zgen(self._handle, in_point, session1=self._session)
+ return bytes(out_point.point.x)
+
+ def public_key(self) -> ec.EllipticCurvePublicKey:
+ """Get the public key.
+
+ Returns: the public part of the ECC key as a :py:class:`~cryptography.hazmat.primitives.asymmetric.ec.EllipticCurvePublicKey`
+ """
+ return public_to_key(self._public)
+
+ def get_digest_algorithm(self) -> hashes.HashAlgorithm:
+ """Get an usable digest algorithm for use with the key.
+
+ If any scheme with a specified digest algorithm is specified return that algorithm.
+ Otherwise the name digest algorithm is returned.
+
+ The returned digest algorithm can be used with different cryptography functions.
+
+ Returns:
+ The digest algorithm as a :py:class:`~cryptography.hazmat.primitives.hashes.HashAlgorithm` subclass.
+
+ Raises:
+ ValueError: If the digest algorithm is not supported.
+ """
+ if self._public.parameters.eccDetail.scheme.scheme == TPM2_ALG.ECDSA:
+ tpm_alg = self._public.parameters.eccDetail.scheme.details.anySig.hashAlg
+ else:
+ tpm_alg = self._public.nameAlg
+ halg = _get_digest(tpm_alg)
+ if halg is None:
+ raise ValueError(f"unsupported digest algorithm {tpm_alg}")
+ return halg
+
+ def get_signature_algorithm(self) -> ec.EllipticCurveSignatureAlgorithm:
+ """Get a padding configuration for use with the sign method.
+
+ If the key has a scheme specified, use that scheme.
+ Otherwise, use ECDSA as the default
+
+ Returns: an instance of :py:class:`~cryptography.hazmat.primitives.asymmetric.ec.EllipticCurveSignatureAlgorithm`
+
+ Raises:
+ ValueError: If the either the scheme or digest algorithm is unsupported.
+ """
+ if self._public.parameters.eccDetail.scheme.scheme == TPM2_ALG.NULL:
+ scheme = TPMT_ECC_SCHEME(scheme=TPM2_ALG.ECDSA)
+ scheme.details.anySig.hashAlg = self._public.nameAlg
+ else:
+ scheme = self._public.parameters.eccDetail.scheme
+ if scheme.scheme == TPM2_ALG.ECDSA:
+ algorithm = self.get_digest_algorithm()
+ sig_alg = ec.ECDSA(algorithm())
+ else:
+ raise ValueError(f"unsupported signature scheme {scheme.scheme}")
+ return sig_alg
+
+ def sign(
+ self, data: bytes, signature_algorithm: ec.EllipticCurveSignatureAlgorithm
+ ) -> bytes:
+ """Implements the sign interface.
+
+ See :py:meth:`~cryptography.hazmat.primitives.asymmetric.ec.EllipticCurvePrivateKey.sign`: for documentation.
+
+ Raises:
+ ValueError: if the requested signature algorithm isn't supported by the key or the sign_encrypt bit isn't set.
+ """
+ if not self._public.objectAttributes & TPMA_OBJECT.SIGN_ENCRYPT:
+ raise ValueError(
+ "TPM key does not allow signing (object attribute sign_encrypt is not set)"
+ )
+ algorithm = signature_algorithm.algorithm
+ if isinstance(algorithm, Prehashed):
+ raise ValueError("Prehashed data is not supported")
+ scheme = TPMT_SIG_SCHEME()
+ _ecc_sign_algorithm_to_scheme(signature_algorithm, scheme)
+ _compare_schemes(scheme, self._public.parameters.eccDetail.scheme)
+ h = hashes.Hash(algorithm)
+ h.update(data)
+ digest = h.finalize()
+ validation = TPMT_TK_HASHCHECK(tag=TPM2_ST.HASHCHECK, hierarchy=TPM2_RH.NULL)
+ tpm_sig = self._ectx.sign(
+ self._handle, digest, scheme, validation, session1=self._session
+ )
+ return bytes(tpm_sig)
+
+ @property
+ def curve(self) -> ec.EllipticCurve:
+ """The ECC curve."""
+ return self._curve()
+
+ @property
+ def key_size(self) -> int:
+ """The ECC key size."""
+ return self.public_key().key_size
+
+ def private_numbers(self) -> None:
+ """Always raises a NotImplementedError."""
+ raise NotImplementedError()
+
+ def private_bytes(
+ self,
+ encoding: Encoding,
+ format: PrivateFormat,
+ encryption_algorithm: KeySerializationEncryption,
+ ) -> None:
+ """Always raises a NotImplementedError."""
+ raise NotImplementedError()
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/tpm2-pytss-2.2.0/src/tpm2_pytss/encoding.py new/tpm2-pytss-2.3.0/src/tpm2_pytss/encoding.py
--- old/tpm2-pytss-2.2.0/src/tpm2_pytss/encoding.py 2024-01-06 00:50:04.000000000 +0100
+++ new/tpm2-pytss-2.3.0/src/tpm2_pytss/encoding.py 2024-06-27 10:36:21.000000000 +0200
@@ -80,6 +80,7 @@
)
import yaml
import collections.abc
+import warnings
class base_encdec(object):
@@ -825,6 +826,14 @@
"""Encode TPM types in the same format as tpm2-tools
"""
+ def __init__(self):
+ warnings.warn(
+ "The tools_encdec class will be deprecated in the future, "
+ "see https://github.com/tpm2-software/tpm2-pytss/issues/557",
+ category=PendingDeprecationWarning,
+ )
+ super().__init__()
+
def encode_friendly_int_nv(self, val: TPM_FRIENDLY_INT) -> Dict[str, str]:
d = {
"friendly": str(val),
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/tpm2-pytss-2.2.0/src/tpm2_pytss/internal/crypto.py new/tpm2-pytss-2.3.0/src/tpm2_pytss/internal/crypto.py
--- old/tpm2-pytss-2.2.0/src/tpm2_pytss/internal/crypto.py 2024-01-06 00:50:04.000000000 +0100
+++ new/tpm2-pytss-2.3.0/src/tpm2_pytss/internal/crypto.py 2024-06-27 10:36:21.000000000 +0200
@@ -23,8 +23,9 @@
from cryptography.hazmat.primitives.ciphers import modes, Cipher, CipherAlgorithm
from cryptography.hazmat.backends import default_backend
from cryptography.exceptions import UnsupportedAlgorithm, InvalidSignature
-from typing import Tuple, Type
+from typing import Tuple, Type, Any
import secrets
+import inspect
import sys
_curvetable = (
@@ -84,6 +85,15 @@
return None
+def _get_pyca_digest(digest_type):
+ for (algid, d) in _digesttable:
+ if inspect.isclass(digest_type) and issubclass(digest_type, d):
+ return algid
+ elif isinstance(digest_type, d):
+ return algid
+ return None
+
+
def _get_alg(alg):
for (algid, a) in _algtable:
if algid == alg:
@@ -220,7 +230,7 @@
return key
-class _MyRSAPrivateNumbers(rsa.RSAPrivateNumbers):
+class _MyRSAPrivateNumbers:
def __init__(self, p: int, n: int, e: int, pubnums: rsa.RSAPublicNumbers):
q = n // p
@@ -231,7 +241,12 @@
dmq1 = rsa.rsa_crt_dmq1(d, q)
iqmp = rsa.rsa_crt_iqmp(p, q)
- super().__init__(p, q, d, dmp1, dmq1, iqmp, pubnums)
+ self._private_numbers = rsa.RSAPrivateNumbers(
+ p, q, d, dmp1, dmq1, iqmp, pubnums
+ )
+
+ def private_key(self, *args: Any, **kwargs: Any) -> rsa.RSAPrivateKey:
+ return self._private_numbers.private_key(*args, **kwargs)
@staticmethod
def _xgcd(a: int, b: int) -> Tuple[int, int, int]:
@@ -251,15 +266,7 @@
#
@staticmethod
def _modinv(a, m):
-
- if sys.version_info < (3, 8):
- g, x, y = _MyRSAPrivateNumbers._xgcd(a, m)
- if g != 1:
- raise Exception("modular inverse does not exist")
- else:
- return x % m
- else:
- return pow(a, -1, m)
+ return pow(a, -1, m)
@staticmethod
def _generate_d(p, q, e, n):
@@ -644,3 +651,60 @@
decr = ciph.decryptor()
plaintextdata = decr.update(data) + decr.finalize()
return plaintextdata
+
+
+def _rsa_decrypt_padding_to_scheme(
+ decrypt_padding: padding.AsymmetricPadding, scheme: "TPMT_RSA_DECRYPT"
+):
+ if isinstance(decrypt_padding, padding.OAEP):
+ if hasattr(decrypt_padding, "algorithm"):
+ alg = decrypt_padding.algorithm
+ elif hasattr(decrypt_padding, "_algorithm"):
+ # This is an ugly hack, but until cryptography 42 is released it's needed.
+ alg = type(decrypt_padding._algorithm)
+ else:
+ raise ValueError("unable to get hash algorithm from OAEP padding")
+ scheme.scheme = TPM2_ALG.OAEP
+ halg = _get_pyca_digest(alg)
+ if halg is None:
+ raise ValueError(f"unsupported digest algorithm {alg}")
+ scheme.details.oaep.hashAlg = halg
+ elif isinstance(decrypt_padding, padding.PKCS1v15):
+ scheme.scheme = TPM2_ALG.RSAES
+ else:
+ raise ValueError(f"unsupported RSA decryption scheme: {decrypt_padding}")
+ return
+
+
+def _rsa_sign_padding_to_scheme(
+ sign_padding: padding.AsymmetricPadding,
+ algorithm: hashes.HashAlgorithm,
+ scheme: "TPMT_SIG_SCHEME",
+):
+ if isinstance(sign_padding, padding.PSS):
+ scheme.scheme = TPM2_ALG.RSAPSS
+
+ elif isinstance(sign_padding, padding.PKCS1v15):
+ scheme.scheme = TPM2_ALG.RSASSA
+ else:
+ raise ValueError(f"unsupported RSA signature scheme: {sign_padding}")
+ halg = _get_pyca_digest(algorithm)
+ if halg is None:
+ raise ValueError(f"unsupported digest algorithm {algorithm}")
+ scheme.details.any.hashAlg = halg
+ return
+
+
+def _ecc_sign_algorithm_to_scheme(
+ sign_alg: ec.EllipticCurveSignatureAlgorithm, scheme: "TPMT_SIG_SCHEME"
+):
+ if isinstance(sign_alg, ec.ECDSA):
+ scheme.scheme = TPM2_ALG.ECDSA
+ algorithm = sign_alg.algorithm
+ else:
+ raise ValueError(f"unsupported ECC signature scheme: {sign_alg}")
+ halg = _get_pyca_digest(type(algorithm))
+ if halg is None:
+ raise ValueError(f"unsupported digest algorithm {algorithm}")
+ scheme.details.any.hashAlg = halg
+ return
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/tpm2-pytss-2.2.0/test/test_crypto.py new/tpm2-pytss-2.3.0/test/test_crypto.py
--- old/tpm2-pytss-2.2.0/test/test_crypto.py 2024-01-06 00:50:04.000000000 +0100
+++ new/tpm2-pytss-2.3.0/test/test_crypto.py 2024-06-27 10:36:21.000000000 +0200
@@ -8,6 +8,7 @@
from base64 import b64decode
from hashlib import sha256, sha384
from cryptography.hazmat.primitives.serialization import load_pem_public_key
+from cryptography.exceptions import UnsupportedAlgorithm
rsa_private_key = b"""
-----BEGIN RSA PRIVATE KEY-----
@@ -206,7 +207,7 @@
self._has_sect163r2 = True
try:
load_pem_public_key(ecc_bad_curve)
- except ValueError:
+ except (ValueError, UnsupportedAlgorithm):
self._has_sect163r2 = False
def test_public_from_pem_rsa(self):
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/tpm2-pytss-2.2.0/test/test_cryptography.py new/tpm2-pytss-2.3.0/test/test_cryptography.py
--- old/tpm2-pytss-2.2.0/test/test_cryptography.py 1970-01-01 01:00:00.000000000 +0100
+++ new/tpm2-pytss-2.3.0/test/test_cryptography.py 2024-06-27 10:36:21.000000000 +0200
@@ -0,0 +1,504 @@
+#!/usr/bin/python3 -u
+# SPDX-License-Identifier: BSD-2
+
+from .TSS2_BaseTest import TSS2_EsapiTest
+from tpm2_pytss.constants import TPMA_OBJECT, TPM2_ECC, TPM2_ALG
+from tpm2_pytss.types import TPM2B_PUBLIC
+from tpm2_pytss.cryptography import tpm_rsa_private_key, tpm_ecc_private_key
+from cryptography.hazmat.primitives.asymmetric.padding import OAEP, MGF1, PKCS1v15, PSS
+from cryptography.hazmat.primitives.asymmetric import ec
+from cryptography.hazmat.primitives import hashes
+from cryptography.hazmat.primitives.asymmetric.utils import Prehashed
+from cryptography import x509
+import datetime
+
+
+rsa_template = TPM2B_PUBLIC.parse(
+ "rsa2048",
+ objectAttributes=TPMA_OBJECT.DECRYPT
+ | TPMA_OBJECT.SIGN_ENCRYPT
+ | TPMA_OBJECT.FIXEDTPM
+ | TPMA_OBJECT.FIXEDPARENT
+ | TPMA_OBJECT.SENSITIVEDATAORIGIN
+ | TPMA_OBJECT.USERWITHAUTH,
+)
+
+ecc_template = TPM2B_PUBLIC.parse(
+ "ecc256",
+ objectAttributes=TPMA_OBJECT.DECRYPT
+ | TPMA_OBJECT.SIGN_ENCRYPT
+ | TPMA_OBJECT.FIXEDTPM
+ | TPMA_OBJECT.FIXEDPARENT
+ | TPMA_OBJECT.SENSITIVEDATAORIGIN
+ | TPMA_OBJECT.USERWITHAUTH,
+)
+
+
+class TestCryptography(TSS2_EsapiTest):
+ def test_rsa_key(self):
+ handle, _, _, _, _ = self.ectx.create_primary(
+ in_sensitive=None, in_public=rsa_template
+ )
+ privkey = tpm_rsa_private_key(self.ectx, handle)
+ self.assertEqual(privkey.key_size, 2048)
+
+ with self.assertRaises(NotImplementedError) as e:
+ privkey.private_numbers()
+
+ with self.assertRaises(NotImplementedError) as e:
+ privkey.private_bytes(encoding=None, format=None, encryption_algorithm=None)
+
+ def test_rsa_decrypt_oaep(self):
+ handle, _, _, _, _ = self.ectx.create_primary(
+ in_sensitive=None, in_public=rsa_template
+ )
+ privkey = tpm_rsa_private_key(self.ectx, handle)
+ pubkey = privkey.public_key()
+
+ padding = privkey.get_decryption_padding()
+ encrypted_data = pubkey.encrypt(b"falafel", padding)
+
+ decrypted_data = privkey.decrypt(encrypted_data, padding)
+ self.assertEqual(decrypted_data, b"falafel")
+
+ def test_rsa_decrypt_pkcs1v15(self):
+ rsaes = TPM2B_PUBLIC(rsa_template)
+ rsaes.publicArea.parameters.rsaDetail.scheme.scheme = TPM2_ALG.RSAES
+ rsaes.publicArea.objectAttributes ^= TPMA_OBJECT.SIGN_ENCRYPT
+ handle, _, _, _, _ = self.ectx.create_primary(
+ in_sensitive=None, in_public=rsaes
+ )
+ privkey = tpm_rsa_private_key(self.ectx, handle)
+ pubkey = privkey.public_key()
+
+ padding = privkey.get_decryption_padding()
+ encrypted_data = pubkey.encrypt(b"falafel", padding)
+
+ decrypted_data = privkey.decrypt(encrypted_data, padding)
+ self.assertEqual(decrypted_data, b"falafel")
+
+ def test_rsa_key_bad_type(self):
+ handle, _, _, _, _ = self.ectx.create_primary(
+ in_sensitive=None, in_public=ecc_template
+ )
+ with self.assertRaises(ValueError) as e:
+ tpm_rsa_private_key(self.ectx, handle)
+ self.assertEqual(str(e.exception), "invalid key type, expected rsa, got ecc")
+
+ def test_rsa_key_restricted(self):
+ handle, _, _, _, _ = self.ectx.create_primary(
+ in_sensitive=None, in_public="rsa2048"
+ )
+ with self.assertRaises(ValueError) as e:
+ tpm_rsa_private_key(self.ectx, handle)
+ self.assertEqual(
+ str(e.exception),
+ "TPM key does not allow generic signing and/or decryption (object attribute restricted is set)",
+ )
+
+ def test_rsa_sign_pss(self):
+ handle, _, _, _, _ = self.ectx.create_primary(
+ in_sensitive=None, in_public=rsa_template
+ )
+ privkey = tpm_rsa_private_key(self.ectx, handle)
+ pubkey = privkey.public_key()
+
+ padding = privkey.get_signature_padding()
+ halg = privkey.get_digest_algorithm()
+
+ sig = privkey.sign(b"falafel", padding, halg())
+ pubkey.verify(sig, b"falafel", padding, halg())
+
+ def test_rsa_sign_pkcs1v15(self):
+ rsassa = TPM2B_PUBLIC(rsa_template)
+ rsassa.publicArea.parameters.rsaDetail.scheme.scheme = TPM2_ALG.RSASSA
+ rsassa.publicArea.parameters.rsaDetail.scheme.details.anySig.hashAlg = (
+ TPM2_ALG.SHA384
+ )
+ rsassa.publicArea.objectAttributes ^= TPMA_OBJECT.DECRYPT
+
+ handle, _, _, _, _ = self.ectx.create_primary(
+ in_sensitive=None, in_public=rsassa
+ )
+ privkey = tpm_rsa_private_key(self.ectx, handle)
+ pubkey = privkey.public_key()
+
+ padding = privkey.get_signature_padding()
+ halg = privkey.get_digest_algorithm()
+
+ sig = privkey.sign(b"falafel", padding, halg())
+ pubkey.verify(sig, b"falafel", padding, halg())
+
+ def test_rsa_no_decrypt(self):
+ rsa_no_decrypt = TPM2B_PUBLIC(rsa_template)
+ rsa_no_decrypt.publicArea.objectAttributes ^= TPMA_OBJECT.DECRYPT
+ handle, _, _, _, _ = self.ectx.create_primary(
+ in_sensitive=None, in_public=rsa_no_decrypt
+ )
+ privkey = tpm_rsa_private_key(self.ectx, handle)
+
+ padding = PKCS1v15()
+ with self.assertRaises(ValueError) as e:
+ privkey.decrypt(b"falafel", padding)
+ self.assertEqual(
+ str(e.exception),
+ "TPM key does not allow decryption (object attribute decrypt is not set)",
+ )
+
+ def test_rsa_no_sign(self):
+ rsa_no_sign = TPM2B_PUBLIC(rsa_template)
+ rsa_no_sign.publicArea.objectAttributes ^= TPMA_OBJECT.SIGN_ENCRYPT
+ handle, _, _, _, _ = self.ectx.create_primary(
+ in_sensitive=None, in_public=rsa_no_sign
+ )
+ privkey = tpm_rsa_private_key(self.ectx, handle)
+
+ padding = PKCS1v15()
+ halg = privkey.get_digest_algorithm()
+ with self.assertRaises(ValueError) as e:
+ privkey.sign(b"falafel", padding, halg())
+ self.assertEqual(
+ str(e.exception),
+ "TPM key does not allow signing (object attribute sign_encrypt is not set)",
+ )
+
+ def test_rsa_prehashed(self):
+ handle, _, _, _, _ = self.ectx.create_primary(
+ in_sensitive=None, in_public=rsa_template
+ )
+ privkey = tpm_rsa_private_key(self.ectx, handle)
+
+ padding = PKCS1v15()
+ halg = privkey.get_digest_algorithm()
+ with self.assertRaises(ValueError) as e:
+ privkey.sign(b"falafel", padding, Prehashed(halg()))
+ self.assertEqual(str(e.exception), "Prehashed data is not supported")
+
+ def test_rsa_unsupported_sig_scheme(self):
+ rsaes = TPM2B_PUBLIC(rsa_template)
+ rsaes.publicArea.parameters.rsaDetail.scheme.scheme = TPM2_ALG.RSAES
+ rsaes.publicArea.objectAttributes ^= TPMA_OBJECT.SIGN_ENCRYPT
+ handle, _, _, _, _ = self.ectx.create_primary(
+ in_sensitive=None, in_public=rsaes
+ )
+ privkey = tpm_rsa_private_key(self.ectx, handle)
+
+ with self.assertRaises(ValueError) as e:
+ privkey.get_signature_padding()
+ self.assertEqual(str(e.exception), "unsupported signature scheme rsaes")
+
+ def test_rsa_unsupported_decrypt_scheme(self):
+ rsassa = TPM2B_PUBLIC(rsa_template)
+ rsassa.publicArea.parameters.rsaDetail.scheme.scheme = TPM2_ALG.RSASSA
+ rsassa.publicArea.objectAttributes ^= TPMA_OBJECT.DECRYPT
+ handle, _, _, _, _ = self.ectx.create_primary(
+ in_sensitive=None, in_public=rsassa
+ )
+ privkey = tpm_rsa_private_key(self.ectx, handle)
+
+ with self.assertRaises(ValueError) as e:
+ privkey.get_decryption_padding()
+ self.assertEqual(str(e.exception), "unsupported decryption scheme rsassa")
+
+ def test_ecc_key(self):
+ handle, _, _, _, _ = self.ectx.create_primary(
+ in_sensitive=None, in_public=ecc_template
+ )
+ privkey = tpm_ecc_private_key(self.ectx, handle)
+ self.assertEqual(privkey.key_size, 256)
+ self.assertIsInstance(privkey.curve, ec.SECP256R1)
+
+ with self.assertRaises(NotImplementedError) as e:
+ privkey.private_numbers()
+
+ with self.assertRaises(NotImplementedError) as e:
+ privkey.private_bytes(encoding=None, format=None, encryption_algorithm=None)
+
+ def test_ecc_key_bad_type(self):
+ handle, _, _, _, _ = self.ectx.create_primary(
+ in_sensitive=None, in_public=rsa_template
+ )
+ with self.assertRaises(ValueError) as e:
+ tpm_ecc_private_key(self.ectx, handle)
+ self.assertEqual(str(e.exception), "invalid key type, expected ecc, got rsa")
+
+ def test_ecc_key_restricted(self):
+ handle, _, _, _, _ = self.ectx.create_primary(
+ in_sensitive=None, in_public="ecc256"
+ )
+ with self.assertRaises(ValueError) as e:
+ tpm_ecc_private_key(self.ectx, handle)
+ self.assertEqual(
+ str(e.exception),
+ "TPM key does not allow generic signing and/or decryption (object attribute restricted is set)",
+ )
+
+ def test_ecc_exchange(self):
+ handle, _, _, _, _ = self.ectx.create_primary(
+ in_sensitive=None, in_public=ecc_template
+ )
+ privkey = tpm_ecc_private_key(self.ectx, handle)
+
+ peer_key = ec.generate_private_key(privkey.curve)
+ peer_public_key = peer_key.public_key()
+
+ tpm_shared_key = privkey.exchange(ec.ECDH(), peer_public_key)
+ pyca_shared_key = peer_key.exchange(ec.ECDH(), privkey.public_key())
+ self.assertEqual(tpm_shared_key, pyca_shared_key)
+
+ def test_ecc_sign(self):
+ handle, _, _, _, _ = self.ectx.create_primary(
+ in_sensitive=None, in_public=ecc_template
+ )
+ privkey = tpm_ecc_private_key(self.ectx, handle)
+ pubkey = privkey.public_key()
+
+ sigalg = privkey.get_signature_algorithm()
+ sig = privkey.sign(b"falafel", sigalg)
+
+ pubkey.verify(sig, b"falafel", sigalg)
+
+ def test_ecc_sign_with_scheme(self):
+ ecc_ecdsa = TPM2B_PUBLIC(ecc_template)
+ ecc_ecdsa.publicArea.parameters.eccDetail.scheme.scheme = TPM2_ALG.ECDSA
+ ecc_ecdsa.publicArea.objectAttributes ^= TPMA_OBJECT.DECRYPT
+ handle, _, _, _, _ = self.ectx.create_primary(
+ in_sensitive=None, in_public=ecc_ecdsa
+ )
+ privkey = tpm_ecc_private_key(self.ectx, handle)
+ pubkey = privkey.public_key()
+
+ sigalg = privkey.get_signature_algorithm()
+ sig = privkey.sign(b"falafel", sigalg)
+
+ pubkey.verify(sig, b"falafel", sigalg)
+
+ def test_ecc_no_decrypt(self):
+ ecc_no_decrypt = TPM2B_PUBLIC(ecc_template)
+ ecc_no_decrypt.publicArea.objectAttributes ^= TPMA_OBJECT.DECRYPT
+ handle, _, _, _, _ = self.ectx.create_primary(
+ in_sensitive=None, in_public=ecc_no_decrypt
+ )
+ privkey = tpm_ecc_private_key(self.ectx, handle)
+
+ peer_key = ec.generate_private_key(privkey.curve)
+ peer_public_key = peer_key.public_key()
+
+ with self.assertRaises(ValueError) as e:
+ privkey.exchange(ec.ECDH(), peer_public_key)
+ self.assertEqual(
+ str(e.exception),
+ "TPM key does not allow ECDH key exchange (object attribute decrypt is not set)",
+ )
+
+ def test_ecc_different_curves(self):
+ handle, _, _, _, _ = self.ectx.create_primary(
+ in_sensitive=None, in_public=ecc_template
+ )
+ privkey = tpm_ecc_private_key(self.ectx, handle)
+
+ peer_key = ec.generate_private_key(ec.SECP192R1())
+ peer_public_key = peer_key.public_key()
+
+ with self.assertRaises(ValueError) as e:
+ privkey.exchange(ec.ECDH(), peer_public_key)
+ self.assertEqual(
+ str(e.exception),
+ "curve mismatch for peer key, got secp192r1, expected secp256r1",
+ )
+
+ def test_ecc_no_sign(self):
+ ecc_no_sign = TPM2B_PUBLIC(ecc_template)
+ ecc_no_sign.publicArea.objectAttributes ^= TPMA_OBJECT.SIGN_ENCRYPT
+ handle, _, _, _, _ = self.ectx.create_primary(
+ in_sensitive=None, in_public=ecc_no_sign
+ )
+ privkey = tpm_ecc_private_key(self.ectx, handle)
+
+ halg = privkey.get_digest_algorithm()
+ sigalg = ec.ECDSA(halg())
+ with self.assertRaises(ValueError) as e:
+ privkey.sign(b"falafel", sigalg)
+ self.assertEqual(
+ str(e.exception),
+ "TPM key does not allow signing (object attribute sign_encrypt is not set)",
+ )
+
+ def test_ecc_prehashed(self):
+ handle, _, _, _, _ = self.ectx.create_primary(
+ in_sensitive=None, in_public=ecc_template
+ )
+ privkey = tpm_ecc_private_key(self.ectx, handle)
+
+ halg = privkey.get_digest_algorithm()
+ sigalg = ec.ECDSA(Prehashed(halg()))
+ with self.assertRaises(ValueError) as e:
+ privkey.sign(b"falafel", sigalg)
+ self.assertEqual(str(e.exception), "Prehashed data is not supported")
+
+ def test_ecc_unsupported_curve(self):
+ ecc_brainpool = TPM2B_PUBLIC(ecc_template)
+ ecc_brainpool.publicArea.parameters.eccDetail.curveID = TPM2_ECC.BN_P256
+ handle, _, _, _, _ = self.ectx.create_primary(
+ in_sensitive=None, in_public=ecc_brainpool
+ )
+
+ with self.assertRaises(ValueError) as e:
+ tpm_ecc_private_key(self.ectx, handle)
+ self.assertEqual(str(e.exception), "unsupported curve bn_p256")
+
+ def test_ecc_unsupported_scheme(self):
+ ecc_ecdaa = TPM2B_PUBLIC(ecc_template)
+ ecc_ecdaa.publicArea.parameters.eccDetail.scheme.scheme = TPM2_ALG.ECDAA
+ ecc_ecdaa.publicArea.objectAttributes ^= TPMA_OBJECT.DECRYPT
+
+ handle, _, _, _, _ = self.ectx.create_primary(
+ in_sensitive=None, in_public=ecc_ecdaa
+ )
+ privkey = tpm_ecc_private_key(self.ectx, handle)
+
+ with self.assertRaises(ValueError) as e:
+ privkey.get_signature_algorithm()
+ self.assertEqual(str(e.exception), "unsupported signature scheme ecdaa")
+
+ def test_scheme_mismatch(self):
+ rsassa = TPM2B_PUBLIC(rsa_template)
+ rsassa.publicArea.parameters.rsaDetail.scheme.scheme = TPM2_ALG.RSASSA
+ rsassa.publicArea.objectAttributes ^= TPMA_OBJECT.DECRYPT
+
+ handle, _, _, _, _ = self.ectx.create_primary(
+ in_sensitive=None, in_public=rsassa
+ )
+ privkey = tpm_rsa_private_key(self.ectx, handle)
+
+ padding = PSS(
+ mgf=MGF1(algorithm=hashes.SHA256()), salt_length=PSS.DIGEST_LENGTH
+ )
+
+ with self.assertRaises(ValueError) as e:
+ privkey.sign(b"falafel", padding, hashes.SHA256())
+ self.assertEqual(
+ str(e.exception),
+ "invalid scheme, scheme has rsapss but key requires rsassa",
+ )
+
+ def test_scheme_digest_mismatch(self):
+ rsassa = TPM2B_PUBLIC(rsa_template)
+ rsassa.publicArea.parameters.rsaDetail.scheme.scheme = TPM2_ALG.RSASSA
+ rsassa.publicArea.parameters.rsaDetail.scheme.details.anySig.hashAlg = (
+ TPM2_ALG.SHA1
+ )
+ rsassa.publicArea.objectAttributes ^= TPMA_OBJECT.DECRYPT
+
+ handle, _, _, _, _ = self.ectx.create_primary(
+ in_sensitive=None, in_public=rsassa
+ )
+ privkey = tpm_rsa_private_key(self.ectx, handle)
+
+ padding = PKCS1v15()
+
+ with self.assertRaises(ValueError) as e:
+ privkey.sign(b"falafel", padding, hashes.SHA256())
+ self.assertEqual(
+ str(e.exception),
+ "digest algorithm mismatch, scheme has sha256 but key requires sha",
+ )
+
+ def test_scheme_digest_mismatch_oaep(self):
+ rsa_oaep = TPM2B_PUBLIC(rsa_template)
+ rsa_oaep.publicArea.parameters.rsaDetail.scheme.scheme = TPM2_ALG.OAEP
+ rsa_oaep.publicArea.parameters.rsaDetail.scheme.details.anySig.hashAlg = (
+ TPM2_ALG.SHA256
+ )
+ rsa_oaep.publicArea.objectAttributes ^= TPMA_OBJECT.SIGN_ENCRYPT
+ handle, _, _, _, _ = self.ectx.create_primary(
+ in_sensitive=None, in_public=rsa_oaep
+ )
+ privkey = tpm_rsa_private_key(self.ectx, handle)
+
+ padding = OAEP(
+ mgf=MGF1(algorithm=hashes.SHA512()), algorithm=hashes.SHA384(), label=b""
+ )
+
+ with self.assertRaises(ValueError) as e:
+ privkey.decrypt(b"falafel", padding)
+ self.assertEqual(
+ str(e.exception),
+ "digest algorithm mismatch, scheme has sha384 but key requires sha256",
+ )
+
+ def test_cert_builder_rsa(self):
+ handle, _, _, _, _ = self.ectx.create_primary(
+ in_sensitive=None, in_public=rsa_template
+ )
+ privkey = tpm_rsa_private_key(self.ectx, handle)
+ pubkey = privkey.public_key()
+
+ builder = x509.CertificateBuilder()
+ builder = builder.subject_name(
+ x509.Name([x509.NameAttribute(x509.oid.NameOID.COMMON_NAME, "falafel"),])
+ )
+ builder = builder.issuer_name(
+ x509.Name([x509.NameAttribute(x509.oid.NameOID.COMMON_NAME, "falafel"),])
+ )
+ builder = builder.serial_number(x509.random_serial_number())
+ one_day = datetime.timedelta(1, 0, 0)
+ builder = builder.not_valid_before(datetime.datetime.today() - one_day)
+ builder = builder.not_valid_after(datetime.datetime.today() + one_day)
+ builder = builder.public_key(pubkey)
+
+ halg = privkey.get_digest_algorithm()
+ cert = builder.sign(privkey, algorithm=halg())
+ cert.verify_directly_issued_by(cert)
+
+ def test_csr_builder_rsa(self):
+ handle, _, _, _, _ = self.ectx.create_primary(
+ in_sensitive=None, in_public=rsa_template
+ )
+ privkey = tpm_rsa_private_key(self.ectx, handle)
+
+ builder = x509.CertificateSigningRequestBuilder()
+ builder = builder.subject_name(
+ x509.Name([x509.NameAttribute(x509.oid.NameOID.COMMON_NAME, "falafel"),])
+ )
+ halg = privkey.get_digest_algorithm()
+ csr = builder.sign(privkey, algorithm=halg())
+ self.assertEqual(csr.is_signature_valid, True)
+
+ def test_cert_builder_ecc(self):
+ handle, _, _, _, _ = self.ectx.create_primary(
+ in_sensitive=None, in_public=ecc_template
+ )
+ privkey = tpm_ecc_private_key(self.ectx, handle)
+ pubkey = privkey.public_key()
+
+ builder = x509.CertificateBuilder()
+ builder = builder.subject_name(
+ x509.Name([x509.NameAttribute(x509.oid.NameOID.COMMON_NAME, "falafel"),])
+ )
+ builder = builder.issuer_name(
+ x509.Name([x509.NameAttribute(x509.oid.NameOID.COMMON_NAME, "falafel"),])
+ )
+ builder = builder.serial_number(x509.random_serial_number())
+ one_day = datetime.timedelta(1, 0, 0)
+ builder = builder.not_valid_before(datetime.datetime.today() - one_day)
+ builder = builder.not_valid_after(datetime.datetime.today() + one_day)
+ builder = builder.public_key(pubkey)
+
+ halg = privkey.get_digest_algorithm()
+ cert = builder.sign(privkey, algorithm=halg())
+ cert.verify_directly_issued_by(cert)
+
+ def test_csr_builder_ecc(self):
+ handle, _, _, _, _ = self.ectx.create_primary(
+ in_sensitive=None, in_public=ecc_template
+ )
+ privkey = tpm_ecc_private_key(self.ectx, handle)
+
+ builder = x509.CertificateSigningRequestBuilder()
+ builder = builder.subject_name(
+ x509.Name([x509.NameAttribute(x509.oid.NameOID.COMMON_NAME, "falafel"),])
+ )
+ halg = privkey.get_digest_algorithm()
+ csr = builder.sign(privkey, algorithm=halg())
+ self.assertEqual(csr.is_signature_valid, True)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/tpm2-pytss-2.2.0/test/test_encoding.py new/tpm2-pytss-2.3.0/test/test_encoding.py
--- old/tpm2-pytss-2.2.0/test/test_encoding.py 2024-01-06 00:50:04.000000000 +0100
+++ new/tpm2-pytss-2.3.0/test/test_encoding.py 2024-06-27 10:36:21.000000000 +0200
@@ -1406,7 +1406,7 @@
def test_tools_decode_tpm2b_name(self):
if not self.has_tools:
self.skipTest("tools not in path")
- key = ec.generate_private_key(ec.SECP256R1).public_key()
+ key = ec.generate_private_key(ec.SECP256R1()).public_key()
kb = key.public_bytes(
serialization.Encoding.PEM, serialization.PublicFormat.SubjectPublicKeyInfo
)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/tpm2-pytss-2.2.0/test/test_esapi.py new/tpm2-pytss-2.3.0/test/test_esapi.py
--- old/tpm2-pytss-2.2.0/test/test_esapi.py 2024-01-06 00:50:04.000000000 +0100
+++ new/tpm2-pytss-2.3.0/test/test_esapi.py 2024-06-27 10:36:21.000000000 +0200
@@ -3585,6 +3585,8 @@
self.ectx.pcr_allocate(pcrsels, session3=object())
def test_pcr_set_auth_policy(self):
+ if getattr(self.tcti, "name", "") == "swtpm":
+ self.skipTest("pcr_set_auth_policy not supported by swtpm")
policy = b"0123456789ABCDEF0123456789ABCDEF"
self.ectx.pcr_set_auth_policy(policy, TPM2_ALG.SHA256, ESYS_TR.PCR20)
@@ -3630,6 +3632,8 @@
)
def test_pcr_set_auth_value(self):
+ if getattr(self.tcti, "name", "") == "swtpm":
+ self.skipTest("pcr_set_auth_value not supported by swtpm")
self.ectx.pcr_set_auth_value(ESYS_TR.PCR20, b"password")
self.ectx.tr_set_auth(ESYS_TR.PCR20, b"password")
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/tpm2-pytss-2.2.0/test/test_fapi.py new/tpm2-pytss-2.3.0/test/test_fapi.py
--- old/tpm2-pytss-2.2.0/test/test_fapi.py 2024-01-06 00:50:04.000000000 +0100
+++ new/tpm2-pytss-2.3.0/test/test_fapi.py 2024-06-27 10:36:21.000000000 +0200
@@ -961,6 +961,22 @@
with pytest.raises(TSS2_Exception):
self.fapi.sign(path=key_path, digest=b"\x11" * 32)
+ def test_nv_create_double_ok(self):
+ nv_path = f"/nv/Owner/nv_{random_uid()}"
+ created = self.fapi.create_nv(path=nv_path, size=10)
+ assert created == True
+
+ created = self.fapi.create_nv(path=nv_path, size=10, exists_ok=True)
+ assert created == False
+
+ def test_nv_create_double_fail(self):
+ nv_path = f"/nv/Owner/nv_{random_uid()}"
+ created = self.fapi.create_nv(path=nv_path, size=10)
+ assert created == True
+
+ with pytest.raises(TSS2_Exception):
+ self.fapi.create_nv(path=nv_path, size=10)
+
@pytest.mark.usefixtures("init_fapi_ecc")
class TestFapiECC(Common):
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/tpm2-pytss-2.2.0/test/test_policy.py new/tpm2-pytss-2.3.0/test/test_policy.py
--- old/tpm2-pytss-2.2.0/test/test_policy.py 2024-01-06 00:50:04.000000000 +0100
+++ new/tpm2-pytss-2.3.0/test/test_policy.py 2024-06-27 10:36:21.000000000 +0200
@@ -47,7 +47,7 @@
super().setUp()
self._has_secp192r1 = True
try:
- ec.generate_private_key(ec.SECP192R1)
+ ec.generate_private_key(ec.SECP192R1())
except Exception:
self._has_secp192r1 = False
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-09 22:12:41
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/grype (Old)
and /work/SRC/openSUSE:Factory/.grype.new.19354 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "grype"
Wed Oct 9 22:12:41 2024 rev:75 rq:1206414 version:0.82.0
Changes:
--------
--- /work/SRC/openSUSE:Factory/grype/grype.changes 2024-09-26 18:55:05.465569444 +0200
+++ /work/SRC/openSUSE:Factory/.grype.new.19354/grype.changes 2024-10-09 22:13:08.802753567 +0200
@@ -1,0 +2,29 @@
+Wed Oct 09 04:39:05 UTC 2024 - opensuse_buildservice(a)ojkastl.de
+
+- Update to version 0.82.0:
+ * chore(deps): update Syft to v1.14.0 (#2164)
+ * fix: use fix info from secDB in APK matcher even if NVD fix
+ info present (#2162)
+ * chore(deps): bump sigstore/cosign-installer from 3.6.0 to 3.7.0
+ (#2159)
+ * chore(deps): bump github/codeql-action from 3.26.10 to 3.26.11
+ (#2160)
+ * chore(deps): update tools to latest versions (#2157)
+ * Add v6 DB metadata store (#2146)
+ * feat: remove `wordpress` from `known` targets due to wordpress
+ cataloger support syft/#1553
+ * Add a space following the "Name:" label (#2155)
+ * chore(deps): update tools to latest versions (#2154)
+ * test: update quality gate db to latest version (#2153)
+ * explicitly skip update ts on check failure (#2152)
+ * port over tar/xz decompressors (#2139)
+ * chore(deps): bump github/codeql-action from 3.26.9 to 3.26.10
+ (#2149)
+ * chore(deps): bump github.com/docker/docker (#2147)
+ * implement a low pass filter for update checks (#2148)
+ * migrate legacy distribution concerns (#2144)
+ * chore(deps): bump github/codeql-action from 3.26.8 to 3.26.9
+ (#2142)
+ * chore(deps): bump actions/checkout from 4.1.7 to 4.2.0 (#2145)
+
+-------------------------------------------------------------------
Old:
----
grype-0.81.0.obscpio
New:
----
grype-0.82.0.obscpio
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ grype.spec ++++++
--- /var/tmp/diff_new_pack.616436/_old 2024-10-09 22:13:10.854839124 +0200
+++ /var/tmp/diff_new_pack.616436/_new 2024-10-09 22:13:10.858839291 +0200
@@ -19,7 +19,7 @@
%define __arch_install_post export NO_BRP_STRIP_DEBUG=true
Name: grype
-Version: 0.81.0
+Version: 0.82.0
Release: 0
Summary: A vulnerability scanner for container images and filesystems
License: Apache-2.0
++++++ _service ++++++
--- /var/tmp/diff_new_pack.616436/_old 2024-10-09 22:13:10.886840458 +0200
+++ /var/tmp/diff_new_pack.616436/_new 2024-10-09 22:13:10.890840625 +0200
@@ -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.81.0</param>
+ <param name="revision">v0.82.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.616436/_old 2024-10-09 22:13:10.910841459 +0200
+++ /var/tmp/diff_new_pack.616436/_new 2024-10-09 22:13:10.914841626 +0200
@@ -1,6 +1,6 @@
<servicedata>
<service name="tar_scm">
<param name="url">https://github.com/anchore/grype</param>
- <param name="changesrevision">641982ff47fcb8d56b9555e5f0dad23afa7bc690</param></service></servicedata>
+ <param name="changesrevision">6b09bb857564cd3c59c0cc1b6ea997c5ee198b6d</param></service></servicedata>
(No newline at EOF)
++++++ grype-0.81.0.obscpio -> grype-0.82.0.obscpio ++++++
/work/SRC/openSUSE:Factory/grype/grype-0.81.0.obscpio /work/SRC/openSUSE:Factory/.grype.new.19354/grype-0.82.0.obscpio differ: char 48, line 1
++++++ grype.obsinfo ++++++
--- /var/tmp/diff_new_pack.616436/_old 2024-10-09 22:13:10.950843127 +0200
+++ /var/tmp/diff_new_pack.616436/_new 2024-10-09 22:13:10.954843294 +0200
@@ -1,5 +1,5 @@
name: grype
-version: 0.81.0
-mtime: 1727268984
-commit: 641982ff47fcb8d56b9555e5f0dad23afa7bc690
+version: 0.82.0
+mtime: 1728336018
+commit: 6b09bb857564cd3c59c0cc1b6ea997c5ee198b6d
++++++ vendor.tar.gz ++++++
/work/SRC/openSUSE:Factory/grype/vendor.tar.gz /work/SRC/openSUSE:Factory/.grype.new.19354/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 python-posthog for openSUSE:Factory checked in at 2024-10-09 22:12:39
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/python-posthog (Old)
and /work/SRC/openSUSE:Factory/.python-posthog.new.19354 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "python-posthog"
Wed Oct 9 22:12:39 2024 rev:3 rq:1206408 version:3.6.0
Changes:
--------
--- /work/SRC/openSUSE:Factory/python-posthog/python-posthog.changes 2024-09-27 17:12:07.448234937 +0200
+++ /work/SRC/openSUSE:Factory/.python-posthog.new.19354/python-posthog.changes 2024-10-09 22:13:06.478656668 +0200
@@ -1,0 +2,5 @@
+Wed Oct 9 00:31:28 UTC 2024 - Steve Kowalik <steven.kowalik(a)suse.com>
+
+- Actually remove requirement on monotonic.
+
+-------------------------------------------------------------------
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ python-posthog.spec ++++++
--- /var/tmp/diff_new_pack.gecP3a/_old 2024-10-09 22:13:07.526700364 +0200
+++ /var/tmp/diff_new_pack.gecP3a/_new 2024-10-09 22:13:07.526700364 +0200
@@ -41,7 +41,6 @@
# /SECTION
BuildRequires: fdupes
Requires: python-backoff >= 1.10.0
-Requires: python-monotonic >= 1.5
Requires: python-python-dateutil > 2.1
Requires: python-requests >= 2.7
Suggests: python-black
1
0
Script 'mail_helper' called by obssrc
Hello community,
here is the log from the commit of package gromox for openSUSE:Factory checked in at 2024-10-09 22:12:22
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/gromox (Old)
and /work/SRC/openSUSE:Factory/.gromox.new.19354 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "gromox"
Wed Oct 9 22:12:22 2024 rev:36 rq:1206384 version:2.34
Changes:
--------
--- /work/SRC/openSUSE:Factory/gromox/gromox.changes 2024-10-02 21:33:51.143548704 +0200
+++ /work/SRC/openSUSE:Factory/.gromox.new.19354/gromox.changes 2024-10-09 22:12:45.301773739 +0200
@@ -1,0 +2,11 @@
+Tue Oct 8 15:20:02 UTC 2024 - Jan Engelhardt <jengelh(a)inai.de>
+
+- Update to release 2.34
+ * php_mapi: cure crash occurring with mapi_getidsfromnames
+ * midb: resolve "inside a readonly TXN" warnings during message
+ deletion
+ * exmdb: emit notifications only after SQL transactions are
+ complete
+ * imap: resolve unstable EXPUNGE observability
+
+-------------------------------------------------------------------
Old:
----
gromox-2.33.tar.asc
gromox-2.33.tar.zst
New:
----
gromox-2.34.tar.asc
gromox-2.34.tar.zst
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ gromox.spec ++++++
--- /var/tmp/diff_new_pack.X59p13/_old 2024-10-09 22:12:46.041804592 +0200
+++ /var/tmp/diff_new_pack.X59p13/_new 2024-10-09 22:12:46.041804592 +0200
@@ -19,7 +19,7 @@
%define _libexecdir %_prefix/libexec
Name: gromox
-Version: 2.33
+Version: 2.34
Release: 0
Summary: Groupware server backend with RPC, IMAP,POP3, PHP-MAPI support
License: AGPL-3.0-or-later AND GPL-2.0-only AND GPL-3.0-or-later
@@ -29,7 +29,11 @@
Source2: https://github.com/grommunio/gromox/releases/download/%name-%version/%name-…
Source8: %name.keyring
BuildRequires: fdupes
+%if 0%{?suse_version} && 0%{?suse_version} < 1600
+BuildRequires: gcc12-c++
+%else
BuildRequires: gcc-c++
+%endif
%if 0%{?suse_version}
BuildRequires: libmysqlclient-devel >= 5.6
BuildRequires: openldap2-devel
@@ -118,7 +122,11 @@
%autosetup -p1
%build
-%configure
+%configure \
+%if 0%{?suse_version} && 0%{?suse_version} < 1600
+ CC=gcc-12 CXX=g++-12 \
+%endif
+ %nil
%make_build V=1
%install
++++++ _scmsync.obsinfo ++++++
--- /var/tmp/diff_new_pack.X59p13/_old 2024-10-09 22:12:46.073805926 +0200
+++ /var/tmp/diff_new_pack.X59p13/_new 2024-10-09 22:12:46.073805926 +0200
@@ -1,5 +1,5 @@
-mtime: 1727813761
-commit: 3493ed7aa4f92b3a927f3c0f660daf92e70be4732dc0da77f4b9bb8f05ef0a2f
+mtime: 1728411261
+commit: cc345f88432cf95111be4b4453707448701142ce36438794c307db79bab02063
url: https://src.opensuse.org/jengelh/gromox
revision: master
++++++ build.specials.obscpio ++++++
diff: old/*: No such file or directory
diff: new/*: No such file or directory
++++++ debian.changelog ++++++
--- /var/tmp/diff_new_pack.X59p13/_old 2024-10-09 22:12:46.157809429 +0200
+++ /var/tmp/diff_new_pack.X59p13/_new 2024-10-09 22:12:46.161809595 +0200
@@ -1,9 +1,9 @@
-gromox (2.33-0) unstable; urgency=low
+gromox (2.34-0) unstable; urgency=low
* The build process is supposed to replace the entries here
automatically from data present in gromox.changes.
But if you see this message in installed systems,
that would indicate a problem in debtransform(1).
- -- Gromox <null(a)gromox.com> Tue, 01 Oct 2024 16:10:00 +0200
+ -- Gromox <null(a)gromox.com> Tue, 08 Oct 2024 17:10:00 +0200
++++++ gromox-2.33.tar.zst -> gromox-2.34.tar.zst ++++++
++++ 11523 lines of diff (skipped)
1
0
Script 'mail_helper' called by obssrc
Hello community,
here is the log from the commit of package mapi-header-php for openSUSE:Factory checked in at 2024-10-09 22:12:20
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/mapi-header-php (Old)
and /work/SRC/openSUSE:Factory/.mapi-header-php.new.19354 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "mapi-header-php"
Wed Oct 9 22:12:20 2024 rev:6 rq:1206383 version:1.4.0.db15bd0
Changes:
--------
--- /work/SRC/openSUSE:Factory/mapi-header-php/mapi-header-php.changes 2023-11-01 22:11:13.226423452 +0100
+++ /work/SRC/openSUSE:Factory/.mapi-header-php.new.19354/mapi-header-php.changes 2024-10-09 22:12:43.645704691 +0200
@@ -1,0 +2,14 @@
+Tue Oct 8 18:07:56 UTC 2024 - Jan Engelhardt <jengelh(a)inai.de>
+
+- Update to release 1.4
+ * Conditionally provide
+ ``PR_EC_WEBAPP_PERSISTENT_SETTINGS_JSON``,
+ ``PR_EC_RECIPIENT_HISTORY_JSON`` if they is not already made
+ available from mapi.so
+ * Occurrence exceptions are treated as localtime
+ * Fix erroneous end time for never-ending recurrences
+ * Fix duplicate participants appearing in meeting objects
+ * Do not process meeting requests locate in the "Sent Items"
+ folder
+
+-------------------------------------------------------------------
Old:
----
mapi-header-php-1.3.0.a04f1af.tar.xz
New:
----
_scmsync.obsinfo
build.specials.obscpio
mapi-header-php-1.4.0.db15bd0.tar.xz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ mapi-header-php.spec ++++++
--- /var/tmp/diff_new_pack.Ttk3xe/_old 2024-10-09 22:12:44.489739882 +0200
+++ /var/tmp/diff_new_pack.Ttk3xe/_new 2024-10-09 22:12:44.489739882 +0200
@@ -19,7 +19,7 @@
%define _empty_manifest_terminate_build 0
Name: mapi-header-php
-Version: 1.3.0.a04f1af
+Version: 1.4.0.db15bd0
Release: 0
Summary: Common PHP MAPI header files for grommunio
License: AGPL-3.0-or-later
++++++ _scmsync.obsinfo ++++++
mtime: 1728411199
commit: f6b9af4b36c1c53b7250ae5297656264c63a9100fc2b21cb0cacd0d39d4cb74c
url: https://src.opensuse.org/jengelh/mapi-header-php
revision: master
++++++ debian.changelog ++++++
--- /var/tmp/diff_new_pack.Ttk3xe/_old 2024-10-09 22:12:44.553742550 +0200
+++ /var/tmp/diff_new_pack.Ttk3xe/_new 2024-10-09 22:12:44.557742717 +0200
@@ -1,6 +1,6 @@
-mapi-header-php (1.3.0.a04f1af) unstable; urgency=low
+mapi-header-php (1.4.0.db15bd0-0) unstable; urgency=low
* Initial package.
- -- grommunio <support(a)grommunio.com> Mon, 25 Jan 2021 10:00:00 +0100
+ -- grommunio <support(a)grommunio.com> Tue, 08 Oct 2024 20:00:00 +0200
++++++ mapi-header-php-1.3.0.a04f1af.tar.xz -> mapi-header-php-1.4.0.db15bd0.tar.xz ++++++
++++ 7274 lines of diff (skipped)
++++++ mapi-header-php.dsc ++++++
--- /var/tmp/diff_new_pack.Ttk3xe/_old 2024-10-09 22:12:44.693748388 +0200
+++ /var/tmp/diff_new_pack.Ttk3xe/_new 2024-10-09 22:12:44.693748388 +0200
@@ -1,7 +1,7 @@
Format: 1.0
Source: mapi-header-php
Architecture: any
-Version: 1.3.0.a04f1af
+Version: 1.4.0.db15bd0
DEBTRANSFORM-RELEASE: 1
Maintainer: Grommunio <null(a)grommunio.com>
Homepage: https://grommunio.com
1
0
Script 'mail_helper' called by obssrc
Hello community,
here is the log from the commit of package weston for openSUSE:Factory checked in at 2024-10-09 22:12:14
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/weston (Old)
and /work/SRC/openSUSE:Factory/.weston.new.19354 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "weston"
Wed Oct 9 22:12:14 2024 rev:35 rq:1206381 version:14.0.0
Changes:
--------
--- /work/SRC/openSUSE:Factory/weston/weston.changes 2024-04-25 20:50:49.869694563 +0200
+++ /work/SRC/openSUSE:Factory/.weston.new.19354/weston.changes 2024-10-09 22:12:33.121265895 +0200
@@ -1,0 +2,7 @@
+Wed Sep 4 09:23:01 UTC 2024 - Jan Engelhardt <jengelh(a)inai.de>
+
+- Update to release 14
+ * Add support for FreeRDP 3.x
+- Add wsp-deps.patch to resolve FTBFS
+
+-------------------------------------------------------------------
Old:
----
weston-13.0.1.tar.xz
weston-13.0.1.tar.xz.sig
New:
----
_scmsync.obsinfo
build.specials.obscpio
weston-14.0.0.tar.xz
weston-14.0.0.tar.xz.sig
wsp-deps.patch
BETA DEBUG BEGIN:
New: * Add support for FreeRDP 3.x
- Add wsp-deps.patch to resolve FTBFS
BETA DEBUG END:
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ weston.spec ++++++
--- /var/tmp/diff_new_pack.xy4DYf/_old 2024-10-09 22:12:34.553325602 +0200
+++ /var/tmp/diff_new_pack.xy4DYf/_new 2024-10-09 22:12:34.553325602 +0200
@@ -18,8 +18,8 @@
Name: weston
%define lname libweston0
-%define major 13
-Version: 13.0.1
+%define major 14
+Version: 14.0.0
Release: 0
Summary: Wayland Reference Compositor
License: CC-BY-SA-3.0 AND MIT
@@ -29,6 +29,7 @@
#Git-Web: https://cgit.freedesktop.org/wayland/weston/
Source: https://gitlab.freedesktop.org/wayland/weston/-/releases/%version/downloads…
Source2: https://gitlab.freedesktop.org/wayland/weston/-/releases/%version/downloads…
+Patch1: wsp-deps.patch
BuildRequires: Mesa-libGLESv3-devel
BuildRequires: gcc-c++
BuildRequires: glibc-devel >= 2.27
@@ -48,6 +49,7 @@
BuildRequires: pkgconfig(gbm)
BuildRequires: pkgconfig(glesv2)
BuildRequires: pkgconfig(lcms2) >= 2.9
+BuildRequires: pkgconfig(libdisplay-info)
BuildRequires: pkgconfig(libdrm) >= 2.4.108
BuildRequires: pkgconfig(libevdev)
BuildRequires: pkgconfig(libinput) >= 0.8.0
++++++ _scmsync.obsinfo ++++++
mtime: 1728409282
commit: 499e88f7322073b4b728e930c2a718a247c03d55e764bae324f78ec3637eea35
url: https://src.opensuse.org/jengelh/weston
revision: master
++++++ weston-13.0.1.tar.xz -> weston-14.0.0.tar.xz ++++++
++++ 47503 lines of diff (skipped)
++++++ wsp-deps.patch ++++++
From f86ff8c07d9951672cee089ad626eb0898815bf0 Mon Sep 17 00:00:00 2001
From: Jan Engelhardt <jengelh(a)inai.de>
Date: Tue, 8 Oct 2024 19:18:24 +0200
Subject: [PATCH] build: insert missing wayland-server-protocol dependency
References: https://gitlab.freedesktop.org/wayland/weston/-/merge_requests/1623
A new build error sprung up in weston-14 compared to 13.0.0.
Fix it.
FAILED: tests/liblib_lcms_util.a.p/lcms_util.c.o
cc -Itests/liblib_lcms_util.a.p -Itests -I../tests -I. -I.. -Iinclude
-I../include -fdiagnostics-color=always -D_FILE_OFFSET_BITS=64 -Wall
-Winvalid-pch -Wextra -Wpedantic -std=gnu99 -Wmissing-prototypes
-Wno-unused-parameter -Wno-shift-negative-value
-Wno-missing-field-initializers -Wno-pedantic -Wundef
-fvisibility=hidden -O2 -Wall -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=3
-fstack-protector-strong -funwind-tables -fasynchronous-unwind-tables
-fstack-clash-protection -Werror=return-type -flto=auto -g -fPIC -MD
-MQ tests/liblib_lcms_util.a.p/lcms_util.c.o -MF
tests/liblib_lcms_util.a.p/lcms_util.c.o.d -o
tests/liblib_lcms_util.a.p/lcms_util.c.o -c ../tests/lcms_util.c
In file included from ../tests/lcms_util.c:35:
../include/libweston/matrix.h:33:10: fatal error:
wayland-server-protocol.h: No such file or directory
33 | #include <wayland-server-protocol.h>
Signed-off-by: Jan Engelhardt <jengelh(a)inai.de>
---
tests/meson.build | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/tests/meson.build b/tests/meson.build
index 45b475c3..f5f34b2b 100644
--- a/tests/meson.build
+++ b/tests/meson.build
@@ -74,7 +74,7 @@ lib_lcms_util = static_library(
[ 'lcms_util.c' ],
include_directories: common_inc,
dependencies: [
- dep_lcms2, dep_libm
+ dep_lcms2, dep_libm, dep_wayland_server
],
build_by_default: false,
install: false,
--
2.46.1
1
0
Script 'mail_helper' called by obssrc
Hello community,
here is the log from the commit of package vulkan-utility-libraries for openSUSE:Factory checked in at 2024-10-09 22:12:12
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/vulkan-utility-libraries (Old)
and /work/SRC/openSUSE:Factory/.vulkan-utility-libraries.new.19354 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "vulkan-utility-libraries"
Wed Oct 9 22:12:12 2024 rev:7 rq:1206379 version:1.3.296
Changes:
--------
--- /work/SRC/openSUSE:Factory/vulkan-utility-libraries/vulkan-utility-libraries.changes 2024-07-25 12:12:30.758741543 +0200
+++ /work/SRC/openSUSE:Factory/.vulkan-utility-libraries.new.19354/vulkan-utility-libraries.changes 2024-10-09 22:12:30.105140143 +0200
@@ -1,0 +2,6 @@
+Tue Oct 8 17:08:11 UTC 2024 - Jan Engelhardt <jengelh(a)inai.de>
+
+- Update to release SDK-1.3.296
+ * safestruct: Accessors for non trivial globals
+
+-------------------------------------------------------------------
Old:
----
vulkan-sdk-1.3.290.0.tar.gz
New:
----
vulkan-sdk-1.3.296.0.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ vulkan-utility-libraries.spec ++++++
--- /var/tmp/diff_new_pack.sGf19x/_old 2024-10-09 22:12:30.737166495 +0200
+++ /var/tmp/diff_new_pack.sGf19x/_new 2024-10-09 22:12:30.741166662 +0200
@@ -16,9 +16,9 @@
#
-%define lname libVulkanLayerSettings-1_3_290
+%define lname libVulkanLayerSettings-1_3_296
Name: vulkan-utility-libraries
-Version: 1.3.290
+Version: 1.3.296
Release: 0
Summary: Utility libraries for Vulkan
License: Apache-2.0
@@ -26,8 +26,8 @@
URL: https://github.com/KhronosGroup/Vulkan-Utility-Libraries
Source: https://github.com/KhronosGroup/Vulkan-Utility-Libraries/archive/refs/tags/…
Patch1: shared.diff
-%if 0%{?suse_version} && 0%{?suse_version} < 1599
-BuildRequires: gcc11-c++
+%if 0%{?suse_version} && 0%{?suse_version} < 1600
+BuildRequires: gcc12-c++
%else
BuildRequires: c++_compiler
%endif
++++++ _scmsync.obsinfo ++++++
--- /var/tmp/diff_new_pack.sGf19x/_old 2024-10-09 22:12:30.773167996 +0200
+++ /var/tmp/diff_new_pack.sGf19x/_new 2024-10-09 22:12:30.773167996 +0200
@@ -1,5 +1,5 @@
-mtime: 1721711694
-commit: b2bcb6ab3fe6ec19dee439c53d296db0a1872403d7b9059a8cc70da59f629ecf
+mtime: 1728407338
+commit: 0824ce4a9b5a72b166c4e820e8b83eaec21bf358bcdc26a7abdf289a719a7e2f
url: https://src.opensuse.org/jengelh/vulkan-utility-libraries
revision: master
++++++ build.specials.obscpio ++++++
diff: old/*: No such file or directory
diff: new/*: No such file or directory
++++++ vulkan-sdk-1.3.290.0.tar.gz -> vulkan-sdk-1.3.296.0.tar.gz ++++++
++++ 6518 lines of diff (skipped)
1
0
Script 'mail_helper' called by obssrc
Hello community,
here is the log from the commit of package tupitube for openSUSE:Factory checked in at 2024-10-09 22:12:08
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/tupitube (Old)
and /work/SRC/openSUSE:Factory/.tupitube.new.19354 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "tupitube"
Wed Oct 9 22:12:08 2024 rev:10 rq:1206365 version:0.2.22
Changes:
--------
--- /work/SRC/openSUSE:Factory/tupitube/tupitube.changes 2023-03-03 22:32:03.320197076 +0100
+++ /work/SRC/openSUSE:Factory/.tupitube.new.19354/tupitube.changes 2024-10-09 22:12:25.184934521 +0200
@@ -1,0 +2,7 @@
+Tue Oct 8 16:14:40 UTC 2024 - Luigi Baldoni <aloisio(a)gmx.com>
+
+- Update to version 0.2.22 (no changelog supplied)
+- Force build against ffmpeg-4 in Factory
+- Drop tupitube.quazip5.patch (no longer required)
+
+-------------------------------------------------------------------
Old:
----
tupitube.desk-0.2.18.tar.gz
tupitube.quazip5.patch
New:
----
tupitube.desk-0.2.22.tar.gz
BETA DEBUG BEGIN:
Old:- Force build against ffmpeg-4 in Factory
- Drop tupitube.quazip5.patch (no longer required)
BETA DEBUG END:
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ tupitube.spec ++++++
--- /var/tmp/diff_new_pack.xQP91c/_old 2024-10-09 22:12:27.029011619 +0200
+++ /var/tmp/diff_new_pack.xQP91c/_new 2024-10-09 22:12:27.033011786 +0200
@@ -1,7 +1,7 @@
#
# spec file for package tupitube
#
-# Copyright (c) 2023 SUSE LLC
+# Copyright (c) 2024 SUSE LLC
# Copyright (c) 2016 Packman Team <packman(a)links2linux.de>
#
# All modifications and additions to the file contributed by third parties
@@ -22,20 +22,17 @@
%define _tupilib %{_libdir}/%{name}
%define _tupidata %{_datadir}/%{name}
Name: tupitube
-Version: 0.2.18
+Version: 0.2.22
Release: 0
Summary: 2D vectorial/animation tool
License: GPL-2.0-or-later AND GPL-3.0-or-later
Group: Productivity/Graphics/Vector Editors
-URL: https://maefloresta.com
+URL: https://www.tupitube.com
Source0: https://sourceforge.net/projects/tupi2d/files/Source%20Code/tupitube.desk-%…
Source99: tupitube-rpmlintrc
-Patch0: tupitube.quazip5.patch
-BuildRequires: dos2unix
BuildRequires: fdupes
BuildRequires: gcc-c++
BuildRequires: hicolor-icon-theme
-BuildRequires: libquazip-qt5-devel
BuildRequires: pkgconfig
BuildRequires: ruby
BuildRequires: update-desktop-files
@@ -48,12 +45,25 @@
BuildRequires: pkgconfig(Qt5Svg)
BuildRequires: pkgconfig(Qt5Xml)
BuildRequires: pkgconfig(glib-2.0)
+%if 0%{?suse_version} > 1500
+BuildRequires: pkgconfig(libavcodec) = 58.134.100
+BuildRequires: pkgconfig(libavdevice) = 58.13.100
+BuildRequires: pkgconfig(libavformat) = 58.76.100
+BuildRequires: pkgconfig(libavutil) = 56.70.100
+BuildRequires: pkgconfig(libpulse)
+BuildRequires: pkgconfig(libswscale) = 5.9.100
+%else
BuildRequires: pkgconfig(libavcodec)
+BuildRequires: pkgconfig(libavdevice)
BuildRequires: pkgconfig(libavformat)
BuildRequires: pkgconfig(libavutil)
BuildRequires: pkgconfig(libpulse)
BuildRequires: pkgconfig(libswscale)
+%endif
+BuildRequires: pkgconfig(libpng)
BuildRequires: pkgconfig(ogg)
+BuildRequires: pkgconfig(quazip1-qt5)
+BuildRequires: pkgconfig(sndfile)
BuildRequires: pkgconfig(theora)
BuildRequires: pkgconfig(zlib)
Requires: %{name}-plugins
@@ -98,11 +108,8 @@
# Configure failed. error was: undefined method `exists?' for File:Class
sed -i 's|File.exists|File.exist|' configure.rb qonf/test.rb
-# Fix 'E: spurious-executable-perm'
-chmod -x COPYING README* launcher/tupitube.xml
-
-# Fix 'W: wrong-script-end-of-line-encoding'
-dos2unix src/shell/html/css/tupitube.css
+# Configure failed. error was: undefined method `exists?' for module FileTest
+sed -e 's|FileTest.exists|FileTest.exist|' configure.rb
# Add path to ffmpeg
ffmpeg_include=$(pkg-config --cflags-only-I libavutil)
@@ -123,8 +130,7 @@
--bindir=%{_tupibin} \
--libdir=%{_tupilib} \
--sharedir=%{_tupidata}
-
-make %{?_smp_mflags}
+%make_build
%install
%make_install
++++++ tupitube.desk-0.2.18.tar.gz -> tupitube.desk-0.2.22.tar.gz ++++++
/work/SRC/openSUSE:Factory/tupitube/tupitube.desk-0.2.18.tar.gz /work/SRC/openSUSE:Factory/.tupitube.new.19354/tupitube.desk-0.2.22.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 roundcubemail for openSUSE:Factory checked in at 2024-10-09 22:11:59
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/roundcubemail (Old)
and /work/SRC/openSUSE:Factory/.roundcubemail.new.19354 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "roundcubemail"
Wed Oct 9 22:11:59 2024 rev:87 rq:1206355 version:1.6.9
Changes:
--------
--- /work/SRC/openSUSE:Factory/roundcubemail/roundcubemail.changes 2024-09-04 13:27:39.581384503 +0200
+++ /work/SRC/openSUSE:Factory/.roundcubemail.new.19354/roundcubemail.changes 2024-10-09 22:12:16.588575120 +0200
@@ -1,0 +2,5 @@
+Sat Sep 28 07:12:55 UTC 2024 - Thorsten Kukuk <kukuk(a)suse.com>
+
+- Add /srv/www directories to filelist [bsc#1231027]
+
+-------------------------------------------------------------------
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ roundcubemail.spec ++++++
--- /var/tmp/diff_new_pack.nKL6n7/_old 2024-10-09 22:12:17.560615759 +0200
+++ /var/tmp/diff_new_pack.nKL6n7/_new 2024-10-09 22:12:17.560615759 +0200
@@ -307,6 +307,7 @@
%doc LICENSE
%endif
%doc %{_defaultdocdir}/%{name}
+%dir %{apache_serverroot}
%dir %{roundcubepath}
%dir %{roundcubeconfigpath}
%dir %{roundcubeconfigpath}/skins
1
0
Script 'mail_helper' called by obssrc
Hello community,
here is the log from the commit of package kea for openSUSE:Factory checked in at 2024-10-09 22:11:57
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/kea (Old)
and /work/SRC/openSUSE:Factory/.kea.new.19354 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "kea"
Wed Oct 9 22:11:57 2024 rev:16 rq:1206346 version:2.6.1
Changes:
--------
--- /work/SRC/openSUSE:Factory/kea/kea.changes 2024-06-25 23:10:32.965024530 +0200
+++ /work/SRC/openSUSE:Factory/.kea.new.19354/kea.changes 2024-10-09 22:12:14.280478622 +0200
@@ -1,0 +2,23 @@
+Tue Oct 8 11:47:33 UTC 2024 - Jorik Cronenberg <jorik.cronenberg(a)suse.com>
+
+- Update to release 2.6.1
+ Bug fixes:
+ * Corrected an issue in MySQL config back end that causes
+ preferred life time values to be overwritten when updating
+ client classes via remote-set-class6. command.
+ * Corrected an issue with overlapping enum values for option
+ definition data type. This was causing option definitions of
+ type "record", created via config backend commands, to not load
+ properly when fetched from the back end.
+ * Corrected a bug in storing and fetching the encapsulated DHCP
+ options from the configuration backend. These options were
+ sometimes not returned when they were specified at the subnet,
+ shared network or client class level.
+ * Fixed a file descriptor leak in the High Availability hook
+ library.
+
+- Only require bison for build and enable regen_files on Tumbleweed
+ and SLFO, because bison is too old in SLES/Leap
+- Remove leading zeros from %if %{with ...}
+
+-------------------------------------------------------------------
Old:
----
kea-2.6.0.tar.gz
kea-2.6.0.tar.gz.asc
New:
----
_scmsync.obsinfo
build.specials.obscpio
kea-2.6.1.tar.gz
kea-2.6.1.tar.gz.asc
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ kea.spec ++++++
--- /var/tmp/diff_new_pack.6uFG1B/_old 2024-10-09 22:12:15.184516418 +0200
+++ /var/tmp/diff_new_pack.6uFG1B/_new 2024-10-09 22:12:15.184516418 +0200
@@ -23,29 +23,29 @@
%define cryptolink_sover 50
%define d2srv_sover 46
%define database_sover 61
-%define dhcppp_sover 89
+%define dhcppp_sover 90
%define dhcp_ddns_sover 56
-%define dhcpsrv_sover 108
+%define dhcpsrv_sover 109
%define dnspp_sover 56
%define eval_sover 69
%define exceptions_sover 33
-%define hooks_sover 97
+%define hooks_sover 98
%define http_sover 71
%define log_sover 61
-%define mysql_sover 69
-%define pgsql_sover 69
+%define mysql_sover 70
+%define pgsql_sover 70
%define process_sover 72
%define stats_sover 41
%define tcp_sover 18
%define util_io_sover 0
%define util_sover 84
-%if 0%{?suse_version} >= 1500
+%if 0%{?suse_version} >= 1600
%bcond_without regen_files
%else
%bcond_with regen_files
%endif
Name: kea
-Version: 2.6.0
+Version: 2.6.1
Release: 0
Summary: Dynamic Host Configuration Protocol daemon
License: MPL-2.0
@@ -59,7 +59,9 @@
Source3: kea.keyring
BuildRequires: autoconf >= 2.59
BuildRequires: automake
+%if %{with regen_files}
BuildRequires: bison >= 3.3
+%endif
BuildRequires: freeradius-server-devel
BuildRequires: gcc-c++
BuildRequires: libmysqlclient-devel
@@ -75,7 +77,7 @@
BuildRequires: pkgconfig(libcrypto)
%sysusers_requires
Suggests: %name-hooks = %version
-%if 0%{with regen_files}
+%if %{with regen_files}
BuildRequires: flex
%endif
%if 0%{?suse_version} >= 1500
@@ -357,7 +359,7 @@
autoreconf -fi
%configure \
--disable-rpath --disable-static \
-%if 0%{with regen_files}
+%if %{with regen_files}
--enable-generate-docs --enable-generate-parser \
%endif
--enable-logger-checks \
++++++ _scmsync.obsinfo ++++++
mtime: 1728398850
commit: 9912ef67c7cf878d03fd79c923d332b5656b77015ddd411196a3a59472bd5ea3
url: https://src.opensuse.org/jengelh/kea
revision: master
++++++ kea-2.6.0.tar.gz -> kea-2.6.1.tar.gz ++++++
/work/SRC/openSUSE:Factory/kea/kea-2.6.0.tar.gz /work/SRC/openSUSE:Factory/.kea.new.19354/kea-2.6.1.tar.gz differ: char 13, line 1
1
0