packages feed

cabal2nix-2.19.1: CHANGELOG.md

# 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` and `hackage2nix` will now emit a dependency on `libxcrypt`
  if the `crypt` library is requested by a package description. This has
  been done because `nixpkgs` has
  [disabled `libcrypt` being bundled with `glibc`](https://github.com/NixOS/nixpkgs/pull/181764),
  so the library will need to be pulled in from elsewhere.
  These new generated nix expressions may not work correctly with older
  versions of `nixpkgs` (since two `libcrypt`s would be pulled in).
  Versions expected to work are listed in the warning above.
  See also [#576](https://github.com/NixOS/cabal2nix/pull/576).
* `cabal2nix` and `hackage2nix` can now resolve the `FLAC` library name.
  See also [#567](https://github.com/NixOS/cabal2nix/pull/567).
* Fix test suite compilation with `Cabal >= 3.8`.
  See also [#572](https://github.com/NixOS/cabal2nix/pull/572).
* Packages closely tied to `cabal2nix` have been merged into the main
  `cabal2nix` source repository. As a consequence, the cabal2nix source
  code has been moved into the `cabal2nix` subdirectory.
  See also [#567](https://github.com/NixOS/cabal2nix/pull/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](https://github.com/nixos/distribution-nixpkgs/blob/v1.7.0/CHANGELOG.md#170),
see [#506](https://github.com/NixOS/cabal2nix/pull/506).

* Only use `hpack` when building if no cabal file is found
  for the package to process.
  See also [#508](https://github.com/NixOS/cabal2nix/pull/508).
* `hackage2nix` now supports arbitrary Nix-style platform tuples
  in `unsupported-platforms` (including the new `aarch64-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](https://github.com/NixOS/cabal2nix/pull/506).
  **API breaking change**: The `IsString` instance for `Platform` in
  `Distribution.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's `platforms` meta attribute. `unsupported-platforms`
  are now translated to `badPlatforms` instead of being subtracted
  from `platforms`.
  See also [#506](https://github.com/NixOS/cabal2nix/pull/506)
  and [#560](https://github.com/NixOS/cabal2nix/pull/560).
  **API Breaking Change** for
  `Distribution.Nixpkgs.Haskell.FromCabal.Configuration`.
* `cabal2nix` will no longer emit a dependency on `webkitgtk24x-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 upgrade `cabal2nix` or emulate
  the old behavior using overrides.
  See also [#521](https://github.com/NixOS/cabal2nix/pull/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](https://github.com/NixOS/cabal2nix/pull/506) and
  [#557](https://github.com/NixOS/cabal2nix/pull/557).
* If `cabal2nix` (or `hackage2nix`) 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 of `hydraPlatforms`).
  This is done because Hackage requires uploaded packages to
  be open source. You may need to keep this change in mind,
  however, if you use `cabal2nix` for packaging unfree
  software. See also [#520](https://github.com/NixOS/cabal2nix/pull/520).
  `isFreeLicense` has changed semantically as a result.
* Argument parsing logic in `cabal2nix` has been refactored
  in [#544](https://github.com/NixOS/cabal2nix/pull/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](https://github.com/NixOS/cabal2nix/pull/527) and
  [#547](https://github.com/NixOS/cabal2nix/pull/547).

## 2.18.0

* Support GHC 9.0.x and Cabal 3.4.0.0,
  **API breaking change**
  (See [#503](https://github.com/NixOS/cabal2nix/pull/503))
* Fix fetching remote _archives_: Previously they weren't properly
  unpacked, **API breaking change**
  (See [#455](https://github.com/NixOS/cabal2nix/pull/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](https://github.com/NixOS/cabal2nix/pull/492) and
    [distribution-nixpkgs#10](https://github.com/NixOS/distribution-nixpkgs/pull/10))
* hackage2nix: accept multiple config files at the command
  line given by specifying `--config` more than once
  (See [#494](https://github.com/NixOS/cabal2nix/pull/494))