Journal Emplacement des fichiers de configuration

Posté par  .
Étiquettes :
0
22
août
2007
Cher journal,

J'ai attendu longtemps avant de t'écrire car je souhaitais éviter pour mon premier journal, de parler politique, cinéma ou de fournir un simple lien sans plus d'informations.

Si je prends la plume aujourd'hui c'est pour un de ces tout petit rien du quotidien extrêmement irritant : l'emplacement des fichiers de configuration.
J'ai horreur de cette horde de fichiers et de répertoires cachés à la racine de mon répertoire personnel, c'est l'anarchie !

On en a déjà parlé un peu ici : http://web.linuxfr.org/~finss/25067.html#857143
Il y a même un librairie, qui a été écrite pour rediriger l'écriture de ces fichiers dans le répertoire ~/etc/ : http://linuxfr.org/~lucd/17947.html

Mais le mieux c'est qu'il existe une spécification freedesktop pour l'écriture de ces fichiers : http://standards.freedesktop.org/basedir-spec/basedir-spec-0(...)
(pour résumé $XDG_CONFIG_HOME ou ~/.config par défaut)

Pour l'instant j'ai remarqué 2 logiciels qui suivent cette spécification :

- xfce
- deluge (client bittorrent)

Et j'en ai remarqué un grand nombre qui semble ne pas la suivre :

- vlc
- mplayer
- listen
- pidgin
- aMule
- beagle
- checkgmail
- evolution
- eclipse
- gconf
- inskape
- OpenOffice.org
- thunderbird
- firefox
- kde
- gnome

Alors ami libriste, si tu veux contribuer au libre de manière relativement simple, et améliorer l'organisation de ton répertoire personnel, essaye d'identifier les logiciels qui ne suivent pas cette spécification et demande au devs pourquoi ils ne la suivent pas et si ils pourraient à l'avenir la suivre.

