Script 'mail_helper' called by obssrc
Hello community,

here is the log from the commit of package sysextmgr for openSUSE:Factory 
checked in at 2026-02-02 14:55:23
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/sysextmgr (Old)
 and      /work/SRC/openSUSE:Factory/.sysextmgr.new.1995 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "sysextmgr"

Mon Feb  2 14:55:23 2026 rev:6 rq:1330350 version:0.0+git20250924.8eb417e

Changes:
--------
--- /work/SRC/openSUSE:Factory/sysextmgr/sysextmgr.changes      2025-08-09 
20:04:38.290314755 +0200
+++ /work/SRC/openSUSE:Factory/.sysextmgr.new.1995/sysextmgr.changes    
2026-02-02 14:56:03.660716237 +0100
@@ -1,0 +2,8 @@
+Wed Sep 24 13:41:25 UTC 2025 - Thorsten Kukuk <[email protected]>
+
+- Update to version 0.0+git20250924.8eb417e:
+  * sysextmgrd: ignore images without metadata
+  * Implement reading of os-release from snapshots
+  * Adjust for new mkosi manifest format
+
+-------------------------------------------------------------------

Old:
----
  sysextmgr-0.0+git20250806.0599a82.tar.xz

New:
----
  sysextmgr-0.0+git20250924.8eb417e.tar.xz

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

Other differences:
------------------
++++++ sysextmgr.spec ++++++
--- /var/tmp/diff_new_pack.KkKtjh/_old  2026-02-02 14:56:04.208739402 +0100
+++ /var/tmp/diff_new_pack.KkKtjh/_new  2026-02-02 14:56:04.212739570 +0100
@@ -17,7 +17,7 @@
 
 
 Name:           sysextmgr
-Version:        0.0+git20250806.0599a82
+Version:        0.0+git20250924.8eb417e
 Release:        0
 Summary:        Tools to manage sysext-images on MicroOS
 License:        GPL-2.0-or-later

++++++ _servicedata ++++++
--- /var/tmp/diff_new_pack.KkKtjh/_old  2026-02-02 14:56:04.260741599 +0100
+++ /var/tmp/diff_new_pack.KkKtjh/_new  2026-02-02 14:56:04.264741769 +0100
@@ -1,6 +1,6 @@
 <servicedata>
 <service name="tar_scm">
                 <param 
name="url">https://github.com/thkukuk/sysextmgr.git</param>
-<param 
name="changesrevision">0599a827119c956fcf6efbfdcf2727fd368e5da7</param></service></servicedata>
+<param 
name="changesrevision">8eb417ef8a9e102c119abb2802016f75a9af1b38</param></service></servicedata>
 (No newline at EOF)
 

++++++ sysextmgr-0.0+git20250806.0599a82.tar.xz -> 
sysextmgr-0.0+git20250924.8eb417e.tar.xz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/sysextmgr-0.0+git20250806.0599a82/src/images-list.c 
new/sysextmgr-0.0+git20250924.8eb417e/src/images-list.c
--- old/sysextmgr-0.0+git20250806.0599a82/src/images-list.c     2025-08-06 
11:51:22.000000000 +0200
+++ new/sysextmgr-0.0+git20250924.8eb417e/src/images-list.c     2025-09-24 
15:41:25.000000000 +0200
@@ -518,13 +518,11 @@
          images[pos]->remote = true;
 
          r = image_json_from_url(url, list[i], &(images[pos]->deps), 
verify_signature);
+         if (r == -ENOENT)
+           r = image_manifest_from_url(url, list[i], &(images[pos]->deps), 
verify_signature);
          if (r < 0)
-           {
-             if (r == -ENOENT)
-               r = image_manifest_from_url(url, list[i], &(images[pos]->deps), 
verify_signature);
-             if (r < 0)
-               return r;
-           }
+           log_msg(LOG_INFO, "Meta data for image '%s' not Ok", list[i]);
+
          if (images[pos]->deps && osrelease)
            images[pos]->compatible =
              extension_release_validate(images[pos]->image_name,
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/sysextmgr-0.0+git20250806.0599a82/src/mkosi-manifest.c 
new/sysextmgr-0.0+git20250924.8eb417e/src/mkosi-manifest.c
--- old/sysextmgr-0.0+git20250806.0599a82/src/mkosi-manifest.c  2025-08-06 
11:51:22.000000000 +0200
+++ new/sysextmgr-0.0+git20250924.8eb417e/src/mkosi-manifest.c  2025-09-24 
15:41:25.000000000 +0200
@@ -27,7 +27,7 @@
   char *config_name;
   char *config_architecture;
   char *config_version;
-  sd_json_variant *extensions;
+  sd_json_variant *extension;
 };
 
 static void
