Merge master into staging-next
This commit is contained in:
@@ -6017,6 +6017,12 @@
|
||||
githubId = 127353;
|
||||
name = "Geoffrey Huntley";
|
||||
};
|
||||
gigglesquid = {
|
||||
email = "jack.connors@protonmail.com";
|
||||
github = "gigglesquid";
|
||||
githubId = 3685154;
|
||||
name = "Jack connors";
|
||||
};
|
||||
gila = {
|
||||
email = "jeffry.molanus@gmail.com";
|
||||
github = "gila";
|
||||
|
||||
@@ -123,8 +123,8 @@ in
|
||||
boot.extraModulePackages = [ (lib.mkIf cfg.netatop.enable cfg.netatop.package) ];
|
||||
systemd =
|
||||
let
|
||||
mkSystemd = type: cond: name: restartTriggers: {
|
||||
${name} = lib.mkIf cond {
|
||||
mkSystemd = type: name: restartTriggers: {
|
||||
${name} = {
|
||||
inherit restartTriggers;
|
||||
wantedBy = [ (if type == "services" then "multi-user.target" else if type == "timers" then "timers.target" else null) ];
|
||||
};
|
||||
@@ -134,42 +134,44 @@ in
|
||||
in
|
||||
{
|
||||
packages = [ atop (lib.mkIf cfg.netatop.enable cfg.netatop.package) ];
|
||||
services =
|
||||
mkService cfg.atopService.enable "atop" [ atop ]
|
||||
// lib.mkIf cfg.atopService.enable {
|
||||
# always convert logs to newer version first
|
||||
# XXX might trigger TimeoutStart but restarting atop.service will
|
||||
# convert remainings logs and start eventually
|
||||
atop.serviceConfig.ExecStartPre = pkgs.writeShellScript "atop-update-log-format" ''
|
||||
set -e -u
|
||||
shopt -s nullglob
|
||||
for logfile in "$LOGPATH"/atop_*
|
||||
do
|
||||
${atop}/bin/atopconvert "$logfile" "$logfile".new
|
||||
# only replace old file if version was upgraded to avoid
|
||||
# false positives for atop-rotate.service
|
||||
if ! ${pkgs.diffutils}/bin/cmp -s "$logfile" "$logfile".new
|
||||
then
|
||||
${pkgs.coreutils}/bin/mv -v -f "$logfile".new "$logfile"
|
||||
else
|
||||
${pkgs.coreutils}/bin/rm -f "$logfile".new
|
||||
fi
|
||||
done
|
||||
'';
|
||||
}
|
||||
// mkService cfg.atopacctService.enable "atopacct" [ atop ]
|
||||
// mkService cfg.netatop.enable "netatop" [ cfg.netatop.package ]
|
||||
// mkService cfg.atopgpu.enable "atopgpu" [ atop ];
|
||||
timers = mkTimer cfg.atopRotateTimer.enable "atop-rotate" [ atop ];
|
||||
services = lib.mkMerge [
|
||||
(lib.mkIf cfg.atopService.enable (lib.recursiveUpdate
|
||||
(mkService "atop" [ atop ])
|
||||
{
|
||||
# always convert logs to newer version first
|
||||
# XXX might trigger TimeoutStart but restarting atop.service will
|
||||
# convert remainings logs and start eventually
|
||||
atop.preStart = ''
|
||||
set -e -u
|
||||
shopt -s nullglob
|
||||
for logfile in "$LOGPATH"/atop_*
|
||||
do
|
||||
${atop}/bin/atopconvert "$logfile" "$logfile".new
|
||||
# only replace old file if version was upgraded to avoid
|
||||
# false positives for atop-rotate.service
|
||||
if ! ${pkgs.diffutils}/bin/cmp -s "$logfile" "$logfile".new
|
||||
then
|
||||
${pkgs.coreutils}/bin/mv -v -f "$logfile".new "$logfile"
|
||||
else
|
||||
${pkgs.coreutils}/bin/rm -f "$logfile".new
|
||||
fi
|
||||
done
|
||||
'';
|
||||
}))
|
||||
(lib.mkIf cfg.atopacctService.enable (mkService "atopacct" [ atop ]))
|
||||
(lib.mkIf cfg.netatop.enable (mkService "netatop" [ cfg.netatop.package ]))
|
||||
(lib.mkIf cfg.atopgpu.enable (mkService "atopgpu" [ atop ]))
|
||||
];
|
||||
timers = lib.mkIf cfg.atopRotateTimer.enable (mkTimer "atop-rotate" [ atop ]);
|
||||
};
|
||||
|
||||
security.wrappers = lib.mkIf cfg.setuidWrapper.enable {
|
||||
atop =
|
||||
{ setuid = true;
|
||||
owner = "root";
|
||||
group = "root";
|
||||
source = "${atop}/bin/atop";
|
||||
};
|
||||
atop = {
|
||||
setuid = true;
|
||||
owner = "root";
|
||||
group = "root";
|
||||
source = "${atop}/bin/atop";
|
||||
};
|
||||
};
|
||||
}
|
||||
);
|
||||
|
||||
@@ -6,9 +6,6 @@ let
|
||||
defaultGroup = "patroni";
|
||||
format = pkgs.formats.yaml { };
|
||||
|
||||
#boto doesn't support python 3.10 yet
|
||||
patroni = pkgs.patroni.override { pythonPackages = pkgs.python39Packages; };
|
||||
|
||||
configFileName = "patroni-${cfg.scope}-${cfg.name}.yaml";
|
||||
configFile = format.generate configFileName cfg.settings;
|
||||
in
|
||||
@@ -224,7 +221,7 @@ in
|
||||
|
||||
script = ''
|
||||
${concatStringsSep "\n" (attrValues (mapAttrs (name: path: ''export ${name}="$(< ${escapeShellArg path})"'') cfg.environmentFiles))}
|
||||
exec ${patroni}/bin/patroni ${configFile}
|
||||
exec ${pkgs.patroni}/bin/patroni ${configFile}
|
||||
'';
|
||||
|
||||
serviceConfig = mkMerge [
|
||||
@@ -252,7 +249,7 @@ in
|
||||
'';
|
||||
|
||||
environment.systemPackages = [
|
||||
patroni
|
||||
pkgs.patroni
|
||||
cfg.postgresqlPackage
|
||||
(mkIf cfg.raft pkgs.python310Packages.pysyncobj)
|
||||
];
|
||||
|
||||
@@ -1,64 +1,49 @@
|
||||
{ config, lib, pkgs, ... }:
|
||||
|
||||
with lib;
|
||||
|
||||
let
|
||||
cfg = config.services.buildkite-agents;
|
||||
|
||||
mkHookOption = { name, description, example ? null }: {
|
||||
inherit name;
|
||||
value = mkOption {
|
||||
default = null;
|
||||
description = lib.mdDoc description;
|
||||
type = types.nullOr types.lines;
|
||||
} // (lib.optionalAttrs (example != null) { inherit example; });
|
||||
};
|
||||
mkHookOptions = hooks: listToAttrs (map mkHookOption hooks);
|
||||
|
||||
hooksDir = cfg: let
|
||||
mkHookEntry = name: value: ''
|
||||
cat > $out/${name} <<'EOF'
|
||||
#! ${pkgs.runtimeShell}
|
||||
set -e
|
||||
${value}
|
||||
EOF
|
||||
chmod 755 $out/${name}
|
||||
hooksDir = hooks:
|
||||
let
|
||||
mkHookEntry = name: text: ''
|
||||
ln --symbolic ${pkgs.writeShellApplication { inherit name text; }}/bin/${name} $out/${name}
|
||||
'';
|
||||
in
|
||||
pkgs.runCommandLocal "buildkite-agent-hooks" { } ''
|
||||
mkdir $out
|
||||
${lib.concatStringsSep "\n" (lib.mapAttrsToList mkHookEntry hooks)}
|
||||
'';
|
||||
in pkgs.runCommand "buildkite-agent-hooks" { preferLocalBuild = true; } ''
|
||||
mkdir $out
|
||||
${concatStringsSep "\n" (mapAttrsToList mkHookEntry (filterAttrs (n: v: v != null) cfg.hooks))}
|
||||
'';
|
||||
|
||||
buildkiteOptions = { name ? "", config, ... }: {
|
||||
options = {
|
||||
enable = mkOption {
|
||||
enable = lib.mkOption {
|
||||
default = true;
|
||||
type = types.bool;
|
||||
type = lib.types.bool;
|
||||
description = lib.mdDoc "Whether to enable this buildkite agent";
|
||||
};
|
||||
|
||||
package = mkOption {
|
||||
package = lib.mkOption {
|
||||
default = pkgs.buildkite-agent;
|
||||
defaultText = literalExpression "pkgs.buildkite-agent";
|
||||
defaultText = lib.literalExpression "pkgs.buildkite-agent";
|
||||
description = lib.mdDoc "Which buildkite-agent derivation to use";
|
||||
type = types.package;
|
||||
type = lib.types.package;
|
||||
};
|
||||
|
||||
dataDir = mkOption {
|
||||
dataDir = lib.mkOption {
|
||||
default = "/var/lib/buildkite-agent-${name}";
|
||||
description = lib.mdDoc "The workdir for the agent";
|
||||
type = types.str;
|
||||
type = lib.types.str;
|
||||
};
|
||||
|
||||
runtimePackages = mkOption {
|
||||
runtimePackages = lib.mkOption {
|
||||
default = [ pkgs.bash pkgs.gnutar pkgs.gzip pkgs.git pkgs.nix ];
|
||||
defaultText = literalExpression "[ pkgs.bash pkgs.gnutar pkgs.gzip pkgs.git pkgs.nix ]";
|
||||
defaultText = lib.literalExpression "[ pkgs.bash pkgs.gnutar pkgs.gzip pkgs.git pkgs.nix ]";
|
||||
description = lib.mdDoc "Add programs to the buildkite-agent environment";
|
||||
type = types.listOf types.package;
|
||||
type = lib.types.listOf lib.types.package;
|
||||
};
|
||||
|
||||
tokenPath = mkOption {
|
||||
type = types.path;
|
||||
tokenPath = lib.mkOption {
|
||||
type = lib.types.path;
|
||||
description = lib.mdDoc ''
|
||||
The token from your Buildkite "Agents" page.
|
||||
|
||||
@@ -67,25 +52,25 @@ let
|
||||
'';
|
||||
};
|
||||
|
||||
name = mkOption {
|
||||
type = types.str;
|
||||
name = lib.mkOption {
|
||||
type = lib.types.str;
|
||||
default = "%hostname-${name}-%n";
|
||||
description = lib.mdDoc ''
|
||||
The name of the agent as seen in the buildkite dashboard.
|
||||
'';
|
||||
};
|
||||
|
||||
tags = mkOption {
|
||||
type = types.attrsOf (types.either types.str (types.listOf types.str));
|
||||
default = {};
|
||||
example = { queue = "default"; docker = "true"; ruby2 ="true"; };
|
||||
tags = lib.mkOption {
|
||||
type = lib.types.attrsOf (lib.types.either lib.types.str (lib.types.listOf lib.types.str));
|
||||
default = { };
|
||||
example = { queue = "default"; docker = "true"; ruby2 = "true"; };
|
||||
description = lib.mdDoc ''
|
||||
Tags for the agent.
|
||||
'';
|
||||
};
|
||||
|
||||
extraConfig = mkOption {
|
||||
type = types.lines;
|
||||
extraConfig = lib.mkOption {
|
||||
type = lib.types.lines;
|
||||
default = "";
|
||||
example = "debug=true";
|
||||
description = lib.mdDoc ''
|
||||
@@ -93,8 +78,8 @@ let
|
||||
'';
|
||||
};
|
||||
|
||||
privateSshKeyPath = mkOption {
|
||||
type = types.nullOr types.path;
|
||||
privateSshKeyPath = lib.mkOption {
|
||||
type = lib.types.nullOr lib.types.path;
|
||||
default = null;
|
||||
## maximum care is taken so that secrets (ssh keys and the CI token)
|
||||
## don't end up in the Nix store.
|
||||
@@ -108,67 +93,25 @@ let
|
||||
'';
|
||||
};
|
||||
|
||||
hooks = mkHookOptions [
|
||||
{ name = "checkout";
|
||||
description = ''
|
||||
The `checkout` hook script will replace the default checkout routine of the
|
||||
bootstrap.sh script. You can use this hook to do your own SCM checkout
|
||||
behaviour
|
||||
''; }
|
||||
{ name = "command";
|
||||
description = ''
|
||||
The `command` hook script will replace the default implementation of running
|
||||
the build command.
|
||||
''; }
|
||||
{ name = "environment";
|
||||
description = ''
|
||||
The `environment` hook will run before all other commands, and can be used
|
||||
to set up secrets, data, etc. Anything exported in hooks will be available
|
||||
to the build script.
|
||||
hooks = lib.mkOption {
|
||||
type = lib.types.attrsOf lib.types.lines;
|
||||
default = { };
|
||||
example = lib.literalExpression ''
|
||||
{
|
||||
environment = '''
|
||||
export SECRET_VAR=`head -1 /run/keys/secret`
|
||||
''';
|
||||
}'';
|
||||
description = lib.mdDoc ''
|
||||
"Agent" hooks to install.
|
||||
See <https://buildkite.com/docs/agent/v3/hooks> for possible options.
|
||||
'';
|
||||
};
|
||||
|
||||
Note: the contents of this file will be copied to the world-readable
|
||||
Nix store.
|
||||
'';
|
||||
example = ''
|
||||
export SECRET_VAR=`head -1 /run/keys/secret`
|
||||
''; }
|
||||
{ name = "post-artifact";
|
||||
description = ''
|
||||
The `post-artifact` hook will run just after artifacts are uploaded
|
||||
''; }
|
||||
{ name = "post-checkout";
|
||||
description = ''
|
||||
The `post-checkout` hook will run after the bootstrap script has checked out
|
||||
your projects source code.
|
||||
''; }
|
||||
{ name = "post-command";
|
||||
description = ''
|
||||
The `post-command` hook will run after the bootstrap script has run your
|
||||
build commands
|
||||
''; }
|
||||
{ name = "pre-artifact";
|
||||
description = ''
|
||||
The `pre-artifact` hook will run just before artifacts are uploaded
|
||||
''; }
|
||||
{ name = "pre-checkout";
|
||||
description = ''
|
||||
The `pre-checkout` hook will run just before your projects source code is
|
||||
checked out from your SCM provider
|
||||
''; }
|
||||
{ name = "pre-command";
|
||||
description = ''
|
||||
The `pre-command` hook will run just before your build command runs
|
||||
''; }
|
||||
{ name = "pre-exit";
|
||||
description = ''
|
||||
The `pre-exit` hook will run just before your build job finishes
|
||||
''; }
|
||||
];
|
||||
|
||||
hooksPath = mkOption {
|
||||
type = types.path;
|
||||
default = hooksDir config;
|
||||
defaultText = literalMD "generated from {option}`services.buildkite-agents.<name>.hooks`";
|
||||
hooksPath = lib.mkOption {
|
||||
type = lib.types.path;
|
||||
default = hooksDir config.hooks;
|
||||
defaultText = lib.literalMD "generated from {option}`services.buildkite-agents.<name>.hooks`";
|
||||
description = lib.mdDoc ''
|
||||
Path to the directory storing the hooks.
|
||||
Consider using {option}`services.buildkite-agents.<name>.hooks.<name>`
|
||||
@@ -176,10 +119,10 @@ let
|
||||
'';
|
||||
};
|
||||
|
||||
shell = mkOption {
|
||||
type = types.str;
|
||||
shell = lib.mkOption {
|
||||
type = lib.types.str;
|
||||
default = "${pkgs.bash}/bin/bash -e -c";
|
||||
defaultText = literalExpression ''"''${pkgs.bash}/bin/bash -e -c"'';
|
||||
defaultText = lib.literalExpression ''"''${pkgs.bash}/bin/bash -e -c"'';
|
||||
description = lib.mdDoc ''
|
||||
Command that buildkite-agent 3 will execute when it spawns a shell.
|
||||
'';
|
||||
@@ -190,9 +133,9 @@ let
|
||||
mapAgents = function: lib.mkMerge (lib.mapAttrsToList function enabledAgents);
|
||||
in
|
||||
{
|
||||
options.services.buildkite-agents = mkOption {
|
||||
type = types.attrsOf (types.submodule buildkiteOptions);
|
||||
default = {};
|
||||
options.services.buildkite-agents = lib.mkOption {
|
||||
type = lib.types.attrsOf (lib.types.submodule buildkiteOptions);
|
||||
default = { };
|
||||
description = lib.mdDoc ''
|
||||
Attribute set of buildkite agents.
|
||||
The attribute key is combined with the hostname and a unique integer to
|
||||
@@ -213,23 +156,24 @@ in
|
||||
};
|
||||
});
|
||||
config.users.groups = mapAgents (name: cfg: {
|
||||
"buildkite-agent-${name}" = {};
|
||||
"buildkite-agent-${name}" = { };
|
||||
});
|
||||
|
||||
config.systemd.services = mapAgents (name: cfg: {
|
||||
"buildkite-agent-${name}" =
|
||||
{ description = "Buildkite Agent";
|
||||
wantedBy = [ "multi-user.target" ];
|
||||
after = [ "network.target" ];
|
||||
path = cfg.runtimePackages ++ [ cfg.package pkgs.coreutils ];
|
||||
environment = config.networking.proxy.envVars // {
|
||||
HOME = cfg.dataDir;
|
||||
NIX_REMOTE = "daemon";
|
||||
};
|
||||
"buildkite-agent-${name}" = {
|
||||
description = "Buildkite Agent";
|
||||
wantedBy = [ "multi-user.target" ];
|
||||
after = [ "network.target" ];
|
||||
path = cfg.runtimePackages ++ [ cfg.package pkgs.coreutils ];
|
||||
environment = config.networking.proxy.envVars // {
|
||||
HOME = cfg.dataDir;
|
||||
NIX_REMOTE = "daemon";
|
||||
};
|
||||
|
||||
## NB: maximum care is taken so that secrets (ssh keys and the CI token)
|
||||
## don't end up in the Nix store.
|
||||
preStart = let
|
||||
## NB: maximum care is taken so that secrets (ssh keys and the CI token)
|
||||
## don't end up in the Nix store.
|
||||
preStart =
|
||||
let
|
||||
sshDir = "${cfg.dataDir}/.ssh";
|
||||
tagStr = name: value:
|
||||
if lib.isList value
|
||||
@@ -237,44 +181,39 @@ in
|
||||
else "${name}=${value}";
|
||||
tagsStr = lib.concatStringsSep "," (lib.mapAttrsToList tagStr cfg.tags);
|
||||
in
|
||||
optionalString (cfg.privateSshKeyPath != null) ''
|
||||
mkdir -m 0700 -p "${sshDir}"
|
||||
install -m600 "${toString cfg.privateSshKeyPath}" "${sshDir}/id_rsa"
|
||||
'' + ''
|
||||
cat > "${cfg.dataDir}/buildkite-agent.cfg" <<EOF
|
||||
token="$(cat ${toString cfg.tokenPath})"
|
||||
name="${cfg.name}"
|
||||
shell="${cfg.shell}"
|
||||
tags="${tagsStr}"
|
||||
build-path="${cfg.dataDir}/builds"
|
||||
hooks-path="${cfg.hooksPath}"
|
||||
${cfg.extraConfig}
|
||||
EOF
|
||||
'';
|
||||
lib.optionalString (cfg.privateSshKeyPath != null) ''
|
||||
mkdir -m 0700 -p "${sshDir}"
|
||||
install -m600 "${toString cfg.privateSshKeyPath}" "${sshDir}/id_rsa"
|
||||
'' + ''
|
||||
cat > "${cfg.dataDir}/buildkite-agent.cfg" <<EOF
|
||||
token="$(cat ${toString cfg.tokenPath})"
|
||||
name="${cfg.name}"
|
||||
shell="${cfg.shell}"
|
||||
tags="${tagsStr}"
|
||||
build-path="${cfg.dataDir}/builds"
|
||||
hooks-path="${cfg.hooksPath}"
|
||||
${cfg.extraConfig}
|
||||
EOF
|
||||
'';
|
||||
|
||||
serviceConfig =
|
||||
{ ExecStart = "${cfg.package}/bin/buildkite-agent start --config ${cfg.dataDir}/buildkite-agent.cfg";
|
||||
User = "buildkite-agent-${name}";
|
||||
RestartSec = 5;
|
||||
Restart = "on-failure";
|
||||
TimeoutSec = 10;
|
||||
# set a long timeout to give buildkite-agent a chance to finish current builds
|
||||
TimeoutStopSec = "2 min";
|
||||
KillMode = "mixed";
|
||||
};
|
||||
serviceConfig = {
|
||||
ExecStart = "${cfg.package}/bin/buildkite-agent start --config ${cfg.dataDir}/buildkite-agent.cfg";
|
||||
User = "buildkite-agent-${name}";
|
||||
RestartSec = 5;
|
||||
Restart = "on-failure";
|
||||
TimeoutSec = 10;
|
||||
# set a long timeout to give buildkite-agent a chance to finish current builds
|
||||
TimeoutStopSec = "2 min";
|
||||
KillMode = "mixed";
|
||||
};
|
||||
};
|
||||
});
|
||||
|
||||
config.assertions = mapAgents (name: cfg: [
|
||||
{ assertion = cfg.hooksPath == (hooksDir cfg) || all (v: v == null) (attrValues cfg.hooks);
|
||||
message = ''
|
||||
Options `services.buildkite-agents.${name}.hooksPath' and
|
||||
`services.buildkite-agents.${name}.hooks.<name>' are mutually exclusive.
|
||||
'';
|
||||
}
|
||||
]);
|
||||
|
||||
imports = [
|
||||
(mkRemovedOptionModule [ "services" "buildkite-agent"] "services.buildkite-agent has been upgraded from version 2 to version 3 and moved to an attribute set at services.buildkite-agents. Please consult the 20.03 release notes for more information.")
|
||||
];
|
||||
config.assertions = mapAgents (name: cfg: [{
|
||||
assertion = cfg.hooksPath != hooksDir cfg.hooks -> cfg.hooks == { };
|
||||
message = ''
|
||||
Options `services.buildkite-agents.${name}.hooksPath' and
|
||||
`services.buildkite-agents.${name}.hooks.<name>' are mutually exclusive.
|
||||
'';
|
||||
}]);
|
||||
}
|
||||
|
||||
@@ -9,7 +9,7 @@ let
|
||||
testsForLinuxPackages = linuxPackages: (import ./make-test-python.nix ({ pkgs, ... }: {
|
||||
name = "kernel-${linuxPackages.kernel.version}";
|
||||
meta = with pkgs.lib.maintainers; {
|
||||
maintainers = [ nequissimus atemu ];
|
||||
maintainers = [ nequissimus atemu ma27 ];
|
||||
};
|
||||
|
||||
nodes.machine = { ... }:
|
||||
@@ -33,6 +33,11 @@ let
|
||||
linux_6_1_hardened
|
||||
linux_6_3_hardened
|
||||
linux_6_4_hardened
|
||||
linux_rt_5_4
|
||||
linux_rt_5_10
|
||||
linux_rt_5_15
|
||||
linux_rt_6_1
|
||||
linux_libre
|
||||
|
||||
linux_testing;
|
||||
};
|
||||
|
||||
@@ -0,0 +1,73 @@
|
||||
{ fetchFromGitHub
|
||||
, stdenv
|
||||
, makeDesktopItem
|
||||
, lib
|
||||
, openssl
|
||||
, boost
|
||||
, curl
|
||||
, libevent
|
||||
, libzip
|
||||
, qrencode
|
||||
, qtbase
|
||||
, qttools
|
||||
, wrapQtAppsHook
|
||||
, autoreconfHook
|
||||
, pkg-config
|
||||
, libtool
|
||||
, miniupnpc
|
||||
, hexdump
|
||||
}:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "gridcoin-research";
|
||||
version = "5.4.5.0";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "gridcoin-community";
|
||||
repo = "Gridcoin-Research";
|
||||
rev = "${version}";
|
||||
sha256 = "1a174m7821c7d3yh9lyh0r3ds6qn06x16aa1qxcbrqyxxc127yky";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
pkg-config
|
||||
wrapQtAppsHook
|
||||
autoreconfHook
|
||||
libtool
|
||||
hexdump
|
||||
];
|
||||
|
||||
buildInputs = [
|
||||
qttools
|
||||
qtbase
|
||||
qrencode
|
||||
libevent
|
||||
libzip
|
||||
openssl
|
||||
boost
|
||||
miniupnpc
|
||||
curl
|
||||
];
|
||||
|
||||
configureFlags = [
|
||||
"--with-gui=qt5"
|
||||
"--with-qt-bindir=${qtbase.dev}/bin:${qttools.dev}/bin"
|
||||
"--with-qrencode"
|
||||
"--with-boost-libdir=${boost.out}/lib"
|
||||
];
|
||||
|
||||
enableParallelBuilding = true;
|
||||
|
||||
meta = with lib; {
|
||||
description = "A POS-based cryptocurrency that rewards users for participating on the BOINC network";
|
||||
longDescription = ''
|
||||
A POS-based cryptocurrency that rewards users for participating on the BOINC network,
|
||||
using peer-to-peer technology to operate with no central authority - managing transactions,
|
||||
issuing money and contributing to scientific research are carried out collectively by the network
|
||||
'';
|
||||
homepage = "https://gridcoin.us/";
|
||||
license = licenses.mit;
|
||||
maintainers = with maintainers; [ gigglesquid ];
|
||||
platforms = platforms.linux;
|
||||
};
|
||||
}
|
||||
@@ -0,0 +1,76 @@
|
||||
{ lib, stdenv, appimageTools, fetchurl, undmg }:
|
||||
|
||||
let
|
||||
pname = "notesnook";
|
||||
version = "2.5.7";
|
||||
|
||||
inherit (stdenv.hostPlatform) system;
|
||||
throwSystem = throw "Unsupported system: ${system}";
|
||||
|
||||
suffix = {
|
||||
x86_64-linux = "linux_x86_64.AppImage";
|
||||
x86_64-darwin = "mac_x64.dmg";
|
||||
aarch64-darwin = "mac_arm64.dmg";
|
||||
}.${system} or throwSystem;
|
||||
|
||||
src = fetchurl {
|
||||
url = "https://github.com/streetwriters/notesnook/releases/download/v${version}/notesnook_${suffix}";
|
||||
hash = {
|
||||
x86_64-linux = "sha256-M/59pjhuKF/MOMpT9/qrlThHO0V8e49cfiaWMkEWHNg=";
|
||||
x86_64-darwin = "sha256-cluIizmweIMU6RIFxoEQ3DYChRVEuVLxrPjwfFfeq1w=";
|
||||
aarch64-darwin = "sha256-cbBnKrb8poyDL1D+32UrOl3RXt8Msncw440qra9+Gs0=";
|
||||
}.${system} or throwSystem;
|
||||
};
|
||||
|
||||
appimageContents = appimageTools.extractType2 {
|
||||
inherit pname version src;
|
||||
};
|
||||
|
||||
meta = with lib; {
|
||||
description = "A fully open source & end-to-end encrypted note taking alternative to Evernote.";
|
||||
longDescription = ''
|
||||
Notesnook is a free (as in speech) & open source note taking app
|
||||
focused on user privacy & ease of use. To ensure zero knowledge
|
||||
principles, Notesnook encrypts everything on your device using
|
||||
XChaCha20-Poly1305 & Argon2.
|
||||
'';
|
||||
homepage = "https://notesnook.com";
|
||||
license = licenses.gpl3Only;
|
||||
maintainers = with maintainers; [ j0lol ];
|
||||
platforms = [ "x86_64-linux" "x86_64-darwin" "aarch64-darwin" ];
|
||||
};
|
||||
|
||||
linux = appimageTools.wrapType2 rec {
|
||||
inherit pname version src meta;
|
||||
|
||||
profile = ''
|
||||
export LC_ALL=C.UTF-8
|
||||
'';
|
||||
|
||||
multiPkgs = null; # no 32bit needed
|
||||
extraPkgs = appimageTools.defaultFhsEnvArgs.multiPkgs;
|
||||
extraInstallCommands = ''
|
||||
mv $out/bin/{${pname}-${version},${pname}}
|
||||
install -Dm444 ${appimageContents}/notesnook.desktop -t $out/share/applications
|
||||
install -Dm444 ${appimageContents}/notesnook.png -t $out/share/pixmaps
|
||||
substituteInPlace $out/share/applications/notesnook.desktop \
|
||||
--replace 'Exec=AppRun --no-sandbox %U' 'Exec=${pname}'
|
||||
'';
|
||||
};
|
||||
|
||||
darwin = stdenv.mkDerivation {
|
||||
inherit pname version src meta;
|
||||
|
||||
nativeBuildInputs = [ undmg ];
|
||||
|
||||
sourceRoot = "Notesnook.app";
|
||||
|
||||
installPhase = ''
|
||||
mkdir -p $out/Applications/Notesnook.app
|
||||
cp -R . $out/Applications/Notesnook.app
|
||||
'';
|
||||
};
|
||||
in
|
||||
if stdenv.isDarwin
|
||||
then darwin
|
||||
else linux
|
||||
@@ -1,7 +1,7 @@
|
||||
{ lib, stdenv, fetchFromGitHub, autoreconfHook, pkg-config
|
||||
, curl, db, libgeotiff
|
||||
, xorg, motif, pcre
|
||||
, perl, proj, rastermagick, shapelib
|
||||
, perl, proj, graphicsmagick, shapelib
|
||||
, libax25
|
||||
}:
|
||||
|
||||
@@ -24,7 +24,7 @@ stdenv.mkDerivation rec {
|
||||
buildInputs = [
|
||||
curl db libgeotiff
|
||||
xorg.libXpm xorg.libXt motif pcre
|
||||
perl proj rastermagick shapelib
|
||||
perl proj graphicsmagick shapelib
|
||||
libax25
|
||||
];
|
||||
|
||||
|
||||
@@ -0,0 +1,4 @@
|
||||
{ callPackage }:
|
||||
{
|
||||
file-manager = callPackage ./file-manager {};
|
||||
}
|
||||
@@ -0,0 +1,41 @@
|
||||
{ lib, flutter, fetchFromGitHub }:
|
||||
flutter.buildFlutterApplication rec {
|
||||
pname = "expidus-file-manager";
|
||||
version = "0.1.2";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "ExpidusOS";
|
||||
repo = "file-manager";
|
||||
rev = version;
|
||||
sha256 = "sha256-aAPmwzNPgu08Ov9NyRW5bcj3jQzG9rpWwrABRyK2Weg=";
|
||||
};
|
||||
|
||||
depsListFile = ./deps.json;
|
||||
vendorHash = "sha256-mPGrpMUguM9XAYWH8lBQuytxZ3J0gS2XOMPkKyFMLbc=";
|
||||
|
||||
postInstall = ''
|
||||
rm $out/bin/file_manager
|
||||
ln -s $out/app/file_manager $out/bin/expidus-file-manager
|
||||
|
||||
mkdir -p $out/share/applications
|
||||
mv $out/app/data/com.expidusos.file_manager.desktop $out/share/applications
|
||||
|
||||
mkdir -p $out/share/icons
|
||||
mv $out/app/data/com.expidusos.file_manager.png $out/share/icons
|
||||
|
||||
mkdir -p $out/share/metainfo
|
||||
mv $out/app/data/com.expidusos.file_manager.metainfo.xml $out/share/metainfo
|
||||
|
||||
substituteInPlace "$out/share/applications/com.expidusos.file_manager.desktop" \
|
||||
--replace "Exec=file_manager" "Exec=$out/bin/expidus-file-manager" \
|
||||
--replace "Icon=com.expidusos.file_manager" "Icon=$out/share/icons/com.expidusos.file_manager.png"
|
||||
'';
|
||||
|
||||
meta = with lib; {
|
||||
description = "ExpidusOS File Manager";
|
||||
homepage = "https://expidusos.com";
|
||||
license = licenses.gpl3;
|
||||
maintainers = with maintainers; [ RossComputerGuy ];
|
||||
platforms = [ "x86_64-linux" "aarch64-linux" ];
|
||||
};
|
||||
}
|
||||
+1023
File diff suppressed because it is too large
Load Diff
@@ -55,12 +55,17 @@ buildPythonPackage rec {
|
||||
|
||||
preCheck = ''
|
||||
redis-server &
|
||||
REDIS_PID=$!
|
||||
while ! redis-cli --scan ; do
|
||||
echo waiting for redis to be ready
|
||||
sleep 1
|
||||
done
|
||||
'';
|
||||
|
||||
postCheck = ''
|
||||
kill $REDIS_PID
|
||||
'';
|
||||
|
||||
DJANGO_SETTINGS_MODULE = "tests.settings";
|
||||
|
||||
meta = with lib; {
|
||||
@@ -69,7 +74,5 @@ buildPythonPackage rec {
|
||||
changelog = "https://github.com/Suor/django-cacheops/blob/${version}/CHANGELOG";
|
||||
license = licenses.bsd3;
|
||||
maintainers = with maintainers; [ onny ];
|
||||
# Times out for unknown reasons
|
||||
broken = stdenv.isDarwin;
|
||||
};
|
||||
}
|
||||
|
||||
@@ -18,6 +18,7 @@ in
|
||||
, zlib
|
||||
|
||||
, enableGold ? withGold stdenv.targetPlatform
|
||||
, enableGoldDefault ? false
|
||||
, enableShared ? !stdenv.hostPlatform.isStatic
|
||||
# WARN: Enabling all targets increases output size to a multiple.
|
||||
, withAllTargets ? false
|
||||
@@ -26,6 +27,7 @@ in
|
||||
# WARN: configure silently disables ld.gold if it's unsupported, so we need to
|
||||
# make sure that intent matches result ourselves.
|
||||
assert enableGold -> withGold stdenv.targetPlatform;
|
||||
assert enableGoldDefault -> enableGold;
|
||||
|
||||
|
||||
let
|
||||
@@ -217,8 +219,10 @@ stdenv.mkDerivation (finalAttrs: {
|
||||
"--with-lib-path=:"
|
||||
]
|
||||
++ lib.optionals withAllTargets [ "--enable-targets=all" ]
|
||||
++ lib.optionals enableGold [ "--enable-gold" "--enable-plugins" ]
|
||||
++ (if enableShared
|
||||
++ lib.optionals enableGold [
|
||||
"--enable-gold${lib.optionalString enableGoldDefault "=default"}"
|
||||
"--enable-plugins"
|
||||
] ++ (if enableShared
|
||||
then [ "--enable-shared" "--disable-static" ]
|
||||
else [ "--disable-shared" "--enable-static" ])
|
||||
;
|
||||
|
||||
@@ -123,13 +123,13 @@ let
|
||||
in
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "hydra";
|
||||
version = "2023-06-25";
|
||||
version = "2023-07-17";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "NixOS";
|
||||
repo = "hydra";
|
||||
rev = "526e8bd7441d1beb271ff89bbca3604077ecffdb";
|
||||
sha256 = "sha256-VRNI3H/WUTi7VTNLwO/I0gMnJ6ZMYRbBfgdsAj+TmP4=";
|
||||
rev = "d135b123cde78576e99e919a5db0428cb70fcd1e";
|
||||
sha256 = "sha256-wjHHcJr1liYKESUtCjIdvC+USjd9EWjEFssvIKiEuVU=";
|
||||
};
|
||||
|
||||
buildInputs = [
|
||||
|
||||
@@ -1,21 +1,23 @@
|
||||
{ lib, stdenv, fetchFromGitHub, curl, expat
|
||||
, jansson, libpng, libjpeg, libGLU, libGL, libXxf86vm, pcre
|
||||
, pkg-config, SDL2, vim, speex }:
|
||||
, jansson, libpng, libjpeg, libGLU, libGL
|
||||
, libsndfile, libXxf86vm, pcre, pkg-config, SDL2
|
||||
, vim, speex }:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "ezquake";
|
||||
version = "3.2.3";
|
||||
version = "3.6.2";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "ezQuake";
|
||||
owner = "QW-Group";
|
||||
repo = pname + "-source";
|
||||
rev = version;
|
||||
sha256 = "sha256-EBhKmoX11JavTG6tPfg15FY2lqOFfzSDg3058OWfcYQ=";
|
||||
fetchSubmodules = true;
|
||||
hash = "sha256-mi/VDSZ+ybEAaZOhBGh/cSnrRUAB/h+WQZ4Aml0UfW4=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [ pkg-config ];
|
||||
buildInputs = [
|
||||
expat curl jansson libpng libjpeg libGLU libGL libXxf86vm pcre SDL2 vim speex
|
||||
expat curl jansson libpng libjpeg libGLU libGL libsndfile libXxf86vm pcre SDL2 vim speex
|
||||
];
|
||||
|
||||
installPhase = with lib; let
|
||||
@@ -30,7 +32,7 @@ stdenv.mkDerivation rec {
|
||||
enableParallelBuilding = true;
|
||||
|
||||
meta = with lib; {
|
||||
homepage = "http://ezquake.github.io/";
|
||||
homepage = "https://ezquake.com/";
|
||||
description = "A modern QuakeWorld client focused on competitive online play";
|
||||
license = licenses.gpl2;
|
||||
platforms = platforms.linux;
|
||||
|
||||
@@ -1,13 +1,26 @@
|
||||
{ lib, stdenv, fetchFromGitHub
|
||||
, makeWrapper, cmake, llvmPackages
|
||||
, flex, bison, elfutils, python, luajit, netperf, iperf, libelf
|
||||
, bash, libbpf, nixosTests
|
||||
, audit
|
||||
{ audit
|
||||
, bash
|
||||
, bison
|
||||
, cmake
|
||||
, elfutils
|
||||
, fetchFromGitHub
|
||||
, flex
|
||||
, iperf
|
||||
, lib
|
||||
, libbpf
|
||||
, llvmPackages
|
||||
, luajit
|
||||
, makeWrapper
|
||||
, netperf
|
||||
, nixosTests
|
||||
, python3
|
||||
, stdenv
|
||||
, zip
|
||||
}:
|
||||
|
||||
python.pkgs.buildPythonApplication rec {
|
||||
python3.pkgs.buildPythonApplication rec {
|
||||
pname = "bcc";
|
||||
version = "0.26.0";
|
||||
version = "0.28.0";
|
||||
|
||||
disabled = !stdenv.isLinux;
|
||||
|
||||
@@ -15,7 +28,7 @@ python.pkgs.buildPythonApplication rec {
|
||||
owner = "iovisor";
|
||||
repo = "bcc";
|
||||
rev = "v${version}";
|
||||
sha256 = "sha256-zx38tPwuuGU6px9pRNN5JtvBysK9fStOvoqe7cLo7LM=";
|
||||
sha256 = "sha256-+ecSaVroDC2bWbio4JsuwEvHQdCMpxLt7hIkeREMJs8=";
|
||||
};
|
||||
format = "other";
|
||||
|
||||
@@ -31,8 +44,16 @@ python.pkgs.buildPythonApplication rec {
|
||||
./fix-deadlock-detector-import.patch
|
||||
];
|
||||
|
||||
propagatedBuildInputs = [ python.pkgs.netaddr ];
|
||||
nativeBuildInputs = [ makeWrapper cmake flex bison llvmPackages.llvm.dev ];
|
||||
propagatedBuildInputs = [ python3.pkgs.netaddr ];
|
||||
nativeBuildInputs = [
|
||||
bison
|
||||
cmake
|
||||
flex
|
||||
llvmPackages.llvm.dev
|
||||
makeWrapper
|
||||
python3.pkgs.setuptools
|
||||
zip
|
||||
];
|
||||
|
||||
cmakeFlags = [
|
||||
"-DBCC_KERNEL_MODULES_DIR=/run/booted-system/kernel-modules/lib/modules"
|
||||
@@ -59,6 +80,10 @@ python.pkgs.buildPythonApplication rec {
|
||||
--replace '$'{exec_prefix}/@CMAKE_INSTALL_LIBDIR@ @CMAKE_INSTALL_FULL_LIBDIR@
|
||||
'';
|
||||
|
||||
preInstall = ''
|
||||
# required for setuptool during install
|
||||
export PYTHONPATH=$out/${python3.sitePackages}:$PYTHONPATH
|
||||
'';
|
||||
postInstall = ''
|
||||
mkdir -p $out/bin $out/share
|
||||
rm -r $out/share/bcc/tools/old
|
||||
|
||||
@@ -57,13 +57,4 @@
|
||||
name = "export-rt-sched-migrate";
|
||||
patch = ./export-rt-sched-migrate.patch;
|
||||
};
|
||||
|
||||
CVE-2023-32233 = rec {
|
||||
name = "CVE-2023-32233";
|
||||
patch = fetchpatch {
|
||||
name = name + ".patch";
|
||||
url = "https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/patch/?id=c1592a89942e9678f7d9c8030efa777c0d57edab";
|
||||
hash = "sha256-DYPWgraXPNeFkjtuDYkFXHnCJ4yDewrukM2CCAqC2BE=";
|
||||
};
|
||||
};
|
||||
}
|
||||
|
||||
@@ -1,43 +1,40 @@
|
||||
{ lib
|
||||
, buildGoModule
|
||||
, fetchFromGitHub
|
||||
, makeWrapper
|
||||
, fetchzip
|
||||
, fetchpatch
|
||||
, pathDeps ? [ ]
|
||||
, applyPatches
|
||||
, buildGoModule
|
||||
, buildNpmPackage
|
||||
, makeWrapper
|
||||
, go-swag
|
||||
, nixosTests
|
||||
}:
|
||||
|
||||
buildGoModule rec {
|
||||
pname = "pufferpanel";
|
||||
version = "2.6.6";
|
||||
version = "2.6.7";
|
||||
|
||||
patches = [
|
||||
# Bump go-sqlite3 version to avoid a GNU C compiler error.
|
||||
(fetchpatch {
|
||||
url = "https://github.com/PufferPanel/PufferPanel/commit/dd7fc80c33c7618c98311af09c78c25b77658aef.patch";
|
||||
hash = "sha256-ygMrhJoba8swoRBBii7BEiLihqOebLUtSH7os7W3s+k=";
|
||||
})
|
||||
src = applyPatches {
|
||||
src = fetchFromGitHub {
|
||||
owner = "PufferPanel";
|
||||
repo = "PufferPanel";
|
||||
rev = "v${version}";
|
||||
hash = "sha256-ay9NNcK+6QFobe/rwtZF8USl0vMbDZBg5z57fjA5VLw=";
|
||||
};
|
||||
patches = [
|
||||
# Bump sha1cd package, otherwise i686-linux fails to build.
|
||||
./bump-sha1cd.patch
|
||||
|
||||
# Fix errors in tests.
|
||||
(fetchpatch {
|
||||
url = "https://github.com/PufferPanel/PufferPanel/commit/ad6ab4b4368e1111292fadfb3d9f058fa399fa21.patch";
|
||||
hash = "sha256-BzGfcWhzRrCHKkAhWf0uvXiiiutWqthn/ed7bN2hR8U=";
|
||||
})
|
||||
# Seems to be an anti-feature. Startup is the only place where user/group is
|
||||
# hardcoded and checked.
|
||||
#
|
||||
# There is no technical reason PufferPanel cannot run as a different user,
|
||||
# especially for simple commands like `pufferpanel version`.
|
||||
./disable-group-checks.patch
|
||||
|
||||
# Bump sha1cd package, otherwise i686-linux fails to build.
|
||||
./bump-sha1cd.patch
|
||||
|
||||
# Seems to be an anti-feature. Startup is the only place where user/group is
|
||||
# hardcoded and checked.
|
||||
#
|
||||
# There is no technical reason PufferPanel cannot run as a different user,
|
||||
# especially for simple commands like `pufferpanel version`.
|
||||
./disable-group-checks.patch
|
||||
|
||||
# Some tests do not have network requests stubbed :(
|
||||
./skip-network-tests.patch
|
||||
];
|
||||
# Some tests do not have network requests stubbed :(
|
||||
./skip-network-tests.patch
|
||||
];
|
||||
};
|
||||
|
||||
ldflags = [
|
||||
"-s"
|
||||
@@ -46,50 +43,50 @@ buildGoModule rec {
|
||||
"-X=github.com/pufferpanel/pufferpanel/v2.Version=${version}-nixpkgs"
|
||||
];
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "pufferpanel";
|
||||
repo = pname;
|
||||
rev = "v${version}";
|
||||
hash = "sha256-0Vyi47Rkpe3oODHfsl/7tCerENpiEa3EWBHhfTO/uu4=";
|
||||
frontend = buildNpmPackage {
|
||||
pname = "pufferpanel-frontend";
|
||||
inherit version;
|
||||
|
||||
src = "${src}/client";
|
||||
|
||||
npmDepsHash = "sha256-oWFXtV/dxzHv3sfIi01l1lHE5tcJgpVq87XgS6Iy62g=";
|
||||
|
||||
NODE_OPTIONS = "--openssl-legacy-provider";
|
||||
npmBuildFlags = [ "--" "--dest=${placeholder "out"}" ];
|
||||
dontNpmInstall = true;
|
||||
};
|
||||
|
||||
# PufferPanel is split into two parts: the backend daemon and the
|
||||
# frontend.
|
||||
# Getting the frontend to build in the Nix environment fails even
|
||||
# with all the proper node_modules populated. To work around this,
|
||||
# we just download the built frontend and package that.
|
||||
frontend = fetchzip {
|
||||
url = "https://github.com/PufferPanel/PufferPanel/releases/download/v${version}/pufferpanel_${version}_linux_arm64.zip";
|
||||
hash = "sha256-z7HWhiEBma37OMGEkTGaEbnF++Nat8wAZE2UeOoaO/U=";
|
||||
stripRoot = false;
|
||||
postFetch = ''
|
||||
mv $out $TMPDIR/subdir
|
||||
mv $TMPDIR/subdir/www $out
|
||||
'';
|
||||
};
|
||||
|
||||
nativeBuildInputs = [ makeWrapper ];
|
||||
nativeBuildInputs = [ makeWrapper go-swag ];
|
||||
|
||||
vendorHash = "sha256-Esfk7SvqiWeiobXSI+4wYVEH9yVkB+rO7bxUQ5TzvG4=";
|
||||
proxyVendor = true;
|
||||
|
||||
postFixup = ''
|
||||
mkdir -p $out/share/pufferpanel
|
||||
cp -r ${src}/assets/email $out/share/pufferpanel/templates
|
||||
cp -r ${frontend} $out/share/pufferpanel/www
|
||||
# Generate code for Swagger documentation endpoints (see web/swagger/docs.go).
|
||||
# Note that GOROOT embedded in go-swag is empty by default since it is built
|
||||
# with -trimpath (see https://go.dev/cl/399214). It looks like go-swag skips
|
||||
# file paths that start with $GOROOT, thus all files when it is empty.
|
||||
preBuild = ''
|
||||
GOROOT=''${GOROOT-$(go env GOROOT)} swag init --output web/swagger --generalInfo web/loader.go
|
||||
'';
|
||||
|
||||
# Rename cmd to pufferpanel and remove other binaries.
|
||||
mv $out/bin $TMPDIR/bin
|
||||
mkdir $out/bin
|
||||
mv $TMPDIR/bin/cmd $out/bin/pufferpanel
|
||||
installPhase = ''
|
||||
runHook preInstall
|
||||
|
||||
# Set up directory structure similar to the official PufferPanel releases.
|
||||
mkdir -p $out/share/pufferpanel
|
||||
cp "$GOPATH"/bin/cmd $out/share/pufferpanel/pufferpanel
|
||||
cp -r $frontend $out/share/pufferpanel/www
|
||||
cp -r $src/assets/email $out/share/pufferpanel/email
|
||||
cp web/swagger/swagger.{json,yaml} $out/share/pufferpanel
|
||||
|
||||
# Wrap the binary with the path to the external files, but allow setting
|
||||
# custom paths if needed.
|
||||
wrapProgram $out/bin/pufferpanel \
|
||||
makeWrapper $out/share/pufferpanel/pufferpanel $out/bin/pufferpanel \
|
||||
--set-default GIN_MODE release \
|
||||
--set-default PUFFER_PANEL_EMAIL_TEMPLATES $out/share/pufferpanel/templates/emails.json \
|
||||
--set-default PUFFER_PANEL_WEB_FILES $out/share/pufferpanel/www \
|
||||
--prefix PATH : ${lib.escapeShellArg (lib.makeBinPath pathDeps)}
|
||||
--set-default PUFFER_PANEL_EMAIL_TEMPLATES $out/share/pufferpanel/email/emails.json \
|
||||
--set-default PUFFER_PANEL_WEB_FILES $out/share/pufferpanel/www
|
||||
|
||||
runHook postInstall
|
||||
'';
|
||||
|
||||
passthru.tests = {
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
{ lib
|
||||
, stdenv
|
||||
, fetchFromGitHub
|
||||
, fetchpatch
|
||||
, asciidoc
|
||||
, libxcb
|
||||
, xcbutil
|
||||
@@ -19,6 +20,15 @@ stdenv.mkDerivation (finalAttrs: {
|
||||
hash = "sha256-OelMqenk0tiWMLraekS/ggGf6IsXP7Sz7bv75NvnNvI=";
|
||||
};
|
||||
|
||||
patches = [
|
||||
(fetchpatch {
|
||||
# Fixes an issue with overlapping chords when using multiple keyboard layouts.
|
||||
name = "sxhkd-mod5.patch";
|
||||
url = "https://github.com/baskerville/sxhkd/pull/307/commits/35e64f1d7b54c97ccc02e84e278012dae9bc3941.patch";
|
||||
hash = "sha256-bvXWEEITbHC/h0nXQx99SXjvkI/KO36XXNSa1O8KSY0=";
|
||||
})
|
||||
];
|
||||
|
||||
nativeBuildInputs = [
|
||||
asciidoc
|
||||
];
|
||||
@@ -36,7 +46,7 @@ stdenv.mkDerivation (finalAttrs: {
|
||||
description = "Simple X hotkey daemon";
|
||||
homepage = "https://github.com/baskerville/sxhkd";
|
||||
license = licenses.bsd2;
|
||||
maintainers = with maintainers; [ vyp AndersonTorres ];
|
||||
maintainers = with maintainers; [ vyp AndersonTorres ncfavier ];
|
||||
platforms = platforms.linux;
|
||||
};
|
||||
})
|
||||
|
||||
@@ -12,19 +12,19 @@
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "uutils-coreutils";
|
||||
version = "0.0.19";
|
||||
version = "0.0.20";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "uutils";
|
||||
repo = "coreutils";
|
||||
rev = version;
|
||||
sha256 = "sha256-ysMSO6VaiaL4Sh5F0VbeAQYOo78lhVQjewZ5lwaCLRM=";
|
||||
sha256 = "sha256-Xr+RcWvAHyMMaHhcd3ArGeRZzpL76v7fXiHUSSxgj10=";
|
||||
};
|
||||
|
||||
cargoDeps = rustPlatform.fetchCargoTarball {
|
||||
inherit src;
|
||||
name = "${pname}-${version}";
|
||||
hash = "sha256-cBocRWIpG2BQZDPJq4cNNYrFg/MBR3o58fXGHanTn30=";
|
||||
hash = "sha256-3hUEDE+Yup/+u/ACyAWXYTLerOqB/jtOzECdI540Ag0=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [ rustPlatform.cargoSetupHook sphinx ];
|
||||
|
||||
@@ -9874,6 +9874,8 @@ with pkgs;
|
||||
|
||||
node2nix = nodePackages.node2nix;
|
||||
|
||||
notesnook = callPackage ../applications/misc/notesnook { };
|
||||
|
||||
openipmi = callPackage ../tools/system/openipmi { };
|
||||
|
||||
ox = callPackage ../applications/editors/ox { };
|
||||
@@ -18390,7 +18392,7 @@ with pkgs;
|
||||
in if linker == "lld" then llvmPackages.bintools-unwrapped
|
||||
else if linker == "cctools" then darwin.binutils-unwrapped
|
||||
else if linker == "bfd" then binutils-unwrapped
|
||||
else if linker == "gold" then binutils-unwrapped
|
||||
else if linker == "gold" then binutils-unwrapped.override { enableGoldDefault = true; }
|
||||
else null;
|
||||
bintoolsNoLibc = wrapBintoolsWith {
|
||||
bintools = bintools-unwrapped;
|
||||
@@ -18474,12 +18476,11 @@ with pkgs;
|
||||
bpftools = callPackage ../os-specific/linux/bpftools { };
|
||||
|
||||
bcc = callPackage ../os-specific/linux/bcc {
|
||||
python = python3;
|
||||
llvmPackages = llvmPackages_14;
|
||||
llvmPackages = llvmPackages_16;
|
||||
};
|
||||
|
||||
bpftrace = callPackage ../os-specific/linux/bpftrace {
|
||||
llvmPackages = llvmPackages_14;
|
||||
llvmPackages = llvmPackages_16;
|
||||
};
|
||||
|
||||
bpm-tools = callPackage ../tools/audio/bpm-tools { };
|
||||
@@ -35956,9 +35957,7 @@ with pkgs;
|
||||
|
||||
xaos = libsForQt5.callPackage ../applications/graphics/xaos { };
|
||||
|
||||
xastir = callPackage ../applications/misc/xastir {
|
||||
rastermagick = imagemagick6;
|
||||
};
|
||||
xastir = callPackage ../applications/misc/xastir { };
|
||||
|
||||
xautomation = callPackage ../tools/X11/xautomation { };
|
||||
|
||||
@@ -36473,6 +36472,10 @@ with pkgs;
|
||||
|
||||
go-exploitdb = callPackage ../tools/security/go-exploitdb { };
|
||||
|
||||
gridcoin-research = libsForQt5.callPackage ../applications/blockchains/gridcoin-research {
|
||||
boost = boost179;
|
||||
};
|
||||
|
||||
groestlcoin = libsForQt5.callPackage ../applications/blockchains/groestlcoin {
|
||||
stdenv = darwin.apple_sdk_11_0.stdenv;
|
||||
withGui = true;
|
||||
@@ -38007,6 +38010,8 @@ with pkgs;
|
||||
|
||||
enlightenment = recurseIntoAttrs (callPackage ../desktops/enlightenment { });
|
||||
|
||||
expidus = recurseIntoAttrs (callPackage ../desktops/expidus {});
|
||||
|
||||
gnome2 = recurseIntoAttrs (callPackage ../desktops/gnome-2 { });
|
||||
|
||||
gnome = recurseIntoAttrs (callPackage ../desktops/gnome { });
|
||||
|
||||
@@ -127,7 +127,6 @@ in {
|
||||
kernelPatches = [
|
||||
kernelPatches.bridge_stp_helper
|
||||
kernelPatches.request_key_helper
|
||||
kernelPatches.CVE-2023-32233
|
||||
];
|
||||
};
|
||||
|
||||
|
||||
Reference in New Issue
Block a user