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
May 2022
- 1 participants
- 2269 discussions
Script 'mail_helper' called by obssrc
Hello community,
here is the log from the commit of package yder for openSUSE:Factory checked in at 2022-05-30 12:43:58
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/yder (Old)
and /work/SRC/openSUSE:Factory/.yder.new.2254 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "yder"
Mon May 30 12:43:58 2022 rev:14 rq:979710 version:1.4.17
Changes:
--------
--- /work/SRC/openSUSE:Factory/yder/yder.changes 2022-03-14 19:37:47.990179148 +0100
+++ /work/SRC/openSUSE:Factory/.yder.new.2254/yder.changes 2022-05-30 12:44:52.400464231 +0200
@@ -1,0 +2,16 @@
+Sun May 29 18:20:32 UTC 2022 - Martin Hauke <mardnh(a)gmx.de>
+
+- Update to version 1.4.17
+ * Fix CMAKE_MODULE_PATH who was used as single value (for real)
+
+-------------------------------------------------------------------
+Sat May 28 18:57:01 UTC 2022 - Martin Hauke <mardnh(a)gmx.de>
+
+- Update to version 1.4.16
+ * Fix pkg-config file with absolute path for
+ CMAKE_INSTALL_{INCLUDE,LIB}DIR
+ * Fix CMAKE_MODULE_PATH who was used as single value
+ * Add y_set_split_message_newline to split log messages on
+ newline characters
+
+-------------------------------------------------------------------
Old:
----
yder-1.4.15.tar.gz
New:
----
yder-1.4.17.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ yder.spec ++++++
--- /var/tmp/diff_new_pack.1MzPpm/_old 2022-05-30 12:44:52.956464971 +0200
+++ /var/tmp/diff_new_pack.1MzPpm/_new 2022-05-30 12:44:52.960464976 +0200
@@ -19,7 +19,7 @@
%define sover 1_4
Name: yder
-Version: 1.4.15
+Version: 1.4.17
Release: 0
Summary: Logging library written in C
# Example programs in subfolder examples/ are licensed under MIT
++++++ yder-1.4.15.tar.gz -> yder-1.4.17.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/yder-1.4.15/.github/workflows/codeql-analysis.yml new/yder-1.4.17/.github/workflows/codeql-analysis.yml
--- old/yder-1.4.15/.github/workflows/codeql-analysis.yml 2022-03-09 23:10:21.000000000 +0100
+++ new/yder-1.4.17/.github/workflows/codeql-analysis.yml 2022-05-29 20:04:28.000000000 +0200
@@ -46,9 +46,21 @@
# and modify them (or add more) to build your code if your project
# uses a compiled language
- - run: |
+ - name: dependencies
+ run: |
sudo apt-get update
sudo apt-get install -y cmake pkg-config libsystemd-dev doxygen
+
+ cd /opt
+ git clone https://github.com/babelouest/orcania.git
+ mkdir build
+ cd build
+
+ cmake -DCMAKE_INSTALL_PREFIX=/usr -DCMAKE_INSTALL_LIBDIR=lib ../orcania
+ make
+ sudo make install
+ rm -rf *
+ - run: |
mkdir build
cd build
cmake -DBUILD_YDER_DOCUMENTATION=on ..
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/yder-1.4.15/.github/workflows/main.yml new/yder-1.4.17/.github/workflows/main.yml
--- old/yder-1.4.15/.github/workflows/main.yml 2022-03-09 23:10:21.000000000 +0100
+++ new/yder-1.4.17/.github/workflows/main.yml 2022-05-29 20:04:28.000000000 +0200
@@ -13,6 +13,17 @@
sudo apt-get install -y cmake pkg-config check libsubunit-dev cppcheck libsystemd-dev doxygen
- name: cppcheck
run: cppcheck --force --enable=warning,missingInclude --error-exitcode=1 .
+ - name: dependencies
+ run: |
+ cd /opt
+ git clone https://github.com/babelouest/orcania.git
+ mkdir build
+ cd build
+
+ cmake -DCMAKE_INSTALL_PREFIX=/usr -DCMAKE_INSTALL_LIBDIR=lib ../orcania
+ make
+ sudo make install
+ rm -rf *
- name: build
run: |
mkdir build
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/yder-1.4.15/API.md new/yder-1.4.17/API.md
--- old/yder-1.4.15/API.md 2022-03-09 23:10:21.000000000 +0100
+++ new/yder-1.4.17/API.md 2022-05-29 20:04:28.000000000 +0200
@@ -6,4 +6,4 @@
Yder is multi-thread, which mean that you can use multiple instances of the function `y_log_message` at the same time in your program.
-Yet, `y_init_logs`, `y_set_logs_callback`, `y_set_date_format` and `y_close_logs` are mono-thread. You might use those functions in the `main()` routine to ensure safety.
+Yet, `y_init_logs`, `y_set_logs_callback`, `y_set_date_format`, `y_set_split_message_newline` and `y_close_logs` are mono-thread. You might use those functions in the `main()` routine to ensure safety.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/yder-1.4.15/CHANGELOG.md new/yder-1.4.17/CHANGELOG.md
--- old/yder-1.4.15/CHANGELOG.md 2022-03-09 23:10:21.000000000 +0100
+++ new/yder-1.4.17/CHANGELOG.md 2022-05-29 20:04:28.000000000 +0200
@@ -1,5 +1,15 @@
# Yder Changelog
+## 1.4.17
+
+- Fix `CMAKE_MODULE_PATH` who was used as single value (for real)
+
+## 1.4.16
+
+- Fix pkg-config file with absolute path for `CMAKE_INSTALL_{INCLUDE,LIB}DIR`
+- Fix `CMAKE_MODULE_PATH` who was used as single value
+- Add `y_set_split_message_newline` to split log messages on newline characters
+
## 1.4.15
- Use `o_strnullempty` instead of `o_strlen` to check if a `char *` has data
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/yder-1.4.15/CMakeLists.txt new/yder-1.4.17/CMakeLists.txt
--- old/yder-1.4.15/CMakeLists.txt 2022-03-09 23:10:21.000000000 +0100
+++ new/yder-1.4.17/CMakeLists.txt 2022-05-29 20:04:28.000000000 +0200
@@ -30,7 +30,7 @@
set(PROJECT_BUGREPORT_PATH "https://github.com/babelouest/yder/issues")
set(LIBRARY_VERSION_MAJOR "1")
set(LIBRARY_VERSION_MINOR "4")
-set(LIBRARY_VERSION_PATCH "15")
+set(LIBRARY_VERSION_PATCH "17")
set(PROJECT_VERSION "${LIBRARY_VERSION_MAJOR}.${LIBRARY_VERSION_MINOR}.${LIBRARY_VERSION_PATCH}")
set(PROJECT_VERSION_MAJOR ${LIBRARY_VERSION_MAJOR})
@@ -56,11 +56,12 @@
set(LIBRARY_VERSION "${LIBRARY_VERSION_MAJOR}.${LIBRARY_VERSION_MINOR}.${LIBRARY_VERSION_PATCH}")
set(LIBRARY_SOVERSION "${LIBRARY_VERSION_MAJOR}.${LIBRARY_VERSION_MINOR}")
-set(ORCANIA_VERSION_REQUIRED "2.2.2")
+set(ORCANIA_VERSION_REQUIRED "2.3.0")
# cmake modules
-set(CMAKE_MODULE_PATH ${CMAKE_CURRENT_SOURCE_DIR}/cmake-modules)
+set(Y_CMAKE_MODULE_PATH ${CMAKE_CURRENT_SOURCE_DIR}/cmake-modules)
+list(APPEND CMAKE_MODULE_PATH "${Y_CMAKE_MODULE_PATH}")
include(GNUInstallDirs)
include(CheckSymbolExists)
@@ -155,6 +156,7 @@
message( FATAL_ERROR "Orcania not found")
endif ()
else()
+ message(STATUS "Orcania found")
set(LIBS ${LIBS} ${ORCANIA_LIBRARIES})
include_directories(${ORCANIA_INCLUDE_DIRS})
include_directories(${orcania_BINARY_DIR})
@@ -231,7 +233,7 @@
set(TESTS yder_test)
configure_file(
- "${CMAKE_MODULE_PATH}/CTestCustom.cmake.in"
+ "${Y_CMAKE_MODULE_PATH}/CTestCustom.cmake.in"
"${CMAKE_CURRENT_BINARY_DIR}/CTestCustom.cmake"
@ONLY)
@@ -250,6 +252,18 @@
option(INSTALL_HEADER "Install the header files" ON) # Install yder.h or not
+if(IS_ABSOLUTE "${CMAKE_INSTALL_INCLUDEDIR}")
+ set(PKGCONFIG_TARGET_INCLUDES "${CMAKE_INSTALL_INCLUDEDIR}")
+else()
+ set(PKGCONFIG_TARGET_INCLUDES "\${prefix}/${CMAKE_INSTALL_INCLUDEDIR}")
+endif()
+
+if(IS_ABSOLUTE "${CMAKE_INSTALL_LIBDIR}")
+ set(PKGCONFIG_TARGET_LIBDIR "${CMAKE_INSTALL_LIBDIR}")
+else()
+ set(PKGCONFIG_TARGET_LIBDIR "\${prefix}/${CMAKE_INSTALL_LIBDIR}")
+endif()
+
configure_file(libyder.pc.in libyder.pc @ONLY)
install(FILES ${CMAKE_CURRENT_BINARY_DIR}/libyder.pc
@@ -281,7 +295,7 @@
if (NOT TARGET uninstall)
configure_file(
- "${CMAKE_MODULE_PATH}/CMakeUninstall.cmake.in"
+ "${Y_CMAKE_MODULE_PATH}/CMakeUninstall.cmake.in"
"${CMAKE_CURRENT_BINARY_DIR}/cmake_uninstall.cmake"
IMMEDIATE @ONLY)
add_custom_target(uninstall
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/yder-1.4.15/examples/.gitignore new/yder-1.4.17/examples/.gitignore
--- old/yder-1.4.15/examples/.gitignore 2022-03-09 23:10:21.000000000 +0100
+++ new/yder-1.4.17/examples/.gitignore 2022-05-29 20:04:28.000000000 +0200
@@ -4,3 +4,5 @@
log_syslog
log_journald
log_callback
+log_newline
+valgrind.txt
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/yder-1.4.15/examples/Makefile new/yder-1.4.17/examples/Makefile
--- old/yder-1.4.15/examples/Makefile 2022-03-09 23:10:21.000000000 +0100
+++ new/yder-1.4.17/examples/Makefile 2022-05-29 20:04:28.000000000 +0200
@@ -19,7 +19,7 @@
INCLUDE_LOCATION=../include
LIBS=-lc -lyder -L$(YDER_LOCATION)
ADDITIONALFLAGS=-O3
-TARGET=log_console log_syslog log_file log_combined log_callback
+TARGET=log_console log_syslog log_file log_combined log_callback log_newline
ifndef Y_DISABLE_JOURNALD
TARGET+= log_journald
@@ -28,7 +28,7 @@
all: libyder.so $(TARGET)
clean:
- rm -f *.o log_console log_syslog log_file log_combined log_journald log_callback
+ rm -f *.o valgrind.txt log_console log_syslog log_file log_combined log_journald log_callback log_newline
debug: ADDITIONALFLAGS=-DDEBUG -g -O0
@@ -61,6 +61,10 @@
$(CC) -c $(CFLAGS) log_callback.c
$(CC) -o log_callback log_callback.o $(LIBS)
+log_newline: log_newline.c
+ $(CC) -c $(CFLAGS) log_newline.c
+ $(CC) -o log_newline log_newline.o $(LIBS)
+
test_console: libyder.so log_console
LD_LIBRARY_PATH=$(YDER_LOCATION):${LD_LIBRARY_PATH} ./log_console
@@ -79,6 +83,9 @@
test_callback: libyder.so log_callback
LD_LIBRARY_PATH=$(YDER_LOCATION):${LD_LIBRARY_PATH} ./log_callback
+test_newline: libyder.so log_newline
+ LD_LIBRARY_PATH=$(YDER_LOCATION):${LD_LIBRARY_PATH} ./log_newline
+
ifndef Y_DISABLE_JOURNALD
test: libyder.so $(TARGET)
LD_LIBRARY_PATH=$(YDER_LOCATION):${LD_LIBRARY_PATH} ./log_console
@@ -87,12 +94,14 @@
LD_LIBRARY_PATH=$(YDER_LOCATION):${LD_LIBRARY_PATH} ./log_combined
LD_LIBRARY_PATH=$(YDER_LOCATION):${LD_LIBRARY_PATH} ./log_journald
LD_LIBRARY_PATH=$(YDER_LOCATION):${LD_LIBRARY_PATH} ./log_callback
+ LD_LIBRARY_PATH=$(YDER_LOCATION):${LD_LIBRARY_PATH} ./log_newline
else
LD_LIBRARY_PATH=$(YDER_LOCATION):${LD_LIBRARY_PATH} ./log_console
LD_LIBRARY_PATH=$(YDER_LOCATION):${LD_LIBRARY_PATH} ./log_syslog
LD_LIBRARY_PATH=$(YDER_LOCATION):${LD_LIBRARY_PATH} ./log_file
LD_LIBRARY_PATH=$(YDER_LOCATION):${LD_LIBRARY_PATH} ./log_combined
LD_LIBRARY_PATH=$(YDER_LOCATION):${LD_LIBRARY_PATH} ./log_callback
+ LD_LIBRARY_PATH=$(YDER_LOCATION):${LD_LIBRARY_PATH} ./log_newline
endif
ifndef Y_DISABLE_JOURNALD
@@ -103,10 +112,12 @@
LD_LIBRARY_PATH=$(YDER_LOCATION):${LD_LIBRARY_PATH} valgrind --tool=memcheck --leak-check=full --show-leak-kinds=all ./log_combined 2>>valgrind.txt
LD_LIBRARY_PATH=$(YDER_LOCATION):${LD_LIBRARY_PATH} valgrind --tool=memcheck --leak-check=full --show-leak-kinds=all ./log_journald 2>>valgrind.txt
LD_LIBRARY_PATH=$(YDER_LOCATION):${LD_LIBRARY_PATH} valgrind --tool=memcheck --leak-check=full --show-leak-kinds=all ./log_callback 2>>valgrind.txt
+ LD_LIBRARY_PATH=$(YDER_LOCATION):${LD_LIBRARY_PATH} valgrind --tool=memcheck --leak-check=full --show-leak-kinds=all ./log_newline 2>>valgrind.txt
else
LD_LIBRARY_PATH=$(YDER_LOCATION):${LD_LIBRARY_PATH} valgrind --tool=memcheck --leak-check=full --show-leak-kinds=all ./log_console 2>valgrind.txt
LD_LIBRARY_PATH=$(YDER_LOCATION):${LD_LIBRARY_PATH} valgrind --tool=memcheck --leak-check=full --show-leak-kinds=all ./log_syslog 2>>valgrind.txt
LD_LIBRARY_PATH=$(YDER_LOCATION):${LD_LIBRARY_PATH} valgrind --tool=memcheck --leak-check=full --show-leak-kinds=all ./log_file 2>>valgrind.txt
LD_LIBRARY_PATH=$(YDER_LOCATION):${LD_LIBRARY_PATH} valgrind --tool=memcheck --leak-check=full --show-leak-kinds=all ./log_combined 2>>valgrind.txt
LD_LIBRARY_PATH=$(YDER_LOCATION):${LD_LIBRARY_PATH} valgrind --tool=memcheck --leak-check=full --show-leak-kinds=all ./log_callback 2>>valgrind.txt
+ LD_LIBRARY_PATH=$(YDER_LOCATION):${LD_LIBRARY_PATH} valgrind --tool=memcheck --leak-check=full --show-leak-kinds=all ./log_newline 2>>valgrind.txt
endif
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/yder-1.4.15/examples/log_file.c new/yder-1.4.17/examples/log_file.c
--- old/yder-1.4.15/examples/log_file.c 2022-03-09 23:10:21.000000000 +0100
+++ new/yder-1.4.17/examples/log_file.c 2022-05-29 20:04:28.000000000 +0200
@@ -24,22 +24,22 @@
int main(int argc, char ** argv) {
- if (y_init_logs("Yder Tests", Y_LOG_MODE_FILE, Y_LOG_LEVEL_ERROR, "/tmp/yder_log_error.log", "Initializing logs mode: console, logs level: error")) {
+ if (y_init_logs("Yder Tests", Y_LOG_MODE_FILE, Y_LOG_LEVEL_ERROR, "/tmp/yder_log_error.log", "Initializing logs mode: file, logs level: error")) {
write_logs("error");
y_close_logs();
}
- if (y_init_logs("Yder Tests", Y_LOG_MODE_FILE, Y_LOG_LEVEL_WARNING, "/tmp/yder_log_warning.log", "Initializing logs mode: console, logs level: warning")) {
+ if (y_init_logs("Yder Tests", Y_LOG_MODE_FILE, Y_LOG_LEVEL_WARNING, "/tmp/yder_log_warning.log", "Initializing logs mode: file, logs level: warning")) {
write_logs("warning");
y_close_logs();
}
- if (y_init_logs("Yder Tests", Y_LOG_MODE_FILE, Y_LOG_LEVEL_INFO, "/tmp/yder_log_info.log", "Initializing logs mode: console, logs level: info")) {
+ if (y_init_logs("Yder Tests", Y_LOG_MODE_FILE, Y_LOG_LEVEL_INFO, "/tmp/yder_log_info.log", "Initializing logs mode: file, logs level: info")) {
write_logs("info");
y_close_logs();
}
- if (y_init_logs("Yder Tests", Y_LOG_MODE_FILE, Y_LOG_LEVEL_DEBUG, "/tmp/yder_log_debug.log", "Initializing logs mode: console, logs level: debug")) {
+ if (y_init_logs("Yder Tests", Y_LOG_MODE_FILE, Y_LOG_LEVEL_DEBUG, "/tmp/yder_log_debug.log", "Initializing logs mode: file, logs level: debug")) {
write_logs("debug");
y_close_logs();
}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/yder-1.4.15/examples/log_journald.c new/yder-1.4.17/examples/log_journald.c
--- old/yder-1.4.15/examples/log_journald.c 2022-03-09 23:10:21.000000000 +0100
+++ new/yder-1.4.17/examples/log_journald.c 2022-05-29 20:04:28.000000000 +0200
@@ -28,22 +28,22 @@
int main(int argc, char ** argv) {
- if (y_init_logs("Yder Tests", Y_LOG_MODE_JOURNALD, Y_LOG_LEVEL_ERROR, NULL, "Initializing logs mode: console, logs level: error")) {
+ if (y_init_logs("Yder Tests", Y_LOG_MODE_JOURNALD, Y_LOG_LEVEL_ERROR, NULL, "Initializing logs mode: journald, logs level: error")) {
write_logs("error");
y_close_logs();
}
- if (y_init_logs("Yder Tests", Y_LOG_MODE_JOURNALD, Y_LOG_LEVEL_WARNING, NULL, "Initializing logs mode: console, logs level: warning")) {
+ if (y_init_logs("Yder Tests", Y_LOG_MODE_JOURNALD, Y_LOG_LEVEL_WARNING, NULL, "Initializing logs mode: journald, logs level: warning")) {
write_logs("warning");
y_close_logs();
}
- if (y_init_logs("Yder Tests", Y_LOG_MODE_JOURNALD, Y_LOG_LEVEL_INFO, NULL, "Initializing logs mode: console, logs level: info")) {
+ if (y_init_logs("Yder Tests", Y_LOG_MODE_JOURNALD, Y_LOG_LEVEL_INFO, NULL, "Initializing logs mode: journald, logs level: info")) {
write_logs("info");
y_close_logs();
}
- if (y_init_logs("Yder Tests", Y_LOG_MODE_JOURNALD, Y_LOG_LEVEL_DEBUG, NULL, "Initializing logs mode: console, logs level: debug")) {
+ if (y_init_logs("Yder Tests", Y_LOG_MODE_JOURNALD, Y_LOG_LEVEL_DEBUG, NULL, "Initializing logs mode: journald, logs level: debug")) {
write_logs("debug");
y_close_logs();
}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/yder-1.4.15/examples/log_newline.c new/yder-1.4.17/examples/log_newline.c
--- old/yder-1.4.15/examples/log_newline.c 1970-01-01 01:00:00.000000000 +0100
+++ new/yder-1.4.17/examples/log_newline.c 2022-05-29 20:04:28.000000000 +0200
@@ -0,0 +1,102 @@
+/**
+ *
+ * Yder example program
+ *
+ * This example program describes the main features
+ * that are available in a callback function
+ *
+ * Copyright 2014-2020 Nicolas Mora <mail(a)babelouest.org>
+ *
+ * License MIT
+ *
+ */
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include "yder.h"
+
+void y_callback_log_message(void * cls, const char * app_name, const time_t date, const unsigned long level, const char * message) {
+ char *level_name, date_stamp[20];
+ struct tm * tm_stamp;
+
+ tm_stamp = localtime (&date);
+
+#ifndef _WIN32
+ strftime (date_stamp, sizeof(date_stamp), "%FT%TZ", tm_stamp);
+#else
+ strftime (date_stamp, sizeof(date_stamp), "%Y-%m-%dT%H:%M:%S", tm_stamp);
+#endif
+ switch (level) {
+ case Y_LOG_LEVEL_ERROR:
+ level_name = "ERROR";
+ break;
+ case Y_LOG_LEVEL_WARNING:
+ level_name = "WARNING";
+ break;
+ case Y_LOG_LEVEL_INFO:
+ level_name = "INFO";
+ break;
+ case Y_LOG_LEVEL_DEBUG:
+ level_name = "DEBUG";
+ break;
+ default:
+ level_name = "NONE";
+ break;
+ }
+ printf("Here is my callback log function\n- cls is %s\n- app_name is %s\n- date is %s\n- level is %s\n- message is '%s'\n\n", (char *)cls, app_name, date_stamp, level_name, message);
+}
+
+int main(int argc, char ** argv) {
+ char * cls = "my cls";
+
+ if (y_init_logs("Yder Tests", Y_LOG_MODE_CONSOLE, Y_LOG_LEVEL_DEBUG, NULL, "Initializing logs mode: console, logs level: debug")) {
+ y_set_split_message_newline(1, "Set newline");
+ y_log_message(Y_LOG_LEVEL_DEBUG, "A message in one line");
+ y_log_message(Y_LOG_LEVEL_DEBUG, "A message in\ntwo lines");
+ y_log_message(Y_LOG_LEVEL_DEBUG, "A message\nin\nfour\nlines");
+ y_close_logs();
+ }
+
+ if (y_init_logs("Yder Tests", Y_LOG_MODE_FILE, Y_LOG_LEVEL_DEBUG, "/tmp/log_newline.log", "Initializing logs mode: file, logs level: debug")) {
+ y_set_split_message_newline(1, "Set newline");
+ y_log_message(Y_LOG_LEVEL_DEBUG, "A message in one line");
+ y_log_message(Y_LOG_LEVEL_DEBUG, "A message in\ntwo lines");
+ y_log_message(Y_LOG_LEVEL_DEBUG, "A message\nin\nfour\nlines");
+ y_close_logs();
+ }
+
+ if (y_init_logs("Yder Tests", Y_LOG_MODE_JOURNALD, Y_LOG_LEVEL_DEBUG, NULL, "Initializing logs mode: journald, logs level: debug")) {
+ y_set_split_message_newline(1, "Set newline");
+ y_log_message(Y_LOG_LEVEL_DEBUG, "A message in one line");
+ y_log_message(Y_LOG_LEVEL_DEBUG, "A message in\ntwo lines");
+ y_log_message(Y_LOG_LEVEL_DEBUG, "A message\nin\nfour\nlines");
+ y_close_logs();
+ }
+
+ if (y_init_logs("Yder Tests", Y_LOG_MODE_SYSLOG, Y_LOG_LEVEL_DEBUG, NULL, "Initializing logs mode: syslog, logs level: debug")) {
+ y_set_split_message_newline(1, "Set newline");
+ y_log_message(Y_LOG_LEVEL_DEBUG, "A message in one line");
+ y_log_message(Y_LOG_LEVEL_DEBUG, "A message in\ntwo lines");
+ y_log_message(Y_LOG_LEVEL_DEBUG, "A message\nin\nfour\nlines");
+ y_close_logs();
+ }
+
+ if (y_init_logs("Yder Tests", Y_LOG_MODE_CALLBACK, Y_LOG_LEVEL_DEBUG, NULL, "Initializing logs mode: callback, logs level: warning") && y_set_logs_callback(&y_callback_log_message, cls, "callback init")) {
+ y_set_split_message_newline(1, "Set newline");
+ y_log_message(Y_LOG_LEVEL_DEBUG, "A message in one line");
+ y_log_message(Y_LOG_LEVEL_DEBUG, "A message in\ntwo lines");
+ y_log_message(Y_LOG_LEVEL_DEBUG, "A message\nin\nfour\nlines");
+ y_close_logs();
+ }
+
+ if (y_init_logs("Yder Tests", Y_LOG_MODE_CONSOLE|Y_LOG_MODE_FILE|Y_LOG_MODE_CALLBACK, Y_LOG_LEVEL_DEBUG, "/tmp/log_newline_combined.log", "Initializing logs mode: file, logs level: debug") && y_set_logs_callback(&y_callback_log_message, cls, "callback init")) {
+ y_set_split_message_newline(1, "Set newline");
+ y_log_message(Y_LOG_LEVEL_DEBUG, "A message in one line");
+ y_log_message(Y_LOG_LEVEL_DEBUG, "A message in\ntwo lines");
+ y_log_message(Y_LOG_LEVEL_DEBUG, "A message\nin\nfour\nlines");
+ y_close_logs();
+ }
+
+ return 0;
+}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/yder-1.4.15/examples/log_syslog.c new/yder-1.4.17/examples/log_syslog.c
--- old/yder-1.4.15/examples/log_syslog.c 2022-03-09 23:10:21.000000000 +0100
+++ new/yder-1.4.17/examples/log_syslog.c 2022-05-29 20:04:28.000000000 +0200
@@ -24,22 +24,22 @@
int main(int argc, char ** argv) {
- if (y_init_logs("Yder Tests", Y_LOG_MODE_SYSLOG, Y_LOG_LEVEL_ERROR, NULL, "Initializing logs mode: console, logs level: error")) {
+ if (y_init_logs("Yder Tests", Y_LOG_MODE_SYSLOG, Y_LOG_LEVEL_ERROR, NULL, "Initializing logs mode: syslog, logs level: error")) {
write_logs("error");
y_close_logs();
}
- if (y_init_logs("Yder Tests", Y_LOG_MODE_SYSLOG, Y_LOG_LEVEL_WARNING, NULL, "Initializing logs mode: console, logs level: warning")) {
+ if (y_init_logs("Yder Tests", Y_LOG_MODE_SYSLOG, Y_LOG_LEVEL_WARNING, NULL, "Initializing logs mode: syslog, logs level: warning")) {
write_logs("warning");
y_close_logs();
}
- if (y_init_logs("Yder Tests", Y_LOG_MODE_SYSLOG, Y_LOG_LEVEL_INFO, NULL, "Initializing logs mode: console, logs level: info")) {
+ if (y_init_logs("Yder Tests", Y_LOG_MODE_SYSLOG, Y_LOG_LEVEL_INFO, NULL, "Initializing logs mode: syslog, logs level: info")) {
write_logs("info");
y_close_logs();
}
- if (y_init_logs("Yder Tests", Y_LOG_MODE_SYSLOG, Y_LOG_LEVEL_DEBUG, NULL, "Initializing logs mode: console, logs level: debug")) {
+ if (y_init_logs("Yder Tests", Y_LOG_MODE_SYSLOG, Y_LOG_LEVEL_DEBUG, NULL, "Initializing logs mode: syslog, logs level: debug")) {
write_logs("debug");
y_close_logs();
}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/yder-1.4.15/include/yder.h new/yder-1.4.17/include/yder.h
--- old/yder-1.4.15/include/yder.h 2022-03-09 23:10:21.000000000 +0100
+++ new/yder-1.4.17/include/yder.h 2022-05-29 20:04:28.000000000 +0200
@@ -56,6 +56,7 @@
#define Y_LOG_LEVEL_DEBUG 0xF000
#define Y_LOG_LEVEL_CURRENT 0xFFFF
+#define Y_SPLIT_CURRENT -1
/**
* @}
*/
@@ -101,6 +102,17 @@
int y_set_date_format(const char * format, const char * message);
/**
+ * Specify if the log messages must be splitted when a newline is in it
+ * This function may have incidence on the application speed,
+ * because it adds more memory allocations on each log message.
+ * I recommend to use it only if relevant
+ * @param split 0 to disable splitted logs, 1 to enable
+ * @param message message that will be appear in the logs
+ * @return 1 on success, 0 on error
+ */
+int y_set_split_message_newline(int split, const char * message);
+
+/**
* Close the logs
* @return 1 on success, 0 on error
*/
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/yder-1.4.15/libyder.pc.in new/yder-1.4.17/libyder.pc.in
--- old/yder-1.4.15/libyder.pc.in 2022-03-09 23:10:21.000000000 +0100
+++ new/yder-1.4.17/libyder.pc.in 2022-05-29 20:04:28.000000000 +0200
@@ -1,7 +1,7 @@
prefix=@CMAKE_INSTALL_PREFIX@
exec_prefix=@CMAKE_INSTALL_PREFIX@
-libdir=${exec_prefix}/@CMAKE_INSTALL_LIBDIR@
-includedir=${prefix}/@CMAKE_INSTALL_INCLUDEDIR@
+libdir=@PKGCONFIG_TARGET_LIBDIR@
+includedir=@PKGCONFIG_TARGET_INCLUDES@
Name: @PROJECT_NAME@
Description: @PROJECT_DESCRIPTION@
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/yder-1.4.15/src/Makefile new/yder-1.4.17/src/Makefile
--- old/yder-1.4.15/src/Makefile 2022-03-09 23:10:21.000000000 +0100
+++ new/yder-1.4.17/src/Makefile 2022-05-29 20:04:28.000000000 +0200
@@ -35,7 +35,7 @@
OUTPUT=libyder.so
VERSION_MAJOR=1
VERSION_MINOR=4
-VERSION_PATCH=15
+VERSION_PATCH=17
SONAME = -soname
ifeq ($(shell uname -s),Darwin)
@@ -71,8 +71,8 @@
@cp $(PKGCONFIG_TEMPLATE) $(PKGCONFIG_FILE)
@echo Pkgconfig file $(PKGCONFIG_FILE) generated
@sed -i -e 's#@CMAKE_INSTALL_PREFIX@#$(DESTDIR)#g' $(PKGCONFIG_FILE)
- @sed -i -e 's/@CMAKE_INSTALL_LIBDIR@/lib/g' $(PKGCONFIG_FILE)
- @sed -i -e 's/@CMAKE_INSTALL_INCLUDEDIR@/include/g' $(PKGCONFIG_FILE)
+ @sed -i -e 's#@PKGCONFIG_TARGET_LIBDIR@#$${prefix}/lib#g' $(PKGCONFIG_FILE)
+ @sed -i -e 's#@PKGCONFIG_TARGET_INCLUDES@#$${prefix}/include#g' $(PKGCONFIG_FILE)
@sed -i -e 's/@PROJECT_NAME@/$(PROJECT_NAME)/g' $(PKGCONFIG_FILE)
@sed -i -e 's/@PROJECT_DESCRIPTION@/$(PROJECT_DESCRIPTION)/g' $(PKGCONFIG_FILE)
@sed -i -e 's|@PROJECT_BUGREPORT_PATH@|$(PROJECT_BUGREPORT_PATH)|g' $(PKGCONFIG_FILE)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/yder-1.4.15/src/yder.c new/yder-1.4.17/src/yder.c
--- old/yder-1.4.15/src/yder.c 2022-03-09 23:10:21.000000000 +0100
+++ new/yder-1.4.17/src/yder.c 2022-05-29 20:04:28.000000000 +0200
@@ -41,10 +41,11 @@
/**
* Write log message to console output (stdout or stderr)
*/
-static void y_write_log_console(const char * app_name, const char * date_format, const time_t date, const unsigned long level, const char * message) {
- char * level_name = NULL, date_stamp[64];
+static void y_write_log_console(const char * app_name, const char * date_format, const time_t date, const unsigned long level, const char * message, int split) {
+ char * level_name = NULL, date_stamp[64], ** message_split = NULL;
FILE * output = NULL;
struct tm tm_stamp;
+ size_t i;
#ifdef _WIN32
gmtime_s(&tm_stamp, &date);
@@ -85,7 +86,16 @@
// Write to stdout
output = stdout;
}
- fprintf(output, "%s - %s %s: %s\n", date_stamp, app_name, level_name, message);
+ if (split == 1) {
+ if (split_string(message, "\n", &message_split)) {
+ for (i=0; message_split[i] != NULL; i++) {
+ fprintf(output, "%s - %s %s: %s\n", date_stamp, app_name, level_name, message_split[i]);
+ }
+ free_string_array(message_split);
+ }
+ } else {
+ fprintf(output, "%s - %s %s: %s\n", date_stamp, app_name, level_name, message);
+ }
fflush(output);
}
@@ -138,9 +148,10 @@
/**
* Append log message to the log file
*/
-static void y_write_log_file(const char * app_name, const char * date_format, const time_t date, FILE * log_file, const unsigned long level, const char * message) {
- char * level_name = NULL, date_stamp[20];
+static void y_write_log_file(const char * app_name, const char * date_format, const time_t date, FILE * log_file, const unsigned long level, const char * message, int split) {
+ char * level_name = NULL, date_stamp[20], ** message_split = NULL;
struct tm tm_stamp;
+ size_t i;
if (log_file != NULL) {
#ifdef _WIN32
@@ -174,7 +185,16 @@
level_name = "NONE";
break;
}
- fprintf(log_file, "%s - %s %s: %s\n", date_stamp, app_name, level_name, message);
+ if (split == 1) {
+ if (split_string(message, "\n", &message_split)) {
+ for (i=0; message_split[i] != NULL; i++) {
+ fprintf(log_file, "%s - %s %s: %s\n", date_stamp, app_name, level_name, message_split[i]);
+ }
+ free_string_array(message_split);
+ }
+ } else {
+ fprintf(log_file, "%s - %s %s: %s\n", date_stamp, app_name, level_name, message);
+ }
fflush(log_file);
}
}
@@ -190,6 +210,7 @@
void (* y_callback_log_message) (void * cls, const char * app_name, const time_t date, const unsigned long level, const char * message),
void * cls,
const char * date_format,
+ int split,
const unsigned long level,
const char * message) {
static unsigned long cur_mode = Y_LOG_MODE_NONE, cur_level = Y_LOG_LEVEL_NONE;
@@ -199,7 +220,10 @@
static void (* cur_callback_log_message) (void * cls, const char * app_name, const time_t date, const unsigned long level, const char * message) = NULL;
static void * cur_cls = NULL;
static char * cur_date_format = NULL;
+ static int cur_split = 0;
time_t now;
+ char ** message_split = NULL;
+ size_t i;
// Closing logs: free cur_app_name
if (app_name == NULL &&
@@ -234,6 +258,10 @@
cur_date_format = o_strdup(date_format);
}
+ if (split != Y_SPLIT_CURRENT) {
+ cur_split = split;
+ }
+
if (cur_mode == Y_LOG_MODE_NONE && cur_level == Y_LOG_LEVEL_NONE) {
// Logs have not been initialized, cancel
return 0;
@@ -281,7 +309,7 @@
if (cur_level >= level) {
if (message != NULL) {
if (cur_mode & Y_LOG_MODE_CONSOLE) {
- y_write_log_console(cur_app_name, cur_date_format, now, level, message);
+ y_write_log_console(cur_app_name, cur_date_format, now, level, message, cur_split);
}
#ifndef _WIN32
if (cur_mode & Y_LOG_MODE_SYSLOG) {
@@ -295,10 +323,19 @@
}
#endif
if (cur_mode & Y_LOG_MODE_FILE) {
- y_write_log_file(cur_app_name, cur_date_format, now, cur_log_file, level, message);
+ y_write_log_file(cur_app_name, cur_date_format, now, cur_log_file, level, message, cur_split);
}
if (cur_mode & Y_LOG_MODE_CALLBACK && cur_callback_log_message != NULL) {
- cur_callback_log_message(cur_cls, cur_app_name, now, level, message);
+ if (cur_split == 1) {
+ if (split_string(message, "\n", &message_split)) {
+ for (i=0; message_split[i] != NULL; i++) {
+ cur_callback_log_message(cur_cls, cur_app_name, now, level, message_split[i]);
+ }
+ free_string_array(message_split);
+ }
+ } else {
+ cur_callback_log_message(cur_cls, cur_app_name, now, level, message);
+ }
}
}
}
@@ -331,7 +368,7 @@
}
#endif
- return y_write_log(app, init_mode, init_level, init_log_file, NULL, NULL, NULL, Y_LOG_LEVEL_INFO, message);
+ return y_write_log(app, init_mode, init_level, init_log_file, NULL, NULL, NULL, Y_SPLIT_CURRENT, Y_LOG_LEVEL_INFO, message);
}
/**
@@ -342,7 +379,7 @@
void * cls,
const char * message) {
if (y_callback_log_message != NULL) {
- return y_write_log(NULL, Y_LOG_MODE_CURRENT, Y_LOG_LEVEL_CURRENT, NULL, y_callback_log_message, cls, NULL, Y_LOG_LEVEL_INFO, message);
+ return y_write_log(NULL, Y_LOG_MODE_CURRENT, Y_LOG_LEVEL_CURRENT, NULL, y_callback_log_message, cls, NULL, Y_SPLIT_CURRENT, Y_LOG_LEVEL_INFO, message);
} else {
return 0;
}
@@ -353,17 +390,21 @@
*/
int y_set_date_format(const char * format, const char * message) {
if (!o_strnullempty(format)) {
- return y_write_log(NULL, Y_LOG_MODE_CURRENT, Y_LOG_LEVEL_CURRENT, NULL, NULL, NULL, format, Y_LOG_LEVEL_INFO, message);
+ return y_write_log(NULL, Y_LOG_MODE_CURRENT, Y_LOG_LEVEL_CURRENT, NULL, NULL, NULL, format, Y_SPLIT_CURRENT, Y_LOG_LEVEL_INFO, message);
} else {
return 0;
}
}
+int y_set_split_message_newline(int split, const char * message) {
+ return y_write_log(NULL, Y_LOG_MODE_CURRENT, Y_LOG_LEVEL_CURRENT, NULL, NULL, NULL, NULL, split, Y_LOG_LEVEL_INFO, message);
+}
+
/**
* Close logs
*/
int y_close_logs(void) {
- return y_write_log(NULL, 0, 0, NULL, NULL, NULL, NULL, 0, NULL);
+ return y_write_log(NULL, 0, 0, NULL, NULL, NULL, NULL, Y_SPLIT_CURRENT, 0, NULL);
}
/**
@@ -380,7 +421,7 @@
out = o_malloc((out_len + 1)*sizeof(char));
if (out != NULL) {
vsnprintf(out, (out_len + 1), message, args_cpy);
- y_write_log(NULL, Y_LOG_MODE_CURRENT, Y_LOG_LEVEL_CURRENT, NULL, NULL, NULL, NULL, level, out);
+ y_write_log(NULL, Y_LOG_MODE_CURRENT, Y_LOG_LEVEL_CURRENT, NULL, NULL, NULL, NULL, Y_SPLIT_CURRENT, level, out);
o_free(out);
}
va_end(args);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/yder-1.4.15/test/yder_test.c new/yder-1.4.17/test/yder_test.c
--- old/yder-1.4.15/test/yder_test.c 2022-03-09 23:10:21.000000000 +0100
+++ new/yder-1.4.17/test/yder_test.c 2022-05-29 20:04:28.000000000 +0200
@@ -7,6 +7,7 @@
#include <time.h>
#include <check.h>
+#include <orcania.h>
#include "yder.h"
char message[1024];
@@ -19,6 +20,12 @@
level = log_level;
}
+void unit_test_newline(void * cls, const char * log_app_name, const time_t date, const unsigned long log_level, const char * log_message) {
+ int * count = (int *)cls;
+ ck_assert_int_gt(o_strlen(log_message), 0);
+ (*count)++;
+}
+
START_TEST(test_yder_init_console)
{
ck_assert_int_eq(y_init_logs("test_yder_console", Y_LOG_MODE_CONSOLE, Y_LOG_LEVEL_DEBUG, NULL, "first test"), 1);
@@ -231,6 +238,25 @@
}
END_TEST
+START_TEST(test_yder_newline_split)
+{
+ int count = 0;
+ ck_assert_int_eq(y_init_logs("test_yder_newline_split", Y_LOG_MODE_CALLBACK, Y_LOG_LEVEL_DEBUG, NULL, "yder_newline_split"), 1);
+ ck_assert_int_eq(y_set_logs_callback(&unit_test_newline, &count, "Start newline unit tests"), 1);
+ ck_assert_int_eq(y_set_split_message_newline(1, "Set newline"), 1);
+ count = 0;
+ y_log_message(Y_LOG_LEVEL_DEBUG, "first test, one line");
+ ck_assert_int_eq(count, 1);
+ count = 0;
+ y_log_message(Y_LOG_LEVEL_DEBUG, "second test\ntwo lines");
+ ck_assert_int_eq(count, 2);
+ count = 0;
+ y_log_message(Y_LOG_LEVEL_DEBUG, "third test\nfour\nlines\nahead");
+ ck_assert_int_eq(count, 4);
+ y_close_logs();
+}
+END_TEST
+
static Suite *yder_suite(void)
{
Suite *s;
@@ -252,6 +278,7 @@
tcase_add_test(tc_core, test_yder_level_warning);
tcase_add_test(tc_core, test_yder_level_error);
tcase_add_test(tc_core, test_yder_date_format);
+ tcase_add_test(tc_core, test_yder_newline_split);
tcase_set_timeout(tc_core, 30);
suite_add_tcase(s, tc_core);
1
0
Script 'mail_helper' called by obssrc
Hello community,
here is the log from the commit of package orcania for openSUSE:Factory checked in at 2022-05-30 12:43:59
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/orcania (Old)
and /work/SRC/openSUSE:Factory/.orcania.new.2254 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "orcania"
Mon May 30 12:43:59 2022 rev:11 rq:979714 version:2.3.0
Changes:
--------
--- /work/SRC/openSUSE:Factory/orcania/orcania.changes 2022-03-14 19:37:48.782180097 +0100
+++ /work/SRC/openSUSE:Factory/.orcania.new.2254/orcania.changes 2022-05-30 12:44:53.216465317 +0200
@@ -1,0 +2,10 @@
+Sat May 28 16:00:58 UTC 2022 - Martin Hauke <mardnh(a)gmx.de>
+
+- Update to version 2.3.0
+ * Add o_base64_encode_alloc, o_base64_decode_alloc,
+ o_base64url_encode_alloc, o_base64url_decode_alloc,
+ o_base64url_2_base64_alloc, o_base64_2_base64url_alloc.
+ * Fix pkg-config file with absolute path for
+ CMAKE_INSTALL_{INCLUDE,LIB}DIR.
+
+-------------------------------------------------------------------
Old:
----
orcania-2.2.2.tar.gz
New:
----
orcania-2.3.0.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ orcania.spec ++++++
--- /var/tmp/diff_new_pack.uAXMtZ/_old 2022-05-30 12:44:53.724465993 +0200
+++ /var/tmp/diff_new_pack.uAXMtZ/_new 2022-05-30 12:44:53.728465998 +0200
@@ -2,7 +2,7 @@
# spec file for package orcania
#
# Copyright (c) 2022 SUSE LLC
-# Copyright (c) 2018-2021, Martin Hauke <mardnh(a)gmx.de>
+# Copyright (c) 2018-2022, Martin Hauke <mardnh(a)gmx.de>
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@@ -17,9 +17,9 @@
#
-%define sover 2_2
+%define sover 2_3
Name: orcania
-Version: 2.2.2
+Version: 2.3.0
Release: 0
Summary: MISC function Library
License: LGPL-2.1-or-later
++++++ orcania-2.2.2.tar.gz -> orcania-2.3.0.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/orcania-2.2.2/.gitignore new/orcania-2.3.0/.gitignore
--- old/orcania-2.2.2/.gitignore 2022-03-09 22:23:46.000000000 +0100
+++ new/orcania-2.3.0/.gitignore 2022-05-25 16:50:33.000000000 +0200
@@ -4,10 +4,4 @@
*.a
*.pc
*.log
-str_test
-split_test
-memory_test
-pointer_list_test
orcania-cfg.h
-valgrind*.txt
-tools/base64url/base64url
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/orcania-2.2.2/CHANGELOG.md new/orcania-2.3.0/CHANGELOG.md
--- old/orcania-2.2.2/CHANGELOG.md 2022-03-09 22:23:46.000000000 +0100
+++ new/orcania-2.3.0/CHANGELOG.md 2022-05-25 16:50:33.000000000 +0200
@@ -1,5 +1,10 @@
# Orcania Changelog
+## 2.3.0
+
+- Add `o_base64_encode_alloc`, `o_base64_decode_alloc`, `o_base64url_encode_alloc`, `o_base64url_decode_alloc`, `o_base64url_2_base64_alloc`, `o_base64_2_base64url_alloc`
+- Fix pkg-config file with absolute path for `CMAKE_INSTALL_{INCLUDE,LIB}DIR`, Closes #27
+
## 2.2.2
- Add `o_strnullempty`
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/orcania-2.2.2/CMakeLists.txt new/orcania-2.3.0/CMakeLists.txt
--- old/orcania-2.2.2/CMakeLists.txt 2022-03-09 22:23:46.000000000 +0100
+++ new/orcania-2.3.0/CMakeLists.txt 2022-05-25 16:50:33.000000000 +0200
@@ -29,8 +29,8 @@
set(PROJECT_HOMEPAGE_URL "https://github.com/babelouest/orcania/")
set(PROJECT_BUGREPORT_PATH "https://github.com/babelouest/orcania/issues")
set(LIBRARY_VERSION_MAJOR "2")
-set(LIBRARY_VERSION_MINOR "2")
-set(LIBRARY_VERSION_PATCH "2")
+set(LIBRARY_VERSION_MINOR "3")
+set(LIBRARY_VERSION_PATCH "0")
set(LIBS "-lm")
set(PROJECT_VERSION "${LIBRARY_VERSION_MAJOR}.${LIBRARY_VERSION_MINOR}.${LIBRARY_VERSION_PATCH}")
@@ -60,7 +60,8 @@
# cmake modules
-set(CMAKE_MODULE_PATH ${CMAKE_CURRENT_SOURCE_DIR}/cmake-modules)
+set(O_CMAKE_MODULE_PATH ${CMAKE_CURRENT_SOURCE_DIR}/cmake-modules)
+list(APPEND CMAKE_MODULE_PATH "${O_CMAKE_MODULE_PATH}")
include(GNUInstallDirs)
include(CheckSymbolExists)
@@ -207,7 +208,7 @@
pointer_list_test)
configure_file(
- "${CMAKE_MODULE_PATH}/CTestCustom.cmake.in"
+ "${O_CMAKE_MODULE_PATH}/CTestCustom.cmake.in"
"${CMAKE_CURRENT_BINARY_DIR}/CTestCustom.cmake"
@ONLY)
@@ -224,6 +225,18 @@
# install target
+if(IS_ABSOLUTE "${CMAKE_INSTALL_INCLUDEDIR}")
+ set(PKGCONFIG_TARGET_INCLUDES "${CMAKE_INSTALL_INCLUDEDIR}")
+else()
+ set(PKGCONFIG_TARGET_INCLUDES "\${prefix}/${CMAKE_INSTALL_INCLUDEDIR}")
+endif()
+
+if(IS_ABSOLUTE "${CMAKE_INSTALL_LIBDIR}")
+ set(PKGCONFIG_TARGET_LIBDIR "${CMAKE_INSTALL_LIBDIR}")
+else()
+ set(PKGCONFIG_TARGET_LIBDIR "\${prefix}/${CMAKE_INSTALL_LIBDIR}")
+endif()
+
option(INSTALL_HEADER "Install the header files" ON) # Install orcania.h or not
configure_file(liborcania.pc.in liborcania.pc @ONLY)
@@ -253,7 +266,7 @@
if (NOT TARGET uninstall)
configure_file(
- "${CMAKE_MODULE_PATH}/CMakeUninstall.cmake.in"
+ "${O_CMAKE_MODULE_PATH}/CMakeUninstall.cmake.in"
"${CMAKE_CURRENT_BINARY_DIR}/cmake_uninstall.cmake"
IMMEDIATE @ONLY)
add_custom_target(uninstall
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/orcania-2.2.2/include/orcania.h new/orcania-2.3.0/include/orcania.h
--- old/orcania-2.2.2/include/orcania.h 2022-03-09 22:23:46.000000000 +0100
+++ new/orcania-2.3.0/include/orcania.h 2022-05-25 16:50:33.000000000 +0200
@@ -38,6 +38,11 @@
#include <stdio.h>
#include <stdlib.h>
+struct _o_datum {
+ size_t size;
+ unsigned char * data;
+};
+
/**
* @defgroup str string functions
* These functions are used for string manipulation
@@ -522,11 +527,11 @@
/**
* o_base64_encode - Base64 encode
- * @param src: Data to be encoded
- * @param len: Length of the data to be encoded
- * @param out: Pointer to output variable
- * @param out_len: Pointer to output length variable
- * @return : 1 on success, 0 on failure
+ * @src: Data to be encoded
+ * @len: Length of the data to be encoded
+ * @out: Pointer to output variable, you might add up to 2 bytes to out length than expected for safety
+ * @out_len: Pointer to output length variable
+ * Returns: 1 on success, 0 on failure
*
* The nul terminator is not included in out_len.
*/
@@ -534,11 +539,11 @@
/**
* o_base64_decode - Base64 decode
- * @param src: Data to be decoded
- * @param len: Length of the data to be decoded
- * @param out: Pointer to output variable
- * @param out_len: Pointer to output length variable
- * @return : 1 on success, 0 on failure
+ * @src: Data to be decoded
+ * @len: Length of the data to be decoded
+ * @out: Pointer to output variable, you might add up to 2 bytes to out length than expected for safety
+ * @out_len: Pointer to output length variable
+ * Returns: 1 on success, 0 on failure
*
* The nul terminator is not included in out_len.
*/
@@ -546,11 +551,11 @@
/**
* o_base64url_encode - Base64url encode (url format)
- * @param src: Data to be encoded
- * @param len: Length of the data to be encoded
- * @param out: Pointer to output variable
- * @param out_len: Pointer to output length variable
- * @return : 1 on success, 0 on failure
+ * @src: Data to be encoded
+ * @len: Length of the data to be encoded
+ * @out: Pointer to output variable, you might add up to 2 bytes to out length than expected for safety
+ * @out_len: Pointer to output length variable
+ * Returns: 1 on success, 0 on failure
*
* The nul terminator is not included in out_len.
*/
@@ -558,41 +563,113 @@
/**
* o_base64url_decode - Base64 decode (url format)
+ * @src: Data to be decoded
+ * @len: Length of the data to be decoded
+ * @out: Pointer to output variable, you might add up to 2 bytes to out length than expected for safety
+ * @out_len: Pointer to output length variable
+ * Returns: 1 on success, 0 on failure
+ *
+ * The nul terminator is not included in out_len.
+ */
+int o_base64url_decode(const unsigned char *src, size_t len, unsigned char * out, size_t * out_len);
+
+/**
+ * o_base64url_2_base64 - Convert a base64 url format to base64 format - Does not check if src is a valid base64
+ * @src: Data to be decoded
+ * @len: Length of the data to be decoded
+ * @out: Pointer to output variable
+ * @out_len: Pointer to output length variable
+ * Returns: 1 on success, 0 on failure
+ *
+ * The nul terminator is not included in out_len.
+ * out must be at least len+2
+ */
+int o_base64url_2_base64(const unsigned char *src, size_t len, unsigned char * out, size_t * out_len);
+
+/**
+ * o_base64_2_base64url - Convert a base64 url format to base64 format - Does not check if src is a valid base64url
+ * @src: Data to be decoded
+ * @len: Length of the data to be decoded
+ * @out: Pointer to output variable
+ * @out_len: Pointer to output length variable
+ * Returns: 1 on success, 0 on failure
+ *
+ * The nul terminator is not included in out_len.
+ * out must be at least len+2
+ */
+int o_base64_2_base64url(const unsigned char *src, size_t len, unsigned char * out, size_t * out_len);
+
+/**
+ * o_base64_encode_alloc - Base64 encode - allocate data result in a struct _o_datum *
+ * @param src: Data to be encoded
+ * @param len: Length of the data to be encoded
+ * @param dat: Pointer to a struct _o_datum * to store result
+ * @return : 1 on success, 0 on failure
+ *
+ * dat->data must be o_free'd after use
+ * The nul terminator is not included in dat->data.
+ */
+int o_base64_encode_alloc(const unsigned char * src, size_t len, struct _o_datum * dat);
+
+/**
+ * o_base64_decode_alloc - Base64 decode - allocate data result in a struct _o_datum *
* @param src: Data to be decoded
* @param len: Length of the data to be decoded
- * @param out: Pointer to output variable
- * @param out_len: Pointer to output length variable
+ * @param dat: Pointer to a struct _o_datum * to store result
* @return : 1 on success, 0 on failure
*
- * The nul terminator is not included in out_len.
+ * dat->data must be o_free'd after use
+ * The nul terminator is not included in dat->data.
*/
-int o_base64url_decode(const unsigned char *src, size_t len, unsigned char * out, size_t * out_len);
+int o_base64_decode_alloc(const unsigned char * src, size_t len, struct _o_datum * dat);
+
+/**
+ * o_base64url_encode_alloc - Base64url encode (url format) - allocate data result in a struct _o_datum *
+ * @param src: Data to be encoded
+ * @param len: Length of the data to be encoded
+ * @param dat: Pointer to a struct _o_datum * to store result
+ * @return : 1 on success, 0 on failure
+ *
+ * dat->data must be o_free'd after use
+ * The nul terminator is not included in dat->data.
+ */
+int o_base64url_encode_alloc(const unsigned char * src, size_t len, struct _o_datum * dat);
/**
- * o_base64url_2_base64 - Convert a base64 url format to base64 format
+ * o_base64url_decode_alloc - Base64 decode (url format) - allocate data result in a struct _o_datum *
* @param src: Data to be decoded
* @param len: Length of the data to be decoded
- * @param out: Pointer to output variable
- * @param out_len: Pointer to output length variable
+ * @param dat: Pointer to a struct _o_datum * to store result
* @return : 1 on success, 0 on failure
*
- * The nul terminator is not included in out_len.
- * out must be at least len+2
+ * dat->data must be o_free'd after use
+ * The nul terminator is not included in dat->data.
*/
-int o_base64url_2_base64(const unsigned char *src, size_t len, unsigned char * out, size_t * out_len);
+int o_base64url_decode_alloc(const unsigned char * src, size_t len, struct _o_datum * dat);
/**
- * o_base64url_2_base64 - Convert a base64 format to base64 url format
+ * o_base64url_2_base64_alloc - Convert a base64 url format to base64 format - allocate data result in a struct _o_datum *
* @param src: Data to be decoded
* @param len: Length of the data to be decoded
- * @param out: Pointer to output variable
- * @param out_len: Pointer to output length variable
+ * @param dat: Pointer to a struct _o_datum * to store result
* @return : 1 on success, 0 on failure
*
- * The nul terminator is not included in out_len.
- * out must be at least len+2
+ * dat->data must be o_free'd after use
+ * The nul terminator is not included in dat->data.
*/
-int o_base64_2_base64url(const unsigned char *src, size_t len, unsigned char * out, size_t * out_len);
+int o_base64url_2_base64_alloc(const unsigned char * src, size_t len, struct _o_datum * dat);
+
+/**
+ * o_base64_2_base64url_alloc - Convert a base64 format to base64 url format - allocate data result in a struct _o_datum *
+ * @param src: Data to be decoded
+ * @param len: Length of the data to be decoded
+ * @param dat: Pointer to a struct _o_datum * to store result
+ * @return : 1 on success, 0 on failure
+ *
+ * dat->data must be o_free'd after use
+ * The nul terminator is not included in dat->data.
+ */
+int o_base64_2_base64url_alloc(const unsigned char * src, size_t len, struct _o_datum * dat);
/**
* @}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/orcania-2.2.2/liborcania.pc.in new/orcania-2.3.0/liborcania.pc.in
--- old/orcania-2.2.2/liborcania.pc.in 2022-03-09 22:23:46.000000000 +0100
+++ new/orcania-2.3.0/liborcania.pc.in 2022-05-25 16:50:33.000000000 +0200
@@ -1,7 +1,7 @@
prefix=@CMAKE_INSTALL_PREFIX@
exec_prefix=@CMAKE_INSTALL_PREFIX@
-libdir=${exec_prefix}/@CMAKE_INSTALL_LIBDIR@
-includedir=${prefix}/@CMAKE_INSTALL_INCLUDEDIR@
+libdir=@PKGCONFIG_TARGET_LIBDIR@
+includedir=@PKGCONFIG_TARGET_INCLUDES@
Name: @PROJECT_NAME@
Description: @PROJECT_DESCRIPTION@
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/orcania-2.2.2/src/Makefile new/orcania-2.3.0/src/Makefile
--- old/orcania-2.2.2/src/Makefile 2022-03-09 22:23:46.000000000 +0100
+++ new/orcania-2.3.0/src/Makefile 2022-05-25 16:50:33.000000000 +0200
@@ -33,8 +33,8 @@
CFLAGS+=-c -fPIC -Wall -Werror -Wextra -I$(ORCANIA_INCLUDE) -D_REENTRANT $(ADDITIONALFLAGS) $(CPPFLAGS)
OUTPUT=liborcania.so
VERSION_MAJOR=2
-VERSION_MINOR=2
-VERSION_PATCH=2
+VERSION_MINOR=3
+VERSION_PATCH=0
OBJECTS=orcania.o memory.o base64.o
LIBSDEP=-lm
LIBS=-lc
@@ -72,8 +72,8 @@
@cp $(PKGCONFIG_TEMPLATE) $(PKGCONFIG_FILE)
@echo Pkgconfig file $(PKGCONFIG_FILE) generated
@sed -i -e 's#@CMAKE_INSTALL_PREFIX@#$(DESTDIR)#g' $(PKGCONFIG_FILE)
- @sed -i -e 's/@CMAKE_INSTALL_LIBDIR@/lib/g' $(PKGCONFIG_FILE)
- @sed -i -e 's/@CMAKE_INSTALL_INCLUDEDIR@/include/g' $(PKGCONFIG_FILE)
+ @sed -i -e 's#@PKGCONFIG_TARGET_LIBDIR@#$${prefix}/lib#g' $(PKGCONFIG_FILE)
+ @sed -i -e 's#@PKGCONFIG_TARGET_INCLUDES@#$${prefix}/include#g' $(PKGCONFIG_FILE)
@sed -i -e 's/@PROJECT_NAME@/$(PROJECT_NAME)/g' $(PKGCONFIG_FILE)
@sed -i -e 's/@PROJECT_DESCRIPTION@/$(PROJECT_DESCRIPTION)/g' $(PKGCONFIG_FILE)
@sed -i -e 's|@PROJECT_BUGREPORT_PATH@|$(PROJECT_BUGREPORT_PATH)|g' $(PKGCONFIG_FILE)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/orcania-2.2.2/src/base64.c new/orcania-2.3.0/src/base64.c
--- old/orcania-2.2.2/src/base64.c 2022-03-09 22:23:46.000000000 +0100
+++ new/orcania-2.3.0/src/base64.c 2022-05-25 16:50:33.000000000 +0200
@@ -38,10 +38,10 @@
*out_len = 0;
while (end - in >= 3) {
if (pos != NULL) {
- *pos++ = table[in[0] >> 2];
- *pos++ = table[((in[0] & 0x03) << 4) | (in[1] >> 4)];
- *pos++ = table[((in[1] & 0x0f) << 2) | (in[2] >> 6)];
- *pos++ = table[in[2] & 0x3f];
+ *pos++ = (unsigned char)(table[in[0] >> 2]);
+ *pos++ = (unsigned char)(table[((in[0] & 0x03) << 4) | (in[1] >> 4)]);
+ *pos++ = (unsigned char)(table[((in[1] & 0x0f) << 2) | (in[2] >> 6)]);
+ *pos++ = (unsigned char)(table[in[2] & 0x3f]);
}
(*out_len) += 4;
in += 3;
@@ -53,12 +53,12 @@
if (end - in) {
if (pos != NULL) {
- *pos++ = table[in[0] >> 2];
+ *pos++ = (unsigned char)(table[in[0] >> 2]);
}
(*out_len)++;
if (end - in == 1) {
if (pos != NULL) {
- *pos++ = table[(in[0] & 0x03) << 4];
+ *pos++ = (unsigned char)(table[(in[0] & 0x03) << 4]);
if (right_pad) {
*pos++ = '=';
}
@@ -70,8 +70,8 @@
}
} else {
if (pos != NULL) {
- *pos++ = table[((in[0] & 0x03) << 4) | (in[1] >> 4)];
- *pos++ = table[(in[1] & 0x0f) << 2];
+ *pos++ = (unsigned char)(table[((in[0] & 0x03) << 4) | (in[1] >> 4)]);
+ *pos++ = (unsigned char)(table[(in[1] & 0x0f) << 2]);
}
(*out_len) += 2;
}
@@ -141,9 +141,9 @@
}
if (count == 4) {
if (pos != NULL) {
- *pos++ = (block[0] << 2) | (block[1] >> 4);
- *pos++ = (block[1] << 4) | (block[2] >> 2);
- *pos++ = (block[2] << 6) | block[3];
+ *pos++ = (unsigned char)((block[0] << 2)) | (unsigned char)((block[1] >> 4));
+ *pos++ = (unsigned char)((block[1] << 4)) | (unsigned char)((block[2] >> 2));
+ *pos++ = (unsigned char)((block[2] << 6)) | (unsigned char)(block[3]);
}
(*out_len)+=3;
count = 0;
@@ -175,7 +175,7 @@
* o_base64_encode - Base64 encode
* @src: Data to be encoded
* @len: Length of the data to be encoded
- * @out: Pointer to output variable
+ * @out: Pointer to output variable, you might add up to 2 bytes to out length than expected for safety
* @out_len: Pointer to output length variable
* Returns: 1 on success, 0 on failure
*
@@ -203,7 +203,7 @@
* o_base64url_encode - Base64url encode (url format)
* @src: Data to be encoded
* @len: Length of the data to be encoded
- * @out: Pointer to output variable
+ * @out: Pointer to output variable, you might add up to 2 bytes to out length than expected for safety
* @out_len: Pointer to output length variable
* Returns: 1 on success, 0 on failure
*
@@ -228,7 +228,7 @@
}
/**
- * o_base64url_2_base64 - Convert a base64 url format to base64 format
+ * o_base64url_2_base64 - Convert a base64 url format to base64 format - Does not check if src is a valid base64
* @src: Data to be decoded
* @len: Length of the data to be decoded
* @out: Pointer to output variable
@@ -266,7 +266,7 @@
}
/**
- * o_base64url_2_base64 - Convert a base64 format to base64 url format
+ * o_base64_2_base64url - Convert a base64 url format to base64 format - Does not check if src is a valid base64url
* @src: Data to be decoded
* @len: Length of the data to be decoded
* @out: Pointer to output variable
@@ -298,3 +298,167 @@
return res;
}
+
+/**
+ * o_base64_encode_alloc - Base64 encode - allocate data result in a struct _o_datum *
+ * @param src: Data to be encoded
+ * @param len: Length of the data to be encoded
+ * @param dat: Pointer to a struct _o_datum * to store result
+ * @return : 1 on success, 0 on failure
+ *
+ * dat->data must be o_free'd after use
+ * The nul terminator is not included in dat->data.
+ */
+int o_base64_encode_alloc(const unsigned char * src, size_t len, struct _o_datum * dat) {
+ int ret = 0;
+
+ if (dat != NULL) {
+ dat->size = 0;
+ if ((ret = o_base64_encode(src, len, NULL, &dat->size)) && dat->size) {
+ if ((dat->data = o_malloc(dat->size+2)) != NULL) {
+ memset(dat->data, 0, dat->size+2);
+ ret = o_base64_encode(src, len, dat->data, &dat->size);
+ } else {
+ ret = 0;
+ }
+ }
+ }
+ return ret;
+}
+
+/**
+ * o_base64_decode_alloc - Base64 decode - allocate data result in a struct _o_datum *
+ * @param src: Data to be decoded
+ * @param len: Length of the data to be decoded
+ * @param dat: Pointer to a struct _o_datum * to store result
+ * @return : 1 on success, 0 on failure
+ *
+ * dat->data must be o_free'd after use
+ * The nul terminator is not included in dat->data.
+ */
+int o_base64_decode_alloc(const unsigned char * src, size_t len, struct _o_datum * dat) {
+ int ret = 0;
+
+ if (dat != NULL) {
+ dat->size = 0;
+ if ((ret = o_base64_decode(src, len, NULL, &dat->size)) && dat->size) {
+ if ((dat->data = o_malloc(dat->size+2)) != NULL) {
+ memset(dat->data, 0, dat->size+2);
+ ret = o_base64_decode(src, len, dat->data, &dat->size);
+ } else {
+ ret = 0;
+ }
+ }
+ }
+ return ret;
+}
+
+/**
+ * o_base64url_encode_alloc - Base64url encode (url format) - allocate data result in a struct _o_datum *
+ * @param src: Data to be encoded
+ * @param len: Length of the data to be encoded
+ * @param dat: Pointer to a struct _o_datum * to store result
+ * @return : 1 on success, 0 on failure
+ *
+ * dat->data must be o_free'd after use
+ * The nul terminator is not included in dat->data.
+ */
+int o_base64url_encode_alloc(const unsigned char * src, size_t len, struct _o_datum * dat) {
+ int ret = 0;
+
+ if (dat != NULL) {
+ dat->size = 0;
+ if ((ret = o_base64url_encode(src, len, NULL, &dat->size)) && dat->size) {
+ if ((dat->data = o_malloc(dat->size+2)) != NULL) {
+ memset(dat->data, 0, dat->size+2);
+ ret = o_base64url_encode(src, len, dat->data, &dat->size);
+ } else {
+ ret = 0;
+ }
+ }
+ }
+ return ret;
+}
+
+/**
+ * o_base64url_decode_alloc - Base64 decode (url format) - allocate data result in a struct _o_datum *
+ * @param src: Data to be decoded
+ * @param len: Length of the data to be decoded
+ * @param dat: Pointer to a struct _o_datum * to store result
+ * @return : 1 on success, 0 on failure
+ *
+ * dat->data must be o_free'd after use
+ * The nul terminator is not included in dat->data.
+ */
+int o_base64url_decode_alloc(const unsigned char * src, size_t len, struct _o_datum * dat) {
+ int ret = 0;
+
+ if (dat != NULL) {
+ dat->size = 0;
+ if ((ret = o_base64url_decode(src, len, NULL, &dat->size)) && dat->size) {
+ if ((dat->data = o_malloc(dat->size+2)) != NULL) {
+ memset(dat->data, 0, dat->size+2);
+ ret = o_base64url_decode(src, len, dat->data, &dat->size);
+ } else {
+ ret = 0;
+ }
+ }
+ }
+ return ret;
+}
+
+/**
+ * o_base64url_2_base64_alloc - Convert a base64 url format to base64 format - allocate data result in a struct _o_datum *
+ * @param src: Data to be decoded
+ * @param len: Length of the data to be decoded
+ * @param dat: Pointer to a struct _o_datum * to store result
+ * @return : 1 on success, 0 on failure
+ *
+ * dat->data must be o_free'd after use
+ * The nul terminator is not included in dat->data.
+ */
+int o_base64url_2_base64_alloc(const unsigned char * src, size_t len, struct _o_datum * dat) {
+ int ret = 0;
+ unsigned char * out = NULL;
+
+ if (dat != NULL) {
+ dat->size = 0;
+ if ((out = o_malloc(len+4)) != NULL) {
+ if ((ret = o_base64url_2_base64(src, len, out, &dat->size)) && dat->size) {
+ if ((dat->data = o_malloc(dat->size)) != NULL) {
+ memcpy(dat->data, out, dat->size);
+ }
+ }
+ }
+ }
+ o_free(out);
+ return ret;
+}
+
+/**
+ * o_base64_2_base64url_alloc - Convert a base64 format to base64 url format - allocate data result in a struct _o_datum *
+ * @param src: Data to be decoded
+ * @param len: Length of the data to be decoded
+ * @param dat: Pointer to a struct _o_datum * to store result
+ * @return : 1 on success, 0 on failure
+ *
+ * dat->data must be o_free'd after use
+ * The nul terminator is not included in dat->data.
+ */
+int o_base64_2_base64url_alloc(const unsigned char * src, size_t len, struct _o_datum * dat) {
+ int ret = 0;
+ unsigned char * out = NULL;
+
+ if (dat != NULL) {
+ dat->size = 0;
+ if ((out = o_malloc(len)) != NULL) {
+ if ((ret = o_base64_2_base64url(src, len, out, &dat->size)) && dat->size) {
+ if ((dat->data = o_malloc(dat->size)) != NULL) {
+ memcpy(dat->data, out, dat->size);
+ }
+ }
+ }
+ }
+ o_free(out);
+ return ret;
+}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/orcania-2.2.2/test/.gitignore new/orcania-2.3.0/test/.gitignore
--- old/orcania-2.2.2/test/.gitignore 1970-01-01 01:00:00.000000000 +0100
+++ new/orcania-2.3.0/test/.gitignore 2022-05-25 16:50:33.000000000 +0200
@@ -0,0 +1,5 @@
+valgrind*.txt
+str_test
+split_test
+memory_test
+pointer_list_test
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/orcania-2.2.2/test/str_test.c new/orcania-2.3.0/test/str_test.c
--- old/orcania-2.2.2/test/str_test.c 2022-03-09 22:23:46.000000000 +0100
+++ new/orcania-2.3.0/test/str_test.c 2022-05-25 16:50:33.000000000 +0200
@@ -82,6 +82,52 @@
ck_assert_int_eq(0, memcmp(b64_expected, out, out_len));
}
+static void run_test_base64_alloc(const unsigned char * src, size_t src_len, const unsigned char * b64_expected, size_t b64_expected_len, const unsigned char * b64url_expected, size_t b64url_expected_len) {
+ struct _o_datum dat = {0, NULL};
+
+ ck_assert_int_eq(o_base64_encode_alloc(src, src_len, &dat), 1);
+ ck_assert_int_eq(b64_expected_len, dat.size);
+ ck_assert_str_eq((const char *)dat.data, (const char *)b64_expected);
+ o_free(dat.data);
+ dat.data = NULL;
+ dat.size = 0;
+
+ ck_assert_int_eq(o_base64_decode_alloc(b64_expected, b64_expected_len, &dat), 1);
+ ck_assert_int_eq(dat.size, src_len);
+ ck_assert_int_eq(0, memcmp(src, dat.data, dat.size));
+ o_free(dat.data);
+ dat.data = NULL;
+ dat.size = 0;
+
+ ck_assert_int_eq(o_base64url_encode_alloc(src, src_len, &dat), 1);
+ ck_assert_int_eq(dat.size, b64url_expected_len);
+ ck_assert_str_eq((const char *)dat.data, (const char *)b64url_expected);
+ o_free(dat.data);
+ dat.data = NULL;
+ dat.size = 0;
+
+ ck_assert_int_eq(o_base64url_decode_alloc(b64url_expected, b64url_expected_len, &dat), 1);
+ ck_assert_int_eq(dat.size, src_len);
+ ck_assert_int_eq(0, memcmp(src, dat.data, dat.size));
+ o_free(dat.data);
+ dat.data = NULL;
+ dat.size = 0;
+
+ ck_assert_int_eq(o_base64_2_base64url_alloc(b64_expected, b64_expected_len, &dat), 1);
+ ck_assert_int_eq(dat.size, b64url_expected_len);
+ ck_assert_int_eq(0, memcmp(b64url_expected, dat.data, dat.size));
+ o_free(dat.data);
+ dat.data = NULL;
+ dat.size = 0;
+
+ ck_assert_int_eq(o_base64url_2_base64_alloc(b64url_expected, b64url_expected_len, &dat), 1);
+ ck_assert_int_eq(dat.size, b64_expected_len);
+ ck_assert_int_eq(0, memcmp(b64_expected, dat.data, dat.size));
+ o_free(dat.data);
+ dat.data = NULL;
+ dat.size = 0;
+}
+
START_TEST(test_str_replace)
{
char * str = "abcdeffedcba", * old_1 = "cd", * new_1 = "gh", * old_2 = "f", * target;
@@ -538,6 +584,128 @@
}
END_TEST
+START_TEST(test_base64_alloc)
+{
+ char * src = "source string", b64_error[] = ";error;";
+ struct _o_datum dat = {0, NULL}, dat_dec = {0, NULL};
+ ck_assert_int_eq(o_base64_encode_alloc((unsigned char *)src, o_strlen(src), &dat), 1);
+ ck_assert_int_eq(20, dat.size);
+ ck_assert_int_eq(0, o_strncmp((const char *)dat.data, "c291cmNlIHN0cmluZw==", dat.size));
+ ck_assert_int_eq(o_base64_decode_alloc(dat.data, dat.size, &dat_dec), 1);
+ ck_assert_int_eq(dat_dec.size, o_strlen(src));
+ ck_assert_int_eq(0, o_strncmp((const char *)dat_dec.data, src, dat_dec.size));
+ ck_assert_int_eq(o_base64_decode_alloc((unsigned char *)b64_error, o_strlen(b64_error), &dat_dec), 0);
+ o_free(dat.data);
+ o_free(dat_dec.data);
+}
+END_TEST
+
+START_TEST(test_base64url_alloc)
+{
+ char * src = "source string", b64_error[] = ";error;";
+ struct _o_datum dat = {0, NULL}, dat_dec = {0, NULL};
+ ck_assert_int_eq(o_base64url_encode_alloc((unsigned char *)src, o_strlen(src), &dat), 1);
+ ck_assert_int_eq(18, dat.size);
+ ck_assert_int_eq(0, o_strncmp((const char *)dat.data, "c291cmNlIHN0cmluZw", dat.size));
+ ck_assert_int_eq(o_base64url_decode_alloc(dat.data, dat.size, &dat_dec), 1);
+ ck_assert_int_eq(dat_dec.size, o_strlen(src));
+ ck_assert_int_eq(0, o_strncmp((const char *)dat_dec.data, src, dat_dec.size));
+ ck_assert_int_eq(o_base64url_decode_alloc((unsigned char *)b64_error, o_strlen(b64_error), &dat_dec), 0);
+ o_free(dat.data);
+ o_free(dat_dec.data);
+}
+END_TEST
+
+START_TEST(test_base64_more_test_cases_alloc)
+{
+ const unsigned char message1[] = "C combines the power and performance of assembly language with the flexibility and ease-of-use of assembly language.",
+ message2[] = "Bryan is in\nthe kitchen",
+ message3[] = {0},
+ message4[] = {0, 0},
+ message5[] = {0, 0, 0},
+ message6[] = {0x32, 0x0, 0x0},
+ message7[] = "��������� ������",
+ message8[] = {0x76, 0x65, 0x72, 0x79, 0x00, 0x20, 0x75, 0x6e, 0x75, 0x73, 0x75, 0x61, 0x6c, 0x9b, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67},
+ message9[] = "\377",
+ message10[] = "\377\377",
+ message11[] = "\377\377\377",
+ message12[] = "\xff\xef";
+ const unsigned char message1_b64[] = "QyBjb21iaW5lcyB0aGUgcG93ZXIgYW5kIHBlcmZvcm1hbmNlIG9mIGFzc2VtYmx5IGxhbmd1YWdlIHdpdGggdGhlIGZsZXhpYmlsaXR5IGFuZCBlYXNlLW9mLXVzZSBvZiBhc3NlbWJseSBsYW5ndWFnZS4=",
+ message2_b64[] = "QnJ5YW4gaXMgaW4KdGhlIGtpdGNoZW4=",
+ message3_b64[] = "AA==",
+ message4_b64[] = "AAA=",
+ message5_b64[] = "AAAA",
+ message6_b64[] = "MgAA",
+ message7_b64[] = "7JWE7L+g7JWEIO2PrOuLiAA=",
+ message8_b64[] = "dmVyeQAgdW51c3VhbJsgc3RyaW5n",
+ message9_b64[] = "/w==",
+ message10_b64[] = "//8=",
+ message11_b64[] = "////",
+ message12_b64[] = "/+8=";
+ const unsigned char message1_b64url[] = "QyBjb21iaW5lcyB0aGUgcG93ZXIgYW5kIHBlcmZvcm1hbmNlIG9mIGFzc2VtYmx5IGxhbmd1YWdlIHdpdGggdGhlIGZsZXhpYmlsaXR5IGFuZCBlYXNlLW9mLXVzZSBvZiBhc3NlbWJseSBsYW5ndWFnZS4",
+ message2_b64url[] = "QnJ5YW4gaXMgaW4KdGhlIGtpdGNoZW4",
+ message3_b64url[] = "AA",
+ message4_b64url[] = "AAA",
+ message5_b64url[] = "AAAA",
+ message6_b64url[] = "MgAA",
+ message7_b64url[] = "7JWE7L-g7JWEIO2PrOuLiAA",
+ message8_b64url[] = "dmVyeQAgdW51c3VhbJsgc3RyaW5n",
+ message9_b64url[] = "_w",
+ message10_b64url[] = "__8",
+ message11_b64url[] = "____",
+ message12_b64url[] = "_-8";
+
+ run_test_base64_alloc(message1, o_strlen((const char *)message1), message1_b64, o_strlen((const char *)message1_b64), message1_b64url, o_strlen((const char *)message1_b64url));
+ run_test_base64_alloc(message2, o_strlen((const char *)message2), message2_b64, o_strlen((const char *)message2_b64), message2_b64url, o_strlen((const char *)message2_b64url));
+ run_test_base64_alloc(message3, sizeof(message3), message3_b64, o_strlen((const char *)message3_b64), message3_b64url, o_strlen((const char *)message3_b64url));
+ run_test_base64_alloc(message4, sizeof(message4), message4_b64, o_strlen((const char *)message4_b64), message4_b64url, o_strlen((const char *)message4_b64url));
+ run_test_base64_alloc(message5, sizeof(message5), message5_b64, o_strlen((const char *)message5_b64), message5_b64url, o_strlen((const char *)message5_b64url));
+ run_test_base64_alloc(message6, sizeof(message6), message6_b64, o_strlen((const char *)message6_b64), message6_b64url, o_strlen((const char *)message6_b64url));
+ run_test_base64_alloc(message7, sizeof(message7), message7_b64, o_strlen((const char *)message7_b64), message7_b64url, o_strlen((const char *)message7_b64url));
+ run_test_base64_alloc(message8, sizeof(message8), message8_b64, o_strlen((const char *)message8_b64), message8_b64url, o_strlen((const char *)message8_b64url));
+ run_test_base64_alloc(message9, o_strlen((const char *)message9), message9_b64, o_strlen((const char *)message9_b64), message9_b64url, o_strlen((const char *)message9_b64url));
+ run_test_base64_alloc(message10, o_strlen((const char *)message10), message10_b64, o_strlen((const char *)message10_b64), message10_b64url, o_strlen((const char *)message10_b64url));
+ run_test_base64_alloc(message11, o_strlen((const char *)message11), message11_b64, o_strlen((const char *)message11_b64), message11_b64url, o_strlen((const char *)message11_b64url));
+ run_test_base64_alloc(message12, o_strlen((const char *)message12), message12_b64, o_strlen((const char *)message12_b64), message12_b64url, o_strlen((const char *)message12_b64url));
+}
+END_TEST
+
+START_TEST(test_base64url_2_base64_alloc)
+{
+ unsigned char src[10] = {0x6f, 0x5b, 0x70, 0x29, 0x27, 0x2d, 0x3d, 0x40, 0x7e, 0x0};
+ struct _o_datum dat = {0, NULL}, dat_url = {0, NULL}, dat_conv = {0, NULL};
+ ck_assert_int_eq(o_base64_encode_alloc(src, 10, &dat), 1);
+ ck_assert_int_gt(dat.size, 0);
+ ck_assert_int_eq(o_base64url_encode_alloc(src, 10, &dat_url), 1);
+ ck_assert_int_gt(dat_url.size, 0);
+ ck_assert_int_ne(0, memcmp((const char *)dat.data, (const char *)dat_url.data, dat.size));
+ ck_assert_int_eq(o_base64url_2_base64_alloc(dat_url.data, dat_url.size, &dat_conv), 1);
+ ck_assert_int_eq(dat.size, dat_conv.size);
+ ck_assert_int_eq(0, memcmp(dat_conv.data, dat.data, dat_conv.size));
+ o_free(dat.data);
+ o_free(dat_url.data);
+ o_free(dat_conv.data);
+}
+END_TEST
+
+START_TEST(test_base64_2_base64url_alloc)
+{
+ unsigned char src[10] = {0x6f, 0x5b, 0x70, 0x29, 0x27, 0x2d, 0x3d, 0x40, 0x7e, 0x0};
+ struct _o_datum dat = {0, NULL}, dat_url = {0, NULL}, dat_conv = {0, NULL};
+ ck_assert_int_eq(o_base64_encode_alloc(src, 10, &dat), 1);
+ ck_assert_int_gt(dat.size, 0);
+ ck_assert_int_eq(o_base64url_encode_alloc(src, 10, &dat_url), 1);
+ ck_assert_int_gt(dat_url.size, 0);
+ ck_assert_int_ne(0, memcmp((const char *)dat.data, (const char *)dat_url.data, dat.size));
+ ck_assert_int_eq(o_base64_2_base64url_alloc(dat.data, dat.size, &dat_conv), 1);
+ ck_assert_int_eq(dat_url.size, dat_conv.size);
+ ck_assert_int_eq(0, memcmp(dat_conv.data, dat_url.data, dat_conv.size));
+ o_free(dat.data);
+ o_free(dat_url.data);
+ o_free(dat_conv.data);
+}
+END_TEST
+
START_TEST(test_str_null_or_empty)
{
char a[1] = {0}, * b = NULL, c[] = "test";
@@ -585,6 +753,11 @@
tcase_add_test(tc_core, test_base64url_2_base64);
tcase_add_test(tc_core, test_base64_2_base64url);
tcase_add_test(tc_core, test_base64_len);
+ tcase_add_test(tc_core, test_base64_alloc);
+ tcase_add_test(tc_core, test_base64url_alloc);
+ tcase_add_test(tc_core, test_base64_more_test_cases_alloc);
+ tcase_add_test(tc_core, test_base64url_2_base64_alloc);
+ tcase_add_test(tc_core, test_base64_2_base64url_alloc);
tcase_add_test(tc_core, test_string_array);
tcase_add_test(tc_core, test_string_array_has_trimmed_value);
tcase_add_test(tc_core, test_str_null_or_empty);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/orcania-2.2.2/tools/base64url/.gitignore new/orcania-2.3.0/tools/base64url/.gitignore
--- old/orcania-2.2.2/tools/base64url/.gitignore 1970-01-01 01:00:00.000000000 +0100
+++ new/orcania-2.3.0/tools/base64url/.gitignore 2022-05-25 16:50:33.000000000 +0200
@@ -0,0 +1,2 @@
+base64url
+valgrind*.txt
1
0
Script 'mail_helper' called by obssrc
Hello community,
here is the log from the commit of package python-bokeh for openSUSE:Factory checked in at 2022-05-30 12:43:57
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/python-bokeh (Old)
and /work/SRC/openSUSE:Factory/.python-bokeh.new.2254 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "python-bokeh"
Mon May 30 12:43:57 2022 rev:35 rq:979712 version:2.4.3
Changes:
--------
--- /work/SRC/openSUSE:Factory/python-bokeh/python-bokeh.changes 2021-12-09 19:46:43.609165533 +0100
+++ /work/SRC/openSUSE:Factory/.python-bokeh.new.2254/python-bokeh.changes 2022-05-30 12:44:51.408462910 +0200
@@ -1,0 +2,41 @@
+Sun May 29 15:02:34 UTC 2022 - Atri Bhattacharya <badshah400(a)gmail.com>
+
+- Update to version 2.4.3:
+ * Bugfixes:
+ - gh#bokeh/bokeh#7390 [component: bokehjs] Tap events respond
+ outside plot area.
+ - gh#bokeh/bokeh#11744 [component: docs] BokehJS example in
+ docs is broken.
+ - gh#bokeh/bokeh#11832 [component: bokehjs] [BUG] Zoom-in
+ failing with the `xzoom_in` tool.
+ - gh#bokeh/bokeh#11965 [component: bokehjs] [BUG] Table
+ formatting causes layout crash/collapse.
+ - gh#bokeh/bokeh#11987 [component: docs] Docs: extra
+ whitespace on non-sidebar pages.
+ - gh#bokeh/bokeh#11995 [component: docs] [Docs] his must be
+ replaced by This.
+ - gh#bokeh/bokeh#12058 [BUG] webgl backend results in dashed
+ lines.
+ - gh#bokeh/bokeh#12070 [component: bokehjs] [BUG]
+ Wedge/AnnularWedge hit testing cuts off top/bottom.
+ - gh#bokeh/bokeh#12096 Missing `f` prefix on f-strings.
+ - gh#bokeh/bokeh#11819 [component: bokehjs] Correctly handle
+ odd-length dash patterns in WebGL.
+ - gh#bokeh/bokeh#11829 [component: bokehjs] Fix webgl line NaN
+ handling.
+ - gh#bokeh/bokeh#12051 [component: docs] Fixed typo:
+ s/server/serve/
+ - gh#bokeh/bokeh#12106 Fix typo in git.py.
+ * Features:
+ - gh#bokeh/bokeh#9182 [component: bokehjs] Add hover tooltip
+ support for Patch, HArea, and VArea.
+ - gh#bokeh/bokeh#10525 [component: bokehjs] [Feature] Support
+ full text search for MultiChoice and auto complete input
+ - gh#bokeh/bokeh#11840 [component: bokehjs] Support multiple
+ marker types in WebGL scatter.
+ - gh#bokeh/bokeh#12034 Add DatetimeRangeSlider.
+ - gh#bokeh/bokeh#12121 Support rescale_discrete_levels in
+ EqHistColorMapper.
+- Refresh conftest.py from github sources.
+
+-------------------------------------------------------------------
Old:
----
bokeh-2.4.2.tar.gz
New:
----
bokeh-2.4.3.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ python-bokeh.spec ++++++
--- /var/tmp/diff_new_pack.RfmEEA/_old 2022-05-30 12:44:52.180463938 +0200
+++ /var/tmp/diff_new_pack.RfmEEA/_new 2022-05-30 12:44:52.184463943 +0200
@@ -1,7 +1,7 @@
#
# spec file for package python-bokeh
#
-# Copyright (c) 2021 SUSE LLC
+# Copyright (c) 2022 SUSE LLC
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@@ -20,13 +20,13 @@
%define skip_python36 1
%bcond_without tests
Name: python-bokeh
-Version: 2.4.2
+Version: 2.4.3
Release: 0
Summary: Statistical interactive HTML plots for Python
License: BSD-3-Clause
URL: https://github.com/bokeh/bokeh/
Source0: https://files.pythonhosted.org/packages/source/b/bokeh/bokeh-%{version}.tar…
-Source1: https://github.com/bokeh/bokeh/raw/%{version}/conftest.py
+Source1: https://raw.githubusercontent.com/bokeh/bokeh/%{version}/conftest.py
BuildRequires: %{python_module Jinja2 >= 2.9}
BuildRequires: %{python_module Pillow >= 7.1.0}
BuildRequires: %{python_module PyYAML >= 3.10}
++++++ bokeh-2.4.2.tar.gz -> bokeh-2.4.3.tar.gz ++++++
/work/SRC/openSUSE:Factory/python-bokeh/bokeh-2.4.2.tar.gz /work/SRC/openSUSE:Factory/.python-bokeh.new.2254/bokeh-2.4.3.tar.gz differ: char 5, line 1
++++++ conftest.py ++++++
--- /var/tmp/diff_new_pack.RfmEEA/_old 2022-05-30 12:44:52.240464018 +0200
+++ /var/tmp/diff_new_pack.RfmEEA/_new 2022-05-30 12:44:52.248464029 +0200
@@ -1,5 +1,5 @@
#-----------------------------------------------------------------------------
-# Copyright (c) 2012 - 2021, Anaconda, Inc., and Bokeh Contributors.
+# Copyright (c) 2012 - 2022, Anaconda, Inc., and Bokeh Contributors.
# All rights reserved.
#
# The full license is in the file LICENSE.txt, distributed with this software.
1
0
Script 'mail_helper' called by obssrc
Hello community,
here is the log from the commit of package python-emcee for openSUSE:Factory checked in at 2022-05-30 12:43:56
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/python-emcee (Old)
and /work/SRC/openSUSE:Factory/.python-emcee.new.2254 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "python-emcee"
Mon May 30 12:43:56 2022 rev:5 rq:979711 version:3.1.2
Changes:
--------
--- /work/SRC/openSUSE:Factory/python-emcee/python-emcee.changes 2021-09-20 23:34:35.183279812 +0200
+++ /work/SRC/openSUSE:Factory/.python-emcee.new.2254/python-emcee.changes 2022-05-30 12:44:50.320461462 +0200
@@ -1,0 +2,7 @@
+Sun May 29 15:29:08 UTC 2022 - Atri Bhattacharya <badshah400(a)gmail.com>
+
+- Update to version 3.1.2:
+ - Make the sample state indexable [gh#dfm/emcee#425].
+ - Remove NumPy from SETUP_REQUIRES [gh#dfm/emcee#427].
+
+-------------------------------------------------------------------
Old:
----
emcee-3.1.1.tar.gz
New:
----
emcee-3.1.2.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ python-emcee.spec ++++++
--- /var/tmp/diff_new_pack.0EgquM/_old 2022-05-30 12:44:50.888462218 +0200
+++ /var/tmp/diff_new_pack.0EgquM/_new 2022-05-30 12:44:50.892462224 +0200
@@ -1,7 +1,7 @@
#
# spec file for package python-emcee
#
-# Copyright (c) 2021 SUSE LLC
+# Copyright (c) 2022 SUSE LLC
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@@ -20,7 +20,7 @@
# NEP 29: python36-numpy and -scipy are no longer available in TW
%define skip_python36 1
Name: python-emcee
-Version: 3.1.1
+Version: 3.1.2
Release: 0
Summary: Python affine-invariant ensemble MCMC sampling
License: MIT
++++++ emcee-3.1.1.tar.gz -> emcee-3.1.2.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/emcee-3.1.1/.github/workflows/tests.yml new/emcee-3.1.2/.github/workflows/tests.yml
--- old/emcee-3.1.1/.github/workflows/tests.yml 2021-08-23 17:16:30.000000000 +0200
+++ new/emcee-3.1.2/.github/workflows/tests.yml 2022-05-10 17:20:45.000000000 +0200
@@ -16,12 +16,12 @@
runs-on: ${{ matrix.os }}
strategy:
matrix:
- python-version: ["3.7", "3.8", "3.9"]
+ python-version: ["3.7", "3.8", "3.9", "3.10"]
os: ["ubuntu-latest"]
include:
- - python-version: "3.8"
+ - python-version: "3.9"
os: "macos-latest"
- - python-version: "3.8"
+ - python-version: "3.9"
os: "windows-latest"
steps:
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/emcee-3.1.1/.gitignore new/emcee-3.1.2/.gitignore
--- old/emcee-3.1.1/.gitignore 2021-08-23 17:16:30.000000000 +0200
+++ new/emcee-3.1.2/.gitignore 2022-05-10 17:20:45.000000000 +0200
@@ -22,3 +22,4 @@
.tox
env
.eggs
+.coverage.*
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/emcee-3.1.1/.pre-commit-config.yaml new/emcee-3.1.2/.pre-commit-config.yaml
--- old/emcee-3.1.1/.pre-commit-config.yaml 2021-08-23 17:16:30.000000000 +0200
+++ new/emcee-3.1.2/.pre-commit-config.yaml 2022-05-10 17:20:45.000000000 +0200
@@ -1,14 +1,14 @@
repos:
- repo: https://github.com/pre-commit/pre-commit-hooks
- rev: v4.0.1
+ rev: v4.2.0
hooks:
- id: trailing-whitespace
- id: end-of-file-fixer
- id: debug-statements
- repo: https://github.com/PyCQA/isort
- rev: "5.9.3"
+ rev: "5.10.1"
hooks:
- id: isort
args: []
@@ -16,11 +16,11 @@
exclude: docs/tutorials
- repo: https://github.com/psf/black
- rev: "21.7b0"
+ rev: "22.3.0"
hooks:
- id: black
- repo: https://github.com/dfm/black_nbconvert
- rev: v0.3.0
+ rev: v0.4.0
hooks:
- id: black_nbconvert
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/emcee-3.1.1/HISTORY.rst new/emcee-3.1.2/HISTORY.rst
--- old/emcee-3.1.1/HISTORY.rst 2021-08-23 17:16:30.000000000 +0200
+++ new/emcee-3.1.2/HISTORY.rst 2022-05-10 17:20:45.000000000 +0200
@@ -1,5 +1,12 @@
.. :changelog:
+3.1.2 (2022-05-10)
+++++++++++++++++++
+
+- Removed ``numpy`` from ``setup_requires`` `#427 <https://github.com/dfm/emcee/pull/427>`_
+- Made the sampler state indexable `#425 <https://github.com/dfm/emcee/pull/425>`_
+
+
3.1.1 (2021-08-23)
++++++++++++++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/emcee-3.1.1/PKG-INFO new/emcee-3.1.2/PKG-INFO
--- old/emcee-3.1.1/PKG-INFO 2021-08-23 17:16:43.005506300 +0200
+++ new/emcee-3.1.2/PKG-INFO 2022-05-10 17:20:57.214236000 +0200
@@ -1,6 +1,6 @@
Metadata-Version: 2.1
Name: emcee
-Version: 3.1.1
+Version: 3.1.2
Summary: The Python ensemble sampling toolkit for MCMC
Home-page: https://emcee.readthedocs.io
Author: Daniel Foreman-Mackey
@@ -8,6 +8,7 @@
Maintainer: Daniel Foreman-Mackey
Maintainer-email: foreman.mackey(a)gmail.com
License: MIT
+Project-URL: Source, https://github.com/dfm/emcee
Platform: UNKNOWN
Classifier: Development Status :: 5 - Production/Stable
Classifier: Intended Audience :: Developers
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/emcee-3.1.1/docs/conf.py new/emcee-3.1.2/docs/conf.py
--- old/emcee-3.1.1/docs/conf.py 2021-08-23 17:16:30.000000000 +0200
+++ new/emcee-3.1.2/docs/conf.py 2022-05-10 17:20:45.000000000 +0200
@@ -48,5 +48,5 @@
"use_repository_button": True,
"use_download_button": True,
}
-jupyter_execute_notebooks = "off"
-execution_timeout = -1
+nb_execution_mode = "off"
+nb_execution_timeout = -1
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/emcee-3.1.1/docs/requirements.txt new/emcee-3.1.2/docs/requirements.txt
--- old/emcee-3.1.1/docs/requirements.txt 2021-08-23 17:16:30.000000000 +0200
+++ new/emcee-3.1.2/docs/requirements.txt 2022-05-10 17:20:45.000000000 +0200
@@ -1,4 +1,4 @@
-sphinx-book-theme @ git+https://github.com/dfm/sphinx-book-theme.git@fix-outdir
+sphinx-book-theme
myst-nb
matplotlib
scipy
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/emcee-3.1.1/docs/tutorials/autocorr.ipynb new/emcee-3.1.2/docs/tutorials/autocorr.ipynb
--- old/emcee-3.1.1/docs/tutorials/autocorr.ipynb 2021-08-23 17:16:30.000000000 +0200
+++ new/emcee-3.1.2/docs/tutorials/autocorr.ipynb 2022-05-10 17:20:45.000000000 +0200
@@ -450,7 +450,7 @@
"\n",
"\n",
"def log_prob(p):\n",
- " return np.logaddexp(-0.5 * np.sum(p ** 2), -0.5 * np.sum((p - 4.0) ** 2))\n",
+ " return np.logaddexp(-0.5 * np.sum(p**2), -0.5 * np.sum((p - 4.0) ** 2))\n",
"\n",
"\n",
"sampler = emcee.EnsembleSampler(32, 3, log_prob)\n",
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/emcee-3.1.1/docs/tutorials/line.ipynb new/emcee-3.1.2/docs/tutorials/line.ipynb
--- old/emcee-3.1.1/docs/tutorials/line.ipynb 2021-08-23 17:16:30.000000000 +0200
+++ new/emcee-3.1.2/docs/tutorials/line.ipynb 2022-05-10 17:20:45.000000000 +0200
@@ -148,9 +148,9 @@
"source": [
"A = np.vander(x, 2)\n",
"C = np.diag(yerr * yerr)\n",
- "ATA = np.dot(A.T, A / (yerr ** 2)[:, None])\n",
+ "ATA = np.dot(A.T, A / (yerr**2)[:, None])\n",
"cov = np.linalg.inv(ATA)\n",
- "w = np.linalg.solve(ATA, np.dot(A.T, y / yerr ** 2))\n",
+ "w = np.linalg.solve(ATA, np.dot(A.T, y / yerr**2))\n",
"print(\"Least-squares estimates:\")\n",
"print(\"m = {0:.3f} �� {1:.3f}\".format(w[0], np.sqrt(cov[0, 0])))\n",
"print(\"b = {0:.3f} �� {1:.3f}\".format(w[1], np.sqrt(cov[1, 1])))\n",
@@ -218,7 +218,7 @@
"def log_likelihood(theta, x, y, yerr):\n",
" m, b, log_f = theta\n",
" model = m * x + b\n",
- " sigma2 = yerr ** 2 + model ** 2 * np.exp(2 * log_f)\n",
+ " sigma2 = yerr**2 + model**2 * np.exp(2 * log_f)\n",
" return -0.5 * np.sum((y - model) ** 2 / sigma2 + np.log(sigma2))"
]
},
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/emcee-3.1.1/docs/tutorials/monitor.ipynb new/emcee-3.1.2/docs/tutorials/monitor.ipynb
--- old/emcee-3.1.1/docs/tutorials/monitor.ipynb 2021-08-23 17:16:30.000000000 +0200
+++ new/emcee-3.1.2/docs/tutorials/monitor.ipynb 2022-05-10 17:20:45.000000000 +0200
@@ -58,7 +58,7 @@
"# We'll also use the \"blobs\" feature to track the \"log prior\" for each step\n",
"def log_prob(theta):\n",
" log_prior = -0.5 * np.sum((theta - 1.0) ** 2 / 100.0)\n",
- " log_prob = -0.5 * np.sum(theta ** 2) + log_prior\n",
+ " log_prob = -0.5 * np.sum(theta**2) + log_prior\n",
" return log_prob, log_prior\n",
"\n",
"\n",
@@ -341,7 +341,7 @@
"# this time, with a subtly different prior\n",
"def log_prob2(theta):\n",
" log_prior = -0.5 * np.sum((theta - 2.0) ** 2 / 100.0)\n",
- " log_prob = -0.5 * np.sum(theta ** 2) + log_prior\n",
+ " log_prob = -0.5 * np.sum(theta**2) + log_prior\n",
" return log_prob, log_prior\n",
"\n",
"\n",
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/emcee-3.1.1/docs/tutorials/parallel.ipynb new/emcee-3.1.2/docs/tutorials/parallel.ipynb
--- old/emcee-3.1.1/docs/tutorials/parallel.ipynb 2021-08-23 17:16:30.000000000 +0200
+++ new/emcee-3.1.2/docs/tutorials/parallel.ipynb 2022-05-10 17:20:45.000000000 +0200
@@ -85,7 +85,7 @@
" while True:\n",
" if time.time() >= t:\n",
" break\n",
- " return -0.5 * np.sum(theta ** 2)"
+ " return -0.5 * np.sum(theta**2)"
]
},
{
@@ -348,7 +348,7 @@
" while True:\n",
" if time.time() >= t:\n",
" break\n",
- " return -0.5 * np.sum(theta ** 2)\n",
+ " return -0.5 * np.sum(theta**2)\n",
"\n",
"\n",
"data = np.random.randn(5000, 200)\n",
@@ -459,7 +459,7 @@
" while True:\n",
" if time.time() >= t:\n",
" break\n",
- " return -0.5 * np.sum(theta ** 2)\n",
+ " return -0.5 * np.sum(theta**2)\n",
"\n",
"\n",
"with Pool() as pool:\n",
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/emcee-3.1.1/docs/tutorials/quickstart.ipynb new/emcee-3.1.2/docs/tutorials/quickstart.ipynb
--- old/emcee-3.1.1/docs/tutorials/quickstart.ipynb 2021-08-23 17:16:30.000000000 +0200
+++ new/emcee-3.1.2/docs/tutorials/quickstart.ipynb 2022-05-10 17:20:45.000000000 +0200
@@ -101,7 +101,7 @@
"np.random.seed(42)\n",
"means = np.random.rand(ndim)\n",
"\n",
- "cov = 0.5 - np.random.rand(ndim ** 2).reshape((ndim, ndim))\n",
+ "cov = 0.5 - np.random.rand(ndim**2).reshape((ndim, ndim))\n",
"cov = np.triu(cov)\n",
"cov += cov.T - np.diag(cov.diagonal())\n",
"cov = np.dot(cov, cov)"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/emcee-3.1.1/pyproject.toml new/emcee-3.1.2/pyproject.toml
--- old/emcee-3.1.1/pyproject.toml 2021-08-23 17:16:30.000000000 +0200
+++ new/emcee-3.1.2/pyproject.toml 2022-05-10 17:20:45.000000000 +0200
@@ -4,7 +4,6 @@
[tool.black]
line-length = 79
-target-version = ['py35']
exclude = '''
/(
\.eggs
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/emcee-3.1.1/setup.py new/emcee-3.1.2/setup.py
--- old/emcee-3.1.1/setup.py 2021-08-23 17:16:30.000000000 +0200
+++ new/emcee-3.1.2/setup.py 2022-05-10 17:20:45.000000000 +0200
@@ -23,7 +23,7 @@
"Programming Language :: Python",
]
INSTALL_REQUIRES = ["numpy"]
-SETUP_REQUIRES = INSTALL_REQUIRES + [
+SETUP_REQUIRES = [
"setuptools>=40.6.0",
"setuptools_scm",
"wheel",
@@ -67,6 +67,9 @@
maintainer=find_meta("author"),
maintainer_email=find_meta("email"),
url=find_meta("uri"),
+ project_urls={
+ "Source": "https://github.com/dfm/emcee",
+ },
license=find_meta("license"),
description=find_meta("description"),
long_description=read("README.rst"),
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/emcee-3.1.1/src/emcee/emcee_version.py new/emcee-3.1.2/src/emcee/emcee_version.py
--- old/emcee-3.1.1/src/emcee/emcee_version.py 2021-08-23 17:16:42.000000000 +0200
+++ new/emcee-3.1.2/src/emcee/emcee_version.py 2022-05-10 17:20:55.000000000 +0200
@@ -1 +1 @@
-__version__ = "3.1.1"
+__version__ = "3.1.2"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/emcee-3.1.1/src/emcee/ensemble.py new/emcee-3.1.2/src/emcee/ensemble.py
--- old/emcee-3.1.1/src/emcee/ensemble.py 2021-08-23 17:16:30.000000000 +0200
+++ new/emcee-3.1.2/src/emcee/ensemble.py 2022-05-10 17:20:45.000000000 +0200
@@ -642,7 +642,7 @@
if np.any(C_colmax == 0):
return False
C /= C_colmax
- C_colsum = np.sqrt(np.sum(C ** 2, axis=0))
+ C_colsum = np.sqrt(np.sum(C**2, axis=0))
C /= C_colsum
return np.linalg.cond(C.astype(float)) <= 1e8
@@ -655,11 +655,11 @@
def _scaled_cond(a):
- asum = np.sqrt((a ** 2).sum(axis=0))[None, :]
+ asum = np.sqrt((a**2).sum(axis=0))[None, :]
if np.any(asum == 0):
return np.inf
b = a / asum
- bsum = np.sqrt((b ** 2).sum(axis=1))[:, None]
+ bsum = np.sqrt((b**2).sum(axis=1))[:, None]
if np.any(bsum == 0):
return np.inf
c = b / bsum
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/emcee-3.1.1/src/emcee/state.py new/emcee-3.1.2/src/emcee/state.py
--- old/emcee-3.1.1/src/emcee/state.py 2021-08-23 17:16:30.000000000 +0200
+++ new/emcee-3.1.2/src/emcee/state.py 2022-05-10 17:20:45.000000000 +0200
@@ -44,6 +44,11 @@
self.blobs = dc(blobs)
self.random_state = dc(random_state)
+ def __len__(self):
+ if self.blobs is None:
+ return 3
+ return 4
+
def __repr__(self):
return "State({0}, log_prob={1}, blobs={2}, random_state={3})".format(
self.coords, self.log_prob, self.blobs, self.random_state
@@ -55,3 +60,16 @@
return iter(
(self.coords, self.log_prob, self.random_state, self.blobs)
)
+
+ def __getitem__(self, index):
+ if index < 0:
+ return self[len(self) + index]
+ if index == 0:
+ return self.coords
+ elif index == 1:
+ return self.log_prob
+ elif index == 2:
+ return self.random_state
+ elif index == 3 and self.blobs is not None:
+ return self.blobs
+ raise IndexError("Invalid index '{0}'".format(index))
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/emcee-3.1.1/src/emcee/tests/integration/test_longdouble.py new/emcee-3.1.2/src/emcee/tests/integration/test_longdouble.py
--- old/emcee-3.1.1/src/emcee/tests/integration/test_longdouble.py 2021-08-23 17:16:30.000000000 +0200
+++ new/emcee-3.1.2/src/emcee/tests/integration/test_longdouble.py 2022-05-10 17:20:45.000000000 +0200
@@ -7,7 +7,7 @@
def test_longdouble_doesnt_crash_bug_312():
def log_prob(x, ivar):
- return -0.5 * np.sum(ivar * x ** 2)
+ return -0.5 * np.sum(ivar * x**2)
ndim, nwalkers = 5, 20
ivar = 1.0 / np.random.rand(ndim).astype(np.longdouble)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/emcee-3.1.1/src/emcee/tests/integration/test_proposal.py new/emcee-3.1.2/src/emcee/tests/integration/test_proposal.py
--- old/emcee-3.1.1/src/emcee/tests/integration/test_proposal.py 2021-08-23 17:16:30.000000000 +0200
+++ new/emcee-3.1.2/src/emcee/tests/integration/test_proposal.py 2022-05-10 17:20:45.000000000 +0200
@@ -15,11 +15,11 @@
def normal_log_prob_blobs(params):
- return -0.5 * np.sum(params ** 2), params
+ return -0.5 * np.sum(params**2), params
def normal_log_prob(params):
- return -0.5 * np.sum(params ** 2)
+ return -0.5 * np.sum(params**2)
def uniform_log_prob(params):
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/emcee-3.1.1/src/emcee/tests/unit/test_backends.py new/emcee-3.1.2/src/emcee/tests/unit/test_backends.py
--- old/emcee-3.1.1/src/emcee/tests/unit/test_backends.py 2021-08-23 17:16:30.000000000 +0200
+++ new/emcee-3.1.2/src/emcee/tests/unit/test_backends.py 2022-05-10 17:20:45.000000000 +0200
@@ -23,7 +23,7 @@
def normal_log_prob(params):
- return -0.5 * np.sum(params ** 2)
+ return -0.5 * np.sum(params**2)
def normal_log_prob_blobs(params):
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/emcee-3.1.1/src/emcee/tests/unit/test_blobs.py new/emcee-3.1.2/src/emcee/tests/unit/test_blobs.py
--- old/emcee-3.1.1/src/emcee/tests/unit/test_blobs.py 2021-08-23 17:16:30.000000000 +0200
+++ new/emcee-3.1.2/src/emcee/tests/unit/test_blobs.py 2022-05-10 17:20:45.000000000 +0200
@@ -15,7 +15,7 @@
self.blob_function = blob_function
def __call__(self, params):
- return -0.5 * np.sum(params ** 2), self.blob_function(params)
+ return -0.5 * np.sum(params**2), self.blob_function(params)
@pytest.mark.parametrize("backend", backends.get_test_backends())
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/emcee-3.1.1/src/emcee/tests/unit/test_sampler.py new/emcee-3.1.2/src/emcee/tests/unit/test_sampler.py
--- old/emcee-3.1.1/src/emcee/tests/unit/test_sampler.py 2021-08-23 17:16:30.000000000 +0200
+++ new/emcee-3.1.2/src/emcee/tests/unit/test_sampler.py 2022-05-10 17:20:45.000000000 +0200
@@ -14,7 +14,7 @@
def normal_log_prob(params):
- return -0.5 * np.sum(params ** 2)
+ return -0.5 * np.sum(params**2)
@pytest.mark.parametrize(
@@ -211,7 +211,7 @@
def test_vectorize():
def lp_vec(p):
- return -0.5 * np.sum(p ** 2, axis=1)
+ return -0.5 * np.sum(p**2, axis=1)
np.random.seed(42)
nwalkers, ndim = 32, 3
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/emcee-3.1.1/src/emcee/tests/unit/test_state.py new/emcee-3.1.2/src/emcee/tests/unit/test_state.py
--- old/emcee-3.1.1/src/emcee/tests/unit/test_state.py 2021-08-23 17:16:30.000000000 +0200
+++ new/emcee-3.1.2/src/emcee/tests/unit/test_state.py 2022-05-10 17:20:45.000000000 +0200
@@ -1,11 +1,16 @@
# -*- coding: utf-8 -*-
import numpy as np
+import pytest
from emcee import EnsembleSampler
from emcee.state import State
+def check_rstate(a, b):
+ assert all(np.allclose(a_, b_) for a_, b_ in zip(a[1:], b[1:]))
+
+
def test_back_compat(seed=1234):
np.random.seed(seed)
coords = np.random.randn(16, 3)
@@ -18,20 +23,20 @@
assert np.allclose(coords, c)
assert np.allclose(log_prob, l)
assert np.allclose(blobs, b)
- assert all(np.allclose(a, b) for a, b in zip(rstate[1:], r[1:]))
+ check_rstate(rstate, r)
state = State(coords, log_prob, None, rstate)
c, l, r = state
assert np.allclose(coords, c)
assert np.allclose(log_prob, l)
- assert all(np.allclose(a, b) for a, b in zip(rstate[1:], r[1:]))
+ check_rstate(rstate, r)
def test_overwrite(seed=1234):
np.random.seed(seed)
def ll(x):
- return -0.5 * np.sum(x ** 2)
+ return -0.5 * np.sum(x**2)
nwalkers = 64
p0 = np.random.normal(size=(nwalkers, 1))
@@ -40,3 +45,28 @@
sampler = EnsembleSampler(nwalkers, 1, ll)
sampler.run_mcmc(p0, 10)
assert np.allclose(init, p0)
+
+
+def test_indexing(seed=1234):
+ np.random.seed(seed)
+ coords = np.random.randn(16, 3)
+ log_prob = np.random.randn(len(coords))
+ blobs = np.random.randn(len(coords))
+ rstate = np.random.get_state()
+
+ state = State(coords, log_prob, blobs, rstate)
+ np.testing.assert_allclose(state[0], state.coords)
+ np.testing.assert_allclose(state[1], state.log_prob)
+ check_rstate(state[2], state.random_state)
+ np.testing.assert_allclose(state[3], state.blobs)
+ np.testing.assert_allclose(state[-1], state.blobs)
+ with pytest.raises(IndexError):
+ state[4]
+
+ state = State(coords, log_prob, random_state=rstate)
+ np.testing.assert_allclose(state[0], state.coords)
+ np.testing.assert_allclose(state[1], state.log_prob)
+ check_rstate(state[2], state.random_state)
+ check_rstate(state[-1], state.random_state)
+ with pytest.raises(IndexError):
+ state[3]
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/emcee-3.1.1/src/emcee.egg-info/PKG-INFO new/emcee-3.1.2/src/emcee.egg-info/PKG-INFO
--- old/emcee-3.1.1/src/emcee.egg-info/PKG-INFO 2021-08-23 17:16:42.000000000 +0200
+++ new/emcee-3.1.2/src/emcee.egg-info/PKG-INFO 2022-05-10 17:20:56.000000000 +0200
@@ -1,6 +1,6 @@
Metadata-Version: 2.1
Name: emcee
-Version: 3.1.1
+Version: 3.1.2
Summary: The Python ensemble sampling toolkit for MCMC
Home-page: https://emcee.readthedocs.io
Author: Daniel Foreman-Mackey
@@ -8,6 +8,7 @@
Maintainer: Daniel Foreman-Mackey
Maintainer-email: foreman.mackey(a)gmail.com
License: MIT
+Project-URL: Source, https://github.com/dfm/emcee
Platform: UNKNOWN
Classifier: Development Status :: 5 - Production/Stable
Classifier: Intended Audience :: Developers
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/emcee-3.1.1/tox.ini new/emcee-3.1.2/tox.ini
--- old/emcee-3.1.1/tox.ini 2021-08-23 17:16:30.000000000 +0200
+++ new/emcee-3.1.2/tox.ini 2022-05-10 17:20:45.000000000 +0200
@@ -1,11 +1,12 @@
[tox]
-envlist = py{37,38,39}{,-extras},lint
+envlist = py{37,38,39,310}{,-extras},lint
[gh-actions]
python =
3.7: py37
3.8: py38
3.9: py39-extras
+ 3.10: py310
[testenv]
deps = coverage[toml]
1
0
Script 'mail_helper' called by obssrc
Hello community,
here is the log from the commit of package python-nbxmpp for openSUSE:Factory checked in at 2022-05-30 12:43:55
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/python-nbxmpp (Old)
and /work/SRC/openSUSE:Factory/.python-nbxmpp.new.2254 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "python-nbxmpp"
Mon May 30 12:43:55 2022 rev:30 rq:979723 version:3.1.0
Changes:
--------
--- /work/SRC/openSUSE:Factory/python-nbxmpp/python-nbxmpp.changes 2022-05-21 19:07:20.371399280 +0200
+++ /work/SRC/openSUSE:Factory/.python-nbxmpp.new.2254/python-nbxmpp.changes 2022-05-30 12:44:49.444460296 +0200
@@ -1,0 +2,7 @@
+Sat May 28 20:17:01 UTC 2022 - Alexei Sorokin <sor.alexei(a)meowr.ru>
+
+- Update to version 3.1.0:
+ * Client: Disconnect after stream restart in Login mode.
+ * Examples: Allow to connect with different modes.
+
+-------------------------------------------------------------------
Old:
----
python-nbxmpp-nbxmpp-3.0.2.tar.bz2
New:
----
python-nbxmpp-3.1.0.tar.bz2
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ python-nbxmpp.spec ++++++
--- /var/tmp/diff_new_pack.FGVeUB/_old 2022-05-30 12:44:49.984461015 +0200
+++ /var/tmp/diff_new_pack.FGVeUB/_new 2022-05-30 12:44:49.988461021 +0200
@@ -21,13 +21,13 @@
%define skip_python38 1
%define _name nbxmpp
Name: python-nbxmpp
-Version: 3.0.2
+Version: 3.1.0
Release: 0
Summary: XMPP library by Gajim team
License: GPL-3.0-or-later
Group: Development/Languages/Python
URL: https://dev.gajim.org/gajim/python-nbxmpp
-Source: %{url}/-/archive/nbxmpp-%{version}/python-nbxmpp-nbxmpp-%{version}.tar.bz2
+Source: %{url}/-/archive/%{version}/python-nbxmpp-%{version}.tar.bz2
BuildRequires: %{python_module setuptools}
BuildRequires: fdupes
BuildRequires: python-rpm-generators >= 20200714
@@ -57,7 +57,7 @@
This packages provides documentation of Nbxmpp API.
%prep
-%setup -q -n python-nbxmpp-nbxmpp-%{version}
+%setup -q
%build
%python_build
++++++ python-nbxmpp-nbxmpp-3.0.2.tar.bz2 -> python-nbxmpp-3.1.0.tar.bz2 ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python-nbxmpp-nbxmpp-3.0.2/.chglog/config.yml new/python-nbxmpp-3.1.0/.chglog/config.yml
--- old/python-nbxmpp-nbxmpp-3.0.2/.chglog/config.yml 2022-05-18 20:11:37.000000000 +0200
+++ new/python-nbxmpp-3.1.0/.chglog/config.yml 2022-05-28 11:27:58.000000000 +0200
@@ -8,17 +8,20 @@
filters:
Type:
- feat
+ - imprv
- perf
- fix
commit_groups:
sort_by: Custom
title_order:
- feat
+ - imprv
- perf
- fix
title_maps:
feat: New
- perf: Performance Improvements
+ imprv: Improvements
+ perf: Performance
fix: Bug Fixes
header:
pattern: "^(\\w*)\\:\\s(.*)$"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python-nbxmpp-nbxmpp-3.0.2/.ci/debian_build.py new/python-nbxmpp-3.1.0/.ci/debian_build.py
--- old/python-nbxmpp-nbxmpp-3.0.2/.ci/debian_build.py 1970-01-01 01:00:00.000000000 +0100
+++ new/python-nbxmpp-3.1.0/.ci/debian_build.py 2022-05-28 11:27:58.000000000 +0200
@@ -0,0 +1,105 @@
+#!/usr/bin/env python3
+
+from __future__ import annotations
+
+import argparse
+import dataclasses
+import logging
+import shutil
+import subprocess
+from datetime import datetime
+from datetime import timezone
+from pathlib import Path
+
+LOG_FORMAT = '%(asctime)s %(levelname)s %(message)s'
+logging.basicConfig(format=LOG_FORMAT, level=logging.DEBUG)
+log = logging.getLogger()
+
+ROOT_DIR = Path(__file__).resolve().parent.parent
+BUILD_DIR = ROOT_DIR / 'debian_build'
+
+DATE = datetime.now().strftime('%Y%m%d')
+DATE_TIME = datetime.now(tz=timezone.utc).strftime('%a, %d %b %Y %T %z')
+
+
+(a)dataclasses.dataclass
+class ReleaseContext:
+ app: str
+ pkg_name: str
+ rev: str
+ release_name: str
+ release_dir: Path
+ tarball: Path
+
+ @classmethod
+ def from_tarball(cls, path: str, prefix: str, rev: str) -> ReleaseContext:
+ tarball = Path(path)
+ app = tarball.name.split('-', maxsplit=1)[0]
+ pkg_name = f'{prefix}{app}-nightly'
+ release_name = f'{pkg_name}_{DATE}'
+ release_dir = BUILD_DIR / release_name
+ return cls(app=app,
+ pkg_name=pkg_name,
+ rev=rev,
+ release_name=release_name,
+ release_dir=release_dir,
+ tarball=tarball)
+
+
+def clean_build_dir() -> None:
+ log.info('Cleanup build directory')
+ if BUILD_DIR.exists():
+ shutil.rmtree(BUILD_DIR)
+ BUILD_DIR.mkdir()
+
+
+def prepare_package_dir(context: ReleaseContext) -> None:
+ log.info('Extract tarball')
+ tarball = Path(shutil.copy(context.tarball, BUILD_DIR))
+ tarball = tarball.rename(BUILD_DIR / f'{context.release_name}.orig.tar.gz')
+ shutil.unpack_archive(tarball, BUILD_DIR)
+
+ log.info('Rename dir to: %s', context.release_name)
+ folder = list(BUILD_DIR.glob(f'{context.app}-?.?.?'))[0]
+ folder = folder.rename(context.release_dir)
+
+ log.info('Copy debian folder into release directory')
+ shutil.copytree(ROOT_DIR / 'debian', context.release_dir / 'debian')
+
+
+def prepare_changelog(context: ReleaseContext) -> None:
+ log.info('Prepare Changelog')
+ changelog = context.release_dir / 'debian' / 'changelog'
+ content = changelog.read_text()
+ content = content.replace('{DATE}', f'{DATE}-{context.rev}')
+ content = content.replace('{DATE_TIME}', DATE_TIME)
+ changelog.write_text(content)
+
+
+def build(context: ReleaseContext) -> None:
+ log.info('Start package build')
+ subprocess.run(
+ [
+ 'dpkg-buildpackage',
+ '--no-sign'
+ ],
+ cwd=context.release_dir,
+ check=True)
+
+
+if __name__ == '__main__':
+ parser = argparse.ArgumentParser(description='Build debian package')
+ parser.add_argument('tarball', help='Path to tarball e.g. app.tar.gz')
+ parser.add_argument('rev', help='The package revision e.g. 1')
+ parser.add_argument('--pkgprefix', default='', required=False,
+ help='Prefix for the package name e.g. python3-')
+ args = parser.parse_args()
+
+ context = ReleaseContext.from_tarball(args.tarball,
+ args.pkgprefix,
+ args.rev)
+
+ clean_build_dir()
+ prepare_package_dir(context)
+ prepare_changelog(context)
+ build(context)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python-nbxmpp-nbxmpp-3.0.2/.gitignore new/python-nbxmpp-3.1.0/.gitignore
--- old/python-nbxmpp-nbxmpp-3.0.2/.gitignore 2022-05-18 20:11:37.000000000 +0200
+++ new/python-nbxmpp-3.1.0/.gitignore 2022-05-28 11:27:58.000000000 +0200
@@ -2,6 +2,7 @@
__pycache__/
.mypy_cache/
nbxmpp.egg-info
+debian_build/
dist
.idea
*~
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python-nbxmpp-nbxmpp-3.0.2/.gitlab-ci.yml new/python-nbxmpp-3.1.0/.gitlab-ci.yml
--- old/python-nbxmpp-nbxmpp-3.0.2/.gitlab-ci.yml 2022-05-18 20:11:37.000000000 +0200
+++ new/python-nbxmpp-3.1.0/.gitlab-ci.yml 2022-05-28 11:27:58.000000000 +0200
@@ -1,11 +1,12 @@
-image: ci-gajim:master
+image: nbxmpp-master:latest
stages:
- test
- build
- deploy
-run-test:
+test-pylint:
+
stage: test
script:
- python3 .ci/pylint-test.py
@@ -18,10 +19,12 @@
reports:
cobertura: coverage.xml
-run-build:
+build-linux:
+ image: nbxmpp-deb-build:latest
stage: build
script:
- python3 setup.py sdist
+ - python3 .ci/debian_build.py "$(find dist/nbxmpp-*)" 1 --pkgprefix=python3-
artifacts:
name: "nbxmpp-$CI_COMMIT_SHA"
@@ -33,6 +36,5 @@
stage: deploy
rules:
- if: '$CI_COMMIT_TAG'
- when: manual
script:
- python3 .ci/deploy.py
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python-nbxmpp-nbxmpp-3.0.2/ChangeLog new/python-nbxmpp-3.1.0/ChangeLog
--- old/python-nbxmpp-nbxmpp-3.0.2/ChangeLog 2022-05-18 20:11:37.000000000 +0200
+++ new/python-nbxmpp-3.1.0/ChangeLog 2022-05-28 11:27:58.000000000 +0200
@@ -1,3 +1,13 @@
+python-nbxmpp 3.1.0 (28 May 2022)
+
+ New
+
+ * Examples: Allow to connect with different modes
+
+ Bug Fixes
+
+ * Client: Disconnect after stream restart in Login mode
+
python-nbxmpp 3.0.2 (18 May 2022)
Bug Fixes
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python-nbxmpp-nbxmpp-3.0.2/MANIFEST.in new/python-nbxmpp-3.1.0/MANIFEST.in
--- old/python-nbxmpp-nbxmpp-3.0.2/MANIFEST.in 2022-05-18 20:11:37.000000000 +0200
+++ new/python-nbxmpp-3.1.0/MANIFEST.in 2022-05-28 11:27:58.000000000 +0200
@@ -1,3 +1,3 @@
include ChangeLog COPYING README
-recursive-include doc *
recursive-include nbxmpp *.py
+recursive-include test *.py
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python-nbxmpp-nbxmpp-3.0.2/debian/changelog new/python-nbxmpp-3.1.0/debian/changelog
--- old/python-nbxmpp-nbxmpp-3.0.2/debian/changelog 1970-01-01 01:00:00.000000000 +0100
+++ new/python-nbxmpp-3.1.0/debian/changelog 2022-05-28 11:27:58.000000000 +0200
@@ -0,0 +1,5 @@
+python3-nbxmpp-nightly ({DATE}) unstable; urgency=low
+
+ * https://dev.gajim.org/gajim/python-nbxmpp/-/commits/master
+
+ -- nbxmpp CI <ci(a)gajim.org> {DATE_TIME}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python-nbxmpp-nbxmpp-3.0.2/debian/control new/python-nbxmpp-3.1.0/debian/control
--- old/python-nbxmpp-nbxmpp-3.0.2/debian/control 1970-01-01 01:00:00.000000000 +0100
+++ new/python-nbxmpp-3.1.0/debian/control 2022-05-28 11:27:58.000000000 +0200
@@ -0,0 +1,31 @@
+Source: python3-nbxmpp-nightly
+Section: python
+Priority: optional
+Maintainer: Gajim Maintainers <ci(a)gajim.org>
+Build-Depends: debhelper-compat (= 13),
+ dh-python,
+ libglib2.0-0 (>= 2.60),
+ gir1.2-soup-2.4,
+ python3-all,
+ python3-gi,
+ python3-gssapi,
+ python3-idna,
+ python3-precis-i18n,
+ python3-setuptools,
+Standards-Version: 4.1.4
+Rules-Requires-Root: no
+Homepage: https://dev.gajim.org/gajim/python-nbxmpp
+Vcs-Git: https://dev.gajim.org/gajim/python-nbxmpp.git
+Vcs-Browser: https://dev.gajim.org/gajim/python-nbxmpp/tree/master
+
+Package: python3-nbxmpp-nightly
+Architecture: all
+Depends: ${misc:Depends},
+ ${python3:Depends},
+ gir1.2-soup-2.4,
+ python3-gi
+Recommends: python3-gssapi,
+Breaks: gajim (<< 1.4~)
+Description: Non blocking XMPP Python library
+ nbxmpp is a Python library that provides a way for Python applications
+ to use the XMPP network. This library was initially a fork of xmpppy.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python-nbxmpp-nbxmpp-3.0.2/debian/copyright new/python-nbxmpp-3.1.0/debian/copyright
--- old/python-nbxmpp-nbxmpp-3.0.2/debian/copyright 1970-01-01 01:00:00.000000000 +0100
+++ new/python-nbxmpp-3.1.0/debian/copyright 2022-05-28 11:27:58.000000000 +0200
@@ -0,0 +1,18 @@
+Upstream Authors:
+ - Yann Leboulanger <asterix(a)lagaule.org>
+ - Philipp H��rist <philipp(a)hoerist.com>
+
+Copyright: (c) 2022 Gajim Team
+
+This program is free software: you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation, either version 3 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program. If not, see <http://www.gnu.org/licenses/>.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python-nbxmpp-nbxmpp-3.0.2/debian/rules new/python-nbxmpp-3.1.0/debian/rules
--- old/python-nbxmpp-nbxmpp-3.0.2/debian/rules 1970-01-01 01:00:00.000000000 +0100
+++ new/python-nbxmpp-3.1.0/debian/rules 2022-05-28 11:27:58.000000000 +0200
@@ -0,0 +1,9 @@
+#!/usr/bin/make -f
+
+DPKG_EXPORT_BUILDFLAGS = 1
+include /usr/share/dpkg/default.mk
+
+export PYBUILD_NAME=nbxmpp
+
+%:
+ dh $@ --with python3 --buildsystem=pybuild
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python-nbxmpp-nbxmpp-3.0.2/debian/source/format new/python-nbxmpp-3.1.0/debian/source/format
--- old/python-nbxmpp-nbxmpp-3.0.2/debian/source/format 1970-01-01 01:00:00.000000000 +0100
+++ new/python-nbxmpp-3.1.0/debian/source/format 2022-05-28 11:27:58.000000000 +0200
@@ -0,0 +1 @@
+3.0 (quilt)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python-nbxmpp-nbxmpp-3.0.2/nbxmpp/__init__.py new/python-nbxmpp-3.1.0/nbxmpp/__init__.py
--- old/python-nbxmpp-nbxmpp-3.0.2/nbxmpp/__init__.py 2022-05-18 20:11:37.000000000 +0200
+++ new/python-nbxmpp-3.1.0/nbxmpp/__init__.py 2022-05-28 11:27:58.000000000 +0200
@@ -4,4 +4,4 @@
gi.require_version('Soup', '2.4')
-__version__: str = '3.0.2'
+__version__: str = '3.1.0'
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python-nbxmpp-nbxmpp-3.0.2/nbxmpp/client.py new/python-nbxmpp-3.1.0/nbxmpp/client.py
--- old/python-nbxmpp-nbxmpp-3.0.2/nbxmpp/client.py 2022-05-18 20:11:37.000000000 +0200
+++ new/python-nbxmpp-3.1.0/nbxmpp/client.py 2022-05-28 11:27:58.000000000 +0200
@@ -645,6 +645,11 @@
# other connection methods if an error happensafterwards
self._connect_successful = True
+ if self._stream_authenticated and self._mode.is_login_test:
+ self.notify('login-successful')
+ self.disconnect()
+ return
+
self.state = StreamState.WAIT_FOR_FEATURES
elif self.state == StreamState.WAIT_FOR_FEATURES:
@@ -687,14 +692,6 @@
elif self.state == StreamState.AUTH_SUCCESSFUL:
self._stream_authenticated = True
- if self._mode.is_login_test:
- self.notify('login-successful')
- # Reset parser because we will receive a new stream header
- # which will otherwise lead to a parsing error
- self._dispatcher.reset_parser()
- self.disconnect()
- return
-
self._start_stream()
elif self.state == StreamState.AUTH_FAILED:
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python-nbxmpp-nbxmpp-3.0.2/nbxmpp/examples/client.py new/python-nbxmpp-3.1.0/nbxmpp/examples/client.py
--- old/python-nbxmpp-nbxmpp-3.0.2/nbxmpp/examples/client.py 2022-05-18 20:11:37.000000000 +0200
+++ new/python-nbxmpp-3.1.0/nbxmpp/examples/client.py 2022-05-28 11:27:58.000000000 +0200
@@ -16,10 +16,10 @@
from nbxmpp.client import Client
from nbxmpp.structs import ProxyData
from nbxmpp.structs import StanzaHandler
-from nbxmpp.addresses import ServerAddress
from nbxmpp.const import ConnectionType
from nbxmpp.const import ConnectionProtocol
from nbxmpp.const import StreamError
+from nbxmpp.const import Mode
consoleloghandler = logging.StreamHandler()
log = logging.getLogger('nbxmpp')
@@ -94,6 +94,17 @@
self._builder.proxy_password.get_text() or None)
self._client.set_proxy(proxy)
+ if self._builder.login_mode.get_active():
+ self._client.set_mode(Mode.LOGIN_TEST)
+ elif self._builder.client_mode.get_active():
+ self._client.set_mode(Mode.CLIENT)
+ elif self._builder.register_mode.get_active():
+ self._client.set_mode(Mode.REGISTER)
+ elif self._builder.anon_mode.get_active():
+ self._client.set_mode(Mode.ANONYMOUS_TEST)
+ else:
+ raise ValueError('No mode selected')
+
self._client.set_connection_types(self._get_connection_types())
self._client.set_protocols(self._get_connection_protocols())
@@ -168,8 +179,10 @@
self._scroll_timeout = GLib.timeout_add(50, self.scroll_to_end)
def _connect_clicked(self, *args):
- if self._client is None:
- self._create_client()
+ if self._client is not None:
+ self._client.destroy()
+
+ self._create_client()
self._client.connect()
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python-nbxmpp-nbxmpp-3.0.2/nbxmpp/examples/client.ui new/python-nbxmpp-3.1.0/nbxmpp/examples/client.ui
--- old/python-nbxmpp-nbxmpp-3.0.2/nbxmpp/examples/client.ui 2022-05-18 20:11:37.000000000 +0200
+++ new/python-nbxmpp-3.1.0/nbxmpp/examples/client.ui 2022-05-28 11:27:58.000000000 +0200
@@ -1,27 +1,28 @@
<?xml version="1.0" encoding="UTF-8"?>
-<!-- Generated with glade 3.22.1 -->
+<!-- Generated with glade 3.38.2 -->
<interface>
<requires lib="gtk+" version="3.20"/>
+ <!-- n-columns=1 n-rows=3 -->
<object class="GtkGrid" id="grid">
<property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="margin_left">24</property>
- <property name="margin_right">24</property>
- <property name="margin_top">24</property>
- <property name="margin_bottom">24</property>
- <property name="row_spacing">12</property>
+ <property name="can-focus">False</property>
+ <property name="margin-start">24</property>
+ <property name="margin-end">24</property>
+ <property name="margin-top">24</property>
+ <property name="margin-bottom">24</property>
+ <property name="row-spacing">12</property>
<child>
<object class="GtkButtonBox">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<property name="spacing">12</property>
- <property name="layout_style">start</property>
+ <property name="layout-style">start</property>
<child>
<object class="GtkButton">
<property name="label" translatable="yes">Connect</property>
<property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="receives_default">True</property>
+ <property name="can-focus">True</property>
+ <property name="receives-default">True</property>
<signal name="clicked" handler="_connect_clicked" swapped="no"/>
<style>
<class name="suggested-action"/>
@@ -37,8 +38,8 @@
<object class="GtkButton">
<property name="label" translatable="yes">Disconnect</property>
<property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="receives_default">True</property>
+ <property name="can-focus">True</property>
+ <property name="receives-default">True</property>
<signal name="clicked" handler="_disconnect_clicked" swapped="no"/>
<style>
<class name="destructive-action"/>
@@ -54,8 +55,8 @@
<object class="GtkButton">
<property name="label" translatable="yes">Reconnect</property>
<property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="receives_default">True</property>
+ <property name="can-focus">True</property>
+ <property name="receives-default">True</property>
<signal name="clicked" handler="_on_reconnect_clicked" swapped="no"/>
</object>
<packing>
@@ -68,8 +69,8 @@
<object class="GtkButton" id="clear">
<property name="label" translatable="yes">Clear</property>
<property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="receives_default">True</property>
+ <property name="can-focus">True</property>
+ <property name="receives-default">True</property>
<signal name="clicked" handler="_clear_clicked" swapped="no"/>
</object>
<packing>
@@ -80,242 +81,244 @@
</child>
</object>
<packing>
- <property name="left_attach">0</property>
- <property name="top_attach">2</property>
+ <property name="left-attach">0</property>
+ <property name="top-attach">2</property>
</packing>
</child>
<child>
+ <!-- n-columns=3 n-rows=8 -->
<object class="GtkGrid">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<property name="hexpand">True</property>
- <property name="row_spacing">6</property>
- <property name="column_spacing">12</property>
+ <property name="row-spacing">6</property>
+ <property name="column-spacing">12</property>
<child>
<object class="GtkLabel">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<property name="label" translatable="yes">XMPP-Address</property>
<property name="xalign">1</property>
</object>
<packing>
- <property name="left_attach">0</property>
- <property name="top_attach">0</property>
+ <property name="left-attach">0</property>
+ <property name="top-attach">0</property>
</packing>
</child>
<child>
<object class="GtkLabel">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<property name="label" translatable="yes">Password</property>
<property name="xalign">1</property>
</object>
<packing>
- <property name="left_attach">0</property>
- <property name="top_attach">1</property>
+ <property name="left-attach">0</property>
+ <property name="top-attach">1</property>
</packing>
</child>
<child>
<object class="GtkEntry" id="address">
<property name="visible">True</property>
- <property name="can_focus">True</property>
+ <property name="can-focus">True</property>
<property name="valign">center</property>
<property name="hexpand">True</property>
</object>
<packing>
- <property name="left_attach">1</property>
- <property name="top_attach">0</property>
+ <property name="left-attach">1</property>
+ <property name="top-attach">0</property>
</packing>
</child>
<child>
<object class="GtkEntry" id="password">
<property name="visible">True</property>
- <property name="can_focus">True</property>
+ <property name="can-focus">True</property>
<property name="valign">center</property>
</object>
<packing>
- <property name="left_attach">1</property>
- <property name="top_attach">1</property>
+ <property name="left-attach">1</property>
+ <property name="top-attach">1</property>
</packing>
</child>
<child>
<object class="GtkLabel">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<property name="label" translatable="yes">Proxy Host or IP</property>
<property name="xalign">1</property>
</object>
<packing>
- <property name="left_attach">0</property>
- <property name="top_attach">3</property>
+ <property name="left-attach">0</property>
+ <property name="top-attach">3</property>
</packing>
</child>
<child>
<object class="GtkLabel">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<property name="label" translatable="yes">Proxy Port</property>
<property name="xalign">1</property>
</object>
<packing>
- <property name="left_attach">0</property>
- <property name="top_attach">4</property>
+ <property name="left-attach">0</property>
+ <property name="top-attach">4</property>
</packing>
</child>
<child>
<object class="GtkLabel">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<property name="label" translatable="yes">Proxy Password</property>
<property name="xalign">1</property>
</object>
<packing>
- <property name="left_attach">0</property>
- <property name="top_attach">6</property>
+ <property name="left-attach">0</property>
+ <property name="top-attach">6</property>
</packing>
</child>
<child>
<object class="GtkLabel">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<property name="label" translatable="yes">Proxy Username</property>
<property name="xalign">1</property>
</object>
<packing>
- <property name="left_attach">0</property>
- <property name="top_attach">5</property>
+ <property name="left-attach">0</property>
+ <property name="top-attach">5</property>
</packing>
</child>
<child>
<object class="GtkEntry" id="proxy_ip">
<property name="visible">True</property>
- <property name="can_focus">True</property>
+ <property name="can-focus">True</property>
</object>
<packing>
- <property name="left_attach">1</property>
- <property name="top_attach">3</property>
+ <property name="left-attach">1</property>
+ <property name="top-attach">3</property>
</packing>
</child>
<child>
<object class="GtkEntry" id="proxy_username">
<property name="visible">True</property>
- <property name="can_focus">True</property>
+ <property name="can-focus">True</property>
</object>
<packing>
- <property name="left_attach">1</property>
- <property name="top_attach">5</property>
+ <property name="left-attach">1</property>
+ <property name="top-attach">5</property>
</packing>
</child>
<child>
<object class="GtkEntry" id="proxy_port">
<property name="visible">True</property>
- <property name="can_focus">True</property>
+ <property name="can-focus">True</property>
</object>
<packing>
- <property name="left_attach">1</property>
- <property name="top_attach">4</property>
+ <property name="left-attach">1</property>
+ <property name="top-attach">4</property>
</packing>
</child>
<child>
<object class="GtkEntry" id="proxy_password">
<property name="visible">True</property>
- <property name="can_focus">True</property>
+ <property name="can-focus">True</property>
</object>
<packing>
- <property name="left_attach">1</property>
- <property name="top_attach">6</property>
+ <property name="left-attach">1</property>
+ <property name="top-attach">6</property>
</packing>
</child>
<child>
<object class="GtkLabel">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<property name="label" translatable="yes">Save</property>
<property name="xalign">1</property>
</object>
<packing>
- <property name="left_attach">0</property>
- <property name="top_attach">7</property>
+ <property name="left-attach">0</property>
+ <property name="top-attach">7</property>
</packing>
</child>
<child>
<object class="GtkButton">
<property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="receives_default">True</property>
- <property name="tooltip_text" translatable="yes">Save</property>
+ <property name="can-focus">True</property>
+ <property name="receives-default">True</property>
+ <property name="tooltip-text" translatable="yes">Save</property>
<property name="halign">start</property>
<signal name="clicked" handler="_on_save_clicked" swapped="no"/>
<child>
<object class="GtkImage">
<property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="icon_name">document-save-symbolic</property>
+ <property name="can-focus">False</property>
+ <property name="icon-name">document-save-symbolic</property>
</object>
</child>
</object>
<packing>
- <property name="left_attach">1</property>
- <property name="top_attach">7</property>
+ <property name="left-attach">1</property>
+ <property name="top-attach">7</property>
</packing>
</child>
<child>
<object class="GtkFrame">
<property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="label_xalign">0</property>
- <property name="shadow_type">none</property>
+ <property name="can-focus">False</property>
+ <property name="label-xalign">0</property>
+ <property name="shadow-type">none</property>
<child>
<object class="GtkAlignment">
<property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="top_padding">12</property>
- <property name="bottom_padding">12</property>
- <property name="left_padding">12</property>
+ <property name="can-focus">False</property>
+ <property name="top-padding">12</property>
+ <property name="bottom-padding">12</property>
+ <property name="left-padding">12</property>
<child>
+ <!-- n-columns=1 n-rows=3 -->
<object class="GtkGrid">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<child>
<object class="GtkCheckButton" id="directtls">
<property name="label" translatable="yes">DIRECT TLS</property>
<property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="receives_default">False</property>
+ <property name="can-focus">True</property>
+ <property name="receives-default">False</property>
<property name="halign">start</property>
- <property name="draw_indicator">True</property>
+ <property name="draw-indicator">True</property>
</object>
<packing>
- <property name="left_attach">0</property>
- <property name="top_attach">0</property>
+ <property name="left-attach">0</property>
+ <property name="top-attach">0</property>
</packing>
</child>
<child>
<object class="GtkCheckButton" id="starttls">
<property name="label" translatable="yes">START TLS</property>
<property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="receives_default">False</property>
+ <property name="can-focus">True</property>
+ <property name="receives-default">False</property>
<property name="halign">start</property>
- <property name="draw_indicator">True</property>
+ <property name="draw-indicator">True</property>
</object>
<packing>
- <property name="left_attach">0</property>
- <property name="top_attach">1</property>
+ <property name="left-attach">0</property>
+ <property name="top-attach">1</property>
</packing>
</child>
<child>
<object class="GtkCheckButton" id="plain">
<property name="label" translatable="yes">PLAIN</property>
<property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="receives_default">False</property>
+ <property name="can-focus">True</property>
+ <property name="receives-default">False</property>
<property name="halign">start</property>
- <property name="draw_indicator">True</property>
+ <property name="draw-indicator">True</property>
</object>
<packing>
- <property name="left_attach">0</property>
- <property name="top_attach">2</property>
+ <property name="left-attach">0</property>
+ <property name="top-attach">2</property>
</packing>
</child>
</object>
@@ -325,60 +328,61 @@
<child type="label">
<object class="GtkLabel">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<property name="label" translatable="yes">Connection Type</property>
</object>
</child>
</object>
<packing>
- <property name="left_attach">2</property>
- <property name="top_attach">0</property>
+ <property name="left-attach">2</property>
+ <property name="top-attach">0</property>
<property name="height">3</property>
</packing>
</child>
<child>
<object class="GtkFrame">
<property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="label_xalign">0</property>
- <property name="shadow_type">none</property>
+ <property name="can-focus">False</property>
+ <property name="label-xalign">0</property>
+ <property name="shadow-type">none</property>
<child>
<object class="GtkAlignment">
<property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="top_padding">12</property>
- <property name="bottom_padding">12</property>
- <property name="left_padding">12</property>
+ <property name="can-focus">False</property>
+ <property name="top-padding">12</property>
+ <property name="bottom-padding">12</property>
+ <property name="left-padding">12</property>
<child>
+ <!-- n-columns=1 n-rows=2 -->
<object class="GtkGrid">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<child>
<object class="GtkCheckButton" id="tcp">
<property name="label" translatable="yes">TCP</property>
<property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="receives_default">False</property>
+ <property name="can-focus">True</property>
+ <property name="receives-default">False</property>
<property name="halign">start</property>
- <property name="draw_indicator">True</property>
+ <property name="draw-indicator">True</property>
</object>
<packing>
- <property name="left_attach">0</property>
- <property name="top_attach">0</property>
+ <property name="left-attach">0</property>
+ <property name="top-attach">0</property>
</packing>
</child>
<child>
<object class="GtkCheckButton" id="websocket">
<property name="label" translatable="yes">WEBSOCKET</property>
<property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="receives_default">False</property>
+ <property name="can-focus">True</property>
+ <property name="receives-default">False</property>
<property name="halign">start</property>
- <property name="draw_indicator">True</property>
+ <property name="draw-indicator">True</property>
</object>
<packing>
- <property name="left_attach">0</property>
- <property name="top_attach">1</property>
+ <property name="left-attach">0</property>
+ <property name="top-attach">1</property>
</packing>
</child>
</object>
@@ -388,34 +392,34 @@
<child type="label">
<object class="GtkLabel">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<property name="label" translatable="yes">Connection Protocol</property>
</object>
</child>
</object>
<packing>
- <property name="left_attach">2</property>
- <property name="top_attach">3</property>
+ <property name="left-attach">2</property>
+ <property name="top-attach">3</property>
<property name="height">3</property>
</packing>
</child>
<child>
<object class="GtkLabel">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<property name="halign">end</property>
<property name="label" translatable="yes">Proxy Type</property>
<property name="xalign">1</property>
</object>
<packing>
- <property name="left_attach">0</property>
- <property name="top_attach">2</property>
+ <property name="left-attach">0</property>
+ <property name="top-attach">2</property>
</packing>
</child>
<child>
<object class="GtkComboBoxText" id="proxy_type">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<property name="halign">start</property>
<property name="active">0</property>
<items>
@@ -423,37 +427,128 @@
</items>
</object>
<packing>
- <property name="left_attach">1</property>
- <property name="top_attach">2</property>
+ <property name="left-attach">1</property>
+ <property name="top-attach">2</property>
</packing>
</child>
<child>
- <placeholder/>
+ <object class="GtkFrame">
+ <property name="visible">True</property>
+ <property name="can-focus">False</property>
+ <property name="label-xalign">0</property>
+ <property name="shadow-type">none</property>
+ <child>
+ <object class="GtkAlignment">
+ <property name="visible">True</property>
+ <property name="can-focus">False</property>
+ <property name="top-padding">12</property>
+ <property name="bottom-padding">12</property>
+ <property name="left-padding">12</property>
+ <child>
+ <!-- n-columns=1 n-rows=4 -->
+ <object class="GtkGrid">
+ <property name="visible">True</property>
+ <property name="can-focus">False</property>
+ <child>
+ <object class="GtkRadioButton" id="client_mode">
+ <property name="label" translatable="yes">Client</property>
+ <property name="visible">True</property>
+ <property name="can-focus">True</property>
+ <property name="receives-default">False</property>
+ <property name="active">True</property>
+ <property name="draw-indicator">True</property>
+ <property name="group">login_mode</property>
+ </object>
+ <packing>
+ <property name="left-attach">0</property>
+ <property name="top-attach">0</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkRadioButton" id="login_mode">
+ <property name="label" translatable="yes">Login</property>
+ <property name="visible">True</property>
+ <property name="can-focus">True</property>
+ <property name="receives-default">False</property>
+ <property name="active">True</property>
+ <property name="draw-indicator">True</property>
+ </object>
+ <packing>
+ <property name="left-attach">0</property>
+ <property name="top-attach">1</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkRadioButton" id="register_mode">
+ <property name="label" translatable="yes">Register</property>
+ <property name="visible">True</property>
+ <property name="can-focus">True</property>
+ <property name="receives-default">False</property>
+ <property name="active">True</property>
+ <property name="draw-indicator">True</property>
+ <property name="group">login_mode</property>
+ </object>
+ <packing>
+ <property name="left-attach">0</property>
+ <property name="top-attach">2</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkRadioButton" id="anon_mode">
+ <property name="label" translatable="yes">Anyonymous</property>
+ <property name="visible">True</property>
+ <property name="can-focus">True</property>
+ <property name="receives-default">False</property>
+ <property name="active">True</property>
+ <property name="draw-indicator">True</property>
+ <property name="group">login_mode</property>
+ </object>
+ <packing>
+ <property name="left-attach">0</property>
+ <property name="top-attach">3</property>
+ </packing>
+ </child>
+ </object>
+ </child>
+ </object>
+ </child>
+ <child type="label">
+ <object class="GtkLabel">
+ <property name="visible">True</property>
+ <property name="can-focus">False</property>
+ <property name="label" translatable="yes">Modes</property>
+ </object>
+ </child>
+ </object>
+ <packing>
+ <property name="left-attach">2</property>
+ <property name="top-attach">6</property>
+ </packing>
</child>
<child>
<placeholder/>
</child>
</object>
<packing>
- <property name="left_attach">0</property>
- <property name="top_attach">0</property>
+ <property name="left-attach">0</property>
+ <property name="top-attach">0</property>
</packing>
</child>
<child>
<object class="GtkScrolledWindow" id="scrolledwin">
<property name="visible">True</property>
- <property name="can_focus">True</property>
+ <property name="can-focus">True</property>
<property name="hexpand">True</property>
<property name="vexpand">True</property>
- <property name="shadow_type">in</property>
+ <property name="shadow-type">in</property>
<child>
<object class="GtkViewport">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<child>
<object class="GtkListBox" id="xml_box">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<property name="vexpand">True</property>
</object>
</child>
@@ -461,8 +556,8 @@
</child>
</object>
<packing>
- <property name="left_attach">0</property>
- <property name="top_attach">1</property>
+ <property name="left-attach">0</property>
+ <property name="top-attach">1</property>
</packing>
</child>
</object>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python-nbxmpp-nbxmpp-3.0.2/nbxmpp/tcp.py new/python-nbxmpp-3.1.0/nbxmpp/tcp.py
--- old/python-nbxmpp-nbxmpp-3.0.2/nbxmpp/tcp.py 2022-05-18 20:11:37.000000000 +0200
+++ new/python-nbxmpp-3.1.0/nbxmpp/tcp.py 2022-05-28 11:27:58.000000000 +0200
@@ -173,7 +173,6 @@
if self._address.type == ConnectionType.DIRECT_TLS:
tls_client.set_advertised_protocols(['xmpp-client'])
- tls_client.set_validation_flags(Gio.TlsCertificateFlags.VALIDATE_ALL)
tls_client.connect('accept-certificate', self._check_certificate)
tls_client.connect('notify::peer-certificate', self._on_certificate_set)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python-nbxmpp-nbxmpp-3.0.2/setup.cfg new/python-nbxmpp-3.1.0/setup.cfg
--- old/python-nbxmpp-nbxmpp-3.0.2/setup.cfg 2022-05-18 20:11:37.000000000 +0200
+++ new/python-nbxmpp-3.1.0/setup.cfg 2022-05-28 11:27:58.000000000 +0200
@@ -1,6 +1,6 @@
[metadata]
name = nbxmpp
-version = 3.0.2
+version = 3.1.0
description = XMPP Library
author = Yann Leboulanger, Philipp Hoerist
author_email = gajim-devel(a)gajim.org
1
0
Script 'mail_helper' called by obssrc
Hello community,
here is the log from the commit of package python-marshmallow for openSUSE:Factory checked in at 2022-05-30 12:43:54
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/python-marshmallow (Old)
and /work/SRC/openSUSE:Factory/.python-marshmallow.new.2254 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "python-marshmallow"
Mon May 30 12:43:54 2022 rev:16 rq:979709 version:3.14.1
Changes:
--------
--- /work/SRC/openSUSE:Factory/python-marshmallow/python-marshmallow.changes 2021-04-23 17:51:00.430833534 +0200
+++ /work/SRC/openSUSE:Factory/.python-marshmallow.new.2254/python-marshmallow.changes 2022-05-30 12:44:48.596459168 +0200
@@ -1,0 +2,37 @@
+Sun May 29 17:59:12 UTC 2022 - Torsten Gruner <simmphonie(a)opensuse.org>
+
+- Update to 3.14.1 (2021-11-13)
+ * Fix publishing type hints per PEP-561 (#1905). Thanks @bwindsor for the catch and patch.
+- Release 3.14.0 (2021-10-17)
+ * Fix fields.TimeDelta serialization precision (#1865). Thanks @yarsanich for reporting.
+ * Fix type-hints for `data` arg in `Schema.validate` to accept list of
+ dictionaries (#1790, #1868). Thanks @yourun-proger for PR.
+ * Improve warning when passing metadata as keyword arguments (#1882).
+ Thanks @traherom for the PR.
+ * Don���t build universal wheels. We don���t support Python 2 anymore.
+ (#1860) Thanks @YKdvd for reporting.
+ * Make the build reproducible (#1862).
+ * Drop support for Python 3.5 (#1863).
+ * Test against Python 3.10 (#1888).
+- Release 3.13.0 (2021-07-21)
+ * Replace missing/default field parameters with load_default/dump_default (#1742).
+ Thanks @sirosen for the PR.
+ * The use of missing/default field parameters is deprecated and will be removed
+ * in marshmallow 4. load_default/dump_default should be used instead.
+- Release 3.12.2 (2021-07-06)
+ * Don���t expose Fields as Schema attributes. This reverts a change
+ introduced in 3.12.0 that causes issues when field names conflict
+ with Schema attributes or methods. Fieldss are still accessible on a
+ Schema instance through the fields attribute. (#1843)
+- Release 3.12.1 (2021-05-10)
+ * Fix bug that raised an AttributeError when instantiating a Schema with a
+ field named parent (#1808). Thanks @flying-sheep for reporting and helping with the fix.
+- Release 3.12.0 (2021-05-09)
+ * Add validate.And (#1768). Thanks @rugleb for the suggestion.
+ * Add type annotations to marshmallow.decorators (#1788, #1789). Thanks @michaeldimchuk for the PR.
+ * Let Fields be accessed by name as Schema attributes (#1631).
+ * Improve types in marshmallow.validate (#1786).
+ * Make marshmallow.validate.Validator an abstract base class (#1786).
+ * Remove unnecessary list cast (#1785).
+
+-------------------------------------------------------------------
Old:
----
marshmallow-3.11.1.tar.gz
New:
----
marshmallow-3.14.1.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ python-marshmallow.spec ++++++
--- /var/tmp/diff_new_pack.zNX7ol/_old 2022-05-30 12:44:49.192459961 +0200
+++ /var/tmp/diff_new_pack.zNX7ol/_new 2022-05-30 12:44:49.196459966 +0200
@@ -1,7 +1,7 @@
#
# spec file for package python-marshmallow
#
-# Copyright (c) 2021 SUSE LLC
+# Copyright (c) 2022 SUSE LLC
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@@ -19,7 +19,7 @@
%{?!python_module:%define python_module() python-%{**} python3-%{**}}
%define skip_python2 1
Name: python-marshmallow
-Version: 3.11.1
+Version: 3.14.1
Release: 0
Summary: ORM/ODM/framework-agnostic library to convert datatypes from/to Python types
License: BSD-3-Clause AND MIT
++++++ marshmallow-3.11.1.tar.gz -> marshmallow-3.14.1.tar.gz ++++++
++++ 3023 lines of diff (skipped)
1
0
Script 'mail_helper' called by obssrc
Hello community,
here is the log from the commit of package xrdp for openSUSE:Factory checked in at 2022-05-30 12:43:53
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/xrdp (Old)
and /work/SRC/openSUSE:Factory/.xrdp.new.2254 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "xrdp"
Mon May 30 12:43:53 2022 rev:44 rq:979725 version:0.9.19
Changes:
--------
--- /work/SRC/openSUSE:Factory/xrdp/xrdp.changes 2022-03-25 21:55:31.514326851 +0100
+++ /work/SRC/openSUSE:Factory/.xrdp.new.2254/xrdp.changes 2022-05-30 12:44:47.240457363 +0200
@@ -1,0 +2,43 @@
+Sun May 15 09:00:20 UTC 2022 - Sarah Kriesch <sarah.kriesch(a)opensuse.org>
+
+- Update to version 0.9.19
+ + New features
+ - loongarch support
+ - Improved Fail2ban support
+ - Both inbound and outbound clipboards can now be restricted for text,
+ files or images
+ - Versions 0.13 and later of checklib can undefine the pre-processor
+ symbol HAVE_STDINT_H
+ - The OpenSSL 3 EVP interface is now fully supported
+ - The logging of TLS/non-TLS security negotiation has been improved
+ - Unified and improved logging
+ - Status values for the DRDYNVC channel are now available in
+ libxrdp/xrdp_channel.h
+ - Backgrounds and logos on the login screen can now be zoomed and scaled
+ - The performance settings for NeutrinoRDP can be now configured
+ - clipboard: log file transfer for the purpose of audit
+ - Client's Keyboard layout now can be overridden by xrdp configuration
+ for debugging purposes
+ - On-the-fly resolution change now supported for Xvnc and Xorg
+ - xrdp can now use key algorithms other than RSA for TLS
+ - chansrv can now work on DISPLAY=:0 so it can be used with
+ x11vnc/Vino/etc sessions
+ + Bug fixes
+ - Privilege escalation on xrdp-sesman: CVE-2022-23613
+ - Some situations where zombie processes could exist have been resolved
+ - Null-pointer exceptions which can happen in the logging module addressed
+ - Some minor logging errors have been corrected
+ - The signal handling in sesman has been reworked to prevent race conditions
+ when a child exits
+ - Logging is improved for security protocol level decisions
+ - Failure to attach to the memory area shared with xorgxrdp now logged
+ - Remote drive redirection now works if printer redirection is also
+ requested by the client
+ - config value has been added which allows copy-pasting of files to work
+ with Nautilus for GNOME 3 versions >= 3.29.92
+ - Fix some regressions in sesman auth modules
+ - Fix TS_PLAY_SOUND_PDU_DATA to set the correct frequency and duration
+ - Fix password leakage to logs in NeutrinoRDP module
+- Remove *.txt as docs because of files not found (improvements in man pages)
+
+-------------------------------------------------------------------
Old:
----
xrdp-0.9.15.tar.gz
xrdp-0.9.15.tar.gz.asc
New:
----
xrdp-0.9.19.tar.gz
xrdp-0.9.19.tar.gz.asc
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ xrdp.spec ++++++
--- /var/tmp/diff_new_pack.8wTlmQ/_old 2022-05-30 12:44:47.948458306 +0200
+++ /var/tmp/diff_new_pack.8wTlmQ/_new 2022-05-30 12:44:47.952458311 +0200
@@ -22,7 +22,7 @@
%endif
Name: xrdp
-Version: 0.9.15
+Version: 0.9.19
Release: 0
Summary: Remote desktop protocol (RDP) server
License: Apache-2.0 AND GPL-2.0-or-later
@@ -183,7 +183,6 @@
%dir %{_libdir}/xrdp
%config(noreplace) %{_sysconfdir}/pam.d/xrdp-sesman
%license COPYING
-%doc *.txt
%{_bindir}/xrdp*
%{_datadir}/xrdp/*
%{_libdir}/xrdp/*
++++++ xrdp-0.9.15.tar.gz -> xrdp-0.9.19.tar.gz ++++++
++++ 67415 lines of diff (skipped)
1
0
Script 'mail_helper' called by obssrc
Hello community,
here is the log from the commit of package lxd for openSUSE:Factory checked in at 2022-05-30 12:43:52
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/lxd (Old)
and /work/SRC/openSUSE:Factory/.lxd.new.2254 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "lxd"
Mon May 30 12:43:52 2022 rev:43 rq:979722 version:5.2
Changes:
--------
--- /work/SRC/openSUSE:Factory/lxd/lxd.changes 2022-05-10 15:13:01.071652289 +0200
+++ /work/SRC/openSUSE:Factory/.lxd.new.2254/lxd.changes 2022-05-30 12:44:46.100455846 +0200
@@ -1,0 +2,15 @@
+Sun May 29 02:18:04 UTC 2022 - Aleksa Sarai <asarai(a)suse.com>
+
+- Update to LXD 5.2. The full upstream changelog is available from:
+ https://discuss.linuxcontainers.org/t/lxd-5-2-has-been-released/14200
+ boo#1200002
+
+ + VPD information in resources API
+ * Cross-project profile copy
+ * HTTP streaming support in /dev/lxd API
+ * Use of server-side filtering in CLI
+ * Ceph librbd for virtual machines
+- Remove upstreamed patch:
+ + 0001-lxd-secommp-Fix-sysinfo-syscall-interception-on-32-b.patch
+
+-------------------------------------------------------------------
Old:
----
0001-lxd-secommp-Fix-sysinfo-syscall-interception-on-32-b.patch
lxd-5.1.tar.gz
lxd-5.1.tar.gz.asc
New:
----
lxd-5.2.tar.gz
lxd-5.2.tar.gz.asc
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ lxd.spec ++++++
--- /var/tmp/diff_new_pack.nUkPXp/_old 2022-05-30 12:44:46.904456916 +0200
+++ /var/tmp/diff_new_pack.nUkPXp/_new 2022-05-30 12:44:46.912456926 +0200
@@ -34,7 +34,7 @@
%endif
Name: lxd
-Version: 5.1
+Version: 5.2
Release: 0
Summary: Container hypervisor based on LXC
License: Apache-2.0
@@ -51,8 +51,6 @@
# Additional runtime configuration.
Source200: %{name}.sysctl
Source201: %{name}.dnsmasq
-# OPENSUSE-UPSTREAM-FIX: Backport of <https://github.com/lxc/lxd/pull/10348>.
-Patch1: 0001-lxd-secommp-Fix-sysinfo-syscall-interception-on-32-b.patch
BuildRequires: fdupes
BuildRequires: golang-packaging
BuildRequires: libacl-devel
@@ -127,8 +125,6 @@
%prep
%setup -q
-# https://github.com/lxc/lxd/pull/10348
-%patch1 -p1
%build
# Make sure any leftover go build caches are gone.
++++++ lxd-5.1.tar.gz -> lxd-5.2.tar.gz ++++++
/work/SRC/openSUSE:Factory/lxd/lxd-5.1.tar.gz /work/SRC/openSUSE:Factory/.lxd.new.2254/lxd-5.2.tar.gz differ: char 12, line 1
1
0
Script 'mail_helper' called by obssrc
Hello community,
here is the log from the commit of package openQA for openSUSE:Factory checked in at 2022-05-30 12:43:50
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/openQA (Old)
and /work/SRC/openSUSE:Factory/.openQA.new.2254 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "openQA"
Mon May 30 12:43:50 2022 rev:368 rq:979703 version:4.6.1653656710.7e5eb62
Changes:
--------
openQA-devel-test.changes: same change
openQA-test.changes: same change
openQA-worker-test.changes: same change
--- /work/SRC/openSUSE:Factory/openQA/openQA.changes 2022-05-28 00:28:19.357670495 +0200
+++ /work/SRC/openSUSE:Factory/.openQA.new.2254/openQA.changes 2022-05-30 12:44:43.356452194 +0200
@@ -1,0 +2,6 @@
+Sun May 29 17:42:53 UTC 2022 - okurz(a)suse.com
+
+- Update to version 4.6.1653656710.7e5eb62:
+ * Extend tests for expanding/collapsing feature in test overview
+
+-------------------------------------------------------------------
Old:
----
openQA-4.6.1653501113.88a17ce.obscpio
New:
----
openQA-4.6.1653656710.7e5eb62.obscpio
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ openQA-client-test.spec ++++++
--- /var/tmp/diff_new_pack.GteaBl/_old 2022-05-30 12:44:45.344454840 +0200
+++ /var/tmp/diff_new_pack.GteaBl/_new 2022-05-30 12:44:45.348454845 +0200
@@ -18,7 +18,7 @@
%define short_name openQA-client
Name: %{short_name}-test
-Version: 4.6.1653501113.88a17ce
+Version: 4.6.1653656710.7e5eb62
Release: 0
Summary: Test package for %{short_name}
License: GPL-2.0-or-later
++++++ openQA-devel-test.spec ++++++
--- /var/tmp/diff_new_pack.GteaBl/_old 2022-05-30 12:44:45.384454893 +0200
+++ /var/tmp/diff_new_pack.GteaBl/_new 2022-05-30 12:44:45.392454904 +0200
@@ -18,7 +18,7 @@
%define short_name openQA-devel
Name: %{short_name}-test
-Version: 4.6.1653501113.88a17ce
+Version: 4.6.1653656710.7e5eb62
Release: 0
Summary: Test package for %{short_name}
License: GPL-2.0-or-later
++++++ openQA-test.spec ++++++
--- /var/tmp/diff_new_pack.GteaBl/_old 2022-05-30 12:44:45.416454936 +0200
+++ /var/tmp/diff_new_pack.GteaBl/_new 2022-05-30 12:44:45.416454936 +0200
@@ -18,7 +18,7 @@
%define short_name openQA
Name: %{short_name}-test
-Version: 4.6.1653501113.88a17ce
+Version: 4.6.1653656710.7e5eb62
Release: 0
Summary: Test package for openQA
License: GPL-2.0-or-later
++++++ openQA-worker-test.spec ++++++
--- /var/tmp/diff_new_pack.GteaBl/_old 2022-05-30 12:44:45.444454973 +0200
+++ /var/tmp/diff_new_pack.GteaBl/_new 2022-05-30 12:44:45.452454983 +0200
@@ -18,7 +18,7 @@
%define short_name openQA-worker
Name: %{short_name}-test
-Version: 4.6.1653501113.88a17ce
+Version: 4.6.1653656710.7e5eb62
Release: 0
Summary: Test package for %{short_name}
License: GPL-2.0-or-later
++++++ openQA.spec ++++++
--- /var/tmp/diff_new_pack.GteaBl/_old 2022-05-30 12:44:45.480455021 +0200
+++ /var/tmp/diff_new_pack.GteaBl/_new 2022-05-30 12:44:45.488455032 +0200
@@ -76,7 +76,7 @@
%define devel_requires %devel_no_selenium_requires chromedriver
Name: openQA
-Version: 4.6.1653501113.88a17ce
+Version: 4.6.1653656710.7e5eb62
Release: 0
Summary: The openQA web-frontend, scheduler and tools
License: GPL-2.0-or-later
++++++ openQA-4.6.1653501113.88a17ce.obscpio -> openQA-4.6.1653656710.7e5eb62.obscpio ++++++
/work/SRC/openSUSE:Factory/openQA/openQA-4.6.1653501113.88a17ce.obscpio /work/SRC/openSUSE:Factory/.openQA.new.2254/openQA-4.6.1653656710.7e5eb62.obscpio differ: char 49, line 1
++++++ openQA.obsinfo ++++++
--- /var/tmp/diff_new_pack.GteaBl/_old 2022-05-30 12:44:45.572455143 +0200
+++ /var/tmp/diff_new_pack.GteaBl/_new 2022-05-30 12:44:45.576455149 +0200
@@ -1,5 +1,5 @@
name: openQA
-version: 4.6.1653501113.88a17ce
-mtime: 1653501113
-commit: 88a17ce8b067a4787a7f7cb6bc1e3b8307dfc825
+version: 4.6.1653656710.7e5eb62
+mtime: 1653656710
+commit: 7e5eb6277c4192ca704cdbabfe1fa101f7e490ea
1
0
Script 'mail_helper' called by obssrc
Hello community,
here is the log from the commit of package wbg for openSUSE:Factory checked in at 2022-05-30 12:43:49
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/wbg (Old)
and /work/SRC/openSUSE:Factory/.wbg.new.2254 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "wbg"
Mon May 30 12:43:49 2022 rev:2 rq:979695 version:1.0.2
Changes:
--------
--- /work/SRC/openSUSE:Factory/wbg/wbg.changes 2022-03-12 17:16:21.598366889 +0100
+++ /work/SRC/openSUSE:Factory/.wbg.new.2254/wbg.changes 2022-05-30 12:44:41.808450134 +0200
@@ -1,0 +2,5 @@
+Sun May 29 16:41:58 UTC 2022 - Soc Virnyl Estela <socvirnyl.estela(a)gmail.com>
+
+- use meson version >= 0.58.0 to abandon deprecated options
+
+-------------------------------------------------------------------
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ wbg.spec ++++++
--- /var/tmp/diff_new_pack.pxlNVq/_old 2022-05-30 12:44:42.532451098 +0200
+++ /var/tmp/diff_new_pack.pxlNVq/_new 2022-05-30 12:44:42.536451103 +0200
@@ -1,7 +1,7 @@
#
# spec file for package wbg
#
-# Copyright (c) 2021 SUSE LLC
+# Copyright (c) 2022 SUSE LLC
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@@ -25,16 +25,16 @@
URL: https://codeberg.org/dnkl/wbg
Source0: https://codeberg.org/dnkl/wbg/archive/%version.tar.gz
BuildRequires: gcc-c++
-BuildRequires: meson >= 0.48.0
+BuildRequires: meson >= 0.58.0
BuildRequires: pkgconfig
BuildRequires: python3
+BuildRequires: pkgconfig(libjpeg)
+BuildRequires: pkgconfig(libpng)
+BuildRequires: pkgconfig(pixman-1)
+BuildRequires: pkgconfig(tllist) >= 1.0.1
BuildRequires: pkgconfig(wayland-client)
BuildRequires: pkgconfig(wayland-protocols)
BuildRequires: pkgconfig(wayland-server)
-BuildRequires: pkgconfig(pixman-1)
-BuildRequires: pkgconfig(libpng)
-BuildRequires: pkgconfig(libjpeg)
-BuildRequires: pkgconfig(tllist) >= 1.0.1
%description
Wbg is a wallpaper setter for Wayland compositors that implement the
1
0