@@ -37,7 +37,7 @@
   var->config_name = mfree(var->config_name);
   var->config_architecture = mfree(var->config_architecture);
   var->config_version = mfree(var->config_version);
-  var->extensions = sd_json_variant_unref(var->extensions);
+  var->extension = sd_json_variant_unref(var->extension);
 }
 
 static int
@@ -49,7 +49,7 @@
     .config_name = NULL,
     .config_architecture = NULL,
     .config_version = NULL,
-    .extensions = NULL,
+    .extension = NULL,
   };
   static const sd_json_dispatch_field dispatch_table[] = {
     { "name",         SD_JSON_VARIANT_STRING,  sd_json_dispatch_string,  
offsetof(struct manifest, config_name),         0 },
@@ -84,12 +84,12 @@
     .config_name = NULL,
     .config_architecture = NULL,
     .config_version = NULL,
-    .extensions = NULL,
+    .extension = NULL,
   };
   static const sd_json_dispatch_field dispatch_table[] = {
     { "manifest_version", SD_JSON_VARIANT_NUMBER,  sd_json_dispatch_int,     
offsetof(struct manifest, manifest_version), 0 },
     { "config",           SD_JSON_VARIANT_OBJECT,  sd_json_dispatch_variant, 
offsetof(struct manifest, config), 0 },
-    { "extensions",       SD_JSON_VARIANT_ARRAY,   sd_json_dispatch_variant, 
offsetof(struct manifest, extensions), SD_JSON_NULLABLE },
+    { "extension",        SD_JSON_VARIANT_OBJECT,  sd_json_dispatch_variant, 
offsetof(struct manifest, extension), SD_JSON_NULLABLE },
     {}
   };
   int r;
@@ -103,24 +103,13 @@
       return r;
     }
 
