mirror of
https://github.com/NixOS/nixpkgs.git
synced 2024-11-17 19:21:04 +00:00
Merge master into staging-next
This commit is contained in:
commit
8693fc15c4
2
.github/labeler.yml
vendored
2
.github/labeler.yml
vendored
|
@ -380,7 +380,7 @@
|
|||
- any-glob-to-any-file:
|
||||
- pkgs/applications/editors/vscode/**/*
|
||||
|
||||
"6.topic: xen":
|
||||
"6.topic: xen-project":
|
||||
- any:
|
||||
- changed-files:
|
||||
- any-glob-to-any-file:
|
||||
|
|
|
@ -1016,6 +1016,12 @@
|
|||
githubId = 50754358;
|
||||
name = "Alex Winter";
|
||||
};
|
||||
alfarel = {
|
||||
email = "alfarelcynthesis@proton.me";
|
||||
github = "alfarelcynthesis";
|
||||
githubId = 104072649;
|
||||
name = "Cynth";
|
||||
};
|
||||
algram = {
|
||||
email = "aliasgram@gmail.com";
|
||||
github = "Algram";
|
||||
|
@ -8357,6 +8363,12 @@
|
|||
githubId = 287769;
|
||||
name = "Sergii Paryzhskyi";
|
||||
};
|
||||
hehongbo = {
|
||||
name = "Hongbo";
|
||||
github = "hehongbo";
|
||||
githubId = 665472;
|
||||
matrix = "@hehongbo:matrix.org";
|
||||
};
|
||||
heijligen = {
|
||||
email = "src@posteo.de";
|
||||
github = "heijligen";
|
||||
|
@ -9371,6 +9383,13 @@
|
|||
github = "jacbart";
|
||||
githubId = 7909687;
|
||||
};
|
||||
jacekpoz = {
|
||||
name = "Jacek Poziemski";
|
||||
email = "jacekpoz@proton.me";
|
||||
matrix = "@jacekpoz:jacekpoz.pl";
|
||||
github = "jacekpoz";
|
||||
githubId = 64381190;
|
||||
};
|
||||
jacfal = {
|
||||
name = "Jakub Pravda";
|
||||
email = "me@jakubpravda.net";
|
||||
|
@ -17472,6 +17491,12 @@
|
|||
githubId = 5653911;
|
||||
name = "Rampoina";
|
||||
};
|
||||
rane = {
|
||||
email = "rane+nix@junkyard.systems";
|
||||
github = "digitalrane";
|
||||
githubId = 1829286;
|
||||
name = "Rane";
|
||||
};
|
||||
ranfdev = {
|
||||
email = "ranfdev@gmail.com";
|
||||
name = "Lorenzo Miglietta";
|
||||
|
@ -22605,6 +22630,12 @@
|
|||
githubId = 24979302;
|
||||
name = "Vladimír Zahradník";
|
||||
};
|
||||
wgunderwood = {
|
||||
email = "wg.underwood13@gmail.com";
|
||||
github = "WGUNDERWOOD";
|
||||
githubId = 42812654;
|
||||
name = "William Underwood";
|
||||
};
|
||||
wheelsandmetal = {
|
||||
email = "jakob@schmutz.co.uk";
|
||||
github = "wheelsandmetal";
|
||||
|
|
|
@ -1022,6 +1022,19 @@ with lib.maintainers;
|
|||
shortName = "WDZ GmbH";
|
||||
};
|
||||
|
||||
xen = {
|
||||
members = [
|
||||
hehongbo
|
||||
lach
|
||||
rane
|
||||
sigmasquadron
|
||||
];
|
||||
scope = "Maintain the Xen Project Hypervisor and the related tooling ecosystem.";
|
||||
shortName = "Xen Project Hypervisor";
|
||||
enableFeatureFreezePing = true;
|
||||
githubTeams = [ "xen-project" ];
|
||||
};
|
||||
|
||||
xfce = {
|
||||
members = [
|
||||
bobby285271
|
||||
|
|
|
@ -49,13 +49,13 @@
|
|||
- Support for mounting filesystems from block devices protected with [dm-verity](https://docs.kernel.org/admin-guide/device-mapper/verity.html)
|
||||
was added through the `boot.initrd.systemd.dmVerity` option.
|
||||
|
||||
- The [Xen Hypervisor](https://xenproject.org) is once again available as a virtualisation option under [`virtualisation.xen`](#opt-virtualisation.xen.enable).
|
||||
- The [Xen Project Hypervisor](https://xenproject.org) is once again available as a virtualisation option under [`virtualisation.xen`](#opt-virtualisation.xen.enable).
|
||||
- This release includes Xen [4.17.5](https://wiki.xenproject.org/wiki/Xen_Project_4.17_Release_Notes), [4.18.3](https://wiki.xenproject.org/wiki/Xen_Project_4.18_Release_Notes) and [4.19.0](https://wiki.xenproject.org/wiki/Xen_Project_4.19_Release_Notes), as well as support for booting the hypervisor on EFI systems.
|
||||
::: {.warning}
|
||||
Booting into Xen through a legacy BIOS bootloader or with the legacy script-based Stage 1 initrd have been **deprecated**. Only EFI booting and the new systemd-based Stage 1 initrd are supported.
|
||||
Booting into the Xen Project Hypervisor through a legacy BIOS bootloader or with the legacy script-based Stage 1 initrd have been **deprecated**. Only EFI booting and the new systemd-based Stage 1 initrd are supported.
|
||||
:::
|
||||
- There are two flavours of Xen available by default: `xen`, which includes all built-in components, and `xen-slim`, which replaces the built-in components with their Nixpkgs equivalents.
|
||||
- The `qemu-xen-traditional` component has been deprecated by upstream Xen, and is no longer available in any of the Xen packages.
|
||||
- The `qemu-xen-traditional` component has been deprecated by the upstream Xen Project, and is no longer available in any of the Xen Project Hypervisor packages.
|
||||
- The OCaml-based Xen Store can now be configured using [`virtualisation.xen.store.settings`](#opt-virtualisation.xen.store.settings).
|
||||
- The `virtualisation.xen.bridge` options have been deprecated in this release cycle. Users who need network bridges are encouraged to set up their own networking configurations.
|
||||
|
||||
|
@ -155,6 +155,8 @@
|
|||
|
||||
- [Immich](https://github.com/immich-app/immich), a self-hosted photo and video backup solution. Available as [services.immich](#opt-services.immich.enable).
|
||||
|
||||
- [obs-studio](https://obsproject.com/), Free and open source software for video recording and live streaming. Available as [programs.obs-studio.enable](#opt-programs.obs-studio.enable).
|
||||
|
||||
## Backward Incompatibilities {#sec-release-24.11-incompatibilities}
|
||||
|
||||
- The `sound` options have been removed or renamed, as they had a lot of unintended side effects. See [below](#sec-release-24.11-migration-sound) for details.
|
||||
|
|
|
@ -259,6 +259,7 @@
|
|||
./programs/oblogout.nix
|
||||
./programs/oddjobd.nix
|
||||
./programs/openvpn3.nix
|
||||
./programs/obs-studio.nix
|
||||
./programs/partition-manager.nix
|
||||
./programs/plotinus.nix
|
||||
./programs/pqos-wrapper.nix
|
||||
|
|
64
nixos/modules/programs/obs-studio.nix
Normal file
64
nixos/modules/programs/obs-studio.nix
Normal file
|
@ -0,0 +1,64 @@
|
|||
{
|
||||
pkgs,
|
||||
lib,
|
||||
config,
|
||||
...
|
||||
}:
|
||||
|
||||
let
|
||||
cfg = config.programs.obs-studio;
|
||||
in
|
||||
{
|
||||
options.programs.obs-studio = {
|
||||
enable = lib.mkEnableOption "Free and open source software for video recording and live streaming";
|
||||
|
||||
package = lib.mkPackageOption pkgs "obs-studio" { example = "obs-studio"; };
|
||||
|
||||
finalPackage = lib.mkOption {
|
||||
type = lib.types.package;
|
||||
visible = false;
|
||||
readOnly = true;
|
||||
description = "Resulting customized OBS Studio package.";
|
||||
};
|
||||
|
||||
plugins = lib.mkOption {
|
||||
default = [ ];
|
||||
example = lib.literalExpression "[ pkgs.obs-studio-plugins.wlrobs ]";
|
||||
description = "Optional OBS plugins.";
|
||||
type = lib.types.listOf lib.types.package;
|
||||
};
|
||||
|
||||
enableVirtualCamera = lib.mkOption {
|
||||
type = lib.types.bool;
|
||||
default = false;
|
||||
description = ''
|
||||
Installs and sets up the v4l2loopback kernel module, necessary for OBS
|
||||
to start a virtual camera.
|
||||
'';
|
||||
};
|
||||
};
|
||||
|
||||
config = lib.mkIf cfg.enable {
|
||||
programs.obs-studio.finalPackage = pkgs.wrapOBS.override { obs-studio = cfg.package; } {
|
||||
plugins = cfg.plugins;
|
||||
};
|
||||
|
||||
environment.systemPackages = [ cfg.finalPackage ];
|
||||
|
||||
boot = lib.mkIf cfg.enableVirtualCamera {
|
||||
kernelModules = [ "v4l2loopback" ];
|
||||
extraModulePackages = [ config.boot.kernelPackages.v4l2loopback ];
|
||||
|
||||
extraModprobeConfig = ''
|
||||
options v4l2loopback devices=1 video_nr=1 card_label="OBS Cam" exclusive_caps=1
|
||||
'';
|
||||
};
|
||||
|
||||
security.polkit.enable = lib.mkIf cfg.enableVirtualCamera true;
|
||||
};
|
||||
|
||||
meta.maintainers = with lib.maintainers; [
|
||||
CaptainJawZ
|
||||
GaetanLepage
|
||||
];
|
||||
}
|
|
@ -1127,6 +1127,11 @@ in {
|
|||
|
||||
environment.systemPackages = [ gitlab-rake gitlab-rails cfg.packages.gitlab-shell ];
|
||||
|
||||
systemd.slices.system-gitlab = {
|
||||
description = "GitLab DevOps Platform Slice";
|
||||
documentation = [ "https://docs.gitlab.com/" ];
|
||||
};
|
||||
|
||||
systemd.targets.gitlab = {
|
||||
description = "Common target for all GitLab services.";
|
||||
wantedBy = [ "multi-user.target" ];
|
||||
|
@ -1197,6 +1202,7 @@ in {
|
|||
'';
|
||||
|
||||
serviceConfig = {
|
||||
Slice = "system-gitlab.slice";
|
||||
User = pgsql.superUser;
|
||||
Type = "oneshot";
|
||||
RemainAfterExit = true;
|
||||
|
@ -1220,6 +1226,9 @@ in {
|
|||
unitConfig = {
|
||||
ConditionPathExists = "!${cfg.registry.certFile}";
|
||||
};
|
||||
serviceConfig = {
|
||||
Slice = "system-gitlab.slice";
|
||||
};
|
||||
};
|
||||
|
||||
# Ensure Docker Registry launches after the certificate generation job
|
||||
|
@ -1308,6 +1317,7 @@ in {
|
|||
TimeoutSec = "infinity";
|
||||
Restart = "on-failure";
|
||||
WorkingDirectory = "${cfg.packages.gitlab}/share/gitlab";
|
||||
Slice = "system-gitlab.slice";
|
||||
RemainAfterExit = true;
|
||||
|
||||
ExecStartPre = let
|
||||
|
@ -1424,6 +1434,7 @@ in {
|
|||
TimeoutSec = "infinity";
|
||||
Restart = "on-failure";
|
||||
WorkingDirectory = "${cfg.packages.gitlab}/share/gitlab";
|
||||
Slice = "system-gitlab.slice";
|
||||
RemainAfterExit = true;
|
||||
|
||||
ExecStart = pkgs.writeShellScript "gitlab-db-config" ''
|
||||
|
@ -1480,6 +1491,7 @@ in {
|
|||
TimeoutSec = "infinity";
|
||||
Restart = "always";
|
||||
WorkingDirectory = "${cfg.packages.gitlab}/share/gitlab";
|
||||
Slice = "system-gitlab.slice";
|
||||
ExecStart = utils.escapeSystemdExecArgs (
|
||||
[
|
||||
"${cfg.packages.gitlab}/share/gitlab/bin/sidekiq-cluster"
|
||||
|
@ -1512,6 +1524,7 @@ in {
|
|||
Restart = "on-failure";
|
||||
WorkingDirectory = gitlabEnv.HOME;
|
||||
RuntimeDirectory = "gitaly";
|
||||
Slice = "system-gitlab.slice";
|
||||
ExecStart = "${cfg.packages.gitaly}/bin/gitaly ${gitalyToml}";
|
||||
};
|
||||
};
|
||||
|
@ -1573,6 +1586,7 @@ in {
|
|||
WorkingDirectory = gitlabEnv.HOME;
|
||||
RuntimeDirectory = "gitlab-pages";
|
||||
RuntimeDirectoryMode = "0700";
|
||||
Slice = "system-gitlab.slice";
|
||||
};
|
||||
};
|
||||
|
||||
|
@ -1596,6 +1610,7 @@ in {
|
|||
TimeoutSec = "infinity";
|
||||
Restart = "on-failure";
|
||||
WorkingDirectory = gitlabEnv.HOME;
|
||||
Slice = "system-gitlab.slice";
|
||||
ExecStartPre = pkgs.writeShellScript "gitlab-workhorse-pre-start" ''
|
||||
set -o errexit -o pipefail -o nounset
|
||||
shopt -s dotglob nullglob inherit_errexit
|
||||
|
@ -1637,6 +1652,7 @@ in {
|
|||
Group = cfg.group;
|
||||
ExecStart = "${cfg.packages.gitlab.rubyEnv}/bin/bundle exec mail_room -c ${cfg.statePath}/config/mail_room.yml";
|
||||
WorkingDirectory = gitlabEnv.HOME;
|
||||
Slice = "system-gitlab.slice";
|
||||
};
|
||||
};
|
||||
|
||||
|
@ -1671,6 +1687,7 @@ in {
|
|||
TimeoutSec = "infinity";
|
||||
Restart = "on-failure";
|
||||
WorkingDirectory = "${cfg.packages.gitlab}/share/gitlab";
|
||||
Slice = "system-gitlab.slice";
|
||||
ExecStart = concatStringsSep " " [
|
||||
"${cfg.packages.gitlab.rubyEnv}/bin/bundle" "exec" "puma"
|
||||
"-e production"
|
||||
|
@ -1695,6 +1712,7 @@ in {
|
|||
serviceConfig = {
|
||||
User = cfg.user;
|
||||
Group = cfg.group;
|
||||
Slice = "system-gitlab.slice";
|
||||
ExecStart = "${gitlab-rake}/bin/gitlab-rake gitlab:backup:create";
|
||||
};
|
||||
};
|
||||
|
|
|
@ -1,7 +1,13 @@
|
|||
{ config, options, lib, pkgs, stdenv, ... }:
|
||||
{
|
||||
config,
|
||||
lib,
|
||||
pkgs,
|
||||
...
|
||||
}:
|
||||
let
|
||||
cfg = config.services.pleroma;
|
||||
in {
|
||||
in
|
||||
{
|
||||
options = {
|
||||
services.pleroma = with lib; {
|
||||
enable = mkEnableOption "pleroma";
|
||||
|
@ -48,7 +54,7 @@ in {
|
|||
|
||||
Have a look to Pleroma section in the NixOS manual for more
|
||||
information.
|
||||
'';
|
||||
'';
|
||||
};
|
||||
|
||||
secretConfigFile = mkOption {
|
||||
|
@ -73,7 +79,7 @@ in {
|
|||
group = cfg.group;
|
||||
isSystemUser = true;
|
||||
};
|
||||
groups."${cfg.group}" = {};
|
||||
groups."${cfg.group}" = { };
|
||||
};
|
||||
|
||||
environment.systemPackages = [ cfg.package ];
|
||||
|
@ -90,57 +96,79 @@ in {
|
|||
import_config "${cfg.secretConfigFile}"
|
||||
'';
|
||||
|
||||
systemd.services.pleroma = {
|
||||
description = "Pleroma social network";
|
||||
wants = [ "network-online.target" ];
|
||||
after = [ "network-online.target" "postgresql.service" ];
|
||||
wantedBy = [ "multi-user.target" ];
|
||||
restartTriggers = [ config.environment.etc."/pleroma/config.exs".source ];
|
||||
environment.RELEASE_COOKIE = "/var/lib/pleroma/.cookie";
|
||||
serviceConfig = {
|
||||
User = cfg.user;
|
||||
Group = cfg.group;
|
||||
Type = "exec";
|
||||
WorkingDirectory = "~";
|
||||
StateDirectory = "pleroma pleroma/static pleroma/uploads";
|
||||
StateDirectoryMode = "700";
|
||||
systemd.services =
|
||||
let
|
||||
commonSystemdServiceConfig = {
|
||||
User = cfg.user;
|
||||
Group = cfg.group;
|
||||
WorkingDirectory = "~";
|
||||
StateDirectory = "pleroma pleroma/static pleroma/uploads";
|
||||
StateDirectoryMode = "700";
|
||||
# Systemd sandboxing directives.
|
||||
# Taken from the upstream contrib systemd service at
|
||||
# pleroma/installation/pleroma.service
|
||||
PrivateTmp = true;
|
||||
ProtectHome = true;
|
||||
ProtectSystem = "full";
|
||||
PrivateDevices = false;
|
||||
NoNewPrivileges = true;
|
||||
CapabilityBoundingSet = "~CAP_SYS_ADMIN";
|
||||
};
|
||||
|
||||
# Checking the conf file is there then running the database
|
||||
# migration before each service start, just in case there are
|
||||
# some pending ones.
|
||||
#
|
||||
# It's sub-optimal as we'll always run this, even if pleroma
|
||||
# has not been updated. But the no-op process is pretty fast.
|
||||
# Better be safe than sorry migration-wise.
|
||||
ExecStartPre =
|
||||
let preScript = pkgs.writers.writeBashBin "pleromaStartPre" ''
|
||||
if [ ! -f /var/lib/pleroma/.cookie ]
|
||||
then
|
||||
echo "Creating cookie file"
|
||||
dd if=/dev/urandom bs=1 count=16 | hexdump -e '16/1 "%02x"' > /var/lib/pleroma/.cookie
|
||||
fi
|
||||
${cfg.package}/bin/pleroma_ctl migrate
|
||||
'';
|
||||
in "${preScript}/bin/pleromaStartPre";
|
||||
in
|
||||
{
|
||||
pleroma-migrations = {
|
||||
description = "Pleroma social network migrations";
|
||||
wants = [ "network-online.target" ];
|
||||
after = [
|
||||
"network-online.target"
|
||||
"postgresql.service"
|
||||
];
|
||||
wantedBy = [ "pleroma.service" ];
|
||||
environment.RELEASE_COOKIE = "/var/lib/pleroma/.cookie";
|
||||
serviceConfig = commonSystemdServiceConfig // {
|
||||
Type = "oneshot";
|
||||
# Checking the conf file is there then running the database
|
||||
# migration before each service start, just in case there are
|
||||
# some pending ones.
|
||||
#
|
||||
# It's sub-optimal as we'll always run this, even if pleroma
|
||||
# has not been updated. But the no-op process is pretty fast.
|
||||
# Better be safe than sorry migration-wise.
|
||||
ExecStart =
|
||||
let
|
||||
preScript = pkgs.writers.writeBashBin "pleroma-migrations" ''
|
||||
if [ ! -f /var/lib/pleroma/.cookie ]
|
||||
then
|
||||
echo "Creating cookie file"
|
||||
dd if=/dev/urandom bs=1 count=16 | hexdump -e '16/1 "%02x"' > /var/lib/pleroma/.cookie
|
||||
fi
|
||||
${cfg.package}/bin/pleroma_ctl migrate
|
||||
'';
|
||||
in
|
||||
"${preScript}/bin/pleroma-migrations";
|
||||
};
|
||||
# disksup requires bash
|
||||
path = [ pkgs.bash ];
|
||||
};
|
||||
|
||||
ExecStart = "${cfg.package}/bin/pleroma start";
|
||||
ExecStop = "${cfg.package}/bin/pleroma stop";
|
||||
ExecReload = "${pkgs.coreutils}/bin/kill -HUP $MAINPID";
|
||||
|
||||
# Systemd sandboxing directives.
|
||||
# Taken from the upstream contrib systemd service at
|
||||
# pleroma/installation/pleroma.service
|
||||
PrivateTmp = true;
|
||||
ProtectHome = true;
|
||||
ProtectSystem = "full";
|
||||
PrivateDevices = false;
|
||||
NoNewPrivileges = true;
|
||||
CapabilityBoundingSet = "~CAP_SYS_ADMIN";
|
||||
pleroma = {
|
||||
description = "Pleroma social network";
|
||||
wants = [ "pleroma-migrations.service" ];
|
||||
after = [ "pleroma-migrations.service" ];
|
||||
wantedBy = [ "multi-user.target" ];
|
||||
restartTriggers = [ config.environment.etc."/pleroma/config.exs".source ];
|
||||
environment.RELEASE_COOKIE = "/var/lib/pleroma/.cookie";
|
||||
serviceConfig = commonSystemdServiceConfig // {
|
||||
Type = "exec";
|
||||
ExecStart = "${cfg.package}/bin/pleroma start";
|
||||
ExecStop = "${cfg.package}/bin/pleroma stop";
|
||||
ExecReload = "${pkgs.coreutils}/bin/kill -HUP $MAINPID";
|
||||
};
|
||||
# disksup requires bash
|
||||
path = [ pkgs.bash ];
|
||||
};
|
||||
};
|
||||
# disksup requires bash
|
||||
path = [ pkgs.bash ];
|
||||
};
|
||||
|
||||
};
|
||||
meta.maintainers = with lib.maintainers; [ picnoir ];
|
||||
meta.doc = ./pleroma.md;
|
||||
|
|
|
@ -115,8 +115,10 @@ in {
|
|||
environment.systemPackages = [ cfg.package ]; # for the CLI
|
||||
systemd.packages = [ cfg.package ];
|
||||
systemd.services.tailscaled = {
|
||||
after = lib.mkIf (config.networking.networkmanager.enable) [ "NetworkManager-wait-online.service" ];
|
||||
wantedBy = [ "multi-user.target" ];
|
||||
path = [
|
||||
(builtins.dirOf config.security.wrapperDir) # for `su` to use taildrive with correct access rights
|
||||
pkgs.procps # for collecting running services (opt-in feature)
|
||||
pkgs.getent # for `getent` to look up user shells
|
||||
pkgs.kmod # required to pass tailscale's v6nat check
|
||||
|
|
|
@ -148,6 +148,11 @@ in
|
|||
example = "127.0.0.1";
|
||||
description = "Hostname or address of the postgresql server. If an absolute path is given here, it will be interpreted as a unix socket path.";
|
||||
};
|
||||
port = mkOption {
|
||||
type = types.port;
|
||||
default = 5432;
|
||||
description = "Port of the postgresql server.";
|
||||
};
|
||||
user = mkOption {
|
||||
type = types.str;
|
||||
default = "immich";
|
||||
|
|
|
@ -1,14 +1,10 @@
|
|||
{ config, lib, options, pkgs, utils, ... }:
|
||||
{ config, lib, pkgs, utils, ... }:
|
||||
#
|
||||
# TODO: zfs tunables
|
||||
|
||||
with utils;
|
||||
with lib;
|
||||
|
||||
let
|
||||
|
||||
cfgZfs = config.boot.zfs;
|
||||
optZfs = options.boot.zfs;
|
||||
cfgExpandOnBoot = config.services.zfs.expandOnBoot;
|
||||
cfgSnapshots = config.services.zfs.autoSnapshot;
|
||||
cfgSnapFlags = cfgSnapshots.flags;
|
||||
|
@ -17,7 +13,7 @@ let
|
|||
cfgZED = config.services.zfs.zed;
|
||||
|
||||
selectModulePackage = package: config.boot.kernelPackages.${package.kernelModuleAttribute};
|
||||
clevisDatasets = attrNames (filterAttrs (device: _: any (e: e.fsType == "zfs" && (fsNeededForBoot e) && (e.device == device || hasPrefix "${device}/" e.device)) config.system.build.fileSystems) config.boot.initrd.clevis.devices);
|
||||
clevisDatasets = lib.attrNames (lib.filterAttrs (device: _: lib.any (e: e.fsType == "zfs" && (utils.fsNeededForBoot e) && (e.device == device || lib.hasPrefix "${device}/" e.device)) config.system.build.fileSystems) config.boot.initrd.clevis.devices);
|
||||
|
||||
inInitrd = config.boot.initrd.supportedFilesystems.zfs or false;
|
||||
inSystem = config.boot.supportedFilesystems.zfs or false;
|
||||
|
@ -28,17 +24,17 @@ let
|
|||
|
||||
zfsAutoSnap = "${autosnapPkg}/bin/zfs-auto-snapshot";
|
||||
|
||||
datasetToPool = x: elemAt (splitString "/" x) 0;
|
||||
datasetToPool = x: lib.elemAt (lib.splitString "/" x) 0;
|
||||
|
||||
fsToPool = fs: datasetToPool fs.device;
|
||||
|
||||
zfsFilesystems = filter (x: x.fsType == "zfs") config.system.build.fileSystems;
|
||||
zfsFilesystems = lib.filter (x: x.fsType == "zfs") config.system.build.fileSystems;
|
||||
|
||||
allPools = unique ((map fsToPool zfsFilesystems) ++ cfgZfs.extraPools);
|
||||
allPools = lib.unique ((map fsToPool zfsFilesystems) ++ cfgZfs.extraPools);
|
||||
|
||||
rootPools = unique (map fsToPool (filter fsNeededForBoot zfsFilesystems));
|
||||
rootPools = lib.unique (map fsToPool (lib.filter utils.fsNeededForBoot zfsFilesystems));
|
||||
|
||||
dataPools = unique (filter (pool: !(elem pool rootPools)) allPools);
|
||||
dataPools = lib.unique (lib.filter (pool: !(lib.elem pool rootPools)) allPools);
|
||||
|
||||
snapshotNames = [ "frequent" "hourly" "daily" "weekly" "monthly" ];
|
||||
|
||||
|
@ -89,7 +85,7 @@ let
|
|||
'';
|
||||
|
||||
getPoolFilesystems = pool:
|
||||
filter (x: x.fsType == "zfs" && (fsToPool x) == pool) config.system.build.fileSystems;
|
||||
lib.filter (x: x.fsType == "zfs" && (fsToPool x) == pool) config.system.build.fileSystems;
|
||||
|
||||
getPoolMounts = prefix: pool:
|
||||
let
|
||||
|
@ -98,36 +94,36 @@ let
|
|||
# Remove the "/" suffix because even though most mountpoints
|
||||
# won't have it, the "/" mountpoint will, and we can't have the
|
||||
# trailing slash in "/sysroot/" in stage 1.
|
||||
mountPoint = fs: escapeSystemdPath (prefix + (lib.removeSuffix "/" fs.mountPoint));
|
||||
mountPoint = fs: utils.escapeSystemdPath (prefix + (lib.removeSuffix "/" fs.mountPoint));
|
||||
|
||||
hasUsr = lib.any (fs: fs.mountPoint == "/usr") poolFSes;
|
||||
in
|
||||
map (x: "${mountPoint x}.mount") poolFSes
|
||||
++ lib.optional hasUsr "sysusr-usr.mount";
|
||||
|
||||
getKeyLocations = pool: if isBool cfgZfs.requestEncryptionCredentials then {
|
||||
getKeyLocations = pool: if lib.isBool cfgZfs.requestEncryptionCredentials then {
|
||||
hasKeys = cfgZfs.requestEncryptionCredentials;
|
||||
command = "${cfgZfs.package}/sbin/zfs list -rHo name,keylocation,keystatus -t volume,filesystem ${pool}";
|
||||
} else let
|
||||
keys = filter (x: datasetToPool x == pool) cfgZfs.requestEncryptionCredentials;
|
||||
keys = lib.filter (x: datasetToPool x == pool) cfgZfs.requestEncryptionCredentials;
|
||||
in {
|
||||
hasKeys = keys != [];
|
||||
command = "${cfgZfs.package}/sbin/zfs list -Ho name,keylocation,keystatus -t volume,filesystem ${toString keys}";
|
||||
};
|
||||
|
||||
createImportService = { pool, systemd, force, prefix ? "" }:
|
||||
nameValuePair "zfs-import-${pool}" {
|
||||
lib.nameValuePair "zfs-import-${pool}" {
|
||||
description = "Import ZFS pool \"${pool}\"";
|
||||
# We wait for systemd-udev-settle to ensure devices are available,
|
||||
# but don't *require* it, because mounts shouldn't be killed if it's stopped.
|
||||
# In the future, hopefully someone will complete this:
|
||||
# https://github.com/zfsonlinux/zfs/pull/4943
|
||||
wants = [ "systemd-udev-settle.service" ] ++ optional (config.boot.initrd.clevis.useTang) "network-online.target";
|
||||
wants = [ "systemd-udev-settle.service" ] ++ lib.optional (config.boot.initrd.clevis.useTang) "network-online.target";
|
||||
after = [
|
||||
"systemd-udev-settle.service"
|
||||
"systemd-modules-load.service"
|
||||
"systemd-ask-password-console.service"
|
||||
] ++ optional (config.boot.initrd.clevis.useTang) "network-online.target";
|
||||
] ++ lib.optional (config.boot.initrd.clevis.useTang) "network-online.target";
|
||||
requiredBy = getPoolMounts prefix pool ++ [ "zfs-import.target" ];
|
||||
before = getPoolMounts prefix pool ++ [ "shutdown.target" "zfs-import.target" ];
|
||||
conflicts = [ "shutdown.target" ];
|
||||
|
@ -138,7 +134,7 @@ let
|
|||
Type = "oneshot";
|
||||
RemainAfterExit = true;
|
||||
};
|
||||
environment.ZFS_FORCE = optionalString force "-f";
|
||||
environment.ZFS_FORCE = lib.optionalString force "-f";
|
||||
script = let
|
||||
keyLocations = getKeyLocations pool;
|
||||
in (importLib {
|
||||
|
@ -157,10 +153,10 @@ let
|
|||
poolImported "${pool}" || poolImport "${pool}" # Try one last time, e.g. to import a degraded pool.
|
||||
fi
|
||||
if poolImported "${pool}"; then
|
||||
${optionalString config.boot.initrd.clevis.enable (concatMapStringsSep "\n" (elem: "clevis decrypt < /etc/clevis/${elem}.jwe | zfs load-key ${elem} || true ") (filter (p: (elemAt (splitString "/" p) 0) == pool) clevisDatasets))}
|
||||
${lib.optionalString config.boot.initrd.clevis.enable (lib.concatMapStringsSep "\n" (elem: "clevis decrypt < /etc/clevis/${elem}.jwe | zfs load-key ${elem} || true ") (lib.filter (p: (lib.elemAt (lib.splitString "/" p) 0) == pool) clevisDatasets))}
|
||||
|
||||
|
||||
${optionalString keyLocations.hasKeys ''
|
||||
${lib.optionalString keyLocations.hasKeys ''
|
||||
${keyLocations.command} | while IFS=$'\t' read ds kl ks; do
|
||||
{
|
||||
if [[ "$ks" != unavailable ]]; then
|
||||
|
@ -193,15 +189,15 @@ let
|
|||
'';
|
||||
};
|
||||
|
||||
zedConf = generators.toKeyValue {
|
||||
mkKeyValue = generators.mkKeyValueDefault {
|
||||
zedConf = lib.generators.toKeyValue {
|
||||
mkKeyValue = lib.generators.mkKeyValueDefault {
|
||||
mkValueString = v:
|
||||
if isInt v then toString v
|
||||
else if isString v then "\"${v}\""
|
||||
if lib.isInt v then toString v
|
||||
else if lib.isString v then "\"${v}\""
|
||||
else if true == v then "1"
|
||||
else if false == v then "0"
|
||||
else if isList v then "\"" + (concatStringsSep " " v) + "\""
|
||||
else err "this value is" (toString v);
|
||||
else if lib.isList v then "\"" + (lib.concatStringsSep " " v) + "\""
|
||||
else lib.err "this value is" (toString v);
|
||||
} "=";
|
||||
} cfgZED.settings;
|
||||
in
|
||||
|
@ -209,38 +205,38 @@ in
|
|||
{
|
||||
|
||||
imports = [
|
||||
(mkRemovedOptionModule [ "boot" "zfs" "enableLegacyCrypto" ] "The corresponding package was removed from nixpkgs.")
|
||||
(mkRemovedOptionModule [ "boot" "zfs" "enableUnstable" ] "Instead set `boot.zfs.package = pkgs.zfs_unstable;`")
|
||||
(lib.mkRemovedOptionModule [ "boot" "zfs" "enableLegacyCrypto" ] "The corresponding package was removed from nixpkgs.")
|
||||
(lib.mkRemovedOptionModule [ "boot" "zfs" "enableUnstable" ] "Instead set `boot.zfs.package = pkgs.zfs_unstable;`")
|
||||
];
|
||||
|
||||
###### interface
|
||||
|
||||
options = {
|
||||
boot.zfs = {
|
||||
package = mkOption {
|
||||
type = types.package;
|
||||
package = lib.mkOption {
|
||||
type = lib.types.package;
|
||||
default = pkgs.zfs;
|
||||
defaultText = literalExpression "pkgs.zfs";
|
||||
defaultText = lib.literalExpression "pkgs.zfs";
|
||||
description = "Configured ZFS userland tools package, use `pkgs.zfs_unstable` if you want to track the latest staging ZFS branch.";
|
||||
};
|
||||
|
||||
modulePackage = mkOption {
|
||||
modulePackage = lib.mkOption {
|
||||
internal = true; # It is supposed to be selected automatically, but can be overridden by expert users.
|
||||
default = selectModulePackage cfgZfs.package;
|
||||
type = types.package;
|
||||
type = lib.types.package;
|
||||
description = "Configured ZFS kernel module package.";
|
||||
};
|
||||
|
||||
enabled = mkOption {
|
||||
enabled = lib.mkOption {
|
||||
readOnly = true;
|
||||
type = types.bool;
|
||||
type = lib.types.bool;
|
||||
default = inInitrd || inSystem;
|
||||
defaultText = literalMD "`true` if ZFS filesystem support is enabled";
|
||||
defaultText = lib.literalMD "`true` if ZFS filesystem support is enabled";
|
||||
description = "True if ZFS filesystem support is enabled";
|
||||
};
|
||||
|
||||
allowHibernation = mkOption {
|
||||
type = types.bool;
|
||||
allowHibernation = lib.mkOption {
|
||||
type = lib.types.bool;
|
||||
default = false;
|
||||
description = ''
|
||||
Allow hibernation support, this may be a unsafe option depending on your
|
||||
|
@ -248,8 +244,8 @@ in
|
|||
'';
|
||||
};
|
||||
|
||||
extraPools = mkOption {
|
||||
type = types.listOf types.str;
|
||||
extraPools = lib.mkOption {
|
||||
type = lib.types.listOf lib.types.str;
|
||||
default = [];
|
||||
example = [ "tank" "data" ];
|
||||
description = ''
|
||||
|
@ -267,8 +263,8 @@ in
|
|||
'';
|
||||
};
|
||||
|
||||
devNodes = mkOption {
|
||||
type = types.path;
|
||||
devNodes = lib.mkOption {
|
||||
type = lib.types.path;
|
||||
default = "/dev/disk/by-id";
|
||||
description = ''
|
||||
Name of directory from which to import ZFS devices.
|
||||
|
@ -278,8 +274,8 @@ in
|
|||
'';
|
||||
};
|
||||
|
||||
forceImportRoot = mkOption {
|
||||
type = types.bool;
|
||||
forceImportRoot = lib.mkOption {
|
||||
type = lib.types.bool;
|
||||
default = true;
|
||||
description = ''
|
||||
Forcibly import the ZFS root pool(s) during early boot.
|
||||
|
@ -296,8 +292,8 @@ in
|
|||
'';
|
||||
};
|
||||
|
||||
forceImportAll = mkOption {
|
||||
type = types.bool;
|
||||
forceImportAll = lib.mkOption {
|
||||
type = lib.types.bool;
|
||||
default = false;
|
||||
description = ''
|
||||
Forcibly import all ZFS pool(s).
|
||||
|
@ -309,8 +305,8 @@ in
|
|||
'';
|
||||
};
|
||||
|
||||
requestEncryptionCredentials = mkOption {
|
||||
type = types.either types.bool (types.listOf types.str);
|
||||
requestEncryptionCredentials = lib.mkOption {
|
||||
type = lib.types.either lib.types.bool (lib.types.listOf lib.types.str);
|
||||
default = true;
|
||||
example = [ "tank" "data" ];
|
||||
description = ''
|
||||
|
@ -321,8 +317,8 @@ in
|
|||
'';
|
||||
};
|
||||
|
||||
passwordTimeout = mkOption {
|
||||
type = types.int;
|
||||
passwordTimeout = lib.mkOption {
|
||||
type = lib.types.int;
|
||||
default = 0;
|
||||
description = ''
|
||||
Timeout in seconds to wait for password entry for decrypt at boot.
|
||||
|
@ -332,7 +328,7 @@ in
|
|||
};
|
||||
|
||||
removeLinuxDRM = lib.mkOption {
|
||||
type = types.bool;
|
||||
type = lib.types.bool;
|
||||
default = false;
|
||||
description = ''
|
||||
Patch the kernel to change symbols needed by ZFS from
|
||||
|
@ -345,9 +341,9 @@ in
|
|||
};
|
||||
|
||||
services.zfs.autoSnapshot = {
|
||||
enable = mkOption {
|
||||
enable = lib.mkOption {
|
||||
default = false;
|
||||
type = types.bool;
|
||||
type = lib.types.bool;
|
||||
description = ''
|
||||
Enable the (OpenSolaris-compatible) ZFS auto-snapshotting service.
|
||||
Note that you must set the `com.sun:auto-snapshot`
|
||||
|
@ -360,10 +356,10 @@ in
|
|||
'';
|
||||
};
|
||||
|
||||
flags = mkOption {
|
||||
flags = lib.mkOption {
|
||||
default = "-k -p";
|
||||
example = "-k -p --utc";
|
||||
type = types.str;
|
||||
type = lib.types.str;
|
||||
description = ''
|
||||
Flags to pass to the zfs-auto-snapshot command.
|
||||
|
||||
|
@ -379,41 +375,41 @@ in
|
|||
'';
|
||||
};
|
||||
|
||||
frequent = mkOption {
|
||||
frequent = lib.mkOption {
|
||||
default = 4;
|
||||
type = types.int;
|
||||
type = lib.types.int;
|
||||
description = ''
|
||||
Number of frequent (15-minute) auto-snapshots that you wish to keep.
|
||||
'';
|
||||
};
|
||||
|
||||
hourly = mkOption {
|
||||
hourly = lib.mkOption {
|
||||
default = 24;
|
||||
type = types.int;
|
||||
type = lib.types.int;
|
||||
description = ''
|
||||
Number of hourly auto-snapshots that you wish to keep.
|
||||
'';
|
||||
};
|
||||
|
||||
daily = mkOption {
|
||||
daily = lib.mkOption {
|
||||
default = 7;
|
||||
type = types.int;
|
||||
type = lib.types.int;
|
||||
description = ''
|
||||
Number of daily auto-snapshots that you wish to keep.
|
||||
'';
|
||||
};
|
||||
|
||||
weekly = mkOption {
|
||||
weekly = lib.mkOption {
|
||||
default = 4;
|
||||
type = types.int;
|
||||
type = lib.types.int;
|
||||
description = ''
|
||||
Number of weekly auto-snapshots that you wish to keep.
|
||||
'';
|
||||
};
|
||||
|
||||
monthly = mkOption {
|
||||
monthly = lib.mkOption {
|
||||
default = 12;
|
||||
type = types.int;
|
||||
type = lib.types.int;
|
||||
description = ''
|
||||
Number of monthly auto-snapshots that you wish to keep.
|
||||
'';
|
||||
|
@ -421,16 +417,16 @@ in
|
|||
};
|
||||
|
||||
services.zfs.trim = {
|
||||
enable = mkOption {
|
||||
enable = lib.mkOption {
|
||||
description = "Whether to enable periodic TRIM on all ZFS pools.";
|
||||
default = true;
|
||||
example = false;
|
||||
type = types.bool;
|
||||
type = lib.types.bool;
|
||||
};
|
||||
|
||||
interval = mkOption {
|
||||
interval = lib.mkOption {
|
||||
default = "weekly";
|
||||
type = types.str;
|
||||
type = lib.types.str;
|
||||
example = "daily";
|
||||
description = ''
|
||||
How often we run trim. For most desktop and server systems
|
||||
|
@ -441,9 +437,9 @@ in
|
|||
'';
|
||||
};
|
||||
|
||||
randomizedDelaySec = mkOption {
|
||||
randomizedDelaySec = lib.mkOption {
|
||||
default = "6h";
|
||||
type = types.str;
|
||||
type = lib.types.str;
|
||||
example = "12h";
|
||||
description = ''
|
||||
Add a randomized delay before each ZFS trim.
|
||||
|
@ -455,11 +451,11 @@ in
|
|||
};
|
||||
|
||||
services.zfs.autoScrub = {
|
||||
enable = mkEnableOption "periodic scrubbing of ZFS pools";
|
||||
enable = lib.mkEnableOption "periodic scrubbing of ZFS pools";
|
||||
|
||||
interval = mkOption {
|
||||
interval = lib.mkOption {
|
||||
default = "monthly";
|
||||
type = types.str;
|
||||
type = lib.types.str;
|
||||
example = "quarterly";
|
||||
description = ''
|
||||
Systemd calendar expression when to scrub ZFS pools. See
|
||||
|
@ -467,9 +463,9 @@ in
|
|||
'';
|
||||
};
|
||||
|
||||
randomizedDelaySec = mkOption {
|
||||
randomizedDelaySec = lib.mkOption {
|
||||
default = "6h";
|
||||
type = types.str;
|
||||
type = lib.types.str;
|
||||
example = "12h";
|
||||
description = ''
|
||||
Add a randomized delay before each ZFS autoscrub.
|
||||
|
@ -479,9 +475,9 @@ in
|
|||
'';
|
||||
};
|
||||
|
||||
pools = mkOption {
|
||||
pools = lib.mkOption {
|
||||
default = [];
|
||||
type = types.listOf types.str;
|
||||
type = lib.types.listOf lib.types.str;
|
||||
example = [ "tank" ];
|
||||
description = ''
|
||||
List of ZFS pools to periodically scrub. If empty, all pools
|
||||
|
@ -490,8 +486,8 @@ in
|
|||
};
|
||||
};
|
||||
|
||||
services.zfs.expandOnBoot = mkOption {
|
||||
type = types.either (types.enum [ "disabled" "all" ]) (types.listOf types.str);
|
||||
services.zfs.expandOnBoot = lib.mkOption {
|
||||
type = lib.types.either (lib.types.enum [ "disabled" "all" ]) (lib.types.listOf lib.types.str);
|
||||
default = "disabled";
|
||||
example = [ "tank" "dozer" ];
|
||||
description = ''
|
||||
|
@ -508,10 +504,10 @@ in
|
|||
};
|
||||
|
||||
services.zfs.zed = {
|
||||
enableMail = mkOption {
|
||||
type = types.bool;
|
||||
enableMail = lib.mkOption {
|
||||
type = lib.types.bool;
|
||||
default = config.services.mail.sendmailSetuidWrapper != null;
|
||||
defaultText = literalExpression ''
|
||||
defaultText = lib.literalExpression ''
|
||||
config.services.mail.sendmailSetuidWrapper != null
|
||||
'';
|
||||
description = ''
|
||||
|
@ -519,9 +515,9 @@ in
|
|||
'';
|
||||
};
|
||||
|
||||
settings = mkOption {
|
||||
type = with types; attrsOf (oneOf [ str int bool (listOf str) ]);
|
||||
example = literalExpression ''
|
||||
settings = lib.mkOption {
|
||||
type = let t = lib.types; in t.attrsOf (t.oneOf [ t.str t.int t.bool (t.listOf t.str) ]);
|
||||
example = lib.literalExpression ''
|
||||
{
|
||||
ZED_DEBUG_LOG = "/tmp/zed.debug.log";
|
||||
|
||||
|
@ -549,8 +545,8 @@ in
|
|||
|
||||
###### implementation
|
||||
|
||||
config = mkMerge [
|
||||
(mkIf cfgZfs.enabled {
|
||||
config = lib.mkMerge [
|
||||
(lib.mkIf cfgZfs.enabled {
|
||||
assertions = [
|
||||
{
|
||||
assertion = cfgZfs.modulePackage.version == cfgZfs.package.version;
|
||||
|
@ -569,7 +565,7 @@ in
|
|||
message = "boot.zfs.allowHibernation while force importing is enabled will cause data corruption";
|
||||
}
|
||||
{
|
||||
assertion = !(elem "" allPools);
|
||||
assertion = !(lib.elem "" allPools);
|
||||
message = ''
|
||||
Automatic pool detection found an empty pool name, which can't be used.
|
||||
Hint: for `fileSystems` entries with `fsType = zfs`, the `device` attribute
|
||||
|
@ -591,11 +587,10 @@ in
|
|||
];
|
||||
};
|
||||
|
||||
boot.initrd = mkIf inInitrd {
|
||||
# spl has been removed in ≥ 2.2.0.
|
||||
kernelModules = [ "zfs" ] ++ lib.optional (lib.versionOlder "2.2.0" version) "spl";
|
||||
boot.initrd = lib.mkIf inInitrd {
|
||||
kernelModules = [ "zfs" ];
|
||||
extraUtilsCommands =
|
||||
mkIf (!config.boot.initrd.systemd.enable) ''
|
||||
lib.mkIf (!config.boot.initrd.systemd.enable) ''
|
||||
copy_bin_and_libs ${cfgZfs.package}/sbin/zfs
|
||||
copy_bin_and_libs ${cfgZfs.package}/sbin/zdb
|
||||
copy_bin_and_libs ${cfgZfs.package}/sbin/zpool
|
||||
|
@ -603,12 +598,12 @@ in
|
|||
copy_bin_and_libs ${cfgZfs.package}/lib/udev/zvol_id
|
||||
'';
|
||||
extraUtilsCommandsTest =
|
||||
mkIf (!config.boot.initrd.systemd.enable) ''
|
||||
lib.mkIf (!config.boot.initrd.systemd.enable) ''
|
||||
$out/bin/zfs --help >/dev/null 2>&1
|
||||
$out/bin/zpool --help >/dev/null 2>&1
|
||||
'';
|
||||
postResumeCommands = mkIf (!config.boot.initrd.systemd.enable) (concatStringsSep "\n" ([''
|
||||
ZFS_FORCE="${optionalString cfgZfs.forceImportRoot "-f"}"
|
||||
postResumeCommands = lib.mkIf (!config.boot.initrd.systemd.enable) (lib.concatStringsSep "\n" ([''
|
||||
ZFS_FORCE="${lib.optionalString cfgZfs.forceImportRoot "-f"}"
|
||||
''] ++ [(importLib {
|
||||
# See comments at importLib definition.
|
||||
zpoolCmd = "zpool";
|
||||
|
@ -630,21 +625,21 @@ in
|
|||
poolImported "${pool}" || poolImport "${pool}" # Try one last time, e.g. to import a degraded pool.
|
||||
fi
|
||||
|
||||
${optionalString config.boot.initrd.clevis.enable (concatMapStringsSep "\n" (elem: "clevis decrypt < /etc/clevis/${elem}.jwe | zfs load-key ${elem}") (filter (p: (elemAt (splitString "/" p) 0) == pool) clevisDatasets))}
|
||||
${lib.optionalString config.boot.initrd.clevis.enable (lib.concatMapStringsSep "\n" (elem: "clevis decrypt < /etc/clevis/${elem}.jwe | zfs load-key ${elem}") (lib.filter (p: (lib.elemAt (lib.splitString "/" p) 0) == pool) clevisDatasets))}
|
||||
|
||||
${if isBool cfgZfs.requestEncryptionCredentials
|
||||
then optionalString cfgZfs.requestEncryptionCredentials ''
|
||||
${if lib.isBool cfgZfs.requestEncryptionCredentials
|
||||
then lib.optionalString cfgZfs.requestEncryptionCredentials ''
|
||||
zfs load-key -a
|
||||
''
|
||||
else concatMapStrings (fs: ''
|
||||
zfs load-key -- ${escapeShellArg fs}
|
||||
'') (filter (x: datasetToPool x == pool) cfgZfs.requestEncryptionCredentials)}
|
||||
else lib.concatMapStrings (fs: ''
|
||||
zfs load-key -- ${lib.escapeShellArg fs}
|
||||
'') (lib.filter (x: datasetToPool x == pool) cfgZfs.requestEncryptionCredentials)}
|
||||
'') rootPools)));
|
||||
|
||||
# Systemd in stage 1
|
||||
systemd = mkIf config.boot.initrd.systemd.enable {
|
||||
systemd = lib.mkIf config.boot.initrd.systemd.enable {
|
||||
packages = [cfgZfs.package];
|
||||
services = listToAttrs (map (pool: createImportService {
|
||||
services = lib.listToAttrs (map (pool: createImportService {
|
||||
inherit pool;
|
||||
systemd = config.boot.initrd.systemd.package;
|
||||
force = cfgZfs.forceImportRoot;
|
||||
|
@ -671,18 +666,18 @@ in
|
|||
systemd.shutdownRamfs.storePaths = ["${cfgZfs.package}/bin/zpool"];
|
||||
|
||||
# TODO FIXME See https://github.com/NixOS/nixpkgs/pull/99386#issuecomment-798813567. To not break people's bootloader and as probably not everybody would read release notes that thoroughly add inSystem.
|
||||
boot.loader.grub = mkIf (inInitrd || inSystem) {
|
||||
boot.loader.grub = lib.mkIf (inInitrd || inSystem) {
|
||||
zfsSupport = true;
|
||||
zfsPackage = cfgZfs.package;
|
||||
};
|
||||
|
||||
services.zfs.zed.settings = {
|
||||
ZED_EMAIL_PROG = mkIf cfgZED.enableMail (mkDefault (
|
||||
ZED_EMAIL_PROG = lib.mkIf cfgZED.enableMail (lib.mkDefault (
|
||||
config.security.wrapperDir + "/" +
|
||||
config.services.mail.sendmailSetuidWrapper.program
|
||||
));
|
||||
# subject in header for sendmail
|
||||
ZED_EMAIL_OPTS = mkIf cfgZED.enableMail (mkDefault "@ADDRESS@");
|
||||
ZED_EMAIL_OPTS = lib.mkIf cfgZED.enableMail (lib.mkDefault "@ADDRESS@");
|
||||
|
||||
PATH = lib.makeBinPath [
|
||||
cfgZfs.package
|
||||
|
@ -701,7 +696,7 @@ in
|
|||
ACTION=="add|change", KERNEL=="sd[a-z]*[0-9]*|mmcblk[0-9]*p[0-9]*|nvme[0-9]*n[0-9]*p[0-9]*", ENV{ID_FS_TYPE}=="zfs_member", ATTR{../queue/scheduler}="none"
|
||||
'';
|
||||
|
||||
environment.etc = genAttrs
|
||||
environment.etc = lib.genAttrs
|
||||
(map
|
||||
(file: "zfs/zed.d/${file}")
|
||||
[
|
||||
|
@ -726,7 +721,7 @@ in
|
|||
|
||||
system.fsPackages = [ cfgZfs.package ]; # XXX: needed? zfs doesn't have (need) a fsck
|
||||
environment.systemPackages = [ cfgZfs.package ]
|
||||
++ optional cfgSnapshots.enable autosnapPkg; # so the user can run the command to see flags
|
||||
++ lib.optional cfgSnapshots.enable autosnapPkg; # so the user can run the command to see flags
|
||||
|
||||
services.udev.packages = [ cfgZfs.package ]; # to hook zvol naming, etc.
|
||||
systemd.packages = [ cfgZfs.package ];
|
||||
|
@ -741,7 +736,7 @@ in
|
|||
# This forces a sync of any ZFS pools prior to poweroff, even if they're set
|
||||
# to sync=disabled.
|
||||
createSyncService = pool:
|
||||
nameValuePair "zfs-sync-${pool}" {
|
||||
lib.nameValuePair "zfs-sync-${pool}" {
|
||||
description = "Sync ZFS pool \"${pool}\"";
|
||||
wantedBy = [ "shutdown.target" ];
|
||||
unitConfig = {
|
||||
|
@ -757,12 +752,12 @@ in
|
|||
};
|
||||
|
||||
createZfsService = serv:
|
||||
nameValuePair serv {
|
||||
lib.nameValuePair serv {
|
||||
after = [ "systemd-modules-load.service" ];
|
||||
wantedBy = [ "zfs.target" ];
|
||||
};
|
||||
|
||||
in listToAttrs (map createImportService' dataPools ++
|
||||
in lib.listToAttrs (map createImportService' dataPools ++
|
||||
map createSyncService allPools ++
|
||||
map createZfsService [ "zfs-mount" "zfs-share" "zfs-zed" ]);
|
||||
|
||||
|
@ -771,7 +766,7 @@ in
|
|||
systemd.targets.zfs.wantedBy = [ "multi-user.target" ];
|
||||
})
|
||||
|
||||
(mkIf (cfgZfs.enabled && cfgExpandOnBoot != "disabled") {
|
||||
(lib.mkIf (cfgZfs.enabled && cfgExpandOnBoot != "disabled") {
|
||||
systemd.services."zpool-expand@" = {
|
||||
description = "Expand ZFS pools";
|
||||
after = [ "zfs.target" ];
|
||||
|
@ -824,7 +819,7 @@ in
|
|||
};
|
||||
})
|
||||
|
||||
(mkIf (cfgZfs.enabled && cfgSnapshots.enable) {
|
||||
(lib.mkIf (cfgZfs.enabled && cfgSnapshots.enable) {
|
||||
systemd.services = let
|
||||
descr = name: if name == "frequent" then "15 mins"
|
||||
else if name == "hourly" then "hour"
|
||||
|
@ -862,7 +857,7 @@ in
|
|||
}) snapshotNames);
|
||||
})
|
||||
|
||||
(mkIf (cfgZfs.enabled && cfgScrub.enable) {
|
||||
(lib.mkIf (cfgZfs.enabled && cfgScrub.enable) {
|
||||
systemd.services.zfs-scrub = {
|
||||
description = "ZFS pools scrubbing";
|
||||
after = [ "zfs-import.target" ];
|
||||
|
@ -872,7 +867,7 @@ in
|
|||
script = ''
|
||||
${cfgZfs.package}/bin/zpool scrub -w ${
|
||||
if cfgScrub.pools != [] then
|
||||
(concatStringsSep " " cfgScrub.pools)
|
||||
(lib.concatStringsSep " " cfgScrub.pools)
|
||||
else
|
||||
"$(${cfgZfs.package}/bin/zpool list -H -o name)"
|
||||
}
|
||||
|
@ -890,7 +885,7 @@ in
|
|||
};
|
||||
})
|
||||
|
||||
(mkIf (cfgZfs.enabled && cfgTrim.enable) {
|
||||
(lib.mkIf (cfgZfs.enabled && cfgTrim.enable) {
|
||||
systemd.services.zpool-trim = {
|
||||
description = "ZFS pools trim";
|
||||
after = [ "zfs-import.target" ];
|
||||
|
|
|
@ -4,7 +4,7 @@ let
|
|||
in {
|
||||
options = {
|
||||
services.xe-guest-utilities = {
|
||||
enable = lib.mkEnableOption "the Xen guest utilities daemon";
|
||||
enable = lib.mkEnableOption "the XenServer guest utilities daemon";
|
||||
};
|
||||
};
|
||||
config = lib.mkIf cfg.enable {
|
||||
|
|
|
@ -5,7 +5,7 @@
|
|||
[[ $# -ne 1 ]] && echo -e "\e[1;31merror:\e[0m xenBootBuilder must be called with exactly one verbosity argument. See the \e[1;34mvirtualisation.xen.efi.bootBuilderVerbosity\e[0m option." && exit 1
|
||||
case "$1" in
|
||||
"quiet") true ;;
|
||||
"default" | "info") echo -n "Installing Xen Hypervisor boot entries..." ;;
|
||||
"default" | "info") echo -n "Installing Xen Project Hypervisor boot entries..." ;;
|
||||
"debug") echo -e "\e[1;34mxenBootBuilder:\e[0m called with the '$1' flag" ;;
|
||||
*)
|
||||
echo -e "\e[1;31merror:\e[0m xenBootBuilder was called with an invalid argument. See the \e[1;34mvirtualisation.xen.efi.bootBuilderVerbosity\e[0m option."
|
||||
|
@ -150,7 +150,7 @@ else
|
|||
esac
|
||||
if [ "$1" = "info" ]; then
|
||||
if [[ ${#preGenerations[@]} == "${#postGenerations[@]}" ]]; then
|
||||
echo -e "\e[1;33mNo Change:\e[0m Xen Hypervisor boot entries were refreshed, but their contents are identical."
|
||||
echo -e "\e[1;33mNo Change:\e[0m Xen Project Hypervisor boot entries were refreshed, but their contents are identical."
|
||||
else
|
||||
echo -e "\e[1;32mSuccess:\e[0m Changed the following boot entries:"
|
||||
# We briefly unset errexit and pipefail here, as GNU diff has no option to not fail when files differ.
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
# Xen hypervisor (Dom0) support.
|
||||
# Xen Project Hypervisor (Dom0) support.
|
||||
|
||||
{
|
||||
config,
|
||||
|
@ -123,7 +123,7 @@ in
|
|||
|
||||
options.virtualisation.xen = {
|
||||
|
||||
enable = lib.options.mkEnableOption "the Xen Hypervisor, a virtualisation technology defined as a *type-1 hypervisor*, which allows multiple virtual machines, known as *domains*, to run concurrently on the physical machine. NixOS runs as the privileged *Domain 0*. This option requires a reboot into a Xen kernel to take effect";
|
||||
enable = lib.options.mkEnableOption "the Xen Project Hypervisor, a virtualisation technology defined as a *type-1 hypervisor*, which allows multiple virtual machines, known as *domains*, to run concurrently on the physical machine. NixOS runs as the privileged *Domain 0*. This option requires a reboot into a Xen kernel to take effect";
|
||||
|
||||
debug = lib.options.mkEnableOption "Xen debug features for Domain 0. This option enables some hidden debugging tests and features, and should not be used in production";
|
||||
|
||||
|
@ -141,7 +141,7 @@ in
|
|||
defaultText = lib.options.literalExpression "pkgs.xen";
|
||||
example = lib.options.literalExpression "pkgs.xen-slim";
|
||||
description = ''
|
||||
The package used for Xen Hypervisor.
|
||||
The package used for Xen Project Hypervisor.
|
||||
'';
|
||||
relatedPackages = [
|
||||
"xen"
|
||||
|
@ -207,7 +207,7 @@ in
|
|||
|
||||
- `quiet` supresses all messages.
|
||||
|
||||
- `default` adds a simple "Installing Xen Hypervisor boot entries...done." message to the script.
|
||||
- `default` adds a simple "Installing Xen Project Hypervisor boot entries...done." message to the script.
|
||||
|
||||
- `info` is the same as `default`, but it also prints a diff with information on which generations were altered.
|
||||
- This option adds two extra dependencies to the script: `diffutils` and `bat`.
|
||||
|
@ -870,5 +870,5 @@ in
|
|||
};
|
||||
};
|
||||
};
|
||||
meta.maintainers = with lib.maintainers; [ sigmasquadron ];
|
||||
meta.maintainers = lib.teams.xen.members;
|
||||
}
|
||||
|
|
|
@ -717,6 +717,7 @@ in {
|
|||
nzbhydra2 = handleTest ./nzbhydra2.nix {};
|
||||
ocis = handleTest ./ocis.nix {};
|
||||
oddjobd = handleTestOn [ "x86_64-linux" "aarch64-linux" ] ./oddjobd.nix {};
|
||||
obs-studio = handleTest ./obs-studio.nix {};
|
||||
oh-my-zsh = handleTest ./oh-my-zsh.nix {};
|
||||
ollama = runTest ./ollama.nix;
|
||||
ollama-cuda = runTestOn ["x86_64-linux" "aarch64-linux"] ./ollama-cuda.nix;
|
||||
|
|
40
nixos/tests/obs-studio.nix
Normal file
40
nixos/tests/obs-studio.nix
Normal file
|
@ -0,0 +1,40 @@
|
|||
import ./make-test-python.nix (
|
||||
{ ... }:
|
||||
|
||||
{
|
||||
name = "obs-studio";
|
||||
|
||||
nodes.machine =
|
||||
{ pkgs, ... }:
|
||||
{
|
||||
imports = [
|
||||
./common/x11.nix
|
||||
./common/user-account.nix
|
||||
];
|
||||
|
||||
programs.obs-studio = {
|
||||
enable = true;
|
||||
plugins = with pkgs.obs-studio-plugins; [
|
||||
wlrobs
|
||||
obs-vkcapture
|
||||
];
|
||||
enableVirtualCamera = true;
|
||||
};
|
||||
};
|
||||
|
||||
testScript = ''
|
||||
machine.wait_for_x()
|
||||
machine.succeed("obs --version")
|
||||
|
||||
# virtual camera tests
|
||||
machine.succeed("lsmod | grep v4l2loopback")
|
||||
machine.succeed("ls /dev/video1")
|
||||
machine.succeed("obs --startvirtualcam >&2 &")
|
||||
machine.wait_for_window("OBS")
|
||||
machine.sleep(5)
|
||||
|
||||
# test plugins
|
||||
machine.succeed("which obs-vkcapture")
|
||||
'';
|
||||
}
|
||||
)
|
|
@ -32,18 +32,18 @@ import ./make-test-python.nix ({ pkgs, ... }:
|
|||
# system one. Overriding this pretty bad default behaviour.
|
||||
export REQUESTS_CA_BUNDLE=/etc/ssl/certs/ca-certificates.crt
|
||||
|
||||
toot --debug login_cli -i "pleroma.nixos.test" -e "jamy@nixos.test" -p "jamy-password"
|
||||
toot login_cli -i "pleroma.nixos.test" -e "jamy@nixos.test" -p 'jamy-password'
|
||||
echo "Login OK"
|
||||
|
||||
# Send a toot then verify it's part of the public timeline
|
||||
echo "y" | toot post "hello world Jamy here"
|
||||
toot post "hello world Jamy here"
|
||||
echo "Send toot OK"
|
||||
echo "y" | toot timeline | grep -c "hello world Jamy here"
|
||||
toot timeline -1 | grep -F -q "hello world Jamy here"
|
||||
echo "Get toot from timeline OK"
|
||||
|
||||
# Test file upload
|
||||
echo "y" | toot upload ${db-seed} | grep -c "https://pleroma.nixos.test/media"
|
||||
echo "File upload OK"
|
||||
echo "y" | ${pkgs.toot}/bin/toot upload <(dd if=/dev/zero bs=1024 count=1024 status=none) \
|
||||
| grep -F -q "https://pleroma.nixos.test/media"
|
||||
|
||||
echo "====================================================="
|
||||
echo "= SUCCESS ="
|
||||
|
@ -244,6 +244,7 @@ import ./make-test-python.nix ({ pkgs, ... }:
|
|||
|
||||
testScript = { nodes, ... }: ''
|
||||
pleroma.wait_for_unit("postgresql.service")
|
||||
pleroma.wait_until_succeeds("ls /var/lib/pleroma")
|
||||
pleroma.succeed("provision-db")
|
||||
pleroma.wait_for_file("/var/lib/pleroma")
|
||||
pleroma.succeed("provision-secrets")
|
||||
|
|
|
@ -14,14 +14,14 @@ let
|
|||
# If an update breaks things, one of those might have valuable info:
|
||||
# https://aur.archlinux.org/packages/spotify/
|
||||
# https://community.spotify.com/t5/Desktop-Linux
|
||||
version = "1.2.42.290.g242057a2";
|
||||
version = "1.2.45.454.gc16ec9f6";
|
||||
# To get the latest stable revision:
|
||||
# curl -H 'X-Ubuntu-Series: 16' 'https://api.snapcraft.io/api/v1/snaps/details/spotify?channel=stable' | jq '.download_url,.version,.last_updated'
|
||||
# To get general information:
|
||||
# curl -H 'Snap-Device-Series: 16' 'https://api.snapcraft.io/v2/snaps/info/spotify' | jq '.'
|
||||
# More examples of api usage:
|
||||
# https://github.com/canonical-websites/snapcraft.io/blob/master/webapp/publisher/snaps/views.py
|
||||
rev = "78";
|
||||
rev = "79";
|
||||
|
||||
deps = [
|
||||
alsa-lib
|
||||
|
@ -88,7 +88,7 @@ stdenv.mkDerivation {
|
|||
src = fetchurl {
|
||||
name = "spotify-${version}-${rev}.snap";
|
||||
url = "https://api.snapcraft.io/api/v1/snaps/download/pOBIoZ2LrCB3rDohMxoYGnbN14EHOgD7_${rev}.snap";
|
||||
hash = "sha512-3kT7SA2Q1OxgDa5duivIiHaxcROBAFjDnTx6rw2ya6o5yOVygseS02zBgWg2Qd8jq0721KbYC83u9M+MWtWhhA==";
|
||||
hash = "sha512-F1Npz/oKCsMKaQx2M5dm1dhWhaSlt8422tpRWnwuk2yjwLWrOYDY2uKYph8YFXfOdS3mV6u5yVlzgFdDqAFmCQ==";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [ wrapGAppsHook3 makeShellWrapper squashfsTools ];
|
||||
|
|
|
@ -4219,10 +4219,11 @@ let
|
|||
mktplcRef = {
|
||||
publisher = "seatonjiang";
|
||||
name = "gitmoji-vscode";
|
||||
version = "1.2.2";
|
||||
hash = "sha256-+lwbCLV62y1IHrjCygBphQZJUu+ZApYTwBQld5uu12w=";
|
||||
version = "1.2.5";
|
||||
hash = "sha256-lWd7SyYNxoDauMecJq11akTiwEKBeXuR4htDYCbb6n4=";
|
||||
};
|
||||
meta = {
|
||||
changelog = "https://marketplace.visualstudio.com/items/seatonjiang.gitmoji-vscode/changelog";
|
||||
description = "Gitmoji tool for git commit messages in VSCode";
|
||||
downloadPage = "https://marketplace.visualstudio.com/items?itemName=seatonjiang.gitmoji-vscode";
|
||||
homepage = "https://github.com/seatonjiang/gitmoji-vscode/";
|
||||
|
|
|
@ -15,10 +15,10 @@
|
|||
"src": {
|
||||
"owner": "libretro",
|
||||
"repo": "libretro-atari800",
|
||||
"rev": "173edee31172db46f46512918cda11192a2bd977",
|
||||
"hash": "sha256-liZKtoiAlA/CFFY0AsfxUkWUQCXIgtLlJCaNydvYCXE="
|
||||
"rev": "39380a6e028589e850ecdfd2a5a19307b475d667",
|
||||
"hash": "sha256-Rw6eTaKHZaCEgvnIqctaKCYQ+W8cHLtckLK8U5Ugck4="
|
||||
},
|
||||
"version": "unstable-2024-09-13"
|
||||
"version": "unstable-2024-09-24"
|
||||
},
|
||||
"beetle-gba": {
|
||||
"fetcher": "fetchFromGitHub",
|
||||
|
@ -55,20 +55,20 @@
|
|||
"src": {
|
||||
"owner": "libretro",
|
||||
"repo": "beetle-pce-libretro",
|
||||
"rev": "3a75c7ce5fc62c524be8d0eb45cd4b39d08a885c",
|
||||
"hash": "sha256-y+M1hEv5o+gkMN00ZQjuRfJNqLnsTcbbcr+mVgmSSnc="
|
||||
"rev": "e6c21fdf7d1aeae411f08272121213fa4de96bbc",
|
||||
"hash": "sha256-ZeBoLTsr1A+IPQJ+oIGNADrgKySDHczXY6uriLmeHV4="
|
||||
},
|
||||
"version": "unstable-2024-09-06"
|
||||
"version": "unstable-2024-09-27"
|
||||
},
|
||||
"beetle-pce-fast": {
|
||||
"fetcher": "fetchFromGitHub",
|
||||
"src": {
|
||||
"owner": "libretro",
|
||||
"repo": "beetle-pce-fast-libretro",
|
||||
"rev": "f2b4d9b24175348ca48bffd6fd4bb203d08e01d9",
|
||||
"hash": "sha256-ulGGr215WJIb1uF1G8sGsu/693KKLDpjBuMNRLKQMZI="
|
||||
"rev": "6aaabc8e18279ac8a7c6facf26aa67e58375d177",
|
||||
"hash": "sha256-lhpAnDofOLqyr8j43zTjzbPbcbntEt0DMY6aGtckDmc="
|
||||
},
|
||||
"version": "unstable-2024-08-30"
|
||||
"version": "unstable-2024-09-20"
|
||||
},
|
||||
"beetle-pcfx": {
|
||||
"fetcher": "fetchFromGitHub",
|
||||
|
@ -287,10 +287,10 @@
|
|||
"src": {
|
||||
"owner": "libretro",
|
||||
"repo": "fbneo",
|
||||
"rev": "ea3f1696173441f32e35ddd7295c330443691f00",
|
||||
"hash": "sha256-spTZ7ZjaBiF6CdQwtrTcafKAszHGJxEnR/mzrlD/1mI="
|
||||
"rev": "3d69bc5519c4382b3d5da2763ae42e3b6a3d019e",
|
||||
"hash": "sha256-Tf5nLy9G9h/qBrwdBFO3OUYl3n81NPw4slEeCfLzMjI="
|
||||
},
|
||||
"version": "unstable-2024-09-12"
|
||||
"version": "unstable-2024-09-26"
|
||||
},
|
||||
"fceumm": {
|
||||
"fetcher": "fetchFromGitHub",
|
||||
|
@ -338,10 +338,10 @@
|
|||
"src": {
|
||||
"owner": "libretro",
|
||||
"repo": "fuse-libretro",
|
||||
"rev": "b7f789133970b69ab27d1d181bc8c8930a462130",
|
||||
"hash": "sha256-LzKWc6mWXxrYu44HwOmVBzXoebvQIwccwLIwUulKFto="
|
||||
"rev": "6fd07d90acc38a1b8835bf16539b833f21aaa38f",
|
||||
"hash": "sha256-q5vcFNr1RBeTaw1R2LDY9xLU1oGeWtPemTdliWR+39s="
|
||||
},
|
||||
"version": "unstable-2024-09-13"
|
||||
"version": "unstable-2024-09-20"
|
||||
},
|
||||
"gambatte": {
|
||||
"fetcher": "fetchFromGitHub",
|
||||
|
@ -408,11 +408,11 @@
|
|||
"src": {
|
||||
"owner": "libretro",
|
||||
"repo": "mame",
|
||||
"rev": "184cebe571ab6b06f5015404bd40404d25433d9a",
|
||||
"hash": "sha256-8lnpgpNo9wVkaIiZyXMakTnia5CVHnaTMUpB47iVVhE=",
|
||||
"rev": "231b5e6d621ed93168ad19eed6c0e3390d4e81ff",
|
||||
"hash": "sha256-UD1kNQ6KXEa60ZA+65XXqgihLu/XJxTLvbM4Wt9y2vs=",
|
||||
"fetchSubmodules": true
|
||||
},
|
||||
"version": "unstable-2024-09-15"
|
||||
"version": "unstable-2024-09-27"
|
||||
},
|
||||
"mame2000": {
|
||||
"fetcher": "fetchFromGitHub",
|
||||
|
@ -439,10 +439,10 @@
|
|||
"src": {
|
||||
"owner": "libretro",
|
||||
"repo": "mame2003-plus-libretro",
|
||||
"rev": "3aa773e2a4e1ded9e255428ec7ef617f09840d6d",
|
||||
"hash": "sha256-zMD6bC6KNCspDAkTB5lFEiV7wMfYy+mHgljjYOA2b6E="
|
||||
"rev": "9221b2f66dbc7a08b22a7365e2431e027e382322",
|
||||
"hash": "sha256-mm4g1JX98yW/6Us1k5DwaYQQbhmfiBSxxXFvwgvB5yE="
|
||||
},
|
||||
"version": "unstable-2024-09-09"
|
||||
"version": "unstable-2024-09-26"
|
||||
},
|
||||
"mame2010": {
|
||||
"fetcher": "fetchFromGitHub",
|
||||
|
@ -519,10 +519,10 @@
|
|||
"src": {
|
||||
"owner": "libretro",
|
||||
"repo": "mgba",
|
||||
"rev": "b2564482c86378581a7a43ef4e254b2a75167bc7",
|
||||
"hash": "sha256-9qHk4V7wb9YISpZ2xO2NWCGCFMRWpE8lAKTzIldsC9M="
|
||||
"rev": "3e349d52f42151085639aed9550967b88cde4f43",
|
||||
"hash": "sha256-gTviFmJF+7n0SFUL6PZovLTMyrEeQyAyAJY2i40GEao="
|
||||
},
|
||||
"version": "unstable-2024-02-28"
|
||||
"version": "unstable-2024-09-24"
|
||||
},
|
||||
"mrboom": {
|
||||
"fetcher": "fetchFromGitHub",
|
||||
|
@ -652,22 +652,22 @@
|
|||
"src": {
|
||||
"owner": "jpd002",
|
||||
"repo": "Play-",
|
||||
"rev": "2ecf0923f8000464b0056d42c369f698421187b5",
|
||||
"hash": "sha256-fKfN1e7UANs+CAJzjqWmzFsEzSwoRz6vW8ZD7sh9O7E=",
|
||||
"rev": "e70ee1608f9bc3a075c85ce1aab0cf9074201f12",
|
||||
"hash": "sha256-hD+QgvPXPJ4cVqkk15bY9lZIytCiiuSwNK1MYJzP9T0=",
|
||||
"fetchSubmodules": true
|
||||
},
|
||||
"version": "unstable-2024-09-12"
|
||||
"version": "unstable-2024-09-23"
|
||||
},
|
||||
"ppsspp": {
|
||||
"fetcher": "fetchFromGitHub",
|
||||
"src": {
|
||||
"owner": "hrydgard",
|
||||
"repo": "ppsspp",
|
||||
"rev": "0bb69a0ccf5655310de1a41af96fde50cdc85840",
|
||||
"hash": "sha256-h5edSaaqu0YEqKeMEY4iGWmp0w2AbqbEHergd0DsCGI=",
|
||||
"rev": "64ce72e81df48f78db5d5b192bd68eca218bd0a1",
|
||||
"hash": "sha256-DRodUtFcHt+t8GAHI+3+WDltbUzkWZ/ahunOPELabTI=",
|
||||
"fetchSubmodules": true
|
||||
},
|
||||
"version": "unstable-2024-09-17"
|
||||
"version": "unstable-2024-09-28"
|
||||
},
|
||||
"prboom": {
|
||||
"fetcher": "fetchFromGitHub",
|
||||
|
@ -694,10 +694,10 @@
|
|||
"src": {
|
||||
"owner": "libretro",
|
||||
"repo": "libretro-uae",
|
||||
"rev": "4b4875f5c29e59fcc7aaab0decdce7af694b70e1",
|
||||
"hash": "sha256-XaEa3QAzPzboRFdrPlhLmTPy52ClwyR/eQTpo/V++zU="
|
||||
"rev": "527564f2748901068a5fef891c5073a4d6cd089b",
|
||||
"hash": "sha256-tzZVG4B+rzHqhw28cmvjMFiyFfbrU3xOOEU+OCUaa+M="
|
||||
},
|
||||
"version": "unstable-2024-09-17"
|
||||
"version": "unstable-2024-09-25"
|
||||
},
|
||||
"quicknes": {
|
||||
"fetcher": "fetchFromGitHub",
|
||||
|
@ -754,10 +754,10 @@
|
|||
"src": {
|
||||
"owner": "snes9xgit",
|
||||
"repo": "snes9x",
|
||||
"rev": "0727b4a474bf496d06ad42dd7ecc5527996aff3a",
|
||||
"hash": "sha256-Zx36Yzftascnsqnd3ltutFKGB4fRBcP81vKYJRB2FjU="
|
||||
"rev": "72e4946410bff2a09ff327599f014e9f6e855c54",
|
||||
"hash": "sha256-srPtEMIjsaFdmOkymGhb6vMuY5EBnTVhzJnpsCE/fMQ="
|
||||
},
|
||||
"version": "unstable-2024-09-15"
|
||||
"version": "unstable-2024-09-27"
|
||||
},
|
||||
"snes9x2002": {
|
||||
"fetcher": "fetchFromGitHub",
|
||||
|
@ -794,10 +794,10 @@
|
|||
"src": {
|
||||
"owner": "stella-emu",
|
||||
"repo": "stella",
|
||||
"rev": "03c5d7f1cf3e325e0dc0b41b89ffc17a54834af8",
|
||||
"hash": "sha256-i7EBcbyoLz6MSeDe2d+HRpaKhig0zZEMC7rQqQrpbvA="
|
||||
"rev": "cb61f676ec78cd3f76cbd233bfd91575abde13be",
|
||||
"hash": "sha256-t+QBWIE5+rEzdv4bbk6MqIQh3XsUgviX69RKe/zMb4Q="
|
||||
},
|
||||
"version": "unstable-2024-09-09"
|
||||
"version": "unstable-2024-09-26"
|
||||
},
|
||||
"stella2014": {
|
||||
"fetcher": "fetchFromGitHub",
|
||||
|
|
|
@ -6,13 +6,13 @@
|
|||
|
||||
stdenvNoCC.mkDerivation {
|
||||
pname = "retroarch-assets";
|
||||
version = "1.19.0-unstable-2024-08-08";
|
||||
version = "1.19.0-unstable-2024-09-22";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "libretro";
|
||||
repo = "retroarch-assets";
|
||||
rev = "8a74442fabfc6f72c623dbf1f7a59bfeba771b9f";
|
||||
hash = "sha256-rlIxKciCZK0UDAHsnEcUpFlKT0Y7vd1WqN8UfUOn7cA=";
|
||||
rev = "1b138de1023272b039273d7bbc8f57573073bd25";
|
||||
hash = "sha256-ZePPjNQtzO3e7d9ZqbkfXX+0saus2X77It2l1e7WDWc=";
|
||||
};
|
||||
|
||||
makeFlags = [
|
||||
|
|
|
@ -1,14 +1,21 @@
|
|||
{
|
||||
config,
|
||||
pkgs,
|
||||
lib,
|
||||
stdenv,
|
||||
newScope,
|
||||
gtk3,
|
||||
useMupdf ? true,
|
||||
}:
|
||||
|
||||
let
|
||||
callPackage = pkgs.newScope self;
|
||||
lib.makeScope newScope (
|
||||
self:
|
||||
let
|
||||
callPackage = self.callPackage;
|
||||
in
|
||||
{
|
||||
inherit useMupdf;
|
||||
|
||||
self = rec {
|
||||
gtk = pkgs.gtk3;
|
||||
gtk = gtk3;
|
||||
|
||||
zathura_core = callPackage ./core { };
|
||||
|
||||
|
@ -22,14 +29,6 @@ let
|
|||
|
||||
zathura_cb = callPackage ./cb { };
|
||||
|
||||
zathuraWrapper = callPackage ./wrapper.nix {
|
||||
plugins = [
|
||||
zathura_djvu
|
||||
zathura_ps
|
||||
zathura_cb
|
||||
(if useMupdf then zathura_pdf_mupdf else zathura_pdf_poppler)
|
||||
];
|
||||
};
|
||||
};
|
||||
in
|
||||
self
|
||||
zathuraWrapper = callPackage ./wrapper.nix { };
|
||||
}
|
||||
)
|
||||
|
|
|
@ -3,8 +3,19 @@
|
|||
lib,
|
||||
makeWrapper,
|
||||
zathura_core,
|
||||
zathura_djvu,
|
||||
zathura_ps,
|
||||
zathura_cb,
|
||||
zathura_pdf_mupdf,
|
||||
zathura_pdf_poppler,
|
||||
file,
|
||||
plugins ? [ ],
|
||||
useMupdf,
|
||||
plugins ? [
|
||||
zathura_djvu
|
||||
zathura_ps
|
||||
zathura_cb
|
||||
(if useMupdf then zathura_pdf_mupdf else zathura_pdf_poppler)
|
||||
],
|
||||
}:
|
||||
symlinkJoin {
|
||||
name = "zathura-with-plugins-${zathura_core.version}";
|
||||
|
|
|
@ -6,17 +6,17 @@ callPackage ./make-brave.nix (removeAttrs args [ "callPackage" ])
|
|||
if stdenv.hostPlatform.isAarch64 then
|
||||
rec {
|
||||
pname = "brave";
|
||||
version = "1.70.117";
|
||||
version = "1.70.119";
|
||||
url = "https://github.com/brave/brave-browser/releases/download/v${version}/brave-browser_${version}_arm64.deb";
|
||||
hash = "sha256-FUomXWnIbuW8H0/r+fKEmMG8qO0vBAKUS9kijCbH5Mc=";
|
||||
hash = "sha256-we/M1/hMdnxxKfhS6q+Lc3G2OCj+wyBpoC6pfd0Ta08=";
|
||||
platform = "aarch64-linux";
|
||||
}
|
||||
else if stdenv.hostPlatform.isx86_64 then
|
||||
rec {
|
||||
pname = "brave";
|
||||
version = "1.70.117";
|
||||
version = "1.70.119";
|
||||
url = "https://github.com/brave/brave-browser/releases/download/v${version}/brave-browser_${version}_amd64.deb";
|
||||
hash = "sha256-54puHFpg3zqgORoqale9ZNgokn7q8fbI+240azFqrlQ=";
|
||||
hash = "sha256-GtFkE0R4s0G9pO2Omt1V+YvBv0kvyJrcPc41ba07TTQ=";
|
||||
platform = "x86_64-linux";
|
||||
}
|
||||
else
|
||||
|
|
|
@ -23,7 +23,7 @@ cat > $SCRIPT_DIR/default.nix << EOF
|
|||
|
||||
callPackage ./make-brave.nix (removeAttrs args [ "callPackage" ])
|
||||
(
|
||||
if stdenv.isAarch64 then
|
||||
if stdenv.hostPlatform.isAarch64 then
|
||||
rec {
|
||||
pname = "brave";
|
||||
version = "${latestVersionAarch64}";
|
||||
|
@ -31,7 +31,7 @@ callPackage ./make-brave.nix (removeAttrs args [ "callPackage" ])
|
|||
hash = "${hashAarch64}";
|
||||
platform = "aarch64-linux";
|
||||
}
|
||||
else if stdenv.isx86_64 then
|
||||
else if stdenv.hostPlatform.isx86_64 then
|
||||
rec {
|
||||
pname = "brave";
|
||||
version = "${latestVersionAmd64}";
|
||||
|
|
|
@ -7,16 +7,16 @@
|
|||
|
||||
buildGoModule rec {
|
||||
pname = "glooctl";
|
||||
version = "1.17.8";
|
||||
version = "1.17.10";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "solo-io";
|
||||
repo = "gloo";
|
||||
rev = "v${version}";
|
||||
hash = "sha256-xHAxrAhKrGyH10yOmXRUnR8iI/Bapjx1XKUfklTZKzw=";
|
||||
hash = "sha256-p917jiPvWjLRoH2y81TvILc9WYZ6n1y1UQy8hIO93jM=";
|
||||
};
|
||||
|
||||
vendorHash = "sha256-zT6AVDYzDf+8DuPoJxu0RZ4djVIOq9dZDTHcjldE95Y=";
|
||||
vendorHash = "sha256-rAObw4J0ATle1gq5Z1MsrGy/iqQDHjnMPAEIPBgtY3g=";
|
||||
|
||||
subPackages = [ "projects/gloo/cli/cmd" ];
|
||||
|
||||
|
|
|
@ -8,17 +8,17 @@
|
|||
let
|
||||
|
||||
pname = "mattermost-desktop";
|
||||
version = "5.8.1";
|
||||
version = "5.9.0";
|
||||
|
||||
srcs = {
|
||||
"x86_64-linux" = {
|
||||
url = "https://releases.mattermost.com/desktop/${version}/${pname}-${version}-linux-x64.tar.gz";
|
||||
hash = "sha256-VuYHF5ALdbsKxBI7w5UhcqKYLV8BHZncWSDeuCy/SW0=";
|
||||
hash = "sha256-zLKdfu5p7TyJOw8vJX7i/uu4j0PrUf2/BDmb1kdqqMc=";
|
||||
};
|
||||
|
||||
"aarch64-linux" = {
|
||||
url = "https://releases.mattermost.com/desktop/${version}/${pname}-${version}-linux-arm64.tar.gz";
|
||||
hash = "sha256-b+sVzMX/NDavshR+WsQyVgYyLkIPSuUlZGqK6/ZjLFs=";
|
||||
hash = "sha256-JljK7d4KLAn1+NwF+VcedL/7hEsp/9LzLdzROa1fgJA=";
|
||||
};
|
||||
};
|
||||
|
||||
|
|
|
@ -1,8 +1,38 @@
|
|||
{ lib, stdenv, fetchFromGitHub, gettext, makeWrapper, tcl, which
|
||||
, ncurses, perl , cyrus_sasl, gss, gpgme, libkrb5, libidn2, libxml2, notmuch, openssl
|
||||
, lua, lmdb, libxslt, docbook_xsl, docbook_xml_dtd_42, w3m, mailcap, sqlite, zlib, lndir
|
||||
, pkg-config, zstd, enableZstd ? true, enableMixmaster ? false, enableLua ? false
|
||||
, withContrib ? true
|
||||
{
|
||||
lib,
|
||||
stdenv,
|
||||
fetchFromGitHub,
|
||||
gettext,
|
||||
makeWrapper,
|
||||
tcl,
|
||||
which,
|
||||
ncurses,
|
||||
perl,
|
||||
cyrus_sasl,
|
||||
gss,
|
||||
gpgme,
|
||||
libkrb5,
|
||||
libidn2,
|
||||
libxml2,
|
||||
notmuch,
|
||||
openssl,
|
||||
lua,
|
||||
lmdb,
|
||||
libxslt,
|
||||
docbook_xsl,
|
||||
docbook_xml_dtd_42,
|
||||
w3m,
|
||||
mailcap,
|
||||
sqlite,
|
||||
zlib,
|
||||
lndir,
|
||||
pkg-config,
|
||||
zstd,
|
||||
enableZstd ? true,
|
||||
enableMixmaster ? false,
|
||||
enableLua ? false,
|
||||
enableSmimeKeys ? true,
|
||||
withContrib ? true,
|
||||
}:
|
||||
|
||||
stdenv.mkDerivation (finalAttrs: {
|
||||
|
@ -10,22 +40,38 @@ stdenv.mkDerivation (finalAttrs: {
|
|||
version = "20240425";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "neomutt";
|
||||
repo = "neomutt";
|
||||
rev = finalAttrs.version;
|
||||
hash = "sha256-QBqPFteoAm3AdQN0XTWpho8DEW2BFCCzBcHUZIiSxyQ=";
|
||||
owner = "neomutt";
|
||||
repo = "neomutt";
|
||||
rev = finalAttrs.version;
|
||||
hash = "sha256-QBqPFteoAm3AdQN0XTWpho8DEW2BFCCzBcHUZIiSxyQ=";
|
||||
};
|
||||
|
||||
buildInputs = [
|
||||
cyrus_sasl gss gpgme libkrb5 libidn2 ncurses
|
||||
notmuch openssl perl lmdb
|
||||
mailcap sqlite
|
||||
]
|
||||
++ lib.optional enableZstd zstd
|
||||
++ lib.optional enableLua lua;
|
||||
cyrus_sasl
|
||||
gss
|
||||
gpgme
|
||||
libkrb5
|
||||
libidn2
|
||||
ncurses
|
||||
notmuch
|
||||
openssl
|
||||
perl
|
||||
lmdb
|
||||
mailcap
|
||||
sqlite
|
||||
] ++ lib.optional enableZstd zstd ++ lib.optional enableLua lua;
|
||||
|
||||
nativeBuildInputs = [
|
||||
docbook_xsl docbook_xml_dtd_42 gettext libxml2 libxslt.bin makeWrapper tcl which zlib w3m
|
||||
docbook_xsl
|
||||
docbook_xml_dtd_42
|
||||
gettext
|
||||
libxml2
|
||||
libxslt.bin
|
||||
makeWrapper
|
||||
tcl
|
||||
which
|
||||
zlib
|
||||
w3m
|
||||
pkg-config
|
||||
];
|
||||
|
||||
|
@ -49,31 +95,38 @@ stdenv.mkDerivation (finalAttrs: {
|
|||
--replace /etc/mime.types ${mailcap}/etc/mime.types
|
||||
'';
|
||||
|
||||
configureFlags = [
|
||||
"--enable-autocrypt"
|
||||
"--gpgme"
|
||||
"--gss"
|
||||
"--lmdb"
|
||||
"--notmuch"
|
||||
"--ssl"
|
||||
"--sasl"
|
||||
"--with-homespool=mailbox"
|
||||
"--with-mailpath="
|
||||
# To make it not reference .dev outputs. See:
|
||||
# https://github.com/neomutt/neomutt/pull/2367
|
||||
"--disable-include-path-in-cflags"
|
||||
"--zlib"
|
||||
]
|
||||
++ lib.optional enableZstd "--zstd"
|
||||
++ lib.optional enableLua "--lua"
|
||||
++ lib.optional enableMixmaster "--mixmaster";
|
||||
configureFlags =
|
||||
[
|
||||
"--enable-autocrypt"
|
||||
"--gpgme"
|
||||
"--gss"
|
||||
"--lmdb"
|
||||
"--notmuch"
|
||||
"--ssl"
|
||||
"--sasl"
|
||||
"--with-homespool=mailbox"
|
||||
"--with-mailpath="
|
||||
# To make it not reference .dev outputs. See:
|
||||
# https://github.com/neomutt/neomutt/pull/2367
|
||||
"--disable-include-path-in-cflags"
|
||||
"--zlib"
|
||||
]
|
||||
++ lib.optional enableZstd "--zstd"
|
||||
++ lib.optional enableLua "--lua"
|
||||
++ lib.optional enableMixmaster "--mixmaster";
|
||||
|
||||
postInstall = ''
|
||||
wrapProgram "$out/bin/neomutt" --prefix PATH : "$out/libexec/neomutt"
|
||||
''
|
||||
# https://github.com/neomutt/neomutt-contrib
|
||||
# Contains vim-keys, keybindings presets and more.
|
||||
+ lib.optionalString withContrib "${lib.getExe lndir} ${finalAttrs.passthru.contrib} $out/share/doc/neomutt";
|
||||
postInstall =
|
||||
''
|
||||
wrapProgram "$out/bin/neomutt" --prefix PATH : "$out/libexec/neomutt"
|
||||
''
|
||||
+ lib.optionalString enableSmimeKeys ''
|
||||
install -m 755 $src/contrib/smime_keys $out/bin;
|
||||
substituteInPlace $out/bin/smime_keys \
|
||||
--replace-fail '/usr/bin/openssl' '${openssl}/bin/openssl';
|
||||
''
|
||||
# https://github.com/neomutt/neomutt-contrib
|
||||
# Contains vim-keys, keybindings presets and more.
|
||||
+ lib.optionalString withContrib "${lib.getExe lndir} ${finalAttrs.passthru.contrib} $out/share/doc/neomutt";
|
||||
|
||||
doCheck = true;
|
||||
|
||||
|
@ -111,9 +164,12 @@ stdenv.mkDerivation (finalAttrs: {
|
|||
meta = {
|
||||
description = "Small but very powerful text-based mail client";
|
||||
mainProgram = "neomutt";
|
||||
homepage = "https://www.neomutt.org";
|
||||
license = lib.licenses.gpl2Plus;
|
||||
maintainers = with lib.maintainers; [ erikryb raitobezarius ];
|
||||
platforms = lib.platforms.unix;
|
||||
homepage = "https://www.neomutt.org";
|
||||
license = lib.licenses.gpl2Plus;
|
||||
maintainers = with lib.maintainers; [
|
||||
erikryb
|
||||
raitobezarius
|
||||
];
|
||||
platforms = lib.platforms.unix;
|
||||
};
|
||||
})
|
||||
|
|
|
@ -55,16 +55,16 @@ let
|
|||
in
|
||||
rustPlatform.buildRustPackage rec {
|
||||
pname = "rio";
|
||||
version = "0.1.15";
|
||||
version = "0.1.16";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "raphamorim";
|
||||
repo = "rio";
|
||||
rev = "v${version}";
|
||||
hash = "sha256-aLqWhRaNqi7gMDxBITLU/Tj//h7RURycLSZXOOq83As=";
|
||||
hash = "sha256-3OtPlaYkTPIF98CyaXWGZ/1msWHFdscqZXVviu0/O/o=";
|
||||
};
|
||||
|
||||
cargoHash = "sha256-4nqJbz2vauO4jRuUSDjBV1pVrAJMhIP4+eUwS1+GecU=";
|
||||
cargoHash = "sha256-VpS3prTmAbWTd+gwAOA0BXso4gkcAFuhMZh8Go3Dlao=";
|
||||
|
||||
nativeBuildInputs = [
|
||||
ncurses
|
||||
|
@ -87,7 +87,7 @@ rustPlatform.buildRustPackage rec {
|
|||
|
||||
checkFlags = [
|
||||
# Fail to run in sandbox environment.
|
||||
"--skip=screen::context::test"
|
||||
"--skip=sys::unix::eventedfd::EventedFd"
|
||||
];
|
||||
|
||||
postInstall = ''
|
||||
|
@ -125,11 +125,5 @@ rustPlatform.buildRustPackage rec {
|
|||
platforms = lib.platforms.unix;
|
||||
changelog = "https://github.com/raphamorim/rio/blob/v${version}/docs/docs/releases.md";
|
||||
mainProgram = "rio";
|
||||
# ---- corcovado/src/sys/unix/eventedfd.rs - sys::unix::eventedfd::EventedFd (line 31) stdout ----
|
||||
# Test executable failed (exit status: 101).
|
||||
# stderr:
|
||||
# thread 'main' panicked at corcovado/src/sys/unix/eventedfd.rs:24:16:
|
||||
# called `Result::unwrap()` on an `Err` value: Os { code: 1, kind: PermissionDenied, message: "Operation not permitted" }
|
||||
broken = stdenv.hostPlatform.isDarwin;
|
||||
};
|
||||
}
|
||||
|
|
|
@ -15,11 +15,11 @@
|
|||
</a>
|
||||
</p>
|
||||
|
||||
# Xen Hypervisor <a href="https://xenproject.org/"><img src="https://downloads.xenproject.org/Branding/Mascots/Xen-Fu-Panda-2000px.png" width="48px" align="top" alt="Xen Fu Panda"></a>
|
||||
# Xen Project Hypervisor <a href="https://xenproject.org/"><img src="https://downloads.xenproject.org/Branding/Mascots/Xen-Fu-Panda-2000px.png" width="48px" align="top" alt="Xen Fu Panda"></a>
|
||||
|
||||
This directory includes the build recipes for the [Xen Hypervisor](https://xenproject.org/).
|
||||
This directory includes the build recipes for the [Xen Project Hypervisor](https://xenproject.org/).
|
||||
|
||||
Some other notable packages that compose the Xen Ecosystem include:
|
||||
Some other notable packages that compose the Xen Project Ecosystem include:
|
||||
|
||||
- `ocamlPackages.xenstore`: Mirage's `oxenstore` implementation.
|
||||
- `ocamlPackages.vchan`: Mirage's `xen-vchan` implementation.
|
||||
|
|
|
@ -647,7 +647,7 @@ stdenv.mkDerivation (finalAttrs: {
|
|||
|
||||
# Short description for Xen.
|
||||
description =
|
||||
"Xen Hypervisor"
|
||||
"Xen Project Hypervisor"
|
||||
# The "and related components" addition is automatically hidden if said components aren't being built.
|
||||
+ lib.strings.optionalString (prefetchedSources != { }) " and related components"
|
||||
# To alter the description inside the paranthesis, edit ./packages.nix.
|
||||
|
@ -681,18 +681,18 @@ stdenv.mkDerivation (finalAttrs: {
|
|||
# Originally, this was a call for the complicated withPrefetchedSources. Since there aren't
|
||||
# that many optional components, we just use lib.strings.optionalString, because it's simpler.
|
||||
# Optional components that aren't being built are automatically hidden.
|
||||
+ lib.strings.optionalString withEFI "\n* `xen.efi`: Xen's [EFI binary](https://xenbits.xenproject.org/docs/${branch}-testing/misc/efi.html), available on the `boot` output of this package."
|
||||
+ lib.strings.optionalString withEFI "\n* `xen.efi`: The Xen Project's [EFI binary](https://xenbits.xenproject.org/docs/${branch}-testing/misc/efi.html), available on the `boot` output of this package."
|
||||
+ lib.strings.optionalString withFlask "\n* `xsm-flask`: The [FLASK Xen Security Module](https://wiki.xenproject.org/wiki/Xen_Security_Modules_:_XSM-FLASK). The `xenpolicy-${version}` file is available on the `boot` output of this package."
|
||||
+ lib.strings.optionalString withInternalQEMU "\n* `qemu-xen`: Xen's mirror of [QEMU](https://www.qemu.org/)."
|
||||
+ lib.strings.optionalString withInternalSeaBIOS "\n* `seabios-xen`: Xen's mirror of [SeaBIOS](https://www.seabios.org/SeaBIOS)."
|
||||
+ lib.strings.optionalString withInternalOVMF "\n* `ovmf-xen`: Xen's mirror of [OVMF](https://github.com/tianocore/tianocore.github.io/wiki/OVMF)."
|
||||
+ lib.strings.optionalString withInternalIPXE "\n* `ipxe-xen`: Xen's pinned version of [iPXE](https://ipxe.org/)."
|
||||
+ lib.strings.optionalString withInternalQEMU "\n* `qemu-xen`: The Xen Project's mirror of [QEMU](https://www.qemu.org/)."
|
||||
+ lib.strings.optionalString withInternalSeaBIOS "\n* `seabios-xen`: The Xen Project's mirror of [SeaBIOS](https://www.seabios.org/SeaBIOS)."
|
||||
+ lib.strings.optionalString withInternalOVMF "\n* `ovmf-xen`: The Xen Project's mirror of [OVMF](https://github.com/tianocore/tianocore.github.io/wiki/OVMF)."
|
||||
+ lib.strings.optionalString withInternalIPXE "\n* `ipxe-xen`: The Xen Project's pinned version of [iPXE](https://ipxe.org/)."
|
||||
)
|
||||
# Finally, we write a notice explaining which vulnerabilities this Xen is NOT vulnerable to.
|
||||
# This will hopefully give users the peace of mind that their Xen is secure, without needing
|
||||
# to search the source code for the XSA patches.
|
||||
+ lib.strings.optionalString (writeAdvisoryDescription != [ ]) (
|
||||
"\n\nThis Xen (${version}) has been patched against the following known security vulnerabilities:\n"
|
||||
"\n\nThis Xen Project Hypervisor (${version}) has been patched against the following known security vulnerabilities:\n"
|
||||
+ lib.strings.removeSuffix "\n" (lib.strings.concatLines writeAdvisoryDescription)
|
||||
);
|
||||
|
||||
|
@ -712,10 +712,8 @@ stdenv.mkDerivation (finalAttrs: {
|
|||
];
|
||||
|
||||
# This automatically removes maintainers from EOL versions of Xen, so we aren't bothered about versions we don't explictly support.
|
||||
maintainers = lib.lists.optionals (lib.strings.versionAtLeast version minSupportedVersion) (
|
||||
with lib.maintainers; [ sigmasquadron ]
|
||||
);
|
||||
knownVulnerabilities = lib.lists.optional (lib.strings.versionOlder version minSupportedVersion) "Xen ${version} is no longer supported by the Xen Security Team. See https://xenbits.xenproject.org/docs/unstable/support-matrix.html";
|
||||
maintainers = lib.lists.optionals (lib.strings.versionAtLeast version minSupportedVersion) lib.teams.xen.members;
|
||||
knownVulnerabilities = lib.lists.optional (lib.strings.versionOlder version minSupportedVersion) "The Xen Project Hypervisor version ${version} is no longer supported by the Xen Project Security Team. See https://xenbits.xenproject.org/docs/unstable/support-matrix.html";
|
||||
|
||||
mainProgram = "xl";
|
||||
|
||||
|
|
|
@ -2,13 +2,13 @@
|
|||
let
|
||||
standard = {
|
||||
meta = {
|
||||
description = "Standard Xen";
|
||||
description = "Standard";
|
||||
longDescription = ''
|
||||
Standard version of Xen. Uses forks of QEMU, SeaBIOS, OVMF and iPXE provided
|
||||
by the Xen Project. This provides the vanilla Xen experince, but wastes space
|
||||
and build time. A typical NixOS setup that runs lots of VMs will usually need
|
||||
to build two different versions of QEMU when using this Xen derivation (one
|
||||
fork and upstream).
|
||||
Standard version of the Xen Project Hypervisor. Uses forks of QEMU, SeaBIOS,
|
||||
OVMF and iPXE provided by the Xen Project. This provides the vanilla Xen
|
||||
experience, but wastes space and build time. A typical NixOS setup that runs
|
||||
lots of VMs will usually need to build two different versions of QEMU when using
|
||||
this Xen derivation (one fork and upstream).
|
||||
'';
|
||||
};
|
||||
};
|
||||
|
@ -16,11 +16,11 @@ let
|
|||
meta = {
|
||||
description = "Without Internal Components";
|
||||
longDescription = ''
|
||||
Slimmed-down version of Xen that reuses nixpkgs packages as much as possible.
|
||||
Instead of using the Xen forks for various internal components, this version uses
|
||||
`seabios`, `ovmf` and `ipxe` from nixpkgs. These components may ocasionally get
|
||||
out of sync with the hypervisor itself, but this builds faster and uses less space
|
||||
than the default derivation.
|
||||
Slimmed-down version of the Xen Project Hypervisor that reuses nixpkgs packages
|
||||
as much as possible. Instead of using the Xen Project forks for various internal
|
||||
components, this version uses `seabios`, `ovmf` and `ipxe` from Nixpkgs. These
|
||||
components may ocasionally get out of sync with the hypervisor itself, but this
|
||||
builds faster and uses less space than the default derivation.
|
||||
'';
|
||||
};
|
||||
};
|
||||
|
|
|
@ -12,16 +12,16 @@
|
|||
}:
|
||||
rustPlatform.buildRustPackage rec {
|
||||
pname = "biome";
|
||||
version = "1.9.0";
|
||||
version = "1.9.2";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "biomejs";
|
||||
repo = "biome";
|
||||
rev = "cli/v${version}";
|
||||
hash = "sha256-AVw7yhC/f5JkFw2sQZ5YgzeXXjoJ8BfGgsS5sRVV/wE=";
|
||||
hash = "sha256-erwGLcE5w/UnjZ1aVF3ZYD2OQGI8xt7lVBvpWkJ56tc=";
|
||||
};
|
||||
|
||||
cargoHash = "sha256-Vz6GCDGdC2IUtBK5X/t/Q5LODFUSlUxPBTCIjgdw3XU=";
|
||||
cargoHash = "sha256-m9r0fcnkDPT2J1DjjbLCzdAxqh8DCFAWA3jikuaVVGQ=";
|
||||
|
||||
nativeBuildInputs = [
|
||||
pkg-config
|
||||
|
|
|
@ -10,7 +10,7 @@
|
|||
}:
|
||||
stdenv.mkDerivation (finalAttrs: {
|
||||
pname = "blackmagic-desktop-video";
|
||||
version = "14.1a1";
|
||||
version = "14.2a1";
|
||||
|
||||
buildInputs = [
|
||||
autoPatchelfHook
|
||||
|
@ -24,15 +24,15 @@ stdenv.mkDerivation (finalAttrs: {
|
|||
src =
|
||||
let
|
||||
# from the URL the download page where you click the "only download" button is at
|
||||
REFERID = "93b33ad64a244cd5b95ec9d373e8d2e1";
|
||||
REFERID = "b97e55f37a0042fbacd234971d8c93ed";
|
||||
# from the URL that the POST happens to, see browser console
|
||||
DOWNLOADID = "0f544a89ce204df6818079a2f18c76a7";
|
||||
DOWNLOADID = "552546307a7c4de29ea6d09a6ca08c90";
|
||||
in
|
||||
runCommandLocal "${finalAttrs.pname}-${lib.versions.majorMinor finalAttrs.version}-src.tar.gz"
|
||||
{
|
||||
outputHashMode = "recursive";
|
||||
outputHashAlgo = "sha256";
|
||||
outputHash = "sha256-1Cv7VQHhHcM53DKa15lJJVJmdiGUHNTYPTbX+VghQOc=";
|
||||
outputHash = "sha256-rfZDL1YvAuMD5u68MMyiT8cERsIHMc9K25lXt7cqrrk=";
|
||||
|
||||
impureEnvVars = lib.fetchers.proxyImpureEnvVars;
|
||||
|
||||
|
|
|
@ -15,14 +15,14 @@
|
|||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "chess-clock";
|
||||
version = "0.6.0";
|
||||
version = "0.6.1";
|
||||
|
||||
src = fetchFromGitLab {
|
||||
domain = "gitlab.gnome.org";
|
||||
owner = "World";
|
||||
repo = pname;
|
||||
rev = "v${version}";
|
||||
hash = "sha256-wwNOop2V84vZO3JV0+VZ+52cKPx8xJg2rLkjfgc/+n4=";
|
||||
hash = "sha256-XDOCHFZC3s3b/4kD1ZkhWar3kozW3vXc0pk7O6oQfiE=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
|
@ -45,10 +45,9 @@ stdenv.mkDerivation rec {
|
|||
|
||||
meta = with lib; {
|
||||
description = "Time games of over-the-board chess";
|
||||
mainProgram = "chess-clock";
|
||||
homepage = "https://gitlab.gnome.org/World/chess-clock";
|
||||
changelog = "https://gitlab.gnome.org/World/chess-clock/-/releases/v${version}";
|
||||
license = licenses.gpl3Plus;
|
||||
mainProgram = "chess-clock";
|
||||
maintainers = with maintainers; [ michaelgrahamevans ];
|
||||
};
|
||||
}
|
||||
|
|
|
@ -13,16 +13,16 @@
|
|||
|
||||
rustPlatform.buildRustPackage rec {
|
||||
pname = "cyme";
|
||||
version = "1.8.3";
|
||||
version = "1.8.4";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "tuna-f1sh";
|
||||
repo = "cyme";
|
||||
rev = "v${version}";
|
||||
hash = "sha256-DFO12ylrUIPxxOf3+sSXf/MN918U/IUeUfr72Lbnxvc=";
|
||||
hash = "sha256-5433lq3u+s4LiC9089Ul7wGJiouQdVDoM3RT0QSiAnU=";
|
||||
};
|
||||
|
||||
cargoHash = "sha256-uw+Z0F2NoU1BFGwsNaIKT9hWclhqmJK2se5mm0xUQyc=";
|
||||
cargoHash = "sha256-EW4M072qWCghg4UlhjMBR6DVzKsu/foE+j4MOSiHqNk=";
|
||||
|
||||
nativeBuildInputs = [
|
||||
pkg-config
|
||||
|
|
|
@ -17,16 +17,16 @@
|
|||
|
||||
rustPlatform.buildRustPackage rec {
|
||||
pname = "eza";
|
||||
version = "0.19.4";
|
||||
version = "0.20.0";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "eza-community";
|
||||
repo = "eza";
|
||||
rev = "v${version}";
|
||||
hash = "sha256-5+ZZcoOS5R674cAxQ7vo1yU4D0hLIMF0OSOYYBT60hE=";
|
||||
hash = "sha256-lQEQLINjXGbg9KnqJCQXR/wG50dBTnmWp06wKJi0NE8=";
|
||||
};
|
||||
|
||||
cargoHash = "sha256-NSNhufF4IzA1syWcQryh+u1SVgvbkmvaXWlJ7P1i/cs=";
|
||||
cargoHash = "sha256-WT5jwG+c3cSKjAgzlOX3kbtOF3E6NICgGT2BGxcWzDA=";
|
||||
|
||||
nativeBuildInputs = [ cmake pkg-config installShellFiles pandoc ];
|
||||
buildInputs = [ zlib ]
|
||||
|
@ -62,7 +62,7 @@ rustPlatform.buildRustPackage rec {
|
|||
'';
|
||||
homepage = "https://github.com/eza-community/eza";
|
||||
changelog = "https://github.com/eza-community/eza/releases/tag/v${version}";
|
||||
license = licenses.mit;
|
||||
license = licenses.eupl12;
|
||||
mainProgram = "eza";
|
||||
maintainers = with maintainers; [ cafkafk _9glenda ];
|
||||
platforms = platforms.unix ++ platforms.windows;
|
||||
|
|
|
@ -24,16 +24,16 @@ let
|
|||
in
|
||||
buildRustPackage rec {
|
||||
pname = "fedimint";
|
||||
version = "0.4.2";
|
||||
version = "0.4.3";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "fedimint";
|
||||
repo = "fedimint";
|
||||
rev = "v${version}";
|
||||
hash = "sha256-ih1ZwH8uItplMJU2/XkQseFlYUsf8/TkX8lGyRl7/KU=";
|
||||
hash = "sha256-NUr1ZpYJozWIej46Oqlf/7feJ4kztYYvX3TEzQ5VoWo=";
|
||||
};
|
||||
|
||||
cargoHash = "sha256-scfgUFuS/b4EFfPuhl6uFlTZi4gyTqtEso2a5jhrxno=";
|
||||
cargoHash = "sha256-sky0Blh2fjP82UgFUfBH0vAIdBzHOfVGAfOW0rwNH00=";
|
||||
|
||||
nativeBuildInputs = [
|
||||
protobuf
|
||||
|
|
|
@ -7,16 +7,16 @@
|
|||
|
||||
buildGoModule rec {
|
||||
pname = "files-cli";
|
||||
version = "2.13.136";
|
||||
version = "2.13.141";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
repo = "files-cli";
|
||||
owner = "files-com";
|
||||
rev = "v${version}";
|
||||
hash = "sha256-F20cGZtPTaiZakRiw0xspS7Mxxwr9VDTcRjHeRaLAq0=";
|
||||
hash = "sha256-UVD2zWas4QZD3W6Xro7tiGJDdbive60dYPDY1UTnl08=";
|
||||
};
|
||||
|
||||
vendorHash = "sha256-ftO+jt3MurZ4erNUmFlMEuVskVIbpRbpIWb7gZVr3jk=";
|
||||
vendorHash = "sha256-4HkIwyRqvbk7qIzCjZNTzF7wDNupNaDpOiqqdlx9UIo=";
|
||||
|
||||
ldflags = [
|
||||
"-s"
|
||||
|
|
|
@ -3,6 +3,8 @@
|
|||
buildGoModule,
|
||||
buildNpmPackage,
|
||||
fetchFromGitHub,
|
||||
cacert,
|
||||
unzip,
|
||||
pkg-config,
|
||||
libGL,
|
||||
libX11,
|
||||
|
@ -20,13 +22,28 @@
|
|||
|
||||
buildGoModule rec {
|
||||
pname = "gcs";
|
||||
version = "5.21.0";
|
||||
version = "5.27.0";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "richardwilkes";
|
||||
repo = "gcs";
|
||||
rev = "v${version}";
|
||||
hash = "sha256-mes1aXh4R1re4sW3xYDWtSIcW7lwkWoAxbcbdyT/W+o=";
|
||||
rev = "refs/tags/v${version}";
|
||||
|
||||
nativeBuildInputs = [
|
||||
cacert
|
||||
unzip
|
||||
];
|
||||
|
||||
# also fetch pdf.js files
|
||||
# note: the version is locked in the file
|
||||
postFetch = ''
|
||||
cd $out/server/pdf
|
||||
substituteInPlace refresh-pdf.js.sh \
|
||||
--replace-fail '/bin/rm' 'rm'
|
||||
. refresh-pdf.js.sh
|
||||
'';
|
||||
|
||||
hash = "sha256-QVkyemBQ7RrV3dpP3n7Pg0XljdxWtCphZIj2T77nKtU=";
|
||||
};
|
||||
|
||||
modPostBuild = ''
|
||||
|
@ -34,15 +51,14 @@ buildGoModule rec {
|
|||
sed -i 's|-lmupdf[^ ]* |-lmupdf |g' vendor/github.com/richardwilkes/pdf/pdf.go
|
||||
'';
|
||||
|
||||
vendorHash = "sha256-H5GCrrqmDwpCneXawu7kZsRfrQ8hcsbqhpAAG6FCawg=";
|
||||
vendorHash = "sha256-+vCc1g5noAl/iwEYhNZJYPiScKqKGKlsuruoUO/4tiU=";
|
||||
|
||||
frontend = buildNpmPackage {
|
||||
name = "${pname}-${version}-frontend";
|
||||
|
||||
inherit src;
|
||||
sourceRoot = "${src.name}/server/frontend";
|
||||
|
||||
npmDepsHash = "sha256-wP6sjdcjljzmTs0GUMbF2BPo83LKpfdn15sUuMEIn6E=";
|
||||
npmDepsHash = "sha256-VWTJg/pluRYVVBDiJ+t2uhyodRuIFfHpzCZMte1krDM=";
|
||||
|
||||
installPhase = ''
|
||||
runHook preInstall
|
||||
|
@ -92,7 +108,7 @@ buildGoModule rec {
|
|||
'';
|
||||
|
||||
meta = {
|
||||
changelog = "https://github.com/richardwilkes/gcs/releases/tag/${src.rev}";
|
||||
changelog = "https://github.com/richardwilkes/gcs/releases/tag/v${version}";
|
||||
description = "Stand-alone, interactive, character sheet editor for the GURPS 4th Edition roleplaying game system";
|
||||
homepage = "https://gurpscharactersheet.com/";
|
||||
license = lib.licenses.mpl20;
|
||||
|
|
|
@ -2,16 +2,16 @@
|
|||
|
||||
buildNpmPackage rec {
|
||||
pname = "hred";
|
||||
version = "1.5.0";
|
||||
version = "1.5.1";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "danburzo";
|
||||
repo = "hred";
|
||||
rev = "v${version}";
|
||||
hash = "sha256-rnobJG9Z1lXEeFm+c0f9OsbiTzxeP3+zut5LYpGzWfc=";
|
||||
hash = "sha256-+0+WQRI8rdIMbPN0eBUdsWUMWDCxZhTRLiFo1WRd2xc=";
|
||||
};
|
||||
|
||||
npmDepsHash = "sha256-POxlGWK0TJMwNWDpiK5+OXLGtAx4lFJO3imoe/h+7Sc=";
|
||||
npmDepsHash = "sha256-kNNvSxZqN6cDZIG+lvqxgjAVCJUJrCvZThxrur5kozU=";
|
||||
|
||||
dontNpmBuild = true;
|
||||
|
|
@ -1,22 +1,22 @@
|
|||
{
|
||||
"version": "1.115.0",
|
||||
"hash": "sha256-H2FCR55redomrDjnnCQys47AaYbWEmlxO5NJEcVMBwY=",
|
||||
"version": "1.116.2",
|
||||
"hash": "sha256-vbLUHNgUHnKAO424j/MwKDv0GZhBZ2T6vwjLsIHhMxM=",
|
||||
"components": {
|
||||
"cli": {
|
||||
"npmDepsHash": "sha256-+zKtPHXjBd1KAKvI5xaY2/9qzVUg+8Ho/wrV9+TlU64=",
|
||||
"version": "2.2.19"
|
||||
"npmDepsHash": "sha256-M0A+B9qHmRRb6XW0P57Huo85cL8PUpLGe32IJzJgZhY=",
|
||||
"version": "2.2.22"
|
||||
},
|
||||
"server": {
|
||||
"npmDepsHash": "sha256-6CehRhPepspDpQW1h0Bx7EpH7hn42Ygqma/6wim14jA=",
|
||||
"version": "1.115.0"
|
||||
"npmDepsHash": "sha256-1gOJxg+OXG4t6jZdia5+1Ie5gOjtZhqpqOgPi3I/U+k=",
|
||||
"version": "1.116.2"
|
||||
},
|
||||
"web": {
|
||||
"npmDepsHash": "sha256-ZmXfYktgOmMkDjfqSGyyflr2CmnC9yVnJ1gAcmd6A00=",
|
||||
"version": "1.115.0"
|
||||
"npmDepsHash": "sha256-mI/hMDf7mBV1oMkJIh6IYVzqGv+h+sc9wiGJsL0Rmog=",
|
||||
"version": "1.116.2"
|
||||
},
|
||||
"open-api/typescript-sdk": {
|
||||
"npmDepsHash": "sha256-l1mLYFpFQjYxytY0ZWLq+ldUhZA6so0HqPgCABt0s9k=",
|
||||
"version": "1.115.0"
|
||||
"npmDepsHash": "sha256-lfqk/2YBbB6qiFXjeTYqnkslVmI8fXTvHe/wGCSD8Ok=",
|
||||
"version": "1.116.2"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -3,7 +3,6 @@
|
|||
cargo,
|
||||
cmake,
|
||||
fetchFromGitHub,
|
||||
fetchpatch,
|
||||
go,
|
||||
lib,
|
||||
libcap,
|
||||
|
@ -12,37 +11,24 @@
|
|||
libsecret,
|
||||
pkg-config,
|
||||
python3,
|
||||
qt5compat,
|
||||
qtbase,
|
||||
qtnetworkauth,
|
||||
qtsvg,
|
||||
qttools,
|
||||
qtwayland,
|
||||
qtwebsockets,
|
||||
qt6,
|
||||
rustPlatform,
|
||||
rustc,
|
||||
stdenv,
|
||||
wireguard-tools,
|
||||
wrapQtAppsHook,
|
||||
}:
|
||||
|
||||
stdenv.mkDerivation (finalAttrs: {
|
||||
pname = "mozillavpn";
|
||||
version = "2.23.1";
|
||||
version = "2.24.0";
|
||||
src = fetchFromGitHub {
|
||||
owner = "mozilla-mobile";
|
||||
repo = "mozilla-vpn-client";
|
||||
rev = "v${finalAttrs.version}";
|
||||
fetchSubmodules = true;
|
||||
hash = "sha256-NQM1ZII9owD9ek/Leo6WRfvNybZ5pUjDgvQGXQBrD+0=";
|
||||
hash = "sha256-iTnwx+KPZ5b8qT0fEMUCGQx1UyGVM4VCzooZqslGWtw=";
|
||||
};
|
||||
patches = [
|
||||
# Update cargo deps for "time"
|
||||
(fetchpatch {
|
||||
url = "https://github.com/mozilla-mobile/mozilla-vpn-client/commit/31d5799a30fc02067ad31d86b6ef63294bb3c3b8.patch";
|
||||
hash = "sha256-ECrIcfhhSuvbqQ/ExPdFkQ6b9Q767lhUKmwPdDz7yxI=";
|
||||
})
|
||||
];
|
||||
patches = [ ];
|
||||
|
||||
netfilterGoModules =
|
||||
(buildGoModule {
|
||||
|
@ -58,7 +44,7 @@ stdenv.mkDerivation (finalAttrs: {
|
|||
|
||||
cargoDeps = rustPlatform.fetchCargoTarball {
|
||||
inherit (finalAttrs) src patches;
|
||||
hash = "sha256-JIe6FQL0xm6FYYGoIwwnOxq21sC1y8xPsr8tYPF0Mzo=";
|
||||
hash = "sha256-ryJFvnJIiDKf2EqlzHj79hSPYrD+3UtZ5lT/QeFv6V0=";
|
||||
};
|
||||
|
||||
buildInputs = [
|
||||
|
@ -66,12 +52,12 @@ stdenv.mkDerivation (finalAttrs: {
|
|||
libgcrypt
|
||||
libgpg-error
|
||||
libsecret
|
||||
qt5compat
|
||||
qtbase
|
||||
qtnetworkauth
|
||||
qtsvg
|
||||
qtwayland
|
||||
qtwebsockets
|
||||
qt6.qt5compat
|
||||
qt6.qtbase
|
||||
qt6.qtnetworkauth
|
||||
qt6.qtsvg
|
||||
qt6.qtwayland
|
||||
qt6.qtwebsockets
|
||||
];
|
||||
nativeBuildInputs = [
|
||||
cargo
|
||||
|
@ -82,10 +68,10 @@ stdenv.mkDerivation (finalAttrs: {
|
|||
python3.pkgs.glean-parser
|
||||
python3.pkgs.pyyaml
|
||||
python3.pkgs.setuptools
|
||||
qttools
|
||||
qt6.qttools
|
||||
qt6.wrapQtAppsHook
|
||||
rustPlatform.cargoSetupHook
|
||||
rustc
|
||||
wrapQtAppsHook
|
||||
];
|
||||
|
||||
postPatch = ''
|
||||
|
@ -101,9 +87,9 @@ stdenv.mkDerivation (finalAttrs: {
|
|||
'';
|
||||
|
||||
cmakeFlags = [
|
||||
"-DQT_LCONVERT_EXECUTABLE=${qttools.dev}/bin/lconvert"
|
||||
"-DQT_LUPDATE_EXECUTABLE=${qttools.dev}/bin/lupdate"
|
||||
"-DQT_LRELEASE_EXECUTABLE=${qttools.dev}/bin/lrelease"
|
||||
"-DQT_LCONVERT_EXECUTABLE=${qt6.qttools.dev}/bin/lconvert"
|
||||
"-DQT_LUPDATE_EXECUTABLE=${qt6.qttools.dev}/bin/lupdate"
|
||||
"-DQT_LRELEASE_EXECUTABLE=${qt6.qttools.dev}/bin/lrelease"
|
||||
];
|
||||
dontFixCmake = true;
|
||||
|
|
@ -1,217 +1,239 @@
|
|||
{
|
||||
"depends": [
|
||||
{
|
||||
"method": "fetchzip",
|
||||
"path": "/nix/store/l4zs1l1yw4yhf1f8q7r5x5z2szjygr6d-source",
|
||||
"rev": "ba143e029f35fd9b4cd3d89d007cc834d0d5ba3c",
|
||||
"sha256": "1lv3l9c4ifqzlfgpwpvpq2z3994zz1nirg8f59xrnfb7zgbv8l3i",
|
||||
"method": "git",
|
||||
"path": "/nix/store/jvk4kr8wws3dbjqnlag2zcysg0d7xnhz-nim-chronos-c04576d",
|
||||
"rev": "c04576d829b8a0a1b12baaa8bc92037501b3a4a0",
|
||||
"sha256": "0plwammxi4iis59p2416g7420f5fx38jziwhmi082c5lm2x658x9",
|
||||
"srcDir": "",
|
||||
"url": "https://github.com/status-im/nim-chronos/archive/ba143e029f35fd9b4cd3d89d007cc834d0d5ba3c.tar.gz",
|
||||
"url": "https://github.com/status-im/nim-chronos",
|
||||
"subDir": "",
|
||||
"fetchSubmodules": true,
|
||||
"leaveDotGit": false,
|
||||
"packages": [
|
||||
"chronos"
|
||||
]
|
||||
},
|
||||
{
|
||||
"method": "fetchzip",
|
||||
"path": "/nix/store/q42j4w2f70qfihcrpzgl3fspxihfsadb-source",
|
||||
"rev": "c0ae9e10a9238883d18226fa28a5435c4d305e45",
|
||||
"sha256": "0dxhjg5nf4sc4ga2zrxqcmr1v3ki9irkl603x0y3pz5sd8jdi731",
|
||||
"method": "git",
|
||||
"path": "/nix/store/rxh6hjns335dl5zn13dl78hlj6ign33m-nim-http-utils-8b88ad6",
|
||||
"rev": "8b88ad6dd9a6326c29f82067800c483d9410d873",
|
||||
"sha256": "1c20yhzm7c69xkcdzxwbm8ldid565nrmvgr5jk3g6cghh6z9b63n",
|
||||
"srcDir": "",
|
||||
"url": "https://github.com/status-im/nim-stint/archive/c0ae9e10a9238883d18226fa28a5435c4d305e45.tar.gz",
|
||||
"subDir": "",
|
||||
"packages": [
|
||||
"stint"
|
||||
]
|
||||
},
|
||||
{
|
||||
"method": "fetchzip",
|
||||
"path": "/nix/store/jmgpadmdabybhij1srd81xfr873zgfmm-source",
|
||||
"rev": "5065d2cf18dcb9812e25cc0e2c50eb357bde04cf",
|
||||
"sha256": "069fw3h9cjn0hab9vhfri8ibld7yihb8ggyg1nv5vxz6i3x026m5",
|
||||
"srcDir": "",
|
||||
"url": "https://github.com/status-im/nim-http-utils/archive/5065d2cf18dcb9812e25cc0e2c50eb357bde04cf.tar.gz",
|
||||
"url": "https://github.com/status-im/nim-http-utils",
|
||||
"subDir": "",
|
||||
"fetchSubmodules": true,
|
||||
"leaveDotGit": false,
|
||||
"packages": [
|
||||
"httputils"
|
||||
]
|
||||
},
|
||||
{
|
||||
"method": "fetchzip",
|
||||
"path": "/nix/store/wdj38hf9hdyb1skgb6v0z00kxkdmnq04-source",
|
||||
"rev": "b178f47527074964f76c395ad0dfc81cf118f379",
|
||||
"sha256": "1ir20z9m4wmm0bs2dd2qiq75w0x3skv0yj7sqp6bqfh98ni44xdc",
|
||||
"method": "git",
|
||||
"path": "/nix/store/ngj2jlgi2ygv3xvnqvhlpws2s069fh6c-nim-stint-7c81df9",
|
||||
"rev": "7c81df9adc80088f46a4c2b8bf2a46c26fab057c",
|
||||
"sha256": "0gl8hxk3a29p5f2l3x5v3hscbydnwy8470bl9xjsawysbpa41jq0",
|
||||
"srcDir": "",
|
||||
"url": "https://github.com/status-im/nim-unittest2/archive/b178f47527074964f76c395ad0dfc81cf118f379.tar.gz",
|
||||
"url": "https://github.com/status-im/nim-stint",
|
||||
"subDir": "",
|
||||
"fetchSubmodules": true,
|
||||
"leaveDotGit": false,
|
||||
"packages": [
|
||||
"stint"
|
||||
]
|
||||
},
|
||||
{
|
||||
"method": "git",
|
||||
"path": "/nix/store/fvqlv9l67gdbvdq48w76y7dm48s52viw-nim-unittest2-e96f321",
|
||||
"rev": "e96f3215030cbfa13abc2f5827069b6f8ba87e38",
|
||||
"sha256": "0q919mswsspk3fdhb9a742y7yv0pk14yc965afx2jza57m4fw2a2",
|
||||
"srcDir": "",
|
||||
"url": "https://github.com/status-im/nim-unittest2",
|
||||
"subDir": "",
|
||||
"fetchSubmodules": true,
|
||||
"leaveDotGit": false,
|
||||
"packages": [
|
||||
"unittest2"
|
||||
]
|
||||
},
|
||||
{
|
||||
"method": "fetchzip",
|
||||
"path": "/nix/store/yad26q3iv3r2lw9xs655kyx3hvflxi1p-source",
|
||||
"rev": "2c3ae3137f3c9cb48134285bd4a47186fa51f0e8",
|
||||
"sha256": "09pkxzsnahljkqyp540v1wwiqcnbkz5ji5bz9q9cwn3axpmqc3v7",
|
||||
"method": "git",
|
||||
"path": "/nix/store/ggzfksc7mbfllfdr2va5rmyx757c7nfx-nim-websock-63bcc29",
|
||||
"rev": "63bcc2902d884c63101e144555ad99421734a70a",
|
||||
"sha256": "0rxdz62pns7ywwzh4r1pjj9qyhx7djj06y5yhf83j7dc30qi7wp2",
|
||||
"srcDir": "",
|
||||
"url": "https://github.com/status-im/nim-websock/archive/2c3ae3137f3c9cb48134285bd4a47186fa51f0e8.tar.gz",
|
||||
"url": "https://github.com/status-im/nim-websock",
|
||||
"subDir": "",
|
||||
"fetchSubmodules": true,
|
||||
"leaveDotGit": false,
|
||||
"packages": [
|
||||
"websock"
|
||||
]
|
||||
},
|
||||
{
|
||||
"method": "fetchzip",
|
||||
"path": "/nix/store/siwfngb840kcdjdviy5rhlpvdpkw14sk-source",
|
||||
"rev": "8bfd753649aa7e870ec45e93f1453d3bfcf66733",
|
||||
"sha256": "0hvs4kfr4aais7ixvh9d7na2r2zjnvaw3m3rpklafn9qld2wpaav",
|
||||
"srcDir": "src",
|
||||
"url": "https://github.com/status-im/news/archive/8bfd753649aa7e870ec45e93f1453d3bfcf66733.tar.gz",
|
||||
"subDir": "",
|
||||
"packages": [
|
||||
"news"
|
||||
]
|
||||
},
|
||||
{
|
||||
"method": "fetchzip",
|
||||
"path": "/nix/store/ss096qz8svm5my0mjhk3imyrc2nm2x0y-source",
|
||||
"rev": "4d541ec43454809904fc4c3c0a7436410ad597d2",
|
||||
"sha256": "1a5x0fsxxkqpambz9q637dz0jrzv9q1jb3cya12k6106vc65lyf8",
|
||||
"method": "git",
|
||||
"path": "/nix/store/4q5lil0j6wdxjbkk4nbwnvz0swhxph4v-nim-serialization-298a955",
|
||||
"rev": "298a9554a885b2df59737bb3461aac8d0d339724",
|
||||
"sha256": "1skh778gkml33n0pz7s8fxybdn2rqg2hg10nyp8jip9x6rbpgz6g",
|
||||
"srcDir": "",
|
||||
"url": "https://github.com/status-im/nim-serialization/archive/4d541ec43454809904fc4c3c0a7436410ad597d2.tar.gz",
|
||||
"url": "https://github.com/status-im/nim-serialization",
|
||||
"subDir": "",
|
||||
"fetchSubmodules": true,
|
||||
"leaveDotGit": false,
|
||||
"packages": [
|
||||
"serialization"
|
||||
]
|
||||
},
|
||||
{
|
||||
"method": "fetchzip",
|
||||
"path": "/nix/store/90rwcr71bq13cid74v4aazikv2s924r1-source",
|
||||
"rev": "d9400ddea08341a65102cffdb693d3a7131efef4",
|
||||
"sha256": "0gkmh63izhp0bxyfmwfvyp81bxnzwnc3r7nxr5a05xpl8crk85w2",
|
||||
"method": "git",
|
||||
"path": "/nix/store/1k3vziq26ynmmm9j9savsfm8d7glmrax-nim-stew-d4634c5",
|
||||
"rev": "d4634c5405ac188e7050d348332edb6c3b09a527",
|
||||
"sha256": "15ii11644vxs55jix64krg8h0ninnhlgqnc7klmskycbcr4a1xgh",
|
||||
"srcDir": "",
|
||||
"url": "https://github.com/status-im/nim-stew/archive/d9400ddea08341a65102cffdb693d3a7131efef4.tar.gz",
|
||||
"url": "https://github.com/status-im/nim-stew",
|
||||
"subDir": "",
|
||||
"fetchSubmodules": true,
|
||||
"leaveDotGit": false,
|
||||
"packages": [
|
||||
"stew"
|
||||
]
|
||||
},
|
||||
{
|
||||
"method": "fetchzip",
|
||||
"path": "/nix/store/4nj341ypj07hjvxv0462wpnywhkj02b5-source",
|
||||
"rev": "422971502bd641703bf78a27cb20429e77fcfb8b",
|
||||
"sha256": "0snzh904f8f3wn33liy6817q9ccx8mvsl88blhr49qh69mzbgnba",
|
||||
"method": "git",
|
||||
"path": "/nix/store/3x156nly2vr6nixgw1zk5jp5n6bgi6rk-nim-faststreams-dbc4a95",
|
||||
"rev": "dbc4a95df60238157dcf286f6125188cb72f37c1",
|
||||
"sha256": "1zvh1lgjmszdd074993qkj01w2v7fjxcawjf7iplwq0rvjpszdy0",
|
||||
"srcDir": "",
|
||||
"url": "https://github.com/status-im/nim-faststreams/archive/422971502bd641703bf78a27cb20429e77fcfb8b.tar.gz",
|
||||
"url": "https://github.com/status-im/nim-faststreams",
|
||||
"subDir": "",
|
||||
"fetchSubmodules": true,
|
||||
"leaveDotGit": false,
|
||||
"packages": [
|
||||
"faststreams"
|
||||
]
|
||||
},
|
||||
{
|
||||
"method": "fetchzip",
|
||||
"path": "/nix/store/qkwz2w5haw8px691c6gkklvxxp38j9d3-source",
|
||||
"rev": "2f95909c767605e06670dc70f5cffd6b9284f192",
|
||||
"sha256": "1qdq9wpm6xahqczmvdn3a7yvvrw5x42ylvzmbybdwjzd8vmgg0zv",
|
||||
"method": "git",
|
||||
"path": "/nix/store/7k5blrxbh2zzsxrmz54l5i6v6dj4mp3g-with-91c51ec",
|
||||
"rev": "91c51ec1051bf0cb518cf9bb78114e2a84b03da7",
|
||||
"sha256": "170hfdc2z2qp9cxgvpqswzr4bmzljybh4lnn0k5kganwvf0ffz9p",
|
||||
"srcDir": "",
|
||||
"url": "https://github.com/zevv/with/archive/2f95909c767605e06670dc70f5cffd6b9284f192.tar.gz",
|
||||
"url": "https://github.com/zevv/with",
|
||||
"subDir": "",
|
||||
"fetchSubmodules": true,
|
||||
"leaveDotGit": false,
|
||||
"packages": [
|
||||
"with"
|
||||
]
|
||||
},
|
||||
{
|
||||
"method": "fetchzip",
|
||||
"path": "/nix/store/hn5r1ywl4qzzjl9zj62w5m6f8bqkjn8q-source",
|
||||
"rev": "dfc4c1b39f9ded9baf6365014de2b4bfb4dafc34",
|
||||
"sha256": "0fi59m8yvayzlh1ajbl98ddy43i3ikjqh3s5px16y0s3cidg4fai",
|
||||
"method": "git",
|
||||
"path": "/nix/store/jw9y4cm15y80h3v9xjz5s1r0rnyi5x4i-nim-testutils-e4fb95c",
|
||||
"rev": "e4fb95cbe36ad1e231661c922da04b81e0ffeed9",
|
||||
"sha256": "0gqhag91f8dkdv0v2mg6pz5q6afl70bbnk628i52p4wsi4bl49jj",
|
||||
"srcDir": "",
|
||||
"url": "https://github.com/status-im/nim-testutils/archive/dfc4c1b39f9ded9baf6365014de2b4bfb4dafc34.tar.gz",
|
||||
"url": "https://github.com/status-im/nim-testutils",
|
||||
"subDir": "",
|
||||
"fetchSubmodules": true,
|
||||
"leaveDotGit": false,
|
||||
"packages": [
|
||||
"testutils"
|
||||
]
|
||||
},
|
||||
{
|
||||
"method": "fetchzip",
|
||||
"path": "/nix/store/szg3jxcg0bf6zv224nyisqhnibkd2pxw-source",
|
||||
"rev": "c8a5cbe26917e6716b1597dae2d08166f3ce789a",
|
||||
"sha256": "1l1y4psbcd5w68j1zz172rlwsk7jxbwlr14r2kwnkj7xc7lfwlnx",
|
||||
"method": "git",
|
||||
"path": "/nix/store/sskmpq7fqax2x2wydb1lhyac4ikx5p6p-nim-results-57b2392",
|
||||
"rev": "57b2392ad69849e3e2d02b74a8a0feee2c3d9570",
|
||||
"sha256": "1wma3dhrrdfxn05ds6yiv9mj071czv90x06bm7f5rslzk0s7m1af",
|
||||
"srcDir": "",
|
||||
"url": "https://github.com/yyoncho/nim-json-rpc/archive/c8a5cbe26917e6716b1597dae2d08166f3ce789a.tar.gz",
|
||||
"url": "https://github.com/arnetheduck/nim-results",
|
||||
"subDir": "",
|
||||
"fetchSubmodules": true,
|
||||
"leaveDotGit": false,
|
||||
"packages": [
|
||||
"results"
|
||||
]
|
||||
},
|
||||
{
|
||||
"method": "git",
|
||||
"path": "/nix/store/06gaz1ks9rc13bxr7wkig4sfiz0mb3xw-nim-json-rpc-e27c10a",
|
||||
"rev": "e27c10ad4172e67f71a78044f53de073e7401390",
|
||||
"sha256": "16f1lz2c6pzyjwmnqxxzl3sf635kzvzggmk2gl7mqifz4v31wjbq",
|
||||
"srcDir": "",
|
||||
"url": "https://github.com/status-im/nim-json-rpc",
|
||||
"subDir": "",
|
||||
"fetchSubmodules": true,
|
||||
"leaveDotGit": false,
|
||||
"packages": [
|
||||
"json_rpc"
|
||||
]
|
||||
},
|
||||
{
|
||||
"method": "fetchzip",
|
||||
"path": "/nix/store/dnj20qh97ylf57nka9wbxs735wbw7yxv-source",
|
||||
"rev": "4014ef939b51e02053c2e16dd3481d47bc9267dd",
|
||||
"sha256": "1kgqr2lqaffglc1fgbanwcvhkqcbbd20d5b6w4lf0nksfl9c357a",
|
||||
"method": "git",
|
||||
"path": "/nix/store/narxn874mr56chm56iya8zdmnadvg61d-nimcrypto-71bca15",
|
||||
"rev": "71bca15508e2c0548f32b42a69bcfb1ccd9ab9ff",
|
||||
"sha256": "0iizdwgxdrfa94572874dr5d3q2g9j6yk33xzywci7ig3w58rm82",
|
||||
"srcDir": "",
|
||||
"url": "https://github.com/cheatfate/nimcrypto/archive/4014ef939b51e02053c2e16dd3481d47bc9267dd.tar.gz",
|
||||
"url": "https://github.com/cheatfate/nimcrypto",
|
||||
"subDir": "",
|
||||
"fetchSubmodules": true,
|
||||
"leaveDotGit": false,
|
||||
"packages": [
|
||||
"nimcrypto"
|
||||
]
|
||||
},
|
||||
{
|
||||
"method": "fetchzip",
|
||||
"path": "/nix/store/drj65wylnxdbv4jqhymf7biiyjfb75v8-source",
|
||||
"rev": "9372f27a25d0718d3527afad6cc936f6a853f86e",
|
||||
"sha256": "152zbyqx12fmmjl4wn6kqqk1jzp1ywm4xvjd28ll9037f1pyd5ic",
|
||||
"method": "git",
|
||||
"path": "/nix/store/mki47dpj9mi8wa7gwhp3n0q6z9lhn1mv-nim-bearssl-667b404",
|
||||
"rev": "667b40440a53a58e9f922e29e20818720c62d9ac",
|
||||
"sha256": "0a4mf9g7p7zdhlzzfl9iikmhkyl7w5kf2mrn0bv4w4n30sl98m4s",
|
||||
"srcDir": "",
|
||||
"url": "https://github.com/status-im/nim-bearssl/archive/9372f27a25d0718d3527afad6cc936f6a853f86e.tar.gz",
|
||||
"url": "https://github.com/status-im/nim-bearssl",
|
||||
"subDir": "",
|
||||
"fetchSubmodules": true,
|
||||
"leaveDotGit": false,
|
||||
"packages": [
|
||||
"bearssl"
|
||||
]
|
||||
},
|
||||
{
|
||||
"method": "fetchzip",
|
||||
"path": "/nix/store/h0xl7qnw7bh513rb24k1n805x3n1rimw-source",
|
||||
"rev": "d9394dc7286064902d825bbc1203d03d7218633a",
|
||||
"sha256": "102m7jaxjip24a6hrnk0nvfb0vmdx5zq4m9i4xyzq8m782xyqp94",
|
||||
"method": "git",
|
||||
"path": "/nix/store/cfs80kvd9s3np81i5bfr0pvhsv046vxm-nim-json-serialization-8a4ed98",
|
||||
"rev": "8a4ed98bbd0a9479df15af2fa31da38a586ea6d5",
|
||||
"sha256": "1r6acznzdyd3r5ixfhxbcqsrm6iqcyvrg5i93pzna1q4h9mgmf5f",
|
||||
"srcDir": "",
|
||||
"url": "https://github.com/status-im/nim-json-serialization/archive/d9394dc7286064902d825bbc1203d03d7218633a.tar.gz",
|
||||
"url": "https://github.com/status-im/nim-json-serialization",
|
||||
"subDir": "",
|
||||
"fetchSubmodules": true,
|
||||
"leaveDotGit": false,
|
||||
"packages": [
|
||||
"json_serialization"
|
||||
]
|
||||
},
|
||||
{
|
||||
"method": "fetchzip",
|
||||
"path": "/nix/store/ffz78k6z9wf8vj2kv1jdj5dq2rxf61j7-source",
|
||||
"rev": "2a2681b60289aaf7895b7056f22616081eb1a882",
|
||||
"sha256": "0n8awgrmn9f6vd7ibv1jlyxk61lrs7hc51fghilrw6g6xq5w9rxq",
|
||||
"method": "git",
|
||||
"path": "/nix/store/vnxrmzlkma85rsf82abcr81ywrgr5dya-nim-chronicles-32ac867",
|
||||
"rev": "32ac8679680ea699f7dbc046e8e0131cac97d41a",
|
||||
"sha256": "0w3ya0rpy0rp997nnfakq0cshpk4vyva195mmgrw5c9zp4pwv2hm",
|
||||
"srcDir": "",
|
||||
"url": "https://github.com/status-im/nim-chronicles/archive/2a2681b60289aaf7895b7056f22616081eb1a882.tar.gz",
|
||||
"url": "https://github.com/status-im/nim-chronicles",
|
||||
"subDir": "",
|
||||
"fetchSubmodules": true,
|
||||
"leaveDotGit": false,
|
||||
"packages": [
|
||||
"chronicles"
|
||||
]
|
||||
},
|
||||
{
|
||||
"method": "fetchzip",
|
||||
"path": "/nix/store/51nf7pb5cwg2n441ka6w6g6c4hdjsdj4-source",
|
||||
"rev": "bb01d965a2ad0f08eaff6a53874f028ddbab4909",
|
||||
"sha256": "0v4n7maskd07qsx8rsr9v0bs7nzbncmvxsn7j9jsk9azcy803v49",
|
||||
"method": "git",
|
||||
"path": "/nix/store/ngqb4fpv1yi4zn5x7sn3p3yvxmmbn2z1-nim-zlib-45b06fc",
|
||||
"rev": "45b06fca15ce0f09586067d950da30c10227865a",
|
||||
"sha256": "1gcvl59j7yj698sl4l35drq0cmvy2zsywgi7b0dv9ci3klss4cxb",
|
||||
"srcDir": "",
|
||||
"url": "https://github.com/nickysn/asynctools/archive/bb01d965a2ad0f08eaff6a53874f028ddbab4909.tar.gz",
|
||||
"subDir": "",
|
||||
"packages": [
|
||||
"asynctools"
|
||||
]
|
||||
},
|
||||
{
|
||||
"method": "fetchzip",
|
||||
"path": "/nix/store/br78rad2jnl6zka2q89qi6pkfiyn10fv-source",
|
||||
"rev": "f34ca261efd90f118dc1647beefd2f7a69b05d93",
|
||||
"sha256": "1k8y7m1ry1z8jm8hj8pa3vlqprshaa59cdwq2a4acrfw9ks5w482",
|
||||
"srcDir": "",
|
||||
"url": "https://github.com/status-im/nim-zlib/archive/f34ca261efd90f118dc1647beefd2f7a69b05d93.tar.gz",
|
||||
"url": "https://github.com/status-im/nim-zlib",
|
||||
"subDir": "",
|
||||
"fetchSubmodules": true,
|
||||
"leaveDotGit": false,
|
||||
"packages": [
|
||||
"zlib"
|
||||
]
|
||||
|
|
|
@ -6,16 +6,17 @@
|
|||
buildNimPackage (
|
||||
final: prev: rec {
|
||||
pname = "nimlangserver";
|
||||
version = "1.4.0";
|
||||
version = "1.6.0";
|
||||
|
||||
# lock.json generated with github.com/daylinmorgan/nnl
|
||||
# nix build ".#nimlangserver.src"
|
||||
# nix run "github:daylinmorgan/nnl" -- result/nimble.lock -o:pkgs/by-name/ni/nimlangserver/lock.json --force-git
|
||||
lockFile = ./lock.json;
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "nim-lang";
|
||||
repo = "langserver";
|
||||
rev = "v${version}";
|
||||
hash = "sha256-mh+p8t8/mbZvgsJ930lXkcBdUjjioZoNyNZzwywAiUI=";
|
||||
hash = "sha256-rTlkbNuJbL9ke1FpHYVYduiYHUON6oACg20pBs0MaP4=";
|
||||
};
|
||||
|
||||
doCheck = false;
|
||||
|
|
|
@ -7,13 +7,13 @@
|
|||
|
||||
buildNpmPackage rec {
|
||||
pname = "nodemon";
|
||||
version = "3.1.4";
|
||||
version = "3.1.7";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "remy";
|
||||
repo = "nodemon";
|
||||
rev = "v${version}";
|
||||
hash = "sha256-bAsq1eoeQ03VhNYgdYJQnZRCxyvt46C+3scihGp+9GU=";
|
||||
hash = "sha256-1hwkPXCPBLYPsg9WwWxId/9v5KF0Iu13qWHRzYJUh+E=";
|
||||
};
|
||||
|
||||
npmDepsHash = "sha256-cZHfaUWhKZYKRe4Foc2UymZ8hTPrGLzlcXe1gMsW1pU=";
|
||||
|
|
|
@ -2,13 +2,13 @@
|
|||
|
||||
buildGoModule rec {
|
||||
pname = "orchard";
|
||||
version = "0.23.2";
|
||||
version = "0.24.0";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "cirruslabs";
|
||||
repo = pname;
|
||||
rev = version;
|
||||
hash = "sha256-hsYIIA2JA+LT+qaootOkHVN4JD+msO1grYQq4Z6ipYU=";
|
||||
hash = "sha256-N54wkqe05Hm9o+kQmWTJREoU+0GnivaVTJngtBDL8+U=";
|
||||
# populate values that require us to use git. By doing this in postFetch we
|
||||
# can delete .git afterwards and maintain better reproducibility of the src.
|
||||
leaveDotGit = true;
|
||||
|
@ -19,7 +19,7 @@ buildGoModule rec {
|
|||
'';
|
||||
};
|
||||
|
||||
vendorHash = "sha256-HphNpli6hYvmeIJlkkSzOZDbdqFL4XI+koUK9RvWfw8=";
|
||||
vendorHash = "sha256-R4KsR00VAq0fUxHM48212GWy8KJoIOM0R8ycVjjjMO4=";
|
||||
|
||||
nativeBuildInputs = [ installShellFiles ];
|
||||
|
||||
|
|
|
@ -13,6 +13,12 @@ buildGoModule rec {
|
|||
|
||||
vendorHash = "sha256-Yl8ZFEiAJRAetc3e2ZdrbTdYhx/Ek9nr3mMQ0H7+aGM=";
|
||||
|
||||
ldflags = [
|
||||
"-s" "-w"
|
||||
"-X github.com/styrainc/regal/pkg/version.Version=${version}"
|
||||
"-X github.com/styrainc/regal/pkg/version.Commit=${version}"
|
||||
];
|
||||
|
||||
meta = with lib; {
|
||||
description = "Linter and language server for Rego";
|
||||
mainProgram = "regal";
|
||||
|
|
|
@ -5,13 +5,13 @@
|
|||
}:
|
||||
buildGoModule rec {
|
||||
pname = "sesh";
|
||||
version = "2.2.0";
|
||||
version = "2.4.0";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "joshmedeski";
|
||||
repo = "sesh";
|
||||
rev = "v${version}";
|
||||
hash = "sha256-Kot5ah4NH1CvXHYRA4r3SS7ugkWgOv9rHlmWoToRpiw=";
|
||||
hash = "sha256-62w4I49ahXC4IHy0i/V4tArCqrg2Rch6f+IM/YoFQh8=";
|
||||
};
|
||||
|
||||
vendorHash = "sha256-a45P6yt93l0CnL5mrOotQmE/1r0unjoToXqSJ+spimg=";
|
||||
|
|
|
@ -1,70 +1,82 @@
|
|||
{
|
||||
lib,
|
||||
buildNpmPackage,
|
||||
fetchFromGitHub,
|
||||
dotnetCorePackages,
|
||||
buildDotnetModule,
|
||||
buildPackages,
|
||||
dotnetCorePackages,
|
||||
fetchFromGitHub,
|
||||
fetchNpmDeps,
|
||||
mono,
|
||||
nodejs_18,
|
||||
slskd,
|
||||
testers,
|
||||
}:
|
||||
|
||||
let
|
||||
nodejs = nodejs_18;
|
||||
# https://github.com/NixOS/nixpkgs/blob/d88947e91716390bdbefccdf16f7bebcc41436eb/pkgs/build-support/node/build-npm-package/default.nix#L62
|
||||
npmHooks = buildPackages.npmHooks.override { inherit nodejs; };
|
||||
in
|
||||
buildDotnetModule rec {
|
||||
pname = "slskd";
|
||||
version = "0.21.3";
|
||||
version = "0.21.4";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "slskd";
|
||||
repo = "slskd";
|
||||
rev = version;
|
||||
hash = "sha256-qAS8uiXAG0JTOCW/bIVYhv6McUSBihAHFjJu3b5Ttoc=";
|
||||
rev = "refs/tags/${version}";
|
||||
hash = "sha256-9EKlCmc+zdiuEPa8YNjoQ3QLTy8vt2qcZ+6D0sWgwEU=";
|
||||
};
|
||||
|
||||
meta = with lib; {
|
||||
description = "Modern client-server application for the Soulseek file sharing network";
|
||||
homepage = "https://github.com/slskd/slskd";
|
||||
license = licenses.agpl3Plus;
|
||||
maintainers = with maintainers; [
|
||||
ppom
|
||||
melvyn2
|
||||
];
|
||||
platforms = platforms.linux;
|
||||
};
|
||||
|
||||
wwwroot = buildNpmPackage {
|
||||
inherit meta version;
|
||||
|
||||
pname = "slskd-web";
|
||||
src = "${src}/src/web";
|
||||
npmFlags = [ "--legacy-peer-deps" ];
|
||||
nodejs = nodejs_18;
|
||||
npmDepsHash = "sha256-06qQ1y870TrkXhkHYADjnWVhdyiLWEqdDt3qrJ1BBFo=";
|
||||
installPhase = ''
|
||||
cp -r build $out
|
||||
'';
|
||||
};
|
||||
|
||||
in
|
||||
buildDotnetModule {
|
||||
inherit
|
||||
pname
|
||||
version
|
||||
src
|
||||
meta
|
||||
;
|
||||
nativeBuildInputs = [
|
||||
nodejs
|
||||
npmHooks.npmConfigHook
|
||||
];
|
||||
|
||||
runtimeDeps = [ mono ];
|
||||
|
||||
npmRoot = "src/web";
|
||||
npmDeps = fetchNpmDeps {
|
||||
name = "${pname}-${version}-npm-deps";
|
||||
inherit src;
|
||||
sourceRoot = "${src.name}/${npmRoot}";
|
||||
hash = "sha256-WANoxgPbBoMx6o8fjhSTsKBRZadO2QaeErMMMXk0tgE=";
|
||||
};
|
||||
|
||||
projectFile = "slskd.sln";
|
||||
nugetDeps = ./deps.nix;
|
||||
|
||||
dotnet-sdk = dotnetCorePackages.sdk_8_0;
|
||||
dotnet-runtime = dotnetCorePackages.aspnetcore_8_0;
|
||||
|
||||
projectFile = "slskd.sln";
|
||||
|
||||
testProjectFile = "tests/slskd.Tests.Unit/slskd.Tests.Unit.csproj";
|
||||
doCheck = true;
|
||||
|
||||
nugetDeps = ./deps.nix;
|
||||
postBuild = ''
|
||||
pushd "$npmRoot"
|
||||
npm run build --legacy-peer-deps
|
||||
popd
|
||||
'';
|
||||
|
||||
postInstall = ''
|
||||
rm -r $out/lib/slskd/wwwroot
|
||||
ln -s ${wwwroot} $out/lib/slskd/wwwroot
|
||||
mv "$npmRoot"/build $out/lib/slskd/wwwroot
|
||||
'';
|
||||
|
||||
passthru = {
|
||||
tests.version = testers.testVersion { package = slskd; };
|
||||
};
|
||||
|
||||
meta = {
|
||||
description = "Modern client-server application for the Soulseek file sharing network";
|
||||
homepage = "https://github.com/slskd/slskd";
|
||||
changelog = "https://github.com/slskd/slskd/releases/tag/${version}";
|
||||
license = lib.licenses.agpl3Plus;
|
||||
maintainers = with lib.maintainers; [
|
||||
ppom
|
||||
melvyn2
|
||||
getchoo
|
||||
];
|
||||
mainProgram = "slskd";
|
||||
platforms = lib.platforms.linux;
|
||||
};
|
||||
}
|
||||
|
|
27
pkgs/by-name/te/tex-fmt/package.nix
Normal file
27
pkgs/by-name/te/tex-fmt/package.nix
Normal file
|
@ -0,0 +1,27 @@
|
|||
{
|
||||
lib,
|
||||
fetchFromGitHub,
|
||||
rustPlatform,
|
||||
}:
|
||||
|
||||
rustPlatform.buildRustPackage rec {
|
||||
pname = "tex-fmt";
|
||||
version = "0.4.3";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "WGUNDERWOOD";
|
||||
repo = "tex-fmt";
|
||||
rev = "refs/tags/v${version}";
|
||||
hash = "sha256-Atq/eyvdAuaUEeYDIC5D9icD44mcvuhsyuctYAPrBSU=";
|
||||
};
|
||||
|
||||
cargoHash = "sha256-ShF2Z5Od/pgsNRM6WmxxFeE67pYZin1q4RR6nVmbrsA=";
|
||||
|
||||
meta = {
|
||||
description = "LaTeX formatter written in Rust";
|
||||
homepage = "https://github.com/WGUNDERWOOD/tex-fmt";
|
||||
license = lib.licenses.mit;
|
||||
mainProgram = "tex-fmt";
|
||||
maintainers = with lib.maintainers; [ wgunderwood ];
|
||||
};
|
||||
}
|
|
@ -101,7 +101,7 @@ lib.warnIf (useHardenedMalloc != null)
|
|||
++ lib.optionals mediaSupport [ ffmpeg ]
|
||||
);
|
||||
|
||||
version = "13.5.4";
|
||||
version = "13.5.5";
|
||||
|
||||
sources = {
|
||||
x86_64-linux = fetchurl {
|
||||
|
@ -111,7 +111,7 @@ lib.warnIf (useHardenedMalloc != null)
|
|||
"https://tor.eff.org/dist/torbrowser/${version}/tor-browser-linux-x86_64-${version}.tar.xz"
|
||||
"https://tor.calyxinstitute.org/dist/torbrowser/${version}/tor-browser-linux-x86_64-${version}.tar.xz"
|
||||
];
|
||||
hash = "sha256-2gu/JzkLYvYveOM1XvDpyV3dLoixqKvfmyHGIAz8nis=";
|
||||
hash = "sha256-5Gwr7gKI5HVyAymi04BjiKTAIrYSSLVmIBu882XZ7gw=";
|
||||
};
|
||||
|
||||
i686-linux = fetchurl {
|
||||
|
@ -121,7 +121,7 @@ lib.warnIf (useHardenedMalloc != null)
|
|||
"https://tor.eff.org/dist/torbrowser/${version}/tor-browser-linux-i686-${version}.tar.xz"
|
||||
"https://tor.calyxinstitute.org/dist/torbrowser/${version}/tor-browser-linux-i686-${version}.tar.xz"
|
||||
];
|
||||
hash = "sha256-BnJuKKwB6VqsHlRCU1cAuuaNdNu56oSE4z4wYXnyy/Q=";
|
||||
hash = "sha256-kpRtPM7jTYm6wmYiFT89B4Ue7kbsWweUxqXzeNtLCdo=";
|
||||
};
|
||||
};
|
||||
|
||||
|
|
|
@ -45,9 +45,7 @@ rustPlatform.buildRustPackage rec {
|
|||
homepage = "https://gitlab.com/xen-project/xen-guest-agent";
|
||||
license = lib.licenses.agpl3Only;
|
||||
platforms = lib.platforms.unix;
|
||||
maintainers = with lib.maintainers; [
|
||||
matdibu
|
||||
sigmasquadron
|
||||
];
|
||||
maintainers = lib.teams.xen.members;
|
||||
mainProgram = "xen-guest-agent";
|
||||
};
|
||||
}
|
||||
|
|
|
@ -71,7 +71,7 @@ stdenv.mkDerivation {
|
|||
description = "Xen Test Framework and Suite for creating microkernel-based tests";
|
||||
homepage = "https://xenbits.xenproject.org/docs/xtf/index.html";
|
||||
license = lib.licenses.bsd2;
|
||||
maintainers = with lib.maintainers; [ sigmasquadron ];
|
||||
maintainers = lib.teams.xen.members;
|
||||
mainProgram = "xtf-runner";
|
||||
platforms = lib.lists.intersectLists lib.platforms.linux lib.platforms.x86_64;
|
||||
};
|
||||
|
|
|
@ -8,21 +8,22 @@
|
|||
|
||||
python3Packages.buildPythonApplication rec {
|
||||
pname = "yutto";
|
||||
version = "2.0.0-beta.40";
|
||||
format = "pyproject";
|
||||
version = "2.0.0-beta.43";
|
||||
pyproject = true;
|
||||
|
||||
disabled = python3Packages.pythonOlder "3.9";
|
||||
pythonRelaxDeps = true;
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "yutto-dev";
|
||||
repo = "yutto";
|
||||
rev = "v${version}";
|
||||
hash = "sha256-gopCQ8tEhwtDFs/w+jafD3ZW/4MIrYxPcMh8SbOCwww=";
|
||||
rev = "refs/tags/v${version}";
|
||||
hash = "sha256-ND3uE4vsFa7gPr1E2UfiebExsrj+ELN0+hqnxxOQu8Y=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = with python3Packages; [ poetry-core ];
|
||||
build-system = with python3Packages; [ hatchling ];
|
||||
|
||||
propagatedBuildInputs =
|
||||
dependencies =
|
||||
with python3Packages;
|
||||
[
|
||||
httpx
|
||||
|
|
2
pkgs/by-name/ze/zed-editor/Cargo.lock
generated
2
pkgs/by-name/ze/zed-editor/Cargo.lock
generated
|
@ -14375,7 +14375,7 @@ dependencies = [
|
|||
|
||||
[[package]]
|
||||
name = "zed"
|
||||
version = "0.154.2"
|
||||
version = "0.154.3"
|
||||
dependencies = [
|
||||
"activity_indicator",
|
||||
"anyhow",
|
||||
|
|
|
@ -86,13 +86,13 @@ let
|
|||
in
|
||||
rustPlatform.buildRustPackage rec {
|
||||
pname = "zed-editor";
|
||||
version = "0.154.2";
|
||||
version = "0.154.3";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "zed-industries";
|
||||
repo = "zed";
|
||||
rev = "refs/tags/v${version}";
|
||||
hash = "sha256-DcSlsBwZW2RhzX74eNi0+VBwnxYLl22CbCbZrEOSiFQ=";
|
||||
hash = "sha256-6W4YKtYeLUv1N51YJonb7I2BO4zEESgI8vmMhJVoLDI=";
|
||||
fetchSubmodules = true;
|
||||
};
|
||||
|
||||
|
|
|
@ -11,13 +11,13 @@
|
|||
|
||||
stdenvNoCC.mkDerivation rec {
|
||||
pname = "numix-icon-theme";
|
||||
version = "24.04.22";
|
||||
version = "24.09.18";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "numixproject";
|
||||
repo = pname;
|
||||
rev = version;
|
||||
sha256 = "sha256-hFUsj0nODUVbzKyN6ud3HsaoTZBLGW+jjwc6kFFH02c=";
|
||||
sha256 = "sha256-NcsrITf/uiAeCGVxILP7/duzBYTXs1b9Yztsruq1MJg=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
|
|
|
@ -3,12 +3,12 @@
|
|||
let
|
||||
generator = pkgsBuildBuild.buildGoModule rec {
|
||||
pname = "v2ray-domain-list-community";
|
||||
version = "20240914091803";
|
||||
version = "20240920063125";
|
||||
src = fetchFromGitHub {
|
||||
owner = "v2fly";
|
||||
repo = "domain-list-community";
|
||||
rev = version;
|
||||
hash = "sha256-nfw2gpI99hX3sgCdRST4IZ1RsUxPIMWGsTNuFnvOXkU=";
|
||||
hash = "sha256-NNBC7Pd8mxPuC2LVmedZLtvsnw2LfbD+VEPwtTU5DQE=";
|
||||
};
|
||||
vendorHash = "sha256-NLh14rXRci4hgDkBJVJDIDvobndB7KYRKAX7UjyqSsg=";
|
||||
meta = with lib; {
|
||||
|
|
|
@ -20,7 +20,7 @@ stdenv.mkDerivation (args // {
|
|||
|
||||
postPatch = ''
|
||||
export ZLIB="$(find ${zlib.out}/lib -type f | sort | head -n1)"
|
||||
export LZ4="$(find ${lz4.out}/lib -type f | sort | head -n1)"
|
||||
export LZ4="$(find ${lz4.lib}/lib -type f | sort | head -n1)"
|
||||
'';
|
||||
|
||||
nativeBuildInputs = lib.optionals stdenv.hostPlatform.isDarwin ([ cctools darwin.autoSignDarwinBinariesHook ]);
|
||||
|
|
|
@ -2,31 +2,37 @@
|
|||
|
||||
# Upstream changes files in-place, to update:
|
||||
# 1. Check latest version at http://www.un4seen.com/
|
||||
# 2. Update `version`s and `sha256` sums.
|
||||
# 2. Update `version`s and `hash` sums.
|
||||
# See also http://www.un4seen.com/forum/?topic=18614.0
|
||||
|
||||
# Internet Archive used due to upstream URLs being unstable
|
||||
|
||||
let
|
||||
allBass = {
|
||||
bass = {
|
||||
h = "bass.h";
|
||||
version = "2.4.15";
|
||||
version = "2.4.17";
|
||||
so = {
|
||||
i686_linux = "libbass.so";
|
||||
x86_64-linux = "x64/libbass.so";
|
||||
i686_linux = "libs/x86/libbass.so";
|
||||
x86_64-linux = "libs/x86_64/libbass.so";
|
||||
armv7l-linux = "libs/armhf/libbass.so";
|
||||
aarch64-linux = "libs/aarch64/libbass.so";
|
||||
};
|
||||
urlpath = "bass24-linux.zip";
|
||||
sha256 = "1lmysxfhy727zskavml3ibg5w876ir88923bm17c21s59w5lh7l8";
|
||||
url = "https://web.archive.org/web/20240501180538/http://www.un4seen.com/files/bass24-linux.zip";
|
||||
hash = "sha256-/JAlvtZtnzuzZjWy3n1WT8Q5ZVLO0BJJAJT7/dELS3o=";
|
||||
};
|
||||
|
||||
bass_fx = {
|
||||
h = "C/bass_fx.h";
|
||||
version = "2.4.12.1";
|
||||
so = {
|
||||
i686_linux = "libbass_fx.so";
|
||||
x86_64-linux = "x64/libbass_fx.so";
|
||||
i686_linux = "libs/x86/libbass_fx.so";
|
||||
x86_64-linux = "libs/x86_64/libbass_fx.so";
|
||||
armv7l-linux = "libs/armhf/libbass_fx.so";
|
||||
aarch64-linux = "libs/aarch64/libbass_fx.so";
|
||||
};
|
||||
urlpath = "z/0/bass_fx24-linux.zip";
|
||||
sha256 = "1q0g74z7iyhxqps5b3gnnbic8v2jji1r0mkvais57lsx8y21sbin";
|
||||
url = "https://web.archive.org/web/20240926184106/https://www.un4seen.com/files/z/0/bass_fx24-linux.zip";
|
||||
hash = "sha256-Hul2ELwnaDV8TDRMDXoFisle31GATDkf3PdkR2K9QTs=";
|
||||
};
|
||||
};
|
||||
|
||||
|
@ -35,9 +41,9 @@ let
|
|||
inherit (bass) version;
|
||||
|
||||
src = fetchurl {
|
||||
url = "https://www.un4seen.com/files/${bass.urlpath}";
|
||||
inherit (bass) sha256;
|
||||
inherit (bass) hash url;
|
||||
};
|
||||
|
||||
unpackCmd = ''
|
||||
mkdir out
|
||||
${unzip}/bin/unzip $curSrc -d out
|
||||
|
@ -60,8 +66,7 @@ let
|
|||
homepage = "https://www.un4seen.com/";
|
||||
license = licenses.unfreeRedistributable;
|
||||
platforms = builtins.attrNames bass.so;
|
||||
# until upstream has stable URLs, this package is prone to always being broken
|
||||
broken = true;
|
||||
maintainers = with maintainers; [ jacekpoz ];
|
||||
};
|
||||
};
|
||||
|
||||
|
|
|
@ -9,21 +9,21 @@
|
|||
|
||||
stdenv.mkDerivation (finalAttrs: {
|
||||
pname = "drogon";
|
||||
version = "1.9.4";
|
||||
version = "1.9.7";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "drogonframework";
|
||||
repo = "drogon";
|
||||
rev = "v${finalAttrs.version}";
|
||||
hash = "sha256-P6blu3EIBzmK1zikFPiV+tvFLfiQhK+cRdClQOhcBSU=";
|
||||
hash = "sha256-YmN02OvCllxADAIicWKaTevrbAsP/ZbnhBd/hjqqz7A=";
|
||||
fetchSubmodules = true;
|
||||
};
|
||||
|
||||
nativeBuildInputs = [ cmake ];
|
||||
|
||||
cmakeFlags = [
|
||||
"-DBUILD_TESTING=${if finalAttrs.finalPackage.doInstallCheck then "ON" else "OFF"}"
|
||||
"-DBUILD_EXAMPLES=OFF"
|
||||
(lib.cmakeBool "BUILD_TESTING" finalAttrs.finalPackage.doInstallCheck)
|
||||
(lib.cmakeBool "BUILD_EXAMPLES" false)
|
||||
];
|
||||
|
||||
propagatedBuildInputs = [
|
||||
|
|
|
@ -1,13 +1,13 @@
|
|||
diff --git a/test.sh b/test.sh
|
||||
index f017b9a..027031e 100755
|
||||
--- a/test.sh
|
||||
+++ b/test.sh
|
||||
@@ -135,7 +135,7 @@ if [ $os = "windows" ]; then
|
||||
conan install $src_dir -s compiler="Visual Studio" -s compiler.version=16 -sbuild_type=Debug -g cmake_paths
|
||||
cmake_gen="$cmake_gen -DCMAKE_TOOLCHAIN_FILE=conan_paths.cmake -DCMAKE_INSTALL_PREFIX=$src_dir/install"
|
||||
fi
|
||||
-cmake .. $cmake_gen
|
||||
+cmake .. $cmake_gen -DDrogon_DIR=$out/lib/cmake/Drogon -DTrantor_DIR=$out/lib/cmake/Trantor
|
||||
diff --git i/test.sh w/test.sh
|
||||
index 4796ff11..a6627fec 100755
|
||||
--- i/test.sh
|
||||
+++ w/test.sh
|
||||
@@ -148,7 +148,7 @@ function do_drogon_ctl_test()
|
||||
-DCMAKE_POLICY_DEFAULT_CMP0091=NEW \
|
||||
-DCMAKE_CXX_STANDARD=17"
|
||||
fi
|
||||
- cmake .. $cmake_gen
|
||||
+ cmake .. $cmake_gen -DDrogon_DIR=$out/lib/cmake/Drogon -DTrantor_DIR=$out/lib/cmake/Trantor
|
||||
|
||||
if [ $? -ne 0 ]; then
|
||||
echo "Failed to run CMake for example project"
|
||||
if [ $? -ne 0 ]; then
|
||||
echo "Failed to run CMake for example project"
|
||||
|
|
|
@ -2,13 +2,13 @@
|
|||
|
||||
stdenv.mkDerivation {
|
||||
pname = "libcxxrt";
|
||||
version = "4.0.10-unstable-2024-08-06";
|
||||
version = "4.0.10-unstable-2024-09-24";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "libcxxrt";
|
||||
repo = "libcxxrt";
|
||||
rev = "7a3ef57f64be0f2f2a156af011adfbe76c7dce74";
|
||||
sha256 = "H4FodZ3fAgkWWE+ZByAOx7Nn0+ujxEobOkeHdE/lI94=";
|
||||
rev = "40e4fa2049930412a2c43cdf0c39b6b5aa735341";
|
||||
sha256 = "2rEbRTr8RLl8EKrDq210baCPDt9OppdL7zloNjGOZME=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [ cmake ];
|
||||
|
|
|
@ -32,6 +32,6 @@ buildDunePackage rec {
|
|||
description = "Xen Vchan implementation";
|
||||
homepage = "https://github.com/mirage/ocaml-vchan";
|
||||
license = licenses.isc;
|
||||
maintainers = [ maintainers.sternenseemann ];
|
||||
maintainers = teams.xen.members ++ [ maintainers.sternenseemann ];
|
||||
};
|
||||
}
|
||||
|
|
|
@ -25,10 +25,7 @@ buildDunePackage rec {
|
|||
meta = with lib; {
|
||||
description = "Xenstore protocol in pure OCaml";
|
||||
license = licenses.lgpl21Only;
|
||||
maintainers = with maintainers; [
|
||||
sternenseemann
|
||||
sigmasquadron
|
||||
];
|
||||
maintainers = teams.xen.members ++ [ maintainers.sternenseemann ];
|
||||
homepage = "https://github.com/mirage/ocaml-xenstore";
|
||||
};
|
||||
}
|
||||
|
|
|
@ -23,5 +23,6 @@ buildDunePackage rec {
|
|||
description = "Low-level libraries for connecting to a xenstore service on a xen host";
|
||||
license = licenses.lgpl21Only;
|
||||
homepage = "https://github.com/xapi-project/ocaml-xenstore-clients";
|
||||
maintainers = teams.xen.members;
|
||||
};
|
||||
}
|
||||
|
|
|
@ -17,7 +17,7 @@
|
|||
|
||||
buildPythonPackage rec {
|
||||
pname = "atlassian-python-api";
|
||||
version = "3.41.15";
|
||||
version = "3.41.16";
|
||||
format = "setuptools";
|
||||
|
||||
disabled = pythonOlder "3.7";
|
||||
|
@ -26,7 +26,7 @@ buildPythonPackage rec {
|
|||
owner = "atlassian-api";
|
||||
repo = pname;
|
||||
rev = "refs/tags/${version}";
|
||||
hash = "sha256-DnsDulCbkilfD51r8x/L3RJXTDclAi4gYNktfuQC0w8=";
|
||||
hash = "sha256-HhFGM8EPGCT3WqVf6WP6VvwsppvzFvHg+ys7GhUUwW0=";
|
||||
};
|
||||
|
||||
propagatedBuildInputs = [
|
||||
|
|
|
@ -2,29 +2,39 @@
|
|||
lib,
|
||||
buildPythonPackage,
|
||||
fetchFromGitHub,
|
||||
pythonOlder,
|
||||
poetry-core,
|
||||
protobuf,
|
||||
rustPlatform,
|
||||
pytestCheckHook,
|
||||
}:
|
||||
|
||||
buildPythonPackage rec {
|
||||
pname = "biliass";
|
||||
version = "1.3.11";
|
||||
format = "pyproject";
|
||||
|
||||
disabled = pythonOlder "3.7";
|
||||
version = "2.0.0-beta.1";
|
||||
pyproject = true;
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "yutto-dev";
|
||||
repo = "biliass";
|
||||
rev = "refs/tags/v${version}";
|
||||
hash = "sha256-hBorYAqtxTZ4LElxxJOGxC2g7sBRhRKVv6HOVHZn9FA=";
|
||||
repo = "yutto";
|
||||
rev = "refs/tags/biliass@${version}";
|
||||
hash = "sha256-Clma0Ggkphk6F+K+h3TdMUX4WyWQorh9g2uAT4+Fc9I=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [ poetry-core ];
|
||||
sourceRoot = "source/packages/biliass";
|
||||
cargoRoot = "rust";
|
||||
|
||||
propagatedBuildInputs = [ protobuf ];
|
||||
cargoDeps = rustPlatform.fetchCargoTarball {
|
||||
inherit
|
||||
pname
|
||||
version
|
||||
src
|
||||
;
|
||||
sourceRoot = "${sourceRoot}/${cargoRoot}";
|
||||
hash = "sha256-h/UOolWQ2k5krOZy/kPywpeiLyXWLzvNu+pcn97or1A=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = with rustPlatform; [
|
||||
cargoSetupHook
|
||||
maturinBuildHook
|
||||
];
|
||||
|
||||
doCheck = false; # test artifacts missing
|
||||
|
||||
|
|
|
@ -14,14 +14,14 @@
|
|||
|
||||
buildPythonPackage rec {
|
||||
pname = "dbt-adapters";
|
||||
version = "1.6.1";
|
||||
version = "1.7.0";
|
||||
pyproject = true;
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "dbt-labs";
|
||||
repo = "dbt-adapters";
|
||||
rev = "refs/tags/v${version}";
|
||||
hash = "sha256-i5sGgkFrW/37PH5XnH2bf/bTNgCZwEgNZT9IMbOJwLQ=";
|
||||
hash = "sha256-I3A3rIMpT+MAq+ebid9RMr6I3W1l4ir78UmfeEr5U3U=";
|
||||
};
|
||||
|
||||
build-system = [ hatchling ];
|
||||
|
|
|
@ -12,7 +12,7 @@
|
|||
|
||||
buildPythonPackage rec {
|
||||
pname = "pypck";
|
||||
version = "0.7.23";
|
||||
version = "0.7.24";
|
||||
pyproject = true;
|
||||
|
||||
disabled = pythonOlder "3.9";
|
||||
|
@ -21,7 +21,7 @@ buildPythonPackage rec {
|
|||
owner = "alengwenus";
|
||||
repo = "pypck";
|
||||
rev = "refs/tags/${version}";
|
||||
hash = "sha256-CaDwmVx6otBRuPMVpQxaZH/wqkrLgMkq/OnbkkT+VcM=";
|
||||
hash = "sha256-DWdQUnURL3WBi916vOTawtBqq+SHTu4iLViGczwAWQE=";
|
||||
};
|
||||
|
||||
postPatch = ''
|
||||
|
|
|
@ -10,7 +10,7 @@
|
|||
|
||||
buildPythonPackage rec {
|
||||
pname = "tencentcloud-sdk-python";
|
||||
version = "3.0.1240";
|
||||
version = "3.0.1241";
|
||||
pyproject = true;
|
||||
|
||||
disabled = pythonOlder "3.9";
|
||||
|
@ -19,7 +19,7 @@ buildPythonPackage rec {
|
|||
owner = "TencentCloud";
|
||||
repo = "tencentcloud-sdk-python";
|
||||
rev = "refs/tags/${version}";
|
||||
hash = "sha256-7ymzyQx59IrvI2GyrCYdNVU/3VLa/VzaFTvgfk4stnM=";
|
||||
hash = "sha256-vL6FcD3M8M9RYJZt4LvQOD0Wr6i8KsAQSokjB/o4Lqw=";
|
||||
};
|
||||
|
||||
build-system = [ setuptools ];
|
||||
|
|
|
@ -9,16 +9,16 @@
|
|||
|
||||
rustPlatform.buildRustPackage rec {
|
||||
pname = "moon";
|
||||
version = "1.28.2";
|
||||
version = "1.28.3";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "moonrepo";
|
||||
repo = pname;
|
||||
rev = "v${version}";
|
||||
hash = "sha256-T+fPQ9qQ3mdnf80E6L7VYtDQpiGNj209yH+IgmdAgug=";
|
||||
hash = "sha256-X7O5F/gIkj0EOTMat6koKmCba2V/UiIUq0O46gNiCp8=";
|
||||
};
|
||||
|
||||
cargoHash = "sha256-PgeVoq0jS7i6WD0cZRHu86zWgxK8fRpJhHujsaFqRy0=";
|
||||
cargoHash = "sha256-I4QLlvN1F4Ptq43A0KpRCnSIxavsvLGnkbJzbiTxjm4=";
|
||||
|
||||
env = {
|
||||
RUSTFLAGS = "-C strip=symbols";
|
||||
|
|
|
@ -11,13 +11,13 @@
|
|||
}:
|
||||
rustPlatform.buildRustPackage rec {
|
||||
pname = "sentry-cli";
|
||||
version = "2.36.1";
|
||||
version = "2.36.3";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "getsentry";
|
||||
repo = "sentry-cli";
|
||||
rev = version;
|
||||
sha256 = "sha256-kmrSoUrhBJPgIAcMg73Ne4r8Wkx+SXiiNXbtfVp0Q88=";
|
||||
sha256 = "sha256-iqWOcGuDblFKla90w2J8gV2Fv8RjsgfG1VLuNDz4Poc=";
|
||||
};
|
||||
doCheck = false;
|
||||
|
||||
|
@ -27,7 +27,7 @@ rustPlatform.buildRustPackage rec {
|
|||
buildInputs = [ openssl ] ++ lib.optionals stdenv.hostPlatform.isDarwin [ CoreServices Security SystemConfiguration ];
|
||||
nativeBuildInputs = [ installShellFiles pkg-config ];
|
||||
|
||||
cargoHash = "sha256-fzQfU3xlRwV/GI69+sd7zz4okbNHbFAskJPgI1X0KQo=";
|
||||
cargoHash = "sha256-TIAKUoiPWlNtcL0Iu/CGLSx8dm9x0GQCtxPCg+t9zyw=";
|
||||
|
||||
postInstall = lib.optionalString (stdenv.buildPlatform.canExecute stdenv.hostPlatform) ''
|
||||
installShellCompletion --cmd sentry-cli \
|
||||
|
|
|
@ -1,29 +1,26 @@
|
|||
{ stdenvNoCC, lib, fetchFromGitea, just, inkscape, makeWrapper, bash, dialog }:
|
||||
{ stdenvNoCC, lib, fetchFromGitea, just, imagemagick, makeWrapper, bash, dialog }:
|
||||
|
||||
stdenvNoCC.mkDerivation rec {
|
||||
pname = "kabeljau";
|
||||
version = "1.2.0";
|
||||
version = "2.1.0";
|
||||
|
||||
src = fetchFromGitea {
|
||||
domain = "codeberg.org";
|
||||
owner = "annaaurora";
|
||||
repo = "kabeljau";
|
||||
rev = "v${version}";
|
||||
hash = "sha256-RedVItgfr6vgqXHA3bOiHXDpfGuHI+sX4jCHL9G5jYk=";
|
||||
hash = "sha256-yZHDnzNTdDXHR+Pi3NODqw4npzuthHgOJYnTmIvGyUE=";
|
||||
};
|
||||
|
||||
# Inkscape is needed in a just recipe where it is used to export the SVG icon to several different sized PNGs.
|
||||
nativeBuildInputs = [ just inkscape makeWrapper ];
|
||||
nativeBuildInputs = [ just imagemagick makeWrapper ];
|
||||
postPatch = ''
|
||||
patchShebangs --host ${pname}
|
||||
substituteInPlace ./justfile \
|
||||
--replace " /bin" " $out/bin" \
|
||||
--replace " /usr" " $out"
|
||||
'';
|
||||
installPhase = ''
|
||||
runHook preInstall
|
||||
|
||||
just install
|
||||
just --set bin-path $out/bin --set share-path $out/share linux-install
|
||||
wrapProgram $out/bin/${pname} --suffix PATH : ${
|
||||
lib.makeBinPath [ dialog ]
|
||||
}
|
||||
|
|
|
@ -15,16 +15,16 @@
|
|||
|
||||
buildGoModule rec {
|
||||
pname = "grafana-agent";
|
||||
version = "0.43.0";
|
||||
version = "0.43.3";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "grafana";
|
||||
repo = "agent";
|
||||
rev = "v${version}";
|
||||
hash = "sha256-0pwsZONhouGuypGTP64oJd3+nq8VMlyulb/WUJj0qGw=";
|
||||
hash = "sha256-10H3qcvjbmwKL06u+gCxfAdn1z6HaJ/8sWoVa2/ojnA=";
|
||||
};
|
||||
|
||||
vendorHash = "sha256-vz65gr56wj6PNiQwmfz1wg9SVmRUnrv7ZeWQkqdA4WI=";
|
||||
vendorHash = "sha256-NtFdrdDnuLT5CSax81smNnZxe+I9OouwVyIANyTNzF8=";
|
||||
proxyVendor = true; # darwin/linux hash mismatch
|
||||
|
||||
frontendYarnOfflineCache = fetchYarnDeps {
|
||||
|
|
|
@ -3,7 +3,8 @@ From: Yaya <yaya@uwu.is>
|
|||
Date: Sun, 6 Aug 2023 00:02:40 +0000
|
||||
Subject: [PATCH] Revert "Config: Restrict permissions of OTP config file"
|
||||
|
||||
This reverts commit 4befb3b1d02f32eb2c56f12e4684a7bb3167b0ee.
|
||||
This reverts commit 4befb3b1d02f32eb2c56f12e4684a7bb3167b0ee
|
||||
and 3b82864bccee1af625dd19faed511d5b76f66f9d.
|
||||
|
||||
The Nix store is world readable by design.
|
||||
---
|
||||
|
@ -19,7 +20,7 @@ index 9ec0f975e..91e5f1a54 100644
|
|||
with_runtime_config =
|
||||
if File.exists?(config_path) do
|
||||
- # <https://git.pleroma.social/pleroma/pleroma/-/issues/3135>
|
||||
- %File.Stat{mode: mode} = File.lstat!(config_path)
|
||||
- %File.Stat{mode: mode} = File.stat!(config_path)
|
||||
-
|
||||
- if Bitwise.band(mode, 0o007) > 0 do
|
||||
- raise "Configuration at #{config_path} has world-permissions, execute the following: chmod o= #{config_path}"
|
||||
|
|
|
@ -1,32 +1,52 @@
|
|||
{ lib, beamPackages
|
||||
, fetchFromGitHub, fetchFromGitLab, fetchHex
|
||||
, file, cmake
|
||||
, nixosTests, writeText
|
||||
, ...
|
||||
{
|
||||
lib,
|
||||
beamPackages,
|
||||
fetchFromGitHub,
|
||||
fetchFromGitLab,
|
||||
fetchHex,
|
||||
file,
|
||||
cmake,
|
||||
nixosTests,
|
||||
writeText,
|
||||
vips,
|
||||
pkg-config,
|
||||
glib,
|
||||
...
|
||||
}:
|
||||
|
||||
beamPackages.mixRelease rec {
|
||||
pname = "pleroma";
|
||||
version = "2.6.3";
|
||||
version = "2.7.0";
|
||||
|
||||
src = fetchFromGitLab {
|
||||
domain = "git.pleroma.social";
|
||||
owner = "pleroma";
|
||||
repo = "pleroma";
|
||||
rev = "v${version}";
|
||||
sha256 = "sha256-ZiupcCu6ES/G9rsdNo5+JXOIPhb4CHT2YhKThWiLisw=";
|
||||
sha256 = "sha256-2uKVwjxMLC8jyZWW+ltBRNtOR7RaAb8SPO1iV2wyROc=";
|
||||
};
|
||||
|
||||
patches = [
|
||||
./Revert-Config-Restrict-permissions-of-OTP-config.patch
|
||||
];
|
||||
patches = [ ./Revert-Config-Restrict-permissions-of-OTP-config.patch ];
|
||||
|
||||
mixNixDeps = import ./mix.nix {
|
||||
inherit beamPackages lib;
|
||||
overrides = final: prev: {
|
||||
# mix2nix does not support git dependencies yet,
|
||||
# so we need to add them manually
|
||||
prometheus_ex = beamPackages.buildMix rec {
|
||||
captcha = beamPackages.buildMix {
|
||||
name = "captcha";
|
||||
version = "0.1.0";
|
||||
|
||||
src = fetchFromGitLab {
|
||||
domain = "git.pleroma.social";
|
||||
owner = "pleroma/elixir-libraries";
|
||||
repo = "elixir-captcha";
|
||||
rev = "90f6ce7672f70f56708792a98d98bd05176c9176";
|
||||
sha256 = "sha256-s7EuAhmCsQA/4p2NJHJSWB/DZ5hA+7EelPsUOvKr2Po=";
|
||||
};
|
||||
beamDeps = [ ];
|
||||
};
|
||||
prometheus_ex = beamPackages.buildMix {
|
||||
name = "prometheus_ex";
|
||||
version = "3.0.5";
|
||||
|
||||
|
@ -34,60 +54,28 @@ beamPackages.mixRelease rec {
|
|||
owner = "lanodan";
|
||||
repo = "prometheus.ex";
|
||||
rev = "31f7fbe4b71b79ba27efc2a5085746c4011ceb8f";
|
||||
sha256 = "sha256-2PZP+YnwnHt69HtIAQvjMBqBbfdbkRSoMzb1AL2Zsyc=";
|
||||
hash = "sha256-2PZP+YnwnHt69HtIAQvjMBqBbfdbkRSoMzb1AL2Zsyc=";
|
||||
};
|
||||
beamDeps = with final; [ prometheus ];
|
||||
};
|
||||
captcha = beamPackages.buildMix rec {
|
||||
name = "captcha";
|
||||
version = "0.1.0";
|
||||
|
||||
src = fetchFromGitLab {
|
||||
domain = "git.pleroma.social";
|
||||
group = "pleroma";
|
||||
owner = "elixir-libraries";
|
||||
repo = "elixir-captcha";
|
||||
rev = "90f6ce7672f70f56708792a98d98bd05176c9176";
|
||||
hash = "sha256-s7EuAhmCsQA/4p2NJHJSWB/DZ5hA+7EelPsUOvKr2Po=";
|
||||
};
|
||||
beamDeps = with final; [ ];
|
||||
|
||||
postInstall = "mv priv/* $out/lib/erlang/lib/${name}-${version}/priv/";
|
||||
};
|
||||
remote_ip = beamPackages.buildMix rec {
|
||||
remote_ip = beamPackages.buildMix {
|
||||
name = "remote_ip";
|
||||
version = "0.1.5";
|
||||
|
||||
src = fetchFromGitLab {
|
||||
domain = "git.pleroma.social";
|
||||
group = "pleroma";
|
||||
owner = "elixir-libraries";
|
||||
owner = "pleroma/elixir-libraries";
|
||||
repo = "remote_ip";
|
||||
rev = "b647d0deecaa3acb140854fe4bda5b7e1dc6d1c8";
|
||||
sha256 = "0c7vmakcxlcs3j040018i7bfd6z0yq6fjfig02g5fgakx398s0x6";
|
||||
hash = "sha256-pgON0uhTPVeeAC866Qz24Jvm1okoAECAHJrRzqaq+zA=";
|
||||
};
|
||||
beamDeps = with final; [ combine plug inet_cidr ];
|
||||
};
|
||||
prometheus_phx = beamPackages.buildMix rec {
|
||||
name = "prometheus_phx";
|
||||
version = "0.1.1";
|
||||
|
||||
preBuild = ''
|
||||
touch config/prod.exs
|
||||
'';
|
||||
src = fetchFromGitLab {
|
||||
domain = "git.pleroma.social";
|
||||
group = "pleroma";
|
||||
owner = "elixir-libraries";
|
||||
repo = "prometheus-phx";
|
||||
rev = "9cd8f248c9381ffedc799905050abce194a97514";
|
||||
sha256 = "0211z4bxb0bc0zcrhnph9kbbvvi1f2v95madpr96pqzr60y21cam";
|
||||
};
|
||||
beamDeps = with final; [ prometheus_ex ];
|
||||
};
|
||||
majic = prev.majic.override {
|
||||
buildInputs = [ file ];
|
||||
beamDeps = with final; [
|
||||
combine
|
||||
plug
|
||||
inet_cidr
|
||||
];
|
||||
};
|
||||
majic = prev.majic.override { buildInputs = [ file ]; };
|
||||
# Some additional build inputs and build fixes
|
||||
http_signatures = prev.http_signatures.override {
|
||||
patchPhase = ''
|
||||
|
@ -98,8 +86,16 @@ beamPackages.mixRelease rec {
|
|||
nativeBuildInputs = [ cmake ];
|
||||
dontUseCmakeConfigure = true;
|
||||
};
|
||||
syslog = prev.syslog.override {
|
||||
buildPlugins = with beamPackages; [ pc ];
|
||||
|
||||
syslog = prev.syslog.override { buildPlugins = with beamPackages; [ pc ]; };
|
||||
|
||||
vix = prev.vix.override {
|
||||
nativeBuildInputs = [ pkg-config ];
|
||||
buildInputs = [
|
||||
vips
|
||||
glib.dev
|
||||
];
|
||||
VIX_COMPILATION_MODE = "PLATFORM_PROVIDED_LIBVIPS";
|
||||
};
|
||||
|
||||
# This needs a different version (1.0.14 -> 1.0.18) to build properly with
|
||||
|
@ -132,25 +128,27 @@ beamPackages.mixRelease rec {
|
|||
sha256 = "120znzz0yw1994nk6v28zql9plgapqpv51n9g6qm6md1f4x7gj0z";
|
||||
};
|
||||
|
||||
beamDeps = [];
|
||||
beamDeps = [ ];
|
||||
};
|
||||
|
||||
mime = prev.mime.override {
|
||||
patchPhase = let
|
||||
cfgFile = writeText "config.exs" ''
|
||||
use Mix.Config
|
||||
config :mime, :types, %{
|
||||
"application/activity+json" => ["activity+json"],
|
||||
"application/jrd+json" => ["jrd+json"],
|
||||
"application/ld+json" => ["activity+json"],
|
||||
"application/xml" => ["xml"],
|
||||
"application/xrd+xml" => ["xrd+xml"]
|
||||
}
|
||||
patchPhase =
|
||||
let
|
||||
cfgFile = writeText "config.exs" ''
|
||||
use Mix.Config
|
||||
config :mime, :types, %{
|
||||
"application/activity+json" => ["activity+json"],
|
||||
"application/jrd+json" => ["jrd+json"],
|
||||
"application/ld+json" => ["activity+json"],
|
||||
"application/xml" => ["xml"],
|
||||
"application/xrd+xml" => ["xrd+xml"]
|
||||
}
|
||||
'';
|
||||
in
|
||||
''
|
||||
mkdir config
|
||||
cp ${cfgFile} config/config.exs
|
||||
'';
|
||||
in ''
|
||||
mkdir config
|
||||
cp ${cfgFile} config/config.exs
|
||||
'';
|
||||
};
|
||||
};
|
||||
};
|
||||
|
@ -164,7 +162,11 @@ beamPackages.mixRelease rec {
|
|||
description = "ActivityPub microblogging server";
|
||||
homepage = "https://git.pleroma.social/pleroma/pleroma";
|
||||
license = licenses.agpl3Only;
|
||||
maintainers = with maintainers; [ picnoir kloenk yayayayaka ];
|
||||
maintainers = with maintainers; [
|
||||
picnoir
|
||||
kloenk
|
||||
yayayayaka
|
||||
];
|
||||
platforms = platforms.unix;
|
||||
};
|
||||
}
|
||||
|
|
File diff suppressed because it is too large
Load diff
|
@ -8,13 +8,13 @@
|
|||
}:
|
||||
|
||||
let
|
||||
version = "2.4.3";
|
||||
version = "2.5.0";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "rvaiya";
|
||||
repo = "keyd";
|
||||
rev = "v" + version;
|
||||
hash = "sha256-NhZnFIdK0yHgFR+rJm4cW+uEhuQkOpCSLwlXNQy6jas=";
|
||||
hash = "sha256-pylfQjTnXiSzKPRJh9Jli1hhin/MIGIkZxLKxqlReVo=";
|
||||
};
|
||||
|
||||
pypkgs = python3.pkgs;
|
||||
|
@ -26,7 +26,7 @@ let
|
|||
|
||||
postPatch = ''
|
||||
substituteInPlace scripts/${pname} \
|
||||
--replace /bin/sh ${runtimeShell}
|
||||
--replace-fail /bin/sh ${runtimeShell}
|
||||
'';
|
||||
|
||||
propagatedBuildInputs = with pypkgs; [ xlib ];
|
||||
|
@ -47,10 +47,10 @@ stdenv.mkDerivation {
|
|||
|
||||
postPatch = ''
|
||||
substituteInPlace Makefile \
|
||||
--replace /usr ""
|
||||
--replace-fail /usr/local ""
|
||||
|
||||
substituteInPlace keyd.service \
|
||||
--replace /usr/bin $out/bin
|
||||
substituteInPlace keyd.service.in \
|
||||
--replace-fail @PREFIX@ $out
|
||||
'';
|
||||
|
||||
installFlags = [ "DESTDIR=${placeholder "out"}" ];
|
||||
|
@ -72,7 +72,7 @@ stdenv.mkDerivation {
|
|||
meta = with lib; {
|
||||
description = "Key remapping daemon for Linux";
|
||||
license = licenses.mit;
|
||||
maintainers = with maintainers; [ peterhoeg ];
|
||||
maintainers = with maintainers; [ alfarel ];
|
||||
platforms = platforms.linux;
|
||||
};
|
||||
}
|
||||
|
|
|
@ -2409,8 +2409,6 @@ with pkgs;
|
|||
|
||||
gut = callPackage ../applications/version-management/gut { };
|
||||
|
||||
hred = callPackage ../development/tools/hred { };
|
||||
|
||||
hub = callPackage ../applications/version-management/hub { };
|
||||
|
||||
hut = callPackage ../applications/version-management/hut { };
|
||||
|
@ -7199,8 +7197,6 @@ with pkgs;
|
|||
|
||||
mcrcon = callPackage ../tools/networking/mcrcon { };
|
||||
|
||||
mozillavpn = qt6Packages.callPackage ../tools/networking/mozillavpn { };
|
||||
|
||||
mozwire = callPackage ../tools/networking/mozwire {
|
||||
inherit (darwin.apple_sdk.frameworks) CoreServices Security;
|
||||
};
|
||||
|
@ -11323,8 +11319,8 @@ with pkgs;
|
|||
tautulli = python3Packages.callPackage ../servers/tautulli { };
|
||||
|
||||
pleroma = callPackage ../servers/pleroma {
|
||||
elixir = elixir_1_14;
|
||||
beamPackages = beamPackages.extend (self: super: { elixir = elixir_1_14; });
|
||||
elixir = elixir_1_17;
|
||||
beamPackages = beamPackages.extend (self: super: { elixir = elixir_1_17; });
|
||||
};
|
||||
|
||||
plfit = callPackage ../tools/misc/plfit {
|
||||
|
|
Loading…
Reference in a new issue