[rfc][icedtea-web] fix for RH947647, following the XDG basedir specification

Jiri Vanek jvanek at redhat.com
Tue May 21 03:53:53 PDT 2013


On 05/21/2013 03:38 AM, Omair Majid wrote:
> Hi Jiri,
>
> On 05/20/2013 03:11 PM, Jiri Vanek wrote:
>> This fix is migrating us to  ~/.config/icedtea and ~/.cache/icedtea
>> instead of ~/.icedtea.

Hello Omair! Thank you very much for feedback. Thou you have unwillingly fell into endless discussion :)
//which hopefully will lead to best solution ;)
>
> We decided on the current paths (and files and formats) to stay as close
> to the proprietary JREs as possible. We have deviated from this in the

I was not aware of this, but maybe there is time to revalidate.
  - What benefits we have from keeping the like-proprietary plugin structure?
    - Are we still close enough to it?
  - What benefits we can have fro moving to new one?
    - and how to achieve this painlessly...


So my answers:
   - none
     - have no idea ;)
   - All our main "customers" are using the XDG and bug have been already filled - 
https://bugzilla.redhat.com/show_bug.cgi?id=947647#c4 - is explaining more deeply (second link)
TBH - I liked the old structure :)

note - I do not insist on this patch. It was proposed to 1.5  - 
http://icedtea.classpath.org/wiki/IcedTea-Web#IcedTea-Web_1.5   - and Deepak Agreed  - but this can 
be of ocurse reverted - as I noted, I do not insists.
   - I have hard-coded the paths -  It was because of my ideas appeared to be in dead end, and so in 
good condition to initialise the patch
    Can we support both, or at  least "both" ?
    Need to support the 1.4  and older is a msut of course.

> past (the contents of the cache directory, for example), but it's either
> because of something not (yet) implemented in icedtea-web, or something
> the user should never have to care about (like cache directory layout).
>
> I am not sure if that decision was perfect, but if we are going to
> change this now, I would like us to weigh all the pros and cons.
>
> As far as the patch itself goes, two things jump out to me:
>
> 1. We need to stay backwards compatible, if possible. For things like
> configuration files, we should check the old locations too. For the
> persistence cache, not reading the old data is like throwing away user's
> data.

ouch. 99% of this patch is focussed on backward compatibility. see the 
move14AndOlderFilesTo15Structure() method (and its usages)! And launchers....

>
> 2. The patch seems to be missing support for using the environment
> variables (such as $XDG_CONFIG_DIRS) to specify the locations of the
> directories.

Yes, this was intentional. It will need more tuning and more adaptations.

Currently there are specified relative paths :
$XDG_DATA_HOME  -user-specific data files
$XDG_CONFIG_HOME - user-specific configuration
$XDG_CACHE_HOME - There is a single base directory relative to which user-specific non-essential 
(cached) data should be written.
$XDG_RUNTIME_DIR -  user-specific runtime files and other file

Fromthose I have used
$XDG_CONFIG_HOME - for deployment.properties(.old), security and .appletTrustSettings and log
$XDG_CACHE_HOME - for cache, tmp and pcache (persistence)

Some of them are worthy to other XDG, but I'm not fan of such a crumble [rfc] ?


Some more thoughts about this:
  - eg I have non XDG variable set, but many applications have already started to use theirs default 
values.

- If we decide to move to ./config and ./cache:
    if used XDG* variables are set, then use them. otherwise use ./config and ./cache
    if they change, user is on his own?

- If we decide to not to move to ./config and ./cache:
    if used XDG* variables are set, then use them. otherwise use ./icedtea
    if they change, user is on his own?

- how about xdg not following systems (windows) ? Keep .icedtea or move to ./config and ./cache ?


Thanx for any hints


J.



More information about the distro-pkg-dev mailing list