Merge master into staging-next

This commit is contained in:
github-actions[bot] 2021-10-28 12:01:32 +00:00 committed by GitHub
commit ea4da560ff
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
50 changed files with 421 additions and 149 deletions

View File

@ -181,7 +181,7 @@
rev = "${version}";
```
- Filling lists condionally _should_ be done with `lib.optional(s)` instead of using `if cond then [ ... ] else null` or `if cond then [ ... ] else [ ]`.
- Building lists conditionally _should_ be done with `lib.optional(s)` instead of using `if cond then [ ... ] else null` or `if cond then [ ... ] else [ ]`.
```nix
buildInputs = lib.optional stdenv.isDarwin iconv;

View File

@ -1190,6 +1190,13 @@ Superuser created successfully.
dropped because it was EOLed by upstream in 2021-10.
</para>
</listitem>
<listitem>
<para>
The <literal>virtualisation.pathsInNixDB</literal> option was
renamed
<link xlink:href="options.html#opt-virtualisation.additionalPaths"><literal>virtualisation.additionalPaths</literal></link>.
</para>
</listitem>
</itemizedlist>
</section>
<section xml:id="sec-release-21.11-notable-changes">
@ -1213,25 +1220,31 @@ Superuser created successfully.
<para>
In NixOS virtual machines (QEMU), the
<literal>virtualisation</literal> module has been updated with
new options to configure:
new options:
</para>
<itemizedlist spacing="compact">
<listitem>
<para>
IPv4 port forwarding
(<link xlink:href="options.html#opt-virtualisation.forwardPorts"><literal>virtualisation.forwardPorts</literal></link>),
<link xlink:href="options.html#opt-virtualisation.forwardPorts"><literal>forwardPorts</literal></link>
to configure IPv4 port forwarding,
</para>
</listitem>
<listitem>
<para>
shared host directories
(<link xlink:href="options.html#opt-virtualisation.sharedDirectories"><literal>virtualisation.sharedDirectories</literal></link>),
<link xlink:href="options.html#opt-virtualisation.sharedDirectories"><literal>sharedDirectories</literal></link>
to set up shared host directories,
</para>
</listitem>
<listitem>
<para>
screen resolution
(<link xlink:href="options.html#opt-virtualisation.resolution"><literal>virtualisation.resolution</literal></link>).
<link xlink:href="options.html#opt-virtualisation.resolution"><literal>resolution</literal></link>
to set the screen resolution,
</para>
</listitem>
<listitem>
<para>
<link xlink:href="options.html#opt-virtualisation.useNixStoreImage"><literal>useNixStoreImage</literal></link>
to use a disk image for the Nix store instead of 9P.
</para>
</listitem>
</itemizedlist>

View File