-  if (!sd_json_variant_is_array(p.extensions) || 
sd_json_variant_elements(p.extensions) != 1)
+  if (p.extension == NULL || sd_json_variant_is_null(p.extension))
     {
-      fprintf(stderr, "JSON extensions is no array or has not exactly one 
element.\n");
+      fprintf(stderr, "No JSON extension object available.\n");
       return -EINVAL;
     }
 
-  sd_json_variant *e = sd_json_variant_by_index(p.extensions, 0);
-  if (!sd_json_variant_is_array(e) || sd_json_variant_elements(e) != 2)
-    {
-      fprintf(stderr, "JSON sysext data is no array or has wrong number of 
elements.\n");
-      return -EINVAL;
-    }
-
-  /* Format is: "sysext", {...} */
-
-  e = sd_json_variant_by_index(e, 1);
-
-  r = parse_image_deps(e, res);
+  r = parse_image_deps(p.extension, res);
   if (r < 0)
     return r;
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/sysextmgr-0.0+git20250806.0599a82/src/osrelease.c 
new/sysextmgr-0.0+git20250924.8eb417e/src/osrelease.c
--- old/sysextmgr-0.0+git20250806.0599a82/src/osrelease.c       2025-08-06 
11:51:22.000000000 +0200
+++ new/sysextmgr-0.0+git20250924.8eb417e/src/osrelease.c       2025-09-24 
15:41:25.000000000 +0200
@@ -6,6 +6,7 @@
 #include <libeconf.h>
 
 #include "basics.h"
+#include "download.h"
 #include "osrelease.h"
 
 void
@@ -33,8 +34,10 @@
 int
 load_os_release(const char *prefix, struct osrelease **res)
 {
+  _cleanup_free_ char *osrelease = NULL;
   _cleanup_(econf_freeFilep) econf_file *key_file = NULL;
   econf_err error;
+  int r;
 
   assert(res);
 
@@ -42,12 +45,36 @@
   if (res == NULL)
     return -ENOMEM;
 
-  /* XXX add prefix to look in snapshots */
-  const char *osrelease = NULL;
-  if (access("/etc/os-release", F_OK) == 0)
-    osrelease = "/etc/os-release";
+
+  if (!isempty(prefix))
+    {
+      r = join_path(prefix, "/etc/os-release", &osrelease);
+      if (r < 0)
+       return r;
+    }
   else
-    osrelease = "/usr/lib/os-release";
+    {
+      osrelease = strdup("/etc/os-release");
+      if (!osrelease)
+       return -ENOMEM;
+    }
+
+  if (access(osrelease, F_OK) != 0)
+    {
+      osrelease = mfree(osrelease);
+      if (!isempty(prefix))
+       {
+         r = join_path(prefix, "/usr/lib/os-release", &osrelease);
+         if (r < 0)
+           return r;
+       }
+      else
+       {
+         osrelease = strdup("/usr/lib/os-release");
+         if (!osrelease)
+           return -ENOMEM;
+       }
+  }
 
   if ((error = econf_readFile(&key_file, osrelease, "=", "#")))
     {
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/sysextmgr-0.0+git20250806.0599a82/src/sysextmgrd.c 
new/sysextmgr-0.0+git20250924.8eb417e/src/sysextmgrd.c
--- old/sysextmgr-0.0+git20250806.0599a82/src/sysextmgrd.c      2025-08-06 
11:51:22.000000000 +0200
+++ new/sysextmgr-0.0+git20250924.8eb417e/src/sysextmgrd.c      2025-09-24 
15:41:25.000000000 +0200
@@ -418,24 +418,27 @@
 
   for (size_t i = 0; images[i] != NULL; i++)
     {
-      r = sd_json_variant_append_arraybo(&array,
-                                        SD_JSON_BUILD_PAIR_STRING("NAME", 
images[i]->name),
-                                        
SD_JSON_BUILD_PAIR_STRING("IMAGE_NAME", images[i]->image_name),
-                                        
SD_JSON_BUILD_PAIR_STRING("SYSEXT_VERSION_ID", 
images[i]->deps->sysext_version_id),
-                                        
SD_JSON_BUILD_PAIR_STRING("SYSEXT_SCOPE", images[i]->deps->sysext_scope),
-                                        SD_JSON_BUILD_PAIR_STRING("ID", 
images[i]->deps->id),
-                                        
SD_JSON_BUILD_PAIR_STRING("SYSEXT_LEVEL", images[i]->deps->sysext_level),
-                                        
SD_JSON_BUILD_PAIR_STRING("VERSION_ID", images[i]->deps->version_id),
-                                        
SD_JSON_BUILD_PAIR_STRING("ARCHITECTURE", images[i]->deps->architecture),
-                                        SD_JSON_BUILD_PAIR_BOOLEAN("LOCAL", 
images[i]->local),
-                                        SD_JSON_BUILD_PAIR_BOOLEAN("REMOTE", 
images[i]->remote),
-                                        
SD_JSON_BUILD_PAIR_BOOLEAN("INSTALLED", images[i]->installed),
-                                        
SD_JSON_BUILD_PAIR_BOOLEAN("COMPATIBLE", images[i]->compatible),
-                                        SD_JSON_BUILD_PAIR_INTEGER("REFCOUNT", 
images[i]->refcount));
-      if(r < 0)
+      if (images[i]->deps)
        {
-         log_msg(LOG_ERR, "Appending array failed: %s", strerror(-r));
-         /* XXX */
+         r = sd_json_variant_append_arraybo(&array,
+                                            SD_JSON_BUILD_PAIR_STRING("NAME", 
images[i]->name),
+                                            
SD_JSON_BUILD_PAIR_STRING("IMAGE_NAME", images[i]->image_name),
+                                            
SD_JSON_BUILD_PAIR_STRING("SYSEXT_VERSION_ID", 
images[i]->deps->sysext_version_id),
+                                            
SD_JSON_BUILD_PAIR_STRING("SYSEXT_SCOPE", images[i]->deps->sysext_scope),
+                                            SD_JSON_BUILD_PAIR_STRING("ID", 
images[i]->deps->id),
+                                            
SD_JSON_BUILD_PAIR_STRING("SYSEXT_LEVEL", images[i]->deps->sysext_level),
+                                            
SD_JSON_BUILD_PAIR_STRING("VERSION_ID", images[i]->deps->version_id),
+                                            
SD_JSON_BUILD_PAIR_STRING("ARCHITECTURE", images[i]->deps->architecture),
+                                            
SD_JSON_BUILD_PAIR_BOOLEAN("LOCAL", images[i]->local),
+                                            
SD_JSON_BUILD_PAIR_BOOLEAN("REMOTE", images[i]->remote),
+                                            
SD_JSON_BUILD_PAIR_BOOLEAN("INSTALLED", images[i]->installed),
+                                            
SD_JSON_BUILD_PAIR_BOOLEAN("COMPATIBLE", images[i]->compatible),
+                                            
SD_JSON_BUILD_PAIR_INTEGER("REFCOUNT", images[i]->refcount));
+         if(r < 0)
+           {
+             log_msg(LOG_ERR, "Appending array failed: %s", strerror(-r));
+             /* XXX */
+           }
        }
     }
 

Reply via email to