- The haskell lib is very close to not relying on Nixpkgs. I think
this is good---simpler to think about and matches Nixpkgs's lib.
- The haskell lib is only imported once
- stdenv is exposed more shallowly so it can be overriden more easily.
I'll eventually use this on Darwin to avoid the Sierra shared
library problems (unless changes are to be made system-wide).
Closes https://github.com/NixOS/nixpkgs/pull/27840.
* pkgs: refactor needless quoting of homepage meta attribute
A lot of packages are needlessly quoting the homepage meta attribute
(about 1400, 22%), this commit refactors all of those instances.
* pkgs: Fixing some links that were wrongfully unquoted in the previous
commit
* Fixed some instances
I used an incorrect date for the version field in my last commit, so now I have
to date this slightly into the future to make sure the new version actually
looks newer to Nix, too.
We don't want to re-compile tinc just to change the GHC environment used for
building, i.e. when running inside of nix-shell. Instead, find "ghc" in $PATH.
I've realized that publishing updates to Hackage is far easier than
publishing updates in Nixpkgs, and since all Hackage updates show up in
Nix automatically I've decided to go back to publishing cabal2nix on
Hackage again.
Unfortunately, this means that I'll have to change the version numbering
scheme to comply with the expectations of the Haskell PVP (which is used
by Stackage), so the new version 2.0 looks like a downgrade to Nix,
which used to have version 20160406. :-(
If in doubt, run "nix-env -u --always" to force the update. I am sorry
about the inconvenience.
I was getting below error:
output path ‘/nix/store/i73iz0id6ap6qg1p6jaqadl053h2cgfz-cabal2nix-9f58996’ should have r:sha256 hash ‘1w5ba7cdanpq4nr8xngk1jsj0p6b17c6ap24ldzggrln216f3f7d’, instead has ‘0vy18gmyrw72m98psz7hz51aqj66b98h1pdv98hf3k1hrdva3ncv’
The generated shell.nix file accepts a string argument called "compiler" that
determines the package set used to instantiate the generated expression. For
example, running "nix-shell --argstr compiler ghc7102" would evaluate the build
inside of "pkgs.haskell.packages.ghc7102". Earlier versions of cabal2nix had the
current default compiler hard-coded in the expression, but after this change this
is no longer the case. When "compiler" remains unspecified, it defaults to
"default", and this value causes evaluation in "pkgs.haskellPackages", which is
the package set most people would like to use by default. That change has to
benefits:
1) Generated expression no longer contain any particular compiler version. The
choice of the default compiler depends on the version of Nixpkgs that's used
to build the expression.
2) When the default compiler is used, overrides configured for the default
package set apply, which was not the case in earlier versions.
This update greatly enhances the accuracy with which dependencies are expressed
in the generated Nix files. Previous versions distinguished dependencies for
building ("buildDepends") and testing ("testDepends"). This distinction didn't
apply to system packages or build tools, however: the fields "extraLibs" and
"buildTools" applied to the entire build. This meant that dependencies required
only for testing would be pulled in regardless of whether the test were
actually being run, etc.
These days, we distinguish dependencies for libraries, executables, and tests,
and for each of those types we distinguish dependencies on Haskell libraries,
system libraries, pkgconfig libraries, and build tools. This gives us a
whopping 12 new attributes
xxxHaskellDepends
xxxSystemDepends
xxxPkgconfigDepends
xxxToolDepends
where "xxx" is any of "library", "executable", or "test".
The old dependency attributes are no longer generated by cabal2nix. The generic
builder in Nixpkgs still accepts them, though, for the sake of backwards
compatibility. This means that you don't have to re-generate all your build
expressions with the new version, but you *should*.