Skip to content

Conversation

infinisil
Copy link
Contributor

For source-repository-package's, cabal tries to build them on its own, even
when all dependencies are already provided by Nix. Relevant issues:

This seems to be a problem even with a cabal that includes
haskell/cabal#6917 (see
input-output-hk/haskell.nix#720 (comment)
for how to test a cabal-install 3.4)

The only known workaround is to remove the source-repository-package
sections from cabal.project, but this should only be done for cabal when
used from a nix-shell, not from cabal without a nix-shell, and not outside
the nix-shell.

To make this work smoothly, the script scripts/nix-setup can be used,
which splits the source-repository-package sections into cabal.project.srcs,
which is then again included from here (to make the Nix setup still work).
Running the script again undoes it.

Note that once the script is ran, cabal.project is marked as read-only, and git won't track changes to it (since you wouldn't want to commit the removed source-repository-package sections). To make changes, run the script again first.

This is a pretty heavy-handed workaround, but I believe this is the best solution possible without spending huge amounts of time on it. This seemed to work very well in my testing and shouldn't conflict with the non-Nix development workflow or with nix-build's.

@infinisil
Copy link
Contributor Author

Without this PR, after a cabal clean and rm -rf ~/.cabal (this contains ~/.cabal/config though, don't remove that file if you need to keep it):

❯ cabal build exe:morpho-checkpoint-node
Cloning into '/home/infinisil/j/tweag/clients/iohk/ECIP-Checkpointing/dist-newstyle/src/cardano-b_-ef6f6555066e7b95'...
remote: Enumerating objects: 61, done.
remote: Counting objects: 100% (61/61), done.
remote: Compressing objects: 100% (31/31), done.
remote: Total 3821 (delta 17), reused 49 (delta 14), pack-reused 3760
Receiving objects: 100% (3821/3821), 1.80 MiB | 793.00 KiB/s, done.
Resolving deltas: 100% (2138/2138), done.
HEAD is now at 5e0b8bc Merge #131
Cloning into '/home/infinisil/j/tweag/clients/iohk/ECIP-Checkpointing/dist-newstyle/src/cardano-c_-ff3e781b30c95867'...
[...]
Receiving objects: 100% (4727/4727), 3.93 MiB | 1.30 MiB/s, done.
Resolving deltas: 100% (2544/2544), done.
HEAD is now at 42a8319 Merge pull request #223 from Jimbo4350/jordan/update-pprint
Warning: The package list for 'hackage.haskell.org' does not exist. Run 'cabal
update' to download it.RemoteRepo {remoteRepoName = "hackage.haskell.org",
remoteRepoURI = http://hackage.haskell.org/, remoteRepoSecure = Just True,
remoteRepoRootKeys =
["fe331502606802feac15e514d9b9ea83fee8b6ffef71335479a2e68d84adc6b0","1ea9ba32c526d1cc91ab5e5bd364ec5e9e8cb67179a471872f6e26f0ae773d42","2c6c3627bd6c982990239487f1abd02e08a02e6cf16edb105a8012d444d870c3","0a5c7ea47cd1b15f01f5f51a33adda7e655bc0f0b0615baa8e271f4c3351e21d","51f0161b906011b52c6613376b1ae937670da69322113a246a09f807c62f6921"],
remoteRepoKeyThreshold = 3, remoteRepoShouldTryHttps = True}
Warning: Requested index-state2020-05-15T00:00:00Z is newer than
'hackage.haskell.org'! Falling back to older state ().
Resolving dependencies...
cabal: Could not resolve dependencies:
[__0] trying: cardano-binary-test-1.3.0 (user goal)
[__1] unknown package: hedgehog (dependency of cardano-binary-test)
[__1] fail (backjumping, conflict set: cardano-binary-test, hedgehog)
After searching the rest of the dependency tree exhaustively, these were the
goals I've had most trouble fulfilling: cardano-binary-test, hedgehog

And after a cabal update, it compiles many dependencies:

❯ cabal build exe:morpho-checkpoint-node
Warning: Requested index-state2020-05-15T00:00:00Z is newer than
'hackage.haskell.org'! Falling back to older state (2020-05-14T23:39:58Z).
Resolving dependencies...
Build profile: -w ghc-8.6.5 -O1
In order, the following will be built (use -v for more details):
 - Win32-network-0.1.0.0 (lib) (first run)
 - cardano-crypto-1.1.0 (lib) (first run)
 - cborg-0.2.2.1 (lib) (first run)
 - contra-tracer-0.1.0.0 (lib) (first run)
 - http-client-0.6.4.1 (lib) (first run)
