Skip to content
This repository was archived by the owner on Apr 12, 2021. It is now read-only.
Permalink

Comparing changes

Choose two branches to see what’s changed or to start a new pull request. If you need to, you can also or learn more about diff comparisons.

Open a pull request

Create a new pull request by comparing changes across two branches. If you need to, you can also . Learn more about diff comparisons here.
base repository: NixOS/nixpkgs-channels
Failed to load repositories. Confirm that selected base ref is valid, then try again.
Loading
base: ae6bdcc53584
Choose a base ref
...
head repository: NixOS/nixpkgs-channels
Failed to load repositories. Confirm that selected head ref is valid, then try again.
Loading
compare: 39247f8d04c0
Choose a head ref

Commits on Oct 10, 2019

  1. nixos/mullvad-vpn: add service

    mullvad-vpn package is mostly useless without it.
    KamilaBorowska committed Oct 10, 2019
    Copy the full SHA
    89f5dc2 View commit details

Commits on Oct 21, 2019

  1. geos: 3.7.3 -> 3.8.0

    Semi-automatic update generated by
    https://github.com/ryantm/nixpkgs-update tools. This update was made
    based on information from
    https://repology.org/metapackage/geos/versions
    r-ryantm committed Oct 21, 2019
    Copy the full SHA
    5760002 View commit details

Commits on Nov 19, 2019

  1. nixos/hardened: build sandbox incompatible with namespaces

    Disables the build sandbox by default to avoid incompatibility with
    defaulting user namespaces to false. Ideally there would be some kind of
    linux kernel feature that allows us to trust nix-daemon builders to
    allow both nix sandbox builds and disabling untrusted naemspaces at the
    same time.
    Kyle Copperfield committed Nov 19, 2019
    Copy the full SHA
    00ac71a View commit details

Commits on Nov 26, 2019

  1. Copy the full SHA
    759968a View commit details

Commits on Nov 27, 2019

  1. nixos/gitlab-runner: reload on config change

    With this change it is no longer required to restart the runner on every
    change. Instead it can just reload it's config while running.
    bgamari authored and bachp committed Nov 27, 2019
    Copy the full SHA
    848af2c View commit details

Commits on Dec 7, 2019

  1. geos: fix homepage

    markuskowa committed Dec 7, 2019

    Verified

    This commit was signed with the committer’s verified signature.
    markuskowa Markus Kowalewski
    Copy the full SHA
    6937213 View commit details

Commits on Dec 15, 2019

  1. Copy the full SHA
    55fb0c9 View commit details

Commits on Dec 16, 2019

  1. makeDesktopItem: add desktop file validation

    This uses desktop-file-validate in desktop-file-utils.
    It can be turned off if wanted.
    worldofpeace committed Dec 16, 2019
    Copy the full SHA
    9665977 View commit details

Commits on Dec 30, 2019

  1. tests/wireguard: init wg-quick

    - Duplicate and adapt the existing default wireguard test for wg-quick
    - Pull common setup code out into a seperate file
    d-xo committed Dec 30, 2019

    Verified

    This commit was signed with the committer’s verified signature.
    d-xo dxo
    Copy the full SHA
    c9a3e1f View commit details

Commits on Jan 10, 2020

  1. nixos/factorio: add extraSettings and package options

    Currently there is no way to set game settings, such as administrators.
    extraSettings allows users to override default game settings without
    adding many more settings.
    
    The package option allows users to use the experimental version, or
    override to a specific version with their own modified package.
    artemist committed Jan 10, 2020

    Verified

    This commit was signed with the committer’s verified signature.
    artemist Artemis Tosini
    Copy the full SHA
    637d7a5 View commit details

Commits on Jan 17, 2020

  1. rosie: init at unstable-2020-01-11

    It uses its own Lua (making it use a generic Lua is work-in-progress).
    Kovacsics Robert committed Jan 17, 2020
    Copy the full SHA
    51e137b View commit details