PS :
En lisant pcinpact ce matin je ne résiste pas à la tentation de fournir ce petit lien sans plus d'informations et qui n'a rien a voir.
http://www.pcinpact.com/actu/news/38376-Vista-bug-audio-rese(...)
  • # Pour kde

    Posté par  . Évalué à 2.

    Il faut regler $KDEHOME, c'est par exemple à ta distribution de le faire. (sauf que $KDEHOME ne contient pas que des fichiers de configuration)
    • [^] # Re: Pour kde

      Posté par  . Évalué à 5.

      Oui, il ne faudrait absolument pas le supprimer sous prétexte de faire du ménage, car il peut contenir (entre autres) :
      - les mails de KMail
      - le carnet d'adresses
      - les contacts Kopete
      - Les mots de passe et autres infos gérés par Kwallet
      - La collection Amarok
      - Les pochettes d'Amarok
      - etc...
      • [^] # Re: Pour kde

        Posté par  . Évalué à 1.

        Non, chez moi (sur plusieurs ordinateurs différents) les mails sont dans ~/.Mail et seule la configuration de kmail se trouve dans le ~/.kde
        • [^] # Re: Pour kde

          Posté par  . Évalué à 1.

          L'emplacement des mails est le seul incorrect dans cette liste :)
          (et chez moi c'est ~/Mail, pas ~/.Mail, mais bon)
          • [^] # Re: Pour kde

            Posté par  . Évalué à 2.

            Chez moi ils sont dans ~/.kde3.5/share/apps/kmail/mail oO

            Enfin, maintenant je suis passé à l'Imap et j'utilise claws-mail, d'ailleurs si quelqu'un sait comment récupérer les mails de kmail (format mbox et Maildir apparemment) pour les importer dans claws sans réinstaller kmail je suis preneur.
            • [^] # Re: Pour kde

              Posté par  . Évalué à 2.

              il y a plus ou moins un plugin maildir (et mbox aussi) pour claws-mail (qui utilise MH par défaut)
              • [^] # Re: Pour kde

                Posté par  . Évalué à 2.

                Pas besoin de greffon pour mbox : la fonction d’importation de fichiers mbox est dans Claws-mail. Pour maildir, il y a des scripts de récupération (qui peuvent aussi récupérer les carnets d’adresses).

                Les greffons sont là pour ceux qui veulent utiliser mbox/maildir comme format de stockage _à la place_ de mh.
  • # Autres logiciels respectant la spécification freedesktop

    Posté par  . Évalué à 4.

    Tu as de plus en plus de logiciels qui respectent cette spécification :

    Audacious : lecteur audio
    gcstar : application pour gérer des collectections
    graveman : Graveur CD
    openbox : WM
    OroboROX : WM
    ROX-Filer : gestionnaire de fichier
    televidilo : lecteur de streaming vidéo
    thoggen : utilitaire de backup de DVD

    Je suis donc tout à fait d'accord quand tu dis d'en parler aux développeurs d'application ne suivant pas cette spécification car cela simplifiera grandement nos répertoires personnels.
  • # L'anarchie de Linux vs le contrôle de Windows

    Posté par  (site web personnel) . Évalué à 8.

    Sous Windows, Firefox et Thunderbird respectent les préconisations (fortes) de Microsoft, et placent bien ce qu'il faut où il faut, dans le répertoire de configuration qui va bien ( C:\Documents and Settings\XXX\Local Settings\Application Data pour les fichiers spécifiques à l'utilisateur ET la machine genre le cache, et C:\Documents and Settings\XXX\Application Data pour les fichiers spécifiques à l'utilisateur quelque soit la machine genre le fichier de configuration).
    Je crois que Pdigin et VLC pour ceux que j'utilise font pareil (pas ma machine perso, donc je ne peux pas dire la..).

    Le fait que Firefox et Thunderbird fassent correctement sous Windows et pas sous Linux montre (de mon point de vue) qu'il manque de grosses directives dirigistes pour Linux, ce qui pose des problèmes de cohérence de l'ensemble. déja qu'avec les /bin, /usr/bin et joyeusetés pas au même endroit suivant les distribs... C'est le plaisir du libre : on laisse faire, donc les gens font (différemment).

    Déja, tu le montres par toi-même : en une seul journal, tu fournis deux "préconisations" : ~/etc/ et ~/.config/

    freedesktop c'est une chose, mais ce n'est pas une directive venant officiellement de Linux, ça manque.

    Honnêtement, je ne sais même pas si il y a des directives coté Linux pour cette gestion des besoins par utilisateur en local et de profile itinérant. Je pense "par défaut" que c'est le bordel sous Linux et que j'ai pas besoin de chercher je ne trouverai pas, alors que pour windows je lis MSDN et trouve assez facilement les directives, car je pense "par défaut" qu'il va y avoir quelque chose. Voire je jette juste un oeil sur mon répertoire perso, toutes les applis tentent de respecter.

    Quand je cherche (sans parler de la base de registre, restons fichiers, oui Windows gère les fichiers...) :
    -conf par machine : C:\Documents and Settings\All Users\Application Data contre /etc, ex-aequo, voire avantage windows : le nom de Windows est plus "human readable" (Ca fait 6 ans que c'est comme ca...) que trois lettres ne voulant rien dire (Et caeteras?)
    - conf par utilisateur : C:\Documents and Settings\XXX\Application Data contre ~/.config/ peut-être
    - Conf par utilisateur et par machine : C:\Documents and Settings\XXX\Local Settings\Application Data contre quoi? ~/.config/ aussi? Mais si j'ai besoin de différencier? rien...

    Je passerai sur le truc bizarre que la configuration est dans le répertoire personnel de l'utilisateur, alors que sous windows c'est bien différencié (C:\Documents and Settings\XXX\My Documents), donc moins de risques (certes les /.config cache le dossier de config, mais c'est plus un hack qu'autre chose...)

    Microsoft marque un point : c'est (aujourd'hui) plus lisible, simple, compréhensible, normé, plus facile pour le programmeur que ne se posera pas de questions. Bref c'est pensé pour les autres, pour qu'ils développent facilement sous Windows, sans se prendre tête.


    PS : pour troller encore plus, on remarquera que Firefox est dans /Mozilla/firefox, et Thunderbird dans /Thunderbird. Un signe?
    • [^] # Re: L'anarchie de Linux vs le contrôle de Windows

      Posté par  . Évalué à 10.

      Je pense que le répertoire utilisateur sous Windows, ce serait plutôt C:\Documents and Settings\XXX\ .
      Après on sépare les "Documents" et "Settings" dans des dossiers séparés (resp. "My documents" et "Application Data").

      Le problème de Linux est que cette séparation n'est pas standardisée (ou plus ou moins, par fd.o).

      Au fait, c'est quoi "une préconisation officielle venant de Linux" ? Je crois que c'est là qu'il devient utile de rappeler que Linux n'est qu'un noyau, et n'a pas à faire de préconisations.
      Freedesktop.org est là pour ça, et ne se limite pas aux systèmes tournant par dessus un noyau Linux, et c'est tant mieux ! Le principal problème de cette initiative est que beaucoup de projets l'ignorent tout simplement. Pourtant, elle n'a pas de concurrente directe et il n'y a donc aucune bonne raison de ne pas s'y conformer.

      Sinon, il y a aussi les distrib, qui pourraient harmoniser les paquets qu'elles proposent, rendant par là même le concept de "recommandation officielle" inutile. Il se trouve qu'elles ne le font pas...
    • [^] # Re: L'anarchie de Linux vs le contrôle de Windows

      Posté par  . Évalué à 10.

      Merci pour tes remarques et cette comparaison avec Windows.


      Déja, tu le montres par toi-même : en une seul journal, tu fournis deux "préconisations" : ~/etc/ et ~/.config/


      libetc est une rustine moi je préconise seulement que les softs suivent la spécification freedesktop


      freedesktop c'est une chose, mais ce n'est pas une directive venant officiellement de Linux, ça manque.


      Mais Linux c'est quoi ? Il y a les développeurs du kernel mais c'est pas du tout leur problème. Freedesktop.org est justement là pour essayer d'unifier les usages et spécifier les conventions à suivre.

      La force du logiciel libre c'est aussi de pouvoir contribuer à changer les choses. Voilà pourquoi j'ai posté ce journal. J'ai tout de suite après été posté un bug sur le bugzilla du projet Eclipse et contacté les devs de vlc sur leur chan IRC (qui semblent plutôt réceptifs). Si chacun essaye de contacter un ou deux projet, il y a bien quelque logiciels qui vont suivre la spécification et ça sera toujours ça de gagné :)
      • [^] # Re: L'anarchie de Linux vs le contrôle de Windows

        Posté par  . Évalué à 3.

        c'est vrai que ce n'est pas à "linux" ou à ses ayants droit de donner de telles directives (mais s'ils le rappellaient et qu'ils s'engagaient dans ce processus cela ferait peut-être avancer les choses), pourtant dans freeBSD, qui gère tout le système en "userland" de A à Z, c'est le même foutoir, tous les logiciels ont leurs fichiers de config dans le ~/ et c'est super pénible, d'autant plus que tous les logiciels ne gèrent pas pareil l'affichage de ces fichiers : certains les cachent par défaut, d'autres pas, bref, là aussi cela pourrait être normalisé.

        - Déjà cela serait un grand pas si KDE et Gnome l'intégrait de base. D'autres suivraient par effet boule de neige.

        - ensuite, il pourrait également y avoir une ou des variables communes au bureau pour définir si l'affichage par défaut affiche ou pas les fichiers cachés (dans les navigateurs, les logiciels). Par exemple si je réactive dans KDE via konqueror l'affichage des fichiers cachés, que dans Evolution cela le prenne en compte. Cela serait plus cohérent.

        - Enfin, les distributions majeures ainsi que les *BSD pourraient avoir une politique plus stricte pour les logiciels ne suivant pas la norme freedesktop et le $XDG_CONFIG_HOME et intègrent de base un système comme celui présenté ici http://ordiluc.net/fs/libetc/ (d'ailleurs est-ce que qqu'un l'utilise, est-ce que c'est 100% fiable ?)

        Only wimps use tape backup: real men just upload their important stuff on megaupload, and let the rest of the world ~~mirror~~ link to it

        • [^] # Re: L'anarchie de Linux vs le contrôle de Windows

          Posté par  . Évalué à 5.

          > d'ailleurs est-ce que qqu'un l'utilise, est-ce que c'est 100% fiable ?
          Je l'utilise tous les jours, et c'est fiable. Les seuls trucs qui foirent, c'est les logiciels qui créent un socket unix dans ton ~/.quelque_chose genre Transmission. J'ai envoyé un patch pour ça (entre autre) il y a quelques jours. J'ai un peu galéré au début avec le .Xauthority, mais lire le README m'a donné la solution. Il faut juste se souvenir que LD_PRELOAD est supprimé par sudo et su.
        • [^] # Re: L'anarchie de Linux vs le contrôle de Windows

          Posté par  . Évalué à 4.

          c'est vrai que ce n'est pas à "linux" ou à ses ayants droit de donner de telles directives (mais s'ils le rappellaient et qu'ils s'engagaient dans ce processus cela ferait peut-être avancer les choses), pourtant dans freeBSD, qui gère tout le système en "userland" de A à Z, c'est le même foutoir, tous les logiciels ont leurs fichiers de config dans le ~/ et c'est super pénible, d'autant plus que tous les logiciels ne gèrent pas pareil l'affichage de ces fichiers : certains les cachent par défaut, d'autres pas, bref, là aussi cela pourrait être normalisé.


          Les ports (ou packages) fournit avec les *BSD ne sont que des logiciels tiers dont le but n'est pas forcément d'avoir une intégration parfaite. Ces logiciels ne sont pas dans les dépôts de développement de ces systèmes d'exploitation. Ils ne sont pas ou très peu audités par les développeur *BSD comme l'est le système de base.
          En revanche, tout ce qui se trouve dans les dépôts sont quand à eux très bien intégrés. C'est tout à fait comparable aux systèmes de paquets des distributions linux excepté qu'à la base il n'y a ni le noyau linux, ni GNU (enfin si gcc et quelques autres...).

          Donc pour tout normaliser, il faudrait créer des patches pour une bonne partie de ces ports (et ensuite les faire adopter en upstream), ce qui est quand même un boulot assez considérable. De plus les distributions linux peuvent parfaitement en faire de même pour leurs paquets.


          Personnellement avoir tous les fichiers de configuration directement dans ~/ ne me dérange plus. Étant donné que d'une part, dans mon utilisation courante, je n'affiche pas ces fichiers donc je ne les vois pas (eh eh logique) et ils sont très bien là où ils sont. Limite les recommandation de freedesktop me gène plus qu'autre chose. Oui, il est plus rapide de faire "vi .mplayer/config" ou "vi .vimrc" que de faire "vi .config/openbox/rc.xml".
    • [^] # Re: L'anarchie de Linux vs le contrôle de Windows

      Posté par  . Évalué à 10.

      En même temps prendre Thunderbird ou Firefox comme modèle d'intégration sous Linux c'est peut être aller un peu loin...
    • [^] # Re: L'anarchie de Linux vs le contrôle de Windows

      Posté par  (site web personnel) . Évalué à 8.


      le nom de Windows est plus "human readable" (Ca fait 6 ans que c'est comme ca...) que trois lettres ne voulant rien dire (Et caeteras?)


      Editable Text Content.
    • [^] # Re: L'anarchie de Linux vs le contrôle de Windows

      Posté par  (site web personnel) . Évalué à 3.

      Sauf que sous windows, toute la conf est dans le registre.

      Si tu cherche un modèle plus propre que linux, prends BDS

      /etc -> conf systeme
      /usr/local/etc -> conf générale des programmes
      dossier utilisation -> possibilité d'appliquer sa conf.
      • [^] # Re: L'anarchie de Linux vs le contrôle de Windows

        Posté par  . Évalué à 3.

        Pas valide pour openbsd, /usr/local/etc c'est /etc, ce que je trouve dommage mais bon c'est pas moi qui fait les règles.
      • [^] # Re: L'anarchie de Linux vs le contrôle de Windows

        Posté par  (site web personnel, Mastodon) . Évalué à 3.

        Normalement c'est aussi le modèle GNU justement (et pas Linux, je crois pas que les dévs du noyau se soit beaucoup occupé de l'organisation du système, encore que j'en sais rien). Donc c'est aussi sensé être ainsi sur nos distribs GNU.

        Si tu regardes les spécifications GNU, théoriquement les fichiers de conf d'un programme se trouve sous $prefix/etc. (voir mon message plus bas)

        Donc théoriquement sous /etc, on n'est sensé trouver que les fichiers de conf des programmes systèmes (typiquement les programmes GNU donc), et aucun autre, puisque / est normalement le préfixe réservé aux outils systèmes.

        Selon l'organisation de la distrib, on devrait donc trouver les fichiers de conf sous /usr/etc/ (pour les progs non-systèmes installés par le gestionnaire de paquetage dans la logique de bcp de distribs grand public actuelles), /usr/local/etc/, /opt/etc, ou autre.

        En fait, le vrai problème, c'est pas que ces spécs existent pas, c'est que les dévs divers les respectent pas.

        Film d'animation libre en CC by-sa/Art Libre, fait avec GIMP et autre logiciels libres: ZeMarmot [ http://film.zemarmot.net ]

    • [^] # Re: L'anarchie de Linux vs le contrôle de Windows

      Posté par  . Évalué à 8.

      Déja, tu le montres par toi-même : en une seul journal, tu fournis deux "préconisations" : ~/etc/ et ~/.config/
      Ca av c'est juste des noms... Franchement qu'es ce qu'on s'en fout de savoir comment il s'appel, même ~/.dtc me va du moment que ça me permette de sauvegarder toute ma config sans copier tout mon home ça me va. L'idée ici c'est d'utiliser un dossier commun a la config.

      freedesktop c'est une chose, mais ce n'est pas une directive venant officiellement de Linux, ça manque.
      En supposant qu'il y existe des directives "officielles", qu'es ce qui te force à les suivre elles et pas les fdo ?

      je lis MSDN et trouve assez facilement les directives, car je pense "par défaut" qu'il va y avoir quelque chose.
      Tu veux quoi ? Un lavage de cerveau pour "t'apprendre" à penser différement ? Au passage entre les man, fdo, LSB, et autre msdn like pour linux qui se sont créer qu'es ce que tu veux de plus ?

      que trois lettres ne voulant rien dire (Et caeteras?)
      Oh mon dieu Linux Unix c'est dur faut apprendre 3 lettres... Tu te balade avec ton code de carte bleu sur un morceau de papier ? 4 chiffres ça doit faire beaucoup non ? etc c'est typiquement le repertoir de config pour la machine, donc je vois pas ce qu'un simple utilisateur peut y avoir à faire. Si il y rentre pour moi c'est plus le simple utilisateur mais bien l'admin de la machine. Et a ce titre vaut mieux qu'ils sachent retenir 3 lettres sinon je donne pas chère de la qualitée de sa config.

      Le vrai simple utilisateur, passe par les interfaces de config ou configure ses propres fichiers. Le tout se passe uniquement dans ~. Et oui sous linux il y a une gestion des droits (qui tends à être de moins en moins appliqué).

      Mais si j'ai besoin de différencier? rien...
      Oh mon dieu comment faire pour avoir deux paths différent pour ma config sur deux machines différentes ???? Ah tiens si le path de config est definie dans une variable pourquoi ne pas changer cette variable entre les deux machines ? Oula mais je me souviens plus de la variable elles fait plus de 3 caractères de long ... ;)

      Je passerai sur le truc bizarre que la configuration est dans le répertoire personnel de l'utilisateur, alors que sous windows c'est bien différencié
      Si tu nous passe toutes les différences Linux-Windows on a pas fini. Et sinon pour répondre à ta question c'est simple sous Linux de base l'utilisateur peut écritre dans son home et dans /tmp. Bon on pourait aller les planquer dans /etc/usr/$USER/la config est ici/si si je t'assure elle est vraiment la/Bon plus que ce sous rep et tu la trouvera. Mais perso j'aime bien le fait que si je copie mon home qqpart j'ai toute ma config qui prend immédiatement effet ou presque. Et j'aimerais bien garder ça, maintenant je préfère .config pour pouvoir coller QUE ma config et pas aussi toute ma musique.

      (certes les /.config cache le dossier de config, mais c'est plus un hack qu'autre chose...)
      Non un hack c'est laisser l'utilisateur acceder à sa carte wifi, lecteur cd sans le mettre dans un groupe pour. Le prefix '.' c'est l'héritage d'une époque ou les systèmes de fichiers étaient très basiques, tout comme les dossiers à 3 lettres. Le changer maintenant pourquoi pas, mais franchement j'ai jamais voulu nommer un de mes fichiers .machin et le voir, même sous windows. Et en parlant d'héritage d'une lointaine époque que dire des fameux dossiers 'con', 'com' etc...

      c'est (aujourd'hui) plus lisible, simple, compréhensible, normé, plus facile pour le programmeur que ne se posera pas de questions.
      s/programmeur que ne se posera pas de questions/programmeur qui a commencé sous windows/
      Perso pour le peu ou j'ai eu a bosser sous windows, la msdn a part me filer 150 variantes pour la meme fonction sans me dire la différence entre elles ne pas servit a grand chose. Et il m'a manqué beaucoup de truc de linux (dbus entre autre, qui est le joujou préféré de fdo). Le normage il existe faut juste que t'apprene à le chercher. Et pour le 'lisible' et 'simple'... c'est définitivement pas le cas en C.

      Bref c'est pensé pour les autres, pour qu'ils développent facilement sous Windows, sans se prendre tête.
      C'est bien connu Windows est un système de codeur et Linux un système pour les utilisateurs lambda. (Et OS X le plus portable de tous les OS \o/). Bon la différence c'est qu'un utilisateur lambda linux à tendance à faire du posix et passer facilement sur *bsd ou autre. Un "codeur" Windows lui il est perdu dès quand il doit changer l'url pour trouver sa doc.

      Ne t'inquiète pas petit scarabée "codeur", des utilisateurs oméga linux travail d'arrache pied pour te refaire .Net, Regedit, un WM sans options et pourquoi pas un VFS avec la même arborescance.
  • # et ...

    Posté par  (site web personnel) . Évalué à 2.

    jbrout aussi ...
    et tout recemment, compiz-fusion (depot trevino) s'y est mis
    • [^] # Re: et ...

      Posté par  . Évalué à 5.

      Tracker aussi suit bien cette norme : la config dans .config, et la base de données dans .cache.
      D'ailleurs, pour KDE je ne sais pas, mais GNOME y vient tout doucement. Les applications chargées à l'ouverture de la sessions sont maintenant dans .config/autostart, et les menus dans .local

      Perso, pour ma sauvegarde, j'ai mis .gnome2, .gconf, .purple et plein d'autres dans .config, et j'ai créé des liens vers eux dans $HOME. Je n'ai plus qu'à faire un grsync de .config pour sauvegarder le tout sur mon DD externe.
      Mais c'est sûr qu'un truc un peu plus standardisé éviterait d'avoir à faire ce genre de bidouilles.

      Article Quarante-Deux : Toute personne dépassant un kilomètre de haut doit quitter le Tribunal. -- Le Roi de Cœur

  • # pour gtk+

    Posté par  (site web personnel) . Évalué à 6.

    Gtk+ fournit depuis la version 2.6 une fonction respectant la spécification XDG: http://library.gnome.org/devel/glib/unstable/glib-Miscellaneous-Utility-Functions.html#g-get-user-config-dir

    Les applications Gtk+ ne devraient donc avoir aucun mal à supporter la spé... sauf que après vérification, mes applis écritent en Gtk+ n'utilisent pas cette fonction, mais je passe par un fichier dans le répertoire utilisateur. Je corrige ça dès ce soir ! :)
    (J'avoue aussi que c'est la première fois que j'entend parler de cette spé)
    • [^] # Re: pour gtk+

      Posté par  (site web personnel) . Évalué à 1.

      Les applications Gtk+ ne devraient donc avoir aucun mal à supporter la spé... sauf que après vérification, mes applis écritent en Gtk+ n'utilisent pas cette fonction

      Il y pire...
      J'ai écrit libetc, et mes applis Gtk+utilisent toujours un bon vieux répertoire caché dans $HOME. J'ai la flemme de rajouter deux lignes pour récupérer $XDG_CONFIG_HOME !
  • # Ce n'est pas un troll

    Posté par  . Évalué à -10.

    Il n'y a pas que KDE dans la vie...
    Si recommendation il y a cela ne doit pas être lié à un environnement graphique utilisateur (qui peut en plus varier même d'une connexion à l'autre ou même ne pas être utilisé) mais à une architecture plus générique.
    A mon sens il serait plus logique de placer les config, suivant les cas dans:

    /etc/config//
    /usr/local/config//
    /home/config//
    répertoire du logiciel lui même

    Maintenant, en ce qui concerne l'ediction et le repect d'une norme, encore faut il que le plus grand nombre soit d'accord, donc en éprouve le réel besoin, donc la seule chose à faire je pense c'est de faire remonter à sa distrib favorite ...
    • [^] # Re: Ce n'est pas un troll

      Posté par  (site web personnel, Mastodon) . Évalué à 9.

      Quel rapport avec KDE? A part le fait que le gars qui semble avoir écrit ça a un email de kde.org, ce qui signifie simplement qu'il est contributeur kde, pas que cette spécification a été faite pour KDE.
      D'ailleurs comme c'est dit dans le billet principal et plus tard dans les réponses, au contraire dans KDE, ils suivent pas cette norme.

      En outre, ce que tu dis n'a aucun sens vis à vis du fonctionnement de Linux. Déjà, on n'est pas sous Windows. Il n'y a pas pas de "répertoire du logiciel". Tout logiciel est justement réparti dans divers emplacements standards en fonction de sa fonctionnalité et d'un préfixe (voire les standards GNU pour ça: http://www.gnu.org/prep/standards/ ).

      Ces standards ont un peu évolué avec le temps, mais globalement voici l'idée à l'heure actuelle:

      - Le préfixe dépend de la fonctionnalité global du logiciel, ou des besoins d'installation. A l'heure actuelle, si le préfixe est '/', il s'agit de logiciel système (donc typiquement tous les outils GNU sous une distrib GNU/Linux).
      Puis en général /usr est utilisé pour les logiciels installés par la distribution (convention qu'ont pris beaucoup de distribs répandues).
      Enfin /usr/local est pour les logiciels qu'on va installer à la main.

      Dans certains cas, le /usr et /usr/local pourraient plutôt séparer les logiciels installés en partagés dans un réseau de logiciels locaux (c'est en fait l'origine du truc, mais comme le Desktop se pose pas ce genre de questions, de nouvelles normes ont émergées avec l'arrivée des gestionnaires de paquetage). Et dans ce cas, c'est /opt qui sert plutôt de préfixe pour les logiciels installés à la main (ou en test).

      - Enfin les sous-dossiers d'install dépendent des fonctionnalités à un niveau plus bas, c'est à dire des sous-modules d'un programme. Par exemple, les librairies dans lib/, les fichiers "header" (.h en c par ex) pour les développeurs dans include/, les fichiers de config dans etc/, les manuels dans man/, les données communes à tout utilisateur qui ne sont pas destinées à être modifiées dans share/, les données communes destinées à être modifiées par le programme dans var/, les exécutables dans bin/ et ceux réservés au root dans sbin/, etc.

      Le temps a changé quelques unes de ces normes aussi. Souvent des progs vont pas utiliser $prefix/etc pour leur config, mais plutôt /etc, de même pour /var au lieu de $prefix/var.

      Et enfin les données perso utilisateurs, sans partage, sont totalement à part, dans /home.

      Le gros avantage de ces conventions d'installation?
      C'est que par exemple, en partitionnant bien, on peut sécuriser les systèmes (la plupart des emplacements n'ont besoin que d'être en lecture seule).
      Mais également on améliore aussi les possibilités de relation entres les programmes. C'est grâce à ça que les programmes ayant besoin d'une librairie ou d'un exécutable tiers savent très souvent où les trouver et donc qu'on peut utiliser des mêmes librairies ou outils pour divers logiciels. Donc gain de place, gain de mémoire, gain de temps (librairie chargée une seule fois...), etc.

      D'ailleurs en ce sens, je suis pas d'accord avec Zenitram plus haut qui trouve que c'est le bordel sous GNU et bien rangé sous Win. Pour moi c'est vraiment tout l'inverse. C'est grâce à ça qu'on arrive à réinstaller un système très rapidement, sans perdre la moindre config de logiciel au petit oignon (que ce soit perso ou système), en gardant certaines parties et en réinstallant d'autres (par ex, mes logiciels installés à la main ou développés en privé, pas besoin de les réinstaller, je garde juste /usr/local ou /opt), etc.

      En tous cas Brazz, je pense que tu as vu que tes idées que tu trouvais plus logique ne le sont plus du tout, voire n'ont aucun sens dans l'organisation de GNU.

      Sinon vis à vis de ces spécs, l'idée est très bonne car c'est en effet une norme qui manque gravement dans la réalité des développements Libres actuels sous nux. Cependant je vais envoyer un mail au gars de ce pas car je trouve plusieurs points problématiques:

      - /etc/xdg : je vois pas trop l'intérêt de ce choix. Ca fait un répertoire en trop car etc/ sert déjà à mettre les fichiers de conf, pourquoi rajouter un étage? Soit on utilise /etc comme les gens font actuellement, soit on va dans $prefix/etc comme le voudrait la norme GNU, mais je vois pas pquoi rajouter ce "xdg" qui fait double emploi.

      - Pquoi ne pas mettre les répertoires utilisateurs dans les listes par défaut comme il paraît logique de faire? Par ex $XDG_DATA_DIRS est par défaut à "/usr/local/share/:/usr/share/" alors qu'il devrait être à "$XDG_DATA_HOME:/usr/local/share/:/usr/share/ " selon la logique que les modifications utilisateurs doivent toujours être prises en comptes et précéder les confs système.

      - Le répertoire .config/ (il change l'appellation, pourquoi pas. C'est vrai que "etc" n'a pas bcp de sens et n'est là que par raison historique) devrait être sous $HOME/.local, pas directement sous $HOME. Là ça fait un rép de trop alors que le but d'une telle spéc serait justement de libérer un peu le $HOME.

      - De même pour le rép "cache".

      - Quitte à changer les appelations historiques pour l'environnement perso, autant remplacement aussi "share". C'est un nom parfait dans le concept "données système multi-utilisateur" (share = partage en anglais). Mais puisqu'on parle de données perso, ça devrait se transformer par exemple en "data" (ou autre)...

      - Et pis il aurait pu aller plus loin en mettant un var/ sous son $HOME/.local, ainsi que d'autres répertoires pris dans la norme système actuelle.

      En gros, l'idée est là, mais ça manque encore beaucoup de cohérence. Je pense que si cette spéc s'améliore dans ce sens, ce sera vraiment génial et j'espère que les dévs du monde entier la suivront alors.

      Bye.

      Film d'animation libre en CC by-sa/Art Libre, fait avec GIMP et autre logiciels libres: ZeMarmot [ http://film.zemarmot.net ]

      • [^] # Re: Ce n'est pas un troll

        Posté par  (site web personnel) . Évalué à 2.

        Et dans ce cas, c'est /opt qui sert plutôt de préfixe pour les logiciels installés à la main (ou en test).

        C'est plutôt /opt/<appname> le prefix.
        Très pratique, comme ça on peux facilement supprimer une application qui ne vient pas avec le gestionnaire de paquet de la distribution.
        Mais en contrepartie, il faut modifier les $PATH $LD_LIBRARY_PATH et autre $XDG_DATA_DIR (en général on ajoute ça dans /etc/profile ou equivalant)


        /etc/xdg : je vois pas trop l'intérêt de ce choix.

        peut-être pour séparer les config des application desktop par rapport au services systèmes ?

        Quitte à changer les appelations historiques pour l'environnement perso, autant remplacement aussi "share".

        C'est sans doute pour rappeler que c'est l'équivalent du /usr/share mais dans le dossier perso. mais dans ce cas pourquoi pas avoir garder "etc" ?

        C'est peut être aussi pour dire que c'est partagé entre les applications (icones, ... ) ?



        Pour le reste, tes objections sembles valables, tu peux demander sur la liste de diffusion de freedsktop (xdg at fdo) :-)
      • [^] # Re: Ce n'est pas un troll

        Posté par  (site web personnel) . Évalué à 2.

        Il est intéressant de lire la section 4.1 Non-GNU Standards [1]. Pour faire court, suivre les standards, c'est bien, mais si on trouve mieux il ne faut pas hésiter. Très pragmatique.


        [1] http://www.gnu.org/prep/standards/html_node/Non_002dGNU-Stan(...)

        Python 3 - Apprendre à programmer dans l'écosystème Python → https://www.dunod.com/EAN/9782100809141

  • # Un air de déjà vu...

    Posté par  . Évalué à 3.

    C'est marrant comme ce problème revient de temps en temp!
    J'avais déjà fait un journal sur la question (sans avoir de proposition valable à formuler malheureusement)

    Moi aussi j'aimerais bien voir quelquechose de mieux organisé.

    .config c'est déjà bien!

    Après, je rêve d'un truc genre:
    /etc/hardware/
    où on stocke les fichiers de configuration strictement liés au matériel
    /etc/sys-apps/
    où on stocke la config des logiciels systèmes
    /etc/user-apps/
    qui existe presque déjà en fait, puisque là je mettrais les configs par défaut des applis pour les utilisateurs, mais aussi bien nouvellement créés qu'ancien.

    L'idée m'était venue après une migration hautement pénible dans laquelle je voulais garder les fichiers de configs aux petits oignons d'un pc à l'autre, et finalement j'ai pratiquement dû relire les fichiers de config un par un faute de connaître par coeur leurs différentes fonctions...

    A l'époque on parlait du projet elektra, sorte de base de registre sous linux, mais l'approche me rappelle trop celle de microsoft ou de gconf.

    Ah! Et autre sujet à l'époque: standardisation des fichiers de config, vu que pour l'instant c'est pas trop ça
    (truc = machin;
    truc machin
    set truc machin
    // commentaire
    ; commentaire
    xml
    etc.)

Suivre le flux des commentaires

Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.