[...]
[63 of 65] Compiling Ouroboros.Network.TxSubmission.Outbound ( src/Ouroboros/Network/TxSubmission/Outbound.hs, /home/infinisil/j/tweag/clients/iohk/ECIP-Checkpointing/dist-newstyle/build/x86_64-linux/ghc-8.6.5/ouroboros-network-0.1.0.0/build/Ouroboros/Network/TxSubmission/Outbound.o )
[64 of 65] Compiling Ouroboros.Network.NodeToNode ( src/Ouroboros/Network/NodeToNode.hs, /home/infinisil/j/tweag/clients/iohk/ECIP-Checkpointing/dist-newstyle/build/x86_64-linux/ghc-8.6.5/ouroboros-network-0.1.0.0/build/Ouroboros/Network/NodeToNode.o )
[65 of 65] Compiling Ouroboros.Network.Diffusion ( src/Ouroboros/Network/Diffusion.hs, /home/infinisil/j/tweag/clients/iohk/ECIP-Checkpointing/dist-newstyle/build/x86_64-linux/ghc-8.6.5/ouroboros-network-0.1.0.0/build/Ouroboros/Network/Diffusion.o )
Configuring library for ouroboros-consensus-0.1.0.0..
Preprocessing library for ouroboros-consensus-0.1.0.0..
Building library for ouroboros-consensus-0.1.0.0..
[  1 of 192] Compiling Data.SOP.Strict  ( src/Data/SOP/Strict.hs, /home/infinisil/j/tweag/clients/iohk/ECIP-Checkpointing/dist-newstyle/build/x86_64-linux/ghc-8.6.5/ouroboros-consensus-0.1.0.0/build/Data/SOP/Strict.o )
[  2 of 192] Compiling Ouroboros.Consensus.BlockchainTime.WallClock.Types ( src/Ouroboros/Consensus/BlockchainTime/WallClock/Types.hs, /home/infinisil/j/tweag/clients/iohk/ECIP-Checkpointing/dist-newstyle/build/x86_64-linux/ghc-8.6.5/ouroboros-consensus-0.1.0.0/build/Ouroboros/Consensus/BlockchainTime/WallClock/Types.o )
[...]
Preprocessing executable 'morpho-checkpoint-node' for morpho-checkpoint-node-1.0.0..
Building executable 'morpho-checkpoint-node' for morpho-checkpoint-node-1.0.0..
[1 of 1] Compiling Main             ( app/morpho-checkpoint-node.hs, /home/infinisil/j/tweag/clients/iohk/ECIP-Checkpointing/dist-newstyle/build/x86_64-linux/ghc-8.6.5/morpho-checkpoint-node-1.0.0/x/morpho-checkpoint-node/build/morpho-checkpoint-node/morpho-checkpoint-node-tmp/Main.o )
Linking /home/infinisil/j/tweag/clients/iohk/ECIP-Checkpointing/dist-newstyle/build/x86_64-linux/ghc-8.6.5/morpho-checkpoint-node-1.0.0/x/morpho-checkpoint-node/build/morpho-checkpoint-node/morpho-checkpoint-node ...

It seems to work right now, but earlier I also encountered a spurious cc error doing this, which I can't reproduce anymore:

Preprocessing library for io-sim-classes-0.1.0.0..
Building library for io-sim-classes-0.1.0.0..
gcc: error: /home/infinisil/j/tweag/clients/iohk/ECIP-Checkpointing/dist-newstyle/build/x86_64-linux/ghc-8.6.5/io-sim-classes-0.1.0.0/build/Control/Monad/Class/MonadAsync.dyn_o: No such file or directory
`cc' failed in phase `Linker'. (Exit code: 1)
gcc: error: /home/infinisil/j/tweag/clients/iohk/ECIP-Checkpointing/dist-newstyle/build/x86_64-linux/ghc-8.6.5/cborg-0.2.2.1/build/Codec/CBOR/Decoding.dyn_o: No such file or directory
`cc' failed in phase `Linker'. (Exit code: 1)
cabal: Failed to build cborg-0.2.2.1 (which is required by
exe:morpho-checkpoint-node from morpho-checkpoint-node-1.0.0).
Failed to build io-sim-classes-0.1.0.0 (which is required by
exe:morpho-checkpoint-node from morpho-checkpoint-node-1.0.0).