Commits on Feb 9, 2020

  1. wafHook: allow overriding phases

    This makes the wafHook a lot closer to the structure of standard hooks
    like cmake and ninja.
    thefloweringash committed Feb 9, 2020
    Copy the full SHA
    c6791b2 View commit details
  2. wafHook: make crossFlags optional

    The convention of `--cross-compile` and `--cross-execute` is common
    enough that it seems like a reasonable default. However there are
    projects like mpv which do not use these flags, and rightfully fails
    to configure when passed unexpected flags.
    thefloweringash committed Feb 9, 2020
    Copy the full SHA
    032d5e7 View commit details
  3. Copy the full SHA
    03ffda3 View commit details

Commits on Feb 10, 2020

  1. mpvScripts.mpris: 0.3 -> 0.4

    Quote URL as well.
    doronbehar committed Feb 10, 2020
    Copy the full SHA
    fe56058 View commit details
  2. maintainers: add luc65r

    luc65r committed Feb 10, 2020
    Copy the full SHA
    e1efcdf View commit details
  3. cemu: init at 1.3

    luc65r committed Feb 10, 2020
    Copy the full SHA
    94c6099 View commit details

Commits on Feb 11, 2020

  1. Verified

    This commit was signed with the committer’s verified signature.
    Mic92 Jörg Thalheim
    Copy the full SHA
    92bede3 View commit details

Commits on Feb 19, 2020

  1. brotab: 1.1.0 -> 1.2.1

    Cleanup and fix deps a little bit.
    doronbehar committed Feb 19, 2020
    Copy the full SHA
    896f19d View commit details

Commits on Feb 21, 2020

  1. mullvad-vpn: 2020.2 -> 2020.3

    - Security update:
    Fix stack overflow caused by WireGuard key rotation timers. When the daemon
    crashed it was restarted automatically. But it did not connect (depending
    on settings), leaving a leak.
    emacsomancer committed Feb 21, 2020
    Copy the full SHA
    119ed06 View commit details
  2. abcde: use python3 eyeD3

    doronbehar committed Feb 21, 2020
    Copy the full SHA
    15ad2d7 View commit details

Commits on Feb 22, 2020

  1. Copy the full SHA
    a01db4a View commit details

Commits on Feb 25, 2020

  1. Verified

    This commit was signed with the committer’s verified signature.
    markuskowa Markus Kowalewski
    Copy the full SHA
    ae91282 View commit details

Commits on Feb 26, 2020

  1. legit: init at 1.2.0

    ryneeverett committed Feb 26, 2020
    Copy the full SHA
    e964450 View commit details

Commits on Feb 27, 2020

  1. Copy the full SHA
    9ab5fbf View commit details

Commits on Feb 28, 2020

  1. rdma-core: 27.0 -> 28.0

    rxe_cfg has been removed, is replaced by
    'rdma' from iproute package.
    markuskowa committed Feb 28, 2020

    Verified

    This commit was signed with the committer’s verified signature.
    markuskowa Markus Kowalewski
    Copy the full SHA
    505bccf View commit details
  2. Verified

    This commit was signed with the committer’s verified signature.
    Mic92 Jörg Thalheim
    Copy the full SHA
    8b7f4fa View commit details

Commits on Mar 1, 2020

  1. Copy the full SHA
    3c62152 View commit details

Commits on Mar 2, 2020

  1. Revert "git: Fix git-gui to work on Catalina"

    This reverts commit 1b6ef12.
    thefloweringash committed Mar 2, 2020
    Copy the full SHA
    880ce71 View commit details
  2. Copy the full SHA
    bc4264a View commit details

Commits on Mar 3, 2020

  1. gotop: 3.0.0 -> 3.5.0

    Update src with maintained fork
    marsam committed Mar 3, 2020

    Verified

    This commit was signed with the committer’s verified signature. The key has expired.
    marsam Mario Rodas
    Copy the full SHA
    d4bfccb View commit details

