Script 'mail_helper' called by obssrc
Hello community,

here is the log from the commit of package zypp-boot-plugin for 
openSUSE:Factory checked in at 2026-10-29 18:18:15
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/zypp-boot-plugin (Old)
 and      /work/SRC/openSUSE:Factory/.zypp-boot-plugin.new.1255 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "zypp-boot-plugin"

Thu Oct 29 18:18:15 2026 rev:11 rq:1393426 version:0.0.14

Changes:
--------
--- /work/SRC/openSUSE:Factory/zypp-boot-plugin/zypp-boot-plugin.changes        
2025-09-19 15:33:35.659823273 +0200
+++ 
/work/SRC/openSUSE:Factory/.zypp-boot-plugin.new.1255/zypp-boot-plugin.changes  
    2026-10-29 18:18:15.745450189 +0100
@@ -1,0 +2,8 @@
+Wed Oct 28 13:23:16 UTC 2026 - [email protected]
+
+- Update to version 0.0.14:
+  * added [packages] section in zypp-boot-plugin.conf
+  * fixed tests for s390
+  * Drop 8.patch
+
+-------------------------------------------------------------------

Old:
----
  8.patch
  zypp-boot-plugin-0.0.13.tar.xz

New:
----
  zypp-boot-plugin-0.0.14.tar.xz

----------(Old B)----------
  Old:  * fixed tests for s390
  * Drop 8.patch
----------(Old E)----------

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

Other differences:
------------------
++++++ zypp-boot-plugin.spec ++++++
--- /var/tmp/diff_new_pack.uU1mMD/_old  2026-10-29 18:18:16.615486650 +0100
+++ /var/tmp/diff_new_pack.uU1mMD/_new  2026-10-29 18:18:16.617486734 +0100
@@ -1,7 +1,7 @@
 #
 # spec file for package zypp-boot-plugin
 #
-# Copyright (c) 2025 SUSE LLC
+# Copyright (c) 2026 SUSE LLC and contributors
 #
 # All modifications and additions to the file contributed by third parties
 # remain the property of their copyright owners, unless otherwise agreed
@@ -17,15 +17,13 @@
 
 
 Name:           zypp-boot-plugin
-Version:        0.0.13
+Version:        0.0.14
 Release:        0
 Summary:        Zypp plugin for checking if a reboot is needed
 License:        GPL-2.0-or-later
 Group:          System/Packages
 URL:            https://github.com/openSUSE/zypp-boot-plugin
 Source:         zypp-boot-plugin-%{version}.tar.xz
-# PATCH-FIX-UPSTREAM - remove system library which is headers only
-Patch1:         https://github.com/openSUSE/zypp-boot-plugin/pull/8.patch
 BuildRequires:  boost-devel > 1.69.0
 BuildRequires:  docbook5-xsl-stylesheets
 BuildRequires:  gcc-c++

++++++ _servicedata ++++++
--- /var/tmp/diff_new_pack.uU1mMD/_old  2026-10-29 18:18:16.694489961 +0100
+++ /var/tmp/diff_new_pack.uU1mMD/_new  2026-10-29 18:18:16.700490212 +0100
@@ -1,6 +1,6 @@
 <servicedata>
 <service name="tar_scm">
                 <param 
name="url">https://github.com/openSUSE/zypp-boot-plugin.git</param>
-              <param 
name="changesrevision">d6054871a555b1416d2c73e71f4f4e56af471168</param></service></servicedata>
+              <param 
name="changesrevision">7c3845156a302ec9e8bebd4f455cfc8e49c7bedb</param></service></servicedata>
 (No newline at EOF)
 