Anyways, with this PR, and again with clean caches, it's more reproducible and also a lot faster:

❯ nix-shell
trace: Using index-state: 2020-05-15T00:00:00Z for morpho-checkpoint-node
trace: To make this a fixed-output derivation but not materialized, set `plan-sha256` to the output of /nix/store/wa40aw3mhx5aw9k5ny5n4mci4sf56cfr-calculateSha
trace: To materialize the output entirely, pass a writable path as the `materialized` argument and pass that path to /nix/store/qgccz957sc968zfgpvr6jya927j4nm68-generateMaterialized
error: You need to run scripts/nix-setup first
(use '--show-trace' to show detailed location information)
❯ scripts/nix-setup
Setting up cabal.project to work with nix-shell
❯ nix-shell
trace: Using index-state: 2020-05-15T00:00:00Z for morpho-checkpoint-node
trace: To make this a fixed-output derivation but not materialized, set `plan-sha256` to the output of /nix/store/xn4g2cxqlndm5dgikwvkm5a19i599vrm-calculateSha
trace: To materialize the output entirely, pass a writable path as the `materialized` argument and pass that path to /nix/store/symgyz53zm6cwvfhpsaaggcd1rslg7fh-generateMaterialized
trace: Using index-state: 2020-05-15T00:00:00Z for morpho-checkpoint-node
trace: To make this a fixed-output derivation but not materialized, set `plan-sha256` to the output of /nix/store/xn4g2cxqlndm5dgikwvkm5a19i599vrm-calculateSha
trace: To materialize the output entirely, pass a writable path as the `materialized` argument and pass that path to /nix/store/symgyz53zm6cwvfhpsaaggcd1rslg7fh-generateMaterialized
trace: Using index-state: 2020-05-31T00:00:00Z for hoogle
trace: To make this a fixed-output derivation but not materialized, set `plan-sha256` to the output of /nix/store/6j3plv8vzzrgkkc7dyjdf6dk6bknkr5a-calculateSha
trace: To materialize the output entirely, pass a writable path as the `materialized` argument and pass that path to /nix/store/6lxpa34ib4ag184nxy60v8b7w8lna8sh-generateMaterialized
warning: dumping very large path (> 256 MiB); this may run out of memory
trace: Using latest index state for cabal-install!
trace: Using index-state: 2020-11-06T00:00:00Z for cabal-install
❯ cabal build exe:morpho-checkpoint-node
Warning: No remote package servers have been specified. Usually you would have
one specified in the config file.
Resolving dependencies...
Build profile: -w ghc-8.6.5 -O1
In order, the following will be built (use -v for more details):
 - morpho-checkpoint-node-1.0.0 (lib) (first run)
 - morpho-checkpoint-node-1.0.0 (exe:morpho-checkpoint-node) (first run)
