3
0
Fork 0
forked from mirrors/nixpkgs

Merge pull request #194600 from NixOS/haskell-updates

haskellPackages: update stackage and hackage
This commit is contained in:
Dennis Gosnell 2022-10-15 13:27:06 -04:00 committed by GitHub
commit 9c7c300c85
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
25 changed files with 756 additions and 240 deletions

View file

@ -14,4 +14,4 @@ commit="$(jq -r .commit.sha <<< "$head_info")"
date="$(date "--date=$(jq -r .commit.commit.committer.date <<< "$head_info")" +%F)"
# generate nix expression from cabal file, replacing the version with the commit date
echo '# This file defines cabal2nix-unstable, used by maintainers/scripts/haskell/regenerate-hackage-packages.sh.' > pkgs/development/haskell-modules/cabal2nix-unstable.nix
cabal2nix "https://github.com/NixOS/cabal2nix/archive/$commit.tar.gz" | sed -e 's/version = ".*"/version = "'"unstable-$date"'"/' >> pkgs/development/haskell-modules/cabal2nix-unstable.nix
cabal2nix --subpath cabal2nix "https://github.com/NixOS/cabal2nix/archive/$commit.tar.gz" | sed -e 's/version = ".*"/version = "'"unstable-$date"'"/' >> pkgs/development/haskell-modules/cabal2nix-unstable.nix

View file

@ -593,6 +593,27 @@
module removed, due to lack of maintainers.
</para>
</listitem>
<listitem>
<para>
<literal>generateOptparseApplicativeCompletions</literal> and
<literal>generateOptparseApplicativeCompletion</literal> from
<literal>haskell.lib.compose</literal> (and
<literal>haskell.lib</literal>) have been deprecated in favor
of <literal>generateOptparseApplicativeCompletions</literal>
(plural!) as provided by the haskell package sets (so
<literal>haskellPackages.generateOptparseApplicativeCompletions</literal>
etc.). The latter allows for cross-compilation (by
automatically disabling generation of completion in the cross
case). For it to work properly you need to make sure that the
function comes from the same context as the package you are
trying to override, i.e. always use the same package set as
your package is coming from or even better use
<literal>self.generateOptparseApplicativeCompletions</literal>
if you are overriding a haskell package set. The old functions
are retained for backwards compatibility, but yield are
warning.
</para>
</listitem>
<listitem>
<para>
The <literal>services.graphite.api</literal> and
@ -666,6 +687,12 @@
system timezone.
</para>
</listitem>
<listitem>
<para>
The top-level <literal>termonad-with-packages</literal> alias
for <literal>termonad</literal> has been removed.
</para>
</listitem>
<listitem>
<para>
(Neo)Vim can not be configured with

View file

