This makes packages use lapack and blas, which can wrap different
BLAS/LAPACK implementations.
treewide: cleanup from blas/lapack changes
A few issues in the original treewide:
- can’t assume blas64 is a bool
- unused commented code
This closes#79441.
ghcWithPackages is using `ghc-pkg recache` to build its package
database. By doing so, it overrides the `package.cache[.lock]` files.
Details are unclear, but GHC 8.10 changed a bit the behavior.
Previously, it was unconditionally replacing the files by new ones. Now
it tries to open (for modification) the files. These files are symlinks
to another nix derivation, which is hence read-only.
This commit removes the files before running `ghc-pkg recache`, hence it
will just write the new files.
Tested with `haskellPackages.ghcWithPackages` (i.e. GHC 8.8) and
`haskell.packages.ghc8101.ghcWithPackages` (i.e GHC 8.10) with the
following nix file, at the root of the nixpkgs repository:
```
with import ./. {
overlays = [
(
self: super: {
haskellPackages = super.haskell.packages.ghc8101.override {
overrides = selfh: superh: {
th-lift-instances = super.haskell.lib.doJailbreak superh.th-lift-instances;
th-expand-syns = super.haskell.lib.doJailbreak superh.th-expand-syns;
th-reify-many = super.haskell.lib.doJailbreak superh.th-reify-many;
th-orphans = super.haskell.lib.doJailbreak superh.th-orphans;
haskell-src-meta = super.haskell.lib.doJailbreak superh.haskell-src-meta;
};
};
}
)
];
};
haskellPackages.ghcWithPackages(p:[p.PyF])
```
This will test with GHC 8.10. Comment out the `overlays` to test with
GHC 8.8.
The configuration-tensorflow.nix file specified several overrides for version
0.2.x packages, but those packages are no longer included in our package set
because they are so old. (Current versions seem to be in the range of 0.6.x.)
I fixed the evalution errors, but I did not verify whether these packages
actually build with the newer versions.
I checked through haskellPackages looking for packages that were
marked as broken, but successfully built.
I identified these 162 packages that were marked as broken in spite of
building successfully for me with NIXPKGS_ALLOW_BROKEN.
`cabal2nix` fails to evaluate due to attempting to
evaluate `pkgs.haskellPackages.hackage-db_2_1_0`, which
does not exist. However, the default
`pkgs.haskellPackages.hackage-db` is already version 2.1.0,
so the fix is simple: go back to using the default version.
Ping @cdepillabout because purescript is broken.
Ping @kiwi because matterhorn is broken.
Ping @roberth because arion-compose is broken.
Ping @psibi because persistent-postgresql is broken.
- tasty-tap's tests were failing. In
https://github.com/NixOS/nixpkgs/pull/71017 a patch generated from a
PR was applied to fix this.
- That PR has now been merged into tasty-tap and was released with
version 0.1.0.
- tasty-tap is now at version 0.1.0 in nixpkgs and so the patch fails
to apply, breaking the build.
- Removed the patch and removed tasty-tap from list of broken
packages.
Current, the `cabal2nix` derivation contains both the executable, and a wrapper
that adds `nix` and `nix-prefetch-scripts`, which are required for some
features.
However, when calling `callCabal2nix` to create a derivation from a cabal file
at evaluation time,
these features are not actually used, but the huge closure of
`nix-prefetch-scripts` (which includes multiple vcs, as well as python and perl)
still needs to be fetched.
This commit splits cabal2nix into a lightweight version that is a standalone
static binary (`cabal2nix-unwrapped`), and a wrapper that includes the proper
dependencies in the path for full usage of the command line
utility (`cabal2nix`).
This commit also switches to the default ghc, to reduce the likelyhood of
building a different ghc when calling `callCabal2nix`.
If you actually look at the changelog for 1.4.2.1, you'll see that it
mentions that it was only intended for ghc-7.0.4, which is why it has
a dependency on an inconveniently old version of `unix`, which
is *also* hidden behind a flag, so that we can't jailbreak it (per
https://github.com/peti/jailbreak-cabal/issues/15).
So the right thing to do would appear to me to be to override our
default version to 1.4.2.0, until such time as the maintainer makes a
newer release.
`ConfigFile` was collateral damage, so unmark it broken, as well as
`MissingH` itself.
The patchs in question fail to apply against the current versoin, and
thus the package fails to build; `hasktags` is then collateral damage.
Remove reference to the patch and make sure neither package will be
marked broken going forward.
Unfortunately, we cannot compile git-annex with S3 support in an
LTS-15.x environment, because the 'aws' library hasn't updated to
version 3.x of the 'network' library [1]. I tried whether it's
possible to build git-annex with an older version of network, but
the amount of overrides we'd have to configure to accomplish that
got out of hand quickly. So I disabled aws support [2]. If you
need S3 support in git-annex, please help upstream to update
'aws' so that it builds with recent versions of 'network'.
[1] https://github.com/aristidb/aws/issues/264
[2] 1d0459f40e
This includes two layered changes so the gtk2hs packages build on Darwin:
- For `glib`, `gio`, `gtk`, `gtk3`, and `pango`: the fix for version 0.13.8.0
from https://github.com/gtk2hs/gtk2hs/pull/293 . I expect at some point the
referenced fix (or one like it) will be released and and brought into
nixpkgs, at which point the override and patch files here can (in fact must)
be removed.
- For `gtk` and `gtk3`: also apply the required cabal flag cited in
https://github.com/gtk2hs/gtk2hs/issues/249 to specify the Quartz rather than
X11 backend (Quartz is the one that both nixpkgs and macOS support
out-the-box). This override is likely to be wanted indefinitely.
Both modifications are required for a successful build of `gtk` or `gtk3` on
Darwin right now.
Recent updates to the generic builder have caused haskellPackages.lmdb-simple to
fail to build on Darwin, since it cannot see the lmdb C dynamic library included
by its dependent haskellPackages.lmdb.
The C dynamic library has suffix `.so` not `.dylib`, so this fix allows for
that.
Closes#80190, but that issue may identify a preferable solution.
Recent updates to the generic builder have caused haskellPackages.lmdb-simple to
fail to build on Darwin, since it cannot see the lmdb C dynamic library included
by its dependent haskellPackages.lmdb.
The C dynamic library has suffix `.so` not `.dylib`, so this fix allows for
that.
Closes#80190, but that issue may identify a preferable solution.
My build server which isn't using cache.nixos.org discovered an
outdated hash in servant:
```
trying https://github.com/haskell-servant/servant/archive/v0.16.2.tar.gz
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 132 0 132 0 0 616 0 --:--:-- --:--:-- --:--:-- 616
100 295k 0 295k 0 0 269k 0 --:--:-- 0:00:01 --:--:-- 384k
unpacking source archive /build/v0.16.2.tar.gz
hash mismatch in fixed-output derivation '/nix/store/i6qgxlqf599wl11rd44jasgmwb78wr6c-source':
wanted: sha256:0kqglih3rv12nmkzxvalhfaaafk4b2irvv9x5xmc48i1ns71y23l
got: sha256:0xk3czk3jhqjxhy0g8r2248m8yxgvmqhgn955k92z0h7p02lfs89
```
Previously the package conf files were handled without paying attention
to the fact that it's pretty-printed output. One problem was discovered
with GHC 8.8.1 on Darwin, where the dynamic-library-dirs first field
seems to have increased in length, meaning while before it was
dynamic-library-dirs: some-small-directory-name
some-more-directories
Now it is
dynamic-library-dirs:
some-larger-directory-name
some-more-directories
Which breaks the code installed for https://github.com/NixOS/nixpkgs/pull/25537,
because that assumed the former format, resulting in the reoccurence of
the bug in https://github.com/NixOS/nixpkgs/issues/22810, see
https://github.com/Infinisil/all-hies/issues/43
This commit fixes this by "unprettyfying" the package conf files before
processing them.
Closes https://github.com/NixOS/nixpkgs/pull/78738.
Bustle is proclaiming OtherLicense even though the code is licensed under LGPL 2.1+. This causes cabal2nix to set hydraPlatforms = stdenv.lib.platforms.none in hackage-packages.nix for the package.
Lets let's unset the attribute and fix the license.