Configuring library for morpho-checkpoint-node-1.0.0..
Preprocessing library for morpho-checkpoint-node-1.0.0..
Building library for morpho-checkpoint-node-1.0.0..
[ 1 of 29] Compiling Morpho.Common.Bytes ( src/Morpho/Common/Bytes.hs, /home/infinisil/j/tweag/clients/iohk/ECIP-Checkpointing/dist-newstyle/build/x86_64-linux/ghc-8.6.5/morpho-checkpoint-node-1.0.0/build/Morpho/Common/Bytes.o )
[ 2 of 29] Compiling Morpho.Common.Conversions ( src/Morpho/Common/Conversions.hs, /home/infinisil/j/tweag/clients/iohk/ECIP-Checkpointing/dist-newstyle/build/x86_64-linux/ghc-8.6.5/morpho-checkpoint-node-1.0.0/build/Morpho/Common/Conversions.o )
[ 3 of 29] Compiling Morpho.Common.TopHandler ( src/Morpho/Common/TopHandler.hs, /home/infinisil/j/tweag/clients/iohk/ECIP-Checkpointing/dist-newstyle/build/x86_64-linux/ghc-8.6.5/morpho-checkpoint-node-1.0.0/build/Morpho/Common/TopHandler.o )
[ 4 of 29] Compiling Morpho.Config.Orphans ( src/Morpho/Config/Orphans.hs, /home/infinisil/j/tweag/clients/iohk/ECIP-Checkpointing/dist-newstyle/build/x86_64-linux/ghc-8.6.5/morpho-checkpoint-node-1.0.0/build/Morpho/Config/Orphans.o )
[ 5 of 29] Compiling Morpho.Crypto.ECDSASignature ( src/Morpho/Crypto/ECDSASignature.hs, /home/infinisil/j/tweag/clients/iohk/ECIP-Checkpointing/dist-newstyle/build/x86_64-linux/ghc-8.6.5/morpho-checkpoint-node-1.0.0/build/Morpho/Crypto/ECDSASignature.o )
[ 6 of 29] Compiling Morpho.Config.Types ( src/Morpho/Config/Types.hs, /home/infinisil/j/tweag/clients/iohk/ECIP-Checkpointing/dist-newstyle/build/x86_64-linux/ghc-8.6.5/morpho-checkpoint-node-1.0.0/build/Morpho/Config/Types.o )
[ 7 of 29] Compiling Morpho.Config.Topology ( src/Morpho/Config/Topology.hs, /home/infinisil/j/tweag/clients/iohk/ECIP-Checkpointing/dist-newstyle/build/x86_64-linux/ghc-8.6.5/morpho-checkpoint-node-1.0.0/build/Morpho/Config/Topology.o )
[ 8 of 29] Compiling Morpho.Config.Logging ( src/Morpho/Config/Logging.hs, /home/infinisil/j/tweag/clients/iohk/ECIP-Checkpointing/dist-newstyle/build/x86_64-linux/ghc-8.6.5/morpho-checkpoint-node-1.0.0/build/Morpho/Config/Logging.o )
[ 9 of 29] Compiling Morpho.Common.Socket ( src/Morpho/Common/Socket.hs, /home/infinisil/j/tweag/clients/iohk/ECIP-Checkpointing/dist-newstyle/build/x86_64-linux/ghc-8.6.5/morpho-checkpoint-node-1.0.0/build/Morpho/Common/Socket.o )
[10 of 29] Compiling Morpho.Common.Parsers ( src/Morpho/Common/Parsers.hs, /home/infinisil/j/tweag/clients/iohk/ECIP-Checkpointing/dist-newstyle/build/x86_64-linux/ghc-8.6.5/morpho-checkpoint-node-1.0.0/build/Morpho/Common/Parsers.o )
[11 of 29] Compiling Morpho.Ledger.PowTypes ( src/Morpho/Ledger/PowTypes.hs, /home/infinisil/j/tweag/clients/iohk/ECIP-Checkpointing/dist-newstyle/build/x86_64-linux/ghc-8.6.5/morpho-checkpoint-node-1.0.0/build/Morpho/Ledger/PowTypes.o )
[12 of 29] Compiling Morpho.Ledger.State ( src/Morpho/Ledger/State.hs, /home/infinisil/j/tweag/clients/iohk/ECIP-Checkpointing/dist-newstyle/build/x86_64-linux/ghc-8.6.5/morpho-checkpoint-node-1.0.0/build/Morpho/Ledger/State.o )
[13 of 29] Compiling Morpho.Ledger.Tx ( src/Morpho/Ledger/Tx.hs, /home/infinisil/j/tweag/clients/iohk/ECIP-Checkpointing/dist-newstyle/build/x86_64-linux/ghc-8.6.5/morpho-checkpoint-node-1.0.0/build/Morpho/Ledger/Tx.o )
[14 of 29] Compiling Morpho.Ledger.Block ( src/Morpho/Ledger/Block.hs, /home/infinisil/j/tweag/clients/iohk/ECIP-Checkpointing/dist-newstyle/build/x86_64-linux/ghc-8.6.5/morpho-checkpoint-node-1.0.0/build/Morpho/Ledger/Block.o )
[15 of 29] Compiling Morpho.Ledger.SnapshotTimeTravel ( src/Morpho/Ledger/SnapshotTimeTravel.hs, /home/infinisil/j/tweag/clients/iohk/ECIP-Checkpointing/dist-newstyle/build/x86_64-linux/ghc-8.6.5/morpho-checkpoint-node-1.0.0/build/Morpho/Ledger/SnapshotTimeTravel.o )
[16 of 29] Compiling Morpho.Ledger.Update ( src/Morpho/Ledger/Update.hs, /home/infinisil/j/tweag/clients/iohk/ECIP-Checkpointing/dist-newstyle/build/x86_64-linux/ghc-8.6.5/morpho-checkpoint-node-1.0.0/build/Morpho/Ledger/Update.o )
[17 of 29] Compiling Morpho.Ledger.Serialise ( src/Morpho/Ledger/Serialise.hs, /home/infinisil/j/tweag/clients/iohk/ECIP-Checkpointing/dist-newstyle/build/x86_64-linux/ghc-8.6.5/morpho-checkpoint-node-1.0.0/build/Morpho/Ledger/Serialise.o )
[18 of 29] Compiling Morpho.Ledger.Forge ( src/Morpho/Ledger/Forge.hs, /home/infinisil/j/tweag/clients/iohk/ECIP-Checkpointing/dist-newstyle/build/x86_64-linux/ghc-8.6.5/morpho-checkpoint-node-1.0.0/build/Morpho/Ledger/Forge.o )
[19 of 29] Compiling Morpho.Node.ProtocolInfo ( src/Morpho/Node/ProtocolInfo.hs, /home/infinisil/j/tweag/clients/iohk/ECIP-Checkpointing/dist-newstyle/build/x86_64-linux/ghc-8.6.5/morpho-checkpoint-node-1.0.0/build/Morpho/Node/ProtocolInfo.o )
[20 of 29] Compiling Morpho.Node.RunNode ( src/Morpho/Node/RunNode.hs, /home/infinisil/j/tweag/clients/iohk/ECIP-Checkpointing/dist-newstyle/build/x86_64-linux/ghc-8.6.5/morpho-checkpoint-node-1.0.0/build/Morpho/Node/RunNode.o )
[21 of 29] Compiling Morpho.RPC.Types ( src/Morpho/RPC/Types.hs, /home/infinisil/j/tweag/clients/iohk/ECIP-Checkpointing/dist-newstyle/build/x86_64-linux/ghc-8.6.5/morpho-checkpoint-node-1.0.0/build/Morpho/RPC/Types.o )
[22 of 29] Compiling Morpho.RPC.Request ( src/Morpho/RPC/Request.hs, /home/infinisil/j/tweag/clients/iohk/ECIP-Checkpointing/dist-newstyle/build/x86_64-linux/ghc-8.6.5/morpho-checkpoint-node-1.0.0/build/Morpho/RPC/Request.o )
[23 of 29] Compiling Morpho.RPC.PoWMock ( src/Morpho/RPC/PoWMock.hs, /home/infinisil/j/tweag/clients/iohk/ECIP-Checkpointing/dist-newstyle/build/x86_64-linux/ghc-8.6.5/morpho-checkpoint-node-1.0.0/build/Morpho/RPC/PoWMock.o )
[24 of 29] Compiling Morpho.Tracing.Metrics ( src/Morpho/Tracing/Metrics.hs, /home/infinisil/j/tweag/clients/iohk/ECIP-Checkpointing/dist-newstyle/build/x86_64-linux/ghc-8.6.5/morpho-checkpoint-node-1.0.0/build/Morpho/Tracing/Metrics.o )
[25 of 29] Compiling Morpho.Tracing.Types ( src/Morpho/Tracing/Types.hs, /home/infinisil/j/tweag/clients/iohk/ECIP-Checkpointing/dist-newstyle/build/x86_64-linux/ghc-8.6.5/morpho-checkpoint-node-1.0.0/build/Morpho/Tracing/Types.o )
[26 of 29] Compiling Morpho.Tracing.TracingOrphanInstances ( src/Morpho/Tracing/TracingOrphanInstances.hs, /home/infinisil/j/tweag/clients/iohk/ECIP-Checkpointing/dist-newstyle/build/x86_64-linux/ghc-8.6.5/morpho-checkpoint-node-1.0.0/build/Morpho/Tracing/TracingOrphanInstances.o )
[27 of 29] Compiling Morpho.Tracing.Tracers ( src/Morpho/Tracing/Tracers.hs, /home/infinisil/j/tweag/clients/iohk/ECIP-Checkpointing/dist-newstyle/build/x86_64-linux/ghc-8.6.5/morpho-checkpoint-node-1.0.0/build/Morpho/Tracing/Tracers.o )
[28 of 29] Compiling Morpho.Node.Run  ( src/Morpho/Node/Run.hs, /home/infinisil/j/tweag/clients/iohk/ECIP-Checkpointing/dist-newstyle/build/x86_64-linux/ghc-8.6.5/morpho-checkpoint-node-1.0.0/build/Morpho/Node/Run.o )
[29 of 29] Compiling Morpho.Node.Features.Node ( src/Morpho/Node/Features/Node.hs, /home/infinisil/j/tweag/clients/iohk/ECIP-Checkpointing/dist-newstyle/build/x86_64-linux/ghc-8.6.5/morpho-checkpoint-node-1.0.0/build/Morpho/Node/Features/Node.o )
Configuring executable 'morpho-checkpoint-node' for morpho-checkpoint-node-1.0.0..
Warning: The package has an extraneous version range for a dependency on an
internal library: morpho-checkpoint-node -any && ==1.0.0,
morpho-checkpoint-node -any && ==1.0.0, morpho-checkpoint-node -any &&
==1.0.0, morpho-checkpoint-node -any && ==1.0.0. This version range includes
the current package but isn't needed as the current package's library will
always be used.
Preprocessing executable 'morpho-checkpoint-node' for morpho-checkpoint-node-1.0.0..
Building executable 'morpho-checkpoint-node' for morpho-checkpoint-node-1.0.0..
[1 of 1] Compiling Main             ( app/morpho-checkpoint-node.hs, /home/infinisil/j/tweag/clients/iohk/ECIP-Checkpointing/dist-newstyle/build/x86_64-linux/ghc-8.6.5/morpho-checkpoint-node-1.0.0/x/morpho-checkpoint-node/build/morpho-checkpoint-node/morpho-checkpoint-node-tmp/Main.o )
Linking /home/infinisil/j/tweag/clients/iohk/ECIP-Checkpointing/dist-newstyle/build/x86_64-linux/ghc-8.6.5/morpho-checkpoint-node-1.0.0/x/morpho-checkpoint-node/build/morpho-checkpoint-node/morpho-checkpoint-node ...

