[Evolution-hackers] XDG Base Directories



Once thing I'd like to get done before Evolution 3.0 is dismantling
~/.evolution and moving user-specific data to relocatable XDG base
directories [1].  I have an initial proposal of what should go where.

Migration should just be a series of straight-forward move commands,
plus a few subtle renames.  Not sure yet if I'm gonna code this all up
in C or just write a shell script to invoke.

I'd like to get this in before I get much further on my gsettings
branch, as I'll be changing how we store account data (no more XML
blobs!) and our directory layout closely ties into it.

See additional comments below.


.cache/
  +-- evolution/
        +-- addressbook/
        |     +-- <<ebook-backend-data>>
        +-- calendar/
        |     +-- <<ecal-backend-data>>
        +-- http/
        |     +-- <<html-mail-images>>
        +-- mail/
        |     +-- <<camel-provider-data>>
        +-- tasks/
        |     +-- <<ecal-backend-data>>
        +-- memos/
              +-- <<ecal-backend-data>>

.config/
  +-- evolution/
        +-- addressbook/
        |     +-- views/
        |     |     +-- <<gal-view-files>>
        |     +-- searches.xml
        |     +-- state.ini
        +-- calendar/
        |     +-- views/
        |     |     +-- <<gal-view-files>>
        |     +-- searches.xml
        |     +-- state.ini
        |-- mail/
        |     +-- camel/
        |     |     +-- <<camel-state-files>>
        |     +-- views/
        |     |     +-- <<gal-view-files>>
        |     +-- filters.xml
        |     +-- searches.xml
        |     +-- state.ini
        |     +-- vfolders.xml
        +-- memos/
        |     +-- views/
        |     |     +-- <<gal-view-files>>
        |     +-- searches.xml
        |     +-- state.ini
        +-- signatures/
        |     +-- <<user-created-signatures>>
        +-- tasks/
        |     +-- views/
        |     |     +-- <<gal-view-files>>
        |     +-- searches.xml
        |     +-- state.ini
        +-- categories.xml
        +-- datetime-formats.ini
        +-- pkcs11.txt
        +-- printing.ini
        +-- session.ini

.local/
  +-- share/
        +-- evolution/
              +-- addressbook/
              |     +-- <<local-backend-files>>
              +-- calendar/
              |     +-- <<local-backend-files>>
              +-- mail/
              |     +-- <<local-backend-files>>
              +-- memos/
              |     +-- <<local-backend-files>>
              +-- tasks/
              |     +-- <<local-backend-files>>
              +-- camel-cert.db
              +-- cert8.db
              +-- cert9.db
              +-- key3.db
              +-- key4.db
              +-- mapi-profiles.ldb
              +-- secmod.db


Comments:

* ~/.evolution/cache moves to ~/.cache/evolution, with one exception:
  just use /tmp for stuff that normally goes in ~/.evolution/cache/tmp.

* Cached Camel provider data moves to ~/.cache/evolution/mail.  This
  includes folders.db.  Files for local accounts will be divided up:
  index files for searching would go in ~/.cache, whereas actual mail
  content (mbox/Maildir/etc.) would go in ~/.local.  Need to think on
  that some more.

* ~/.cache/evolution/http will eventually die when we move to WebKit,
  since it uses (or will soon use) its own disk cache.

* ~/.evolution/$COMP/local moves to ~/.local/share/evolution/$COMP.

* I debated whether certificate and profile databases are data files or
  configuration files.  I decided data files, based on my rule of thumb
  that configuration files should be human-readable.


Any comments or concerns?  Have I missed anything?



[1] http://standards.freedesktop.org/basedir-spec/basedir-spec-latest.html



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]