I love updateScripts, and I love it when packages have updateScripts, because I love fresh packages and automated version bumps. I’d like to write an updateScript for the Wine package.
Wine has a complex structure in Nixpkgs. There are multiple top-level attributes corresponding both to different builds of the same Wine source code (wine
, wine64
) and different source trees (wine-staging
, wine-wayland
), and there are also package sets holding further variations, resulting in a few dozen distinct derivations. All of these derivations get their sources from a single sources.nix
file (which also includes the source information for winetricks
, for some reason, despite the main Wine packages not using winetricks
directly). There are some interesting cross-dependencies inside sources.nix
—for example, notice how unstable
inherits gecko32
and gecko64
from stable
but defines its own mono
.
It’s nontrivial but ultimately not that hard to write a script that updates every version in sources.nix
without changing any of the dependency structure, but to conform to the updateScript convention, is that the right thing to do? Which derivation should get that script as its passthru.updateScript
—one, or all of them? Or should I instead try to write one script for stable
, one for unstable
, etc.—and if so, how should I handle the dependencies between the different sources? (And even then, since there are multiple derivations associated with each source, the same question as before: do they all get copies of the update script for a given source, or should only one of them?)
Is this ultimately a question for the Wine Nixpkgs maintainers or are there best practices for this sort of thing that I can reference as a starting point for a PR?