@infinisil
Copy link
Contributor Author

This workaround could also be used for cardano-node, which seems to have the same problem: https://github.com/input-output-hk/cardano-node/blob/master/shell.nix#L15-L17

Copy link
Contributor

@picnoir picnoir left a comment

Choose a reason for hiding this comment

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

Nit:

diff --git a/cabal.project b/cabal.project
index 2b8295a..11e0d0a 100644
--- a/cabal.project
+++ b/cabal.project
@@ -72,6 +72,12 @@ constraints: secp256k1-haskell +recovery
 
 tests: True
 
+-- =============================================================
+-- WARNING:
+-- Do not add any directive other than source-repository-package
+-- past that point.
+-- =============================================================
+
 source-repository-package
   type: git
   location: https://github.com/input-output-hk/cardano-base

Good job, LGTM!

@infinisil infinisil force-pushed the nix-shell-workaround branch from 287f4da to 0b01f19 Compare December 16, 2020 13:35
@infinisil
Copy link
Contributor Author

infinisil commented Dec 16, 2020

Applied! Edit: Hold on, there appears to be a problem with that fixed

@infinisil infinisil force-pushed the nix-shell-workaround branch from 0b01f19 to 3697298 Compare December 16, 2020 13:38
For source-repository-package's, cabal tries to build them on its own, even
when all dependencies are already provided by Nix. Relevant issues:
- haskell/cabal#6049
- IntersectMBO/ouroboros-network#645
- haskell/cabal#5586 (comment)

This seems to be a problem even with a cabal that includes
haskell/cabal#6917 (see
input-output-hk/haskell.nix#720 (comment)
for how to test a cabal-install 3.4)

The only known workaround is to remove the source-repository-package
sections from cabal.project, but this should only be done for cabal when
used from a nix-shell, not from cabal without a nix-shell, and not outside
the nix-shell.

To make this work smoothly, the script `scripts/nix-setup` can be used,
which splits the source-repository-package sections into cabal.project.srcs,
which is then again included from here (to make the Nix setup still work).
Running the script again undoes it.
@infinisil infinisil force-pushed the nix-shell-workaround branch from 3697298 to 7773d67 Compare December 16, 2020 13:40
@picnoir picnoir merged commit 81c4176 into master Dec 17, 2020
@picnoir picnoir deleted the nix-shell-workaround branch December 17, 2020 16:17
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants