refactor: legacyPackages

This commit is contained in:
2025-10-10 13:13:03 +00:00
parent 7d55064a44
commit 65fa944df8
18 changed files with 497 additions and 174 deletions

View File

@@ -2,78 +2,31 @@
lib = nixpkgs.lib;
in final: prev: (
let
hectic-packages = self.packages.${prev.system};
packages = self.packages.${prev.system};
legacyPackages = self.legacyPackages.${prev.system};
in {
hectic = hectic-packages;
hectic = packages;
postgresql_17 = prev.postgresql_17 // {pkgs = prev.postgresql_17.pkgs // {
http = hectic-packages.pg-17-ext-http;
pg_smtp_client = hectic-packages.pg-17-ext-smtp-client;
plhaskell = hectic-packages.pg-17-ext-plhaskell;
plsh = hectic-packages.pg-17-ext-plsh;
hemar = hectic-packages.pg-17-ext-hemar;
http = packages.pg-17-ext-http;
pg_smtp_client = packages.pg-17-ext-smtp-client;
plhaskell = packages.pg-17-ext-plhaskell;
plsh = packages.pg-17-ext-plsh;
hemar = packages.pg-17-ext-hemar;
};};
postgresql_16 = prev.postgresql_16 // {pkgs = prev.postgresql_16.pkgs // {
http = hectic-packages.pg-16-ext-http;
pg_smtp_client = hectic-packages.pg-16-ext-smtp-client;
plhaskell = hectic-packages.pg-16-ext-plhaskell;
plsh = hectic-packages.pg-16-ext-plsh;
hemar = hectic-packages.pg-16-ext-hemar;
http = packages.pg-16-ext-http;
pg_smtp_client = packages.pg-16-ext-smtp-client;
plhaskell = packages.pg-16-ext-plhaskell;
plsh = packages.pg-16-ext-plsh;
hemar = packages.pg-16-ext-hemar;
};};
postgresql_15 = prev.postgresql_15 // {pkgs = prev.postgresql_15.pkgs // {
http = hectic-packages.pg-15-ext-http;
pg_smtp_client = hectic-packages.pg-15-ext-smtp-client;
plhaskell = hectic-packages.pg-15-ext-plhaskell;
plsh = hectic-packages.pg-15-ext-plsh;
hemar = hectic-packages.pg-15-ext-hemar;
http = packages.pg-15-ext-http;
pg_smtp_client = packages.pg-15-ext-smtp-client;
plhaskell = packages.pg-15-ext-plhaskell;
plsh = packages.pg-15-ext-plsh;
hemar = packages.pg-15-ext-hemar;
};};
writers = let
writeC = name: argsOrScript:
if lib.isAttrs argsOrScript && !lib.isDerivation argsOrScript
then
prev.writers.makeBinWriter (
argsOrScript
// {
compileScript = ''
# Force gcc to treat the input file as C code
${prev.gcc}/bin/gcc -fsyntax-only -xc $contentPath
if [ $? -ne 0 ]; then
echo "Syntax check failed"
exit 1
fi
${prev.gcc}/bin/gcc -xc -o $out $contentPath
'';
}
)
name
else
prev.writers.makeBinWriter {
compileScript = ''
# Force gcc to treat the input file as C code
${prev.gcc}/bin/gcc -fsyntax-only -xc $contentPath
if [ $? -ne 0 ]; then
echo "Syntax check failed"
exit 1
fi
${prev.gcc}/bin/gcc -xc -o $out $contentPath
'';
}
name
argsOrScript;
writeMinC = name: includes: body:
writeC name ''
${builtins.concatStringsSep "\n" (map (h: "#include " + h) includes)}
int main(int argc, char *argv[]) {
${body}
}
'';
in
prev.writers
// {
writeCBin = name: writeC "/bin/${name}";
writeC = writeC;
writeMinCBin = name: includes: body: writeMinC "/bin/${name}" includes body;
writeMinC = writeMinC;
};
writers = prev.writers // legacyPackages.writers;
}
)