Script 'mail_helper' called by obssrc
Hello community,

here is the log from the commit of package kcodecs for openSUSE:Factory checked 
in at 2021-07-15 23:59:22
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/kcodecs (Old)
 and      /work/SRC/openSUSE:Factory/.kcodecs.new.2625 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "kcodecs"

Thu Jul 15 23:59:22 2021 rev:93 rq:905478 version:5.84.0

Changes:
--------
--- /work/SRC/openSUSE:Factory/kcodecs/kcodecs.changes  2021-06-16 
20:35:07.387149074 +0200
+++ /work/SRC/openSUSE:Factory/.kcodecs.new.2625/kcodecs.changes        
2021-07-16 00:01:01.589254948 +0200
@@ -1,0 +2,11 @@
+Sun Jul  4 07:45:12 UTC 2021 - Christophe Giboudeaux <[email protected]>
+
+- Update to 5.84.0
+  * New feature release
+  * For more details please see:
+  * https://kde.org/announcements/frameworks/5/5.84.0
+- Changes since 5.83.0:
+  * Add Base45 decoding
+- Only install the license files once
+
+-------------------------------------------------------------------

Old:
----
  kcodecs-5.83.0.tar.xz
  kcodecs-5.83.0.tar.xz.sig

New:
----
  kcodecs-5.84.0.tar.xz
  kcodecs-5.84.0.tar.xz.sig

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ kcodecs.spec ++++++
--- /var/tmp/diff_new_pack.4h2x5O/_old  2021-07-16 00:01:02.193250576 +0200
+++ /var/tmp/diff_new_pack.4h2x5O/_new  2021-07-16 00:01:02.193250576 +0200
@@ -17,14 +17,14 @@
 
 
 %define lname   libKF5Codecs5
-%define _tar_path 5.83
+%define _tar_path 5.84
 # Full KF5 version (e.g. 5.33.0)
 %{!?_kf5_version: %global _kf5_version %{version}}
 # Last major and minor KF5 version (e.g. 5.33)
 %{!?_kf5_bugfix_version: %define _kf5_bugfix_version %(echo %{_kf5_version} | 
awk -F. '{print $1"."$2}')}
 %bcond_without lang
 Name:           kcodecs
-Version:        5.83.0
+Version:        5.84.0
 Release:        0
 Summary:        Method collection to manipulate strings using various encodings
 License:        LGPL-2.1-or-later
@@ -104,7 +104,6 @@
 %{_kf5_libdir}/libKF5Codecs.so.*
 
 %files devel