@ -366,16 +366,20 @@ In addition to numerous new and upgraded packages, this release has the followin
- Nextcloud 20 (`pkgs.nextcloud20`) has been dropped because it was EOLed by upstream in 2021-10.
- The `virtualisation.pathsInNixDB` option was renamed
[`virtualisation.additionalPaths`](options.html#opt-virtualisation.additionalPaths).
## Other Notable Changes {#sec-release-21.11-notable-changes}
- The linux kernel package infrastructure was moved out of `all-packages.nix`, and restructured. Linux related functions and attributes now live under the `pkgs.linuxKernel` attribute set.
In particular the versioned `linuxPackages_*` package sets (such as `linuxPackages_5_4`) and kernels from `pkgs` were moved there and now live under `pkgs.linuxKernel.packages.*`. The unversioned ones (such as `linuxPackages_latest`) remain untouched.
- In NixOS virtual machines (QEMU), the `virtualisation` module has been updated with new options to configure:
- IPv4 port forwarding ([`virtualisation.forwardPorts`](options.html#opt-virtualisation.forwardPorts)),
- shared host directories ([`virtualisation.sharedDirectories`](options.html#opt-virtualisation.sharedDirectories)),
- screen resolution ([`virtualisation.resolution`](options.html#opt-virtualisation.resolution)).
- In NixOS virtual machines (QEMU), the `virtualisation` module has been updated with new options:
- [`forwardPorts`](options.html#opt-virtualisation.forwardPorts) to configure IPv4 port forwarding,
- [`sharedDirectories`](options.html#opt-virtualisation.sharedDirectories) to set up shared host directories,
- [`resolution`](options.html#opt-virtualisation.resolution) to set the screen resolution,
- [`useNixStoreImage`](options.html#opt-virtualisation.useNixStoreImage) to use a disk image for the Nix store instead of 9P.
In addition, the default [`msize`](options.html#opt-virtualisation.msize) parameter in 9P filesystems (including /nix/store and all shared directories) has been increased to 16K for improved performance.

View File

@ -44,11 +44,14 @@
# most likely fails as GRUB will probably refuse to install.
partitionTableType ? "legacy"
, # Whether to invoke `switch-to-configuration boot` during image creation
installBootLoader ? true
, # The root file system type.
fsType ? "ext4"
, # Filesystem label
label ? "nixos"
label ? if onlyNixStore then "nix-store" else "nixos"
, # The initial NixOS configuration file to be copied to
# /etc/nixos/configuration.nix.
@ -57,10 +60,24 @@
, # Shell code executed after the VM has finished.
postVM ? ""
, # Copy the contents of the Nix store to the root of the image and
# skip further setup. Incompatible with `contents`,
# `installBootLoader` and `configFile`.
onlyNixStore ? false
, name ? "nixos-disk-image"
, # Disk image format, one of qcow2, qcow2-compressed, vdi, vpc, raw.
format ? "raw"
, # Whether a nix channel based on the current source tree should be
# made available inside the image. Useful for interactive use of nix
# utils, but changes the hash of the image when the sources are
# updated.
copyChannel ? true
, # Additional store paths to copy to the image's store.
additionalPaths ? []
}:
assert partitionTableType == "legacy" || partitionTableType == "legacy+gpt" || partitionTableType == "efi" || partitionTableType == "hybrid" || partitionTableType == "none";
@ -71,6 +88,7 @@ assert lib.all
(attrs: ((attrs.user or null) == null)
== ((attrs.group or null) == null))
contents;
assert onlyNixStore -> contents == [] && configFile == null && !installBootLoader;
with lib;
@ -163,7 +181,14 @@ let format' = format; in let
users = map (x: x.user or "''") contents;
groups = map (x: x.group or "''") contents;
closureInfo = pkgs.closureInfo { rootPaths = [ config.system.build.toplevel channelSources ]; };
basePaths = [ config.system.build.toplevel ]
++ lib.optional copyChannel channelSources;
additionalPaths' = subtractLists basePaths additionalPaths;
closureInfo = pkgs.closureInfo {
rootPaths = basePaths ++ additionalPaths';
};
blockSize = toString (4 * 1024); # ext4fs block size (not block device sector size)
@ -251,7 +276,13 @@ let format' = format; in let
chmod 755 "$TMPDIR"
echo "running nixos-install..."
nixos-install --root $root --no-bootloader --no-root-passwd \
--system ${config.system.build.toplevel} --channel ${channelSources} --substituters ""
--system ${config.system.build.toplevel} \
${if copyChannel then "--channel ${channelSources}" else "--no-channel-copy"} \
--substituters ""
${optionalString (additionalPaths' != []) ''
nix copy --to $root --no-check-sigs ${concatStringsSep " " additionalPaths'}
''}
diskImage=nixos.raw
@ -320,25 +351,29 @@ let format' = format; in let
''}
echo "copying staging root to image..."
cptofs -p ${optionalString (partitionTableType != "none") "-P ${rootPartition}"} -t ${fsType} -i $diskImage $root/* / ||
cptofs -p ${optionalString (partitionTableType != "none") "-P ${rootPartition}"} \
-t ${fsType} \
-i $diskImage \
$root${optionalString onlyNixStore builtins.storeDir}/* / ||
(echo >&2 "ERROR: cptofs failed. diskSize might be too small for closure."; exit 1)
'';
in pkgs.vmTools.runInLinuxVM (
pkgs.runCommand name
{ preVM = prepareImage;
moveOrConvertImage = ''
${if format == "raw" then ''
mv $diskImage $out/${filename}
'' else ''
${pkgs.qemu}/bin/qemu-img convert -f raw -O ${format} ${compress} $diskImage $out/${filename}
''}
diskImage=$out/${filename}
'';
buildImage = pkgs.vmTools.runInLinuxVM (
pkgs.runCommand name {
preVM = prepareImage;
buildInputs = with pkgs; [ util-linux e2fsprogs dosfstools ];
postVM = ''
${if format == "raw" then ''
mv $diskImage $out/${filename}
'' else ''
${pkgs.qemu}/bin/qemu-img convert -f raw -O ${format} ${compress} $diskImage $out/${filename}
''}
diskImage=$out/${filename}
${postVM}
'';
postVM = moveOrConvertImage + postVM;
memSize = 1024;
}
''
} ''
export PATH=${binPath}:$PATH
rootDisk=${if partitionTableType != "none" then "/dev/vda${rootPartition}" else "/dev/vda"}
@ -368,11 +403,13 @@ in pkgs.vmTools.runInLinuxVM (
cp ${configFile} /mnt/etc/nixos/configuration.nix
''}
# Set up core system link, GRUB, etc.
NIXOS_INSTALL_BOOTLOADER=1 nixos-enter --root $mountPoint -- /nix/var/nix/profiles/system/bin/switch-to-configuration boot
${lib.optionalString installBootLoader ''
# Set up core system link, GRUB, etc.
NIXOS_INSTALL_BOOTLOADER=1 nixos-enter --root $mountPoint -- /nix/var/nix/profiles/system/bin/switch-to-configuration boot
# The above scripts will generate a random machine-id and we don't want to bake a single ID into all our images
rm -f $mountPoint/etc/machine-id
# The above scripts will generate a random machine-id and we don't want to bake a single ID into all our images
rm -f $mountPoint/etc/machine-id
''}
# Set the ownerships of the contents. The modes are set in preVM.
# No globbing on targets, so no need to set -f
@ -398,4 +435,9 @@ in pkgs.vmTools.runInLinuxVM (
tune2fs -T now -c 0 -i 0 $rootDisk
''}
''
)
);
in
if onlyNixStore then
pkgs.runCommand name {}
(prepareImage + moveOrConvertImage + postVM)
else buildImage

View File

@ -209,11 +209,30 @@ rec {
let
nodes = qemu_pkg:
let
testScript' =
# Call the test script with the computed nodes.
if lib.isFunction testScript
then testScript { nodes = nodes qemu_pkg; }
else testScript;
build-vms = import ./build-vms.nix {
inherit system lib pkgs minimal specialArgs;
extraConfigurations = extraConfigurations ++ [(
{
virtualisation.qemu.package = qemu_pkg;
# Make sure all derivations referenced by the test
# script are available on the nodes. When the store is
# accessed through 9p, this isn't important, since
# everything in the store is available to the guest,
# but when building a root image it is, as all paths
# that should be available to the guest has to be
# copied to the image.
virtualisation.additionalPaths =
lib.optional
(builtins.hasContext testScript')
(pkgs.writeStringReferencesToFile testScript');
# Ensure we do not use aliases. Ideally this is only set
# when the test framework is used by Nixpkgs NixOS tests.
nixpkgs.config.allowAliases = false;

View File

@ -122,6 +122,12 @@ let
TMPDIR=$(mktemp -d nix-vm.XXXXXXXXXX --tmpdir)
fi
${lib.optionalString cfg.useNixStoreImage
''
# Create a writable copy/snapshot of the store image.
${qemu}/bin/qemu-img create -f qcow2 -F qcow2 -b ${storeImage}/nixos.qcow2 "$TMPDIR"/store.img
''}
# Create a directory for exchanging data with the VM.
mkdir -p "$TMPDIR/xchg"
@ -171,7 +177,7 @@ let
'';
regInfo = pkgs.closureInfo { rootPaths = config.virtualisation.pathsInNixDB; };
regInfo = pkgs.closureInfo { rootPaths = config.virtualisation.additionalPaths; };
# Generate a hard disk image containing a /boot partition and GRUB
@ -263,11 +269,24 @@ let
'' # */
);
storeImage = import ../../lib/make-disk-image.nix {
inherit pkgs config lib;
additionalPaths = [ regInfo ];
format = "qcow2";
onlyNixStore = true;
partitionTableType = "none";
installBootLoader = false;
diskSize = "auto";
additionalSpace = "0M";
copyChannel = false;
};
in
{
imports = [
../profiles/qemu-guest.nix
(mkRenamedOptionModule [ "virtualisation" "pathsInNixDB" ] [ "virtualisation" "additionalPaths" ])
];
options = {
@ -399,17 +418,23 @@ in
'';
};
virtualisation.pathsInNixDB =
virtualisation.additionalPaths =
mkOption {
type = types.listOf types.path;
default = [];
description =
''
The list of paths whose closure is registered in the Nix
database in the VM. All other paths in the host Nix store
A list of paths whose closure should be made available to
the VM.
When 9p is used, the closure is registered in the Nix
database in the VM. All other paths in the host Nix store
appear in the guest Nix store as well, but are considered
garbage (because they are not registered in the Nix
database in the guest).
database of the guest).
When <option>virtualisation.useNixStoreImage</option> is
set, the closure is copied to the Nix store image.
'';
};
@ -608,6 +633,20 @@ in
};
};
virtualisation.useNixStoreImage =
mkOption {
type = types.bool;
default = false;
description = ''
Build and use a disk image for the Nix store, instead of
accessing the host's one through 9p.
For applications which do a lot of reads from the store,
this can drastically improve performance, but at the cost of
disk space and image build time.
'';
};
virtualisation.useBootLoader =
mkOption {
type = types.bool;
@ -740,7 +779,7 @@ in
'';
# After booting, register the closure of the paths in
# `virtualisation.pathsInNixDB' in the Nix database in the VM. This
# `virtualisation.additionalPaths' in the Nix database in the VM. This
# allows Nix operations to work in the VM. The path to the
# registration file is passed through the kernel command line to
# allow `system.build.toplevel' to be included. (If we had a direct
@ -759,12 +798,21 @@ in
virtualisation.bootDevice = mkDefault (driveDeviceName 1);
virtualisation.pathsInNixDB = [ config.system.build.toplevel ];
virtualisation.additionalPaths = [ config.system.build.toplevel ];
virtualisation.sharedDirectories = {
nix-store = { source = "/nix/store"; target = "/nix/store"; };
xchg = { source = ''"$TMPDIR"/xchg''; target = "/tmp/xchg"; };
shared = { source = ''"''${SHARED_DIR:-$TMPDIR/xchg}"''; target = "/tmp/shared"; };
nix-store = mkIf (!cfg.useNixStoreImage) {
source = builtins.storeDir;
target = "/nix/store";
};
xchg = {
source = ''"$TMPDIR"/xchg'';
target = "/tmp/xchg";
};
shared = {
source = ''"''${SHARED_DIR:-$TMPDIR/xchg}"'';
target = "/tmp/shared";
};
};
virtualisation.qemu.networkingOptions =
@ -815,6 +863,11 @@ in
driveExtraOpts.cache = "writeback";
driveExtraOpts.werror = "report";
}]
(mkIf cfg.useNixStoreImage [{
name = "nix-store";
file = ''"$TMPDIR"/store.img'';
deviceExtraOpts.bootindex = if cfg.useBootLoader then "3" else "2";
}])
(mkIf cfg.useBootLoader [
# The order of this list determines the device names, see
# note [Disk layout with `useBootLoader`].
@ -865,6 +918,13 @@ in
options = [ "mode=1777" "strictatime" "nosuid" "nodev" "size=${toString config.boot.tmpOnTmpfsSize}" ];
};
"/nix/${if cfg.writableStore then ".ro-store" else "store"}" =
mkIf cfg.useNixStoreImage
{ device = "${lookupDriveDeviceName "nix-store" cfg.qemu.drives}";
neededForBoot = true;
options = [ "ro" ];
};
"/nix/.rw-store" = mkIf (cfg.writableStore && cfg.writableStoreUseTmpfs)
{ fsType = "tmpfs";
options = [ "mode=0755" ];

View File

@ -56,7 +56,7 @@ import ./make-test-python.nix ({ pkgs, lib, ... }: {
};
virtualisation.pathsInNixDB = [ pkgs.stdenv ];
virtualisation.additionalPaths = [ pkgs.stdenv ];
};
testScript = ''

View File

@ -45,7 +45,7 @@ import ./make-test-python.nix ({ pkgs, lib, ... }: {
};
};
virtualisation.pathsInNixDB = [ pkgs.stdenv ];
virtualisation.additionalPaths = [ pkgs.stdenv ];
};
testScript =

View File

@ -17,7 +17,7 @@ import ./make-test-python.nix ({ pkgs, lib, ... }: {
virtualisation.memorySize = 1024;
# Make sure we always have all the required dependencies for creating a
# container available within the VM, because we don't have network access.
virtualisation.pathsInNixDB = let
virtualisation.additionalPaths = let
emptyContainer = import ../lib/eval-config.nix {
inherit (config.nixpkgs.localSystem) system;
modules = lib.singleton {

View File

@ -27,7 +27,7 @@ in import ./make-test-python.nix ({ pkgs, lib, ... }: {
containers.webserver4 = webserverFor "10.231.136.1" "10.231.136.2";
containers.webserver6 = webserverFor "fc00::2" "fc00::1";
virtualisation.pathsInNixDB = [ pkgs.stdenv ];
virtualisation.additionalPaths = [ pkgs.stdenv ];
};
testScript = { nodes, ... }: ''

View File

@ -29,7 +29,7 @@ import ./make-test-python.nix ({ pkgs, lib, ... }: {
};
};
virtualisation.pathsInNixDB = [ pkgs.stdenv ];
virtualisation.additionalPaths = [ pkgs.stdenv ];
};
testScript =

View File

@ -26,7 +26,7 @@ import ./make-test-python.nix ({ pkgs, lib, ... }: {
config = { };
};
virtualisation.pathsInNixDB = [ pkgs.stdenv ];
virtualisation.additionalPaths = [ pkgs.stdenv ];
};
testScript = ''

View File

@ -28,6 +28,8 @@ import ./make-test-python.nix (
{ nodes, ... }:
{
virtualisation.memorySize = 2048;
virtualisation.cores = 4;
virtualisation.useNixStoreImage = true;
imports = [ common/user-account.nix ];

View File

@ -14,6 +14,8 @@ import ./make-test-python.nix ({ pkgs, lib, ...} : with lib; {
imports = [ common/user-account.nix ];
virtualisation.memorySize = if pkgs.stdenv.is64bit then 4096 else 2047;
virtualisation.cores = 4;
virtualisation.useNixStoreImage = true;
systemd.services.gitlab.serviceConfig.Restart = mkForce "no";
systemd.services.gitlab-workhorse.serviceConfig.Restart = mkForce "no";
systemd.services.gitaly.serviceConfig.Restart = mkForce "no";

View File

@ -5,7 +5,7 @@
# python deps
, python, buildPythonPackage
, alembic, beautifulsoup4, chardet, lxml, Mako, pyenchant
, pyqt5_with_qtwebkit, pyxdg, sip_4, sqlalchemy, sqlalchemy_migrate
, pyqt5_with_qtwebkit, pyxdg, sip_4, sqlalchemy, sqlalchemy-migrate
}:
buildPythonPackage rec {
@ -43,7 +43,7 @@ buildPythonPackage rec {
pyxdg
sip_4
sqlalchemy
sqlalchemy_migrate
sqlalchemy-migrate
];
prePatch = ''

View File

@ -36,7 +36,7 @@ in python.pkgs.buildPythonApplication rec {
};
propagatedBuildInputs = with python.pkgs; [
sqlalchemy_migrate
sqlalchemy-migrate
python-dateutil
matplotlib
lxml

View File

@ -3,16 +3,16 @@
rustPlatform.buildRustPackage rec {
pname = "newsboat";
version = "2.24";
version = "2.25";
src = fetchFromGitHub {
owner = "newsboat";
repo = "newsboat";
rev = "r${version}";
sha256 = "0qb10w7pn9hiczjjpc0xanmc83p22ngcqcrkjwji5rl0sh8v9ii4";
sha256 = "sha256-TAnGDxTKYl4niouS6nYdJDaIngAPsPHr9Bw9L3cR2Xk=";
};
cargoSha256 = "0vhr8qyw4f3lc208mgl1m3z42igkbwly6wcv7g7jrq3c6dcwyhjn";
cargoSha256 = "sha256-MxoyYBLbrCuLVa0p8JrYKSKu2oFPnXMwab42lhhAu48=";
# TODO: Check if that's still needed
postPatch = lib.optionalString stdenv.isDarwin ''

View File

@ -19,8 +19,8 @@ stdenv.mkDerivation rec {
meta = with lib; {
homepage = "https://vapier.github.io/pcalc/";
description = "Programmer's calculator";
license = licenses.gpl2;
maintainers = with lib.maintainers; [ ftrvxmtrx ];
platforms = lib.platforms.linux;
license = licenses.gpl2Plus;
maintainers = with maintainers; [ ftrvxmtrx ];
platforms = platforms.unix;
};
}

View File

@ -16,12 +16,12 @@ with lib;
buildGoPackage rec {
pname = "gitea";
version = "1.15.5";
version = "1.15.6";
# not fetching directly from the git repo, because that lacks several vendor files for the web UI
src = fetchurl {
url = "https://github.com/go-gitea/gitea/releases/download/v${version}/gitea-src-${version}.tar.gz";
sha256 = "sha256-W+czWzo4keTLRPDLcTeYl3JSccwfq+P6k4ELADO9FVM=";
sha256 = "sha256-FMM/iQAxJcymv4jYBzaBXG0Uy8UxHh9gFWB5gzV9cn0=";
};
unpackPhase = ''

View File

@ -465,6 +465,88 @@ rec {
'';
/*
* Extract a string's references to derivations and paths (its
* context) and write them to a text file, removing the input string
* itself from the dependency graph. This is useful when you want to
* make a derivation depend on the string's references, but not its
* contents (to avoid unnecessary rebuilds, for example).
*
* Note that this only works as intended on Nix >= 2.3.
*/
writeStringReferencesToFile = string:
/*
* The basic operation this performs is to copy the string context
* from `string' to a second string and wrap that string in a
* derivation. However, that alone is not enough, since nothing in the
* string refers to the output paths of the derivations/paths in its
* context, meaning they'll be considered build-time dependencies and
* removed from the wrapper derivation's closure. Putting the
* necessary output paths in the new string is however not very
* straightforward - the attrset returned by `getContext' contains
* only references to derivations' .drv-paths, not their output
* paths. In order to "convert" them, we try to extract the
* corresponding paths from the original string using regex.
*/
let
# Taken from https://github.com/NixOS/nix/blob/130284b8508dad3c70e8160b15f3d62042fc730a/src/libutil/hash.cc#L84
nixHashChars = "0123456789abcdfghijklmnpqrsvwxyz";
context = builtins.getContext string;
derivations = lib.filterAttrs (n: v: v ? outputs) context;
# Objects copied from outside of the store, such as paths and
# `builtins.fetch*`ed ones
sources = lib.attrNames (lib.filterAttrs (n: v: v ? path) context);
packages =
lib.mapAttrs'
(name: value:
{
inherit value;
name = lib.head (builtins.match "${builtins.storeDir}/[${nixHashChars}]+-(.*)\.drv" name);
})
derivations;
# The syntax of output paths differs between outputs named `out`
# and other, explicitly named ones. For explicitly named ones,
# the output name is suffixed as `-name`, but `out` outputs
# aren't suffixed at all, and thus aren't easily distinguished
# from named output paths. Therefore, we find all the named ones
# first so we can use them to remove false matches when looking
# for `out` outputs (see the definition of `outputPaths`).
namedOutputPaths =
lib.flatten
(lib.mapAttrsToList
(name: value:
(map
(output:
lib.filter
lib.isList
(builtins.split "(${builtins.storeDir}/[${nixHashChars}]+-${name}-${output})" string))
(lib.remove "out" value.outputs)))
packages);
# Only `out` outputs
outputPaths =
lib.flatten
(lib.mapAttrsToList
(name: value:
if lib.elem "out" value.outputs then
lib.filter
(x: lib.isList x &&
# If the matched path is in `namedOutputPaths`,
# it's a partial match of an output path where
# the output name isn't `out`
lib.all (o: !lib.hasPrefix (lib.head x) o) namedOutputPaths)
(builtins.split "(${builtins.storeDir}/[${nixHashChars}]+-${name})" string)
else
[])
packages);
allPaths = lib.concatStringsSep "\n" (lib.unique (sources ++ namedOutputPaths ++ outputPaths));
allPathsWithContext = builtins.appendContext allPaths context;
in
if builtins ? getContext then
writeText "string-references" allPathsWithContext
else
writeDirectReferencesToFile (writeText "string-file" string);
/* Print an error message if the file with the specified name and
* hash doesn't exist in the Nix store. This function should only
* be used by non-redistributable software with an unfree license

View File

@ -38,11 +38,27 @@ nixosTest {
DIRECT_REFS = invokeSamples ./test/invoke-writeDirectReferencesToFile.nix;
};
};
testScript = ''
machine.succeed("""
${./test.sh} 2>/dev/console
""")
'';
testScript =
let
sample = import ./test/sample.nix { inherit pkgs; };
samplePaths = lib.unique (lib.attrValues sample);
sampleText = pkgs.writeText "sample-text" (lib.concatStringsSep "\n" samplePaths);
stringReferencesText =
pkgs.writeStringReferencesToFile
((lib.concatMapStringsSep "fillertext"
(d: "${d}")
(lib.attrValues sample)) + ''
STORE=${builtins.storeDir};\nsystemctl start bar-foo.service
'');
in ''
machine.succeed("""
${./test.sh} 2>/dev/console
""")
machine.succeed("""
echo >&2 Testing string references...
diff -U3 <(sort ${stringReferencesText}) <(sort ${sampleText})
""")
'';
meta = {
license = lib.licenses.mit; # nixpkgs license
maintainers = with lib.maintainers; [

View File

@ -2,6 +2,7 @@
let
inherit (pkgs)
figlet
zlib
hello
writeText
;
@ -9,8 +10,13 @@ in
{
hello = hello;
figlet = figlet;
zlib = zlib;
zlib-dev = zlib.dev;
norefs = writeText "hi" "hello";
norefsDup = writeText "hi" "hello";
helloRef = writeText "hi" "hello ${hello}";
helloRefDup = writeText "hi" "hello ${hello}";
path = ./invoke-writeReferencesToFile.nix;
helloFigletRef = writeText "hi" "hello ${hello} ${figlet}";
inherit (pkgs)
emptyFile

View File

@ -54,7 +54,7 @@ with lib;
with builtins;
let majorVersion = "8";
version = "${majorVersion}.4.0";
version = "${majorVersion}.5.0";
inherit (stdenv) buildPlatform hostPlatform targetPlatform;
@ -90,7 +90,7 @@ stdenv.mkDerivation ({
src = fetchurl {
url = "mirror://gcc/releases/gcc-${version}/gcc-${version}.tar.xz";
sha256 = "1m1d3gfix56w4aq8myazzfffkl8bqcrx4jhhapnjf7qfs596w2p3";
sha256 = "0l7d4m9jx124xsk6xardchgy2k5j5l2b15q322k31f0va4d8826k";
};
inherit patches;

View File

@ -0,0 +1,19 @@
{ lib, buildDunePackage, dune_2, dune-private-libs }:
buildDunePackage rec {
pname = "dune-site";
inherit (dune_2) src version patches;
useDune2 = true;
dontAddPrefix = true;
propagatedBuildInputs = [ dune-private-libs ];
meta = with lib; {
description = "A library for embedding location information inside executable and libraries";
inherit (dune_2.meta) homepage;
maintainers = with lib.maintainers; [ superherointj ];
license = licenses.mit;
};
}

View File

@ -13,7 +13,7 @@
buildPythonPackage rec {
pname = "aionotion";
version = "3.0.2";
version = "2021.10.0";
format = "pyproject";
disabled = pythonOlder "3.6";
@ -21,7 +21,7 @@ buildPythonPackage rec {
owner = "bachya";
repo = pname;
rev = version;
sha256 = "1328g2245h9gcrnzrbcxaxw78723d0skznrrj8k77fbijxdc4kwv";
sha256 = "sha256-5bu2XveDi2e6lGdI/T+0apqXzcnqdztVtaHEpp+Vkzs=";
};
nativeBuildInputs = [ poetry-core ];

View File

@ -17,7 +17,7 @@
buildPythonPackage rec {
pname = "aioridwell";
version = "0.2.0";
version = "2021.10.0";
format = "pyproject";
disabled = pythonOlder "3.8";
@ -26,7 +26,7 @@ buildPythonPackage rec {
owner = "bachya";
repo = pname;
rev = version;
sha256 = "0kzxh1igncql1rwh12n42qahlc94z0fsd344d1vgni50jg7i34v7";
sha256 = "sha256-h89gfdZvk7H22xAczaPMscTYZu0YeFxvFfL6/Oz2cJw=";
};
nativeBuildInputs = [

View File

@ -12,7 +12,7 @@
buildPythonPackage rec {
pname = "aiowatttime";
version = "0.1.1";
version = "2021.10.0";
format = "pyproject";
disabled = pythonOlder "3.8";
@ -21,7 +21,7 @@ buildPythonPackage rec {
owner = "bachya";
repo = pname;
rev = version;
sha256 = "1614p5ca7x9ipz7dgwhiz83dfwn6hyliawa8pr2j9y2kn8cg2sdm";
sha256 = "sha256-cWXhQMgRYBzOVgUQWONIwWFB5n/f0lqkSjUb9IoPwtI=";
};
nativeBuildInputs = [

View File

@ -1,6 +1,6 @@
{ lib, buildPythonPackage, fetchPypi, pythonOlder, setuptools
, twiggy, requests, offtrac, bugzilla, taskw, python-dateutil, pytz, keyring, six
, jinja2, pycurl, dogpile_cache, lockfile, click, pyxdg, future, jira }:
, jinja2, pycurl, dogpile-cache, lockfile, click, pyxdg, future, jira }:
buildPythonPackage rec {
pname = "bugwarrior";
@ -15,7 +15,7 @@ buildPythonPackage rec {
propagatedBuildInputs = [
setuptools
twiggy requests offtrac bugzilla taskw python-dateutil pytz keyring six
jinja2 pycurl dogpile_cache lockfile click pyxdg future jira
jinja2 pycurl dogpile-cache lockfile click pyxdg future jira
];
# for the moment oauth2client <4.0.0 and megaplan>=1.4 are missing for running the test suite.

View File

@ -1,6 +1,6 @@
{ stdenv, lib, buildPythonPackage, fetchPypi, makeWrapper, isPy3k
, python, twisted, jinja2, zope_interface, sqlalchemy
, sqlalchemy_migrate, python-dateutil, txaio, autobahn, pyjwt, pyyaml, unidiff, treq
, sqlalchemy-migrate, python-dateutil, txaio, autobahn, pyjwt, pyyaml, unidiff, treq
, txrequests, pypugjs, boto3, moto, mock, lz4, setuptoolsTrial
, isort, pylint, flake8, buildbot-worker, buildbot-pkg, buildbot-plugins
, parameterized, git, openssh, glibcLocales, ldap3, nixosTests
@ -44,7 +44,7 @@ let
jinja2
zope_interface
sqlalchemy
sqlalchemy_migrate
sqlalchemy-migrate
python-dateutil
txaio
autobahn

View File

@ -5,7 +5,7 @@
, setuptools-scm
, libdeltachat
, cffi
, IMAPClient
, imapclient
, pluggy
, requests
, setuptools
@ -31,7 +31,7 @@ buildPythonPackage rec {
propagatedBuildInputs = [
cffi
IMAPClient
imapclient
pluggy
requests
setuptools

View File

@ -2,8 +2,7 @@
, buildPythonPackage
, fetchPypi
, pythonOlder
, pytest
, pytest-cov
, pytestCheckHook
, mock
, Mako
, decorator
@ -11,29 +10,27 @@
}:
buildPythonPackage rec {
pname = "dogpile.cache";
pname = "dogpile-cache";
version = "1.1.4";
disabled = pythonOlder "3.6";
src = fetchPypi {
inherit pname version;
pname = "dogpile.cache";
inherit version;
sha256 = "ea09bebf24bb7c028caf98963785fe9ad0bd397305849a3303bc5380d468d813";
};
# Disable concurrency tests that often fail,
# probably some kind of timing issue.
postPatch = ''
preCheck = ''
# Disable concurrency tests that often fail,
# probably some kind of timing issue.
rm tests/test_lock.py
# Failing tests. https://bitbucket.org/zzzeek/dogpile.cache/issues/116
rm tests/cache/test_memcached_backend.py
'';
dontUseSetuptoolsCheck = true;
checkPhase = ''
pytest
'';
checkInputs = [ pytest pytest-cov mock Mako ];
checkInputs = [ pytestCheckHook mock Mako ];
propagatedBuildInputs = [ decorator stevedore ];
@ -41,5 +38,6 @@ buildPythonPackage rec {
description = "A caching front-end based on the Dogpile lock";
homepage = "https://bitbucket.org/zzzeek/dogpile.cache";
license = licenses.bsd3;
maintainers = with maintainers; [ ];
};
}

View File

@ -1,19 +1,23 @@
{ lib, buildPythonPackage, fetchPypi }:
buildPythonPackage rec {
pname = "dogpile.core";
pname = "dogpile-core";
version = "0.4.1";
src = fetchPypi {
inherit pname version;
pname = "dogpile.core";
inherit version;
sha256 = "0xpdvg4kr1isfkrh1rfsh7za4q5a5s6l2kf9wpvndbwf3aqjyrdy";
};
doCheck = false;
pythonImportsCheck = [ "dogpile.core" ];
meta = with lib; {
description = "A 'dogpile' lock, typically used as a component of a larger caching solution";
homepage = "https://bitbucket.org/zzzeek/dogpile.core";
license = licenses.bsd3;
maintainers = with maintainers; [ ];
};
}

View File

@ -7,7 +7,7 @@
}:
buildPythonPackage rec {
pname = "IMAPClient";
pname = "imapclient";
version = "2.2.0";
src = fetchFromGitHub {

View File

@ -7,7 +7,7 @@
, dnspython
, html2text
, mail-parser
, IMAPClient
, imapclient
}:
buildPythonPackage rec {
@ -25,7 +25,7 @@ buildPythonPackage rec {
dnspython
html2text
mail-parser
IMAPClient
imapclient
];
pythonImportsCheck = [ "mailsuite" ];

View File

@ -4,7 +4,7 @@
, fetchPypi
, appdirs
, cryptography
, dogpile_cache
, dogpile-cache
, jmespath
, jsonpatch
, keystoneauth1
@ -29,7 +29,7 @@ buildPythonPackage rec {
propagatedBuildInputs = [
appdirs
cryptography
dogpile_cache
dogpile-cache
jmespath
jsonpatch
keystoneauth1

View File

@ -8,7 +8,7 @@
, oslotest
, pbr
, sqlalchemy
, sqlalchemy_migrate
, sqlalchemy-migrate
, stestr
, testresources
, testscenarios
@ -32,7 +32,7 @@ buildPythonPackage rec {
oslo-context
oslo-utils
sqlalchemy
sqlalchemy_migrate
sqlalchemy-migrate
testresources
testscenarios
];

View File

@ -14,7 +14,7 @@
, publicsuffix2
, xmltodict
, geoip2
, IMAPClient
, imapclient
, dateparser
, elasticsearch-dsl
, kafka-python
@ -49,7 +49,7 @@ buildPythonPackage rec {
publicsuffix2
xmltodict
geoip2
IMAPClient
imapclient
dateparser
elasticsearch-dsl
kafka-python

View File

@ -12,11 +12,11 @@
buildPythonPackage rec {
pname = "phonopy";
version = "2.11.0";
version = "2.12.0";
src = fetchPypi {
inherit pname version;
sha256 = "2ab47d3eb53a5265f3567974d29760b510b3312217358b76efc27ade9bd1a9f0";
sha256 = "ff65065f418ccbff9fbc1186b9a65581e83b42789aa4a656f45badfff9bd3f61";
};
propagatedBuildInputs = [

View File

@ -4,7 +4,7 @@
, pbr
, appdirs
, cliff
, dogpile_cache
, dogpile-cache
, jsonschema
, keystoneauth1
, openstacksdk
@ -31,7 +31,7 @@ buildPythonApplication rec {
pbr
appdirs
cliff
dogpile_cache
dogpile-cache
jsonschema
keystoneauth1
openstacksdk

View File

@ -7,7 +7,7 @@
, beautifulsoup4
, requests
, click
, dogpile_cache
, dogpile-cache
, stevedore
, chardet
, pysrt
@ -34,7 +34,7 @@ buildPythonPackage rec {
propagatedBuildInputs = [
guessit babelfish enzyme beautifulsoup4 requests
click dogpile_cache stevedore chardet pysrt six
click dogpile-cache stevedore chardet pysrt six
appdirs rarfile pytz
];

View File

@ -115,14 +115,14 @@ rec {
headers = "1fvqkw08pync38ixi5cq4f8a108k2ajxpm1w2f8sn2hjph9kpbsd";
};
electron_13 = mkElectron "13.6.0" {
armv7l-linux = "03141d99268b1e71b64fd663c678591a02544c99475967d511041ab2c5de262c";
aarch64-linux = "309014cce9216e3b0a0015a7a31c33e39c63af0b7781e50d3e630fb1d7d3a4ee";
x86_64-linux = "b7f88baa69ea6c06ca16e215b01ad673cd922d3a0c9239868ddd0072af4e035e";
i686-linux = "b588e4fe82e6c37fe838a3cf592a2a4cf6166f26dad97dd7597818d7714ddc94";
x86_64-darwin = "250228bc5a186601d831f86faf394fba732436ddec86c1ef70e4d3d7ff9342c7";
aarch64-darwin = "fd3886830fa291db38cc770176ddb3167f8fb90065fcb124394b3ca32965108d";
headers = "1rmx0gvcsvba24fsjv14vmmd52h1nzscgmf1g9i46kzc13y0hn4z";
electron_13 = mkElectron "13.6.1" {
armv7l-linux = "c8bba8da0baf5cde3eb4823c801c228abfa7943c69131b3701c74e2b342e1813";
aarch64-linux = "09a1ff29c33a23f19cc702e0147dee03cfe2acedcff6bfb63c7911184b871a1a";
x86_64-linux = "bfc09dd2d591ad614c8d598dad6e13b76c3baf4f48773e7819c493b524a0bb1a";
i686-linux = "1ea7c7d19759fa0ee0ddef68c09bcc1c57265436d3f5dab37dad3567f117f317";
x86_64-darwin = "ce45f17f875d72e791999eaf30a1af39b6e9143e57a653e7f06cfa0bee9b985d";
aarch64-darwin = "e2f82720acae3a03d7d4b3e7dcc7697b84d5bb69a63d087a7420ace2412e7a28";
headers = "1bd87c74863w0sjs8gfxl62kjjscc56dmmw85vhwz01s4niksr02";
};
electron_14 = mkElectron "14.2.0" {

View File

@ -2,15 +2,15 @@
buildGoModule rec {
pname = "terraform-ls";
version = "0.22.0";
version = "0.23.0";
src = fetchFromGitHub {
owner = "hashicorp";
repo = pname;
rev = "v${version}";
sha256 = "sha256-sfAn9FkOs9/yA7ciRD9gWbx5VwZveqPMYBQhSBkzYlo=";
sha256 = "sha256-hntHEBc1/KSg12x+gv32aNiA2cJ7PWBeftNhI8u+rlw=";
};
vendorSha256 = "sha256-egv2+4esvfYccwmyHm23bec/QN6dGWvJVLG19959LPY=";
vendorSha256 = "sha256-usPIhXWdp/pSAFH0LepG1/Uolfr/1SExinrAjMuB6zg=";
ldflags = [ "-s" "-w" "-X main.version=v${version}" "-X main.prerelease=" ];

View File

@ -9,12 +9,12 @@
}:
stdenv.mkDerivation rec {
version = "6.01";
version = "6.02";
pname = "xscreensaver";
src = fetchurl {
url = "https://www.jwz.org/${pname}/${pname}-${version}.tar.gz";
sha256 = "sha256-CFSEZl2R9gtKHe2s2UvPm3Sw+wlrztyJ/xwkUWjlRzs=";
sha256 = "sha256-Xm1ssJAzrVYs/m1Gv5MS5EUfeUa+2KRnGqk0TfkZMYQ=";
};
nativeBuildInputs = [

View File

@ -3,13 +3,13 @@
stdenv.mkDerivation rec {
pname = "lnav";
version = "0.10.0";
version = "0.10.1";
src = fetchFromGitHub {
owner = "tstack";
repo = "lnav";
rev = "v${version}";
sha256 = "sha256-hAFyMypGC065aRgX2L4LdyFGpZ/LnX5SjA2iQv5Iuas=";
sha256 = "sha256-1b4mVKIUotMSK/ADHnpiM42G98JF0abL8sXXGFyS3sw=";
};
patches = [ ./0001-Forcefully-disable-docs-build.patch ];

View File

@ -2,16 +2,16 @@
buildGoModule rec {
pname = "tz";
version = "0.5";
version = "0.6.1";
src = fetchFromGitHub {
owner = "oz";
repo = "tz";
rev = "v${version}";
sha256 = "sha256-OwjhV3n1B1yQTNYm4VOW500t0524g85YYiOAAu9yPeo=";
sha256 = "sha256-D0rakLZ+swrDwBMcr+EJPgaYsQTWob50QteW1PoIdNk=";
};
vendorSha256 = "sha256-Soa87I7oMa34LjYKxNAz9Limi0kQ6JUtb/zI4G7yZnw=";
vendorSha256 = "sha256-gMHPWf/kFb55GyyMciLWRzvrQXUGDQ72RNkIhkMVe54=";
meta = with lib; {
description = "A time zone helper";

View File

@ -14,11 +14,11 @@
mkDerivation rec {
pname = "yubikey-manager-qt";
version = "1.2.3";
version = "1.2.4";
src = fetchurl {
url = "https://developers.yubico.com/${pname}/Releases/${pname}-${version}.tar.gz";
sha256 = "sha256-54HvuJXjm846sBxwNHLmaBXvO24bbBDyK8YvY4I6LjY=";
sha256 = "sha256-PxHc7IeRsO+CPrNTofGypLLW8fSHDkcBqr75NwdlUyc=";
};
nativeBuildInputs = [

View File

@ -15,7 +15,7 @@ python3Packages.buildPythonApplication rec {
buildInputs = [ python3Packages.pbr git ];
propagatedBuildInputs = with python3Packages; [
dogpile_cache
dogpile-cache
click
requests
characteristic

View File

@ -321,6 +321,8 @@ let
inherit (pkgs) opam git mercurial coreutils gnutar bzip2;
};
dune-site = callPackage ../development/ocaml-modules/dune-site { };
duration = callPackage ../development/ocaml-modules/duration { };
earley = callPackage ../development/ocaml-modules/earley { };

View File

@ -33,34 +33,36 @@ in
### Deprecated aliases - for backward compatibility
mapAliases ({
blockdiagcontrib-cisco = throw "blockdiagcontrib-cisco is not compatible with blockdiag 2.0.0 and has been removed."; # Added 2020-11-29
blockdiagcontrib-cisco = throw "blockdiagcontrib-cisco is not compatible with blockdiag 2.0.0 and has been removed."; # added 2020-11-29
bt_proximity = bt-proximity; # added 2021-07-02
bugseverywhere = throw "bugseverywhere has been removed: Abandoned by upstream."; # Added 2019-11-27
bugseverywhere = throw "bugseverywhere has been removed: Abandoned by upstream."; # added 2019-11-27
class-registry = phx-class-registry; # added 2021-10-05
ConfigArgParse = configargparse; # added 2021-03-18
dateutil = python-dateutil; # added 2021-07-03
detox = throw "detox is no longer maintained, and was broken since may 2019"; # added 2020-07-04
dftfit = throw "it's dependency lammps-cython no longer builds";
dftfit = throw "it's dependency lammps-cython no longer builds"; # added 2021-07-04
diff_cover = diff-cover; # added 2021-07-02
discogs_client = discogs-client; # added 2021-07-02
djangorestframework-jwt = drf-jwt;
dns = dnspython; # Alias for compatibility, 2017-12-10
faulthandler = throw "faulthandler is built into ${python.executable}";
djangorestframework-jwt = drf-jwt; # added 2021-07-20
dns = dnspython; # added 2017-12-10
dogpile_cache = dogpile-cache; # added 2021-10-28
faulthandler = throw "faulthandler is built into ${python.executable}"; # added 2021-07-12
gitdb2 = throw "gitdb2 has been deprecated, use gitdb instead."; # added 2020-03-14
glances = throw "glances has moved to pkgs.glances"; # added 2020-20-28
google_api_python_client = google-api-python-client; # added 2021-03-19
googleapis_common_protos = googleapis-common-protos; # added 2021-03-19
grpc_google_iam_v1 = grpc-google-iam-v1; # added 2021-08-21
HAP-python = hap-python; # added 2021-06-01
IMAPClient = imapclient; # added 2021-10-28
jupyter_client = jupyter-client; # added 2021-10-15
lammps-cython = throw "no longer builds and is unmaintained";
MechanicalSoup = mechanicalsoup; # added 2021-06-01
pam = python-pam; # added 2020-09-07.
PasteDeploy = pastedeploy;
powerlineMemSegment = powerline-mem-segment;
PasteDeploy = pastedeploy; # added 2021-10-07
powerlineMemSegment = powerline-mem-segment; # added 2021-10-08
privacyidea = throw "renamed to pkgs.privacyidea"; # added 2021-06-20
prometheus_client = prometheus-client; # added 2021-06-10
prompt_toolkit = prompt-toolkit;
prompt_toolkit = prompt-toolkit; # added 2021-07-22
pylibgen = throw "pylibgen is unmaintained upstreamed, and removed from nixpkgs"; # added 2020-06-20
pymssql = throw "pymssql has been abandoned upstream."; # added 2020-05-04
pysmart-smartx = pysmart; # added 2021-10-22
@ -77,14 +79,15 @@ mapAliases ({
requests_toolbelt = requests-toolbelt; # added 2017-09-26
rotate-backups = throw "pythonPackages.rotate-backups was removed in favor of the top-level rotate-backups"; # added 2021-07-01
scikitlearn = scikit-learn; # added 2021-07-21
selectors34 = throw "selectors34 has been removed: functionality provided by Python itself; archived by upstream."; # Added 2021-06-10
selectors34 = throw "selectors34 has been removed: functionality provided by Python itself; archived by upstream."; # added 2021-06-10
setuptools_scm = setuptools-scm; # added 2021-06-03
smart_open = smart-open; # added 2021-03-14
smmap2 = throw "smmap2 has been deprecated, use smmap instead."; # added 2020-03-14
sphinxcontrib_plantuml = sphinxcontrib-plantuml;
topydo = throw "python3Packages.topydo was moved to topydo"; # 2017-09-22
tvnamer = throw "python3Packages.tvnamer was moved to tvnamer"; # 2021-07-05
WazeRouteCalculator = wazeroutecalculator; # 2021-09-29
websocket_client = websocket-client;
sphinxcontrib_plantuml = sphinxcontrib-plantuml; # added 2021-08-02
sqlalchemy_migrate = sqlalchemy-migrate; # added 2021-10-28
topydo = throw "python3Packages.topydo was moved to topydo"; # added 2017-09-22
tvnamer = throw "python3Packages.tvnamer was moved to tvnamer"; # added 2021-07-05
WazeRouteCalculator = wazeroutecalculator; # added 2021-09-29
websocket_client = websocket-client; # added 2021-06-15
zc-buildout221 = zc-buildout; # added 2021-07-21
})

View File

@ -2257,9 +2257,9 @@ in {
dodgy = callPackage ../development/python-modules/dodgy { };
dogpile_cache = callPackage ../development/python-modules/dogpile.cache { };
dogpile-cache = callPackage ../development/python-modules/dogpile-cache { };
dogpile_core = callPackage ../development/python-modules/dogpile.core { };
dogpile-core = callPackage ../development/python-modules/dogpile-core { };
dogtail = callPackage ../development/python-modules/dogtail { };
@ -3668,7 +3668,7 @@ in {
imantics = callPackage ../development/python-modules/imantics { };
IMAPClient = callPackage ../development/python-modules/imapclient { };
imapclient = callPackage ../development/python-modules/imapclient { };
imaplib2 = callPackage ../development/python-modules/imaplib2 { };
@ -8780,7 +8780,7 @@ in {
sqlalchemy-jsonfield = callPackage ../development/python-modules/sqlalchemy-jsonfield { };
sqlalchemy_migrate = callPackage ../development/python-modules/sqlalchemy-migrate { };
sqlalchemy-migrate = callPackage ../development/python-modules/sqlalchemy-migrate { };
sqlalchemy-utils = callPackage ../development/python-modules/sqlalchemy-utils { };