Merge staging-next into staging

This commit is contained in:
github-actions[bot] 2022-08-16 18:02:00 +00:00 committed by GitHub
commit 4524f4b5ee
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
68 changed files with 2606 additions and 134 deletions

View File

@ -10178,6 +10178,16 @@
fingerprint = "5D69 CF04 B7BC 2BC1 A567 9267 00BC F29B 3208 0700";
}];
};
phfroidmont = {
name = "Paul-Henri Froidmont";
email = "nix.contact-j9dw4d@froidmont.org";
github = "phfroidmont";
githubId = 8150907;
keys = [{
fingerprint = "3AC6 F170 F011 33CE 393B CD94 BE94 8AFD 7E78 73BE";
}];
};
philandstuff = {
email = "philip.g.potter@gmail.com";
github = "philandstuff";

View File

@ -191,6 +191,14 @@
<link linkend="opt-services.tempo.enable">services.tempo</link>.
</para>
</listitem>
<listitem>
<para>
<link xlink:href="https://github.com/zalando/patroni">Patroni</link>,
a template for PostgreSQL HA with ZooKeeper, etcd or Consul.
Available as
<link xlink:href="options.html#opt-services.patroni.enable">services.patroni</link>.
</para>
</listitem>
</itemizedlist>
</section>
<section xml:id="sec-release-22.11-incompatibilities">

View File

@ -75,6 +75,9 @@ In addition to numerous new and upgraded packages, this release has the followin
- [Grafana Tempo](https://www.grafana.com/oss/tempo/), a distributed tracing store. Available as [services.tempo](#opt-services.tempo.enable).
- [Patroni](https://github.com/zalando/patroni), a template for PostgreSQL HA with ZooKeeper, etcd or Consul.
Available as [services.patroni](options.html#opt-services.patroni.enable).
<!-- To avoid merge conflicts, consider adding your item at an arbitrary place in the list instead. -->
## Backward Incompatibilities {#sec-release-22.11-incompatibilities}

View File

@ -329,6 +329,7 @@
./services/cluster/kubernetes/proxy.nix
./services/cluster/kubernetes/scheduler.nix
./services/cluster/pacemaker/default.nix
./services/cluster/patroni/default.nix
./services/cluster/spark/default.nix
./services/computing/boinc/client.nix
./services/computing/foldingathome/client.nix

View File

@ -0,0 +1,268 @@
{ config, lib, pkgs, ... }:
with lib;
let
cfg = config.services.patroni;
defaultUser = "patroni";
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
{
options.services.patroni = {
enable = mkEnableOption "Patroni";
postgresqlPackage = mkOption {
type = types.package;
example = literalExpression "pkgs.postgresql_14";
description = mdDoc ''
PostgreSQL package to use.
Plugins can be enabled like this `pkgs.postgresql_14.withPackages (p: [ p.pg_safeupdate p.postgis ])`.
'';
};
postgresqlDataDir = mkOption {
type = types.path;
defaultText = literalExpression ''"/var/lib/postgresql/''${config.services.patroni.postgresqlPackage.psqlSchema}"'';
example = "/var/lib/postgresql/14";
default = "/var/lib/postgresql/${cfg.postgresqlPackage.psqlSchema}";
description = mdDoc ''
The data directory for PostgreSQL. If left as the default value
this directory will automatically be created before the PostgreSQL server starts, otherwise
the sysadmin is responsible for ensuring the directory exists with appropriate ownership
and permissions.
'';
};
postgresqlPort = mkOption {
type = types.port;
default = 5432;
description = mdDoc ''
The port on which PostgreSQL listens.
'';
};
user = mkOption {
type = types.str;
default = defaultUser;
example = "postgres";
description = mdDoc ''
The user for the service. If left as the default value this user will automatically be created,
otherwise the sysadmin is responsible for ensuring the user exists.
'';
};
group = mkOption {
type = types.str;
default = defaultGroup;
example = "postgres";
description = mdDoc ''
The group for the service. If left as the default value this group will automatically be created,
otherwise the sysadmin is responsible for ensuring the group exists.
'';
};
dataDir = mkOption {
type = types.path;
default = "/var/lib/patroni";
description = mdDoc ''
Folder where Patroni data will be written, used by Raft as well if enabled.
'';
};
scope = mkOption {
type = types.str;
example = "cluster1";
description = mdDoc ''
Cluster name.
'';
};
name = mkOption {
type = types.str;
example = "node1";
description = mdDoc ''
The name of the host. Must be unique for the cluster.
'';
};
namespace = mkOption {
type = types.str;
default = "/service";
description = mdDoc ''
Path within the configuration store where Patroni will keep information about the cluster.
'';
};
nodeIp = mkOption {
type = types.str;
example = "192.168.1.1";
description = mdDoc ''
IP address of this node.
'';
};
otherNodesIps = mkOption {
type = types.listOf types.string;
example = [ "192.168.1.2" "192.168.1.3" ];
description = mdDoc ''
IP addresses of the other nodes.
'';
};
restApiPort = mkOption {
type = types.port;
default = 8008;
description = mdDoc ''
The port on Patroni's REST api listens.
'';
};
raft = mkOption {
type = types.bool;
default = false;
description = mdDoc ''
This will configure Patroni to use its own RAFT implementation instead of using a dedicated DCS.
'';
};
raftPort = mkOption {
type = types.port;
default = 5010;
description = mdDoc ''
The port on which RAFT listens.
'';
};
softwareWatchdog = mkOption {
type = types.bool;
default = false;
description = mdDoc ''
This will configure Patroni to use the software watchdog built into the Linux kernel
as described in the [documentation](https://patroni.readthedocs.io/en/latest/watchdog.html#setting-up-software-watchdog-on-linux).
'';
};
settings = mkOption {
type = format.type;
default = { };
description = mdDoc ''
The primary patroni configuration. See the [documentation](https://patroni.readthedocs.io/en/latest/SETTINGS.html)
for possible values.
Secrets should be passed in by using the `environmentFiles` option.
'';
};
environmentFiles = mkOption {
type = with types; attrsOf (nullOr (oneOf [ str path package ]));
default = { };
example = {
PATRONI_REPLICATION_PASSWORD = "/secret/file";
PATRONI_SUPERUSER_PASSWORD = "/secret/file";
};
description = mdDoc "Environment variables made available to Patroni as files content, useful for providing secrets from files.";
};
};
config = mkIf cfg.enable {
services.patroni.settings = {
scope = cfg.scope;
name = cfg.name;
namespace = cfg.namespace;
restapi = {
listen = "${cfg.nodeIp}:${toString cfg.restApiPort}";
connect_address = "${cfg.nodeIp}:${toString cfg.restApiPort}";
};
raft = mkIf cfg.raft {
data_dir = "${cfg.dataDir}/raft";
self_addr = "${cfg.nodeIp}:5010";
partner_addrs = map (ip: ip + ":5010") cfg.otherNodesIps;
};
postgresql = {
listen = "${cfg.nodeIp}:${toString cfg.postgresqlPort}";
connect_address = "${cfg.nodeIp}:${toString cfg.postgresqlPort}";
data_dir = cfg.postgresqlDataDir;
bin_dir = "${cfg.postgresqlPackage}/bin";
pgpass = "${cfg.dataDir}/pgpass";
};
watchdog = mkIf cfg.softwareWatchdog {
mode = "required";
device = "/dev/watchdog";
safety_margin = 5;
};
};
users = {
users = mkIf (cfg.user == defaultUser) {
patroni = {
group = cfg.group;
isSystemUser = true;
};
};
groups = mkIf (cfg.group == defaultGroup) {
patroni = { };
};
};
systemd.services = {
patroni = {
description = "Runners to orchestrate a high-availability PostgreSQL";
wantedBy = [ "multi-user.target" ];
after = [ "network.target" ];
script = ''
${concatStringsSep "\n" (attrValues (mapAttrs (name: path: ''export ${name}="$(< ${escapeShellArg path})"'') cfg.environmentFiles))}
exec ${patroni}/bin/patroni ${configFile}
'';
serviceConfig = mkMerge [
{
User = cfg.user;
Group = cfg.group;
Type = "simple";
Restart = "on-failure";
TimeoutSec = 30;
ExecReload = "${pkgs.coreutils}/bin/kill -s HUP $MAINPID";
KillMode = "process";
}
(mkIf (cfg.postgresqlDataDir == "/var/lib/postgresql/${cfg.postgresqlPackage.psqlSchema}" && cfg.dataDir == "/var/lib/patroni") {
StateDirectory = "patroni patroni/raft postgresql postgresql/${cfg.postgresqlPackage.psqlSchema}";
StateDirectoryMode = "0750";
})
];
};
};
boot.kernelModules = mkIf cfg.softwareWatchdog [ "softdog" ];
services.udev.extraRules = mkIf cfg.softwareWatchdog ''
KERNEL=="watchdog", OWNER="${cfg.user}", GROUP="${cfg.group}", MODE="0600"
'';
environment.systemPackages = [
patroni
cfg.postgresqlPackage
(mkIf cfg.raft pkgs.python310Packages.pysyncobj)
];
environment.etc."${configFileName}".source = configFile;
environment.sessionVariables = {
PATRONICTL_CONFIG_FILE = "/etc/${configFileName}";
};
};
meta.maintainers = [ maintainers.phfroidmont ];
}

View File

@ -10,6 +10,7 @@
},
"context.spa-libs": {
"audio.convert.*": "audioconvert/libspa-audioconvert",
"avb.*": "avb/libspa-avb",
"api.alsa.*": "alsa/libspa-alsa",
"api.v4l2.*": "v4l2/libspa-v4l2",
"api.libcamera.*": "libcamera/libspa-libcamera",

View File

@ -45,7 +45,7 @@ in {
services = {
tuptime = {
description = "the total uptime service";
description = "The total uptime service";
documentation = [ "man:tuptime(1)" ];
after = [ "time-sync.target" ];
wantedBy = [ "multi-user.target" ];
@ -59,10 +59,9 @@ in {
};
};
tuptime-oneshot = mkIf cfg.timer.enable {
description = "the tuptime scheduled execution unit";
tuptime-sync = mkIf cfg.timer.enable {
description = "Tuptime scheduled sync service";
serviceConfig = {
StateDirectory = "tuptime";
Type = "oneshot";
User = "_tuptime";
ExecStart = "${pkgs.tuptime}/bin/tuptime -x";
@ -70,8 +69,8 @@ in {
};
};
timers.tuptime = mkIf cfg.timer.enable {
description = "the tuptime scheduled execution timer";
timers.tuptime-sync = mkIf cfg.timer.enable {
description = "Tuptime scheduled sync timer";
# this timer should be started if the service is started
# even if the timer was previously stopped
wantedBy = [ "tuptime.service" "timers.target" ];
@ -80,7 +79,7 @@ in {
timerConfig = {
OnBootSec = "1min";
OnCalendar = cfg.timer.period;
Unit = "tuptime-oneshot.service";
Unit = "tuptime-sync.service";
};
};
};

View File

@ -417,6 +417,7 @@ in {
pam-u2f = handleTest ./pam/pam-u2f.nix {};
pam-ussh = handleTest ./pam/pam-ussh.nix {};
pass-secret-service = handleTest ./pass-secret-service.nix {};
patroni = handleTest ./patroni.nix {};
pantalaimon = handleTest ./matrix/pantalaimon.nix {};
pantheon = handleTest ./pantheon.nix {};
paperless = handleTest ./paperless.nix {};

204
nixos/tests/patroni.nix Normal file
View File

@ -0,0 +1,204 @@
import ./make-test-python.nix ({ pkgs, lib, ... }:
let
nodesIps = [
"192.168.1.1"
"192.168.1.2"
"192.168.1.3"
];
createNode = index: { pkgs, ... }:
let
ip = builtins.elemAt nodesIps index; # since we already use IPs to identify servers
in
{
networking.interfaces.eth1.ipv4.addresses = pkgs.lib.mkOverride 0 [
{ address = ip; prefixLength = 16; }
];
networking.firewall.allowedTCPPorts = [ 5432 8008 5010 ];
environment.systemPackages = [ pkgs.jq ];
services.patroni = {
enable = true;
postgresqlPackage = pkgs.postgresql_14.withPackages (p: [ p.pg_safeupdate ]);
scope = "cluster1";
name = "node${toString(index + 1)}";
nodeIp = ip;
otherNodesIps = builtins.filter (h: h != ip) nodesIps;
softwareWatchdog = true;
settings = {
bootstrap = {
dcs = {
ttl = 30;
loop_wait = 10;
retry_timeout = 10;
maximum_lag_on_failover = 1048576;
};
initdb = [
{ encoding = "UTF8"; }
"data-checksums"
];
};
postgresql = {
use_pg_rewind = true;
use_slots = true;
authentication = {
replication = {
username = "replicator";
};
superuser = {
username = "postgres";
};
rewind = {
username = "rewind";
};
};
parameters = {
listen_addresses = "${ip}";
wal_level = "replica";
hot_standby_feedback = "on";
unix_socket_directories = "/tmp";
};
pg_hba = [
"host replication replicator 192.168.1.0/24 md5"
# Unsafe, do not use for anything other than tests
"host all all 0.0.0.0/0 trust"
];
};
etcd3 = {
host = "192.168.1.4:2379";
};
};
environmentFiles = {
PATRONI_REPLICATION_PASSWORD = pkgs.writeText "replication-password" "postgres";
PATRONI_SUPERUSER_PASSWORD = pkgs.writeText "superuser-password" "postgres";
PATRONI_REWIND_PASSWORD = pkgs.writeText "rewind-password" "postgres";
};
};
# We always want to restart so the tests never hang
systemd.services.patroni.serviceConfig.StartLimitIntervalSec = 0;
};
in
{
name = "patroni";
nodes = {
node1 = createNode 0;
node2 = createNode 1;
node3 = createNode 2;
etcd = { pkgs, ... }: {
networking.interfaces.eth1.ipv4.addresses = pkgs.lib.mkOverride 0 [
{ address = "192.168.1.4"; prefixLength = 16; }
];
services.etcd = {
enable = true;
listenClientUrls = [ "http://192.168.1.4:2379" ];
};
networking.firewall.allowedTCPPorts = [ 2379 ];
};
client = { pkgs, ... }: {
environment.systemPackages = [ pkgs.postgresql_14 ];
networking.interfaces.eth1.ipv4.addresses = pkgs.lib.mkOverride 0 [
{ address = "192.168.2.1"; prefixLength = 16; }
];
services.haproxy = {
enable = true;
config = ''
global
maxconn 100
defaults
log global
mode tcp
retries 2
timeout client 30m
timeout connect 4s
timeout server 30m
timeout check 5s
listen cluster1
bind 127.0.0.1:5432
option httpchk
http-check expect status 200
default-server inter 3s fall 3 rise 2 on-marked-down shutdown-sessions
${builtins.concatStringsSep "\n" (map (ip: "server postgresql_${ip}_5432 ${ip}:5432 maxconn 100 check port 8008") nodesIps)}
'';
};
};
};
testScript = ''
nodes = [node1, node2, node3]
def wait_for_all_nodes_ready(expected_replicas=2):
booted_nodes = filter(lambda node: node.booted, nodes)
for node in booted_nodes:
print(node.succeed("patronictl list cluster1"))
node.wait_until_succeeds(f"[ $(patronictl list -f json cluster1 | jq 'length') == {expected_replicas + 1} ]")
node.wait_until_succeeds("[ $(patronictl list -f json cluster1 | jq 'map(select(.Role | test(\"^Leader$\"))) | map(select(.State | test(\"^running$\"))) | length') == 1 ]")
node.wait_until_succeeds(f"[ $(patronictl list -f json cluster1 | jq 'map(select(.Role | test(\"^Replica$\"))) | map(select(.State | test(\"^running$\"))) | length') == {expected_replicas} ]")
print(node.succeed("patronictl list cluster1"))
client.wait_until_succeeds("psql -h 127.0.0.1 -U postgres --command='select 1;'")
def run_dummy_queries():
client.succeed("psql -h 127.0.0.1 -U postgres --pset='pager=off' --tuples-only --command='insert into dummy(val) values (101);'")
client.succeed("test $(psql -h 127.0.0.1 -U postgres --pset='pager=off' --tuples-only --command='select val from dummy where val = 101;') -eq 101")
client.succeed("psql -h 127.0.0.1 -U postgres --pset='pager=off' --tuples-only --command='delete from dummy where val = 101;'")
start_all()
with subtest("should bootstrap a new patroni cluster"):
wait_for_all_nodes_ready()
with subtest("should be able to insert and select"):
client.succeed("psql -h 127.0.0.1 -U postgres --command='create table dummy as select * from generate_series(1, 100) as val;'")
client.succeed("test $(psql -h 127.0.0.1 -U postgres --pset='pager=off' --tuples-only --command='select count(distinct val) from dummy;') -eq 100")
with subtest("should restart after all nodes are crashed"):
for node in nodes:
node.crash()
for node in nodes:
node.start()
wait_for_all_nodes_ready()
with subtest("should be able to run queries while any one node is crashed"):
masterNodeName = node1.succeed("patronictl list -f json cluster1 | jq '.[] | select(.Role | test(\"^Leader$\")) | .Member' -r").strip()
masterNodeIndex = int(masterNodeName[len(masterNodeName)-1]) - 1
# Move master node at the end of the list to avoid multiple failovers (makes the test faster and more consistent)
nodes.append(nodes.pop(masterNodeIndex))
for node in nodes:
node.crash()
wait_for_all_nodes_ready(1)
# Execute some queries while a node is down.
run_dummy_queries()
# Restart crashed node.
node.start()
wait_for_all_nodes_ready()
# Execute some queries with the node back up.
run_dummy_queries()
'';
})

View File

@ -47,7 +47,9 @@ import ./make-test-python.nix ({ pkgs, lib, ... }: {
with subtest("Adding an example zone works"):
# Extract configuration file needed by pdnsutil
unit = server.succeed("systemctl cat pdns")
conf = re.search("(--config-dir=[^ ]+)", unit).group(1)
match = re.search("(--config-dir=[^ ]+)", unit)
assert(match is not None)
conf = match.group(1)
pdnsutil = "sudo -u pdns pdnsutil " + conf
server.succeed(f"{pdnsutil} create-zone example.com ns1.example.com")
server.succeed(f"{pdnsutil} add-record example.com ns1 A 192.168.1.2")

View File

@ -2,10 +2,10 @@
stdenv.mkDerivation rec {
pname = "dcw-gmt";
version = "2.1.0";
version = "2.1.1";
src = fetchurl {
url = "ftp://ftp.soest.hawaii.edu/gmt/dcw-gmt-${version}.tar.gz";
sha256 = "sha256-6BBWfNR01a+dhHUZOKy0R6hhI5HtZhkNYNeJl0ofnik=";
sha256 = "sha256-q3LIJTB2OAyEd6EiU3C8QfSv+BHCjS9k11BS/z2QA68=";
};
installPhase = ''

View File

@ -27,6 +27,9 @@ rustPlatform.buildRustPackage rec {
checkFlags = [
# fails in the sandbox
"--skip=file_list::tests"
# sometimes fails on darwin
"image_list::tests::save_current_image_overwrites_image_at_current_image_path_when_filename_is_set_to_none"
];
postInstall = ''

View File

@ -3,20 +3,20 @@
mkDerivation rec {
pname = "cura";
version = "4.12.1";
version = "4.13.1";
src = fetchFromGitHub {
owner = "Ultimaker";
repo = "Cura";
rev = version;
sha256 = "sha256-QvX9o1nrYmY6zzPcxl+xD6JTMdphzT/is1SMYrISu4o=";
sha256 = "sha256-R88SdAxx3tkQCDInrFTKad1tPSDTSYaVAPUVmdk94Xk=";
};
materials = fetchFromGitHub {
owner = "Ultimaker";
repo = "fdm_materials";
rev = version;
sha256 = "0ykf14j4yx4cf12qw0d4bff9ixrx96m6wxqvi83sn721y7dsd2rs";
rev = "4.13.2";
sha256 = "sha256-7y4OcbeQHv+loJ4cMgPU0e818Zsv90EwARdztNWS8zM=";
};
buildInputs = [ qtbase qtquickcontrols2 qtgraphicaleffects ];

View File

@ -54,14 +54,14 @@ let
self: super: {
octoprint-pisupport = self.buildPythonPackage rec {
pname = "OctoPrint-PiSupport";
version = "2022.3.28";
version = "2022.6.13";
format = "setuptools";
src = fetchFromGitHub {
owner = "OctoPrint";
repo = "OctoPrint-PiSupport";
rev = version;
sha256 = "yzE/jz604nX/CHcW3aa7goH1ey8qZ7rLw31SMfNKJZM=";
sha256 = "sha256-3z5Btl287W3j+L+MQG8FOWt21smML0vpmu9BP48B9A0=";
};
# requires octoprint itself during tests
@ -74,13 +74,13 @@ let
self: super: {
octoprint = self.buildPythonPackage rec {
pname = "OctoPrint";
version = "1.8.1";
version = "1.8.2";
src = fetchFromGitHub {
owner = "OctoPrint";
repo = "OctoPrint";
rev = version;
sha256 = "sha256-9phB9B8y3ay1Bsvf/m/E9xdl7vmQur4qbWOw9v6KFak=";
sha256 = "sha256-uJuGeDS4TnGH1r+6oHtcJDZVGM7hDmkJpB35B1JtqQ0=";
};
propagatedBuildInputs = with super; [

View File

@ -1,5 +1,6 @@
{ stdenv
, cmake
, curl
, fetchFromGitHub
, gss
, hwloc
@ -14,18 +15,18 @@
stdenv.mkDerivation rec {
pname = "p2pool";
version = "2.1";
version = "2.2.1";
src = fetchFromGitHub {
owner = "SChernykh";
repo = "p2pool";
rev = "v${version}";
sha256 = "sha256-cpBMzYLcU93GXYkBhUdoRovjQ2hd1+pAt6d9aAOaZT8=";
sha256 = "sha256-iDswjKDGii1OnMmdhiisbwuWjs7omNOF+tubJLs69qY=";
fetchSubmodules = true;
};
nativeBuildInputs = [ cmake pkg-config ];
buildInputs = [ libuv zeromq libsodium gss hwloc openssl ];
buildInputs = [ libuv zeromq libsodium gss hwloc openssl curl ];
installPhase = ''
runHook preInstall

View File

@ -19,9 +19,9 @@
}
},
"beta": {
"version": "105.0.5195.19",
"sha256": "08wap1v2qjx8nzd8sbiv24vx0vdc2dhlzrlv3g4zpm2qj7l4mki7",
"sha256bin64": "15rhslgq77wiwiycf6m89vi3f5vry286b7kqfk0v5ibmcsf6clgf",
"version": "105.0.5195.28",
"sha256": "14hy1f59ypsvqmrp0k4kv5cfcw48dizw4nkmigaxxv4bnmpwlcy1",
"sha256bin64": "0rgv1r94z91khzwmf1scnnsz9yqks6ygicl7bdsdbckw69njq91z",
"deps": {
"gn": {
"version": "2022-07-11",
@ -32,15 +32,15 @@
}
},
"dev": {
"version": "106.0.5216.6",
"sha256": "1mgdzm5iw0ml9w68wszcscw0d3l2rlsanhznyz2ll2qv412wxgci",
"sha256bin64": "02kj2swqfvcvn27x22i98g7r0fj4p20bqcabagigxs1bhxw56akc",
"version": "106.0.5231.2",
"sha256": "0cygann80jmc2vk83kpc7kprhw75yf7qqfi1208ksyp6m94cxnp6",
"sha256bin64": "1p7hq5vsmwgkyjam7blm1gxa246dg5plhk2f0vbvlnycwj54cvjm",
"deps": {
"gn": {
"version": "2022-07-11",
"version": "2022-08-08",
"url": "https://gn.googlesource.com/gn",
"rev": "9ef321772ecc161937db69acb346397e0ccc484d",
"sha256": "0j85kgf8c1psys6kfsq5mph8n80hcbzhr7d2blqiiysmjj0wc6ng"
"rev": "3d773bba0927e67eae8fdaee5e28b0f6203d3bee",
"sha256": "1pfv6iq04r5lbg5b6xa6d5vn6mzyqksmspris7cgq5lihwq825ld"
}
}
},

View File

@ -0,0 +1,94 @@
{ lib
, gcc11Stdenv
, fetchFromGitHub
, cmake
, ninja
, unzip
, wrapQtAppsHook
, makeWrapper
, qtbase
, qttools
}:
let serenity = fetchFromGitHub {
owner = "SerenityOS";
repo = "serenity";
rev = "094ba6525f0217f3b8d5e467cef326caeb659e8a";
hash = "sha256-IHXe2Td9iRSL1oQVwL2gZHxEM2ID4SghZwK6ewjFV1Y=";
};
in gcc11Stdenv.mkDerivation {
pname = "ladybird";
version = "unstable-2022-07-20";
# Remember to update `serenity` too!
src = fetchFromGitHub {
owner = "awesomekling";
repo = "ladybird";
rev = "9e3a1f47d484cee6f23c4dae6c51750af155a8fc";
hash = "sha256-1cPWpPvjM/VcVUEf2k+MvGvTgZ3Fc4LFHZCLh1wU78Y=";
};
nativeBuildInputs = [
cmake
ninja
unzip
wrapQtAppsHook
makeWrapper
];
buildInputs = [
qtbase
];
cmakeFlags = [
"-DSERENITY_SOURCE_DIR=${serenity}"
# Disable network operations
"-DENABLE_TIME_ZONE_DATABASE_DOWNLOAD=false"
"-DENABLE_UNICODE_DATABASE_DOWNLOAD=false"
];
NIX_CFLAGS_COMPILE = [ "-Wno-error" ];
# Upstream install rules are missing
# https://github.com/awesomekling/ladybird/issues/36
installPhase = ''
runHook preInstall
install -Dm755 ladybird $out/bin/ladybird
mkdir -p $out/lib/ladybird
cp -d _deps/lagom-build/*.so* $out/lib/ladybird/
runHook postInstall
'';
# Patch rpaths
# https://github.com/awesomekling/ladybird/issues/36
preFixup = ''
for f in $out/bin/ladybird $out/lib/ladybird/*.so; do
old_rpath=$(patchelf --print-rpath "$f")
# Remove reference to libraries from build directory
rpath_without_build=$(sed -e 's@[^:]*/_deps/lagom-build:@@g' <<< $old_rpath)
# Add directory where we install those libraries
new_rpath=$out/lib/ladybird:$rpath_without_build
patchelf --set-rpath "$new_rpath" "$f"
done
'';
# According to the readme, the program needs access to the serenity sources
# at runtime
postFixup = ''
wrapProgram $out/bin/ladybird --set SERENITY_SOURCE_DIR "${serenity}"
'';
# Stripping results in a symbol lookup error
dontStrip = true;
meta = with lib; {
description = "A browser using the SerenityOS LibWeb engine with a Qt GUI";
homepage = "https://github.com/awesomekling/ladybird";
license = licenses.bsd2;
maintainers = with maintainers; [ fgaz ];
# SerenityOS only works on x86, and can only be built on unix systems.
# We also use patchelf in preFixup, so we restrict that to linux only.
platforms = [ "x86_64-linux" "i686-linux" ];
};
}

View File

@ -3,7 +3,7 @@
buildGoPackage rec {
pname = "machine";
version = "0.16.1";
version = "0.16.2";
goPackagePath = "github.com/docker/machine";
@ -11,7 +11,7 @@ buildGoPackage rec {
rev = "v${version}";
owner = "docker";
repo = "machine";
sha256 = "0xxzxi5v7ji9j2k7kxhi0ah91lfa7b9rg3nywgx0lkv8dlgp8kmy";
sha256 = "sha256-Mo2OGpem3p6hCNJ46+RH3BfC7kmKB4yk4Vzo38K88UM=";
};
nativeBuildInputs = [ installShellFiles ];

View File

@ -2,17 +2,17 @@
buildGoModule rec {
pname = "glooctl";
version = "1.12.3";
version = "1.12.6";
src = fetchFromGitHub {
owner = "solo-io";
repo = "gloo";
rev = "v${version}";
hash = "sha256-0neq2EjlHddjLHyNlnqFjXCZpv8r7DGMeYNCzJUEFFg=";
hash = "sha256-g2cKT3ZTLYFBCw3xlcuB2qZ6MTV7qBfN7sieenFUeMM=";
};
subPackages = [ "projects/gloo/cli/cmd" ];
vendorSha256 = "sha256-1FbcNgTD5+YI29LOmkJMjhE+MnxrKmomTKK4DgyXCws=";
vendorSha256 = "sha256-wY0f9RUe9Z1FpjqWDpDG6QXQlFDChfAkjJzlvBMaaFE=";
nativeBuildInputs = [ installShellFiles ];

View File

@ -2,16 +2,16 @@
buildGoModule rec {
pname = "terragrunt";
version = "0.37.0";
version = "0.38.7";
src = fetchFromGitHub {
owner = "gruntwork-io";
repo = pname;
rev = "v${version}";
sha256 = "sha256-7nil/T6q1crZh9ARTP615UzfjKcgsclpIt2N1ifABBk=";
sha256 = "sha256-MPetGR/VAVSLuDHyYeP1s9+4RRZzKanf9xyxas3heYY=";
};
vendorSha256 = "sha256-7SUf4r+6r6dkBoBZFg2AUK114QEl0+1lwRA4ymYArFs=";
vendorSha256 = "sha256-CqImT90jFFLi6XR7jfzFKwhnCHK6B+aM+Ba/L+G3bEg=";
doCheck = false;

View File

@ -5,13 +5,13 @@
mkDerivation rec {
pname = "qownnotes";
version = "22.8.0";
version = "22.8.1";
src = fetchurl {
url = "https://download.tuxfamily.org/${pname}/src/${pname}-${version}.tar.xz";
# Fetch the checksum of current version with curl:
# curl https://download.tuxfamily.org/qownnotes/src/qownnotes-<version>.tar.xz.sha256
sha256 = "37ae0952119341b7a07a80bb79e732d91edab3a684b6b9a626e5a9d13a97fad1";
sha256 = "82b231c53c485671568571e97f34b98887b0cee6e8a336a61e7d490edc605061";
};
nativeBuildInputs = [ qmake qttools ];

View File

@ -17,13 +17,13 @@
stdenv.mkDerivation rec {
pname = "freedv";
version = "1.7.0";
version = "1.8.3";
src = fetchFromGitHub {
owner = "drowe67";
repo = "freedv-gui";
rev = "v${version}";
hash = "sha256-0E7r/7+AQRPIFAcE6O1WE0NYiKzAlBR0jKbssqWvRMU=";
hash = "sha256-hZcaA8ZAkNigWwcaU8K6R6atNi8pqIUUEwkje+3sW8A=";
};
nativeBuildInputs = [ cmake ];

View File

@ -2,16 +2,16 @@
rustPlatform.buildRustPackage rec {
pname = "glitter";
version = "1.5.15";
version = "1.6.1";
src = fetchFromGitHub {
owner = "milo123459";
repo = pname;
rev = "v${version}";
sha256 = "sha256-4oI0opwbmEyHc3zx06l8bDPnOi7rGrMqUJPBDAfmPY0=";
sha256 = "sha256-1iBTuFhxgsOFO3GueIB0kqNfmLglzircnCY+AffFj9I=";
};
cargoSha256 = "sha256-rmECD/0ThDXBAGqDMNbyHi9eoGNOJhBndaxCuUS/qpc=";
cargoSha256 = "sha256-wY60B+3ndKL6IAaLmvbIcCxvq/Un/Sgzgedml6ouqFc=";
# tests require it to be in a git repository
preCheck = ''

View File

@ -47,13 +47,13 @@ let
in
stdenv.mkDerivation rec {
pname = "mkvtoolnix";
version = "69.0.0";
version = "70.0.0";
src = fetchFromGitLab {
owner = "mbunkus";
repo = "mkvtoolnix";
rev = "release-${version}";
sha256 = "sha256-sKm/TjlVFj6Vy6lfy3v7UJoEUXALZZSKO3zoIrYtwrc=";
sha256 = "sha256-7ryLf/SKM5m7MdOd2K2XhJEdLF2H8xjV1aZMKUjm+Ok=";
};
nativeBuildInputs = [

View File

@ -2,7 +2,7 @@
buildGoPackage rec {
pname = "amazon-ecs-agent";
version = "1.18.0";
version = "1.62.1";
goPackagePath = "github.com/aws/${pname}";
subPackages = [ "agent" ];
@ -11,7 +11,7 @@ buildGoPackage rec {
rev = "v${version}";
owner = "aws";
repo = pname;
sha256 = "1l6c2if6wpjmq2hh6k818w38s1rsbwgd6igqy948dwcrb1g1mixr";
sha256 = "sha256-p3o5Z6NIieBoEjxN8NnDYCSD4IQs2daxCwg4ndp5TTk=";
};
meta = with lib; {

View File

@ -21,7 +21,7 @@ stdenvNoCC.mkDerivation rec {
sparseCheckout = ''
BeautyLine-V3
'';
sha256 = "sha256-VEQWMY77cVz6UDn7FeMYYyYgXmXl1lLYs8MlFUuGRZE=";
sha256 = "sha256-IkkypAj250+OXbf19TampCnqYsSbJVIjeYlxJoyhpzk=";
};
sourceRoot = "${src.name}/BeautyLine-V3";

View File

@ -12,24 +12,20 @@
, kwindowsystem
, kiconthemes
, kwayland
, unstableGitUpdater
}:
mkDerivation rec {
pname = "material-kwin-decoration";
version = "unstable-2021-10-28";
version = "unstable-2022-01-19";
src = fetchFromGitHub {
owner = "Zren";
repo = "material-decoration";
rev = "cc5cc399a546b66907629b28c339693423c894c8";
sha256 = "sha256-aYlnPFhf+ISVe5Ycryu5BSXY8Lb5OoueMqnWQZiv6Lc=";
rev = "973949761f609f9c676c5b2b7c6d9560661d34c3";
sha256 = "sha256-n+yUmBUrkS+06qLnzl2P6CTQZZbDtJLy+2mDPCcQz9M=";
};
postPatch = ''
substituteInPlace CMakeLists.txt \
--replace "-Werror" ""
'';
nativeBuildInputs = [ cmake extra-cmake-modules ];
buildInputs = [
@ -44,10 +40,14 @@ mkDerivation rec {
kwayland
];
passthru = {
updateScript = unstableGitUpdater { };
};
meta = with lib; {
description = "Material-ish window decoration theme for KWin";
homepage = "https://github.com/Zren/material-decoration";
license = licenses.gpl2;
maintainers = [ maintainers.nickcao ];
maintainers = with maintainers; [ nickcao ];
};
}

View File

@ -13,13 +13,13 @@ assert enableLTO -> stdenv.cc.isGNU;
stdenv.mkDerivation rec {
pname = "dictu";
version = "0.24.0";
version = "0.25.0";
src = fetchFromGitHub {
owner = "dictu-lang";
repo = pname;
rev = "v${version}";
sha256 = "sha256-EYoLEyK8jh4z3/9aMuUBt0pCwks7NIevsK2mOh8x6bQ=";
sha256 = "sha256-Tahi2K8Q/KPc9MN7yWhkqp/MzXfzJzrGSsvnTCyI03U=";
};
nativeBuildInputs = [ cmake ];

View File

@ -18,6 +18,9 @@ stdenv.mkDerivation rec {
hash = "sha256-x2c4c9RSrNWGqEngio4ArW7dJjW0gg+8nqBwPcR721k=";
};
# Fix index out of bounds reading RPATH (cherry-picked from 0.10-dev)
patches = [ ./rpath.patch ];
nativeBuildInputs = [
cmake
llvmPackages.llvm.dev

View File

@ -0,0 +1,39 @@
commit ebcdbd9b3c9d437780aee4d6af76bbd2ab32ea06
Author: LeRoyce Pearson <contact@leroycepearson.dev>
Date: 2022-07-17 16:01:22 -0600
Read dynstr starting at rpath offset
Since we know the offset, we may as well read starting there. Still expects
rpath to fit in 4096 bytes; that might be worth fixing in the future.
Fixes issue #12112
diff --git a/lib/std/zig/system/NativeTargetInfo.zig b/lib/std/zig/system/NativeTargetInfo.zig
index af41fc790579..ad0b6d5ce1e1 100644
--- a/lib/std/zig/system/NativeTargetInfo.zig
+++ b/lib/std/zig/system/NativeTargetInfo.zig
@@ -652,14 +652,19 @@ pub fn abiAndDynamicLinkerFromFile(
} else null;
if (dynstr) |ds| {
- const strtab_len = std.math.min(ds.size, strtab_buf.len);
- const strtab_read_len = try preadMin(file, &strtab_buf, ds.offset, strtab_len);
- const strtab = strtab_buf[0..strtab_read_len];
// TODO this pointer cast should not be necessary
const rpoff_usize = std.math.cast(usize, rpoff) catch |err| switch (err) {
error.Overflow => return error.InvalidElfFile,
};
- const rpath_list = mem.sliceTo(std.meta.assumeSentinel(strtab[rpoff_usize..].ptr, 0), 0);
+ if (rpoff_usize > ds.size) return error.InvalidElfFile;
+ const rpoff_file = ds.offset + rpoff_usize;
+ const rp_max_size = ds.size - rpoff_usize;
+
+ const strtab_len = std.math.min(rp_max_size, strtab_buf.len);
+ const strtab_read_len = try preadMin(file, &strtab_buf, rpoff_file, strtab_len);
+ const strtab = strtab_buf[0..strtab_read_len];
+
+ const rpath_list = mem.sliceTo(std.meta.assumeSentinel(strtab.ptr, 0), 0);
var it = mem.tokenize(u8, rpath_list, ":");
while (it.next()) |rpath| {
var dir = fs.cwd().openDir(rpath, .{}) catch |err| switch (err) {

View File

@ -19,7 +19,7 @@ stdenv.mkDerivation rec {
};
nativeBuildInputs = [ cmake ];
buildInputs = [ openssl zlib ];
propagatedBuildInputs = [ openssl zlib ];
meta = with lib; {
homepage = "https://capnproto.org/";

View File

@ -785,6 +785,7 @@ with self;
meta.description = "A library to help writing wrappers around ocaml code for python";
patches = lib.optional (lib.versionAtLeast ocaml.version "4.13") ./pythonlib.patch;
propagatedBuildInputs = [ ppx_expect ppx_let ppx_python stdio typerep ];
meta.broken = lib.versionAtLeast ocaml.version "4.14";
};
re2 = janePackage {

View File

@ -5,6 +5,7 @@
with lib;
if versionOlder ocaml.version "4.05"
|| versionAtLeast ocaml.version "4.14"
then throw "notty is not available for OCaml ${ocaml.version}"
else

View File

@ -0,0 +1,41 @@
{ lib
, fetchFromGitHub
, buildPythonPackage
, pytest
, python
, pillow
, numpy
}:
buildPythonPackage rec {
pname = "aggdraw";
version = "1.3.15";
src = fetchFromGitHub {
owner = "pytroll";
repo = pname;
rev = "v${version}";
sha256 = "sha256-w3HlnsHYB0R+HZOXtzygC2RST3gllPI7SYtwSCVXhTU=";
};
checkInputs = [
numpy
pillow
pytest
];
checkPhase = ''
runHook preCheck
${python.interpreter} selftest.py
runHook postCheck
'';
pythonImportsCheck = [ "aggdraw" ];
meta = with lib; {
description = "High quality drawing interface for PIL";
homepage = "https://github.com/pytroll/aggdraw";
license = licenses.mit;
maintainers = with maintainers; [ onny ];
};
}

View File

@ -12,14 +12,14 @@
buildPythonPackage rec {
pname = "cloudflare";
version = "2.9.11";
version = "2.9.12";
format = "setuptools";
disabled = pythonOlder "3.7";
src = fetchPypi {
inherit pname version;
hash = "sha256-kvCSazLBU2sBzobdZrVXcdlEpMoAe5wb7rBWxzhDuus=";
hash = "sha256-w+ciURz9sJcWmhhjJfvoorFYUBFp0PaLZ55zb2sMwDA=";
};
propagatedBuildInputs = [

View File

@ -22,13 +22,13 @@
buildPythonPackage rec {
pname = "devito";
version = "unstable-2022-04-22";
version = "4.7.1";
src = fetchFromGitHub {
owner = "devitocodes";
repo = "devito";
rev = "7cb52eded4038c1a0ee92cfd04d3412c48f2fb7c";
sha256 = "sha256-75hkkufQK9Nv65DBz8cmYTfkxH/UUWDQK/rGUDULvjM=";
rev = "v${version}";
sha256 = "sha256-crKTxlueE8NGjAqu625iFvp35UK2U7+9kl8rpbzf0gs=";
};
postPatch = ''

View File

@ -13,14 +13,14 @@
buildPythonPackage rec {
pname = "gehomesdk";
version = "0.4.27";
version = "0.5.0";
format = "setuptools";
disabled = pythonOlder "3.7";
src = fetchPypi {
inherit pname version;
sha256 = "sha256-jhggGncxguG/hZutZ3gfg9dwl0Ex5wpcHFKZegAaM9Q=";
sha256 = "sha256-XxJEiWiblnvKCfcM8sNFEjV2gw7cc7A9P6H4JEAleRQ=";
};
propagatedBuildInputs = [

View File

@ -1,27 +1,46 @@
{ lib, buildPythonPackage, fetchPypi, isPy27
{ lib
, buildPythonPackage
, fetchFromGitHub
, isPy27
, docopt
, pillow
, enum34
, scikitimage
, aggdraw
, pytestCheckHook
, ipython
, cython
}:
buildPythonPackage rec {
pname = "psd-tools";
version = "1.9.21";
src = fetchPypi {
inherit pname version;
sha256 = "sha256-BlfJnC03W0BEOr2Nav0Tj0fzjwAVlTPjyN0KmxxQMVI=";
src = fetchFromGitHub {
owner = "psd-tools";
repo = pname;
rev = "v${version}";
sha256 = "sha256-+nqN7DJHbr7XkfG0oUQkWcxv+krR8DlQndAQCvnBk3s=";
};
nativeBuildInputs = [ cython ];
propagatedBuildInputs = [
aggdraw
docopt
ipython
pillow
] ++ lib.optionals isPy27 [ enum34 ];
scikitimage
];
meta = {
checkInputs = [ pytestCheckHook ];
pythonImportsCheck = [ "psd_tools" ];
meta = with lib; {
description = "Python package for reading Adobe Photoshop PSD files";
homepage = "https://github.com/kmike/psd-tools";
license = lib.licenses.mit;
broken = true; # missing packbits from nixpkgs
license = licenses.mit;
maintainers = with maintainers; [ onny ];
};
}

View File

@ -1,4 +1,11 @@
{ lib, buildPythonPackage, fetchPypi, pytest, pytest-flakes, tox }:
{ lib
, buildPythonPackage
, fetchPypi
, pytest
, pytest-flakes
, tox
}:
buildPythonPackage rec {
pname = "pytest-quickcheck";
version = "0.8.6";
@ -9,12 +16,16 @@ buildPythonPackage rec {
};
buildInputs = [ pytest ];
propagatedBuildInputs = [ pytest-flakes tox ];
meta = with lib; {
license = licenses.asl20;
homepage = "https://pypi.python.org/pypi/pytest-quickcheck";
description = "pytest plugin to generate random data inspired by QuickCheck";
broken = true; # missing pytest-codestyle
maintainers = with maintainers; [ onny ];
# Pytest support > 6.0 missing
# https://github.com/t2y/pytest-quickcheck/issues/17
broken = true;
};
}

View File

@ -0,0 +1,47 @@
{ lib
, buildPythonPackage
, pythonOlder
, fetchFromGitHub
, cryptography
, pytestCheckHook
, requests
}:
buildPythonPackage rec {
pname = "torpy";
version = "1.1.6";
disabled = pythonOlder "3.6";
src = fetchFromGitHub {
owner = "torpyorg";
repo = "torpy";
rev = "v${version}";
sha256 = "sha256-Ni7GcpkxzAMtP4wBOFsi4KnxK+nC0XCZR/2Z/eS/C+w=";
};
propagatedBuildInputs = [
cryptography
requests
];
checkInputs = [
pytestCheckHook
];
disabledTestPaths = [
# requires network
"tests/integration"
];
pythonImportsCheck = [
"cryptography"
];
meta = with lib; {
description = "Pure python Tor client";
homepage = "https://github.com/torpyorg/torpy";
license = licenses.asl20;
maintainers = with maintainers; [ larsr ];
};
}

View File

@ -1,10 +1,10 @@
{ lib, stdenv, fetchurl, jre_headless, makeWrapper }:
stdenv.mkDerivation rec{
pname = "flyway";
version = "9.1.3";
version = "9.1.4";
src = fetchurl {
url = "mirror://maven/org/flywaydb/flyway-commandline/${version}/flyway-commandline-${version}.tar.gz";
sha256 = "sha256-RmA9aP0YxYv2iDIp7W0k4x3CzvHMuPb398OM55q3Odo=";
sha256 = "sha256-Hs9DZmgkaX00cI7YXTfgdvC0x3st8UfU0pQ7BDGHpDY=";
};
nativeBuildInputs = [ makeWrapper ];
dontBuild = true;

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,43 @@
{ stdenv
, lib
, fetchFromGitHub
, openssl
, pkg-config
, rustPlatform
, Security
}:
rustPlatform.buildRustPackage rec {
pname = "cargo-wasi";
version = "0.1.26";
src = fetchFromGitHub {
owner = "bytecodealliance";
repo = pname;
rev = version;
sha256 = "sha256-jugq7A3L+5+YUSyp9WWKBd4BA2pcXKd4CMVg5OVMcEA=";
};
cargoSha256 = "sha256-L4vRLYm1WaCmA4bGyY7D0yxXuqxGSHMMD/wlY8+MgPk=";
nativeBuildInputs = [ pkg-config ];
buildInputs = lib.optionals stdenv.isLinux [ openssl ]
++ lib.optionals stdenv.isDarwin [ Security ];
cargoPatches = [
./0001-Add-Cargo.lock.patch
];
# Checks need to be disabled here because the current test suite makes assumptions
# about the surrounding environment that aren't Nix friendly. See these lines for specifics:
# https://github.com/bytecodealliance/cargo-wasi/blob/0.1.26/tests/tests/support.rs#L13-L18
doCheck = false;
meta = with lib; {
description = "A lightweight Cargo subcommand to build code for the wasm32-wasi target";
homepage = "https://bytecodealliance.github.io/cargo-wasi";
license = licenses.asl20;
maintainers = with maintainers; [ lucperkins ];
};
}

View File

@ -13,11 +13,11 @@
rustPlatform.buildRustPackage rec {
pname = "duckscript_cli";
version = "0.8.10";
version = "0.8.14";
src = fetchCrate {
inherit pname version;
sha256 = "sha256-cMvcCX8ViCcUFMuxAPo3/wxXvg5swAcBrLx1x7lSwvM=";
sha256 = "sha256-3LsHgn4FeukQXkEVG7V3wJlH+0Ut2cQQSQDrLMhc7qw=";
};
nativeBuildInputs = [ pkg-config ];
@ -25,7 +25,7 @@ rustPlatform.buildRustPackage rec {
buildInputs = [ openssl ]
++ lib.optionals stdenv.isDarwin [ Security SystemConfiguration libiconv ];
cargoSha256 = "sha256-8ywMLXFmdq119K/hl1hpsVhzG+nrdO4eux3lAqUjB+A=";
cargoSha256 = "sha256-SiuDKH1jXU6m9MfQ9W3GxXVMkxOxB1Y3zn0Iz8zR7Zs=";
meta = with lib; {
description = "Simple, extendable and embeddable scripting language.";

View File

@ -8,8 +8,8 @@ let
in
buildNodejs {
inherit enableNpm;
version = "16.16.0";
sha256 = "sha256-FFFR7/Oyql6+czhACcUicag3QK5oepPJjGKM19UnNus=";
version = "16.17.0";
sha256 = "sha256-HSjChWheRGmFkhvJY1ZcqcDF9P2pdV5InAaAjql5VkU=";
patches = [
./disable-darwin-v8-system-instrumentation.patch
# Fix npm silently fail without a HOME directory https://github.com/npm/cli/issues/4996

View File

@ -0,0 +1,58 @@
{ lib
, stdenv
, fetchFromGitHub
, zlib
, libjpeg
, SDL2
, libvorbis
}:
stdenv.mkDerivation rec {
name = "darkplaces";
version = "unstable-2022-05-10";
src = fetchFromGitHub {
owner = "DarkPlacesEngine";
repo = "darkplaces";
rev = "f16954a9d40168253ac5d9890dabcf7dbd266cd9";
hash = "sha256-5KsUcgHbuzFUE6LcclqI8VPSFbXZzBnxzOBB9Kf8krI=";
};
buildInputs = [
zlib
libjpeg
SDL2
];
buildFlags = "release";
installPhase = ''
runHook preInstall
mkdir -p $out/bin
install -m755 darkplaces-sdl $out/bin/darkplaces
install -m755 darkplaces-dedicated $out/bin/darkplaces-dedicated
runHook postInstall
'';
postFixup = ''
patchelf \
--add-needed ${libvorbis}/lib/libvorbisfile.so \
--add-needed ${libvorbis}/lib/libvorbis.so \
$out/bin/darkplaces
'';
meta = with lib; {
homepage = "https://www.icculus.org/twilight/darkplaces/";
description = "A quake 1 engine implementation by LadyHavoc";
longDescription = ''
A game engine based on the Quake 1 engine by id Software.
It improves and builds upon the original 1996 engine by adding modern
rendering features, and expanding upon the engine's native game code
language QuakeC, as well as supporting additional map and model formats.
'';
maintainers = with maintainers; [ necrophcodr ];
license = licenses.gpl2Plus;
platforms = platforms.linux;
};
}

View File

@ -12,10 +12,10 @@
stdenv.mkDerivation rec {
pname = "MAR1D";
version = "0.3.0";
version = "0.3.1";
src = fetchFromGitHub {
sha256 = "sha256-/QZH2H0PFCLeweXUE11vimLnJTt86PjnTnHC9vWkKsk=";
sha256 = "sha256-c48azBGdnzhEQGUeRJWlNLJhtrYjnpiORuWvowcQK5Y=";
rev = "v${version}";
repo = "MAR1D";
owner = "Radvendii";

View File

@ -2,11 +2,11 @@
stdenv.mkDerivation rec {
pname = "VASSAL";
version = "3.6.5";
version = "3.6.7";
src = fetchzip {
url = "https://github.com/vassalengine/vassal/releases/download/${version}/${pname}-${version}-linux.tar.bz2";
sha256 = "sha256-wnaT0+r599/RboeUfpCZTNd/M2kaCsckI9F+7r7leEE=";
sha256 = "sha256-WTYMbVtAciscnBzR4uHmVVXpuge53e32uLmUF8/w6I0=";
};
nativeBuildInputs = [ makeWrapper ];

View File

@ -2,13 +2,13 @@
stdenv.mkDerivation rec {
pname = "evdi";
version = "1.11.0";
version = "1.12.0";
src = fetchFromGitHub {
owner = "DisplayLink";
repo = pname;
rev = "v${version}";
sha256 = "12n2xbpw2901cvzw467saqqsgs4mwrzp7fs5j2vlyl7kwpcr0pj0";
sha256 = "sha256-JZKZ7+1OMbBtUA7pAZ41TzeDDyiD0h7yTXJINJ5FjN4=";
};
NIX_CFLAGS_COMPILE = "-Wno-error -Wno-error=sign-compare";

View File

@ -2,11 +2,11 @@
stdenvNoCC.mkDerivation rec {
pname = "linux-firmware";
version = "20220708";
version = "20220815";
src = fetchzip {
url = "https://git.kernel.org/pub/scm/linux/kernel/git/firmware/linux-firmware.git/snapshot/linux-firmware-${version}.tar.gz";
sha256 = "sha256-jsmbBxQ4RHBySBq2lks5tJ6YTwwlkvVe2Xc0CDJY8IE=";
sha256 = "sha256-StPlnwn4KOvOf4fRblDzJQqyI8iIz8e9fo/BsTyCKjI=";
};
installFlags = [ "DESTDIR=$(out)" ];
@ -16,7 +16,7 @@ stdenvNoCC.mkDerivation rec {
outputHashMode = "recursive";
outputHashAlgo = "sha256";
outputHash = "sha256-FNYZMJnqR2waODUXisch3ObdEjwQN94QSiBE2dDW4sk=";
outputHash = "sha256-VTRrOOkdWepUCKAkziO/0egb3oaQEOJCtsuDEgs/W78=";
meta = with lib; {
description = "Binary firmware collection packaged by kernel.org";

View File

@ -334,7 +334,7 @@ stdenv.mkDerivation ((drvAttrs config stdenv.hostPlatform.linux-kernel kernelPat
"CC=${stdenv.cc}/bin/${stdenv.cc.targetPrefix}cc"
"HOSTCC=${buildPackages.stdenv.cc}/bin/${buildPackages.stdenv.cc.targetPrefix}cc"
"ARCH=${stdenv.hostPlatform.linuxArch}"
] ++ lib.optional (stdenv.hostPlatform != stdenv.buildPlatform) [
] ++ lib.optionals (stdenv.hostPlatform != stdenv.buildPlatform) [
"CROSS_COMPILE=${stdenv.cc.targetPrefix}"
] ++ (stdenv.hostPlatform.linux-kernel.makeFlags or [])
++ extraMakeFlags;

View File

@ -1,19 +1,30 @@
{ stdenv, lib, fetchurl, bash, gitUpdater }:
{ stdenv
, lib
, fetchurl
, docbook_xml_dtd_44
, docbook_xsl
, libcap
, pkg-config
, meson
, ninja
, xmlto
, gitUpdater
}:
stdenv.mkDerivation rec {
pname = "pax-utils";
version = "1.3.4";
version = "1.3.5";
src = fetchurl {
url = "mirror://gentoo/distfiles/${pname}-${version}.tar.xz";
sha256 = "sha256-i67S+cWujgzaG5x1mQhkEBr8ZPrQpGFuEPP/jviRBAs=";
sha256 = "sha256-8KWwPfIwiqLdeq9TuewLK0hFW4YSnkd6FkPeYpBKuHQ=";
};
strictDeps = true;
buildInputs = [ bash ];
makeFlags = [ "PREFIX=$(out)" ];
nativeBuildInputs = [ docbook_xml_dtd_44 docbook_xsl meson ninja pkg-config xmlto ];
buildInputs = [ libcap ];
passthru.updateScript = gitUpdater {
inherit pname version;

View File

@ -3,16 +3,16 @@
buildGoModule rec {
pname = "matrix-dendrite";
version = "0.9.1";
version = "0.9.3";
src = fetchFromGitHub {
owner = "matrix-org";
repo = "dendrite";
rev = "v${version}";
sha256 = "Fg7yfP5cM/mNAsIZAI/WGNLuz8l3vxyY8bb1NjuZELc=";
sha256 = "sha256-A/4FN0FYuhP5AO7yQq/o5ZJKEJAotfervot70Scgj6M=";
};
vendorSha256 = "+9mjg8avOHPQTzBnfgim10Lfgpsu8nTQf1qYB0SLFys=";
vendorSha256 = "sha256-tgVImIfn1lPTYGXczoAxVta3L+VR0v13KowLIYQ7bwY=";
checkInputs = [
postgresqlTestHook

View File

@ -4,12 +4,12 @@
}:
stdenv.mkDerivation rec {
pname = "powerdns";
version = "4.6.2";
pname = "pdns";
version = "4.6.3";
src = fetchurl {
url = "https://downloads.powerdns.com/releases/pdns-${version}.tar.bz2";
hash = "sha256-9EOEiUS7Ebu0hQIhYTs6Af+1f+vyZx2myqVzYu4LGbg=";
hash = "sha256-rNBricoB0a32G5BmBGFPDh13oelO7srej/XVOhbbc4k=";
};
# redact configure flags from version output to reduce closure size
patches = [ ./version.patch ];

View File

@ -3,11 +3,11 @@
let
elasticmq-server = stdenv.mkDerivation rec {
pname = "elasticmq-server";
version = "1.2.0";
version = "1.3.9";
src = fetchurl {
url = "https://s3-eu-west-1.amazonaws.com/softwaremill-public/${pname}-${version}.jar";
sha256 = "06bn5ixz0pvvhfvavr6njv8c2i9pgd6gj32wnp2f0fn0z1kypn1f";
sha256 = "sha256-+l7QX/2HrcPuAJ3kHPAKx1yWtF5mkODzoFjYIPxc6oU=";
};
# don't do anything?

View File

@ -0,0 +1,31 @@
{ lib, rustPlatform, fetchFromGitHub }:
rustPlatform.buildRustPackage rec {
pname = "rustypaste";
version = "0.7.1";
src = fetchFromGitHub{
owner = "orhun";
repo = pname;
rev = "v${version}";
sha256 = "sha256-NGrz08cpio745oVYtfNO1jpViYLaxZ9ZRXQdQG/f0oM=";
};
cargoSha256 = "sha256-UQNe2O664PXvcSu6MI5F8RdYJJholjF9iO2I5OSMm2A=";
# Some tests need network
checkFlags = [
"--skip paste::tests::test_paste_data"
"--skip server::tests::test_upload_file"
"--skip server::tests::test_upload_remote_file"
"--skip util::tests::test_get_expired_files"
];
meta = with lib; {
description = "A minimal file upload/pastebin service";
homepage = "https://github.com/orhun/rustypaste";
changelog = "https://github.com/orhun/rustypaste/blob/v${version}/CHANGELOG.md";
license = licenses.mit;
maintainers = with maintainers; [ seqizz ];
};
}

View File

@ -1,6 +1,7 @@
{ lib
, pythonPackages
, fetchFromGitHub
, nixosTests
}:
pythonPackages.buildPythonApplication rec {
@ -53,6 +54,10 @@ pythonPackages.buildPythonApplication rec {
pythonImportsCheck = [ "patroni" ];
passthru.tests = {
patroni = nixosTests.patroni;
};
meta = with lib; {
homepage = "https://patroni.readthedocs.io/en/latest/";
description = "A Template for PostgreSQL HA with ZooKeeper, etcd or Consul";

View File

@ -17,13 +17,13 @@ let
in
py.pkgs.buildPythonApplication rec {
pname = "netbox";
version = "3.2.7";
version = "3.2.8";
src = fetchFromGitHub {
owner = "netbox-community";
repo = pname;
rev = "refs/tags/v${version}";
sha256 = "sha256-NIyAZZrq/Io8VyEG0TE5C3ugq+MPraJ45hi0Vx/b1OQ=";
sha256 = "sha256-fMTla+WVojoStwguHvsciyr0YNI09AvotuGB2o0hBUQ=";
};
format = "other";

View File

@ -51,10 +51,6 @@ stdenv.mkDerivation rec {
sed -i -e '/^\tXdummy.c\ \\$/,$d' -e 's/\tx11vnc_loop\ \\/\tx11vnc_loop/' misc/Makefile.am
'';
preConfigure = ''
configureFlags="--mandir=$out/share/man"
'';
meta = with lib; {
description = "A VNC server connected to a real X11 screen";
homepage = "https://github.com/LibVNC/x11vnc/";

View File

@ -0,0 +1,36 @@
{ lib
, buildPythonPackage
, pythonOlder
, fetchFromGitHub
, sphinx
, requests
}:
buildPythonPackage rec {
pname = "instaloader";
version = "4.9.2";
format = "pyproject";
disabled = pythonOlder "3.6";
src = fetchFromGitHub {
owner = "instaloader";
repo = "instaloader";
rev = "v${version}";
sha256 = "sha256-IzOXtoHuKbeHlp4URAlRrSKZ8mRTK7QgsWGd5a99thY=";
};
propagatedBuildInputs = [
requests
sphinx
];
pythonImportsCheck = [ "instaloader" ];
meta = with lib; {
homepage = "https://instaloader.github.io/";
description = "Download pictures (or videos) along with their captions and other metadata from Instagram";
maintainers = with maintainers; [ creator54 ];
license = licenses.mit;
};
}

View File

@ -9,16 +9,16 @@ manifest = {
in rustPlatform.buildRustPackage rec {
pname = "bukubrow-host";
version = "5.0.0";
version = "5.4.0";
src = fetchFromGitHub {
owner = "SamHH";
repo = pname;
rev = "v${version}";
sha256 = "1a3gqxj6d1shv3w0v9m8x2xr0bvcynchy778yqalxkc3x4vr0nbn";
sha256 = "sha256-xz5Agsm+ATQXXgpPGN4EQ00i1t8qUlrviNHauVdCu4U=";
};
cargoSha256 = "0z6i9wzz5gy9rs8cxfmwg4mpfajv0xvj4nn6jfl7f1rw6k457jc9";
cargoSha256 = "sha256-mH76ODPKlKDEK9ckThPnL5Ar7p1l1gNd7zXfesLZlBM=";
buildInputs = [ sqlite ];

View File

@ -4,16 +4,16 @@
}:
buildGoModule rec {
pname = "hysteria";
version = "1.1.0";
version = "1.2.0";
src = fetchFromGitHub {
owner = "HyNetwork";
repo = "hysteria";
repo = pname;
rev = "v${version}";
sha256 = "sha256-V+umf7+qRANSNsMrU1Vij3ni6ayq/d41xSy3o+7sEHQ=";
sha256 = "sha256-aHIb79P1a+91hIcK1toHZqqXIZ0rwfGXDQc42rQQmX4=";
};
vendorSha256 = "sha256-oxCZ4+E3kffHr8ca9BKCSYcSWQ8jwpzrFs0fvCvZyJE=";
vendorSha256 = "sha256-yAQpyz4pDXOfGF4hho/2Pt9yD3VdWYAmIvaXJjDMjis=";
proxyVendor = true;
# Network required

View File

@ -14,20 +14,20 @@
stdenv.mkDerivation rec {
pname = "mu";
version = "1.8.8";
version = "1.8.9";
src = fetchFromGitHub {
owner = "djcb";
repo = "mu";
rev = "v${version}";
hash = "sha256-kgskeQM6zESkjDWmgGqhZlGnH8naZ5k0sw+70ZzW2/E=";
hash = "sha256-AqbTYcPwV9iNar34pESbz9Vp/88hhB+/VxcLIhLZ16o=";
};
postPatch = ''
# Fix mu4e-builddir (set it to $out)
substituteInPlace mu4e/mu4e-config.el.in \
--replace "@abs_top_builddir@" "$out"
substituteInPlace lib/utils/mu-utils.cc \
substituteInPlace lib/utils/mu-test-utils.cc \
--replace "/bin/rm" "${coreutils}/bin/rm"
'';

View File

@ -2,16 +2,16 @@
buildGoModule rec {
pname = "keysmith";
version = "1.6.0";
version = "1.6.2";
src = fetchFromGitHub {
owner = "dfinity";
repo = "keysmith";
rev = "v${version}";
sha256 = "1z0sxirk71yabgilq8v5lz4nd2bbm1xyrd5zppif8k9jqhr6v3v3";
sha256 = "sha256-+wYWIoPYc7qpTRS4Zlxp50Up8obZOmfQpiT0SWwVJE0=";
};
vendorSha256 = "1p0r15ihmnmrybf12cycbav80sdj2dv2kry66f4hjfjn6k8zb0dc";
vendorSha256 = "sha256-rIH10TRWOgmJM8bnKXYTsmmAtlrMMxHc8rnaCmMJGdw=";
meta = with lib; {
description = "Hierarchical Deterministic Key Derivation for the Internet Computer";

View File

@ -6,13 +6,13 @@
stdenv.mkDerivation rec {
pname = "tuptime";
version = "5.1.0";
version = "5.2.0";
src = fetchFromGitHub {
owner = "rfrail3";
repo = "tuptime";
rev = version;
sha256 = "sha256-6N4dqgLOhWqVR8GqlBUxHWy10AHBZ4aZbdkw5SOxxBQ=";
sha256 = "sha256-s0VtKOaSPQlF58/2m/DwYDuHHPGnHVAJMA/p3hISTNE=";
};
nativeBuildInputs = [ makeWrapper installShellFiles ];
@ -41,6 +41,7 @@ stdenv.mkDerivation rec {
meta = with lib; {
description = "Total uptime & downtime statistics utility";
homepage = "https://github.com/rfrail3/tuptime";
changelog = "https://github.com/rfrail3/tuptime/blob/master/CHANGELOG";
license = licenses.gpl2Plus;
platforms = platforms.all;
maintainers = [ maintainers.evils ];

View File

@ -3789,7 +3789,9 @@ with pkgs;
fits-cloudctl = callPackage ../tools/admin/fits-cloudctl { };
flitter = callPackage ../tools/misc/flitter { };
flitter = callPackage ../tools/misc/flitter {
ocamlPackages = ocaml-ng.ocamlPackages_4_13;
};
frangipanni = callPackage ../tools/text/frangipanni { };
@ -4023,6 +4025,8 @@ with pkgs;
});
};
hysteria = callPackage ../tools/networking/hysteria { };
hyx = callPackage ../tools/text/hyx { };
icdiff = callPackage ../tools/text/icdiff {};
@ -10455,6 +10459,8 @@ with pkgs;
inherit (darwin.apple_sdk.frameworks) Security;
};
rustypaste = callPackage ../servers/rustypaste { };
rw = callPackage ../tools/misc/rw { };
rwc = callPackage ../tools/system/rwc { };
@ -14347,6 +14353,9 @@ with pkgs;
inherit (darwin.apple_sdk.frameworks) CoreServices Security SystemConfiguration;
};
cargo-valgrind = callPackage ../development/tools/rust/cargo-valgrind { };
cargo-wasi = callPackage ../development/tools/rust/cargo-wasi {
inherit (darwin.apple_sdk.frameworks) Security;
};
cargo-watch = callPackage ../development/tools/rust/cargo-watch {
inherit (darwin.apple_sdk.frameworks) CoreServices Foundation;
};
@ -27955,7 +27964,9 @@ with pkgs;
indigenous-desktop = callPackage ../applications/networking/feedreaders/indigenous-desktop { };
jackline = callPackage ../applications/networking/instant-messengers/jackline { };
jackline = callPackage ../applications/networking/instant-messengers/jackline {
ocamlPackages = ocaml-ng.ocamlPackages_4_13;
};
keylight-controller-mschneider82 = callPackage ../applications/misc/keylight-controller-mschneider82 { };
@ -28637,6 +28648,8 @@ with pkgs;
ladspa-sdk = callPackage ../applications/audio/ladspa-sdk { };
ladybird = qt6.callPackage ../applications/networking/browsers/ladybird { };
lazpaint = callPackage ../applications/graphics/lazpaint { };
caps = callPackage ../applications/audio/caps { };
@ -32551,6 +32564,8 @@ with pkgs;
cuyo = callPackage ../games/cuyo { };
darkplaces = callPackage ../games/darkplaces {};
deliantra-server = callPackage ../games/deliantra/server.nix {
stdenv = gcc10StdenvCompat;
};
@ -32792,6 +32807,8 @@ with pkgs;
ideogram = callPackage ../applications/graphics/ideogram { };
instaloader = python3Packages.callPackage ../tools/misc/instaloader { };
instead = callPackage ../games/instead { };
instead-launcher = callPackage ../games/instead-launcher { };

View File

@ -1628,5 +1628,5 @@ in let inherit (pkgs) callPackage; in rec
ocamlPackages_latest = ocamlPackages_4_14;
ocamlPackages = ocamlPackages_4_13;
ocamlPackages = ocamlPackages_4_14;
}

View File

@ -238,6 +238,8 @@ in {
agent-py = callPackage ../development/python-modules/agent-py { };
aggdraw = callPackage ../development/python-modules/aggdraw { };
aio-geojson-client = callPackage ../development/python-modules/aio-geojson-client { };
aio-geojson-generic-client = callPackage ../development/python-modules/aio-geojson-generic-client { };
@ -10845,6 +10847,8 @@ in {
# Used by streamlit, 2021-01-29
tornado_5 = callPackage ../development/python-modules/tornado/5.nix { };
torpy = callPackage ../development/python-modules/torpy { };
torrequest = callPackage ../development/python-modules/torrequest { };
total-connect-client = callPackage ../development/python-modules/total-connect-client { };