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
August 2024
- 2 participants
- 1399 discussions
Script 'mail_helper' called by obssrc
Hello community,
here is the log from the commit of package libxml++ for openSUSE:Factory checked in at 2024-08-14 14:13:59
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/libxml++ (Old)
and /work/SRC/openSUSE:Factory/.libxml++.new.7232 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "libxml++"
Wed Aug 14 14:13:59 2024 rev:53 rq:1193730 version:5.2.1
Changes:
--------
--- /work/SRC/openSUSE:Factory/libxml++/libxml++.changes 2024-03-06 23:04:19.108849454 +0100
+++ /work/SRC/openSUSE:Factory/.libxml++.new.7232/libxml++.changes 2024-08-14 14:14:14.323003507 +0200
@@ -1,0 +2,26 @@
+Mon Aug 12 14:10:16 UTC 2024 - Bjørn Lie <bjorn.lie(a)gmail.com>
+
+- Update to version 5.2.1:
+ + Parser: Ignore deprecation of xmlParserCtxt members.
+ + Documentation: Don't link to removed developer-old.gnome.org.
+ + Meson build:
+ - Use libxml2 meson build when libxml2 is built as a subproject
+ - Require python3 >= 3.7. That's what Meson requires
+- Changes from version 5.2.0:
+ + Use callback functions with C linkage
+ + Documentation:
+ - Update Visual Studio build docs
+ - Remove AUTHORS and add general information to README.md
+ - Parser docs: Add a link to parser options
+ - README.md: Add info about building the documentation
+ + Meson build:
+ - Cleanup and fix libxml2 dep search
+ - Don't fail if warning_level=everything
+ - Add bcrypt dependency when libxml2 is a subproject
+ - Don't require the 'dot' command to build the documentation
+ - Add the build-manual option
+ + Build: Make it compatible with libxml2 >= 2.12.0 by modifying
+ #include directives
+- Add check section and run meson_test macro.
+
+-------------------------------------------------------------------
Old:
----
libxml++-5.0.3.tar.xz
New:
----
libxml++-5.2.1.tar.xz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ libxml++.spec ++++++
--- /var/tmp/diff_new_pack.rzQm45/_old 2024-08-14 14:14:15.055034109 +0200
+++ /var/tmp/diff_new_pack.rzQm45/_new 2024-08-14 14:14:15.059034275 +0200
@@ -20,13 +20,13 @@
%define base_ver 5.0
Name: libxml++
-Version: 5.0.3
+Version: 5.2.1
Release: 0
Summary: C++ Interface for XML Files
License: LGPL-2.1-or-later
Group: Development/Libraries/C and C++
URL: https://libxmlplusplus.github.io/libxmlplusplus
-Source0: https://download.gnome.org/sources/libxml++/%{base_ver}/%{name}-%{version}.…
+Source0: https://download.gnome.org/sources/libxml++/5.2/%{name}-%{version}.tar.xz
BuildRequires: c++_compiler
BuildRequires: fdupes
@@ -73,12 +73,15 @@
%ldconfig_scriptlets -n libxml++-%{so_ver}
+%check
+%meson_test
+
%files -n libxml++-%{so_ver}
%license COPYING
%{_libdir}/*.so.*
%files devel
-%doc AUTHORS ChangeLog NEWS README.md
+%doc ChangeLog NEWS README.md
%{_includedir}/libxml++-%{base_ver}
%dir %{_libdir}/libxml++-%{base_ver}
%dir %{_libdir}/libxml++-%{base_ver}/include
++++++ libxml++-5.0.3.tar.xz -> libxml++-5.2.1.tar.xz ++++++
++++ 35256 lines of diff (skipped)
1
0
Script 'mail_helper' called by obssrc
Hello community,
here is the log from the commit of package apache-commons-logging for openSUSE:Factory checked in at 2024-08-14 14:13:53
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/apache-commons-logging (Old)
and /work/SRC/openSUSE:Factory/.apache-commons-logging.new.7232 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "apache-commons-logging"
Wed Aug 14 14:13:53 2024 rev:26 rq:1193680 version:1.3.3
Changes:
--------
--- /work/SRC/openSUSE:Factory/apache-commons-logging/apache-commons-logging.changes 2024-02-21 17:52:20.578458036 +0100
+++ /work/SRC/openSUSE:Factory/.apache-commons-logging.new.7232/apache-commons-logging.changes 2024-08-14 14:14:01.930485459 +0200
@@ -1,0 +2,83 @@
+Fri Aug 9 08:05:34 UTC 2024 - Gus Kenion <gus.kenion(a)suse.com>
+
+- Upgrade to 1.3.3
+ * Bug Fixes:
+ + * LOGGING-193: Update Log4j 2 OSGi imports #268.
+ + * Fix PMD UnnecessaryFullyQualifiedName in SimpleLog.
+ + * Fix NullPointerException in SimpleLog#write(Object) on null
+ input.
+ + Fix NullPointerException in SimpleLog#write(StringBuffer) on
+ null input.
+- Includes changes from 1.3.2
+ * Fixed Bugs
+ + LOGGING-190: Add OSGi metadata to enable Service Loader
+ Mediator #234.
+ + LOGGING-191: Apache commons logging shows 1.4 as latest
+ release instead of 1.3.1.
+ + Deprecate
+ org.apache.commons.logging.LogSource.jdk14IsAvailable.
+- Includes changes from 1.3.1
+ * New features
+ + Add Maven property project.build.outputTimestamp for build
+ reproducibility.
+ * Fixed Bugs
+ + Remove references to very old JDK and Commons Logging
+ versions #201.
+ + Update from Logj 1 to the Log4j 2 API compatibility layer
+ #231.
+ + Allow Servlet 4 in OSGi environment #191.
+ + Fix generics warnings #213.
+ + LOGGING-189: Fix Import-Package entry for org.slf4j #188.
+- Includes changes from 1.3.0
+ * New Features:
+ + Add support for Log4j API and SLF4J #177.
+ + Deprecate org.apache.commons.logging.impl.WeakHashtable
+ without replacement. LOGGING-188: Deprecate and disable
+ `Jdk13LumberjackLogger` and `Log4JLogger`. LOGGING-173:
+ + Deprecate and disable `AvalonLogger` and `LogKitLogger`.
+ + LOGGING-165: Add Automatic-Module-Name Manifest Header for
+ Java 9 compatibility.
+ * Fixed Bugs:
+ + LOGGING-163: BufferedReader is not closed properly.
+ + LOGGING-177: Remove redundant initializer #46
+ + Use a weak reference for the cached class loader #71.
+ + Add more entries to .gitignore file #25.
+ + Minor Improvements #34.
+ + [StepSecurity] ci: Harden GitHub Actions #145.
+ + LOGGING-185: Replace custom code with `ServiceLoader` call.
+ + Fix possible NPEs in LogFactoryImpl.
+ + LOGGING-185: Fix failing tests #180.
+ + Deprecate LogConfigurationException.cause in favor of
+ getCause().
+ + Fix SpotBugs [ERROR] High: Found reliance on default encoding
+ in org.apache.commons.logging.LogFactory.initDiagnostics():
+ new java.io.PrintStream(OutputStream)
+ [org.apache.commons.logging.LogFactory] At
+ LogFactory.java:[line 1205] DM_DEFAULT_ENCODING.
+ + Fix SpotBugs [ERROR] Medium: Class
+ org.apache.commons.logging.impl.WeakHashtable defines
+ non-transient non-serializable instance field queue
+ [org.apache.commons.logging.impl.WeakHashtable] In
+ WeakHashtable.java SE_BAD_FIELD.
+ + Set java.logging as optional module #183.
+ + Fix SpotBugs [ERROR] Medium: Switch statement found in
+ org.apache.commons.logging.impl.SimpleLog.log(int, Object,
+ Throwable) where default case is missing
+ [org.apache.commons.logging.impl.SimpleLog] At
+ SimpleLog.java:[lines 505-522] SF_SWITCH_NO_DEFAULT.
+ + Deprecate
+ org.apache.commons.logging.impl.Jdk13LumberjackLogger.dummyLevel
+ without replacement.
+- Remove deprecated patch files:
+ * commons-logging-1.1.3-src-junit.diff
+ * commons-logging-1.2-sourcetarget.patch
+ * commons-logging-manifests.patch
+ * no-tests.patch
+- Reinstate ant build (removed upstream)
+ * add build.xml
+ * add build.properties
+- Remove unnecessary dependencies
+ * add commons-logging-1.3.3-dependencies.patch
+- Add upstream dev's public key to apache-commons-logging.keyring
+
+-------------------------------------------------------------------
Old:
----
commons-logging-1.1.3-src-junit.diff
commons-logging-1.2-sourcetarget.patch
commons-logging-1.2-src.tar.gz
commons-logging-1.2-src.tar.gz.asc
commons-logging-manifests.patch
no-tests.patch
New:
----
build.properties
build.xml
commons-logging-1.3.3-dependencies.patch
commons-logging-1.3.3-src.tar.gz
commons-logging-1.3.3-src.tar.gz.asc
BETA DEBUG BEGIN:
Old:- Remove deprecated patch files:
* commons-logging-1.1.3-src-junit.diff
* commons-logging-1.2-sourcetarget.patch
Old: * commons-logging-1.1.3-src-junit.diff
* commons-logging-1.2-sourcetarget.patch
* commons-logging-manifests.patch
Old: * commons-logging-1.2-sourcetarget.patch
* commons-logging-manifests.patch
* no-tests.patch
Old: * commons-logging-manifests.patch
* no-tests.patch
- Reinstate ant build (removed upstream)
BETA DEBUG END:
BETA DEBUG BEGIN:
New:- Remove unnecessary dependencies
* add commons-logging-1.3.3-dependencies.patch
- Add upstream dev's public key to apache-commons-logging.keyring
BETA DEBUG END:
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ apache-commons-logging.spec ++++++
--- /var/tmp/diff_new_pack.kda0lz/_old 2024-08-14 14:14:03.246540475 +0200
+++ /var/tmp/diff_new_pack.kda0lz/_new 2024-08-14 14:14:03.250540642 +0200
@@ -20,23 +20,22 @@
%define base_name logging
%define short_name commons-%{base_name}
Name: apache-%{short_name}
-Version: 1.2
+Version: 1.3.3
Release: 0
Summary: Apache Commons Logging
License: Apache-2.0
-URL: http://commons.apache.org/%{base_name}
-Source0: http://www.apache.org/dist/commons/%{base_name}/source/%{short_name}-%{vers…
-Source1: http://www.apache.org/dist/commons/%{base_name}/source/%{short_name}-%{vers…
+URL: https://commons.apache.org/%{base_name}
+Source0: https://archive.apache.org/dist/commons/%{base_name}/source/%{short_name}-%…
+Source1: https://archive.apache.org/dist/commons/%{base_name}/source/%{short_name}-%…
Source2: apache-commons-logging.keyring
Source4: http://central.maven.org/maven2/%{short_name}/%{short_name}-api/1.1/%{short…
-Patch0: commons-logging-1.1.3-src-junit.diff
-Patch1: commons-logging-1.2-sourcetarget.patch
-Patch2: commons-logging-manifests.patch
-Patch3: no-tests.patch
+Source5: build.xml
+Source6: build.properties
+Patch0: commons-logging-1.3.3-dependencies.patch
BuildRequires: ant
BuildRequires: glassfish-servlet-api
BuildRequires: java-devel >= 1.8
-BuildRequires: javapackages-local
+BuildRequires: javapackages-local >= 6
BuildRequires: reload4j
Requires: java >= 1.8
Provides: jakarta-%{short_name} = %{version}-%{release}
@@ -59,10 +58,10 @@
%prep
%autosetup -p1 -n %{short_name}-%{version}-src
-sed -i 's/\r//' RELEASE-NOTES.txt LICENSE.txt
+cp %{SOURCE5} build.xml
+cp %{SOURCE6} build.properties
-#FIXME
-rm ./src/test/java/org/apache/commons/logging/servlet/BasicServletTestCase.java
+sed -i 's/\r//' RELEASE-NOTES.txt LICENSE.txt
%pom_remove_parent .
@@ -93,11 +92,11 @@
# pom
install -d -m 755 %{buildroot}%{_mavenpomdir}
-install -pm 644 pom.xml %{buildroot}/%{_mavenpomdir}/%{short_name}-%{version}.pom
+%mvn_install_pom pom.xml %{buildroot}/%{_mavenpomdir}/%{short_name}-%{version}.pom
sed 's#<version>1.1</version>#<version>1.2</version>#g' < %{SOURCE4} > tmp.pom
-install -pm 644 tmp.pom %{buildroot}/%{_mavenpomdir}/%{short_name}-api-%{version}.pom
+%mvn_install_pom tmp.pom %{buildroot}/%{_mavenpomdir}/%{short_name}-api-%{version}.pom
sed -e 's#<version>1.1</version>#<version>1.2</version>#g' -e "s#%{short_name}-api#%{short_name}-adapters#g" < %{SOURCE4} > tmp.pom
-install -pm 644 tmp.pom %{buildroot}/%{_mavenpomdir}/%{short_name}-adapters-%{version}.pom
+%mvn_install_pom tmp.pom %{buildroot}/%{_mavenpomdir}/%{short_name}-adapters-%{version}.pom
%add_maven_depmap %{short_name}-%{version}.pom %{short_name}.jar -a "org.apache.commons:%{short_name}","apache:%{short_name}"
%add_maven_depmap %{short_name}-api-%{version}.pom %{short_name}-api.jar -a "org.apache.commons:%{short_name}-api","apache:%{short_name}-api"
%add_maven_depmap %{short_name}-adapters-%{version}.pom %{short_name}-adapters.jar -a "org.apache.commons:%{short_name}-adapters","apache:%{short_name}-adapters"
++++++ apache-commons-logging.keyring ++++++
--- /var/tmp/diff_new_pack.kda0lz/_old 2024-08-14 14:14:03.306542983 +0200
+++ /var/tmp/diff_new_pack.kda0lz/_new 2024-08-14 14:14:03.310543151 +0200
@@ -69,3 +69,42 @@
=ChmV
-----END PGP PUBLIC KEY BLOCK-----
+
+pub 2048R/A11262CB 2011-04-12
+uid Gary David Gregory (Code signing key) <ggregory(a)apache.org>
+sig 3 A11262CB 2011-04-12 Gary David Gregory (Code signing key) <ggregory(a)apache.org>
+sub 2048R/AD3D7F94 2011-04-12
+sig A11262CB 2011-04-12 Gary David Gregory (Code signing key) <ggregory(a)apache.org>
+
+-----BEGIN PGP PUBLIC KEY BLOCK-----
+Version: GnuPG v1.4.11 (MingW32)
+
+mQENBE2kzuwBCACYV+G9yxNkSjAKSji0B5ipMGM74JAL1Ogtcu+993pLHHYsdXri
+WWXi37x9PLjeHxw63mN26SFyrbMJ4A8erLB03PDjw0DEzAwiu9P2vSvL/RFxGBbk
+cM0BTNXNR1rk8DpIzvXtejp8IHtD1qcDLTlJ8D0W3USebShDPo6NmMxTNuH0u99B
+WHCMAdSa34wsg0ZpffwQmRxeA+ebrf2ydKupGkeZsKjkLlaXNkTVp1ghn5ts/lvg
+KeHv1SJivWKCRmFlbPhBK4+mxSUSOPdoBNAfxA51QzZoPizSk0VbRz3YufYRVLFy
+9vqPSorDmYJhCvn3f6+A38FS/j8VE+8obQ2rABEBAAG0O0dhcnkgRGF2aWQgR3Jl
+Z29yeSAoQ29kZSBzaWduaW5nIGtleSkgPGdncmVnb3J5QGFwYWNoZS5vcmc+iQE4
+BBMBAgAiBQJNpM7sAhsDBgsJCAcDAgYVCAIJCgsEFgIDAQIeAQIXgAAKCRCG/cfi
+oRJiy2vXCACU6jW2+XIWuWBKSmeowBMxlUMJFSq7QjLt+o6B1ZYClbzBLDKcxlnS
+dF6v0jLhp71LozTde+HFI4/qIv6OO4UaGHin8Z1rNU/i5L07HkhLxcrbDoWhaSGD
+buRsWCv9ljm5GCXyK9s6Uj7d4af9mDWaGhNFJJFIs+yqOvTwffoaB7y+2a1YWStZ
+ZXDJ0KiHdY7xQ7bbYR/61MgvJslF1uX+u4jLTNmbU0tCXLtUrLd2VbJiAMFezqy6
+hV/ZxQLZoBPpr3FYhR2SIzNhQ30nj9AVcPgCCuLD49nx6Ad5CpcP8sTwb4aWk9GK
++Uu3Bfz4jTAvd9Q7TsRMt3NV+7sOGD4vuQENBE2kzuwBCACzeGpkd6X/xTfKDBWv
+XgHOOKIJ2pht9XmtZZKiIj7LIiSwvSds/ZkoZKxAm7AY+KPh8Xjf968FtoUBQJvH
+AG4rbowEqT7OOrJae2JcenH5qzaod7TpIPQVv+Ysz8I1wLlC6LzKRj1X99Hng6X+
+obsEasnPbmEEkuiZ/Sgi4vVC8SHkDmYt1Dx8jDgm53oUeWkEJO9LSI2zcrZhSgvg
+1xa4Q4gY5UUK7gE4LbmGCjFlATuuW/0sryxu8zxph15gkn4Nqgk0CPMSjesMYEGO
+sdDzfQXl2tXbt+Pe6mBoWh67MZ1v5zOq3EDtoSqDpWPxponAeaCuNDDFX44vGjfx
+GE0tABEBAAGJAR8EGAECAAkFAk2kzuwCGwwACgkQhv3H4qESYsvEMAf/VGyqIEcw
+4T2D3gZZ3ITkeoBevQdxBT/27xNvoWOZyGSzGYlRbRQrlo+uZsjfMc9MNvaSmxyy
+4gLVbcdvQr3PF//GxphJ98W8pk9l+M57jfyHnnCumn7MO4o9ed+WuigN5oeuNJ6B
+Iq3ff2o1DsrEvDChYOJEOeFuWxv+u7I2ABJJep7NbByM2n9PE8vlGU3zUBgWUBsk
+6jT+klKnEyHE76WzegPLz3jtElTuyB7jRhjyQJu1yiJEMbs2zH8aJGObi5f8Jum4
+tILZuEAdoI0M3c3VRq12cz/vLy+9VXa/s//8IsGn88kjyyYqOy8WJEjoOXFh++dp
+WiM7nZkgQcNi5A==
+=0UFs
+-----END PGP PUBLIC KEY BLOCK-----
+
++++++ build.properties ++++++
# Licensed to the Apache Software Foundation (ASF) under one or more
# contributor license agreements. See the NOTICE file distributed with
# this work for additional information regarding copyright ownership.
# The ASF licenses this file to You under the Apache License, Version 2.0
# (the "License"); you may not use this file except in compliance with
# the License. You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
######################################################################
#
# TO USE:
#
# Copy this file to build.properties and either
#
# a) Use 'ant getlibs' to populate the default directory
# with dependencies
# or b) Change the property values to appropriate values
#
########################################################################
# Apache Log4j 1.2.x series
log4j12.jar=lib/log4j-1.2.12.jar
# Apache Log4j 1.3.x series
# Note: Log4j 1.3 support not available in the 1.1 release
#log4j13.jar=lib/log4j-1.3.0.jar
# logkit.jar - Avalon LogKit classes (see http://jakarta.apache.org/avalon)
logkit.jar=lib/logkit-1.0.1.jar
# Avalon framework - used for wrapper for avalon framework logger
avalon-framework.jar=lib/avalon-framework-4.1.3.jar
# ServletApi - used to build ServletContextCleaner class
servletapi.jar=lib/servletapi-2.3.jar
#
# if you want to run the test cases, junit needs to be in the classpath.
# the build.xml uses a default value so you might not need to set this property.
# Note that version junit 3.8 is required and 3.8.1 recommended.
#
junit.jar=lib/junit-3.8.1.jar
# Maven properties (for web site build)
# Those committers using agents may like to use
#maven.username=rdonkin
#logging.cvs=lserver:rdonkin@cvs.apache.org:/home/cvs
# The path to a 1.4 JSDK javac
# Optional - used when building with a 1.2 JVM for releases
# executable.javac1.4=/opt/java/jdks/j2sdk1.4.2_10/bin/javac
++++++ build.xml ++++++
++++ 812 lines (skipped)
++++++ commons-logging-1.3.3-dependencies.patch ++++++
--- a/src/main/java/org/apache/commons/logging/impl/Log4jApiLogFactory.java
+++ /dev/null
@@ -1,239 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.apache.commons.logging.impl;
-
-import java.io.IOException;
-import java.util.concurrent.ConcurrentHashMap;
-import java.util.concurrent.ConcurrentMap;
-
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
-import org.apache.logging.log4j.Level;
-import org.apache.logging.log4j.LogManager;
-import org.apache.logging.log4j.Marker;
-import org.apache.logging.log4j.MarkerManager;
-import org.apache.logging.log4j.spi.AbstractLoggerAdapter;
-import org.apache.logging.log4j.spi.ExtendedLogger;
-import org.apache.logging.log4j.spi.LoggerAdapter;
-import org.apache.logging.log4j.spi.LoggerContext;
-import org.apache.logging.log4j.util.StackLocatorUtil;
-
-/**
- * Logger factory hardcoded to send everything to Log4j API.
- * <p>
- * Based on the `log4j-jcl` artifact from Apache Logging Services.
- * </p>
- *
- * @since 1.3.0
- */
-public final class Log4jApiLogFactory extends LogFactory {
-
- private static final class Log4j2Log implements Log {
-
- private static final String FQCN = Log4j2Log.class.getName();
-
- private final ExtendedLogger logger;
-
- public Log4j2Log(final ExtendedLogger logger) {
- this.logger = logger;
- }
-
- @Override
- public void debug(final Object message) {
- logIfEnabled(Level.DEBUG, message, null);
- }
-
- @Override
- public void debug(final Object message, final Throwable t) {
- logIfEnabled(Level.DEBUG, message, t);
- }
-
- @Override
- public void error(final Object message) {
- logIfEnabled(Level.ERROR, message, null);
- }
-
- @Override
- public void error(final Object message, final Throwable t) {
- logIfEnabled(Level.ERROR, message, t);
- }
-
- @Override
- public void fatal(final Object message) {
- logIfEnabled(Level.FATAL, message, null);
- }
-
- @Override
- public void fatal(final Object message, final Throwable t) {
- logIfEnabled(Level.FATAL, message, t);
- }
-
- @Override
- public void info(final Object message) {
- logIfEnabled(Level.INFO, message, null);
- }
-
- @Override
- public void info(final Object message, final Throwable t) {
- logIfEnabled(Level.INFO, message, t);
- }
-
- @Override
- public boolean isDebugEnabled() {
- return isEnabled(Level.DEBUG);
- }
-
- private boolean isEnabled(final Level level) {
- return logger.isEnabled(level, MARKER, null);
- }
-
- @Override
- public boolean isErrorEnabled() {
- return isEnabled(Level.ERROR);
- }
-
- @Override
- public boolean isFatalEnabled() {
- return isEnabled(Level.FATAL);
- }
-
- @Override
- public boolean isInfoEnabled() {
- return isEnabled(Level.INFO);
- }
-
- @Override
- public boolean isTraceEnabled() {
- return isEnabled(Level.TRACE);
- }
-
- @Override
- public boolean isWarnEnabled() {
- return isEnabled(Level.WARN);
- }
-
- private void logIfEnabled(final Level level, final Object message, final Throwable t) {
- if (message instanceof CharSequence) {
- logger.logIfEnabled(FQCN, level, MARKER, (CharSequence) message, t);
- } else {
- logger.logIfEnabled(FQCN, level, MARKER, message, t);
- }
- }
-
- @Override
- public void trace(final Object message) {
- logIfEnabled(Level.TRACE, message, null);
- }
-
- @Override
- public void trace(final Object message, final Throwable t) {
- logIfEnabled(Level.TRACE, message, t);
- }
-
- @Override
- public void warn(final Object message) {
- logIfEnabled(Level.WARN, message, null);
- }
-
- @Override
- public void warn(final Object message, final Throwable t) {
- logIfEnabled(Level.WARN, message, t);
- }
- }
- private static final class LogAdapter extends AbstractLoggerAdapter<Log> {
-
- @Override
- protected LoggerContext getContext() {
- return getContext(LogManager.getFactory().isClassLoaderDependent() ? StackLocatorUtil.getCallerClass(
- LogFactory.class) : null);
- }
-
- @Override
- protected Log newLogger(final String name, final LoggerContext context) {
- return new Log4j2Log(context.getLogger(name));
- }
-
- }
-
- private static final String[] EMPTY_ARRAY = {};
-
- /**
- * Marker used by all messages coming from Apache Commons Logging.
- */
- private static final Marker MARKER = MarkerManager.getMarker("COMMONS-LOGGING");
-
- /**
- * Caches Log instances
- */
- private final LoggerAdapter<Log> adapter = new LogAdapter();
-
- private final ConcurrentMap<String, Object> attributes = new ConcurrentHashMap<>();
-
- /**
- * Constructs a new instance.
- */
- public Log4jApiLogFactory() {
- // empty
- }
-
- @Override
- public Object getAttribute(final String name) {
- return attributes.get(name);
- }
-
- @Override
- public String[] getAttributeNames() {
- return attributes.keySet().toArray(EMPTY_ARRAY);
- }
-
- @Override
- public Log getInstance(final Class<?> clazz) {
- return getInstance(clazz.getName());
- }
-
- @Override
- public Log getInstance(final String name) {
- return adapter.getLogger(name);
- }
-
- /**
- * This method is supposed to clear all loggers. In this implementation it will clear all the logger
- * wrappers but the loggers managed by the underlying logger context will not be.
- */
- @Override
- public void release() {
- try {
- adapter.close();
- } catch (final IOException ignored) {
- // Ignore
- }
- }
-
- @Override
- public void removeAttribute(final String name) {
- attributes.remove(name);
- }
-
- @Override
- public void setAttribute(final String name, final Object value) {
- if (value != null) {
- attributes.put(name, value);
- } else {
- removeAttribute(name);
- }
- }
-}
--- a/src/main/java/org/apache/commons/logging/impl/Slf4jLogFactory.java
+++ /dev/null
@@ -1,330 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.apache.commons.logging.impl;
-
-import static org.slf4j.spi.LocationAwareLogger.DEBUG_INT;
-import static org.slf4j.spi.LocationAwareLogger.ERROR_INT;
-import static org.slf4j.spi.LocationAwareLogger.INFO_INT;
-import static org.slf4j.spi.LocationAwareLogger.TRACE_INT;
-import static org.slf4j.spi.LocationAwareLogger.WARN_INT;
-
-import java.util.concurrent.ConcurrentHashMap;
-import java.util.concurrent.ConcurrentMap;
-
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogConfigurationException;
-import org.apache.commons.logging.LogFactory;
-import org.slf4j.ILoggerFactory;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-import org.slf4j.Marker;
-import org.slf4j.MarkerFactory;
-import org.slf4j.spi.LocationAwareLogger;
-
-/**
- * Logger factory hardcoded to send everything to SLF4J.
- *
- * @since 1.3.0
- */
-public final class Slf4jLogFactory extends LogFactory {
-
- private static final class Slf4jLocationAwareLog implements Log {
-
- private static final String FQCN = Slf4jLocationAwareLog.class.getName();
-
- private final LocationAwareLogger logger;
-
- public Slf4jLocationAwareLog(final LocationAwareLogger logger) {
- this.logger = logger;
- }
-
- @Override
- public void debug(final Object message) {
- log(DEBUG_INT, message, null);
- }
-
- @Override
- public void debug(final Object message, final Throwable t) {
- log(DEBUG_INT, message, t);
- }
-
- @Override
- public void error(final Object message) {
- log(ERROR_INT, message, null);
- }
-
- @Override
- public void error(final Object message, final Throwable t) {
- log(ERROR_INT, message, t);
- }
-
- @Override
- public void fatal(final Object message) {
- error(message);
- }
-
- @Override
- public void fatal(final Object message, final Throwable t) {
- error(message, t);
- }
-
- @Override
- public void info(final Object message) {
- log(INFO_INT, message, null);
- }
-
- @Override
- public void info(final Object message, final Throwable t) {
- log(INFO_INT, message, t);
- }
-
- @Override
- public boolean isDebugEnabled() {
- return logger.isDebugEnabled(MARKER);
- }
-
- @Override
- public boolean isErrorEnabled() {
- return logger.isErrorEnabled(MARKER);
- }
-
- @Override
- public boolean isFatalEnabled() {
- return isErrorEnabled();
- }
-
- @Override
- public boolean isInfoEnabled() {
- return logger.isInfoEnabled(MARKER);
- }
-
- @Override
- public boolean isTraceEnabled() {
- return logger.isTraceEnabled(MARKER);
- }
-
- @Override
- public boolean isWarnEnabled() {
- return logger.isWarnEnabled(MARKER);
- }
-
- private void log(final int level, final Object message, final Throwable t) {
- logger.log(MARKER, FQCN, level, String.valueOf(message), EMPTY_OBJECT_ARRAY, t);
- }
-
- @Override
- public void trace(final Object message) {
- log(TRACE_INT, message, null);
- }
-
- @Override
- public void trace(final Object message, final Throwable t) {
- log(TRACE_INT, message, t);
- }
-
- @Override
- public void warn(final Object message) {
- log(WARN_INT, message, null);
- }
-
- @Override
- public void warn(final Object message, final Throwable t) {
- log(WARN_INT, message, t);
- }
- }
- private static class Slf4jLog implements Log {
-
- private final Logger logger;
-
- public Slf4jLog(final Logger logger) {
- this.logger = logger;
- }
-
- @Override
- public void debug(final Object message) {
- logger.debug(MARKER, String.valueOf(message));
- }
-
- @Override
- public void debug(final Object message, final Throwable t) {
- logger.debug(MARKER, String.valueOf(message), t);
- }
-
- @Override
- public void error(final Object message) {
- logger.error(MARKER, String.valueOf(message));
- }
-
- @Override
- public void error(final Object message, final Throwable t) {
- logger.debug(MARKER, String.valueOf(message), t);
- }
-
- @Override
- public void fatal(final Object message) {
- error(message);
- }
-
- @Override
- public void fatal(final Object message, final Throwable t) {
- error(message, t);
- }
-
- @Override
- public void info(final Object message) {
- logger.info(MARKER, String.valueOf(message));
- }
-
- @Override
- public void info(final Object message, final Throwable t) {
- logger.info(MARKER, String.valueOf(message), t);
- }
-
- @Override
- public boolean isDebugEnabled() {
- return logger.isDebugEnabled(MARKER);
- }
-
- @Override
- public boolean isErrorEnabled() {
- return logger.isErrorEnabled(MARKER);
- }
-
- @Override
- public boolean isFatalEnabled() {
- return isErrorEnabled();
- }
-
- @Override
- public boolean isInfoEnabled() {
- return logger.isInfoEnabled(MARKER);
- }
-
- @Override
- public boolean isTraceEnabled() {
- return logger.isTraceEnabled(MARKER);
- }
-
- @Override
- public boolean isWarnEnabled() {
- return logger.isWarnEnabled(MARKER);
- }
-
- @Override
- public void trace(final Object message) {
- logger.trace(MARKER, String.valueOf(message));
- }
-
- @Override
- public void trace(final Object message, final Throwable t) {
- logger.trace(MARKER, String.valueOf(message), t);
- }
-
- @Override
- public void warn(final Object message) {
- logger.warn(MARKER, String.valueOf(message));
- }
-
- @Override
- public void warn(final Object message, final Throwable t) {
- logger.warn(MARKER, String.valueOf(message), t);
- }
- }
-
- private static final Object[] EMPTY_OBJECT_ARRAY = {};
-
- private static final String[] EMPTY_STRING_ARRAY = {};
-
- /**
- * Marker used by all messages coming from Apache Commons Logging.
- */
- private static final Marker MARKER = MarkerFactory.getMarker("COMMONS-LOGGING");
-
- /**
- * Caches Log instances.
- * <p>
- * The SLF4J reference implementation (Logback) has a single logger context, so each call to
- * {@link #getInstance(String)}
- * should give the same result.
- * </p>
- */
- private final ConcurrentMap<String, Log> loggers = new ConcurrentHashMap<>();
-
- private final ConcurrentMap<String, Object> attributes = new ConcurrentHashMap<>();
-
- /**
- * Constructs a new instance.
- */
- public Slf4jLogFactory() {
- // empty
- }
-
- @Override
- public Object getAttribute(final String name) {
- return attributes.get(name);
- }
-
- @Override
- public String[] getAttributeNames() {
- return attributes.keySet().toArray(EMPTY_STRING_ARRAY);
- }
-
- @Override
- public Log getInstance(final Class<?> clazz) throws LogConfigurationException {
- return getInstance(clazz.getName());
- }
-
- @Override
- public Log getInstance(final String name) {
- return loggers.computeIfAbsent(name, n -> {
- final Logger logger = LoggerFactory.getLogger(n);
- return logger instanceof LocationAwareLogger ? new Slf4jLocationAwareLog((LocationAwareLogger) logger) : new Slf4jLog(
- logger);
- });
- }
-
- /**
- * This method is supposed to clear all loggers.
- * <p>
- * In this implementation it calls a "stop" method if the logger factory supports it. This is the case of
- * Logback.
- * </p>
- */
- @Override
- public void release() {
- final ILoggerFactory factory = LoggerFactory.getILoggerFactory();
- try {
- factory.getClass().getMethod("stop").invoke(factory);
- } catch (final ReflectiveOperationException ignored) {
- // empty
- }
- }
-
- @Override
- public void removeAttribute(final String name) {
- attributes.remove(name);
- }
-
- @Override
- public void setAttribute(final String name, final Object value) {
- if (value != null) {
- attributes.put(name, value);
- } else {
- removeAttribute(name);
- }
- }
-}
++++++ commons-logging-1.2-src.tar.gz -> commons-logging-1.3.3-src.tar.gz ++++++
++++ 22907 lines of diff (skipped)
1
0
Script 'mail_helper' called by obssrc
Hello community,
here is the log from the commit of package apache-commons-lang3 for openSUSE:Factory checked in at 2024-08-14 14:13:52
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/apache-commons-lang3 (Old)
and /work/SRC/openSUSE:Factory/.apache-commons-lang3.new.7232 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "apache-commons-lang3"
Wed Aug 14 14:13:52 2024 rev:11 rq:1193668 version:3.16.0
Changes:
--------
--- /work/SRC/openSUSE:Factory/apache-commons-lang3/apache-commons-lang3.changes 2024-05-15 21:24:21.280723023 +0200
+++ /work/SRC/openSUSE:Factory/.apache-commons-lang3.new.7232/apache-commons-lang3.changes 2024-08-14 14:13:59.642389810 +0200
@@ -1,0 +2,159 @@
+Fri Aug 9 09:54:03 UTC 2024 - Gus Kenion <gus.kenion(a)suse.com>
+
+- Update to 3.16.0:
+ * New features:
+ + Add StopWatch.getSplitDuration() and deprecate
+ getSplitTime().
+ + Add StopWatch.getStartInstant() and deprecate getStartTime().
+ + Add StopWatch.getStopInstant() and deprecate getStopTime().
+ + Add StopWatch.getDuration() and deprecate getTime().
+ + Add Javadoc links from StopWatch to DurationUtils #1249.
+ + Add LangCollectors.collect(Collector, T...).
+ + Add RandomStringUtils.secure().
+ + Add RandomStringUtils.insecure().
+ * Fixed bugs:
+ + Reimplement StopWatch internals to use java.time.
+ + RandomStringUtils.random() with a negative character index
+ should throw IllegalArgumentException. Fixes LANG-1745.
+ + LocaleUtils.toLocale(String) cannot parse four segments.
+ Fixes LANG-1741.
+ + Use fewer intermediary strings in
+ DefaultExceptionContext.getFormattedExceptionMessage(String).
+ + Fix Javadoc in StringUtils.splitPreserveAllTokens() #1251.
+ + Deprecate ArraySort constructor for removal.
+ + Deprecate CharEncoding constructor for removal.
+ + Deprecate Conversion constructor for removal.
+ + Deprecate Conversion constructor for removal.
+ + Deprecate EntityArrays constructor for removal.
+ + Deprecate ObjectToStringComparator constructor for removal.
+ + Deprecate RuntimeEnvironment constructor for removal.
+- Includes changes from 3.15.0:
+ * New features:
+ + Customize text pattern in DiffResult#toString(). Fixes
+ LANG-1724.
+ + Add DiffBuilder.Builder.
+ + Add DiffBuilder.builder().
+ + Add ReflectionDiffBuilder.Builder.
+ + Add ReflectionDiffBuilder.builder().
+ + Add test in TypeUtilsTest #1151.
+ + Add Streams.failableStream(T), non-varargs variant.
+ + Add Streams.nonNull(T), non-varargs variant.
+ + Add ArrayUtils.nullTo(T[], T[]).
+ + Add T ArrayUtils.arraycopy(T, int, T, int, int) fluent style.
+ + Add T ArrayUtils.arraycopy(T, int, int, int, Function) fluent
+ style.
+ + Add SystemUtils.IS_JAVA_22.
+ + Add JavaVersion.JAVA_22.
+ + Add SystemProperties.getUserName(Supplier<String>).
+ + Add SystemProperties.getLineSeparator(Supplier<String>).
+ + Add
+ + SystemProperties.getJavaSpecificationVersion(Supplier<String>).
+ + Add SystemProperties constants and methods for system
+ properties as of Java 22.
+ + Add MethodUtils.getMethodObject(Class, String, Class...).
+ + Add null-safe Consumers.accept() and Functions.apply() #1215.
+ Fixes LANG-1733.
+ + Add SystemUtils.IS_OS_ANDROID.
+ + Add SystemUtils.IS_OS_MAC_OSX_SONOMA.
+ + Add RuntimeEnvironment.inContainer() #1241.
+ + Add AppendableJoiner and refactor string joining #1244.
+ * Fixed bugs:
+ + Improve Javadoc in ExceptionUtils #1136.
+ + Fixed two non-deterministic tests in EnumUtilsTest.java
+ #1131.
+ + Fix wrong number check that cause
+ StringIndexOutOfBoundsException #1140. Fixes LANG-1721.
+ + Rethrow NegativeArraySizeException as SerializationException
+ in SerializationUtils.deserialize(InputStream) #1141. Fixes
+ LANG-1722.
+ + Throw NumberFormatException instead of
+ IndexOutOfBoundsException in NumberUtils.getMantissa(String,
+ int) #1145. Fixes LANG-1723.
+ + Minor grammar fixes #1143.
+ + ArrayUtils will return null when adding two null arrays, but
+ undocumented. Fixes LANG-1713.
+ + Let parent POM figure out commons.spdx.version.
+ + Undeprecate ExceptionUtils.rethrow(Throwable). Fixes
+ LANG-1726.
+ + Test the Conversion class #1155. Fixes LANG-1702.
+ + Address minor redundancies after code inspection #1148.
+ + Allow EventListenerSupport to handle (and ignore) exception
+ from listeners allowing invocation of all listeners #1167.
+ + Deprecate AnnotationUtils 0-argument constructor.
+ + Deprecate ArchUtils 0-argument constructor.
+ + Deprecate ArrayUtils 0-argument constructor.
+ + Deprecate BooleanUtils 0-argument constructor.
+ + Deprecate CharSequenceUtils 0-argument constructor.
+ + Deprecate CharSetUtils 0-argument constructor.
+ + Deprecate CharUtils 0-argument constructor.
+ + Deprecate ClassLoaderUtils 0-argument constructor.
+ + Deprecate ClassPathUtils 0-argument constructor.
+ + Deprecate ClassUtils 0-argument constructor.
+ + Deprecate ConstructorUtils 0-argument constructor.
+ + Deprecate DateFormatUtils 0-argument constructor.
+ + Deprecate DateUtils 0-argument constructor.
+ + Deprecate Diff.getType().
+ + Deprecate DiffBuilder.DiffBuilder(T, T, ToStringStyle).
+ + Deprecate DiffBuilder.DiffBuilder(T, T, ToStringStyle,
+ boolean).
+ + Deprecate DurationFormatUtils 0-argument constructor.
+ + Deprecate DurationUtils 0-argument constructor.
+ + Deprecate EnumUtils 0-argument constructor.
+ + Deprecate EventUtils 0-argument constructor.
+ + Deprecate FieldUtils 0-argument constructor.
+ + Deprecate IEEE754rUtils 0-argument constructor.
+ + Deprecate InheritanceUtils 0-argument constructor.
+ + Deprecate IntStreams 0-argument constructor.
+ + Deprecate LocaleUtils 0-argument constructor.
+ + Deprecate LockingVisitors 0-argument constructor.
+ + Deprecate MemberUtils 0-argument constructor.
+ + Deprecate MethodUtils 0-argument constructor.
+ + Deprecate NumberUtils 0-argument constructor.
+ + Deprecate ObjectUtils 0-argument constructor.
+ + Deprecate RandomStringUtils 0-argument constructor.
+ + Deprecate RandomUtils 0-argument constructor.
+ + Deprecate ReflectionDiffBuilder.ReflectionDiffBuilder(T, T,
+ ToStringStyle).
+ + Deprecate RegExUtils 0-argument constructor.
+ + Deprecate SerializationUtils 0-argument constructor.
+ + Deprecate Streams 0-argument constructor.
+ + Deprecate StringEscapeUtils 0-argument constructor.
+ + Deprecate StringUtils 0-argument constructor.
+ + Deprecate Suppliers 0-argument constructor.
+ + Deprecate SystemProperties 0-argument constructor.
+ + Deprecate ThreadUtils 0-argument constructor.
+ + Deprecate TypeUtils 0-argument constructor.
+ + Make ArrayFill null-safe.
+ + Make ArraySorter null-safe.
+ + Make ArrayUtils.removeAll() null-safe.
+ + Fix Java version in README.md #1170.
+ + StringUtils.stripAccents() should handle ligatures, UTF32
+ math blocks, etc. #1201.
+ + TypeUtils.toString(Type) StackOverflowError for an inner
+ class in the inner class parameterized enclosing class #657.
+ Fixes LANG-1524.
+ + Deprecate SystemUtils.getUserName(String) in favor of
+ SystemProperties.getUserName(Supplier).
+ + Make LockVisitor.acceptReadLocked(FailableConsumer)
+ null-safe.
+ + Make LockVisitor.applyWriteLocked(FailableConsumer)
+ null-safe.
+ + Make ObjectUtils.getFirstNonNull(Supplier...) null-safe.
+ + Make SystemProperties.getLineSeparator(Supplier).
+ + StringUtils.stripAccents(String) doesn't handle "\u0111" and
+ "\u0110" (Vietnamese) #1216.
+ + StringUtils.stripAccents(String) doesn't handle I with bar.
+ + StringUtils.stripAccents(String) doesn't handle U with bar.
+ + StringUtils.stripAccents(String) doesn't handle T with
+ stroke.
+ + Fix Javadoc for FluentBitSet.setInclusive(int, int) #1222.
+ Fixes LANG-1735.
+ + Same Javadoc changes as [TEXT-234] #1223.
+ + Remove duplicate static data in
+ SerializationUtils.ClassLoaderAwareObjectInputStream.
+ + Reimplement RandomUtils and RandomStringUtils on top of
+ SecureRandom#getInstanceStrong() #1235.
+ + DiffBuilder: Type constraint for method append(...,
+ DiffResult) too strict #786. Fixes LANG-1657.
+
+-------------------------------------------------------------------
Old:
----
commons-lang3-3.14.0-src.tar.gz
New:
----
commons-lang3-3.16.0-src.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ apache-commons-lang3.spec ++++++
--- /var/tmp/diff_new_pack.mpQIlE/_old 2024-08-14 14:14:00.550427768 +0200
+++ /var/tmp/diff_new_pack.mpQIlE/_new 2024-08-14 14:14:00.550427768 +0200
@@ -19,7 +19,7 @@
%define base_name lang3
%define short_name commons-%{base_name}
Name: apache-%{short_name}
-Version: 3.14.0
+Version: 3.16.0
Release: 0
Summary: Apache Commons Lang Package
License: Apache-2.0
++++++ commons-lang3-3.14.0-src.tar.gz -> commons-lang3-3.16.0-src.tar.gz ++++++
++++ 40280 lines of diff (skipped)
1
0
Script 'mail_helper' called by obssrc
Hello community,
here is the log from the commit of package apache-commons-codec for openSUSE:Factory checked in at 2024-08-14 14:13:50
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/apache-commons-codec (Old)
and /work/SRC/openSUSE:Factory/.apache-commons-codec.new.7232 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "apache-commons-codec"
Wed Aug 14 14:13:50 2024 rev:27 rq:1193660 version:1.17.1
Changes:
--------
--- /work/SRC/openSUSE:Factory/apache-commons-codec/apache-commons-codec.changes 2024-05-03 19:43:25.834410065 +0200
+++ /work/SRC/openSUSE:Factory/.apache-commons-codec.new.7232/apache-commons-codec.changes 2024-08-14 14:13:51.874065153 +0200
@@ -1,0 +2,14 @@
+Mon Aug 12 12:19:01 UTC 2024 - Gus Kenion <gus.kenion(a)suse.com>
+
+- Update to 1.17.1
+ * Bug fixes:
+ + Md5Crypt now throws IllegalArgumentException on an invalid
+ prefix.
+ * Dependency Updates:
+ + Bump org.apache.commons:commons-parent from 69 to 71 #286.
+ + Bump org.codehaus.mojo:animal-sniffer-maven-plugin from 1.23
+ to 1.24 #293.
+ + Bump org.codehaus.mojo:taglist-maven-plugin from 3.0.0 to
+ 3.1.0 #292.
+
+-------------------------------------------------------------------
Old:
----
commons-codec-1.17.0-src.tar.gz
commons-codec-1.17.0-src.tar.gz.asc
New:
----
commons-codec-1.17.1-src.tar.gz
commons-codec-1.17.1-src.tar.gz.asc
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ apache-commons-codec.spec ++++++
--- /var/tmp/diff_new_pack.rFUMS2/_old 2024-08-14 14:13:53.006112391 +0200
+++ /var/tmp/diff_new_pack.rFUMS2/_new 2024-08-14 14:13:53.006112391 +0200
@@ -20,7 +20,7 @@
%define base_name codec
%define short_name commons-%{base_name}
Name: apache-commons-codec
-Version: 1.17.0
+Version: 1.17.1
Release: 0
Summary: Apache Commons Codec Package
License: Apache-2.0
++++++ apache-commons-codec-build.xml ++++++
--- /var/tmp/diff_new_pack.rFUMS2/_old 2024-08-14 14:13:53.038113730 +0200
+++ /var/tmp/diff_new_pack.rFUMS2/_new 2024-08-14 14:13:53.042113896 +0200
@@ -10,7 +10,7 @@
<property name="project.groupId" value="commons-codec"/>
<property name="project.artifactId" value="commons-codec"/>
- <property name="project.version" value="1.17.0"/>
+ <property name="project.version" value="1.17.1"/>
<property name="project.name" value="Apache Commons Codec"/>
<property name="project.description" value="The Apache Commons Codec package
contains simple encoder and decoders for various formats such as Base64 and Hexadecimal.
++++++ commons-codec-1.17.0-src.tar.gz -> commons-codec-1.17.1-src.tar.gz ++++++
++++ 2645 lines of diff (skipped)
1
0
Script 'mail_helper' called by obssrc
Hello community,
here is the log from the commit of package discord for openSUSE:Factory:NonFree checked in at 2024-08-14 14:13:16
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory:NonFree/discord (Old)
and /work/SRC/openSUSE:Factory:NonFree/.discord.new.7232 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "discord"
Wed Aug 14 14:13:16 2024 rev:61 rq:1193771 version:0.0.63
Changes:
--------
--- /work/SRC/openSUSE:Factory:NonFree/discord/discord.changes 2024-08-02 17:24:53.679260111 +0200
+++ /work/SRC/openSUSE:Factory:NonFree/.discord.new.7232/discord.changes 2024-08-14 14:13:20.364750700 +0200
@@ -1,0 +2,6 @@
+Sun Aug 11 06:09:57 UTC 2024 - Wojciech Kazubski <wk(a)ire.pw.edu.pl>
+
+- Update to version 0.0.63:
+ * No upstream release notes.
+
+-------------------------------------------------------------------
Old:
----
discord-0.0.62.tar.gz
New:
----
discord-0.0.63.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ discord.spec ++++++
--- /var/tmp/diff_new_pack.Lj6f5Q/_old 2024-08-14 14:13:21.796810440 +0200
+++ /var/tmp/diff_new_pack.Lj6f5Q/_new 2024-08-14 14:13:21.796810440 +0200
@@ -25,7 +25,7 @@
# This is to enable build with patent encoumbered codecs. Not allowed in OBS
%bcond_with x264
Name: discord
-Version: 0.0.62
+Version: 0.0.63
Release: 0
Summary: Voice and Text Chat for Gamers
License: SUSE-NonFree
++++++ discord-0.0.62.tar.gz -> discord-0.0.63.tar.gz ++++++
/work/SRC/openSUSE:Factory:NonFree/discord/discord-0.0.62.tar.gz /work/SRC/openSUSE:Factory:NonFree/.discord.new.7232/discord-0.0.63.tar.gz differ: char 12, line 1
1
0
Script 'mail_helper' called by obssrc
Hello community,
here is the log from the commit of package xv for openSUSE:Factory:NonFree checked in at 2024-08-14 14:13:16
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory:NonFree/xv (Old)
and /work/SRC/openSUSE:Factory:NonFree/.xv.new.7232 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "xv"
Wed Aug 14 14:13:16 2024 rev:25 rq:1193721 version:6.0.0
Changes:
--------
--- /work/SRC/openSUSE:Factory:NonFree/xv/xv.changes 2024-07-01 11:18:00.261888959 +0200
+++ /work/SRC/openSUSE:Factory:NonFree/.xv.new.7232/xv.changes 2024-08-14 14:13:17.400627047 +0200
@@ -1,0 +2,14 @@
+Tue Aug 13 13:59:43 UTC 2024 - Dr. Werner Fink <werner(a)suse.de>
+
+- Update to 6.0.0 (2024-08-12) based on xv-3.10a
+ * Add basic HiDPI support.
+ * Improve the compatibility of the source code with more modern C standards
+ (e.g., C23).
+ * Fix the build with link-time optimization (#25).
+ * Fix many other bugs.
+- Port patches
+ * xv-3.10a-overflow.dif
+ * xv-3.10a.dif
+- Drop patch xv-more-bmp-formats.patch as now upstream
+
+-------------------------------------------------------------------
Old:
----
xv-3.10a-js-5.2.0.tar.gz
xv-more-bmp-formats.patch
New:
----
xv-3.10a-js-6.0.0.tar.gz
BETA DEBUG BEGIN:
Old: * xv-3.10a.dif
- Drop patch xv-more-bmp-formats.patch as now upstream
BETA DEBUG END:
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ xv.spec ++++++
--- /var/tmp/diff_new_pack.mK9YaY/_old 2024-08-14 14:13:18.496672770 +0200
+++ /var/tmp/diff_new_pack.mK9YaY/_new 2024-08-14 14:13:18.496672770 +0200
@@ -21,7 +21,7 @@
%endif
Name: xv
-Version: 5.2.0
+Version: 6.0.0
Release: 0
Summary: GIF/TIFF/JPEG/PostScript Image Viewer
License: SUSE-NonFree
@@ -35,7 +35,6 @@
Source4: xv.png
Source5: xv-tests.tar.bz2
Patch0: xv-3.10a.dif
-Patch2: xv-more-bmp-formats.patch
Patch3: xv-3.10a-overflow.dif
BuildRequires: cmake
BuildRequires: dos2unix
@@ -86,7 +85,6 @@
%prep
%setup -n xv-3.10a-js-%{version}
-%patch -P2 -b .mbmp
%patch -P3 -b .ovf
%patch -P0 -b .p0
@@ -129,6 +127,7 @@
%{_distconfdir}/xv_mgcsfx
%{_datadir}/applications/xv.desktop
%{_datadir}/pixmaps/xv.png
+%{_datadir}/pixmaps/xv.xpm
%{_bindir}/bggen
%{_bindir}/vdcomp
%{_bindir}/xcmap
++++++ xv-3.10a-js-5.2.0.tar.gz -> xv-3.10a-js-6.0.0.tar.gz ++++++
++++ 25723 lines of diff (skipped)
++++++ xv-3.10a-overflow.dif ++++++
--- /var/tmp/diff_new_pack.mK9YaY/_old 2024-08-14 14:13:18.920690459 +0200
+++ /var/tmp/diff_new_pack.mK9YaY/_new 2024-08-14 14:13:18.924690626 +0200
@@ -10,35 +10,24 @@
! with a false negative check.
!
---
- src/xv.c | 33 ++++++++++++++++-----------------
- src/xv.h | 16 +++++++++++++++-
- src/xvbmp.c | 9 ++++++---
- src/xvpbm.c | 38 ++++++++++++++++++++++++++++++++------
- src/xvpcx.c | 3 ++-
- src/xvtext.c | 4 ++--
- 6 files changed, 73 insertions(+), 30 deletions(-)
+ src/xv.c | 25 ++++++++++++-------------
+ src/xv.h | 17 ++++++++++++++++-
+ src/xvpbm.c | 38 ++++++++++++++++++++++++++++++++------
+ src/xvpcx.c | 3 ++-
+ 4 files changed, 62 insertions(+), 21 deletions(-)
--- src/xv.c
-+++ src/xv.c 2023-05-30 09:09:45.343497970 +0000
-@@ -64,7 +64,7 @@ static const char *maingeom = NULL;
- static const char *icongeom = NULL;
++++ src/xv.c 2024-08-13 13:24:01.832191677 +0000
+@@ -51,7 +51,7 @@ static const char *icongeom = NULL;
static Atom __SWM_VROOT = None;
+ static int dpiMultSet = 0;
-static char basefname[NAME_MAX+1]; /* just the current fname, no path */
+static char basefname[MAXNAMELEN+1]; /* just the current fname, no path */
#ifdef TV_L10N
# ifndef TV_FONTSET
-@@ -2104,7 +2104,7 @@ static int openPic(filenum)
- int oldCXOFF, oldCYOFF, oldCWIDE, oldCHIGH, wascropped;
- char *tmp;
- char *fullname, /* full name of the original file */
-- filename[512]; /* full name of file to load (could be /tmp/xxx)*/
-+ filename[MAXPATHLEN+1]; /* full name of file to load (could be /tmp/xxx)*/
- #ifdef MACBINARY
- char origname[512]; /* file name of original file (NO processing) */
- origname[0] = '\0';
-@@ -2147,7 +2147,7 @@ static int openPic(filenum)
+@@ -2233,7 +2233,7 @@ static int openPic(int filenum)
return 0;
}
@@ -47,7 +36,7 @@
fullname = filename;
goto HAVE_FILENAME;
}
-@@ -2192,9 +2192,9 @@ static int openPic(filenum)
+@@ -2278,9 +2278,9 @@ static int openPic(int filenum)
if (!i) goto FAILED; /* shouldn't happen */
fullname = fullfname;
@@ -60,7 +49,7 @@
if (killpage) { /* kill old page files, if any */
-@@ -2237,7 +2237,7 @@ static int openPic(filenum)
+@@ -2323,7 +2323,7 @@ static int openPic(int filenum)
fullname = GetDirFullName();
if (ISPIPE(fullname[0])) { /* read from a pipe. */
@@ -69,7 +58,7 @@
if (readpipe(fullname, filename)) goto FAILED;
frompipe = 1;
}
-@@ -2259,10 +2259,9 @@ static int openPic(filenum)
+@@ -2345,10 +2345,9 @@ static int openPic(int filenum)
else fullname = namelist[filenum];
#endif
@@ -83,7 +72,7 @@
/* chop off trailing ".Z", ".z", or ".gz" from displayed basefname, if any */
if (strlen(basefname)>2 && strcmp(basefname+strlen(basefname)-2,".Z")==0)
-@@ -2358,7 +2357,7 @@ static int openPic(filenum)
+@@ -2448,7 +2447,7 @@ static int openPic(int filenum)
}
}
@@ -92,7 +81,7 @@
/* if the file is STDIN, write it out to a temp file */
-@@ -2370,7 +2369,7 @@ static int openPic(filenum)
+@@ -2460,7 +2459,7 @@ static int openPic(int filenum)
#endif
#ifndef VMS
@@ -101,7 +90,7 @@
#else /* it is VMS */
sprintf(filename, "[]xvXXXXXX");
#endif
-@@ -2428,7 +2427,7 @@ static int openPic(filenum)
+@@ -2518,7 +2517,7 @@ static int openPic(int filenum)
/* if we made a /tmp file (from stdin, etc.) won't need it any more */
if (strcmp(fullname,filename)!=0) unlink(filename);
@@ -110,27 +99,9 @@
}
else filetype = RFT_ERROR;
-@@ -2482,14 +2481,14 @@ static int openPic(filenum)
-
- filetype = ReadFileType(tmpname);
- if (strcmp(fullname,filename)!=0) unlink(filename);
-- strcpy(filename, tmpname);
-+ strncpy(filename, tmpname, sizeof(filename)-1);
- }
- ms_auto_no:
- #endif /* HAVE_MGCSFX_AUTO */
-
- if (filetype == RFT_ERROR) {
-- char foostr[512];
-- sprintf(foostr,"Can't open file '%s'\n\n %s.",filename, ERRSTR(errno));
-+ char foostr[256+MAXPATHLEN+1];
-+ snprintf(foostr, sizeof(foostr)-1, "Can't open file '%s'\n\n %s.",filename, ERRSTR(errno));
-
- if (!polling) ErrPopUp(foostr, "\nBummer!");
-
--- src/xv.h
-+++ src/xv.h 2023-05-30 08:48:51.110190986 +0000
-@@ -117,6 +117,9 @@
++++ src/xv.h 2024-08-13 13:49:08.173562534 +0000
+@@ -118,6 +118,9 @@
# ifndef _LINUX_LIMITS_H
# include <linux/limits.h>
# endif
@@ -140,7 +111,7 @@
# ifndef USLEEP
# define USLEEP
# endif
-@@ -370,9 +373,20 @@
+@@ -371,7 +374,19 @@
#endif
#ifndef MAXPATHLEN
@@ -150,20 +121,19 @@
+# else
+# define MAXPATHLEN 512
+# endif
- #endif
-
++#endif
++
+#ifndef MAXNAMELEN
+# ifdef NAME_MAX
+# define MAXNAMELEN NAME_MAX
+# else
+# define MAXNAMELEN 128
+# endif
-+#endif
+ #endif
- #ifdef SVR4
- # define random lrand48
+ #define XV_MAXQUOTEDPATHLEN (3 * MAXPATHLEN + 10)
--- src/xvpbm.c
-+++ src/xvpbm.c 2023-05-30 09:09:45.347497898 +0000
++++ src/xvpbm.c 2024-08-13 13:51:11.747365804 +0000
@@ -5,6 +5,7 @@
* WritePBM(fp,pic,ptype,w,h,r,g,b,numcols,style,raw,cmt,comment)
*/
@@ -172,7 +142,7 @@
#include "copyright.h"
#include "xv.h"
-@@ -234,12 +235,17 @@ static int loadpbm(fp, pinfo, raw)
+@@ -229,12 +230,17 @@ static int loadpbm(FILE *fp, PICINFO *pi
byte *pic8;
byte *pix;
int i,j,bit,w,h,npixels;
@@ -191,7 +161,7 @@
return pbmError(bname, "image dimensions too large");
pic8 = (byte *) calloc((size_t) npixels, (size_t) 1);
-@@ -305,13 +311,17 @@ static int loadpgm(fp, pinfo, raw, maxv)
+@@ -297,13 +303,17 @@ static int loadpgm(FILE *fp, PICINFO *pi
{
byte *pix, *pic8;
int i,j,bitshift,w,h,npixels, holdmaxv;
@@ -211,7 +181,7 @@
return pbmError(bname, "image dimensions too large");
pic8 = (byte *) calloc((size_t) npixels, (size_t) 1);
-@@ -389,13 +399,20 @@ static int loadppm(fp, pinfo, raw, maxv)
+@@ -378,13 +388,20 @@ static int loadppm(FILE *fp, PICINFO *pi
{
byte *pix, *pic24, scale[256];
int i,j,bitshift, w, h, npixels, bufsize, holdmaxv;
@@ -233,15 +203,15 @@
return pbmError(bname, "image dimensions too large");
/* allocate 24-bit image */
-@@ -481,6 +498,7 @@ static int loadpam(fp, pinfo, raw, maxv)
+@@ -467,6 +484,7 @@ static int loadpam(FILE *fp, PICINFO *pi
{
byte *p, *pix, *pic24, *linebuf, scale[256], bgR, bgG, bgB, r, g, b, a;
- int i, j, bitshift, w, h, npixels, bufsize, linebufsize, holdmaxv;
+ int i, j, w, h, npixels, bufsize, linebufsize, holdmaxv;
+ uint64_t bufchk, pixchk, lnbchk;
+ /* int bitshift; */
w = pinfo->w;
- h = pinfo->h;
-@@ -488,8 +506,16 @@ static int loadpam(fp, pinfo, raw, maxv)
+@@ -475,8 +493,16 @@ static int loadpam(FILE *fp, PICINFO *pi
npixels = w * h;
bufsize = 3*npixels;
linebufsize = 4*w;
@@ -261,9 +231,9 @@
/* allocate 24-bit image */
--- src/xvpcx.c
-+++ src/xvpcx.c 2023-05-30 13:31:20.392741202 +0000
-@@ -255,7 +255,8 @@ static int pcxLoadImage24(fname, fp, pin
- byte *hdr;
++++ src/xvpcx.c 2024-08-13 13:52:07.662371779 +0000
+@@ -245,7 +245,8 @@ static int pcxLoadImage8(const char *fna
+ static int pcxLoadImage24(const char *fname, FILE *fp, PICINFO *pinfo, byte *hdr)
{
byte *pix, *pic24, scale[256];
- int c, i, j, w, h, maxv, cnt, planes, bperlin, nbytes, count;
@@ -272,18 +242,4 @@
w = pinfo->w; h = pinfo->h;
---- src/xvtext.c
-+++ src/xvtext.c 2023-05-30 09:09:45.347497898 +0000
-@@ -545,9 +545,9 @@ void ChangeCommentText()
- tv->freeonclose = 0;
-
- if (strlen(fullfname))
-- sprintf(tv->title, "File: '%s'", BaseName(fullfname));
-+ snprintf(tv->title, TITLELEN-1, "File: '%s'", BaseName(fullfname));
- else
-- sprintf(tv->title, "<no file loaded>");
-+ snprintf(tv->title, TITLELEN-1, "<no file loaded>");
-
- computeText(tv); /* compute # lines and linestarts array */
-
++++++ xv-3.10a.dif ++++++
--- /var/tmp/diff_new_pack.mK9YaY/_old 2024-08-14 14:13:18.940691293 +0200
+++ /var/tmp/diff_new_pack.mK9YaY/_new 2024-08-14 14:13:18.944691460 +0200
@@ -8,8 +8,8 @@
6 files changed, 40 insertions(+), 42 deletions(-)
--- src/CMakeLists.txt
-+++ src/CMakeLists.txt 2024-02-07 10:53:14.907067976 +0000
-@@ -146,17 +146,17 @@ set(man_pages
++++ src/CMakeLists.txt 2024-08-13 13:55:34.654691865 +0000
+@@ -157,17 +157,17 @@ set(man_pages
foreach(file ${man_pages})
string(REGEX REPLACE "\\.[^.]*$" "" base ${file})
install(
@@ -30,7 +30,7 @@
DESTINATION "${CMAKE_INSTALL_MANDIR}/fi/man1")
# Install files into SYSCONFDIR.
-@@ -184,7 +184,6 @@ install(FILES
+@@ -195,7 +195,6 @@ install(FILES
# Install files into DOCDIR/formats.
install(FILES
docs/formats/bmp.doc
@@ -39,7 +39,7 @@
docs/formats/gif89.doc
docs/formats/gif.ack
--- src/bggen.c
-+++ src/bggen.c 2024-02-07 10:53:27.578834066 +0000
++++ src/bggen.c 2024-08-13 13:55:34.654691865 +0000
@@ -36,7 +36,7 @@
#define MAXCOLS 128
@@ -50,7 +50,7 @@
#endif
--- src/config.h
-+++ src/config.h 2024-02-07 10:53:27.578834066 +0000
++++ src/config.h 2024-08-13 13:55:34.654691865 +0000
@@ -14,13 +14,13 @@
* 'which gunzip' to find if you have gunzip, and where it lives; ditto for
* gzip)
@@ -76,7 +76,7 @@
#endif
-@@ -52,7 +52,7 @@
+@@ -67,7 +67,7 @@
* as it tries to be clever on systems where uncompress lives in an unusual
* location.
*/
@@ -85,7 +85,7 @@
#if defined(hpux) || defined(SVR4) || \
defined(__386BSD__) || defined(__FreeBSD__) || defined(__NetBSD__) || \
-@@ -63,7 +63,7 @@
+@@ -78,7 +78,7 @@
machine has or not.
*/
# undef UNCOMPRESS
@@ -94,7 +94,7 @@
#endif
#if defined(sgi)
-@@ -113,7 +113,7 @@
+@@ -128,7 +128,7 @@
*/
/* #define GS_PATH "/usr/local/bin/gs" */
@@ -103,7 +103,7 @@
/* #define GS_LIB "." */
/* #define GS_DEV "ppmraw" */
-@@ -191,7 +191,7 @@
+@@ -206,7 +206,7 @@
* in the following line.
*/
@@ -112,7 +112,7 @@
/***************************************************************************
-@@ -207,7 +207,7 @@
+@@ -222,7 +222,7 @@
* is read-only), change 'undef' to 'define' the VIRTUAL_TD line.
*/
@@ -122,8 +122,8 @@
#if defined(VIRTUAL_TD) && !defined(AUTO_EXPAND)
--- src/xv.h
-+++ src/xv.h 2024-02-07 10:53:27.582833993 +0000
-@@ -98,12 +98,6 @@
++++ src/xv.h 2024-08-13 13:55:34.654691865 +0000
+@@ -99,12 +99,6 @@
# define SVR4
#endif
@@ -136,7 +136,7 @@
#include <signal.h> /* for interrupt handling */
-@@ -161,16 +155,6 @@
+@@ -162,16 +156,6 @@
#endif
@@ -153,7 +153,7 @@
/* include files */
#include <stdio.h>
#include <math.h>
-@@ -333,7 +317,9 @@
+@@ -334,7 +318,9 @@
# endif
#endif
@@ -164,7 +164,7 @@
/* Use S_ISxxx macros in stat-related stuff
* make them if missing, along with a few fictitious ones
-@@ -445,6 +431,12 @@
+@@ -449,6 +435,12 @@
# define SEEK_END 2
#endif
@@ -178,8 +178,8 @@
# define strstr(A,B) pds_strstr((A),(B))
# undef S_IFIFO
--- src/xvevent.c
-+++ src/xvevent.c 2024-02-07 10:53:27.582833993 +0000
-@@ -2671,7 +2671,7 @@ int xvErrorHandler(disp, err)
++++ src/xvevent.c 2024-08-13 13:55:34.654691865 +0000
+@@ -2796,7 +2796,7 @@ int xvErrorHandler(Display *disp, XError
/* in case the error occurred during the Grab command... */
XUngrabServer(theDisp);
@@ -188,7 +188,7 @@
xerrcode = err->error_code;
-@@ -2689,6 +2689,8 @@ int xvErrorHandler(disp, err)
+@@ -2814,6 +2814,8 @@ int xvErrorHandler(Display *disp, XError
(err->request_code == 113 /* X_KillClient */ ) ||
(xerrcode == BadLength && err->request_code==18 /* X_ChangeProp */ ) ||
(xerrcode == BadMatch && err->request_code==73 /* X_GetImage */ ) ||
@@ -198,7 +198,7 @@
return 0;
--- src/xvgrab.c
-+++ src/xvgrab.c 2024-02-07 10:53:27.582833993 +0000
++++ src/xvgrab.c 2024-08-13 13:57:26.644700779 +0000
@@ -12,6 +12,7 @@
#include "copyright.h"
@@ -207,7 +207,7 @@
#include "xv.h"
/* Allow flexibility in use of buttons JPD */
-@@ -103,7 +104,6 @@ int Grab()
+@@ -103,7 +104,6 @@ int Grab(void)
else if (ctrlW) CtrlBox(0);
}
@@ -215,7 +215,7 @@
XSync(theDisp, False);
if (grabDelay>0) { /* instead of sleep(), handle events while waiting */
-@@ -133,7 +133,6 @@ int Grab()
+@@ -133,7 +133,6 @@ int Grab(void)
grabInProgress = 0;
}
@@ -223,7 +223,7 @@
rootGC = DefaultGC(theDisp, theScreen);
if (grabPic) { /* throw away previous 'grabbed' pic, if there is one */
-@@ -149,7 +148,6 @@ int Grab()
+@@ -149,7 +148,6 @@ int Grab(void)
XRecolorCursor(theDisp, tcross, &fc, &bc);
#endif
@@ -231,7 +231,7 @@
XBell(theDisp, 0); /* beep once at start of grab */
/* Change cursor to top_left_corner JPD */
-@@ -157,9 +155,6 @@ int Grab()
+@@ -157,9 +155,6 @@ int Grab(void)
PointerMotionMask|ButtonPressMask|ButtonReleaseMask,
GrabModeAsync, GrabModeAsync, None, tlcorner, CurrentTime);
@@ -241,7 +241,7 @@
if (autograb) {
XGrabServer(theDisp); /* until we've done the grabImage */
if (!XQueryPointer(theDisp,rootW,&rW,&cW,&rx,&ry,&x1,&y1,&mask)) {
-@@ -172,14 +167,24 @@ int Grab()
+@@ -172,14 +167,24 @@ int Grab(void)
}
else { /* !autograb */
@@ -268,7 +268,7 @@
}
/* continue to handle events while waiting... */
-@@ -191,7 +196,7 @@ int Grab()
+@@ -191,7 +196,7 @@ int Grab(void)
i = HandleEvent(&evt, &done);
if (done) { /* only 'new image' cmd accepted=quit */
if (i==QUIT) {
@@ -277,7 +277,7 @@
Quit(0);
}
else XBell(theDisp, 0);
-@@ -217,7 +222,7 @@ int Grab()
+@@ -217,7 +222,7 @@ int Grab(void)
}
}
@@ -286,8 +286,8 @@
XBell(theDisp, 0);
XBell(theDisp, 0);
rv = 0;
-@@ -489,7 +494,7 @@ static void endflash()
- static void ungrabX()
+@@ -486,7 +491,7 @@ static void endflash(void)
+ static void ungrabX(void)
{
XUngrabServer(theDisp);
- XUngrabButton(theDisp, (u_int) AnyButton, 0, rootW);
1
0
Script 'mail_helper' called by obssrc
Hello community,
here is the log from the commit of package 000product for openSUSE:Factory checked in at 2024-08-13 18:15:15
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/000product (Old)
and /work/SRC/openSUSE:Factory/.000product.new.7232 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "000product"
Tue Aug 13 18:15:15 2024 rev:4107 rq: version:unknown
Changes:
--------
New Changes file:
NO CHANGES FILE!!!
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ MicroOS-dvd5-dvd-x86_64.kiwi ++++++
--- /var/tmp/diff_new_pack.2oYZF8/_old 2024-08-13 18:15:23.605786661 +0200
+++ /var/tmp/diff_new_pack.2oYZF8/_new 2024-08-13 18:15:23.613787002 +0200
@@ -1,4 +1,4 @@
-<image name="OBS__MicroOS___20240812" schemaversion="4.1">
+<image name="OBS__MicroOS___20240813" schemaversion="4.1">
<description type="system">
<author>The SUSE Team</author>
<contact>build(a)opensuse.org</contact>
@@ -35,11 +35,11 @@
<productvar name="SEPARATE_MEDIA">true</productvar>
<productvar name="SHA1OPT">-x -2</productvar>
<productvar name="VENDOR">openSUSE</productvar>
- <productvar name="VERSION">20240812</productvar>
+ <productvar name="VERSION">20240813</productvar>
<productinfo name="CONTENTSTYLE">11</productinfo>
- <productinfo name="DISTRO">cpe:/o:opensuse:microos:20240812,openSUSE MicroOS</productinfo>
+ <productinfo name="DISTRO">cpe:/o:opensuse:microos:20240813,openSUSE MicroOS</productinfo>
<productinfo name="LINGUAS">en_US </productinfo>
- <productinfo name="REPOID">obsproduct://build.opensuse.org/openSUSE:Factory/MicroOS/20240812/x86_64</productinfo>
+ <productinfo name="REPOID">obsproduct://build.opensuse.org/openSUSE:Factory/MicroOS/20240813/x86_64</productinfo>
<productinfo name="VENDOR">openSUSE</productinfo>
<productoption name="INI_DIR">/usr/share/kiwi/modules/plugins/tumbleweed</productoption>
<productoption name="PLUGIN_DIR">/usr/share/kiwi/modules/plugins/tumbleweed</productoption>
@@ -557,13 +557,17 @@
<repopackage name="libavc1394-0"/>
<repopackage name="libavcodec58_134"/>
<repopackage name="libavcodec60"/>
+ <repopackage name="libavcodec61"/>
+ <repopackage name="libavfilter10"/>
<repopackage name="libavfilter9"/>
<repopackage name="libavformat58_76"/>
<repopackage name="libavformat60"/>
+ <repopackage name="libavformat61"/>
<repopackage name="libavif16"/>
<repopackage name="libavtp0"/>
<repopackage name="libavutil56_70"/>
<repopackage name="libavutil58"/>
+ <repopackage name="libavutil59"/>
<repopackage name="libb2-1"/>
<repopackage name="libbacktrace0"/>
<repopackage name="libbasicobjects0"/>
@@ -1155,6 +1159,7 @@
<repopackage name="libportaudio2"/>
<repopackage name="libpostproc55_9"/>
<repopackage name="libpostproc57"/>
+ <repopackage name="libpostproc58"/>
<repopackage name="libproc2-0"/>
<repopackage name="libprojectM3"/>
<repopackage name="libprotobuf-c1"/>
@@ -1350,8 +1355,10 @@
<repopackage name="libSvtAv1Enc2"/>
<repopackage name="libswresample3_9"/>
<repopackage name="libswresample4"/>
+ <repopackage name="libswresample5"/>
<repopackage name="libswscale5_9"/>
<repopackage name="libswscale7"/>
+ <repopackage name="libswscale8"/>
<repopackage name="libsystemd0"/>
<repopackage name="libtag2"/>
<repopackage name="libtalloc2"/>
@@ -1385,6 +1392,7 @@
<repopackage name="libtukit4"/>
<repopackage name="libtwolame0"/>
<repopackage name="libubsan1"/>
+ <repopackage name="libuchardet0"/>
<repopackage name="libudev1"/>
<repopackage name="libudisks2-0"/>
<repopackage name="libunistring5"/>
++++++ openSUSE-Addon-NonOss-ftp-ftp-x86_64.kiwi ++++++
--- /var/tmp/diff_new_pack.2oYZF8/_old 2024-08-13 18:15:23.677789736 +0200
+++ /var/tmp/diff_new_pack.2oYZF8/_new 2024-08-13 18:15:23.681789906 +0200
@@ -1,4 +1,4 @@
-<image name="OBS__openSUSE-Addon-NonOss___20240812" schemaversion="4.1">
+<image name="OBS__openSUSE-Addon-NonOss___20240813" schemaversion="4.1">
<description type="system">
<author>The SUSE Team</author>
<contact>build(a)opensuse.org</contact>
@@ -35,11 +35,11 @@
<productvar name="SEPARATE_MEDIA">true</productvar>
<productvar name="SHA1OPT">-x -2</productvar>
<productvar name="VENDOR">openSUSE</productvar>
- <productvar name="VERSION">20240812</productvar>
+ <productvar name="VERSION">20240813</productvar>
<productinfo name="CONTENTSTYLE">11</productinfo>
- <productinfo name="DISTRO">cpe:/o:opensuse:opensuse-addon-nonoss:20240812,openSUSE NonOSS Addon</productinfo>
+ <productinfo name="DISTRO">cpe:/o:opensuse:opensuse-addon-nonoss:20240813,openSUSE NonOSS Addon</productinfo>
<productinfo name="LINGUAS">af ar be_BY bg br ca cy el et ga gl gu_IN he hi_IN hr ka km ko lt mk nn pa_IN rw sk sl sr_CS ss st tg th tr uk ve vi xh zu </productinfo>
- <productinfo name="REPOID">obsproduct://build.opensuse.org/openSUSE:Factory/openSUSE-Addon-NonOss/2024…</productinfo>
+ <productinfo name="REPOID">obsproduct://build.opensuse.org/openSUSE:Factory/openSUSE-Addon-NonOss/2024…</productinfo>
<productinfo name="VENDOR">openSUSE</productinfo>
<productoption name="INI_DIR">/usr/share/kiwi/modules/plugins/tumbleweed</productoption>
<productoption name="PLUGIN_DIR">/usr/share/kiwi/modules/plugins/tumbleweed</productoption>
++++++ openSUSE-cd-mini-x86_64.kiwi ++++++
--- /var/tmp/diff_new_pack.2oYZF8/_old 2024-08-13 18:15:23.721791614 +0200
+++ /var/tmp/diff_new_pack.2oYZF8/_new 2024-08-13 18:15:23.725791785 +0200
@@ -1,4 +1,4 @@
-<image name="OBS__openSUSE___20240812" schemaversion="4.1">
+<image name="OBS__openSUSE___20240813" schemaversion="4.1">
<description type="system">
<author>The SUSE Team</author>
<contact>build(a)opensuse.org</contact>
@@ -35,11 +35,11 @@
<productvar name="SEPARATE_MEDIA">true</productvar>
<productvar name="SHA1OPT">-x -2</productvar>
<productvar name="VENDOR">openSUSE</productvar>
- <productvar name="VERSION">20240812</productvar>
+ <productvar name="VERSION">20240813</productvar>
<productinfo name="CONTENTSTYLE">11</productinfo>
- <productinfo name="DISTRO">cpe:/o:opensuse:opensuse:20240812,openSUSE Tumbleweed</productinfo>
+ <productinfo name="DISTRO">cpe:/o:opensuse:opensuse:20240813,openSUSE Tumbleweed</productinfo>
<productinfo name="LINGUAS">cs da de el en en_GB en_US es fr hu it ja pl pt pt_BR ru zh zh_CN zh_TW </productinfo>
- <productinfo name="REPOID">obsproduct://build.opensuse.org/openSUSE:Factory/openSUSE/20240812/x86_64</productinfo>
+ <productinfo name="REPOID">obsproduct://build.opensuse.org/openSUSE:Factory/openSUSE/20240813/x86_64</productinfo>
<productinfo name="VENDOR">openSUSE</productinfo>
<productoption name="INI_DIR">/usr/share/kiwi/modules/plugins/tumbleweed</productoption>
<productoption name="PLUGIN_DIR">/usr/share/kiwi/modules/plugins/tumbleweed</productoption>
++++++ openSUSE-dvd5-dvd-x86_64.kiwi ++++++
--- /var/tmp/diff_new_pack.2oYZF8/_old 2024-08-13 18:15:23.757793152 +0200
+++ /var/tmp/diff_new_pack.2oYZF8/_new 2024-08-13 18:15:23.765793493 +0200
@@ -1,4 +1,4 @@
-<image name="OBS__openSUSE___20240812" schemaversion="4.1">
+<image name="OBS__openSUSE___20240813" schemaversion="4.1">
<description type="system">
<author>The SUSE Team</author>
<contact>build(a)opensuse.org</contact>
@@ -35,11 +35,11 @@
<productvar name="SEPARATE_MEDIA">true</productvar>
<productvar name="SHA1OPT">-x -2</productvar>
<productvar name="VENDOR">openSUSE</productvar>
- <productvar name="VERSION">20240812</productvar>
+ <productvar name="VERSION">20240813</productvar>
<productinfo name="CONTENTSTYLE">11</productinfo>
- <productinfo name="DISTRO">cpe:/o:opensuse:opensuse:20240812,openSUSE Tumbleweed</productinfo>
+ <productinfo name="DISTRO">cpe:/o:opensuse:opensuse:20240813,openSUSE Tumbleweed</productinfo>
<productinfo name="LINGUAS">cs da de el en en_GB en_US es fr hu it ja pl pt pt_BR ru zh zh_CN zh_TW </productinfo>
- <productinfo name="REPOID">obsproduct://build.opensuse.org/openSUSE:Factory/openSUSE/20240812/x86_64</productinfo>
+ <productinfo name="REPOID">obsproduct://build.opensuse.org/openSUSE:Factory/openSUSE/20240813/x86_64</productinfo>
<productinfo name="VENDOR">openSUSE</productinfo>
<productoption name="INI_DIR">/usr/share/kiwi/modules/plugins/tumbleweed</productoption>
<productoption name="PLUGIN_DIR">/usr/share/kiwi/modules/plugins/tumbleweed</productoption>
@@ -1282,13 +1282,17 @@
<repopackage name="libavc1394-0"/>
<repopackage name="libavcodec58_134"/>
<repopackage name="libavcodec60"/>
+ <repopackage name="libavcodec61"/>
+ <repopackage name="libavfilter10"/>
<repopackage name="libavfilter9"/>
<repopackage name="libavformat58_76"/>
<repopackage name="libavformat60"/>
+ <repopackage name="libavformat61"/>
<repopackage name="libavif16"/>
<repopackage name="libavtp0"/>
<repopackage name="libavutil56_70"/>
<repopackage name="libavutil58"/>
+ <repopackage name="libavutil59"/>
<repopackage name="libayatana-appindicator3-1"/>
<repopackage name="libayatana-ido3-0_4-0"/>
<repopackage name="libayatana-indicator3-7"/>
@@ -2462,6 +2466,7 @@
<repopackage name="libportaudio2"/>
<repopackage name="libpostproc55_9"/>
<repopackage name="libpostproc57"/>
+ <repopackage name="libpostproc58"/>
<repopackage name="libpotrace0"/>
<repopackage name="libpq5"/>
<repopackage name="libpresage1"/>
@@ -2774,8 +2779,10 @@
<repopackage name="libSvtAv1Enc2"/>
<repopackage name="libswresample3_9"/>
<repopackage name="libswresample4"/>
+ <repopackage name="libswresample5"/>
<repopackage name="libswscale5_9"/>
<repopackage name="libswscale7"/>
+ <repopackage name="libswscale8"/>
<repopackage name="libsynctex2"/>
<repopackage name="libsysfs2"/>
<repopackage name="libsystemd0"/>
@@ -2826,6 +2833,7 @@
<repopackage name="libtumbler-1-0"/>
<repopackage name="libtwolame0"/>
<repopackage name="libubsan1"/>
+ <repopackage name="libuchardet0"/>
<repopackage name="libudev1"/>
<repopackage name="libudisks2-0"/>
<repopackage name="libudisks2-0_btrfs"/>
++++++ openSUSE-ftp-ftp-x86_64.kiwi ++++++
--- /var/tmp/diff_new_pack.2oYZF8/_old 2024-08-13 18:15:23.821795884 +0200
+++ /var/tmp/diff_new_pack.2oYZF8/_new 2024-08-13 18:15:23.825796055 +0200
@@ -1,4 +1,4 @@
-<image name="OBS__openSUSE___20240812" schemaversion="4.1">
+<image name="OBS__openSUSE___20240813" schemaversion="4.1">
<description type="system">
<author>The SUSE Team</author>
<contact>build(a)opensuse.org</contact>
@@ -23,7 +23,7 @@
<productvar name="DISTNAME">openSUSE</productvar>
<productvar name="FLAVOR">ftp</productvar>
<productvar name="MAKE_LISTINGS">true</productvar>
- <productvar name="MEDIUM_NAME">openSUSE-20240812-x86_64</productvar>
+ <productvar name="MEDIUM_NAME">openSUSE-20240813-x86_64</productvar>
<productvar name="MULTIPLE_MEDIA">true</productvar>
<productvar name="PRODUCT_DIR">/</productvar>
<productvar name="PRODUCT_NAME">$DISTNAME-$FLAVOR</productvar>
@@ -35,11 +35,11 @@
<productvar name="SEPARATE_MEDIA">true</productvar>
<productvar name="SHA1OPT">-x -2</productvar>
<productvar name="VENDOR">openSUSE</productvar>
- <productvar name="VERSION">20240812</productvar>
+ <productvar name="VERSION">20240813</productvar>
<productinfo name="CONTENTSTYLE">11</productinfo>
- <productinfo name="DISTRO">cpe:/o:opensuse:opensuse:20240812,openSUSE Tumbleweed</productinfo>
+ <productinfo name="DISTRO">cpe:/o:opensuse:opensuse:20240813,openSUSE Tumbleweed</productinfo>
<productinfo name="LINGUAS">cs da de el en en_GB en_US es fr hu it ja pl pt pt_BR ru zh zh_CN zh_TW </productinfo>
- <productinfo name="REPOID">obsproduct://build.opensuse.org/openSUSE:Factory/openSUSE/20240812/x86_64</productinfo>
+ <productinfo name="REPOID">obsproduct://build.opensuse.org/openSUSE:Factory/openSUSE/20240813/x86_64</productinfo>
<productinfo name="VENDOR">openSUSE</productinfo>
<productoption name="DEBUGMEDIUM">2</productoption>
<productoption name="INI_DIR">/usr/share/kiwi/modules/plugins/tumbleweed</productoption>
++++++ Aeon.product ++++++
--- /var/tmp/diff_new_pack.2oYZF8/_old 2024-08-13 18:15:23.897799130 +0200
+++ /var/tmp/diff_new_pack.2oYZF8/_new 2024-08-13 18:15:23.905799472 +0200
@@ -6,7 +6,7 @@
<name>Aeon</name>
<releasepkgname>Aeon-release</releasepkgname>
<endoflife/>
- <version>20240812</version>
+ <version>20240813</version>
<!-- release is no longer optional -->
<release>0</release>
<productline>Aeon</productline>
++++++ Kalpa.product ++++++
--- /var/tmp/diff_new_pack.2oYZF8/_old 2024-08-13 18:15:23.957801692 +0200
+++ /var/tmp/diff_new_pack.2oYZF8/_new 2024-08-13 18:15:23.961801863 +0200
@@ -6,7 +6,7 @@
<name>Kalpa</name>
<releasepkgname>Kalpa-release</releasepkgname>
<endoflife/>
- <version>20240812</version>
+ <version>20240813</version>
<!-- release is no longer optional -->
<release>0</release>
<productline>Kalpa</productline>
++++++ MicroOS.product ++++++
--- /var/tmp/diff_new_pack.2oYZF8/_old 2024-08-13 18:15:23.989803059 +0200
+++ /var/tmp/diff_new_pack.2oYZF8/_new 2024-08-13 18:15:23.993803229 +0200
@@ -6,7 +6,7 @@
<name>MicroOS</name>
<releasepkgname>MicroOS-release</releasepkgname>
<endoflife/>
- <version>20240812</version>
+ <version>20240813</version>
<!-- release is no longer optional -->
<release>0</release>
<productline>MicroOS</productline>
++++++ dvd.group ++++++
--- /var/tmp/diff_new_pack.2oYZF8/_old 2024-08-13 18:15:24.085807158 +0200
+++ /var/tmp/diff_new_pack.2oYZF8/_new 2024-08-13 18:15:24.089807329 +0200
@@ -1741,14 +1741,18 @@
<package name="libavahi-ui-gtk3-0" supportstatus="unsupported"/> <!-- reason: dvd:patterns-gnome-gnome -->
<package name="libavc1394-0" supportstatus="unsupported"/> <!-- reason: dvd:patterns-gnome-gnome -->
<package name="libavcodec58_134" supportstatus="unsupported"/> <!-- reason: dvd:patterns-kde-kde -->
- <package name="libavcodec60" supportstatus="unsupported"/> <!-- reason: dvd:openSUSE-release -->
- <package name="libavfilter9" supportstatus="unsupported"/> <!-- reason: dvd:patterns-gnome-gnome -->
+ <package name="libavcodec60" supportstatus="unsupported"/> <!-- reason: dvd:patterns-kde-kde -->
+ <package name="libavcodec61" supportstatus="unsupported"/> <!-- reason: dvd:openSUSE-release -->
+ <package name="libavfilter10" supportstatus="unsupported"/> <!-- reason: dvd:patterns-gnome-gnome -->
+ <package name="libavfilter9" supportstatus="unsupported"/> <!-- reason: dvd:patterns-kde-kde -->
<package name="libavformat58_76" supportstatus="unsupported"/> <!-- reason: dvd:patterns-kde-kde -->
- <package name="libavformat60" supportstatus="unsupported"/> <!-- reason: dvd:openSUSE-release -->
+ <package name="libavformat60" supportstatus="unsupported"/> <!-- reason: dvd:patterns-kde-kde -->
+ <package name="libavformat61" supportstatus="unsupported"/> <!-- reason: dvd:openSUSE-release -->
<package name="libavif16" supportstatus="unsupported"/> <!-- reason: dvd:openSUSE-release -->
<package name="libavtp0" supportstatus="unsupported"/> <!-- reason: dvd:patterns-gnome-gnome -->
<package name="libavutil56_70" supportstatus="unsupported"/> <!-- reason: dvd:patterns-kde-kde -->
- <package name="libavutil58" supportstatus="unsupported"/> <!-- reason: dvd:openSUSE-release -->
+ <package name="libavutil58" supportstatus="unsupported"/> <!-- reason: dvd:patterns-kde-kde -->
+ <package name="libavutil59" supportstatus="unsupported"/> <!-- reason: dvd:openSUSE-release -->
<package name="libayatana-appindicator3-1" supportstatus="unsupported"/> <!-- reason: dvd:patterns-xfce-xfce -->
<package name="libayatana-ido3-0_4-0" supportstatus="unsupported"/> <!-- reason: dvd:patterns-xfce-xfce -->
<package name="libayatana-indicator3-7" supportstatus="unsupported"/> <!-- reason: dvd:patterns-xfce-xfce -->
@@ -2600,7 +2604,8 @@
<package name="libportal1" supportstatus="unsupported"/> <!-- reason: dvd:patterns-gnome-gnome -->
<package name="libportaudio2" supportstatus="unsupported"/> <!-- reason: dvd:patterns-gnome-gnome -->
<package name="libpostproc55_9" supportstatus="unsupported"/> <!-- reason: dvd:patterns-kde-kde -->
- <package name="libpostproc57" supportstatus="unsupported"/> <!-- reason: dvd:patterns-gnome-gnome -->
+ <package name="libpostproc57" supportstatus="unsupported"/> <!-- reason: dvd:patterns-kde-kde -->
+ <package name="libpostproc58" supportstatus="unsupported"/> <!-- reason: dvd:patterns-gnome-gnome -->
<package name="libpotrace0" supportstatus="unsupported"/> <!-- reason: dvd:inkscape -->
<package name="libpq5" supportstatus="unsupported"/> <!-- reason: dvd:postgresql -->
<package name="libpresage1" supportstatus="unsupported"/> <!-- reason: dvd:openSUSE-release -->
@@ -2801,9 +2806,11 @@
<package name="libsvn_auth_kwallet-1-0" supportstatus="unsupported"/> <!-- reason: dvd:patterns-media-rest_dvd -->
<package name="libsvrcore0" supportstatus="unsupported"/> <!-- reason: dvd:patterns-server-directory_server -->
<package name="libswresample3_9" supportstatus="unsupported"/> <!-- reason: dvd:patterns-kde-kde -->
- <package name="libswresample4" supportstatus="unsupported"/> <!-- reason: dvd:openSUSE-release -->
+ <package name="libswresample4" supportstatus="unsupported"/> <!-- reason: dvd:patterns-kde-kde -->
+ <package name="libswresample5" supportstatus="unsupported"/> <!-- reason: dvd:openSUSE-release -->
<package name="libswscale5_9" supportstatus="unsupported"/> <!-- reason: dvd:patterns-kde-kde -->
- <package name="libswscale7" supportstatus="unsupported"/> <!-- reason: dvd:patterns-gnome-gnome -->
+ <package name="libswscale7" supportstatus="unsupported"/> <!-- reason: dvd:patterns-kde-kde -->
+ <package name="libswscale8" supportstatus="unsupported"/> <!-- reason: dvd:patterns-gnome-gnome -->
<package name="libsynctex2" supportstatus="unsupported"/> <!-- reason: dvd:patterns-gnome-gnome -->
<package name="libsysfs2" supportstatus="unsupported"/> <!-- reason: dvd:patterns-media-rest_cd_core -->
<package name="libsystemd0" supportstatus="unsupported"/> <!-- reason: dvd:openSUSE-release -->
@@ -2854,6 +2861,7 @@
<package name="libtumbler-1-0" supportstatus="unsupported"/> <!-- reason: dvd:patterns-xfce-xfce -->
<package name="libtwolame0" supportstatus="unsupported"/> <!-- reason: dvd:openSUSE-release -->
<package name="libubsan1" supportstatus="unsupported"/> <!-- reason: dvd:patterns-gnome-gnome -->
+ <package name="libuchardet0" supportstatus="unsupported"/> <!-- reason: dvd:patterns-gnome-gnome -->
<package name="libudev1" supportstatus="unsupported"/> <!-- reason: dvd:openSUSE-release -->
<package name="libudisks2-0" supportstatus="unsupported"/> <!-- reason: dvd:grub2 -->
<package name="libudisks2-0_btrfs" supportstatus="unsupported"/> <!-- reason: dvd:grub2 -->
++++++ openSUSE-Addon-NonOss.product ++++++
--- /var/tmp/diff_new_pack.2oYZF8/_old 2024-08-13 18:15:24.113808354 +0200
+++ /var/tmp/diff_new_pack.2oYZF8/_new 2024-08-13 18:15:24.117808524 +0200
@@ -4,7 +4,7 @@
<product>
<vendor>openSUSE</vendor>
<name>openSUSE-Addon-NonOss</name>
- <version>20240812</version>
+ <version>20240813</version>
<release>0</release>
<summary>openSUSE NonOSS Addon</summary>
<shortsummary>non oss addon</shortsummary>
++++++ openSUSE.product ++++++
--- /var/tmp/diff_new_pack.2oYZF8/_old 2024-08-13 18:15:24.141809549 +0200
+++ /var/tmp/diff_new_pack.2oYZF8/_new 2024-08-13 18:15:24.145809720 +0200
@@ -4,7 +4,7 @@
<product>
<vendor>openSUSE</vendor>
<name>openSUSE</name>
- <version>20240812</version>
+ <version>20240813</version>
<release>0</release>
<productline>openSUSE</productline>
++++++ opensuse_kalpa.group ++++++
--- /var/tmp/diff_new_pack.2oYZF8/_old 2024-08-13 18:15:24.229813307 +0200
+++ /var/tmp/diff_new_pack.2oYZF8/_new 2024-08-13 18:15:24.237813649 +0200
@@ -643,12 +643,16 @@
<package name="libavc1394-0" supportstatus="unsupported"/> <!-- reason: opensuse_kalpa:patterns-kalpa-base -->
<package name="libavcodec58_134" supportstatus="unsupported"/> <!-- reason: opensuse_kalpa:patterns-kalpa-base -->
<package name="libavcodec60" supportstatus="unsupported"/> <!-- reason: opensuse_kalpa:patterns-kalpa-base -->
+ <package name="libavcodec61" supportstatus="unsupported"/> <!-- reason: opensuse_kalpa:patterns-kalpa-base -->
+ <package name="libavfilter10" supportstatus="unsupported"/> <!-- reason: opensuse_kalpa:patterns-kalpa-base -->
<package name="libavfilter9" supportstatus="unsupported"/> <!-- reason: opensuse_kalpa:patterns-kalpa-base -->
<package name="libavformat58_76" supportstatus="unsupported"/> <!-- reason: opensuse_kalpa:patterns-kalpa-base -->
<package name="libavformat60" supportstatus="unsupported"/> <!-- reason: opensuse_kalpa:patterns-kalpa-base -->
+ <package name="libavformat61" supportstatus="unsupported"/> <!-- reason: opensuse_kalpa:patterns-kalpa-base -->
<package name="libavif16" supportstatus="unsupported"/> <!-- reason: opensuse_kalpa:patterns-kalpa-base -->
<package name="libavutil56_70" supportstatus="unsupported"/> <!-- reason: opensuse_kalpa:patterns-kalpa-base -->
<package name="libavutil58" supportstatus="unsupported"/> <!-- reason: opensuse_kalpa:patterns-kalpa-base -->
+ <package name="libavutil59" supportstatus="unsupported"/> <!-- reason: opensuse_kalpa:patterns-kalpa-base -->
<package name="libb2-1" supportstatus="unsupported"/> <!-- reason: opensuse_kalpa:patterns-kalpa-base -->
<package name="libbd_crypto3" supportstatus="unsupported"/> <!-- reason: opensuse_kalpa:patterns-kalpa-base -->
<package name="libbd_fs3" supportstatus="unsupported"/> <!-- reason: opensuse_kalpa:patterns-kalpa-base -->
@@ -967,6 +971,7 @@
<package name="libportaudio2" supportstatus="unsupported"/> <!-- reason: opensuse_kalpa:patterns-kalpa-base -->
<package name="libpostproc55_9" supportstatus="unsupported"/> <!-- reason: opensuse_kalpa:patterns-kalpa-base -->
<package name="libpostproc57" supportstatus="unsupported"/> <!-- reason: opensuse_kalpa:patterns-kalpa-base -->
+ <package name="libpostproc58" supportstatus="unsupported"/> <!-- reason: opensuse_kalpa:patterns-kalpa-base -->
<package name="libproc2-0" supportstatus="unsupported"/> <!-- reason: opensuse_kalpa:patterns-kalpa-base -->
<package name="libprojectM3" supportstatus="unsupported"/> <!-- reason: opensuse_kalpa:patterns-kalpa-base -->
<package name="libprotobuf-c1" supportstatus="unsupported"/> <!-- reason: opensuse_kalpa:patterns-kalpa-base -->
@@ -1045,8 +1050,10 @@
<package name="libsubid5" supportstatus="unsupported"/> <!-- reason: opensuse_kalpa:patterns-kalpa-base -->
<package name="libswresample3_9" supportstatus="unsupported"/> <!-- reason: opensuse_kalpa:patterns-kalpa-base -->
<package name="libswresample4" supportstatus="unsupported"/> <!-- reason: opensuse_kalpa:patterns-kalpa-base -->
+ <package name="libswresample5" supportstatus="unsupported"/> <!-- reason: opensuse_kalpa:patterns-kalpa-base -->
<package name="libswscale5_9" supportstatus="unsupported"/> <!-- reason: opensuse_kalpa:patterns-kalpa-base -->
<package name="libswscale7" supportstatus="unsupported"/> <!-- reason: opensuse_kalpa:patterns-kalpa-base -->
+ <package name="libswscale8" supportstatus="unsupported"/> <!-- reason: opensuse_kalpa:patterns-kalpa-base -->
<package name="libsystemd0" supportstatus="unsupported"/> <!-- reason: opensuse_kalpa:patterns-kalpa-base -->
<package name="libtag2" supportstatus="unsupported"/> <!-- reason: opensuse_kalpa:patterns-kalpa-base -->
<package name="libtalloc2" supportstatus="unsupported"/> <!-- reason: opensuse_kalpa:patterns-kalpa-base -->
++++++ opensuse_microos.group ++++++
--- /var/tmp/diff_new_pack.2oYZF8/_old 2024-08-13 18:15:24.273815186 +0200
+++ /var/tmp/diff_new_pack.2oYZF8/_new 2024-08-13 18:15:24.277815357 +0200
@@ -790,13 +790,17 @@
<package name="libavc1394-0" supportstatus="unsupported"/> <!-- reason: opensuse_microos_desktop:patterns-microos-desktop-kde -->
<package name="libavcodec58_134" supportstatus="unsupported"/> <!-- reason: opensuse_microos_desktop:patterns-microos-desktop-kde -->
<package name="libavcodec60" supportstatus="unsupported"/> <!-- reason: opensuse_microos_desktop:patterns-microos-desktop-kde -->
+ <package name="libavcodec61" supportstatus="unsupported"/> <!-- reason: opensuse_microos_desktop:patterns-microos-desktop-kde -->
+ <package name="libavfilter10" supportstatus="unsupported"/> <!-- reason: opensuse_microos_desktop:patterns-microos-desktop-kde -->
<package name="libavfilter9" supportstatus="unsupported"/> <!-- reason: opensuse_microos_desktop:patterns-microos-desktop-kde -->
<package name="libavformat58_76" supportstatus="unsupported"/> <!-- reason: opensuse_microos_desktop:patterns-microos-desktop-kde -->
<package name="libavformat60" supportstatus="unsupported"/> <!-- reason: opensuse_microos_desktop:patterns-microos-desktop-kde -->
+ <package name="libavformat61" supportstatus="unsupported"/> <!-- reason: opensuse_microos_desktop:patterns-microos-desktop-kde -->
<package name="libavif16" supportstatus="unsupported"/> <!-- reason: opensuse_microos_desktop:patterns-microos-desktop-kde -->
<package name="libavtp0" supportstatus="unsupported"/> <!-- reason: opensuse_microos_desktop:patterns-microos-desktop-gnome -->
<package name="libavutil56_70" supportstatus="unsupported"/> <!-- reason: opensuse_microos_desktop:patterns-microos-desktop-kde -->
<package name="libavutil58" supportstatus="unsupported"/> <!-- reason: opensuse_microos_desktop:patterns-microos-desktop-kde -->
+ <package name="libavutil59" supportstatus="unsupported"/> <!-- reason: opensuse_microos_desktop:patterns-microos-desktop-kde -->
<package name="libb2-1" supportstatus="unsupported"/> <!-- reason: opensuse_microos_desktop:patterns-microos-desktop-kde -->
<package name="libbacktrace0" supportstatus="unsupported"/> <!-- reason: opensuse_microos_desktop:patterns-microos-desktop-gnome -->
<package name="libbasicobjects0" supportstatus="unsupported"/> <!-- reason: opensuse_microos:patterns-microos-sssd_ldap -->
@@ -1252,6 +1256,7 @@
<package name="libportaudio2" supportstatus="unsupported"/> <!-- reason: opensuse_microos_desktop:patterns-microos-desktop-kde -->
<package name="libpostproc55_9" supportstatus="unsupported"/> <!-- reason: opensuse_microos_desktop:patterns-microos-desktop-kde -->
<package name="libpostproc57" supportstatus="unsupported"/> <!-- reason: opensuse_microos_desktop:patterns-microos-desktop-kde -->
+ <package name="libpostproc58" supportstatus="unsupported"/> <!-- reason: opensuse_microos_desktop:patterns-microos-desktop-kde -->
<package name="libproc2-0" supportstatus="unsupported"/> <!-- reason: opensuse_microos:patterns-microos-base -->
<package name="libprojectM3" supportstatus="unsupported"/> <!-- reason: opensuse_microos_desktop:patterns-microos-desktop-kde -->
<package name="libprotobuf-c1" supportstatus="unsupported"/> <!-- reason: opensuse_microos_desktop:patterns-microos-desktop-kde -->
@@ -1347,8 +1352,10 @@
<package name="libsubid5" supportstatus="unsupported"/> <!-- reason: opensuse_microos:patterns-microos-base -->
<package name="libswresample3_9" supportstatus="unsupported"/> <!-- reason: opensuse_microos_desktop:patterns-microos-desktop-kde -->
<package name="libswresample4" supportstatus="unsupported"/> <!-- reason: opensuse_microos_desktop:patterns-microos-desktop-kde -->
+ <package name="libswresample5" supportstatus="unsupported"/> <!-- reason: opensuse_microos_desktop:patterns-microos-desktop-kde -->
<package name="libswscale5_9" supportstatus="unsupported"/> <!-- reason: opensuse_microos_desktop:patterns-microos-desktop-kde -->
<package name="libswscale7" supportstatus="unsupported"/> <!-- reason: opensuse_microos_desktop:patterns-microos-desktop-kde -->
+ <package name="libswscale8" supportstatus="unsupported"/> <!-- reason: opensuse_microos_desktop:patterns-microos-desktop-kde -->
<package name="libsystemd0" supportstatus="unsupported"/> <!-- reason: opensuse_microos:patterns-microos-base -->
<package name="libtag2" supportstatus="unsupported"/> <!-- reason: opensuse_microos_desktop:patterns-microos-desktop-kde -->
<package name="libtalloc2" supportstatus="unsupported"/> <!-- reason: opensuse_microos:patterns-microos-sssd_ldap -->
@@ -1382,6 +1389,7 @@
<package name="libtukit4" supportstatus="unsupported"/> <!-- reason: opensuse_microos:patterns-microos-base-microdnf -->
<package name="libtwolame0" supportstatus="unsupported"/> <!-- reason: opensuse_microos_desktop:patterns-microos-desktop-kde -->
<package name="libubsan1" supportstatus="unsupported"/> <!-- reason: opensuse_microos_desktop:patterns-microos-desktop-kde -->
+ <package name="libuchardet0" supportstatus="unsupported"/> <!-- reason: opensuse_microos_desktop:patterns-microos-desktop-gnome -->
<package name="libudev1" supportstatus="unsupported"/> <!-- reason: opensuse_microos:patterns-microos-base -->
<package name="libudisks2-0" supportstatus="unsupported"/> <!-- reason: opensuse_microos_desktop:patterns-microos-desktop-kde -->
<package name="libunistring5" supportstatus="unsupported"/> <!-- reason: opensuse_microos:patterns-microos-base -->
++++++ unsorted.yml ++++++
--- /var/tmp/diff_new_pack.2oYZF8/_old 2024-08-13 18:15:24.349818431 +0200
+++ /var/tmp/diff_new_pack.2oYZF8/_new 2024-08-13 18:15:24.365819115 +0200
@@ -478,6 +478,7 @@
- agama
- agama-auto
- agama-cli
+ - agama-integration-tests
- agama-playwright
- agama-products-opensuse
- agama-web-ui
@@ -1852,6 +1853,7 @@
- cadsondemak-fonts
- cadvisor
- cage
+ - cagebreak
- cairo-clock
- cairo-clock-lang
- cairo-devel
@@ -2551,12 +2553,6 @@
- coreboot-utils
- coredns
- coredns-extras
- - coredns-for-k8s1.24
- - coredns-for-k8s1.24-extras
- - coredns-for-k8s1.25
- - coredns-for-k8s1.25-extras
- - coredns-for-k8s1.26
- - coredns-for-k8s1.26-extras
- coredns-for-k8s1.27
- coredns-for-k8s1.27-extras
- coredns-for-k8s1.28
@@ -3873,9 +3869,6 @@
- espeakedit
- etc-update
- etcd
- - etcd-for-k8s1.24
- - etcd-for-k8s1.25
- - etcd-for-k8s1.26
- etcd-for-k8s1.27
- etcd-for-k8s1.28
- etcd-for-k8s1.29
@@ -8888,9 +8881,9 @@
- imb-mpich
- imb-mvapich2
- imb-openmpi4
- - imb_2021_7-gnu-mpich-hpc
- - imb_2021_7-gnu-mvapich2-hpc
- - imb_2021_7-gnu-openmpi4-hpc
+ - imb_2021_8-gnu-mpich-hpc
+ - imb_2021_8-gnu-mvapich2-hpc
+ - imb_2021_8-gnu-openmpi4-hpc
- imgp
- imgp-bash-completion
- imgp-fish-completion
@@ -10521,39 +10514,6 @@
- kubernetes-scheduler-minus1
- kubernetes-scheduler-minus2
- kubernetes-scheduler-minus3
- - kubernetes1.24-apiserver
- - kubernetes1.24-client
- - kubernetes1.24-client-bash-completion
- - kubernetes1.24-client-common
- - kubernetes1.24-client-fish-completion
- - kubernetes1.24-controller-manager
- - kubernetes1.24-kubeadm
- - kubernetes1.24-kubelet
- - kubernetes1.24-kubelet-common
- - kubernetes1.24-proxy
- - kubernetes1.24-scheduler
- - kubernetes1.25-apiserver
- - kubernetes1.25-client
- - kubernetes1.25-client-bash-completion
- - kubernetes1.25-client-common
- - kubernetes1.25-client-fish-completion
- - kubernetes1.25-controller-manager
- - kubernetes1.25-kubeadm
- - kubernetes1.25-kubelet
- - kubernetes1.25-kubelet-common
- - kubernetes1.25-proxy
- - kubernetes1.25-scheduler
- - kubernetes1.26-apiserver
- - kubernetes1.26-client
- - kubernetes1.26-client-bash-completion
- - kubernetes1.26-client-common
- - kubernetes1.26-client-fish-completion
- - kubernetes1.26-controller-manager
- - kubernetes1.26-kubeadm
- - kubernetes1.26-kubelet
- - kubernetes1.26-kubelet-common
- - kubernetes1.26-proxy
- - kubernetes1.26-scheduler
- kubernetes1.27-apiserver
- kubernetes1.27-client
- kubernetes1.27-client-bash-completion
@@ -11929,7 +11889,7 @@
- libavcodec59
- libavcodec59-32bit
- libavcodec60-32bit
- - libavcodec61
+ - libavcodec61-32bit
- libavdevice58_13
- libavdevice58_13-32bit
- libavdevice59
@@ -11937,7 +11897,8 @@
- libavdevice60
- libavdevice60-32bit
- libavdevice61
- - libavfilter10
+ - libavdevice61-32bit
+ - libavfilter10-32bit
- libavfilter7_110
- libavfilter7_110-32bit
- libavfilter8
@@ -11947,7 +11908,7 @@
- libavformat59
- libavformat59-32bit
- libavformat60-32bit
- - libavformat61
+ - libavformat61-32bit
- libavfs0
- libavif-devel
- libavif16-32bit
@@ -11960,7 +11921,7 @@
- libavutil57
- libavutil57-32bit
- libavutil58-32bit
- - libavutil59
+ - libavutil59-32bit
- libaws-c-auth1_0_0
- libaws-c-cal0unstable
- libaws-c-common1
@@ -14957,7 +14918,7 @@
- libopenmpi4-gnu-hpc
- libopenmpi5-gnu-hpc
- libopenmpi_4_1_6-gnu-hpc
- - libopenmpi_5_0_3-gnu-hpc
+ - libopenmpi_5_0_5-gnu-hpc
- libopenmpt-devel
- libopenmpt-modplug-devel
- libopenmpt0-32bit
@@ -15331,7 +15292,7 @@
- libpostproc56
- libpostproc56-32bit
- libpostproc57-32bit
- - libpostproc58
+ - libpostproc58-32bit
- libpostquantumcryptoengine1
- libpowerman0
- libppl14
@@ -16364,12 +16325,12 @@
- libswresample4-32bit
- libswresample4_ff5
- libswresample4_ff5-32bit
- - libswresample5
+ - libswresample5-32bit
- libswscale5_9-32bit
- libswscale6
- libswscale6-32bit
- libswscale7-32bit
- - libswscale8
+ - libswscale8-32bit
- libsybdb5
- libsybdb5-32bit
- libsymmetrica2
@@ -16596,7 +16557,6 @@
- libubsan1-gcc13
- libubsan1-gcc13-32bit
- libuchardet-devel
- - libuchardet0
- libuchardet0-32bit
- libucl1
- libucm-devel
@@ -17235,7 +17195,7 @@
- libxosd2
- libxplayer-plparser-mini18
- libxplayer-plparser18
- - libxpp-0_2_0
+ - libxpp-3
- libxpp-devel
- libxreaderdocument3
- libxreaderview3
@@ -19058,14 +19018,14 @@
- mpich-ofi-gnu-hpc-devel
- mpich-ofi-gnu-hpc-devel-static
- mpich-ofi-gnu-hpc-macros-devel
- - mpich-ofi_4_1_2-gnu-hpc
- - mpich-ofi_4_1_2-gnu-hpc-devel
- - mpich-ofi_4_1_2-gnu-hpc-devel-static
- - mpich-ofi_4_1_2-gnu-hpc-macros-devel
- - mpich_4_1_2-gnu-hpc
- - mpich_4_1_2-gnu-hpc-devel
- - mpich_4_1_2-gnu-hpc-devel-static
- - mpich_4_1_2-gnu-hpc-macros-devel
+ - mpich-ofi_4_2_2-gnu-hpc
+ - mpich-ofi_4_2_2-gnu-hpc-devel
+ - mpich-ofi_4_2_2-gnu-hpc-devel-static
+ - mpich-ofi_4_2_2-gnu-hpc-macros-devel
+ - mpich_4_2_2-gnu-hpc
+ - mpich_4_2_2-gnu-hpc-devel
+ - mpich_4_2_2-gnu-hpc-devel-static
+ - mpich_4_2_2-gnu-hpc-macros-devel
- mpitests
- mpitests-mpich
- mpitests-mpich-gnu-hpc
@@ -20467,12 +20427,12 @@
- openmpi_4_1_6-gnu-hpc-docs
- openmpi_4_1_6-gnu-hpc-macros-devel
- openmpi_4_1_6-gnu-hpc-testsuite
- - openmpi_5_0_3-gnu-hpc
- - openmpi_5_0_3-gnu-hpc-devel
- - openmpi_5_0_3-gnu-hpc-devel-static
- - openmpi_5_0_3-gnu-hpc-docs
- - openmpi_5_0_3-gnu-hpc-macros-devel
- - openmpi_5_0_3-gnu-hpc-testsuite
+ - openmpi_5_0_5-gnu-hpc
+ - openmpi_5_0_5-gnu-hpc-devel
+ - openmpi_5_0_5-gnu-hpc-devel-static
+ - openmpi_5_0_5-gnu-hpc-docs
+ - openmpi_5_0_5-gnu-hpc-macros-devel
+ - openmpi_5_0_5-gnu-hpc-testsuite
- openmpt123
- openmw
- opennlp
1
0
Script 'mail_helper' called by obssrc
Hello community,
here is the log from the commit of package python-hatch for openSUSE:Factory checked in at 2024-08-13 13:25:25
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/python-hatch (Old)
and /work/SRC/openSUSE:Factory/.python-hatch.new.7232 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "python-hatch"
Tue Aug 13 13:25:25 2024 rev:14 rq:1193629 version:1.12.0
Changes:
--------
--- /work/SRC/openSUSE:Factory/python-hatch/python-hatch.changes 2024-03-27 20:42:58.926037182 +0100
+++ /work/SRC/openSUSE:Factory/.python-hatch.new.7232/python-hatch.changes 2024-08-13 13:25:48.124644283 +0200
@@ -1,0 +2,92 @@
+Thu Aug 8 11:20:24 UTC 2024 - Daniel Garcia <daniel.garcia(a)suse.com>
+
+- Add new patch to fix tests: fix-tests.patch
+- Remove upstreamed patch: support-hatchling-1.22.patch
+- update to 1.12.0:
+ - The run/env run and test commands now treat inclusion variable
+ options as an intersection rather than a union to allow for
+ specific targeting of environments
+ - Add ability to control the source of Python distributions
+ - Upgrade Ruff to 0.4.5
+ - Upgrade PyApp to 0.22.0 for binary builds
+ - The fmt command no longer hides the commands that are being
+ executed
+ - Add default timeout for network requests, useful when installing
+ Python distributions
+ - Fix syntax highlighting contrast for the config show command
+- 1.11.1:
+ - Add official GitHub Action for installing Hatch
+ - Fix terminal.styles.spinner configuration
+ - Fix entry points in the pre-built distributions that binaries use
+- 1.11.0:
+ - Upgrade PyApp to 0.21.1 for binary builds
+ - On Linux, install the highest compatible Python distribution
+ variant based on CPU architecture rather than assuming recent
+ hardware
+- 1.10.0:
+ - The run/env run, fmt and shell commands now only change the
+ current working directory to the project root if not already
+ inside the project
+ - The shell command now accepts a single argument to specify the
+ environment to enter which overrides the standard choice
+ mechanisms. The arguments determining shell options have been
+ converted to flags.
+ - Add test command
+ - The run command can now execute scripts that define inline
+ metadata for dependencies and Python version constraints
+ - The virtual environment type now supports the ability to use UV in
+ place of pip & virtualenv
+ - Add self report command for submitting pre-populated bug reports
+ to GitHub
+ - The reserved environment used for static analysis is now
+ completely configurable
+ - Add the following methods to the environment interface for
+ complete control over output during life cycle management:
+ app_status_creation, app_status_pre_installation,
+ app_status_post_installation, app_status_project_installation,
+ app_status_dependency_state_check,
+ app_status_dependency_installation_check,
+ app_status_dependency_synchronization
+ - Add binaries for 32-bit versions of Windows
+ - Read configuration from any ~/.pypirc file for the index publisher
+ - Use the Git user as the default username for new project URL
+ metadata
+ - Add HATCH_DEBUG environment variable that when enabled will show
+ local variables in the case of unhandled tracebacks
+ - The env show command now outputs data about all internal
+ environments when using the --json flag
+ - Upgrade default CPython distributions to 20240415
+ - Upgrade default PyPy distributions to 7.3.15
+ - Upgrade Ruff to 0.4.2
+ - Upgrade PyApp to 0.19.0 for binary builds
+ - Bump the minimum supported version of Hatchling to 1.24.2
+ - Bump the minimum supported version of virtualenv to 20.26.1
+ - Maintain consistent data paths for case insensitive file systems
+ - When projects derive dependencies from metadata hooks, there is
+ now by default a status indicator for when the hooks are executed
+ for better responsiveness
+ - Properly support projects with a pyproject.toml file but no
+ project table e.g. applications
+ - Fix the fmt command when automatically installing plugin
+ dependencies
+ - Fix dependency inheritance for the template of the types
+ environment for new projects
+ - Fix warnings related to tar file extraction on Python 3.12+ when
+ unpacking Python distributions for installation
+ - De-select Ruff rule E501 for the fmt command by default since it
+ conflicts with the formatter
+ - Fix colored output from build targets on the first run (build
+ environment creation status indicator issue)
+ - Set the packaging dependency version as >=23.2 to avoid its URL
+ validation which can conflict with context formatting
+ - Fix the exit code when there happens to be an unhandled exception
+ - No longer capture both stdout and stderr streams when parsing
+ metadata payloads from build environments
+ - Fix the README.md file template for new projects to avoid Markdown
+ linting issues
+- 1.9.7:
+ - Limit the maximum version of virtualenv due to a backward
+ incompatible change
+ - Upgrade PyApp to 0.12.0 for binary builds
+
+-------------------------------------------------------------------
Old:
----
hatch-v1.9.4.tar.gz
support-hatchling-1.22.patch
New:
----
fix-tests.patch
hatch-v1.12.0.tar.gz
BETA DEBUG BEGIN:
Old:- Add new patch to fix tests: fix-tests.patch
- Remove upstreamed patch: support-hatchling-1.22.patch
- update to 1.12.0:
BETA DEBUG END:
BETA DEBUG BEGIN:
New:
- Add new patch to fix tests: fix-tests.patch
- Remove upstreamed patch: support-hatchling-1.22.patch
BETA DEBUG END:
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ python-hatch.spec ++++++
--- /var/tmp/diff_new_pack.VScDnU/_old 2024-08-13 13:25:48.704668530 +0200
+++ /var/tmp/diff_new_pack.VScDnU/_new 2024-08-13 13:25:48.704668530 +0200
@@ -26,17 +26,15 @@
%endif
%{?sle15_python_module_pythons}
Name: python-hatch%{psuffix}
-Version: 1.9.4
+Version: 1.12.0
Release: 0
Summary: Modern, extensible Python project management
License: MIT
URL: https://hatch.pypa.io/latest/
# SourceRepository: https://github.com/pypa/hatch
Source: https://github.com/pypa/hatch/archive/refs/tags/hatch-v%{version}.tar.gz
-# PATCH-FIX-UPSTREAM Based on parts of the following commits:
-# gh#pypa/hatch#9a80ffc2567bb09160e97f1ade1dd4c768004089
-# gh#pypa/hatch#f3b2159a8c4221062692881774bc58dfed5aaa76
-Patch0: support-hatchling-1.22.patch
+# PATCH-FIX-OPENSUSE fix-tests.patch
+Patch0: fix-tests.patch
BuildRequires: %{python_module base >= 3.8}
BuildRequires: %{python_module hatch-vcs >= 0.3}
BuildRequires: %{python_module hatchling >= 1.19}
@@ -59,17 +57,20 @@
Requires: python-tomlkit >= 0.11.1
Requires: python-virtualenv >= 20.16.2
Requires: python-zstandard < 1
+Requires: uv
Requires: (python-pexpect >= 4.8 with python-pexpect < 5)
Requires: (python-userpath >= 1.7 with python-userpath < 2)
%if %{with test}
BuildRequires: %{python_module editables}
BuildRequires: %{python_module filelock >= 3.7.1}
BuildRequires: %{python_module hatch = %{version}}
+BuildRequires: %{python_module pyfakefs}
BuildRequires: %{python_module pytest-mock}
BuildRequires: %{python_module pytest-xdist}
BuildRequires: %{python_module pytest}
BuildRequires: %{python_module trustme}
BuildRequires: cargo
+BuildRequires: uv
%else
BuildArch: noarch
%endif
@@ -114,11 +115,18 @@
# platform distribution selection errors: https://github.com/pypa/hatch/issues/1145
%ifnarch x86_64
donttest="$donttest or (test_resolve and test_resolution_error)"
+donttest+=" or test_custom_source or test_pypy_custom"
%endif
%ifarch s390x
# Console width different
donttest="$donttest or test_context_formatting"
%endif
+
+# Requires network
+donttest+=" or test_uv_env"
+# Fails with python 3.12
+donttest+=" or test_pyenv or test_no_open or test_open"
+
%pytest -v -k "not ($donttest)"
%endif
++++++ fix-tests.patch ++++++
Index: hatch-hatch-v1.12.0/tests/conftest.py
===================================================================
--- hatch-hatch-v1.12.0.orig/tests/conftest.py
+++ hatch-hatch-v1.12.0/tests/conftest.py
@@ -95,11 +95,12 @@ def isolation(uv_on_path) -> Generator[P
'GIT_AUTHOR_EMAIL': 'foo(a)bar.baz',
'COLUMNS': '80',
'LINES': '24',
+ 'HATCH_ENV_TYPE_VIRTUAL_UV_PATH': '',
}
if PLATFORM.windows:
default_env_vars['COMSPEC'] = 'cmd.exe'
else:
- default_env_vars['SHELL'] = 'sh'
+ default_env_vars['SHELL'] = 'bash'
with d.as_cwd(default_env_vars):
os.environ.pop(AppEnvVars.ENV_ACTIVE, None)
++++++ hatch-v1.9.4.tar.gz -> hatch-v1.12.0.tar.gz ++++++
++++ 20335 lines of diff (skipped)
1
0
Script 'mail_helper' called by obssrc
Hello community,
here is the log from the commit of package sacad for openSUSE:Factory checked in at 2024-08-13 13:25:22
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/sacad (Old)
and /work/SRC/openSUSE:Factory/.sacad.new.7232 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "sacad"
Tue Aug 13 13:25:22 2024 rev:12 rq:1193648 version:2.8.0
Changes:
--------
--- /work/SRC/openSUSE:Factory/sacad/sacad.changes 2023-10-25 18:04:42.974263997 +0200
+++ /work/SRC/openSUSE:Factory/.sacad.new.7232/sacad.changes 2024-08-13 13:25:46.412572711 +0200
@@ -1,0 +2,10 @@
+Tue Aug 13 06:12:30 UTC 2024 - Dirk Müller <dmueller(a)suse.com>
+
+- update to 2.8.0:
+ * remove Amazon sources
+ * fix: remove use of imhdr
+ * boost exact album matches ranking for Deezer source
+ * fix: path sanitization removing spaces
+ * feat: add option to convert progressive JPEG to baseline
+
+-------------------------------------------------------------------
Old:
----
sacad-2.7.5.tar.gz
New:
----
sacad-2.8.0.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ sacad.spec ++++++
--- /var/tmp/diff_new_pack.zkfWV8/_old 2024-08-13 13:25:46.996597126 +0200
+++ /var/tmp/diff_new_pack.zkfWV8/_new 2024-08-13 13:25:47.000597293 +0200
@@ -1,7 +1,7 @@
#
# spec file for package sacad
#
-# 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
@@ -17,7 +17,7 @@
Name: sacad
-Version: 2.7.5
+Version: 2.8.0
Release: 0
Summary: Search and download music album covers
License: MPL-2.0
++++++ sacad-2.7.5.tar.gz -> sacad-2.8.0.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/sacad-2.7.5/.github/workflows/ci.yml new/sacad-2.8.0/.github/workflows/ci.yml
--- old/sacad-2.7.5/.github/workflows/ci.yml 2023-06-13 22:55:01.000000000 +0200
+++ new/sacad-2.8.0/.github/workflows/ci.yml 2024-07-28 22:16:52.000000000 +0200
@@ -12,7 +12,7 @@
runs-on: ubuntu-latest
strategy:
matrix:
- python-version: ["3.7", "3.8", "3.9", "3.10"]
+ python-version: ["3.8", "3.9", "3.10", "3.11", "3.12"]
steps:
- uses: actions/checkout@v2
@@ -21,10 +21,6 @@
python-version: ${{matrix.python-version}}
- run: |
sudo apt-get install libxml2-dev libxslt1-dev
- pip install -U pip
- pip install coveralls
+ pip install -U requests pip setuptools
pip install -r requirements.txt
- - run: coverage run --source=sacad setup.py test
- - run: coveralls --service=github
- env:
- GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
+ - run: python -m unittest discover -v .
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/sacad-2.7.5/.pre-commit-config.yaml new/sacad-2.8.0/.pre-commit-config.yaml
--- old/sacad-2.7.5/.pre-commit-config.yaml 2023-06-13 22:55:01.000000000 +0200
+++ new/sacad-2.8.0/.pre-commit-config.yaml 2024-07-28 22:16:52.000000000 +0200
@@ -1,7 +1,7 @@
# https://pre-commit.com
repos:
- repo: https://github.com/pre-commit/pre-commit-hooks
- rev: v4.3.0
+ rev: v4.6.0
hooks:
- id: check-added-large-files
- id: check-case-conflict
@@ -24,7 +24,7 @@
- --markdown-linebreak-ext=md
- repo: https://github.com/pre-commit/mirrors-mypy
- rev: v0.971
+ rev: v1.10.0
hooks:
- id: mypy
args:
@@ -32,48 +32,18 @@
additional_dependencies:
- types-requests
- - repo: https://github.com/pycqa/flake8
- rev: 3.9.2
+ - repo: https://github.com/astral-sh/ruff-pre-commit
+ rev: v0.4.4
hooks:
- - id: flake8
- args:
- # https://www.flake8rules.com/
- # E203 and W503 and are not compatible with black,
- # see https://black.readthedocs.io/en/stable/compatible_configs.html#flake8
- - --extend-ignore=E203,W503
- - --max-complexity=20
- - --max-line-length=120
-
- - repo: https://github.com/pycqa/pydocstyle
- rev: 6.1.1
- hooks:
- - id: pydocstyle
- args:
- # http://www.pydocstyle.org/en/5.1.1/error_codes.html
- - --ignore=D105,D107,D202,D210,D211,D212
+ - id: ruff
+ args: [--fix, --exit-non-zero-on-fix]
+ - id: ruff-format
- repo: https://github.com/shellcheck-py/shellcheck-py
- rev: v0.8.0.4
+ rev: v0.10.0.1
hooks:
- id: shellcheck
- - repo: https://github.com/pre-commit/mirrors-isort
- rev: v5.10.1
- hooks:
- - id: isort
- args:
- - -l=120
- # black compatibility, see https://black.readthedocs.io/en/stable/compatible_configs.html#isort
- - --profile=black
-
- - repo: https://github.com/psf/black
- rev: 22.6.0
- hooks:
- - id: black
- language_version: python3
- args:
- - --line-length=120
-
- repo: https://github.com/pre-commit/mirrors-prettier
rev: v2.7.1
hooks:
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/sacad-2.7.5/README.md new/sacad-2.8.0/README.md
--- old/sacad-2.7.5/README.md 2023-06-13 22:55:01.000000000 +0200
+++ new/sacad-2.8.0/README.md 2024-07-28 22:16:52.000000000 +0200
@@ -4,9 +4,7 @@
[![PyPI version](https://img.shields.io/pypi/v/sacad.svg?style=flat)](https://pypi.…
[![AUR version](https://img.shields.io/aur/version/sacad.svg?style=flat)](https://…
-[![Tests status](https://github.com/desbma/sacad/actions/workflows/ci.yml/badge.svg)…
-[![Coverage](https://img.shields.io/coveralls/desbma/sacad/master.svg?style=flat)](https://coveralls.io/github/desbma/sacad?branch=master)
-[![Lines of code](https://tokei.rs/b1/github/desbma/sacad)](https://github.com/desbma/s…
+[![CI status](https://img.shields.io/github/actions/workflow/status/desbma/sacad/…
[![Supported Python versions](https://img.shields.io/pypi/pyversions/sacad.svg?style=flat)](htt…
[![License](https://img.shields.io/github/license/desbma/sacad.svg?style=flat)](https://github.com/desbma/sacad/blob/master/LICENSE)
@@ -20,8 +18,7 @@
- Support JPEG and PNG formats
- Customizable output: save image along with the audio files / in a different directory named by artist/album / embed cover in audio files...
- Currently support the following cover sources:
- - Amazon CD (.com, .ca, .cn, .fr, .de, .co.jp and .co.uk variants)
- - Amazon digital music
+ - ~~Amazon CD (.com, .ca, .cn, .fr, .de, .co.jp and .co.uk variants) & Amazon digital music~~ (removed, too unreliable)
- ~~CoverLib~~ (site is dead)
- Deezer
- Discogs
@@ -47,7 +44,7 @@
## Installation
-SACAD requires [Python](https://www.python.org/downloads/) >= 3.7.
+SACAD requires [Python](https://www.python.org/downloads/) >= 3.8.
### Standalone Windows executable
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/sacad-2.7.5/freeze.py new/sacad-2.8.0/freeze.py
--- old/sacad-2.7.5/freeze.py 2023-06-13 22:55:01.000000000 +0200
+++ new/sacad-2.8.0/freeze.py 2024-07-28 22:16:52.000000000 +0200
@@ -1,4 +1,4 @@
-""" Package freezing for Windows. """
+"""Package freezing for Windows."""
import os
import re
@@ -19,7 +19,7 @@
packages=["sacad"],
options={"build_exe": build_exe_options},
executables=[
- Executable(os.path.join("sacad", "__main__.py"), targetName="sacad.exe"),
- Executable(os.path.join("sacad", "recurse.py"), targetName="sacad_r.exe"),
+ Executable(os.path.join("sacad", "__main__.py"), target_name="sacad.exe"),
+ Executable(os.path.join("sacad", "recurse.py"), target_name="sacad_r.exe"),
],
)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/sacad-2.7.5/pyproject.toml new/sacad-2.8.0/pyproject.toml
--- old/sacad-2.7.5/pyproject.toml 1970-01-01 01:00:00.000000000 +0100
+++ new/sacad-2.8.0/pyproject.toml 2024-07-28 22:16:52.000000000 +0200
@@ -0,0 +1,2 @@
+[tool.ruff]
+line-length = 120
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/sacad-2.7.5/sacad/__init__.py new/sacad-2.8.0/sacad/__init__.py
--- old/sacad-2.7.5/sacad/__init__.py 2023-06-13 22:55:01.000000000 +0200
+++ new/sacad-2.8.0/sacad/__init__.py 2024-07-28 22:16:52.000000000 +0200
@@ -1,8 +1,8 @@
#!/usr/bin/env python3
-""" Smart Automatic Cover Art Downloader : search and download music album covers. """
+"""Smart Automatic Cover Art Downloader : search and download music album covers."""
-__version__ = "2.7.5"
+__version__ = "2.8.0"
__author__ = "desbma"
__license__ = "MPL 2.0"
@@ -39,9 +39,9 @@
out_filepath: str,
*,
size_tolerance_prct: int,
- amazon_tlds: Sequence[str] = (),
source_classes: Optional[Sequence[Any]] = None,
preserve_format: bool = False,
+ convert_progressive_jpeg: bool = False,
) -> bool:
"""Search and download a cover, return True if success, False instead."""
logger = logging.getLogger("Main")
@@ -52,9 +52,6 @@
source_classes = tuple(COVER_SOURCE_CLASSES.values())
assert source_classes is not None # makes MyPy chill
cover_sources = [cls(*source_args) for cls in source_classes]
- if sources.AmazonCdCoverSource in source_classes:
- for tld in amazon_tlds:
- cover_sources.append(sources.AmazonCdCoverSource(*source_args, tld=tld))
# schedule search work
search_futures = []
@@ -100,6 +97,7 @@
size_tolerance_prct,
out_filepath,
preserve_format=preserve_format,
+ convert_progressive_jpeg=convert_progressive_jpeg,
)
except Exception as e:
logger.warning(f"Download of {result} failed: {e.__class__.__qualname__} {e}")
@@ -130,15 +128,6 @@
if available""",
)
arg_parser.add_argument(
- "-a",
- "--amazon-sites",
- nargs="+",
- choices=sources.AmazonCdCoverSource.TLDS[1:],
- default=(),
- dest="amazon_tlds",
- help="""Amazon site TLDs to use as search source, in addition to amazon.com""",
- )
- arg_parser.add_argument(
"-s",
"--cover-sources",
choices=tuple(COVER_SOURCE_CLASSES.keys()),
@@ -153,6 +142,12 @@
default=False,
help="Preserve source image format if possible. Target format will still be prefered when sorting results.",
)
+ arg_parser.add_argument(
+ "--convert-progressive-jpeg",
+ action="store_true",
+ default=False,
+ help="Convert progressive JPEG to baseline if needed. May result in bigger files and loss of quality.",
+ )
def cl_main() -> None:
@@ -219,9 +214,9 @@
args.size,
args.out_filepath,
size_tolerance_prct=args.size_tolerance_prct,
- amazon_tlds=args.amazon_tlds,
source_classes=args.cover_sources,
preserve_format=args.preserve_format,
+ convert_progressive_jpeg=args.convert_progressive_jpeg,
)
future = asyncio.ensure_future(coroutine)
asyncio.get_event_loop().run_until_complete(future)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/sacad-2.7.5/sacad/__main__.py new/sacad-2.8.0/sacad/__main__.py
--- old/sacad-2.7.5/sacad/__main__.py 2023-06-13 22:55:01.000000000 +0200
+++ new/sacad-2.8.0/sacad/__main__.py 2024-07-28 22:16:52.000000000 +0200
@@ -1,6 +1,6 @@
#!/usr/bin/env python3
-""" Command line entry point for sacad program. """
+"""Command line entry point for sacad program."""
import sacad
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/sacad-2.7.5/sacad/colored_logging.py new/sacad-2.8.0/sacad/colored_logging.py
--- old/sacad-2.7.5/sacad/colored_logging.py 2023-06-13 22:55:01.000000000 +0200
+++ new/sacad-2.8.0/sacad/colored_logging.py 2024-07-28 22:16:52.000000000 +0200
@@ -1,4 +1,4 @@
-""" Formatter for the logging module, coloring terminal output according to error criticity. """
+"""Formatter for the logging module, coloring terminal output according to error criticity."""
import enum
import logging
@@ -11,7 +11,6 @@
class ColoredFormatter(logging.Formatter):
-
"""Logging formatter coloring terminal output according to error criticity."""
def format(self, record):
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/sacad-2.7.5/sacad/cover.py new/sacad-2.8.0/sacad/cover.py
--- old/sacad-2.7.5/sacad/cover.py 2023-06-13 22:55:01.000000000 +0200
+++ new/sacad-2.8.0/sacad/cover.py 2024-07-28 22:16:52.000000000 +0200
@@ -1,8 +1,7 @@
-""" Sacad album cover. """
+"""Sacad album cover."""
import asyncio
import enum
-import imghdr
import io
import itertools
import logging
@@ -13,6 +12,7 @@
import pickle
import shutil
import urllib.parse
+from typing import Dict
import appdirs
import bitarray
@@ -35,7 +35,6 @@
class CoverSourceQuality(enum.IntFlag):
-
"""Flags to describe cover source quality."""
# whether or not the search query matching is fuzzy (does a typo return results ?)
@@ -61,7 +60,6 @@
class CoverImageMetadata(enum.IntFlag):
-
"""Flags to describe image metadata."""
NONE = 0
@@ -83,7 +81,6 @@
class CoverSourceResult:
-
"""Cover image returned by a source, candidate to be downloaded."""
METADATA_PEEK_SIZE_INCREMENT = 2**12
@@ -166,20 +163,33 @@
s += f" [x{len(self.urls)}]"
return s
- async def get(self, target_format, target_size, size_tolerance_prct, out_filepath, *, preserve_format=False):
+ async def get(
+ self,
+ target_format: CoverImageFormat,
+ target_size: int,
+ size_tolerance_prct: float,
+ out_filepath: str,
+ *,
+ preserve_format: bool = False,
+ convert_progressive_jpeg: bool = False,
+ ) -> None:
"""Download cover and process it."""
images_data = []
for i, url in enumerate(self.urls):
# download
logging.getLogger("Cover").info(f"Downloading cover {url!r} (part {i + 1}/{len(self.urls)})...")
- headers = {}
+ headers: Dict[str, str] = {}
self.source.updateHttpHeaders(headers)
async def pre_cache_callback(img_data):
return await __class__.crunch(img_data, self.format)
store_in_cache_callback, image_data = await self.source.http.query(
- url, headers=headers, verify=False, cache=__class__.image_cache, pre_cache_callback=pre_cache_callback
+ url,
+ headers=headers,
+ verify=False,
+ cache=__class__.image_cache, # type: ignore
+ pre_cache_callback=pre_cache_callback,
)
# store immediately in cache
@@ -193,14 +203,18 @@
abs(max(self.size) - target_size) > target_size * size_tolerance_prct / 100
)
need_join = len(images_data) > 1
- if (need_format_change and (not preserve_format)) or need_join or need_size_change:
+ need_post_process = (need_format_change and (not preserve_format)) or need_join or need_size_change
+ need_post_process = need_post_process or (
+ __class__.isProgressiveJpegData(images_data[0]) and convert_progressive_jpeg # type: ignore
+ )
+ if need_post_process:
# post process
image_data = self.postProcess(
images_data, target_format if need_format_change else None, target_size if need_size_change else None
)
# crunch image again
- image_data = await __class__.crunch(image_data, target_format)
+ image_data = await __class__.crunch(image_data, target_format) # type: ignore
format_changed = need_format_change
else:
@@ -213,6 +227,16 @@
with open(out_filepath, "wb") as file:
file.write(image_data)
+ @staticmethod
+ def isProgressiveJpegData(data: bytes) -> bool:
+ """Return True if data is from a progressive JPEG."""
+ in_bytes = io.BytesIO(data)
+ try:
+ img = PIL.Image.open(in_bytes)
+ return bool(img.info["progressive"])
+ except Exception:
+ return False
+
def postProcess(self, images_data, new_format, new_size):
"""
Convert image binary data.
@@ -560,8 +584,7 @@
try:
img = PIL.Image.open(img_stream)
except (IOError, OSError, RuntimeError): # PIL.UnidentifiedImageError inherits from OSError
- format = imghdr.what(None, h=img_data)
- format = SUPPORTED_IMG_FORMATS.get(format, None)
+ pass
else:
format = img.format.lower()
format = SUPPORTED_IMG_FORMATS.get(format, None)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/sacad-2.7.5/sacad/http_helpers.py new/sacad-2.8.0/sacad/http_helpers.py
--- old/sacad-2.7.5/sacad/http_helpers.py 2023-06-13 22:55:01.000000000 +0200
+++ new/sacad-2.8.0/sacad/http_helpers.py 2024-07-28 22:16:52.000000000 +0200
@@ -1,4 +1,4 @@
-""" Common HTTP code. """
+"""Common HTTP code."""
import asyncio
import logging
@@ -26,7 +26,6 @@
class Http:
-
"""Async HTTP client code."""
def __init__(
@@ -222,7 +221,6 @@
response_headers.update(response.headers)
break # http retry loop
-
except aiohttp.ClientResponseError as e:
self.logger.debug(f"Probing {url!r} failed: {e.__class__.__qualname__} {e}")
resp_ok = False
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/sacad-2.7.5/sacad/mkstemp_ctx.py new/sacad-2.8.0/sacad/mkstemp_ctx.py
--- old/sacad-2.7.5/sacad/mkstemp_ctx.py 2023-06-13 22:55:01.000000000 +0200
+++ new/sacad-2.8.0/sacad/mkstemp_ctx.py 2024-07-28 22:16:52.000000000 +0200
@@ -1,4 +1,4 @@
-""" Additions to the tempfile module. """
+"""Additions to the tempfile module."""
import contextlib
import os
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/sacad-2.7.5/sacad/rate_watcher.py new/sacad-2.8.0/sacad/rate_watcher.py
--- old/sacad-2.7.5/sacad/rate_watcher.py 2023-06-13 22:55:01.000000000 +0200
+++ new/sacad-2.8.0/sacad/rate_watcher.py 2024-07-28 22:16:52.000000000 +0200
@@ -1,4 +1,4 @@
-""" Provide a class with a context manager to help avoid overloading web servers. """
+"""Provide a class with a context manager to help avoid overloading web servers."""
import asyncio
import logging
@@ -10,7 +10,6 @@
class AccessRateWatcher:
-
"""Access rate limiter, supporting concurrent access by threads and/or processes."""
def __init__(
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/sacad-2.7.5/sacad/recurse.py new/sacad-2.8.0/sacad/recurse.py
--- old/sacad-2.7.5/sacad/recurse.py 2023-06-13 22:55:01.000000000 +0200
+++ new/sacad-2.8.0/sacad/recurse.py 2024-07-28 22:16:52.000000000 +0200
@@ -1,6 +1,6 @@
#!/usr/bin/env python3
-""" Recursively search and download album covers for a music library. """
+"""Recursively search and download album covers for a music library."""
import argparse
import asyncio
@@ -36,7 +36,6 @@
# TODO use a dataclasses.dataclass when Python < 3.7 is dropped
class Work:
-
"""Represent a single search & download work item."""
def __init__(self, cover_filepath, audio_filepaths, metadata):
@@ -167,7 +166,7 @@
return r
-VALID_PATH_CHARS = frozenset(r"-_.()!#$%&'@^{}~" + string.ascii_letters + string.digits)
+VALID_PATH_CHARS = frozenset(r"-_.()!#$%&'@^{}~" + string.ascii_letters + string.digits + " ")
def sanitize_for_path(s):
@@ -288,7 +287,6 @@
def get_covers(work, args):
"""Get missing covers."""
with contextlib.ExitStack() as cm:
-
if args.cover_pattern == EMBEDDED_ALBUM_ART_SYMBOL:
tmp_prefix = f"{os.path.splitext(os.path.basename(inspect.getfile(inspect.currentframe())))[0]}_"
tmp_dir = cm.enter_context(tempfile.TemporaryDirectory(prefix=tmp_prefix))
@@ -358,9 +356,9 @@
args.size,
cover_filepath,
size_tolerance_prct=args.size_tolerance_prct,
- amazon_tlds=args.amazon_tlds,
source_classes=args.cover_sources,
preserve_format=args.preserve_format,
+ convert_progressive_jpeg=args.convert_progressive_jpeg,
)
future = asyncio.ensure_future(coroutine)
futures[future] = cur_work
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/sacad-2.7.5/sacad/sources/__init__.py new/sacad-2.8.0/sacad/sources/__init__.py
--- old/sacad-2.7.5/sacad/sources/__init__.py 2023-06-13 22:55:01.000000000 +0200
+++ new/sacad-2.8.0/sacad/sources/__init__.py 2024-07-28 22:16:52.000000000 +0200
@@ -1,7 +1,5 @@
-""" SACAD cover sources. """
+"""SACAD cover sources."""
-from sacad.sources.amazoncd import AmazonCdCoverSource, AmazonCdCoverSourceResult # noqa: F401
-from sacad.sources.amazondigital import AmazonDigitalCoverSource, AmazonDigitalCoverSourceResult # noqa: F401
from sacad.sources.deezer import DeezerCoverSource, DeezerCoverSourceResult # noqa: F401
from sacad.sources.discogs import DiscogsCoverSource, DiscogsCoverSourceResult # noqa: F401
from sacad.sources.itunes import ItunesCoverSource, ItunesCoverSourceResult # noqa: F401
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/sacad-2.7.5/sacad/sources/amazonbase.py new/sacad-2.8.0/sacad/sources/amazonbase.py
--- old/sacad-2.7.5/sacad/sources/amazonbase.py 2023-06-13 22:55:01.000000000 +0200
+++ new/sacad-2.8.0/sacad/sources/amazonbase.py 1970-01-01 01:00:00.000000000 +0100
@@ -1,30 +0,0 @@
-""" Base class for Amazon cover sources. """
-
-from sacad.sources.base import CoverSource
-
-
-class AmazonBaseCoverSource(CoverSource):
-
- """Base class for Amazon cover sources."""
-
- def __init__(self, *args, base_domain, **kwargs):
- super().__init__(
- *args,
- allow_cookies=True,
- min_delay_between_accesses=2,
- jitter_range_ms=(0, 3000),
- rate_limited_domains=(base_domain,),
- **kwargs,
- )
- self.base_domain = base_domain
-
- def processQueryString(self, s):
- """See CoverSource.processQueryString."""
- return __class__.unaccentuate(__class__.unpunctuate(s.lower()))
-
- def isBlocked(self, html):
- """Return True if Amazon source has blocked our IP (temporarily), and is sending a captcha."""
- blocked_titles = ("Robot Check", "Bot Check", "Amazon CAPTCHA")
- title = html.find("head/title")
- assert title is not None
- return title.text in blocked_titles
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/sacad-2.7.5/sacad/sources/amazoncd.py new/sacad-2.8.0/sacad/sources/amazoncd.py
--- old/sacad-2.7.5/sacad/sources/amazoncd.py 2023-06-13 22:55:01.000000000 +0200
+++ new/sacad-2.8.0/sacad/sources/amazoncd.py 1970-01-01 01:00:00.000000000 +0100
@@ -1,143 +0,0 @@
-""" Amazon CD cover source. """
-
-import collections
-import urllib.parse
-
-import lxml.cssselect
-import lxml.etree
-
-from sacad.cover import CoverImageFormat, CoverImageMetadata, CoverSourceQuality, CoverSourceResult
-from sacad.sources.amazonbase import AmazonBaseCoverSource
-
-
-class AmazonCdCoverSourceResult(CoverSourceResult):
-
- """Amazon CD cover search result."""
-
- def __init__(self, *args, **kwargs):
- super().__init__(
- *args, source_quality=CoverSourceQuality.FUZZY_SEARCH | CoverSourceQuality.UNRELATED_RESULT_RISK, **kwargs
- )
-
-
-class AmazonCdCoverSource(AmazonBaseCoverSource):
-
- """Cover source returning Amazon.com audio CD images."""
-
- TLDS = ("com", "ca", "cn", "fr", "de", "co.jp", "co.uk")
- RESULTS_SELECTORS = (
- lxml.cssselect.CSSSelector("span.rush-component[data-component-type='s-product-image']"),
- lxml.cssselect.CSSSelector("#resultsCol li.s-result-item"),
- )
- IMG_SELECTORS = (lxml.cssselect.CSSSelector("img.s-image"), lxml.cssselect.CSSSelector("img.s-access-image"))
- PRODUCT_LINK_SELECTORS = (lxml.cssselect.CSSSelector("a"), lxml.cssselect.CSSSelector("a.s-access-detail-page"))
- PRODUCT_PAGE_IMG_SELECTOR = lxml.cssselect.CSSSelector("img#landingImage")
-
- def __init__(self, *args, tld="com", **kwargs):
- assert tld in __class__.TLDS
- self.base_url = f"https://www.amazon.{tld}/s"
- super().__init__(*args, base_domain=urllib.parse.urlsplit(self.base_url).netloc, **kwargs)
-
- def getSearchUrl(self, album, artist):
- """See CoverSource.getSearchUrl."""
- params = collections.OrderedDict()
- params["i"] = "popular"
- params["rh"] = f"p_32:{artist},p_28:{album}"
- params["s"] = "relevancerank"
- return __class__.assembleUrl(self.base_url, params)
-
- async def parseResults(self, api_data):
- """See CoverSource.parseResults."""
- results = []
-
- # parse page
- parser = lxml.etree.HTMLParser()
- html = lxml.etree.XML(api_data.decode("utf-8", "ignore"), parser)
- if self.isBlocked(html):
- self.logger.warning("Source is sending a captcha")
- return results
-
- for page_struct_version, result_selector in enumerate(__class__.RESULTS_SELECTORS):
- result_nodes = result_selector(html)
- if result_nodes:
- break
-
- for rank, result_node in enumerate(result_nodes, 1):
- try:
- img_node = __class__.IMG_SELECTORS[page_struct_version](result_node)[0]
- except IndexError:
- # no image for that product
- continue
- # get thumbnail & full image url
- thumbnail_url = img_node.get("src")
- url_parts = thumbnail_url.rsplit(".", 2)
- img_url = ".".join((url_parts[0], url_parts[2]))
- # assume size is fixed
- size = (500, 500)
- check_metadata = CoverImageMetadata.SIZE
- # try to get higher res image...
- if (self.target_size > size[0]) and ( # ...only if needed
- rank <= 3
- ): # and only for first 3 results because this is time
- # consuming (1 more GET request per result)
- product_url = __class__.PRODUCT_LINK_SELECTORS[page_struct_version](result_node)[0].get("href")
- product_url_split = urllib.parse.urlsplit(product_url)
- if not product_url_split.scheme:
- # relative redirect url
- product_url_query = urllib.parse.parse_qsl(product_url_split.query)
- product_url_query = collections.OrderedDict(product_url_query)
- try:
- # needed if page_struct_version == 1
- product_url = product_url_query["url"]
- except KeyError:
- # page_struct_version == 0, make url absolute
- product_url = urllib.parse.urljoin(self.base_url, product_url)
- product_url_split = urllib.parse.urlsplit(product_url)
- product_url_query = urllib.parse.parse_qsl(product_url_split.query)
- product_url_query = collections.OrderedDict(product_url_query)
- try:
- # remove timestamp from url to improve future cache hit rate
- del product_url_query["qid"]
- except KeyError:
- pass
- product_url_query = urllib.parse.urlencode(product_url_query)
- product_url_no_ts = urllib.parse.urlunsplit(
- product_url_split[:3] + (product_url_query,) + product_url_split[4:]
- )
- store_in_cache_callback, product_page_data = await self.fetchResults(product_url_no_ts)
- product_page_html = lxml.etree.XML(product_page_data.decode("latin-1"), parser)
- try:
- img_node = __class__.PRODUCT_PAGE_IMG_SELECTOR(product_page_html)[0]
- except IndexError:
- # unable to get better image
- pass
- else:
- better_img_url = img_node.get("data-old-hires")
- # img_node.get("data-a-dynamic-image") contains json with image urls too, but they are not larger
- # than previous 500px image and are often covered by autorip badges (can be removed by cleaning url
- # though)
- if better_img_url:
- img_url = better_img_url
- size_url_hint = img_url.rsplit(".", 2)[1].strip("_").rsplit("_", 1)[-1]
- assert size_url_hint.startswith("SL")
- size_url_hint = int(size_url_hint[2:])
- size = (size_url_hint, size_url_hint)
- check_metadata = CoverImageMetadata.NONE
- await store_in_cache_callback()
-
- # assume format is always jpg
- format = CoverImageFormat.JPEG
- # add result
- results.append(
- AmazonCdCoverSourceResult(
- img_url,
- size,
- format,
- thumbnail_url=thumbnail_url,
- source=self,
- rank=rank,
- check_metadata=check_metadata,
- )
- )
-
- return results
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/sacad-2.7.5/sacad/sources/amazondigital.py new/sacad-2.8.0/sacad/sources/amazondigital.py
--- old/sacad-2.7.5/sacad/sources/amazondigital.py 2023-06-13 22:55:01.000000000 +0200
+++ new/sacad-2.8.0/sacad/sources/amazondigital.py 1970-01-01 01:00:00.000000000 +0100
@@ -1,160 +0,0 @@
-""" Amazon digital cover source. """
-
-import collections
-import operator
-import urllib.parse
-
-import lxml.cssselect
-import lxml.etree
-
-from sacad.cover import CoverImageFormat, CoverImageMetadata, CoverSourceQuality, CoverSourceResult
-from sacad.sources.amazonbase import AmazonBaseCoverSource
-
-AmazonDigitalImageFormat = collections.namedtuple("AmazonDigitalImageFormat", ("id", "slice_count", "total_res"))
-AMAZON_DIGITAL_IMAGE_FORMATS = [
- AmazonDigitalImageFormat(
- 0, 1, 600
- ), # http://z2-ec2.images-amazon.com/R/1/a=B00BJ93R7O+c=A17SFUTIVB227Z+d=_SCR(0,…
- AmazonDigitalImageFormat(
- 1, 2, 700
- ), # http://z2-ec2.images-amazon.com/R/1/a=B00BJ93R7O+c=A17SFUTIVB227Z+d=_SCR(1,…
- AmazonDigitalImageFormat(
- 1, 4, 1280
- ), # http://z2-ec2.images-amazon.com/R/1/a=B01NBTSVDN+c=A17SFUTIVB227Z+d=_SCR(1,…
- AmazonDigitalImageFormat(
- 2, 3, 1025
- ), # http://z2-ec2.images-amazon.com/R/1/a=B00BJ93R7O+c=A17SFUTIVB227Z+d=_SCR(2,…
- AmazonDigitalImageFormat(
- 2, 5, 1920
- ), # http://z2-ec2.images-amazon.com/R/1/a=B01NBTSVDN+c=A17SFUTIVB227Z+d=_SCR(2,…
- AmazonDigitalImageFormat(
- 3, 4, 1500
- ), # http://z2-ec2.images-amazon.com/R/1/a=B00BJ93R7O+c=A17SFUTIVB227Z+d=_SCR(3,…
- AmazonDigitalImageFormat(3, 7, 2560),
-] # http://z2-ec2.images-amazon.com/R/1/a=B01NBTSVDN+c=A17SFUTIVB227Z+d=_SCR(3,…
-AMAZON_DIGITAL_IMAGE_FORMATS.sort(key=operator.attrgetter("total_res"), reverse=True)
-
-
-class AmazonDigitalCoverSourceResult(CoverSourceResult):
-
- """Amazon digital cover search result."""
-
- def __init__(self, *args, **kwargs):
- super().__init__(
- *args, source_quality=CoverSourceQuality.FUZZY_SEARCH | CoverSourceQuality.UNRELATED_RESULT_RISK, **kwargs
- )
-
-
-class AmazonDigitalCoverSource(AmazonBaseCoverSource):
-
- """Cover source returning Amazon.com digital music images."""
-
- BASE_URL = "https://www.amazon.com"
- DYNAPI_KEY = "A17SFUTIVB227Z"
- RESULTS_SELECTORS = (
- lxml.cssselect.CSSSelector("span.rush-component[data-component-type='s-product-image']"),
- lxml.cssselect.CSSSelector("div#dm_mp3Player li.s-mp3-federated-bar-item"),
- )
- IMG_SELECTORS = (lxml.cssselect.CSSSelector("img.s-image"), lxml.cssselect.CSSSelector("img.s-access-image"))
- LINK_SELECTOR = lxml.cssselect.CSSSelector("a")
-
- def __init__(self, *args, **kwargs):
- super().__init__(*args, base_domain=urllib.parse.urlsplit(__class__.BASE_URL).netloc, **kwargs)
-
- def getSearchUrl(self, album, artist):
- """See CoverSource.getSearchUrl."""
- url = f"{__class__.BASE_URL}/s"
- params = collections.OrderedDict()
- params["k"] = " ".join((artist, album))
- params["i"] = "digital-music"
- params["s"] = "relevancerank"
- return __class__.assembleUrl(url, params)
-
- async def parseResults(self, api_data):
- """See CoverSource.parseResults."""
- results = []
-
- # parse page
- parser = lxml.etree.HTMLParser()
- html = lxml.etree.XML(api_data.decode("utf-8"), parser)
- if self.isBlocked(html):
- self.logger.warning("Source is sending a captcha")
- return results
-
- for page_struct_version, result_selector in enumerate(__class__.RESULTS_SELECTORS):
- result_nodes = result_selector(html)
- if result_nodes:
- break
-
- for rank, result_node in enumerate(result_nodes, 1):
- # get thumbnail & full image url
- img_node = __class__.IMG_SELECTORS[page_struct_version](result_node)[0]
- thumbnail_url = img_node.get("src")
- thumbnail_url = thumbnail_url.replace("Stripe-Prime-Only", "")
- url_parts = thumbnail_url.rsplit(".", 2)
- img_url = ".".join((url_parts[0], url_parts[2]))
-
- # assume size is fixed
- size = (500, 500)
-
- # try to get higher res image...
- if self.target_size > size[0]: # ...but only if needed
- self.logger.debug("Looking for optimal subimages configuration...")
- product_url = __class__.LINK_SELECTOR(result_node)[0].get("href")
- product_url = urllib.parse.urlsplit(product_url)
- product_id = product_url.path.split("/")[3]
-
- # TODO don't pick up highest res image if user asked less?
- for amazon_img_format in AMAZON_DIGITAL_IMAGE_FORMATS:
- # TODO review this, it seem to always fail now
- self.logger.debug("Trying %u subimages..." % (amazon_img_format.slice_count**2))
- urls = tuple(
- self.generateImgUrls(
- product_id, __class__.DYNAPI_KEY, amazon_img_format.id, amazon_img_format.slice_count
- )
- )
- url_ok = await self.probeUrl(urls[-1])
- if not url_ok:
- # images at this size are not available
- continue
-
- # images at this size are available
- img_url = urls
- size = (amazon_img_format.total_res,) * 2
- break
-
- # assume format is always jpg
- format = CoverImageFormat.JPEG
-
- # add result
- results.append(
- AmazonDigitalCoverSourceResult(
- img_url,
- size,
- format,
- thumbnail_url=thumbnail_url,
- source=self,
- rank=rank,
- check_metadata=CoverImageMetadata.SIZE,
- )
- )
-
- return results
-
- def generateImgUrls(self, product_id, dynapi_key, format_id, slice_count):
- """Generate URLs for slice_count^2 subimages of a product."""
- for x in range(slice_count):
- for y in range(slice_count):
- yield (
- "http://z2-ec2.images-amazon.com/R/1/a="
- + product_id
- + "+c="
- + dynapi_key
- + "+d=_SCR%28"
- + str(format_id)
- + ","
- + str(x)
- + ","
- + str(y)
- + "%29_=.jpg"
- )
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/sacad-2.7.5/sacad/sources/base.py new/sacad-2.8.0/sacad/sources/base.py
--- old/sacad-2.7.5/sacad/sources/base.py 2023-06-13 22:55:01.000000000 +0200
+++ new/sacad-2.8.0/sacad/sources/base.py 2024-07-28 22:16:52.000000000 +0200
@@ -1,4 +1,4 @@
-""" Common code for all cover sources cover sources. """
+"""Common code for all cover sources cover sources."""
import abc
import asyncio
@@ -21,7 +21,6 @@
class CoverSource(metaclass=abc.ABCMeta):
-
"""Base class for all cover sources."""
def __init__(
@@ -95,7 +94,7 @@
post_data = None
try:
store_in_cache_callback, api_data = await self.fetchResults(url, post_data)
- results = await self.parseResults(api_data)
+ results = await self.parseResults(api_data, search_album=album, search_artist=artist)
except Exception as e:
# raise
self.logger.warning(
@@ -239,6 +238,6 @@
pass
@abc.abstractmethod
- async def parseResults(self, api_data):
+ async def parseResults(self, api_data, *, search_album, search_artist):
"""Parse API data and return an iterable of results."""
pass
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/sacad-2.7.5/sacad/sources/deezer.py new/sacad-2.8.0/sacad/sources/deezer.py
--- old/sacad-2.7.5/sacad/sources/deezer.py 2023-06-13 22:55:01.000000000 +0200
+++ new/sacad-2.8.0/sacad/sources/deezer.py 2024-07-28 22:16:52.000000000 +0200
@@ -1,4 +1,4 @@
-""" Deezer cover source. """
+"""Deezer cover source."""
import collections
import json
@@ -9,7 +9,6 @@
class DeezerCoverSourceResult(CoverSourceResult):
-
"""Deezer search cover result."""
def __init__(self, *args, **kwargs):
@@ -21,7 +20,6 @@
class DeezerCoverSource(CoverSource):
-
"""
Cover source using the official Deezer API.
@@ -57,19 +55,25 @@
# API search is fuzzy, not need to alter query
return s
- async def parseResults(self, api_data):
+ async def parseResults(self, api_data, *, search_album, search_artist):
"""See CoverSource.parseResults."""
results = []
# get unique albums
json_data = json.loads(api_data)
albums = []
+ index_exact_match = 0
for e in json_data["data"]:
album = e["album"]
album_id = album["id"]
if album_id in map(operator.itemgetter("id"), albums):
continue
- albums.append(album)
+ if album["title"].lower() == search_album.lower():
+ # override default sorting by putting exact matches first
+ albums.insert(index_exact_match, album)
+ index_exact_match += 1
+ else:
+ albums.append(album)
for rank, album in enumerate(albums, 1):
for key, size in __class__.COVER_SIZES.items():
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/sacad-2.7.5/sacad/sources/discogs.py new/sacad-2.8.0/sacad/sources/discogs.py
--- old/sacad-2.7.5/sacad/sources/discogs.py 2023-06-13 22:55:01.000000000 +0200
+++ new/sacad-2.8.0/sacad/sources/discogs.py 2024-07-28 22:16:52.000000000 +0200
@@ -1,4 +1,4 @@
-""" Discogs cover source. """
+"""Discogs cover source."""
import collections
import json
@@ -11,7 +11,6 @@
class DiscogsCoverSourceResult(CoverSourceResult):
-
"""Discogs search cover result."""
def __init__(self, *args, **kwargs):
@@ -24,7 +23,6 @@
class DiscogsCoverSource(CoverSource):
-
"""
Cover source using the official API.
@@ -56,7 +54,7 @@
headers["Accept"] = "application/vnd.discogs.v2.discogs+json"
headers["Authorization"] = f"Discogs key={__class__.API_KEY}, secret={__class__.API_SECRET}"
- async def parseResults(self, api_data):
+ async def parseResults(self, api_data, *, search_album, search_artist):
"""See CoverSource.parseResults."""
json_data = json.loads(api_data)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/sacad-2.7.5/sacad/sources/itunes.py new/sacad-2.8.0/sacad/sources/itunes.py
--- old/sacad-2.7.5/sacad/sources/itunes.py 2023-06-13 22:55:01.000000000 +0200
+++ new/sacad-2.8.0/sacad/sources/itunes.py 2024-07-28 22:16:52.000000000 +0200
@@ -1,4 +1,4 @@
-""" Itunes cover source. """
+"""Itunes cover source."""
import collections
import json
@@ -9,19 +9,17 @@
class ItunesCoverSourceResult(CoverSourceResult):
-
"""Itunes search cover result."""
def __init__(self, *args, **kwargs):
super().__init__(
*args,
- source_quality=CoverSourceQuality.NO_UNRELATED_RESULT_RISK | CoverSourceQuality.EXACT_SEARCH,
+ source_quality=CoverSourceQuality.EXACT_SEARCH | CoverSourceQuality.NO_UNRELATED_RESULT_RISK,
**kwargs,
)
class ItunesCoverSource(CoverSource):
-
"""Itunes cover source."""
SEARCH_URL = "https://itunes.apple.com/search"
@@ -38,12 +36,16 @@
url_params["term"] = f"{artist} {album}"
return __class__.assembleUrl(__class__.SEARCH_URL, url_params)
- async def parseResults(self, api_data):
+ async def parseResults(self, api_data, *, search_album, search_artist):
"""See CoverSource.parseResults."""
json_data = json.loads(api_data)
results = []
for rank, result in enumerate(json_data["results"], 1):
+ if (search_album != self.processAlbumString(result["collectionName"])) or (
+ search_artist != self.processArtistString(result["artistName"])
+ ):
+ continue
thumbnail_url = result["artworkUrl60"]
base_img_url = result["artworkUrl60"].rsplit("/", 1)[0]
url_found = False
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/sacad-2.7.5/sacad/sources/lastfm.py new/sacad-2.8.0/sacad/sources/lastfm.py
--- old/sacad-2.7.5/sacad/sources/lastfm.py 2023-06-13 22:55:01.000000000 +0200
+++ new/sacad-2.8.0/sacad/sources/lastfm.py 2024-07-28 22:16:52.000000000 +0200
@@ -1,4 +1,4 @@
-""" LastFM cover source. """
+"""LastFM cover source."""
import collections
import os.path
@@ -10,7 +10,6 @@
class LastFmCoverSourceResult(CoverSourceResult):
-
"""LastFM cover search result."""
def __init__(self, *args, **kwargs):
@@ -22,7 +21,6 @@
class LastFmCoverSource(CoverSource):
-
"""
Cover source using the official LastFM API.
@@ -62,7 +60,7 @@
char_blacklist = frozenset(char_blacklist)
return __class__.unpunctuate(s.lower(), char_blacklist=char_blacklist)
- async def parseResults(self, api_data):
+ async def parseResults(self, api_data, *, search_album, search_artist):
"""See CoverSource.parseResults."""
results = []
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/sacad-2.7.5/sacad/tqdm_logging.py new/sacad-2.8.0/sacad/tqdm_logging.py
--- old/sacad-2.7.5/sacad/tqdm_logging.py 2023-06-13 22:55:01.000000000 +0200
+++ new/sacad-2.8.0/sacad/tqdm_logging.py 2024-07-28 22:16:52.000000000 +0200
@@ -1,4 +1,4 @@
-""" Code to help using the logging module with tqdm progress bars. """
+"""Code to help using the logging module with tqdm progress bars."""
import contextlib
import logging
@@ -8,7 +8,6 @@
class TqdmLoggingHandler(logging.Handler):
-
"""Logging handler sending messages to the tqdm write method (avoids overlap)."""
def __init__(self, tqdm, *args, **kwargs):
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/sacad-2.7.5/setup.py new/sacad-2.8.0/setup.py
--- old/sacad-2.7.5/setup.py 2023-06-13 22:55:01.000000000 +0200
+++ new/sacad-2.8.0/setup.py 2024-07-28 22:16:52.000000000 +0200
@@ -1,6 +1,6 @@
#!/usr/bin/env python3
-""" Package setup. """
+"""Package setup."""
import os
import re
@@ -8,8 +8,8 @@
from setuptools import find_packages, setup
-if sys.hexversion < 0x3060000:
- print("Python version %s is unsupported, >= 3.7.0 is needed" % (".".join(map(str, sys.version_info[:3]))))
+if sys.hexversion < 0x3080000:
+ print("Python version %s is unsupported, >= 3.8.0 is needed" % (".".join(map(str, sys.version_info[:3]))))
exit(1)
with open(os.path.join("sacad", "__init__.py"), "rt") as f:
@@ -53,10 +53,11 @@
"Programming Language :: Python",
"Programming Language :: Python :: 3",
"Programming Language :: Python :: 3 :: Only",
- "Programming Language :: Python :: 3.7",
"Programming Language :: Python :: 3.8",
"Programming Language :: Python :: 3.9",
"Programming Language :: Python :: 3.10",
+ "Programming Language :: Python :: 3.11",
+ "Programming Language :: Python :: 3.12",
"Topic :: Internet :: WWW/HTTP",
"Topic :: Multimedia :: Graphics",
"Topic :: Utilities",
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/sacad-2.7.5/tests/__init__.py new/sacad-2.8.0/tests/__init__.py
--- old/sacad-2.7.5/tests/__init__.py 2023-06-13 22:55:01.000000000 +0200
+++ new/sacad-2.8.0/tests/__init__.py 2024-07-28 22:16:52.000000000 +0200
@@ -1,6 +1,6 @@
#!/usr/bin/env python3
-""" Unit tests for main module. """
+"""Unit tests for main module."""
import asyncio
import contextlib
@@ -9,7 +9,6 @@
import socket
import unittest
import unittest.mock
-import urllib.parse
import warnings
import PIL.Image
@@ -74,7 +73,6 @@
@unittest.skipUnless(is_internet_reachable(), "Need Internet access")
class TestSacad(unittest.TestCase):
-
"""Test suite for main module."""
@staticmethod
@@ -105,12 +103,15 @@
size_tolerance_prct=size_tolerance,
)
sched_and_run(coroutine, delay=0.5)
- out_format, out_width, out_height = __class__.getImgInfo(tmp_filepath)
- self.assertEqual(out_format, format)
- self.assertLessEqual(out_width, size * (100 + size_tolerance) / 100)
- self.assertGreaterEqual(out_width, size * (100 - size_tolerance) / 100)
- self.assertLessEqual(out_height, size * (100 + size_tolerance) / 100)
- self.assertGreaterEqual(out_height, size * (100 - size_tolerance) / 100)
+ if os.path.getsize(tmp_filepath):
+ out_format, out_width, out_height = __class__.getImgInfo(tmp_filepath)
+ self.assertEqual(out_format, format)
+ self.assertLessEqual(out_width, size * (100 + size_tolerance) / 100)
+ self.assertGreaterEqual(out_width, size * (100 - size_tolerance) / 100)
+ self.assertLessEqual(out_height, size * (100 + size_tolerance) / 100)
+ self.assertGreaterEqual(out_height, size * (100 - size_tolerance) / 100)
+ elif size < 1200:
+ self.fail("No result")
@unittest.skipIf(os.getenv("CI") is not None, "Test is not reliable on CI servers")
def test_getImageUrlMetadata(self):
@@ -194,12 +195,7 @@
sacad.sources.LastFmCoverSource(*source_args),
sacad.sources.DeezerCoverSource(*source_args),
sacad.sources.DiscogsCoverSource(*source_args),
- sacad.sources.AmazonDigitalCoverSource(*source_args),
]
- sources.extend(
- sacad.sources.AmazonCdCoverSource(*source_args, tld=tld)
- for tld in sacad.sources.AmazonCdCoverSource.TLDS
- )
for artist, album in zip(("Michael Jackson", "Björk"), ("Thriller", "Vespertine")):
for source in sources:
with self.subTest(size=size, source=source, artist=artist, album=album):
@@ -215,10 +211,6 @@
)
)
or ((size > 1000) and isinstance(source, sacad.sources.DeezerCoverSource))
- or (
- isinstance(source, sacad.sources.AmazonCdCoverSource)
- and (urllib.parse.urlsplit(source.base_url).netloc.rsplit(".", 1)[-1] in ("cn", "jp"))
- )
):
self.assertGreaterEqual(len(results), 1)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/sacad-2.7.5/tests/rate_watcher_test.py new/sacad-2.8.0/tests/rate_watcher_test.py
--- old/sacad-2.7.5/tests/rate_watcher_test.py 2023-06-13 22:55:01.000000000 +0200
+++ new/sacad-2.8.0/tests/rate_watcher_test.py 2024-07-28 22:16:52.000000000 +0200
@@ -1,6 +1,6 @@
#!/usr/bin/env python3
-""" Unit tests for rate watcher. """
+"""Unit tests for rate watcher."""
import os
import tempfile
@@ -15,7 +15,6 @@
class TestRateWatcher(unittest.TestCase):
-
"""Test suite for rate watcher."""
def test_minDelayBetweenAccesses(self):
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/sacad-2.7.5/tests/recurse_test.py new/sacad-2.8.0/tests/recurse_test.py
--- old/sacad-2.7.5/tests/recurse_test.py 2023-06-13 22:55:01.000000000 +0200
+++ new/sacad-2.8.0/tests/recurse_test.py 2024-07-28 22:16:52.000000000 +0200
@@ -1,6 +1,6 @@
#!/usr/bin/env python3
-""" Unit tests for recurse module. """
+"""Unit tests for recurse module."""
import collections
import contextlib
@@ -39,7 +39,6 @@
class TestRecursive(unittest.TestCase):
-
"""Test suite for recurse module."""
def __init__(self, *args, **kwargs):
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/sacad-2.7.5/win/Makefile new/sacad-2.8.0/win/Makefile
--- old/sacad-2.7.5/win/Makefile 2023-06-13 22:55:01.000000000 +0200
+++ new/sacad-2.8.0/win/Makefile 2024-07-28 22:16:52.000000000 +0200
@@ -4,7 +4,7 @@
PYTHON_VERSION := 3.8.10
PYTHON_VERSION_MAJOR := $(word 1,$(subst ., ,${PYTHON_VERSION})).$(word 2,$(subst ., ,${PYTHON_VERSION}))
PYTHON_VERSION_SHORT := $(subst .,,${PYTHON_VERSION_MAJOR})
-CXFREEZE_VERSION := 6.11.1
+CXFREEZE_VERSION := 7.2.0
LXML_VERSION := 4.7.1
BITARRAY_VERSION := 2.3.5
@@ -135,10 +135,8 @@
rm $(dir $(a))python${PYTHON_VERSION_SHORT}.zip
${PIP_INSTALLED}: ${PYTHON_INSTALLED} ${GET_PIP}
- ${WINE_PYTHON} ${GET_PIP} install -qq
- mv $(dir ${PYTHON_INSTALLED})Lib/site-packages/* $(dir ${PYTHON_INSTALLED})
- ${WINE_PIP} -qq install setuptools==60.10.0
- mv $(dir ${PYTHON_INSTALLED})Lib/site-packages/* $(dir ${PYTHON_INSTALLED})
+ ${WINE_PYTHON} ${GET_PIP}
+ mv -f $(dir ${PYTHON_INSTALLED})Lib/site-packages/* $(dir ${PYTHON_INSTALLED})
touch $@
${CXFREEZE_INSTALLED}: ${CXFREEZE_WHEEL} ${PIP_INSTALLED}
@@ -168,15 +166,15 @@
${GET_PIP}:
mkdir -p $(dir $@)
- ${CURL} https://bootstrap.pypa.io/pip/3.6/$(notdir $@) > $@
+ ${CURL} https://bootstrap.pypa.io/pip/3.7/$(notdir $@) > $@
${CXFREEZE_WHEEL-win32}:
mkdir -p $(dir $@)
- ${CURL} https://files.pythonhosted.org/packages/9e/5f/7872323430985758cea081315f66b… $@) > $@
+ ${CURL} https://files.pythonhosted.org/packages/2e/46/0afe229acba3d0976bddc0f03b09c… $@) > $@
${CXFREEZE_WHEEL-win64}:
mkdir -p $(dir $@)
- ${CURL} https://files.pythonhosted.org/packages/ce/96/0af2b244d91cc118c762a6510af40… $@) > $@
+ ${CURL} https://files.pythonhosted.org/packages/17/86/6242fdb636b88a16a2a0924111fe8… $@) > $@
${LXML_WHEEL-win32}:
mkdir -p $(dir $@)
@@ -201,7 +199,8 @@
${DOWNLOAD_DIR}/sample.ogg:
mkdir -p $(dir $@)
- ${CURL} https://www.dropbox.com/s/zg80jd35ie3aury/Hydrate-Kenny_Beltrey.ogg > $@
+ # https://en.wikipedia.org/wiki/File:Opeth_-_Deliverance.ogg
+ ${CURL} 'https://www.dropbox.com/scl/fi/jmxbozi9210svk7jhqaju/Opeth_-_Deliverance.og…' > $@
#
1
0
Script 'mail_helper' called by obssrc
Hello community,
here is the log from the commit of package streamlink for openSUSE:Factory checked in at 2024-08-13 13:25:21
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/streamlink (Old)
and /work/SRC/openSUSE:Factory/.streamlink.new.7232 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "streamlink"
Tue Aug 13 13:25:21 2024 rev:16 rq:1193647 version:6.9.0
Changes:
--------
--- /work/SRC/openSUSE:Factory/streamlink/streamlink.changes 2024-07-14 08:54:33.349350029 +0200
+++ /work/SRC/openSUSE:Factory/.streamlink.new.7232/streamlink.changes 2024-08-13 13:25:45.380529568 +0200
@@ -1,0 +2,26 @@
+Mon Aug 12 23:05:48 UTC 2024 - Richard Rahl <rrahl0(a)opensuse.org>
+
+- updatet o 6.9.0:
+ * Added: streamlink.plugin.api.webbrowser subpackage with the aws_waf module
+ * Added: max_buffer_size kwarg to CDPClient.session()
+ * Added: webbrowser User-Agent header override in headless mode
+ * Changed: default value of --webbrowser-headless from True to False
+ * Changed: unicode characters to be unescaped in JSON output, if possible
+ * Fixed: potential character encoding issues in Streamlink's logger
+ * Updated plugins:
+ - nicolive: updated plugin matcher
+ - okru: fixed validation schema
+ - radionet: removed plugin
+ - sportschau: fixed plugin (HLS streams with packed audio streams remain unsupported)
+ - tiktok: fixed room ID validation schema
+ - tvp: added support for sport.tvp.pl
+ - twitch: added --twitch-force-client-integrity
+ - twitch: fixed broken client-integrity token decoding+parsing
+ - twitch: removed the headless=False override
+ - vimeo: removed error messages for unsupported DASH streams
+ - vk: fixed validation schema
+ - vtvgo: resolved AWS Web Application Firewall bot detection
+ - yupptv: fixed plugin, added ad filtering
+
+
+-------------------------------------------------------------------
Old:
----
streamlink-6.8.3.tar.gz
streamlink-6.8.3.tar.gz.asc
New:
----
streamlink-6.9.0.tar.gz
streamlink-6.9.0.tar.gz.asc
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ streamlink.spec ++++++
--- /var/tmp/diff_new_pack.wxcw3N/_old 2024-08-13 13:25:45.960553815 +0200
+++ /var/tmp/diff_new_pack.wxcw3N/_new 2024-08-13 13:25:45.960553815 +0200
@@ -24,7 +24,7 @@
%define psuffix %nil
%endif
Name: streamlink%{psuffix}
-Version: 6.8.3
+Version: 6.9.0
Release: 0
Summary: Program to pipe streams from services into a video player
License: Apache-2.0 AND BSD-2-Clause
++++++ streamlink-6.8.3.tar.gz -> streamlink-6.9.0.tar.gz ++++++
++++ 2879 lines of diff (skipped)
1
0