diff --git a/doc/languages-frameworks/haskell.section.md b/doc/languages-frameworks/haskell.section.md index 1fda505a2255..e926b4cf9a16 100644 --- a/doc/languages-frameworks/haskell.section.md +++ b/doc/languages-frameworks/haskell.section.md @@ -1,7 +1,977 @@ -# Haskell {#haskell} +# Haskell {#sec-haskell} -The documentation for the Haskell infrastructure is published at -. The source code for that -site lives in the `doc/` sub-directory of the -[`cabal2nix` Git repository](https://github.com/NixOS/cabal2nix) -and changes can be submitted there. +The Haskell infrastructure in nixpkgs has two main purposes: The primary purpose +is to provide a Haskell compiler and build tools as well as infrastructure for +packaging Haskell-based packages. + +The secondary purpose is to provide support for Haskell development environment +including prebuilt Haskell libraries. However, in this area sacrifices have been +made due to self-imposed restrictions in nixpkgs, to lessen the maintenance +effort and improve performance. Therefore, it may be advantageous to use an +alternative to the Haskell infrastructure in nixpkgs for development +environments in some cases. The main limitations are that we only provide +first-class support for the default compiler (currently GHC 9.2.4) and usually +only provide a default and (if different) the latest version of a haskell +package. + + + +## Available packages {#sec-haskell-available-packages} + +The compiler and most build tools are exposed at the top level: + +* `ghc` is the default version of GHC +* Language specific tools: `cabal-install`, `stack`, `hpack`, … + +Many “normal” user facing packages written in Haskell, like `niv` or `cachix`, +are also exposed at the top level, so there is nothing haskell specific to +installing and using them. + +All of these packages originally lived in the `haskellPackages` package set and +are re-exposed with a reduced dependency closure for convenience. + +The `haskellPackages` set includes at least one version of every package from +hackage as well as some manually injected packages. This amounts to a lot of +packages, so it is hidden from `nix-env -qa` by default for performance reasons. +You can still list all packages in the set like this, though: + +```console +$ nix-env -f '' -qaP -A haskellPackages +haskellPackages.a50 a50-0.5 +haskellPackages.AAI AAI-0.2.0.1 +haskellPackages.aasam aasam-0.2.0.0 +haskellPackages.abacate abacate-0.0.0.0 +haskellPackages.abc-puzzle abc-puzzle-0.2.1 +… +``` + +The attribute names in `haskellPackages` always correspond with their name on +hackage. Since hackage allows names that are not valid nix without extra +escaping, you sometimes need to extra care when handling attribute names like +`3dmodels`. + +For packages that are part of [Stackage], we use the version prescribed by a +Stackage solver (usually the current LTS one) as the default version. For all +other packages we use the latest version from Hackage. Sometimes alternative +versions of packages are provided whose attribute names are their normal name +with their version appended after an underscore, e.g. `Cabal_3_8_1_0`. + + + +Roughly half of the 16K packages contained in `haskellPackages` don't actually +build and are marked as broken semi-automatically. Most of those packages are +deprecated or unmaintained, but sometimes packages that should, don't build. +Very often fixing them is not a lot of work. + + + +`haskellPackages` is built with our default compiler, but we also provide other +releases of GHC and package sets built with them. You can list all available +compilers like this: + +```console +$ nix-env -f '' -qaP -A haskell.compiler +haskell.compiler.ghc810 ghc-8.10.7 +haskell.compiler.ghc88 ghc-8.8.4 +haskell.compiler.ghc90 ghc-9.0.2 +haskell.compiler.ghc92 ghc-9.2.4 +haskell.compiler.ghc925 ghc-9.2.5 +haskell.compiler.ghc942 ghc-9.4.2 +haskell.compiler.ghc943 ghc-9.4.3 +haskell.compiler.ghc94 ghc-9.4.4 +haskell.compiler.ghcHEAD ghc-9.7.20221224 +haskell.compiler.ghc8102Binary ghc-binary-8.10.2 +haskell.compiler.ghc8102BinaryMinimal ghc-binary-8.10.2 +haskell.compiler.ghc8107BinaryMinimal ghc-binary-8.10.7 +haskell.compiler.ghc8107Binary ghc-binary-8.10.7 +haskell.compiler.ghc865Binary ghc-binary-8.6.5 +haskell.compiler.ghc924Binary ghc-binary-9.2.4 +haskell.compiler.ghc924BinaryMinimal ghc-binary-9.2.4 +haskell.compiler.integer-simple.ghc810 ghc-integer-simple-8.10.7 +haskell.compiler.integer-simple.ghc8107 ghc-integer-simple-8.10.7 +haskell.compiler.integer-simple.ghc884 ghc-integer-simple-8.8.4 +haskell.compiler.integer-simple.ghc88 ghc-integer-simple-8.8.4 +haskell.compiler.native-bignum.ghc90 ghc-native-bignum-9.0.2 +haskell.compiler.native-bignum.ghc902 ghc-native-bignum-9.0.2 +haskell.compiler.native-bignum.ghc92 ghc-native-bignum-9.2.4 +haskell.compiler.native-bignum.ghc924 ghc-native-bignum-9.2.4 +haskell.compiler.native-bignum.ghc925 ghc-native-bignum-9.2.5 +haskell.compiler.native-bignum.ghc942 ghc-native-bignum-9.4.2 +haskell.compiler.native-bignum.ghc943 ghc-native-bignum-9.4.3 +haskell.compiler.native-bignum.ghc94 ghc-native-bignum-9.4.4 +haskell.compiler.native-bignum.ghc944 ghc-native-bignum-9.4.4 +haskell.compiler.native-bignum.ghcHEAD ghc-native-bignum-9.7.20221224 +haskell.compiler.ghcjs ghcjs-8.10.7 +``` + +Every of those compilers has a corresponding attribute set built completely +using it. However, the non-standard package sets are not tested regularly and +have less working packages as a result. The corresponding package set for GHC +9.4.4 is `haskell.packages.ghc944` (in fact `haskellPackages` is just an alias +for `haskell.packages.ghc924`): + +```console +$ nix-env -f '' -qaP -A haskell.packages.ghc924 +haskell.packages.ghc924.a50 a50-0.5 +haskell.packages.ghc924.AAI AAI-0.2.0.1 +haskell.packages.ghc924.aasam aasam-0.2.0.0 +haskell.packages.ghc924.abacate abacate-0.0.0.0 +haskell.packages.ghc924.abc-puzzle abc-puzzle-0.2.1 +… +``` + +Every package set also re-exposes the GHC used to build its packages as `haskell.packages.*.ghc`. + +## `haskellPackages.mkDerivation` {#haskell-mkderivation} + +Every haskell package set has its own haskell-aware `mkDerivation` which is used +to build its packages. Generally you won't have to interact with this builder +since [cabal2nix][cabal2nix] can generate packages +using it for an arbitrary cabal package definition. Still it is useful to know +the parameters it takes when you need to +[override](#sec-haskell-overriding-haskell-packages) a generated nix expression. + +`haskellPackages.mkDerivation` is a wrapper around `stdenv.mkDerivation` which +re-defines the default phases to be haskell aware and handles dependency +specification, test suites, benchmarks etc. by compiling and invoking the +package's `Setup.hs`. It does *not* use or invoke the `cabal-install` binary, +but uses the underlying `Cabal` library instead. + +### General arguments + +`pname` +: Package name, assumed to be the same as on hackage (if applicable) + +`version` +: Packaged version, assumed to be the same as on hackage (if applicable) + +`src` +: Source of the package. If omitted, fetch package corresponding to `pname` +and `version` from hackage. + +`sha256` +: Hash to use for the default case of `src`. + +`revision` +: Revision number of the updated cabal file to fetch from hackage. +If `null` (which is the default value), the one included in `src` is used. + +`editedCabalFile` +: `sha256` hash of the cabal file identified by `revision` or `null`. + +`configureFlags` +: Extra flags passed when executing the `configure` command of `Setup.hs`. + +`buildFlags` +: Extra flags passed when executing the `build` command of `Setup.hs`. + +`haddockFlags` +: Extra flags passed to `Setup.hs haddock` when building the documentation. + +`doCheck` +: Whether to execute the package's test suite if it has one. Defaults to `true` unless cross-compiling. + +`doBenchmark` +: Whether to execute the package's benchmark if it has one. Defaults to `false`. + +`doHoogle` +: Whether to generate an index file for [hoogle][hoogle] as part of +`haddockPhase` by passing the [`--hoogle` option][haddock-hoogle-option]. +Defaults to `true`. + +`doHaddockQuickjump` +: Whether to generate an index for interactive navigation of the HTML documentation. +Defaults to `true` if supported. + +`enableLibraryProfiling` +: Whether to enable [profiling][profiling] for libraries contained in the +package. Enabled by default if supported. + +`enableExecutableProfiling` +: Whether to enable [profiling][profiling] for executables contained in the +package. Disabled by default. + +`profilingDetail` +: [Profiling detail level][profiling-detail] to set. Defaults to `exported-functions`. + +`enableSharedExecutables` +: Whether to link executables dynamically. By default, executables are linked statically. + +`enableSharedLibraries` +: Whether to build shared Haskell libraries. This is enabled by default unless we are using +`pkgsStatic` or shared libraries have been disabled in GHC. + +`enableStaticLibraries` +: Whether to build static libraries. Enabled by default if supported. + +`enableDeadCodeElimination` +: Whether to enable linker based dead code elimination in GHC. +Enabled by default if supported. + +`enableHsc2hsViaAsm` +: Whether to pass `--via-asm` to `hsc2hs`. + +`hyperlinkSource` +: Whether to render the source as well as part of the haddock documentation +by passing the [`--hyperlinked-source` flag][haddock-hyperlinked-source-option]. +Defaults to `true`. + +`isExecutable` +: Whether the package contains an executable. + +`isLibrary` +: Whether the package contains a library. + +`jailbreak` +: Whether to execute [jailbreak-cabal][jailbreak-cabal] before `configurePhase` +to lift any version constraints in the cabal file. Note that this can't +lift version bounds if they are conditional, e.g. if a dependency is hidden +behind a flag. + +`enableParallelBuilding` +: Whether to use the `-j` flag to make GHC/Cabal start multiple jobs in parallel. + +`maxBuildCores` +: Upper limit of jobs to use in parallel for compilation regardless of +`$NIX_BUILD_CORES`. Defaults to 16 as haskell compilation with GHC currently +sees a [performance regression](https://gitlab.haskell.org/ghc/ghc/-/issues/9221) +if too many parallel jobs are used. + +`doCoverage` +: Whether to generate and install files needed for [HPC][haskell-program-coverage]. +Defaults to `false`. + +`doHaddock` +: Wether to build (HTML) documentation using [haddock][haddock]. +Defaults to `true` if supported. + +`testTarget` +: Name of the test suite to build and run. If unset, all test suites will be executed. + +`preCompileBuildDriver` +: Shell code to run before compiling `Setup.hs`. + +`postCompileBuildDriver` +: Shell code to run after compiling `Setup.hs`. + +`preHaddock` +: Shell code to run before building documentation using haddock. + +`postHaddock` +: Shell code to run after building documentation using haddock. + +`coreSetup` +: Whether to only allow core libraries to be used while building `Setup.hs`. +Defaults to `false`. + +`useCpphs` +: Whether to enable the [cpphs][cpphs] preprocessor. Defaults to `false`. + +`enableSeparateBinOutput` +: Whether to install executables to a separate `bin` output. Defaults to `false`. + +`enableSeparateDataOutput` +: Whether to install data files shipped with the package to a separate `data` output. +Defaults to `false`. + +`enableSeparateDocOutput` +: Whether to install documentation to a separate `doc` output. +Is automatically enabled if `doHaddock` is `true`. + +`allowInconsistentDependencies` +: If enabled, allow multiple versions of the same package at configure time. +Usually in such a situation compilation would later fail. Defaults to `false`. + +`enableLibraryForGhci` +: Build and install a special object file for GHCi. This improves performance +when loading the library in the REPL, but requires extra build time and +disk space. Defaults to `false`. + +`buildTarget` +: Name of the executable or library to build and install. +If unset, all available targets are built and installed. + +### Specifying dependencies + +Since `haskellPackages.mkDerivation` is intended to be generated from cabal +files, it reflects cabal's way of specifying dependencies. For one, dependencies +are grouped by what part of the package they belong to. This helps to reduce the +dependency closure of a derivation, for example benchmark dependencies are not +included if `doBenchmark == false`. + +`setup*Depends` +: dependencies necessary to compile `Setup.hs` + +`library*Depends` +: dependencies of a library contained in the package + +`executable*Depends` +: dependencies of an executable contained in the package + +`test*Depends` +: dependencies of a test suite contained in the package + +`benchmark*Depends` +: dependencies of a benchmark contained in the package + +The other categorization relates to the way the package depends on the dependency: + +`*ToolDepends` +: Tools we need to run as part of the build process. +They are added to the derivation's `nativeBuildInputs`. + +`*HaskellDepends` +: Haskell libraries the package depends on. +They are added to `propagatedBuildInputs`. + +`*SystemDepends` +: Non-Haskell libraries the package depends on. +They are added to `buildInputs` + +`*PkgconfigDepends` +: `*SystemDepends` which are discovered using `pkg-config`. +They are added to `buildInputs` and it is additionally +ensured that `pkg-config` is available at build time. + +`*FrameworkDepends` +: Apple SDK Framework which the package depends on when compiling it on Darwin. + +Using these two distinctions, you should be able to categorize most of the dependency +specifications that are available: +`benchmarkFrameworkDepends`, +`benchmarkHaskellDepends`, +`benchmarkPkgconfigDepends`, +`benchmarkSystemDepends`, +`benchmarkToolDepends`, +`executableFrameworkDepends`, +`executableHaskellDepends`, +`executablePkgconfigDepends`, +`executableSystemDepends`, +`executableToolDepends`, +`libraryFrameworkDepends`, +`libraryHaskellDepends`, +`libraryPkgconfigDepends`, +`librarySystemDepends`, +`libraryToolDepends`, +`setupHaskellDepends`, +`testFrameworkDepends`, +`testHaskellDepends`, +`testPkgconfigDepends`, +`testSystemDepends` and +`testToolDepends`. + +That only leaves the following extra ways for specifying dependencies: + +`buildDepends` +: Allows specifying Haskell dependencies which are added to `propagatedBuildInputs` unconditionally. + +`buildTools` +: Like `*ToolDepends`, but are added to `nativeBuildInputs` unconditionally. + +`extraLibraries` +: Like `*SystemDepends`, but are added to `buildInputs` unconditionally. + +`pkg-configDepends` +: Like `*PkgconfigDepends`, but are added to `buildInputs` unconditionally. + +`testDepends` +: Deprecated, use either `testHaskellDepends` or `testSystemDepends`. + +`benchmarkDepends` +: Deprecated, use either `benchmarkHaskellDepends` or `benchmarkSystemDepends`. + +The dependency specification methods in this list which are unconditional +are especially useful when writing [overrides](#sec-haskell-overriding-haskell-packages) +when you want to make sure that they are definitely included. However, it is +recommended to use the more accurate ones listed above when possible. + +### Meta attributes + +`haskellPackages.mkDerivation` accepts the following attributes as direct +arguments which are transparently set in `meta` of the resulting derivation. See +the [Meta-attributes section](#chap-meta) for their documentation. + +* These attributes are populated with a default value if omitted: + * `homepage`: defaults to the hackage page for `pname`. + * `platforms`: defaults to `lib.platforms.all` (since GHC can cross-compile) +* These attributes are only set if given: + * `description` + * `license` + * `changelog` + * `maintainers` + * `broken` + * `hydraPlatforms` + +## Development environments {#sec-haskell-development-environments} + +In addition to building and installing Haskell software, nixpkgs can also +provide development environments for Haskell projects. This has the obvious +advantage that you benefit from `cache.nixos.org` and no longer need to compile +all project dependencies yourself. + +Our main objective with `haskellPackages` is to package Haskell software in +nixpkgs. This entails some limitations, partially due to self-imposed +restrictions of nixpkgs, partially in the name of maintainability: + +* Only the packages built with the default compiler see extensive testing of the + whole package set. The experience using an older or newer packaged compiler + may be worse. + +* We aim for a “blessed” package set which only contains one version of each + package. + +Thus, to get the best experience, make sure that your project can be compiled +using the default compiler of nixpkgs and recent versions of its dependencies. +“Recent” can either mean the version contained in a certain [Stackage] snapshot +(usually the latest LTS or nightly one) +or the latest version from Hackage. Similarly to Stackage, we sometimes +intervene and downgrade packages to ensure as many packages as possible can +be compiled together. + +In particular, it is not possible to get the dependencies of a legacy project +from nixpkgs or to use a specific stack solver for compiling a project. + +Now for the actual development environments: By default every derivation built +using [`haskellPackages.mkDerivation`](#haskell-mkderivation) exposes an +environment suitable for building it interactively as the `env` attribute. For +example, if you have a local checkout of `random`, you can enter a development +environment for it like this (if the dependencies in the development and +packaged version match): + +```console +$ cd ~/src/random +$ nix-shell -A haskellPackages.random.env '' +[nix-shell:~/src/random]$ ghc-pkg list +/nix/store/a8hhl54xlzfizrhcf03c1l3f6l9l8qwv-ghc-9.2.4-with-packages/lib/ghc-9.2.4/package.conf.d + Cabal-3.6.3.0 + array-0.5.4.0 + base-4.16.3.0 + binary-0.8.9.0 + … + ghc-9.2.4 + … +``` + +As you can see, the environment contains a GHC which is set up so it finds all +dependencies of `random`. Note that this environment does not mirror +the environment used to build the package, but is intended as a convenient +tool for development and simple debugging. `env` relies on the `ghcWithPackages` +wrapper which automatically injects a pre-populated package-db into every +GHC invocation. When building the derivation, the appropriate flags would always +be passed explicitly. + +`env` mirrors the normal derivation environment in one aspect: It does not include +familiar development tools like `cabal-install`, since we rely on plain `Setup.hs` +to build all packages. However, `cabal-install` will work as expected if in +`PATH` (e.g. when installed globally and using a `nix-shell` without `--pure`). +A declarative and pure way of adding arbitrary development tools is provided +via [`shellFor`](#ssec-haskell-shellFor). + + + +Often you won't work on a package that is already part of `haskellPackages` or +Hackage, so we first need to write a Nix expression to obtain the development +environment from. Luckily, we can generate one very easily from an already +existing cabal file using `cabal2nix`: + +```console +$ ls +my-project.cabal src … +$ cabal2nix ./. > my-project.nix +``` + +The generated nix expression evaluates to a function ready to be +`callPackage`-ed. For now, we can add a minimal `default.nix` which does just +that: + +```nix +# Retrieve nixpkgs impurely from NIX_PATH for now, you can pin it instead, of course. +{ pkgs ? import {} }: + +# use the nixpkgs default haskell package set +pkgs.haskellPackages.callPackage ./my-project.nix { } +``` + +Using `nix-build default.nix` we can now build our project, but we can also +enter a shell with all the package's dependencies available using `nix-shell +-A env default.nix`. If you have `cabal-install` installed globally, it'll work +inside the shell as expected. + +### shellFor {#ssec-haskell-shellFor} + +Having to install tools globally is obviously not great, especially if you want +to provide a batteries-included `shell.nix` with your project. Luckily there's a +proper tool for making development environments out of packages' build +environments: `shellFor`, a function exposed by every haskell package set. It +takes the following arguments and returns a derivation which is suitable as a +development environment inside `nix-shell`: + +`packages` +: This argument is used to select the packages for which to build the +development environment. This should be a function which takes a haskell package +set and returns a list of packages. `shellFor` will pass the used package set to +this function and include all dependencies of the returned package in the build +environment. This means you can reuse nix expressions of packages included in +nixpkgs, but also use local nix expressions like this: `hpkgs: [ +(hpkgs.callPackage ./my-project.nix { }) ]`. + +`nativeBuildInputs` +: Expects a list of derivations to add as build tools to the build environment. +This is the place to add packages like `cabal-install`, `doctest` or `hlint`. +Defaults to `[]`. + +`buildInputs` +: Expects a list of derivations to add as library dependencies, like `openssl`. +This is rarely necessary as the haskell package expressions usually track system +dependencies as well. Defaults to `[]`. + + + +`withHoogle` +: If this is true, `hoogle` will be added to `nativeBuildInputs`. +Additionally, its database will be populated with all included dependencies, +so you'll be able search through the documentation of your dependencies. +Defaults to `false`. + +`genericBuilderArgsModifier` +: This argument accepts a function allowing you to modify the arguments passed +to `mkDerivation` in order to create the development environment. For example, +`args: { doCheck = false; }` would cause the environment to not include any test +dependencies. Defaults to `lib.id`. + +`doBenchmark` +: This is a shortcut for enabling `doBenchmark` via `genericBuilderArgsModifier`. +Setting it to `true` will cause the development environment to include all +benchmark dependencies which would be excluded by default. Defaults to `false`. + +One neat property of `shellFor` is that it allows you to work on multiple +packages using the same environment in conjunction with +[cabal.project files][cabal-project-files]. +Say our example above depends on `distribution-nixpkgs` and we have a project +file set up for both, we can add the following `shell.nix` expression: + +```nix +{ pkgs ? import {} }: + +pkgs.haskellPackages.shellFor { + packages = hpkgs: [ + # reuse the nixpkgs for this package + hpkgs.distribution-nixpkgs + # call our generated nix expression manually + (hpkgs.callPackage ./my-project/my-project.nix { }) + ]; + + # development tools we use + nativeBuildInputs = [ + pkgs.cabal-install + pkgs.haskellPackages.doctest + pkgs.cabal2nix + ]; + + # Extra arguments are added to mkDerivation's arguments as-is. + # Since it adds all passed arguments to the shell environment, + # we can use this to set the environment variable the `Paths_` + # module of distribution-nixpkgs uses to search for bundled + # files. + # See also: https://cabal.readthedocs.io/en/latest/cabal-package.html#accessing-data-files-from-package-code + distribution_nixpkgs_datadir = toString ./distribution-nixpkgs; +} +``` + + + +## Overriding haskell packages {#sec-haskell-overriding-haskell-packages} + +### Overriding a single package + + + +Like many language specific subsystems in nixpkgs, the Haskell infrastructure +also has its own quirks when it comes to overriding. Overriding of the *inputs* +to a package at least follows the standard procedure. For example, imagine you +need to build `nix-tree` with a more recent version of `brick` than the default +one provided by `haskellPackages`: + +```nix +haskellPackages.nix-tree.override { + brick = haskellPackages.brick_0_67; +} +``` + + + +The custom interface comes into play when you want to override the arguments +passed to `haskellPackages.mkDerivation`. For this, the function `overrideCabal` +from `haskell.lib.compose` is used. E.g. if you want to install a man page +that is distributed with the package, you can do something like this: + +```nix +haskell.lib.compose.overrideCabal (drv: { + postInstall = '' + ${drv.postInstall or ""} + install -Dm644 man/pnbackup.1 -t $out/share/man/man1 + ''; +}) haskellPackages.pnbackup +``` + +`overrideCabal` takes two arguments: + +1. A function which receives all arguments passed to `haskellPackages.mkDerivation` + before and returns a set of arguments to replace (or add) with a new value. +2. The Haskell derivation to override. + +The arguments are ordered so that you can easily create helper functions by making +use of currying: + +```nix +let + installManPage = haskell.lib.compose.overrideCabal (drv: { + postInstall = '' + ${drv.postInstall or ""} + install -Dm644 man/${drv.pname}.1 -t "$out/share/man/man1" + ''; + }); +in + +installManPage haskellPackages.pnbackup +``` + +In fact, `haskell.lib.compose` already provides lots of useful helpers for common +tasks, detailed in the next section. They are also structured in such a way that +they can be combined using `lib.pipe`: + +```nix +lib.pipe my-haskell-package [ + # lift version bounds on dependencies + haskell.lib.compose.doJailbreak + # disable building the haddock documentation + haskell.lib.compose.dontHaddock + # pass extra package flag to Cabal's configure step + (haskell.lib.compose.enableCabalFlag "myflag") +] +``` + +#### `haskell.lib.compose` + +The base interface for all overriding is the following function: + +`overrideCabal f drv` +: Takes the arguments passed to obtain `drv` to `f` and uses the resulting +attribute set to update the argument set. Then a recomputed version of `drv` +using the new argument set is returned. + + + +All other helper functions are implemented in terms of `overrideCabal` and make +common overrides shorter and more complicate ones trivial. The simple overrides +which only change a single argument are only described very briefly in the +following overview. Refer to the +[documentation of `haskellPackages.mkDerivation`](#haskell-mkderivation) +for a more detailed description of the effects of the respective arguments. + +##### Packaging Helpers + +`overrideSrc { src, version } drv` +: Replace the source used for building `drv` with the path or derivation given +as `src`. The `version` attribute is optional. Prefer this function over +overriding `src` via `overrideCabal`, since it also automatically takes care of +removing any Hackage revisions. + + + +`justStaticExecutables drv` +: Only build and install the executables produced by `drv`, removing everything +that may refer to other Haskell packages' store paths (like libraries and +documentation). This dramatically reduces the closure size of the resulting +derivation. Note that the executables are only statically linked against their +Haskell dependencies, but will still link dynamically against libc, GMP and +other system library dependencies. If dependencies use their Cabal-generated +`Paths_*` module, this may not work as well if GHC's dead code elimination +is unable to remove the references to the dependency's store path that module +contains. + +`enableSeparateBinOutput drv` +: Install executables produced by `drv` to a separate `bin` output. This +has a similar effect as `justStaticExecutables`, but preserves the libraries +and documentation in the `out` output alongside the `bin` output with a +much smaller closure size. + +`markBroken drv` +: Sets the `broken` flag to `true` for `drv`. + +`markUnbroken drv`, `unmarkBroken drv` +: Set the `broken` flag to `false` for `drv`. + +`doDistribute drv` +: Updates `hydraPlatforms` so that Hydra will build `drv`. This is +sometimes necessary when working with versioned packages in +`haskellPackages` which are not built by default. + +`dontDistribute drv` +: Sets `hydraPlatforms` to `[]`, causing Hydra to skip this package +altogether. Useful if it fails to evaluate cleanly and is causing +noise in the evaluation errors tab on Hydra. + +##### Development Helpers + +`sdistTarball drv` +: Create a source distribution tarball like those found on Hackage +instead of building the package `drv`. + +`documentationTarball drv` +: Create a documentation tarball suitable for uploading to Hackage +instead of building the package `drv`. + +`buildFromSdist drv` +: Uses `sdistTarball drv` as the source to compile `drv`. This helps to catch +packaging bugs when building from a local directory, e.g. when required files +are missing from `extra-source-files`. + +`failOnAllWarnings drv` +: Enables all warnings GHC supports and makes it fail the build if any of them +are emitted. + + + +`enableDWARFDebugging drv` +: Compiles the package with additional debug symbols enabled, useful +for debugging with e.g. `gdb`. + +`doStrip drv` +: Sets `doStrip` to `true` for `drv`. + +`dontStrip drv` +: Sets `doStrip` to `false` for `drv`. + + + +##### Trivial Helpers + +`doJailbreak drv` +: Sets the `jailbreak` argument to `true` for `drv`. + +`dontJailbreak drv` +: Sets the `jailbreak` argument to `false` for `drv`. + +`doHaddock drv` +: Sets `doHaddock` to `true` for `drv`. + +`dontHaddock drv` +: Sets `doHaddock` to `false` for `drv`. Useful if the build of a package is +failing because of e.g. a syntax error in the Haddock documentation. + +`doHyperlinkSource drv` +: Sets `hyperlinkSource` to `true` for `drv`. + +`dontHyperlinkSource drv` +: Sets `hyperlinkSource` to `false` for `drv`. + +`doCheck drv` +: Sets `doCheck` to `true` for `drv`. + +`dontCheck drv` +: Sets `doCheck` to `false` for `drv`. Useful if a package has a broken, +flaky or otherwise problematic test suite breaking the build. + + + +`appendConfigureFlags list drv` +: Adds the strings in `list` to the `configureFlags` argument for `drv`. + +`enableCabalFlag flag drv` +: Makes sure that the Cabal flag `flag` is enabled in Cabal's configure step. + +`disableCabalFlag flag drv` +: Makes sure that the Cabal flag `flag` is disabled in Cabal's configure step. + +`appendBuildflags list drv` +: Adds the strings in `list` to the `buildFlags` argument for `drv`. + + + +`appendPatches list drv` +: Adds the `list` of derivations or paths to the `patches` argument for `drv`. + + + +`addBuildTools list drv` +: Adds the `list` of derivations to the `buildTools` argument for `drv`. + +`addExtraLibraries list drv` +: Adds the `list` of derivations to the `extraLibraries` argument for `drv`. + +`addBuildDepends list drv` +: Adds the `list` of derivations to the `buildDepends` argument for `drv`. + +`addTestToolDepends list drv` +: Adds the `list` of derivations to the `testToolDepends` argument for `drv`. + +`addPkgconfigDepends list drv` +: Adds the `list` of derivations to the `pkg-configDepends` argument for `drv`. + +`addSetupDepends list drv` +: Adds the `list` of derivations to the `setupHaskellDepends` argument for `drv`. + +`doBenchmark drv` +: Set `doBenchmark` to `true` for `drv`. Useful if your development +environment is missing the dependencies necessary for compiling the +benchmark component. + +`dontBenchmark drv` +: Set `doBenchmark` to `false` for `drv`. + +`setBuildTargets list drv` +: Sets the `buildTarget` argument for `drv` so that the targets specified in `list` are built. + +`doCoverage drv` +: Sets the `doCoverage` argument to `true` for `drv`. + +`dontCoverage drv` +: Sets the `doCoverage` argument to `false` for `drv`. + +#### Library functions in the Haskell package sets + +Some library functions depend on packages from the Haskell package sets. Thus they are +exposed from those instead of from `haskell.lib.compose` which can only access what is +passed directly to it. When using the functions below, make sure that you are obtaining them +from the same package set (`haskellPackages`, `haskell.packages.ghc944` etc.) as the packages +you are working with or – even better – from the `self`/`final` fix point of your overlay to +`haskellPackages`. + +Note: Some functions like `shellFor` that are not intended for overriding per se, are omitted +in this section. + +`cabalSdist { src, name }` +: Generates the Cabal sdist tarball for `src`, suitable for uploading to Hackage. +Contrary to `haskell.lib.compose.sdistTarball`, it uses `cabal-install` over `Setup.hs`, +so it is usually faster: No build dependencies need to be downloaded and we can +skip compiling `Setup.hs`. + +`buildFromCabalSdist drv` +: Build `drv`, but run its `src` attribute through `cabalSdist` first. Useful for catching +files necessary for compilation that are missing from the sdist. + +`generateOptparseApplicativeCompletions list drv` +: Generate and install shell completion files for the installed executables whose +names are given via `list`. The executables need to be using `optparse-applicative` +for [this to work][optparse-applicative-completions]. +Note that this feature is automatically disabled when cross-compiling, since it +requires executing the binaries in question. + + + +## F.A.Q. {#sec-haskell-faq} + +### Why is topic X not covered in this section? Why is section Y missing? + +We have been working on [moving the nixpkgs Haskell documentation back into the +nixpkgs manual](https://github.com/NixOS/nixpkgs/issues/121403). Since this +process has not been completed yet, you may find some topics missing here +covered in the old [haskell4nix docs](https://haskell4nix.readthedocs.io/). + +If you feel any important topic is not documented at all, feel free to comment +on the issue linked above. + +[Stackage]: https://www.stackage.org +[cabal2nix]: https://github.com/nixos/cabal2nix +[hoogle]: https://wiki.haskell.org/Hoogle +[haddock]: https://www.haskell.org/haddock/ +[haddock-hoogle-option]: https://haskell-haddock.readthedocs.io/en/latest/invoking.html#cmdoption-hoogle +[haddock-hyperlinked-source-option]: https://haskell-haddock.readthedocs.io/en/latest/invoking.html#cmdoption-hyperlinked-source +[profiling]: https://downloads.haskell.org/~ghc/latest/docs/html/users_guide/profiling.html +[haskell-program-coverage]: https://downloads.haskell.org/~ghc/latest/docs/html/users_guide/profiling.html#observing-code-coverage +[profiling-detail]: https://cabal.readthedocs.io/en/latest/cabal-project.html#cfg-field-profiling-detail +[jailbreak-cabal]: https://github.com/NixOS/jailbreak-cabal/ +[cpphs]: https://hackage.haskell.org/package/cpphs +[cabal-project-files]: https://cabal.readthedocs.io/en/latest/cabal-project.html +[optparse-applicative-completions]: https://github.com/pcapriotti/optparse-applicative/blob/7726b63796aa5d0df82e926d467f039b78ca09e2/README.md#bash-zsh-and-fish-completions diff --git a/maintainers/maintainer-list.nix b/maintainers/maintainer-list.nix index 33a26278f8c6..7d1bf1a48b64 100644 --- a/maintainers/maintainer-list.nix +++ b/maintainers/maintainer-list.nix @@ -13891,6 +13891,14 @@ github = "tejasag"; githubId = 67542663; }; + tejing = { + name = "Jeff Huffman"; + email = "tejing@tejing.com"; + matrix = "@tejing:matrix.org"; + github = "tejing1"; + githubId = 5663576; + keys = [{ fingerprint = "6F0F D43B 80E5 583E 60FC 51DC 4936 D067 EB12 AB32"; }]; + }; telotortium = { email = "rirelan@gmail.com"; github = "telotortium"; diff --git a/nixos/modules/programs/zsh/zsh-syntax-highlighting.nix b/nixos/modules/programs/zsh/zsh-syntax-highlighting.nix index bc1101349283..cec4be1cb01e 100644 --- a/nixos/modules/programs/zsh/zsh-syntax-highlighting.nix +++ b/nixos/modules/programs/zsh/zsh-syntax-highlighting.nix @@ -26,6 +26,7 @@ in "brackets" "pattern" "cursor" + "regexp" "root" "line" ])); diff --git a/nixos/modules/services/hardware/fancontrol.nix b/nixos/modules/services/hardware/fancontrol.nix index e7eb8ebf92be..993c37b2364f 100644 --- a/nixos/modules/services/hardware/fancontrol.nix +++ b/nixos/modules/services/hardware/fancontrol.nix @@ -42,6 +42,13 @@ in ExecStart = "${pkgs.lm_sensors}/sbin/fancontrol ${configFile}"; }; }; + + # On some systems, the fancontrol service does not resume properly after sleep because the pwm status of the fans + # is not reset properly. Restarting the service fixes this, in accordance with https://github.com/lm-sensors/lm-sensors/issues/172. + powerManagement.resumeCommands = '' + systemctl restart fancontrol.service + ''; + }; meta.maintainers = [ maintainers.evils ]; diff --git a/pkgs/applications/display-managers/greetd/wlgreet.nix b/pkgs/applications/display-managers/greetd/wlgreet.nix index 932aa47fd714..cea23577cc45 100644 --- a/pkgs/applications/display-managers/greetd/wlgreet.nix +++ b/pkgs/applications/display-managers/greetd/wlgreet.nix @@ -4,17 +4,17 @@ }: rustPlatform.buildRustPackage rec { - pname = "wlgreet-unstable"; - version = "2022-01-25"; + pname = "wlgreet"; + version = "0.4.1"; src = fetchFromSourcehut { owner = "~kennylevinsen"; - repo = "wlgreet"; - rev = "8517e578cb64a8fb3bd8f8a438cdbe46f208b87c"; - sha256 = "0la4xlikw61cxvbkil1d22dgvazi7rs17n5i2z02090fvnfxxzxh"; + repo = pname; + rev = version; + hash = "sha256-qfEzr8tAE1+PK7xs1NQ1q6d/GlFA7/kSWXbJDOCrEsw="; }; - cargoSha256 = "651d2bf01612534f1c4b0472c812095a86eb064d16879380c87f684c04fe0d8d"; + cargoHash = "sha256-1ugExUtrzqyd9dTlBHcc44UrtEfYrfUryuG79IkTv2Y="; meta = with lib; { description = "Raw wayland greeter for greetd, to be run under sway or similar"; diff --git a/pkgs/applications/editors/ldtk/default.nix b/pkgs/applications/editors/ldtk/default.nix index 6f869be18587..3e6346f57e41 100644 --- a/pkgs/applications/editors/ldtk/default.nix +++ b/pkgs/applications/editors/ldtk/default.nix @@ -3,11 +3,11 @@ stdenv.mkDerivation rec { pname = "ldtk"; - version = "1.2.3"; + version = "1.2.5"; src = fetchurl { url = "https://github.com/deepnight/ldtk/releases/download/v${version}/ubuntu-distribution.zip"; - sha256 = "sha256-G54PQriKbm1fTqxD3J2O9bD4FBZuwqkfFPV+412nRGA="; + sha256 = "sha256-kx4GOENYYbS09HxAiCCvqm/ztc32sdB39W8uv6D+R+A="; }; nativeBuildInputs = [ unzip makeWrapper copyDesktopItems appimage-run ]; diff --git a/pkgs/applications/graphics/oculante/default.nix b/pkgs/applications/graphics/oculante/default.nix index 041b311ce1b6..99dc64d5cad4 100644 --- a/pkgs/applications/graphics/oculante/default.nix +++ b/pkgs/applications/graphics/oculante/default.nix @@ -18,16 +18,16 @@ rustPlatform.buildRustPackage rec { pname = "oculante"; - version = "0.6.39"; + version = "0.6.41"; src = fetchFromGitHub { owner = "woelper"; repo = pname; rev = version; - sha256 = "sha256-5onRdxfI5RPa2/Ou9pH84u83Dg79+eMIIYhcEnZrP8A="; + sha256 = "sha256-2pXfdR5KUD6IUasxyUptxLSLDcvJtwJwOmhHD3I7op8="; }; - cargoHash = "sha256-Mf2WuTctF0a6YNquntTizRxwq6aqTTnr8QRS/BBVqCo="; + cargoHash = "sha256-F/NKTsDRfoueVrwlq/RkBR6wNn79NiuT2InAR+XPbqw="; nativeBuildInputs = [ cmake diff --git a/pkgs/applications/misc/streamdeck-ui/default.nix b/pkgs/applications/misc/streamdeck-ui/default.nix index a1179417719b..f91c7e7b32db 100644 --- a/pkgs/applications/misc/streamdeck-ui/default.nix +++ b/pkgs/applications/misc/streamdeck-ui/default.nix @@ -26,6 +26,11 @@ python3Packages.buildPythonApplication rec { url = "https://github.com/timothycrosley/streamdeck-ui/commit/e271656c1f47b1619d1b942e2ebb01ab2d6a68a9.patch"; hash = "sha256-wqYwX6eSqMnW6OG7wSprD62Dz818ayFduVrqW9E/ays="; }) + (fetchpatch { + name = "update-python-xlib-0.33.patch"; + url = "https://github.com/timothycrosley/streamdeck-ui/commit/07d7fdd33085b413dd26b02d8a02820edad2d568.patch"; + hash = "sha256-PylTrbfB8RJ0+kbgJlRdcvfdahGoob8LabwhuFNsUpY="; + }) ]; desktopItems = [ (makeDesktopItem { diff --git a/pkgs/applications/misc/waybar/default.nix b/pkgs/applications/misc/waybar/default.nix index 1bd63b77b139..64c9c13d8c28 100644 --- a/pkgs/applications/misc/waybar/default.nix +++ b/pkgs/applications/misc/waybar/default.nix @@ -20,6 +20,7 @@ , inputSupport ? true, libinput , jackSupport ? true, libjack2 , mpdSupport ? true, libmpdclient +, mprisSupport ? stdenv.isLinux, playerctl ? false , nlSupport ? true, libnl , pulseSupport ? true, libpulseaudio , rfkillSupport ? true @@ -30,18 +31,18 @@ , udevSupport ? true, udev , upowerSupport ? true, upower , wireplumberSupport ? true, wireplumber -, withMediaPlayer ? false, glib, gobject-introspection, python3, playerctl +, withMediaPlayer ? mprisSupport && false, glib, gobject-introspection, python3 }: stdenv.mkDerivation rec { pname = "waybar"; - version = "0.9.16"; + version = "0.9.17"; src = fetchFromGitHub { owner = "Alexays"; repo = "Waybar"; rev = version; - sha256 = "sha256-hcU0ijWIN7TtIPkURVmAh0kanQWkBUa22nubj7rSfBs="; + hash = "sha256-sdNenmzI/yvN9w4Z83ojDJi+2QBx2hxhJQCFkc5kCZw="; }; nativeBuildInputs = [ @@ -53,6 +54,7 @@ stdenv.mkDerivation rec { playerctl python3.pkgs.pygobject3 ]; + strictDeps = false; buildInputs = with lib; @@ -62,6 +64,7 @@ stdenv.mkDerivation rec { ++ optional inputSupport libinput ++ optional jackSupport libjack2 ++ optional mpdSupport libmpdclient + ++ optional mprisSupport playerctl ++ optional nlSupport libnl ++ optional pulseSupport libpulseaudio ++ optional sndioSupport sndio @@ -83,6 +86,7 @@ stdenv.mkDerivation rec { libnl = nlSupport; libudev = udevSupport; mpd = mpdSupport; + mpris = mprisSupport; pulseaudio = pulseSupport; rfkill = rfkillSupport; sndio = sndioSupport; @@ -104,9 +108,10 @@ stdenv.mkDerivation rec { ''; meta = with lib; { + changelog = "https://github.com/alexays/waybar/releases/tag/${version}"; description = "Highly customizable Wayland bar for Sway and Wlroots based compositors"; license = licenses.mit; - maintainers = with maintainers; [ FlorianFranzen minijackson synthetica lovesegfault ]; + maintainers = with maintainers; [ FlorianFranzen minijackson synthetica lovesegfault rodrgz ]; platforms = platforms.unix; homepage = "https://github.com/alexays/waybar"; }; diff --git a/pkgs/applications/networking/cluster/talosctl/default.nix b/pkgs/applications/networking/cluster/talosctl/default.nix index 1186684f0e08..255ec944c8da 100644 --- a/pkgs/applications/networking/cluster/talosctl/default.nix +++ b/pkgs/applications/networking/cluster/talosctl/default.nix @@ -2,16 +2,16 @@ buildGoModule rec { pname = "talosctl"; - version = "1.3.1"; + version = "1.3.2"; src = fetchFromGitHub { owner = "siderolabs"; repo = "talos"; rev = "v${version}"; - sha256 = "sha256-K5eslPo4Ou/JJoZGASJsZ331Nyc14Dva+cead3ngw0U="; + hash = "sha256-o037LemAZhsHVIfAU0yVoNNbJ6g8ehlA4lFLN78Q8dY="; }; - vendorSha256 = "sha256-N+sFJtC+9VCt3GJoAbRsNl7vCXiFFlewsIkwTdleUhk="; + vendorHash = "sha256-HPuVDfVxbHbNaCRg/D4VeW0finbFB4eageiAzoax1wk="; ldflags = [ "-s" "-w" ]; diff --git a/pkgs/applications/version-management/git-cliff/default.nix b/pkgs/applications/version-management/git-cliff/default.nix index ff4f91cacbdc..278208c48bff 100644 --- a/pkgs/applications/version-management/git-cliff/default.nix +++ b/pkgs/applications/version-management/git-cliff/default.nix @@ -7,16 +7,16 @@ rustPlatform.buildRustPackage rec { pname = "git-cliff"; - version = "1.1.0"; + version = "1.1.1"; src = fetchFromGitHub { owner = "orhun"; repo = "git-cliff"; rev = "v${version}"; - hash = "sha256-WpLg9kBJnEEzWIx3dJN++Np1jUkYnFGlgCrUdvz2/3w="; + hash = "sha256-GCHwpOfjti9PETy3cHFHBFBot6YcSSFTBCd3zEtpP3U="; }; - cargoHash = "sha256-UN5X+rvL7nsFkIj+XZSdZ/qmHlkVVJy1BA2zSVQxqPw="; + cargoHash = "sha256-76HWkfct9weA64yvY5G/l96mjNpuKjPYHFZ5Ctz43Us="; # attempts to run the program on .git in src which is not deterministic doCheck = false; diff --git a/pkgs/applications/version-management/glitter/default.nix b/pkgs/applications/version-management/glitter/default.nix index e51791042b99..5f2ac7fea8b4 100644 --- a/pkgs/applications/version-management/glitter/default.nix +++ b/pkgs/applications/version-management/glitter/default.nix @@ -1,4 +1,4 @@ -{ lib, rustPlatform, fetchFromGitHub }: +{ lib, rustPlatform, fetchFromGitHub, git }: rustPlatform.buildRustPackage rec { pname = "glitter"; @@ -13,6 +13,10 @@ rustPlatform.buildRustPackage rec { cargoSha256 = "sha256-GQ7Bns+FPj4jl2dBXnMrmcKIYcZTLZc1WvaHgKGj/gU="; + checkInputs = [ + git + ]; + # tests require it to be in a git repository preCheck = '' git init @@ -24,6 +28,7 @@ rustPlatform.buildRustPackage rec { meta = with lib; { description = "A git wrapper that allows you to compress multiple commands into one"; homepage = "https://github.com/milo123459/glitter"; + changelog = "https://github.com/Milo123459/glitter/releases/tag/v${version}"; license = licenses.mit; maintainers = with maintainers; [ figsoda ]; }; diff --git a/pkgs/build-support/rust/build-rust-crate/lib.sh b/pkgs/build-support/rust/build-rust-crate/lib.sh index 7f98701b5409..0181ae432c85 100644 --- a/pkgs/build-support/rust/build-rust-crate/lib.sh +++ b/pkgs/build-support/rust/build-rust-crate/lib.sh @@ -78,6 +78,10 @@ build_bin_test() { build_bin_test_file() { local file="$1" local derived_crate_name="${file//\//_}" + # Make sure to strip the top level `tests` directory: see #204051. Note that + # a forward slash has now become an underscore due to the substitution + # above. + derived_crate_name=${derived_crate_name#"tests_"} derived_crate_name="${derived_crate_name%.rs}" build_bin_test "$derived_crate_name" "$file" } diff --git a/pkgs/data/fonts/jetbrains-mono/default.nix b/pkgs/data/fonts/jetbrains-mono/default.nix index 7bc6e5aad39a..bdc732ef1ab1 100644 --- a/pkgs/data/fonts/jetbrains-mono/default.nix +++ b/pkgs/data/fonts/jetbrains-mono/default.nix @@ -1,18 +1,26 @@ -{ lib, fetchzip }: +{ lib, stdenvNoCC, fetchzip }: -let - version = "2.242"; -in -fetchzip { - name = "JetBrainsMono-${version}"; +stdenvNoCC.mkDerivation rec { + pname = "jetbrains-mono"; + version = "2.304"; - url = "https://github.com/JetBrains/JetBrainsMono/releases/download/v${version}/JetBrainsMono-${version}.zip"; + src = fetchzip { + url = "https://github.com/JetBrains/JetBrainsMono/releases/download/v${version}/JetBrainsMono-${version}.zip"; + sha256 = "sha256-rv5A3F1zdcUJkmw09st1YxmEIkIoYJaMYGyZjic8jfc="; + stripRoot = false; + }; - sha256 = "sha256-flaUqpHmgebUzwPq0d+I3p9yqPmsV0kap04eApOQxdI="; + dontPatch = true; + dontConfigure = true; + dontBuild = true; + doCheck = false; + dontFixup = true; - postFetch = '' - mkdir -p $out/share/fonts - unzip -j $downloadedFile \*.ttf -d $out/share/fonts/truetype + installPhase = '' + runHook preInstall + install -Dm644 -t $out/share/fonts/truetype/ fonts/ttf/*.ttf + install -Dm644 -t $out/share/fonts/truetype/ fonts/variable/*.ttf + runHook postInstall ''; meta = with lib; { diff --git a/pkgs/data/icons/catppuccin-cursors/default.nix b/pkgs/data/icons/catppuccin-cursors/default.nix index 4559705c169b..450484b46327 100644 --- a/pkgs/data/icons/catppuccin-cursors/default.nix +++ b/pkgs/data/icons/catppuccin-cursors/default.nix @@ -1,9 +1,7 @@ { lib , stdenvNoCC , fetchFromGitHub -, inkscape -, xcursorgen -, makeFontsConf +, unzip }: let @@ -15,38 +13,25 @@ let variantName = { palette, color }: (lib.strings.toLower palette) + color; variants = map variantName product; in -stdenvNoCC.mkDerivation { +stdenvNoCC.mkDerivation rec { pname = "catppuccin-cursors"; - version = "unstable-2022-08-23"; + version = "0.2.0"; + dontBuild = true; src = fetchFromGitHub { owner = "catppuccin"; repo = "cursors"; - rev = "3d3023606939471c45cff7b643bffc5d5d4ff29c"; - sha256 = "1z9cjxxsj3vrmhsw1k05b31zmncz1ksaswc4r1k3vd2mmpigq1nk"; + rev = "v${version}"; + sha256 = "sha256-TgV5f8+YWR+h61m6WiBMg3aBFnhqShocZBdzZHSyU2c="; + sparseCheckout = [ "cursors" ]; }; + nativeBuildInputs = [ unzip ]; + outputs = variants ++ [ "out" ]; # dummy "out" output to prevent breakage outputsToInstall = []; - nativeBuildInputs = [ - inkscape - xcursorgen - ]; - - postPatch = '' - patchShebangs ./build.sh - ''; - - # Make fontconfig stop warning about being unable to load config - FONTCONFIG_FILE = makeFontsConf { fontDirectories = [ ]; }; - - # Make inkscape stop warning about being unable to create profile directory - preBuild = '' - export HOME="$NIX_BUILD_ROOT" - ''; - installPhase = '' runHook preInstall @@ -61,7 +46,7 @@ stdenvNoCC.mkDerivation { local variant=$(sed 's/\([A-Z]\)/-\1/g' <<< "$output") local variant=''${variant^} - cp -r dist/Catppuccin-"$variant"-Cursors "$iconsDir" + unzip "cursors/Catppuccin-$variant-Cursors.zip" -d "$iconsDir" fi done diff --git a/pkgs/development/compilers/hvm/default.nix b/pkgs/development/compilers/hvm/default.nix index e314e52a0523..1d60a610729d 100644 --- a/pkgs/development/compilers/hvm/default.nix +++ b/pkgs/development/compilers/hvm/default.nix @@ -1,30 +1,33 @@ { lib , rustPlatform , fetchCrate -, pkg-config -, openssl , stdenv -, Security +, darwin }: rustPlatform.buildRustPackage rec { pname = "hvm"; - version = "0.1.89"; + version = "1.0.0"; src = fetchCrate { inherit pname version; - sha256 = "sha256-xPF8HW4QFXLLjg2HO5Pl+uQ44XCdAHc6koVpVXxN6dE="; + sha256 = "sha256-nPkUGUcekZ2fvQgiVTNvt8vfQsNMyqsrkT2zqEfu/bE="; }; - cargoSha256 = "sha256-dDSmiMwDbVDfStXamQvOMBBO5MiuDFhgzWPx0oYwzcM="; + cargoSha256 = "sha256-EaZTpKFZPfDlP/2XylhJHznvlah7VNw4snrKDmT7ecw="; - nativeBuildInputs = [ pkg-config ]; + buildInputs = lib.optionals (stdenv.isDarwin && stdenv.isAarch64) [ + darwin.apple_sdk.frameworks.IOKit + ] ++ lib.optionals (stdenv.isDarwin && stdenv.isx86_64) [ + darwin.apple_sdk_11_0.frameworks.Foundation + ]; - buildInputs = [ openssl ] ++ lib.optional stdenv.isDarwin Security; - - # memory allocation of 34359738368 bytes failed + # tests are broken doCheck = false; + # enable nightly features + RUSTC_BOOTSTRAP = true; + meta = with lib; { description = "A pure functional compile target that is lazy, non-garbage-collected, and parallel"; homepage = "https://github.com/kindelia/hvm"; diff --git a/pkgs/development/haskell-modules/lib/compose.nix b/pkgs/development/haskell-modules/lib/compose.nix index 6d0e91e3339b..ebaba1a22fa6 100644 --- a/pkgs/development/haskell-modules/lib/compose.nix +++ b/pkgs/development/haskell-modules/lib/compose.nix @@ -109,8 +109,9 @@ rec { */ dontCheck = overrideCabal (drv: { doCheck = false; }); - /* doBenchmark enables dependency checking, compilation and execution + /* doBenchmark enables dependency checking and compilation for benchmarks listed in the package description file. + Benchmarks are, however, not executed at the moment. */ doBenchmark = overrideCabal (drv: { doBenchmark = true; }); /* dontBenchmark disables dependency checking, compilation and execution diff --git a/pkgs/development/libraries/libcotp/default.nix b/pkgs/development/libraries/libcotp/default.nix index 980b01549a25..4baa712b6803 100644 --- a/pkgs/development/libraries/libcotp/default.nix +++ b/pkgs/development/libraries/libcotp/default.nix @@ -1,17 +1,22 @@ -{ stdenv, lib, fetchFromGitHub, cmake, pkg-config, libgcrypt, libbaseencode }: +{ stdenv, lib, fetchFromGitHub, cmake, pkg-config, libgcrypt }: stdenv.mkDerivation rec { pname = "libcotp"; - version = "1.2.8"; + version = "2.0.0"; src = fetchFromGitHub { owner = "paolostivanin"; repo = pname; rev = "v${version}"; - sha256 = "sha256-XWrLtWoYIEyGSwc1Qq1Q2NTn0USm1ekVyLWuwvppOZE="; + sha256 = "sha256-99Uw/BMk2bLj+/FZd7MwrRw62XcCroO9yNWdtH5AFpE="; }; - buildInputs = [ libbaseencode libgcrypt ]; + postPatch = lib.optionalString stdenv.cc.isClang '' + substituteInPlace CMakeLists.txt \ + --replace "add_link_options(-Wl," "# add_link_options(-Wl," + ''; + + buildInputs = [ libgcrypt ]; nativeBuildInputs = [ cmake pkg-config ]; meta = with lib; { @@ -19,5 +24,6 @@ stdenv.mkDerivation rec { homepage = "https://github.com/paolostivanin/libcotp"; license = licenses.asl20; maintainers = with maintainers; [ alexbakker ]; + platforms = platforms.all; }; } diff --git a/pkgs/development/node-packages/node-packages.nix b/pkgs/development/node-packages/node-packages.nix index b5ea4de97631..c7695c982218 100644 --- a/pkgs/development/node-packages/node-packages.nix +++ b/pkgs/development/node-packages/node-packages.nix @@ -132558,10 +132558,10 @@ in pnpm = nodeEnv.buildNodePackage { name = "pnpm"; packageName = "pnpm"; - version = "7.19.0"; + version = "7.24.3"; src = fetchurl { - url = "https://registry.npmjs.org/pnpm/-/pnpm-7.19.0.tgz"; - sha512 = "0ZPqlBY9M5fqKI9Ya0kEB7PQj7Pg7bYEjXbRbg4pNnJIObzXeO+PaK/8FBd8KMgJe5QpLb6rn2nVFHNSNoz+kw=="; + url = "https://registry.npmjs.org/pnpm/-/pnpm-7.24.3.tgz"; + sha512 = "0fpP1l16xOY8YwsATSLodNNBa7bitV1cNY475fioVLR7Thx5tkCtdp3xIlvZYX8ZoPtedLhGn3fICC409HQSNQ=="; }; buildInputs = globalBuildInputs; meta = { diff --git a/pkgs/development/python-modules/aiohomekit/default.nix b/pkgs/development/python-modules/aiohomekit/default.nix index 8e545baf464f..c521920d4795 100644 --- a/pkgs/development/python-modules/aiohomekit/default.nix +++ b/pkgs/development/python-modules/aiohomekit/default.nix @@ -18,7 +18,7 @@ buildPythonPackage rec { pname = "aiohomekit"; - version = "2.4.3"; + version = "2.4.4"; format = "pyproject"; disabled = pythonOlder "3.9"; @@ -27,7 +27,7 @@ buildPythonPackage rec { owner = "Jc2k"; repo = pname; rev = "refs/tags/${version}"; - hash = "sha256-VuWhD5S1hOys/TcofQfPe3QzSGA0/Uvl9xnxavxJR60="; + hash = "sha256-a7i8xBlTM3DZDZBzLe/sbMR4CNx7XMxNQ6tiMI6MoTg="; }; nativeBuildInputs = [ diff --git a/pkgs/development/python-modules/bleak-retry-connector/default.nix b/pkgs/development/python-modules/bleak-retry-connector/default.nix index 80f13ecee603..516c045d775b 100644 --- a/pkgs/development/python-modules/bleak-retry-connector/default.nix +++ b/pkgs/development/python-modules/bleak-retry-connector/default.nix @@ -13,7 +13,7 @@ buildPythonPackage rec { pname = "bleak-retry-connector"; - version = "2.13.0"; + version = "2.13.1"; format = "pyproject"; disabled = pythonOlder "3.7"; @@ -22,7 +22,7 @@ buildPythonPackage rec { owner = "Bluetooth-Devices"; repo = pname; rev = "refs/tags/v${version}"; - hash = "sha256-p61U2WF+Bq2xJif3W74ghS51UggjLjIsFMGdhEu3pq8="; + hash = "sha256-MBAHo4ZpiSsGIh1ra4LugXjdSZP10RB6NG8PnC82DHY="; }; postPatch = '' diff --git a/pkgs/development/python-modules/crytic-compile/default.nix b/pkgs/development/python-modules/crytic-compile/default.nix index d09fccfe5e10..5133f1642e13 100644 --- a/pkgs/development/python-modules/crytic-compile/default.nix +++ b/pkgs/development/python-modules/crytic-compile/default.nix @@ -1,14 +1,15 @@ { lib , buildPythonPackage +, cbor2 , fetchFromGitHub +, pycryptodome , pythonOlder -, pysha3 , setuptools }: buildPythonPackage rec { pname = "crytic-compile"; - version = "0.2.4"; + version = "0.3.0"; format = "setuptools"; disabled = pythonOlder "3.6"; @@ -17,14 +18,16 @@ buildPythonPackage rec { owner = "crytic"; repo = "crytic-compile"; rev = "refs/tags/${version}"; - hash = "sha256-phb4Y8CUxuHsNt43oKsgDAZTraNauPkcYQtzcsiWyy8="; + hash = "sha256-4iTvtu2TmxvLTyWm4PV0+yV1fRLYpJHZNBgjy1MFLjM="; }; propagatedBuildInputs = [ - pysha3 + cbor2 + pycryptodome setuptools ]; + # Test require network access doCheck = false; pythonImportsCheck = [ @@ -34,6 +37,7 @@ buildPythonPackage rec { meta = with lib; { description = "Abstraction layer for smart contract build systems"; homepage = "https://github.com/crytic/crytic-compile"; + changelog = "https://github.com/crytic/crytic-compile/releases/tag/${version}"; license = licenses.agpl3Plus; maintainers = with maintainers; [ SuperSandro2000 arturcygan ]; }; diff --git a/pkgs/development/python-modules/espeak-phonemizer/cdll.patch b/pkgs/development/python-modules/espeak-phonemizer/cdll.patch new file mode 100644 index 000000000000..3ce5df122d50 --- /dev/null +++ b/pkgs/development/python-modules/espeak-phonemizer/cdll.patch @@ -0,0 +1,21 @@ +diff --git a/espeak_phonemizer/__init__.py b/espeak_phonemizer/__init__.py +index a09472e..730a7f9 100644 +--- a/espeak_phonemizer/__init__.py ++++ b/espeak_phonemizer/__init__.py +@@ -163,14 +163,10 @@ class Phonemizer: + # Already initialized + return + +- self.libc = ctypes.cdll.LoadLibrary("libc.so.6") ++ self.libc = ctypes.cdll.LoadLibrary("@libc@") + self.libc.open_memstream.restype = ctypes.POINTER(ctypes.c_char) + +- try: +- self.lib_espeak = ctypes.cdll.LoadLibrary("libespeak-ng.so") +- except OSError: +- # Try .so.1 +- self.lib_espeak = ctypes.cdll.LoadLibrary("libespeak-ng.so.1") ++ self.lib_espeak = ctypes.cdll.LoadLibrary("@libespeak_ng@") + + sample_rate = self.lib_espeak.espeak_Initialize( + Phonemizer.AUDIO_OUTPUT_SYNCHRONOUS, 0, None, 0 diff --git a/pkgs/development/python-modules/espeak-phonemizer/default.nix b/pkgs/development/python-modules/espeak-phonemizer/default.nix new file mode 100644 index 000000000000..4efb2000013d --- /dev/null +++ b/pkgs/development/python-modules/espeak-phonemizer/default.nix @@ -0,0 +1,42 @@ +{ lib +, buildPythonPackage +, fetchFromGitHub +, substituteAll +, glibc +, espeak-ng +, pytestCheckHook +}: + +buildPythonPackage rec { + pname = "espeak-phonemizer"; + version = "1.1.0"; + format = "setuptools"; + + src = fetchFromGitHub { + owner = "rhasspy"; + repo = "espeak-phonemizer"; + rev = "refs/tags/v${version}"; + hash = "sha256-qnJtS5iIARdg+umolzLHT3/nLon9syjxfTnMWHOmYPU="; + }; + + patches = [ + (substituteAll { + src = ./cdll.patch; + libc = "${lib.getLib glibc}/lib/libc.so.6"; + libespeak_ng = "${lib.getLib espeak-ng}/lib/libespeak-ng.so"; + }) + ]; + + checkInputs = [ + pytestCheckHook + ]; + + meta = with lib; { + changelog = "https://github.com/rhasspy/espeak-phonemizer/releases/tag/v${version}"; + description = "Uses ctypes and libespeak-ng to transform test into IPA phonemes"; + homepage = "https://github.com/rhasspy/espeak-phonemizer"; + license = licenses.mit; + maintainers = with maintainers; [ hexa ]; + platforms = platforms.linux; + }; +} diff --git a/pkgs/development/python-modules/fsspec/default.nix b/pkgs/development/python-modules/fsspec/default.nix index 452d9b49edfe..4eebfdf5d0a5 100644 --- a/pkgs/development/python-modules/fsspec/default.nix +++ b/pkgs/development/python-modules/fsspec/default.nix @@ -13,6 +13,20 @@ , requests , smbprotocol , tqdm + +# optionals +, adlfs +, dask +, distributed +, dropbox +, fusepy +, gcsfs +, libarchive-c +, ocifs +, panel +, pyarrow +, pygit2 +, s3fs }: buildPythonPackage rec { @@ -37,6 +51,75 @@ buildPythonPackage rec { tqdm ]; + passthru.optional-dependencies = { + entrypoints = [ + ]; + abfs = [ + adlfs + ]; + adl = [ + adlfs + ]; + dask = [ + dask + distributed + ]; + dropbox = [ + # missing dropboxdrivefs + requests + dropbox + ]; + gcs = [ + gcsfs + ]; + git = [ + pygit2 + ]; + github = [ + requests + ]; + gs = [ + gcsfs + ]; + hdfs = [ + pyarrow + ]; + arrow = [ + pyarrow + ]; + http = [ + aiohttp + requests + ]; + sftp = [ + paramiko + ]; + s3 = [ + s3fs + ]; + oci = [ + ocifs + ]; + smb = [ + smbprotocol + ]; + ssh = [ + paramiko + ]; + fuse = [ + fusepy + ]; + libarchive = [ + libarchive-c + ]; + gui = [ + panel + ]; + tqdm = [ + tqdm + ]; + }; + checkInputs = [ numpy pytest-asyncio diff --git a/pkgs/development/python-modules/govee-ble/default.nix b/pkgs/development/python-modules/govee-ble/default.nix index abbac7610982..4eacb83f4d95 100644 --- a/pkgs/development/python-modules/govee-ble/default.nix +++ b/pkgs/development/python-modules/govee-ble/default.nix @@ -12,7 +12,7 @@ buildPythonPackage rec { pname = "govee-ble"; - version = "0.21.0"; + version = "0.21.1"; format = "pyproject"; disabled = pythonOlder "3.9"; @@ -21,7 +21,7 @@ buildPythonPackage rec { owner = "Bluetooth-Devices"; repo = pname; rev = "refs/tags/v${version}"; - hash = "sha256-BObJQTt1l+fFh02/zhcKRNRs0LQl+oJelMQq9EW2XuY="; + hash = "sha256-F5BUt+A5IF010PT/OvkINrMyK8tZ+uqml3CqNWpaM0c="; }; nativeBuildInputs = [ diff --git a/pkgs/development/python-modules/hahomematic/default.nix b/pkgs/development/python-modules/hahomematic/default.nix index 8d0a2d55f82d..942d5a26edf9 100644 --- a/pkgs/development/python-modules/hahomematic/default.nix +++ b/pkgs/development/python-modules/hahomematic/default.nix @@ -15,7 +15,7 @@ buildPythonPackage rec { pname = "hahomematic"; - version = "2023.1.2"; + version = "2023.1.3"; format = "pyproject"; disabled = pythonOlder "3.9"; @@ -24,7 +24,7 @@ buildPythonPackage rec { owner = "danielperna84"; repo = pname; rev = "refs/tags/${version}"; - sha256 = "sha256-UxW80Lp8hATZFxFCxxD0p8BtqYhTl3UhwcM/+abN43c="; + sha256 = "sha256-ilttytpvvx7OzEvJ9w4iZLcXYUxg0hstph9OvPvPaNs="; }; nativeBuildInputs = [ diff --git a/pkgs/development/python-modules/home-assistant-chip-clusters/default.nix b/pkgs/development/python-modules/home-assistant-chip-clusters/default.nix new file mode 100644 index 000000000000..0cf52ad3d08f --- /dev/null +++ b/pkgs/development/python-modules/home-assistant-chip-clusters/default.nix @@ -0,0 +1,37 @@ +{ lib +, buildPythonPackage +, fetchPypi +, dacite +}: + +buildPythonPackage rec { + pname = "home-assistant-chip-clusters"; + version = "2022.12.0"; + format = "wheel"; + + src = fetchPypi { + inherit format version; + pname = "home_assistant_chip_clusters"; + dist = "py3"; + python = "py3"; + hash = "sha256-zo54lRNyKXCCUUoYIiZmHZMqISim9QKEOnFbM/iBRqE="; + }; + + propagatedBuildInputs = [ + dacite + ]; + + pythonImportsCheck = [ + "chip.clusters" + ]; + + doCheck = false; # no tests + + meta = with lib; { + description = "Python-base APIs and tools for CHIP"; + homepage = "https://github.com/home-assistant-libs/chip-wheels"; + license = licenses.asl20; + maintainers = teams.home-assistant.members; + sourceProvenance = with sourceTypes; [ binaryNativeCode ]; + }; +} diff --git a/pkgs/development/python-modules/home-assistant-chip-core/default.nix b/pkgs/development/python-modules/home-assistant-chip-core/default.nix new file mode 100644 index 000000000000..1394eef5cbdb --- /dev/null +++ b/pkgs/development/python-modules/home-assistant-chip-core/default.nix @@ -0,0 +1,93 @@ +{ lib +, stdenv +, buildPythonPackage +, fetchPypi +, pythonOlder + +# build +, autoPatchelfHook + +# runtime +, openssl_1_1 + +# propagates +, coloredlogs +, construct +, dacite +, rich +, pyyaml +, ipdb +, deprecation +, mobly +, pygobject3 +}: + +buildPythonPackage rec { + pname = "home-assistant-chip-core"; + version = "2022.12.0"; + format = "wheel"; + + disabled = pythonOlder "3.7"; + + src = let + system = { + "aarch64-linux" = { + name = "aarch64"; + hash = "sha256-oNqrvbzXeXpMG3v9RK6kppONH4n7xLVaJCEFXxVj2jE="; + }; + "x86_64-linux" = { + name = "x86_64"; + hash = "sha256-S5n1MUig8ZDSLgWeVmu+5qLZ4kfHQUC9qZcVfM8rPvw="; + }; + }.${stdenv.system} or (throw "Unsupported system"); + in fetchPypi { + pname = "home_assistant_chip_core"; + inherit version format; + dist = "cp37"; + python = "cp37"; + abi = "abi3"; + platform = "manylinux_2_31_${system.name}"; + hash = system.hash; + }; + + nativeBuildInputs = [ + autoPatchelfHook + ]; + + buildInputs = [ + openssl_1_1 + ]; + + propagatedBuildInputs = [ + coloredlogs + construct + dacite + rich + pyyaml + ipdb + deprecation + mobly + pygobject3 + ]; + + pythonImportsCheck = [ + "chip" + "chip.ble" + # https://github.com/project-chip/connectedhomeip/pull/24376 + #"chip.configuration" + "chip.discovery" + "chip.native" + "chip.storage" + ]; + + doCheck = false; # no tests + + meta = with lib; { + description = "Python-base APIs and tools for CHIP"; + homepage = "https://github.com/home-assistant-libs/chip-wheels"; + license = licenses.asl20; + maintainers = teams.home-assistant.members; + platforms = platforms.linux; + sourceProvenance = with sourceTypes; [ binaryNativeCode ]; + }; +} diff --git a/pkgs/development/python-modules/iteration-utilities/default.nix b/pkgs/development/python-modules/iteration-utilities/default.nix new file mode 100644 index 000000000000..cf8cea5f1b65 --- /dev/null +++ b/pkgs/development/python-modules/iteration-utilities/default.nix @@ -0,0 +1,28 @@ +{ lib, buildPythonPackage, fetchFromGitHub +, pytestCheckHook +}: + +buildPythonPackage rec { + pname = "iteration-utilities"; + version = "0.11.0"; + + src = fetchFromGitHub { + owner = "MSeifert04"; + repo = "iteration_utilities"; + rev = "v${version}"; + sha256 = "sha256-Q/ZuwAf+NPikN8/eltwaUilnLw4DKFm864tUe6GLDak="; + }; + + checkInputs = [ + pytestCheckHook + ]; + + pythonImportsCheck = [ "iteration_utilities" ]; + + meta = with lib; { + description = "Utilities based on Pythons iterators and generators"; + homepage = "https://github.com/MSeifert04/iteration_utilities"; + license = licenses.asl20; + maintainers = with maintainers; [ jonringer ]; + }; +} diff --git a/pkgs/development/python-modules/jinja2-ansible-filters/default.nix b/pkgs/development/python-modules/jinja2-ansible-filters/default.nix new file mode 100644 index 000000000000..33975ee204ea --- /dev/null +++ b/pkgs/development/python-modules/jinja2-ansible-filters/default.nix @@ -0,0 +1,31 @@ +{ lib, buildPythonPackage, fetchPypi +, jinja2 +, pyyaml +}: + +buildPythonPackage rec { + pname = "jinja2-ansible-filters"; + version = "1.3.2"; + + src = fetchPypi { + inherit pname version; + sha256 = "sha256-B8EM9E1wc/TwEQLKEtmi3DG0HUfkxh7ZLvam0mabNWs="; + }; + + propagatedBuildInputs = [ + jinja2 + pyyaml + ]; + + # no tests include in sdist, and source not available + doCheck = false; + + pythonImportsCheck = [ "jinja2_ansible_filters" ]; + + meta = with lib; { + description = "Jinja2 Ansible Filters"; + homepage = "https://pypi.org/project/jinja2-ansible-filters/"; + license = licenses.gpl3Plus; + maintainers = with maintainers; [ jonringer ]; + }; +} diff --git a/pkgs/development/python-modules/larynx-train/default.nix b/pkgs/development/python-modules/larynx-train/default.nix new file mode 100644 index 000000000000..6e31d660cca9 --- /dev/null +++ b/pkgs/development/python-modules/larynx-train/default.nix @@ -0,0 +1,61 @@ +{ lib +, buildPythonPackage +, larynx + +# build +, cython +, python + +# propagates +, espeak-phonemizer +, librosa +, numpy +, onnxruntime +, pytorch-lightning +, torch +}: + +buildPythonPackage rec { + inherit (larynx) version src meta; + + pname = "larynx-train"; + format = "setuptools"; + + sourceRoot = "source/src/python"; + + nativeBuildInputs = [ + cython + ]; + + postPatch = '' + substituteInPlace requirements.txt \ + --replace "onnxruntime~=1.11.0" "onnxruntime" \ + --replace "pytorch-lightning~=1.7.0" "pytorch-lightning" \ + --replace "torch~=1.11.0" "torch" + ''; + + postBuild = '' + make -C larynx_train/vits/monotonic_align + ''; + + postInstall = '' + export MONOTONIC_ALIGN=$out/${python.sitePackages}/larynx_train/vits/monotonic_align/monotonic_align + mkdir -p $MONOTONIC_ALIGN + cp -v ./larynx_train/vits/monotonic_align/larynx_train/vits/monotonic_align/core.*.so $MONOTONIC_ALIGN/ + ''; + + propagatedBuildInputs = [ + espeak-phonemizer + librosa + numpy + onnxruntime + pytorch-lightning + torch + ]; + + pythonImportsCheck = [ + "larynx_train" + ]; + + doCheck = false; # no tests +} diff --git a/pkgs/development/python-modules/lightning-utilities/default.nix b/pkgs/development/python-modules/lightning-utilities/default.nix new file mode 100644 index 000000000000..caeab60c1a92 --- /dev/null +++ b/pkgs/development/python-modules/lightning-utilities/default.nix @@ -0,0 +1,66 @@ +{ lib +, buildPythonPackage +, fetchFromGitHub + +# build +, setuptools + +# runtime +, packaging +, typing-extensions + +# tests +, pytest-timeout +, pytestCheckHook +}: + +buildPythonPackage rec { + pname = "lightning-utilities"; + version = "0.5.0"; + format = "pyproject"; + + src = fetchFromGitHub { + owner = "Lightning-AI"; + repo = "utilities"; + rev = "refs/tags/v${version}"; + hash = "sha256-J73sUmX1a7ww+rt1vwBt9P0Xbeoxag6jR0W63xEySCI="; + }; + + nativeBuildInputs = [ + setuptools + ]; + + propagatedBuildInputs = [ + packaging + typing-extensions + ]; + + pythonImportsCheck = [ + "lightning_utilities" + ]; + + checkInputs = [ + pytest-timeout + pytestCheckHook + ]; + + disabledTests = [ + "lightning_utilities.core.enums.StrEnum" + "lightning_utilities.core.imports.RequirementCache" + "lightning_utilities.core.imports.compare_version" + "lightning_utilities.core.imports.get_dependency_min_version_spec" + ]; + + disabledTestPaths = [ + "docs" + + ]; + + meta = with lib; { + changelog = "https://github.com/Lightning-AI/utilities/releases/tag/v${version}"; + description = "Common Python utilities and GitHub Actions in Lightning Ecosystem"; + homepage = "https://github.com/Lightning-AI/utilities"; + license = licenses.asl20; + maintainers = with maintainers; [ hexa ]; + }; +} diff --git a/pkgs/development/python-modules/lightwave2/default.nix b/pkgs/development/python-modules/lightwave2/default.nix index 345357957c43..964806911d94 100644 --- a/pkgs/development/python-modules/lightwave2/default.nix +++ b/pkgs/development/python-modules/lightwave2/default.nix @@ -7,14 +7,14 @@ buildPythonPackage rec { pname = "lightwave2"; - version = "0.8.18"; + version = "0.8.19"; format = "setuptools"; disabled = pythonOlder "3.8"; src = fetchPypi { inherit pname version; - hash = "sha256-XTEYOkzZP2ta+Cnffa0jz+ad/8DmZlVGPAef3CErUKo="; + hash = "sha256-S4nHJMaSX8qCYoUnMqb6AbObTR96Wg098FJAM+dQJTc="; }; propagatedBuildInputs = [ diff --git a/pkgs/development/python-modules/marshmallow-dataclass/default.nix b/pkgs/development/python-modules/marshmallow-dataclass/default.nix index 0324d1687ac5..830556e4d72b 100644 --- a/pkgs/development/python-modules/marshmallow-dataclass/default.nix +++ b/pkgs/development/python-modules/marshmallow-dataclass/default.nix @@ -12,7 +12,7 @@ buildPythonPackage rec { pname = "marshmallow-dataclass"; - version = "8.5.10"; + version = "8.5.11"; format = "setuptools"; disabled = pythonOlder "3.6"; @@ -20,8 +20,8 @@ buildPythonPackage rec { src = fetchFromGitHub { owner = "lovasoa"; repo = "marshmallow_dataclass"; - rev = "v${version}"; - sha256 = "sha256-AxUZf1dRe/7Y96DYJnziMqHKW5xyQv4FIrMMwSZTuGQ="; + rev = "refs/tags/v${version}"; + hash = "sha256-P2eJLNI+G0km2HWZII4tx/uJ+6lvyxtap/qPh13LLmA="; }; propagatedBuildInputs = [ @@ -53,6 +53,7 @@ buildPythonPackage rec { meta = with lib; { description = "Automatic generation of marshmallow schemas from dataclasses"; homepage = "https://github.com/lovasoa/marshmallow_dataclass"; + changelog = "https://github.com/lovasoa/marshmallow_dataclass/blob/v${version}/CHANGELOG.md"; license = with licenses; [ mit ]; maintainers = with maintainers; [ fab ]; }; diff --git a/pkgs/development/python-modules/mill-local/default.nix b/pkgs/development/python-modules/mill-local/default.nix index 1d13d8bd92cf..6c24ba8f424c 100644 --- a/pkgs/development/python-modules/mill-local/default.nix +++ b/pkgs/development/python-modules/mill-local/default.nix @@ -8,7 +8,7 @@ buildPythonPackage rec { pname = "mill-local"; - version = "0.2.0"; + version = "0.3.0"; format = "setuptools"; disabled = pythonOlder "3.8"; @@ -17,7 +17,7 @@ buildPythonPackage rec { owner = "Danielhiversen"; repo = "pyMillLocal"; rev = "refs/tags/${version}"; - sha256 = "sha256-u7TidHD0NzZ1JxYoCWviIXSsXojJHvVNg07eDBFQuls="; + hash = "sha256-kFBzasS7/5AM/ZW5z1ncZ9Xwuy/bh2LTVXPxNTLQnV0="; }; propagatedBuildInputs = [ @@ -35,6 +35,7 @@ buildPythonPackage rec { meta = with lib; { description = "Python module to communicate locally with Mill heaters"; homepage = "https://github.com/Danielhiversen/pyMillLocal"; + changelog = "https://github.com/Danielhiversen/pyMillLocal/releases/tag/${version}"; license = with licenses; [ mit ]; maintainers = with maintainers; [ fab ]; }; diff --git a/pkgs/development/python-modules/mitmproxy-wireguard/default.nix b/pkgs/development/python-modules/mitmproxy-wireguard/default.nix index 1e7a6a71e74e..3cb3e82b0e07 100644 --- a/pkgs/development/python-modules/mitmproxy-wireguard/default.nix +++ b/pkgs/development/python-modules/mitmproxy-wireguard/default.nix @@ -9,7 +9,7 @@ buildPythonPackage rec { pname = "mitmproxy-wireguard"; - version = "0.1.19"; + version = "0.1.20"; format = "pyproject"; disabled = pythonOlder "3.7"; @@ -18,7 +18,7 @@ buildPythonPackage rec { owner = "decathorpe"; repo = "mitmproxy_wireguard"; rev = "refs/tags/${version}"; - hash = "sha256-6LgA8IaUCfScEr+tEG5lkt0MnWoA9Iab4kAseUvZFFo="; + hash = "sha256-Oq3jF4XeT58rad0MWmqucZZHVAshhA8PViQ+2Q9Shgc="; }; nativeBuildInputs = [ @@ -31,7 +31,7 @@ buildPythonPackage rec { cargoDeps = rustPlatform.fetchCargoTarball { inherit src; name = "${pname}-${version}"; - hash = "sha256-wuroElBc0LQL0gf+P6Nffv3YsyDJliXksZCgcBfK0iw="; + hash = "sha256-HIChSAVztTmftwLhCWeLX2afqXAIHp3pmVWeW4yFZ+0="; }; # Module has no tests, only a test client diff --git a/pkgs/development/python-modules/mkdocs-mermaid2-plugin/default.nix b/pkgs/development/python-modules/mkdocs-mermaid2-plugin/default.nix new file mode 100644 index 000000000000..57f900c6ab12 --- /dev/null +++ b/pkgs/development/python-modules/mkdocs-mermaid2-plugin/default.nix @@ -0,0 +1,43 @@ +{ lib, buildPythonPackage, fetchFromGitHub +, beautifulsoup4 +, jsbeautifier +, mkdocs +, mkdocs-material +, pymdown-extensions +, pyyaml +, requests +}: + +buildPythonPackage rec { + pname = "mkdocs-mermaid2-plugin"; + version = "0.6.0"; + + src = fetchFromGitHub { + owner = "fralau"; + repo = "mkdocs-mermaid2-plugin"; + rev = "v${version}"; + sha256 = "sha256-Oe6wkVrsB0NWF+HHeifrEogjxdGPINRDJGkh9p+GoHs="; + }; + + propagatedBuildInputs = [ + beautifulsoup4 + jsbeautifier + mkdocs + mkdocs-material + pymdown-extensions + pyyaml + requests + ]; + + # non-traditional python tests (e.g. nodejs based tests) + doCheck = false; + + pythonImportsCheck = [ "mermaid2" ]; + + meta = with lib; { + description = "A MkDocs plugin for including mermaid graphs in markdown sources"; + homepage = "https://github.com/fralau/mkdocs-mermaid2-plugin"; + license = licenses.mit; + maintainers = with maintainers; [ jonringer ]; + }; +} diff --git a/pkgs/development/python-modules/mobly/default.nix b/pkgs/development/python-modules/mobly/default.nix new file mode 100644 index 000000000000..76f4e4fd9f29 --- /dev/null +++ b/pkgs/development/python-modules/mobly/default.nix @@ -0,0 +1,51 @@ +{ lib +, buildPythonPackage +, fetchFromGitHub + +# runtime +, portpicker +, pyserial +, pyyaml +, timeout-decorator +, typing-extensions + +# tests +, procps +, pytestCheckHook +, pytz +}: + +buildPythonPackage rec { + pname = "mobly"; + version = "1.12"; + format = "setuptools"; + + src = fetchFromGitHub { + owner = "google"; + repo = "mobly"; + rev = "refs/tags/${version}"; + hash = "sha256-HAXm0/h5jbgVuIwP7IZ1ffUs92gcpOPiM2VgT38r8Go="; + }; + + propagatedBuildInputs = [ + portpicker + pyserial + pyyaml + timeout-decorator + typing-extensions + ]; + + checkInputs = [ + procps + pytestCheckHook + pytz + ]; + + meta = with lib; { + changelog = "https://github.com/google/mobly/blob/"; + description = "Automation framework for special end-to-end test cases"; + homepage = "https://github.com/google/mobly"; + license = licenses.asl20; + maintainers = with maintainers; [ hexa ]; + }; +} diff --git a/pkgs/development/python-modules/oralb-ble/default.nix b/pkgs/development/python-modules/oralb-ble/default.nix index 256057393e77..394eb8c9a412 100644 --- a/pkgs/development/python-modules/oralb-ble/default.nix +++ b/pkgs/development/python-modules/oralb-ble/default.nix @@ -1,4 +1,5 @@ { lib +, bleak-retry-connector , bluetooth-data-tools , bluetooth-sensor-state-data , buildPythonPackage @@ -11,7 +12,7 @@ buildPythonPackage rec { pname = "oralb-ble"; - version = "0.16.1"; + version = "0.17.1"; format = "pyproject"; disabled = pythonOlder "3.9"; @@ -20,7 +21,7 @@ buildPythonPackage rec { owner = "Bluetooth-Devices"; repo = pname; rev = "refs/tags/v${version}"; - hash = "sha256-BbIgsIzvkUlH8JrD42Afy0U5GSk9H3ut48/XPYUZSew="; + hash = "sha256-0VZRtsh17W8h1qcGfAxE4KUehtCk1PKy3MO3fVJb4qY="; }; nativeBuildInputs = [ @@ -28,6 +29,7 @@ buildPythonPackage rec { ]; propagatedBuildInputs = [ + bleak-retry-connector bluetooth-data-tools bluetooth-sensor-state-data home-assistant-bluetooth diff --git a/pkgs/development/python-modules/plugwise/default.nix b/pkgs/development/python-modules/plugwise/default.nix index 0dbbe5407d68..d3039381aab9 100644 --- a/pkgs/development/python-modules/plugwise/default.nix +++ b/pkgs/development/python-modules/plugwise/default.nix @@ -21,7 +21,7 @@ buildPythonPackage rec { pname = "plugwise"; - version = "0.27.2"; + version = "0.27.3"; format = "setuptools"; disabled = pythonOlder "3.7"; @@ -30,7 +30,7 @@ buildPythonPackage rec { owner = pname; repo = "python-plugwise"; rev = "refs/tags/v${version}"; - hash = "sha256-X2nmOZT8JlPOWySV45wnnR4BEANa+pxBI5kzVQpQPvg="; + hash = "sha256-JO9Gc7ZhWeQIheAwanzCBQFum1BUoh7K/exAEkWp/1U="; }; propagatedBuildInputs = [ diff --git a/pkgs/development/python-modules/poetry-dynamic-versioning/default.nix b/pkgs/development/python-modules/poetry-dynamic-versioning/default.nix index e42228eb3b4e..ff84a98353af 100644 --- a/pkgs/development/python-modules/poetry-dynamic-versioning/default.nix +++ b/pkgs/development/python-modules/poetry-dynamic-versioning/default.nix @@ -5,6 +5,7 @@ , jinja2 , markupsafe , poetry-core +, poetry , pytestCheckHook , pythonOlder , tomlkit @@ -37,8 +38,12 @@ buildPythonPackage rec { checkInputs = [ pytestCheckHook + poetry ]; + # virtualenv: error: argument dest: the destination . is not write-able at / + doCheck = false; + disabledTests = [ # these require .git, but leaveDotGit = true doesn't help "test__get_version__defaults" diff --git a/pkgs/development/python-modules/python-matter-server/default.nix b/pkgs/development/python-modules/python-matter-server/default.nix new file mode 100644 index 000000000000..06d96a6d6dfc --- /dev/null +++ b/pkgs/development/python-modules/python-matter-server/default.nix @@ -0,0 +1,86 @@ +{ lib +, buildPythonPackage +, fetchFromGitHub +, pythonOlder + +# build +, setuptools + +# propagates +, aiohttp +, aiorun +, coloredlogs +, dacite +, orjson +, home-assistant-chip-clusters + +# optionals +, home-assistant-chip-core + +# tests +, python +, pytest +, pytest-aiohttp +, pytestCheckHook +}: + +buildPythonPackage rec { + pname = "python-matter-server"; + version = "1.0.8"; + format = "pyproject"; + + disabled = pythonOlder "3.9"; + + src = fetchFromGitHub { + owner = "home-assistant-libs"; + repo = "python-matter-server"; + rev = "refs/tags/${version}"; + hash = "sha256-7w2Gg70Sl84zs55z6Hg8JPtkY9dNzyb1iBC6O4ulr1M="; + }; + + nativeBuildInputs = [ + setuptools + ]; + + propagatedBuildInputs = [ + aiohttp + aiorun + coloredlogs + dacite + orjson + home-assistant-chip-clusters + ]; + + passthru.optional-dependencies = { + server = [ + home-assistant-chip-core + ]; + }; + + checkInputs = [ + pytest-aiohttp + pytestCheckHook + ] + ++ lib.flatten (builtins.attrValues passthru.optional-dependencies); + + preCheck = let + pythonEnv = python.withPackages (_: propagatedBuildInputs ++ checkInputs ++ [ pytest ]); + in + '' + export PYTHONPATH=${pythonEnv}/${python.sitePackages} + ''; + + pytestFlagsArray = [ + # Upstream theymselves limit the test scope + # https://github.com/home-assistant-libs/python-matter-server/blob/main/.github/workflows/test.yml#L65 + "tests/server" + ]; + + meta = with lib; { + changelog = "https://github.com/home-assistant-libs/python-matter-server/releases/tag/${version}"; + description = "Python server to interact with Matter"; + homepage = "https://github.com/home-assistant-libs/python-matter-server"; + license = licenses.asl20; + maintainers = teams.home-assistant.members; + }; +} diff --git a/pkgs/development/python-modules/pytorch-lightning/default.nix b/pkgs/development/python-modules/pytorch-lightning/default.nix index 55e580308aa8..b5957968ba55 100644 --- a/pkgs/development/python-modules/pytorch-lightning/default.nix +++ b/pkgs/development/python-modules/pytorch-lightning/default.nix @@ -1,47 +1,65 @@ { lib , buildPythonPackage , fetchFromGitHub -, isPy27 -, future +, pythonOlder , fsspec +, lightning-utilities +, numpy , packaging -, pytestCheckHook -, torch , pyyaml -, tensorboard +, tensorboardx +, torch , torchmetrics -, tqdm }: +, tqdm +, traitlets + +# tests +, psutil +, pytestCheckHook +}: buildPythonPackage rec { pname = "pytorch-lightning"; version = "1.8.6"; - - disabled = isPy27; + format = "pyproject"; src = fetchFromGitHub { - owner = "PyTorchLightning"; - repo = pname; + owner = "Lightning-AI"; + repo = "pytorch-lightning"; rev = "refs/tags/${version}"; hash = "sha256-5AyOCeRFiV7rdmoBPx03Xju6eTR/3jiE+HQBiEmdzmo="; }; + preConfigure = '' + export PACKAGE_NAME=pytorch + ''; + propagatedBuildInputs = [ - packaging - future fsspec - torch + numpy + packaging pyyaml - tensorboard + tensorboardx + torch + lightning-utilities torchmetrics tqdm + traitlets + ] + ++ fsspec.optional-dependencies.http; + + checkInputs = [ + psutil + pytestCheckHook ]; - checkInputs = [ pytestCheckHook ]; # Some packages are not in NixPkgs; other tests try to build distributed # models, which doesn't work in the sandbox. doCheck = false; - pythonImportsCheck = [ "pytorch_lightning" ]; + pythonImportsCheck = [ + "pytorch_lightning" + ]; meta = with lib; { description = "Lightweight PyTorch wrapper for machine learning researchers"; diff --git a/pkgs/development/python-modules/pyyaml-include/default.nix b/pkgs/development/python-modules/pyyaml-include/default.nix new file mode 100644 index 000000000000..c1b3c834d72d --- /dev/null +++ b/pkgs/development/python-modules/pyyaml-include/default.nix @@ -0,0 +1,37 @@ +{ lib, buildPythonPackage, fetchPypi +, pytestCheckHook +, pyyaml +, setuptools-scm +, setuptools-scm-git-archive +, toml +}: + +buildPythonPackage rec { + pname = "pyyaml-include"; + version = "1.3"; + + src = fetchPypi { + inherit pname version; + sha256 = "sha256-9/vrjnG1C+Dm4HRy98edv7GhW63pyToHg2n/SeV+Z3E="; + }; + + nativeBuildInputs = [ + pyyaml + setuptools-scm + setuptools-scm-git-archive + toml + ]; + + checkInputs = [ + pytestCheckHook + ]; + + pythonImportsCheck = [ "yamlinclude" ]; + + meta = with lib; { + description = "Extending PyYAML with a custom constructor for including YAML files within YAML files"; + homepage = "https://github.com/tanbro/pyyaml-include"; + license = licenses.gpl3Plus; + maintainers = with maintainers; [ jonringer ]; + }; +} diff --git a/pkgs/development/python-modules/reolink-aio/default.nix b/pkgs/development/python-modules/reolink-aio/default.nix index f29ecc171b8f..c743bba1c7f0 100644 --- a/pkgs/development/python-modules/reolink-aio/default.nix +++ b/pkgs/development/python-modules/reolink-aio/default.nix @@ -11,7 +11,7 @@ buildPythonPackage rec { pname = "reolink-aio"; - version = "0.2.1"; + version = "0.2.2"; format = "setuptools"; disabled = pythonOlder "3.9"; @@ -20,7 +20,7 @@ buildPythonPackage rec { owner = "starkillerOG"; repo = "reolink_aio"; rev = "refs/tags/${version}"; - sha256 = "sha256-AscfyYURP91aDoPo/ii3uEHQL82DAHpBHlGm1MjLx8c="; + sha256 = "sha256-rHiKwr720aTpkem8urnK9TP5CkHCEOHdeBp00rhlitI="; }; propagatedBuildInputs = [ @@ -51,6 +51,7 @@ buildPythonPackage rec { "test3_images" "test4_properties" "test_succes" + "test_wrong_password" ]; pythonImportsCheck = [ diff --git a/pkgs/development/python-modules/screenlogicpy/default.nix b/pkgs/development/python-modules/screenlogicpy/default.nix index a31286d7a3fc..5419a514275d 100644 --- a/pkgs/development/python-modules/screenlogicpy/default.nix +++ b/pkgs/development/python-modules/screenlogicpy/default.nix @@ -1,4 +1,5 @@ { lib +, async-timeout , buildPythonPackage , fetchFromGitHub , pythonOlder @@ -8,7 +9,7 @@ buildPythonPackage rec { pname = "screenlogicpy"; - version = "0.6.0"; + version = "0.6.3"; format = "setuptools"; disabled = pythonOlder "3.6"; @@ -17,9 +18,13 @@ buildPythonPackage rec { owner = "dieselrabbit"; repo = pname; rev = "refs/tags/v${version}"; - hash = "sha256-/ePvq+jFLiIsP1w9YxMl3lbekNRaDhKMjKXoYkCOpn8="; + hash = "sha256-AWQiOTgYYqhsaJqYMwhCBoSWJ1ol6dJc6TArqptNu6Y="; }; + propagatedBuildInputs = [ + async-timeout + ]; + checkInputs = [ pytest-asyncio pytestCheckHook diff --git a/pkgs/development/python-modules/skodaconnect/default.nix b/pkgs/development/python-modules/skodaconnect/default.nix index 7e70cd3780c2..8ea58cbf7b73 100644 --- a/pkgs/development/python-modules/skodaconnect/default.nix +++ b/pkgs/development/python-modules/skodaconnect/default.nix @@ -12,7 +12,7 @@ buildPythonPackage rec { pname = "skodaconnect"; - version = "1.3.2"; + version = "1.3.4"; format = "setuptools"; disabled = pythonOlder "3.8"; @@ -21,7 +21,7 @@ buildPythonPackage rec { owner = "lendy007"; repo = pname; rev = "refs/tags/${version}"; - hash = "sha256-GsDnAusCMOFAZM10NcmS0NXOLGSDQaaQbFDoooUlTSs="; + hash = "sha256-bjFXrhwIGB50upL++VnrrfzFhxFOrxgYhoNZqkbvZ9w="; }; SETUPTOOLS_SCM_PRETEND_VERSION = version; diff --git a/pkgs/development/python-modules/slither-analyzer/default.nix b/pkgs/development/python-modules/slither-analyzer/default.nix index 303d385bbc42..ef2a897de21e 100644 --- a/pkgs/development/python-modules/slither-analyzer/default.nix +++ b/pkgs/development/python-modules/slither-analyzer/default.nix @@ -1,11 +1,12 @@ { lib , stdenv , buildPythonPackage +, crytic-compile , fetchFromGitHub , makeWrapper -, pythonOlder -, crytic-compile +, packaging , prettytable +, pythonOlder , setuptools , solc , withSolc ? false @@ -13,7 +14,7 @@ buildPythonPackage rec { pname = "slither-analyzer"; - version = "0.9.1"; + version = "0.9.2"; format = "setuptools"; disabled = pythonOlder "3.8"; @@ -22,7 +23,7 @@ buildPythonPackage rec { owner = "crytic"; repo = "slither"; rev = "refs/tags/${version}"; - hash = "sha256-u9uA4eq6gYQXHhZ1ruk1vkEIRTKsgN87zENuR1Fhew4="; + hash = "sha256-Co3BFdLmSIMqlZVEPJHYH/Cf7oKYSZ+Ktbnd5RZGmfE="; }; nativeBuildInputs = [ @@ -31,6 +32,7 @@ buildPythonPackage rec { propagatedBuildInputs = [ crytic-compile + packaging prettytable setuptools ]; @@ -51,6 +53,7 @@ buildPythonPackage rec { contract details, and provides an API to easily write custom analyses. ''; homepage = "https://github.com/trailofbits/slither"; + changelog = "https://github.com/crytic/slither/releases/tag/${version}"; license = licenses.agpl3Plus; maintainers = with maintainers; [ arturcygan fab ]; }; diff --git a/pkgs/development/python-modules/teslajsonpy/default.nix b/pkgs/development/python-modules/teslajsonpy/default.nix index 7785c26230d8..453ea140ef62 100644 --- a/pkgs/development/python-modules/teslajsonpy/default.nix +++ b/pkgs/development/python-modules/teslajsonpy/default.nix @@ -16,7 +16,7 @@ buildPythonPackage rec { pname = "teslajsonpy"; - version = "3.7.1"; + version = "3.7.2"; format = "pyproject"; disabled = pythonOlder "3.7"; @@ -25,7 +25,7 @@ buildPythonPackage rec { owner = "zabuldon"; repo = pname; rev = "refs/tags/v${version}"; - hash = "sha256-aQKoSvnCZNAqXf2tUsdlkHpkRJ8k7BVOOK3TQlV7OoM="; + hash = "sha256-VOxdX6O6MG2F2ENiFI5+i7Yh+onHq755DsL7obm6Tcg="; }; nativeBuildInputs = [ diff --git a/pkgs/development/tools/bacon/default.nix b/pkgs/development/tools/bacon/default.nix index 1f148ec1d03e..bb020ec09f62 100644 --- a/pkgs/development/tools/bacon/default.nix +++ b/pkgs/development/tools/bacon/default.nix @@ -7,16 +7,16 @@ rustPlatform.buildRustPackage rec { pname = "bacon"; - version = "2.3.0"; + version = "2.4.0"; src = fetchFromGitHub { owner = "Canop"; repo = pname; rev = "refs/tags/v${version}"; - hash = "sha256-vmvv08cAYNfzlHXrCwfL37U39TS8VQIOJGMgDHc99ME="; + hash = "sha256-k87EgsH7EdnqYBoXHpPu7hB/goEXuZsz8mNsrvM+Hgw="; }; - cargoHash = "sha256-2HR0ClsbCjHiZKmPJkv3NnJyDmdR1rw+TD7UuHLk1Sg="; + cargoHash = "sha256-ujc3tH9I2WqwxmqBaUdE8lJQtj7XS56IVaxfZWhmvF8="; buildInputs = lib.optional stdenv.isDarwin [ CoreServices diff --git a/pkgs/development/tools/devbox/default.nix b/pkgs/development/tools/devbox/default.nix index ea24dfe5fcd3..8817a5726cb2 100644 --- a/pkgs/development/tools/devbox/default.nix +++ b/pkgs/development/tools/devbox/default.nix @@ -5,13 +5,13 @@ }: buildGoModule rec { pname = "devbox"; - version = "0.2.0"; + version = "0.2.2"; src = fetchFromGitHub { owner = "jetpack-io"; repo = pname; rev = version; - hash = "sha256-zfNVx3u4MtpVzxTK1yvLvPJcHUGcCFwZlGL0rZeCt4M="; + hash = "sha256-n2zFfa+UlrAOvBtqF+FkF+oSF1t/7Hg79um7Rl8yTCc="; }; ldflags = [ @@ -23,7 +23,7 @@ buildGoModule rec { # integration tests want file system access doCheck = false; - vendorHash = "sha256-KQu1Ik15YR3R+taqOJI9jUlGiVJDkVhytxPTl4sCQOk="; + vendorHash = "sha256-pZ9s2i62uMebGLpWerOkSJLxShD06vY4MybqM9ZcdGc="; nativeBuildInputs = [ installShellFiles ]; diff --git a/pkgs/development/tools/ginkgo/default.nix b/pkgs/development/tools/ginkgo/default.nix index 8226b0a41d1d..e33d773a40e3 100644 --- a/pkgs/development/tools/ginkgo/default.nix +++ b/pkgs/development/tools/ginkgo/default.nix @@ -2,15 +2,15 @@ buildGoModule rec { pname = "ginkgo"; - version = "2.6.1"; + version = "2.7.0"; src = fetchFromGitHub { owner = "onsi"; repo = "ginkgo"; rev = "v${version}"; - sha256 = "sha256-l1R/S6FHvCzdT0nhckyIi29Nntbj7lCeJghY2Tf9C2c="; + sha256 = "sha256-UXuRhozEC6zjOzjRi88mS7vyMqvBSnFCj6HXC4zZEp0="; }; - vendorSha256 = "sha256-SV7G/FZ7kj2ghr15oTMK25Y4SjaIfRc3UfxMPFr4src="; + vendorHash = "sha256-SV7G/FZ7kj2ghr15oTMK25Y4SjaIfRc3UfxMPFr4src="; # integration tests expect more file changes # types tests are missing CodeLocation diff --git a/pkgs/development/tools/hred/default.nix b/pkgs/development/tools/hred/default.nix new file mode 100644 index 000000000000..5e9b7f9122b9 --- /dev/null +++ b/pkgs/development/tools/hred/default.nix @@ -0,0 +1,32 @@ +{ lib, buildNpmPackage, fetchFromGitHub, runCommand, hred, jq }: + +buildNpmPackage rec { + pname = "hred"; + version = "1.5.0"; + + src = fetchFromGitHub { + owner = "danburzo"; + repo = "hred"; + rev = "v${version}"; + hash = "sha256-rnobJG9Z1lXEeFm+c0f9OsbiTzxeP3+zut5LYpGzWfc="; + }; + + npmDepsHash = "sha256-POxlGWK0TJMwNWDpiK5+OXLGtAx4lFJO3imoe/h+7Sc="; + + dontNpmBuild = true; + + passthru.tests = { + simple = runCommand "${pname}-test" {} '' + set -e -o pipefail + echo 'bar' | ${hred}/bin/hred 'i#foo { @id => id, @.textContent => text }' -c | ${jq}/bin/jq -c > $out + [ "$(cat $out)" = '{"id":"foo","text":"bar"}' ] + ''; + }; + + meta = { + description = "A command-line tool to extract data from HTML"; + license = lib.licenses.mit; + homepage = "https://github.com/danburzo/hred"; + maintainers = with lib.maintainers; [ tejing ]; + }; +} diff --git a/pkgs/development/tools/misc/editorconfig-checker/default.nix b/pkgs/development/tools/misc/editorconfig-checker/default.nix index 3accb063cc7d..1649031a7e7d 100644 --- a/pkgs/development/tools/misc/editorconfig-checker/default.nix +++ b/pkgs/development/tools/misc/editorconfig-checker/default.nix @@ -1,17 +1,17 @@ -{ lib, buildGoModule, fetchFromGitHub, installShellFiles }: +{ lib, buildGoModule, fetchFromGitHub, installShellFiles, testers, editorconfig-checker }: buildGoModule rec { pname = "editorconfig-checker"; - version = "2.6.0"; + version = "2.7.0"; src = fetchFromGitHub { owner = "editorconfig-checker"; repo = "editorconfig-checker"; rev = version; - sha256 = "sha256-S/iIanLToWN4OsItvSLGSEhgoYRJgUt0w3QFp1+scfY="; + hash = "sha256-8qGRcyDayXx3OflhE9Kw2AXM702/2pYB3JgfpQ0UYR8="; }; - vendorSha256 = "sha256-ktyUuWW0xlhRLkertrc4/ZYCyDh/tfYBuHqIrdTkotQ="; + vendorHash = "sha256-S93ZvC92V9nrBicEv1yQ3DEuf1FmxtvFoKPR15e8VmA="; doCheck = false; @@ -23,6 +23,10 @@ buildGoModule rec { installManPage docs/editorconfig-checker.1 ''; + passthru.tests.version = testers.testVersion { + package = editorconfig-checker; + }; + meta = with lib; { description = "A tool to verify that your files are in harmony with your .editorconfig"; homepage = "https://editorconfig-checker.github.io/"; diff --git a/pkgs/development/tools/misc/riff/default.nix b/pkgs/development/tools/misc/riff/default.nix new file mode 100644 index 000000000000..94096a2bc5e2 --- /dev/null +++ b/pkgs/development/tools/misc/riff/default.nix @@ -0,0 +1,46 @@ +{ lib +, rustPlatform +, fetchFromGitHub +, makeWrapper +, pkg-config +, openssl +, stdenv +, darwin +}: + +rustPlatform.buildRustPackage rec { + pname = "riff"; + version = "1.0.3"; + + src = fetchFromGitHub { + owner = "DeterminateSystems"; + repo = pname; + rev = "v${version}"; + hash = "sha256-ThHkEvu+lWojHmEgcrwdZDPROfxznB7vv78msyZf90A="; + }; + + cargoHash = "sha256-knA08KqjtI2FZUbllfVETxDqi/r4Gf3VuLE17JujTzc="; + + nativeBuildInputs = [ + makeWrapper + pkg-config + ]; + + buildInputs = [ + openssl + ] ++ lib.optionals stdenv.isDarwin [ + darwin.apple_sdk.frameworks.Security + ]; + + postInstall = '' + wrapProgram $out/bin/riff --set-default RIFF_DISABLE_TELEMETRY true + ''; + + meta = with lib; { + description = "A tool that automatically provides external dependencies for software projects"; + homepage = "https://riff.sh"; + changelog = "https://github.com/DeterminateSystems/riff/releases/tag/v${version}"; + license = licenses.mpl20; + maintainers = with maintainers; [ figsoda ]; + }; +} diff --git a/pkgs/development/tools/ocaml/omake/0.9.8.6-rc1.nix b/pkgs/development/tools/ocaml/omake/0.9.8.6-rc1.nix deleted file mode 100644 index 090794b33116..000000000000 --- a/pkgs/development/tools/ocaml/omake/0.9.8.6-rc1.nix +++ /dev/null @@ -1,44 +0,0 @@ -{lib, stdenv, fetchurl, makeWrapper, ocaml, ncurses}: -let - pname = "omake"; - version = "0.9.8.6-0.rc1"; - webpage = "http://omake.metaprl.org"; -in - -if lib.versionAtLeast ocaml.version "4.06" -then throw "${pname}-${version} is not available for OCaml ${ocaml.version}" -else - -stdenv.mkDerivation { - - name = "${pname}-${version}"; - - src = fetchurl { - url = "https://src.fedoraproject.org/repo/pkgs/ocaml-omake/${pname}-${version}.tar.gz/fe39a476ef4e33b7ba2ca77a6bcaded2/${pname}-${version}.tar.gz"; - sha256 = "1sas02pbj56m7wi5vf3vqrrpr4ynxymw2a8ybvfj2dkjf7q9ii13"; - }; - patchFlags = [ "-p0" ]; - patches = [ ./warn.patch ]; - - nativeBuildInputs = [ makeWrapper ]; - buildInputs = [ ocaml ncurses ]; - - dontInstall = true; - buildPhase = '' - make bootstrap - make PREFIX=$out all - make PREFIX=$out install - ''; -# prefixKey = "-prefix "; -# -# configureFlags = if transitional then "--transitional" else "--strict"; -# -# buildFlags = [ "world.opt" ]; - - meta = { - description = "Omake build system"; - homepage = webpage; - license = "GPL"; - platforms = ocaml.meta.platforms or []; - }; -} diff --git a/pkgs/development/tools/ocaml/omake/warn.patch b/pkgs/development/tools/ocaml/omake/warn.patch deleted file mode 100644 index 4459e89d7f9c..000000000000 --- a/pkgs/development/tools/ocaml/omake/warn.patch +++ /dev/null @@ -1,10 +0,0 @@ -diff -p1 -aur ../omake-0.9.8.6.ori/lib/build/OCaml.om ./lib/build/OCaml.om ---- ../omake-0.9.8.6.ori/lib/build/OCaml.om 2008-03-05 01:07:25.000000000 +0000 -+++ ./lib/build/OCaml.om 2013-06-01 15:52:37.000000000 +0000 -@@ -178,3 +178,3 @@ declare OCAMLDEPFLAGS - public.OCAMLPPFLAGS = --public.OCAMLFLAGS = -warn-error A -+public.OCAMLFLAGS = - public.OCAMLCFLAGS = -g -Seulement dans ./lib/build: OCaml.om~ -Seulement dans .: warn.patch diff --git a/pkgs/games/mindustry/default.nix b/pkgs/games/mindustry/default.nix index 2a3177fdb9db..8e3f410632ba 100644 --- a/pkgs/games/mindustry/default.nix +++ b/pkgs/games/mindustry/default.nix @@ -32,20 +32,20 @@ let pname = "mindustry"; - version = "140.4"; + version = "141.2"; buildVersion = makeBuildVersion version; Mindustry = fetchFromGitHub { owner = "Anuken"; repo = "Mindustry"; rev = "v${version}"; - sha256 = "0lfDISvC5dOd76BuPPniPf+8hXWQ/wtreNHN75k2jVA="; + sha256 = "sha256-7olnyjkcT8OwokipDnLFW3rMOPljF6HvsU249SDvA3U="; }; Arc = fetchFromGitHub { owner = "Anuken"; repo = "Arc"; rev = "v${version}"; - sha256 = "lZ3ACijauUC9jVRq9I/QwX9ozFF/dw+ArEMND+RMItM="; + sha256 = "sha256-JYM2/dkrLFZz+oqOs8e+iTRG5Vv4oUcmpAavRQ7NMMM="; }; soloud = fetchFromGitHub { owner = "Anuken"; @@ -125,7 +125,7 @@ let ''; outputHashAlgo = "sha256"; outputHashMode = "recursive"; - outputHash = "FbLd3kk/awFz91o8pZcwJTFozwJ7R+RlDOsMRaala5Q="; + outputHash = "sha256-Eb+LyO1d2XwhAp9awgMlxs7dfZav0ja9kH7PaUJQOCo="; }; in diff --git a/pkgs/os-specific/linux/zfs/default.nix b/pkgs/os-specific/linux/zfs/default.nix index eb4e8875f042..f890dfe0c3d4 100644 --- a/pkgs/os-specific/linux/zfs/default.nix +++ b/pkgs/os-specific/linux/zfs/default.nix @@ -234,10 +234,10 @@ in { # IMPORTANT: Always use a tagged release candidate or commits from the # zfs--staging branch, because this is tested by the OpenZFS # maintainers. - version = "2.1.8-staging-2022-12-01"; - rev = "21bd7661334cd865d17934bebbcaf8d3356279ee"; + version = "2.1.8-staging-2023-01-10"; + rev = "0156253d29a303bdcca3e535958e754d8f086e33"; - sha256 = "sha256-vLm6RE11nqOCoYXne79JU3nUQnVEUNbwrULwFfghWcI="; + sha256 = "sha256-2+vymBesmNLB3fuaCwQOojEzn3aYqtxIo35MvlwOoNw="; isUnstable = true; }; diff --git a/pkgs/servers/home-assistant/component-packages.nix b/pkgs/servers/home-assistant/component-packages.nix index 46d10548161b..610f5ff25eca 100644 --- a/pkgs/servers/home-assistant/component-packages.nix +++ b/pkgs/servers/home-assistant/component-packages.nix @@ -2020,8 +2020,9 @@ "matter" = ps: with ps; [ aiohttp-cors fnvhash + python-matter-server sqlalchemy - ]; # missing inputs: python-matter-server + ]; "maxcube" = ps: with ps; [ maxcube-api ]; @@ -4439,6 +4440,7 @@ "mailgun" "manual" "manual_mqtt" + "matter" "maxcube" "mazda" "meater" diff --git a/pkgs/servers/ldap/389/default.nix b/pkgs/servers/ldap/389/default.nix index b48df635ef5f..ad857703baf3 100644 --- a/pkgs/servers/ldap/389/default.nix +++ b/pkgs/servers/ldap/389/default.nix @@ -36,20 +36,20 @@ stdenv.mkDerivation rec { pname = "389-ds-base"; - version = "2.3.0"; + version = "2.3.1"; src = fetchFromGitHub { owner = "389ds"; repo = pname; rev = "${pname}-${version}"; - sha256 = "sha256-GnntF0UaufDrgcM6FFFdwxwVoU9Hu2NXTW1A2lTb6T4="; + sha256 = "sha256-14zl0zGVb8ykgtjao8QGakFyr+b5Cve0NbiZeZig/Ac="; }; cargoDeps = rustPlatform.fetchCargoTarball { inherit src; sourceRoot = "source/src"; name = "${pname}-${version}"; - hash = "sha256-OJXvNL7STNwvt6EiV2r8zv2ZoUGgNUj7UssAQNLN4KI="; + hash = "sha256-C7HFv6tTBXoi0a1yEQeGjcKjruvBrm/kiu5zgUUTse0="; }; nativeBuildInputs = [ diff --git a/pkgs/tools/audio/larynx/default.nix b/pkgs/tools/audio/larynx/default.nix new file mode 100644 index 000000000000..34c584363490 --- /dev/null +++ b/pkgs/tools/audio/larynx/default.nix @@ -0,0 +1,64 @@ +{ lib +, stdenv +, fetchFromGitHub +, cmake +, pkgconfig +, espeak-ng +, onnxruntime +, pcaudiolib +, larynx-train +}: + +let + pname = "larynx"; + version = "0.0.2"; +in +stdenv.mkDerivation { + inherit pname version; + + src = fetchFromGitHub { + owner = "rhasspy"; + repo = "larynx2"; + rev = "refs/tags/v${version}"; + hash = "sha256-6SZ1T2A1DyVmBH2pJBHJdsnniRuLrI/dthRTRRyVSQQ="; + }; + + sourceRoot = "source/src/cpp"; + + postPatch = '' + substituteInPlace CMakeLists.txt \ + --replace "/usr/local/include/onnxruntime" "${onnxruntime}" + ''; + + nativeBuildInputs = [ + cmake + pkgconfig + ]; + + buildInputs = [ + espeak-ng + onnxruntime + pcaudiolib + ]; + + installPhase = '' + runHook preInstall + + mkdir -p $out/bin + install -m 0755 larynx $out/bin + + runHook postInstall + ''; + + passthru.tests = { + inherit larynx-train; + }; + + meta = with lib; { + changelog = "https://github.com/rhasspy/larynx2/releases/tag/v${version}"; + description = "A fast, local neural text to speech system"; + homepage = "https://github.com/rhasspy/larynx2"; + license = licenses.mit; + maintainers = with maintainers; [ hexa ]; + }; +} diff --git a/pkgs/tools/misc/copier/default.nix b/pkgs/tools/misc/copier/default.nix new file mode 100644 index 000000000000..55d1ea6693e7 --- /dev/null +++ b/pkgs/tools/misc/copier/default.nix @@ -0,0 +1,51 @@ +{ lib, git, python3, fetchFromGitHub }: + +python3.pkgs.buildPythonApplication rec { + pname = "copier"; + version = "7.0.1"; + format = "pyproject"; + + src = fetchFromGitHub { + owner = "copier-org"; + repo = "copier"; + rev = "v${version}"; + sha256 = "sha256-8lTvyyKfAkvnUvw3e+r9C/49QASR8Zeokm509jxGK2g="; + }; + + POETRY_DYNAMIC_VERSIONING_BYPASS = version; + + nativeBuildInputs = [ + python3.pkgs.poetry-core + python3.pkgs.poetry-dynamic-versioning + ]; + + propagatedBuildInputs = with python3.pkgs; [ + colorama + dunamai + iteration-utilities + jinja2 + jinja2-ansible-filters + mkdocs-material + mkdocs-mermaid2-plugin + mkdocstrings + packaging + pathspec + plumbum + pydantic + pygments + pyyaml + pyyaml-include + questionary + ]; + + makeWrapperArgs = [ + "--suffix PATH : ${lib.makeBinPath [ git ] }" + ]; + + meta = with lib; { + description = "Library and command-line utility for rendering projects templates"; + homepage = "https://copier.readthedocs.io"; + license = licenses.mit; + maintainers = with maintainers; [ jonringer ]; + }; +} diff --git a/pkgs/tools/misc/gh-markdown-preview/default.nix b/pkgs/tools/misc/gh-markdown-preview/default.nix new file mode 100644 index 000000000000..036e91b371ff --- /dev/null +++ b/pkgs/tools/misc/gh-markdown-preview/default.nix @@ -0,0 +1,41 @@ +{ lib +, fetchFromGitHub +, buildGoModule +, gh-markdown-preview +, testers +}: + +buildGoModule rec { + pname = "gh-markdown-preview"; + version = "1.4.0"; + + src = fetchFromGitHub { + owner = "yusukebe"; + repo = "gh-markdown-preview"; + rev = "v${version}"; + hash = "sha256-WAKGtwz0CNqx86YOeLKWwfJiFcRAm1+X5kJOfsPgtjY="; + }; + + vendorHash = "sha256-O6Q9h5zcYAoKLjuzGu7f7UZY0Y5rL2INqFyJT2QZJ/E="; + + ldflags = [ + "-s" + "-w" + "-X github.com/yusukebe/gh-markdown-preview/cmd.Version=${version}" + ]; + + # Tests need network + doCheck = false; + + passthru.tests = { + version = testers.testVersion { package = gh-markdown-preview; }; + }; + + meta = { + description = "gh extension to preview Markdown looking like on GitHub"; + homepage = "https://github.com/yusukebe/gh-markdown-preview"; + changelog = "https://github.com/yusukebe/gh-markdown-preview/releases/tag/${src.rev}"; + license = lib.licenses.mit; + maintainers = with lib.maintainers; [ amesgen ]; + }; +} diff --git a/pkgs/tools/security/metasploit/Gemfile b/pkgs/tools/security/metasploit/Gemfile index 698dd615778a..67a3ec76005c 100644 --- a/pkgs/tools/security/metasploit/Gemfile +++ b/pkgs/tools/security/metasploit/Gemfile @@ -1,4 +1,4 @@ # frozen_string_literal: true source "https://rubygems.org" -gem "metasploit-framework", git: "https://github.com/rapid7/metasploit-framework", ref: "refs/tags/6.2.34" +gem "metasploit-framework", git: "https://github.com/rapid7/metasploit-framework", ref: "refs/tags/6.2.35" diff --git a/pkgs/tools/security/metasploit/Gemfile.lock b/pkgs/tools/security/metasploit/Gemfile.lock index d50c72d7aede..d478e29640a3 100644 --- a/pkgs/tools/security/metasploit/Gemfile.lock +++ b/pkgs/tools/security/metasploit/Gemfile.lock @@ -1,9 +1,9 @@ GIT remote: https://github.com/rapid7/metasploit-framework - revision: ef77e9e4b96d16ae52524f0810a95262ae2aaad3 - ref: refs/tags/6.2.34 + revision: 8bc83af1beb142de1ed3d81d2ef943443d07bff9 + ref: refs/tags/6.2.35 specs: - metasploit-framework (6.2.34) + metasploit-framework (6.2.35) actionpack (~> 6.0) activerecord (~> 6.0) activesupport (~> 6.0) @@ -128,13 +128,13 @@ GEM arel-helpers (2.14.0) activerecord (>= 3.1.0, < 8) aws-eventstream (1.2.0) - aws-partitions (1.688.0) + aws-partitions (1.693.0) aws-sdk-core (3.168.4) aws-eventstream (~> 1, >= 1.0.2) aws-partitions (~> 1, >= 1.651.0) aws-sigv4 (~> 1.5) jmespath (~> 1, >= 1.6.1) - aws-sdk-ec2 (1.356.0) + aws-sdk-ec2 (1.357.0) aws-sdk-core (~> 3, >= 3.165.0) aws-sigv4 (~> 1.1) aws-sdk-iam (1.73.0) @@ -265,7 +265,7 @@ GEM network_interface (0.0.2) nexpose (7.3.0) nio4r (2.5.8) - nokogiri (1.13.10) + nokogiri (1.14.0) mini_portile2 (~> 2.8.0) racc (~> 1.4) nori (2.6.0) @@ -321,7 +321,7 @@ GEM rex-core rex-struct2 rex-text - rex-core (0.1.28) + rex-core (0.1.29) rex-encoder (0.1.6) metasm rex-arch @@ -351,7 +351,7 @@ GEM metasm rex-core rex-text - rex-socket (0.1.43) + rex-socket (0.1.45) rex-core rex-sslscan (0.1.8) rex-core @@ -384,7 +384,7 @@ GEM rack (~> 2.2, >= 2.2.4) rack-protection (= 3.0.5) tilt (~> 2.0) - sqlite3 (1.5.4) + sqlite3 (1.6.0) mini_portile2 (~> 2.8.0) sshkey (2.0.0) swagger-blocks (3.0.0) @@ -435,4 +435,4 @@ DEPENDENCIES metasploit-framework! BUNDLED WITH - 2.4.2 + 2.4.3 diff --git a/pkgs/tools/security/metasploit/default.nix b/pkgs/tools/security/metasploit/default.nix index 8b8a4fedfb49..9666b751dd2b 100644 --- a/pkgs/tools/security/metasploit/default.nix +++ b/pkgs/tools/security/metasploit/default.nix @@ -15,13 +15,13 @@ let }; in stdenv.mkDerivation rec { pname = "metasploit-framework"; - version = "6.2.34"; + version = "6.2.35"; src = fetchFromGitHub { owner = "rapid7"; repo = "metasploit-framework"; rev = version; - sha256 = "sha256-Adr4ZATrhJRpTvPo3WA0/ADgG0moJQ8CKTGb4e+LgB4="; + sha256 = "sha256-nojwez1Ol13K1D/bbl7t0KEUJZxtdLD2pqo08fkZf04="; }; nativeBuildInputs = [ makeWrapper ]; diff --git a/pkgs/tools/security/metasploit/gemset.nix b/pkgs/tools/security/metasploit/gemset.nix index bec1ac4a0d8d..8dbe93bd59eb 100644 --- a/pkgs/tools/security/metasploit/gemset.nix +++ b/pkgs/tools/security/metasploit/gemset.nix @@ -104,10 +104,10 @@ platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "1g98k1kh2lb4k4aagagk80r6bx58gnx2aa9f6pzcix42cdib34r9"; + sha256 = "0gjsrdkswp0xlfcv9y45i6456dbv4xl1cka4lpfw6bwjbhnqcjc8"; type = "gem"; }; - version = "1.688.0"; + version = "1.693.0"; }; aws-sdk-core = { groups = ["default"]; @@ -124,10 +124,10 @@ platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "1l1zchxfsmbailrmjvw3s8djm20mqn0pjxf735mspp6zg3xmvyr2"; + sha256 = "0lifj9m433ri4k1xm06n06minnb1sblxxc0gzgjc1a7q5xcldqmy"; type = "gem"; }; - version = "1.356.0"; + version = "1.357.0"; }; aws-sdk-iam = { groups = ["default"]; @@ -604,12 +604,12 @@ platforms = []; source = { fetchSubmodules = false; - rev = "ef77e9e4b96d16ae52524f0810a95262ae2aaad3"; - sha256 = "07l0igpy36ri5410y9d894dy007w6ihdvs7k9rlr917b0ijginh1"; + rev = "8bc83af1beb142de1ed3d81d2ef943443d07bff9"; + sha256 = "0kkz37wz2d5alvvb0x3dkhji98fhxmg6xnrzsk55v5sf7mxz124y"; type = "git"; url = "https://github.com/rapid7/metasploit-framework"; }; - version = "6.2.34"; + version = "6.2.35"; }; metasploit-model = { groups = ["default"]; @@ -807,10 +807,10 @@ platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "0n79k78c5vdcyl0m3y3l5x9kxl6xf5lgriwi2vd665qmdkr01vnk"; + sha256 = "1fqld4wnamj7awdr1lwdifpylqdrrg5adm8xj2jl9sc5ms3nxjjm"; type = "gem"; }; - version = "1.13.10"; + version = "1.14.0"; }; nori = { groups = ["default"]; @@ -1077,10 +1077,10 @@ platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "17kgimw778flsqg66cyccz655kfdaasgv9g0zyk7zb5psigjadbl"; + sha256 = "1gnd998r7s8fl7ma0wavlwyxw244vr2mjgsrs53d455gxjxk4xi8"; type = "gem"; }; - version = "0.1.28"; + version = "0.1.29"; }; rex-encoder = { groups = ["default"]; @@ -1187,10 +1187,10 @@ platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "1dx4lq6iw5w4q545vhj8bn7gm51kkc6qqhfpv24y3mb4gwys4zmc"; + sha256 = "1r73q8i832gzrq1hqawqlvnmw0w1g8jc28z8q7kxjaqf4dd9gprz"; type = "gem"; }; - version = "0.1.43"; + version = "0.1.45"; }; rex-sslscan = { groups = ["default"]; @@ -1348,10 +1348,10 @@ platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "009124l2yw7csrq3mvzffjflgpqi3y30flazjqf6aad64gnnnksx"; + sha256 = "0f24qp50mc1qg8yvv7b3x73mh78d6mzd3b7rqib1ixfbsdiayx1x"; type = "gem"; }; - version = "1.5.4"; + version = "1.6.0"; }; sshkey = { groups = ["default"]; diff --git a/pkgs/tools/text/mdbook-katex/default.nix b/pkgs/tools/text/mdbook-katex/default.nix index 9a8e9d7c75e3..2d492f645dce 100644 --- a/pkgs/tools/text/mdbook-katex/default.nix +++ b/pkgs/tools/text/mdbook-katex/default.nix @@ -2,14 +2,14 @@ rustPlatform.buildRustPackage rec { pname = "mdbook-katex"; - version = "0.3.0"; + version = "0.3.2"; src = fetchCrate { inherit pname version; - hash = "sha256-s3ZR1fQ5x6FiHzoiDCqZahQCjhtuOoeDM32w/16DEmk="; + hash = "sha256-K96zIjWIHQN20LmmiqGEBv5/gi0CzHQt/FgRC00Z/lE="; }; - cargoHash = "sha256-/fO+ozw6dg8TeIYQ3R7LWT+acDToNcGFvceV8YojVCw="; + cargoHash = "sha256-KIPP2tT9wrTrIy6YLgSCc4hgKJXT0ZJjp/ftSxs2row="; OPENSSL_DIR = "${lib.getDev openssl}"; OPENSSL_LIB_DIR = "${lib.getLib openssl}/lib"; diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 38d9f438a963..908ad8103fc2 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -1349,6 +1349,8 @@ with pkgs; dwarfs = callPackage ../tools/filesystems/dwarfs { }; + copier = callPackage ../tools/misc/copier { }; + gamemode = callPackage ../tools/games/gamemode { libgamemode32 = pkgsi686Linux.gamemode.lib; }; @@ -1379,6 +1381,8 @@ with pkgs; gh-eco = callPackage ../tools/misc/gh-eco { }; + gh-markdown-preview = callPackage ../tools/misc/gh-markdown-preview { }; + ghostie = callPackage ../tools/misc/ghostie { }; glooctl = callPackage ../applications/networking/cluster/glooctl { }; @@ -1881,6 +1885,8 @@ with pkgs; gst = callPackage ../applications/version-management/gst { }; + hred = callPackage ../development/tools/hred { }; + hub = callPackage ../applications/version-management/hub { }; hut = callPackage ../applications/version-management/hut { }; @@ -9100,6 +9106,10 @@ with pkgs; jump = callPackage ../tools/system/jump {}; + larynx = callPackage ../tools/audio/larynx { }; + + larynx-train = with python3Packages; toPythonApplication larynx-train; + latex2html = callPackage ../tools/misc/latex2html { }; lazycli = callPackage ../tools/misc/lazycli { }; @@ -14745,9 +14755,7 @@ with pkgs; gwt240 = callPackage ../development/compilers/gwt/2.4.0.nix { }; - hvm = callPackage ../development/compilers/hvm { - inherit (darwin.apple_sdk.frameworks) Security; - }; + hvm = callPackage ../development/compilers/hvm { }; iay = callPackage ../tools/misc/iay { inherit (darwin.apple_sdk.frameworks) AppKit Security Foundation Cocoa; @@ -17925,6 +17933,8 @@ with pkgs; python-language-server = callPackage ../development/dotnet-modules/python-language-server { }; + python-matter-server = with python3Packages; toPythonApplication python-matter-server; + minify = callPackage ../development/web/minify { }; minizinc = callPackage ../development/tools/minizinc { }; @@ -18217,6 +18227,8 @@ with pkgs; revive = callPackage ../development/tools/revive { }; + riff = callPackage ../development/tools/misc/riff { }; + rman = callPackage ../development/tools/misc/rman { }; rnginline = with python3Packages; toPythonApplication rnginline; diff --git a/pkgs/top-level/ocaml-packages.nix b/pkgs/top-level/ocaml-packages.nix index 0d1602377543..8fd6b40ef19d 100644 --- a/pkgs/top-level/ocaml-packages.nix +++ b/pkgs/top-level/ocaml-packages.nix @@ -1632,8 +1632,6 @@ let ocamlnat = callPackage ../development/ocaml-modules/ocamlnat { }; - omake_rc1 = callPackage ../development/tools/ocaml/omake/0.9.8.6-rc1.nix { }; - google-drive-ocamlfuse = callPackage ../applications/networking/google-drive-ocamlfuse { }; hol_light = callPackage ../applications/science/logic/hol_light { }; diff --git a/pkgs/top-level/perl-packages.nix b/pkgs/top-level/perl-packages.nix index 5be362dc58e8..3587668c1cd0 100644 --- a/pkgs/top-level/perl-packages.nix +++ b/pkgs/top-level/perl-packages.nix @@ -17472,6 +17472,22 @@ let }; }; + NetAsyncHTTPServer = buildPerlModule { + pname = "Net-Async-HTTP-Server"; + version = "0.13"; + src = fetchurl { + url = "mirror://cpan/authors/id/P/PE/PEVANS/Net-Async-HTTP-Server-0.13.tar.gz"; + hash = "sha256-yk3kcfIieNI5PIqy7G56xO8hfbRjXS3Mi6KoynIhFO4="; + }; + buildInputs = [ TestIdentity TestMetricsAny TestRefcount TestSimple13 ]; + propagatedBuildInputs = [ HTTPMessage IOAsync MetricsAny ]; + meta = { + description = "Serve HTTP with IO::Async"; + license = with lib.licenses; [ artistic1 gpl1Plus ]; + maintainers = [ maintainers.anoa ]; + }; + }; + NetAsyncPing = buildPerlPackage { pname = "Net-Async-Ping"; version = "0.004001"; diff --git a/pkgs/top-level/python-packages.nix b/pkgs/top-level/python-packages.nix index 78df192f7fb0..d968e8e50d25 100644 --- a/pkgs/top-level/python-packages.nix +++ b/pkgs/top-level/python-packages.nix @@ -3045,6 +3045,8 @@ self: super: with self; { eradicate = callPackage ../development/python-modules/eradicate { }; + espeak-phonemizer = callPackage ../development/python-modules/espeak-phonemizer { }; + esprima = callPackage ../development/python-modules/esprima { }; escapism = callPackage ../development/python-modules/escapism { }; @@ -4309,6 +4311,10 @@ self: super: with self; { home-assistant-bluetooth = callPackage ../development/python-modules/home-assistant-bluetooth { }; + home-assistant-chip-clusters = callPackage ../development/python-modules/home-assistant-chip-clusters { }; + + home-assistant-chip-core = callPackage ../development/python-modules/home-assistant-chip-core { }; + homeassistant-pyozw = callPackage ../development/python-modules/homeassistant-pyozw { }; homeconnect = callPackage ../development/python-modules/homeconnect { }; @@ -4729,6 +4735,8 @@ self: super: with self; { itemloaders = callPackage ../development/python-modules/itemloaders { }; + iteration-utilities = callPackage ../development/python-modules/iteration-utilities { }; + iterm2 = callPackage ../development/python-modules/iterm2 { }; itsdangerous = callPackage ../development/python-modules/itsdangerous { }; @@ -4824,6 +4832,8 @@ self: super: with self; { jinja2 = callPackage ../development/python-modules/jinja2 { }; + jinja2-ansible-filters = callPackage ../development/python-modules/jinja2-ansible-filters { }; + jinja2-git = callPackage ../development/python-modules/jinja2-git { }; jinja2_pluralize = callPackage ../development/python-modules/jinja2_pluralize { }; @@ -5154,6 +5164,8 @@ self: super: with self; { lark = callPackage ../development/python-modules/lark { }; + larynx-train = callPackage ../development/python-modules/larynx-train { }; + latexcodec = callPackage ../development/python-modules/latexcodec { }; latexify-py = callPackage ../development/python-modules/latexify-py { }; @@ -5390,6 +5402,8 @@ self: super: with self; { lightning = callPackage ../development/python-modules/lightning { }; + lightning-utilities = callPackage ../development/python-modules/lightning-utilities { }; + lightparam = callPackage ../development/python-modules/lightparam { }; lightwave = callPackage ../development/python-modules/lightwave { }; @@ -5877,6 +5891,8 @@ self: super: with self; { mkdocstrings-python = callPackage ../development/python-modules/mkdocstrings-python { }; + mkdocs-mermaid2-plugin = callPackage ../development/python-modules/mkdocs-mermaid2-plugin { }; + mkl-service = callPackage ../development/python-modules/mkl-service { }; ml-collections = callPackage ../development/python-modules/ml-collections { }; @@ -5904,6 +5920,8 @@ self: super: with self; { moat-ble = callPackage ../development/python-modules/moat-ble { }; + mobly = callPackage ../development/python-modules/mobly { }; + mocket = callPackage ../development/python-modules/mocket { }; mock = callPackage ../development/python-modules/mock { }; @@ -9247,6 +9265,8 @@ self: super: with self; { python-markdown-math = callPackage ../development/python-modules/python-markdown-math { }; + python-matter-server = callPackage ../development/python-modules/python-matter-server { }; + python-miio = callPackage ../development/python-modules/python-miio { }; python-mimeparse = callPackage ../development/python-modules/python-mimeparse { }; @@ -9596,6 +9616,8 @@ self: super: with self; { pyyaml-env-tag = callPackage ../development/python-modules/pyyaml-env-tag { }; + pyyaml-include = callPackage ../development/python-modules/pyyaml-include { }; + pyzerproc = callPackage ../development/python-modules/pyzerproc { }; pyzmq = callPackage ../development/python-modules/pyzmq { };