Commits on Mar 6, 2020

  1. elfutils: remove unneeded custom cross build/install phase

    This is no longer needed. elfutils compiles out of the box!
    matthewbauer committed Mar 6, 2020
    Copy the full SHA
    bad6770 View commit details
  2. aspell: perl is also a native build input

    This is needed for some scripts needed at build time.
    matthewbauer committed Mar 6, 2020
    Copy the full SHA
    d8b9212 View commit details
  3. Copy the full SHA
    42fe7c7 View commit details
  4. libpsl: add libxslt as a native dependency

    libxslt is actually both a target and native build input because some
    libxslt binary is needed to generate files and the built binaries also
    link against libxslt.
    matthewbauer committed Mar 6, 2020
    Copy the full SHA
    e0ac054 View commit details
  5. libsecret: add glib as a native dependency

    glib is both a native and target dependency. Some binary from glib is
    used to generate files.
    matthewbauer committed Mar 6, 2020
    Copy the full SHA
    fdfde03 View commit details
  6. libinput: move test dependencies to checkInputs

    This avoids pulling them in when tests are disabled.
    matthewbauer committed Mar 6, 2020
    Copy the full SHA
    de14f0c View commit details
  7. gstreamer: needs extra build inputs

    Cross needs some extra native tools:
    
    - glib
    - wayland
    - orc
    - glib is needed in nativeBuildInputs
    
    Also:
    
    - bash-completion needs to be available for PKG_CONFIG_PATH
    matthewbauer committed Mar 6, 2020
    Copy the full SHA
    5198179 View commit details
  8. bubblewrap: use buildInputs instead of nativeBuildInputs

    these are all libraries.
    matthewbauer committed Mar 6, 2020
    Copy the full SHA
    8c3160b View commit details
  9. cage: add wayland as nativeBuildInputs

    Needed on the build machine
    matthewbauer committed Mar 6, 2020
    Copy the full SHA
    78f9cad View commit details
  10. wlroots: add wayland as nativeBuildInputs

    Needed on the build machine
    matthewbauer committed Mar 6, 2020
    Copy the full SHA
    f187d8c View commit details
  11. Copy the full SHA
    ed33a6c View commit details
  12. gcr: specify libgrypt prefix

    This is needed for cross because gcrypt-config is not available to
    execute. It’s safe to do otherwise as well though.
    matthewbauer committed Mar 6, 2020
    Copy the full SHA
    f773ef5 View commit details
  13. webkitgtk: ignore gettext when cross compiling

    Unfortunately, CMake looks in CMAKE_PREFIX_PATH for binaries when
    cross-compiling. This means that it will use gettext from
    CMAKE_PREFIX_PATH even when we provide a gettext binary in PATH! This
    is bad because the on in CMAKE_PREFIX_PATH is for the cross system,
    not the native one. The only documented way I can find to change this
    behavior is by manually setting the CMAKE_IGNORE_PATH variable.
    matthewbauer committed Mar 6, 2020
    Copy the full SHA
    d2775e4 View commit details
  14. libdazzle: add glib to nativeBuildInputs

    This is needed for build tools.
    matthewbauer committed Mar 6, 2020
    Copy the full SHA
    09c498f View commit details
  15. libhandy: add libxml2 to nativeBuildInputs

    Some build tools are needed for code gen.
    matthewbauer committed Mar 6, 2020
    Copy the full SHA
    b5efbd5 View commit details
  16. Copy the full SHA
    66fcc60 View commit details
  17. Copy the full SHA
    84b7c64 View commit details
  18. glade: add libxml2 to nativeBuildInputs

    Some build tools are needed from here
    matthewbauer committed Mar 6, 2020
    Copy the full SHA
    439704b View commit details
  19. Copy the full SHA
    895ef23 View commit details
Showing 1,368 changed files with 29,001 additions and 17,058 deletions.
11 changes: 6 additions & 5 deletions .github/CODEOWNERS
Original file line number Diff line number Diff line change
@@ -82,8 +82,8 @@
/pkgs/development/r-modules @peti

# Ruby
/pkgs/development/interpreters/ruby @alyssais @zimbatm
/pkgs/development/ruby-modules @alyssais @zimbatm
/pkgs/development/interpreters/ruby @alyssais
/pkgs/development/ruby-modules @alyssais

