upload tizen1.0 source
[framework/base/gconf-dbus.git] / packaging / 02_poweroff.dpatch
1 #! /bin/sh /usr/share/dpatch/dpatch-run
2 ## 02_poweroff.dpatch by Youngjae Shin <yj99.shin@samsung.com>
3 ##
4 ## All lines beginning with `## DP:' are a description of the patch.
5 ## DP: for robustness when it is powered off
6
7 @DPATCH@
8
9 diff -urN gconf-dbus-2.16.0.orig/backends/markup-tree.c gconf-dbus-2.16.0/backends/markup-tree.c
10 --- gconf-dbus-2.16.0.orig/backends/markup-tree.c       2009-12-15 14:44:25.000000000 +0900
11 +++ gconf-dbus-2.16.0/backends/markup-tree.c    2009-12-15 14:39:59.000000000 +0900
12 @@ -3569,6 +3569,9 @@
13      }
14  }
15  
16 +/*
17 + * parse_tree with recovery mechanism for journaling 
18 + */
19  static void
20  parse_tree (MarkupDir   *root,
21              gboolean     parse_subtree,
22 @@ -3578,7 +3581,8 @@
23    GMarkupParseContext *context = NULL;
24    GError *error;
25    ParseInfo info;
26 -  char *filename;
27 +  char *filename, *newfilename;
28 +  char recovery_mode = 0;
29    FILE *f;
30  
31    if (!parse_subtree)
32 @@ -3590,6 +3594,7 @@
33  
34    error = NULL;
35  
36 +recovery:
37    f = g_fopen (filename, "rb");
38    if (f == NULL)
39      {
40 @@ -3605,6 +3610,24 @@
41        goto out;
42      }
43  
44 +  if((!recovery_mode)&&(!fread(&recovery_mode, 1, 1, f)))
45 +  {
46 +      if (f != NULL)
47 +         fclose (f);
48 +      newfilename = g_strconcat (filename, ".new", NULL);
49 +#ifdef G_OS_WIN32
50 +      newfilename = g_strconcat (filename, ".tmp", NULL);
51 +#endif
52 +      g_free (filename);
53 +      filename = newfilename;
54 +      recovery_mode = 1;
55 +      goto recovery;
56 +  }
57 +    else
58 +  {
59 +      fseek(f, 0, SEEK_SET);
60 +  }   
61 +
62    context = g_markup_parse_context_new (&gconf_parser,
63                                          0, &info, NULL);
64  
65 @@ -4371,7 +4394,8 @@
66  #ifdef G_OS_WIN32
67    tmp_filename = g_strconcat (filename, ".tmp", NULL);
68  #endif
69 -  new_fd = g_open (new_filename, O_WRONLY | O_CREAT, file_mode);
70 +  //Because ubi file system does not guarantee synchronization of data.
71 +  new_fd = g_open (new_filename, O_WRONLY | O_CREAT | O_SYNC, file_mode);
72    if (new_fd < 0)
73      {
74        err_str = g_strdup_printf (_("Failed to open \"%s\": %s\n"),
75 diff -urN gconf-dbus-2.16.0.orig/gconf/default.path.in gconf-dbus-2.16.0/gconf/default.path.in
76 --- gconf-dbus-2.16.0.orig/gconf/default.path.in        2009-12-15 14:44:25.000000000 +0900
77 +++ gconf-dbus-2.16.0/gconf/default.path.in     2009-12-15 14:27:50.000000000 +0900
78 @@ -18,7 +18,8 @@
79  include "$(HOME)/.gconf.path"
80  
81  # Give users a default storage location, ~/.gconf
82 -xml:readwrite:$(HOME)/.gconf
83 +#xml:readwrite:$(HOME)/.gconf
84 +xml:readwrite:/opt/var/gconf
85  
86  # To read in any defaults settings that the Sys Admin may have created
87  # prior to a desktop system upgrade. The SysAdmin can stick default values