-%license LICENSES/*
 %{_kf5_includedir}/
 %{_kf5_libdir}/cmake/KF5Codecs/
 %{_kf5_libdir}/libKF5Codecs.so


++++++ kcodecs-5.83.0.tar.xz -> kcodecs-5.84.0.tar.xz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kcodecs-5.83.0/CMakeLists.txt 
new/kcodecs-5.84.0/CMakeLists.txt
--- old/kcodecs-5.83.0/CMakeLists.txt   2021-06-05 11:13:45.000000000 +0200
+++ new/kcodecs-5.84.0/CMakeLists.txt   2021-07-03 14:07:38.000000000 +0200
@@ -1,10 +1,10 @@
 cmake_minimum_required(VERSION 3.16)
 
-set(KF_VERSION "5.83.0") # handled by release scripts
+set(KF_VERSION "5.84.0") # handled by release scripts
 project(KCodecs VERSION ${KF_VERSION})
 
 include(FeatureSummary)
-find_package(ECM 5.83.0  NO_MODULE)
+find_package(ECM 5.84.0  NO_MODULE)
 set_package_properties(ECM PROPERTIES TYPE REQUIRED DESCRIPTION "Extra CMake 
Modules." URL "https://commits.kde.org/extra-cmake-modules";)
 feature_summary(WHAT REQUIRED_PACKAGES_NOT_FOUND 
FATAL_ON_MISSING_REQUIRED_PACKAGES)
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kcodecs-5.83.0/autotests/CMakeLists.txt 
new/kcodecs-5.84.0/autotests/CMakeLists.txt
--- old/kcodecs-5.83.0/autotests/CMakeLists.txt 2021-06-05 11:13:45.000000000 
+0200
+++ new/kcodecs-5.84.0/autotests/CMakeLists.txt 2021-07-03 14:07:38.000000000 
+0200
@@ -11,6 +11,7 @@
     kcharsetstest.cpp
     kencodingprobertest.cpp
     rfc2047test.cpp
+    base45test.cpp
     codectest.cpp
     kemailaddresstest.cpp
     LINK_LIBRARIES KF5::Codecs Qt5::Test
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kcodecs-5.83.0/autotests/base45test.cpp 
new/kcodecs-5.84.0/autotests/base45test.cpp
--- old/kcodecs-5.83.0/autotests/base45test.cpp 1970-01-01 01:00:00.000000000 
+0100
+++ new/kcodecs-5.84.0/autotests/base45test.cpp 2021-07-03 14:07:38.000000000 
+0200
@@ -0,0 +1,71 @@
+/*
+    SPDX-FileCopyrightText: 2021 Volker Krause <[email protected]>
+
+    SPDX-License-Identifier: LGPL-2.0-or-later
+*/
+
+#include <QTest>
+
+#include <KCodecs>
+
+class Base45Test : public QObject
+{
+    Q_OBJECT
+private Q_SLOTS:
+    void testBase45Decode_data()
+    {
+        QTest::addColumn<QByteArray>("in");
+        QTest::addColumn<QByteArray>("out");
+
+        QTest::newRow("empty") << QByteArray() << QByteArray();
+
+        // examples from the RFC - 
https://datatracker.ietf.org/doc/draft-faltstrom-base45/
+        QTest::newRow("hello") << QByteArray("%69 VD92EX0") << 
QByteArray("Hello!!");
+        QTest::newRow("base-45") << QByteArray("UJCLQE7W581") << 
QByteArray("base-45");
+        QTest::newRow("ietf") << QByteArray("QED8WEX0") << QByteArray("ietf!");
+
+        // from EU DCG test data - 
https://github.com/eu-digital-green-certificates/dgc-testdata
+        QTest::newRow("eu-dcg")
+            << QByteArray(
+                   "6BF+70790T9WJWG.FKY*4GO0.O1CV2 O5 "
+                   
"N2FBBRW1*70HS8WY04AC*WIFN0AHCD8KD97TK0F90KECTHGWJC0FDC:5AIA%G7X+AQB9746HS80:54IBQF60R6$A80X6S1BTYACG6M+9XG8KIAWNA91AY%67092L4WJCT3EHS8XJC$+"
+                   "DXJCCWENF6OF63W5NW6WF6%JC QE/IAYJC5LEW34U3ET7DXC9 
QE-ED8%E.JCBECB1A-:8$96646AL60A60S6Q$D.UDRYA "
+                   
"96NF6L/5QW6307KQEPD09WEQDD+Q6TW6FA7C466KCN9E%961A6DL6FA7D46JPCT3E5JDLA7$Q6E464W5TG6..DX%DZJC6/DTZ9
 QE5$CB$DA/D "
+                   "JC1/D3Z8WED1ECW.CCWE.Y92OAGY8MY9L+9MPCG/D5 
C5IA5N9$PC5$CUZCY$5Y$527B+A4KZNQG5TKOWWD9FL%I8U$F7O2IBM85CWOC%LEZU4R/BXHDAHN "
+                   "11$CA5MRI:AONFN7091K9FKIGIY%VWSSSU9%01FO2*FTPQ3C3F")
+            << QByteArray::fromHex(
+                   
"789c0163019cfed28443a10126a104480c4b15512be9140159010da401624445061a60b29429041a61f39fa9390103a101a4617681aa626369782f55524e3a555643493a303"
+                   
"144452f495a3132333435412f3543574c553132524e4f4239525853454f5036464738235762636f62444562646e026264746a323032312d30352d323962697374526f626572"
+                   
"74204b6f63682d496e737469747574626d616d4f52472d313030303331313834626d706c45552f312f32302f3135303762736402627467693834303533393030366276706a3"
+                   
"131313933343930303763646f626a313936342d30382d3132636e616da462666e6a4d75737465726d616e6e62676e654572696b6163666e746a4d55535445524d414e4e6367"
+                   
"6e74654552494b416376657265312e302e305840218ebc2a2a77c1796c95a8c942987d461411b0075fd563447295250d5ead69f3b8f6083a515bd97656e87aca01529e6aa0e"
+                   "09144fc07e2884c93080f1419e82f1c66773a");
+    }
+
+    void testBase45Decode()
+    {
+        QFETCH(QByteArray, in);
+        QFETCH(QByteArray, out);
+
+        QCOMPARE(KCodecs::base45Decode(in), out);
+    }
+
+    void testBase45DecodeInvalid_data()
+    {
+        QTest::addColumn<QByteArray>("in");
+        QTest::newRow("1 byte") << QByteArray("X");
+        QTest::newRow("invalid chars") << QByteArray("%69 vD92Ex0");
+    }
+
+    void testBase45DecodeInvalid()
+    {
+        QFETCH(QByteArray, in);
+
+        // undefined return value, but must not crash or produce ASAN errors
+        KCodecs::base45Decode(in);
+    }
+};
+
+QTEST_APPLESS_MAIN(Base45Test)
+
+#include "base45test.moc"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kcodecs-5.83.0/po/de/kcodecs5_qt.po 
new/kcodecs-5.84.0/po/de/kcodecs5_qt.po
--- old/kcodecs-5.83.0/po/de/kcodecs5_qt.po     2021-06-05 11:13:45.000000000 
+0200
+++ new/kcodecs-5.84.0/po/de/kcodecs5_qt.po     2021-07-03 14:07:38.000000000 
+0200
@@ -21,9 +21,8 @@
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
-"X-Generator: Lokalize 19.04.3\n"
-"X-Qt-Contexts: true\n"
 "Plural-Forms: nplurals=2; plural=n != 1;\n"
