Merge master into staging-next
This commit is contained in:
commit
079dc4c27d
|
@ -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; };
|
||||
|
|
|
@ -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
|
||||
'';
|
||||
|
|
|
@ -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";
|
||||
|
|
|
@ -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..."
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -151,6 +151,7 @@ with lib.maintainers; {
|
|||
|
||||
cuda = {
|
||||
members = [
|
||||
connorbaker
|
||||
SomeoneSerge
|
||||
];
|
||||
scope = "Maintain CUDA-enabled packages";
|
||||
|
|
|
@ -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).
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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";
|
||||
|
|
|
@ -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
|
||||
|
|
24
nixos/modules/programs/sniffnet.nix
Normal file
24
nixos/modules/programs/sniffnet.nix
Normal 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 ];
|
||||
}
|
|
@ -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
|
||||
|
|
|
@ -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 = {
|
||||
|
|
|
@ -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"
|
||||
|
|
88
nixos/modules/services/networking/harmonia.nix
Normal file
88
nixos/modules/services/networking/harmonia.nix
Normal 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;
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
|
@ -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.
|
||||
'' ];
|
||||
})
|
||||
];
|
||||
|
||||
|
||||
|
|
|
@ -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";
|
||||
|
|
|
@ -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"; }
|
||||
|
|
|
@ -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";
|
||||
})
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -3,7 +3,6 @@
|
|||
{ ... }:
|
||||
|
||||
{
|
||||
boot.loader.grub.version = 2;
|
||||
boot.loader.grub.device = "nodev";
|
||||
|
||||
boot.initrd.kernelModules =
|
||||
|
|
|
@ -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'
|
||||
|
|
|
@ -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
35
nixos/tests/harmonia.nix
Normal 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")
|
||||
'';
|
||||
}
|
|
@ -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 = ''
|
||||
|
|
|
@ -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")
|
||||
'';
|
||||
})
|
||||
|
|
|
@ -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;
|
||||
};
|
||||
|
||||
|
|
|
@ -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 {
|
||||
|
|
58
pkgs/applications/misc/oranda/default.nix
Normal file
58
pkgs/applications/misc/oranda/default.nix
Normal 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 ];
|
||||
};
|
||||
}
|
27
pkgs/applications/misc/osmtogeojson/default.nix
Normal file
27
pkgs/applications/misc/osmtogeojson/default.nix
Normal 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;
|
||||
};
|
||||
}
|
2967
pkgs/applications/misc/osmtogeojson/package-lock.json
generated
Normal file
2967
pkgs/applications/misc/osmtogeojson/package-lock.json
generated
Normal file
File diff suppressed because it is too large
Load diff
|
@ -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;
|
||||
|
|
|
@ -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",
|
||||
|
|
35
pkgs/applications/networking/cluster/zarf/default.nix
Normal file
35
pkgs/applications/networking/cluster/zarf/default.nix
Normal 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 ];
|
||||
};
|
||||
}
|
|
@ -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";
|
||||
|
|
|
@ -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;
|
||||
};
|
||||
}
|
||||
|
|
|
@ -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 = [
|
||||
|
|
|
@ -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";
|
||||
})
|
||||
];
|
||||
|
||||
|
|
|
@ -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;
|
||||
};
|
||||
}
|
||||
|
|
|
@ -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 ];
|
||||
|
|
|
@ -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=";
|
||||
|
|
|
@ -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 ];
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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"
|
||||
}
|
||||
|
|
|
@ -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=";
|
||||
}
|
||||
|
|
|
@ -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=";
|
||||
};
|
||||
}
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
import ./generic.nix {
|
||||
version = "1.30.0";
|
||||
sha256 = "sha256-/bs3bwgkLZF5IqaiKnc5gCF/r6MQBG/F1kWUkK8j2s0=";
|
||||
version = "1.31.0";
|
||||
sha256 = "sha256-8cjs6eHjWAbDRBvyT75mbN3Y7vN1WSwZzY/uRwHNVFg=";
|
||||
}
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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;
|
||||
}
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -368,6 +368,9 @@ package-maintainers:
|
|||
- taffybar
|
||||
- arbtt
|
||||
- lentil
|
||||
shlok:
|
||||
- streamly-archive
|
||||
- streamly-lmdb
|
||||
sorki:
|
||||
- cayenne-lpp
|
||||
- blockfrost-client
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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;
|
||||
|
||||
}
|
||||
|
|
1651
pkgs/development/haskell-modules/hackage-packages.nix
generated
1651
pkgs/development/haskell-modules/hackage-packages.nix
generated
File diff suppressed because it is too large
Load diff
|
@ -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 = {
|
||||
|
|
|
@ -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/";
|
||||
|
|
|
@ -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;
|
||||
};
|
||||
}
|
||||
|
|
|
@ -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 ];
|
||||
|
|
70
pkgs/development/python-modules/ax/default.nix
Normal file
70
pkgs/development/python-modules/ax/default.nix
Normal 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 ];
|
||||
};
|
||||
}
|
51
pkgs/development/python-modules/botorch/default.nix
Normal file
51
pkgs/development/python-modules/botorch/default.nix
Normal 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 ];
|
||||
};
|
||||
}
|
|
@ -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
|
||||
|
|
|
@ -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 ];
|
||||
};
|
||||
|
|
|
@ -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";
|
||||
|
|
|
@ -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 ];
|
||||
};
|
||||
}
|
||||
|
|
|
@ -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;
|
||||
};
|
||||
}
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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 ];
|
||||
};
|
||||
}
|
|
@ -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
|
||||
|
|
|
@ -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 ];
|
||||
};
|
||||
}
|
|
@ -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 = ''
|
||||
|
|
|
@ -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 =
|
48
pkgs/development/python-modules/django-libsass/default.nix
Normal file
48
pkgs/development/python-modules/django-libsass/default.nix
Normal 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 ];
|
||||
};
|
||||
}
|
|
@ -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 = [
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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 = [
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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 = [
|
||||
|
|
|
@ -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 = [
|
||||
|
|
51
pkgs/development/python-modules/gpytorch/default.nix
Normal file
51
pkgs/development/python-modules/gpytorch/default.nix
Normal 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 ];
|
||||
};
|
||||
}
|
|
@ -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
|
||||
];
|
||||
};
|
||||
|
||||
|
|
46
pkgs/development/python-modules/linear_operator/default.nix
Normal file
46
pkgs/development/python-modules/linear_operator/default.nix
Normal 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 ];
|
||||
};
|
||||
}
|
|
@ -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;
|
||||
|
|
|
@ -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";
|
||||
};
|
||||
}
|
||||
|
|
|
@ -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 ];
|
||||
};
|
||||
}
|
||||
|
|
|
@ -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 = ''
|
||||
|
|
|
@ -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 = [
|
||||
|
|
|
@ -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 ];
|
||||
};
|
||||
}
|
||||
|
|
|
@ -1,11 +1,11 @@
|
|||
{
|
||||
cp39 = {
|
||||
sha256 = "596811ae6b41e50f038e0a7cdf0a5320151508d74bac84795bbccad4f6adc6a9";
|
||||
sha256 = "4889b457363a3cfa52088b3572b864ebb391806371bc59b2bb047e44f999bb32";
|
||||
};
|
||||
cp310 = {
|
||||
sha256 = "b19d381d425259c80b7a9b14aac9d898637ce262d91baeb9569999de3b043967";
|
||||
sha256 = "5ed5a29795b122e9e2b832d5224ab9b1cc235beab700d2a413b23c63b3d3c80c";
|
||||
};
|
||||
cp311 = {
|
||||
sha256 = "d86126b6ab5113a3be35281d5699bad731c8f90e02cf6561057017df9312f0a5";
|
||||
sha256 = "d316861298f6e996f4841e4160ed38dc289f81cf0ffe9874dc14ef7e4e5a9190";
|
||||
};
|
||||
}
|
||||
|
|
|
@ -57,7 +57,7 @@
|
|||
|
||||
let
|
||||
pname = "ray";
|
||||
version = "2.3.0";
|
||||
version = "2.4.0";
|
||||
in
|
||||
buildPythonPackage rec {
|
||||
inherit pname version;
|
||||
|
|
61
pkgs/development/python-modules/rouge-score/default.nix
Normal file
61
pkgs/development/python-modules/rouge-score/default.nix
Normal 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 ];
|
||||
};
|
||||
}
|
|
@ -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 = [
|
||||
|
|
|
@ -44,5 +44,6 @@ buildPythonPackage rec {
|
|||
homepage = "https://github.com/majidaldo/Theano-PyMC";
|
||||
license = lib.licenses.asl20;
|
||||
maintainers = with lib.maintainers; [ nidabdella ];
|
||||
broken = true;
|
||||
};
|
||||
}
|
||||
|
|
|
@ -100,5 +100,6 @@ in buildPythonPackage rec {
|
|||
description = "A Python library for large-scale array computation";
|
||||
license = licenses.bsd3;
|
||||
maintainers = [ ];
|
||||
broken = true;
|
||||
};
|
||||
}
|
||||
|
|
31
pkgs/development/tools/bin2c/default.nix
Normal file
31
pkgs/development/tools/bin2c/default.nix
Normal 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;
|
||||
};
|
||||
}
|
|
@ -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
Loading…
Reference in a new issue