@ -196,6 +196,15 @@ Available as [services.patroni](options.html#opt-services.patroni.enable).
- virtlyst package and `services.virtlyst` module removed, due to lack of maintainers.
- `generateOptparseApplicativeCompletions` and `generateOptparseApplicativeCompletion` from `haskell.lib.compose`
(and `haskell.lib`) have been deprecated in favor of `generateOptparseApplicativeCompletions` (plural!) as
provided by the haskell package sets (so `haskellPackages.generateOptparseApplicativeCompletions` etc.).
The latter allows for cross-compilation (by automatically disabling generation of completion in the cross case).
For it to work properly you need to make sure that the function comes from the same context as the package
you are trying to override, i.e. always use the same package set as your package is coming from or even
better use `self.generateOptparseApplicativeCompletions` if you are overriding a haskell package set.
The old functions are retained for backwards compatibility, but yield are warning.
- The `services.graphite.api` and `services.graphite.beacon` NixOS options, and
the `python3.pkgs.graphite_api`, `python3.pkgs.graphite_beacon` and
`python3.pkgs.influxgraph` packages, have been removed due to lack of upstream
@ -213,6 +222,8 @@ Available as [services.patroni](options.html#opt-services.patroni.enable).
- The `paperless` module now defaults `PAPERLESS_TIME_ZONE` to your configured system timezone.
- The top-level `termonad-with-packages` alias for `termonad` has been removed.
- (Neo)Vim can not be configured with `configure.pathogen` anymore to reduce maintainance burden.
Use `configure.packages` instead.
- Neovim can not be configured with plug anymore (still works for vim).

View file

@ -1,6 +1,6 @@
{
"commit": "3f8bc936ca1b36ede05f3cec8166c6ae6c61808d",
"url": "https://github.com/commercialhaskell/all-cabal-hashes/archive/3f8bc936ca1b36ede05f3cec8166c6ae6c61808d.tar.gz",
"sha256": "0bjd6znvwipc8gd0s4bryjbcj29h1lryxc2cqy0xgy07b7dpz245",
"msg": "Update from Hackage at 2022-10-01T15:28:21Z"
"commit": "d9b306138608746f6f686e7f3af6f35e635eacc8",
"url": "https://github.com/commercialhaskell/all-cabal-hashes/archive/d9b306138608746f6f686e7f3af6f35e635eacc8.tar.gz",
"sha256": "11c7x0b1ivcx8z96yr7rwnsby5bmjrwsjbak2pa4kknsklxd1iba",
"msg": "Update from Hackage at 2022-10-05T14:24:18Z"
}

View file

@ -8,11 +8,12 @@
}:
mkDerivation {
pname = "cabal2nix";
version = "unstable-2022-07-22";
version = "unstable-2022-10-10";
src = fetchzip {
url = "https://github.com/NixOS/cabal2nix/archive/e00ab24821be85cb025432f8e9c4ff56dbb00a81.tar.gz";
sha256 = "11a5l0fdj67bpqv30af4v5zxr3c7n9p81pfs4c0d3w65bmr9sa1y";
url = "https://github.com/NixOS/cabal2nix/archive/b3ae6f9240d07ba103f1eb7ab22f6055e9cdb7dc.tar.gz";
sha256 = "0ym6lyp4br57442b6a9cg9bczbjqz8nz984rxwiacldqzndk8jbr";
};
postUnpack = "sourceRoot+=/cabal2nix; echo source root reset to $sourceRoot";
isLibrary = true;
isExecutable = true;
libraryHaskellDepends = [

View file

@ -60,6 +60,13 @@ self: super: {
ghc-datasize = disableLibraryProfiling super.ghc-datasize;
ghc-vis = disableLibraryProfiling super.ghc-vis;
# Patch providing GHC9 compat, can be removed once the following gets released:
# > https://github.com/adinapoli/snaplet-purescript/pull/25
snaplet-purescript = appendPatch (fetchpatch {
url = "https://github.com/adinapoli/snaplet-purescript/commit/4c7457d9357558524d4d19ff7c7f13f85b442539.patch";
sha256 = "sha256-wpNvCO6txEvSv8LjQaaEIbBBPJnFaMpFx5ER8BT9lXo=";
}) super.snaplet-purescript;
# The latest release on hackage has an upper bound on containers which
# breaks the build, though it works with the version of containers present
# and the upper bound doesn't exist in code anymore:
@ -99,7 +106,7 @@ self: super: {
name = "git-annex-${super.git-annex.version}-src";
url = "git://git-annex.branchable.com/";
rev = "refs/tags/" + super.git-annex.version;
sha256 = "0dw89528kzbisbilyx6ggrh25vslivyylr8xk4dc4cikhd6dkm7p";
sha256 = "09ksaaf5kxpskq2hmi1ad35k15cnhn86j795iw6nk86gbvx5hrap";
# delete android and Android directories which cause issues on
# darwin (case insensitive directory). Since we don't need them
# during the build process, we can delete it to prevent a hash
@ -247,7 +254,7 @@ self: super: {
# 2020-06-05: HACK: does not pass own build suite - `dontCheck`
# 2022-06-17: Use hnix-store 0.5 until hnix 0.17
hnix = generateOptparseApplicativeCompletion "hnix" (dontCheck (
hnix = self.generateOptparseApplicativeCompletions [ "hnix" ] (dontCheck (
super.hnix.overrideScope (hself: hsuper: {
hnix-store-core = hself.hnix-store-core_0_5_0_0;
hnix-store-remote = hself.hnix-store-remote_0_5_0_0;
@ -719,7 +726,7 @@ self: super: {
# updated dependencies (haskeline and megaparsec) which can be
# removed when the next idris release (1.3.4 probably) comes
# around.
idris = generateOptparseApplicativeCompletion "idris"
idris = self.generateOptparseApplicativeCompletions [ "idris" ]
(doJailbreak (dontCheck super.idris));
# https://github.com/pontarius/pontarius-xmpp/issues/105
@ -998,14 +1005,14 @@ self: super: {
servant-auth-server = doJailbreak super.servant-auth-server;
# Generate cli completions for dhall.
dhall = generateOptparseApplicativeCompletion "dhall" super.dhall;
dhall = self.generateOptparseApplicativeCompletions [ "dhall" ] super.dhall;
# For reasons that are not quire clear 'dhall-json' won't compile without 'tasty 1.4' due to its tests
# https://github.com/commercialhaskell/stackage/issues/5795
# This issue can be mitigated with 'dontCheck' which skips the tests and their compilation.
dhall-json = generateOptparseApplicativeCompletions ["dhall-to-json" "dhall-to-yaml"] (dontCheck super.dhall-json);
dhall-nix = generateOptparseApplicativeCompletion "dhall-to-nix" super.dhall-nix;
dhall-yaml = generateOptparseApplicativeCompletions ["dhall-to-yaml-ng" "yaml-to-dhall"] super.dhall-yaml;
dhall-nixpkgs = generateOptparseApplicativeCompletion "dhall-to-nixpkgs" super.dhall-nixpkgs;
dhall-json = self.generateOptparseApplicativeCompletions ["dhall-to-json" "dhall-to-yaml"] (dontCheck super.dhall-json);
dhall-nix = self.generateOptparseApplicativeCompletions [ "dhall-to-nix" ] super.dhall-nix;
dhall-yaml = self.generateOptparseApplicativeCompletions ["dhall-to-yaml-ng" "yaml-to-dhall"] super.dhall-yaml;
dhall-nixpkgs = self.generateOptparseApplicativeCompletions [ "dhall-to-nixpkgs" ] super.dhall-nixpkgs;
# https://github.com/haskell-hvr/netrc/pull/2#issuecomment-469526558
netrc = doJailbreak super.netrc;
@ -1014,7 +1021,7 @@ self: super: {
hgettext = doJailbreak super.hgettext;
stack =
generateOptparseApplicativeCompletion "stack"
self.generateOptparseApplicativeCompletions [ "stack" ]
# stack has a bunch of constraints in its .cabal file that don't seem to be necessary
(doJailbreak
(super.stack.overrideScope (self: super: {
@ -1067,7 +1074,7 @@ self: super: {
hoopl = dontCheck super.hoopl;
# Generate shell completion for spago
spago = generateOptparseApplicativeCompletion "spago" super.spago;
spago = self.generateOptparseApplicativeCompletions [ "spago" ] super.spago;
# 2020-06-05: HACK: Package can not pass test suite,
# Upstream Report: https://github.com/kcsongor/generic-lens/issues/83
@ -1380,6 +1387,13 @@ self: super: {
})
] super.svgcairo;
# Espial is waiting for a hackage release to be compatible with GHC 9.X.
espial = appendPatch (fetchpatch {
url = "https://github.com/jonschoning/espial/commit/70177f9efb9666c3616e8a474681d3eb763d0e84.patch";
sha256 = "sha256-aJtwZGp9DUpACBV0WYRL7k32m6qWf5vq6eKBFq/G23s=";
excludes = ["package.yaml" "stack.yaml" "stack.yaml.lock"];
}) super.espial;
# Missing -Iinclude parameter to doc-tests (pull has been accepted, so should be resolved when 0.5.3 released)
# https://github.com/lehins/massiv/pull/104
massiv = dontCheck super.massiv;
@ -1505,7 +1519,7 @@ self: super: {
# PATH.
# - Patch can be removed on next package set bump
update-nix-fetchgit = let deps = [ pkgs.git pkgs.nix pkgs.nix-prefetch-git ];
in generateOptparseApplicativeCompletion "update-nix-fetchgit" (overrideCabal
in self.generateOptparseApplicativeCompletions [ "update-nix-fetchgit" ] (overrideCabal
(drv: {
buildTools = drv.buildTools or [ ] ++ [ pkgs.buildPackages.makeWrapper ];
postInstall = drv.postInstall or "" + ''
@ -1633,7 +1647,9 @@ self: super: {
http-media = doJailbreak super.http-media;
# 2022-03-19: strict upper bounds https://github.com/poscat0x04/hinit/issues/2
hinit = doJailbreak (generateOptparseApplicativeCompletion "hi" (super.hinit.override { haskeline = self.haskeline_0_8_2; }));
hinit = doJailbreak
(self.generateOptparseApplicativeCompletions [ "hi" ]
(super.hinit.override { haskeline = self.haskeline_0_8_2; }));
# 2022-03-19: Keeping jailbreak because of tons of strict bounds: https://github.com/snapframework/snap/issues/220
snap = doJailbreak super.snap;
@ -1676,7 +1692,7 @@ self: super: {
# waiting for aeson bump
servant-swagger-ui-core = doJailbreak super.servant-swagger-ui-core;
hercules-ci-agent = generateOptparseApplicativeCompletion "hercules-ci-agent" super.hercules-ci-agent;
hercules-ci-agent = self.generateOptparseApplicativeCompletions [ "hercules-ci-agent" ] super.hercules-ci-agent;
# Test suite doesn't compile with aeson 2.0
# https://github.com/hercules-ci/hercules-ci-agent/pull/387
@ -1687,7 +1703,7 @@ self: super: {
(overrideCabal (drv: { hydraPlatforms = super.hercules-ci-cli.meta.platforms; }))
# See hercules-ci-optparse-applicative in non-hackage-packages.nix.
(addBuildDepend super.hercules-ci-optparse-applicative)
(generateOptparseApplicativeCompletion "hci")
(self.generateOptparseApplicativeCompletions [ "hci" ])
];
pipes-aeson = appendPatches [
@ -2571,7 +2587,7 @@ in {
# likely be removed when purescript-0.14.6 is released.
doJailbreak
# Generate shell completions
(generateOptparseApplicativeCompletion "purs")
(self.generateOptparseApplicativeCompletions [ "purs" ])
];
purescript-cst = purescriptStOverride super.purescript-cst;

View file

@ -90,7 +90,7 @@ self: super: {
}) (doJailbreak super.language-haskell-extract);
# hnix 0.9.0 does not provide an executable for ghc < 8.10, so define completions here for now.
hnix = generateOptparseApplicativeCompletion "hnix"
hnix = self.generateOptparseApplicativeCompletions [ "hnix" ]
(overrideCabal (drv: {
# executable is allowed for ghc >= 8.10 and needs repline
executableHaskellDepends = drv.executableToolDepends or [] ++ [ self.repline ];

View file

@ -110,9 +110,6 @@ self: super: {
# of issues with Cabal 3.x.
darcs = dontDistribute super.darcs;
# cabal-fmt requires Cabal3
cabal-fmt = super.cabal-fmt.override { Cabal = self.Cabal_3_2_1_0; };
# liquidhaskell does not support ghc version 8.8.x.
liquid = markBroken super.liquid;
liquid-base = markBroken super.liquid-base;

View file

@ -147,4 +147,7 @@ self: super: {
# 2022-05-31: weeder 2.3.0 requires GHC 9.2
weeder = doDistribute self.weeder_2_3_1;
# Restrictive upper bound on base and containers
sv2v = doJailbreak super.sv2v;
}

View file

@ -226,4 +226,7 @@ self: super: {
inline-c-cpp =
(if isDarwin then appendConfigureFlags ["--ghc-option=-fcompact-unwind"] else x: x)
super.inline-c-cpp;
relude = dontCheck self.relude_1_1_0_0;
hermes-json = doJailbreak super.hermes-json;
}

View file

@ -74,7 +74,12 @@ in {
# removed after https://github.com/NixOS/cabal2nix/pull/571 is merged.
# TODO(@sternenseemann): merge and release a fixed version
distribution-nixpkgs = dontCheck super.distribution-nixpkgs;
cabal2nix = dontCheck super.cabal2nix;
cabal2nix =
# cabal2nix depends on foundation, which is broken on aarch64-linux.
# https://github.com/haskell-foundation/foundation/issues/571
overrideCabal
(drv: { badPlatforms = [ "aarch64-linux" ]; })
(dontCheck super.cabal2nix);
cabal2nix-unstable = dontCheck super.cabal2nix-unstable;
# build fails on due to ghc api changes
@ -224,4 +229,25 @@ in {
# 2022-08-01: Tests are broken on ghc 9.2.4: https://github.com/wz1000/HieDb/issues/46
hiedb = dontCheck super.hiedb;
# 2022-10-06: https://gitlab.haskell.org/ghc/ghc/-/issues/22260
ghc-check = dontHaddock super.ghc-check;
# 2022-10-06: plugins disabled for hls 1.8.0.0 based on
# https://haskell-language-server.readthedocs.io/en/latest/support/plugin-support.html#current-plugin-support-tiers
haskell-language-server = super.haskell-language-server.override {
hls-refactor-plugin = null;
hls-class-plugin = null;
hls-eval-plugin = null;
hls-floskell-plugin = null;
hls-fourmolu-plugin = null;
hls-gadt-plugin = null;
hls-hlint-plugin = null;
hls-ormolu-plugin = null;
hls-rename-plugin = null;
hls-stylish-haskell-plugin = null;
hls-tactics-plugin = null;
hls-haddock-comments-plugin = null;
hls-retrie-plugin = null;
hls-splice-plugin = null;
};
}

View file

@ -1341,7 +1341,6 @@ broken-packages:
- ert
- escape-artist
- escoger
- espial
- esqueleto-pgcrypto
- ess
- essence-of-live-coding-gloss-example
@ -1769,7 +1768,6 @@ broken-packages:
- glue
- gluturtle
- g-npm
- gnuidn
- goa
- goal-core
- goatee
@ -2001,7 +1999,6 @@ broken-packages:
- haskell-igraph
- haskell-import-graph
- haskell-in-space
- haskellish
- haskell-kubernetes
- HaskellLM
- haskell-lsp
@ -2064,6 +2061,7 @@ broken-packages:
- hasql-resource-pool
- hasql-simple
- hasql-streams-example
- hasql-transaction-io
- hastache
- haste
- haste-prim
@ -3965,6 +3963,7 @@ broken-packages:
- PortFusion
- portray-pretty
- portray-prettyprinter
- posit
- positron
- posix-acl
- posix-api
@ -4430,6 +4429,8 @@ broken-packages:
- sandman
- sarasvati
- sat
- satchmo-backends
- satchmo-minisat
- Saturnin
- satyros
- savage
@ -4472,6 +4473,7 @@ broken-packages:
- sdl2-cairo-image
- sdl2-compositor
- sdl2-fps
- SDL-mpeg
- sdr
- seacat
- seakale
@ -4726,7 +4728,6 @@ broken-packages:
- snaplet-mandrill
- snaplet-mongodb-minimalistic
- snaplet-postgresql-simple
- snaplet-purescript
- snaplet-redis
- snaplet-sass
- snaplet-scoped-session
@ -4943,7 +4944,6 @@ broken-packages:
- supervisors
- supplemented
- surjective
- sv2v
- sv-core
- SVD2HS
- svfactor

View file

@ -161,6 +161,7 @@ extra-packages:
- vty == 5.35.1 # 2022-07-08: needed for glirc-2.39.0.1
- weeder == 2.2.* # 2022-02-21: preserve for GHC 8.10.7
- weeder == 2.3.* # 2022-05-31: preserve for GHC 9.0.2
- ghc-exactprint == 1.5.0 # 2022-10-06: newer versions of ghc-exactprint require ghc 9.4.2
package-maintainers:
abbradar:

View file

@ -1,4 +1,4 @@
# Stackage LTS 19.25
# Stackage LTS 19.27
# This file is auto-generated by
# maintainers/scripts/haskell/update-stackage.sh
default-package-overrides:

View file

@ -1984,6 +1984,11 @@ dont-distribute-packages:
- hasql-cursor-query
- hasql-postgres
- hasql-postgres-options
- hasql-streams-conduit
- hasql-streams-core
- hasql-streams-pipes
- hasql-streams-streaming
- hasql-streams-streamly
- hasqlator-mysql
- hasqly-mysql
- hastache-aeson
@ -2221,7 +2226,6 @@ dont-distribute-packages:
- hws
- hwsl2-bytevector
- hwsl2-reducers
- hxmppc
- hxournal
- hxt-binary
- hxt-filter
@ -2805,7 +2809,6 @@ dont-distribute-packages:
- network-minihttp
- network-netpacket
- network-pgi
- network-protocol-xmpp
- network-rpca
- network-stream
- network-topic-models
@ -3328,6 +3331,7 @@ dont-distribute-packages:
- sarsi
- sasl
- sat-micro-hs
- satchmo-examples
- satchmo-funsat
- satchmo-toysat
- sauron

View file

@ -95,12 +95,12 @@ self: super: builtins.intersectAttrs super {
sfml-audio = appendConfigureFlag "--extra-include-dirs=${pkgs.openal}/include/AL" super.sfml-audio;
# avoid compiling twice by providing executable as a separate output (with small closure size)
niv = enableSeparateBinOutput (generateOptparseApplicativeCompletion "niv" super.niv);
niv = enableSeparateBinOutput (self.generateOptparseApplicativeCompletions [ "niv" ] super.niv);
ghcid = enableSeparateBinOutput super.ghcid;
ormolu = generateOptparseApplicativeCompletion "ormolu" (enableSeparateBinOutput super.ormolu);
ormolu = self.generateOptparseApplicativeCompletions [ "ormolu" ] (enableSeparateBinOutput super.ormolu);
# Generate shell completion.
cabal2nix = generateOptparseApplicativeCompletion "cabal2nix" super.cabal2nix;
cabal2nix = self.generateOptparseApplicativeCompletions [ "cabal2nix" ] super.cabal2nix;
arbtt = overrideCabal (drv: {
# The test suite needs the packages's executables in $PATH to succeed.
@ -814,7 +814,7 @@ self: super: builtins.intersectAttrs super {
install -D man/pnbackup.1 $out/share/man/man1/pnbackup.1
'' + (drv.postInstall or "");
})
(generateOptparseApplicativeCompletion "pnbackup" super.pinboard-notes-backup);
(self.generateOptparseApplicativeCompletions [ "pnbackup" ] super.pinboard-notes-backup);
# Pass the correct libarchive into the package.
streamly-archive = super.streamly-archive.override { archive = pkgs.libarchive; };
@ -875,7 +875,7 @@ self: super: builtins.intersectAttrs super {
}) super.tophat;
# Runtime dependencies and CLI completion
nvfetcher = generateOptparseApplicativeCompletion "nvfetcher" (overrideCabal
nvfetcher = self.generateOptparseApplicativeCompletions [ "nvfetcher" ] (overrideCabal
(drv: {
# test needs network
doCheck = false;
@ -889,7 +889,7 @@ self: super: builtins.intersectAttrs super {
rel8 = addTestToolDepend pkgs.postgresql super.rel8;
cachix = generateOptparseApplicativeCompletion "cachix" (super.cachix.override { nix = pkgs.nixVersions.nix_2_9; });
cachix = self.generateOptparseApplicativeCompletions [ "cachix" ] (super.cachix.override { nix = pkgs.nixVersions.nix_2_9; });
hercules-ci-agent = super.hercules-ci-agent.override { nix = pkgs.nixVersions.nix_2_9; };
hercules-ci-cnix-expr =
@ -917,7 +917,7 @@ self: super: builtins.intersectAttrs super {
# to arbitrary files in $HOME. This doesn't either not achieve anything
# or even fail, so we prevent it and install everything necessary ourselves.
# See also: https://hackage.haskell.org/package/cli-setup-0.2.1.4/docs/src/Distribution.CommandLine.html#setManpathGeneric
ats-format = generateOptparseApplicativeCompletion "atsfmt" (
ats-format = self.generateOptparseApplicativeCompletions [ "atsfmt" ] (
justStaticExecutables (
overrideCabal (drv: {
# use vanilla Setup.hs

File diff suppressed because it is too large Load diff

View file

@ -417,24 +417,11 @@ rec {
in
builtins.listToAttrs (map toKeyVal haskellPaths);
addOptparseApplicativeCompletionScripts = exeName: pkg:
builtins.trace "addOptparseApplicativeCompletionScripts is deprecated in favor of generateOptparseApplicativeCompletion. Please change ${pkg.name} to use the latter or its plural form."
(generateOptparseApplicativeCompletion exeName pkg);
/*
Modify a Haskell package to add shell completion scripts for the
given executable produced by it. These completion scripts will be
picked up automatically if the resulting derivation is installed,
e.g. by `nix-env -i`.
Invocation:
generateOptparseApplicativeCompletion command pkg
command: name of an executable
pkg: Haskell package that builds the executables
INTERNAL function retained for backwards compatibility, use
haskell.packages.*.generateOptparseApplicativeCompletions instead!
*/
generateOptparseApplicativeCompletion = exeName: overrideCabal (drv: {
__generateOptparseApplicativeCompletion = exeName: overrideCabal (drv: {
postInstall = (drv.postInstall or "") + ''
bashCompDir="''${!outputBin}/share/bash-completion/completions"
zshCompDir="''${!outputBin}/share/zsh/vendor-completions"
@ -453,20 +440,22 @@ rec {
});
/*
Modify a Haskell package to add shell completion scripts for the
given executables produced by it. These completion scripts will be
picked up automatically if the resulting derivation is installed,
e.g. by `nix-env -i`.
Invocation:
generateOptparseApplicativeCompletions commands pkg
commands: name of an executable
pkg: Haskell package that builds the executables
Retained for backwards compatibility.
Use haskell.packages.*.generateOptparseApplicativeCompletions
which is cross aware instead.
*/
generateOptparseApplicativeCompletions = commands: pkg:
pkgs.lib.foldr generateOptparseApplicativeCompletion pkg commands;
lib.warnIf (lib.isInOldestRelease 2211) "haskellLib.generateOptparseApplicativeCompletions is deprecated in favor of haskellPackages.generateOptparseApplicativeCompletions. Please change ${pkg.name} to use the latter and make sure it uses its matching haskell.packages set!"
(pkgs.lib.foldr __generateOptparseApplicativeCompletion pkg commands);
/*
Retained for backwards compatibility.
Use haskell.packages.*.generateOptparseApplicativeCompletions
which is cross aware instead.
*/
generateOptparseApplicativeCompletion = command: pkg:
lib.warnIf (lib.isInOldestRelease 2211) "haskellLib.generateOptparseApplicativeCompletion is deprecated in favor of haskellPackages.generateOptparseApplicativeCompletions (plural!). Please change ${pkg.name} to use the latter and make sure it uses its matching haskell.packages set!"
(__generateOptparseApplicativeCompletion command pkg);
# Don't fail at configure time if there are multiple versions of the
# same package in the (recursive) dependencies of the package being

View file

@ -316,7 +316,9 @@ rec {
# packagesFromDirectory : { directory : Directory, ... } -> HaskellPackageOverrideSet
packagesFromDirectory = compose.packagesFromDirectory;
addOptparseApplicativeCompletionScripts = compose.addOptparseApplicativeCompletionScripts;
addOptparseApplicativeCompletionScripts = exeName: pkg:
lib.warn "addOptparseApplicativeCompletionScripts is deprecated in favor of haskellPackages.generateOptparseApplicativeCompletions. Please change ${pkg.name} to use the latter and make sure it uses its matching haskell.packages set!"
(compose.__generateOptparseApplicativeCompletion exeName pkg);
/*
Modify a Haskell package to add shell completion scripts for the

View file

@ -597,4 +597,34 @@ in package-set { inherit pkgs lib callPackage; } self // {
}
pkg;
/*
Modify a Haskell package to add shell completion scripts for the
given executables produced by it. These completion scripts will be
picked up automatically if the resulting derivation is installed,
e.g. by `nix-env -i`.
This depends on the `--*-completion` flag `optparse-applicative` provides
automatically. Since we need to invoke installed executables, completions
are not generated if we are cross-compiling.
commands: names of the executables built by the derivation
pkg: Haskell package that builds the executables
Example:
generateOptparseApplicativeCompletions [ "exec1" "exec2" ] pkg
Type: [str] -> drv -> drv
*/
generateOptparseApplicativeCompletions =
self.callPackage (
{ stdenv }:
commands:
pkg:
if stdenv.buildPlatform.canExecute stdenv.hostPlatform
then lib.foldr haskellLib.__generateOptparseApplicativeCompletion pkg commands
else pkg
) { };
}

View file

@ -10,9 +10,8 @@
testTarget = "unit-tests";
buildTools = [installShellFiles];
postInstall = ''
substitute "exe-sh/nom-build" "$out/bin/nom-build" \
--replace 'unbuffer' '${expect}/bin/unbuffer' \
--replace 'nom' "$out/bin/nom"
ln -s nom "$out/bin/nom-build"
ln -s nom "$out/bin/nom-shell"
chmod a+x $out/bin/nom-build
installShellCompletion --zsh --name _nom-build completions/completion.zsh
'';

View file

@ -15,6 +15,7 @@
fetchzip,
filepath,
generic-optics,
hermes-json,
HUnit,
lib,
lock-file,
@ -31,17 +32,16 @@
terminal-size,
text,
time,
unix,
vector,
typed-process,
wcwidth,
word8,
}:
mkDerivation {
pname = "nix-output-monitor";
version = "1.1.3.0";
version = "2.0.0.0";
src = fetchzip {
url = "https://github.com/maralorn/nix-output-monitor/archive/refs/tags/v1.1.3.0.tar.gz";
sha256 = "085phr84m0b056mj3c09gzcwv7b1wax7nhsg2qscahfz0q8f4ym7";
url = "https://github.com/maralorn/nix-output-monitor/archive/refs/tags/v2.0.0.0.tar.gz";
sha256 = "033582nzyi0hfis062cnz8lgx918lk1bmzfimsd78a9zzxn20frg";
};
isLibrary = true;
isExecutable = true;
@ -58,12 +58,12 @@ mkDerivation {
extra
filepath
generic-optics
hermes-json
lock-file
MemoTrie
mtl
nix-derivation
optics
random
relude
safe
stm
@ -71,8 +71,6 @@ mkDerivation {
terminal-size
text
time
unix
vector
wcwidth
word8
];
@ -89,12 +87,12 @@ mkDerivation {
extra
filepath
generic-optics
hermes-json
lock-file
MemoTrie
mtl
nix-derivation
optics
random
relude
safe
stm
@ -102,8 +100,7 @@ mkDerivation {
terminal-size
text
time
unix
vector
typed-process
wcwidth
word8
];
@ -120,6 +117,7 @@ mkDerivation {
extra
filepath
generic-optics
hermes-json
HUnit
lock-file
MemoTrie
@ -135,8 +133,6 @@ mkDerivation {
terminal-size
text
time
unix
vector
wcwidth
word8
];

View file

@ -1425,6 +1425,7 @@ mapAliases ({
telepathy_qt5 = throw "'telepathy_qt5' has been renamed to/replaced by 'libsForQt5.telepathy'"; # Converted to throw 2022-02-22
telnet = throw "'telnet' has been renamed to/replaced by 'inetutils'"; # Converted to throw 2022-02-22
terminus = throw "terminus has been removed, it was unmaintained in nixpkgs"; # Added 2021-08-21
termonad-with-packages = throw "termonad-with-packages has been renamed to just 'termonad'"; # Added 2022-10-15
terraform-full = throw "terraform-full has been removed, it was an alias for 'terraform.full'"; # Added 2022-08-02
terraform_0_13 = throw "terraform_0_13 has been removed from nixpkgs"; # Added 2022-06-26
terraform_0_14 = throw "terraform_0_14 has been removed from nixpkgs"; # Added 2022-06-26

View file

@ -1918,9 +1918,7 @@ with pkgs;
};
termite-unwrapped = callPackage ../applications/terminal-emulators/termite { };
termonad-with-packages = callPackage ../applications/terminal-emulators/termonad { };
termonad = termonad-with-packages;
termonad = callPackage ../applications/terminal-emulators/termonad { };
tilda = callPackage ../applications/terminal-emulators/tilda {
gtk = gtk3;
@ -3263,7 +3261,8 @@ with pkgs;
cue2pops = callPackage ../tools/cd-dvd/cue2pops { };
cabal2nix-unwrapped = haskell.lib.compose.justStaticExecutables (haskell.lib.compose.generateOptparseApplicativeCompletion "cabal2nix" haskellPackages.cabal2nix);
cabal2nix-unwrapped = haskell.lib.compose.justStaticExecutables
(haskellPackages.generateOptparseApplicativeCompletions [ "cabal2nix" ] haskellPackages.cabal2nix);
cabal2nix = symlinkJoin {
inherit (cabal2nix-unwrapped) name meta;
@ -4547,7 +4546,7 @@ with pkgs;
nixel = callPackage ../tools/nix/nixel { };
nix-output-monitor = callPackage ../tools/nix/nix-output-monitor { };
nix-output-monitor = callPackage ../tools/nix/nix-output-monitor { haskellPackages = haskell.packages.ghc92; };
nix-template = callPackage ../tools/package-management/nix-template {
inherit (darwin.apple_sdk.frameworks) Security;
@ -9440,7 +9439,8 @@ with pkgs;
ngrep = callPackage ../tools/networking/ngrep { };
neuron-notes = haskell.lib.compose.justStaticExecutables (haskell.lib.compose.generateOptparseApplicativeCompletion "neuron" haskellPackages.neuron);
neuron-notes = haskell.lib.compose.justStaticExecutables
(haskellPackages.generateOptparseApplicativeCompletions [ "neuron" ] haskellPackages.neuron);
ngrok = callPackage ../tools/networking/ngrok { };

View file

@ -248,7 +248,7 @@ let
taffybar
tamarin-prover
taskell
termonad-with-packages
termonad
tldr-hs
tweet-hs
update-nix-fetchgit
@ -359,13 +359,7 @@ let
cabal2nix = released;
cabal2nix-unstable = released;
funcmp = released;
haskell-language-server = [
compilerNames.ghc884
compilerNames.ghc8107
compilerNames.ghc902
compilerNames.ghc924
# https://github.com/haskell/haskell-language-server/issues/3190
];
haskell-language-server = released;
hoogle = released;
hlint = [
compilerNames.ghc884