Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Reduce the number of derivations #1605

Closed
wants to merge 51 commits into from
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
51 commits
Select commit Hold shift + click to select a range
b4a36e9
Store default setup on ghc derivation
hamishmack Aug 5, 2022
9b06216
Less derivations first cut
hamishmack Aug 7, 2022
ad6a27a
Fixes and optimize nix-tools usage
hamishmack Aug 9, 2022
1069180
Fix cabal.config
hamishmack Aug 11, 2022
d7004ee
Fix for cabal package db issue in nix shell
hamishmack Aug 15, 2022
08bb11b
Fixes for shellFor and hoogle in shell
hamishmack Aug 15, 2022
c94ed63
Fixes for shellFor and hoogle in shell
hamishmack Aug 15, 2022
417a7da
Fix hpack support
hamishmack Aug 16, 2022
afb52d9
Fix (p.shellFor {}).ghc
hamishmack Aug 16, 2022
1aa5e2b
More fixes for shellFor
hamishmack Aug 16, 2022
16e23cb
More fixes for shellFor
hamishmack Aug 16, 2022
11fe87c
Use ghc env for exactDeps
hamishmack Aug 16, 2022
12ecc24
Keep config files and wrapped ghc for cabal-doctest
hamishmack Aug 16, 2022
51737c7
Fix name clash
hamishmack Aug 16, 2022
82cda52
Remove special treatment of ghc dependency in custom setup
hamishmack Aug 17, 2022
af62a32
Merge remote-tracking branch 'origin/master' into hkm/combined-deriva…
hamishmack Aug 18, 2022
14f7a4b
Fix ghcjs and use ln -s instead of cp
hamishmack Aug 20, 2022
362b982
ifdLevel 0
hamishmack Aug 20, 2022
07c4426
ifdLevel 1
hamishmack Aug 20, 2022
c744c1e
ifdLevel 2
hamishmack Aug 20, 2022
0c6f255
ifdLevel 3
hamishmack Aug 20, 2022
557bebc
Fix for ghcjs default setup
hamishmack Aug 21, 2022
acb0eb0
Only propagate inputs to library components
hamishmack Aug 22, 2022
d17dcbf
ifdLevel 0
hamishmack Aug 20, 2022
872cb27
Shorten nix-tools attribute path
hamishmack Aug 22, 2022
db3ca22
Shorten nix-tools attribute path
hamishmack Aug 22, 2022
ba5bc4e
Fix closure size issue
hamishmack Aug 22, 2022
46846bf
Merge remote-tracking branch 'origin/master' into hkm/combined-deriva…
hamishmack Aug 25, 2022
42d08a6
Merge remote-tracking branch 'origin/master' into hkm/combined-deriva…
hamishmack Aug 29, 2022
e894bc2
Merge remote-tracking branch 'origin/master' into hkm/combined-deriva…
hamishmack Aug 31, 2022
9499917
Merge remote-tracking branch 'origin/master' into hkm/combined-deriva…
hamishmack Aug 31, 2022
5f32a61
ifdLevel 1
hamishmack Aug 31, 2022
eb6e1c2
Use cabal 3.8
hamishmack Sep 2, 2022
0dedd34
ifdLevel 0
hamishmack Sep 2, 2022
eccd186
Use tool function for cabal
hamishmack Sep 2, 2022
bbcc46f
ifdLevel 1
hamishmack Sep 3, 2022
1d7f07d
ifdLevel 2
hamishmack Sep 3, 2022
a17863c
ifdLevel 3
hamishmack Sep 3, 2022
2611a66
Explicit pkg-config
hamishmack Sep 4, 2022
0acd595
Merge branch 'hkm/use-cabal-3.8' into hkm/combined-derivations
hamishmack Sep 4, 2022
8a0d0d1
Fix merge issue
hamishmack Sep 4, 2022
eec5710
ifdLevel 2
hamishmack Sep 4, 2022
204296f
More fixes and work arounds
hamishmack Sep 5, 2022
a39ad04
Fix for cross compile
hamishmack Sep 5, 2022
0e3417a
Fix test.sh
hamishmack Sep 6, 2022
9621d93
Add description for `pkgconfigSelector`
hamishmack Sep 6, 2022
09fec30
Merge branch 'hkm/use-cabal-3.8' into hkm/combined-derivations
hamishmack Sep 6, 2022
b5f42a5
Fix merge issue
hamishmack Sep 6, 2022
8021d30
Merge remote-tracking branch 'origin/master' into hkm/combined-deriva…
hamishmack Oct 3, 2022
489111a
Merge remote-tracking branch 'origin/master' into hkm/combined-deriva…
hamishmack Oct 5, 2022
db5eff6
Check that stack builds
hamishmack Oct 5, 2022
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions build.nix
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,7 @@ in rec {
tools = pkgs.lib.optionalAttrs (ifdLevel >= 3) (
pkgs.recurseIntoAttrs ({
cabal-latest = tool compiler-nix-name "cabal" { inherit evalPackages; };
stack = tool compiler-nix-name "stack" { version = "2.9.1"; inherit evalPackages; };
hlint-latest = tool compiler-nix-name "hlint" {
inherit evalPackages;
version = {
Expand Down
42 changes: 29 additions & 13 deletions builder/comp-builder.nix
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
{ pkgs, stdenv, buildPackages, ghc, lib, gobject-introspection ? null, haskellLib, makeConfigFiles, haddockBuilder, ghcForComponent, hsPkgs, compiler, runCommand, libffi, gmp, zlib, ncurses, nodejs }@defaults:
{ pkgs, stdenv, buildPackages, ghc, lib, gobject-introspection ? null, haskellLib, makeConfigFiles, haddockBuilder, ghcForComponent, hsPkgs, compiler, runCommand, libffi, gmp, zlib, ncurses, nodejs, nonReinstallablePkgs }@defaults:
lib.makeOverridable (
let self =
{ componentId
Expand Down Expand Up @@ -162,7 +162,7 @@ let
if configureAllComponents
then ["--enable-tests" "--enable-benchmarks"]
else ["${haskellLib.componentTarget componentId}"]
) ++ [ "$(cat ${configFiles}/configure-flags)"
) ++ [ "$(cat $configFiles/configure-flags)"
] ++ commonConfigureFlags);

# From nixpkgs 20.09, the pkg-config exe has a prefix matching the ghc one
Expand Down Expand Up @@ -343,9 +343,9 @@ let
config = component;
srcSubDir = cleanSrc.subDir;
srcSubDirPath = cleanSrc.root + cleanSrc.subDir;
inherit configFiles executableToolDepends exeName enableDWARF;
inherit executableToolDepends exeName enableDWARF;
exePath = drv + "/bin/${exeName}";
env = shellWrappers;
env = shellWrappers.drv;
profiled = self (drvArgs // { enableLibraryProfiling = true; });
dwarf = self (drvArgs // { enableDWARF = true; });
} // lib.optionalAttrs (haskellLib.isLibrary componentId) ({
Expand Down Expand Up @@ -377,19 +377,22 @@ let
# Not sure why pkgconfig needs to be propagatedBuildInputs but
# for gi-gtk-hs it seems to help.
++ map pkgs.lib.getDev (builtins.concatLists pkgconfig)
# These only need to be propagated for library components (otherwise they
# will be in `buildInputs`)
++ lib.optionals (haskellLib.isLibrary componentId) configFiles.libDeps
++ lib.optionals (stdenv.hostPlatform.isWindows)
(lib.flatten component.libs
++ map haskellLib.dependToLib component.depends);
(lib.flatten component.libs);

buildInputs = lib.optionals (!stdenv.hostPlatform.isWindows)
(lib.flatten component.libs
++ map haskellLib.dependToLib component.depends);
buildInputs =
lib.optionals (!haskellLib.isLibrary componentId) configFiles.libDeps
++ lib.optionals (!stdenv.hostPlatform.isWindows)
(lib.flatten component.libs);

nativeBuildInputs =
[shellWrappers buildPackages.removeReferencesTo]
[ghc buildPackages.removeReferencesTo]
++ executableToolDepends;

outputs = ["out" ]
outputs = ["out" "configFiles" "ghc"]
++ (lib.optional enableSeparateDataOutput "data")
++ (lib.optional keepSource "source")
++ (lib.optional writeHieFiles "hie");
Expand All @@ -409,6 +412,18 @@ let
'') + commonAttrs.prePatch;

configurePhase = ''
mkdir -p $configFiles
mkdir -p $ghc
wrappedGhc=$ghc
${configFiles.script}
${shellWrappers.script}
''
# Remove any ghc docs pages so nixpkgs does not include them in $out
# (this can result in unwanted dependencies on GHC)
+ ''
rm -rf $wrappedGhc/share/doc $wrappedGhc/share/man $wrappedGhc/share/devhelp/books
PATH=$wrappedGhc/bin:$PATH

runHook preConfigure
echo Configure flags:
printf "%q " ${finalConfigureFlags}
Expand Down Expand Up @@ -470,7 +485,7 @@ let
${lib.optionalString (haskellLib.isLibrary componentId) ''
$SETUP_HS register --gen-pkg-config=${name}.conf
${ghc.targetPrefix}ghc-pkg -v0 init $out/package.conf.d
${ghc.targetPrefix}ghc-pkg -v0 --package-db ${configFiles}/${configFiles.packageCfgDir} -f $out/package.conf.d register ${name}.conf
${ghc.targetPrefix}ghc-pkg -v0 --package-db $configFiles/${configFiles.packageCfgDir} -f $out/package.conf.d register ${name}.conf

mkdir -p $out/exactDep
touch $out/exactDep/configure-flags
Expand Down Expand Up @@ -502,6 +517,7 @@ let
if id=$(${target-pkg-and-db} field "z-${package.identifier.name}-z-*" id --simple-output); then
name=$(${target-pkg-and-db} field "z-${package.identifier.name}-z-*" name --simple-output)
echo "--dependency=''${name#z-${package.identifier.name}-z-}=$id" >> $out/exactDep/configure-flags
echo "package-id $id" >> $out/envDep
''
# Allow `package-name:sublib-name` to work in `build-depends`
# by adding the same `--dependency` again, but with the package
Expand Down Expand Up @@ -593,7 +609,7 @@ let
'';

shellHook = ''
export PATH="${shellWrappers}/bin:$PATH"
export PATH=$ghc/bin:$PATH
${shellHookApplied}
'';
}
Expand Down
16 changes: 9 additions & 7 deletions builder/default.nix
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
let
# Builds a single component of a package.
comp-builder = haskellLib.weakCallPackage pkgs ./comp-builder.nix {
inherit ghc haskellLib makeConfigFiles haddockBuilder ghcForComponent hsPkgs compiler;
inherit ghc haskellLib makeConfigFiles haddockBuilder ghcForComponent hsPkgs compiler nonReinstallablePkgs;
};

haddockBuilder = haskellLib.weakCallPackage pkgs ./haddock-builder.nix {
Expand Down Expand Up @@ -44,7 +44,11 @@ let


hoogleLocal = let
nixpkgsHoogle = import (pkgs.path + /pkgs/development/haskell-modules/hoogle.nix);
# Use hoogle.nix from at least nixpkgs 22.05
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Maybe we should just throw an error if it's before then? Otherwise it's probably surprising to people that this might pull in a whole extra nixpkgs?

nixpkgs = if lib.versionAtLeast lib.trivial.release "22.05"
then pkgs.path
else pkgs.haskell-nix.sources.nixpkgs-2205;
nixpkgsHoogle = import (nixpkgs + /pkgs/development/haskell-modules/hoogle.nix);
in { packages ? [], hoogle ? pkgs.buildPackages.haskell-nix.tool "ghc8107" "hoogle" {
inherit evalPackages;
version = "5.0.18.3";
Expand All @@ -59,11 +63,9 @@ let
else ghc;
inherit packages hoogle;
};
in if lib.versionAtLeast lib.trivial.release "22.05"
then haskellLib.weakCallPackage pkgs nixpkgsHoogle {
inherit haskellPackages;
} (p: p.packages)
else haskellLib.weakCallPackage pkgs nixpkgsHoogle haskellPackages;
in haskellLib.weakCallPackage pkgs nixpkgsHoogle {
inherit haskellPackages;
} (p: p.packages);

# Same as haskellPackages.shellFor in nixpkgs.
shellFor = haskellLib.weakCallPackage pkgs ./shell-for.nix {
Expand Down
91 changes: 51 additions & 40 deletions builder/ghc-for-component-wrapper.nix
Original file line number Diff line number Diff line change
Expand Up @@ -20,50 +20,42 @@ let
ghc = if enableDWARF then defaults.ghc.dwarf else defaults.ghc;

inherit (configFiles) targetPrefix ghcCommand ghcCommandCaps packageCfgDir;
libDir = "$out/${configFiles.libDir}";
docDir = "$out/share/doc/ghc/html";
libDir = "$wrappedGhc/${configFiles.libDir}";
docDir = "$wrappedGhc/share/doc/ghc/html";
# For musl we can use haddock from the buildGHC
haddock = if stdenv.hostPlatform.isLinux && stdenv.targetPlatform.isMusl && !haskellLib.isNativeMusl
then ghc.buildGHC
else ghc;

in runCommand "${componentName}-${ghc.name}-env" {
preferLocalBuild = true;
passthru = {
inherit (ghc) version meta;
inherit targetPrefix;
baseGhc = ghc;
};
} (
''
script = ''
. ${makeWrapper}/nix-support/setup-hook

''
# Start with a ghc and remove all of the package directories
+ ''
mkdir -p $out/bin
${lndir}/bin/lndir -silent ${ghc} $out
mkdir -p $wrappedGhc/bin
${lndir}/bin/lndir -silent $unwrappedGhc $wrappedGhc
rm -rf ${libDir}/*/
''
# ... but retain the lib/ghc/bin directory. This contains `unlit' and friends.
+ ''
ln -s ${ghc}/lib/${ghcCommand}-${ghc.version}/bin ${libDir}
ln -s $unwrappedGhc/lib/${ghcCommand}-${ghc.version}/bin ${libDir}
''
# ... and the ghcjs shim's if they are available ...
+ ''
if [ -d ${ghc}/lib/${ghcCommand}-${ghc.version}/shims ]; then
ln -s ${ghc}/lib/${ghcCommand}-${ghc.version}/shims ${libDir}
if [ -d $unwrappedGhc/lib/${ghcCommand}-${ghc.version}/shims ]; then
ln -s $unwrappedGhc/lib/${ghcCommand}-${ghc.version}/shims ${libDir}
fi
''
# ... and node modules ...
+ ''
if [ -d ${ghc}/lib/${ghcCommand}-${ghc.version}/ghcjs-node ]; then
ln -s ${ghc}/lib/${ghcCommand}-${ghc.version}/ghcjs-node ${libDir}
if [ -d $unwrappedGhc/lib/${ghcCommand}-${ghc.version}/ghcjs-node ]; then
ln -s $unwrappedGhc/lib/${ghcCommand}-${ghc.version}/ghcjs-node ${libDir}
fi
''
# Replace the package database with the one from target package config.
+ ''
ln -s ${configFiles}/${packageCfgDir} $out/${packageCfgDir}
ln -s $configFiles/${packageCfgDir} $wrappedGhc/${packageCfgDir}

''
# Set the GHC_PLUGINS environment variable according to the plugins for the component.
Expand All @@ -77,9 +69,9 @@ in runCommand "${componentName}-${ghc.name}-env" {
GHC_PLUGINS="["
LIST_PREFIX=""
${builtins.concatStringsSep "\n" (map (plugin: ''
id=$(${ghc}/bin/ghc-pkg --package-db ${plugin.library}/package.conf.d field ${plugin.library.package.identifier.name} id --simple-output)
lib_dir=$(${ghc}/bin/ghc-pkg --package-db ${plugin.library}/package.conf.d field ${plugin.library.package.identifier.name} dynamic-library-dirs --simple-output)
lib_base=$(${ghc}/bin/ghc-pkg --package-db ${plugin.library}/package.conf.d field ${plugin.library.package.identifier.name} hs-libraries --simple-output)
id=$($unwrappedGhc/bin/ghc-pkg --package-db ${plugin.library}/package.conf.d field ${plugin.library.package.identifier.name} id --simple-output)
lib_dir=$($unwrappedGhc/bin/ghc-pkg --package-db ${plugin.library}/package.conf.d field ${plugin.library.package.identifier.name} dynamic-library-dirs --simple-output)
lib_base=$($unwrappedGhc/bin/ghc-pkg --package-db ${plugin.library}/package.conf.d field ${plugin.library.package.identifier.name} hs-libraries --simple-output)
lib="$(echo ''${lib_dir}/lib''${lib_base}*)"
GHC_PLUGINS="''${GHC_PLUGINS}''${LIST_PREFIX}(\"''${lib}\",\"''${id}\",\"${plugin.moduleName}\",["
LIST_PREFIX=""
Expand All @@ -103,25 +95,25 @@ in runCommand "${componentName}-${ghc.name}-env" {
# The NIX_ variables are used by the patched Paths_ghc module.
+ ''
for prg in ${ghcCommand} ${ghcCommand}i ${ghcCommand}-${ghc.version} ${ghcCommand}i-${ghc.version}; do
if [[ -x "${ghc}/bin/$prg" ]]; then
rm -f $out/bin/$prg
makeWrapper ${ghc}/bin/$prg $out/bin/$prg \
if [[ -x "$unwrappedGhc/bin/$prg" ]]; then
rm -f $wrappedGhc/bin/$prg
makeWrapper $unwrappedGhc/bin/$prg $wrappedGhc/bin/$prg \
--add-flags '"-B$NIX_${ghcCommandCaps}_LIBDIR"' \
--set "NIX_${ghcCommandCaps}" "$out/bin/${ghcCommand}" \
--set "NIX_${ghcCommandCaps}PKG" "$out/bin/${ghcCommand}-pkg" \
--set "NIX_${ghcCommandCaps}" "$wrappedGhc/bin/${ghcCommand}" \
--set "NIX_${ghcCommandCaps}PKG" "$wrappedGhc/bin/${ghcCommand}-pkg" \
--set "NIX_${ghcCommandCaps}_DOCDIR" "${docDir}" \
--set "GHC_PLUGINS" "$GHC_PLUGINS" \
--set "NIX_${ghcCommandCaps}_LIBDIR" "${libDir}"
fi
done

for prg in "${targetPrefix}runghc" "${targetPrefix}runhaskell"; do
if [[ -x "${ghc}/bin/$prg" ]]; then
rm -f $out/bin/$prg
makeWrapper ${ghc}/bin/$prg $out/bin/$prg \
--add-flags "-f $out/bin/${ghcCommand}" \
--set "NIX_${ghcCommandCaps}" "$out/bin/${ghcCommand}" \
--set "NIX_${ghcCommandCaps}PKG" "$out/bin/${ghcCommand}-pkg" \
if [[ -x "$unwrappedGhc/bin/$prg" ]]; then
rm -f $wrappedGhc/bin/$prg
makeWrapper $unwrappedGhc/bin/$prg $wrappedGhc/bin/$prg \
--add-flags "-f $wrappedGhc/bin/${ghcCommand}" \
--set "NIX_${ghcCommandCaps}" "$wrappedGhc/bin/${ghcCommand}" \
--set "NIX_${ghcCommandCaps}PKG" "$wrappedGhc/bin/${ghcCommand}-pkg" \
--set "NIX_${ghcCommandCaps}_DOCDIR" "${docDir}" \
--set "GHC_PLUGINS" "$GHC_PLUGINS" \
--set "NIX_${ghcCommandCaps}_LIBDIR" "${libDir}"
Expand All @@ -132,8 +124,8 @@ in runCommand "${componentName}-${ghc.name}-env" {
# Wrap haddock, if the base GHC provides it.
+ ''
if [[ -x "${haddock}/bin/haddock" ]]; then
rm -f $out/bin/haddock
makeWrapper ${haddock}/bin/haddock $out/bin/haddock \
rm -f $wrappedGhc/bin/haddock
makeWrapper ${haddock}/bin/haddock $wrappedGhc/bin/haddock \
--add-flags '"-B$NIX_${ghcCommandCaps}_LIBDIR"' \
--set "NIX_${ghcCommandCaps}_LIBDIR" "${libDir}"
fi
Expand All @@ -143,12 +135,31 @@ in runCommand "${componentName}-${ghc.name}-env" {
# --global-package-db flag.
+ ''
for prg in ${ghcCommand}-pkg ${ghcCommand}-pkg-${ghc.version}; do
if [[ -x "${ghc}/bin/$prg" ]]; then
rm -f $out/bin/$prg
makeWrapper ${ghc}/bin/$prg $out/bin/$prg --add-flags "--global-package-db=$out/${packageCfgDir}"
if [[ -x "$unwrappedGhc/bin/$prg" ]]; then
rm -f $wrappedGhc/bin/$prg
makeWrapper $unwrappedGhc/bin/$prg $wrappedGhc/bin/$prg --add-flags "--global-package-db=$wrappedGhc/${packageCfgDir}"
fi
done

${postInstall}
''
)
'';

drv = runCommand "${componentName}-${ghc.name}-env" {
preferLocalBuild = true;
passthru = {
inherit script targetPrefix;
inherit (ghc) version meta;
};
propagatedBuildInputs = configFiles.libDeps;
nativeBuildInputs = [ghc];
} (''
mkdir -p $out/configFiles
configFiles=$out/configFiles
${configFiles.script}
wrappedGhc=$out
${script}
'');
in {
inherit script drv targetPrefix;
baseGhc = ghc;
}
25 changes: 15 additions & 10 deletions builder/haddock-builder.nix
Original file line number Diff line number Diff line change
Expand Up @@ -47,7 +47,7 @@ let
finalConfigureFlags = lib.concatStringsSep " " (
[ "--prefix=${componentDrv}"
"${haskellLib.componentTarget componentId}"
"$(cat ${docsConfigFiles}/configure-flags)"
"$(cat $configFiles/configure-flags)"
]
++ commonConfigureFlags
++ lib.optional doHaddock' " --docdir=${docdir "$doc"}");
Expand All @@ -63,28 +63,33 @@ let
name = fullName;

passthru = {
configFiles = docsConfigFiles;

# The directory containing the haddock documentation.
haddockDir = if doHaddock' then "${docdir drv.doc}/html" else null;
haddockDir = lib.const (if doHaddock' then "${docdir drv.doc}/html" else null);
};

# `out` contains the `package.conf.d` files used for building the
# haddock files.
# `doc` contains just the haddock output files.
outputs = ["out"]
outputs = ["out" "configFiles" "ghc"]
++ lib.optional doHaddock' "doc";

propagatedBuildInputs = builtins.concatLists pkgconfig;
propagatedBuildInputs =
builtins.concatLists pkgconfig
++ configFiles.libDeps;

buildInputs = component.libs
++ map (d: d.components.library.haddock or d) component.depends;
buildInputs = component.libs;

nativeBuildInputs =
[ shellWrappers buildPackages.removeReferencesTo ]
[ ghc buildPackages.removeReferencesTo ]
++ componentDrv.executableToolDepends;

configurePhase = ''
mkdir -p $configFiles
mkdir -p $ghc
wrappedGhc=$ghc
${docsConfigFiles.script}
${shellWrappers.script}
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Now we're composing all these shell scripts together, maybe we should actually call them and pass the locations to write to as arguments rather than (effectively) sourcing them and passing arguments through variables? Not sure, just seems a little more explicit.

PATH=$wrappedGhc/bin:$PATH
runHook preConfigure
echo Configure flags:
printf "%q " ${finalConfigureFlags}
Expand Down Expand Up @@ -145,7 +150,7 @@ let
# working hyper links.
pkg=$(basename "$i")
sed -e "s|haddock-interfaces:.*|haddock-interfaces: $docdir/html/${componentId.cname}.haddock|" -e "s|haddock-html:.*|haddock-html: $docdir/html/|" "$i" > "$pkg"
${ghc.targetPrefix}ghc-pkg -v0 --package-db ${docsConfigFiles}/${configFiles.packageCfgDir} -f $out/package.conf.d register "$pkg"
${ghc.targetPrefix}ghc-pkg -v0 --package-db $configFiles/${configFiles.packageCfgDir} -f $out/package.conf.d register "$pkg"
done

ln -s ${componentDrv}/exactDep $out/exactDep
Expand Down
Loading