Hello community,

here is the log from the commit of package dconf for openSUSE:Factory checked 
in at 2016-08-25 09:51:34
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/dconf (Old)
 and      /work/SRC/openSUSE:Factory/.dconf.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "dconf"

Changes:
--------
--- /work/SRC/openSUSE:Factory/dconf/dconf.changes      2016-08-17 
12:01:56.000000000 +0200
+++ /work/SRC/openSUSE:Factory/.dconf.new/dconf.changes 2016-08-25 
09:51:35.000000000 +0200
@@ -1,0 +2,9 @@
+Fri Aug 19 18:10:24 UTC 2016 - [email protected]
+
+- Add 0001-gvdb-Restore-permissions-on-changed-files.patch:
+  'dconf update' writes new contents into temporary file and
+  renames it to the original one, resulting permission
+  inconsistencies if umask has been changed before that. The patch
+  restores the changed permissions (bsc#971074, bgo#758066).
+
+-------------------------------------------------------------------

New:
----
  0001-gvdb-Restore-permissions-on-changed-files.patch

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

Other differences:
------------------
++++++ dconf.spec ++++++
--- /var/tmp/diff_new_pack.SfACrw/_old  2016-08-25 09:51:36.000000000 +0200
+++ /var/tmp/diff_new_pack.SfACrw/_new  2016-08-25 09:51:36.000000000 +0200
@@ -25,6 +25,8 @@
 Url:            http://live.gnome.org/dconf
 Source:         
http://download.gnome.org/sources/dconf/0.26/%{name}-%{version}.tar.xz
 Source99:       baselibs.conf
+# PATCH-FIX-UPSTREAM 0001-gvdb-Restore-permissions-on-changed-files.patch 
bsc#971074 bgo#758066 [email protected] -- Restore permissions on files changed 
by dconf update.
+Patch0:         0001-gvdb-Restore-permissions-on-changed-files.patch
 # For directory ownership
 BuildRequires:  dbus-1
 BuildRequires:  docbook-xsl-stylesheets
@@ -91,6 +93,7 @@
 
 %prep
 %setup -q
+%patch0 -p1
 
 %if 0%{?BUILD_FROM_VCS}
 [ -x ./autogen.sh ] && NOCONFIGURE=1 ./autogen.sh

++++++ 0001-gvdb-Restore-permissions-on-changed-files.patch ++++++
>From 4e303b094dc2b6c53739fb65f0e6e9f508a8f99c Mon Sep 17 00:00:00 2001
From: Marek Kasik <[email protected]>
Date: Fri, 13 Nov 2015 17:22:31 +0100
Subject: [PATCH] gvdb: Restore permissions on changed files

Restore permissions of files changed in gvdb_table_write_contents().
Since g_file_set_contents() doesn't preserve permissions it can happen
that if user calling e.g. "dconf update" has umask set then
the originally readable file becomes unreadable.
---
 gvdb/gvdb-builder.c | 8 ++++++++
 1 file changed, 8 insertions(+)

diff --git a/gvdb/gvdb-builder.c b/gvdb/gvdb-builder.c
index 90ea50b..a185cb3 100644
--- a/gvdb/gvdb-builder.c
+++ b/gvdb/gvdb-builder.c
@@ -21,6 +21,7 @@
 #include "gvdb-format.h"
 
 #include <glib.h>
+#include <glib/gstdio.h>
 #include <fcntl.h>
 #if !defined(G_OS_WIN32) || !defined(_MSC_VER)
 #include <unistd.h>
@@ -509,13 +510,20 @@ gvdb_table_write_contents (GHashTable   *table,
   gboolean status;
   FileBuilder *fb;
   GString *str;
+  GStatBuf buf;
+  gint stat_ret;
 
   fb = file_builder_new (byteswap);
   file_builder_add_hash (fb, table, &root);
   str = file_builder_serialise (fb, root);
 
+  stat_ret = g_stat (filename, &buf);
+
   status = g_file_set_contents (filename, str->str, str->len, error);
   g_string_free (str, TRUE);
 
+  if (stat_ret == 0)
+    g_chmod (filename, buf.st_mode);
+
   return status;
 }
-- 
2.5.0


Reply via email to