Elpe, un compromis entre NixOS et Ubuntu

Posté par  . Édité par Julien Jorge, Pierre Jarillon, Florent Zara et palm123. Modéré par Julien Jorge. Licence CC By‑SA.
Étiquettes : aucune
30
10
juin
2025
Linux

Je travaille depuis quelque temps sur Elpe, un projet qui vise à obtenir les bonnes propriétés de Nix/NixOS (les mises à jour atomiques, la reproductibilité), mais avec des paquets Ubuntu.

Le code : https://nest.pijul.com/pmeunier/elpe

L'idée est de définir des recettes de compilation en OCaml et de les envoyer à un backend Rust, qui se charge de les exécuter dans un conteneur sans réseau, en exposant uniquement le contexte nécessaire à la bonne exécution de la compilation. Les produits du build sont indexés par le contenu de la recette du build, et indexés une deuxième fois par le résultat : c'est ce deuxième hash qui est utilisé dans les dépendants du paquet, ce qui permet de construire un arbre de Merkle du système complet (et non seulement de ses sources), qui rend toute modification ultérieure facilement détectable.

De plus, le système de base provient des dépôts de paquet Debian ou Ubuntu. Cependant, tous les chemins sont hard-codés (comme dans Nix), ce qui permet de garantir la reproductibilité, au détriment toutefois du coût de mise à jour en termes d'espace et opérations disque.

Pijul, contrôle de version et théorie des patchs, version 0.12

Posté par  . Édité par ZeroHeure, Nÿco, Davy Defaud et Benoît Sibaud. Modéré par ZeroHeure. Licence CC By‑SA.
92
24
avr.
2019
Gestion de versions

Pijul est un système de contrôle de version distribué (DVCS) développé en Rust et publié sous licence GPL v2. Il est basé sur une théorie des patches.

La différence principale entre Pijul et Git est que Pijul fonctionne avec des correctifs (ou patches), là où Git ne fonctionne qu’avec des instantané (snapshots). Une branche dans Pijul n’est qu’un ensemble de correctifs.

Ce mode de fonctionnement offre plusieurs avantages, dont une approche sans doute plus conforme à l’usage intuitif d’un DVCS. À ce stade, si vous avez reconnu le fonctionnement de Darcs, vous vous dites : « oui, mais c’est lent ! ». Au départ de Pijul, il y avait l’idée d’améliorer la vitesse de Darcs, mais de nouveaux algorithmes ont permis de créer un outil différent, extrêmement rapide.

La version 0.12 vient de paraître : même s’il reste sans doute quelques problèmes (notamment sur l’espace disque), cette version est le fruit d’importantes refactorisations et simplifications, et est de ce fait bien plus stable et cohérente que les précédentes ; en particulier, tous les algorithmes sont maintenant prouvables mathématiquement.