Merge master into haskell-updates

This commit is contained in:
github-actions[bot] 2024-09-24 00:16:10 +00:00 committed by GitHub
commit b6b063bdc2
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
201 changed files with 4360 additions and 1857 deletions

2
.github/CODEOWNERS vendored
View File

@ -162,7 +162,7 @@ nixos/modules/installer/tools/nix-fallback-paths.nix @NixOS/nix-team @raitobeza
# C compilers
/pkgs/development/compilers/gcc
/pkgs/development/compilers/llvm @RossComputerGuy
/pkgs/development/compilers/llvm @alyssais @RossComputerGuy
/pkgs/development/compilers/emscripten @raitobezarius
/doc/languages-frameworks/emscripten.section.md @raitobezarius

View File

@ -1,6 +1,9 @@
ajs124 <git@ajs124.de> <ajs124@users.noreply.github.com>
Anderson Torres <torres.anderson.85@protonmail.com>
Atemu <git@atemu.net> <atemu.main@gmail.com>
Christina Sørensen <christina@cafkafk.com>
Christina Sørensen <christina@cafkafk.com> <christinaafk@gmail.com>
Christina Sørensen <christina@cafkafk.com> <89321978+cafkafk@users.noreply.github.com>
Daniel Løvbrøtte Olsen <me@dandellion.xyz> <daniel.olsen99@gmail.com>
Fabian Affolter <mail@fabian-affolter.ch> <fabian@affolter-engineering.ch>
goatastronaut0212 <goatastronaut0212@outlook.com> <goatastronaut0212@proton.me>

View File

@ -23,12 +23,13 @@ The recommended way of defining a derivation for a Coq library, is to use the `c
* if it is a string of the form `owner:branch` then it tries to download the `branch` of owner `owner` for a project of the same name using the same vcs, and the `version` attribute of the resulting derivation is set to `"dev"`, additionally if the owner is not provided (i.e. if the `owner:` prefix is missing), it defaults to the original owner of the package (see below),
* if it is a string of the form `"#N"`, and the domain is github, then it tries to download the current head of the pull request `#N` from github,
* `defaultVersion` (optional). Coq libraries may be compatible with some specific versions of Coq only. The `defaultVersion` attribute is used when no `version` is provided (or if `version = null`) to select the version of the library to use by default, depending on the context. This selection will mainly depend on a `coq` version number but also possibly on other packages versions (e.g. `mathcomp`). If its value ends up to be `null`, the package is marked for removal in end-user `coqPackages` attribute set.
* `release` (optional, defaults to `{}`), lists all the known releases of the library and for each of them provides an attribute set with at least a `hash` attribute (you may put the empty string `""` in order to automatically insert a fake hash, this will trigger an error which will allow you to find the correct hash), each attribute set of the list of releases also takes optional overloading arguments for the fetcher as below (i.e.`domain`, `owner`, `repo`, `rev` assuming the default fetcher is used) and optional overrides for the result of the fetcher (i.e. `version` and `src`).
* `release` (optional, defaults to `{}`), lists all the known releases of the library and for each of them provides an attribute set with at least a `hash` attribute (you may put the empty string `""` in order to automatically insert a fake hash, this will trigger an error which will allow you to find the correct hash), each attribute set of the list of releases also takes optional overloading arguments for the fetcher as below (i.e.`domain`, `owner`, `repo`, `rev`, `artifact` assuming the default fetcher is used) and optional overrides for the result of the fetcher (i.e. `version` and `src`).
* `fetcher` (optional, defaults to a generic fetching mechanism supporting github or gitlab based infrastructures), is a function that takes at least an `owner`, a `repo`, a `rev`, and a `hash` and returns an attribute set with a `version` and `src`.
* `repo` (optional, defaults to the value of `pname`),
* `owner` (optional, defaults to `"coq-community"`).
* `domain` (optional, defaults to `"github.com"`), domains including the strings `"github"` or `"gitlab"` in their names are automatically supported, otherwise, one must change the `fetcher` argument to support them (cf `pkgs/development/coq-modules/heq/default.nix` for an example),
* `releaseRev` (optional, defaults to `(v: v)`), provides a default mapping from release names to revision hashes/branch names/tags,
* `releaseArtifact` (optional, defaults to `(v: null)`), provides a default mapping from release names to artifact names (only works for github artifact for now),
* `displayVersion` (optional), provides a way to alter the computation of `name` from `pname`, by explaining how to display version numbers,
* `namePrefix` (optional, defaults to `[ "coq" ]`), provides a way to alter the computation of `name` from `pname`, by explaining which dependencies must occur in `name`,
* `nativeBuildInputs` (optional), is a list of executables that are required to build the current derivation, in addition to the default ones (namely `which`, `dune` and `ocaml` depending on whether `useDune`, `useDuneifVersion` and `mlPlugin` are set).

View File

@ -64,7 +64,7 @@
boot.loader.grub.enable = false;
fileSystems."/".device = "nodev";
# See https://search.nixos.org/options?show=system.stateVersion&query=stateversion
system.stateVersion = lib.versions.majorMinor lib.version; # DON'T do this in real configs!
system.stateVersion = lib.trivial.release; # DON'T do this in real configs!
})
];
}).config.system.build.toplevel;

View File

@ -2028,6 +2028,13 @@
github = "Atry";
githubId = 601530;
};
attila = {
name = "Attila Oláh";
email = "attila@dorn.haus";
github = "attilaolah";
githubId = 196617;
keys = [ { fingerprint = "BF2E 4759 74D3 88E0 E30C 9604 07E6 C064 3FD1 42C3"; } ];
};
auchter = {
name = "Michael Auchter";
email = "a@phire.org";
@ -2514,6 +2521,12 @@
githubId = 6145260;
keys = [ { fingerprint = "804B 6CB8 AED5 61D9 3DAD 4DC5 E2F2 2C5E DF20 119D"; } ];
};
benchand = {
name = "Ben Chand";
email = "BenChand1995@gmail.com";
github = "BenChand";
githubId = 3618457;
};
bendlas = {
email = "herwig@bendlas.net";
matrix = "@bendlas:matrix.org";
@ -2661,6 +2674,13 @@
githubId = 7346933;
name = "betaboon";
};
beviu = {
name = "beviu";
email = "nixpkgs@beviu.com";
github = "beviu";
githubId = 56923875;
keys = [ { fingerprint = "30D6 A755 E3C3 5797 CBBB 05B6 CD20 2E66 5CAD 7D06"; } ];
};
bew = {
email = "benoit.dechezelles@gmail.com";
github = "bew";
@ -11855,6 +11875,12 @@
githubId = 13804737;
keys = [ { fingerprint = "7FE2 113A A08B 695A C8B8 DDE6 AE53 B4C2 E58E DD45"; } ];
};
lgbishop = {
email = "lachlan.bishop@hotmail.com";
github = "lgbishop";
githubId = 125634066;
name = "Lachlan Bishop";
};
lgcl = {
email = "dev@lgcl.de";
name = "Leon Vack";
@ -12245,6 +12271,12 @@
githubId = 8555953;
name = "Laure Tavard";
};
ltrump = {
email = "ltrump@163.com";
github = "L-Trump";
githubId = 37738631;
name = "Luo Chen";
};
ltstf1re = {
email = "ltstf1re@disroot.org";
github = "lsf1re";

View File

@ -199,6 +199,8 @@
- The `MSMTP_QUEUE` and `MSMTP_LOG` environment variables accepted by `msmtpq` have now been renamed to `MSMTPQ_Q` and `MSMTPQ_LOG` respectively.
- The logrotate service has received hardening and now requires enabling `allowNetworking`, if logrotate needs to access the network.
- The fcgiwrap module now allows multiple instances running as distinct users.
The option `services.fgciwrap` now takes an attribute set of the
configuration of each individual instance.

View File

@ -150,6 +150,15 @@ in
Whether to configure the sd image to expand it's partition on boot.
'';
};
nixPathRegistrationFile = mkOption {
type = types.str;
default = "/nix-path-registration";
description = ''
Location of the file containing the input for nix-store --load-db once the machine has booted.
If overriding fileSystems."/" then you should to set this to the root mount + /nix-path-registration
'';
};
};
config = {
@ -255,11 +264,8 @@ in
'';
}) {};
boot.postBootCommands = lib.mkIf config.sdImage.expandOnBoot ''
# On the first boot do some maintenance tasks
if [ -f /nix-path-registration ]; then
set -euo pipefail
set -x
boot.postBootCommands = let
expandOnBoot = lib.optionalString config.sdImage.expandOnBoot ''
# Figure out device names for the boot device and root filesystem.
rootPart=$(${pkgs.util-linux}/bin/findmnt -n -o SOURCE /)
bootDevice=$(lsblk -npo PKNAME $rootPart)
@ -269,16 +275,25 @@ in
echo ",+," | sfdisk -N$partNum --no-reread $bootDevice
${pkgs.parted}/bin/partprobe
${pkgs.e2fsprogs}/bin/resize2fs $rootPart
'';
nixPathRegistrationFile = config.sdImage.nixPathRegistrationFile;
in ''
# On the first boot do some maintenance tasks
if [ -f ${nixPathRegistrationFile} ]; then
set -euo pipefail
set -x
${expandOnBoot}
# Register the contents of the initial Nix store
${config.nix.package.out}/bin/nix-store --load-db < /nix-path-registration
${config.nix.package.out}/bin/nix-store --load-db < ${nixPathRegistrationFile}
# nixos-rebuild also requires a "system" profile and an /etc/NIXOS tag.
touch /etc/NIXOS
${config.nix.package.out}/bin/nix-env -p /nix/var/nix/profiles/system --set /run/current-system
# Prevents this from running on later boots.
rm -f /nix-path-registration
rm -f ${nixPathRegistrationFile}
fi
'';
};

View File

@ -118,15 +118,6 @@ in
name = user;
ensurePermissions = {
"*.*" = "SELECT, SHOW VIEW, TRIGGER, LOCK TABLES, EVENT";
# https://forums.mysql.com/read.php?10,668311,668315#msg-668315
"function sys.extract_table_from_file_name" = "execute";
"function sys.format_path" = "execute";
"function sys.format_statement" = "execute";
"function sys.extract_schema_from_file_name" = "execute";
"function sys.ps_thread_account" = "execute";
"function sys.format_time" = "execute";
"function sys.format_bytes" = "execute";
};
};

View File

