Script 'mail_helper' called by obssrc
Hello community,

here is the log from the commit of package transactional-update for 
openSUSE:Factory checked in at 2022-08-23 14:25:46
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/transactional-update (Old)
 and      /work/SRC/openSUSE:Factory/.transactional-update.new.2083 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "transactional-update"

Tue Aug 23 14:25:46 2022 rev:90 rq:998705 version:4.0.1

Changes:
--------
--- 
/work/SRC/openSUSE:Factory/transactional-update/transactional-update.changes    
    2022-08-09 15:26:15.145265179 +0200
+++ 
/work/SRC/openSUSE:Factory/.transactional-update.new.2083/transactional-update.changes
      2022-08-23 14:26:19.459183546 +0200
@@ -1,0 +2,11 @@
+Mon Aug 22 15:14:24 UTC 2022 - Fabian Vogt <fv...@suse.com>
+
+- Version 4.0.1
+  - create_dirs_from_rpmdb: Just warn if no default SELinux context found
+    [gh#openSUSE/transactional-update#88], [bsc#1188215]
+  - create_dirs_from_rpmdb: Don't update the rpmdb cookie on failure
+    [gh#openSUSE/transactional-update#88]
+  - Handle directories owned by multiple packages
+    [gh#openSUSE/transactional-update#90], [bsc#1188215]
+
+-------------------------------------------------------------------

Old:
----
  transactional-update-4.0.0.tar.gz

New:
----
  transactional-update-4.0.1.tar.gz

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

Other differences:
------------------
++++++ transactional-update.spec ++++++
--- /var/tmp/diff_new_pack.88oj0D/_old  2022-08-23 14:26:20.059184867 +0200
+++ /var/tmp/diff_new_pack.88oj0D/_new  2022-08-23 14:26:20.063184876 +0200
@@ -26,7 +26,7 @@
 %{!?_distconfdir: %global _distconfdir %{_prefix}%{_sysconfdir}}
 
 Name:           transactional-update
-Version:        4.0.0
+Version:        4.0.1
 Release:        0
 Summary:        Transactional Updates with btrfs and snapshots
 License:        GPL-2.0-or-later AND LGPL-2.1-or-later

++++++ transactional-update-4.0.0.tar.gz -> transactional-update-4.0.1.tar.gz 
++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/transactional-update-4.0.0/NEWS 
new/transactional-update-4.0.1/NEWS
--- old/transactional-update-4.0.0/NEWS 2022-08-08 16:10:36.000000000 +0200
+++ new/transactional-update-4.0.1/NEWS 2022-08-22 17:09:42.000000000 +0200
@@ -2,6 +2,14 @@
 
 Copyright (C) 2016-2022 Thorsten Kukuk, Ignaz Forster et al.
 
+Version 4.0.1
+* create_dirs_from_rpmdb: Just warn if no default SELinux context found
+  [gh#openSUSE/transactional-update#88], [bsc#1188215]
+* create_dirs_from_rpmdb: Don't update the rpmdb cookie on failure
+  [gh#openSUSE/transactional-update#88]
+* Handle directories owned by multiple packages
+  [gh#openSUSE/transactional-update#90], [bsc#1188215]
+
 Version 4.0.0
 * Last minute interface change: Changed "List" method of Snapshot D-Bus
   interface to return a map of properties instead of a comma separated
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/transactional-update-4.0.0/configure.ac 
new/transactional-update-4.0.1/configure.ac
--- old/transactional-update-4.0.0/configure.ac 2022-08-08 16:10:36.000000000 
+0200
+++ new/transactional-update-4.0.1/configure.ac 2022-08-22 17:09:42.000000000 
+0200
@@ -1,5 +1,5 @@
 dnl Process this file with autoconf to produce a configure script.
-AC_INIT(transactional-update, 4.0.0)
+AC_INIT(transactional-update, 4.0.1)
 # Increase on any interface change and reset revision
 LIBTOOL_CURRENT=4
 # Increase or reset on any VERSION update
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/transactional-update-4.0.0/sbin/create_dirs_from_rpmdb.c 
new/transactional-update-4.0.1/sbin/create_dirs_from_rpmdb.c
--- old/transactional-update-4.0.0/sbin/create_dirs_from_rpmdb.c        
2022-08-08 16:10:36.000000000 +0200
+++ new/transactional-update-4.0.1/sbin/create_dirs_from_rpmdb.c        
2022-08-22 17:09:42.000000000 +0200
@@ -243,6 +243,30 @@
             {.tv_sec = node->fmtime, .tv_usec = 0},
             {.tv_sec = node->fmtime, .tv_usec = 0}};
 
+        /* Check whether the directory was already handled.
+         * The list is sorted, so only the previous one needs to be checked. */
+        if (i > 0 && strcmp(node[-1].dirname, node[0].dirname) == 0) {
+            struct node *last = &node[-1];
+            if (debug_flag)
+                printf("%s already seen\n", node->dirname);
+
+            if (last->user_id != node->user_id || last->group_id != 
node->group_id)
+                fprintf(stderr, "Warning: Conflicting owners (%ld:%ld and 
%ld:%ld) for %s\n",
+                        (long)last->user_id, (long)last->group_id,
+                        (long)node->user_id, (long)node->group_id,
+                        node->dirname);
+
+            if (last->fmode != node->fmode) {
+                char *lastperms = fmode2str(last->fmode), *nodeperms = 
fmode2str(node->fmode);
+                fprintf(stderr, "Warning: Conflicting modes (%s and %s) for 
%s\n",
+                        lastperms, nodeperms, node->dirname);
+                free(lastperms);
+                free(nodeperms);
+            }
+
+            continue;
+        }
+
         if (verbose_flag)
             printf("Create %s\n", node->dirname);
 
@@ -265,6 +289,11 @@
         /* set selinux file context */
         if (use_selinux) {
             if (selabel_lookup_raw(hnd, &newcon, node->dirname, node->fmode) < 
0) {
+                if (errno == ENOENT) {
+                    fprintf(stderr, "Warning: No default context for directory 
'%s'\n", node->dirname);
+                    continue;
+                }
+
                 fprintf(stderr, "Failed to get default context for directory 
'%s': %m\n", node->dirname);
                 rmdir(node->dirname);
                 rc = 1;
@@ -436,7 +465,7 @@
     /* XXX missing: free list */
 
     /* Can't do anything if this fails anyway. */
-    if (rpmdb_cookie)
+    if (ec == 0 && rpmdb_cookie)
         rpmCookieWrite(rpmdb_cookie);
 
     rpmdbFreeIterator(mi);

Reply via email to