Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package libeconf for openSUSE:Factory checked in at 2025-05-12 16:46:46 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/libeconf (Old) and /work/SRC/openSUSE:Factory/.libeconf.new.30101 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "libeconf" Mon May 12 16:46:46 2025 rev:35 rq:1276095 version:0.7.9 Changes: -------- --- /work/SRC/openSUSE:Factory/libeconf/libeconf.changes 2025-04-26 22:25:01.529543257 +0200 +++ /work/SRC/openSUSE:Factory/.libeconf.new.30101/libeconf.changes 2025-05-12 16:49:50.195078805 +0200 @@ -1,0 +2,8 @@ +Thu May 08 14:41:05 UTC 2025 - sch...@suse.com + +- Update to version 0.7.9: + * Comments can include comment character tag multiple time. + * Fixed static library declaration in meason + * Fixed versioning in cmake + +------------------------------------------------------------------- python-libeconf.changes: same change Old: ---- libeconf-0.7.8.tar.xz New: ---- libeconf-0.7.9.tar.xz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ libeconf.spec ++++++ --- /var/tmp/diff_new_pack.uF1tRa/_old 2025-05-12 16:49:50.743101789 +0200 +++ /var/tmp/diff_new_pack.uF1tRa/_new 2025-05-12 16:49:50.747101957 +0200 @@ -18,7 +18,7 @@ %define lname libeconf0 Name: libeconf -Version: 0.7.8 +Version: 0.7.9 Release: 0 Summary: Enhanced config file parser ala systemd License: MIT @@ -73,7 +73,7 @@ %setup -q %build -%meson +%meson -Ddefault_library=both %meson_build %install ++++++ python-libeconf.spec ++++++ --- /var/tmp/diff_new_pack.uF1tRa/_old 2025-05-12 16:49:50.771102964 +0200 +++ /var/tmp/diff_new_pack.uF1tRa/_new 2025-05-12 16:49:50.771102964 +0200 @@ -19,7 +19,7 @@ %{?sle15_python_module_pythons} %define skip_python39 1 Name: python-libeconf -Version: 0.7.8 +Version: 0.7.9 Release: 0 Summary: Python bindings for libeconf License: MIT ++++++ _servicedata ++++++ --- /var/tmp/diff_new_pack.uF1tRa/_old 2025-05-12 16:49:50.819104977 +0200 +++ /var/tmp/diff_new_pack.uF1tRa/_new 2025-05-12 16:49:50.819104977 +0200 @@ -1,7 +1,7 @@ <servicedata> <service name="tar_scm"> <param name="url">https://github.com/openSUSE/libeconf.git</param> - <param name="changesrevision">37d288b97e0c882bf6ee671d75fbf9718c375386</param> + <param name="changesrevision">25eb4246560e870c7e9c9a16abfb206566d98979</param> </service> </servicedata> (No newline at EOF) ++++++ libeconf-0.7.8.tar.xz -> libeconf-0.7.9.tar.xz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libeconf-0.7.8/CMakeLists.txt new/libeconf-0.7.9/CMakeLists.txt --- old/libeconf-0.7.8/CMakeLists.txt 2025-04-25 10:14:17.000000000 +0200 +++ new/libeconf-0.7.9/CMakeLists.txt 2025-05-08 16:37:21.000000000 +0200 @@ -3,7 +3,7 @@ # Ensure built-in policies from CMake are used, (e.g. improved policies for macOS) cmake_policy(VERSION ${CMAKE_MAJOR_VERSION}.${CMAKE_MINOR_VERSION}) -project(libeconf VERSION 0.7.8 +project(libeconf VERSION 0.7.9 DESCRIPTION "Enhanced config file parser, which merges config files placed in several locations into one." LANGUAGES C ) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libeconf-0.7.8/NEWS new/libeconf-0.7.9/NEWS --- old/libeconf-0.7.8/NEWS 2025-04-25 10:14:17.000000000 +0200 +++ new/libeconf-0.7.9/NEWS 2025-05-08 16:37:21.000000000 +0200 @@ -1,3 +1,8 @@ +Version 0.7.9 +* Comments can include comment character tag multiple time. +* Fixed static library declaration in meason +* Fixed versioning in cmake + Version 0.7.8 * Fix memory access if there are a comment character inside a comment. diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libeconf-0.7.8/lib/CMakeLists.txt new/libeconf-0.7.9/lib/CMakeLists.txt --- old/libeconf-0.7.8/lib/CMakeLists.txt 2025-04-25 10:14:17.000000000 +0200 +++ new/libeconf-0.7.9/lib/CMakeLists.txt 2025-05-08 16:37:21.000000000 +0200 @@ -33,7 +33,7 @@ C_STANDARD 11 C_STANDARD_REQUIRED ON PUBLIC_HEADER "${PROJECT_SOURCE_DIR}/include/libeconf.h;${PROJECT_SOURCE_DIR}/include/libeconf_ext.h" - LINK_FLAGS "-Wl,--no-undefined -Wl,--version-script,\"${PROJECT_SOURCE_DIR}/lib/libeconf.map\"" + LINK_FLAGS "-Wl,--no-undefined -Wl,--no-undefined-version -Wl,--version-script,\"${PROJECT_SOURCE_DIR}/lib/libeconf.map\"" ) # Install the library diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libeconf-0.7.8/lib/getfilecontents.c new/libeconf-0.7.9/lib/getfilecontents.c --- old/libeconf-0.7.8/lib/getfilecontents.c 2025-04-25 10:14:17.000000000 +0200 +++ new/libeconf-0.7.9/lib/getfilecontents.c 2025-05-08 16:37:21.000000000 +0200 @@ -146,7 +146,7 @@ return ECONF_MISSING_DELIMITER; } - if (append_entry && ef->python_style == true) { + if (ef->python_style == true) { /* ignore space at the beginning of the line because it is the indentation of python style */ while (*value && isspace((unsigned)*value)) value++; @@ -371,7 +371,7 @@ /* go through all comment characters and check if one of them could be found */ for (size_t i = 0; i < strlen(comment); i++) { - p = strrchr(name, comment[i]); + p = strchr(name, comment[i]); if (p) { if (p==name) @@ -405,25 +405,37 @@ if (*data && strchr(delim, *data) != NULL) delim_found = false; - if ( first_quote==NULL || /* no quote */ - (first_quote!=last_quote && last_quote<p) || /* comment is in string included */ - (first_quote==last_quote && last_quote<p && !delim_found)) /* multiline with one quote */ - { - if (current_comment_after_value) + while (p) { + /* going through all comments hits and find the first one */ + /* who i not inside of two quotes */ + if ( first_quote==NULL || /* no quote */ + (first_quote!=last_quote && last_quote<p) || /* comment is in string included */ + (first_quote==last_quote && last_quote<p && !delim_found)) /* multiline with one quote */ { - /* appending */ - char *content = current_comment_after_value; - int ret = asprintf(¤t_comment_after_value, "%s\n%s", content, - p+1); - if(ret<0) { - free(buf); - return ECONF_NOMEM; + if (current_comment_after_value) + { + /* appending */ + char *content = current_comment_after_value; + int ret = asprintf(¤t_comment_after_value, "%s\n%s", content, + p+1); + if(ret<0) { + free(buf); + return ECONF_NOMEM; + } + free(content); + } else { + current_comment_after_value = strdup(p+1); } - free(content); + *p = '\0'; } else { - current_comment_after_value = strdup(p+1); + p++; + } + /* find next comment flag */ + for (size_t k = 0; k < strlen(comment); k++) { + p = strchr(p, comment[k]); + if (p) + break; } - *p = '\0'; } } } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libeconf-0.7.8/lib/libeconf.map new/libeconf-0.7.9/lib/libeconf.map --- old/libeconf-0.7.8/lib/libeconf.map 2025-04-25 10:14:17.000000000 +0200 +++ new/libeconf-0.7.9/lib/libeconf.map 2025-05-08 16:37:21.000000000 +0200 @@ -38,10 +38,8 @@ econf_getBoolValueDef; econf_getDoubleValueDef; econf_getFloatValueDef; - econf_getGroupsDef; econf_getInt64ValueDef; econf_getIntValueDef; - econf_getKeysDef; econf_getStringValueDef; econf_getUInt64ValueDef; econf_getUIntValueDef; @@ -68,9 +66,6 @@ } LIBECONF_0.3; LIBECONF_0.5 { global: - econf_readFileWithCallback; - econf_readDirsWithCallback; - econf_readDirsHistoryWithCallback; econf_set_conf_dirs; } LIBECONF_0.4; LIBECONF_0.6 { diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libeconf-0.7.8/meson.build new/libeconf-0.7.9/meson.build --- old/libeconf-0.7.8/meson.build 2025-04-25 10:14:17.000000000 +0200 +++ new/libeconf-0.7.9/meson.build 2025-05-08 16:37:21.000000000 +0200 @@ -7,7 +7,7 @@ 'b_pie=true', 'warning_level=3',], license : 'MIT', - version : '0.7.8', + version : '0.7.9', ) cc = meson.get_compiler('c') @@ -54,15 +54,20 @@ example_src = ['example/example.c'] econftool_src = ['util/econftool.c'] +possible_link_args = [ + '-Wl,--no-undefined', + '-Wl,--no-undefined-version', + ] + mapfile = 'lib/libeconf.map' -version_flag = '-Wl,--version-script,@0@/@1@'.format(meson.current_source_dir(), mapfile) +version_flag = ['-Wl,--version-script,@0@/@1@'.format(meson.current_source_dir(), mapfile)] lib = library( 'econf', libeconf_src, include_directories : inc, install : true, - link_args : version_flag, + link_args : cc.get_supported_link_arguments(possible_link_args) + version_flag, link_depends : mapfile, version : meson.project_version(), soversion : '0', @@ -77,11 +82,6 @@ version : meson.project_version(), ) -libeconf_static = static_library('econf', - libeconf_src, - include_directories : inc, - install : true) - libeconf_dep = declare_dependency( link_with : lib, include_directories : inc, diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libeconf-0.7.8/tests/tst-comments2-data/env.conf new/libeconf-0.7.9/tests/tst-comments2-data/env.conf --- old/libeconf-0.7.8/tests/tst-comments2-data/env.conf 2025-04-25 10:14:17.000000000 +0200 +++ new/libeconf-0.7.9/tests/tst-comments2-data/env.conf 2025-05-08 16:37:21.000000000 +0200 @@ -1,3 +1,5 @@ KEY1="a#b" KEY2="a#b" # with real comment KEY3=a#b +# comment with # or more #### +KEY4="test with #" #comment KEY4 with # and so on diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libeconf-0.7.8/tests/tst-comments2.c new/libeconf-0.7.9/tests/tst-comments2.c --- old/libeconf-0.7.8/tests/tst-comments2.c 2025-04-25 10:14:17.000000000 +0200 +++ new/libeconf-0.7.9/tests/tst-comments2.c 2025-05-08 16:37:21.000000000 +0200 @@ -75,6 +75,8 @@ retval = 1; if (check_key(key_file, "KEY3", "a") != 0) retval = 1; + if (check_key(key_file, "KEY4", "test with #") != 0) + retval = 1; econf_free (key_file); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libeconf-0.7.8/tests/tst-parseconfig2.c new/libeconf-0.7.9/tests/tst-parseconfig2.c --- old/libeconf-0.7.8/tests/tst-parseconfig2.c 2025-04-25 10:14:17.000000000 +0200 +++ new/libeconf-0.7.9/tests/tst-parseconfig2.c 2025-05-08 16:37:21.000000000 +0200 @@ -35,8 +35,9 @@ { fprintf(stderr, "ERROR: ANSI_COLOR has extra '\\n'!\n"); free(val); - return 77; /* XXX skip for now until fixed */ + return 1; } + free (val); key_file = econf_free (key_file);