Changelog for cabal2nix-2.19.1
Revision History for cabal2nix
2.19.1
Warning: This version of cabal2nix
generates Nix expressions that
are expected to be used with at least NixOS 22.11 or the unstable
channels at 3928cfa27d9925f9fbd1d211cf2549f723546a81
or later (which
should be all unstable channels published after 2022-10-23) due to changes
how libcrypt
is provided by nixpkgs
. For details read below.
cabal2nix
andhackage2nix
will now emit a dependency onlibxcrypt
if thecrypt
library is requested by a package description. This has been done becausenixpkgs
has disabledlibcrypt
being bundled withglibc
, so the library will need to be pulled in from elsewhere. These new generated nix expressions may not work correctly with older versions ofnixpkgs
(since twolibcrypt
s would be pulled in). Versions expected to work are listed in the warning above. See also #576.cabal2nix
andhackage2nix
can now resolve theFLAC
library name. See also #567.- Fix test suite compilation with
Cabal >= 3.8
. See also #572. - Packages closely tied to
cabal2nix
have been merged into the maincabal2nix
source repository. As a consequence, the cabal2nix source code has been moved into thecabal2nix
subdirectory. See also #567.
2.19.0
Note that some of the API has also changed in a breaking
manner because of the upgrade to distribution-nixpkgs
1.7.0,
see #506.
-
Only use
hpack
when building if no cabal file is found for the package to process. See also #508. -
hackage2nix
now supports arbitrary Nix-style platform tuples inunsupported-platforms
(including the newaarch64-darwin
) as well as nixpkgs platform groups which are denoted as e. g.platforms.darwin
and can be used instead of platform tuples. See also #506. API breaking change: TheIsString
instance forPlatform
inDistribution.Nixpkgs.Haskell.OrphanInstances
has been removed. -
The new
hackage2nix
supported-platforms
configuration field allows prescribing a specific list of platforms to set in the package'splatforms
meta attribute.unsupported-platforms
are now translated tobadPlatforms
instead of being subtracted fromplatforms
. See also #506 and #560. API Breaking Change forDistribution.Nixpkgs.Haskell.FromCabal.Configuration
. -
cabal2nix
will no longer emit a dependency onwebkitgtk24x-gtk{2,3}
if it detects the older 3.0 API of WebKit being used. Nixpkgs hasn't contained this package for a few years now due to security vulnerabilities and the packages still using it on Hackage are unmaintained. If you have a legacy project built with an old version of nixpkgs, either don't upgradecabal2nix
or emulate the old behavior using overrides. See also #521. -
If the input cabal file declares just a single executable, the
mainProgram
meta attribute will be set in the resulting Nix expression. See also #506 and #557. -
If
cabal2nix
(orhackage2nix
) doesn't recognize the license of a package, it'll still assume that it's free and enable building on Hydra (i. e. use the default value ofhydraPlatforms
). This is done because Hackage requires uploaded packages to be open source. You may need to keep this change in mind, however, if you usecabal2nix
for packaging unfree software. See also #520.isFreeLicense
has changed semantically as a result. -
Argument parsing logic in
cabal2nix
has been refactored in #544. API breaking change for the following modules:Cabal2nix
Distribution.Nixpkgs.Fetch
Distribution.Nixpkgs.Haskell.Derivation
(removed instance)Distribution.Nixpkgs.Haskell.PackageSourceSpec
-
Update handling of Lua bindings to reflect current state upstream. See #527 and #547.
2.18.0
- Support GHC 9.0.x and Cabal 3.4.0.0, API breaking change (See #503)
- Fix fetching remote archives: Previously they weren't properly unpacked, API breaking change (See #455)
- Resolution of system dependency attribute names in nixpkgs
- Update changed upstream attribute names, reflect deprecations
- Fix hackage2nix not resolving certain attribute names if multiple attribute names referred to the same derivation. (See #492 and distribution-nixpkgs#10)
- hackage2nix: accept multiple config files at the command
line given by specifying
--config
more than once (See #494)