openSUSE Commits
Threads by month
- ----- 2025 -----
- January
- ----- 2024 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2023 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2022 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2021 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2020 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2019 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2018 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2017 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2016 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2015 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2014 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2013 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2012 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2011 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2010 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2009 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2008 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2007 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2006 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
December 2022
- 1 participants
- 2264 discussions
Script 'mail_helper' called by obssrc
Hello community,
here is the log from the commit of package librepo for openSUSE:Factory checked in at 2022-12-30 11:08:13
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/librepo (Old)
and /work/SRC/openSUSE:Factory/.librepo.new.1563 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "librepo"
Fri Dec 30 11:08:13 2022 rev:18 rq:1045671 version:1.15.1
Changes:
--------
--- /work/SRC/openSUSE:Factory/librepo/librepo.changes 2022-10-17 14:57:19.242049025 +0200
+++ /work/SRC/openSUSE:Factory/.librepo.new.1563/librepo.changes 2022-12-30 11:08:15.589004242 +0100
@@ -1,0 +2,9 @@
+Wed Dec 28 16:50:53 UTC 2022 - Andreas Stieger <andreas.stieger(a)gmx.de>
+
+- update to 1.15.1:
+ * Add API support for waiting on network in an event driven
+ manner
+ * OpenPGP API extension and fixes
+- lincense updated to LGPL-2.1-or-later
+
+-------------------------------------------------------------------
Old:
----
librepo-1.14.5.tar.gz
New:
----
librepo-1.15.1.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ librepo.spec ++++++
--- /var/tmp/diff_new_pack.X57fFf/_old 2022-12-30 11:08:17.485015576 +0100
+++ /var/tmp/diff_new_pack.X57fFf/_new 2022-12-30 11:08:17.513015744 +0100
@@ -37,10 +37,10 @@
%define devname %{name}-devel
Name: librepo
-Version: 1.14.5
+Version: 1.15.1
Release: 0
Summary: Repodata downloading library
-License: LGPL-2.0-or-later
+License: LGPL-2.1-or-later
Group: Development/Libraries/C and C++
URL: https://github.com/rpm-software-management/librepo
++++++ librepo-1.14.5.tar.gz -> librepo-1.15.1.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/librepo-1.14.5/CMakeLists.txt new/librepo-1.15.1/CMakeLists.txt
--- old/librepo-1.14.5/CMakeLists.txt 2022-09-09 12:32:23.000000000 +0200
+++ new/librepo-1.15.1/CMakeLists.txt 2022-12-09 13:47:26.000000000 +0100
@@ -28,7 +28,7 @@
# Find necessare libraries
FIND_PACKAGE(PkgConfig)
-PKG_CHECK_MODULES(GLIB2 glib-2.0>=2.28 REQUIRED)
+PKG_CHECK_MODULES(GLIB2 glib-2.0>=2.28 gio-2.0 REQUIRED)
PKG_SEARCH_MODULE(LIBCRYPTO REQUIRED libcrypto openssl)
PKG_CHECK_MODULES(LIBXML2 libxml-2.0 REQUIRED)
FIND_PACKAGE(CURL 7.52.0 REQUIRED)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/librepo-1.14.5/VERSION.cmake new/librepo-1.15.1/VERSION.cmake
--- old/librepo-1.14.5/VERSION.cmake 2022-09-09 12:32:23.000000000 +0200
+++ new/librepo-1.15.1/VERSION.cmake 2022-12-09 13:47:26.000000000 +0100
@@ -1,3 +1,3 @@
SET(LIBREPO_MAJOR "1")
-SET(LIBREPO_MINOR "14")
-SET(LIBREPO_PATCH "5")
+SET(LIBREPO_MINOR "15")
+SET(LIBREPO_PATCH "1")
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/librepo-1.14.5/librepo/gpg.c new/librepo-1.15.1/librepo/gpg.c
--- old/librepo-1.14.5/librepo/gpg.c 2022-09-09 12:32:23.000000000 +0200
+++ new/librepo-1.15.1/librepo/gpg.c 2022-12-09 13:47:26.000000000 +0100
@@ -1,5 +1,6 @@
/* librepo - A library providing (libcURL like) API to downloading repository
* Copyright (C) 2012 Tomas Mlcoch
+ * Copyright (C) 2022 Jaroslav Rohel <jrohel(a)redhat.com>
*
* Licensed under the GNU Lesser General Public License Version 2.1
*
@@ -19,12 +20,10 @@
*/
#include <assert.h>
-#include <glib.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
#include <errno.h>
-#include <string.h>
#include <gpgme.h>
#include <unistd.h>
@@ -32,6 +31,21 @@
#include "util.h"
#include "gpg.h"
+struct tLrGpgSubkey {
+ gboolean has_next; // FALSE if this is the last subkey in the list
+ char *id; // subkey id
+ char *fingerprint; // fingerprint of the subkey in hex digit form
+ long int timestamp; // creation timestamp, -1 if invalid, 0 if not available
+ gboolean can_sign; // TRUE if subkey can be used for signing
+};
+
+struct tLrGpgKey {
+ gboolean has_next; // FALSE if this is the last subkey in the list
+ char **uids; // NULL terminated array of user IDs strings
+ LrGpgSubkey *subkeys; // list of subkeys associated with the key. The first subkey is the primary key
+ char *raw_key; // key in ACII-Armor format
+};
+
/*
* Creates the '/run/user/$UID' directory if it doesn't exist. If this
* directory exists, gpgagent will create its sockets under
@@ -52,7 +66,9 @@
* [2] https://bugzilla.redhat.com/show_bug.cgi?id=1769831
* [3] https://github.com/rpm-software-management/microdnf/issues/50
*/
-void ensure_socket_dir_exists() {
+static void
+lr_gpg_ensure_socket_dir_exists()
+{
char dirname[32];
snprintf(dirname, sizeof(dirname), "/run/user/%u", getuid());
int res = mkdir(dirname, 0700);
@@ -61,22 +77,16 @@
}
}
-gboolean
-lr_gpg_check_signature_fd(int signature_fd,
- int data_fd,
- const char *home_dir,
- GError **err)
+static gpgme_ctx_t
+lr_gpg_context_init(const char *home_dir, GError **err)
{
- gpgme_error_t gpgerr;
- gpgme_ctx_t context;
- gpgme_data_t signature_data;
- gpgme_data_t data_data;
- gpgme_verify_result_t result;
- gpgme_signature_t sig;
-
assert(!err || *err == NULL);
- // Initialization
+ lr_gpg_ensure_socket_dir_exists();
+
+ gpgme_ctx_t context;
+ gpgme_error_t gpgerr;
+
gpgme_check_version(NULL);
gpgerr = gpgme_engine_check_version(GPGME_PROTOCOL_OpenPGP);
if (gpgerr != GPG_ERR_NO_ERROR) {
@@ -85,7 +95,7 @@
g_set_error(err, LR_GPG_ERROR, LRE_GPGNOTSUPPORTED,
"gpgme_engine_check_version() error: %s",
gpgme_strerror(gpgerr));
- return FALSE;
+ return NULL;
}
gpgerr = gpgme_new(&context);
@@ -93,7 +103,7 @@
g_debug("%s: gpgme_new: %s", __func__, gpgme_strerror(gpgerr));
g_set_error(err, LR_GPG_ERROR, LRE_GPGERROR,
"gpgme_new() error: %s", gpgme_strerror(gpgerr));
- return FALSE;
+ return NULL;
}
gpgerr = gpgme_set_protocol(context, GPGME_PROTOCOL_OpenPGP);
@@ -102,25 +112,44 @@
g_set_error(err, LR_GPG_ERROR, LRE_GPGERROR,
"gpgme_set_protocol() error: %s", gpgme_strerror(gpgerr));
gpgme_release(context);
- return FALSE;
+ return NULL;
}
if (home_dir) {
gpgerr = gpgme_ctx_set_engine_info(context, GPGME_PROTOCOL_OpenPGP,
NULL, home_dir);
if (gpgerr != GPG_ERR_NO_ERROR) {
- g_debug("%s: gpgme_ctx_set_engine_info: %s", __func__,
- gpgme_strerror(gpgerr));
+ g_debug("%s: gpgme_ctx_set_engine_info: %s", __func__, gpgme_strerror(gpgerr));
g_set_error(err, LR_GPG_ERROR, LRE_GPGERROR,
"gpgme_ctx_set_engine_info() error: %s",
gpgme_strerror(gpgerr));
gpgme_release(context);
- return FALSE;
+ return NULL;
}
}
gpgme_set_armor(context, 1);
+ return context;
+}
+
+gboolean
+lr_gpg_check_signature_fd(int signature_fd,
+ int data_fd,
+ const char *home_dir,
+ GError **err)
+{
+ gpgme_error_t gpgerr;
+ gpgme_data_t signature_data;
+ gpgme_data_t data_data;
+ gpgme_verify_result_t result;
+ gpgme_signature_t sig;
+
+ gpgme_ctx_t context = lr_gpg_context_init(home_dir, err);
+ if (!context) {
+ return FALSE;
+ }
+
gpgerr = gpgme_data_new_from_fd(&signature_data, signature_fd);
if (gpgerr != GPG_ERR_NO_ERROR) {
g_debug("%s: gpgme_data_new_from_fd: %s",
@@ -235,73 +264,54 @@
}
gboolean
-lr_gpg_import_key(const char *key_fn, const char *home_dir, GError **err)
+lr_gpg_import_key_from_memory(const char *key, size_t key_len, const char *home_dir, GError **err)
{
+ gpgme_ctx_t context = lr_gpg_context_init(home_dir, err);
+ if (!context) {
+ return FALSE;
+ }
+
gpgme_error_t gpgerr;
- int key_fd;
- gpgme_ctx_t context;
gpgme_data_t key_data;
- assert(!err || *err == NULL);
-
- ensure_socket_dir_exists();
-
- // Initialization
- gpgme_check_version(NULL);
- gpgerr = gpgme_engine_check_version(GPGME_PROTOCOL_OpenPGP);
+ gpgerr = gpgme_data_new_from_mem(&key_data, key, key_len, 0);
if (gpgerr != GPG_ERR_NO_ERROR) {
- g_debug("%s: gpgme_engine_check_version: %s",
+ g_debug("%s: gpgme_data_new_from_mem: %s",
__func__, gpgme_strerror(gpgerr));
- g_set_error(err, LR_GPG_ERROR, LRE_GPGNOTSUPPORTED,
- "gpgme_engine_check_version() error: %s",
- gpgme_strerror(gpgerr));
- return FALSE;
- }
-
- gpgerr = gpgme_new(&context);
- if (gpgerr != GPG_ERR_NO_ERROR) {
- g_debug("%s: gpgme_new: %s", __func__, gpgme_strerror(gpgerr));
g_set_error(err, LR_GPG_ERROR, LRE_GPGERROR,
- "gpgme_new() error: %s", gpgme_strerror(gpgerr));
+ "gpgme_data_new_from_mem(_, _, %ld, 0) error: %s",
+ (unsigned long)key_len, gpgme_strerror(gpgerr));
+ gpgme_release(context);
return FALSE;
}
- gpgerr = gpgme_set_protocol(context, GPGME_PROTOCOL_OpenPGP);
+ gpgerr = gpgme_op_import(context, key_data);
if (gpgerr != GPG_ERR_NO_ERROR) {
- g_debug("%s: gpgme_set_protocol: %s", __func__, gpgme_strerror(gpgerr));
+ g_debug("%s: gpgme_op_import: %s", __func__, gpgme_strerror(gpgerr));
g_set_error(err, LR_GPG_ERROR, LRE_GPGERROR,
- "gpgme_set_protocol() error: %s", gpgme_strerror(gpgerr));
+ "gpgme_op_import() error: %s", gpgme_strerror(gpgerr));
+ gpgme_data_release(key_data);
gpgme_release(context);
return FALSE;
}
- if (home_dir) {
- gpgerr = gpgme_ctx_set_engine_info(context, GPGME_PROTOCOL_OpenPGP,
- NULL, home_dir);
- if (gpgerr != GPG_ERR_NO_ERROR) {
- g_debug("%s: gpgme_ctx_set_engine_info: %s", __func__, gpgme_strerror(gpgerr));
- g_set_error(err, LR_GPG_ERROR, LRE_GPGERROR,
- "gpgme_ctx_set_engine_info() error: %s",
- gpgme_strerror(gpgerr));
- gpgme_release(context);
- return FALSE;
- }
- }
-
- gpgme_set_armor(context, 1);
+ gpgme_data_release(key_data);
+ gpgme_release(context);
- // Key import
+ return TRUE;
+}
- key_fd = open(key_fn, O_RDONLY);
- if (key_fd == -1) {
- g_debug("%s: Opening key: %s", __func__, g_strerror(errno));
- g_set_error(err, LR_GPG_ERROR, LRE_IO,
- "Error while opening key %s: %s",
- key_fn, g_strerror(errno));
- gpgme_release(context);
+gboolean
+lr_gpg_import_key_from_fd(int key_fd, const char *home_dir, GError **err)
+{
+ gpgme_ctx_t context = lr_gpg_context_init(home_dir, err);
+ if (!context) {
return FALSE;
}
+ gpgme_error_t gpgerr;
+ gpgme_data_t key_data;
+
gpgerr = gpgme_data_new_from_fd(&key_data, key_fd);
if (gpgerr != GPG_ERR_NO_ERROR) {
g_debug("%s: gpgme_data_new_from_fd: %s",
@@ -310,24 +320,267 @@
"gpgme_data_new_from_fd(_, %d) error: %s",
key_fd, gpgme_strerror(gpgerr));
gpgme_release(context);
- close(key_fd);
return FALSE;
}
gpgerr = gpgme_op_import(context, key_data);
- gpgme_data_release(key_data);
if (gpgerr != GPG_ERR_NO_ERROR) {
g_debug("%s: gpgme_op_import: %s", __func__, gpgme_strerror(gpgerr));
g_set_error(err, LR_GPG_ERROR, LRE_GPGERROR,
"gpgme_op_import() error: %s", gpgme_strerror(gpgerr));
+ gpgme_data_release(key_data);
gpgme_release(context);
- close(key_fd);
return FALSE;
}
+ gpgme_data_release(key_data);
+ gpgme_release(context);
+
+ return TRUE;
+}
+
+gboolean
+lr_gpg_import_key(const char *key_fn, const char *home_dir, GError **err)
+{
+ assert(!err || *err == NULL);
+
+ int key_fd = open(key_fn, O_RDONLY);
+ if (key_fd == -1) {
+ g_debug("%s: Opening key: %s", __func__, g_strerror(errno));
+ g_set_error(err, LR_GPG_ERROR, LRE_IO,
+ "Error while opening key %s: %s",
+ key_fn, g_strerror(errno));
+ return FALSE;
+ }
+
+ gboolean ret = lr_gpg_import_key_from_fd(key_fd, home_dir, err);
+
close(key_fd);
+ return ret;
+}
+
+LrGpgKey *
+lr_gpg_list_keys(gboolean export_keys, const char *home_dir, GError **err)
+{
+ gpgme_error_t gpgerr;
+
+ gpgme_ctx_t context = lr_gpg_context_init(home_dir, err);
+ if (!context) {
+ return NULL;
+ }
+
+ GArray * keys = g_array_new(FALSE, FALSE, sizeof(LrGpgKey));
+
+ gpgerr = gpgme_op_keylist_start(context, NULL, 0);
+ while (gpg_err_code(gpgerr) == GPG_ERR_NO_ERROR) {
+ gpgme_key_t key;
+ gpgerr = gpgme_op_keylist_next(context, &key);
+ if (gpgerr) {
+ break;
+ }
+
+ GArray * subkeys = g_array_new(FALSE, FALSE, sizeof(LrGpgSubkey));
+ gpgme_subkey_t subkey = key->subkeys;
+ while (subkey) {
+ LrGpgSubkey lr_subkey;
+ lr_subkey.has_next = FALSE;
+ lr_subkey.id = g_strdup(subkey->keyid);
+ lr_subkey.fingerprint = g_strdup(subkey->fpr);
+ lr_subkey.timestamp = subkey->timestamp;
+ lr_subkey.can_sign = subkey->can_sign;
+ g_array_append_val(subkeys, lr_subkey);
+ subkey = subkey->next;
+ }
+ // All subkeys in the list except the last one are followed by another subkey
+ if (subkeys->len > 0) {
+ for (guint i = 0; i < subkeys->len - 1; ++i) {
+ g_array_index(subkeys, LrGpgSubkey, i).has_next = TRUE;
+ }
+ }
+
+ LrGpgKey lr_key;
+ lr_key.has_next = FALSE;
+
+ GPtrArray * uid_strings = g_ptr_array_new();
+ for (gpgme_user_id_t uids = key->uids; uids; uids = uids->next) {
+ if (!uids->uid) {
+ continue;
+ }
+ g_ptr_array_add(uid_strings, g_strdup(uids->uid));
+ }
+
+ gpgme_key_release(key);
+
+ g_ptr_array_add(uid_strings, NULL); // add terminating NULL
+ lr_key.uids = (char **)g_ptr_array_free(uid_strings, FALSE);
+
+ lr_key.subkeys = (LrGpgSubkey *)(subkeys->len > 0 ? g_array_free(subkeys, FALSE) : g_array_free(subkeys, TRUE));
+ lr_key.raw_key = NULL;
+ g_array_append_val(keys, lr_key);
+ }
+ // All keys in the list except the last one are followed by another key
+ for (guint i = 0; i < keys->len - 1; ++i) {
+ g_array_index(keys, LrGpgKey, i).has_next = TRUE;
+ }
+
+ if (gpg_err_code(gpgerr) != GPG_ERR_EOF) {
+ g_debug("%s: gpgme_op_keylist_: %s",
+ __func__, gpgme_strerror(gpgerr));
+ g_set_error(err, LR_GPG_ERROR, LRE_GPGERROR,
+ "gpgme_op_keylist_ error: %s",
+ gpgme_strerror(gpgerr));
+ lr_gpg_keys_free((LrGpgKey *)g_array_free(keys, FALSE));
+ gpgme_release(context);
+ return NULL;
+ }
+
+ gpgme_op_keylist_end(context);
+
+ LrGpgKey *lr_keys = (LrGpgKey *)(keys->len > 0 ? g_array_free(keys, FALSE) : g_array_free(keys, TRUE));
+
+ if (export_keys) {
+ for (LrGpgKey *lr_key = lr_keys; lr_key; ++lr_key) {
+ LrGpgSubkey *lr_subkey = lr_key->subkeys;
+ if (!lr_subkey) {
+ g_info("%s: Missing data to export key. Damaged key? Skipping the key", __func__);
+ if (!lr_key->has_next) {
+ break;
+ }
+ continue;
+ }
+
+ gpgme_data_t key_data;
+ gpgerr = gpgme_data_new(&key_data);
+ if (gpgerr != GPG_ERR_NO_ERROR) {
+ g_debug("%s: gpgme_data_new: %s", __func__, gpgme_strerror(gpgerr));
+ g_set_error(err, LR_GPG_ERROR, LRE_GPGERROR,
+ "gpgme_data_new() error: %s", gpgme_strerror(gpgerr));
+ lr_gpg_keys_free(lr_keys);
+ gpgme_release(context);
+ return NULL;
+ }
+
+ gpgerr = gpgme_op_export(context, lr_subkey->fingerprint, 0, key_data);
+ if (gpgerr != GPG_ERR_NO_ERROR) {
+ g_debug("%s: gpgme_op_export: %s", __func__, gpgme_strerror(gpgerr));
+ g_set_error(err, LR_GPG_ERROR, LRE_GPGERROR,
+ "gpgme_op_export() error: %s", gpgme_strerror(gpgerr));
+ gpgme_data_release(key_data);
+ lr_gpg_keys_free(lr_keys);
+ gpgme_release(context);
+ return NULL;
+ }
+
+ off_t key_size = gpgme_data_seek(key_data, 0, SEEK_CUR);
+ gpgerr = gpgme_data_rewind(key_data);
+ if (gpgerr != GPG_ERR_NO_ERROR) {
+ g_debug("%s: gpgme_data_rewind: %s", __func__, gpgme_strerror(gpgerr));
+ g_set_error(err, LR_GPG_ERROR, LRE_GPGERROR,
+ "gpgme_data_rewind() error: %s", gpgme_strerror(gpgerr));
+ gpgme_data_release(key_data);
+ lr_gpg_keys_free(lr_keys);
+ gpgme_release(context);
+ return NULL;
+ }
+
+ lr_key->raw_key = g_malloc0(key_size + 1);
+ ssize_t readed = gpgme_data_read(key_data, lr_key->raw_key, key_size);
+ if (readed == -1) {
+ g_debug("%s: gpgme_data_read: %s", __func__, gpgme_strerror(gpgerr));
+ g_set_error(err, LR_GPG_ERROR, LRE_GPGERROR,
+ "gpgme_data_read() error: %s", gpgme_strerror(gpgerr));
+ gpgme_data_release(key_data);
+ lr_gpg_keys_free(lr_keys);
+ gpgme_release(context);
+ return NULL;
+ }
+ if (readed != key_size) {
+ g_warning("%s: Error exporting key \"%s\": gpgme_data_read: Key size is %ld but readed %ld. "
+ "Skipping the key",
+ __func__, lr_key->subkeys->fingerprint, (long)key_size, (long)readed);
+ g_free(lr_key->raw_key);
+ lr_key->raw_key = NULL;
+ }
+
+ gpgme_data_release(key_data);
+
+ if (!lr_key->has_next) {
+ break;
+ }
+ }
+ }
+
gpgme_release(context);
+ return lr_keys;
+}
- return TRUE;
+const LrGpgKey *
+lr_gpg_key_get_next(const LrGpgKey *key) {
+ return key->has_next ? ++key : NULL;
+}
+
+char * const *
+lr_gpg_key_get_userids(const LrGpgKey *key) {
+ return key->uids;
+}
+
+const char *
+lr_gpg_key_get_raw_key(const LrGpgKey *key) {
+ return key->raw_key;
+}
+
+const LrGpgSubkey *
+lr_gpg_key_get_subkeys(const LrGpgKey *key) {
+ return key->subkeys;
+}
+
+static void
+lr_gpg_subkeys_free(LrGpgSubkey *subkeys) {
+ for (LrGpgSubkey *item = subkeys; item; ++item) {
+ g_free(item->fingerprint);
+ g_free(item->id);
+ if (!item->has_next) {
+ break;
+ }
+ }
+ g_free(subkeys);
+}
+
+void
+lr_gpg_keys_free(LrGpgKey *keys) {
+ for (LrGpgKey *item = keys; item; ++item) {
+ g_free(item->raw_key);
+ lr_gpg_subkeys_free(item->subkeys);
+ g_strfreev(item->uids);
+ if (!item->has_next) {
+ break;
+ }
+ }
+ g_free(keys);
+}
+
+const LrGpgSubkey *
+lr_gpg_subkey_get_next(const LrGpgSubkey *subkey) {
+ return subkey->has_next ? ++subkey : NULL;
+}
+
+const char *
+lr_gpg_subkey_get_id(const LrGpgSubkey *subkey) {
+ return subkey->id;
+}
+
+const char *
+lr_gpg_subkey_get_fingerprint(const LrGpgSubkey *subkey) {
+ return subkey->fingerprint;
+}
+
+long int
+lr_gpg_subkey_get_timestamp(const LrGpgSubkey *subkey) {
+ return subkey->timestamp;
+}
+
+gboolean
+lr_gpg_subkey_get_can_sign(const LrGpgSubkey *subkey) {
+ return subkey->can_sign;
}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/librepo-1.14.5/librepo/gpg.h new/librepo-1.15.1/librepo/gpg.h
--- old/librepo-1.14.5/librepo/gpg.h 2022-09-09 12:32:23.000000000 +0200
+++ new/librepo-1.15.1/librepo/gpg.h 2022-12-09 13:47:26.000000000 +0100
@@ -1,5 +1,6 @@
/* librepo - A library providing (libcURL like) API to downloading repository
* Copyright (C) 2012 Tomas Mlcoch
+ * Copyright (C) 2022 Jaroslav Rohel <jrohel(a)redhat.com>
*
* Licensed under the GNU Lesser General Public License Version 2.1
*
@@ -30,6 +31,14 @@
* @{
*/
+/** A structure containing information about subkey.
+ */
+typedef struct tLrGpgSubkey LrGpgSubkey;
+
+/** A structure containing information about a key with subkeys.
+ */
+typedef struct tLrGpgKey LrGpgKey;
+
/** Check detached signature of data.
* @param signature_fd File descriptor of signature file.
* @param data_fd File descriptor of data to verify.
@@ -60,6 +69,35 @@
const char *home_dir,
GError **err);
+
+/** Import key into the keyring.
+ * @param key Pointer to memory buffer with key.
+ * @param key_len Length of the key.
+ * @param home_dir Configuration directory of OpenPGP engine
+ * (e.g. "/home/user/.gnupg/"), if NULL default
+ * config directory is used.
+ * @param err GError **
+ * @return returns TRUE if error is not set and FALSE if it is.
+ */
+gboolean
+lr_gpg_import_key_from_memory(const char *key,
+ size_t key_len,
+ const char *home_dir,
+ GError **err);
+
+/** Import key into the keyring.
+ * @param key_fd Filedescriptor of key file.
+ * @param home_dir Configuration directory of OpenPGP engine
+ * (e.g. "/home/user/.gnupg/"), if NULL default
+ * config directory is used.
+ * @param err GError **
+ * @return returns TRUE if error is not set and FALSE if it is.
+ */
+gboolean
+lr_gpg_import_key_from_fd(int key_fd,
+ const char *home_dir,
+ GError **err);
+
/** Import key into the keyring.
* @param key_fn Filename (path) of key file.
* @param home_dir Configuration directory of OpenPGP engine
@@ -73,6 +111,90 @@
const char *home_dir,
GError **err);
+
+/** List/export keys (and subkeys) from the keyring.
+ * @param export_keys If TRUE, the list also contains the exported keys.
+ * Export is in ASCII-Armor format.
+ * @param home_dir Configuration directory of OpenPGP engine
+ * (e.g. "/home/user/.gnupg/"), if NULL default
+ * config directory is used.
+ * @param err GError **
+ * @return returns list of keys (and subkeys), or NULL if keyring is empty or an error occured.
+ */
+LrGpgKey *
+lr_gpg_list_keys(gboolean export_keys,
+ const char *home_dir,
+ GError **err);
+
+/** Get the next key from the list obtained from lr_gpg_list_keys.
+ * @param key Input key.
+ * @return returns next kye.
+ */
+const LrGpgKey *
+lr_gpg_key_get_next(const LrGpgKey *key);
+
+/** Get NULL terminated array of user IDs strings.
+ * @param key Input key.
+ * @return returns NULL terminated array of user IDs strings.
+ */
+char * const *
+lr_gpg_key_get_userids(const LrGpgKey *key);
+
+/** Get key in ASCII-Armor format (only if `key` was obtained from lr_gpg_list_keys with `export = TRUE`).
+ * @param key Input key.
+ * @return returns key in ACII-Armor format.
+ */
+const char *
+lr_gpg_key_get_raw_key(const LrGpgKey *key);
+
+/** Get a list of subkeys associated with the key. The first subkey is the primary key.
+ * @param key Input key.
+ * @return returns list of subkeys associated with the key.
+ */
+const LrGpgSubkey *
+lr_gpg_key_get_subkeys(const LrGpgKey *key);
+
+/** Release the list of keys obtained from lr_gpg_list_keys.
+ * @param key Input array of keys.
+ */
+void
+lr_gpg_keys_free(LrGpgKey *key_array);
+
+/** Get the next subkey from the list obtained from lr_gpg_key_get_subkeys.
+ * @param key Input subkey.
+ * @return returns next subkye.
+ */
+const LrGpgSubkey *
+lr_gpg_subkey_get_next(const LrGpgSubkey *subkey);
+
+/** Get subkey ID.
+ * @param key Input subkey.
+ * @return returns key ID.
+ */
+const char *
+lr_gpg_subkey_get_id(const LrGpgSubkey *subkey);
+
+/** Get fingerprint of the subkey in hex digit form.
+ * @param key Input subkey.
+ * @return returns fingerprint of the subkey in hex digit form.
+ */
+const char *
+lr_gpg_subkey_get_fingerprint(const LrGpgSubkey *subkey);
+
+/** Get the creation timestamp.
+ * @param key Input subkey.
+ * @return returns Get the creation timestamp, -1 if invalid, 0 if not available..
+ */
+long int
+lr_gpg_subkey_get_timestamp(const LrGpgSubkey *subkey);
+
+/** Get information if the subkey can be used for signing.
+ * @param key Input subkey.
+ * @return returns TRUE if subkey can be used for signing.
+ */
+gboolean
+lr_gpg_subkey_get_can_sign(const LrGpgSubkey *subkey);
+
/** @} */
G_END_DECLS
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/librepo-1.14.5/librepo/handle.c new/librepo-1.15.1/librepo/handle.c
--- old/librepo-1.14.5/librepo/handle.c 2022-09-09 12:32:23.000000000 +0200
+++ new/librepo-1.15.1/librepo/handle.c 2022-12-09 13:47:26.000000000 +0100
@@ -32,6 +32,8 @@
#include <unistd.h>
#include <sys/stat.h>
#include <fcntl.h>
+#include <time.h>
+#include <gio/gio.h>
#include "handle_internal.h"
@@ -264,6 +266,51 @@
}
}
+struct callback_data {
+ GMainLoop *loop;
+ guint64 deadline_millis;
+ guint timeout_id;
+ GNetworkMonitor *monitor;
+ GSocketConnectable *connectable;
+ GCancellable *cancellable;
+};
+
+gboolean
+timeout_callback(gpointer data)
+{
+ struct callback_data *dt = (struct callback_data*)data;
+
+ //if past deadline, exit
+ if (g_get_monotonic_time() >= dt->deadline_millis) {
+ g_main_loop_quit(dt->loop);
+ return G_SOURCE_REMOVE;
+ }
+
+ //if no internet, remove source
+ if (!g_network_monitor_get_network_available(dt->monitor)) {
+ return G_SOURCE_REMOVE;
+ }
+
+ //if url reached, quit loop and remove source
+ if (g_network_monitor_can_reach (dt->monitor, dt->connectable, dt->cancellable, NULL)) {
+ g_main_loop_quit(dt->loop);
+ return G_SOURCE_REMOVE;
+ }
+
+ //Still waiting on the URL to be availbale, keep polling
+ return G_SOURCE_CONTINUE;
+}
+
+void
+on_network_available(GObject *object, GParamSpec *pspec, gpointer data)
+{
+ struct callback_data *dt = (struct callback_data*)data;
+ if (dt->timeout_id == 0 && g_network_monitor_get_network_available(dt->monitor)) {
+ dt->timeout_id = g_timeout_add(200, timeout_callback, dt);
+ }
+ g_main_loop_run(dt->loop);
+}
+
gboolean
lr_handle_setopt(LrHandle *handle,
GError **err,
@@ -841,6 +888,60 @@
return ret;
}
+gboolean
+lr_handle_network_wait(LrHandle *handle, GError **err, guint seconds, GCancellable *cancellable)
+{
+ assert(!err || *err == NULL);
+
+ if (!handle) {
+ g_set_error(err, LR_HANDLE_ERROR, LRE_BADFUNCARG,
+ "No handle specified");
+ return FALSE;
+ }
+
+ GNetworkMonitor *monitor = g_network_monitor_get_default();
+
+ struct callback_data data_struct;
+ data_struct.cancellable = cancellable;
+ data_struct.monitor = monitor;
+
+ const gchar *baseurl;
+ if (handle->metalinkurl)
+ baseurl = handle->metalinkurl;
+ else if (handle->mirrorlisturl)
+ baseurl = handle->mirrorlisturl;
+ else if (handle->urls)
+ baseurl = handle->urls[0];
+ assert(baseurl);
+
+ g_autoptr(GUri) uri = g_uri_parse(baseurl, G_URI_FLAGS_NONE, NULL);
+ if (uri == NULL) {
+ return FALSE;
+ }
+ const gchar* scheme = g_uri_get_scheme(uri);
+ if (!g_strcmp0(scheme, "file")) {
+ return TRUE;
+ }
+ const gchar* host = g_uri_get_host(uri);
+ guint16 port = g_uri_get_port(uri);
+ GSocketConnectable *connectable = g_network_address_new(host, port);
+ data_struct.connectable = connectable;
+ data_struct.deadline_millis = g_get_monotonic_time() + seconds * G_USEC_PER_SEC;
+ g_autoptr(GMainLoop) loop;
+ loop = g_main_loop_new(NULL, FALSE);
+ data_struct.loop = loop;
+ data_struct.timeout_id = 0;
+
+ if (g_network_monitor_get_network_available(data_struct.monitor)) {
+ data_struct.timeout_id = g_timeout_add(200, timeout_callback, &data_struct);
+ g_main_loop_run(data_struct.loop);
+ }
+ else{
+ g_signal_connect(monitor, "notify::network-available", G_CALLBACK(on_network_available), &data_struct);
+ }
+ return TRUE;
+}
+
static gboolean
lr_handle_prepare_urls(LrHandle *handle, GError **err)
{
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/librepo-1.14.5/librepo/handle.h new/librepo-1.15.1/librepo/handle.h
--- old/librepo-1.14.5/librepo/handle.h 2022-09-09 12:32:23.000000000 +0200
+++ new/librepo-1.15.1/librepo/handle.h 2022-12-09 13:47:26.000000000 +0100
@@ -22,6 +22,7 @@
#define __LR_HANDLE_H__
#include <glib.h>
+#include <gio/gio.h>
#include "result.h"
@@ -560,6 +561,16 @@
gboolean
lr_handle_perform(LrHandle *handle, LrResult *result, GError **err);
+/** Handle waiting on network for LRO_URLS.
+ * @param handle Librepo handle.
+ * @param seconds Network timeout seconds
+ * @param err GError **
+ * @param cancellable GCancellable *
+ * @return TRUE if everything is ok, FALSE if err is set.
+ */
+gboolean
+lr_handle_network_wait(LrHandle *handle, GError **err, guint seconds, GCancellable *cancellable);
+
/** @} */
G_END_DECLS
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/librepo-1.14.5/librepo.spec new/librepo-1.15.1/librepo.spec
--- old/librepo-1.14.5/librepo.spec 2022-09-09 12:32:23.000000000 +0200
+++ new/librepo-1.15.1/librepo.spec 2022-12-09 13:47:26.000000000 +0100
@@ -11,11 +11,11 @@
%global dnf_conflict 2.8.8
Name: librepo
-Version: 1.14.5
+Version: 1.15.1
Release: 1%{?dist}
Summary: Repodata downloading library
-License: LGPLv2+
+License: LGPL-2.1-or-later
URL: https://github.com/rpm-software-management/librepo
Source0: %{url}/archive/%{version}/%{name}-%{version}.tar.gz
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/librepo-1.14.5/tests/test_gpg.c new/librepo-1.15.1/tests/test_gpg.c
--- old/librepo-1.14.5/tests/test_gpg.c 2022-09-09 12:32:23.000000000 +0200
+++ new/librepo-1.15.1/tests/test_gpg.c 2022-12-09 13:47:26.000000000 +0100
@@ -38,6 +38,7 @@
_signature_path = lr_pathconcat(test_globals.testdata_dir,
"repo_yum_01/repodata/repomd.xml_bad.asc", NULL);
+ // Import the first key directly from the file
ret = lr_gpg_import_key(key_path, tmp_home_path, &tmp_err);
ck_assert(ret);
ck_assert_ptr_null(tmp_err);
@@ -57,8 +58,7 @@
&tmp_err);
ck_assert(!ret);
ck_assert_ptr_nonnull(tmp_err);
- g_error_free(tmp_err);
- tmp_err = NULL;
+ g_clear_error(&tmp_err);
// Bad data
ret = lr_gpg_check_signature(signature_path,
@@ -67,13 +67,19 @@
&tmp_err);
ck_assert(!ret);
ck_assert_ptr_nonnull(tmp_err);
- g_error_free(tmp_err);
- tmp_err = NULL;
+ g_clear_error(&tmp_err);
+
+ // Load the second key into memory and import it from memory
+ gchar *contents;
+ gsize length;
+ ret = g_file_get_contents(_key_path, &contents, &length, &tmp_err);
+ ck_assert(ret);
+ ck_assert_ptr_null(tmp_err);
- // Import the 2nd key
- ret = lr_gpg_import_key(_key_path, tmp_home_path, &tmp_err);
+ ret = lr_gpg_import_key_from_memory(contents, length, tmp_home_path, &tmp_err);
ck_assert(ret);
ck_assert_ptr_null(tmp_err);
+ g_free(contents);
// Valid key and data
ret = lr_gpg_check_signature(_signature_path,
@@ -90,7 +96,7 @@
&tmp_err);
ck_assert(!ret);
ck_assert_ptr_nonnull(tmp_err);
- g_error_free(tmp_err);
+ g_clear_error(&tmp_err);
tmp_err = NULL;
// Bad data 2
@@ -100,7 +106,7 @@
&tmp_err);
ck_assert(!ret);
ck_assert_ptr_nonnull(tmp_err);
- g_error_free(tmp_err);
+ g_clear_error(&tmp_err);
tmp_err = NULL;
lr_remove_dir(tmp_home_path);
@@ -114,12 +120,117 @@
}
END_TEST
+START_TEST(test_gpg_check_key_export)
+{
+ gboolean ret;
+ char *key_path;
+ char *tmp_home_path;
+ GError *tmp_err = NULL;
+
+ tmp_home_path = lr_gettmpdir();
+ key_path = lr_pathconcat(test_globals.testdata_dir,
+ "repo_yum_01/repodata/repomd.xml.key", NULL);
+
+ // Import the key from file descriptor
+ int key_fd = open(key_path, O_RDONLY);
+ ck_assert(key_fd != -1);
+ ret = lr_gpg_import_key_from_fd(key_fd, tmp_home_path, &tmp_err);
+ ck_assert(ret);
+ ck_assert_ptr_null(tmp_err);
+ ck_assert(close(key_fd) != -1);
+
+ // Export the keys
+ LrGpgKey *keys = lr_gpg_list_keys(TRUE, tmp_home_path, &tmp_err);
+ ck_assert_ptr_nonnull(keys);
+ ck_assert_ptr_null(tmp_err);
+
+ // Test key user ids
+ char * const *uids = lr_gpg_key_get_userids(keys);
+ ck_assert_ptr_nonnull(uids);
+ ck_assert(g_strcmp0(uids[0], "Tomas Mlcoch (test key) <tmlcoch(a)redhat.com>") == 0);
+ ck_assert_ptr_null(uids[1]);
+
+ // Get subkeys
+ const LrGpgSubkey *subkeys = lr_gpg_key_get_subkeys(keys);
+ ck_assert_ptr_nonnull(subkeys);
+
+ // Test first subkey
+ const char *id = lr_gpg_subkey_get_id(subkeys);
+ ck_assert(g_strcmp0(id, "46AF958A22F2C4E9") == 0);
+ const char *fingerprint = lr_gpg_subkey_get_fingerprint(subkeys);
+ ck_assert(g_strcmp0(fingerprint, "55B80C4944D8938E94980B6D46AF958A22F2C4E9") == 0);
+ long timestamp = lr_gpg_subkey_get_timestamp(subkeys);
+ ck_assert(timestamp == 1347882156);
+ gboolean can_sign = lr_gpg_subkey_get_can_sign(subkeys);
+ ck_assert(can_sign);
+
+ // Get second subkey
+ subkeys = lr_gpg_subkey_get_next(subkeys);
+ ck_assert_ptr_nonnull(subkeys);
+
+ // Test second subkey
+ id = lr_gpg_subkey_get_id(subkeys);
+ ck_assert(g_strcmp0(id, "7AE6F6EF026AF38A") == 0);
+ fingerprint = lr_gpg_subkey_get_fingerprint(subkeys);
+ ck_assert(g_strcmp0(fingerprint, "D855DBAA43DB343EC4F214EB7AE6F6EF026AF38A") == 0);
+ timestamp = lr_gpg_subkey_get_timestamp(subkeys);
+ ck_assert(timestamp == 1347882156);
+ can_sign = lr_gpg_subkey_get_can_sign(subkeys);
+ ck_assert(!can_sign);
+
+ // There are no other subkeys for the key
+ subkeys = lr_gpg_subkey_get_next(subkeys);
+ ck_assert_ptr_null(subkeys);
+
+ // Test exported raw key
+ const char *raw_key = lr_gpg_key_get_raw_key(keys);
+ ck_assert_ptr_nonnull(raw_key);
+ ck_assert(strstr(raw_key,
+ "mQENBFBXDKwBCADA5jpCwpb/JKOG8mcFyIanNojDwpHwKoyjGNpZNPNUDJguvkRa\n"
+ "IO3NdoyXYd5QVTOsnyKBaRaiLLJWI/VJxTOT3fwOPprrzUlkHwoWl+sYuSdXHASu\n"
+ "m4lkBiXHsa5oiXPdrY6hoh5vsF8ASwCHXOwpR9yyvGEaUUMBl2GpJAX/cGVcL4Dy\n"
+ "Z0pyJMLO4qrIPoX+wd1ZSFSc8JcAC4UtA82HCGTmesgialpwKdoQyt+em94oIM1f\n"
+ "D6v7zzcRX/zLKKEzpFnU458WBA+JACkde3ohX//0fDCeaLqMzs++FCgwm/HMCszw\n"
+ "RnINr+K8ENfMYBoeM7a7tnhiae+rkxWmvWz/ABEBAAG0LFRvbWFzIE1sY29jaCAo\n"
+ "dGVzdCBrZXkpIDx0bWxjb2NoQHJlZGhhdC5jb20+iQE4BBMBAgAiBQJQVwysAhsD\n"
+ "BgsJCAcDAgYVCAIJCgsEFgIDAQIeAQIXgAAKCRBGr5WKIvLE6fdyB/9OzDczaqGy\n"
+ "1rzk7Wp2C9S5QatFUFNWt6FIFPITbixT4jrDo/LyUJVWLw4ng7ldg79vmrzhpP8h\n"
+ "yFVvuvGvSEMn5sgnZ83SEd4vRJ2O8K5RuVs5Kcj7ayLlxPpqbYOYmrmTaLwYTwdv\n"
+ "0wDnNU9IkkMSK752RQes4J+4XGikd8CNm5lw8cRQ7bcQd8s2rnCoiyGt7PIdl13z\n"
+ "8hO9KA52iUP06AbbIusbQ1jzsViEny+xQH7SZ53Ga4eRr0mW2iA20Mkp4Ieb+dNo\n"
+ "47Q8aHUqI9O4HTF/3Fzt7KmNxXCpCOhxTWx0IkqPGoZ0W63Aut/CVh0LXsBF2TUD\n"
+ "Ym9P/IjRgJLhuQENBFBXDKwBCACvhlMcgjLJ4PtMTtauF1OXVTfODQSHo+qwKt4S\n"
+ "GyDlTGayQ76pOqYkkzIRqmNYl1ThmcfzpmJ3O+hFQQ7OdguYcfkbfgIMjEJEbKG3\n"
+ "wsR5pm9zjwStzYHedwkct1nyROgBz70o16FfdiWOguw58jQZOSO/I2S3JpLsLgI8\n"
+ "KqdIk/0WuoOfzt+KcvL52lX94O2hBpRI0v6lDgSm7KkPGQrVFnSIUR5r73ceageL\n"
+ "5LmGm1TlEjWHwA9iYIvBcjnE26/l8u58IYQ/sUmn0u4jBcBNc7iqdWvlSLZLlMmi\n"
+ "qnzDNhUup9neKGxgr4hGAblxiSxXlmOoFv0jEW81b4VximSJABEBAAGJAR8EGAEC\n"
+ "AAkFAlBXDKwCGwwACgkQRq+ViiLyxOnf6Qf+PIG//12qp3hXZsvB7JQuQ4nUNwp6\n"
+ "Ufm6W9pFm3DOqnI9H9ZNzGbkoS5WwRp0B1NLfNKipQVORnDs6qve298ReRrmLKnk\n"
+ "BPZqxFpPqLQ6X83Or2bqKiJS1axonIgqkImFLfxxqKoukvhn328Z2FVlrvkKSMU8\n"
+ "eHi/iDF/TCHoPE9WtnVSzsNU9i+9j8j//GO+bMC5AGNOxcBKlChFpLYpE/pfITL/\n"
+ "icS7wB9MrMLNvjlN1EKszQFxJrFVBGTt8hUqRH3CCUFRwbpE1QJ1WAzJ0Vzk5nWR\n"
+ "rVZQiiLe03B8hC7/qRiB4bya5nbWcwe9ltPFja4/tTe92ivScFfCLyALVQ==\n"
+ "=G300") != NULL);
+
+ // Only one key is in keyring
+ ck_assert_ptr_null(lr_gpg_key_get_next(keys));
+
+ lr_gpg_keys_free(keys);
+ lr_remove_dir(tmp_home_path);
+ lr_free(key_path);
+ g_free(tmp_home_path);
+}
+END_TEST
+
+
Suite *
gpg_suite(void)
{
Suite *s = suite_create("gpg");
TCase *tc = tcase_create("Main");
tcase_add_test(tc, test_gpg_check_signature);
+ tcase_add_test(tc, test_gpg_check_key_export);
suite_add_tcase(s, tc);
return s;
}
1
0
Script 'mail_helper' called by obssrc
Hello community,
here is the log from the commit of package zvbi for openSUSE:Factory checked in at 2022-12-30 11:08:12
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/zvbi (Old)
and /work/SRC/openSUSE:Factory/.zvbi.new.1563 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "zvbi"
Fri Dec 30 11:08:12 2022 rev:29 rq:1045666 version:0.2.39
Changes:
--------
--- /work/SRC/openSUSE:Factory/zvbi/zvbi.changes 2022-12-04 14:57:58.524139271 +0100
+++ /work/SRC/openSUSE:Factory/.zvbi.new.1563/zvbi.changes 2022-12-30 11:08:13.704992979 +0100
@@ -1,0 +2,8 @@
+Wed Dec 28 12:35:33 UTC 2022 - Dirk M��ller <dmueller(a)suse.com>
+
+- update to 0.2.39:
+ * Updates to remove compiler warnings during tests.
+ * Allow autogen.sh and configure to run separately by default.
+ * Add Georgian language translation po files.
+
+-------------------------------------------------------------------
Old:
----
v0.2.38.tar.gz
New:
----
v0.2.39.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ zvbi.spec ++++++
--- /var/tmp/diff_new_pack.iI4MfS/_old 2022-12-30 11:08:14.440997379 +0100
+++ /var/tmp/diff_new_pack.iI4MfS/_new 2022-12-30 11:08:14.444997403 +0100
@@ -20,7 +20,7 @@
%define libname lib%{name}%{sover}
%define libchains lib%{name}-chains%{sover}
Name: zvbi
-Version: 0.2.38
+Version: 0.2.39
Release: 0
Summary: Linux "VBI proxy"
License: GPL-2.0-or-later AND LGPL-2.1-or-later
++++++ v0.2.38.tar.gz -> v0.2.39.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/zvbi-0.2.38/ChangeLog new/zvbi-0.2.39/ChangeLog
--- old/zvbi-0.2.38/ChangeLog 2022-11-30 14:23:49.000000000 +0100
+++ new/zvbi-0.2.39/ChangeLog 2022-12-21 17:11:18.000000000 +0100
@@ -1,3 +1,18 @@
+2022-12-21 Ileana Dumitrescu <ileanadumitrescu95(a)gmail.com>
+
+ * Release 0.2.39
+
+ * build-aux/autogen.sh: Prevent autogen.sh from running configure immediately after by default (Closes Issue #32).
+ * configure.ac: Release 0.2.39.
+ * contrib/atsc-cc.c, contrib/ntsc-cc.c: Fix indexing for info struct (Closes Issue #9).
+ * NEWS: Add 0.2.39 release info.
+ * po/ka.po, po/LINGUAS: Add Georgian language translation.
+ * po/*.po: Update Project-Id-Version.
+ * po/Makefile.in: Release 0.2.39.
+ * README.md: Update documentation for running autogen.sh and configure separately.
+ * src/xds_demux.c: Fix indexing for subpacket (Closes Issue #9).
+ * test/test-hamm.cc: Fix narrowing conversion compiler warnings during testing (Closes Issue #31).
+
2022-11-30 Ileana Dumitrescu <ileanadumitrescu95(a)gmail.com>
* Release 0.2.38
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/zvbi-0.2.38/NEWS new/zvbi-0.2.39/NEWS
--- old/zvbi-0.2.38/NEWS 2022-11-30 14:23:49.000000000 +0100
+++ new/zvbi-0.2.39/NEWS 2022-12-21 17:11:18.000000000 +0100
@@ -1,3 +1,11 @@
+libzvbi 0.2.39, 2022-12-21
+--------------------------
+Updates to remove compiler warnings during tests.
+
+Allow autogen.sh and configure to run separately by default.
+
+Add Georgian language translation po files.
+
libzvbi 0.2.38, 2022-11-30
--------------------------
Updates to remove compiler and Doxygen warnings.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/zvbi-0.2.38/README.md new/zvbi-0.2.39/README.md
--- old/zvbi-0.2.38/README.md 2022-11-30 14:23:49.000000000 +0100
+++ new/zvbi-0.2.39/README.md 2022-12-21 17:11:18.000000000 +0100
@@ -55,13 +55,17 @@
git clone https://github.com/zapping-vbi/zvbi.git
- This project uses GNU autotools. After cloning the repo, this command will create missing configuration and make files:
+ This project uses GNU autotools. After cloning the repo, this command will create missing configuration files:
cd zvbi && ./autogen.sh
+
+ Next, to generate the Makefiles, run:
- Currently, running `./autogen.sh` will also run `./configure` directly after.
-
- To compile and build, run:
+ ./configure
+
+ Optionally, running `CONFIGURE=1 ./autogen.sh` will run the configure script immediately after the autogen script with a single command.
+
+ After configuring, to compile and build, run:
make
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/zvbi-0.2.38/build-aux/autogen.sh new/zvbi-0.2.39/build-aux/autogen.sh
--- old/zvbi-0.2.38/build-aux/autogen.sh 2022-11-30 14:23:49.000000000 +0100
+++ new/zvbi-0.2.39/build-aux/autogen.sh 2022-12-21 17:11:18.000000000 +0100
@@ -344,54 +344,47 @@
check_m4macros
-if [ "$#" = 0 -a "x$NOCONFIGURE" = "x" ]; then
- printerr "**Warning**: I am going to run \`configure' with no arguments."
- printerr "If you wish to pass any to it, please specify them on the"
- printerr \`$0\'" command line."
- printerr
-fi
-
topdir=`pwd`
for configure_ac in $configure_files; do
dirname=`dirname $configure_ac`
basename=`basename $configure_ac`
if [ -f $dirname/NO-AUTO-GEN ]; then
- echo skipping $dirname -- flagged as no auto-gen
+ echo skipping $dirname -- flagged as no auto-gen
elif [ ! -w $dirname ]; then
echo skipping $dirname -- directory is read only
else
- printbold "Processing $configure_ac"
- cd $dirname
+ printbold "Processing $configure_ac"
+ cd $dirname
+
+ # if the AC_CONFIG_MACRO_DIR() macro is used, create that directory
+ # This is a automake bug fixed in automake 1.13.2
+ # See http://debbugs.gnu.org/cgi/bugreport.cgi?bug=13514
+ m4dir=`autoconf --trace 'AC_CONFIG_MACRO_DIR:$1'`
+ if [ -n "$m4dir" ]; then
+ mkdir -p $m4dir
+ fi
+
+ if grep "^AM_GLIB_GNU_GETTEXT" $basename >/dev/null; then
+ printbold "Running $GLIB_GETTEXTIZE... Ignore non-fatal messages."
+ echo "no" | $GLIB_GETTEXTIZE --force --copy || exit 1
+ fi
- # if the AC_CONFIG_MACRO_DIR() macro is used, create that directory
- # This is a automake bug fixed in automake 1.13.2
- # See http://debbugs.gnu.org/cgi/bugreport.cgi?bug=13514
- m4dir=`autoconf --trace 'AC_CONFIG_MACRO_DIR:$1'`
- if [ -n "$m4dir" ]; then
- mkdir -p $m4dir
- fi
-
- if grep "^AM_GLIB_GNU_GETTEXT" $basename >/dev/null; then
- printbold "Running $GLIB_GETTEXTIZE... Ignore non-fatal messages."
- echo "no" | $GLIB_GETTEXTIZE --force --copy || exit 1
- fi
-
- if grep "^GTK_DOC_CHECK" $basename >/dev/null; then
- printbold "Running $GTKDOCIZE..."
- $GTKDOCIZE --copy || exit 1
- fi
-
- if grep "^AC_PROG_INTLTOOL" $basename >/dev/null ||
- grep "^IT_PROG_INTLTOOL" $basename >/dev/null; then
- printbold "Running $INTLTOOLIZE..."
- $INTLTOOLIZE --force --copy --automake || exit 1
- fi
-
- # Now that all the macros are sorted, run autoreconf ...
- printbold "Running autoreconf..."
- autoreconf --verbose --force --install -Wno-portability || exit 1
+ if grep "^GTK_DOC_CHECK" $basename >/dev/null; then
+ printbold "Running $GTKDOCIZE..."
+ $GTKDOCIZE --copy || exit 1
+ fi
- cd "$topdir"
+ if grep "^AC_PROG_INTLTOOL" $basename >/dev/null ||
+ grep "^IT_PROG_INTLTOOL" $basename >/dev/null; then
+ printbold "Running $INTLTOOLIZE..."
+ $INTLTOOLIZE --force --copy --automake || exit 1
+ fi
+
+ # Now that all the macros are sorted, run autoreconf ...
+ printbold "Running autoreconf..."
+ autoreconf --verbose --force --install -Wno-portability || exit 1
+
+ cd "$topdir"
fi
done
@@ -401,10 +394,17 @@
conf_flags="--enable-maintainer-mode"
fi
-if test x$NOCONFIGURE = x; then
+if [ "$#" = 0 -a "$CONFIGURE" = 1 ]; then
+ printerr "**Warning**: I am going to run \`configure' with no arguments."
+ printerr "If you wish to pass any to it, please specify them on the"
+ printerr \`$0\'" command line."
+ printerr
+fi
+
+if test x$CONFIGURE = x1; then
printbold Running $srcdir/configure $conf_flags "$@" ...
$srcdir/configure $conf_flags "$@" \
- && echo Now type \`make\' to compile $PKG_NAME || exit 1
+ && echo Now type \`make\' to compile $PKG_NAME || exit 1
else
- echo Skipping configure process.
+ echo Now type \`./configure\` to generate Makefiles.
fi
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/zvbi-0.2.38/configure.ac new/zvbi-0.2.39/configure.ac
--- old/zvbi-0.2.38/configure.ac 2022-11-30 14:23:49.000000000 +0100
+++ new/zvbi-0.2.39/configure.ac 2022-12-21 17:11:18.000000000 +0100
@@ -2,7 +2,7 @@
dnl Autoconf initialization
AC_PREREQ([2.71])
-AC_INIT([zvbi],[0.2.38])
+AC_INIT([zvbi],[0.2.39])
AC_CONFIG_SRCDIR(src/vbi.c)
AC_CONFIG_HEADERS([config.h])
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/zvbi-0.2.38/contrib/atsc-cc.c new/zvbi-0.2.39/contrib/atsc-cc.c
--- old/zvbi-0.2.38/contrib/atsc-cc.c 2022-11-30 14:23:49.000000000 +0100
+++ new/zvbi-0.2.39/contrib/atsc-cc.c 2022-12-21 17:11:18.000000000 +0100
@@ -4192,10 +4192,12 @@
if (NULL == optarg
|| 0 == strcasecmp (optarg, "all")) {
- unsigned int i;
+ unsigned int i, j;
- for (i = 0; i < N_ELEMENTS (cr->info[0][0]); ++i) {
- cr->info[0][0][i].print = TRUE;
+ for (i = 0; i < N_ELEMENTS (cr->info[0]); ++i) {
+ for (j = 0; j < N_ELEMENTS (cr->info[0][0]); ++j) {
+ cr->info[0][i][j].print = TRUE;
+ }
}
return;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/zvbi-0.2.38/contrib/ntsc-cc.c new/zvbi-0.2.39/contrib/ntsc-cc.c
--- old/zvbi-0.2.38/contrib/ntsc-cc.c 2022-11-30 14:23:49.000000000 +0100
+++ new/zvbi-0.2.39/contrib/ntsc-cc.c 2022-12-21 17:11:18.000000000 +0100
@@ -102,7 +102,7 @@
//ccdecode
const char *ratings[] = {"(NOT RATED)","TV-Y","TV-Y7","TV-G","TV-PG","TV-14","TV-MA","(NOT RATED)"};
int rowdata[] = {11,-1,1,2,3,4,12,13,14,15,5,6,7,8,9,10};
-const char *specialchar[] = {"�","�","�","�","(TM)","�","�","o/~ ","�"," ","�","�","�","�","�","�"};
+const char *specialchar[] = {"��","��","��","��","(TM)","��","��","o/~ ","��"," ","��","��","��","��","��","��"};
const char *modes[]={"current","future","channel","miscellaneous","public service","reserved","invalid","invalid","invalid","invalid"};
int lastcode;
int ccmode=1; //cc1 or cc2
@@ -1157,10 +1157,12 @@
if (NULL == optarg
|| 0 == strcasecmp (optarg, "all")) {
- unsigned int i;
+ unsigned int i, j;
- for (i = 0; i < N_ELEMENTS (info[0][0]); ++i) {
- info[0][0][i].print = TRUE;
+ for (i = 0; i < N_ELEMENTS (info[0]); ++i) {
+ for (j = 0; j < N_ELEMENTS (info[0][0]); ++j) {
+ info[0][i][j].print = TRUE;
+ }
}
return;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/zvbi-0.2.38/po/LINGUAS new/zvbi-0.2.39/po/LINGUAS
--- old/zvbi-0.2.38/po/LINGUAS 2022-11-30 14:23:49.000000000 +0100
+++ new/zvbi-0.2.39/po/LINGUAS 2022-12-21 17:11:18.000000000 +0100
@@ -1,3 +1,3 @@
# Set of available languages.
# sv needs update
-de en@quot en@boldquot es fr it nl pl
+de en@quot en@boldquot es fr it ka nl pl
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/zvbi-0.2.38/po/Makefile.in new/zvbi-0.2.39/po/Makefile.in
--- old/zvbi-0.2.38/po/Makefile.in 2022-11-30 14:23:49.000000000 +0100
+++ new/zvbi-0.2.39/po/Makefile.in 2022-12-21 17:11:18.000000000 +0100
@@ -11,7 +11,7 @@
GETTEXT_MACRO_VERSION = 0.20
PACKAGE = zvbi
-VERSION = 0.2.38
+VERSION = 0.2.39
PACKAGE_BUGREPORT =
SED = /usr/bin/sed
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/zvbi-0.2.38/po/de.po new/zvbi-0.2.39/po/de.po
--- old/zvbi-0.2.38/po/de.po 2022-11-30 14:23:49.000000000 +0100
+++ new/zvbi-0.2.39/po/de.po 2022-12-21 17:11:18.000000000 +0100
@@ -3,7 +3,7 @@
#
msgid ""
msgstr ""
-"Project-Id-Version: zvbi 0.2.38\n"
+"Project-Id-Version: zvbi 0.2.39\n"
"Report-Msgid-Bugs-To: mschimek(a)users.sf.net\n"
"POT-Creation-Date: 2022-10-05 16:09+0300\n"
"PO-Revision-Date: 2007-11-27 18:33+0100\n"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/zvbi-0.2.38/po/en(a)boldquot.po new/zvbi-0.2.39/po/en(a)boldquot.po
--- old/zvbi-0.2.38/po/en(a)boldquot.po 2022-11-30 14:23:49.000000000 +0100
+++ new/zvbi-0.2.39/po/en(a)boldquot.po 2022-12-21 17:11:18.000000000 +0100
@@ -30,7 +30,7 @@
#
msgid ""
msgstr ""
-"Project-Id-Version: zvbi 0.2.38\n"
+"Project-Id-Version: zvbi 0.2.39\n"
"Report-Msgid-Bugs-To: mschimek(a)users.sf.net\n"
"POT-Creation-Date: 2022-10-05 16:09+0300\n"
"PO-Revision-Date: 2013-08-28 16:25+0200\n"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/zvbi-0.2.38/po/en(a)quot.po new/zvbi-0.2.39/po/en(a)quot.po
--- old/zvbi-0.2.38/po/en(a)quot.po 2022-11-30 14:23:49.000000000 +0100
+++ new/zvbi-0.2.39/po/en(a)quot.po 2022-12-21 17:11:18.000000000 +0100
@@ -27,7 +27,7 @@
#
msgid ""
msgstr ""
-"Project-Id-Version: zvbi 0.2.38\n"
+"Project-Id-Version: zvbi 0.2.39\n"
"Report-Msgid-Bugs-To: mschimek(a)users.sf.net\n"
"POT-Creation-Date: 2022-10-05 16:09+0300\n"
"PO-Revision-Date: 2013-08-28 16:25+0200\n"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/zvbi-0.2.38/po/es.po new/zvbi-0.2.39/po/es.po
--- old/zvbi-0.2.38/po/es.po 2022-11-30 14:23:49.000000000 +0100
+++ new/zvbi-0.2.39/po/es.po 2022-12-21 17:11:18.000000000 +0100
@@ -4,7 +4,7 @@
#
msgid ""
msgstr ""
-"Project-Id-Version: zvbi 0.2.38\n"
+"Project-Id-Version: zvbi 0.2.39\n"
"Report-Msgid-Bugs-To: mschimek(a)users.sf.net\n"
"POT-Creation-Date: 2022-10-05 16:09+0300\n"
"PO-Revision-Date: 2007-11-27 18:34+0100\n"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/zvbi-0.2.38/po/fr.po new/zvbi-0.2.39/po/fr.po
--- old/zvbi-0.2.38/po/fr.po 2022-11-30 14:23:49.000000000 +0100
+++ new/zvbi-0.2.39/po/fr.po 2022-12-21 17:11:18.000000000 +0100
@@ -3,7 +3,7 @@
#
msgid ""
msgstr ""
-"Project-Id-Version: zvbi 0.2.38\n"
+"Project-Id-Version: zvbi 0.2.39\n"
"Report-Msgid-Bugs-To: mschimek(a)users.sf.net\n"
"POT-Creation-Date: 2022-10-05 16:09+0300\n"
"PO-Revision-Date: 2007-11-27 18:35+0100\n"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/zvbi-0.2.38/po/it.po new/zvbi-0.2.39/po/it.po
--- old/zvbi-0.2.38/po/it.po 2022-11-30 14:23:49.000000000 +0100
+++ new/zvbi-0.2.39/po/it.po 2022-12-21 17:11:18.000000000 +0100
@@ -4,7 +4,7 @@
#
msgid ""
msgstr ""
-"Project-Id-Version: zvbi 0.2.38\n"
+"Project-Id-Version: zvbi 0.2.39\n"
"Report-Msgid-Bugs-To: mschimek(a)users.sf.net\n"
"POT-Creation-Date: 2022-10-05 16:09+0300\n"
"PO-Revision-Date: 2007-11-27 18:37+0100\n"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/zvbi-0.2.38/po/ka.po new/zvbi-0.2.39/po/ka.po
--- old/zvbi-0.2.38/po/ka.po 1970-01-01 01:00:00.000000000 +0100
+++ new/zvbi-0.2.39/po/ka.po 2022-12-21 17:11:18.000000000 +0100
@@ -0,0 +1,603 @@
+# Georgian translation for ZVBI.
+# Copyright (C) 2022 Michael H. Schimek
+# This file is distributed under the same license as the zvbi package.
+# Temuri Doghonadze <temuri.doghonadze(a)gmail.com>, 2022.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: zvbi 0.2.39\n"
+"Report-Msgid-Bugs-To: mschimek(a)users.sf.net\n"
+"POT-Creation-Date: 2022-12-13 21:07+0100\n"
+"PO-Revision-Date: 2022-12-13 22:02+0100\n"
+"Last-Translator: Temuri Doghonadze <temuri.doghonadze(a)gmail.com>\n"
+"Language-Team: Georgian <(nothing)>\n"
+"Language: ka\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+"X-Generator: Poedit 3.2.2\n"
+
+#: src/exp-gfx.c:797
+msgid "Correct aspect ratio"
+msgstr "������������������������ ������������������������ ���������������������������"
+
+#: src/exp-gfx.c:798
+msgid ""
+"Approach an image aspect ratio similar to a real TV. This will double the "
+"image size."
+msgstr ""
+"������������������������������������ ������������������������ ������������������������������ ������������������, ��������� ������������������ ���������������������������������. ������ "
+"��������������������������������������� ��������������� ��������������� ���������������������."
+
+#: src/exp-gfx.c:802
+msgid "Include transparency"
+msgstr "������������������������������������������ ���������������������"
+
+#: src/exp-gfx.c:803
+msgid "If not enabled, transparency is mapped to black."
+msgstr "������ ������������������������, ��������������������������������������� ��������������� ������������������ ���������������������."
+
+#: src/exp-gfx.c:805
+msgid "Include page title"
+msgstr "��������������������� ������������������������ ���������������������"
+
+#: src/exp-gfx.c:806
+msgid "Embed a title string which names network and page number."
+msgstr "������������������������ ��������������������������� ������������������������, ��������������������� ��������������� ������ ��������������������� ������������������ ������������������������."
+
+#: src/exp-gfx.c:908 src/exp-html.c:268
+#, c-format
+msgid "Teletext Page %3x.%x"
+msgstr "��������������������������������� ������������������ %3x.%x"
+
+#: src/exp-gfx.c:912 src/exp-html.c:271
+#, c-format
+msgid "Teletext Page %3x"
+msgstr "��������������������������������� ������������������ %3x"
+
+#: src/exp-gfx.c:1121
+msgid "PPM"
+msgstr "PPM"
+
+#: src/exp-gfx.c:1122
+msgid "Export this page as raw PPM image"
+msgstr "������ ��������������������� ��������������������������������������� PPM ��������������������� ��������������� ������������������"
+
+#: src/exp-gfx.c:1612
+msgid "XPM"
+msgstr "XPM"
+
+#: src/exp-gfx.c:1613
+msgid "Export this page as XPM image"
+msgstr "������ ��������������������� XPM ��������������������������������������� ��������������� ������������������"
+
+#: src/exp-gfx.c:1807
+#, c-format
+msgid "Unable to allocate %d byte buffer."
+msgstr "��������������������������������� %d ������������������ ������������������������ ���������������������������������."
+
+#: src/exp-gfx.c:1813
+#, c-format
+msgid "Unable to allocate %d KB image buffer."
+msgstr "��������������������������������������� ��������������������������������� %d ������-������ ������������������������ ���������������������������������."
+
+#: src/exp-gfx.c:1877
+msgid "PNG"
+msgstr "PNG"
+
+#: src/exp-gfx.c:1878
+msgid "Export this page as PNG image"
+msgstr "������ ��������������������� PNG ��������������������������������������� ��������������� ������������������"
+
+#: src/exp-html.c:119 src/exp-txt.c:122
+msgid "Graphics char"
+msgstr "��������������������������� ���������������������"
+
+#: src/exp-html.c:120 src/exp-txt.c:123
+msgid ""
+"Replacement for block graphic characters: a single character or decimal (32) "
+"or hex (0x20) code"
+msgstr ""
+"��������������������� ��������������������������� ��������������������������������� ������������������������������: ������������ ���������������������, ��������������������� (32) ������ "
+"��������������������������������������� (0x20) ������������"
+
+#: src/exp-html.c:123
+msgid "Color (CSS)"
+msgstr "������������ (CSS)"
+
+#: src/exp-html.c:124
+msgid "Store the page colors using CSS attributes"
+msgstr "��������������������� ��������������������� CSS ��������������������������������� ��������������� ������������������������������������"
+
+#: src/exp-html.c:126
+msgid "HTML header"
+msgstr "HTML ������������������������"
+
+#: src/exp-html.c:127
+msgid "Include HTML page header"
+msgstr "HTML ��������������������� ��������������������������� ���������������"
+
+#. TRANSLATORS: "lang=\"en\" refers to the page title
+#. "Teletext Page ...". Please specify "de", "fr", "es" etc.
+#: src/exp-html.c:256
+msgid "<title lang=\"en\">"
+msgstr "<title lang=\"ka\">"
+
+#: src/exp-html.c:391 src/exp-txt.c:613
+#, c-format
+msgid "Character conversion Unicode (UCS-2) to %s not supported."
+msgstr "��������������������������������� ������������������������������ (UCS-2) %s-������ ��������������������������� ������������������������������������ ������������."
+
+#: src/exp-html.c:472
+msgid "Character conversion failed."
+msgstr "��������������������������������� ������������������������������ ���������������������."
+
+#: src/exp-html.c:769
+msgid "HTML"
+msgstr "HTML"
+
+#: src/exp-html.c:770
+msgid "Export this page as HTML page"
+msgstr "������ ��������������������� HTML ��������������������� ��������������� ������������������"
+
+#: src/exp-txt.c:78
+msgid "ASCII"
+msgstr "ASCII"
+
+#: src/exp-txt.c:79
+msgid "ISO-8859-1 (Latin-1 Western languages)"
+msgstr "ISO-8859-1 (Latin-1 ��������������������������� ���������������)"
+
+#: src/exp-txt.c:80
+msgid "ISO-8859-2 (Latin-2 Central and Eastern Europe languages)"
+msgstr "ISO-8859-2 (Latin-2 ������������������������������ ������ ������������������������������ ������������������������ ���������������)"
+
+#: src/exp-txt.c:81
+msgid "ISO-8859-4 (Latin-3 Baltic languages)"
+msgstr "ISO-8859-4 (Latin-3 ������������������������ ���������������)"
+
+#: src/exp-txt.c:82
+msgid "ISO-8859-5 (Cyrillic)"
+msgstr "ISO-8859-5 (������������������������)"
+
+#: src/exp-txt.c:83
+msgid "ISO-8859-7 (Greek)"
+msgstr "ISO-8859-7 (������������������������)"
+
+#: src/exp-txt.c:84
+msgid "ISO-8859-8 (Hebrew)"
+msgstr "ISO-8859-8 (������������������)"
+
+#: src/exp-txt.c:85
+msgid "ISO-8859-9 (Turkish)"
+msgstr "ISO-8859-9 (���������������������)"
+
+#: src/exp-txt.c:86
+msgid "KOI8-R (Russian and Bulgarian)"
+msgstr "KOI8-R (������������������ ������ ���������������������������)"
+
+#: src/exp-txt.c:87
+msgid "KOI8-U (Ukranian)"
+msgstr "KOI8-U (���������������������������)"
+
+#: src/exp-txt.c:88
+msgid "ISO-10646/UTF-8 (Unicode)"
+msgstr "ISO-10646/UTF-8 (���������������������)"
+
+#: src/exp-txt.c:100
+msgid "Black"
+msgstr "������������"
+
+#: src/exp-txt.c:100
+msgid "Red"
+msgstr "������������������"
+
+#: src/exp-txt.c:100
+msgid "Green"
+msgstr "������������������"
+
+#: src/exp-txt.c:100
+msgid "Yellow"
+msgstr "���������������������"
+
+#: src/exp-txt.c:101
+msgid "Blue"
+msgstr "���������������"
+
+#: src/exp-txt.c:101
+msgid "Magenta"
+msgstr "������������������������"
+
+#: src/exp-txt.c:101
+msgid "Cyan"
+msgstr "���������������������"
+
+#: src/exp-txt.c:101
+msgid "White"
+msgstr "���������������"
+
+#: src/exp-txt.c:102
+msgid "Any"
+msgstr "������������������������������"
+
+#. TRANSLATORS:
+#. Terminal control codes.
+#: src/exp-txt.c:109
+msgid "None"
+msgstr "���������������������"
+
+#: src/exp-txt.c:109
+msgid "ANSI X3.64 / VT 100"
+msgstr "ANSI X3.64 / VT 100"
+
+#: src/exp-txt.c:109
+msgid "VT 200"
+msgstr "VT 200"
+
+#. TRANSLATORS: Text export format (ASCII, Unicode, ...) menu
+#: src/exp-txt.c:116
+msgid "Format"
+msgstr "���������������������"
+
+#: src/exp-txt.c:126
+msgid "Control codes"
+msgstr "������������������������������ ������������������"
+
+#: src/exp-txt.c:130
+msgid "Foreground"
+msgstr "������������ ���������������"
+
+#: src/exp-txt.c:132
+msgid "Assumed terminal foreground color"
+msgstr "��������������������������������� ������������������������ ��������������������� ������������"
+
+#: src/exp-txt.c:134
+msgid "Background"
+msgstr "������������"
+
+#: src/exp-txt.c:136
+msgid "Assumed terminal background color"
+msgstr "��������������������������������� ������������������������ ��������������� ������������"
+
+#: src/exp-txt.c:668
+msgid "Text"
+msgstr "������������������"
+
+#: src/exp-txt.c:669
+msgid "Export this page as text file"
+msgstr "��������������������� ��������������������� ��������������� ������������������"
+
+#: src/exp-vtx.c:86
+msgid "Can only export Teletext pages."
+msgstr "������������������������������������ ������������������ ��������������������������������� ��������������������������� ������������������."
+
+#: src/exp-vtx.c:94
+msgid "Page is not cached, sorry."
+msgstr "���������������������������, ������������������ ������������������������ ������������."
+
+#: src/exp-vtx.c:105
+msgid "Cannot export this page, not displayable."
+msgstr "��������������������� ��������������������� ���������������������. ������ ��������������������������� ������������."
+
+#: src/exp-vtx.c:142
+msgid ""
+"Export this page as VTX file, the format used by VideoteXt and vbidecode"
+msgstr ""
+"������ ��������������������� VTX ������������������ ������������������. ��������������������� VideoteXt ������ vbidecode-������ ������������ "
+"���������������������������������"
+
+#: src/export.c:470
+#, c-format
+msgid "Invalid option string \"%s\"."
+msgstr "������������������������ ������������������������������ ������������������������ \"%s\"."
+
+#: src/export.c:558
+#, c-format
+msgid "Unknown export module '%s'."
+msgstr "������������������ ��������������������������� ������������������ '%s'."
+
+#: src/export.c:568
+#, c-format
+msgid "Cannot initialize export module '%s', probably lack of memory."
+msgstr ""
+"��������������������� ��������������������� '%s' ������������������������������������������ ���������������������. ��������������� ������������������������������ ��������������������������� ������������."
+
+#: src/export.c:1845
+#, c-format
+msgid "Cannot create file '%s': %s."
+msgstr "������������������ \"%s\" ��������������������� ���������������������: %s."
+
+#: src/export.c:1940
+#, c-format
+msgid "Error while writing file '%s'"
+msgstr "������������������ '%s' ��������������������� ���������������������"
+
+#: src/export.c:1942
+msgid "Error while writing file"
+msgstr "������������������ ��������������������� ���������������������"
+
+#: src/export.c:1958
+msgid "Out of memory."
+msgstr "������������������������������������ ������������������������������."
+
+#: src/export.c:1981
+#, c-format
+msgid "Export module '%s' has no option '%s'."
+msgstr "��������������������� ������������������ '%s' ��������������������������� '%s' ������ ���������������������."
+
+#: src/export.c:2031
+#, c-format
+msgid "Invalid argument %s for option %s of export module %s."
+msgstr "��������������������������� ��������������������� %3$s ������������������������������ %2$s ������������������������ ��������������������������� %1$s."
+
+#: src/export.c:2055
+#, c-format
+msgid "Out of memory in export module '%s'."
+msgstr "��������������������� ��������������������� '%s' ������������������������������ ��������������������������� ������������."
+
+#: src/export.c:2082
+msgid "Unknown error."
+msgstr "������������������ ���������������������."
+
+#: src/io-bktr.c:189
+msgid "BKTR driver"
+msgstr "BKTR ������������������������"
+
+#: src/io-bktr.c:204 src/io-bktr.c:285 src/io-bktr.c:303 src/io-v4l.c:165
+#: src/io-v4l.c:1132 src/io-v4l.c:1170 src/io-v4l.c:1198 src/io-v4l2.c:115
+#: src/io-v4l2k.c:232 src/io-v4l2k.c:606 src/io-v4l2k.c:1198
+#: src/io-v4l2k.c:1339 src/io-v4l2k.c:1366 src/proxy-client.c:201
+#: src/proxy-client.c:1559
+msgid "Virtual memory exhausted."
+msgstr "������������������������������ ������������������������������ ������������������������������������."
+
+#: src/io-bktr.c:217
+#, c-format
+msgid "Cannot open '%s': %s."
+msgstr "��������������������� ���������������������: %s: %s."
+
+#: src/io-bktr.c:273 src/io-v4l.c:757 src/io-v4l.c:1117 src/io-v4l2k.c:1185
+#, c-format
+msgid "Sorry, %s (%s) cannot capture any of the requested data services."
+msgstr ""
+"���������������������������, %s (%s) -��� ������������������������������ ��������������������������������� ������������������������������ ������������������ ������ ���������������������."
+
+#: src/io-bktr.c:314 src/io-v4l.c:176 src/io-v4l2k.c:617
+#, c-format
+msgid "Not enough memory to allocate vbi capture buffer (%d KB)."
+msgstr "VBI-������ ��������������������� ��������������������� ��������������������������������� (%d ������) ������������������������������ ��������������������������� ������������."
+
+#: src/io-bktr.c:391
+msgid "BKTR driver interface not compiled."
+msgstr "BKTR ��������������������������� ������������������������������ ��������������������� ������������."
+
+#: src/io-v4l.c:808 src/io-v4l2k.c:1030
+#, c-format
+msgid "Cannot initialize %s (%s), the device is already in use."
+msgstr "%s-������ (%s) ������������������������������������������ ���������������������: ��������������������������������� ������������ ���������������������������������."
+
+#: src/io-v4l.c:822
+#, c-format
+msgid "Could not set the vbi capture parameters for %s (%s): %s."
+msgstr "%s (%s)-��������������� vbi ��������������������� ������������������������������������ ��������������������������� ���������������������: %s."
+
+#: src/io-v4l.c:960 src/io-v4l2k.c:1134
+#, c-format
+msgid ""
+"%s (%s) offers unknown vbi sampling format #%d. This may be a driver bug or "
+"libzvbi is too old."
+msgstr ""
+"%s (%s) ��������������������������� vbi ������������������������������ ��������������� ��������������������� #%d. ������������������������ ��������������������������� "
+"������������������, ������ libzvbi -������ ������������������ ���������������."
+
+#: src/io-v4l.c:1013
+#, c-format
+msgid "Cannot capture with %s (%s), has no standard vbi interface."
+msgstr ""
+"%s (%s)-������ ������������������ ���������������������������������. ��������� ��������������������������������� VBI ������������������������������ ������ ���������������������."
+
+#: src/io-v4l.c:1033
+#, c-format
+msgid ""
+"Cannot identify %s (%s), reported vbi frame size suggests this is not a bttv "
+"driver."
+msgstr ""
+"%s (%s)-������ ������������������������������������������ ���������������������. ��������������������� ������������������������ VBI ������������������ ������������ "
+"���������������������������, ��������� ������ bttv ������������������������ ������������."
+
+#: src/io-v4l.c:1050 src/io-v4l.c:1288
+#, c-format
+msgid "Cannot set or determine current videostandard of %s (%s)."
+msgstr "%s (%s)-������ ��������������������������� ��������������������������������������������� ��������������������������� ������ ������������������������ ���������������������."
+
+#: src/io-v4l.c:1089 src/io-v4l2k.c:1149
+#, c-format
+msgid ""
+"Cannot capture the requested data services with %s (%s), the sampling "
+"frequency %.2f MHz is too low."
+msgstr ""
+"%s (%s)-������������ ������������������������������ ��������������������������������� ������������������������������ ������������������ ���������������������������������. "
+"������������������������������ ��������������������� %.2f ��������� ������������������ ���������������������."
+
+#: src/io-v4l.c:1206 src/io-v4l2.c:130 src/io-v4l2k.c:1383
+#, c-format
+msgid "Cannot open '%s': %d, %s."
+msgstr "%s-������ ��������������������� ���������������������: %d, %s."
+
+#: src/io-v4l.c:1223 src/io-v4l.c:1232
+msgid "driver unknown"
+msgstr "������������������������ ���������������������"
+
+#: src/io-v4l.c:1238 src/io-v4l2k.c:1410
+#, c-format
+msgid "%s (%s) is not a raw vbi device."
+msgstr "%s (%s) RAW VBI ��������������������������������� ������������."
+
+#: src/io-v4l.c:1258
+#, c-format
+msgid "%s (%s) does not support the select() function."
+msgstr "%s (%s) -��� select() ������������������������ ������������������������������ ������ ���������������������.."
+
+#: src/io-v4l.c:1392 src/io-v4l.c:1437
+msgid "V4L driver interface not compiled."
+msgstr "V4L ��������������������������� ������������������������������ ��������������������� ������������."
+
+#: src/io-v4l2.c:222 src/io-v4l2k.c:1552
+msgid "V4L2 driver interface not compiled."
+msgstr "V4L2 ��������������������������� ������������������������������ ��������������������� ������������."
+
+#: src/io-v4l2k.c:210
+#, c-format
+msgid "Cannot request streaming i/o buffers from %s (%s): %s."
+msgstr ""
+"%s (%s)-��������� ������������������/��������������������������� ��������������������������� ������������������������������ ��������������������������� ���������������������: %s."
+
+#: src/io-v4l2k.c:214 src/io-v4l2k.c:1039
+msgid "Possibly a driver bug."
+msgstr "��������������������� ��������������������� ���������������������������."
+
+#: src/io-v4l2k.c:219
+#, c-format
+msgid ""
+"%s (%s) granted no streaming i/o buffers, perhaps the physical memory is "
+"exhausted."
+msgstr ""
+"%s (%s)-��� ������������������/��������������������������� ��������������������������� ������������������������������ ������������������ ������������������������������ ������ ������������. "
+"��������������� ������������������������ ������������������������������ ������������������������������������."
+
+#: src/io-v4l2k.c:248
+#, c-format
+msgid "Querying streaming i/o buffer #%d from %s (%s) failed: %s."
+msgstr ""
+"������������������������������ ������������������/��������������������������� ��������������������� #%d %s (%s)-��������� ������������������������������ ���������������������: %s."
+
+#: src/io-v4l2k.c:283
+#, c-format
+msgid "Memory mapping streaming i/o buffer #%d from %s (%s) failed: %s."
+msgstr ""
+"��������������������������������� ��������������������������� ������������������������������ ������������������/��������������������������� #%d ��������������������� %s (%s)-���������:%s."
+
+#: src/io-v4l2k.c:308
+#, c-format
+msgid "Cannot enqueue streaming i/o buffer #%d to %s (%s): %s."
+msgstr ""
+"������������������������������ ������������������/��������������������������� ��������������������� #%d %s (%s)-������ ��������������� ������������������ ���������������������: %s."
+
+#: src/io-v4l2k.c:312 src/io-v4l2k.c:763 src/io-v4l2k.c:788
+msgid "Probably a driver bug."
+msgstr "��������������������� ��������������������� ���������������������������."
+
+#: src/io-v4l2k.c:759 src/io-v4l2k.c:785
+#, c-format
+msgid "Cannot query current videostandard of %s (%s): %s."
+msgstr "%s (%s)-������ ��������������������������� ��������������������������������������������� ������������������������������ ���������������������: %s."
+
+#: src/io-v4l2k.c:896
+#, c-format
+msgid "Cannot query current vbi parameters of %s (%s): %s."
+msgstr "%s (%s)-������ VBI-������ ��������������������������� ������������������������������������ ������������������������������ ���������������������: %s."
+
+#: src/io-v4l2k.c:938
+#, c-format
+msgid ""
+"Sorry, %s (%s) cannot capture any of the requested data services with "
+"scanning %d."
+msgstr ""
+"���������������������������, %s (%s) -��� ������ ��������������������� ������������������������ ��������� ������������ ������������������������������ ��������������������������������� "
+"��������������������� %d-������ ������������������������������."
+
+#: src/io-v4l2k.c:1036
+#, c-format
+msgid "Could not set the vbi capture parameters for %s (%s): %d, %s."
+msgstr "%s (%s)-��������������� VBI-������ ��������������������� ������������������������������������ ��������������������������� ���������������������: %d, %s."
+
+#: src/io-v4l2k.c:1082
+#, c-format
+msgid ""
+"A known bug in driver %s %u.%u.%u impedes VBI capturing in NTSC mode. Please "
+"upgrade the driver."
+msgstr ""
+"��������������������������� (%s %u.%u.%u ) ��������������������� ���������������������. ������������������������ VBI ��������������������� NTSC ���������������������. "
+"��������������������� ��������������������������� ���������������������������."
+
+#: src/io-v4l2k.c:1403
+#, c-format
+msgid "Cannot identify '%s': %d, %s."
+msgstr "'%s'-������ ������������������������������������������ ���������������������': %d, %s."
+
+#: src/io-v4l2k.c:1405
+msgid "Probably not a v4l2 device."
+msgstr "��������������� ������ ��������������������������������� v4l2 ������������������������������������."
+
+#: src/io-v4l2k.c:1459
+#, c-format
+msgid ""
+"%s (%s) lacks a vbi read interface, possibly an output only device or a "
+"driver bug."
+msgstr ""
+"%s (%s) -��� VBI ������������������������������ ������ ������������. ������������������������ ��������������������������������� ������������������ "
+"���������������������������������������, ������ ��������������������������� ���������������������."
+
+#: src/proxy-client.c:153
+msgid "Server hostname not configured."
+msgstr "������������������������ ������������������ ������������������ ������������������������������ ������������."
+
+#: src/proxy-client.c:155
+msgid "Server port not configured."
+msgstr "������������������������ ��������������� ������������������������������ ������������."
+
+#: src/proxy-client.c:424
+msgid "Protocol error (unexpected message)."
+msgstr "������������������������������ ��������������������� (������������������������������ ���������������������������������)."
+
+#: src/proxy-client.c:585 src/proxy-client.c:637
+msgid "Connection lost due to I/O error."
+msgstr "������������������������ ������������������������������ ������������������/��������������������������� ������������������������ ������������."
+
+#: src/proxy-client.c:758
+#, c-format
+msgid "Incompatible server version %u.%u.%u."
+msgstr "������������������������ ������������������������������������ ������������������ %u.%u.%u."
+
+#: src/proxy-client.c:766
+msgid "Incompatible server architecture (endianness mismatch)."
+msgstr "������������������������������������ ������������������������ ��������������������������������� (������������������������������ ������ ������������������������)."
+
+#: src/proxy-client.c:1871 src/proxy-client.c:1919
+msgid "Proxy client interface not compiled."
+msgstr "������������������ ������������������������ ������������������������������ ��������������������� ������������."
+
+#: src/proxy-msg.c:1240
+#, c-format
+msgid "Cannot create socket: %s."
+msgstr "��������������������� ��������������������� ���������������������: %s."
+
+#: src/proxy-msg.c:1248
+#, c-format
+msgid "Invalid hostname or port: %s."
+msgstr "������������������������ ������������������ ������������������ ������ ���������������: %s."
+
+#: src/proxy-msg.c:1268
+msgid "Connection via TCP/IP failed, server not running or unreachable."
+msgstr "TCP/IP-������ ��������������������������� ���������������������. ��������������������� ��������������������������� ������������ ������ ������������������������������������."
+
+#: src/proxy-msg.c:1270
+msgid "Connection via socket failed, server not running."
+msgstr "��������������������� ��������������������������� ���������������������. ��������������������� ��������������������������� ������������."
+
+#: src/proxy-msg.c:1279 src/proxy-msg.c:1322
+#, c-format
+msgid "Socket I/O error: %s."
+msgstr "��������������������� ������������������/��������������������������� ���������������������: %s."
+
+#: src/proxy-msg.c:1315
+#, c-format
+msgid "Cannot connect to server: %s."
+msgstr "��������������������������� ��������������������������� ���������������������: %s."
+
+#. TRANSLATORS: Title of TOP Index page,
+#. for now please Latin-1 or ASCII only
+#: src/teletext.c:417
+msgid "TOP Index"
+msgstr "������������ ���������������������"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/zvbi-0.2.38/po/nl.po new/zvbi-0.2.39/po/nl.po
--- old/zvbi-0.2.38/po/nl.po 2022-11-30 14:23:49.000000000 +0100
+++ new/zvbi-0.2.39/po/nl.po 2022-12-21 17:11:18.000000000 +0100
@@ -5,7 +5,7 @@
#
msgid ""
msgstr ""
-"Project-Id-Version: zvbi 0.2.38\n"
+"Project-Id-Version: zvbi 0.2.39\n"
"Report-Msgid-Bugs-To: mschimek(a)users.sf.net\n"
"POT-Creation-Date: 2022-10-05 16:09+0300\n"
"PO-Revision-Date: 2007-11-27 18:38+0100\n"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/zvbi-0.2.38/po/pl.po new/zvbi-0.2.39/po/pl.po
--- old/zvbi-0.2.38/po/pl.po 2022-11-30 14:23:49.000000000 +0100
+++ new/zvbi-0.2.39/po/pl.po 2022-12-21 17:11:18.000000000 +0100
@@ -3,7 +3,7 @@
#
msgid ""
msgstr ""
-"Project-Id-Version: zvbi 0.2.38\n"
+"Project-Id-Version: zvbi 0.2.39\n"
"Report-Msgid-Bugs-To: mschimek(a)users.sf.net\n"
"POT-Creation-Date: 2022-10-05 16:09+0300\n"
"PO-Revision-Date: 2004-10-25 12:24+0200\n"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/zvbi-0.2.38/po/sv.po new/zvbi-0.2.39/po/sv.po
--- old/zvbi-0.2.38/po/sv.po 2022-11-30 14:23:49.000000000 +0100
+++ new/zvbi-0.2.39/po/sv.po 2022-12-21 17:11:18.000000000 +0100
@@ -3,7 +3,7 @@
#
msgid ""
msgstr ""
-"Project-Id-Version: zvbi 0.2.38\n"
+"Project-Id-Version: zvbi 0.2.39\n"
"Report-Msgid-Bugs-To: ileanadumitrescu95(a)gmail.com\n"
"POT-Creation-Date: 2003-10-16 16:13+0200\n"
"PO-Revision-Date: 2003-10-16 16:19+0200\n"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/zvbi-0.2.38/src/xds_demux.c new/zvbi-0.2.39/src/xds_demux.c
--- old/zvbi-0.2.38/src/xds_demux.c 2022-11-30 14:23:49.000000000 +0100
+++ new/zvbi-0.2.39/src/xds_demux.c 2022-12-21 17:11:18.000000000 +0100
@@ -819,14 +819,17 @@
vbi_xds_demux_reset (vbi_xds_demux * xd)
{
unsigned int n;
- unsigned int i;
+ unsigned int i, j;
assert (NULL != xd);
n = N_ELEMENTS (xd->subpacket[0]);
- for (i = 0; i < n; ++i)
- xd->subpacket[0][i].count = 0;
+ for (i = 0; i < N_ELEMENTS (xd->subpacket); ++i) {
+ for (j = 0; j < N_ELEMENTS (xd->subpacket[0]); ++j) {
+ xd->subpacket[i][j].count = 0;
+ }
+ }
xd->curr_sp = NULL;
}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/zvbi-0.2.38/test/test-hamm.cc new/zvbi-0.2.39/test/test-hamm.cc
--- old/zvbi-0.2.38/test/test-hamm.cc 2022-11-30 14:23:49.000000000 +0100
+++ new/zvbi-0.2.39/test/test-hamm.cc 2022-12-21 17:11:18.000000000 +0100
@@ -117,7 +117,7 @@
for (i = 0; i < 10000; ++i) {
unsigned int n = (i < 256) ? i : (unsigned int) mrand48 ();
- uint8_t buf[4] = { n, n >> 8, n >> 16, 0xA5 };
+ uint8_t buf[4] = { (uint8_t) n, (uint8_t) (n >> 8), (uint8_t) (n >> 16), 0xA5 };
unsigned int r;
unsigned int j;
@@ -138,7 +138,7 @@
for (i = 0; i < 10000; ++i) {
unsigned int n = (i < 256) ? i : (unsigned int) mrand48 ();
- uint8_t buf[4] = { n, n >> 8, n >> 16, 0xA5 };
+ uint8_t buf[4] = { (uint8_t) n, (uint8_t) (n >> 8), (uint8_t) (n >> 16), 0xA5 };
if (parity (n & 0xFF))
assert (vbi::unpar8 (n) == (int)(n & 127));
@@ -166,7 +166,7 @@
for (i = 0; i < 10000; ++i) {
unsigned int n = (i < 256) ? i : (unsigned int) mrand48 ();
- uint8_t buf[4] = { n, n >> 8, n >> 16, 0xA5 };
+ uint8_t buf[4] = { (uint8_t) n, (uint8_t) (n >> 8), (uint8_t) (n >> 16), 0xA5 };
unsigned int A, B, C, D;
int d;
@@ -238,7 +238,7 @@
unsigned int i;
for (i = 0; i < (1 << 24); ++i) {
- uint8_t buf[4] = { i, i >> 8, i >> 16, 0xA5 };
+ uint8_t buf[4] = { (uint8_t) i, (uint8_t) (i >> 8), (uint8_t) (i >> 16), 0xA5 };
unsigned int A, B, C, D, E, F;
int d;
1
0
Script 'mail_helper' called by obssrc
Hello community,
here is the log from the commit of package 000update-repos for openSUSE:Factory checked in at 2022-12-29 21:10:33
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/000update-repos (Old)
and /work/SRC/openSUSE:Factory/.000update-repos.new.1563 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "000update-repos"
Thu Dec 29 21:10:33 2022 rev:2181 rq: version:unknown
Changes:
--------
New Changes file:
NO CHANGES FILE!!!
New:
----
factory:non-oss_3451.1.packages.zst
factory_20221228.packages.zst
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
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 2022-12-29 16:34:34
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/000product (Old)
and /work/SRC/openSUSE:Factory/.000product.new.1563 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "000product"
Thu Dec 29 16:34:34 2022 rev:3452 rq: version:unknown
Changes:
--------
New Changes file:
NO CHANGES FILE!!!
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ MicroOS-dvd5-dvd-x86_64.kiwi ++++++
--- /var/tmp/diff_new_pack.uklJYJ/_old 2022-12-29 16:34:39.944833912 +0100
+++ /var/tmp/diff_new_pack.uklJYJ/_new 2022-12-29 16:34:39.948833934 +0100
@@ -1,4 +1,4 @@
-<image name="OBS__MicroOS___20221228" schemaversion="4.1">
+<image name="OBS__MicroOS___20221229" 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">20221228</productvar>
+ <productvar name="VERSION">20221229</productvar>
<productinfo name="CONTENTSTYLE">11</productinfo>
- <productinfo name="DISTRO">cpe:/o:opensuse:microos:20221228,openSUSE MicroOS</productinfo>
+ <productinfo name="DISTRO">cpe:/o:opensuse:microos:20221229,openSUSE MicroOS</productinfo>
<productinfo name="LINGUAS">en_US </productinfo>
- <productinfo name="REPOID">obsproduct://build.opensuse.org/openSUSE:Factory/MicroOS/20221228/x86_64</productinfo>
+ <productinfo name="REPOID">obsproduct://build.opensuse.org/openSUSE:Factory/MicroOS/20221229/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-Addon-NonOss-ftp-ftp-i586_x86_64.kiwi ++++++
--- /var/tmp/diff_new_pack.uklJYJ/_old 2022-12-29 16:34:39.980834110 +0100
+++ /var/tmp/diff_new_pack.uklJYJ/_new 2022-12-29 16:34:39.984834132 +0100
@@ -1,4 +1,4 @@
-<image name="OBS__openSUSE-Addon-NonOss___20221228" schemaversion="4.1">
+<image name="OBS__openSUSE-Addon-NonOss___20221229" schemaversion="4.1">
<description type="system">
<author>The SUSE Team</author>
<contact>build(a)opensuse.org</contact>
@@ -36,11 +36,11 @@
<productvar name="SEPARATE_MEDIA">true</productvar>
<productvar name="SHA1OPT">-x -2</productvar>
<productvar name="VENDOR">openSUSE</productvar>
- <productvar name="VERSION">20221228</productvar>
+ <productvar name="VERSION">20221229</productvar>
<productinfo name="CONTENTSTYLE">11</productinfo>
- <productinfo name="DISTRO">cpe:/o:opensuse:opensuse-addon-nonoss:20221228,openSUSE NonOSS Addon</productinfo>
+ <productinfo name="DISTRO">cpe:/o:opensuse:opensuse-addon-nonoss:20221229,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/2022… obsproduct://build.opensuse.org/openSUSE:Factory/openSUSE-Addon-NonOss/2022…</productinfo>
+ <productinfo name="REPOID">obsproduct://build.opensuse.org/openSUSE:Factory/openSUSE-Addon-NonOss/2022… obsproduct://build.opensuse.org/openSUSE:Factory/openSUSE-Addon-NonOss/2022…</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-i586.kiwi ++++++
--- /var/tmp/diff_new_pack.uklJYJ/_old 2022-12-29 16:34:40.004834242 +0100
+++ /var/tmp/diff_new_pack.uklJYJ/_new 2022-12-29 16:34:40.008834264 +0100
@@ -1,4 +1,4 @@
-<image name="OBS__openSUSE___20221228" schemaversion="4.1">
+<image name="OBS__openSUSE___20221229" schemaversion="4.1">
<description type="system">
<author>The SUSE Team</author>
<contact>build(a)opensuse.org</contact>
@@ -32,11 +32,11 @@
<productvar name="SEPARATE_MEDIA">true</productvar>
<productvar name="SHA1OPT">-x -2</productvar>
<productvar name="VENDOR">openSUSE</productvar>
- <productvar name="VERSION">20221228</productvar>
+ <productvar name="VERSION">20221229</productvar>
<productinfo name="CONTENTSTYLE">11</productinfo>
- <productinfo name="DISTRO">cpe:/o:opensuse:opensuse:20221228,openSUSE Tumbleweed</productinfo>
+ <productinfo name="DISTRO">cpe:/o:opensuse:opensuse:20221229,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/20221228/i586</productinfo>
+ <productinfo name="REPOID">obsproduct://build.opensuse.org/openSUSE:Factory/openSUSE/20221229/i586</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.uklJYJ/_old 2022-12-29 16:34:40.032834396 +0100
+++ /var/tmp/diff_new_pack.uklJYJ/_new 2022-12-29 16:34:40.036834418 +0100
@@ -1,4 +1,4 @@
-<image name="OBS__openSUSE___20221228" schemaversion="4.1">
+<image name="OBS__openSUSE___20221229" 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">20221228</productvar>
+ <productvar name="VERSION">20221229</productvar>
<productinfo name="CONTENTSTYLE">11</productinfo>
- <productinfo name="DISTRO">cpe:/o:opensuse:opensuse:20221228,openSUSE Tumbleweed</productinfo>
+ <productinfo name="DISTRO">cpe:/o:opensuse:opensuse:20221229,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/20221228/x86_64</productinfo>
+ <productinfo name="REPOID">obsproduct://build.opensuse.org/openSUSE:Factory/openSUSE/20221229/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-i586.kiwi ++++++
--- /var/tmp/diff_new_pack.uklJYJ/_old 2022-12-29 16:34:40.060834550 +0100
+++ /var/tmp/diff_new_pack.uklJYJ/_new 2022-12-29 16:34:40.068834594 +0100
@@ -1,4 +1,4 @@
-<image name="OBS__openSUSE___20221228" schemaversion="4.1">
+<image name="OBS__openSUSE___20221229" schemaversion="4.1">
<description type="system">
<author>The SUSE Team</author>
<contact>build(a)opensuse.org</contact>
@@ -32,11 +32,11 @@
<productvar name="SEPARATE_MEDIA">true</productvar>
<productvar name="SHA1OPT">-x -2</productvar>
<productvar name="VENDOR">openSUSE</productvar>
- <productvar name="VERSION">20221228</productvar>
+ <productvar name="VERSION">20221229</productvar>
<productinfo name="CONTENTSTYLE">11</productinfo>
- <productinfo name="DISTRO">cpe:/o:opensuse:opensuse:20221228,openSUSE Tumbleweed</productinfo>
+ <productinfo name="DISTRO">cpe:/o:opensuse:opensuse:20221229,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/20221228/i586</productinfo>
+ <productinfo name="REPOID">obsproduct://build.opensuse.org/openSUSE:Factory/openSUSE/20221229/i586</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.uklJYJ/_old 2022-12-29 16:34:40.104834791 +0100
+++ /var/tmp/diff_new_pack.uklJYJ/_new 2022-12-29 16:34:40.116834858 +0100
@@ -1,4 +1,4 @@
-<image name="OBS__openSUSE___20221228" schemaversion="4.1">
+<image name="OBS__openSUSE___20221229" 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">20221228</productvar>
+ <productvar name="VERSION">20221229</productvar>
<productinfo name="CONTENTSTYLE">11</productinfo>
- <productinfo name="DISTRO">cpe:/o:opensuse:opensuse:20221228,openSUSE Tumbleweed</productinfo>
+ <productinfo name="DISTRO">cpe:/o:opensuse:opensuse:20221229,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/20221228/x86_64</productinfo>
+ <productinfo name="REPOID">obsproduct://build.opensuse.org/openSUSE:Factory/openSUSE/20221229/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-ftp-ftp-i586_x86_64.kiwi ++++++
--- /var/tmp/diff_new_pack.uklJYJ/_old 2022-12-29 16:34:40.156835078 +0100
+++ /var/tmp/diff_new_pack.uklJYJ/_new 2022-12-29 16:34:40.164835121 +0100
@@ -1,4 +1,4 @@
-<image name="OBS__openSUSE___20221228" schemaversion="4.1">
+<image name="OBS__openSUSE___20221229" schemaversion="4.1">
<description type="system">
<author>The SUSE Team</author>
<contact>build(a)opensuse.org</contact>
@@ -24,7 +24,7 @@
<productvar name="DISTNAME">openSUSE</productvar>
<productvar name="FLAVOR">ftp</productvar>
<productvar name="MAKE_LISTINGS">true</productvar>
- <productvar name="MEDIUM_NAME">openSUSE-20221228-i586-x86_64</productvar>
+ <productvar name="MEDIUM_NAME">openSUSE-20221229-i586-x86_64</productvar>
<productvar name="MULTIPLE_MEDIA">true</productvar>
<productvar name="PRODUCT_DIR">/</productvar>
<productvar name="PRODUCT_NAME">$DISTNAME-$FLAVOR</productvar>
@@ -36,11 +36,11 @@
<productvar name="SEPARATE_MEDIA">true</productvar>
<productvar name="SHA1OPT">-x -2</productvar>
<productvar name="VENDOR">openSUSE</productvar>
- <productvar name="VERSION">20221228</productvar>
+ <productvar name="VERSION">20221229</productvar>
<productinfo name="CONTENTSTYLE">11</productinfo>
- <productinfo name="DISTRO">cpe:/o:opensuse:opensuse:20221228,openSUSE Tumbleweed</productinfo>
+ <productinfo name="DISTRO">cpe:/o:opensuse:opensuse:20221229,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/20221228/i586 obsproduct://build.opensuse.org/openSUSE:Factory/openSUSE/20221228/x86_64</productinfo>
+ <productinfo name="REPOID">obsproduct://build.opensuse.org/openSUSE:Factory/openSUSE/20221229/i586 obsproduct://build.opensuse.org/openSUSE:Factory/openSUSE/20221229/x86_64</productinfo>
<productinfo name="VENDOR">openSUSE</productinfo>
<productoption name="DEBUGMEDIUM">2</productoption>
<productoption name="INI_DIR">/usr/share/kiwi/modules/plugins/tumbleweed</productoption>
++++++ MicroOS.product ++++++
--- /var/tmp/diff_new_pack.uklJYJ/_old 2022-12-29 16:34:40.216835407 +0100
+++ /var/tmp/diff_new_pack.uklJYJ/_new 2022-12-29 16:34:40.220835429 +0100
@@ -6,7 +6,7 @@
<name>MicroOS</name>
<releasepkgname>MicroOS-release</releasepkgname>
<endoflife/>
- <version>20221228</version>
+ <version>20221229</version>
<!-- release is no longer optional -->
<release>0</release>
<productline>MicroOS</productline>
++++++ openSUSE-Addon-NonOss.product ++++++
--- /var/tmp/diff_new_pack.uklJYJ/_old 2022-12-29 16:34:40.324836001 +0100
+++ /var/tmp/diff_new_pack.uklJYJ/_new 2022-12-29 16:34:40.328836023 +0100
@@ -4,7 +4,7 @@
<product>
<vendor>openSUSE</vendor>
<name>openSUSE-Addon-NonOss</name>
- <version>20221228</version>
+ <version>20221229</version>
<release>0</release>
<summary>openSUSE NonOSS Addon</summary>
<shortsummary>non oss addon</shortsummary>
++++++ openSUSE.product ++++++
--- /var/tmp/diff_new_pack.uklJYJ/_old 2022-12-29 16:34:40.348836133 +0100
+++ /var/tmp/diff_new_pack.uklJYJ/_new 2022-12-29 16:34:40.352836155 +0100
@@ -4,7 +4,7 @@
<product>
<vendor>openSUSE</vendor>
<name>openSUSE</name>
- <version>20221228</version>
+ <version>20221229</version>
<release>0</release>
<productline>openSUSE</productline>
++++++ unsorted.yml ++++++
--- /var/tmp/diff_new_pack.uklJYJ/_old 2022-12-29 16:34:40.432836595 +0100
+++ /var/tmp/diff_new_pack.uklJYJ/_new 2022-12-29 16:34:40.444836661 +0100
@@ -9608,7 +9608,7 @@
- libQtOlm3_0
- libQtQuick5-32bit: [x86_64]
- libQuotient-devel
- - libQuotient0_7
+ - libQuotient0_6
- libRaTools0
- libRecast1
- libRivet-3_1_6
@@ -44130,6 +44130,10 @@
- weston-devel
- wev
- wezterm
+ - wezterm-bash-completion
+ - wezterm-fish-completion
+ - wezterm-mux-server
+ - wezterm-zsh-completion
- wf-recorder
- wget2
- wgetpaste
1
0
Script 'mail_helper' called by obssrc
Hello community,
here is the log from the commit of package 000release-packages for openSUSE:Factory checked in at 2022-12-29 16:34:32
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/000release-packages (Old)
and /work/SRC/openSUSE:Factory/.000release-packages.new.1563 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "000release-packages"
Thu Dec 29 16:34:32 2022 rev:2023 rq: version:unknown
Changes:
--------
New Changes file:
NO CHANGES FILE!!!
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
openSUSE-Addon-NonOss-release.spec: same change
openSUSE-release.spec: same change
stub.spec: same change
++++++ weakremovers.inc ++++++
--- /var/tmp/diff_new_pack.sYj7Tm/_old 2022-12-29 16:34:35.864811481 +0100
+++ /var/tmp/diff_new_pack.sYj7Tm/_new 2022-12-29 16:34:35.872811525 +0100
@@ -7601,7 +7601,7 @@
Provides: weakremover(libQtAssistantClient4)
Provides: weakremover(libQtWebKit-devel)
Provides: weakremover(libQtWebKit4)
-Provides: weakremover(libQuotient0_6)
+Provides: weakremover(libQuotient0_7)
Provides: weakremover(libRivet-2_5_4)
Provides: weakremover(libRivet-2_6_0)
Provides: weakremover(libRivet-2_7_2)
1
0
Script 'mail_helper' called by obssrc
Hello community,
here is the log from the commit of package 000release-packages for openSUSE:Factory checked in at 2022-12-29 13:42:47
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/000release-packages (Old)
and /work/SRC/openSUSE:Factory/.000release-packages.new.1563 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "000release-packages"
Thu Dec 29 13:42:47 2022 rev:2022 rq: version:unknown
Changes:
--------
New Changes file:
NO CHANGES FILE!!!
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ MicroOS-release.spec ++++++
--- /var/tmp/diff_new_pack.PzAkr9/_old 2022-12-29 13:42:50.080536575 +0100
+++ /var/tmp/diff_new_pack.PzAkr9/_new 2022-12-29 13:42:50.084536596 +0100
@@ -17,7 +17,7 @@
Name: MicroOS-release
-Version: 20221228
+Version: 20221229
Release: 0
Summary: openSUSE MicroOS
License: GPL-2.0-or-later
@@ -176,9 +176,9 @@
%include %{SOURCE100}
Provides: %name-%version
Provides: product() = MicroOS
-Provides: product(MicroOS) = 20221228-0
+Provides: product(MicroOS) = 20221229-0
Provides: product-label() = openSUSE%20MicroOS
-Provides: product-cpeid() = cpe%3A%2Fo%3Aopensuse%3Amicroos%3A20221228
+Provides: product-cpeid() = cpe%3A%2Fo%3Aopensuse%3Amicroos%3A20221229
Provides: product-url(releasenotes) = http%3A%2F%2Fdoc.opensuse.org%2Frelease%2Dnotes%2Fx86_64%2FopenSUSE%2FTumbleweed%2Frelease%2Dnotes%2DopenSUSE.rpm
Provides: product-endoflife()
Requires: product_flavor(MicroOS)
@@ -194,7 +194,7 @@
Group: System/Fhs
Provides: product_flavor()
Provides: flavor(dvd)
-Provides: product_flavor(MicroOS) = 20221228-0
+Provides: product_flavor(MicroOS) = 20221229-0
Summary: openSUSE MicroOS%{?betaversion: %{betaversion}}
%description dvd
@@ -210,7 +210,7 @@
Group: System/Fhs
Provides: product_flavor()
Provides: flavor(appliance)
-Provides: product_flavor(MicroOS) = 20221228-0
+Provides: product_flavor(MicroOS) = 20221229-0
Summary: openSUSE MicroOS%{?betaversion: %{betaversion}}
%description appliance
@@ -274,11 +274,11 @@
<product schemeversion="0">
<vendor>openSUSE</vendor>
<name>MicroOS</name>
- <version>20221228</version>
+ <version>20221229</version>
<release>0</release>
<endoflife></endoflife>
<arch>%{_target_cpu}</arch>
- <cpeid>cpe:/o:opensuse:microos:20221228</cpeid>
+ <cpeid>cpe:/o:opensuse:microos:20221229</cpeid>
<productline>MicroOS</productline>
<register>
<pool>
++++++ openSUSE-Addon-NonOss-release.spec ++++++
--- /var/tmp/diff_new_pack.PzAkr9/_old 2022-12-29 13:42:50.104536700 +0100
+++ /var/tmp/diff_new_pack.PzAkr9/_new 2022-12-29 13:42:50.108536721 +0100
@@ -1,5 +1,5 @@
#
-# spec file for package openSUSE-Addon-NonOss-release (Version 20221228)
+# spec file for package openSUSE-Addon-NonOss-release (Version 20221229)
#
# Copyright (c) 2022 openSUSE.
#
@@ -16,7 +16,7 @@
Name: openSUSE-Addon-NonOss-release
%define product openSUSE-Addon-NonOss
Summary: openSUSE NonOSS Addon%{?betaversion: %{betaversion}}
-Version: 20221228
+Version: 20221229
Release: 0
License: BSD-3-Clause
Group: System/Fhs
@@ -24,9 +24,9 @@
Provides: %name-%version
Provides: product() = openSUSE%2DAddon%2DNonOss
-Provides: product(openSUSE-Addon-NonOss) = 20221228-0
+Provides: product(openSUSE-Addon-NonOss) = 20221229-0
Provides: product-label() = non%20oss%20addon
-Provides: product-cpeid() = cpe%3A%2Fo%3Aopensuse%3Aopensuse%2Daddon%2Dnonoss%3A20221228
+Provides: product-cpeid() = cpe%3A%2Fo%3Aopensuse%3Aopensuse%2Daddon%2Dnonoss%3A20221229
AutoReqProv: on
@@ -49,10 +49,10 @@
<product schemeversion="0">
<vendor>openSUSE</vendor>
<name>openSUSE-Addon-NonOss</name>
- <version>20221228</version>
+ <version>20221229</version>
<release>0</release>
<arch>%{_target_cpu}</arch>
- <cpeid>cpe:/o:opensuse:opensuse-addon-nonoss:20221228</cpeid>
+ <cpeid>cpe:/o:opensuse:opensuse-addon-nonoss:20221229</cpeid>
<register>
<pool>
</pool>
++++++ openSUSE-release.spec ++++++
--- /var/tmp/diff_new_pack.PzAkr9/_old 2022-12-29 13:42:50.136536868 +0100
+++ /var/tmp/diff_new_pack.PzAkr9/_new 2022-12-29 13:42:50.140536889 +0100
@@ -20,7 +20,7 @@
#define betaversion %{nil}
%define codename Tumbleweed
Name: openSUSE-release
-Version: 20221228
+Version: 20221229
Release: 0
# 0 is the product release, not the build release of this package
Summary: openSUSE Tumbleweed
@@ -180,7 +180,7 @@
%include %{SOURCE100}
Provides: %name-%version
Provides: product() = openSUSE
-Provides: product(openSUSE) = 20221228-0
+Provides: product(openSUSE) = 20221229-0
%ifarch x86_64
Provides: product-register-target() = openSUSE%2DTumbleweed%2Dx86_64
%endif
@@ -194,7 +194,7 @@
Provides: product-register-target() = openSUSE%2DTumbleweed%2Daarch64
%endif
Provides: product-label() = openSUSE
-Provides: product-cpeid() = cpe%3A%2Fo%3Aopensuse%3Aopensuse%3A20221228
+Provides: product-cpeid() = cpe%3A%2Fo%3Aopensuse%3Aopensuse%3A20221229
Provides: product-url(releasenotes) = http%3A%2F%2Fdoc.opensuse.org%2Frelease%2Dnotes%2Fx86_64%2FopenSUSE%2FTumbleweed%2Frelease%2Dnotes%2DopenSUSE.rpm
Provides: product-url(repository) = http%3A%2F%2Fdownload.opensuse.org%2Ftumbleweed%2Frepo%2Foss%2F
Requires: product_flavor(openSUSE)
@@ -208,7 +208,7 @@
Group: System/Fhs
Provides: product_flavor()
Provides: flavor(ftp)
-Provides: product_flavor(openSUSE) = 20221228-0
+Provides: product_flavor(openSUSE) = 20221229-0
Summary: openSUSE Tumbleweed%{?betaversion: %{betaversion}}
%description ftp
@@ -223,7 +223,7 @@
Group: System/Fhs
Provides: product_flavor()
Provides: flavor(mini)
-Provides: product_flavor(openSUSE) = 20221228-0
+Provides: product_flavor(openSUSE) = 20221229-0
Summary: openSUSE Tumbleweed%{?betaversion: %{betaversion}}
%description mini
@@ -238,7 +238,7 @@
Group: System/Fhs
Provides: product_flavor()
Provides: flavor(dvd)
-Provides: product_flavor(openSUSE) = 20221228-0
+Provides: product_flavor(openSUSE) = 20221229-0
Summary: openSUSE Tumbleweed%{?betaversion: %{betaversion}}
%description dvd
@@ -253,7 +253,7 @@
Group: System/Fhs
Provides: product_flavor()
Provides: flavor(livecd-kde)
-Provides: product_flavor(openSUSE) = 20221228-0
+Provides: product_flavor(openSUSE) = 20221229-0
Summary: openSUSE Tumbleweed%{?betaversion: %{betaversion}}
%description livecd-kde
@@ -268,7 +268,7 @@
Group: System/Fhs
Provides: product_flavor()
Provides: flavor(livecd-x11)
-Provides: product_flavor(openSUSE) = 20221228-0
+Provides: product_flavor(openSUSE) = 20221229-0
Summary: openSUSE Tumbleweed%{?betaversion: %{betaversion}}
%description livecd-x11
@@ -283,7 +283,7 @@
Group: System/Fhs
Provides: product_flavor()
Provides: flavor(livecd-gnome)
-Provides: product_flavor(openSUSE) = 20221228-0
+Provides: product_flavor(openSUSE) = 20221229-0
Summary: openSUSE Tumbleweed%{?betaversion: %{betaversion}}
%description livecd-gnome
@@ -298,7 +298,7 @@
Group: System/Fhs
Provides: product_flavor()
Provides: flavor(livecd-xfce)
-Provides: product_flavor(openSUSE) = 20221228-0
+Provides: product_flavor(openSUSE) = 20221229-0
Summary: openSUSE Tumbleweed%{?betaversion: %{betaversion}}
%description livecd-xfce
@@ -313,7 +313,7 @@
Group: System/Fhs
Provides: product_flavor()
Provides: flavor(usb-kde)
-Provides: product_flavor(openSUSE) = 20221228-0
+Provides: product_flavor(openSUSE) = 20221229-0
Summary: openSUSE Tumbleweed%{?betaversion: %{betaversion}}
%description usb-kde
@@ -328,7 +328,7 @@
Group: System/Fhs
Provides: product_flavor()
Provides: flavor(usb-gnome)
-Provides: product_flavor(openSUSE) = 20221228-0
+Provides: product_flavor(openSUSE) = 20221229-0
Summary: openSUSE Tumbleweed%{?betaversion: %{betaversion}}
%description usb-gnome
@@ -343,7 +343,7 @@
Group: System/Fhs
Provides: product_flavor()
Provides: flavor(usb-x11)
-Provides: product_flavor(openSUSE) = 20221228-0
+Provides: product_flavor(openSUSE) = 20221229-0
Summary: openSUSE Tumbleweed%{?betaversion: %{betaversion}}
%description usb-x11
@@ -358,7 +358,7 @@
Group: System/Fhs
Provides: product_flavor()
Provides: flavor(appliance)
-Provides: product_flavor(openSUSE) = 20221228-0
+Provides: product_flavor(openSUSE) = 20221229-0
Summary: openSUSE Tumbleweed%{?betaversion: %{betaversion}}
%description appliance
@@ -373,7 +373,7 @@
Group: System/Fhs
Provides: product_flavor()
Provides: flavor(appliance-docker)
-Provides: product_flavor(openSUSE) = 20221228-0
+Provides: product_flavor(openSUSE) = 20221229-0
Summary: openSUSE Tumbleweed%{?betaversion: %{betaversion}}
%description appliance-docker
@@ -388,7 +388,7 @@
Group: System/Fhs
Provides: product_flavor()
Provides: flavor(appliance-kvm)
-Provides: product_flavor(openSUSE) = 20221228-0
+Provides: product_flavor(openSUSE) = 20221229-0
Summary: openSUSE Tumbleweed%{?betaversion: %{betaversion}}
%description appliance-kvm
@@ -403,7 +403,7 @@
Group: System/Fhs
Provides: product_flavor()
Provides: flavor(appliance-vmware)
-Provides: product_flavor(openSUSE) = 20221228-0
+Provides: product_flavor(openSUSE) = 20221229-0
Summary: openSUSE Tumbleweed%{?betaversion: %{betaversion}}
%description appliance-vmware
@@ -418,7 +418,7 @@
Group: System/Fhs
Provides: product_flavor()
Provides: flavor(appliance-openstack)
-Provides: product_flavor(openSUSE) = 20221228-0
+Provides: product_flavor(openSUSE) = 20221229-0
Summary: openSUSE Tumbleweed%{?betaversion: %{betaversion}}
%description appliance-openstack
@@ -433,7 +433,7 @@
Group: System/Fhs
Provides: product_flavor()
Provides: flavor(appliance-hyperv)
-Provides: product_flavor(openSUSE) = 20221228-0
+Provides: product_flavor(openSUSE) = 20221229-0
Summary: openSUSE Tumbleweed%{?betaversion: %{betaversion}}
%description appliance-hyperv
@@ -448,7 +448,7 @@
Group: System/Fhs
Provides: product_flavor()
Provides: flavor(appliance-vagrant)
-Provides: product_flavor(openSUSE) = 20221228-0
+Provides: product_flavor(openSUSE) = 20221229-0
Summary: openSUSE Tumbleweed%{?betaversion: %{betaversion}}
%description appliance-vagrant
@@ -463,7 +463,7 @@
Group: System/Fhs
Provides: product_flavor()
Provides: flavor(appliance-wsl)
-Provides: product_flavor(openSUSE) = 20221228-0
+Provides: product_flavor(openSUSE) = 20221229-0
Summary: openSUSE Tumbleweed%{?betaversion: %{betaversion}}
%description appliance-wsl
@@ -478,7 +478,7 @@
Group: System/Fhs
Provides: product_flavor()
Provides: flavor(appliance-custom)
-Provides: product_flavor(openSUSE) = 20221228-0
+Provides: product_flavor(openSUSE) = 20221229-0
Summary: openSUSE Tumbleweed%{?betaversion: %{betaversion}}
%description appliance-custom
@@ -557,10 +557,10 @@
<product schemeversion="0">
<vendor>openSUSE</vendor>
<name>openSUSE</name>
- <version>20221228</version>
+ <version>20221229</version>
<release>0</release>
<arch>%{_target_cpu}</arch>
- <cpeid>cpe:/o:opensuse:opensuse:20221228</cpeid>
+ <cpeid>cpe:/o:opensuse:opensuse:20221229</cpeid>
<productline>openSUSE</productline>
<register>
<pool>
1
0
Script 'mail_helper' called by obssrc
Hello community,
here is the log from the commit of package jupyter-filesystem for openSUSE:Factory checked in at 2022-12-29 13:10:08
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/jupyter-filesystem (Old)
and /work/SRC/openSUSE:Factory/.jupyter-filesystem.new.1563 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "jupyter-filesystem"
Thu Dec 29 13:10:08 2022 rev:2 rq: version:unknown
Changes:
--------
New Changes file:
NO CHANGES FILE!!!
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ _link ++++++
--- /var/tmp/diff_new_pack.YRTWPM/_old 2022-12-29 13:10:09.885307459 +0100
+++ /var/tmp/diff_new_pack.YRTWPM/_new 2022-12-29 13:10:09.889307484 +0100
@@ -1,3 +1,3 @@
-<link package="jupyter" cicount="copy" />
+<link package='jupyter' cicount='copy' />
(No newline at EOF)
1
0
Script 'mail_helper' called by obssrc
Hello community,
here is the log from the commit of package libtraceevent for openSUSE:Factory checked in at 2022-12-29 13:09:44
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/libtraceevent (Old)
and /work/SRC/openSUSE:Factory/.libtraceevent.new.1563 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "libtraceevent"
Thu Dec 29 13:09:44 2022 rev:7 rq:1045714 version:1.7.0
Changes:
--------
--- /work/SRC/openSUSE:Factory/libtraceevent/libtraceevent.changes 2022-08-31 18:08:58.155372479 +0200
+++ /work/SRC/openSUSE:Factory/.libtraceevent.new.1563/libtraceevent.changes 2022-12-29 13:09:48.677182198 +0100
@@ -1,0 +2,24 @@
+Sat Dec 24 10:41:38 UTC 2022 - Daniel Wagner <daniel.wagner(a)suse.com>
+
+- Update to release 1.7.0
+ - New APIs:
+ tep_find_function_info() - Returns not only the name of a function from its
+ address, but also where the function starts and
+ its size.
+
+ tep_kbuffer() - Returns the kbuffer parser for a tep handle.
+ - Now handles cpumask() macro parsing.
+ - Add SAME_AS_HOST for endian and long size to kbuffer_alloc()
+ - Handle dynamic fields that are not arrays.
+ - Allow function parameters to have operators.
+ - sizeof() parsing for some basic types.
+ - Added man pages for the kbuffer API.
+ - print_field_raw() terminates with '\0'
+ - Fix uninitialized variables
+ - Fix a "check after derer" coverity flaw
+ - Fix testing the dereference pointer instead of the pointer for NULL.
+ - Fix double free
+- Build project with Meson
+ * add 0001-libtraceevent-Add-initial-support-for-meson.patch
+
+-------------------------------------------------------------------
Old:
----
libtraceevent-1.6.2.tar.gz
New:
----
0001-libtraceevent-Add-initial-support-for-meson.patch
libtraceevent-1.7.0.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ libtraceevent.spec ++++++
--- /var/tmp/diff_new_pack.Y8fYMZ/_old 2022-12-29 13:09:49.137184916 +0100
+++ /var/tmp/diff_new_pack.Y8fYMZ/_new 2022-12-29 13:09:49.141184939 +0100
@@ -22,7 +22,7 @@
%define sodname %{dname}%{sonum}
Name: libtraceevent
-Version: 1.6.2
+Version: 1.7.0
Release: 0
Summary: Linux kernel trace event library
License: GPL-2.0-only AND LGPL-2.1-only
@@ -30,9 +30,12 @@
URL: https://git.kernel.org/pub/scm/libs/libtrace/libtraceevent.git/
Source: https://git.kernel.org/pub/scm/libs/libtrace/%{name}.git/snapshot/%{name}-%…
Source9: %name-rpmlintrc
+Patch1: 0001-libtraceevent-Add-initial-support-for-meson.patch
BuildRequires: asciidoc
BuildRequires: fdupes
BuildRequires: glibc-devel
+BuildRequires: meson
+BuildRequires: source-highlight
BuildRequires: xmlto
%description
@@ -67,15 +70,15 @@
%prep
%autosetup -p1
-%build
-%make_build -j1 CFLAGS="%{optflags}" prefix=%{_prefix} libdir=%{_libdir} plugin_dir=%{_libdir}/%{sodname}/plugins all doc
+%meson \
+ -Ddocs-build=true \
+ -Dhtmldir=%{_docdir}/%{name} \
+ -Dplugindir=%{_libdir}/%{sodname}/plugins
+%meson_build
%install
-%make_install prefix=%{_prefix} libdir=%{_libdir} \
- pkgconfig_dir=%{_libdir}/pkgconfig \
- plugin_dir=%{_libdir}/%{sodname}/plugins \
- htmldir=%{_docdir}/%{name} pdfdir=%{_docdir}/%{name} doc-install
-rm %{buildroot}/%{_libdir}/%{name}.a
+%meson_install
+
%fdupes %buildroot/%_prefix
ls -lR %{buildroot}/%{_libdir}
@@ -89,7 +92,8 @@
%files -n %{soname}-plugins
%dir %{_libdir}/%{sodname}
%dir %{_libdir}/%{sodname}/plugins
-%{_libdir}/%{sodname}/plugins/*.so
+%{_libdir}/%{sodname}/plugins/*.so*
+%{_libdir}/%{sodname}/plugins/libtraceevent-dynamic-list
%files devel
%dir %{_includedir}/%{dname}
++++++ 0001-libtraceevent-Add-initial-support-for-meson.patch ++++++
From 01634c38eba221e913398872b84c5ed6349279e5 Mon Sep 17 00:00:00 2001
From: Daniel Wagner <dwagner(a)suse.de>
Date: Thu, 7 Jul 2022 13:11:59 +0200
Subject: [PATCH] libtraceevent: Add initial support for meson
Introduce Meson as build framework for building libtraceevent. This
lives besides the Makefiles until all the expected initial fallouts
have been dealed with.
The build steps are:
# configure using .build as build directory and install destination
# /tmp/test
meson --prefix=/tmp/libtraceevent .build
# trigger the build
ninja -C .build
# install the library
ninja -C .build install
In case you want to build/install the documentation the setup is
meson -Ddocs-build=true .build
Signed-off-by: Daniel Wagner <dwagner(a)suse.de>
---
Documentation/install-man.sh.in | 10 ++
Documentation/meson.build | 177 ++++++++++++++++++++++++++++++++
include/traceevent/meson.build | 14 +++
meson.build | 55 ++++++++++
meson_options.txt | 20 ++++
plugins/dynamic_list.sh | 14 +++
plugins/meson.build | 44 ++++++++
samples/meson.build | 11 ++
src/meson.build | 37 +++++++
utest/meson.build | 16 +++
10 files changed, 398 insertions(+)
create mode 100755 Documentation/install-man.sh.in
create mode 100644 Documentation/meson.build
create mode 100644 include/traceevent/meson.build
create mode 100644 meson.build
create mode 100644 meson_options.txt
create mode 100755 plugins/dynamic_list.sh
create mode 100644 plugins/meson.build
create mode 100644 samples/meson.build
create mode 100644 src/meson.build
create mode 100644 utest/meson.build
diff --git a/Documentation/install-man.sh.in b/Documentation/install-man.sh.in
new file mode 100755
index 000000000000..2cd4bcafbf4f
--- /dev/null
+++ b/Documentation/install-man.sh.in
@@ -0,0 +1,10 @@
+#!/bin/bash
+
+install -d ${DESTDIR}/@MANDIR@/man3/
+
+for man in $(find @SRCDIR@ -name '*\.3' -type f); do
+ echo Installing $man to ${DESTDIR}/@MANDIR@/man3/
+ install -m 0644 $man ${DESTDIR}/@MANDIR@/man3/
+done
+
+
diff --git a/Documentation/meson.build b/Documentation/meson.build
new file mode 100644
index 000000000000..097da50857b3
--- /dev/null
+++ b/Documentation/meson.build
@@ -0,0 +1,177 @@
+# SPDX-License-Identifier: LGPL-2.1
+#
+# Copyright (c) 2022 Daniel Wagner, SUSE LLC
+
+# input text file: man page section
+sources = {
+ 'libtraceevent.txt': '3',
+ 'libtraceevent-func_apis.txt': '3',
+ 'libtraceevent-commands.txt': '3',
+ 'libtraceevent-cpus.txt': '3',
+ 'libtraceevent-debug.txt': '3',
+ 'libtraceevent-endian_read.txt': '3',
+ 'libtraceevent-event_find.txt': '3',
+ 'libtraceevent-event_get.txt': '3',
+ 'libtraceevent-event_list.txt': '3',
+ 'libtraceevent-event_print.txt': '3',
+ 'libtraceevent-field_find.txt': '3',
+ 'libtraceevent-field_get_val.txt': '3',
+ 'libtraceevent-field_print.txt': '3',
+ 'libtraceevent-field_read.txt': '3',
+ 'libtraceevent-fields.txt': '3',
+ 'libtraceevent-file_endian.txt': '3',
+ 'libtraceevent-filter.txt': '3',
+ 'libtraceevent-func_find.txt': '3',
+ 'libtraceevent-handle.txt': '3',
+ 'libtraceevent-header_page.txt': '3',
+ 'libtraceevent-host_endian.txt': '3',
+ 'libtraceevent-kbuffer-create.txt': '3',
+ 'libtraceevent-kbuffer-read.txt': '3',
+ 'libtraceevent-kbuffer-timestamp.txt': '3',
+ 'libtraceevent-kvm-plugin.txt': '3',
+ 'libtraceevent-log.txt': '3',
+ 'libtraceevent-long_size.txt': '3',
+ 'libtraceevent-page_size.txt': '3',
+ 'libtraceevent-parse_event.txt': '3',
+ 'libtraceevent-parse-files.txt': '3',
+ 'libtraceevent-parse_head.txt': '3',
+ 'libtraceevent-plugins.txt': '3',
+ 'libtraceevent-record_parse.txt': '3',
+ 'libtraceevent-reg_event_handler.txt': '3',
+ 'libtraceevent-reg_print_func.txt': '3',
+ 'libtraceevent-set_flag.txt': '3',
+ 'libtraceevent-strerror.txt': '3',
+ 'libtraceevent-tseq.txt': '3',
+}
+
+#
+# For asciidoc ...
+# -7.1.2, no extra settings are needed.
+# 8.0-, set ASCIIDOC8.
+#
+
+#
+# For docbook-xsl ...
+# -1.68.1, set ASCIIDOC_NO_ROFF? (based on changelog from 1.73.0)
+# 1.69.0, no extra settings are needed?
+# 1.69.1-1.71.0, set DOCBOOK_SUPPRESS_SP?
+# 1.71.1, no extra settings are needed?
+# 1.72.0, set DOCBOOK_XSL_172.
+# 1.73.0-, set ASCIIDOC_NO_ROFF
+#
+
+#
+# If you had been using DOCBOOK_XSL_172 in an attempt to get rid
+# of 'the ".ft C" problem' in your generated manpages, and you
+# instead ended up with weird characters around callouts, try
+# using ASCIIDOC_NO_ROFF instead (it works fine with ASCIIDOC8).
+#
+
+if get_option('asciidoctor')
+ asciidoc = find_program('asciidoctor')
+ asciidoc_extra = ['-a', 'compat-mode']
+ asciidoc_extra += ['-I.']
+ asciidoc_extra += ['-r', 'asciidoctor-extensions']
+ asciidoc_extra += ['-a', 'mansource=libtraceevent']
+ asciidoc_extra += ['-a', 'manmanual="libtraceevent Manual"']
+ asciidoc_html = 'xhtml5'
+else
+ asciidoc = find_program('asciidoc')
+ asciidoc_extra = ['--unsafe']
+ asciidoc_extra += ['-f', meson.current_source_dir() + '/asciidoc.conf']
+ asciidoc_html = 'xhtml11'
+
+ r = run_command(asciidoc, '--version', check: true)
+ v = r.stdout().strip()
+ if v.version_compare('>=8.0')
+ asciidoc_extra += ['-a', 'asciidoc7compatible']
+ endif
+endif
+
+manpage_xsl = meson.current_source_dir() + '/manpage-normal.xsl'
+
+if get_option('docbook-xls-172')
+ asciidoc_extra += ['-a', 'libtraceevent-asciidoc-no-roff']
+ manpage_xsl = meson.current_source_dir() + '/manpage-1.72.xsl'
+elif get_option('asciidoc-no-roff')
+ # docbook-xsl after 1.72 needs the regular XSL, but will not
+ # pass-thru raw roff codes from asciidoc.conf, so turn them off.
+ asciidoc_extra += ['-a', 'libtraceevent-asciidoc-no-roff']
+endif
+
+xmlto = find_program('xmlto')
+xmlto_extra = []
+
+if get_option('man-bold-literal')
+ xmlto_extra += ['-m ', meson.current_source_dir() + '/manpage-bold-literal.xsl']
+endif
+
+if get_option('docbook-suppress-sp')
+ xmlto_extra += ['-m ', meson.current_source_dir() + '/manpage-suppress-sp.xsl']
+endif
+
+gen = generator(asciidoc,
+ output: '@BASENAME@.xml',
+ arguments: [
+ '-b', 'docbook',
+ '-d', 'manpage',
+ '-a', 'libtraceevent_version=' + meson.project_version(),
+ '-o', '@OUTPUT@']
+ + asciidoc_extra
+ + ['@INPUT@'])
+
+foreach txt, section : sources
+ # build man page(s)
+ xml = gen.process(txt)
+ man = custom_target(txt.underscorify() + '_man',
+ input: xml,
+ output: '@BASENAME@.' + section,
+ command: [xmlto,
+ '-m', manpage_xsl,
+ 'man',
+ '-o', '@OUTPUT@']
+ + xmlto_extra
+ + ['@INPUT@'],
+ build_by_default : true)
+
+ # build html pages
+ custom_target(
+ txt.underscorify() + '_html',
+ input: txt,
+ output: '@BASENAME@.html',
+ command: [asciidoc,
+ '-b', asciidoc_html,
+ '-d', 'manpage',
+ '-a', 'libtraceevent_version=' + meson.project_version(),
+ '-o', '@OUTPUT@']
+ + asciidoc_extra
+ + ['@INPUT@'],
+ install: true,
+ install_dir: htmldir)
+endforeach
+
+# Install path workaround because:
+#
+# - xmlto might generate more than one file and we would to tell meson
+# about those output files. We could figure out which files are generated
+# (see sed match in check-manpages.sh).
+#
+# - The man page generation puts all the generated files under sub dirs
+# and it's not obvious how to tell Meson it should not do this without
+# causing the install step to fail (confusion where the generated files
+# are stored)
+#
+# Thus just use a plain old shell script to move the generated files to the
+# right location.
+
+conf = configuration_data()
+conf.set('SRCDIR', meson.current_build_dir())
+conf.set('MANDIR', mandir)
+configure_file(
+ input: 'install-man.sh.in',
+ output: 'install-man.sh',
+ configuration: conf,
+)
+
+meson.add_install_script(
+ join_paths(meson.current_build_dir(), 'install-man.sh'))
diff --git a/include/traceevent/meson.build b/include/traceevent/meson.build
new file mode 100644
index 000000000000..187b136ed138
--- /dev/null
+++ b/include/traceevent/meson.build
@@ -0,0 +1,14 @@
+# SPDX-License-Identifier: LGPL-2.1
+#
+# Copyright (c) 2022 Daniel Wagner, SUSE LLC
+
+headers = [
+ 'event-parse.h',
+ 'event-utils.h',
+ 'kbuffer.h',
+ 'trace-seq.h',
+]
+
+foreach h : headers
+ install_headers(h, subdir : 'traceevent')
+endforeach
diff --git a/meson.build b/meson.build
new file mode 100644
index 000000000000..54621a6d05c4
--- /dev/null
+++ b/meson.build
@@ -0,0 +1,55 @@
+# SPDX-License-Identifier: LGPL-2.1
+#
+# Copyright (c) 2022 Daniel Wagner, SUSE LLC
+
+project(
+ 'libtraceevent', ['c'],
+ meson_version: '>= 0.50.0',
+ license: 'LGPL-2.1',
+ version: '1.7.0',
+ default_options: [
+ 'c_std=gnu99',
+ 'buildtype=debug',
+ 'prefix=/usr/local',
+ 'warning_level=1',
+ ]
+)
+
+library_version = meson.project_version()
+
+cunit_dep = dependency('cunit', required : false)
+
+prefixdir = get_option('prefix')
+mandir = join_paths(prefixdir, get_option('mandir'))
+htmldir = join_paths(prefixdir, get_option('htmldir'))
+libdir = join_paths(prefixdir, get_option('libdir'))
+plugindir = get_option('plugindir')
+if plugindir == ''
+ plugindir = join_paths(libdir, 'libtraceevent/plugins')
+endif
+
+add_project_arguments(
+ [
+ '-D_GNU_SOURCE',
+ '-DPLUGIN_DIR="@0@"'.format(plugindir),
+ ],
+ language : 'c',
+)
+
+incdir = include_directories(['include', 'include/traceevent'])
+
+subdir('src')
+subdir('include/traceevent')
+subdir('plugins')
+if cunit_dep.found()
+ subdir('utest')
+endif
+subdir('samples')
+if get_option('docs-build')
+ custom_target('check-doc',
+ output: 'dummy',
+ command : ['check-manpages.sh',
+ meson.current_source_dir() + '/Documentation'],
+ build_by_default : true)
+ subdir('Documentation')
+endif
diff --git a/meson_options.txt b/meson_options.txt
new file mode 100644
index 000000000000..14c6fc0cc36d
--- /dev/null
+++ b/meson_options.txt
@@ -0,0 +1,20 @@
+# SPDX-License-Identifier: LGPL-2.1
+#
+# Copyright (c) 2022 Daniel Wagner, SUSE LLC
+
+option('plugindir', type : 'string',
+ description : 'set the plugin dir')
+option('docs-build', type : 'boolean', value : false,
+ description : 'build documentation')
+option('htmldir', type : 'string', value : '',
+ description : 'directory for HTML documentation')
+option('asciidoctor', type : 'boolean', value: false,
+ description : 'use asciidoctor instead of asciidoc')
+option('docbook-xls-172', type : 'boolean', value : false,
+ description : 'enable docbook XLS 172 workaround')
+option('asciidoc-no-roff', type : 'boolean', value : false,
+ description : 'enable no roff workaround')
+option('man-bold-literal', type : 'boolean', value : false,
+ description : 'enable bold literals')
+option('docbook-suppress-sp', type : 'boolean', value : false,
+ description : 'docbook suppress sp')
diff --git a/plugins/dynamic_list.sh b/plugins/dynamic_list.sh
new file mode 100755
index 000000000000..e1480eaa694f
--- /dev/null
+++ b/plugins/dynamic_list.sh
@@ -0,0 +1,14 @@
+#!/bin/sh
+# SPDX-License-Identifier: LGPL-2.1
+
+symbol_type=$(nm -u -D $@ | awk 'NF>1 {print $1}' | xargs echo "U w W" |
+ tr 'w ' 'W\n' | sort -u | xargs echo)
+
+if [ "$symbol_type" = "U W" ]; then
+ echo '{'
+
+ nm -u -D $@ | awk 'NF>1 {sub("@.*", "", $2); print "\t"$2";"}' |
+ sort -u
+
+ echo '};'
+fi
diff --git a/plugins/meson.build b/plugins/meson.build
new file mode 100644
index 000000000000..f3260b17d69a
--- /dev/null
+++ b/plugins/meson.build
@@ -0,0 +1,44 @@
+# SPDX-License-Identifier: LGPL-2.1
+#
+# Copyright (c) 2022 Daniel Wagner, SUSE LLC
+
+plugins = [
+ 'plugin_jbd2.c',
+ 'plugin_hrtimer.c',
+ 'plugin_kmem.c',
+ 'plugin_kvm.c',
+ 'plugin_mac80211.c',
+ 'plugin_sched_switch.c',
+ 'plugin_function.c',
+ 'plugin_futex.c',
+ 'plugin_xen.c',
+ 'plugin_scsi.c',
+ 'plugin_cfg80211.c',
+ 'plugin_tlb.c',
+]
+
+pdeps = []
+foreach plugin : plugins
+ pdeps += library(
+ plugin.replace('.c', ''),
+ plugin,
+ name_prefix: '',
+ version: library_version,
+ dependencies: [libtraceevent_dep],
+ include_directories: [incdir],
+ install: true,
+ install_dir: plugindir)
+endforeach
+
+# perf needs the exported symbol list
+dynamic_list_file = find_program('dynamic_list.sh')
+custom_target(
+ 'dynamic_list',
+ depends: pdeps,
+ input: pdeps,
+ output: 'libtraceevent-dynamic-list',
+ command: [dynamic_list_file, '@INPUT@'],
+ capture: true,
+ build_by_default: true,
+ install: true,
+ install_dir: plugindir)
diff --git a/samples/meson.build b/samples/meson.build
new file mode 100644
index 000000000000..827d044c8720
--- /dev/null
+++ b/samples/meson.build
@@ -0,0 +1,11 @@
+# SPDX-License-Identifier: LGPL-2.1
+#
+# Copyright (c) 2022 Daniel Wagner, SUSE LLC
+
+executable(
+ 'test-event',
+ ['test-event.c'],
+ dependencies: libtraceevent_dep,
+ include_directories: [incdir]
+)
+
diff --git a/src/meson.build b/src/meson.build
new file mode 100644
index 000000000000..d9c0bd315735
--- /dev/null
+++ b/src/meson.build
@@ -0,0 +1,37 @@
+# SPDX-License-Identifier: LGPL-2.1
+#
+# Copyright (c) 2022 Daniel Wagner, SUSE LLC
+
+sources= [
+ 'event-parse-api.c',
+ 'event-parse.c',
+ 'event-plugin.c',
+ 'kbuffer-parse.c',
+ 'parse-filter.c',
+ 'parse-utils.c',
+ 'tep_strerror.c',
+ 'trace-seq.c',
+]
+
+libtraceevent = library(
+ 'traceevent',
+ sources,
+ version: library_version,
+ include_directories: [incdir],
+ install: true,
+)
+
+pkg = import('pkgconfig')
+pkg.generate(libtraceevent,
+ subdirs: 'traceevent',
+ filebase: meson.project_name(),
+ name: meson.project_name(),
+ version: meson.project_version(),
+ description: 'Manage trace event',
+ url: 'https://git.kernel.org/pub/scm/libs/libtrace/libtraceevent.git/',
+)
+
+libtraceevent_dep = declare_dependency(
+ include_directories: ['.'],
+ link_with: libtraceevent,
+)
diff --git a/utest/meson.build b/utest/meson.build
new file mode 100644
index 000000000000..06eb887e35e6
--- /dev/null
+++ b/utest/meson.build
@@ -0,0 +1,16 @@
+# SPDX-License-Identifier: LGPL-2.1
+#
+# Copyright (c) 2022 Daniel Wagner, SUSE LLC
+
+source = [
+ 'trace-utest.c',
+ 'traceevent-utest.c',
+]
+
+e = executable(
+ 'trace-utest',
+ source,
+ include_directories: [incdir],
+ dependencies: [libtraceevent_dep, cunit_dep])
+
+test('trace-utest', e)
--
2.39.0
++++++ libtraceevent-1.6.2.tar.gz -> libtraceevent-1.7.0.tar.gz ++++++
++++ 2622 lines of diff (skipped)
1
0
Script 'mail_helper' called by obssrc
Hello community,
here is the log from the commit of package distrobox for openSUSE:Factory checked in at 2022-12-29 13:09:43
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/distrobox (Old)
and /work/SRC/openSUSE:Factory/.distrobox.new.1563 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "distrobox"
Thu Dec 29 13:09:43 2022 rev:10 rq:1045713 version:1.4.2.1
Changes:
--------
--- /work/SRC/openSUSE:Factory/distrobox/distrobox.changes 2022-11-17 19:52:43.176249005 +0100
+++ /work/SRC/openSUSE:Factory/.distrobox.new.1563/distrobox.changes 2022-12-29 13:09:47.957177944 +0100
@@ -1,0 +2,50 @@
+Wed Dec 28 22:03:04 UTC 2022 - Ayush Kumar <ayush06feb(a)gmail.com>
+
+- Update to latest version (1.4.2.1). Some changes:
+ * all: fix setting up default images and names
+ * compatibility: add gentoo docker image
+ * compatibility: change debian 8 image
+ * completion: Remove shebangs from bash completions
+ * completion: add compatibility list flag, add image name
+ autocompletion
+ * create/enter/export: Add home prefix
+ * create: Fix using --home with space in path
+ * create: use --entrypoint to override entrypoint defined by
+ image
+ * distrobox: remove trap from the wrapper
+ * docs: Add resource limitation tips
+ * docs: Fix example configuration file
+ * docs: Update handler function to support bash scripts
+ * enter/export: handle quotes in arguments in a better way
+ * enter: exclude LANG environment variables
+ * enter: remove detach-keys, work on #398
+ * export/enter: inject container ID at enter-time, in order to be
+ used in export
+ * export: fix variable declaration
+ * export: look at global user services while trying to export a
+ service
+ * export: use realpath on icons
+ * init: Add init and pre-init hook defaults as supported config
+ options
+ * init: add missing findmnt in OpenSUSE
+ * init: better systemd unit cleanup
+ * init: copy skel files only if using custom home
+ * init: fix overriding of SHELL at each start, override default
+ SHELL only the first time
+ * init: fix sudoers spam (missing " in check)
+ * init: fix void-linux package incompatibility error
+ * init: fix vte installation; add --noreplace to prevent repeated
+ builds
+ * init: integrate with kerberos host only if it is installed on
+ the host.
+ * init: skip external mounts when searching for sockets
+ * init: specify package for gentoo
+ * init: use container's path for SHELL instead of host's one
+ * init: use findmnt instead of mountpoint, fixing compatibility
+ with old distributions
+ * install-podman: Fix cni_plugin_dirs
+ * install: do not use scraping, use fixed version
+ * main: Do not open manpager automatically
+ Full list available at: https://github.com/89luca89/distrobox/releases/tag/1.4.2.1
+
+-------------------------------------------------------------------
Old:
----
distrobox-1.4.1.tar.gz
New:
----
distrobox-1.4.2.1.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ distrobox.spec ++++++
--- /var/tmp/diff_new_pack.XdZrUO/_old 2022-12-29 13:09:48.449180851 +0100
+++ /var/tmp/diff_new_pack.XdZrUO/_new 2022-12-29 13:09:48.453180875 +0100
@@ -17,7 +17,7 @@
Name: distrobox
-Version: 1.4.1
+Version: 1.4.2.1
Release: 0
Summary: Use any linux distribution inside your terminal
License: GPL-3.0-only
++++++ distrobox-1.4.1.tar.gz -> distrobox-1.4.2.1.tar.gz ++++++
++++ 2438 lines of diff (skipped)
1
0
Script 'mail_helper' called by obssrc
Hello community,
here is the log from the commit of package libQuotient for openSUSE:Factory checked in at 2022-12-29 13:09:41
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/libQuotient (Old)
and /work/SRC/openSUSE:Factory/.libQuotient.new.1563 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "libQuotient"
Thu Dec 29 13:09:41 2022 rev:11 rq:1045705 version:0.6.11
Changes:
--------
--- /work/SRC/openSUSE:Factory/libQuotient/libQuotient.changes 2022-12-21 16:07:09.070719709 +0100
+++ /work/SRC/openSUSE:Factory/.libQuotient.new.1563/libQuotient.changes 2022-12-29 13:09:47.217173574 +0100
@@ -2,40 +1,0 @@
-Wed Dec 21 04:58:08 UTC 2022 - Dead Mozay <dead_mozay(a)opensuse.org>
-
-- Update to version 0.7.0:
- * E2EE is the biggest part of this release,
- + The following parts of E2EE are known to work:
- - foundations additional contributions and refactoring.
- - Olm/Megolm signalling with our parties/devices.
- - managing device and one-time keys.
- - sending and receiving (monstrous new encrypted messages.
- - encrypting/decrypting attachment.
- - retrieval and decryption of historical messages keys
- for which are already in the database.
- - device verification.
- + What is not there yet:
- - historical Megolm sessions are not requested from other
- devices/parties, so you will see quite a few undecryptable
- messages in rooms with past communication - this might be
- fixed (if possible without breaking the API) in further
- 0.7.x releases.
- - secure server-side storage (SSSS) is not supported at
- all for now, and will likely require API breakage so
- will come in 0.8.
- - soft logout is not supported; this is also a subject of 0.8.
- + Because there's no soft logout the database for a given account
- is completely reset upon a successful login attempt. This may
- come as a very unpleasant surprise if you don't keep your
- login session between client restarts; but this is a necessary
- trade-off for the current feature set (see #546 for the
- discussion). Together with the rest of the above not-there-yet
- list, this means that you MUST NOT use E2EE with
- libQuotient-backed clients as your only device(s) on
- the account - there's quite a risk of losing encrypted
- conversations if anything happens to the database libQuotient
- keeps key material in, or if you lose your session and have
- to log in again. Did I mention the whole E2EE functionality
- is still in beta? Client authors are strongly recommended
- to show big scary warnings against E2EE for now.
- * Read markers -> read receipts + fully read markers.
-
--------------------------------------------------------------------
Old:
----
libQuotient-0.7.0.tar.gz
New:
----
libQuotient-0.6.11.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ libQuotient.spec ++++++
--- /var/tmp/diff_new_pack.BRvgk1/_old 2022-12-29 13:09:47.641176079 +0100
+++ /var/tmp/diff_new_pack.BRvgk1/_new 2022-12-29 13:09:47.649176125 +0100
@@ -1,7 +1,7 @@
#
# spec file for package libQuotient
#
-# Copyright (c) 2022 SUSE LLC
+# Copyright (c) 2021 SUSE LLC
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@@ -16,11 +16,11 @@
#
-%define soversion 0_7
-%define sonum 0.7
+%define soversion 0_6
+%define sonum 0.6
%bcond_with e2ee
Name: libQuotient
-Version: 0.7.0
+Version: 0.6.11
Release: 0
Summary: Library for Qt Matrix Clients
License: LGPL-2.1-only
@@ -30,13 +30,10 @@
BuildRequires: cmake
BuildRequires: gcc-c++
BuildRequires: pkgconfig
-BuildRequires: cmake(Qt5Concurrent)
-BuildRequires: cmake(Qt5Core) >= 5.9
-BuildRequires: cmake(Qt5DBus)
-BuildRequires: cmake(Qt5Gui)
-BuildRequires: cmake(Qt5Keychain)
-BuildRequires: cmake(Qt5Multimedia)
-BuildRequires: cmake(Qt5Network)
+BuildRequires: pkgconfig(Qt5Core) >= 5.9
+BuildRequires: pkgconfig(Qt5Gui)
+BuildRequires: pkgconfig(Qt5Multimedia)
+BuildRequires: pkgconfig(Qt5Network)
%if %{with e2ee}
BuildRequires: cmake(Olm)
%endif
++++++ libQuotient-0.7.0.tar.gz -> libQuotient-0.6.11.tar.gz ++++++
++++ 39489 lines of diff (skipped)
1
0