# Rust
/pkgs/development/compilers/rust @Mic92 @LnL7
@@ -178,6 +178,7 @@
/nixos/tests/prometheus-exporters.nix @WilliButz

# PHP
/pkgs/development/interpreters/php @etu
/pkgs/top-level/php-packages.nix @etu
/pkgs/build-support/build-pecl.nix @etu
/doc/languages-frameworks/php.section.md @etu
/pkgs/development/interpreters/php @etu
/pkgs/top-level/php-packages.nix @etu
/pkgs/build-support/build-pecl.nix @etu
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -11,6 +11,7 @@ result-*
.version-suffix

.DS_Store
.mypy_cache

/pkgs/development/libraries/qt-5/*/tmp/
/pkgs/desktops/kde-5/*/tmp/
2 changes: 1 addition & 1 deletion doc/languages-frameworks/android.section.md
Original file line number Diff line number Diff line change
@@ -186,7 +186,7 @@ with import <nixpkgs> {};
androidenv.emulateApp {
name = "emulate-MyAndroidApp";
platformVersion = "28";
abiVersion = "x86_64"; # armeabi-v7a, mips, x86
abiVersion = "x86"; # armeabi-v7a, mips, x86_64
systemImageType = "google_apis_playstore";
}
```
112 changes: 112 additions & 0 deletions doc/languages-frameworks/php.section.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,112 @@
# PHP

## User Guide

### Using PHP

#### Overview

Several versions of PHP are available on Nix, each of which having a
wide variety of extensions and libraries available.

The attribute `php` refers to the version of PHP considered most
stable and thoroughly tested in nixpkgs for any given release of
NixOS. Note that while this version of PHP may not be the latest major
release from upstream, any version of PHP supported in nixpkgs may be
utilized by specifying the desired attribute by version, such as
`php74`.

Only versions of PHP that are supported by upstream for the entirety
of a given NixOS release will be included in that release of
NixOS. See [PHP Supported
Versions](https://www.php.net/supported-versions.php).

Interactive tools built on PHP are put in `php.packages`; composer is
for example available at `php.packages.composer`.

Most extensions that come with PHP, as well as some popular
third-party ones, are available in `php.extensions`; for example, the
opcache extension shipped with PHP is available at
`php.extensions.opcache` and the third-party ImageMagick extension at
`php.extensions.imagick`.

The different versions of PHP that nixpkgs provides is located under
attributes named based on major and minor version number; e.g.,
`php74` is PHP 7.4 with commonly used extensions installed,
`php74base` is the same PHP runtime without extensions.

#### Installing PHP with packages

A PHP package with specific extensions enabled can be built using
`php.withExtensions`. This is a function which accepts an anonymous
function as its only argument; the function should take one argument,
the set of all extensions, and return a list of wanted extensions. For
example, a PHP package with the opcache and ImageMagick extensions
enabled:

```nix
php.withExtensions (e: with e; [ imagick opcache ])
```

Note that this will give you a package with _only_ opcache and
ImageMagick, none of the other extensions which are enabled by default
in the `php` package will be available.

To enable building on a previous PHP package, the currently enabled
extensions are made available in its `enabledExtensions`
attribute. For example, to generate a package with all default
extensions enabled, except opcache, but with ImageMagick:

```nix
php.withExtensions (e:
(lib.filter (e: e != php.extensions.opcache) php.enabledExtensions)
++ [ e.imagick ])
```

If you want a PHP build with extra configuration in the `php.ini`
file, you can use `php.buildEnv`. This function takes two named and
optional parameters: `extensions` and `extraConfig`. `extensions`
takes an extension specification equivalent to that of
`php.withExtensions`, `extraConfig` a string of additional `php.ini`
configuration parameters. For example, a PHP package with the opcache
and ImageMagick extensions enabled, and `memory_limit` set to `256M`:

```nix
php.buildEnv {
extensions = e: with e; [ imagick opcache ];
extraConfig = "memory_limit=256M";
}
```

##### Example setup for `phpfpm`

You can use the previous examples in a `phpfpm` pool called `foo` as
follows:

```nix
let
myPhp = php.withExtensions (e: with e; [ imagick opcache ]);
in {
services.phpfpm.pools."foo".phpPackage = myPhp;
};
```

```nix
let
myPhp = php.buildEnv {
extensions = e: with e; [ imagick opcache ];
extraConfig = "memory_limit=256M";
};
in {
services.phpfpm.pools."foo".phpPackage = myPhp;
};
```

##### Example usage with `nix-shell`

This brings up a temporary environment that contains a PHP interpreter
with the extensions `imagick` and `opcache` enabled.

```sh
nix-shell -p 'php.buildEnv { extensions = e: with e; [ imagick opcache ]; }'
```
7 changes: 1 addition & 6 deletions doc/languages-frameworks/vim.section.md
Original file line number Diff line number Diff line change
@@ -261,12 +261,7 @@ deoplete-fish = super.deoplete-fish.overrideAttrs(old: {

Sometimes plugins require an override that must be changed when the plugin is updated. This can cause issues when Vim plugins are auto-updated but the associated override isn't updated. For these plugins, the override should be written so that it specifies all information required to install the plugin, and running `./update.py` doesn't change the derivation for the plugin. Manually updating the override is required to update these types of plugins. An example of such a plugin is `LanguageClient-neovim`.

To add a new plugin:

1. run `./update.py` and create a commit named "vimPlugins: Update",
2. add the new plugin to [vim-plugin-names](/pkgs/misc/vim-plugins/vim-plugin-names) and add overrides if required to [overrides.nix](/pkgs/misc/vim-plugins/overrides.nix),
3. run `./update.py` again and create a commit named "vimPlugins.[name]: init at [version]" (where `name` and `version` can be found in [generated.nix](/pkgs/misc/vim-plugins/generated.nix)), and
4. create a pull request.
To add a new plugin, run `./update.py --add "[owner]/[name]"`. **NOTE**: This script automatically commits to your git repository. Be sure to check out a fresh branch before running.

## Important repositories

2 changes: 1 addition & 1 deletion doc/preface.chapter.md
Original file line number Diff line number Diff line change
@@ -37,7 +37,7 @@ security updates. More up to date packages and modules are available via the

Both `nixos-unstable` and `nixpkgs` follow the `master` branch of the Nixpkgs
repository, although both do lag the `master` branch by generally
[a couple of days](https://howoldis.herokuapp.com/). Updates to a channel are
[a couple of days](https://status.nixos.org/). Updates to a channel are
distributed as soon as all tests for that channel pass, e.g.
[this table](https://hydra.nixos.org/job/nixpkgs/trunk/unstable#tabs-constituents)
shows the status of tests for the `nixpkgs` channel.
2 changes: 1 addition & 1 deletion flake.nix
Original file line number Diff line number Diff line change
@@ -25,7 +25,7 @@
import ./nixos/lib/eval-config.nix (args // {
modules = modules ++
[ { system.nixos.versionSuffix =
".${lib.substring 0 8 self.lastModified}.${self.shortRev or "dirty"}";
".${lib.substring 0 8 (self.lastModifiedDate or self.lastModified)}.${self.shortRev or "dirty"}";
system.nixos.revision = lib.mkIf (self ? rev) self.rev;
}
];
4 changes: 2 additions & 2 deletions lib/attrsets.nix
Original file line number Diff line number Diff line change
@@ -4,7 +4,7 @@
let
inherit (builtins) head tail length;
inherit (lib.trivial) and;
inherit (lib.strings) concatStringsSep;
inherit (lib.strings) concatStringsSep sanitizeDerivationName;
inherit (lib.lists) fold concatMap concatLists;
in

@@ -310,7 +310,7 @@ rec {
path' = builtins.storePath path;
res =
{ type = "derivation";
name = builtins.unsafeDiscardStringContext (builtins.substring 33 (-1) (baseNameOf path'));
name = sanitizeDerivationName (builtins.substring 33 (-1) (baseNameOf path'));
outPath = path';
outputs = [ "out" ];
out = res;
5 changes: 5 additions & 0 deletions lib/licenses.nix
Original file line number Diff line number Diff line change
@@ -682,6 +682,11 @@ lib.mapAttrs (n: v: v // { shortName = n; }) {
# channel and NixOS images.
};

unicode-dfs-2016 = spdx {
spdxId = "Unicode-DFS-2016";
fullName = "Unicode License Agreement - Data Files and Software (2016)";
};

unlicense = spdx {
spdxId = "Unlicense";
fullName = "The Unlicense";
32 changes: 32 additions & 0 deletions lib/strings.nix
Original file line number Diff line number Diff line change
@@ -678,4 +678,36 @@ rec {
=> "1.0"
*/
fileContents = file: removeSuffix "\n" (builtins.readFile file);


/* Creates a valid derivation name from a potentially invalid one.
Type: sanitizeDerivationName :: String -> String
Example:
sanitizeDerivationName "../hello.bar # foo"
=> "-hello.bar-foo"
sanitizeDerivationName ""
=> "unknown"
sanitizeDerivationName pkgs.hello
=> "-nix-store-2g75chlbpxlrqn15zlby2dfh8hr9qwbk-hello-2.10"
*/
sanitizeDerivationName = string: lib.pipe string [
# Get rid of string context. This is safe under the assumption that the
# resulting string is only used as a derivation name
builtins.unsafeDiscardStringContext
# Strip all leading "."
(x: builtins.elemAt (builtins.match "\\.*(.*)" x) 0)
# Split out all invalid characters
# https://github.com/NixOS/nix/blob/2.3.2/src/libstore/store-api.cc#L85-L112
# https://github.com/NixOS/nix/blob/2242be83c61788b9c0736a92bb0b5c7bbfc40803/nix-rust/src/store/path.rs#L100-L125
(builtins.split "[^[:alnum:]+._?=-]+")
# Replace invalid character ranges with a "-"
(concatMapStrings (s: if lib.isList s then "-" else s))
# Limit to 211 characters (minus 4 chars for ".drv")
(x: substring (lib.max (stringLength x - 207) 0) (-1) x)
# If the result is empty, replace it with "unknown"
(x: if stringLength x == 0 then "unknown" else x)
];

}
42 changes: 42 additions & 0 deletions lib/tests/misc.nix
Original file line number Diff line number Diff line change
@@ -3,6 +3,23 @@
# if the resulting list is empty, all tests passed
with import ../default.nix;

let

testSanitizeDerivationName = { name, expected }:
let
drv = derivation {
name = strings.sanitizeDerivationName name;
builder = "x";
system = "x";
};
in {
# Evaluate the derivation so an invalid name would be caught
expr = builtins.seq drv.drvPath drv.name;
inherit expected;
};

in

runTests {


@@ -490,4 +507,29 @@ runTests {

expected = "'-X' 'PUT' '--data' '{\"id\":0}' '--retry' '3' '--url' 'https://example.com/foo' '--url' 'https://example.com/bar' '--verbose'";
};

testSanitizeDerivationNameLeadingDots = testSanitizeDerivationName {
name = "..foo";
expected = "foo";
};

testSanitizeDerivationNameAscii = testSanitizeDerivationName {
name = " !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~";
expected = "-+--.-0123456789-=-?-ABCDEFGHIJKLMNOPQRSTUVWXYZ-_-abcdefghijklmnopqrstuvwxyz-";
};

testSanitizeDerivationNameTooLong = testSanitizeDerivationName {
name = "This string is loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
expected = "loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
};

testSanitizeDerivationNameTooLongWithInvalid = testSanitizeDerivationName {
name = "Hello there aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa &&&&&&&&";
expected = "there-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa-";
};

testSanitizeDerivationNameEmpty = testSanitizeDerivationName {
name = "";
expected = "unknown";
};
}
Loading