Merge master into staging-next

This commit is contained in:
github-actions[bot] 2023-05-11 00:02:13 +00:00 committed by GitHub
commit 079dc4c27d
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
151 changed files with 6612 additions and 2645 deletions

View file

@ -27,7 +27,7 @@ package set to make it the default. This guarantees you get a consistent package
set.
```nix
mypkg = let
cudaPackages = cudaPackages_11_5.overrideScope' (final: prev {
cudaPackages = cudaPackages_11_5.overrideScope' (final: prev: {
cudnn = prev.cudnn_8_3_2;
}});
in callPackage { inherit cudaPackages; };

View file

@ -118,7 +118,7 @@ ImageExifTool = buildPerlPackage {
hash = "sha256-vOhB/FwQMC8PPvdnjDvxRpU6jAZcC6GMQfc0AH4uwKg=";
};
buildInputs = lib.optional stdenv.isDarwin shortenPerlShebang;
nativeBuildInputs = lib.optional stdenv.isDarwin shortenPerlShebang;
postInstall = lib.optionalString stdenv.isDarwin ''
shortenPerlShebang $out/bin/exiftool
'';

View file

@ -3766,13 +3766,6 @@
githubId = 62989;
name = "Demyan Rogozhin";
};
dennajort = {
email = "gosselinjb@gmail.com";
matrix = "@dennajort:matrix.org";
github = "dennajort";
githubId = 1536838;
name = "Jean-Baptiste Gosselin";
};
derchris = {
email = "derchris@me.com";
github = "derchrisuk";
@ -6222,6 +6215,12 @@
githubId = 982322;
name = "Henrik Olsson";
};
henrirosten = {
email = "henri.rosten@unikie.com";
github = "henrirosten";
githubId = 49935860;
name = "Henri Rosten";
};
henrytill = {
email = "henrytill@gmail.com";
github = "henrytill";
@ -7102,6 +7101,13 @@
githubId = 221929;
name = "Jean-Baptiste Giraudeau";
};
jbgosselin = {
email = "gosselinjb@gmail.com";
matrix = "@dennajort:matrix.org";
github = "jbgosselin";
githubId = 1536838;
name = "Jean-Baptiste Gosselin";
};
jboy = {
email = "jboy+nixos@bius.moe";
githubId = 2187261;
@ -8100,6 +8106,13 @@
githubId = 524492;
name = "Sergey Kazenyuk";
};
kbdharun = {
email = "kbdharunkrishna@gmail.com";
matrix = "@kbdk:matrix.org";
github = "kbdharun";
githubId = 26346867;
name = "K.B.Dharun Krishna";
};
kcalvinalvin = {
email = "calvin@kcalvinalvin.info";
github = "kcalvinalvin";
@ -10217,6 +10230,15 @@
github = "michaelgrahamevans";
githubId = 5932424;
};
michaelpachec0 = {
email = "michaelpacheco@protonmail.com";
name = "Michael Pacheco";
github = "MichaelPachec0";
githubId = 48970112;
keys = [ {
fingerprint = "8D12 991F 5558 C501 70B2 779C 7811 46B0 B5F9 5F64";
}];
};
michaelpj = {
email = "michaelpj@gmail.com";
github = "michaelpj";
@ -12977,6 +12999,12 @@
githubId = 903072;
name = "Raghav Sood";
};
ragingpastry = {
email = "senior.crepe@gmail.com";
github = "ragingpastry";
githubId = 6778250;
name = "Nick Wilburn";
};
raitobezarius = {
email = "ryan@lahfa.xyz";
matrix = "@raitobezarius:matrix.org";
@ -14334,6 +14362,12 @@
githubId = 487050;
name = "Shea Levy";
};
shlok = {
email = "sd-nix-maintainer@quant.is";
github = "shlok";
githubId = 3000933;
name = "Shlok Datye";
};
shmish111 = {
email = "shmish111@gmail.com";
github = "shmish111";

View file

@ -85,7 +85,8 @@ echo "Updating Stackage..."
echo "Updating Hackage hashes..."
./maintainers/scripts/haskell/update-hackage.sh --do-commit
echo "Regenerating Hackage packages..."
./maintainers/scripts/haskell/regenerate-hackage-packages.sh --do-commit
# Using fast here because after the hackage-update eval errors will likely break the transitive dependencies check.
./maintainers/scripts/haskell/regenerate-hackage-packages.sh --fast --do-commit
# Push these new commits to the haskell-updates branch
echo "Pushing commits just created to the remote haskell-updates branch..."

View file

@ -1,9 +1,18 @@
#! /usr/bin/env nix-shell
#! nix-shell -i bash -p coreutils jq nix -I nixpkgs=.
set -euo pipefail
TMP_TEMPLATE=transitive-broken.XXXXXXX
readonly TMP_TEMPLATE
tmpfile=$(mktemp "$TMP_TEMPLATE")
trap 'rm -f "${tmpfile}"' 0
config_file=pkgs/development/haskell-modules/configuration-hackage2nix/transitive-broken.yaml
cat > $config_file << EOF
cat > $tmpfile << EOF
# This file is automatically generated by
# maintainers/scripts/haskell/regenerate-transitive-broken-packages.sh
# It is supposed to list all haskellPackages that cannot evaluate because they
@ -11,4 +20,6 @@ cat > $config_file << EOF
dont-distribute-packages:
EOF
nix-instantiate --eval --option restrict-eval true -I . --strict --json maintainers/scripts/haskell/transitive-broken-packages.nix | jq -r . | LC_ALL=C.UTF-8 sort -i >> $config_file
nix-instantiate --eval --option restrict-eval true -I . --strict --json maintainers/scripts/haskell/transitive-broken-packages.nix | jq -r . | LC_ALL=C.UTF-8 sort -i >> $tmpfile
mv $tmpfile $config_file

View file

@ -151,6 +151,7 @@ with lib.maintainers; {
cuda = {
members = [
connorbaker
SomeoneSerge
];
scope = "Maintain CUDA-enabled packages";

View file

@ -60,6 +60,8 @@ In addition to numerous new and upgraded packages, this release has the followin
- [gmediarender](https://github.com/hzeller/gmrender-resurrect), a simple, headless UPnP/DLNA renderer. Available as [services.gmediarender](options.html#opt-services.gmediarender.enable).
- [harmonia](https://github.com/nix-community/harmonia/), Nix binary cache implemented in rust using libnix-store. Available as [services.harmonia](options.html#opt-services.harmonia.enable).
- [hyprland](https://github.com/hyprwm/hyprland), a dynamic tiling Wayland compositor that doesn't sacrifice on its looks. Available as [programs.hyprland](#opt-programs.hyprland.enable).
- [minipro](https://gitlab.com/DavidGriffith/minipro/), an open source program for controlling the MiniPRO TL866xx series of chip programmers. Available as [programs.minipro](options.html#opt-programs.minipro.enable).
@ -114,6 +116,8 @@ In addition to numerous new and upgraded packages, this release has the followin
- [stargazer](https://sr.ht/~zethra/stargazer/), a fast and easy to use Gemini server. Available as [services.stargazer](#opt-services.stargazer.enable).
- [sniffnet](https://github.com/GyulyVGC/sniffnet), an application to monitor your network traffic. Available as [programs.sniffnet](#opt-programs.sniffnet.enable).
- [photoprism](https://photoprism.app/), a AI-Powered Photos App for the Decentralized Web. Available as [services.photoprism](options.html#opt-services.photoprism.enable).
- [peroxide](https://github.com/ljanyst/peroxide), a fork of the official [ProtonMail bridge](https://github.com/ProtonMail/proton-bridge) that aims to be similar to [Hydroxide](https://github.com/emersion/hydroxide). Available as [services.peroxide](#opt-services.peroxide.enable).

View file

@ -29,7 +29,6 @@
# GNU GRUB, where available.
boot.loader.grub.enable = !pkgs.stdenv.isAarch32;
boot.loader.grub.version = 2;
# GNU lsh.
services.openssh.enable = false;

View file

@ -694,8 +694,6 @@ in
}
];
boot.loader.grub.version = 2;
# Don't build the GRUB menu builder script, since we don't need it
# here and it causes a cyclic dependency.
boot.loader.grub.enable = false;

View file

@ -651,7 +651,6 @@ EOF
$bootLoaderConfig = <<EOF;
# Use the GRUB 2 boot loader.
boot.loader.grub.enable = true;
boot.loader.grub.version = 2;
# boot.loader.grub.efiSupport = true;
# boot.loader.grub.efiInstallAsRemovable = true;
# boot.loader.efi.efiSysMountPoint = "/boot/efi";

View file

@ -235,6 +235,7 @@
./programs/singularity.nix
./programs/skim.nix
./programs/slock.nix
./programs/sniffnet.nix
./programs/spacefm.nix
./programs/ssh.nix
./programs/starship.nix
@ -875,6 +876,7 @@
./services/networking/gobgpd.nix
./services/networking/gvpe.nix
./services/networking/hans.nix
./services/networking/harmonia.nix
./services/networking/haproxy.nix
./services/networking/headscale.nix
./services/networking/hostapd.nix

View file

@ -0,0 +1,24 @@
{ config, lib, pkgs, ... }:
let
cfg = config.programs.sniffnet;
in
{
options = {
programs.sniffnet = {
enable = lib.mkEnableOption (lib.mdDoc "sniffnet");
};
};
config = lib.mkIf cfg.enable {
security.wrappers.sniffnet = {
owner = "root";
group = "root";
capabilities = "cap_net_raw,cap_net_admin=eip";
source = "${pkgs.sniffnet}/bin/sniffnet";
};
};
meta.maintainers = with lib.maintainers; [ figsoda ];
}

View file

@ -638,7 +638,7 @@ let
password sufficient ${pkgs.pam_mysql}/lib/security/pam_mysql.so config_file=/etc/security/pam_mysql.conf
'' +
optionalString config.services.sssd.enable ''
password sufficient ${pkgs.sssd}/lib/security/pam_sss.so use_authtok
password sufficient ${pkgs.sssd}/lib/security/pam_sss.so
'' +
optionalString config.security.pam.krb5.enable ''
password sufficient ${pam_krb5}/lib/security/pam_krb5.so use_first_pass

View file

@ -43,6 +43,8 @@ in
services.uptime-kuma.settings = {
DATA_DIR = "/var/lib/uptime-kuma/";
NODE_ENV = mkDefault "production";
HOST = mkDefault "127.0.0.1";
PORT = mkDefault "3001";
};
systemd.services.uptime-kuma = {

View file

@ -28,6 +28,12 @@ in
description = lib.mdDoc "Group to run under when setuid is not enabled.";
};
debug = mkOption {
type = types.bool;
default = false;
description = lib.mdDoc "Enable debug mode.";
};
settings = mkOption {
type = format.type;
default = { };
@ -111,7 +117,7 @@ in
after = [ "network.target" ];
wantedBy = [ "multi-user.target" ];
serviceConfig = {
ExecStart = "${pkgs.webdav-server-rs}/bin/webdav-server -c ${cfg.configFile}";
ExecStart = "${pkgs.webdav-server-rs}/bin/webdav-server ${lib.optionalString cfg.debug "--debug"} -c ${cfg.configFile}";
CapabilityBoundingSet = [
"CAP_SETUID"

View file

@ -0,0 +1,88 @@
{ config, pkgs, lib, ... }:
let
cfg = config.services.harmonia;
format = pkgs.formats.toml { };
in
{
options = {
services.harmonia = {
enable = lib.mkEnableOption (lib.mdDoc "Harmonia: Nix binary cache written in Rust");
signKeyPath = lib.mkOption {
type = lib.types.nullOr lib.types.path;
default = null;
description = lib.mdDoc "Path to the signing key that will be used for signing the cache";
};
package = lib.mkPackageOptionMD pkgs "harmonia" { };
settings = lib.mkOption {
inherit (format) type;
default = { };
description = lib.mdDoc ''
Settings to merge with the default configuration.
For the list of the default configuration, see <https://github.com/nix-community/harmonia/tree/master#configuration>.
'';
};
};
};
config = lib.mkIf cfg.enable {
systemd.services.harmonia = {
description = "harmonia binary cache service";
requires = [ "nix-daemon.socket" ];
after = [ "network.target" ];
wantedBy = [ "multi-user.target" ];
environment = {
CONFIG_FILE = format.generate "harmonia.toml" cfg.settings;
SIGN_KEY_PATH = lib.mkIf (cfg.signKeyPath != null) "%d/sign-key";
# Note: it's important to set this for nix-store, because it wants to use
# $HOME in order to use a temporary cache dir. bizarre failures will occur
# otherwise
HOME = "/run/harmonia";
};
serviceConfig = {
ExecStart = lib.getExe cfg.package;
User = "harmonia";
Group = "harmonia";
DynamicUser = true;
PrivateUsers = true;
DeviceAllow = [ "" ];
UMask = "0066";
RuntimeDirectory = "harmonia";
LoadCredential = lib.mkIf (cfg.signKeyPath != null) [ "sign-key:${cfg.signKeyPath}" ];
SystemCallFilter = [
"@system-service"
"~@privileged"
"~@resources"
];
CapabilityBoundingSet = "";
ProtectKernelModules = true;
ProtectKernelTunables = true;
ProtectControlGroups = true;
ProtectKernelLogs = true;
ProtectHostname = true;
ProtectClock = true;
RestrictRealtime = true;
MemoryDenyWriteExecute = true;
ProcSubset = "pid";
ProtectProc = "invisible";
RestrictNamespaces = true;
SystemCallArchitectures = "native";
PrivateNetwork = false;
PrivateTmp = true;
PrivateDevices = true;
PrivateMounts = true;
NoNewPrivileges = true;
ProtectSystem = "strict";
ProtectHome = true;
LockPersonality = true;
RestrictAddressFamilies = "AF_UNIX AF_INET AF_INET6";
LimitNOFILE = 65536;
};
};
};
}

View file

@ -1,4 +1,4 @@
{ config, lib, pkgs, ... }:
{ config, options, lib, pkgs, ... }:
with lib;
@ -12,8 +12,7 @@ let
# Package set of targeted architecture
if cfg.forcei686 then pkgs.pkgsi686Linux else pkgs;
realGrub = if cfg.version == 1 then grubPkgs.grub
else if cfg.zfsSupport then grubPkgs.grub2.override { zfsSupport = true; }
realGrub = if cfg.zfsSupport then grubPkgs.grub2.override { zfsSupport = true; }
else if cfg.trustedBoot.enable
then if cfg.trustedBoot.isHPLaptop
then grubPkgs.trustedGrub-for-HP
@ -28,8 +27,7 @@ let
else realGrub;
grubEfi =
# EFI version of Grub v2
if cfg.efiSupport && (cfg.version == 2)
if cfg.efiSupport
then realGrub.override { efiSupport = cfg.efiSupport; }
else null;
@ -52,24 +50,24 @@ let
fullName = lib.getName realGrub;
fullVersion = lib.getVersion realGrub;
grubEfi = f grubEfi;
grubTargetEfi = optionalString (cfg.efiSupport && (cfg.version == 2)) (f (grubEfi.grubTarget or ""));
grubTargetEfi = optionalString cfg.efiSupport (f (grubEfi.grubTarget or ""));
bootPath = args.path;
storePath = config.boot.loader.grub.storePath;
bootloaderId = if args.efiBootloaderId == null then "${config.system.nixos.distroName}${efiSysMountPoint'}" else args.efiBootloaderId;
timeout = if config.boot.loader.timeout == null then -1 else config.boot.loader.timeout;
users = if cfg.users == {} || cfg.version != 1 then cfg.users else throw "GRUB version 1 does not support user accounts.";
theme = f cfg.theme;
inherit efiSysMountPoint;
inherit (args) devices;
inherit (efi) canTouchEfiVariables;
inherit (cfg)
version extraConfig extraPerEntryConfig extraEntries forceInstall useOSProber
extraConfig extraPerEntryConfig extraEntries forceInstall useOSProber
extraGrubInstallArgs
extraEntriesBeforeNixOS extraPrepareConfig configurationLimit copyKernels
default fsIdentifier efiSupport efiInstallAsRemovable gfxmodeEfi gfxmodeBios gfxpayloadEfi gfxpayloadBios;
default fsIdentifier efiSupport efiInstallAsRemovable gfxmodeEfi gfxmodeBios gfxpayloadEfi gfxpayloadBios
users;
path = with pkgs; makeBinPath (
[ coreutils gnused gnugrep findutils diffutils btrfs-progs util-linux mdadm ]
++ optional (cfg.efiSupport && (cfg.version == 2)) efibootmgr
++ optional cfg.efiSupport efibootmgr
++ optionals cfg.useOSProber [ busybox os-prober ]);
font = if cfg.font == null then ""
else (if lib.last (lib.splitString "." cfg.font) == "pf2"
@ -109,14 +107,8 @@ in
};
version = mkOption {
default = 2;
example = 1;
visible = false;
type = types.int;
description = lib.mdDoc ''
The version of GRUB to use: `1` for GRUB
Legacy (versions 0.9x), or `2` (the
default) for GRUB 2.
'';
};
device = mkOption {
@ -724,14 +716,7 @@ in
config = mkMerge [
{ boot.loader.grub.splashImage = mkDefault (
if cfg.version == 1 then pkgs.fetchurl {
url = "http://www.gnome-look.org/CONTENT/content-files/36909-soft-tux.xpm.gz";
sha256 = "14kqdx2lfqvh40h6fjjzqgff1mwk74dmbjvmqphi6azzra7z8d59";
}
# GRUB 1.97 doesn't support gzipped XPMs.
else defaultSplash);
}
{ boot.loader.grub.splashImage = mkDefault defaultSplash; }
(mkIf (cfg.splashImage == defaultSplash) {
boot.loader.grub.backgroundColor = mkDefault "#2F302F";
@ -788,10 +773,6 @@ in
'') config.boot.loader.grub.extraFiles);
assertions = [
{
assertion = !cfg.zfsSupport || cfg.version == 2;
message = "Only GRUB version 2 provides ZFS support";
}
{
assertion = cfg.mirroredBoots != [ ];
message = "You must set the option boot.loader.grub.devices or "
@ -801,10 +782,6 @@ in
assertion = cfg.efiSupport || all (c: c < 2) (mapAttrsToList (n: c: if n == "nodev" then 0 else c) bootDeviceCounters);
message = "You cannot have duplicated devices in mirroredBoots";
}
{
assertion = !cfg.trustedBoot.enable || cfg.version == 2;
message = "Trusted GRUB is only available for GRUB 2";
}
{
assertion = !cfg.efiSupport || !cfg.trustedBoot.enable;
message = "Trusted GRUB does not have EFI support";
@ -825,6 +802,10 @@ in
assertion = cfg.efiInstallAsRemovable -> !config.boot.loader.efi.canTouchEfiVariables;
message = "If you wish to to use boot.loader.grub.efiInstallAsRemovable, then turn off boot.loader.efi.canTouchEfiVariables";
}
{
assertion = !(options.boot.loader.grub.version.isDefined && cfg.version == 1);
message = "Support for version 0.9x of GRUB was removed after being unsupported upstream for around a decade";
}
] ++ flip concatMap cfg.mirroredBoots (args: [
{
assertion = args.devices != [ ];
@ -844,6 +825,11 @@ in
}));
})
(mkIf options.boot.loader.grub.version.isDefined {
warnings = [ ''
The boot.loader.grub.version option does not have any effect anymore, please remove it from your configuration.
'' ];
})
];

View file

@ -61,7 +61,6 @@ sub runCommand {
}
my $grub = get("grub");
my $grubVersion = int(get("version"));
my $grubTarget = get("grubTarget");
my $extraConfig = get("extraConfig");
my $extraPrepareConfig = get("extraPrepareConfig");
@ -96,9 +95,7 @@ my $theme = get("theme");
my $saveDefault = $defaultEntry eq "saved";
$ENV{'PATH'} = get("path");
die "unsupported GRUB version\n" if $grubVersion != 1 && $grubVersion != 2;
print STDERR "updating GRUB $grubVersion menu...\n";
print STDERR "updating GRUB 2 menu...\n";
mkpath("$bootPath/grub", 0, 0700);
@ -176,76 +173,74 @@ sub GrubFs {
}
my $search = "";
if ($grubVersion > 1) {
# ZFS is completely separate logic as zpools are always identified by a label
# or custom UUID
if ($fs->type eq 'zfs') {
my $sid = index($fs->device, '/');
# ZFS is completely separate logic as zpools are always identified by a label
# or custom UUID
if ($fs->type eq 'zfs') {
my $sid = index($fs->device, '/');
if ($sid < 0) {
$search = '--label ' . $fs->device;
$path = '/@' . $path;
} else {
$search = '--label ' . substr($fs->device, 0, $sid);
$path = '/' . substr($fs->device, $sid) . '/@' . $path;
if ($sid < 0) {
$search = '--label ' . $fs->device;
$path = '/@' . $path;
} else {
$search = '--label ' . substr($fs->device, 0, $sid);
$path = '/' . substr($fs->device, $sid) . '/@' . $path;
}
} else {
my %types = ('uuid' => '--fs-uuid', 'label' => '--label');
if ($fsIdentifier eq 'provided') {
# If the provided dev is identifying the partition using a label or uuid,
# we should get the label / uuid and do a proper search
my @matches = $fs->device =~ m/\/dev\/disk\/by-(label|uuid)\/(.*)/;
if ($#matches > 1) {
die "Too many matched devices"
} elsif ($#matches == 1) {
$search = "$types{$matches[0]} $matches[1]"
}
} else {
my %types = ('uuid' => '--fs-uuid', 'label' => '--label');
# Determine the identifying type
$search = $types{$fsIdentifier} . ' ';
if ($fsIdentifier eq 'provided') {
# If the provided dev is identifying the partition using a label or uuid,
# we should get the label / uuid and do a proper search
my @matches = $fs->device =~ m/\/dev\/disk\/by-(label|uuid)\/(.*)/;
if ($#matches > 1) {
die "Too many matched devices"
} elsif ($#matches == 1) {
$search = "$types{$matches[0]} $matches[1]"
}
} else {
# Determine the identifying type
$search = $types{$fsIdentifier} . ' ';
# Based on the type pull in the identifier from the system
my ($status, @devInfo) = runCommand("@utillinux@/bin/blkid", "-o", "export", @{[$fs->device]});
if ($status != 0) {
die "Failed to get blkid info (returned $status) for @{[$fs->mount]} on @{[$fs->device]}";
}
my @matches = join("", @devInfo) =~ m/@{[uc $fsIdentifier]}=([^\n]*)/;
if ($#matches != 0) {
die "Couldn't find a $types{$fsIdentifier} for @{[$fs->device]}\n"
}
$search .= $matches[0];
# Based on the type pull in the identifier from the system
my ($status, @devInfo) = runCommand("@utillinux@/bin/blkid", "-o", "export", @{[$fs->device]});
if ($status != 0) {
die "Failed to get blkid info (returned $status) for @{[$fs->mount]} on @{[$fs->device]}";
}
my @matches = join("", @devInfo) =~ m/@{[uc $fsIdentifier]}=([^\n]*)/;
if ($#matches != 0) {
die "Couldn't find a $types{$fsIdentifier} for @{[$fs->device]}\n"
}
$search .= $matches[0];
}
# BTRFS is a special case in that we need to fix the referrenced path based on subvolumes
if ($fs->type eq 'btrfs') {
my ($status, @id_info) = runCommand("@btrfsprogs@/bin/btrfs", "subvol", "show", @{[$fs->mount]});
# BTRFS is a special case in that we need to fix the referrenced path based on subvolumes
if ($fs->type eq 'btrfs') {
my ($status, @id_info) = runCommand("@btrfsprogs@/bin/btrfs", "subvol", "show", @{[$fs->mount]});
if ($status != 0) {
die "Failed to retrieve subvolume info for @{[$fs->mount]}\n";
}
my @ids = join("\n", @id_info) =~ m/^(?!\/\n).*Subvolume ID:[ \t\n]*([0-9]+)/s;
if ($#ids > 0) {
die "Btrfs subvol name for @{[$fs->device]} listed multiple times in mount\n"
} elsif ($#ids == 0) {
my ($status, @path_info) = runCommand("@btrfsprogs@/bin/btrfs", "subvol", "list", @{[$fs->mount]});
if ($status != 0) {
die "Failed to retrieve subvolume info for @{[$fs->mount]}\n";
die "Failed to find @{[$fs->mount]} subvolume id from btrfs\n";
}
my @ids = join("\n", @id_info) =~ m/^(?!\/\n).*Subvolume ID:[ \t\n]*([0-9]+)/s;
if ($#ids > 0) {
die "Btrfs subvol name for @{[$fs->device]} listed multiple times in mount\n"
} elsif ($#ids == 0) {
my ($status, @path_info) = runCommand("@btrfsprogs@/bin/btrfs", "subvol", "list", @{[$fs->mount]});
if ($status != 0) {
die "Failed to find @{[$fs->mount]} subvolume id from btrfs\n";
}
my @paths = join("", @path_info) =~ m/ID $ids[0] [^\n]* path ([^\n]*)/;
if ($#paths > 0) {
die "Btrfs returned multiple paths for a single subvolume id, mountpoint @{[$fs->mount]}\n";
} elsif ($#paths != 0) {
die "Btrfs did not return a path for the subvolume at @{[$fs->mount]}\n";
}
$path = "/$paths[0]$path";
my @paths = join("", @path_info) =~ m/ID $ids[0] [^\n]* path ([^\n]*)/;
if ($#paths > 0) {
die "Btrfs returned multiple paths for a single subvolume id, mountpoint @{[$fs->mount]}\n";
} elsif ($#paths != 0) {
die "Btrfs did not return a path for the subvolume at @{[$fs->mount]}\n";
}
$path = "/$paths[0]$path";
}
}
if (not $search eq "") {
$search = "search --set=drive$driveid " . $search;
$path = "(\$drive$driveid)$path";
$driveid += 1;
}
}
if (not $search eq "") {
$search = "search --set=drive$driveid " . $search;
$path = "(\$drive$driveid)$path";
$driveid += 1;
}
return Grub->new(path => $path, search => $search);
}
@ -258,166 +253,151 @@ if ($copyKernels == 0) {
# Generate the header.
my $conf .= "# Automatically generated. DO NOT EDIT THIS FILE!\n";
if ($grubVersion == 1) {
# $defaultEntry might be "saved", indicating that we want to use the last selected configuration as default.
# Incidentally this is already the correct value for the grub 1 config to achieve this behaviour.
$conf .= "
default $defaultEntry
timeout $timeout
";
if ($splashImage) {
copy $splashImage, "$bootPath/background.xpm.gz" or die "cannot copy $splashImage to $bootPath: $!\n";
$conf .= "splashimage " . ($grubBoot->path eq "/" ? "" : $grubBoot->path) . "/background.xpm.gz\n";
my @users = ();
foreach my $user ($dom->findnodes('/expr/attrs/attr[@name = "users"]/attrs/attr')) {
my $name = $user->findvalue('@name') or die;
my $hashedPassword = $user->findvalue('./attrs/attr[@name = "hashedPassword"]/string/@value');
my $hashedPasswordFile = $user->findvalue('./attrs/attr[@name = "hashedPasswordFile"]/string/@value');
my $password = $user->findvalue('./attrs/attr[@name = "password"]/string/@value');
my $passwordFile = $user->findvalue('./attrs/attr[@name = "passwordFile"]/string/@value');
if ($hashedPasswordFile) {
open(my $f, '<', $hashedPasswordFile) or die "Can't read file '$hashedPasswordFile'!";
$hashedPassword = <$f>;
chomp $hashedPassword;
}
if ($passwordFile) {
open(my $f, '<', $passwordFile) or die "Can't read file '$passwordFile'!";
$password = <$f>;
chomp $password;
}
}
else {
my @users = ();
foreach my $user ($dom->findnodes('/expr/attrs/attr[@name = "users"]/attrs/attr')) {
my $name = $user->findvalue('@name') or die;
my $hashedPassword = $user->findvalue('./attrs/attr[@name = "hashedPassword"]/string/@value');
my $hashedPasswordFile = $user->findvalue('./attrs/attr[@name = "hashedPasswordFile"]/string/@value');
my $password = $user->findvalue('./attrs/attr[@name = "password"]/string/@value');
my $passwordFile = $user->findvalue('./attrs/attr[@name = "passwordFile"]/string/@value');
if ($hashedPasswordFile) {
open(my $f, '<', $hashedPasswordFile) or die "Can't read file '$hashedPasswordFile'!";
$hashedPassword = <$f>;
chomp $hashedPassword;
}
if ($passwordFile) {
open(my $f, '<', $passwordFile) or die "Can't read file '$passwordFile'!";
$password = <$f>;
chomp $password;
}
if ($hashedPassword) {
if (index($hashedPassword, "grub.pbkdf2.") == 0) {
$conf .= "\npassword_pbkdf2 $name $hashedPassword";
}
else {
die "Password hash for GRUB user '$name' is not valid!";
}
}
elsif ($password) {
$conf .= "\npassword $name $password";
if ($hashedPassword) {
if (index($hashedPassword, "grub.pbkdf2.") == 0) {
$conf .= "\npassword_pbkdf2 $name $hashedPassword";
}
else {
die "GRUB user '$name' has no password!";
die "Password hash for GRUB user '$name' is not valid!";
}
push(@users, $name);
}
if (@users) {
$conf .= "\nset superusers=\"" . join(' ',@users) . "\"\n";
elsif ($password) {
$conf .= "\npassword $name $password";
}
else {
die "GRUB user '$name' has no password!";
}
push(@users, $name);
}
if (@users) {
$conf .= "\nset superusers=\"" . join(' ',@users) . "\"\n";
}
if ($copyKernels == 0) {
$conf .= "
" . $grubStore->search;
}
# FIXME: should use grub-mkconfig.
my $defaultEntryText = $defaultEntry;
if ($saveDefault) {
$defaultEntryText = "\"\${saved_entry}\"";
}
if ($copyKernels == 0) {
$conf .= "
" . $grubBoot->search . "
if [ -s \$prefix/grubenv ]; then
load_env
" . $grubStore->search;
}
# FIXME: should use grub-mkconfig.
my $defaultEntryText = $defaultEntry;
if ($saveDefault) {
$defaultEntryText = "\"\${saved_entry}\"";
}
$conf .= "
" . $grubBoot->search . "
if [ -s \$prefix/grubenv ]; then
load_env
fi
# grub-reboot sets a one-time saved entry, which we process here and
# then delete.
if [ \"\${next_entry}\" ]; then
set default=\"\${next_entry}\"
set next_entry=
save_env next_entry
set timeout=1
set boot_once=true
else
set default=$defaultEntryText
set timeout=$timeout
fi
function savedefault {
if [ -z \"\${boot_once}\"]; then
saved_entry=\"\${chosen}\"
save_env saved_entry
fi
}
# grub-reboot sets a one-time saved entry, which we process here and
# then delete.
if [ \"\${next_entry}\" ]; then
set default=\"\${next_entry}\"
set next_entry=
save_env next_entry
set timeout=1
set boot_once=true
else
set default=$defaultEntryText
set timeout=$timeout
fi
# Setup the graphics stack for bios and efi systems
if [ \"\${grub_platform}\" = \"efi\" ]; then
insmod efi_gop
insmod efi_uga
else
insmod vbe
fi
";
function savedefault {
if [ -z \"\${boot_once}\"]; then
saved_entry=\"\${chosen}\"
save_env saved_entry
fi
}
# Setup the graphics stack for bios and efi systems
if [ \"\${grub_platform}\" = \"efi\" ]; then
insmod efi_gop
insmod efi_uga
else
insmod vbe
if ($font) {
copy $font, "$bootPath/converted-font.pf2" or die "cannot copy $font to $bootPath: $!\n";
$conf .= "
insmod font
if loadfont " . ($grubBoot->path eq "/" ? "" : $grubBoot->path) . "/converted-font.pf2; then
insmod gfxterm
if [ \"\${grub_platform}\" = \"efi\" ]; then
set gfxmode=$gfxmodeEfi
set gfxpayload=$gfxpayloadEfi
else
set gfxmode=$gfxmodeBios
set gfxpayload=$gfxpayloadBios
fi
terminal_output gfxterm
fi
";
if ($font) {
copy $font, "$bootPath/converted-font.pf2" or die "cannot copy $font to $bootPath: $!\n";
}
if ($splashImage) {
# Keeps the image's extension.
my ($filename, $dirs, $suffix) = fileparse($splashImage, qr"\..[^.]*$");
# The module for jpg is jpeg.
if ($suffix eq ".jpg") {
$suffix = ".jpeg";
}
if ($backgroundColor) {
$conf .= "
insmod font
if loadfont " . ($grubBoot->path eq "/" ? "" : $grubBoot->path) . "/converted-font.pf2; then
insmod gfxterm
if [ \"\${grub_platform}\" = \"efi\" ]; then
set gfxmode=$gfxmodeEfi
set gfxpayload=$gfxpayloadEfi
else
set gfxmode=$gfxmodeBios
set gfxpayload=$gfxpayloadBios
fi
terminal_output gfxterm
fi
background_color '$backgroundColor'
";
}
if ($splashImage) {
# Keeps the image's extension.
my ($filename, $dirs, $suffix) = fileparse($splashImage, qr"\..[^.]*$");
# The module for jpg is jpeg.
if ($suffix eq ".jpg") {
$suffix = ".jpeg";
}
if ($backgroundColor) {
copy $splashImage, "$bootPath/background$suffix" or die "cannot copy $splashImage to $bootPath: $!\n";
$conf .= "
insmod " . substr($suffix, 1) . "
if background_image --mode '$splashMode' " . ($grubBoot->path eq "/" ? "" : $grubBoot->path) . "/background$suffix; then
set color_normal=white/black
set color_highlight=black/white
else
set menu_color_normal=cyan/blue
set menu_color_highlight=white/blue
fi
";
}
rmtree("$bootPath/theme") or die "cannot clean up theme folder in $bootPath\n" if -e "$bootPath/theme";
if ($theme) {
# Copy theme
rcopy($theme, "$bootPath/theme") or die "cannot copy $theme to $bootPath\n";
$conf .= "
# Sets theme.
set theme=" . ($grubBoot->path eq "/" ? "" : $grubBoot->path) . "/theme/theme.txt
export theme
# Load theme fonts, if any
";
find( { wanted => sub {
if ($_ =~ /\.pf2$/i) {
$font = File::Spec->abs2rel($File::Find::name, $theme);
$conf .= "
background_color '$backgroundColor'
loadfont " . ($grubBoot->path eq "/" ? "" : $grubBoot->path) . "/theme/$font
";
}
copy $splashImage, "$bootPath/background$suffix" or die "cannot copy $splashImage to $bootPath: $!\n";
$conf .= "
insmod " . substr($suffix, 1) . "
if background_image --mode '$splashMode' " . ($grubBoot->path eq "/" ? "" : $grubBoot->path) . "/background$suffix; then
set color_normal=white/black
set color_highlight=black/white
else
set menu_color_normal=cyan/blue
set menu_color_highlight=white/blue
fi
";
}
rmtree("$bootPath/theme") or die "cannot clean up theme folder in $bootPath\n" if -e "$bootPath/theme";
if ($theme) {
# Copy theme
rcopy($theme, "$bootPath/theme") or die "cannot copy $theme to $bootPath\n";
$conf .= "
# Sets theme.
set theme=" . ($grubBoot->path eq "/" ? "" : $grubBoot->path) . "/theme/theme.txt
export theme
# Load theme fonts, if any
";
find( { wanted => sub {
if ($_ =~ /\.pf2$/i) {
$font = File::Spec->abs2rel($File::Find::name, $theme);
$conf .= "
loadfont " . ($grubBoot->path eq "/" ? "" : $grubBoot->path) . "/theme/$font
";
}
}, no_chdir => 1 }, $theme );
}
}, no_chdir => 1 }, $theme );
}
$conf .= "$extraConfig\n";
@ -494,31 +474,19 @@ sub addEntry {
readFile("$path/kernel-params");
my $xenParams = $xen && -e "$path/xen-params" ? readFile("$path/xen-params") : "";
if ($grubVersion == 1) {
$conf .= "title $name\n";
$conf .= " $extraPerEntryConfig\n" if $extraPerEntryConfig;
$conf .= " kernel $xen $xenParams\n" if $xen;
$conf .= " " . ($xen ? "module" : "kernel") . " $kernel $kernelParams\n";
$conf .= " " . ($xen ? "module" : "initrd") . " $initrd\n";
if ($saveDefault) {
$conf .= " savedefault\n";
}
$conf .= "\n";
} else {
$conf .= "menuentry \"$name\" " . $options . " {\n";
if ($saveDefault) {
$conf .= " savedefault\n";
}
$conf .= $grubBoot->search . "\n";
if ($copyKernels == 0) {
$conf .= $grubStore->search . "\n";
}
$conf .= " $extraPerEntryConfig\n" if $extraPerEntryConfig;
$conf .= " multiboot $xen $xenParams\n" if $xen;
$conf .= " " . ($xen ? "module" : "linux") . " $kernel $kernelParams\n";
$conf .= " " . ($xen ? "module" : "initrd") . " $initrd\n";
$conf .= "}\n\n";
$conf .= "menuentry \"$name\" " . $options . " {\n";
if ($saveDefault) {
$conf .= " savedefault\n";
}
$conf .= $grubBoot->search . "\n";
if ($copyKernels == 0) {
$conf .= $grubStore->search . "\n";
}
$conf .= " $extraPerEntryConfig\n" if $extraPerEntryConfig;
$conf .= " multiboot $xen $xenParams\n" if $xen;
$conf .= " " . ($xen ? "module" : "linux") . " $kernel $kernelParams\n";
$conf .= " " . ($xen ? "module" : "initrd") . " $initrd\n";
$conf .= "}\n\n";
}
@ -562,7 +530,7 @@ sub addProfile {
my ($profile, $description) = @_;
# Add entries for all generations of this profile.
$conf .= "submenu \"$description\" --class submenu {\n" if $grubVersion == 2;
$conf .= "submenu \"$description\" --class submenu {\n";
sub nrFromGen { my ($x) = @_; $x =~ /\/\w+-(\d+)-link/; return $1; }
@ -585,17 +553,15 @@ sub addProfile {
addEntry("@distroName@ - Configuration " . nrFromGen($link) . " ($date - $version)", $link, $subEntryOptions, 0);
}
$conf .= "}\n" if $grubVersion == 2;
$conf .= "}\n";
}
addProfile "/nix/var/nix/profiles/system", "@distroName@ - All configurations";
if ($grubVersion == 2) {
for my $profile (glob "/nix/var/nix/profiles/system-profiles/*") {
my $name = basename($profile);
next unless $name =~ /^\w+$/;
addProfile $profile, "@distroName@ - Profile '$name'";
}
for my $profile (glob "/nix/var/nix/profiles/system-profiles/*") {
my $name = basename($profile);
next unless $name =~ /^\w+$/;
addProfile $profile, "@distroName@ - Profile '$name'";
}
# extraPrepareConfig could refer to @bootPath@, which we have to substitute
@ -607,16 +573,14 @@ if ($extraPrepareConfig ne "") {
}
# write the GRUB config.
my $confFile = $grubVersion == 1 ? "$bootPath/grub/menu.lst" : "$bootPath/grub/grub.cfg";
my $confFile = "$bootPath/grub/grub.cfg";
my $tmpFile = $confFile . ".tmp";
writeFile($tmpFile, $conf);
# check whether to install GRUB EFI or not
sub getEfiTarget {
if ($grubVersion == 1) {
return "no"
} elsif (($grub ne "") && ($grubEfi ne "")) {
if (($grub ne "") && ($grubEfi ne "")) {
# EFI can only be installed when target is set;
# A target is also required then for non-EFI grub
if (($grubTarget eq "") || ($grubTargetEfi eq "")) { die }
@ -741,7 +705,7 @@ symlink "$bootPath", "$tmpDir/boot" or die "Failed to symlink $tmpDir/boot: $!";
if (($requireNewInstall != 0) && ($efiTarget eq "no" || $efiTarget eq "both")) {
foreach my $dev (@deviceTargets) {
next if $dev eq "nodev";
print STDERR "installing the GRUB $grubVersion boot loader on $dev...\n";
print STDERR "installing the GRUB 2 boot loader on $dev...\n";
my @command = ("$grub/sbin/grub-install", "--recheck", "--root-directory=$tmpDir", Cwd::abs_path($dev), @extraGrubInstallArgs);
if ($forceInstall eq "true") {
push @command, "--force";
@ -756,7 +720,7 @@ if (($requireNewInstall != 0) && ($efiTarget eq "no" || $efiTarget eq "both")) {
# install EFI GRUB
if (($requireNewInstall != 0) && ($efiTarget eq "only" || $efiTarget eq "both")) {
print STDERR "installing the GRUB $grubVersion EFI boot loader into $efiSysMountPoint...\n";
print STDERR "installing the GRUB 2 boot loader into $efiSysMountPoint...\n";
my @command = ("$grubEfi/sbin/grub-install", "--recheck", "--target=$grubTargetEfi", "--boot-directory=$bootPath", "--efi-directory=$efiSysMountPoint", @extraGrubInstallArgs);
if ($forceInstall eq "true") {
push @command, "--force";

View file

@ -46,11 +46,7 @@ in
config = mkIf (builtins.length scripts != 0) {
boot.loader.grub.extraEntries =
if config.boot.loader.grub.version == 2 then
toString (map grubEntry scripts)
else
throw "iPXE is not supported with GRUB 1.";
boot.loader.grub.extraEntries = toString (map grubEntry scripts);
boot.loader.grub.extraFiles =
{ "ipxe.lkrn" = "${pkgs.ipxe}/ipxe.lkrn"; }

View file

@ -84,15 +84,11 @@ in
})
(mkIf (cfg.enable && !efiSupport) {
boot.loader.grub.extraEntries =
if config.boot.loader.grub.version == 2 then
''
menuentry "Memtest86+" {
linux16 @bootRoot@/memtest.bin ${toString cfg.params}
}
''
else
throw "Memtest86+ is not supported with GRUB 1.";
boot.loader.grub.extraEntries = ''
menuentry "Memtest86+" {
linux16 @bootRoot@/memtest.bin ${toString cfg.params}
}
'';
boot.loader.grub.extraFiles."memtest.bin" = "${memtest86}/memtest.bin";
})

View file

@ -12,7 +12,6 @@ with lib;
# Generate a GRUB menu.
boot.loader.grub.device = "/dev/sda";
boot.loader.grub.version = 2;
boot.loader.timeout = 0;
boot.growPartition = true;

View file

@ -3,7 +3,6 @@
{ ... }:
{
boot.loader.grub.version = 2;
boot.loader.grub.device = "nodev";
boot.initrd.kernelModules =

View file

@ -3,14 +3,16 @@
meta.maintainers = with lib.maintainers; [ Luflosi ];
nodes.machine = {
hardware.opengl.enable = true;
imports = [
./common/x11.nix
];
};
# This starts the game from a known state, feeds it a prerecorded set of button presses
# and then checks if the final game state is identical to the expected state.
# This is also what AAAAXY's CI system does and serves as a good sanity check.
testScript = ''
machine.wait_for_unit("basic.target")
machine.wait_for_x()
machine.succeed(
# benchmark.dem needs to be in a mutable directory,
@ -18,7 +20,6 @@
"mkdir -p '/tmp/aaaaxy/assets/demos/'",
"ln -s '${pkgs.aaaaxy.testing_infra}/assets/demos/benchmark.dem' '/tmp/aaaaxy/assets/demos/'",
"""
'${pkgs.xvfb-run}/bin/xvfb-run' \
'${pkgs.aaaaxy.testing_infra}/scripts/regression-test-demo.sh' \
'aaaaxy' 'on track for Any%, All Paths and No Teleports' \
'${pkgs.aaaaxy}/bin/aaaaxy' '/tmp/aaaaxy/assets/demos/benchmark.dem'

View file

@ -297,6 +297,7 @@ in {
haste-server = handleTest ./haste-server.nix {};
haproxy = handleTest ./haproxy.nix {};
hardened = handleTest ./hardened.nix {};
harmonia = runTest ./harmonia.nix;
headscale = handleTest ./headscale.nix {};
healthchecks = handleTest ./web-apps/healthchecks.nix {};
hbase2 = handleTest ./hbase.nix { package=pkgs.hbase2; };

35
nixos/tests/harmonia.nix Normal file
View file

@ -0,0 +1,35 @@
{ pkgs, lib, ... }:
{
name = "harmonia";
nodes = {
harmonia = {
services.harmonia = {
enable = true;
signKeyPath = pkgs.writeText "cache-key" "cache.example.com-1:9FhO0w+7HjZrhvmzT1VlAZw4OSAlFGTgC24Seg3tmPl4gZBdwZClzTTHr9cVzJpwsRSYLTu7hEAQe3ljy92CWg==";
};
networking.firewall.allowedTCPPorts = [ 5000 ];
system.extraDependencies = [ pkgs.emptyFile ];
};
client01 = {
nix.settings = {
substituters = lib.mkForce [ "http://harmonia:5000" ];
trusted-public-keys = lib.mkForce [ "cache.example.com-1:eIGQXcGQpc00x6/XFcyacLEUmC07u4RAEHt5Y8vdglo=" ];
};
};
};
testScript = { nodes, ... }: ''
start_all()
harmonia.wait_for_unit("harmonia.service")
client01.wait_until_succeeds("curl -f http://harmonia:5000/nix-cache-info")
client01.succeed("curl -f http://harmonia:5000/version | grep '${nodes.harmonia.services.harmonia.package.version}' >&2")
client01.succeed("cat /etc/nix/nix.conf >&2")
client01.succeed("nix-store --realise ${pkgs.emptyFile} --store /root/other-store")
'';
}

View file

@ -10,7 +10,7 @@ with pkgs.lib;
let
# The configuration to install.
makeConfig = { bootLoader, grubVersion, grubDevice, grubIdentifier, grubUseEfi
makeConfig = { bootLoader, grubDevice, grubIdentifier, grubUseEfi
, extraConfig, forceGrubReinstallCount ? 0
}:
pkgs.writeText "configuration.nix" ''
@ -29,11 +29,6 @@ let
${optionalString systemdStage1 "boot.initrd.systemd.enable = true;"}
${optionalString (bootLoader == "grub") ''
boot.loader.grub.version = ${toString grubVersion};
${optionalString (grubVersion == 1) ''
boot.loader.grub.splashImage = null;
''}
boot.loader.grub.extraConfig = "serial; terminal_output serial";
${if grubUseEfi then ''
boot.loader.grub.device = "nodev";
@ -70,11 +65,11 @@ let
# disk, and then reboot from the hard disk. It's parameterized with
# a test script fragment `createPartitions', which must create
# partitions and filesystems.
testScriptFun = { bootLoader, createPartitions, grubVersion, grubDevice, grubUseEfi
testScriptFun = { bootLoader, createPartitions, grubDevice, grubUseEfi
, grubIdentifier, preBootCommands, postBootCommands, extraConfig
, testSpecialisationConfig
}:
let iface = if grubVersion == 1 then "ide" else "virtio";
let iface = "virtio";
isEfi = bootLoader == "systemd-boot" || (bootLoader == "grub" && grubUseEfi);
bios = if pkgs.stdenv.isAarch64 then "QEMU_EFI.fd" else "OVMF.fd";
in if !isEfi && !pkgs.stdenv.hostPlatform.isx86 then ''
@ -122,7 +117,7 @@ let
machine.succeed("cat /mnt/etc/nixos/hardware-configuration.nix >&2")
machine.copy_from_host(
"${ makeConfig {
inherit bootLoader grubVersion grubDevice grubIdentifier
inherit bootLoader grubDevice grubIdentifier
grubUseEfi extraConfig;
}
}",
@ -193,7 +188,7 @@ let
# doesn't know about the host-guest sharing mechanism.
machine.copy_from_host_via_shell(
"${ makeConfig {
inherit bootLoader grubVersion grubDevice grubIdentifier
inherit bootLoader grubDevice grubIdentifier
grubUseEfi extraConfig;
forceGrubReinstallCount = 1;
}
@ -222,7 +217,7 @@ let
# doesn't know about the host-guest sharing mechanism.
machine.copy_from_host_via_shell(
"${ makeConfig {
inherit bootLoader grubVersion grubDevice grubIdentifier
inherit bootLoader grubDevice grubIdentifier
grubUseEfi extraConfig;
forceGrubReinstallCount = 2;
}
@ -284,7 +279,7 @@ let
{ createPartitions, preBootCommands ? "", postBootCommands ? "", extraConfig ? ""
, extraInstallerConfig ? {}
, bootLoader ? "grub" # either "grub" or "systemd-boot"
, grubVersion ? 2, grubDevice ? "/dev/vda", grubIdentifier ? "uuid", grubUseEfi ? false
, grubDevice ? "/dev/vda", grubIdentifier ? "uuid", grubUseEfi ? false
, enableOCR ? false, meta ? {}
, testSpecialisationConfig ? false
}:
@ -316,11 +311,9 @@ let
# installer. This ensures the target disk (/dev/vda) is
# the same during and after installation.
virtualisation.emptyDiskImages = [ 512 ];
virtualisation.rootDevice =
if grubVersion == 1 then "/dev/disk/by-id/scsi-0QEMU_QEMU_HARDDISK_drive2" else "/dev/vdb";
virtualisation.rootDevice = "/dev/vdb";
virtualisation.bootLoaderDevice = "/dev/vda";
virtualisation.qemu.diskInterface =
if grubVersion == 1 then "scsi" else "virtio";
virtualisation.qemu.diskInterface = "virtio";
# We don't want to have any networking in the guest whatsoever.
# Also, if any vlans are enabled, the guest will reboot
@ -372,8 +365,7 @@ let
# curl's tarball, we see what it's trying to download
curl
]
++ optional (bootLoader == "grub" && grubVersion == 1) pkgs.grub
++ optionals (bootLoader == "grub" && grubVersion == 2) (let
++ optionals (bootLoader == "grub") (let
zfsSupport = lib.any (x: x == "zfs")
(extraInstallerConfig.boot.supportedFilesystems or []);
in [
@ -392,7 +384,7 @@ let
testScript = testScriptFun {
inherit bootLoader createPartitions preBootCommands postBootCommands
grubVersion grubDevice grubIdentifier grubUseEfi extraConfig
grubDevice grubIdentifier grubUseEfi extraConfig
testSpecialisationConfig;
};
};
@ -875,26 +867,6 @@ in {
'';
};
# Test a basic install using GRUB 1.
grub1 = makeInstallerTest "grub1" rec {
createPartitions = ''
machine.succeed(
"flock ${grubDevice} parted --script ${grubDevice} -- mklabel msdos"
+ " mkpart primary linux-swap 1M 1024M"
+ " mkpart primary ext2 1024M -1s",
"udevadm settle",
"mkswap ${grubDevice}-part1 -L swap",
"swapon -L swap",
"mkfs.ext3 -L nixos ${grubDevice}-part2",
"mount LABEL=nixos /mnt",
"mkdir -p /mnt/tmp",
)
'';
grubVersion = 1;
# /dev/sda is not stable, even when the SCSI disk number is.
grubDevice = "/dev/disk/by-id/scsi-0QEMU_QEMU_HARDDISK_drive1";
};
# Test using labels to identify volumes in grub
simpleLabels = makeInstallerTest "simpleLabels" {
createPartitions = ''

View file

@ -6,17 +6,33 @@ let
ldapRootPassword = "foobar";
testUser = "alice";
in import ./make-test-python.nix ({pkgs, ...}: {
testPassword = "foobar";
testNewPassword = "barfoo";
in
import ./make-test-python.nix ({ pkgs, ... }: {
name = "sssd-ldap";
meta = with pkgs.lib.maintainers; {
maintainers = [ bbigras ];
maintainers = [ bbigras s1341 ];
};
nodes.machine = { pkgs, ... }: {
security.pam.services.systemd-user.makeHomeDir = true;
environment.etc."cert.pem".text = builtins.readFile ./common/acme/server/acme.test.cert.pem;
environment.etc."key.pem".text = builtins.readFile ./common/acme/server/acme.test.key.pem;
services.openldap = {
enable = true;
urlList = [ "ldap:///" "ldaps:///" ];
settings = {
attrs = {
olcTLSCACertificateFile = "/etc/cert.pem";
olcTLSCertificateFile = "/etc/cert.pem";
olcTLSCertificateKeyFile = "/etc/key.pem";
olcTLSCipherSuite = "HIGH:MEDIUM:+3DES:+RC4:+aNULL";
olcTLSCRLCheck = "none";
olcTLSVerifyClient = "never";
olcTLSProtocolMin = "3.1";
};
children = {
"cn=schema".includes = [
"${pkgs.openldap}/etc/schema/core.ldif"
@ -32,6 +48,23 @@ in import ./make-test-python.nix ({pkgs, ...}: {
olcSuffix = dbSuffix;
olcRootDN = "cn=${ldapRootUser},${dbSuffix}";
olcRootPW = ldapRootPassword;
olcAccess = [
/*
custom access rules for userPassword attributes
*/
''
{0}to attrs=userPassword
by self write
by anonymous auth
by * none''
/*
allow read on anything else
*/
''
{1}to *
by * read''
];
};
};
};
@ -55,7 +88,7 @@ in import ./make-test-python.nix ({pkgs, ...}: {
dn: uid=${testUser},ou=accounts,ou=posix,${dbSuffix}
objectClass: person
objectClass: posixAccount
# userPassword: somePasswordHash
userPassword: ${testPassword}
homeDirectory: /home/${testUser}
uidNumber: 1234
gidNumber: 1234
@ -78,7 +111,9 @@ in import ./make-test-python.nix ({pkgs, ...}: {
[domain/${dbDomain}]
auth_provider = ldap
id_provider = ldap
ldap_uri = ldap://127.0.0.1:389
ldap_uri = ldaps://127.0.0.1:636
ldap_tls_reqcert = allow
ldap_tls_cacert = /etc/cert.pem
ldap_search_base = ${dbSuffix}
ldap_default_bind_dn = cn=${ldapRootUser},${dbSuffix}
ldap_default_authtok_type = password
@ -97,5 +132,42 @@ in import ./make-test-python.nix ({pkgs, ...}: {
else:
machine.wait_for_console_text("Backend is online")
machine.succeed("getent passwd ${testUser}")
with subtest("Log in as ${testUser}"):
machine.wait_until_tty_matches("1", "login: ")
machine.send_chars("${testUser}\n")
machine.wait_until_tty_matches("1", "login: ${testUser}")
machine.wait_until_succeeds("pgrep login")
machine.wait_until_tty_matches("1", "Password: ")
machine.send_chars("${testPassword}\n")
machine.wait_until_succeeds("pgrep -u ${testUser} bash")
machine.send_chars("touch done\n")
machine.wait_for_file("/home/${testUser}/done")
with subtest("Change ${testUser}'s password"):
machine.send_chars("passwd\n")
machine.wait_until_tty_matches("1", "Current Password: ")
machine.send_chars("${testPassword}\n")
machine.wait_until_tty_matches("1", "New Password: ")
machine.send_chars("${testNewPassword}\n")
machine.wait_until_tty_matches("1", "Reenter new Password: ")
machine.send_chars("${testNewPassword}\n")
machine.wait_until_tty_matches("1", "passwd: password updated successfully")
with subtest("Log in as ${testUser} with new password in virtual console 2"):
machine.send_key("alt-f2")
machine.wait_until_succeeds("[ $(fgconsole) = 2 ]")
machine.wait_for_unit("getty@tty2.service")
machine.wait_until_succeeds("pgrep -f 'agetty.*tty2'")
machine.wait_until_tty_matches("2", "login: ")
machine.send_chars("${testUser}\n")
machine.wait_until_tty_matches("2", "login: ${testUser}")
machine.wait_until_succeeds("pgrep login")
machine.wait_until_tty_matches("2", "Password: ")
machine.send_chars("${testNewPassword}\n")
machine.wait_until_succeeds("pgrep -u ${testUser} bash")
machine.send_chars("touch done2\n")
machine.wait_for_file("/home/${testUser}/done2")
'';
})

View file

@ -2,7 +2,7 @@
let
pname = "joplin-desktop";
version = "2.10.4";
version = "2.10.18";
name = "${pname}-${version}";
inherit (stdenv.hostPlatform) system;
@ -16,8 +16,8 @@ let
src = fetchurl {
url = "https://github.com/laurent22/joplin/releases/download/v${version}/Joplin-${version}.${suffix}";
sha256 = {
x86_64-linux = "sha256-KEEPPtWxaY6+Nu/CE+AVAnaVZ30zmASWiIYaJt4a+3E=";
x86_64-darwin = "sha256-8Rkj1pV6tJygznbfELnAhzhh7ImnTm9dxCxCjYlWdnU=";
x86_64-linux = "sha256-oo3li8w1uem9lyFqwnrZ7Fl1R7Hrd8W+PHcIiaL2/+U=";
x86_64-darwin = "sha256-xYNp6WW8uPBrfuUgE5LI+1PuQK+vTA11eOtkz2ogpk0=";
}.${system} or throwSystem;
};

View file

@ -12,7 +12,7 @@
let
inherit (stdenv.hostPlatform) system;
pname = "obsidian";
version = "1.2.7";
version = "1.2.8";
appname = "Obsidian";
meta = with lib; {
description = "A powerful knowledge base that works on top of a local folder of plain text Markdown files";
@ -25,7 +25,7 @@ let
filename = if stdenv.isDarwin then "Obsidian-${version}-universal.dmg" else "obsidian-${version}.tar.gz";
src = fetchurl {
url = "https://github.com/obsidianmd/obsidian-releases/releases/download/v${version}/${filename}";
sha256 = if stdenv.isDarwin then "sha256-E+1B+KgdvOuDyJP4W5tnkDe8sC4NdplRqY24Yu/DlEA=" else "sha256-TDgi0jwNRL0zXJSIBap0Q8WX29ab2HhY0ylb/sxgapE=";
sha256 = if stdenv.isDarwin then "sha256-c01Oc20henVRTNFAuiRH5xkxFH8k0Cfd4Z+0t8iUPEg=" else "sha256-KG73QaDY5njFzGhjWtjFNucZRcLtRGTrIPgG0sdonQw=";
};
icon = fetchurl {

View file

@ -0,0 +1,58 @@
{ lib
, rustPlatform
, fetchFromGitHub
, pkg-config
, bzip2
, oniguruma
, openssl
, xz
, zstd
, stdenv
, darwin
}:
rustPlatform.buildRustPackage rec {
pname = "oranda";
version = "0.0.3";
src = fetchFromGitHub {
owner = "axodotdev";
repo = "oranda";
rev = "v${version}";
hash = "sha256-MT0uwLDrofCFyyYiUOogF2kNs6EPS1qxPz0gdK+Tkkg=";
};
cargoHash = "sha256-dAnZc1VvOubfn7mnpttaB6FotN3Xc+t9Qn0n5uzv1Qg=";
nativeBuildInputs = [
pkg-config
];
buildInputs = [
bzip2
oniguruma
openssl
xz
zstd
] ++ lib.optionals stdenv.isDarwin [
darwin.apple_sdk.frameworks.Security
];
# requires internet access
checkFlags = [
"--skip=build"
];
env = {
RUSTONIG_SYSTEM_LIBONIG = true;
ZSTD_SYS_USE_PKG_CONFIG = true;
};
meta = with lib; {
description = "Generate beautiful landing pages for your developer tools";
homepage = "https://github.com/axodotdev/oranda";
changelog = "https://github.com/axodotdev/oranda/blob/${src.rev}/CHANGELOG.md";
license = with licenses; [ asl20 mit ];
maintainers = with maintainers; [ figsoda ];
};
}

View file

@ -0,0 +1,27 @@
{ lib, buildNpmPackage, fetchFromGitHub }:
buildNpmPackage rec {
pname = "osmtogeojson";
version = "3.0.0-beta.5";
src = fetchFromGitHub {
owner = "tyrasd";
repo = pname;
rev = version;
hash = "sha256-T6d/KQQGoXHgV0iNhOms8d9zfjYMfnBNwPLShrEkHG4=";
};
postPatch = ''
cp ${./package-lock.json} ./package-lock.json
'';
npmDepsHash = "sha256-stAVuyjuRQthQ3jQdekmZYjeau9l0GzEEMkV1q5fT2k=";
dontNpmBuild = true;
meta = with lib; {
description = "Converts OSM data to GeoJSON";
homepage = "https://tyrasd.github.io/osmtogeojson/";
maintainers = with maintainers; [ thibautmarty ];
license = licenses.mit;
};
}

File diff suppressed because it is too large Load diff

View file

@ -33,7 +33,7 @@ stdenv.mkDerivation rec {
meta = {
description = "Yet another telephony engine";
homepage = "http://yate.null.ro/";
homepage = "http://yate.ro/";
# Yate's license is GPL with an exception for linking with
# OpenH323 and PWlib (licensed under MPL).
license = lib.licenses.gpl2Only;

View file

@ -1,8 +1,8 @@
{
"stable": {
"version": "113.0.5672.63",
"sha256": "07pf28yy5c4xw1xkycgzq53zbj14zvhh00sv601nggisq4fw3kkn",
"sha256bin64": "08jvhvgh4hbx7q98m6ax9snd9h2dbw8sp5a73273m126sv7409l2",
"version": "113.0.5672.92",
"sha256": "199vi4ay9yrvi95r0ccfih1i7wnnqfh5vkqbr35mpmr4r19hnlm4",
"sha256bin64": "0xx1c4wy0px2sndllkzbfgmjihfysxcxdpxk0zmy5yranfqbxvdv",
"deps": {
"gn": {
"version": "2023-03-18",

View file

@ -0,0 +1,35 @@
{ lib
, buildGoModule
, fetchFromGitHub
}:
buildGoModule rec {
pname = "zarf";
version = "0.26.2";
src = fetchFromGitHub {
owner = "defenseunicorns";
repo = "zarf";
rev = "v${version}";
hash = "sha256-45ZGHw/u0IkDJSlNaNg9At4rvBU9+CVix8Bp58hE6gk=";
};
vendorHash = "sha256-5k2NnQ18bL0v7YHTvw2nz5H5n5DQOmozkUhyf97eKl8=";
proxyVendor = true;
preBuild = ''
mkdir -p build/ui
touch build/ui/index.html
'';
doCheck = false;
ldflags = [ "-s" "-w" "-X" "github.com/defenseunicorns/zarf/src/config.CLIVersion=${src.rev}" "-X" "k8s.io/component-base/version.gitVersion=v0.0.0+zarf${src.rev}" "-X" "k8s.io/component-base/version.gitCommit=${src.rev}" "-X" "k8s.io/component-base/version.buildDate=1970-01-01T00:00:00Z" ];
meta = with lib; {
description = "DevSecOps for Air Gap & Limited-Connection Systems. https://zarf.dev";
homepage = "https://github.com/defenseunicorns/zarf.git";
license = licenses.asl20;
maintainers = with maintainers; [ ragingpastry ];
};
}

View file

@ -1,8 +1,8 @@
{ callPackage }: builtins.mapAttrs (pname: attrs: callPackage ./generic.nix (attrs // { inherit pname; })) {
signal-desktop = {
dir = "Signal";
version = "6.16.0";
hash = "sha256-q7z7TS16RORPbEMJBEmF3m2q4IdD3dM1xqv1DfgM9Zs=";
version = "6.17.0";
hash = "sha256-CSyFkO06yeExZAQBKQNGIwc3KEFcpibm5UM3ij2k+G8=";
};
signal-desktop-beta = {
dir = "Signal Beta";

View file

@ -20,11 +20,11 @@
stdenv.mkDerivation rec {
pname = "insync";
version = "3.3.5.40925";
version = "3.8.5.50499";
src = fetchurl {
url = "http://s.insynchq.com/builds/${pname}_${version}-focal_amd64.deb";
sha256 = "sha256-lYlG/8d7teX98F5eDxm4EdBfFs7Sz3Td4kKLC6KZqnQ=";
url = "https://cdn.insynchq.com/builds/linux/${pname}_${version}-focal_amd64.deb";
hash = "sha256-CtDwU0Cey12kDjEX+Y9x7pfKNARfKDopWsDVRaA1Zts=";
};
postPatch = ''
@ -78,7 +78,5 @@ stdenv.mkDerivation rec {
There is a 15-day free trial, and it is a paid application after that.
'';
# download URL removed
broken = true;
};
}

View file

@ -6,11 +6,11 @@
stdenv.mkDerivation rec {
pname = "subread";
version = "2.0.5";
version = "2.0.6";
src = fetchurl {
url = "mirror://sourceforge/subread/subread-${version}/subread-${version}-source.tar.gz";
sha256 = "sha256-frZzd+IV4IxfPK44PWOgV9yPRPoUB3smPbxoDchbaSc=";
sha256 = "sha256-8P3aa5hjTSlGAolIwiAlPhCg8nx/pfJJE7ZbOsbLsEU=";
};
buildInputs = [

View file

@ -68,10 +68,23 @@ mkDerivation (common "tamarin-prover" src // {
isExecutable = true;
patches = [
# Backport of https://github.com/tamarin-prover/tamarin-prover/pull/536 to 1.6.1
# Backport unreleased patch allowing maude 3.2.1
(fetchpatch {
url = "https://github.com/tamarin-prover/tamarin-prover/commit/95fbace0c5cbea57b5f320f6bb4d0387a4beab8d.patch";
sha256 = "sha256-Wjf7C208kcskEN1op//HQZnhoZopKQS42JvE8kV5NhI=";
name = "tamarin-prover-allow-maude-3.2.1.patch";
url = "https://github.com/tamarin-prover/tamarin-prover/commit/bfcf56909479e154a203f0eeefa767f4d91b600d.patch";
sha256 = "1zjqzyxwnfp7z3h3li8jrxn9732dx6lyq9q3w2dsphmxbzrs64dg";
})
# Backport unreleased patch allowing maude 3.2.2
(fetchpatch {
name = "tamarin-prover-allow-maude-3.2.2.patch";
url = "https://github.com/tamarin-prover/tamarin-prover/commit/df1aa9fc4fcc72b6cf0bed0f71844efe3d8ad238.patch";
sha256 = "1bkwvyyz5d660jjh08z8wq9c3l40s0rxd2nsbn20xnl2nynyvqpy";
})
# Backport proposed patch allowing maude 3.3 and 3.3.1
(fetchpatch {
name = "tamarin-prover-allow-maude-3.3.patch";
url = "https://github.com/tamarin-prover/tamarin-prover/pull/544/commits/d0313b1a1bac7c92130773f7ccdd890f8aec286d.patch";
sha256 = "1jhlz8vp9a3aahyhj24yjcv4l1389y9kg878yfnq0rkkgvk0m681";
})
];

View file

@ -101,6 +101,7 @@ stdenv.mkDerivation rec {
homepage = "https://labplot.kde.org";
license = with licenses; [ asl20 bsd3 cc-by-30 cc0 gpl2Only gpl2Plus gpl3Only gpl3Plus lgpl3Plus mit ];
maintainers = with maintainers; [ hqurve ];
mainProgram = "labplot2";
platforms = platforms.unix;
};
}

View file

@ -26,14 +26,14 @@
stdenv.mkDerivation rec {
pname = "boinc";
version = "7.22.0";
version = "7.22.1";
src = fetchFromGitHub {
name = "${pname}-${version}-src";
owner = "BOINC";
repo = "boinc";
rev = "client_release/${lib.versions.majorMinor version}/${version}";
hash = "sha256-AVWgFsxeuHADEat83XQLLeQkzw3kaUdPL0rp8b6Rxyk=";
hash = "sha256-DYbcWBJEjSJWRXNdumDhhybKSs8ofyREWqj2ghrvmBE=";
};
nativeBuildInputs = [ libtool automake autoconf m4 pkg-config ];

View file

@ -2,13 +2,13 @@
buildGoModule rec {
pname = "gh";
version = "2.28.0";
version = "2.29.0";
src = fetchFromGitHub {
owner = "cli";
repo = "cli";
rev = "v${version}";
hash = "sha256-FceyGNQwA6SFg97FtX4ATlevpLzG/FPVSoKBznWIfC8=";
hash = "sha256-OVZTHgzKGpz+F1hHRmbCgjMJSFFFjL9WQBqtx7vZIHc=";
};
vendorHash = "sha256-iTPdOolvWINUSSYiPZAwn5ZF44x/x1tIWnKUHAn8ITA=";

View file

@ -11,7 +11,7 @@ python3Packages.buildPythonApplication rec {
hash = "sha256-VAn4zXypOugPIVyXQ/8Yt0rCDM7hVdIY+jpmoTHqssU=";
};
buildInputs = [ qt5.qtwayland ];
buildInputs = lib.optionals stdenv.isLinux [ qt5.qtwayland ];
propagatedBuildInputs = with python3Packages; [ git pyqt5 qtpy send2trash ];
nativeBuildInputs = [ gettext qt5.wrapQtAppsHook ];
nativeCheckInputs = with python3Packages; [ git pytestCheckHook ];

View file

@ -1,5 +1,5 @@
{ stdenv, lib, fetchurl, fetchpatch, fetchFromGitLab, bundlerEnv
, ruby_2_7, tzdata, git, nettools, nixosTests, nodejs, openssl
, ruby_3_0, tzdata, git, nettools, nixosTests, nodejs, openssl
, gitlabEnterprise ? false, callPackage, yarn
, fixup_yarn_lock, replace, file, cacert, fetchYarnDeps, makeWrapper, pkg-config
}:
@ -17,8 +17,7 @@ let
rubyEnv = bundlerEnv rec {
name = "gitlab-env-${version}";
# GitLab doesn't support Ruby 3 https://gitlab.com/groups/gitlab-org/-/epics/5149
ruby = ruby_2_7;
ruby = ruby_3_0;
gemdir = ./rubyEnv;
gemset =
let x = import (gemdir + "/gemset.nix") src;

View file

@ -1,6 +1,6 @@
{
"commit": "835ef6db789d6459876c083419d61e068de15dd3",
"url": "https://github.com/commercialhaskell/all-cabal-hashes/archive/835ef6db789d6459876c083419d61e068de15dd3.tar.gz",
"sha256": "11506nwsd15b3jhdydr54j0jk5pzj3qhs92c167xv0f0czw5pj8a",
"msg": "Update from Hackage at 2023-04-22T18:19:29Z"
"commit": "54b1e8a3a0447c7b969fd97816c4c0821ba9fec1",
"url": "https://github.com/commercialhaskell/all-cabal-hashes/archive/54b1e8a3a0447c7b969fd97816c4c0821ba9fec1.tar.gz",
"sha256": "1lryj166qysqkmdy9ll15dvg9f797zmy8brzpbavxb149pa6b0j9",
"msg": "Update from Hackage at 2023-04-29T17:51:14Z"
}

View file

@ -1,5 +1,5 @@
import ./common-hadrian.nix {
version = "9.7.20230406";
rev = "04b80850c535fa8c11f435711577296a99499105";
sha256 = "190fpgg8sbcfp2l62vaqhk3wddkbz8vf5ivd7hw5gkcyyn5px3q9";
version = "9.7.20230505";
rev = "983ce55815f2dd57f84ee86eee97febf7d80b470";
sha256 = "sha256-U+LZIe9WbF/DF5Zn8w8wkRf4JJHxgdY2ahM517bwRo4=";
}

View file

@ -1,11 +1,11 @@
{ callPackage }:
callPackage ./binary.nix {
version = "1.25.0";
version = "1.30.0";
hashes = {
# Get these from `nix-prefetch-url https://github.com/ldc-developers/ldc/releases/download/v1.19.0/ldc2-1.19.0-osx-x86_64.tar.xz` etc..
osx-x86_64 = "sha256-6iKnbS+oalLKmyS8qYD/wS21b7+O+VgsWG2iT4PrWPU=";
linux-x86_64 = "sha256-sfg47RdlsIpryc3iZvE17OtLweh3Zw6DeuNJYgpuH+o=";
linux-aarch64 = "sha256-UDZ43x4flSo+SfsPeE8juZO2Wtk2ZzwySk0ADHnvJBI=";
osx-arm64 = "sha256-O/x0vy0wwQFaDc4uWSeMhx+chJKqbQb6e5QNYf+7DCw=";
# Get these from `nix store prefetch-file https://github.com/ldc-developers/ldc/releases/download/v1.19.0/ldc2-1.19.0-osx-x86_64.tar.xz` etc..
osx-x86_64 = "sha256-AAWZvxuZC82xvrW6fpYm783TY+H8k3DvqE94ZF1yjmk=";
linux-x86_64 = "sha256-V4TUzEfQhFrwiX07dHOgjdAoGkzausCkhnQIQNAU/eE=";
linux-aarch64 = "sha256-kTeglub75iv/jWWNPCn15aCGAbmck0RQl6L7bFOUu7Y=";
osx-arm64 = "sha256-Nb/owBdIeroB9jLMDvwjo8bvsTC9vFyJPLMTOMsSAd4=";
};
}

View file

@ -1,4 +1,4 @@
import ./generic.nix {
version = "1.30.0";
sha256 = "sha256-/bs3bwgkLZF5IqaiKnc5gCF/r6MQBG/F1kWUkK8j2s0=";
version = "1.31.0";
sha256 = "sha256-8cjs6eHjWAbDRBvyT75mbN3Y7vN1WSwZzY/uRwHNVFg=";
}

View file

@ -1,5 +1,5 @@
{ version, sha256 }:
{ lib, stdenv, fetchurl, cmake, ninja, llvm_11, curl, tzdata
{ lib, stdenv, fetchurl, cmake, ninja, llvm_14, curl, tzdata
, libconfig, lit, gdb, unzip, darwin, bash
, callPackage, makeWrapper, runCommand, targetPackages
, ldcBootstrap ? callPackage ./bootstrap.nix { }
@ -30,12 +30,12 @@ stdenv.mkDerivation rec {
patchShebangs .
''
+ ''
rm ldc-${version}-src/tests/d2/dmd-testsuite/fail_compilation/mixin_gc.d
rm ldc-${version}-src/tests/d2/dmd-testsuite/runnable/xtest46_gc.d
rm ldc-${version}-src/tests/d2/dmd-testsuite/runnable/testptrref_gc.d
rm ldc-${version}-src/tests/dmd/fail_compilation/mixin_gc.d
rm ldc-${version}-src/tests/dmd/runnable/xtest46_gc.d
rm ldc-${version}-src/tests/dmd/runnable/testptrref_gc.d
# test depends on current year
rm ldc-${version}-src/tests/d2/dmd-testsuite/compilable/ddocYear.d
rm ldc-${version}-src/tests/dmd/compilable/ddocYear.d
''
+ lib.optionalString stdenv.hostPlatform.isDarwin ''
# https://github.com/NixOS/nixpkgs/issues/34817
@ -44,7 +44,7 @@ stdenv.mkDerivation rec {
postPatch = ''
# Setting SHELL=$SHELL when dmd testsuite is run doesn't work on Linux somehow
substituteInPlace tests/d2/dmd-testsuite/Makefile --replace "SHELL=/bin/bash" "SHELL=${bash}/bin/bash"
substituteInPlace tests/dmd/Makefile --replace "SHELL=/bin/bash" "SHELL=${bash}/bin/bash"
''
+ lib.optionalString stdenv.hostPlatform.isLinux ''
substituteInPlace runtime/phobos/std/socket.d --replace "assert(ih.addrList[0] == 0x7F_00_00_01);" ""
@ -54,7 +54,7 @@ stdenv.mkDerivation rec {
'';
nativeBuildInputs = [
cmake ldcBootstrap lit lit.python llvm_11.dev makeWrapper ninja unzip
cmake ldcBootstrap lit lit.python llvm_14.dev makeWrapper ninja unzip
]
++ lib.optionals stdenv.hostPlatform.isDarwin [
darwin.apple_sdk.frameworks.Foundation

View file

@ -71,13 +71,13 @@ let
in stdenv.mkDerivation rec {
pname = "yosys";
version = "0.28";
version = "0.29";
src = fetchFromGitHub {
owner = "YosysHQ";
repo = "yosys";
rev = "${pname}-${version}";
hash = "sha256-z550IAyo4Rbq9/S2Vwgec3sy7KH2n95PH0k8vo/pBSE=";
hash = "sha256-qsuKXYuKsMAALIy1SjxhEhZIMO8B4MF2vmVbwqgzLyM=";
};
enableParallelBuilding = true;

View file

@ -8,10 +8,10 @@
}:
mkDerivation {
pname = "cabal2nix";
version = "unstable-2023-04-11";
version = "unstable-2023-05-05";
src = fetchzip {
url = "https://github.com/NixOS/cabal2nix/archive/010ff5c3b75d976d0f3a25b7caa0bc5bf2fdae9f.tar.gz";
sha256 = "1n38kmavdv6s1czqbiq6f6nagpv27s8xg0g0rvyh4l0x2my8wj4y";
url = "https://github.com/NixOS/cabal2nix/archive/078350047d358bb450d634d775493aba89b21212.tar.gz";
sha256 = "0rsdn2zyw0zr6pi3dg6cm3i310alppigdsv20iqpx0dzykkicywj";
};
postUnpack = "sourceRoot+=/cabal2nix; echo source root reset to $sourceRoot";
isLibrary = true;

View file

@ -61,15 +61,15 @@ self: super: {
# not solvable short of recompiling GHC. Instead of adding
# allowInconsistentDependencies for all reverse dependencies of hspec-core,
# just upgrade to an hspec version without the offending dependency.
hspec-core = cself.hspec-core_2_11_0;
hspec-discover = cself.hspec-discover_2_11_0;
hspec = cself.hspec_2_11_0;
hspec-core = cself.hspec-core_2_11_0_1;
hspec-discover = cself.hspec-discover_2_11_0_1;
hspec = cself.hspec_2_11_0_1;
# hspec-discover and hspec-core depend on hspec-meta for testing which
# we need to avoid since it depends on ghc as well. Since hspec*_2_10*
# are overridden to take the versioned attributes as inputs, we need
# to make sure to override the versioned attribute with this fix.
hspec-discover_2_11_0 = dontCheck csuper.hspec-discover_2_11_0;
hspec-discover_2_11_0_1 = dontCheck csuper.hspec-discover_2_11_0_1;
# Prevent dependency on doctest which causes an inconsistent dependency
# due to depending on ghc which depends on directory etc.
@ -85,7 +85,7 @@ self: super: {
(super.guardian.overrideScope (self: super:
cabalInstallOverlay self super // {
# Needs at least path-io 1.8.0 due to canonicalizePath changes
path-io = self.path-io_1_8_0;
path-io = self.path-io_1_8_1;
}
))
[
@ -193,6 +193,10 @@ self: super: {
# For -f-auto see cabal.project in haskell-language-server.
ghc-lib-parser-ex = addBuildDepend self.ghc-lib-parser (disableCabalFlag "auto" super.ghc-lib-parser-ex);
# Test ldap server test/ldap.js is missing from sdist
# https://github.com/supki/ldap-client/issues/18
ldap-client-og = dontCheck super.ldap-client-og;
# For -fghc-lib see cabal.project in haskell-language-server.
stylish-haskell = if lib.versionAtLeast super.ghc.version "9.2"
then enableCabalFlag "ghc-lib"
@ -205,6 +209,9 @@ self: super: {
### END HASKELL-LANGUAGE-SERVER SECTION ###
###########################################
# Remove when Stackage LTS advances to this version, should be LTS-20.20
utility-ht = doDistribute self.utility-ht_0_0_17;
vector = overrideCabal (old: {
# Too strict bounds on doctest which isn't used, but is part of the configuration
jailbreak = true;
@ -409,6 +416,22 @@ self: super: {
# 2022-02-14: Strict upper bound: https://github.com/psibi/streamly-bytestring/issues/30
streamly-bytestring = dontCheck (doJailbreak super.streamly-bytestring);
# The package requires streamly == 0.9.*.
# (We can remove this once the assert starts failing.)
streamly-archive = super.streamly-archive.override {
streamly =
assert (builtins.compareVersions pkgs.haskellPackages.streamly.version "0.9.0" < 0);
pkgs.haskellPackages.streamly_0_9_0;
};
# The package requires streamly == 0.9.*.
# (We can remove this once the assert starts failing.)
streamly-lmdb = super.streamly-lmdb.override {
streamly =
assert (builtins.compareVersions pkgs.haskellPackages.streamly.version "0.9.0" < 0);
pkgs.haskellPackages.streamly_0_9_0;
};
# base bound
digit = doJailbreak super.digit;
@ -630,10 +653,6 @@ self: super: {
})
] (dontCheck super.snappy);
# 2023-04-22: omfort-fftw 0.0.0.1 contains fixes to the tests. We can drop
# this override as soon as stackage advances.
comfort-fftw = doDistribute super.comfort-fftw_0_0_0_1;
# https://github.com/vincenthz/hs-crypto-pubkey/issues/20
crypto-pubkey = dontCheck super.crypto-pubkey;
@ -1005,12 +1024,12 @@ self: super: {
testHaskellDepends = drv.testHaskellDepends or [] ++ [ self.hspec-meta_2_10_5 ];
testToolDepends = drv.testToolDepends or [] ++ [ pkgs.git ];
}) (super.sensei.override {
hspec = self.hspec_2_11_0;
hspec = self.hspec_2_11_0_1;
hspec-wai = self.hspec-wai.override {
hspec = self.hspec_2_11_0;
hspec = self.hspec_2_11_0_1;
};
hspec-contrib = self.hspec-contrib.override {
hspec-core = self.hspec-core_2_11_0;
hspec-core = self.hspec-core_2_11_0_1;
};
fsnotify = self.fsnotify_0_4_1_0;
});
@ -1604,6 +1623,7 @@ self: super: {
# Also, we need QuickCheck-2.14.x to build the test suite, which isn't easy in LTS-16.x.
# So let's not go there and just disable the tests altogether.
hspec-core = dontCheck super.hspec-core;
hspec-core_2_7_10 = doDistribute (dontCheck super.hspec-core_2_7_10);
# tests seem to require a different version of hspec-core
hspec-contrib = dontCheck super.hspec-contrib;
@ -1674,16 +1694,16 @@ self: super: {
servant-openapi3 = dontCheck super.servant-openapi3;
# Give hspec 2.10.* correct dependency versions without overrideScope
hspec_2_11_0 = doDistribute (super.hspec_2_11_0.override {
hspec-discover = self.hspec-discover_2_11_0;
hspec-core = self.hspec-core_2_11_0;
hspec_2_11_0_1 = doDistribute (super.hspec_2_11_0_1.override {
hspec-discover = self.hspec-discover_2_11_0_1;
hspec-core = self.hspec-core_2_11_0_1;
});
hspec-discover_2_11_0 = doDistribute (super.hspec-discover_2_11_0.override {
hspec-discover_2_11_0_1 = doDistribute (super.hspec-discover_2_11_0_1.override {
hspec-meta = self.hspec-meta_2_10_5;
});
# Need to disable tests to prevent an infinite recursion if hspec-core_2_11_0
# Need to disable tests to prevent an infinite recursion if hspec-core_2_11_0_1
# is overlayed to hspec-core.
hspec-core_2_11_0 = doDistribute (dontCheck (super.hspec-core_2_11_0.override {
hspec-core_2_11_0_1 = doDistribute (dontCheck (super.hspec-core_2_11_0_1.override {
hspec-meta = self.hspec-meta_2_10_5;
}));
@ -2632,4 +2652,13 @@ self: super: {
# libfuse3 fails to mount fuse file systems within the build environment
libfuse3 = dontCheck super.libfuse3;
# Tests fail due to the newly-build fourmolu not being in PATH
# https://github.com/fourmolu/fourmolu/issues/231
fourmolu_0_12_0_0 = dontCheck (super.fourmolu_0_12_0_0.overrideScope (lself: lsuper: {
Cabal-syntax = lself.Cabal-syntax_3_10_1_0;
ghc-lib-parser = lself.ghc-lib-parser_9_6_1_20230312;
parsec = lself.parsec_3_1_16_1;
text = lself.text_2_0_2;
}));
} // import ./configuration-tensorflow.nix {inherit pkgs haskellLib;} self super

View file

@ -27,7 +27,7 @@ self: super:
# GHCJS does not ship with the same core packages as GHC.
# https://github.com/ghcjs/ghcjs/issues/676
stm = doJailbreak self.stm_2_5_1_0;
exceptions = dontCheck self.exceptions_0_10_5;
exceptions = dontCheck self.exceptions_0_10_7;
## OTHER PACKAGES
@ -108,4 +108,26 @@ self: super:
# Need hedgehog for tests, which fails to compile due to dep on concurrent-output
zenc = dontCheck super.zenc;
hspec = self.hspec_2_7_10;
hspec-core = self.hspec-core_2_7_10;
hspec-meta = self.hspec-meta_2_7_8;
hspec-discover = self.hspec-discover_2_7_10;
# ReferenceError: h$primop_ShrinkSmallMutableArrayOp_Char is not defined
unordered-containers = dontCheck super.unordered-containers;
# Without this revert, test suites using tasty fail with:
# ReferenceError: h$getMonotonicNSec is not defined
# https://github.com/UnkindPartition/tasty/pull/345#issuecomment-1538216407
tasty = appendPatch (pkgs.fetchpatch {
name = "tasty-ghcjs.patch";
url = "https://github.com/UnkindPartition/tasty/commit/e692065642fd09b82acccea610ad8f49edd207df.patch";
revert = true;
relative = "core";
hash = "sha256-ryABU2ywkVOEPC/jWv8humT3HaRpCwMYEk+Ux3hhi/M=";
}) super.tasty;
# Tests take unacceptably long.
vector = dontCheck super.vector;
}

View file

@ -1173,8 +1173,10 @@ broken-packages:
- directed-cubical
- direct-fastcgi
- direct-http
- directory-ospath-streaming # dependency missing in job https://hydra.nixos.org/build/219209527 at 2023-05-10
- direct-plugins
- direm
- disco # failure building library in job https://hydra.nixos.org/build/219207076 at 2023-05-10
- discordian-calendar
- discord-register
- discord-types
@ -1897,6 +1899,7 @@ broken-packages:
- Grempa
- greplicate
- gridfs
- grid-proto # failure building library in job https://hydra.nixos.org/build/219248049 at 2023-05-10
- grids
- grm
- GroteTrap
@ -5018,6 +5021,7 @@ broken-packages:
- sqlvalue-list
- srcinst
- srt-dhall
- srtree # dependency missing in job https://hydra.nixos.org/build/219208055 at 2023-05-10
- sscan
- ssh
- ssh-tunnel
@ -5106,11 +5110,9 @@ broken-packages:
- streaming-png
- streaming-postgresql-simple
- streaming-sort
- streamly-archive
- streamly-binary
- streamly-cassava
- streamly-examples
- streamly-lmdb
- streamly-lz4
- streamly-process
- stream-monad
@ -5584,6 +5586,7 @@ broken-packages:
- unamb-custom
- unbeliever
- unbounded-delays-units
- unbound-kind-generics # failure building library in job https://hydra.nixos.org/build/219201570 at 2023-05-10
- unboxed
- unboxed-containers
- unboxed-references
@ -5773,6 +5776,7 @@ broken-packages:
- wai-middleware-travisci
- wai-middleware-validation
- wai-predicates
- wai-problem-details # dependency missing in job https://hydra.nixos.org/build/219206235 at 2023-05-10
- wai-rate-limit-postgres
- wai-rate-limit-redis
- wai-request-spec

View file

@ -368,6 +368,9 @@ package-maintainers:
- taffybar
- arbtt
- lentil
shlok:
- streamly-archive
- streamly-lmdb
sorki:
- cayenne-lpp
- blockfrost-client

View file

@ -1,4 +1,4 @@
# Stackage LTS 20.18
# Stackage LTS 20.19
# This file is auto-generated by
# maintainers/scripts/haskell/update-stackage.sh
default-package-overrides:
@ -16,7 +16,7 @@ default-package-overrides:
- adjunctions ==4.4.2
- adler32 ==0.1.2.0
- advent-of-code-api ==0.2.8.4
- aern2-mp ==0.2.11.0
- aern2-mp ==0.2.15.0
- aern2-real ==0.2.11.0
- aeson ==2.0.3.0
- aeson-attoparsec ==0.0.0
@ -43,7 +43,7 @@ default-package-overrides:
- al ==0.1.4.2
- alarmclock ==0.7.0.6
- alerts ==0.1.2.0
- alex ==3.2.7.2
- alex ==3.2.7.3
- alex-meta ==0.3.0.13
- algebra ==4.3.1
- algebraic-graphs ==0.6.1
@ -81,7 +81,7 @@ default-package-overrides:
- app-settings ==0.2.0.12
- arbor-lru-cache ==0.1.1.1
- arbtt ==0.12.0.1
- arithmoi ==0.12.0.2
- arithmoi ==0.12.1.0
- array-memoize ==0.6.0
- arrow-extras ==0.1.0.1
- arrows ==0.4.4.2
@ -217,7 +217,7 @@ default-package-overrides:
- blaze-svg ==0.3.6.1
- blaze-textual ==0.2.3.1
- bloodhound ==0.21.0.0
- bm ==0.1.0.2
- bm ==0.1.1.0
- bmp ==1.2.6.3
- bnb-staking-csvs ==0.2.1.0
- BNFC ==2.9.4.1
@ -253,12 +253,12 @@ default-package-overrides:
- bugsnag-wai ==1.0.0.1
- bugsnag-yesod ==1.0.0.1
- bugzilla-redhat ==1.0.1
- burrito ==2.0.1.5
- burrito ==2.0.1.6
- butcher ==1.3.3.2
- bv ==0.5
- byteable ==0.1.1
- bytebuild ==0.3.12.0
- byte-count-reader ==0.10.1.9
- byte-count-reader ==0.10.1.10
- bytedump ==1.0
- bytehash ==0.1.0.0
- byte-order ==0.1.3.0
@ -380,7 +380,7 @@ default-package-overrides:
- combinatorial ==0.1.1
- comfort-array ==0.5.2.1
- comfort-array-shape ==0.0
- comfort-fftw ==0.0
- comfort-fftw ==0.0.0.1
- comfort-graph ==0.0.3.2
- commonmark ==0.2.2
- commonmark-extensions ==0.2.3.4
@ -447,8 +447,8 @@ default-package-overrides:
- cookie ==0.4.6
- copr-api ==0.1.0
- core-data ==0.3.9.1
- core-program ==0.6.5.1
- core-telemetry ==0.2.8.0
- core-program ==0.6.6.0
- core-telemetry ==0.2.9.1
- core-text ==0.3.8.1
- countable ==1.2
- country ==0.2.3
@ -486,7 +486,7 @@ default-package-overrides:
- crypt-sha512 ==0
- csp ==1.4.0
- css-text ==0.1.3.0
- c-struct ==0.1.1.2
- c-struct ==0.1.1.3
- csv ==0.1.2
- csv-conduit ==0.7.3.0
- ctrie ==0.2
@ -580,7 +580,7 @@ default-package-overrides:
- dhall ==1.41.2
- dhall-bash ==1.0.40
- dhall-json ==1.7.11
- dhall-yaml ==1.2.11
- dhall-yaml ==1.2.12
- di ==1.3
- diagrams ==1.4.0.1
- diagrams-builder ==0.8.0.5
@ -613,7 +613,7 @@ default-package-overrides:
- distributive ==0.6.2.1
- diversity ==0.8.1.0
- djinn-lib ==0.0.1.4
- dl-fedora ==0.9.4
- dl-fedora ==0.9.5
- dlist ==1.0
- dlist-instances ==0.1.1.1
- dlist-nonempty ==0.1.2
@ -658,7 +658,7 @@ default-package-overrides:
- dyre ==0.9.1
- eap ==0.9.0.2
- Earley ==0.13.0.1
- easy-file ==0.2.3
- easy-file ==0.2.4
- easy-logger ==0.1.0.7
- Ebnf2ps ==1.0.15
- echo ==0.1.4
@ -860,14 +860,14 @@ default-package-overrides:
- generic-data-surgery ==0.3.0.0
- generic-deriving ==1.14.3
- generic-functor ==1.1.0.0
- generic-lens ==2.2.1.0
- generic-lens ==2.2.2.0
- generic-lens-core ==2.2.1.0
- generic-monoid ==0.1.0.1
- generic-optics ==2.2.1.0
- GenericPretty ==1.2.2
- generic-random ==1.5.0.1
- generics-eot ==0.4.0.1
- generics-sop ==0.5.1.2
- generics-sop ==0.5.1.3
- generics-sop-lens ==0.2.0.1
- genvalidity ==1.1.0.0
- genvalidity-aeson ==1.0.0.1
@ -1073,7 +1073,7 @@ default-package-overrides:
- hedgehog-fakedata ==0.0.1.5
- hedgehog-fn ==1.0
- hedgehog-quickcheck ==0.1.1
- hedis ==0.15.1
- hedis ==0.15.2
- hedn ==0.3.0.4
- here ==1.2.13
- heredoc ==0.2.0.0
@ -1318,7 +1318,7 @@ default-package-overrides:
- inline-c-cpp ==0.5.0.0
- inliterate ==0.1.0
- input-parsers ==0.2.3.2
- insert-ordered-containers ==0.2.5.1
- insert-ordered-containers ==0.2.5.2
- inspection-testing ==0.4.6.1
- instance-control ==0.1.2.0
- integer-logarithms ==1.0.3.1
@ -1376,7 +1376,7 @@ default-package-overrides:
- js-flot ==0.8.3
- js-jquery ==3.3.1
- json ==0.10
- json-feed ==2.0.0.7
- json-feed ==2.0.0.8
- jsonifier ==0.2.1.2
- jsonpath ==0.3.0.0
- json-rpc ==1.0.4
@ -1409,7 +1409,7 @@ default-package-overrides:
- koji ==0.0.2
- l10n ==0.1.0.1
- labels ==0.3.3
- lackey ==2.0.0.5
- lackey ==2.0.0.6
- LambdaHack ==0.11.0.0
- lame ==0.2.0
- language-avro ==0.1.4.0
@ -1452,7 +1452,7 @@ default-package-overrides:
- lens-properties ==4.11.1
- lens-regex ==0.1.3
- lens-regex-pcre ==1.1.0.0
- lentil ==1.5.5.1
- lentil ==1.5.5.2
- LetsBeRational ==1.0.0.0
- leveldb-haskell ==0.6.5
- lexer-applicative ==2.1.0.2
@ -1471,7 +1471,7 @@ default-package-overrides:
- linear ==1.21.10
- linear-base ==0.3.1
- linear-generics ==0.2.1
- linebreak ==1.1.0.3
- linebreak ==1.1.0.4
- linenoise ==0.3.2
- linux-capabilities ==0.1.1.0
- linux-file-extents ==0.2.0.0
@ -1516,7 +1516,7 @@ default-package-overrides:
- lxd-client-config ==0.1.0.1
- lz4 ==0.2.3.1
- lz4-frame-conduit ==0.1.0.1
- lzma ==0.0.0.4
- lzma ==0.0.1.0
- lzma-clib ==5.2.2
- lzma-conduit ==1.2.3
- machines ==0.7.3
@ -1619,7 +1619,7 @@ default-package-overrides:
- monadlist ==0.0.2
- monadloc ==0.7.1
- monad-logger ==0.3.39
- monad-logger-aeson ==0.4.0.3
- monad-logger-aeson ==0.4.0.4
- monad-logger-json ==0.1.0.0
- monad-logger-logstash ==0.2.0.2
- monad-logger-prefix ==0.1.12
@ -1652,15 +1652,15 @@ default-package-overrides:
- mono-traversable-instances ==0.1.1.0
- mono-traversable-keys ==0.2.0
- more-containers ==0.2.2.2
- morpheus-graphql ==0.27.1
- morpheus-graphql-app ==0.27.1
- morpheus-graphql-client ==0.27.1
- morpheus-graphql-code-gen ==0.27.1
- morpheus-graphql-code-gen-utils ==0.27.1
- morpheus-graphql-core ==0.27.1
- morpheus-graphql-server ==0.27.1
- morpheus-graphql-subscriptions ==0.27.1
- morpheus-graphql-tests ==0.27.1
- morpheus-graphql ==0.27.2
- morpheus-graphql-app ==0.27.2
- morpheus-graphql-client ==0.27.2
- morpheus-graphql-code-gen ==0.27.2
- morpheus-graphql-code-gen-utils ==0.27.2
- morpheus-graphql-core ==0.27.2
- morpheus-graphql-server ==0.27.2
- morpheus-graphql-subscriptions ==0.27.2
- morpheus-graphql-tests ==0.27.2
- moss ==0.2.0.1
- mountpoints ==1.0.2
- mpi-hs ==0.7.2.0
@ -1780,7 +1780,7 @@ default-package-overrides:
- OneTuple ==0.3.1
- Only ==0.1
- oo-prototypes ==0.1.0.0
- opaleye ==0.9.6.1
- opaleye ==0.9.6.2
- OpenAL ==1.7.0.5
- openapi3 ==3.2.3
- open-browser ==0.2.1.0
@ -1995,7 +1995,7 @@ default-package-overrides:
- print-console-colors ==0.1.0.0
- probability ==0.2.8
- process-extras ==0.7.4
- product-profunctors ==0.11.0.3
- product-profunctors ==0.11.1.1
- profiterole ==0.1
- profiteur ==0.4.6.1
- profunctors ==5.6.2
@ -2012,12 +2012,12 @@ default-package-overrides:
- protobuf-simple ==0.1.1.1
- protocol-radius ==0.0.1.1
- protocol-radius-test ==0.1.0.1
- proto-lens ==0.7.1.2
- proto-lens ==0.7.1.3
- proto-lens-arbitrary ==0.1.2.11
- proto-lens-optparse ==0.1.1.9
- proto-lens-optparse ==0.1.1.10
- proto-lens-protobuf-types ==0.7.1.2
- proto-lens-protoc ==0.7.1.1
- proto-lens-runtime ==0.7.0.3
- proto-lens-runtime ==0.7.0.4
- proto-lens-setup ==0.4.0.6
- protolude ==0.3.3
- proxied ==0.3.1
@ -2035,8 +2035,8 @@ default-package-overrides:
- PyF ==0.11.1.1
- qchas ==1.1.0.1
- qm-interpolated-string ==0.3.1.0
- qrcode-core ==0.9.6
- qrcode-juicypixels ==0.8.4
- qrcode-core ==0.9.7
- qrcode-juicypixels ==0.8.5
- quadratic-irrational ==0.1.1
- QuasiText ==0.1.2.6
- QuickCheck ==2.14.2
@ -2049,7 +2049,7 @@ default-package-overrides:
- quickcheck-io ==0.2.0
- quickcheck-simple ==0.1.1.1
- quickcheck-special ==0.1.0.6
- quickcheck-state-machine ==0.7.1
- quickcheck-state-machine ==0.7.2
- quickcheck-text ==0.1.2.1
- quickcheck-transformer ==0.3.1.2
- quickcheck-unicode ==1.0.1.0
@ -2060,12 +2060,12 @@ default-package-overrides:
- rainbow ==0.34.2.2
- rainbox ==0.26.0.0
- ral ==0.2.1
- rampart ==2.0.0.5
- rampart ==2.0.0.6
- ramus ==0.1.2
- rando ==0.0.0.4
- random ==1.2.1.1
- random-bytestring ==0.1.4
- random-fu ==0.3.0.0
- random-fu ==0.3.0.1
- random-shuffle ==0.0.4
- random-tree ==0.6.0.5
- range ==0.3.0.2
@ -2077,7 +2077,7 @@ default-package-overrides:
- rank2classes ==1.4.6
- Rasterific ==0.7.5.4
- rasterific-svg ==0.3.3.2
- ratel ==2.0.0.7
- ratel ==2.0.0.8
- ratel-wai ==2.0.0.4
- ratio-int ==0.1.2
- rattle ==0.2
@ -2151,7 +2151,7 @@ default-package-overrides:
- resource-pool ==0.2.3.2
- resourcet ==1.2.6
- result ==0.2.6.0
- retry ==0.9.3.0
- retry ==0.9.3.1
- rev-state ==0.1.2
- rex ==0.6.2
- rfc1751 ==0.1.3
@ -2181,7 +2181,7 @@ default-package-overrides:
- run-haskell-module ==0.0.2
- runmemo ==1.0.0.1
- run-st ==0.1.1.0
- rvar ==0.3.0.1
- rvar ==0.3.0.2
- s3-signer ==0.5.0.0
- safe ==0.3.19
- safe-coloured-text ==0.2.0.1
@ -2203,9 +2203,9 @@ default-package-overrides:
- sample-frame-np ==0.0.5
- sampling ==0.3.5
- sandi ==0.5
- sandwich ==0.1.3.1
- sandwich ==0.1.3.2
- sandwich-hedgehog ==0.1.1.0
- sandwich-quickcheck ==0.1.0.6
- sandwich-quickcheck ==0.1.0.7
- sandwich-slack ==0.1.1.0
- sandwich-webdriver ==0.1.2.0
- say ==0.1.0.1
@ -2221,7 +2221,7 @@ default-package-overrides:
- scientist ==0.0.0.0
- scotty ==0.12.1
- scrypt ==0.5.0
- sdl2 ==2.5.4.0
- sdl2 ==2.5.5.0
- sdl2-gfx ==0.3.0.0
- sdl2-image ==2.1.0.0
- sdl2-mixer ==1.2.0.0
@ -2244,7 +2244,7 @@ default-package-overrides:
- semiring-simple ==1.0.0.1
- semver ==0.4.0.1
- sendfile ==0.7.11.4
- sendgrid-v3 ==1.0.0.0
- sendgrid-v3 ==1.0.0.1
- seqalign ==0.2.0.4
- seqid ==0.6.2
- seqid-streams ==0.7.2
@ -2335,7 +2335,7 @@ default-package-overrides:
- simple-media-timestamp-attoparsec ==0.1.0.0
- simple-media-timestamp-formatting ==0.1.1.0
- simple-reflect ==0.3.3
- simple-sendfile ==0.2.30
- simple-sendfile ==0.2.31
- simple-vec3 ==0.6.0.1
- since ==0.0.0
- singleton-bool ==0.1.6
@ -2423,7 +2423,7 @@ default-package-overrides:
- stm-containers ==1.2.0.2
- stm-delay ==0.1.1.1
- stm-extras ==0.1.0.3
- stm-hamt ==1.2.0.10
- stm-hamt ==1.2.0.11
- stm-lifted ==2.5.0.0
- STMonadTrans ==0.4.6
- stm-split ==0.0.2.1
@ -2451,7 +2451,7 @@ default-package-overrides:
- strict-base-types ==0.7
- strict-concurrency ==0.2.4.3
- strict-lens ==0.4.0.2
- strict-list ==0.1.7
- strict-list ==0.1.7.1
- strict-tuple ==0.1.5.2
- strict-wrapper ==0.0.0.0
- stringable ==0.1.3
@ -2460,7 +2460,7 @@ default-package-overrides:
- string-combinators ==0.6.0.5
- string-conv ==0.2.0
- string-conversions ==0.4.0.1
- string-interpolate ==0.3.2.0
- string-interpolate ==0.3.2.1
- stringprep ==1.0.0
- string-qq ==0.0.4
- string-random ==0.1.4.3
@ -2482,7 +2482,7 @@ default-package-overrides:
- svg-builder ==0.1.1
- SVGFonts ==1.8.0.1
- svg-tree ==0.6.2.4
- swagger2 ==2.8.6
- swagger2 ==2.8.7
- swish ==0.10.4.0
- syb ==0.7.2.3
- syb-with-class ==0.6.1.14
@ -2530,7 +2530,7 @@ default-package-overrides:
- tasty ==1.4.3
- tasty-ant-xml ==1.1.8
- tasty-autocollect ==0.3.2.0
- tasty-bench ==0.3.3
- tasty-bench ==0.3.4
- tasty-dejafu ==2.1.0.0
- tasty-discover ==4.2.2
- tasty-expected-failure ==0.12.3
@ -2649,7 +2649,7 @@ default-package-overrides:
- time-manager ==0.0.0
- time-parsers ==0.1.2.1
- timerep ==2.1.0.0
- timers-tick ==0.5.0.3
- timers-tick ==0.5.0.4
- timer-wheel ==0.4.0.1
- timespan ==0.4.0.0
- time-units ==1.0.0
@ -2732,7 +2732,7 @@ default-package-overrides:
- ulid ==0.3.2.0
- unagi-chan ==0.4.1.4
- unbounded-delays ==0.1.1.1
- unbound-generics ==0.4.2
- unbound-generics ==0.4.3
- unboxed-ref ==0.4.0.0
- unboxing-vector ==0.2.0.0
- uncaught-exception ==0.1.0
@ -2824,7 +2824,7 @@ default-package-overrides:
- vector-bytes-instances ==0.1.1
- vector-circular ==0.1.4
- vector-extras ==0.2.8
- vector-instances ==3.4
- vector-instances ==3.4.2
- vector-mmap ==0.0.3
- vector-rotcev ==0.1.0.2
- vector-sized ==1.5.0
@ -2878,7 +2878,7 @@ default-package-overrides:
- warp-tls-uid ==0.2.0.6
- wave ==0.2.0
- wcwidth ==0.0.2
- webby ==1.1.0
- webby ==1.1.1
- webdriver ==0.10.0.1
- webex-teams-api ==0.2.0.1
- webex-teams-conduit ==0.2.0.1

View file

@ -1270,7 +1270,6 @@ dont-distribute-packages:
- distribution-plot
- dixi
- dl-fedora
- dl-fedora_0_9_5
- dmenu-pkill
- dmenu-pmount
- dmenu-search
@ -1284,6 +1283,7 @@ dont-distribute-packages:
- doc-review
- domain
- domain-aeson
- domain-aeson_0_1_1_1
- domain-cereal
- domaindriven
- dormouse-client
@ -3007,6 +3007,7 @@ dont-distribute-packages:
- pandoc-crossref_0_3_15_2
- pandoc-highlighting-extensions
- pandoc-japanese-filters
- pandoc-symreg
- pandora-io
- papa
- papa-base
@ -3247,7 +3248,6 @@ dont-distribute-packages:
- quickcheck-relaxng
- quickcheck-state-machine
- quickcheck-state-machine-distributed
- quickcheck-state-machine_0_7_2
- quicktest
- quipper
- quipper-algorithms

View file

@ -514,7 +514,8 @@ self: super: builtins.intersectAttrs super {
libraryHaskellDepends =
(drv.libraryHaskellDepends or [])
++ lib.optionals (!(pkgs.stdenv.hostPlatform.isAarch64
|| pkgs.stdenv.hostPlatform.isx86_64)) [
|| pkgs.stdenv.hostPlatform.isx86_64)
|| (self.ghc.isGhcjs or false)) [
self.unbounded-delays
];
}) super.tasty;
@ -906,6 +907,9 @@ self: super: builtins.intersectAttrs super {
# Pass the correct libarchive into the package.
streamly-archive = super.streamly-archive.override { archive = pkgs.libarchive; };
# Pass the correct lmdb into the package.
streamly-lmdb = super.streamly-lmdb.override { lmdb = pkgs.lmdb; };
hlint = overrideCabal (drv: {
postInstall = ''
install -Dm644 data/hlint.1 -t "$out/share/man/man1"
@ -1015,14 +1019,6 @@ self: super: builtins.intersectAttrs super {
hnix-store-core = super.hnix-store-core_0_6_1_0;
});
hercules-ci-api-core =
# 2023-05-02: Work around a corrupted file on cache.nixos.org. This is a hash for x86_64-linux. Remove when it has changed.
if super.hercules-ci-api-core.drvPath == "/nix/store/dgy3w43zypmdswc7a7zis0njgljqvnq0-hercules-ci-api-core-0.1.5.0.drv"
then super.hercules-ci-api-core.overrideAttrs (_: {
dummyAttr = 1;
})
else super.hercules-ci-api-core;
hercules-ci-agent = super.hercules-ci-agent.override { nix = self.hercules-ci-cnix-store.passthru.nixPackage; };
hercules-ci-cnix-expr = addTestToolDepend pkgs.git (super.hercules-ci-cnix-expr.override { nix = self.hercules-ci-cnix-store.passthru.nixPackage; });
hercules-ci-cnix-store = (super.hercules-ci-cnix-store.override { nix = self.hercules-ci-cnix-store.passthru.nixPackage; }).overrideAttrs (_: {
@ -1234,4 +1230,7 @@ self: super: builtins.intersectAttrs super {
keid-render-basic = addBuildTool pkgs.glslang super.keid-render-basic;
# Disable checks to break dependency loop with SCalendar
scalendar = dontCheck super.scalendar;
}

File diff suppressed because it is too large Load diff

View file

@ -1,5 +1,7 @@
{ lib, stdenv, fetchurl, unzip, makeWrapper, flex, bison, ncurses, buddy, tecla
, libsigsegv, gmpxx, cln, yices
# passthru.tests
, tamarin-prover
}:
let
@ -46,6 +48,11 @@ stdenv.mkDerivation {
for n in "$out/bin/"*; do wrapProgram "$n" --suffix MAUDE_LIB ':' "$out/share/maude"; done
'';
passthru.tests = {
# tamarin-prover only supports specific versions of maude explicitly
inherit tamarin-prover;
};
enableParallelBuilding = true;
meta = {

View file

@ -203,6 +203,8 @@ stdenv.mkDerivation rec {
popd # ../autotest
'';
__darwinAllowLocalNetworking = true;
meta = {
description = "Translator library for raster geospatial data formats";
homepage = "https://www.gdal.org/";

View file

@ -1,42 +1,43 @@
{ lib, stdenv, fetchFromGitHub, fetchpatch, pkg-config, fuse, adb }:
{ lib
, stdenv
, fetchFromGitHub
, pkg-config
, fuse
, android-tools
}:
stdenv.mkDerivation rec {
pname = "adbfs-rootless";
version = "2016-10-02";
version = "unstable-2023-03-21";
src = fetchFromGitHub {
owner = "spion";
repo = "adbfs-rootless";
rev = "b58963430e40c9246710a16cec58e7ffc88baa48";
sha256 = "1kjibl86k6pf7vciwaaxwv5m4q28zdpd2g7yhp71av32jq6j3wm8";
repo = pname;
rev = "fd56381af4dc9ae2f09b904c295686871a46ed0f";
sha256 = "atiVjRfqvhTlm8Q+3iTNNPQiNkLIaHDLg5HZDJvpl2Q=";
};
patches = [
(fetchpatch {
# https://github.com/spion/adbfs-rootless/issues/14
url = "https://github.com/kronenpj/adbfs-rootless/commit/35f87ce0a7aeddaaad118daed3022e01453b838d.patch";
sha256 = "1iigla74n3hphnyx9ffli9wqk7v71ylvsxama868czlg7851jqj9";
})
];
nativeBuildInputs = [ pkg-config ];
buildInputs = [ fuse ];
postPatch = ''
# very ugly way of replacing the adb calls
sed -e 's|"adb |"${adb}/bin/adb |g' \
-i adbfs.cpp
substituteInPlace adbfs.cpp \
--replace '"adb ' '"${android-tools}/bin/adb '
'';
installPhase = ''
runHook preInstall
install -D adbfs $out/bin/adbfs
runHook postInstall
'';
meta = with lib; {
description = "Mount Android phones on Linux with adb, no root required";
inherit (src.meta) homepage;
license = licenses.bsd3;
maintainers = with maintainers; [ Profpatsch ];
platforms = platforms.linux;
maintainers = with maintainers; [ Profpatsch aleksana ];
platforms = platforms.unix;
};
}

View file

@ -13,8 +13,7 @@ buildDunePackage rec {
sha256 = "sha256-9XTb0ozQ/DorlVJcS7ld320fZAi7T+EhV/pTeIT5h/0=";
};
# dune 3 is required for tests to pass
duneVersion = if doCheck then "3" else "2";
duneVersion = "3";
nativeBuildInputs = [ cppo ];
buildInputs = [ astring cmdliner fpath result tyxml odoc-parser fmt ];

View file

@ -0,0 +1,70 @@
{ lib
, buildPythonPackage
, fetchFromGitHub
, botorch
, ipywidgets
, jinja2
, pandas
, plotly
, setuptools-scm
, typeguard
, hypothesis
, mercurial
, pyfakefs
, pytestCheckHook
, yappi
}:
buildPythonPackage rec {
pname = "ax";
version = "0.3.2";
format = "pyproject";
src = fetchFromGitHub {
owner = "facebook";
repo = pname;
rev = version;
hash = "sha256-1KLLjeUktXvIDOlTQzMmpbL/On8PTxZQ44Qi4BT3nPk=";
};
propagatedBuildInputs = [
botorch
ipywidgets
jinja2
pandas
plotly
setuptools-scm
typeguard
];
SETUPTOOLS_SCM_PRETEND_VERSION = version;
checkInputs = [
hypothesis
mercurial
pyfakefs
pytestCheckHook
yappi
];
pytestFlagsArray = [
"--ignore=ax/benchmark"
"--ignore=ax/runners/tests/test_torchx.py"
# requires pyre_extensions
"--ignore=ax/telemetry/tests"
"--ignore=ax/core/tests/test_utils.py"
"--ignore=ax/early_stopping/tests/test_strategies.py"
# broken with sqlalchemy 2
"--ignore=ax/service/tests/test_ax_client.py"
"--ignore=ax/service/tests/test_scheduler.py"
"--ignore=ax/service/tests/test_with_db_settings_base.py"
"--ignore=ax/storage"
];
pythonImportsCheck = [ "ax" ];
meta = with lib; {
description = "Ax is an accessible, general-purpose platform for understanding, managing, deploying, and automating adaptive experiments";
homepage = "https://ax.dev/";
license = licenses.mit;
maintainers = with maintainers; [ veprbl ];
};
}

View file

@ -0,0 +1,51 @@
{ lib
, buildPythonPackage
, fetchFromGitHub
, gpytorch
, linear_operator
, multipledispatch
, pyro-ppl
, setuptools-scm
, torch
, scipy
, pytestCheckHook
}:
buildPythonPackage rec {
pname = "botorch";
version = "0.8.5";
format = "pyproject";
src = fetchFromGitHub {
owner = "pytorch";
repo = pname;
rev = "v${version}";
hash = "sha256-VcNHgfk8OfLJseQxHksycWuCPCudCtOdcRV0XnxHSfU=";
};
buildInputs = [
setuptools-scm
];
propagatedBuildInputs = [
gpytorch
linear_operator
multipledispatch
pyro-ppl
scipy
torch
];
SETUPTOOLS_SCM_PRETEND_VERSION = version;
checkInputs = [
pytestCheckHook
];
pythonImportsCheck = [ "botorch" ];
meta = with lib; {
description = "Bayesian Optimization in PyTorch";
homepage = "https://botorch.org";
license = licenses.mit;
maintainers = with maintainers; [ veprbl ];
};
}

View file

@ -77,6 +77,7 @@ buildPythonPackage rec {
];
meta = with lib; {
mainProgram = "pyproject-build";
description = "Simple, correct PEP517 package builder";
longDescription = ''
build will invoke the PEP 517 hooks to build a distribution package. It

View file

@ -17,7 +17,7 @@
let
pname = "chacha20poly1305-reuseable";
version = "0.2.2";
version = "0.2.5";
in
buildPythonPackage {
@ -30,7 +30,7 @@ buildPythonPackage {
owner = "bdraco";
repo = pname;
rev = "v${version}";
hash = "sha256-vMc5fgFYS06m01WDLRyna3T1uuR+JinqM6huXAQ34rI=";
hash = "sha256-T5mmHUMNbdvexeSaIDZIm/3yQcDKnWdor9IK63FE0no=";
};
nativeBuildInputs = [
@ -59,7 +59,7 @@ buildPythonPackage {
meta = with lib; {
description = "ChaCha20Poly1305 that is reuseable for asyncio";
homepage = "https://github.com/bdraco/chacha20poly1305-reuseable";
changelog = "https://github.com/bdraco/chacha20poly1305-reuseable/blob/main/CHANGELOG.md";
changelog = "https://github.com/bdraco/chacha20poly1305-reuseable/blob/v${version}/CHANGELOG.md";
license = licenses.asl20;
maintainers = with maintainers; [ hexa ];
};

View file

@ -1,6 +1,7 @@
{ lib
, stdenv
, buildPythonPackage
, pythonAtLeast
, pythonOlder
, fetchFromGitHub
, fetchpatch
@ -34,7 +35,8 @@ buildPythonPackage rec {
version = "1.1.0";
format = "setuptools";
disabled = pythonOlder "3.7";
# Upstream package is broken on Python 3.11 https://github.com/quantumlib/Cirq/issues/6018
disabled = pythonOlder "3.7" || pythonAtLeast "3.11";
src = fetchFromGitHub {
owner = "quantumlib";

View file

@ -67,6 +67,6 @@ buildPythonPackage rec {
description = "CTAP (client-to-authenticator-protocol) device backed by python's keyring library";
homepage = "https://github.com/dany74q/ctap-keyring-device";
license = licenses.mit;
maintainers = with maintainers; [ dennajort ];
maintainers = with maintainers; [ jbgosselin ];
};
}

View file

@ -37,5 +37,8 @@ buildPythonPackage rec {
homepage = "https://dataset.readthedocs.io";
license = licenses.mit;
maintainers = with maintainers; [ xfnw ];
# SQLAlchemy >= 2.0.0 is unsupported
# https://github.com/pudo/dataset/issues/411
broken = true;
};
}

View file

@ -5,12 +5,12 @@
buildPythonPackage rec {
pname = "distutils-extra";
version = "2.47";
version = "2.50";
format = "setuptools";
src = fetchurl {
url = "https://salsa.debian.org/python-team/modules/python-distutils-extra/-/archive/${version}/python-${pname}-${version}.tar.bz2";
hash = "sha256-vIl50yDVt5AW5lteWYqhAPlu8ErroOOJ1N/sfE2fbBU=";
hash = "sha256-aq5+JjlzD3fS4+CPxZNjyz2QNfqsChC0w6KRVgbTGwI=";
};
# Tests are out-dated as the last upstream release is from 2016

View file

@ -0,0 +1,57 @@
{ lib
, buildPythonPackage
, fetchFromGitHub
# build-system
, setuptools
# dependencies
, beautifulsoup4
# tests
, django
, python
}:
buildPythonPackage rec {
pname = "django-bootstrap4";
version = "3.0.1";
format = "pyproject";
src = fetchFromGitHub {
owner = "zostera";
repo = "django-bootstrap4";
rev = "v${version}";
hash = "sha256-5t6b/1921AMDqoYg7XC2peGxOBFE8XlvgGjHnTlQa4c=";
};
nativeBuildInputs = [
setuptools
];
propagatedBuildInputs = [
beautifulsoup4
];
pythonImportsCheck = [
"bootstrap4"
];
nativeCheckInputs = [
(django.override { withGdal = true; })
];
checkPhase = ''
runHook preCheck
${python.interpreter} manage.py test -v1 --noinput
runHook postCheck
'';
meta = with lib; {
description = "Bootstrap 4 integration with Django";
homepage = "https://github.com/zostera/django-bootstrap4";
changelog = "https://github.com/zostera/django-bootstrap4/blob/${src.rev}/CHANGELOG.md";
license = licenses.bsd3;
maintainers = with maintainers; [ hexa ];
};
}

View file

@ -3,6 +3,7 @@
, buildPythonPackage
, python-crontab
, celery
, cron-descriptor
, django-timezone-field
, tzdata
, ephem
@ -15,17 +16,18 @@
buildPythonPackage rec {
pname = "django-celery-beat";
version = "2.4.0";
version = "2.5.0";
format = "setuptools";
disabled = pythonOlder "3.7";
src = fetchPypi {
inherit pname version;
hash = "sha256-WO/pRg5Dc6JBwrPYOVGPKaKK4ZvICo26INogTH6lBhM=";
hash = "sha256-zQpH9ZWEAvUawMcVvJQq4z17ULTkjLqRvD8nEr5QXfE=";
};
propagatedBuildInputs = [
cron-descriptor
python-crontab
celery
django-timezone-field

View file

@ -0,0 +1,35 @@
{ lib
, buildPythonPackage
, fetchFromGitHub
, django
, pytestCheckHook
}:
buildPythonPackage rec {
pname = "django-context-decorator";
version = "1.5.0";
format = "setuptools";
src = fetchFromGitHub {
owner = "rixx";
repo = "django-context-decorator";
rev = "v${version}";
hash = "sha256-wgVZadI+4gK9snLfy/9FgFJJHqMyxndcxXwqIkMH29k=";
};
pythonImportsCheck = [
"django_context_decorator"
];
nativeCheckInputs = [
django
pytestCheckHook
];
meta = with lib; {
description = "Django @context decorator";
homepage = "https://github.com/rixx/django-context-decorator";
license = licenses.asl20;
maintainers = with maintainers; [ hexa ];
};
}

View file

@ -3,6 +3,7 @@
, django
, django-appconf
, fetchFromGitHub
, fetchpatch
, lib
, python
, pythonOlder
@ -32,6 +33,11 @@ buildPythonPackage rec {
django-appconf
];
patches = [
# See: https://github.com/georgemarshall/django-cryptography/pull/88
./fix-setup-cfg.patch
];
pythonImportsCheck = [ "django_cryptography" ];
checkPhase = ''

View file

@ -0,0 +1,16 @@
diff --git a/setup.cfg b/setup.cfg
index 865b4c3..577d917 100644
--- a/setup.cfg
+++ b/setup.cfg
@@ -35,7 +35,10 @@ project_urls =
Documentation = https://django-cryptography.readthedocs.io
[options]
-packages = django_cryptography
+packages =
+ django_cryptography
+ django_cryptography.core
+ django_cryptography.utils
python_requires = >=3.6
include_package_data = True
install_requires =

View file

@ -0,0 +1,48 @@
{ lib
, buildPythonPackage
, fetchFromGitHub
# dependencies
, django-compressor
, libsass
# tests
, django
, python
}:
buildPythonPackage rec {
pname = "django-libsass";
version = "0.9";
format = "setuptools";
src = fetchFromGitHub {
owner = "torchbox";
repo = "django-libsass";
rev = "refs/tags/v${version}";
hash = "sha256-54AlRVmit0rtG1jx7O+XyA1vXLHCfoNPjHkHCQaaybA=";
};
propagatedBuildInputs = [
django-compressor
libsass
];
nativeCheckInputs = [
django
];
checkPhase = ''
runHook preCheck
${python.interpreter} ./runtests.py
runHook postCheck
'';
meta = with lib; {
description = "A django-compressor filter to compile SASS files using libsass";
homepage = "https://github.com/torchbox/django-libsass";
changelog = "https://github.com/torchbox/django-libsass/blob/${src.rev}/CHANGELOG.txt";
license = licenses.bsd3;
maintainers = with maintainers; [ hexa ];
};
}

View file

@ -19,18 +19,18 @@
buildPythonPackage rec {
pname = "django-markup";
version = "1.7";
version = "1.7.2";
format = "setuptools";
src = fetchFromGitHub {
owner = "bartTC";
repo = "django-markup";
rev = "refs/tags/v${version}";
hash = "sha256-P36DYOcjYAvzhSLe5CwzRaIm/KzrpUh0YZjzcwnSBG8=";
hash = "sha256-NvGlvrXOwDrwHhbFHrWf7Kz9sEzTTyq84/Z6jjRNy8Q=";
};
postPatch = ''
sed -i "/--cov/d" setup.cfg
sed -i "/--cov/d" pyproject.toml
'';
buildInputs = [

View file

@ -9,7 +9,7 @@
buildPythonPackage rec {
pname = "django-prometheus";
version = "2.2.0";
version = "2.3.1";
format = "setuptools";
disabled = pythonOlder "3.6";
@ -17,7 +17,7 @@ buildPythonPackage rec {
owner = "korfuri";
repo = pname;
rev = "v${version}";
hash = "sha256-NE0zHnGGSrtkBLrSyBcQuyGrSfSQbdpevokg3YZhwDw=";
hash = "sha256-JiLH+4mmNdb9BN81J5YFiMPna/3gaKUK6ARjmCa3fE8=";
};
patches = [
@ -43,6 +43,7 @@ buildPythonPackage rec {
];
meta = with lib; {
changelog = "https://github.com/korfuri/django-prometheus/releases/tag/v${version}";
description = "Django middlewares to monitor your application with Prometheus.io";
homepage = "https://github.com/korfuri/django-prometheus";
license = licenses.asl20;

View file

@ -10,7 +10,7 @@
buildPythonPackage rec {
pname = "django-rq";
version = "2.7.0";
version = "2.8.0";
format = "setuptools";
disabled = isPy27;
@ -18,7 +18,7 @@ buildPythonPackage rec {
owner = "rq";
repo = pname;
rev = "refs/tags/v${version}";
hash = "sha256-MUIwgG8GKL+V5GgiC7gZXn5tlSVrmTj/IFiP+hVB7Ks=";
hash = "sha256-UiV9eshlUqzmoI+04BXMFVI8pm7OYQZFa9lmIQrmlRg=";
};
propagatedBuildInputs = [

View file

@ -15,7 +15,7 @@
buildPythonPackage rec {
pname = "dvc-data";
version = "0.47.2";
version = "0.48.1";
format = "pyproject";
disabled = pythonOlder "3.8";
@ -24,7 +24,7 @@ buildPythonPackage rec {
owner = "iterative";
repo = pname;
rev = "refs/tags/${version}";
hash = "sha256-5DbnvIScSq+bu8ki0eUwUZd9Gf3KlhD+I0/PpWfGOu0=";
hash = "sha256-h4E4nwACnGPtmQjEi+O2WNvlDsfJBSngh4CYHQVxDkY=";
};
SETUPTOOLS_SCM_PRETEND_VERSION = version;

View file

@ -8,14 +8,14 @@
buildPythonPackage rec {
pname = "espeak-phonemizer";
version = "1.2.0";
version = "1.3.0";
format = "setuptools";
src = fetchFromGitHub {
owner = "rhasspy";
repo = "espeak-phonemizer";
rev = "refs/tags/v${version}";
hash = "sha256-FiajWpxSDRxTiCj8xGHea4e0voqOvaX6oQYB72FkVbw=";
hash = "sha256-F+A2ge9YAib6IjDW3RNi7QqKnh1RGy2mlPFEB+OLCJU=";
};
patches = [

View file

@ -15,7 +15,7 @@
let
pname = "findpython";
version = "0.2.4";
version = "0.2.5";
in
buildPythonPackage {
inherit pname version;
@ -25,7 +25,7 @@ buildPythonPackage {
src = fetchPypi {
inherit pname version;
hash = "sha256-YfF2jN2EPcL4pFlxJyxYwlZBpQsZ2pEwLiSS4ypmc2I=";
hash = "sha256-4P1HO0Jl5+DnhD7Hb+rIwMRBuGlXH0Zb7+nmlZSQaf4=";
};
nativeBuildInputs = [

View file

@ -0,0 +1,51 @@
{ lib
, buildPythonPackage
, fetchFromGitHub
, linear_operator
, scikit-learn
, torch
, pytestCheckHook
}:
buildPythonPackage rec {
pname = "gpytorch";
version = "1.10";
format = "pyproject";
src = fetchFromGitHub {
owner = "cornellius-gp";
repo = pname;
rev = "v${version}";
hash = "sha256-KY3ItkVjBfIYMkZAmD56EBGR9YN/MRN7b2K3zrK6Qmk=";
};
postPatch = ''
substituteInPlace setup.py \
--replace 'find_version("gpytorch", "version.py")' \"$version\"
'';
propagatedBuildInputs = [
linear_operator
scikit-learn
torch
];
checkInputs = [
pytestCheckHook
];
pythonImportsCheck = [ "gpytorch" ];
disabledTests = [
# AssertionError on number of warnings emitted
"test_deprecated_methods"
# flaky numerical tests
"test_classification_error"
"test_matmul_matrix_broadcast"
];
meta = with lib; {
description = "A highly efficient and modular implementation of Gaussian Processes, with GPU acceleration";
homepage = "https://gpytorch.ai";
license = licenses.mit;
maintainers = with maintainers; [ veprbl ];
};
}

View file

@ -51,6 +51,7 @@
, atlassian-python-api
, duckduckgo-search
, lark
, jq
# test dependencies
, pytest-vcr
, pytest-asyncio
@ -65,7 +66,7 @@
buildPythonPackage rec {
pname = "langchain";
version = "0.0.158";
version = "0.0.163";
format = "pyproject";
disabled = pythonOlder "3.8";
@ -74,7 +75,7 @@ buildPythonPackage rec {
owner = "hwchase17";
repo = "langchain";
rev = "refs/tags/v${version}";
hash = "sha256-R8l7Y33CiTL4px5A7rB6PHMnSjvINZBrgANwUMFkls8=";
hash = "sha256-3oebRLMunzfz+fAS5h+HaabioIPXTJLJc0YAktLx4/U=";
};
postPatch = ''
@ -188,6 +189,7 @@ buildPythonPackage rec {
pexpect
# pyvespa
# O365
jq
];
};

View file

@ -0,0 +1,46 @@
{ lib
, buildPythonPackage
, fetchFromGitHub
, scipy
, torch
, pytestCheckHook
}:
buildPythonPackage rec {
pname = "linear_operator";
version = "0.4.0";
format = "pyproject";
src = fetchFromGitHub {
owner = "cornellius-gp";
repo = pname;
rev = "v${version}";
hash = "sha256-0f3F3k3xJACbx42jtwsAmjZwPAOfLywZs8VOrwWicc4=";
};
postPatch = ''
substituteInPlace setup.py \
--replace 'find_version("linear_operator", "version.py")' \"$version\"
'';
propagatedBuildInputs = [
scipy
torch
];
checkInputs = [
pytestCheckHook
];
pythonImportsCheck = [ "linear_operator" ];
disabledTests = [
# flaky numerical tests
"test_svd"
];
meta = with lib; {
description = "A LinearOperator implementation to wrap the numerical nuts and bolts of GPyTorch";
homepage = "https://github.com/cornellius-gp/linear_operator/";
license = licenses.mit;
maintainers = with maintainers; [ veprbl ];
};
}

View file

@ -2,28 +2,34 @@
, buildPythonPackage
, fetchPypi
, pythonOlder
, python
, mock
, twisted
, unittestCheckHook
}:
buildPythonPackage rec {
pname = "python-mpd2";
version = "3.0.5";
version = "3.1.0";
format = "setuptools";
disabled = pythonOlder "3.6";
src = fetchPypi {
inherit pname version;
hash = "sha256-bxv/2TuaMvwBipu/NIdQW1Lg11fsNAZpBcYKkS1JI4Q=";
hash = "sha256-8zws2w1rqnSjZyTzjBxKCZp84sjsSiu3GSFQpYVd9HY=";
};
buildInputs = [ mock ];
passthru.optional-dependencies = {
twisted = [
twisted
];
};
checkPhase = ''
${python.interpreter} -m unittest mpd.tests
'';
nativeCheckInputs = [
unittestCheckHook
] ++ passthru.optional-dependencies.twisted;
meta = with lib; {
changelog = "https://github.com/Mic92/python-mpd2/blob/v${version}/doc/changes.rst";
description = "A Python client module for the Music Player Daemon";
homepage = "https://github.com/Mic92/python-mpd2";
license = licenses.lgpl3Plus;

View file

@ -28,14 +28,14 @@
buildPythonPackage rec {
pname = "nbdime";
version = "3.1.1";
version = "3.2.0";
format = "setuptools";
disabled = pythonOlder "3.6";
src = fetchPypi {
inherit pname version;
hash = "sha256-Z3ZzIOlxN09wGhdapZq9OlVHIwOdOfrpCOctFjMNZIs=";
hash = "sha256-5Q0aDPZy4CNW4Q5tPQrqjoYSpTSubhub/VmsO2DEBes=";
};
nativeBuildInputs = [
@ -92,7 +92,5 @@ buildPythonPackage rec {
description = "Tools for diffing and merging of Jupyter notebooks.";
license = licenses.bsd3;
maintainers = with maintainers; [ tbenst ];
# https://github.com/jupyter/nbdime/issues/645
broken = lib.versionAtLeast jupyter-server.version "2";
};
}

View file

@ -69,6 +69,6 @@ buildPythonPackage rec {
description = "Python SDK for the Okta Management API";
homepage = "https://github.com/okta/okta-sdk-python";
license = licenses.asl20;
maintainers = with maintainers; [ dennajort ];
maintainers = with maintainers; [ jbgosselin ];
};
}

View file

@ -6,14 +6,14 @@
buildPythonPackage rec {
pname = "poetry-plugin-export";
version = "1.3.0";
version = "1.3.1";
format = "pyproject";
src = fetchFromGitHub {
owner = "python-poetry";
repo = pname;
rev = "refs/tags/${version}";
hash = "sha256-rqUs73pTpc18HsloLGRBYA6v/qyk/eUH7uEZYlAgFa0=";
hash = "sha256-zA5YHZ3/iVoNf2AKqkrKVDYJIoJh+FMwuoskWHutG5I=";
};
postPatch = ''

View file

@ -13,7 +13,7 @@
buildPythonPackage rec {
pname = "pyduke-energy";
version = "1.0.5";
version = "1.0.6";
format = "setuptools";
disabled = pythonOlder "3.7";
@ -22,7 +22,7 @@ buildPythonPackage rec {
owner = "mjmeli";
repo = pname;
rev = "refs/tags/v${version}";
hash = "sha256-g+s9YaVFOCKaBGR5o9cPk4kcIW4BffFHTtmDNE8f/zE=";
hash = "sha256-7KkUpsHg3P2cF0bVl3FzyAQwzeaCmg+vzRHlM/TIcNA=";
};
propagatedBuildInputs = [

View file

@ -59,6 +59,6 @@ buildPythonPackage rec {
description = "A pytest plugin that allows you recording of network interactions via VCR.py";
homepage = "https://github.com/kiwicom/pytest-recording";
license = licenses.mit;
maintainers = with maintainers; [ dennajort ];
maintainers = with maintainers; [ jbgosselin ];
};
}

View file

@ -1,11 +1,11 @@
{
cp39 = {
sha256 = "596811ae6b41e50f038e0a7cdf0a5320151508d74bac84795bbccad4f6adc6a9";
sha256 = "4889b457363a3cfa52088b3572b864ebb391806371bc59b2bb047e44f999bb32";
};
cp310 = {
sha256 = "b19d381d425259c80b7a9b14aac9d898637ce262d91baeb9569999de3b043967";
sha256 = "5ed5a29795b122e9e2b832d5224ab9b1cc235beab700d2a413b23c63b3d3c80c";
};
cp311 = {
sha256 = "d86126b6ab5113a3be35281d5699bad731c8f90e02cf6561057017df9312f0a5";
sha256 = "d316861298f6e996f4841e4160ed38dc289f81cf0ffe9874dc14ef7e4e5a9190";
};
}

View file

@ -57,7 +57,7 @@
let
pname = "ray";
version = "2.3.0";
version = "2.4.0";
in
buildPythonPackage rec {
inherit pname version;

View file

@ -0,0 +1,61 @@
{ lib
, fetchPypi
, fetchFromGitHub
, python
, buildPythonPackage
, absl-py
, nltk
, numpy
, six
, pytestCheckHook
, pythonOlder
}:
let
testdata = fetchFromGitHub {
owner = "google-research";
repo = "google-research";
sparseCheckout = [ "rouge/testdata" ];
rev = "1d4d2f1aa6f2883a790d2ae46a6ee8ab150d8f31";
hash = "sha256-ojqk6U2caS7Xz4iGUC9aQVHrKb2QNvMlPuQAL/jJat0=";
};
in buildPythonPackage rec {
pname = "rouge-score";
version = "0.1.2";
format = "setuptools";
disabled = pythonOlder "3.7";
src = fetchPypi {
pname = "rouge_score";
inherit version;
extension = "tar.gz";
hash = "sha256-x9TaJoPmjJq/ATXvkV1jpGZDZm+EjlWKG59+rRf/DwQ=";
};
# the tar file from pypi doesn't come with the test data
postPatch = ''
substituteInPlace rouge_score/test_util.py \
--replace 'os.path.join(os.path.dirname(__file__), "testdata")' '"${testdata}/rouge/testdata/"'
'';
propagatedBuildInputs = [ absl-py nltk numpy six ];
nativeCheckInputs = [ pytestCheckHook ];
doCheck = true;
disabledTests = [
# https://github.com/google-research/google-research/issues/1203
"testRougeLSumSentenceSplitting"
# tries to download external tokenizers via nltk
"testRougeLsumLarge"
];
pythonImportsCheck = [ "rouge_score" ];
meta = {
description = "Python ROUGE Implementation";
homepage = "https://github.com/google-research/google-research/tree/master/rouge";
license = lib.licenses.asl20;
maintainers = with lib.maintainers; [ nviets ];
};
}

View file

@ -12,7 +12,7 @@
buildPythonPackage rec {
pname = "simpful";
version = "2.10.0";
version = "2.11.0";
format = "setuptools";
disabled = pythonOlder "3.7";
@ -21,7 +21,7 @@ buildPythonPackage rec {
owner = "aresio";
repo = pname;
rev = "refs/tags/${version}";
hash = "sha256-vT7Y/6bD+txEVEw/zelMogQ0V7BIHHRitrC1COByzhY=";
hash = "sha256-1CU/Iz83CKRx7dsOTGfdJm98TUfc2kxCHKIEUXP36HQ=";
};
propagatedBuildInputs = [

View file

@ -44,5 +44,6 @@ buildPythonPackage rec {
homepage = "https://github.com/majidaldo/Theano-PyMC";
license = lib.licenses.asl20;
maintainers = with lib.maintainers; [ nidabdella ];
broken = true;
};
}

View file

@ -100,5 +100,6 @@ in buildPythonPackage rec {
description = "A Python library for large-scale array computation";
license = licenses.bsd3;
maintainers = [ ];
broken = true;
};
}

View file

@ -0,0 +1,31 @@
{ lib
, stdenv
, fetchFromGitHub
, util-linux
}:
stdenv.mkDerivation {
pname = "bin2c";
version = "unstable-2020-05-30";
src = fetchFromGitHub {
owner = "adobe";
repo = "bin2c";
rev = "4300880a350679a808dc05bdc2840368f5c24d9a";
sha256 = "sha256-PLo5kkN2k3KutVGumoXEB2x9MdxDUtpwAQZLwm4dDvw=";
};
makeFlags = [ "prefix=$(out)" ];
doCheck = !stdenv.isDarwin;
checkTarget = "test";
checkInputs = [ util-linux ]; # uuidgen
meta = with lib; {
description = "Embed binary & text files inside C binaries";
homepage = "https://github.com/adobe/bin2c";
license = licenses.asl20;
maintainers = [ maintainers.shadowrz ];
platforms = platforms.all;
};
}

View file

@ -53,7 +53,14 @@ stdenv.mkDerivation {
# introducing a wrapper for it in the future remains TODO.
# For the moment this doesn't matter since we have no situation
# were gprbuild is used to build something used at build time.
setupHook = ./gpr-project-path-hook.sh;
setupHooks = [
./gpr-project-path-hook.sh
] ++ lib.optionals stdenv.targetPlatform.isDarwin [
# This setupHook replaces the paths of shared libraries starting
# with @rpath with the absolute paths on Darwin, so that the
# binaries can be run without additional setup.
./gpr-project-darwin-rpath-hook.sh
];
installPhase = ''
runHook preInstall

Some files were not shown because too many files have changed in this diff Show more