++++++ zypp-boot-plugin-0.0.13.tar.xz -> zypp-boot-plugin-0.0.14.tar.xz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/zypp-boot-plugin-0.0.13/NEWS 
new/zypp-boot-plugin-0.0.14/NEWS
--- old/zypp-boot-plugin-0.0.13/NEWS    2025-05-15 16:40:04.000000000 +0200
+++ new/zypp-boot-plugin-0.0.14/NEWS    2026-10-28 14:15:46.000000000 +0100
@@ -1,3 +1,6 @@
+Version 0.0.14
+* Added [Packages] section in zypp-boot-plugin.conf
+
 Version 0.0.13
 * Fixed build with boost 1.88 (bsc#1242801)
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/zypp-boot-plugin-0.0.13/README.md 
new/zypp-boot-plugin-0.0.14/README.md
--- old/zypp-boot-plugin-0.0.13/README.md       2025-05-15 16:40:04.000000000 
+0200
+++ new/zypp-boot-plugin-0.0.14/README.md       2026-10-28 14:15:46.000000000 
+0100
@@ -89,7 +89,30 @@
    ##  empty
    ##
    soft-reboot = glibc, dbus-broker, dbus-1-daemon, 
libopenssl[0-9]?_?[0-9]?_?[0-9]?, libopenssl[0-9]?_?[0-9]?_?[0-9]?-32bit
-   
+
+   [Packages]
+
+   ##
+   ## Alternative way of defining the required boot level, one entry per 
package.
+   ## The key is matched either as an exact package name or, like in [main], 
as a
+   ## provides capability tagged with the "provides:" prefix. Regular 
expressions
+   ## as package name are not supported here.
+   ##
+   ## Entries in this section have a higher priority than the entries in 
[main]:
+   ## if a package matches an entry here, this boot level is used and the 
lists in
+   ## [main] as well as installhint(reboot-needed) are not evaluated for it 
anymore.
+   ##
+   ## Example:
+   ##  grub2 = kexec
+   ##  provides:bootloader = kexec
+   ##
+   ## Valid values:
+   ##  package_or_capability = reboot|kexec|soft-reboot
+   ##
+   ## Default value:
+   ##  empty
+   ##
+
    ```
    Admin/User changes should go into /etc/zypp/zypp-boot-plugin.conf for 
resetting all entries or should go
    into /etc/zypp/zypp-boot-plugin.conf.d/ for indiviual changes only. Have a 
look to :https://opensuse.github.io/libeconf/
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/zypp-boot-plugin-0.0.13/conf/zypp-boot-plugin.conf 
new/zypp-boot-plugin-0.0.14/conf/zypp-boot-plugin.conf
--- old/zypp-boot-plugin-0.0.13/conf/zypp-boot-plugin.conf      2025-05-15 
16:40:04.000000000 +0200
+++ new/zypp-boot-plugin-0.0.14/conf/zypp-boot-plugin.conf      2026-10-28 
14:15:46.000000000 +0100
@@ -68,3 +68,26 @@
 ##
 soft-reboot = glibc, dbus-broker, dbus-1-daemon, 
libopenssl[0-9]?_?[0-9]?_?[0-9]?, libopenssl[0-9]?_?[0-9]?_?[0-9]?-32bit
 
+[Packages]
+
+##
+## Alternative way of defining the required boot level, one entry per package.
+## The key is matched either as an exact package name or, like in [main], as a
+## provides capability tagged with the "provides:" prefix. Regular expressions
+## as package name are not supported here.
+##
+## Entries in this section have a higher priority than the entries in [main]:
+## if a package matches an entry here, this boot level is used and the lists in
+## [main] as well as installhint(reboot-needed) are not evaluated for it 
anymore.
+##
+## Example:
+##     grub2 = kexec
+##     provides:bootloader = kexec
+##
+## Valid values:
+##     package_or_capability = reboot|kexec|soft-reboot
+##
+## Default value:
+##     empty
+##
+
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/zypp-boot-plugin-0.0.13/meson.build 
new/zypp-boot-plugin-0.0.14/meson.build
--- old/zypp-boot-plugin-0.0.13/meson.build     2025-05-15 16:40:04.000000000 
+0200
+++ new/zypp-boot-plugin-0.0.14/meson.build     2026-10-28 14:15:46.000000000 
+0100
@@ -1,5 +1,5 @@
 project('zypp-boot_plugin', 'cpp',
-       version : '0.0.13',
+       version : '0.0.14',
        license : 'LGPLv3',
        default_options : [
                'buildtype=debugoptimized',
@@ -23,7 +23,7 @@
 )
 
 libeconf_dep = dependency('libeconf')
-boost_dep = dependency('boost', modules : ['system', 'filesystem'])
+boost_dep = dependency('boost', modules : ['filesystem'])
 json_dep = dependency('json')
 
 pk_prefix = get_option('prefix')
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/zypp-boot-plugin-0.0.13/src/solvable-matcher.cc 
new/zypp-boot-plugin-0.0.14/src/solvable-matcher.cc
--- old/zypp-boot-plugin-0.0.13/src/solvable-matcher.cc 2025-05-15 
16:40:04.000000000 +0200
+++ new/zypp-boot-plugin-0.0.14/src/solvable-matcher.cc 2026-10-28 
14:15:46.000000000 +0100
@@ -105,6 +105,52 @@
 }
 
 Boot
+boot_level_from_string( const string boot_level_string )
+{
+    if (boot_level_string == HARDSTR) return Boot::HARD;
+    if (boot_level_string == KEXECSTR) return Boot::KEXEC;
+    if (boot_level_string == SOFTSTR) return Boot::SOFT;
+    return Boot::NONE;
+}
+
+bool
+get_packages_section_value( econf_file *conffiles, const string& package_name, 
string& value )
+{
+    char *val = NULL;
+    econf_err error = econf_getStringValue(conffiles, "Packages", 
package_name.c_str(), &val);
+    if (!error && val != NULL) {
+        value = val;
+       free(val);
+       return true;
+    }
+
+    /* Not found by exact package name - the key itself may be a "provides:" 
capability. */
+    char **keys = NULL;
+    size_t keys_length = 0;
+    econf_err keys_error = econf_getKeys(conffiles, "Packages", &keys_length, 
&keys);
+    if (keys_error) return false;
+
+    bool found = false;
+    for (size_t i = 0; i < keys_length && !found; i++) {
+        string key(keys[i]);
+       if (!boost::starts_with(key, "provides:")) continue;
+
+       if (provides(key.substr(9), package_name)) {
+           char *pval = NULL;
+           econf_err val_error = econf_getStringValue(conffiles, "Packages", 
keys[i], &pval);
+           if (!val_error && pval != NULL) {
+               value = pval;
+               free(pval);
+               found = true;
+           }
+       }
+    }
+    econf_freeArray(keys);
+
+    return found;
+}
+
+Boot
 check_boot_level( const Boot current_boot_level, const Boot boot_level, const 
string package_name, econf_file *conffiles )
 {
     /* The function will be called for the same package for boot level "soft", 
"kexec" and "hard" in that order. */
@@ -134,6 +180,28 @@
        return ret;
     }
 
+    /* The [Packages] section has a higher priority than [main]. It allows 
setting the     */
+    /* boot level directly for one specific package, e.g. "grub2 = kexec". The 
key is      */
+    /* matched either as an exact package name or, like in [main], as a 
provides           */
+    /* capability tagged with the "provides:" prefix.                          
            */
+    /* If such an entry matches this package, it alone decides the boot level 
for it,      */
+    /* [main] and installhint(reboot-needed) are then not evaluated for it 
anymore.        */
+    std::string pkg_boot_level_string;
+    if (get_packages_section_value(conffiles, package_name, 
pkg_boot_level_string)) {
+        boost::trim(pkg_boot_level_string);
+
+       Boot pkg_boot_level = boot_level_from_string(pkg_boot_level_string);
+       if (pkg_boot_level == Boot::NONE) {
+           cerr << "WARNING:(boot-plugin): unknown boot level '" << 
pkg_boot_level_string <<
+                   "' for package " << package_name << " in section 
[Packages]" << endl;
+       } else if (pkg_boot_level == boot_level) {
+           ret = boot_level;
+           cerr << "DEBUG:(boot-plugin):  --- Found package " << package_name 
<< " in section [Packages]" << endl;
+           cerr << "DEBUG:(boot-plugin):      Found for level: " << 
boot_level_string << endl;
+       }
+       return ret;
+    }
+
     char *dep_list = NULL;
     bool found = false;
     econf_err e_error = econf_getStringValue(conffiles, "main", 
boot_level_string, &dep_list);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/zypp-boot-plugin-0.0.13/tests/meson.build 
new/zypp-boot-plugin-0.0.14/tests/meson.build
--- old/zypp-boot-plugin-0.0.13/tests/meson.build       2025-05-15 
16:40:04.000000000 +0200
+++ new/zypp-boot-plugin-0.0.14/tests/meson.build       2026-10-28 
14:15:46.000000000 +0100
@@ -9,9 +9,6 @@
 test('tst-provides', find_program(meson.current_source_dir() 
+'/tst_provides.sh'),
   env : ['ZYPP_BOOT_PLUGIN_CONFIG=../tests/zypp-boot-plugin.conf', 
'ZYPP_BOOT_PLUGIN_REBOOT_FILE=./tst_provides.out'])
 
-test('tst-kernel', find_program(meson.current_source_dir() +'/tst_kernel.sh'),
-  env : ['ZYPP_BOOT_PLUGIN_CONFIG=../tests/zypp-boot-plugin.conf', 
'ZYPP_BOOT_PLUGIN_REBOOT_FILE=./tst_kernel.out'])
-
 test('tst-multi', find_program(meson.current_source_dir() +'/tst_multi.sh'),
   env : ['ZYPP_BOOT_PLUGIN_CONFIG=../tests/zypp-boot-plugin.conf', 
'ZYPP_BOOT_PLUGIN_REBOOT_FILE=./tst_multi.out'])
 
@@ -25,4 +22,15 @@
   env : ['ZYPP_BOOT_PLUGIN_CONFIG=../tests/zypp-boot-plugin.conf', 
'ZYPP_BOOT_PLUGIN_REBOOT_FILE=./tst_overwrite1.out'])
 
 test('tst-overwrite2', find_program(meson.current_source_dir() 
+'/tst_overwrite2.sh'),
-  env : ['ZYPP_BOOT_PLUGIN_CONFIG=../tests/zypp-boot-plugin.conf', 
'ZYPP_BOOT_PLUGIN_REBOOT_FILE=./tst_overwrite2.out'])
\ No newline at end of file
+  env : ['ZYPP_BOOT_PLUGIN_CONFIG=../tests/zypp-boot-plugin.conf', 
'ZYPP_BOOT_PLUGIN_REBOOT_FILE=./tst_overwrite2.out'])
+
+test('tst-packages-section', find_program(meson.current_source_dir() 
+'/tst_packages_section.sh'),
+  env : ['ZYPP_BOOT_PLUGIN_CONFIG=../tests/zypp-boot-plugin.conf', 
'ZYPP_BOOT_PLUGIN_REBOOT_FILE=./tst_packages_section.out'])
+
+test('tst-packages-section-provides', find_program(meson.current_source_dir() 
+'/tst_packages_section_provides.sh'),
+  env : ['ZYPP_BOOT_PLUGIN_CONFIG=../tests/zypp-boot-plugin.conf', 
'ZYPP_BOOT_PLUGIN_REBOOT_FILE=./tst_packages_section_provides.out'])
+
+if host_machine.cpu() == 'x86_64'
+   test('tst-kernel', find_program(meson.current_source_dir() 
+'/tst_kernel.sh'),
+     env : ['ZYPP_BOOT_PLUGIN_CONFIG=../tests/zypp-boot-plugin.conf', 
'ZYPP_BOOT_PLUGIN_REBOOT_FILE=./tst_kernel.out'])
+endif
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/zypp-boot-plugin-0.0.13/tests/packages_section.protocol 
new/zypp-boot-plugin-0.0.14/tests/packages_section.protocol
--- old/zypp-boot-plugin-0.0.13/tests/packages_section.protocol 1970-01-01 
01:00:00.000000000 +0100
+++ new/zypp-boot-plugin-0.0.14/tests/packages_section.protocol 2026-10-28 
14:15:46.000000000 +0100
@@ -0,0 +1,16 @@
+COMMITEND
+
+{
+"TransactionStepList":[
+{
+  "solvable":{
+    "a":"x86_64",
+    "n":"zypp-boot-test-pkg",
+    "r":"1",
+    "v": "1.0"
+  },
+  "stage":"ok",
+  "type":"+"
+}
+]
+}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/zypp-boot-plugin-0.0.13/tests/packages_section_provides.protocol 
new/zypp-boot-plugin-0.0.14/tests/packages_section_provides.protocol
--- old/zypp-boot-plugin-0.0.13/tests/packages_section_provides.protocol        
1970-01-01 01:00:00.000000000 +0100
+++ new/zypp-boot-plugin-0.0.14/tests/packages_section_provides.protocol        
2026-10-28 14:15:46.000000000 +0100
@@ -0,0 +1,16 @@
+COMMITEND
+
+{
+"TransactionStepList":[
+{
+  "solvable":{
+    "a":"x86_64",
+    "n":"rpm",
+    "r":"1",
+    "v": "1.0"
+  },
+  "stage":"ok",
+  "type":"+"
+}
+]
+}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/zypp-boot-plugin-0.0.13/tests/tst_packages_section.sh 
new/zypp-boot-plugin-0.0.14/tests/tst_packages_section.sh
--- old/zypp-boot-plugin-0.0.13/tests/tst_packages_section.sh   1970-01-01 
01:00:00.000000000 +0100
+++ new/zypp-boot-plugin-0.0.14/tests/tst_packages_section.sh   2026-10-28 
14:15:46.000000000 +0100
@@ -0,0 +1,10 @@
+#!/bin/bash
+
+if test -f "$ZYPP_BOOT_PLUGIN_REBOOT_FILE"; then
+    rm $ZYPP_BOOT_PLUGIN_REBOOT_FILE
+fi
+
+# zypp-boot-test-pkg is listed as "reboot" in [main] but overridden to "kexec"
+# in [Packages], which has to win since [Packages] has a higher priority.
+./boot-plugin <../tests/packages_section.protocol
+grep kexec $ZYPP_BOOT_PLUGIN_REBOOT_FILE
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/zypp-boot-plugin-0.0.13/tests/tst_packages_section_provides.sh 
new/zypp-boot-plugin-0.0.14/tests/tst_packages_section_provides.sh
--- old/zypp-boot-plugin-0.0.13/tests/tst_packages_section_provides.sh  
1970-01-01 01:00:00.000000000 +0100
+++ new/zypp-boot-plugin-0.0.14/tests/tst_packages_section_provides.sh  
2026-10-28 14:15:46.000000000 +0100
@@ -0,0 +1,10 @@
+#!/bin/bash
+
+if test -f "$ZYPP_BOOT_PLUGIN_REBOOT_FILE"; then
+    rm $ZYPP_BOOT_PLUGIN_REBOOT_FILE
+fi
+
+# [Packages] can also match via a key tagged with "provides:", like [main] 
does.
+# "rpm" provides "rpminst", which is set to soft-reboot in [Packages].
+./boot-plugin <../tests/packages_section_provides.protocol
+grep soft-reboot $ZYPP_BOOT_PLUGIN_REBOOT_FILE
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/zypp-boot-plugin-0.0.13/tests/zypp-boot-plugin.conf 
new/zypp-boot-plugin-0.0.14/tests/zypp-boot-plugin.conf
--- old/zypp-boot-plugin-0.0.13/tests/zypp-boot-plugin.conf     2025-05-15 
16:40:04.000000000 +0200
+++ new/zypp-boot-plugin-0.0.14/tests/zypp-boot-plugin.conf     2026-10-28 
14:15:46.000000000 +0100
@@ -28,7 +28,7 @@
 ## Default value:
 ##     empty
 ##
-reboot = grub2
+reboot = grub2,zypp-boot-test-pkg
 
 ##
 ## Packages for which a kexec call is needed at least after they have been
@@ -68,3 +68,21 @@
 ##
 soft-reboot = glibc, dbus-broker, dbus-1-daemon, 
libopenssl[0-9]?_?[0-9]?_?[0-9]?, libopenssl[0-9]?_?[0-9]?_?[0-9]?-32bit
 
+[Packages]
+
+##
+## Alternative way of defining the required boot level, one entry per package.
+## Entries here have a higher priority than the entries in [main].
+##
+## zypp-boot-test-pkg is also listed in [main]'s "reboot" list above (HARD);
+## this entry overrides it to "kexec" and is used to test that priority.
+##
+zypp-boot-test-pkg = kexec
+
+##
+## A provides capability can also be used as the key, tagged with "provides:"
+## like in [main]. This is used to test that the "rpm" package (which
+## provides "rpminst") gets a soft-reboot level.
+##
+provides:rpminst = soft-reboot
+

Reply via email to