@ -97,6 +97,8 @@ in
defaultText = lib.literalExpression "cfg.settings != {}";
};
allowNetworking = lib.mkEnableOption "network access for logrotate";
settings = lib.mkOption {
default = { };
description = ''
@ -240,12 +242,55 @@ in
config = lib.mkIf cfg.enable {
systemd.services.logrotate = {
description = "Logrotate Service";
documentation = [
"man:logrotate(8)"
"man:logrotate(5)"
];
startAt = "hourly";
serviceConfig = {
Restart = "no";
User = "root";
ExecStart = "${pkgs.logrotate}/sbin/logrotate ${utils.escapeSystemdExecArgs cfg.extraArgs} ${mailOption} ${cfg.configFile}";
Type = "oneshot";
ExecStart = "${lib.getExe pkgs.logrotate} ${utils.escapeSystemdExecArgs cfg.extraArgs} ${mailOption} ${cfg.configFile}";
# performance
Nice = 19;
IOSchedulingClass = "best-effort";
IOSchedulingPriority = 7;
# hardening
CapabilityBoundingSet = [
"CAP_CHOWN"
"CAP_SETGID"
];
DevicePolicy = "closed";
LockPersonality = true;
MemoryDenyWriteExecute = true;
NoNewPrivileges = true;
PrivateDevices = true;
PrivateTmp = true;
ProcSubset = "pid";
ProtectClock = true;
ProtectControlGroups = true;
ProtectHome = true;
ProtectHostname = true;
ProtectKernelLogs = true;
ProtectKernelModules = true;
ProtectKernelTunables = true;
ProtectProc = "invisible";
ProtectSystem = "full";
RestrictNamespaces = true;
RestrictRealtime = true;
RestrictSUIDSGID = true;
SystemCallArchitectures = "native";
SystemCallFilter = [
"@system-service"
"~@privileged @resources"
"@chown"
];
UMask = "0027";
} // lib.optionalAttrs (!cfg.allowNetworking) {
PrivateNetwork = true;
RestrictAddressFamilies = "none";
};
};
systemd.services.logrotate-checkconf = {

View File

@ -1,18 +1,18 @@
{ config, pkgs, lib, ... }:
with lib;
let
inherit (lib) mkOption types;
cfg = config.services.nar-serve;
in
{
meta = {
maintainers = [ maintainers.rizary maintainers.zimbatm ];
maintainers = with lib.maintainers; [ rizary zimbatm ];
};
options = {
services.nar-serve = {
enable = mkEnableOption "serving NAR file contents via HTTP";
enable = lib.mkEnableOption "serving NAR file contents via HTTP";
package = mkPackageOption pkgs "nar-serve" { };
package = lib.mkPackageOption pkgs "nar-serve" { };
port = mkOption {
type = types.port;
@ -48,7 +48,7 @@ in
};
};
config = mkIf cfg.enable {
config = lib.mkIf cfg.enable {
systemd.services.nar-serve = {
description = "NAR server";
after = [ "network.target" ];

View File

@ -249,7 +249,7 @@ in
};
host = mkOption {
type = with types; nullOr path;
type = with types; nullOr str;
default = if cfg.settings.database.backend == "postgresql" then "/run/postgresql" else null;
defaultText = literalExpression ''
if config.services.pretix.settings..database.backend == "postgresql" then "/run/postgresql"

View File

@ -68,14 +68,10 @@ in
assertion = config.system.activationScripts.users == "";
message = "system.activationScripts.users has to be empty to use systemd-sysusers";
}
{
assertion = config.users.mutableUsers -> config.system.etc.overlay.enable;
message = "config.users.mutableUsers requires config.system.etc.overlay.enable.";
}
] ++ (lib.mapAttrsToList
(_username: opts: {
(username: opts: {
assertion = !opts.isNormalUser;
message = "systemd-sysusers doesn't create normal users. You can currently only use it to create system users.";
message = "${username} is a normal user. systemd-sysusers doesn't create normal users, only system users.";
})
userCfg.users)
++ lib.mapAttrsToList

View File

@ -26,13 +26,6 @@
assertion = lib.versionAtLeast config.boot.kernelPackages.kernel.version "6.6";
message = "`system.etc.overlay.enable requires a newer kernel, at least version 6.6";
}
{
assertion = config.systemd.sysusers.enable -> (config.users.mutableUsers == config.system.etc.overlay.mutable);
message = ''
When using systemd-sysusers and mounting `/etc` via an overlay, users
can only be mutable when `/etc` is mutable and vice versa.
'';
}
];
boot.initrd.availableKernelModules = [ "loop" "erofs" "overlay" ];

View File

@ -49,7 +49,7 @@ let
system.nixos.revision = nixpkgs.rev or nixpkgs.shortRev;
# At creation time we do not have state yet, so just default to latest.
system.stateVersion = config.system.nixos.version;
system.stateVersion = config.system.nixos.release;
};
makeModules = module: rest: [ configuration versionModule module rest ];

View File

@ -195,9 +195,7 @@ import ../make-test-python.nix (
server.wait_until_succeeds("k3s kubectl get node agent")
for m in machines:
# Fix-Me: Tests fail for 'aarch64-linux' as: "CONFIG_CGROUP_FREEZER: missing (fail)"
if not is_aarch64:
m.succeed("k3s check-config")
m.succeed("k3s check-config")
m.succeed(
"${pauseImage} | k3s ctr image import -"
)

View File

@ -76,44 +76,40 @@ import ../make-test-python.nix (
};
};
testScript =
''
start_all()
testScript = ''
start_all()
machine.wait_for_unit("k3s")
machine.succeed("kubectl cluster-info")
machine.fail("sudo -u noprivs kubectl cluster-info")
'' # Fix-Me: Tests fail for 'aarch64-linux' as: "CONFIG_CGROUP_FREEZER: missing (fail)"
+ lib.optionalString (!pkgs.stdenv.isAarch64) ''machine.succeed("k3s check-config")''
+ ''
machine.wait_for_unit("k3s")
machine.succeed("kubectl cluster-info")
machine.fail("sudo -u noprivs kubectl cluster-info")
machine.succeed("k3s check-config")
machine.succeed(
"${pauseImage} | ctr image import -"
)
machine.succeed(
"${pauseImage} | ctr image import -"
)
# Also wait for our service account to show up; it takes a sec
machine.wait_until_succeeds("kubectl get serviceaccount default")
machine.succeed("kubectl apply -f ${testPodYaml}")
machine.succeed("kubectl wait --for 'condition=Ready' pod/test")
machine.succeed("kubectl delete -f ${testPodYaml}")
# Also wait for our service account to show up; it takes a sec
machine.wait_until_succeeds("kubectl get serviceaccount default")
machine.succeed("kubectl apply -f ${testPodYaml}")
machine.succeed("kubectl wait --for 'condition=Ready' pod/test")
machine.succeed("kubectl delete -f ${testPodYaml}")
# regression test for #176445
machine.fail("journalctl -o cat -u k3s.service | grep 'ipset utility not found'")
# regression test for #176445
machine.fail("journalctl -o cat -u k3s.service | grep 'ipset utility not found'")
with subtest("Run k3s-killall"):
# Call the killall script with a clean path to assert that
# all required commands are wrapped
output = machine.succeed("PATH= ${k3s}/bin/k3s-killall.sh 2>&1 | tee /dev/stderr")
assert "command not found" not in output, "killall script contains unknown command"
with subtest("Run k3s-killall"):
# Call the killall script with a clean path to assert that
# all required commands are wrapped
output = machine.succeed("PATH= ${k3s}/bin/k3s-killall.sh 2>&1 | tee /dev/stderr")
assert "command not found" not in output, "killall script contains unknown command"
# Check that killall cleaned up properly
machine.fail("systemctl is-active k3s.service")
machine.fail("systemctl list-units | grep containerd")
machine.fail("ip link show | awk -F': ' '{print $2}' | grep -e flannel -e cni0")
machine.fail("ip netns show | grep cni-")
# Check that killall cleaned up properly
machine.fail("systemctl is-active k3s.service")
machine.fail("systemctl list-units | grep containerd")
machine.fail("ip link show | awk -F': ' '{print $2}' | grep -e flannel -e cni0")
machine.fail("ip netns show | grep cni-")
machine.shutdown()
'';
machine.shutdown()
'';
meta.maintainers = lib.teams.k3s.members;
}

View File

@ -127,5 +127,7 @@ import ./make-test-python.nix ({ pkgs, ... }: rec {
if info["ActiveState"] != "failed":
raise Exception('logrotate-checkconf.service was not failed')
machine.log(machine.execute("systemd-analyze security logrotate.service | grep -v ")[1])
'';
})

View File

@ -1,8 +1,8 @@
{
system ? builtins.currentSystem,
config ? {},
config ? { },
pkgs ? import ../../.. { inherit system config; },
lib ? pkgs.lib
lib ? pkgs.lib,
}:
let
@ -11,240 +11,263 @@ let
makeTest = import ./../make-test-python.nix;
# Common user configuration
makeGaleraTest = {
mariadbPackage,
name ? mkTestName mariadbPackage,
galeraPackage ? pkgs.mariadb-galera
}: makeTest {
name = "${name}-galera-mariabackup";
meta = {
maintainers = with lib.maintainers; [ izorkin ] ++ lib.teams.helsinki-systems.members;
makeGaleraTest =
{
mariadbPackage,
name ? mkTestName mariadbPackage,
galeraPackage ? pkgs.mariadb-galera,
}:
makeTest {
name = "${name}-galera-mariabackup";
meta = {
maintainers = with lib.maintainers; [ izorkin ] ++ lib.teams.helsinki-systems.members;
};
# The test creates a Galera cluster with 3 nodes and is checking if mariabackup-based SST works. The cluster is tested by creating a DB and an empty table on one node,
# and checking the table's presence on the other node.
nodes =
let
mkGaleraNode =
{
id,
method,
}:
let
address = "192.168.1.${toString id}";
isFirstClusterNode = id == 1 || id == 4;
in
{
users = {
users.testuser = {
isSystemUser = true;
group = "testusers";
};
groups.testusers = { };
};
networking = {
interfaces.eth1 = {
ipv4.addresses = [
{
inherit address;
prefixLength = 24;
}
];
ipv6.addresses = lib.mkForce [ ];
};
extraHosts = lib.concatMapStringsSep "\n" (i: "192.168.1.${toString i} galera_0${toString i}") (
lib.range 1 6
);
firewall.allowedTCPPorts = [
3306
4444
4567
4568
];
firewall.allowedUDPPorts = [ 4567 ];
};
systemd.services.mysql = with pkgs; {
path = with pkgs; [
bash
gawk
gnutar
gzip
inetutils
iproute2
netcat
procps
pv
rsync
socat
stunnel
which
];
};
services.mysql = {
enable = true;
package = mariadbPackage;
ensureDatabases = lib.mkIf isFirstClusterNode [ "testdb" ];
ensureUsers = lib.mkIf isFirstClusterNode [
{
name = "testuser";
ensurePermissions = {
"testdb.*" = "ALL PRIVILEGES";
};
}
];
initialScript = lib.mkIf isFirstClusterNode (
pkgs.writeText "mariadb-init.sql" ''
GRANT ALL PRIVILEGES ON *.* TO 'check_repl'@'localhost' IDENTIFIED BY 'check_pass' WITH GRANT OPTION;
FLUSH PRIVILEGES;
''
);
settings = {
mysqld = {
bind_address = "0.0.0.0";
};
galera = {
wsrep_on = "ON";
wsrep_debug = "NONE";
wsrep_retry_autocommit = "3";
wsrep_provider = "${galeraPackage}/lib/galera/libgalera_smm.so";
wsrep_cluster_address =
"gcomm://"
+ lib.optionalString (id == 2 || id == 3) "galera_01,galera_02,galera_03"
+ lib.optionalString (id == 5 || id == 6) "galera_04,galera_05,galera_06";
wsrep_cluster_name = "galera";
wsrep_node_address = address;
wsrep_node_name = "galera_0${toString id}";
wsrep_sst_method = method;
wsrep_sst_auth = "check_repl:check_pass";
binlog_format = "ROW";
enforce_storage_engine = "InnoDB";
innodb_autoinc_lock_mode = "2";
};
};
};
};
in
{
galera_01 = mkGaleraNode {
id = 1;
method = "mariabackup";
};
galera_02 = mkGaleraNode {
id = 2;
method = "mariabackup";
};
galera_03 = mkGaleraNode {
id = 3;
method = "mariabackup";
};
galera_04 = mkGaleraNode {
id = 4;
method = "rsync";
};
galera_05 = mkGaleraNode {
id = 5;
method = "rsync";
};
galera_06 = mkGaleraNode {
id = 6;
method = "rsync";
};
};
testScript = ''
galera_01.start()
galera_01.wait_for_unit("mysql")
galera_01.wait_for_open_port(3306)
galera_01.succeed(
"sudo -u testuser mysql -u testuser -e 'use testdb; create table db1 (test_id INT, PRIMARY KEY (test_id)) ENGINE = InnoDB;'"
)
galera_01.succeed(
"sudo -u testuser mysql -u testuser -e 'use testdb; insert into db1 values (37);'"
)
galera_02.start()
galera_02.wait_for_unit("mysql")
galera_02.wait_for_open_port(3306)
galera_03.start()
galera_03.wait_for_unit("mysql")
galera_03.wait_for_open_port(3306)
galera_02.succeed(
"sudo -u testuser mysql -u testuser -e 'use testdb; select test_id from db1;' -N | grep 37"
)
galera_02.succeed(
"sudo -u testuser mysql -u testuser -e 'use testdb; create table db2 (test_id INT, PRIMARY KEY (test_id)) ENGINE = InnoDB;'"
)
galera_02.succeed("systemctl stop mysql")
galera_01.succeed(
"sudo -u testuser mysql -u testuser -e 'use testdb; insert into db2 values (38);'"
)
galera_03.succeed(
"sudo -u testuser mysql -u testuser -e 'use testdb; create table db3 (test_id INT, PRIMARY KEY (test_id)) ENGINE = InnoDB;'"
)
galera_01.succeed(
"sudo -u testuser mysql -u testuser -e 'use testdb; insert into db3 values (39);'"
)
galera_02.succeed("systemctl start mysql")
galera_02.wait_for_open_port(3306)
galera_02.succeed(
"sudo -u testuser mysql -u testuser -e 'show status' -N | grep 'wsrep_cluster_size.*3'"
)
galera_03.succeed(
"sudo -u testuser mysql -u testuser -e 'show status' -N | grep 'wsrep_local_state_comment.*Synced'"
)
galera_01.succeed(
"sudo -u testuser mysql -u testuser -e 'use testdb; select test_id from db3;' -N | grep 39"
)
galera_02.succeed(
"sudo -u testuser mysql -u testuser -e 'use testdb; select test_id from db2;' -N | grep 38"
)
galera_03.succeed(
"sudo -u testuser mysql -u testuser -e 'use testdb; select test_id from db1;' -N | grep 37"
)
galera_01.succeed("sudo -u testuser mysql -u testuser -e 'use testdb; drop table db3;'")
galera_02.succeed("sudo -u testuser mysql -u testuser -e 'use testdb; drop table db2;'")
galera_03.succeed("sudo -u testuser mysql -u testuser -e 'use testdb; drop table db1;'")
galera_01.crash()
galera_02.crash()
galera_03.crash()
galera_04.start()
galera_04.wait_for_unit("mysql")
galera_04.wait_for_open_port(3306)
galera_04.succeed(
"sudo -u testuser mysql -u testuser -e 'use testdb; create table db1 (test_id INT, PRIMARY KEY (test_id)) ENGINE = InnoDB;'"
)
galera_04.succeed(
"sudo -u testuser mysql -u testuser -e 'use testdb; insert into db1 values (41);'"
)
galera_05.start()
galera_05.wait_for_unit("mysql")
galera_05.wait_for_open_port(3306)
galera_06.start()
galera_06.wait_for_unit("mysql")
galera_06.wait_for_open_port(3306)
galera_05.succeed(
"sudo -u testuser mysql -u testuser -e 'use testdb; select test_id from db1;' -N | grep 41"
)
galera_05.succeed(
"sudo -u testuser mysql -u testuser -e 'use testdb; create table db2 (test_id INT, PRIMARY KEY (test_id)) ENGINE = InnoDB;'"
)
galera_05.succeed("systemctl stop mysql")
galera_04.succeed(
"sudo -u testuser mysql -u testuser -e 'use testdb; insert into db2 values (42);'"
)
galera_06.succeed(
"sudo -u testuser mysql -u testuser -e 'use testdb; create table db3 (test_id INT, PRIMARY KEY (test_id)) ENGINE = InnoDB;'"
)
galera_04.succeed(
"sudo -u testuser mysql -u testuser -e 'use testdb; insert into db3 values (43);'"
)
galera_05.succeed("systemctl start mysql")
galera_05.wait_for_open_port(3306)
galera_05.succeed(
"sudo -u testuser mysql -u testuser -e 'show status' -N | grep 'wsrep_cluster_size.*3'"
)
galera_06.succeed(
"sudo -u testuser mysql -u testuser -e 'show status' -N | grep 'wsrep_local_state_comment.*Synced'"
)
galera_04.succeed(
"sudo -u testuser mysql -u testuser -e 'use testdb; select test_id from db3;' -N | grep 43"
)
galera_05.succeed(
"sudo -u testuser mysql -u testuser -e 'use testdb; select test_id from db2;' -N | grep 42"
)
galera_06.succeed(
"sudo -u testuser mysql -u testuser -e 'use testdb; select test_id from db1;' -N | grep 41"
)
galera_04.succeed("sudo -u testuser mysql -u testuser -e 'use testdb; drop table db3;'")
galera_05.succeed("sudo -u testuser mysql -u testuser -e 'use testdb; drop table db2;'")
galera_06.succeed("sudo -u testuser mysql -u testuser -e 'use testdb; drop table db1;'")
'';
};
# The test creates a Galera cluster with 3 nodes and is checking if mariabackup-based SST works. The cluster is tested by creating a DB and an empty table on one node,
# and checking the table's presence on the other node.
nodes = let
mkGaleraNode = {
id,
method
}: let
address = "192.168.1.${toString id}";
isFirstClusterNode = id == 1 || id == 4;
in {
users = {
users.testuser = {
isSystemUser = true;
group = "testusers";
};
groups.testusers = { };
};
networking = {
interfaces.eth1 = {
ipv4.addresses = [
{ inherit address; prefixLength = 24; }
];
};
extraHosts = lib.concatMapStringsSep "\n" (i: "192.168.1.${toString i} galera_0${toString i}") (lib.range 1 6);
firewall.allowedTCPPorts = [ 3306 4444 4567 4568 ];
firewall.allowedUDPPorts = [ 4567 ];
};
systemd.services.mysql = with pkgs; {
path = with pkgs; [
bash
gawk
gnutar
gzip
inetutils
iproute2
netcat
procps
pv
rsync
socat
stunnel
which
];
};
services.mysql = {
enable = true;
package = mariadbPackage;
ensureDatabases = lib.mkIf isFirstClusterNode [ "testdb" ];
ensureUsers = lib.mkIf isFirstClusterNode [{
name = "testuser";
ensurePermissions = {
"testdb.*" = "ALL PRIVILEGES";
};
}];
initialScript = lib.mkIf isFirstClusterNode (pkgs.writeText "mariadb-init.sql" ''
GRANT ALL PRIVILEGES ON *.* TO 'check_repl'@'localhost' IDENTIFIED BY 'check_pass' WITH GRANT OPTION;
FLUSH PRIVILEGES;
'');
settings = {
mysqld = {
bind_address = "0.0.0.0";
};
galera = {
wsrep_on = "ON";
wsrep_debug = "NONE";
wsrep_retry_autocommit = "3";
wsrep_provider = "${galeraPackage}/lib/galera/libgalera_smm.so";
wsrep_cluster_address = "gcomm://"
+ lib.optionalString (id == 2 || id == 3) "galera_01,galera_02,galera_03"
+ lib.optionalString (id == 5 || id == 6) "galera_04,galera_05,galera_06";
wsrep_cluster_name = "galera";
wsrep_node_address = address;
wsrep_node_name = "galera_0${toString id}";
wsrep_sst_method = method;
wsrep_sst_auth = "check_repl:check_pass";
binlog_format = "ROW";
enforce_storage_engine = "InnoDB";
innodb_autoinc_lock_mode = "2";
};
};
};
};
in {
galera_01 = mkGaleraNode {
id = 1;
method = "mariabackup";
};
galera_02 = mkGaleraNode {
id = 2;
method = "mariabackup";
};
galera_03 = mkGaleraNode {
id = 3;
method = "mariabackup";
};
galera_04 = mkGaleraNode {
id = 4;
method = "rsync";
};
galera_05 = mkGaleraNode {
id = 5;
method = "rsync";
};
galera_06 = mkGaleraNode {
id = 6;
method = "rsync";
};
};
testScript = ''
galera_01.start()
galera_01.wait_for_unit("mysql")
galera_01.wait_for_open_port(3306)
galera_01.succeed(
"sudo -u testuser mysql -u testuser -e 'use testdb; create table db1 (test_id INT, PRIMARY KEY (test_id)) ENGINE = InnoDB;'"
)
galera_01.succeed(
"sudo -u testuser mysql -u testuser -e 'use testdb; insert into db1 values (37);'"
)
galera_02.start()
galera_02.wait_for_unit("mysql")
galera_02.wait_for_open_port(3306)
galera_03.start()
galera_03.wait_for_unit("mysql")
galera_03.wait_for_open_port(3306)
galera_02.succeed(
"sudo -u testuser mysql -u testuser -e 'use testdb; select test_id from db1;' -N | grep 37"
)
galera_02.succeed(
"sudo -u testuser mysql -u testuser -e 'use testdb; create table db2 (test_id INT, PRIMARY KEY (test_id)) ENGINE = InnoDB;'"
)
galera_02.succeed("systemctl stop mysql")
galera_01.succeed(
"sudo -u testuser mysql -u testuser -e 'use testdb; insert into db2 values (38);'"
)
galera_03.succeed(
"sudo -u testuser mysql -u testuser -e 'use testdb; create table db3 (test_id INT, PRIMARY KEY (test_id)) ENGINE = InnoDB;'"
)
galera_01.succeed(
"sudo -u testuser mysql -u testuser -e 'use testdb; insert into db3 values (39);'"
)
galera_02.succeed("systemctl start mysql")
galera_02.wait_for_open_port(3306)
galera_02.succeed(
"sudo -u testuser mysql -u testuser -e 'show status' -N | grep 'wsrep_cluster_size.*3'"
)
galera_03.succeed(
"sudo -u testuser mysql -u testuser -e 'show status' -N | grep 'wsrep_local_state_comment.*Synced'"
)
galera_01.succeed(
"sudo -u testuser mysql -u testuser -e 'use testdb; select test_id from db3;' -N | grep 39"
)
galera_02.succeed(
"sudo -u testuser mysql -u testuser -e 'use testdb; select test_id from db2;' -N | grep 38"
)
galera_03.succeed(
"sudo -u testuser mysql -u testuser -e 'use testdb; select test_id from db1;' -N | grep 37"
)
galera_01.succeed("sudo -u testuser mysql -u testuser -e 'use testdb; drop table db3;'")
galera_02.succeed("sudo -u testuser mysql -u testuser -e 'use testdb; drop table db2;'")
galera_03.succeed("sudo -u testuser mysql -u testuser -e 'use testdb; drop table db1;'")
galera_01.crash()
galera_02.crash()
galera_03.crash()
galera_04.start()
galera_04.wait_for_unit("mysql")
galera_04.wait_for_open_port(3306)
galera_04.succeed(
"sudo -u testuser mysql -u testuser -e 'use testdb; create table db1 (test_id INT, PRIMARY KEY (test_id)) ENGINE = InnoDB;'"
)
galera_04.succeed(
"sudo -u testuser mysql -u testuser -e 'use testdb; insert into db1 values (41);'"
)
galera_05.start()
galera_05.wait_for_unit("mysql")
galera_05.wait_for_open_port(3306)
galera_06.start()
galera_06.wait_for_unit("mysql")
galera_06.wait_for_open_port(3306)
galera_05.succeed(
"sudo -u testuser mysql -u testuser -e 'use testdb; select test_id from db1;' -N | grep 41"
)
galera_05.succeed(
"sudo -u testuser mysql -u testuser -e 'use testdb; create table db2 (test_id INT, PRIMARY KEY (test_id)) ENGINE = InnoDB;'"
)
galera_05.succeed("systemctl stop mysql")
galera_04.succeed(
"sudo -u testuser mysql -u testuser -e 'use testdb; insert into db2 values (42);'"
)
galera_06.succeed(
"sudo -u testuser mysql -u testuser -e 'use testdb; create table db3 (test_id INT, PRIMARY KEY (test_id)) ENGINE = InnoDB;'"
)
galera_04.succeed(
"sudo -u testuser mysql -u testuser -e 'use testdb; insert into db3 values (43);'"
)
galera_05.succeed("systemctl start mysql")
galera_05.wait_for_open_port(3306)
galera_05.succeed(
"sudo -u testuser mysql -u testuser -e 'show status' -N | grep 'wsrep_cluster_size.*3'"
)
galera_06.succeed(
"sudo -u testuser mysql -u testuser -e 'show status' -N | grep 'wsrep_local_state_comment.*Synced'"
)
galera_04.succeed(
"sudo -u testuser mysql -u testuser -e 'use testdb; select test_id from db3;' -N | grep 43"
)
galera_05.succeed(
"sudo -u testuser mysql -u testuser -e 'use testdb; select test_id from db2;' -N | grep 42"
)
galera_06.succeed(
"sudo -u testuser mysql -u testuser -e 'use testdb; select test_id from db1;' -N | grep 41"
)
galera_04.succeed("sudo -u testuser mysql -u testuser -e 'use testdb; drop table db3;'")
galera_05.succeed("sudo -u testuser mysql -u testuser -e 'use testdb; drop table db2;'")
galera_06.succeed("sudo -u testuser mysql -u testuser -e 'use testdb; drop table db1;'")
'';
};
in
lib.mapAttrs (_: mariadbPackage: makeGaleraTest { inherit mariadbPackage; }) mariadbPackages
lib.mapAttrs (_: mariadbPackage: makeGaleraTest { inherit mariadbPackage; }) mariadbPackages

View File

@ -1,8 +1,8 @@
{
system ? builtins.currentSystem,
config ? {},
config ? { },
pkgs ? import ../../.. { inherit system config; },
lib ? pkgs.lib
lib ? pkgs.lib,
}:
let
@ -10,44 +10,52 @@ let
makeTest = import ./../make-test-python.nix;
makeAutobackupTest = {
package,
name ? mkTestName package,
}: makeTest {
name = "${name}-automysqlbackup";
meta.maintainers = [ lib.maintainers.aanderse ];
makeAutobackupTest =
{
package,
name ? mkTestName package,
}:
makeTest {
name = "${name}-automysqlbackup";
meta.maintainers = [ lib.maintainers.aanderse ];
nodes.machine = {
services.mysql = {
inherit package;
enable = true;
initialDatabases = [ { name = "testdb"; schema = ./testdb.sql; } ];
nodes.machine = {
services.mysql = {
inherit package;
enable = true;
initialDatabases = [
{
name = "testdb";
schema = ./testdb.sql;
}
];
};
services.automysqlbackup.enable = true;
automysqlbackup.settings.mysql_dump_port = "";
};
services.automysqlbackup.enable = true;
};
testScript = ''
start_all()
testScript = ''
start_all()
# Need to have mysql started so that it can be populated with data.
machine.wait_for_unit("mysql.service")
# Need to have mysql started so that it can be populated with data.
machine.wait_for_unit("mysql.service")
with subtest("Wait for testdb to be fully populated (5 rows)."):
machine.wait_until_succeeds(
"mysql -u root -D testdb -N -B -e 'select count(id) from tests' | grep -q 5"
)
with subtest("Wait for testdb to be fully populated (5 rows)."):
machine.wait_until_succeeds(
"mysql -u root -D testdb -N -B -e 'select count(id) from tests' | grep -q 5"
)
with subtest("Do a backup and wait for it to start"):
machine.start_job("automysqlbackup.service")
machine.wait_for_job("automysqlbackup.service")
with subtest("Do a backup and wait for it to start"):
machine.start_job("automysqlbackup.service")
machine.wait_for_job("automysqlbackup.service")
with subtest("wait for backup file and check that data appears in backup"):
machine.wait_for_file("/var/backup/mysql/daily/testdb")
machine.succeed(
"${pkgs.gzip}/bin/zcat /var/backup/mysql/daily/testdb/daily_testdb_*.sql.gz | grep hello"
)
with subtest("wait for backup file and check that data appears in backup"):
machine.wait_for_file("/var/backup/mysql/daily/testdb")
machine.succeed(
"${pkgs.gzip}/bin/zcat /var/backup/mysql/daily/testdb/daily_testdb_*.sql.gz | grep hello"
)
'';
};
};
in
lib.mapAttrs (_: package: makeAutobackupTest { inherit package; }) mariadbPackages
lib.mapAttrs (_: package: makeAutobackupTest { inherit package; }) mariadbPackages

View File

@ -16,7 +16,7 @@ let
imports = [ ../modules/profiles/minimal.nix ];
system.stateVersion = config.system.nixos.version;
system.stateVersion = config.system.nixos.release;
};
containerSystem = (import ../lib/eval-config.nix {

View File

@ -13,13 +13,13 @@
stdenv.mkDerivation (finalAttrs: {
pname = "noson";
version = "5.6.7";
version = "5.6.8";
src = fetchFromGitHub {
owner = "janbar";
repo = "noson-app";
rev = finalAttrs.version;
hash = "sha256-lroQYO+Ab7uPQmsrUFK6uWdCoGQp1klyfLw6eAxdzjg=";
hash = "sha256-hCVGi+++6CcTRMXeRKH8xRncm/Gl83GgU3aAIPI/yGU=";
};
nativeBuildInputs = [

View File

@ -29,6 +29,8 @@ lib.packagesFromDirectoryRecursive {
tree-sitter-langs = callPackage ./manual-packages/tree-sitter-langs { final = self; };
zstd = callPackage ./manual-packages/zstd { inherit (pkgs) zstd; };
# From old emacsPackages (pre emacsPackagesNg)
cedille = callPackage ./manual-packages/cedille { inherit (pkgs) cedille; };

View File

@ -0,0 +1,37 @@
{
lib,
melpaBuild,
stdenv,
fetchFromGitHub,
zstd,
}:
let
libExt = stdenv.hostPlatform.extensions.sharedLibrary;
in
melpaBuild {
pname = "zstd";
version = "0-unstable-2020-06-03";
src = fetchFromGitHub {
owner = "syohex";
repo = "emacs-zstd";
rev = "072b264e2cbd5c05be06a1208ebccc2dab44be39";
hash = "sha256-p8bxefytTOSV6vIG8PAPBXfVKA2rfmWdRtVwjE42mAw=";
};
buildInputs = [ zstd ];
preBuild = ''
$CC -std=gnu99 -shared -o zstd-core${libExt} zstd-core.c -lzstd
'';
files = ''(:defaults "zstd-core${libExt}")'';
meta = {
homepage = "https://github.com/syohex/emacs-zstd";
description = "Zstd binding for Emacs Lisp";
license = lib.licenses.gpl3Plus;
maintainers = with lib.maintainers; [ nagy ];
};
}

View File

@ -364,6 +364,13 @@ let
forge = buildWithGit super.forge;
gnuplot = super.gnuplot.overrideAttrs (attrs: {
postPatch = attrs.postPatch or "" + ''
substituteInPlace gnuplot.el \
--replace-fail 'gnuplot-program "gnuplot"' 'gnuplot-program "${lib.getExe pkgs.gnuplot}"'
'';
});
gnuplot-mode = super.gnuplot-mode.overrideAttrs (attrs: {
postPatch = attrs.postPatch or "" + ''
substituteInPlace gnuplot-mode.el \

View File

@ -1,4 +1,13 @@
# run tests by building `neovim.tests`
/*
run tests with `nix-build -A neovim.tests`
The attrset exposes both the wrapped neovim and the associated test for easier debugging
Here are some common neovim flags used in the tests:
-e runs neovim in `:h Ex-mode` which returns an exit code != 0 when hitting an error
-i NONE gets rid of shada warnings
*/
{ vimUtils, writeText, neovim, vimPlugins
, neovimUtils, wrapNeovimUnstable
, neovim-unwrapped
@ -43,7 +52,7 @@ let
'';
};
nvim-with-luasnip = wrapNeovim2 "-with-lua-packages" (makeNeovimConfig {
nvim-with-luasnip = wrapNeovim2 "-with-luasnip" (makeNeovimConfig {
plugins = [ {
plugin = vimPlugins.luasnip;
@ -65,15 +74,6 @@ let
sha256 = "1ykcvyx82nhdq167kbnpgwkgjib8ii7c92y3427v986n2s5lsskc";
};
# this plugin checks that it's ftplugin/vim.tex is loaded before $VIMRUNTIME/ftplugin/vim.tex
# $VIMRUNTIME/ftplugin/vim.tex sources $VIMRUNTIME/ftplugin/initex.vim which sets b:did_ftplugin
# we save b:did_ftplugin's value in a `plugin_was_loaded_too_late` file
texFtplugin = (pkgs.runCommandLocal "tex-ftplugin" {} ''
mkdir -p $out/ftplugin
echo 'call system("echo ". exists("b:did_ftplugin") . " > plugin_was_loaded_too_late")' >> $out/ftplugin/tex.vim
echo ':q!' >> $out/ftplugin/tex.vim
'') // { pname = "test-ftplugin"; };
# neovim-drv must be a wrapped neovim
runTest = neovim-drv: buildCommand:
runCommandLocal "test-${neovim-drv.name}" ({
@ -81,18 +81,21 @@ let
meta.platforms = neovim-drv.meta.platforms;
}) (''
source ${nmt}/bash-lib/assertions.sh
vimrc="${writeText "init.vim" neovim-drv.initRc}"
luarc="${writeText "init.lua" neovim-drv.luaRcContent}"
vimrc="${writeText "test-${neovim-drv.name}-init.vim" neovim-drv.initRc}"
luarc="${writeText "test-${neovim-drv.name}-init.lua" neovim-drv.luaRcContent}"
luarcGeneric="$out/patched.lua"
vimrcGeneric="$out/patched.vim"
mkdir $out
export HOME=$TMPDIR
${pkgs.perl}/bin/perl -pe "s|\Q$NIX_STORE\E/[a-z0-9]{32}-|$NIX_STORE/eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee-|g" < "$vimrc" > "$vimrcGeneric"
${pkgs.perl}/bin/perl -pe "s|\Q$NIX_STORE\E/[a-z0-9]{32}-|$NIX_STORE/eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee-|g" < "$luarc" > "$luarcGeneric"
'' + buildCommand);
in
pkgs.recurseIntoAttrs (
rec {
pkgs.recurseIntoAttrs (rec {
inherit nmt;
vim_empty_config = vimUtils.vimrcFile { beforePlugins = ""; customRC = ""; };
### neovim tests
@ -138,11 +141,21 @@ rec {
};
run_nvim_with_plug = runTest nvim_with_plug ''
export HOME=$TMPDIR
${nvim_with_plug}/bin/nvim -i NONE -c 'color base16-tomorrow-night' +quit! -e
${nvim_with_plug}/bin/nvim -V3log.txt -i NONE -c 'color base16-tomorrow-night' +quit! -e
'';
nvim_with_ftplugin = neovim.override {
nvim_with_ftplugin = let
# this plugin checks that it's ftplugin/vim.tex is loaded before $VIMRUNTIME/ftplugin/vim.tex
# $VIMRUNTIME/ftplugin/vim.tex sources $VIMRUNTIME/ftplugin/initex.vim which sets b:did_ftplugin
# we save b:did_ftplugin's value in a `plugin_was_loaded_too_late` file
texFtplugin = (pkgs.runCommandLocal "tex-ftplugin" {} ''
mkdir -p $out/ftplugin
echo 'call system("echo ". exists("b:did_ftplugin") . " > plugin_was_loaded_too_late")' >> $out/ftplugin/tex.vim
echo ':q!' >> $out/ftplugin/tex.vim
'') // { pname = "test-ftplugin"; };
in
neovim.override {
extraName = "-with-ftplugin";
configure.packages.plugins = {
start = [
@ -154,13 +167,14 @@ rec {
# regression test that ftplugin files from plugins are loaded before the ftplugin
# files from $VIMRUNTIME
run_nvim_with_ftplugin = runTest nvim_with_ftplugin ''
export HOME=$TMPDIR
echo '\documentclass{article}' > main.tex
${nvim_with_ftplugin}/bin/nvim main.tex -c "set ft?" -c quit
${nvim_with_ftplugin}/bin/nvim -i NONE -V3log.txt main.tex -c "set ft?" -c quit
ls -l $TMPDIR
# if the file exists, then our plugin has been loaded instead of neovim's
[ ! -f plugin_was_loaded_too_late ]
# check the saved value b:did_ftplugin then our plugin has been loaded instead of neovim's
result="$(cat plugin_was_loaded_too_late)"
echo $result
[ "$result" = 0 ]
'';
@ -191,8 +205,8 @@ rec {
];
};
};
checkHelpLuaPackages = runTest nvim_with_gitsigns_plugin ''
export HOME=$TMPDIR
${nvim_with_gitsigns_plugin}/bin/nvim -i NONE -c 'help gitsigns' +quitall! -e
'';
@ -220,8 +234,8 @@ rec {
checkAliases = runTest nvim_with_aliases ''
folder=${nvim_with_aliases}/bin
assertFileExists "$folder/vi"
assertFileExists "$folder/vim"
assertFileIsExecutable "$folder/vi"
assertFileIsExecutable "$folder/vim"
'';
# having no RC generated should autodisable init.vim wrapping
@ -247,8 +261,7 @@ rec {
});
nvim_with_lua_packages = runTest nvimWithLuaPackages ''
export HOME=$TMPDIR
${nvimWithLuaPackages}/bin/nvim -i NONE --noplugin -es
${nvimWithLuaPackages}/bin/nvim -V3log.txt -i NONE --noplugin +quitall! -e
'';
# nixpkgs should install optional packages in the opt folder
@ -286,7 +299,6 @@ rec {
};
run_nvim_with_opt_plugin = runTest nvim_with_opt_plugin ''
export HOME=$TMPDIR
${nvim_with_opt_plugin}/bin/nvim -i NONE +quit! -e
'';
@ -296,9 +308,8 @@ rec {
# for instance luasnip has a dependency on jsregexp
can_require_transitive_deps =
runTest nvim-with-luasnip ''
export HOME=$TMPDIR
cat ${nvim-with-luasnip}/bin/nvim
${nvim-with-luasnip}/bin/nvim -i NONE --cmd "lua require'jsregexp'" -e
${nvim-with-luasnip}/bin/nvim -i NONE --cmd "lua require'jsregexp'" -e +quitall!
'';
})

View File

@ -21,7 +21,7 @@
let
pname = "texmacs";
version = "2.1.2";
version = "2.1.4";
common = callPackage ./common.nix {
inherit extraFonts chineseFonts japaneseFonts koreanFonts;
tex = texliveSmall;
@ -32,7 +32,7 @@ stdenv.mkDerivation {
src = fetchurl {
url = "https://www.texmacs.org/Download/ftp/tmftp/source/TeXmacs-${version}-src.tar.gz";
hash = "sha256-Ds9gxOwMYSttEWrawgxLHGxHyMBvt8WmyPIwBP2g/CM=";
hash = "sha256-h6aSLuDdrAtVzOnNVPqMEWX9WLDHtkCjPy9JXWnBgYY=";
};
postPatch = common.postPatch + ''

View File

@ -313,8 +313,8 @@ let
mktplcRef = {
name = "vscode-apollo";
publisher = "apollographql";
version = "2.2.0";
hash = "sha256-9CKm9SLotPlwkAELb7Us/blK959HVt6eXiDp0fgVLmA=";
version = "2.3.2";
hash = "sha256-5PAmyy4RX2hLgviWxgnxGZjgeFWZaJKNiYGNdCTL0IE=";
};
meta = {
changelog = "https://marketplace.visualstudio.com/items/apollographql.vscode-apollo/changelog";
@ -1234,8 +1234,8 @@ let
mktplcRef = {
name = "vscode-markdownlint";
publisher = "DavidAnson";
version = "0.55.0";
hash = "sha256-slfHfRPcuRu+649n6kAr2bv9H6J+DvYVN/ysq1QpPQM=";
version = "0.56.0";
hash = "sha256-ITSpPe032XcGIlfRQtJSR0iNTizs85qwfRaTtKwNn50=";
};
meta = {
changelog = "https://marketplace.visualstudio.com/items/DavidAnson.vscode-markdownlint/changelog";
@ -4073,8 +4073,8 @@ let
mktplcRef = {
name = "wikitext";
publisher = "RoweWilsonFrederiskHolme";
version = "3.8.1";
hash = "sha256-piwS3SPjx10nsjN5axC+EN0MEDf0r2lVFllqQzciOfc=";
version = "3.8.2";
hash = "sha256-rWifSoJSN37xPIaCQgPyXRz9tCX2Akahl/3CuqzXq94=";
};
meta = {
description = "Extension that helps users view and write MediaWiki's Wikitext files";
@ -4867,8 +4867,8 @@ let
mktplcRef = {
name = "uiua-vscode";
publisher = "uiua-lang";
version = "0.0.53";
hash = "sha256-5CHAX1jGyJ2VVEBTh5G1JM8+L9paryBa2zJoTkZ+G7Q=";
version = "0.0.54";
hash = "sha256-oY8z3q4LOLhiTttm9Rtcy/CnhaSHkjyCBjwqYnuNBQA=";
};
meta = {
description = "VSCode language extension for Uiua";

View File

@ -69,9 +69,9 @@ in rec {
unstable = fetchurl rec {
# NOTE: Don't forget to change the hash for staging as well.
version = "9.17";
version = "9.18";
url = "https://dl.winehq.org/wine/source/9.x/wine-${version}.tar.xz";
hash = "sha256-Ptt+tvMbtcP3N43VYj2p2V99TW18g3iv2JyOOjCqCAw=";
hash = "sha256-ZSb1IRwIVFO8tkKUbrLOjR1CqKSmgWi/Kg1z8yYS3Rw=";
inherit (stable) patches;
## see http://wiki.winehq.org/Gecko
@ -117,7 +117,7 @@ in rec {
staging = fetchFromGitLab rec {
# https://gitlab.winehq.org/wine/wine-staging
inherit (unstable) version;
hash = "sha256-ez7P9R5Q7t+FpaU5bVer4n2bt+evgXLJb83gP+zxIAw=";
hash = "sha256-m3tuwb6OFcgZ/NATixIH1j3YgrzsREJNpnVbevN/9FY=";
domain = "gitlab.winehq.org";
owner = "wine";
repo = "wine-staging";

View File

@ -83,44 +83,10 @@ python3Packages.buildPythonPackage rec {
];
nativeCheckInputs = with python3Packages; [
nose
mock
httmock
];
# most tests are failing, presumably because we are not using test.py
checkPhase = ''
runHook preCheck
nosetests $src/hydrus/test \
-e TestClientAPI \
-e TestClientConstants \
-e TestClientDaemons \
-e TestClientData \
-e TestClientDB \
-e TestClientDBDuplicates \
-e TestClientDBTags \
-e TestClientImageHandling \
-e TestClientImportOptions \
-e TestClientListBoxes \
-e TestClientMigration \
-e TestClientNetworking \
-e TestClientTags \
-e TestClientThreading \
-e TestDialogs \
-e TestFunctions \
-e TestHydrusNetwork \
-e TestHydrusNATPunch \
-e TestHydrusSerialisable \
-e TestHydrusServer \
-e TestHydrusSessions \
-e TestServer \
-e TestClientMetadataMigration \
-e TestClientFileStorage \
runHook postCheck
'';
outputs = [ "out" "doc" ];
installPhase = ''
@ -140,6 +106,7 @@ python3Packages.buildPythonPackage rec {
mkdir -p $out/bin
install -m0755 hydrus_server.py $out/bin/hydrus-server
install -m0755 hydrus_client.py $out/bin/hydrus-client
install -m0755 hydrus_test.py $out/bin/hydrus-test
# desktop item
mkdir -p "$out/share/icons/hicolor/scalable/apps"
@ -154,6 +121,16 @@ python3Packages.buildPythonPackage rec {
runHook postInstall
'';
checkPhase = ''
runHook preCheck
export QT_QPA_PLATFORM=offscreen
export HOME=$(mktemp -d)
$out/bin/hydrus-test
runHook postCheck
'';
dontWrapQtApps = true;
preFixup = ''
makeWrapperArgs+=("''${qtWrapperArgs[@]}")

View File

@ -9,7 +9,6 @@
, qtpositioning ? null # qt6 only
, qtserialport
, qtsvg
, qt5compat ? null # qt6 only
, wrapQtAppsHook
}:
@ -18,13 +17,13 @@ let
in
stdenv.mkDerivation (finalAttrs: {
pname = "gpxsee";
version = "13.24";
version = "13.26";
src = fetchFromGitHub {
owner = "tumic0";
repo = "GPXSee";
rev = finalAttrs.version;
hash = "sha256-qdfNW29SvY0dQy4rS4IDVuYL3h6BByluCecsNSgHbn8=";
hash = "sha256-EIeUcSHJXpd1/90fAPrP9F/DVyZhkcZk8MJd9VO1D70=";
};
buildInputs = [
@ -33,7 +32,6 @@ stdenv.mkDerivation (finalAttrs: {
qtbase
qtpositioning
qtsvg
qt5compat
] else [
qtlocation
]);

View File

@ -1,17 +1,17 @@
{ lib, mkDerivation, fetchFromGitHub
, python3, ruby, qtbase, qtmultimedia, qttools, qtxmlpatterns
, which, perl
, which, perl, libgit2
}:
mkDerivation rec {
pname = "klayout";
version = "0.28.12";
version = "0.29.6";
src = fetchFromGitHub {
owner = "KLayout";
repo = "klayout";
rev = "v${version}";
hash = "sha256-QvEoXKJ9sH5WIarYPsYEWwoFwA/pZa2etegA+AD8rPo=";
hash = "sha256-gbbes8CPh+Z9wCeQaAaObZjQvBTMe06z8oR12i6e12M=";
};
postPatch = ''
@ -31,6 +31,7 @@ mkDerivation rec {
qtmultimedia
qttools
qtxmlpatterns
libgit2
];
buildPhase = ''

View File

@ -121,10 +121,10 @@ python3.pkgs.buildPythonApplication rec {
hunspellDicts.en-us
hunspellDicts.es-es
hunspellDicts.it-it
python3.pkgs.nose
];
# Tests have never been enabled, and upstream uses nose as a test
# runner (though not as a library).
doCheck = false;
preBuild = ''

View File

@ -1,4 +1,4 @@
{ stdenv, lib, fetchurl, fetchpatch
{ stdenv, lib, fetchpatch
, recompressTarball
, buildPackages
, buildPlatform
@ -65,10 +65,6 @@ let
python3WithPackages = python3.pythonOnBuildForHost.withPackages(ps: with ps; [
ply jinja2 setuptools
]);
clangFormatPython3 = fetchurl {
url = "https://chromium.googlesource.com/chromium/tools/build/+/e77882e0dde52c2ccf33c5570929b75b4a2a2522/recipes/recipe_modules/chromium/resources/clang-format?format=TEXT";
hash = "sha256-1BRxXP+0QgejAWdFHJzGrLMhk/MsRDoVdK/GVoyFg0U=";
};
# The additional attributes for creating derivations based on the chromium
# source tree.
@ -379,9 +375,6 @@ let
# Allow to put extensions into the system-path.
sed -i -e 's,/usr,/run/current-system/sw,' chrome/common/chrome_paths.cc
# We need the fix for https://bugs.chromium.org/p/chromium/issues/detail?id=1254408:
base64 --decode ${clangFormatPython3} > buildtools/linux64/clang-format
# Add final newlines to scripts that do not end with one.
# This is a temporary workaround until https://github.com/NixOS/nixpkgs/pull/255463 (or similar) has been merged,
# as patchShebangs hard-crashes when it encounters files that contain only a shebang and do not end with a final

View File

@ -6,13 +6,13 @@
buildGoModule rec {
pname = "arkade";
version = "0.11.24";
version = "0.11.26";
src = fetchFromGitHub {
owner = "alexellis";
repo = "arkade";
rev = version;
hash = "sha256-9g3SGfJLzn+WIkBGcCwgOaJSuSUSFSU8d/9NZlN0h8E=";
hash = "sha256-p3rLQQwuJ/5AUzsQfGA9JSoifYaG4vAE2NaNfTf6/uk=";
};
CGO_ENABLED = 0;

View File

@ -2,16 +2,16 @@
buildGoModule rec {
pname = "helm-diff";
version = "3.9.10";
version = "3.9.11";
src = fetchFromGitHub {
owner = "databus23";
repo = pname;
rev = "v${version}";
hash = "sha256-umb8f0qCqFVN8K5T441Koyl2pq7VOskDxKCXlqB5UoA=";
hash = "sha256-DwZZi7A6/UsKiFJSgMdo/zqlsRFz9RkFy8+s8RTumXg=";
};
vendorHash = "sha256-pWynrkL/d6TPojeyCJ6RjLNel4qA21UP+jzWnC8DnB8=";
vendorHash = "sha256-3TtUpwg8HLHp/fILH5/qBnMKFmBlALOGSSYoEg3s1h0=";
ldflags = [ "-s" "-w" "-X github.com/databus23/helm-diff/v3/cmd.Version=${version}" ];

View File

@ -1,14 +1,14 @@
{
rke2Version = "1.31.0-rc1+rke2r1";
rke2RepoSha256 = "0mfl01rv6xn2kg2739215j9hsyym16mgp92bqsz0hkpfm61dd96j";
rke2Commit = "3acd10e9389fa930860896ca6ed925a15dff61a3";
rke2VendorHash = "sha256-/ALzC2fYYI+DbF+2TSNBiMy57T8wfXGPpdyKtbqdrtE=";
k8sVersion = "v1.31.0";
k8sImageTag = "v1.31.0-rke2r1-build20240815";
rke2Version = "1.31.1-rc3+rke2r1";
rke2RepoSha256 = "1j09f95d99xk1jbsy08cl1rw5y1ljnrmq3nv1rixlc4hgqwz56pm";
rke2Commit = "909d20d6a28cd7656b7177190f06f69f57927613";
rke2VendorHash = "sha256-7nWbWi4oJTOWZ5iZr9ptECDJJakPg4qZ7hW+tU7LBsI=";
k8sVersion = "v1.31.1";
k8sImageTag = "v1.31.1-rke2r1-build20240912";
etcdVersion = "v3.5.13-k3s1";
pauseVersion = "3.6";
ccmVersion = "v1.29.3-build20240515";
dockerizedVersion = "v1.31.0-dev.";
golangVersion = "go1.22.5";
ccmVersion = "v1.31.0-build20240910";
dockerizedVersion = "v1.31.1-dev.";
golangVersion = "go1.22.6";
eol = "2025-10-28";
}

View File

@ -60,8 +60,8 @@ in rec {
};
thunderbird-128 = common {
version = "128.1.1esr";
sha512 = "91e17d63383b05a7565838c61eda3b642f1bb3b4c43ae78a8810dd6d9ba2e5f10939be17598dd5e87bdf28d6f70ff9e154e54218aaf161bd89a5a6d30b504427";
version = "128.2.3esr";
sha512 = "f852d1fe6b8d41aa2f0fbc0fceae93cccf1e5f88d9c0447f504de775283289b82b246b79a01e8eb26e9c87197fb33138fb18c75ecc3f5f1bcfefa3920a7c7512";
updateScript = callPackage ./update.nix {
attrPath = "thunderbirdPackages.thunderbird-128";

View File

@ -33,14 +33,14 @@ let
}.${system} or throwSystem;
hash = {
x86_64-linux = "sha256-25FFXrUE1NvIXlOFR9KZyjD3w8xuvPlpqz/KkUTt1TQ=";
x86_64-linux = "sha256-l7uu101UcY5AGMh6BzMvXvPMw1tlaX6grus9eL9Kxf8=";
}.${system} or throwSystem;
displayname = "XPipe";
in stdenvNoCC.mkDerivation rec {
pname = "xpipe";
version = "11.2";
version = "11.3";
src = fetchzip {
url = "https://github.com/xpipe-io/xpipe/releases/download/${version}/xpipe-portable-linux-${arch}.tar.gz";

View File

@ -5,7 +5,7 @@
# - The exact version can be specified through the `version` argument to
# the derivation; it defaults to the latest stable version.
{ lib, stdenv, fetchzip, writeText, pkg-config, gnumake42
{ lib, stdenv, fetchzip, fetchurl, writeText, pkg-config, gnumake42
, customOCamlPackages ? null
, ocamlPackages_4_05, ocamlPackages_4_09, ocamlPackages_4_10, ocamlPackages_4_12
, ocamlPackages_4_14
@ -62,7 +62,7 @@ let
};
releaseRev = v: "V${v}";
fetched = import ../../../../build-support/coq/meta-fetch/default.nix
{ inherit lib stdenv fetchzip; }
{ inherit lib stdenv fetchzip fetchurl; }
{ inherit release releaseRev; location = { owner = "coq"; repo = "coq";}; }
args.version;
version = fetched.version;

View File

@ -80,7 +80,7 @@ stdenv.mkDerivation rec {
# requirements.txt
let pp = python.pkgs; in ([
pp.numpy pp.scipy pp.scikit-image pp.h5py
pp.matplotlib pp.ipython pp.networkx pp.nose
pp.matplotlib pp.ipython pp.networkx
pp.pandas pp.python-dateutil pp.protobuf pp.gflags
pp.pyyaml pp.pillow pp.six
] ++ lib.optional leveldbSupport pp.leveldb)

View File

@ -53,8 +53,8 @@ let versions = callPackage ./versions.nix { };
matchesDoc = v:
builtins.match (if webdoc
then ".*[0-9]_LINUX.sh"
else ".*[0-9]_BNDL_LINUX.sh") v.src.name != null;
then ".*[0-9]_LIN(UX)?.sh"
else ".*_B[Nn][Dd][Ll].sh") v.src.name != null;
in
@ -71,7 +71,7 @@ callPackage ./generic.nix {
homepage = "http://www.wolfram.com/mathematica/";
license = licenses.unfree;
sourceProvenance = with sourceTypes; [ binaryNativeCode ];
maintainers = with maintainers; [ herberteuler rafaelrc ];
maintainers = with maintainers; [ herberteuler rafaelrc chewblacka ];
platforms = [ "x86_64-linux" ];
};
}

View File

@ -157,9 +157,15 @@ in stdenv.mkDerivation {
mkdir -p "$out/lib/udev/rules.d"
# Patch MathInstaller's shebangs and udev rules dir
patchShebangs MathInstaller
substituteInPlace MathInstaller \
# Set name of installer file
if [ -f "MathInstaller" ]; then
INSTALLER="MathInstaller"
else
INSTALLER="WolframInstaller"
fi
# Patch Installer's shebangs and udev rules dir
patchShebangs $INSTALLER
substituteInPlace $INSTALLER \
--replace /etc/udev/rules.d $out/lib/udev/rules.d
# Remove PATH restriction, root and avahi daemon checks, and hostname call
@ -169,13 +175,13 @@ in stdenv.mkDerivation {
s/^\s*checkAvahiDaemon$/:/
s/^\s*installBundledInstall$/:/
s/`hostname`/""/
' MathInstaller
' $INSTALLER
# NOTE: some files placed under HOME may be useful
XDG_DATA_HOME="$out/share" HOME="$TMPDIR/home" vernierLink=y \
./MathInstaller -execdir="$out/bin" -targetdir="$out/libexec/Mathematica" -auto -verbose -createdir=y
./$INSTALLER -execdir="$out/bin" -targetdir="$out/libexec/Mathematica" -auto -verbose -createdir=y
# Check if MathInstaller produced any errors
# Check if Installer produced any errors
errLog="$out/libexec/Mathematica/InstallErrors"
if [ -f "$errLog" ]; then
echo "Installation errors:"

View File

@ -7,6 +7,20 @@
*/
let versions = [
{
version = "14.1.0";
lang = "en";
language = "English";
sha256 = "sha256-PCpjwqA6NC+iwvYxddYBlmF5+vl76r+MoIYAL91WFns=";
installer = "Wolfram_14.1.0_LIN.sh";
}
{
version = "14.1.0";
lang = "en";
language = "English";
sha256 = "sha256-pnu60Pv3xo3+MAkDLiU3yTPVbbQ00diV45vSVL8B310=";
installer = "Wolfram_14.1.0_LIN_Bndl.sh";
}
{
version = "14.0.0";
lang = "en";

View File

@ -2,13 +2,13 @@
buildGoModule rec {
pname = "git-town";
version = "16.1.1";
version = "16.2.1";
src = fetchFromGitHub {
owner = "git-town";
repo = "git-town";
rev = "v${version}";
hash = "sha256-H4FtFSI/c7UxRLZB8kz873DIN6kLUwmRZtz3+4zaR7w=";
hash = "sha256-/60n/JvT7XRfEVic6Jmi05WpsAy4mRsE/GAnetTMC1I=";
};
vendorHash = null;

View File

@ -14,12 +14,12 @@
}:
stdenv.mkDerivation rec {
pname = "vdr-softhddevice";
version = "2.3.7";
version = "2.3.8";
src = fetchFromGitHub {
owner = "ua0lnj";
repo = "vdr-plugin-softhddevice";
sha256 = "sha256-gn1Z3pw8f0Tpo8Ot0hP9+p/KbK/EGOInE34BCH3aVp0=";
sha256 = "sha256-/eNPhkrLpxXeX/5EitMJUgZCPy1Ked3oKuMdD6OuEYc=";
rev = "v${version}";
};

View File

@ -2,13 +2,13 @@
buildGoModule rec {
pname = "docker-compose";
version = "2.29.3";
version = "2.29.7";
src = fetchFromGitHub {
owner = "docker";
repo = "compose";
rev = "v${version}";
hash = "sha256-t9NyBW9wUwwMB2VAqRUn8KosQFuqWFwuG4Z6KmHXmXc=";
hash = "sha256-6ksZAGVAFnLwPnCXlCtp4cWfxzJRp/bfVkpvp3Z6fiQ=";
};
postPatch = ''
@ -16,7 +16,7 @@ buildGoModule rec {
rm -rf e2e/
'';
vendorHash = "sha256-hhqNKueE5mJzGbhHqu/Cg9uQJ4v6I8q7+h4MB0MsJww=";
vendorHash = "sha256-B2ywdZjp7h7eFYNJ4wXmAdbOxc8ftGqHnLmDvzQASJE=";
ldflags = [ "-X github.com/docker/compose/v2/internal.Version=${version}" "-s" "-w" ];

View File

@ -205,6 +205,8 @@ rec {
at-spi2-core
pciutils # for FreeCAD
pipewire # immersed-vr wayland support
libsecret # For bitwarden
];
};
}

View File

@ -1,4 +1,4 @@
{ lib, stdenv, coqPackages, coq, which, fetchzip }@args:
{ lib, stdenv, coqPackages, coq, which, fetchzip, fetchurl }@args:
let
lib = import ./extra-lib.nix {
@ -71,7 +71,7 @@ let
"extraInstallFlags" "setCOQBIN" "mlPlugin"
"dropAttrs" "dropDerivationAttrs" "keepAttrs" ] ++ dropAttrs) keepAttrs;
fetch = import ../coq/meta-fetch/default.nix
{ inherit lib stdenv fetchzip; } ({
{ inherit lib stdenv fetchzip fetchurl; } ({
inherit release releaseRev;
location = { inherit domain owner repo; };
} // optionalAttrs (args?fetcher) {inherit fetcher;});

View File

@ -1,4 +1,4 @@
{ lib, stdenv, fetchzip }@args:
{ lib, stdenv, fetchurl, fetchzip }@args:
let
lib = import ../extra-lib.nix {
@ -28,11 +28,16 @@ let
inherit (lib.strings) match split;
default-fetcher = {domain ? "github.com", owner ? "", repo, rev, name ? "source", sha256 ? null, ...}@args:
let ext = if args?sha256 then "zip" else "tar.gz";
fmt = if args?sha256 then "zip" else "tarball";
default-fetcher = {domain ? "github.com", owner ? "", repo, rev, name ? "source", sha256 ? null, artifact ? null, ...}@args:
let kind = switch-if [
{ cond = artifact != null; out = {ext = "tbz"; fmt = "tbz"; fetchfun = fetchurl; }; }
{ cond = args?sha256 ; out = {ext = "zip"; fmt = "zip"; fetchfun = fetchzip; }; }
] {ext = "tar.gz"; fmt = "tarball"; fetchfun = builtins.fetchTarball; }; in
with kind; let
pr = match "^#(.*)$" rev;
url = switch-if [
{ cond = pr == null && (match "^github.*" domain) != null && artifact != null;
out = "https://github.com/${owner}/${repo}/releases/download/${rev}/${artifact}"; }
{ cond = pr == null && (match "^github.*" domain) != null;
out = "https://${domain}/${owner}/${repo}/archive/${rev}.${ext}"; }
{ cond = pr != null && (match "^github.*" domain) != null;
@ -42,7 +47,7 @@ let
{ cond = (match "(www.)?mpi-sws.org" domain) != null;
out = "https://www.mpi-sws.org/~${owner}/${repo}/download/${repo}-${rev}.${ext}";}
] (throw "meta-fetch: no fetcher found for domain ${domain} on ${rev}");
fetch = x: if args?sha256 then fetchzip (x // { inherit sha256; }) else builtins.fetchTarball x;
fetch = x: fetchfun (if args?sha256 then (x // { inherit sha256; }) else x);
in fetch { inherit url ; };
in
{
@ -50,8 +55,10 @@ in
location,
release ? {},
releaseRev ? (v: v),
releaseArtifact ? (v: null)
}:
let isVersion = x: isString x && match "^/.*" x == null && release?${x};
let
isVersion = x: isString x && match "^/.*" x == null && release?${x};
shortVersion = x: if (isString x && match "^/.*" x == null)
then findFirst (v: versions.majorMinor v == x) null
(sort versionAtLeast (attrNames release))
@ -71,7 +78,7 @@ switch arg [
in
{
version = rv.version or v;
src = rv.src or fetcher (location // { rev = releaseRev v; } // rv);
src = rv.src or fetcher (location // { rev = releaseRev v; artifact = releaseArtifact v; } // rv);
};
}
{ case = isString;

View File

@ -13,7 +13,7 @@ def eprint(text: str):
if not os.path.exists("dub.selections.json"):
eprint("The file `dub.selections.json` does not exist in the current working directory")
eprint("run `dub upgrade --annotate` to generate it")
eprint("run `dub upgrade` to generate it")
sys.exit(1)
with open("dub.selections.json") as f:

View File

@ -164,7 +164,8 @@ stdenvNoCC.mkDerivation ((
# New-style output content requirements.
inherit (hash_) outputHashAlgo outputHash;
SSL_CERT_FILE = if (hash_.outputHash == "" || hash_.outputHash == lib.fakeSha256 || hash_.outputHash == lib.fakeSha512 || hash_.outputHash == lib.fakeHash)
# Disable TLS verification only when we know the hash and no credentials are needed to access the ressource
SSL_CERT_FILE = if (hash_.outputHash == "" || hash_.outputHash == lib.fakeSha256 || hash_.outputHash == lib.fakeSha512 || hash_.outputHash == lib.fakeHash || netrcPhase != null)
then "${cacert}/etc/ssl/certs/ca-bundle.crt"
else "/no-cert-file.crt";

View File

@ -94,12 +94,6 @@ let
or (if finalAttrs.composerRepository.composerLock == null then nix-update-script { } else null);
};
env = {
COMPOSER_CACHE_DIR = "/dev/null";
COMPOSER_DISABLE_NETWORK = "1";
COMPOSER_MIRROR_PATH_REPOS = "1";
};
meta = previousAttrs.meta or { } // {
platforms = lib.platforms.all;
};

View File

@ -102,13 +102,6 @@ let
runHook postInstallCheck
'';
env = {
COMPOSER_CACHE_DIR = "/dev/null";
COMPOSER_MIRROR_PATH_REPOS = "1";
COMPOSER_HTACCESS_PROTECT = "0";
COMPOSER_DISABLE_NETWORK = "0";
};
outputHashMode = "recursive";
outputHashAlgo =
if (finalAttrs ? vendorHash && finalAttrs.vendorHash != "") then null else "sha256";

View File

@ -149,12 +149,6 @@ let
or (if finalAttrs.vendor.composerLock == null then nix-update-script { } else null);
};
env = {
COMPOSER_CACHE_DIR = "/dev/null";
COMPOSER_DISABLE_NETWORK = "1";
COMPOSER_MIRROR_PATH_REPOS = "1";
};
meta = previousAttrs.meta or composer.meta;
};
in

View File

@ -24,7 +24,7 @@ composerInstallConfigureHook() {
fi
if [[ ! -f "composer.lock" ]]; then
setComposeRootVersion
setComposerRootVersion
composer \
--no-install \
@ -79,7 +79,7 @@ composerInstallConfigureHook() {
composerInstallBuildHook() {
echo "Executing composerInstallBuildHook"
setComposeRootVersion
setComposerRootVersion
# Since this file cannot be generated in the composer-repository-hook.sh
# because the file contains hardcoded nix store paths, we generate it here.
@ -99,7 +99,8 @@ composerInstallCheckHook() {
composerInstallInstallHook() {
echo "Executing composerInstallInstallHook"
setComposeRootVersion
setComposerRootVersion
setComposerEnvVariables
# Finally, run `composer install` to install the dependencies and generate
# the autoloader.

View File

@ -20,7 +20,7 @@ composerRepositoryConfigureHook() {
fi
if [[ ! -f "composer.lock" ]]; then
setComposeRootVersion
setComposerRootVersion
composer \
--no-install \
@ -58,7 +58,7 @@ composerRepositoryBuildHook() {
mkdir -p repository
setComposeRootVersion
setComposerRootVersion
# Build the local composer repository
# The command 'build-local-repo' is provided by the Composer plugin

View File

@ -28,7 +28,7 @@ composerWithPluginConfigureHook() {
cp -ar $src $out/src
if [[ ! -f "$out/composer.lock" ]]; then
setComposeRootVersion
setComposerRootVersion
composer \
global \

View File

@ -2,7 +2,7 @@ declare version
declare composerStrictValidation
declare composerGlobal
setComposeRootVersion() {
setComposerRootVersion() {
set +e # Disable exit on error
if [[ -v version ]]; then
@ -13,8 +13,15 @@ setComposeRootVersion() {
set -e
}
setComposerEnvVariables() {
echo -e "\e[32mSetting some required environment variables for Composer...\e[0m"
export COMPOSER_MIRROR_PATH_REPOS=1
export COMPOSER_CACHE_DIR=/dev/null
export COMPOSER_HTACCESS_PROTECT=0
}
checkComposerValidate() {
setComposeRootVersion
setComposerRootVersion
if [ "1" == "${composerGlobal-}" ]; then
global="global";

View File

@ -94,12 +94,6 @@ let
or (if finalAttrs.composerVendor.composerLock == null then nix-update-script { } else null);
};
env = {
COMPOSER_CACHE_DIR = "/dev/null";
COMPOSER_DISABLE_NETWORK = "1";
COMPOSER_MIRROR_PATH_REPOS = "1";
};
meta = previousAttrs.meta or { } // {
platforms = lib.platforms.all;
};

View File

@ -87,13 +87,6 @@ let
runHook postInstallCheck
'';
env = {
COMPOSER_CACHE_DIR = "/dev/null";
COMPOSER_MIRROR_PATH_REPOS = "1";
COMPOSER_HTACCESS_PROTECT = "0";
COMPOSER_DISABLE_NETWORK = "0";
};
outputHashMode = "recursive";
outputHashAlgo =
if (finalAttrs ? vendorHash && finalAttrs.vendorHash != "") then null else "sha256";

View File

@ -14,7 +14,7 @@ source @phpScriptUtils@
composerInstallConfigureHook() {
echo "Executing composerInstallConfigureHook"
setComposeRootVersion
setComposerRootVersion
if [[ ! -e "${composerVendor}" ]]; then
echo "No local composer vendor found."

View File

@ -15,7 +15,7 @@ source @phpScriptUtils@
composerVendorConfigureHook() {
echo "Executing composerVendorConfigureHook"
setComposeRootVersion
setComposerRootVersion
if [[ -e "$composerLock" ]]; then
echo -e "\e[32mUsing user provided \`composer.lock\` file from \`$composerLock\`\e[0m"
@ -59,11 +59,13 @@ composerVendorConfigureHook() {
composerVendorBuildHook() {
echo "Executing composerVendorBuildHook"
setComposerEnvVariables
composer \
# The acpu-autoloader is not reproducible and has to be disabled.
# Upstream PR: https://github.com/composer/composer/pull/12090
# --apcu-autoloader \
# --apcu-autoloader-prefix="$(jq -r -c 'try ."content-hash"' < composer.lock)" \
`# The acpu-autoloader is not reproducible and has to be disabled.` \
`# Upstream PR: https://github.com/composer/composer/pull/12090` \
`# --apcu-autoloader` \
`# --apcu-autoloader-prefix="$(jq -r -c 'try ."content-hash"' < composer.lock)"` \
--no-interaction \
--no-progress \
--optimize-autoloader \

View File

@ -2,7 +2,7 @@ declare version
declare composerStrictValidation
declare composerGlobal
setComposeRootVersion() {
setComposerRootVersion() {
set +e # Disable exit on error
if [[ -v version ]]; then
@ -13,6 +13,13 @@ setComposeRootVersion() {
set -e
}
setComposerEnvVariables() {
echo -e "\e[32mSetting some required environment variables for Composer...\e[0m"
export COMPOSER_MIRROR_PATH_REPOS=1
export COMPOSER_CACHE_DIR=/dev/null
export COMPOSER_HTACCESS_PROTECT=0
}
checkComposerValidate() {
if [ "1" == "${composerGlobal-}" ]; then
global="global";

View File

@ -0,0 +1,56 @@
{
lib,
stdenv,
buildGoModule,
fetchFromGitHub,
installShellFiles,
}:
buildGoModule rec {
pname = "aliae";
version = "0.22.1";
src = fetchFromGitHub {
owner = "jandedobbeleer";
repo = "aliae";
rev = "refs/tags/v${version}";
hash = "sha256-slixB7mzEdX3ecgbM6tO9IzVH+1w6DwssD1X3MrwAHw=";
};
vendorHash = "sha256-U0Mt2U8WxDFDadIxASz609tUtiF4tETobAmYrk29Lh0=";
sourceRoot = "${src.name}/src";
nativeBuildInputs = [ installShellFiles ];
ldflags = [
"-s"
"-w"
"-X main.Version=${version}"
];
tags = [
"netgo"
"osusergo"
];
postInstall =
''
mv $out/bin/{src,aliae}
''
+ lib.optionalString (stdenv.buildPlatform.canExecute stdenv.hostPlatform) ''
installShellCompletion --cmd aliae \
--bash <($out/bin/aliae completion bash) \
--fish <($out/bin/aliae completion fish) \
--zsh <($out/bin/aliae completion zsh)
'';
meta = {
description = "Cross shell and platform alias management";
mainProgram = "aliae";
homepage = "https://aliae.dev";
changelog = "https://github.com/JanDeDobbeleer/aliae/releases/tag/v${version}";
license = lib.licenses.mit;
maintainers = with lib.maintainers; [ vedantmgoyal9 ];
};
}

View File

@ -7,13 +7,13 @@
stdenvNoCC.mkDerivation {
pname = "ananicy-rules-cachyos";
version = "0-unstable-2024-08-26";
version = "0-unstable-2024-09-18";
src = fetchFromGitHub {
owner = "CachyOS";
repo = "ananicy-rules";
rev = "a78b76536246898045fd1844aced381d01b7f1c6";
hash = "sha256-bDfvWg5r4LmWI8tPrx9qzgEnJuMSYBm6MDf6yOaPqkY=";
rev = "1da705ebab9ab44bb933c1275961f963cc4440eb";
hash = "sha256-6dVY0sZ09H5vdhfk5nGNjt+KG+Qw62b2YbJQCprXBPQ=";
};
dontConfigure = true;

View File

@ -1,4 +1,4 @@
{ lib, fetchurl, appimageTools, makeWrapper }:
{ lib, fetchurl, appimageTools, makeWrapper, commandLineArgs ? "" }:
let
pname = "anytype";
@ -17,7 +17,8 @@ in appimageTools.wrapType2 {
extraInstallCommands = ''
source "${makeWrapper}/nix-support/setup-hook"
wrapProgram $out/bin/${pname} \
--add-flags "\''${NIXOS_OZONE_WL:+\''${WAYLAND_DISPLAY:+--ozone-platform-hint=auto --enable-features=WaylandWindowDecorations}}"
--add-flags "\''${NIXOS_OZONE_WL:+\''${WAYLAND_DISPLAY:+--ozone-platform-hint=auto --enable-features=WaylandWindowDecorations}}" \
--add-flags ${lib.escapeShellArg commandLineArgs}
install -m 444 -D ${appimageContents}/anytype.desktop -t $out/share/applications
substituteInPlace $out/share/applications/anytype.desktop \
--replace 'Exec=AppRun' 'Exec=${pname}'

View File

@ -5,6 +5,7 @@
libspelling,
fetchFromGitHub,
python3Packages,
nodePackages,
meson,
ninja,
pkg-config,
@ -50,7 +51,7 @@ let
hash = "sha256-a+J+GasFmRvu5cJ1GLXscoJ+owzFXsLhCbeDbYChkyQ=";
};
in
python3Packages.buildPythonApplication rec {
python3Packages.buildPythonApplication {
inherit version src;
pname = "apostrophe";
pyproject = false;
@ -62,6 +63,11 @@ python3Packages.buildPythonApplication rec {
patchShebangs --build build-aux/meson_post_install.py
''
# Use mathjax from nixpkgs to avoid loading from CDN
+ ''
substituteInPlace apostrophe/preview_converter.py \
--replace-fail "--mathjax" "--mathjax=file://${nodePackages.mathjax}/lib/node_modules/mathjax/es5/tex-chtml-full.js"
''
# Should be done in postInstall, but meson checks this eagerly before build
+ ''
install -d $out/share/apostrophe/libs

View File

@ -5,16 +5,16 @@
}:
buildGoModule rec {
pname = "astartectl";
version = "24.5.0";
version = "24.5.2";
src = fetchFromGitHub {
owner = "astarte-platform";
repo = "astartectl";
rev = "v${version}";
hash = "sha256-4Iyd+1hLSatWyeV2J7RSqo2jVEc8dSp5JBObsn3RciI=";
hash = "sha256-T4/lkeipE7GWq1zTxkoV3MfADlduFKtGuB/dsI4YZZw=";
};
vendorHash = "sha256-NWPLHbUHrk/oJXCOJF8kKhQiZR8aqZChxuz73Acu1cM=";
vendorHash = "sha256-kVI1DigDlTvrYLVRUYoW+AAkd31d9EehjRJxrqo8OB4=";
nativeBuildInputs = [ installShellFiles ];

View File

@ -0,0 +1,41 @@
{
lib,
stdenv,
fetchFromSourcehut,
meson,
ninja,
pam,
nix-update-script,
}:
stdenv.mkDerivation rec {
pname = "autologin";
version = "1.0.0";
src = fetchFromSourcehut {
owner = "~kennylevinsen";
repo = "autologin";
rev = version;
hash = "sha256-Cy4v/1NuaiSr5Bl6SQMWk5rga8h1QMBUkHpN6M3bWOc=";
};
strictDeps = true;
nativeBuildInputs = [
meson
ninja
];
buildInputs = [ pam ];
passthru.updateScript = nix-update-script { };
meta = {
description = "Run a command inside of a new PAM user session";
homepage = "https://sr.ht/~kennylevinsen/autologin";
changelog = "https://git.sr.ht/~kennylevinsen/autologin/refs/${version}";
license = lib.licenses.gpl3Plus;
platforms = lib.platforms.linux;
maintainers = with lib.maintainers; [ beviu ];
mainProgram = "autologin";
};
}

View File

@ -6,7 +6,7 @@
python3.pkgs.buildPythonApplication rec {
pname = "autosuspend";
version = "7.0.0";
version = "7.0.1";
disabled = python3.pythonOlder "3.10";
@ -14,7 +14,7 @@ python3.pkgs.buildPythonApplication rec {
owner = "languitar";
repo = pname;
rev = "refs/tags/v${version}";
hash = "sha256-AJ0ZWRxqhBJEics6XnIVWyf7pJI8MphQU4LRqSYYNSQ=";
hash = "sha256-Zjo8H5PU6JezrBF0XBHvmePUTNeX74BX4NsHtPozcKs=";
};
dependencies = with python3.pkgs; [

View File

@ -0,0 +1,30 @@
{
lib,
buildGoModule,
fetchFromGitHub,
}:
buildGoModule rec {
pname = "bitbucket-cli";
version = "1.0.0";
src = fetchFromGitHub {
owner = "swisscom";
repo = "bitbucket-cli";
rev = "v${version}";
hash = "sha256-8Qvlv/S5IkRk+2D/Pnb0+FP7ryHh1kSRJCiUjSO0OtI=";
};
vendorHash = "sha256-xjCY3Ycz5Ty6jTDHNNUWYp2SP8EPhDiwO7+WJBL3lAQ=";
# Tests seem to be using Swisscom's live servers.
doCheck = false;
meta = {
description = "Bitbucket Enterprise CLI";
homepage = "https://github.com/swisscom/bitbucket-cli";
mainProgram = "bitbucket-cli";
license = lib.licenses.mit;
maintainers = with lib.maintainers; [ attila ];
platforms = with lib.platforms; linux ++ darwin;
};
}

View File

@ -3,7 +3,7 @@
, cargo
, copyDesktopItems
, dbus
, electron_31
, electron_32
, fetchFromGitHub
, glib
, gnome-keyring
@ -26,16 +26,16 @@
let
description = "Secure and free password manager for all of your devices";
icon = "bitwarden";
electron = electron_31;
electron = electron_32;
in buildNpmPackage rec {
pname = "bitwarden-desktop";
version = "2024.8.2";
version = "2024.9.0";
src = fetchFromGitHub {
owner = "bitwarden";
repo = "clients";
rev = "desktop-v${version}";
hash = "sha256-KATT4W2pP7VTcoHeshGx5VrBwlg3UqzKPcRY0Rzo7II=";
hash = "sha256-o5nRG2j73qheDOyeFfSga64D8HbTn1EUrCiN0W+Xn0w=";
};
patches = [
@ -52,7 +52,7 @@ in buildNpmPackage rec {
makeCacheWritable = true;
npmFlags = [ "--engine-strict" "--legacy-peer-deps" ];
npmWorkspace = "apps/desktop";
npmDepsHash = "sha256-SnrK26QaxHYKX0532rGBASjx9PwxKSsVFRzZ3Cs2GPk=";
npmDepsHash = "sha256-L7/frKCNlq0xr6T+aSqyEQ44yrIXwcpdU/djrhCJNNk=";
cargoDeps = rustPlatform.fetchCargoTarball {
name = "${pname}-${version}";
@ -68,7 +68,7 @@ in buildNpmPackage rec {
patches;
patchFlags = [ "-p4" ];
sourceRoot = "${src.name}/${cargoRoot}";
hash = "sha256-MjGKQky6LGtpG1maBWd+WkMZlnZfdl9Sm2dlvdD8ANw=";
hash = "sha256-y+6vaESiOeVrFJpZoOJ75onOpldqSsT2kqkMMzTDUmM=";
};
cargoRoot = "apps/desktop/desktop_native";

View File

@ -0,0 +1,287 @@
From 047681f1425c7cd68b77fdd729ea4664f73126b8 Mon Sep 17 00:00:00 2001
From: wxt <3264117476@qq.com>
Date: Mon, 23 Sep 2024 15:11:09 +0800
Subject: [PATCH] update time
---
Cargo.lock | 87 +++++++++++++++++++++++++++++++++++-------------------
1 file changed, 56 insertions(+), 31 deletions(-)
diff --git a/Cargo.lock b/Cargo.lock
index be4fbeb..42f29b8 100644
--- a/Cargo.lock
+++ b/Cargo.lock
@@ -265,7 +265,7 @@ checksum = "0e97ce7de6cf12de5d7226c73f5ba9811622f4db3a5b91b55c53e987e5f91cba"
dependencies = [
"proc-macro2",
"quote",
- "syn 2.0.16",
+ "syn 2.0.77",
]
[[package]]
@@ -282,7 +282,7 @@ checksum = "b9ccdd8f2a161be9bd5c023df56f1b2a0bd1d83872ae53b71a84a12c9bf6e842"
dependencies = [
"proc-macro2",
"quote",
- "syn 2.0.16",
+ "syn 2.0.77",
]
[[package]]
@@ -467,7 +467,7 @@ checksum = "fdde5c9cd29ebd706ce1b35600920a33550e402fc998a2e53ad3b42c3c47a192"
dependencies = [
"proc-macro2",
"quote",
- "syn 2.0.16",
+ "syn 2.0.77",
]
[[package]]
@@ -809,6 +809,15 @@ dependencies = [
"serde",
]
+[[package]]
+name = "deranged"
+version = "0.3.11"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b42b6fa04a440b495c8b04d0e71b707c585f83cb9cb28cf8cd0d976c315e31b4"
+dependencies = [
+ "powerfmt",
+]
+
[[package]]
name = "derivative"
version = "2.2.0"
@@ -1007,7 +1016,7 @@ checksum = "5e9a1f9f7d83e59740248a6e14ecf93929ade55027844dfcea78beafccc15745"
dependencies = [
"proc-macro2",
"quote",
- "syn 2.0.16",
+ "syn 2.0.77",
]
[[package]]
@@ -1259,7 +1268,7 @@ checksum = "89ca545a94061b6365f2c7355b4b32bd20df3ff95f02da9329b34ccc3bd6ee72"
dependencies = [
"proc-macro2",
"quote",
- "syn 2.0.16",
+ "syn 2.0.77",
]
[[package]]
@@ -2002,6 +2011,12 @@ dependencies = [
"winapi",
]
+[[package]]
+name = "num-conv"
+version = "0.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "51d515d32fb182ee37cda2ccdcb92950d6a3c2893aa280e540671c2cd0f3b1d9"
+
[[package]]
name = "num-integer"
version = "0.1.45"
@@ -2156,7 +2171,7 @@ checksum = "a948666b637a0f465e8564c73e89d4dde00d72d4d473cc972f390fc3dcee7d9c"
dependencies = [
"proc-macro2",
"quote",
- "syn 2.0.16",
+ "syn 2.0.77",
]
[[package]]
@@ -2308,7 +2323,7 @@ dependencies = [
"pest_meta",
"proc-macro2",
"quote",
- "syn 2.0.16",
+ "syn 2.0.77",
]
[[package]]
@@ -2339,7 +2354,7 @@ checksum = "39407670928234ebc5e6e580247dd567ad73a3578460c5990f9503df207e8f07"
dependencies = [
"proc-macro2",
"quote",
- "syn 2.0.16",
+ "syn 2.0.77",
]
[[package]]
@@ -2389,6 +2404,12 @@ dependencies = [
"windows-sys 0.48.0",
]
+[[package]]
+name = "powerfmt"
+version = "0.2.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "439ee305def115ba05938db6eb1644ff94165c5ab5e9420d1c1bcedbba909391"
+
[[package]]
name = "ppv-lite86"
version = "0.2.17"
@@ -2407,9 +2428,9 @@ dependencies = [
[[package]]
name = "proc-macro2"
-version = "1.0.57"
+version = "1.0.86"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c4ec6d5fe0b140acb27c9a0444118cf55bfbb4e0b259739429abb4521dd67c16"
+checksum = "5e719e8df665df0d1c8fbfd238015744736151d4445ec0836b8e628aae103b77"
dependencies = [
"unicode-ident",
]
@@ -2425,9 +2446,9 @@ dependencies = [
[[package]]
name = "quote"
-version = "1.0.27"
+version = "1.0.37"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8f4f29d145265ec1c483c7c654450edde0bfe043d3938d6972630663356d9500"
+checksum = "b5b9d34b8991d19d98081b46eacdd8eb58c6f2b201139f7c5f643cc155a633af"
dependencies = [
"proc-macro2",
]
@@ -2711,22 +2732,22 @@ dependencies = [
[[package]]
name = "serde"
-version = "1.0.163"
+version = "1.0.210"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2113ab51b87a539ae008b5c6c02dc020ffa39afd2d83cffcb3f4eb2722cebec2"
+checksum = "c8e3592472072e6e22e0a54d5904d9febf8508f65fb8552499a1abc7d1078c3a"
dependencies = [
"serde_derive",
]
[[package]]
name = "serde_derive"
-version = "1.0.163"
+version = "1.0.210"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8c805777e3930c8883389c602315a24224bcc738b63905ef87cd1420353ea93e"
+checksum = "243902eda00fad750862fc144cea25caca5e20d615af0a81bee94ca738f1df1f"
dependencies = [
"proc-macro2",
"quote",
- "syn 2.0.16",
+ "syn 2.0.77",
]
[[package]]
@@ -2748,7 +2769,7 @@ checksum = "bcec881020c684085e55a25f7fd888954d56609ef363479dc5a1305eb0d40cab"
dependencies = [
"proc-macro2",
"quote",
- "syn 2.0.16",
+ "syn 2.0.77",
]
[[package]]
@@ -2981,9 +3002,9 @@ dependencies = [
[[package]]
name = "syn"
-version = "2.0.16"
+version = "2.0.77"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a6f671d4b5ffdb8eadec19c0ae67fe2639df8684bd7bc4b83d986b8db549cf01"
+checksum = "9f35bcdf61fd8e7be6caf75f429fdca8beb3ed76584befb503b1569faee373ed"
dependencies = [
"proc-macro2",
"quote",
@@ -3035,7 +3056,7 @@ checksum = "f9456a42c5b0d803c8cd86e73dd7cc9edd429499f37a3550d286d5e86720569f"
dependencies = [
"proc-macro2",
"quote",
- "syn 2.0.16",
+ "syn 2.0.77",
]
[[package]]
@@ -3061,11 +3082,14 @@ dependencies = [
[[package]]
name = "time"
-version = "0.3.21"
+version = "0.3.36"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8f3403384eaacbca9923fa06940178ac13e4edb725486d70e8e15881d0c836cc"
+checksum = "5dfd88e563464686c916c7e46e623e520ddc6d79fa6641390f2e3fa86e83e885"
dependencies = [
+ "deranged",
"itoa",
+ "num-conv",
+ "powerfmt",
"serde",
"time-core",
"time-macros",
@@ -3073,16 +3097,17 @@ dependencies = [
[[package]]
name = "time-core"
-version = "0.1.1"
+version = "0.1.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7300fbefb4dadc1af235a9cef3737cea692a9d97e1b9cbcd4ebdae6f8868e6fb"
+checksum = "ef927ca75afb808a4d64dd374f00a2adf8d0fcff8e7b184af886c3c87ec4a3f3"
[[package]]
name = "time-macros"
-version = "0.2.9"
+version = "0.2.18"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "372950940a5f07bf38dbe211d7283c9e6d7327df53794992d293e534c733d09b"
+checksum = "3f252a68540fde3a3877aeea552b832b40ab9a69e318efd078774a01ddee1ccf"
dependencies = [
+ "num-conv",
"time-core",
]
@@ -3153,7 +3178,7 @@ checksum = "630bdcf245f78637c13ec01ffae6187cca34625e8c63150d424b59e55af2675e"
dependencies = [
"proc-macro2",
"quote",
- "syn 2.0.16",
+ "syn 2.0.77",
]
[[package]]
@@ -3260,7 +3285,7 @@ checksum = "0f57e3ca2a01450b1a921183a9c9cbfda207fd822cef4ccb00a65402cbba7a74"
dependencies = [
"proc-macro2",
"quote",
- "syn 2.0.16",
+ "syn 2.0.77",
]
[[package]]
@@ -3443,7 +3468,7 @@ dependencies = [
"once_cell",
"proc-macro2",
"quote",
- "syn 2.0.16",
+ "syn 2.0.77",
"wasm-bindgen-shared",
]
@@ -3477,7 +3502,7 @@ checksum = "e128beba882dd1eb6200e1dc92ae6c5dbaa4311aa7bb211ca035779e5efc39f8"
dependencies = [
"proc-macro2",
"quote",
- "syn 2.0.16",
+ "syn 2.0.77",
"wasm-bindgen-backend",
"wasm-bindgen-shared",
]
--
2.46.0

View File

@ -1,16 +1,17 @@
{ lib
, stdenv
, fetchFromGitHub
, rustPlatform
, clangStdenv
, gtk3
, xorg
, perl
, openssl
, speechd-minimal
, libxkbcommon
, libGL
, wayland
{
lib,
stdenv,
fetchFromGitHub,
rustPlatform,
clangStdenv,
gtk3,
xorg,
perl,
openssl,
speechd-minimal,
libxkbcommon,
libGL,
wayland,
}:
let
rpathLibs = [
@ -38,11 +39,15 @@ rustPlatform.buildRustPackage.override { stdenv = clangStdenv; } rec {
src = fetchFromGitHub {
owner = "PhilipK";
repo = "BoilR";
rev = "v.${version}";
rev = "refs/tags/v.${version}";
hash = "sha256-bwCTsoZ/9TeO3wyEcOqxKePnj9glsDXWUBCLd3nVT80=";
};
cargoHash = "sha256-nAZU1xVpeRXubotla4I6InGMH4lisPMOnoqaK5mBPCM=";
cargoPatches = [
./0001-update-time.patch
];
cargoHash = "sha256-09vPP+kNrmk0nN3Bdn9T7QjvuZvJeqQ56lCQIFb+Zrs=";
nativeBuildInputs = [ perl ];
@ -57,10 +62,12 @@ rustPlatform.buildRustPackage.override { stdenv = clangStdenv; } rec {
dontPatchELF = true;
meta = {
description =
"Automatically adds (almost) all your games to your Steam library (including image art)";
description = "Automatically adds (almost) all your games to your Steam library (including image art)";
homepage = "https://github.com/PhilipK/BoilR";
license = with lib.licenses; [ asl20 mit ];
license = with lib.licenses; [
asl20
mit
];
platforms = lib.platforms.linux;
maintainers = with lib.maintainers; [ foolnotion ];
mainProgram = "boilr";

View File

@ -6,7 +6,7 @@
cargo-shear,
}:
let
version = "1.1.2";
version = "1.1.3";
in
rustPlatform.buildRustPackage {
pname = "cargo-shear";
@ -16,10 +16,10 @@ rustPlatform.buildRustPackage {
owner = "Boshen";
repo = "cargo-shear";
rev = "v${version}";
hash = "sha256-JnQrQBx9VuXI0wj1mMLfl15lxC85f1kUBucgC3Q8F0c=";
hash = "sha256-xKO/57yvHSGzjWyDPu1DmI9eeDESyFgMschqK+OLUMs=";
};
cargoHash = "sha256-iFcW9REkEolrDDbEwoepUSO79OgUdsLUhSkk12y4yxk=";
cargoHash = "sha256-lwPD46irkBg+Xg9/d07Q6BPk2rzKYkj3114EiMbbd+U=";
# https://github.com/Boshen/cargo-shear/blob/a0535415a3ea94c86642f39f343f91af5cdc3829/src/lib.rs#L20-L23
SHEAR_VERSION = version;

View File

@ -8,16 +8,16 @@
buildGoModule rec {
pname = "compose2nix";
version = "0.2.2";
version = "0.2.3";
src = fetchFromGitHub {
owner = "aksiksi";
repo = "compose2nix";
rev = "v${version}";
hash = "sha256-2t4pXTzd5TDpAOzNS8MfnE9p8Rm55OPLaEpSPF4/UbE=";
hash = "sha256-qN7MFw6JKBbzwiqURkZ3or/8hT29mRpfITovSHdzDEY=";
};
vendorHash = "sha256-SwJzyOXE23BLoJ+efFuSIhDTMjirEUmBhGGmgrnKhXw=";
vendorHash = "sha256-yGBdsej6DjRMWzS13WyqCLaY5M/N9BrMARAM3oHsc+s=";
passthru.tests = {
version = testers.testVersion {

View File

@ -17,7 +17,7 @@
stdenvNoCC.mkDerivation (finalAttrs: {
pname = "dbeaver-bin";
version = "24.2.0";
version = "24.2.1";
src =
let
@ -30,10 +30,10 @@ stdenvNoCC.mkDerivation (finalAttrs: {
aarch64-darwin = "macos-aarch64.dmg";
};
hash = selectSystem {
x86_64-linux = "sha256-N4r2immlH6B6rWluFX9abU5gnavPFY1ZoNtKpzCxwh4=";
aarch64-linux = "sha256-oRU+0iMLno1xIVI3NzeJfDrz5CuPlccICM/zpxRvV40=";
x86_64-darwin = "sha256-oUUof1HYeULP3qPr9mB69ZU83VuI4hJ09w03fjc+1Y4=";
aarch64-darwin = "sha256-JZfj0dgaqEndzyLgBwFrFebWxz7O/53qA9aTeOEWvLE=";
x86_64-linux = "sha256-U1KJxE1PzRRMvYw3jSYV2n6JuhzyL30le1HeY0kft1k=";
aarch64-linux = "sha256-AT/Xx+Hwu64sUfR1fS9nI+RTsIfdi9udF9TR9hbjnxg=";
x86_64-darwin = "sha256-hCIfBv6FaNoZiTvpx1UCdwBg15vq+ZsTG5upmbWXN0M=";
aarch64-darwin = "sha256-g0G6fqR75AoOEzlYr6MbTBL8aQ/hWQuFyw1G2w9/JlU=";
};
in
fetchurl {

View File

@ -6,11 +6,11 @@
}:
appimageTools.wrapType2 rec {
pname = "dopamine";
version = "3.0.0-preview.33";
version = "3.0.0-preview.34";
src = fetchurl {
url = "https://github.com/digimezzo/dopamine/releases/download/v${version}/Dopamine-${version}.AppImage";
hash = "sha256-W8XkXnsP0AqYV0wznKe1dbPm2VuhoZWl03G7hib/uxE=";
hash = "sha256-K4dDYYzo2oMAZvlb25cQuh1G187efSyJfAA6jdCKaT0=";
};
extraInstallCommands =

View File

@ -0,0 +1,51 @@
{
lib,
stdenv,
fetchFromGitHub,
rustPlatform,
protobuf,
nix-update-script,
darwin,
withQuic ? false, # with QUIC protocol support
}:
rustPlatform.buildRustPackage rec {
pname = "easytier";
version = "1.2.3";
src = fetchFromGitHub {
owner = "EasyTier";
repo = "EasyTier";
rev = "refs/tags/v${version}";
hash = "sha256-7T6xdJrVTgg7rSTC2PaVTsBTgi14qJzaR6M8tRUL8OQ=";
};
cargoHash = "sha256-9wAGUVYKz7+Q8y+dmay8pEZnv7PikzuAoas/h5T3sLE=";
nativeBuildInputs = [ protobuf ];
buildInputs = lib.optionals stdenv.isDarwin [
darwin.apple_sdk.frameworks.Security
];
buildNoDefaultFeatures = stdenv.isMips;
buildFeatures = lib.optional stdenv.isMips "mips" ++ lib.optional withQuic "quic";
doCheck = false; # tests failed due to heavy rely on network
passthru.updateScript = nix-update-script { };
meta = {
homepage = "https://github.com/EasyTier/EasyTier";
changelog = "https://github.com/EasyTier/EasyTier/releases/tag/v${version}";
description = "Simple, decentralized mesh VPN with WireGuard support";
longDescription = ''
EasyTier is a simple, safe and decentralized VPN networking solution implemented
with the Rust language and Tokio framework.
'';
mainProgram = "easytier-core";
license = lib.licenses.asl20;
platforms = with lib.platforms; unix ++ windows;
maintainers = with lib.maintainers; [ ltrump ];
};
}

View File

@ -13,13 +13,13 @@
let
pname = "firefly-iii-data-importer";
version = "1.5.5";
version = "1.5.6";
src = fetchFromGitHub {
owner = "firefly-iii";
repo = "data-importer";
rev = "v${version}";
hash = "sha256-nAeLXxUwaw/wHYh3NywI4/mFi82i/2b3McFfCFGAIjE=";
hash = "sha256-IIlcOGulcBJsYz7Yx3YWV/c6yvb8+82AvFghQ05dUcI=";
};
in
@ -42,12 +42,12 @@ stdenvNoCC.mkDerivation (finalAttrs: {
composerStrictValidation = true;
strictDeps = true;
vendorHash = "sha256-yLu/FMKn/uUy5g6td3mfPAb9ptjJne4vd478fjaS9U0=";
vendorHash = "sha256-j1rCcHt5E1aFwgnOKZZccaGPs5JfpBtN05edeSvId94=";
npmDeps = fetchNpmDeps {
inherit src;
name = "${pname}-npm-deps";
hash = "sha256-35mS+0Ea69CAwV9liTU3lcKp3ww3qLbTRWlF0AQNx5w=";
hash = "sha256-mdBQubfV5Bgk9NxsWokTS6zA4r3gggWVSwhrfKPUi5s=";
};
composerRepository = php83.mkComposerRepository {

View File

@ -5,7 +5,7 @@
python3.pkgs.buildPythonApplication rec {
pname = "flexget";
version = "3.11.45";
version = "3.11.46";
pyproject = true;
# Fetch from GitHub in order to use `requirements.in`
@ -13,7 +13,7 @@ python3.pkgs.buildPythonApplication rec {
owner = "Flexget";
repo = "Flexget";
rev = "refs/tags/v${version}";
hash = "sha256-QtxtkXKBYf46cS+TAxJGQNQktHpLgGDIf7Czfznzr1s=";
hash = "sha256-zaysfvfsuA4XTj46vN1FHggqEaL8rfHL0UJVILhrwjg=";
};
# relax dep constrains, keep environment constraints

View File

@ -10,15 +10,15 @@
rustPlatform.buildRustPackage rec {
pname = "gitlab-ci-ls";
version = "0.21.1";
version = "0.21.2";
src = fetchFromGitHub {
owner = "alesbrelih";
repo = "gitlab-ci-ls";
rev = "${version}";
hash = "sha256-0aVwI+E/UmYDSQDArQZsaNc0jDXXOG/zDr/5o0I1aLw=";
hash = "sha256-wkL6ko43oWrpyscEpCMuoFamDMJk9+xI3qYOs+DgI8g=";
};
cargoHash = "sha256-rZXIc9O+pIdR/M8kV7judiHTCwnKcX+7P1LWEqZLeD8=";
cargoHash = "sha256-H/p29QbCaZRa81g+5eUsG47tUJPVgB1J9zZYY5/n5Vk=";
nativeBuildInputs = [ pkg-config ];
buildInputs =

View File

@ -258,11 +258,11 @@ let
darwin = stdenvNoCC.mkDerivation (finalAttrs: {
inherit pname meta passthru;
version = "128.0.6613.138";
version = "129.0.6668.59";
src = fetchurl {
url = "http://dl.google.com/release2/chrome/gtm24cqmnwgcp7dtscvlmsbrwa_128.0.6613.138/GoogleChrome-128.0.6613.138.dmg";
hash = "sha256-wd6n3AeKxKdz+5X9XxTi1QHzmByzKRgIWcc3iBHhtZs=";
url = "http://dl.google.com/release2/chrome/acinjqjzbtmzhvrebvzymzvzfaoq_129.0.6668.59/GoogleChrome-129.0.6668.59.dmg";
hash = "sha256-02J3TpcAsCvsB71C8/bfgIxiqcGIxjKiTWR32On66+g=";
};
dontPatch = true;

View File

@ -10,7 +10,7 @@ get_version_info() {
local start_pattern="$2"
local end_pattern="$3"
local url="https://versionhistory.googleapis.com/v1/chrome/platforms/${platform}/channels/stable/versions/all/releases"
local url="https://versionhistory.googleapis.com/v1/chrome/platforms/${platform}/channels/stable/versions/all/releases?filter=endtime=none,fraction>=0.5&order_by=version%20desc"
local response
local version
local current_version

File diff suppressed because it is too large Load Diff

View File

@ -13,25 +13,26 @@
vulkan-loader,
wayland,
xorg,
alsa-lib,
}:
rustPlatform.buildRustPackage rec {
pname = "halloy";
version = "2024.8";
version = "2024.11";
src = fetchFromGitHub {
owner = "squidowl";
repo = "halloy";
rev = "refs/tags/${version}";
hash = "sha256-OxxXjenZjP+3KrkxyXYxOXRFmrYm3deeiCuGrhpnF2I=";
hash = "sha256-kmdsC0SQoL5gppzBhnF0LfOFj14zeI3C6SdCBiVoKj0=";
};
cargoLock = {
lockFile = ./Cargo.lock;
outputHashes = {
"dpi-0.1.1" = "sha256-25sOvEBhlIaekTeWvy3UhjPI1xrJbOQvw/OkTg12kQY=";
"glyphon-0.5.0" = "sha256-+z2my51aUeK9txLZKVAyQcWJ6f2YDY1mjxfc8Xsqi8E=";
"iced-0.13.0-dev" = "sha256-eHlauEZibbuqK5mdkNP6gsy1z9qxqEDn/xfFw7W5TcY=";
"glyphon-0.5.0" = "sha256-OGXLqiMjaZ7gR5ANkuCgkfn/I7c/4h9SRE6MZZMW3m4=";
"iced-0.13.0-dev" = "sha256-XQUaI16lGEMGFxqK3UNd8jQfUiBzomxlT/I+yeZncFo=";
};
};
@ -43,6 +44,7 @@ rustPlatform.buildRustPackage rec {
buildInputs =
[
alsa-lib
libxkbcommon
openssl
vulkan-loader

View File

@ -8,16 +8,16 @@
buildGoModule rec {
pname = "ignite-cli";
version = "28.5.2";
version = "28.5.3";
src = fetchFromGitHub {
repo = "cli";
owner = "ignite";
rev = "v${version}";
hash = "sha256-RaK8NooOYYuk8RhxeeU9mB9PNSgWJ9nOxxcpi87YQQ0=";
hash = "sha256-ziuzSV7LjRgR1wNE1QD+OszIeXiip7pPU4/BD8fhV5s=";
};
vendorHash = "sha256-u/EwT43K7Tu7ns0NIWkRl7OiQuP37zz4ERUwCLXY1TE=";
vendorHash = "sha256-5Z5AuZtPwfENKp8wMYfRqmnkX4W4fWTjWulT5uNusPo=";
nativeBuildInputs = [ makeWrapper ];

View File

@ -0,0 +1,32 @@
{
lib,
buildGoModule,
fetchFromGitHub,
}:
buildGoModule rec {
pname = "imgpkg";
version = "0.43.1";
src = fetchFromGitHub {
owner = "carvel-dev";
repo = "imgpkg";
rev = "v${version}";
hash = "sha256-RjTVJjuzjNTZrg1VZ4NrDf1SZmS+CGzofYTBQEZNIag=";
};
vendorHash = null;
subPackages = [ "cmd/imgpkg" ];
CGO_ENABLED = "0";
ldflags = [ "-X=carvel.dev/imgpkg/pkg/imgpkg/cmd.Version=${version}" ];
meta = {
description = "Store application configuration files in Docker/OCI registries";
homepage = "https://carvel.dev/imgpkg";
license = lib.licenses.asl20;
maintainers = with lib.maintainers; [ benchand ];
mainProgram = "imgpkg";
};
}

View File

@ -53,13 +53,13 @@ let
in
effectiveStdenv.mkDerivation (finalAttrs: {
pname = "koboldcpp";
version = "1.74";
version = "1.75.2";
src = fetchFromGitHub {
owner = "LostRuins";
repo = "koboldcpp";
rev = "refs/tags/v${finalAttrs.version}";
hash = "sha256-tGG1+EGlCUmFpx/axijonOXydurwFxqjuoeDwHxC+pc=";
hash = "sha256-olMlYzde97RSx0OmDULSOFlM3imUq3AVxQdXyYBPd3Q=";
};
enableParallelBuilding = true;

View File

@ -7,12 +7,12 @@
python3Packages.buildPythonApplication rec {
pname = "latexminted";
version = "0.1.0b9";
version = "0.1.0b16";
pyproject = true;
src = fetchPypi {
inherit pname version;
hash = "sha256-QUFfoX1jv5pVQDEBGaVd1madfqbTWTJyXPh4gw7P5UE=";
hash = "sha256-9iUxoJIctp5IPEaEHqw0AwgcEkxlEyPTZhRkpXSjSIA=";
};
build-system = with python3Packages; [
@ -22,6 +22,7 @@ python3Packages.buildPythonApplication rec {
dependencies = with python3Packages; [
pygments
latex2pydata
latexrestricted
];
passthru = {

View File

@ -6,7 +6,7 @@
let
pname = "lefthook";
version = "1.7.15";
version = "1.7.16";
in
buildGoModule {
inherit pname version;
@ -15,7 +15,7 @@ buildGoModule {
owner = "evilmartians";
repo = "lefthook";
rev = "v${version}";
hash = "sha256-N79unpeeOwcdHJo9IbsGa/gmTyg+QQCJF599cshV3sc=";
hash = "sha256-SAFrtiSISW5QhFq9fow0CA5qvBY1RIfzZGvvfhOqxbY=";
};
vendorHash = "sha256-rJdtax3r5Nwew+ptY4kIAUtxqPguwrFMMRk78zrZUcU=";

View File

@ -5,15 +5,16 @@
unzip,
makeWrapper,
jre_headless,
writeScript,
}:
stdenv.mkDerivation rec {
stdenv.mkDerivation (finalAttrs: {
pname = "maestro";
version = "1.37.9";
version = "1.38.1";
src = fetchurl {
url = "https://github.com/mobile-dev-inc/maestro/releases/download/cli-${version}/maestro.zip";
hash = "sha256-bWZuD2+v6molwW1ef2a3djBnVfYscBjILLGXeeSUmoU=";
url = "https://github.com/mobile-dev-inc/maestro/releases/download/cli-${finalAttrs.version}/maestro.zip";
hash = "sha256-AogEVg8R73x5Q/LxZamGbFacCqB8JZeERqyf+UPXBx0=";
};
dontUnpack = true;
@ -33,12 +34,24 @@ stdenv.mkDerivation rec {
wrapProgram $out/bin/maestro --prefix PATH : "${lib.makeBinPath [ jre_headless ]}"
'';
passthru.updateScript = writeScript "update-maestro" ''
#!/usr/bin/env nix-shell
#!nix-shell -i bash -p curl jq common-updater-scripts
set -o errexit -o nounset -o pipefail
NEW_VERSION=$(curl --silent https://api.github.com/repos/mobile-dev-inc/maestro/releases | jq 'first(.[].tag_name | ltrimstr("cli-") | select(contains("dev.") | not))' --raw-output)
update-source-version "maestro" "$NEW_VERSION" --print-changes
'';
meta = with lib; {
description = "Mobile UI Automation tool";
homepage = "https://maestro.mobile.dev/";
license = licenses.asl20;
platforms = lib.platforms.all;
sourceProvenance = [ lib.sourceTypes.binaryNativeCode ];
changelog = "https://github.com/mobile-dev-inc/maestro/blob/main/CHANGELOG.md";
maintainers = with maintainers; [ SubhrajyotiSen ];
mainProgram = "maestro";
};
}
})

View File

@ -6,13 +6,13 @@
buildGoModule rec {
pname = "misconfig-mapper";
version = "1.8.4";
version = "1.9.0";
src = fetchFromGitHub {
owner = "intigriti";
repo = "misconfig-mapper";
rev = "refs/tags/v${version}";
hash = "sha256-zg7OBHrveBmsljUJUE0/kz3AkIbUtTHf64BQbROUXsQ=";
hash = "sha256-mi3lM/BQ16dCVX/kVRNhIis4sh6M0TMuK05q/pXJiS8=";
};
vendorHash = "sha256-aABtsS39yxBBFMN98fjr4gy6QeF3dobrZqeZmmv2ywQ=";

View File

@ -8,17 +8,17 @@
rustPlatform.buildRustPackage rec {
pname = "mountpoint-s3";
version = "1.9.0";
version = "1.9.1";
src = fetchFromGitHub {
owner = "awslabs";
repo = "mountpoint-s3";
rev = "v${version}";
hash = "sha256-uzTnkspTS3WvJUOmp8z7L/L1ut6NvnSlnsRa5yvaTRI=";
hash = "sha256-8t/gAz08jFRuF0q3bo4y8tiIq4iYgAkXf5udYNIccu0=";
fetchSubmodules = true;
};
cargoHash = "sha256-kru8CBN9Mqm8Og7SKICjqSvds7z58RRqI4W2txLvWXo=";
cargoHash = "sha256-Fz7LfAn78JVip0QshoL5KMAEHMtG8bkLzz4v95/qt3E=";
# thread 'main' panicked at cargo-auditable/src/collect_audit_data.rs:77:9:
# cargo metadata failure: error: none of the selected packages contains these features: libfuse3

View File

@ -32,13 +32,13 @@ let
in
stdenv.mkDerivation (finalAttrs: {
pname = "pixelorama";
version = "1.0.2";
version = "1.0.3";
src = fetchFromGitHub {
owner = "Orama-Interactive";
repo = "Pixelorama";
rev = "v${finalAttrs.version}";
hash = "sha256-rFXUy6fvGKmB+aaNgiI+NNRG0xlj1migdetnU4iVDDQ=";
hash = "sha256-IMHv5pOLxj7sqRtWmddziCiOX3T20bcMp2+ZzyhcIFg=";
};
strictDeps = true;

View File

@ -1,64 +1,98 @@
{
lib,
vips,
resvg,
mpv,
libraw,
imagemagick,
libdevil,
stdenv,
fetchFromGitLab,
cmake,
libarchive,
qt6Packages,
extra-cmake-modules,
exiv2,
extra-cmake-modules,
fetchFromGitLab,
imagemagick,
libarchive,
libdevil,
libraw,
mpv,
pkg-config,
qt6Packages,
resvg,
stdenv,
vips,
}:
stdenv.mkDerivation rec {
stdenv.mkDerivation (finalAttrs: {
pname = "previewqt";
version = "3.0";
src = fetchFromGitLab {
name = "previewqt-sources-${finalAttrs.version}";
owner = "lspies";
repo = "previewqt";
rev = "refs/tags/v${version}";
rev = "refs/tags/v${finalAttrs.version}";
hash = "sha256-cDtqgezKGgSdhw8x1mM4cZ0H3SfUPEyWP6rRD+kRwXc=";
};
# can't find qtquick3d
strictDeps = false;
nativeBuildInputs = [
cmake
extra-cmake-modules
pkg-config
qt6Packages.wrapQtAppsHook
];
buildInputs = [
exiv2
imagemagick
qt6Packages.poppler
qt6Packages.qtmultimedia
qt6Packages.qtquick3d
qt6Packages.qtsvg
qt6Packages.qttools
qt6Packages.qtwebengine
libarchive
libdevil
libraw
mpv
resvg
vips
];
buildInputs =
[
exiv2
extra-cmake-modules
imagemagick
libarchive
libdevil
libraw
mpv
resvg
vips
]
++ [
qt6Packages.poppler
qt6Packages.qtmultimedia
qt6Packages.qtquick3d
qt6Packages.qtsvg
qt6Packages.qttools
qt6Packages.qtwebengine
];
strictDeps = true;
meta = {
homepage = "https://previewqt.org/";
description = "Qt-based file previewer";
homepage = "https://photoqt.org/previewqt";
changelog = "https://gitlab.com/lspies/previewqt/-/blob/v${version}/CHANGELOG";
longDescription = ''
PhotoQt is an image viewer that provides a simple and uncluttered
interface. Yet, hidden beneath the surface awaits a large array of
features. Here are some of its main features (not an exhaustive
list). Suggestions for new features are always welcome.
- Support of ImageMagick/GraphicsMagick, Libraw, FreeImage, DevIL,
libvips, Poppler, libarchive, and video files.
- Touchscreen support
- Support for Motion Photos and Apple Live Photos
- Support for (partial) photo spheres and 360 degree panoramas using
equirectangular projection
- Explore images on an interactive map according to their embedded GPS
location
- Chromecast support
- Basic image manipulations
- Convert images between formats
- Keyboard and mouse shortcuts
- Upload images directly to imgur.com
- Set image as wallpaper directly from inside PhotoQt
- Slideshow feature
- Display Exif information (including tagging of faces)
- Detect and display bar codes and QR codes in images
- Thumbnail Cache
- System Tray Usage
- Command Line Options
- Several translations available (help wanted)
- and much more...
'';
changelog = "https://gitlab.com/lspies/previewqt/-/blob/v${finalAttrs.version}/CHANGELOG";
license = lib.licenses.gpl2Plus;
maintainers = with lib.maintainers; [ ];
mainProgram = "previewqt";
maintainers = with lib.maintainers; [ AndersonTorres ];
platforms = lib.platforms.linux;
};
}
})

View File

@ -9,16 +9,16 @@
rustPlatform.buildRustPackage rec {
pname = "qrtool";
version = "0.11.4";
version = "0.11.5";
src = fetchFromGitHub {
owner = "sorairolake";
repo = "qrtool";
rev = "v${version}";
hash = "sha256-lD/xi2k5baZGUUixy/032jTBevr0uQIT/JmX+d+kPyA=";
hash = "sha256-2Msc8VTEzpK5eQHxJxNekj6YSqFRX/DN206hvYshiOg=";
};
cargoHash = "sha256-lR/LusIgdA+G7YeSLHjxdcC96tOSqSyalVamS42ORs0=";
cargoHash = "sha256-wBEimPiht7VN3lQfPlflrG2L47bfNnipK/JmurKqHrg=";
nativeBuildInputs = [
asciidoctor

View File

@ -12,16 +12,16 @@ let
in
rustPlatform.buildRustPackage rec {
pname = "railway";
version = "3.14.0";
version = "3.14.1";
src = fetchFromGitHub {
owner = "railwayapp";
repo = "cli";
rev = "v${version}";
hash = "sha256-W9p987yn04Ije6JXFndHXB4rENGBTIiRmCh6fDhXJ4I=";
hash = "sha256-w52PzDRApKuRgJLYxY8ikqNOo6rC0kLCKWh8tgFzcIY=";
};
cargoHash = "sha256-/Lot/Cxg/BUp4MFp6VkJHR7jy7mUe7qwJDhPS8kOeUk=";
cargoHash = "sha256-6VjloZ8s5LqyYPz1uMwdkwvHIhXjmifjd46PIx5d8xQ=";
nativeBuildInputs = [ pkg-config ];

View File

@ -1,28 +1,31 @@
{ lib
, clangStdenv
, cargo
, copyDesktopItems
, fetchFromGitHub
, flutter316
, ffmpeg
, gst_all_1
, fuse3
, libXtst
, libaom
, libopus
, libpulseaudio
, libva
, libvdpau
, libvpx
, libxkbcommon
, libyuv
, pam
, makeDesktopItem
, rustPlatform
, rustc
, rustfmt
, xdotool
}: let
{
lib,
clangStdenv,
cargo,
copyDesktopItems,
fetchFromGitHub,
flutter316,
ffmpeg,
gst_all_1,
fuse3,
libXtst,
libaom,
libopus,
libpulseaudio,
libva,
libvdpau,
libvpx,
libxkbcommon,
libyuv,
pam,
makeDesktopItem,
rustPlatform,
libayatana-appindicator,
rustc,
rustfmt,
xdotool,
}:
let
flutterRustBridge = rustPlatform.buildRustPackage rec {
pname = "flutter_rust_bridge_codegen";
@ -36,13 +39,17 @@
};
cargoHash = "sha256-dDyiptG9TKes+fXx2atwx697SWH7Rltx6xVubtTn7FM=";
cargoBuildFlags = [ "--package" "flutter_rust_bridge_codegen" ];
cargoBuildFlags = [
"--package"
"flutter_rust_bridge_codegen"
];
doCheck = false;
};
sharedLibraryExt = rustc.stdenv.hostPlatform.extensions.sharedLibrary;
in flutter316.buildFlutterApplication rec {
in
flutter316.buildFlutterApplication rec {
pname = "rustdesk";
version = "1.3.0";
src = fetchFromGitHub {
@ -76,34 +83,34 @@ in flutter316.buildFlutterApplication rec {
# and fixing the resulting errors by removing the other registry deps.
lockFile = ./Cargo.lock;
outputHashes = {
"android-wakelock-0.1.0" = "sha256-09EH/U1BBs3l4galQOrTKmPUYBgryUjfc/rqPZhdYc4=";
"arboard-3.4.0" = "sha256-lZIG5z115ExR6DcUut1rk9MrYFzSyCYH9kNGIikOPJM=";
"cacao-0.4.0-beta2" = "sha256-U5tCLeVxjmZCm7ti1u71+i116xmozPaR69pCsA4pxrM=";
"clipboard-master-4.0.0-beta.6" = "sha256-GZyzGMQOZ0iwGNZa/ZzFp8gU2tQVWZBpAbim8yb6yZA=";
"confy-0.4.0-2" = "sha256-V7BCKISrkJIxWC3WT5+B5Vav86YTQvdO9TO6A++47FU=";
"core-foundation-0.9.3" = "sha256-iB4OVmWZhuWbs9RFWvNc+RNut6rip2/50o5ZM6c0c3g=";
"evdev-0.11.5" = "sha256-aoPmjGi/PftnH6ClEWXHvIj0X3oh15ZC1q7wPC1XPr0=";
"hwcodec-0.7.0" = "sha256-pfzcaD7h/U5ou+P7qRLR56iXOkm043rF74y+Q0FsVLo=";
"impersonate_system-0.1.0" = "sha256-pIV7s2qGoCIUrhaRovBDCJaGQ/pMdJacDXJmeBpkcyI=";
"keepawake-0.4.3" = "sha256-cqSpkq/PCz+5+ZUyPy5hF6rP3fBzuZDywyxMUQ50Rk4=";
"machine-uid-0.3.0" = "sha256-rEOyNThg6p5oqE9URnxSkPtzyW8D4zKzLi9pAnzTElE=";
"magnum-opus-0.4.0" = "sha256-T4qaYOl8lCK1h9jWa9KqGvnVfDViT9Ob5R+YgnSw2tg=";
"pam-0.7.0" = "sha256-o47tVoFlW9RiL7O8Lvuwz7rMYQHO+5TG27XxkAdHEOE=";
"pam-sys-1.0.0-alpha4" = "sha256-5HIErVWnanLo5054NgU+DEKC2wwyiJ8AHvbx0BGbyWo=";
"parity-tokio-ipc-0.7.3-4" = "sha256-PKw2Twd2ap+tRrQxqg8T1FvpoeKn0hvBqn1Z44F1LcY=";
"rdev-0.5.0-2" = "sha256-KrzNa4sKyuVw3EV/Ec9VBNRyJy7QFR2Gu4c2WkltwUw=";
"reqwest-0.11.23" = "sha256-kEUT+gs4ziknDiGdPMLnj5pmxC5SBpLopZ8jZ34GDWc=";
"rust-pulsectl-0.2.12" = "sha256-8jXTspWvjONFcvw9/Z8C43g4BuGZ3rsG32tvLMQbtbM=";
"sciter-rs-0.5.57" = "sha256-5Nd9npdx8yQJEczHv7WmSmrE1lBfvp5z7BubTbYBg3E=";
"sysinfo-0.29.10" = "sha256-/UsFAvlWs/F7X1xT+97Fx+pnpCguoPHU3hTynqYMEs4=";
"tao-0.25.0" = "sha256-kLmx1z9Ybn/hDt2OcszEjtZytQIE+NKTIn9zNr9oEQk=";
"tfc-0.7.0" = "sha256-4plK8ttbHsBPat3/rS+4RhGzirq2Ked2wrU8cQEU1zo=";
"tokio-socks-0.5.2-1" = "sha256-i1dfNatqN4dinMcyAdLhj9hJWVsT10OWpCXsxl7pifI=";
"tray-icon-0.14.3" = "sha256-dSX7LucZaLplRrh6zLwmFzyZN4ZtwIXzAEdZzlu3gQg=";
"wallpaper-3.2.0" = "sha256-p9NRmusdA0wvF6onp1UTL0/4t7XnEAc19sqyGDnfg/Q=";
"webm-1.1.0" = "sha256-p4BMej7yvb8c/dJynRWZmwo2hxAAY96Qx6Qx2DbT8hE=";
"x11-2.19.0" = "sha256-GDCeKzUtvaLeBDmPQdyr499EjEfT6y4diBMzZVEptzc=";
"x11-clipboard-0.8.1" = "sha256-PtqmSD2MwkbLVWbfTSXZW3WEvEnUlo04qieUTjN2whE=";
"android-wakelock-0.1.0" = "sha256-09EH/U1BBs3l4galQOrTKmPUYBgryUjfc/rqPZhdYc4=";
"arboard-3.4.0" = "sha256-lZIG5z115ExR6DcUut1rk9MrYFzSyCYH9kNGIikOPJM=";
"cacao-0.4.0-beta2" = "sha256-U5tCLeVxjmZCm7ti1u71+i116xmozPaR69pCsA4pxrM=";
"clipboard-master-4.0.0-beta.6" = "sha256-GZyzGMQOZ0iwGNZa/ZzFp8gU2tQVWZBpAbim8yb6yZA=";
"confy-0.4.0-2" = "sha256-V7BCKISrkJIxWC3WT5+B5Vav86YTQvdO9TO6A++47FU=";
"core-foundation-0.9.3" = "sha256-iB4OVmWZhuWbs9RFWvNc+RNut6rip2/50o5ZM6c0c3g=";
"evdev-0.11.5" = "sha256-aoPmjGi/PftnH6ClEWXHvIj0X3oh15ZC1q7wPC1XPr0=";
"hwcodec-0.7.0" = "sha256-pfzcaD7h/U5ou+P7qRLR56iXOkm043rF74y+Q0FsVLo=";
"impersonate_system-0.1.0" = "sha256-pIV7s2qGoCIUrhaRovBDCJaGQ/pMdJacDXJmeBpkcyI=";
"keepawake-0.4.3" = "sha256-cqSpkq/PCz+5+ZUyPy5hF6rP3fBzuZDywyxMUQ50Rk4=";
"machine-uid-0.3.0" = "sha256-rEOyNThg6p5oqE9URnxSkPtzyW8D4zKzLi9pAnzTElE=";
"magnum-opus-0.4.0" = "sha256-T4qaYOl8lCK1h9jWa9KqGvnVfDViT9Ob5R+YgnSw2tg=";
"pam-0.7.0" = "sha256-o47tVoFlW9RiL7O8Lvuwz7rMYQHO+5TG27XxkAdHEOE=";
"pam-sys-1.0.0-alpha4" = "sha256-5HIErVWnanLo5054NgU+DEKC2wwyiJ8AHvbx0BGbyWo=";
"parity-tokio-ipc-0.7.3-4" = "sha256-PKw2Twd2ap+tRrQxqg8T1FvpoeKn0hvBqn1Z44F1LcY=";
"rdev-0.5.0-2" = "sha256-KrzNa4sKyuVw3EV/Ec9VBNRyJy7QFR2Gu4c2WkltwUw=";
"reqwest-0.11.23" = "sha256-kEUT+gs4ziknDiGdPMLnj5pmxC5SBpLopZ8jZ34GDWc=";
"rust-pulsectl-0.2.12" = "sha256-8jXTspWvjONFcvw9/Z8C43g4BuGZ3rsG32tvLMQbtbM=";
"sciter-rs-0.5.57" = "sha256-5Nd9npdx8yQJEczHv7WmSmrE1lBfvp5z7BubTbYBg3E=";
"sysinfo-0.29.10" = "sha256-/UsFAvlWs/F7X1xT+97Fx+pnpCguoPHU3hTynqYMEs4=";
"tao-0.25.0" = "sha256-kLmx1z9Ybn/hDt2OcszEjtZytQIE+NKTIn9zNr9oEQk=";
"tfc-0.7.0" = "sha256-4plK8ttbHsBPat3/rS+4RhGzirq2Ked2wrU8cQEU1zo=";
"tokio-socks-0.5.2-1" = "sha256-i1dfNatqN4dinMcyAdLhj9hJWVsT10OWpCXsxl7pifI=";
"tray-icon-0.14.3" = "sha256-dSX7LucZaLplRrh6zLwmFzyZN4ZtwIXzAEdZzlu3gQg=";
"wallpaper-3.2.0" = "sha256-p9NRmusdA0wvF6onp1UTL0/4t7XnEAc19sqyGDnfg/Q=";
"webm-1.1.0" = "sha256-p4BMej7yvb8c/dJynRWZmwo2hxAAY96Qx6Qx2DbT8hE=";
"x11-2.19.0" = "sha256-GDCeKzUtvaLeBDmPQdyr499EjEfT6y4diBMzZVEptzc=";
"x11-clipboard-0.8.1" = "sha256-PtqmSD2MwkbLVWbfTSXZW3WEvEnUlo04qieUTjN2whE=";
};
};
dontCargoBuild = true;
@ -147,11 +154,17 @@ in flutter316.buildFlutterApplication rec {
prePatch = ''
chmod -R +w ..
'';
patchFlags = [ "-p1" "-d" ".." ];
patchFlags = [
"-p1"
"-d"
".."
];
patches = [ ./make-build-reproducible.patch ];
postPatch = ''
substituteInPlace $cargoDepsCopy/libappindicator-sys-*/src/lib.rs \
--replace-fail "libayatana-appindicator3.so.1" "${lib.getLib libayatana-appindicator}/lib/libayatana-appindicator3.so.1"
substituteInPlace ../Cargo.toml --replace-fail ", \"staticlib\", \"rlib\"" ""
# The supplied Cargo.lock doesn't work with our fetcher so copy over the fixed version
cp ${./Cargo.lock} ../Cargo.lock
@ -201,7 +214,11 @@ in flutter316.buildFlutterApplication rec {
terminal = false;
type = "Application";
startupNotify = true;
categories = [ "Network" "RemoteAccess" "GTK" ];
categories = [
"Network"
"RemoteAccess"
"GTK"
];
keywords = [ "internet" ];
actions.new-window = {
name = "Open a New Window";

View File

@ -16,13 +16,13 @@
stdenv.mkDerivation (finalAttrs: {
pname = "saunafs";
version = "4.5.0";
version = "4.5.1";
src = fetchFromGitHub {
owner = "leil-io";
repo = "saunafs";
rev = "v${finalAttrs.version}";
hash = "sha256-jimq+Dx3RoJmnUDcfCkgE6Hk7OvPH/fs1v/Nri8Xtz8=";
hash = "sha256-oMFS5eNNzCpaineCLn0hh3bXGw3SNdj+Pdvk3pevIZg=";
};
patches = [

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