>>>>> Bernhard R Link <brl...@debian.org> writes:
>>>>> * Simon McVittie <s...@debian.org> [120926 18:50]:

        [Cc: 688...@bugs.debian.org.]

 >> ... but I don't think this is the right way to make it happen.
 >> Please research previous discussion to check that you're not missing
 >> arguments that have happened in the past, then if you still think
 >> your proposal is the best option, take it upstream.

 > This was already taken upstream

        Could you please provide an URI of the prior discussion?  TIA.

 > and upstream's opinion was "if we do this as the unix guys expect
 > then users complain that changing $HOME changes the home directory.".

        The point is that the home directory is exactly “the directory
        pointed to by the HOME environment variable.”  At least on the
        Unix-like systems.

        It's just like the user's shell is the one pointed to by
        ${SHELL}, and the user's executables' search path is the
        directories listed in ${PATH}.  Never an “ordinary” program is
        expected to use a system-wide configuration, or a hard-coded
        value, for these.

[…]

 > The documentation for g_get_home_dir [1] also documents what a proper
 > program can do, it's a simple:

 >  const char *homedir = g_getenv ("HOME");
 >    if (!homedir)
 >       homedir = g_get_home_dir ();

 > instead of using get_get_home_dir directly.

        Actually, as pointed out in [2], a conforming application should
        use g_get_user_cache_dir (), g_get_user_data_dir (), and
        g_get_user_config_dir () instead.

        Alas, the GLib implementation of these functions relies on
        g_get_home_dir (), and thus itself fails to conform to the
        specification [3], which explicitly requires that the HOME
        variable's value is used.  (FWIW, it doesn't even mention
        getpwuid () or passwd(5).)

[2] news:506480fe.4060...@gnome.org
    http://permalink.gmane.org/gmane.comp.gnome.gtk+.devel.general/22728
[3] http://standards.freedesktop.org/basedir-spec/basedir-spec-0.8.html

 > (And tip of the day: If you are working with multiple home
 > directories regulariy and get tired of badly written programs
 > confusing the initial home directory with the current one, setting
 > the initial home directory to the empty string can help in many cases
 > (though you lose having a default one for programs not getting one
 > set)).

        The question is, where Bash will get its ~/.bash_profile from,
        then?

        A “proper” hack (for a certain definition thereof) would be to
        use an LD_PRELOAD module, redefining either g_get_home_dir (),
        or, perhaps, getpwuid () (to catch the cases getpwuid () ends up
        being used for no good reason at all.).

 > [1] For example
 > http://developer.gnome.org/glib/2.33/glib-Miscellaneous-Utility-Functions.html#g-get-home-dir

-- 
FSF associate member #7257


--
To UNSUBSCRIBE, email to debian-bugs-dist-requ...@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org

Reply via email to