You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
62 lines
1.8 KiB
62 lines
1.8 KiB
13 years ago
|
Description: Handle the G_HOME environment variable to override the passwd entry
|
||
|
This will allow to fix various kinds of build failures due to restricted
|
||
|
build environments.
|
||
|
Author: Josselin Mouette <joss@debian.org>
|
||
|
Origin: vendor
|
||
|
|
||
|
--- a/docs/reference/glib/running.sgml
|
||
|
+++ b/docs/reference/glib/running.sgml
|
||
|
@@ -213,6 +213,22 @@
|
||
|
</para>
|
||
|
</formalpara>
|
||
|
|
||
|
+<formalpara id="G_HOME">
|
||
|
+ <title><envar>G_HOME</envar></title>
|
||
|
+
|
||
|
+ <para>
|
||
|
+ For various reasons, GLib applications ignore the <envar>HOME</envar>
|
||
|
+ environment variable on Unix systems and will use the user directory
|
||
|
+ as specified by the <filename>passwd</filename> entry, which is more
|
||
|
+ reliable.
|
||
|
+ </para>
|
||
|
+ <para>
|
||
|
+ The <envar>G_HOME</envar> environment variable will override any
|
||
|
+ other setting for the home directory. It is not meant for daily usage,
|
||
|
+ but it is useful in testing or building environments.
|
||
|
+ </para>
|
||
|
+</formalpara>
|
||
|
+
|
||
|
</refsect2>
|
||
|
|
||
|
<refsect2 id="setlocale">
|
||
|
--- a/glib/gutils.c
|
||
|
+++ b/glib/gutils.c
|
||
|
@@ -1626,11 +1626,14 @@
|
||
|
}
|
||
|
#endif /* !G_OS_WIN32 */
|
||
|
|
||
|
+ g_home_dir = g_strdup (g_getenv ("G_HOME"));
|
||
|
+
|
||
|
#ifdef G_OS_WIN32
|
||
|
/* We check $HOME first for Win32, though it is a last resort for Unix
|
||
|
* where we prefer the results of getpwuid().
|
||
|
*/
|
||
|
- g_home_dir = g_strdup (g_getenv ("HOME"));
|
||
|
+ if (!g_home_dir)
|
||
|
+ g_home_dir = g_strdup (g_getenv ("HOME"));
|
||
|
|
||
|
/* Only believe HOME if it is an absolute path and exists */
|
||
|
if (g_home_dir)
|
||
|
@@ -1926,6 +1929,11 @@
|
||
|
* homedir = g_get_home_dir (<!-- -->);
|
||
|
* ]|
|
||
|
*
|
||
|
+ * However, to allow changing this value for testing and development
|
||
|
+ * purposes, the value of the <envar>G_HOME</envar> environment
|
||
|
+ * variable, if set, will override the <filename>passwd</filename>
|
||
|
+ * entry.
|
||
|
+ *
|
||
|
* Returns: the current user's home directory
|
||
|
*/
|
||
|
G_CONST_RETURN gchar*
|