wget-dev
[Top][All Lists]
Advanced

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

Re: [Wget-dev] wget2 | Follow XDG Base Directory Specification (!415)


From: Darshit Shah
Subject: Re: [Wget-dev] wget2 | Follow XDG Base Directory Specification (!415)
Date: Wed, 20 Feb 2019 10:04:07 +0000

I'm cleaning up the commits and pushing them soon. About XDG Base Directory 
Support, there's only a couple of projects that are actively rejecting it and 
they seem to have very good reasons.

## XDG Base Directory

For years, application developers in the Unix world have littered the home 
directory of users with configuration and data files. Just look the size of the 
output when you run `ls -la $HOME`, especially so, if you're using of of the 
larger Desktop Environments. This is tolerated because these files are usually 
'dotfiles' or hidden files. We don't see them during normal actions and tend to 
forget about them. But having them tucked away, and organized in a single 
location would be better. This is the origin of the [XDG Base Directory 
Specification](https://specifications.freedesktop.org/basedir-spec/basedir-spec-latest.html).

It specifies where an application SHOULD place its files. The advantage to 
this, apart from it being cleaner is also that there is a fixed location a user 
needs to look at when searching for configuration / data files. 

* [Debian Page](https://wiki.debian.org/XDGBaseDirectorySpecification)
* [Arch Page](https://wiki.archlinux.org/index.php/XDG_Base_Directory)
* https://ploum.net/207-modify-your-application-to-use-xdg-folders/
* [GNOME](https://wiki.gnome.org/Initiatives/GnomeGoals/XDGConfigFolders)

Many people, (me included), keep their configuration files under version 
control. This helps us a lot as well. See:
* https://github.com/ayekat/dotfiles
* https://github.com/Earnestly/dotfiles
* https://github.com/roosemberth/dotfiles
* https://github.com/davidosomething/dotfiles
* https://gitlab.com/darnir/dotfiles_manager

## Application Support

Many applications are adopting support for the XDG Base Directory 
Specification. The [Arch Wiki 
page](https://wiki.archlinux.org/index.php/XDG_Base_Directory) has an entire 
list of applications categorized by how well they support the spec.

Many popular applications such as, Git, i3wm, mutt, neovim, etc. natively have 
support for the specification.
On the other hand, there's software like Wget, coreutils, gdb, etc. which 
partially support the XDG Base Dir spec by allowing the user to override the 
location of the configuration file.
And then there's a few like Bash, OpenSSH, vim, etc. which have hardcoded 
defaults and do not support changing the locations at all.

For most applications, there is an open issue with the developers considering 
the move. Only a few have outright refused to adopt it:
* [Bash](https://savannah.gnu.org/support/?108134): Gave no reason
* [Tmux](https://github.com/tmux/tmux/issues/142): Maintenance overhead
* [OpenSSH](https://bugzilla.mindrot.org/show_bug.cgi?id=2050): Too entrenched, 
too many external tools rely on the file

I personally see no reason to _not_ move to using the XDG Basedir Spec.

-- 
Reply to this email directly or view it on GitLab: 
https://gitlab.com/gnuwget/wget2/merge_requests/415#note_143086636
You're receiving this email because of your account on gitlab.com.


reply via email to

[Prev in Thread] Current Thread [Next in Thread]