| 29 Apr 2023 |
Minijackson | et une explication de pourquoi ça a été nommé source à l'origine: https://github.com/NixOS/nixpkgs/pull/153386#issuecomment-1004715841 | 08:03:38 |
Bruno Adele | Merci Minijackson: pour ces précisions 👌💪 | 08:05:14 |
Minijackson | np! | 08:05:21 |
raitobezarius | In reply to @badele:matrix.org
Hum, c'est moyen comme concept ! On nous bascine qu'avec #NixOS si tu as le même point d'entré, tu as la même sortie ! Ce qui dans ce cas est faux !
La j'avoue que sur ce point, ca me déçoit un peu ... Alors oui, je comprends le concept, mais étrange quand même d'accepter cela( ce n'est pas dramatique non plus ). Mais quand même. la mission du sha256 est justement de vérifier la cohérence des fichiers.
Donc de ce que je comprends, peu importe le source, ils nomment le fichier /nix/store/gmb1f4jx4w6lgkj2ywx7qd30g4wx3vza-source.drv , ils auraient pu au moins nommer un truc du genre /nix/store/gmb1f4jx4w6lgkj2ywx7qd30g4wx3vza-trunk-recorder-source.drv et /nix/store/gmb1f4jx4w6lgkj2ywx7qd30g4wx3vza-rdio-scanner.source.drv On ne change pas un nom de projet tous les 4 matins :)
En tout cas merci raitobezarius pour la réponse, je me douté plus ou moins que c'était cela, mais je ne voullais pas le croire (tellement ca me paraissait gros pour du immuable :) )
Je comprends ton pdv mais je pense que malgré que ça soit surprenant c'est un choix valide d'éviter de stocker plus d'une fois la même source dans le cache de 600TB en étant "modulo nom, version" mais ça a ses défauts :/
Je pense que ça devrait être gérer plus haut hors du store avec des asserts etc. | 10:59:13 |
Guillaume Desforges | petite note quand même: si tu veux vraiment ce comportement chez toi, tu peux toujours changer le nom de la dérivation
$ nix repl
Welcome to Nix 2.14.1. Type :? for help.
nix-repl> nixpkgs = builtins.getFlake "nixpkgs"
nix-repl> pkgs = nixpkgs.legacyPackages.x86_64-linux
nix-repl> pkgs.fetchFromGitHub { owner = "foo"; repo = "bar"; rev = "v1.0"; }
warning: found empty hash, assuming 'sha256-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA='
«derivation /nix/store/xz8kicwj4j7q8nidj9rgiqw14wyiz9a0-source.drv»
nix-repl> (pkgs.fetchFromGitHub { owner = "foo"; repo = "bar"; rev = "v1.0"; }).overrideAttrs (old: { name = "foo-bar-src"; })
warning: found empty hash, assuming 'sha256-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA='
«derivation /nix/store/3dr0nx7qvm17g3wnisi1lfwn8iv5gbdw-foo-bar-src.drv»
nix-repl> ((pkgs.fetchFromGitHub { owner = "foo"; repo = "bar"; rev = "v1.0"; }).overrideAttrs (old: { name = "foo-bar-src"; })).outPath
warning: found empty hash, assuming 'sha256-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA='
"/nix/store/xz0zfqms13fvp2yxjnkg6ynjjj9gbqg4-foo-bar-src"
| 15:07:05 |
Minijackson | Guillaume Desforges: je crois que fetchFromGithub accepte l'attribut name | 15:07:55 |
Guillaume Desforges | ah s'possible, je check | 15:08:07 |
Guillaume Desforges | indeed | 15:11:22 |
Guillaume Desforges | pkgs.fetchFromGitHub rec { owner = "foo"; repo = "bar"; rev = "v1.0"; name = pkgs.lib.strings.sanitizeDerivationName "${owner}-${repo}-${rev}"; }
| 15:14:14 |
Guillaume Desforges | * pkgs.fetchFromGitHub rec { owner = "foo"; repo = "bar"; rev = "v1.0"; name = pkgs.lib.strings.sanitizeDerivationName "${owner}-${repo}-${rev}-src"; }
| 15:14:26 |
Guillaume Desforges | In reply to @Minijackson:matrix.org et une explication de pourquoi ça a été nommé source à l'origine: https://github.com/NixOS/nixpkgs/pull/153386#issuecomment-1004715841 intéressant qu'il propose repo-rev plutôt que owner-repo ou owner-repo-rev | 15:16:37 |
Minijackson | j'imagine pour éviter de rebuild si jamais un dépôt change d'owner ? | 15:17:31 |
Guillaume Desforges | ah oui en cas de fork | 15:19:52 |
Guillaume Desforges | * ah oui en cas de fork par exemple | 15:20:04 |
Minijackson | ou transfert aussi | 15:20:08 |
Guillaume Desforges | c'est vrai qu'en fait juste appeler ça "source" c'est pas plus mal | 15:20:40 |
Guillaume Desforges | mais c'est dommage que ça ne soit pas plus expliqué dans ce cas | 15:20:58 |
Minijackson | ça doit être assez difficile à expliquer pour quelqu'un qui débute | 15:22:26 |
Minijackson | qui maîtrise pas encore le fonctionnement de Nix | 15:22:35 |
| * raitobezarius pense au nombre de trucs incalculable pas expliqués et a hâte que les travaux de docs commencent :) | 16:42:14 |
Guillaume Desforges | ils ont commencés | 16:42:37 |
Guillaume Desforges | mais tu fait surement allusion à l'effort crowd-fondé | 16:42:49 |
raitobezarius | oui je fais allusion à ça | 16:43:05 |
raitobezarius | (tu as raison) | 16:43:09 |
Guillaume Desforges | pour ma culture, vous avez en tête un logiciel typiquement dur à installer/configurer mais avec Nix c'est trop facile? | 17:09:30 |
Guillaume Desforges | * pour ma culture, vous avez en tête un logiciel typiquement dur à installer/configurer sur Ubuntu/Debian, mais avec Nix c'est trop facile? | 17:09:43 |
Minijackson | NetBox est très "manuel" à gérer | 17:10:31 |
Minijackson | sinon Nextcloud ? | 17:10:37 |
Guillaume Desforges | le plus mainstream, le mieux c'est | 17:10:47 |
Guillaume Desforges | ou alors tiens, si vous connaissez deux logiciels qu'on peut pas avoir en même temps normalement, à cause de conflits dans les dépendences | 17:11:17 |