Hello community, here is the log from the commit of package gconf2 for openSUSE:Factory checked in at 2016-04-22 16:16:44 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/gconf2 (Old) and /work/SRC/openSUSE:Factory/.gconf2.new (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Package is "gconf2" Changes: -------- --- /work/SRC/openSUSE:Factory/gconf2/gconf2.changes 2014-11-13 09:16:41.000000000 +0100 +++ /work/SRC/openSUSE:Factory/.gconf2.new/gconf2.changes 2016-04-22 16:16:45.000000000 +0200 @@ -1,0 +2,6 @@ +Thu Apr 14 20:29:11 UTC 2016 - mgorse@suse.com + +- Add gconf2-fdatasync.patch: call fdatasync rather than fsync, + and only if not installing (bsc#909045). + +------------------------------------------------------------------- New: ---- gconf2-fdatasync.patch ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ gconf2.spec ++++++ --- /var/tmp/diff_new_pack.E4Dhqy/_old 2016-04-22 16:16:46.000000000 +0200 +++ /var/tmp/diff_new_pack.E4Dhqy/_new 2016-04-22 16:16:46.000000000 +0200 @@ -1,7 +1,7 @@ # # spec file for package gconf2 # -# Copyright (c) 2014 SUSE LINUX Products GmbH, Nuernberg, Germany. +# Copyright (c) 2016 SUSE LINUX GmbH, Nuernberg, Germany. # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed @@ -49,6 +49,8 @@ Patch5: gconf2-pk-default-path.patch # PATCH-FIX-UPSTREAM gconf2-pass-warning-to-caller.patch bnc#872110 dliang@suse.com Patch6: gconf2-pass-warning-to-caller.patch +# PATCH-FIX-OPENSUSE gconf2-fdatasync.patch mgorse@suse.com bsc#909045 -- Use fdatasync instead of fsync, and only if not installing +Patch7: gconf2-fdatasync.patch BuildRoot: %{_tmppath}/%{name}-%{version}-build Recommends: %{name}-lang = %{version} # gconf-sanity-check was dropped by upstream in GConf 3.2.6 @@ -100,6 +102,7 @@ %patch4 %patch5 -p1 %patch6 -p1 +%patch7 -p1 cp -a %{S:1} %{S:2} . %build ++++++ gconf2-fdatasync.patch ++++++ diff -ur *6.orig/backends/markup-tree.c GConf-3.2.6/backends/markup-tree.c --- *6.orig/backends/markup-tree.c 2011-08-15 21:59:31.000000000 -0500 +++ GConf-3.2.6/backends/markup-tree.c 2015-01-02 16:04:16.479034791 -0600 @@ -4350,6 +4350,12 @@ return dir->is_dir_empty; } +static gboolean +install_in_progress () +{ + return (g_strcmp0 (getenv ("YAST_IS_RUNNING"), "instsys") == 0); +} + static void save_tree_with_locale (MarkupDir *dir, gboolean save_as_subtree, @@ -4398,7 +4404,8 @@ */ if (dir->entries == NULL && (!save_as_subtree || dir->subdirs == NULL)) { - fsync (new_fd); + if (!install_in_progress ()) + fdatasync (new_fd); close (new_fd); new_fd = -1; goto done_writing; @@ -4479,7 +4486,7 @@ goto done_writing; } - if (fflush (f) != 0 || fsync (fileno (f)) < 0) + if (fflush (f) != 0 || (!install_in_progress () && fdatasync (fileno (f)) < 0)) { gconf_log (GCL_WARNING, _("Could not flush file '%s' to disk: %s"), diff -ur *6.orig/backends/xml-dir.c GConf-3.2.6/backends/xml-dir.c --- *6.orig/backends/xml-dir.c 2011-08-15 21:59:31.000000000 -0500 +++ GConf-3.2.6/backends/xml-dir.c 2015-01-02 16:04:16.480034791 -0600 @@ -383,7 +383,7 @@ #ifdef HAVE_FSYNC /* sync kernel-space buffers to disk */ - if (fsync (fd) == -1) + if (g_strcmp0 (getenv ("YAST_IS_RUNNING"), "instsys") && fdatasync (fd) == -1) return -1; #endif diff -ur *6.orig/gconf/gconfd.c GConf-3.2.6/gconf/gconfd.c --- *6.orig/gconf/gconfd.c 2012-04-25 20:12:49.000000000 -0500 +++ GConf-3.2.6/gconf/gconfd.c 2015-01-02 16:04:16.481034791 -0600 @@ -1878,7 +1878,7 @@ goto out; } - if (fsync (fd) < 0) + if (g_strcmp0 (getenv ("YAST_IS_RUNNING"), "instsys") && fdatasync (fd) < 0) { gconf_log (GCL_WARNING, _("Could not flush saved state file '%s' to disk: %s"),