+"X-Qt-Contexts: true\n"
 
 #: kcharsets.cpp:155
 msgctxt "KCharsets|@item Text character set"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kcodecs-5.83.0/po/zh_CN/kcodecs5_qt.po 
new/kcodecs-5.84.0/po/zh_CN/kcodecs5_qt.po
--- old/kcodecs-5.83.0/po/zh_CN/kcodecs5_qt.po  2021-06-05 11:13:45.000000000 
+0200
+++ new/kcodecs-5.84.0/po/zh_CN/kcodecs5_qt.po  2021-07-03 14:07:38.000000000 
+0200
@@ -13,7 +13,7 @@
 msgid ""
 msgstr ""
 "Project-Id-Version: kdeorg\n"
-"PO-Revision-Date: 2021-06-03 16:05\n"
+"PO-Revision-Date: 2021-06-20 07:35\n"
 "Language-Team: Chinese Simplified\n"
 "Language: zh_CN\n"
 "MIME-Version: 1.0\n"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kcodecs-5.83.0/src/CMakeLists.txt 
new/kcodecs-5.84.0/src/CMakeLists.txt
--- old/kcodecs-5.83.0/src/CMakeLists.txt       2021-06-05 11:13:45.000000000 
+0200
+++ new/kcodecs-5.84.0/src/CMakeLists.txt       2021-07-03 14:07:38.000000000 
+0200
@@ -9,6 +9,7 @@
 target_sources(KF5Codecs PRIVATE
     kcharsets.cpp
     kcodecs.cpp
+    kcodecsbase45.cpp
     kcodecsbase64.cpp
     kcodecsidentity.cpp
     kcodecsqp.cpp
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kcodecs-5.83.0/src/kcodecs.h 
new/kcodecs-5.84.0/src/kcodecs.h
--- old/kcodecs-5.83.0/src/kcodecs.h    2021-06-05 11:13:45.000000000 +0200
+++ new/kcodecs-5.84.0/src/kcodecs.h    2021-07-03 14:07:38.000000000 +0200
@@ -327,6 +327,17 @@
  */
 KCODECS_EXPORT QByteArray encodeRFC2047String(const QString &src, const 
QByteArray &charset);
 
+/**
+ * Decodes the given data that was encoded using the
+ * base45 codec.
+ *
+ * @param in   data to be decoded.
+ * @return     decoded string.
+ * @since 5.84
+ * @see https://datatracker.ietf.org/doc/draft-faltstrom-base45/
+ */
+KCODECS_EXPORT QByteArray base45Decode(const QByteArray &in);
+
 class Encoder;
 class EncoderPrivate;
 class Decoder;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kcodecs-5.83.0/src/kcodecsbase45.cpp 
new/kcodecs-5.84.0/src/kcodecsbase45.cpp
--- old/kcodecs-5.83.0/src/kcodecsbase45.cpp    1970-01-01 01:00:00.000000000 
+0100
+++ new/kcodecs-5.84.0/src/kcodecsbase45.cpp    2021-07-03 14:07:38.000000000 
+0200
@@ -0,0 +1,44 @@
+
+/*
+    SPDX-FileCopyrightText: 2021 Volker Krause <[email protected]>
+
+    SPDX-License-Identifier: LGPL-2.0-or-later
+*/
+
+#include "kcodecs.h"
+#include "kcodecs_debug.h"
+
+#include <QDebug>
+
+static constexpr const char base45Table[] = 
"0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ $%*+-./:";
+
+static uint8_t base45MapFromChar(char c)
+{
+    const auto it = std::find(std::begin(base45Table), std::end(base45Table), 
c);
+    if (it == std::end(base45Table)) {
+        qCWarning(KCODECS_LOG) << "invalid base45 character:" << c;
+        return 0;
+    }
+    return std::distance(std::begin(base45Table), it);
+}
+
+QByteArray KCodecs::base45Decode(const QByteArray &in)
+{
+    QByteArray out;
+    out.reserve(((in.size() / 3) + 1) * 2);
+
+    for (int i = 0; i + 1 < in.size(); i += 3) {
+        uint32_t n = base45MapFromChar(in[i]) + base45MapFromChar(in[i + 1]) * 
45;
+        if (i + 2 < in.size()) {
+            n += 45 * 45 * base45MapFromChar(in[i + 2]);
+            out.push_back(n >> 8);
+        } else {
+            if (n >> 8) {
+                out.push_back(n >> 8);
+            }
+        }
+        out.push_back(n % 256);
+    }
+
+    return out;
+}

Reply via email to