Project import generated by Copybara.

GitOrigin-RevId: 689b76bcf36055afdeb2e9852f5ecdd2bf483f87
This commit is contained in:
Default email 2022-01-23 03:10:13 +01:00
parent 4065f9ac28
commit e811e7b8dc
119 changed files with 2099 additions and 2020 deletions

View file

@ -48,6 +48,10 @@
system.nixos.versionSuffix = system.nixos.versionSuffix =
".${final.substring 0 8 (self.lastModifiedDate or self.lastModified or "19700101")}.${self.shortRev or "dirty"}"; ".${final.substring 0 8 (self.lastModifiedDate or self.lastModified or "19700101")}.${self.shortRev or "dirty"}";
system.nixos.revision = final.mkIf (self ? rev) self.rev; system.nixos.revision = final.mkIf (self ? rev) self.rev;
# NOTE: This assumes that `nixpkgs.config` is _not_ used when
# nixpkgs.pkgs is set OR _module.args.pkgs is set.
nixpkgs.config.path = self.outPath;
} }
]; ];
}); });
@ -62,7 +66,7 @@
}).nixos.manual.x86_64-linux; }).nixos.manual.x86_64-linux;
}; };
legacyPackages = forAllSystems (system: import ./. { inherit system; }); legacyPackages = forAllSystems (system: import ./. { inherit system; config.path = self.outPath; });
nixosModules = { nixosModules = {
notDetected = import ./nixos/modules/installer/scan/not-detected.nix; notDetected = import ./nixos/modules/installer/scan/not-detected.nix;

View file

@ -6800,6 +6800,17 @@
fingerprint = "CC50 F82C 985D 2679 0703 AF15 19B0 82B3 DEFE 5451"; fingerprint = "CC50 F82C 985D 2679 0703 AF15 19B0 82B3 DEFE 5451";
}]; }];
}; };
leixb = {
email = "abone9999+nixpkgs@gmail.com";
matrix = "@leix_b:matrix.org";
github = "LeixB";
githubId = 17183803;
name = "Aleix Boné";
keys = [{
longkeyid = "rsa4096/0xFC035BB2BB28E15D";
fingerprint = "63D3 F436 EDE8 7E1F 1292 24AF FC03 5BB2 BB28 E15D";
}];
};
lejonet = { lejonet = {
email = "daniel@kuehn.se"; email = "daniel@kuehn.se";
github = "lejonet"; github = "lejonet";

View file

@ -534,6 +534,19 @@
will now correctly remove those domains during rebuild/renew. will now correctly remove those domains during rebuild/renew.
</para> </para>
</listitem> </listitem>
<listitem>
<para>
MariaDB is now offered in several versions, not just the
newest one. So if you have a need for running MariaDB 10.4 for
example, you can now just set
<literal>services.mysql.package = pkgs.mariadb_104;</literal>.
In general, it is recommended to run the newest version, to
get the newest features, while sticking with an LTS version
will most likely provide a more stable experience. Sometimes
software is also incompatible with the newest version of
MariaDB.
</para>
</listitem>
<listitem> <listitem>
<para> <para>
The option The option

View file

@ -184,6 +184,11 @@ In addition to numerous new and upgraded packages, this release has the followin
- Removing domains from `security.acme.certs._name_.extraDomainNames` - Removing domains from `security.acme.certs._name_.extraDomainNames`
will now correctly remove those domains during rebuild/renew. will now correctly remove those domains during rebuild/renew.
- MariaDB is now offered in several versions, not just the newest one.
So if you have a need for running MariaDB 10.4 for example, you can now just set `services.mysql.package = pkgs.mariadb_104;`.
In general, it is recommended to run the newest version, to get the newest features, while sticking with an LTS version will most likely provide a more stable experience.
Sometimes software is also incompatible with the newest version of MariaDB.
- The option - The option
[programs.ssh.enableAskPassword](#opt-programs.ssh.enableAskPassword) was [programs.ssh.enableAskPassword](#opt-programs.ssh.enableAskPassword) was
added, decoupling the setting of `SSH_ASKPASS` from added, decoupling the setting of `SSH_ASKPASS` from

View file

@ -61,17 +61,85 @@ let
in scrubbedEval.options; in scrubbedEval.options;
baseOptionsJSON = baseOptionsJSON =
let let
filter = filterIntoStore =
builtins.filterSource builtins.filterSource
(n: t: (n: t:
(t == "directory" -> baseNameOf n != "tests") (t == "directory" -> baseNameOf n != "tests")
&& (t == "file" -> hasSuffix ".nix" n) && (t == "file" -> hasSuffix ".nix" n)
); );
# Figure out if Nix runs in pure evaluation mode. May return true in
# impure mode, but this is highly unlikely.
# We need to know because of https://github.com/NixOS/nix/issues/1888
# and https://github.com/NixOS/nix/issues/5868
isPureEval = builtins.getEnv "PATH" == "" && builtins.getEnv "_" == "";
# Return a nixpkgs subpath with minimal copying.
#
# The sources for the base options json derivation can come in one of
# two forms:
# - single source: a store path with all of nixpkgs, postfix with
# subpaths to access various directories. This has the benefit of
# not creating copies of these subtrees in the Nix store, but
# can cause unnecessary rebuilds if you update the Nixpkgs `pkgs`
# tree often.
# - split sources: multiple store paths with subdirectories of
# nixpkgs that exclude the bulk of the pkgs directory.
# This requires more copying and hashing during evaluation but
# requires fewer files to be copied. This method produces fewer
# unnecessary rebuilds of the base options json.
#
# Flake
#
# Flakes always put a copy of the full nixpkgs sources in the store,
# so we can use the "single source" method. This method is ideal
# for using nixpkgs as a dependency, as the base options json will be
# substitutable from cache.nixos.org.
#
# This requires that the `self.outPath` is wired into `pkgs` correctly,
# which is done for you if `pkgs` comes from the `lib.nixosSystem` or
# `legacyPackages` flake attributes.
#
# Other Nixpkgs invocation
#
# If you do not use the known-correct flake attributes, but rather
# invoke Nixpkgs yourself, set `config.path` to the correct path value,
# e.g. `import nixpkgs { config.path = nixpkgs; }`.
#
# Choosing between single or split source paths
#
# We make assumptions based on the type and contents of `pkgs.path`.
# By passing a different `config.path` to Nixpkgs, you can influence
# how your documentation cache is evaluated and rebuilt.
#
# Single source
# - If pkgs.path is a string containing a store path, the code has no
# choice but to create this store path, if it hasn't already been.
# We assume that the "single source" method is most efficient.
# - If pkgs.path is a path value containing that is a store path,
# we try to convert it to a string with context without copying.
# This occurs for example when nixpkgs was fetched and using its
# default `config.path`, which is `./.`.
# Nix currently does not allow this conversion when evaluating in
# pure mode. If the conversion is not possible, we use the
# "split source" method.
#
# Split source
# - If pkgs.path is a path value that is not a store path, we assume
# that it's unlikely for all of nixpkgs to end up in the store for
# other reasons and try to keep both the copying and rebuilds low.
pull =
if builtins.typeOf pkgs.path == "string" && isStorePath pkgs.path then
dir: "${pkgs.path}/${dir}"
else if !isPureEval && isStorePath pkgs.path then
dir: "${builtins.storePath pkgs.path}/${dir}"
else
dir: filterIntoStore "${toString pkgs.path}/${dir}";
in in
pkgs.runCommand "lazy-options.json" { pkgs.runCommand "lazy-options.json" {
libPath = filter "${toString pkgs.path}/lib"; libPath = pull "lib";
pkgsLibPath = filter "${toString pkgs.path}/pkgs/pkgs-lib"; pkgsLibPath = pull "pkgs/pkgs-lib";
nixosPath = filter "${toString pkgs.path}/nixos"; nixosPath = pull "nixos";
modules = map (p: ''"${removePrefix "${modulesPath}/" (toString p)}"'') docModules.lazy; modules = map (p: ''"${removePrefix "${modulesPath}/" (toString p)}"'') docModules.lazy;
} '' } ''
export NIX_STORE_DIR=$TMPDIR/store export NIX_STORE_DIR=$TMPDIR/store

View file

@ -59,6 +59,8 @@ let
inherit (cfg) config overlays localSystem crossSystem; inherit (cfg) config overlays localSystem crossSystem;
}; };
# NOTE: flake.nix assumes that nixpkgs.config is only used with ../../..
# as nixpkgs.config.path should be equivalent to ../../..
finalPkgs = if opt.pkgs.isDefined then cfg.pkgs.appendOverlays cfg.overlays else defaultPkgs; finalPkgs = if opt.pkgs.isDefined then cfg.pkgs.appendOverlays cfg.overlays else defaultPkgs;
in in

View file

@ -87,8 +87,12 @@ in {
port = mkOption { port = mkOption {
type = types.port; type = types.port;
default = 6379; default = if name == "" then 6379 else 0;
description = "The port for Redis to listen to."; defaultText = literalExpression ''if name == "" then 6379 else 0'';
description = ''
The TCP port to accept connections.
If port 0 is specified Redis will not listen on a TCP socket.
'';
}; };
openFirewall = mkOption { openFirewall = mkOption {
@ -102,7 +106,7 @@ in {
bind = mkOption { bind = mkOption {
type = with types; nullOr str; type = with types; nullOr str;
default = if name == "" then "127.0.0.1" else null; default = if name == "" then "127.0.0.1" else null;
defaultText = "127.0.0.1 or null if name != \"\""; defaultText = literalExpression ''if name == "" then "127.0.0.1" else null'';
description = '' description = ''
The IP interface to bind to. The IP interface to bind to.
<literal>null</literal> means "all interfaces". <literal>null</literal> means "all interfaces".
@ -253,7 +257,7 @@ in {
}; };
config.settings = mkMerge [ config.settings = mkMerge [
{ {
port = if config.bind == null then 0 else config.port; port = config.port;
daemonize = false; daemonize = false;
supervised = "systemd"; supervised = "systemd";
loglevel = config.logLevel; loglevel = config.logLevel;

View file

@ -38,7 +38,7 @@ let
ssl_cert = <${cfg.sslServerCert} ssl_cert = <${cfg.sslServerCert}
ssl_key = <${cfg.sslServerKey} ssl_key = <${cfg.sslServerKey}
${optionalString (cfg.sslCACert != null) ("ssl_ca = <" + cfg.sslCACert)} ${optionalString (cfg.sslCACert != null) ("ssl_ca = <" + cfg.sslCACert)}
ssl_dh = <${config.security.dhparams.params.dovecot2.path} ${optionalString cfg.enableDHE ''ssl_dh = <${config.security.dhparams.params.dovecot2.path}''}
disable_plaintext_auth = yes disable_plaintext_auth = yes
'' ''
) )
@ -169,25 +169,13 @@ in
]; ];
options.services.dovecot2 = { options.services.dovecot2 = {
enable = mkEnableOption "Dovecot 2.x POP3/IMAP server"; enable = mkEnableOption "the dovecot 2.x POP3/IMAP server";
enablePop3 = mkOption { enablePop3 = mkEnableOption "starting the POP3 listener (when Dovecot is enabled).";
type = types.bool;
default = false;
description = "Start the POP3 listener (when Dovecot is enabled).";
};
enableImap = mkOption { enableImap = mkEnableOption "starting the IMAP listener (when Dovecot is enabled)." // { default = true; };
type = types.bool;
default = true;
description = "Start the IMAP listener (when Dovecot is enabled).";
};
enableLmtp = mkOption { enableLmtp = mkEnableOption "starting the LMTP listener (when Dovecot is enabled).";
type = types.bool;
default = false;
description = "Start the LMTP listener (when Dovecot is enabled).";
};
protocols = mkOption { protocols = mkOption {
type = types.listOf types.str; type = types.listOf types.str;
@ -279,13 +267,9 @@ in
description = "Default group to store mail for virtual users."; description = "Default group to store mail for virtual users.";
}; };
createMailUser = mkOption { createMailUser = mkEnableOption ''automatically creating the user
type = types.bool; given in <option>services.dovecot.user</option> and the group
default = true; given in <option>services.dovecot.group</option>.'' // { default = true; };
description = ''Whether to automatically create the user
given in <option>services.dovecot.user</option> and the group
given in <option>services.dovecot.group</option>.'';
};
modules = mkOption { modules = mkOption {
type = types.listOf types.package; type = types.listOf types.package;
@ -316,11 +300,9 @@ in
description = "Path to the server's private key."; description = "Path to the server's private key.";
}; };
enablePAM = mkOption { enablePAM = mkEnableOption "creating a own Dovecot PAM service and configure PAM user logins." // { default = true; };
type = types.bool;
default = true; enableDHE = mkEnableOption "enable ssl_dh and generation of primes for the key exchange." // { default = true; };
description = "Whether to create a own Dovecot PAM service and configure PAM user logins.";
};
sieveScripts = mkOption { sieveScripts = mkOption {
type = types.attrsOf types.path; type = types.attrsOf types.path;
@ -328,11 +310,7 @@ in
description = "Sieve scripts to be executed. Key is a sequence, e.g. 'before2', 'after' etc."; description = "Sieve scripts to be executed. Key is a sequence, e.g. 'before2', 'after' etc.";
}; };
showPAMFailure = mkOption { showPAMFailure = mkEnableOption "showing the PAM failure message on authentication error (useful for OTPW).";
type = types.bool;
default = false;
description = "Show the PAM failure message on authentication error (useful for OTPW).";
};
mailboxes = mkOption { mailboxes = mkOption {
type = with types; coercedTo type = with types; coercedTo
@ -348,12 +326,7 @@ in
description = "Configure mailboxes and auto create or subscribe them."; description = "Configure mailboxes and auto create or subscribe them.";
}; };
enableQuota = mkOption { enableQuota = mkEnableOption "the dovecot quota service.";
type = types.bool;
default = false;
example = true;
description = "Whether to enable the dovecot quota service.";
};
quotaPort = mkOption { quotaPort = mkOption {
type = types.str; type = types.str;
@ -376,7 +349,7 @@ in
config = mkIf cfg.enable { config = mkIf cfg.enable {
security.pam.services.dovecot2 = mkIf cfg.enablePAM {}; security.pam.services.dovecot2 = mkIf cfg.enablePAM {};
security.dhparams = mkIf (cfg.sslServerCert != null) { security.dhparams = mkIf (cfg.sslServerCert != null && cfg.enableDHE) {
enable = true; enable = true;
params.dovecot2 = {}; params.dovecot2 = {};
}; };

View file

@ -268,8 +268,7 @@ in
mailcatcher = handleTest ./mailcatcher.nix {}; mailcatcher = handleTest ./mailcatcher.nix {};
mailhog = handleTest ./mailhog.nix {}; mailhog = handleTest ./mailhog.nix {};
man = handleTest ./man.nix {}; man = handleTest ./man.nix {};
mariadb-galera-mariabackup = handleTest ./mysql/mariadb-galera-mariabackup.nix {}; mariadb-galera = handleTest ./mysql/mariadb-galera.nix {};
mariadb-galera-rsync = handleTest ./mysql/mariadb-galera-rsync.nix {};
matomo = handleTest ./matomo.nix {}; matomo = handleTest ./matomo.nix {};
matrix-appservice-irc = handleTest ./matrix-appservice-irc.nix {}; matrix-appservice-irc = handleTest ./matrix-appservice-irc.nix {};
matrix-conduit = handleTest ./matrix-conduit.nix {}; matrix-conduit = handleTest ./matrix-conduit.nix {};

View file

@ -33,6 +33,8 @@ import ./make-test-python.nix ({ pkgs, ... }: {
#include <linux/sched/signal.h> #include <linux/sched/signal.h>
#endif #endif
MODULE_LICENSE("GPL");
struct task_struct *canaryTask; struct task_struct *canaryTask;
static int kcanary(void *nothing) static int kcanary(void *nothing)

View file

@ -0,0 +1,10 @@
{ lib, pkgs }: {
mariadbPackages = lib.filterAttrs (n: _: lib.hasPrefix "mariadb" n) (pkgs.callPackage ../../../pkgs/servers/sql/mariadb {
inherit (pkgs.darwin) cctools;
inherit (pkgs.darwin.apple_sdk.frameworks) CoreServices;
});
mysqlPackage = {
inherit (pkgs) mysql57 mysql80;
};
mkTestName = pkg: "mariadb_${builtins.replaceStrings ["."] [""] (lib.versions.majorMinor pkg.version)}";
}

View file

@ -1,233 +0,0 @@
import ./../make-test-python.nix ({ pkgs, ...} :
let
mysqlenv-common = pkgs.buildEnv { name = "mysql-path-env-common"; pathsToLink = [ "/bin" ]; paths = with pkgs; [ bash gawk gnutar inetutils which ]; };
mysqlenv-mariabackup = pkgs.buildEnv { name = "mysql-path-env-mariabackup"; pathsToLink = [ "/bin" ]; paths = with pkgs; [ gzip iproute2 netcat procps pv socat ]; };
# Common user configuration
users = { ... }:
{
users.users.testuser = {
isSystemUser = true;
group = "testusers";
};
users.groups.testusers = { };
};
in {
name = "mariadb-galera-mariabackup";
meta = with pkgs.lib.maintainers; {
maintainers = [ izorkin ];
};
# 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 = {
galera_01 =
{ pkgs, ... }:
{
imports = [ users ];
networking = {
interfaces.eth1 = {
ipv4.addresses = [
{ address = "192.168.1.1"; prefixLength = 24; }
];
};
extraHosts = ''
192.168.1.1 galera_01
192.168.1.2 galera_02
192.168.1.3 galera_03
'';
firewall.allowedTCPPorts = [ 3306 4444 4567 4568 ];
firewall.allowedUDPPorts = [ 4567 ];
};
systemd.services.mysql = with pkgs; {
path = [ mysqlenv-common mysqlenv-mariabackup ];
};
services.mysql = {
enable = true;
package = pkgs.mariadb;
ensureDatabases = [ "testdb" ];
ensureUsers = [{
name = "testuser";
ensurePermissions = {
"testdb.*" = "ALL PRIVILEGES";
};
}];
initialScript = 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 = "${pkgs.mariadb-galera}/lib/galera/libgalera_smm.so";
wsrep_cluster_address = "gcomm://";
wsrep_cluster_name = "galera";
wsrep_node_address = "192.168.1.1";
wsrep_node_name = "galera_01";
wsrep_sst_method = "mariabackup";
wsrep_sst_auth = "check_repl:check_pass";
binlog_format = "ROW";
enforce_storage_engine = "InnoDB";
innodb_autoinc_lock_mode = "2";
};
};
};
};
galera_02 =
{ pkgs, ... }:
{
imports = [ users ];
networking = {
interfaces.eth1 = {
ipv4.addresses = [
{ address = "192.168.1.2"; prefixLength = 24; }
];
};
extraHosts = ''
192.168.1.1 galera_01
192.168.1.2 galera_02
192.168.1.3 galera_03
'';
firewall.allowedTCPPorts = [ 3306 4444 4567 4568 ];
firewall.allowedUDPPorts = [ 4567 ];
};
systemd.services.mysql = with pkgs; {
path = [ mysqlenv-common mysqlenv-mariabackup ];
};
services.mysql = {
enable = true;
package = pkgs.mariadb;
settings = {
mysqld = {
bind_address = "0.0.0.0";
};
galera = {
wsrep_on = "ON";
wsrep_debug = "NONE";
wsrep_retry_autocommit = "3";
wsrep_provider = "${pkgs.mariadb-galera}/lib/galera/libgalera_smm.so";
wsrep_cluster_address = "gcomm://galera_01,galera_02,galera_03";
wsrep_cluster_name = "galera";
wsrep_node_address = "192.168.1.2";
wsrep_node_name = "galera_02";
wsrep_sst_method = "mariabackup";
wsrep_sst_auth = "check_repl:check_pass";
binlog_format = "ROW";
enforce_storage_engine = "InnoDB";
innodb_autoinc_lock_mode = "2";
};
};
};
};
galera_03 =
{ pkgs, ... }:
{
imports = [ users ];
networking = {
interfaces.eth1 = {
ipv4.addresses = [
{ address = "192.168.1.3"; prefixLength = 24; }
];
};
extraHosts = ''
192.168.1.1 galera_01
192.168.1.2 galera_02
192.168.1.3 galera_03
'';
firewall.allowedTCPPorts = [ 3306 4444 4567 4568 ];
firewall.allowedUDPPorts = [ 4567 ];
};
systemd.services.mysql = with pkgs; {
path = [ mysqlenv-common mysqlenv-mariabackup ];
};
services.mysql = {
enable = true;
package = pkgs.mariadb;
settings = {
mysqld = {
bind_address = "0.0.0.0";
};
galera = {
wsrep_on = "ON";
wsrep_debug = "NONE";
wsrep_retry_autocommit = "3";
wsrep_provider = "${pkgs.mariadb-galera}/lib/galera/libgalera_smm.so";
wsrep_cluster_address = "gcomm://galera_01,galera_02,galera_03";
wsrep_cluster_name = "galera";
wsrep_node_address = "192.168.1.3";
wsrep_node_name = "galera_03";
wsrep_sst_method = "mariabackup";
wsrep_sst_auth = "check_repl:check_pass";
binlog_format = "ROW";
enforce_storage_engine = "InnoDB";
innodb_autoinc_lock_mode = "2";
};
};
};
};
};
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;'")
'';
})

View file

@ -1,226 +0,0 @@
import ./../make-test-python.nix ({ pkgs, ...} :
let
mysqlenv-common = pkgs.buildEnv { name = "mysql-path-env-common"; pathsToLink = [ "/bin" ]; paths = with pkgs; [ bash gawk gnutar inetutils which ]; };
mysqlenv-rsync = pkgs.buildEnv { name = "mysql-path-env-rsync"; pathsToLink = [ "/bin" ]; paths = with pkgs; [ lsof procps rsync stunnel ]; };
# Common user configuration
users = { ... }:
{
users.users.testuser = {
isSystemUser = true;
group = "testusers";
};
users.groups.testusers = { };
};
in {
name = "mariadb-galera-rsync";
meta = with pkgs.lib.maintainers; {
maintainers = [ izorkin ];
};
# The test creates a Galera cluster with 3 nodes and is checking if rsync-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 = {
galera_04 =
{ pkgs, ... }:
{
imports = [ users ];
networking = {
interfaces.eth1 = {
ipv4.addresses = [
{ address = "192.168.2.1"; prefixLength = 24; }
];
};
extraHosts = ''
192.168.2.1 galera_04
192.168.2.2 galera_05
192.168.2.3 galera_06
'';
firewall.allowedTCPPorts = [ 3306 4444 4567 4568 ];
firewall.allowedUDPPorts = [ 4567 ];
};
systemd.services.mysql = with pkgs; {
path = [ mysqlenv-common mysqlenv-rsync ];
};
services.mysql = {
enable = true;
package = pkgs.mariadb;
ensureDatabases = [ "testdb" ];
ensureUsers = [{
name = "testuser";
ensurePermissions = {
"testdb.*" = "ALL PRIVILEGES";
};
}];
settings = {
mysqld = {
bind_address = "0.0.0.0";
};
galera = {
wsrep_on = "ON";
wsrep_debug = "NONE";
wsrep_retry_autocommit = "3";
wsrep_provider = "${pkgs.mariadb-galera}/lib/galera/libgalera_smm.so";
wsrep_cluster_address = "gcomm://";
wsrep_cluster_name = "galera-rsync";
wsrep_node_address = "192.168.2.1";
wsrep_node_name = "galera_04";
wsrep_sst_method = "rsync";
binlog_format = "ROW";
enforce_storage_engine = "InnoDB";
innodb_autoinc_lock_mode = "2";
};
};
};
};
galera_05 =
{ pkgs, ... }:
{
imports = [ users ];
networking = {
interfaces.eth1 = {
ipv4.addresses = [
{ address = "192.168.2.2"; prefixLength = 24; }
];
};
extraHosts = ''
192.168.2.1 galera_04
192.168.2.2 galera_05
192.168.2.3 galera_06
'';
firewall.allowedTCPPorts = [ 3306 4444 4567 4568 ];
firewall.allowedUDPPorts = [ 4567 ];
};
systemd.services.mysql = with pkgs; {
path = [ mysqlenv-common mysqlenv-rsync ];
};
services.mysql = {
enable = true;
package = pkgs.mariadb;
settings = {
mysqld = {
bind_address = "0.0.0.0";
};
galera = {
wsrep_on = "ON";
wsrep_debug = "NONE";
wsrep_retry_autocommit = "3";
wsrep_provider = "${pkgs.mariadb-galera}/lib/galera/libgalera_smm.so";
wsrep_cluster_address = "gcomm://galera_04,galera_05,galera_06";
wsrep_cluster_name = "galera-rsync";
wsrep_node_address = "192.168.2.2";
wsrep_node_name = "galera_05";
wsrep_sst_method = "rsync";
binlog_format = "ROW";
enforce_storage_engine = "InnoDB";
innodb_autoinc_lock_mode = "2";
};
};
};
};
galera_06 =
{ pkgs, ... }:
{
imports = [ users ];
networking = {
interfaces.eth1 = {
ipv4.addresses = [
{ address = "192.168.2.3"; prefixLength = 24; }
];
};
extraHosts = ''
192.168.2.1 galera_04
192.168.2.2 galera_05
192.168.2.3 galera_06
'';
firewall.allowedTCPPorts = [ 3306 4444 4567 4568 ];
firewall.allowedUDPPorts = [ 4567 ];
};
systemd.services.mysql = with pkgs; {
path = [ mysqlenv-common mysqlenv-rsync ];
};
services.mysql = {
enable = true;
package = pkgs.mariadb;
settings = {
mysqld = {
bind_address = "0.0.0.0";
};
galera = {
wsrep_on = "ON";
wsrep_debug = "NONE";
wsrep_retry_autocommit = "3";
wsrep_provider = "${pkgs.mariadb-galera}/lib/galera/libgalera_smm.so";
wsrep_cluster_address = "gcomm://galera_04,galera_05,galera_06";
wsrep_cluster_name = "galera-rsync";
wsrep_node_address = "192.168.2.3";
wsrep_node_name = "galera_06";
wsrep_sst_method = "rsync";
binlog_format = "ROW";
enforce_storage_engine = "InnoDB";
innodb_autoinc_lock_mode = "2";
};
};
};
};
};
testScript = ''
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;'")
'';
})

View file

@ -0,0 +1,250 @@
{
system ? builtins.currentSystem,
config ? {},
pkgs ? import ../../.. { inherit system config; },
lib ? pkgs.lib
}:
let
inherit (import ./common.nix { inherit pkgs lib; }) mkTestName mariadbPackages;
makeTest = import ./../make-test-python.nix;
# Common user configuration
makeGaleraTest = {
mariadbPackage,
name ? mkTestName mariadbPackage,
galeraPackage ? pkgs.mariadb-galera
}: makeTest {
name = "${name}-galera-mariabackup";
meta = with pkgs.lib.maintainers; {
maintainers = [ izorkin ajs124 das_j ];
};
# 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

View file

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

View file

@ -1,56 +1,72 @@
# Test whether mysqlBackup option works {
import ./../make-test-python.nix ({ pkgs, ... } : { system ? builtins.currentSystem,
name = "mysql-backup"; config ? {},
meta = with pkgs.lib.maintainers; { pkgs ? import ../../.. { inherit system config; },
maintainers = [ rvl ]; lib ? pkgs.lib
}; }:
nodes = { let
master = { pkgs, ... }: { inherit (import ./common.nix { inherit pkgs lib; }) mkTestName mariadbPackages;
services.mysql = {
enable = true;
initialDatabases = [ { name = "testdb"; schema = ./testdb.sql; } ];
package = pkgs.mariadb;
};
services.mysqlBackup = { makeTest = import ./../make-test-python.nix;
enable = true;
databases = [ "doesnotexist" "testdb" ]; makeBackupTest = {
package,
name ? mkTestName package
}: makeTest {
name = "${name}-backup";
meta = with pkgs.lib.maintainers; {
maintainers = [ rvl ];
};
nodes = {
master = { pkgs, ... }: {
services.mysql = {
inherit package;
enable = true;
initialDatabases = [ { name = "testdb"; schema = ./testdb.sql; } ];
};
services.mysqlBackup = {
enable = true;
databases = [ "doesnotexist" "testdb" ];
};
}; };
}; };
testScript = ''
start_all()
# Delete backup file that may be left over from a previous test run.
# This is not needed on Hydra but useful for repeated local test runs.
master.execute("rm -f /var/backup/mysql/testdb.gz")
# Need to have mysql started so that it can be populated with data.
master.wait_for_unit("mysql.service")
# Wait for testdb to be fully populated (5 rows).
master.wait_until_succeeds(
"mysql -u root -D testdb -N -B -e 'select count(id) from tests' | grep -q 5"
)
# Do a backup and wait for it to start
master.start_job("mysql-backup.service")
master.wait_for_unit("mysql-backup.service")
# wait for backup to fail, because of database 'doesnotexist'
master.wait_until_fails("systemctl is-active -q mysql-backup.service")
# wait for backup file and check that data appears in backup
master.wait_for_file("/var/backup/mysql/testdb.gz")
master.succeed(
"${pkgs.gzip}/bin/zcat /var/backup/mysql/testdb.gz | grep hello"
)
# Check that a failed backup is logged
master.succeed(
"journalctl -u mysql-backup.service | grep 'fail.*doesnotexist' > /dev/null"
)
'';
}; };
in
testScript = '' lib.mapAttrs (_: package: makeBackupTest { inherit package; }) mariadbPackages
start_all()
# Delete backup file that may be left over from a previous test run.
# This is not needed on Hydra but useful for repeated local test runs.
master.execute("rm -f /var/backup/mysql/testdb.gz")
# Need to have mysql started so that it can be populated with data.
master.wait_for_unit("mysql.service")
# Wait for testdb to be fully populated (5 rows).
master.wait_until_succeeds(
"mysql -u root -D testdb -N -B -e 'select count(id) from tests' | grep -q 5"
)
# Do a backup and wait for it to start
master.start_job("mysql-backup.service")
master.wait_for_unit("mysql-backup.service")
# wait for backup to fail, because of database 'doesnotexist'
master.wait_until_fails("systemctl is-active -q mysql-backup.service")
# wait for backup file and check that data appears in backup
master.wait_for_file("/var/backup/mysql/testdb.gz")
master.succeed(
"${pkgs.gzip}/bin/zcat /var/backup/mysql/testdb.gz | grep hello"
)
# Check that a failed backup is logged
master.succeed(
"journalctl -u mysql-backup.service | grep 'fail.*doesnotexist' > /dev/null"
)
'';
})

View file

@ -1,91 +1,101 @@
import ./../make-test-python.nix ({ pkgs, ...} : {
system ? builtins.currentSystem,
config ? {},
pkgs ? import ../../.. { inherit system config; },
lib ? pkgs.lib
}:
let let
inherit (import ./common.nix { inherit pkgs lib; }) mkTestName mariadbPackages;
replicateUser = "replicate"; replicateUser = "replicate";
replicatePassword = "secret"; replicatePassword = "secret";
in
{ makeTest = import ./../make-test-python.nix;
name = "mysql-replication";
meta = with pkgs.lib.maintainers; {
maintainers = [ eelco shlevy ];
};
nodes = { makeReplicationTest = {
master = package,
{ pkgs, ... }: name ? mkTestName package,
}: makeTest {
name = "${name}-replication";
meta = with pkgs.lib.maintainers; {
maintainers = [ ajs124 das_j ];
};
{ nodes = {
services.mysql.enable = true; primary = {
services.mysql.package = pkgs.mariadb; services.mysql = {
services.mysql.replication.role = "master"; inherit package;
services.mysql.replication.slaveHost = "%"; enable = true;
services.mysql.replication.masterUser = replicateUser; replication.role = "master";
services.mysql.replication.masterPassword = replicatePassword; replication.slaveHost = "%";
services.mysql.initialDatabases = [ { name = "testdb"; schema = ./testdb.sql; } ]; replication.masterUser = replicateUser;
replication.masterPassword = replicatePassword;
initialDatabases = [ { name = "testdb"; schema = ./testdb.sql; } ];
};
networking.firewall.allowedTCPPorts = [ 3306 ]; networking.firewall.allowedTCPPorts = [ 3306 ];
}; };
slave1 = secondary1 = { nodes, ... }: {
{ pkgs, nodes, ... }: services.mysql = {
inherit package;
{ enable = true;
services.mysql.enable = true; replication.role = "slave";
services.mysql.package = pkgs.mariadb; replication.serverId = 2;
services.mysql.replication.role = "slave"; replication.masterHost = nodes.primary.config.networking.hostName;
services.mysql.replication.serverId = 2; replication.masterUser = replicateUser;
services.mysql.replication.masterHost = nodes.master.config.networking.hostName; replication.masterPassword = replicatePassword;
services.mysql.replication.masterUser = replicateUser; };
services.mysql.replication.masterPassword = replicatePassword;
}; };
slave2 = secondary2 = { nodes, ... }: {
{ pkgs, nodes, ... }: services.mysql = {
inherit package;
{ enable = true;
services.mysql.enable = true; replication.role = "slave";
services.mysql.package = pkgs.mariadb; replication.serverId = 3;
services.mysql.replication.role = "slave"; replication.masterHost = nodes.primary.config.networking.hostName;
services.mysql.replication.serverId = 3; replication.masterUser = replicateUser;
services.mysql.replication.masterHost = nodes.master.config.networking.hostName; replication.masterPassword = replicatePassword;
services.mysql.replication.masterUser = replicateUser; };
services.mysql.replication.masterPassword = replicatePassword;
}; };
};
testScript = ''
primary.start()
primary.wait_for_unit("mysql")
primary.wait_for_open_port(3306)
# Wait for testdb to be fully populated (5 rows).
primary.wait_until_succeeds(
"sudo -u mysql mysql -u mysql -D testdb -N -B -e 'select count(id) from tests' | grep -q 5"
)
secondary1.start()
secondary2.start()
secondary1.wait_for_unit("mysql")
secondary1.wait_for_open_port(3306)
secondary2.wait_for_unit("mysql")
secondary2.wait_for_open_port(3306)
# wait for replications to finish
secondary1.wait_until_succeeds(
"sudo -u mysql mysql -u mysql -D testdb -N -B -e 'select count(id) from tests' | grep -q 5"
)
secondary2.wait_until_succeeds(
"sudo -u mysql mysql -u mysql -D testdb -N -B -e 'select count(id) from tests' | grep -q 5"
)
secondary2.succeed("systemctl stop mysql")
primary.succeed(
"echo 'insert into testdb.tests values (123, 456);' | sudo -u mysql mysql -u mysql -N"
)
secondary2.succeed("systemctl start mysql")
secondary2.wait_for_unit("mysql")
secondary2.wait_for_open_port(3306)
secondary2.wait_until_succeeds(
"echo 'select * from testdb.tests where Id = 123;' | sudo -u mysql mysql -u mysql -N | grep 456"
)
'';
}; };
in
testScript = '' lib.mapAttrs (_: package: makeReplicationTest { inherit package; }) mariadbPackages
master.start()
master.wait_for_unit("mysql")
master.wait_for_open_port(3306)
# Wait for testdb to be fully populated (5 rows).
master.wait_until_succeeds(
"sudo -u mysql mysql -u mysql -D testdb -N -B -e 'select count(id) from tests' | grep -q 5"
)
slave1.start()
slave2.start()
slave1.wait_for_unit("mysql")
slave1.wait_for_open_port(3306)
slave2.wait_for_unit("mysql")
slave2.wait_for_open_port(3306)
# wait for replications to finish
slave1.wait_until_succeeds(
"sudo -u mysql mysql -u mysql -D testdb -N -B -e 'select count(id) from tests' | grep -q 5"
)
slave2.wait_until_succeeds(
"sudo -u mysql mysql -u mysql -D testdb -N -B -e 'select count(id) from tests' | grep -q 5"
)
slave2.succeed("systemctl stop mysql")
master.succeed(
"echo 'insert into testdb.tests values (123, 456);' | sudo -u mysql mysql -u mysql -N"
)
slave2.succeed("systemctl start mysql")
slave2.wait_for_unit("mysql")
slave2.wait_for_open_port(3306)
slave2.wait_until_succeeds(
"echo 'select * from testdb.tests where Id = 123;' | sudo -u mysql mysql -u mysql -N | grep 456"
)
'';
})

View file

@ -1,221 +1,149 @@
import ./../make-test-python.nix ({ pkgs, ...}: {
system ? builtins.currentSystem,
config ? {},
pkgs ? import ../../.. { inherit system config; },
lib ? pkgs.lib
}:
let let
inherit (import ./common.nix { inherit pkgs lib; }) mkTestName mariadbPackages mysqlPackages;
makeTest = import ./../make-test-python.nix;
# Setup common users # Setup common users
users = { ... }: makeMySQLTest = {
{ package,
users.groups.testusers = { }; name ? mkTestName package,
useSocketAuth ? true,
users.users.testuser = { hasMroonga ? true,
isSystemUser = true; hasRocksDB ? true
group = "testusers"; }: makeTest {
inherit name;
meta = with lib.maintainers; {
maintainers = [ ajs124 das_j ];
}; };
users.users.testuser2 = { nodes = {
isSystemUser = true; ${name} =
group = "testusers"; { pkgs, ... }: {
};
};
in users = {
groups.testusers = { };
{ users.testuser = {
name = "mysql"; isSystemUser = true;
meta = with pkgs.lib.maintainers; { group = "testusers";
maintainers = [ eelco shlevy ]; };
};
nodes = { users.testuser2 = {
mysql57 = isSystemUser = true;
{ pkgs, ... }: group = "testusers";
};
{
imports = [ users ];
services.mysql.enable = true;
services.mysql.initialDatabases = [
{ name = "testdb3"; schema = ./testdb.sql; }
];
# note that using pkgs.writeText here is generally not a good idea,
# as it will store the password in world-readable /nix/store ;)
services.mysql.initialScript = pkgs.writeText "mysql-init.sql" ''
CREATE USER 'testuser3'@'localhost' IDENTIFIED BY 'secure';
GRANT ALL PRIVILEGES ON testdb3.* TO 'testuser3'@'localhost';
'';
services.mysql.ensureDatabases = [ "testdb" "testdb2" ];
services.mysql.ensureUsers = [{
name = "testuser";
ensurePermissions = {
"testdb.*" = "ALL PRIVILEGES";
}; };
} {
name = "testuser2";
ensurePermissions = {
"testdb2.*" = "ALL PRIVILEGES";
};
}];
services.mysql.package = pkgs.mysql57;
};
mysql80 = services.mysql = {
{ pkgs, ... }: enable = true;
initialDatabases = [
{ name = "testdb3"; schema = ./testdb.sql; }
];
# note that using pkgs.writeText here is generally not a good idea,
# as it will store the password in world-readable /nix/store ;)
initialScript = pkgs.writeText "mysql-init.sql" (if (!useSocketAuth) then ''
CREATE USER 'testuser3'@'localhost' IDENTIFIED BY 'secure';
GRANT ALL PRIVILEGES ON testdb3.* TO 'testuser3'@'localhost';
'' else ''
ALTER USER root@localhost IDENTIFIED WITH unix_socket;
DELETE FROM mysql.user WHERE password = ''' AND plugin = ''';
DELETE FROM mysql.user WHERE user = ''';
FLUSH PRIVILEGES;
'');
{ ensureDatabases = [ "testdb" "testdb2" ];
imports = [ users ]; ensureUsers = [{
name = "testuser";
services.mysql.enable = true; ensurePermissions = {
services.mysql.initialDatabases = [ "testdb.*" = "ALL PRIVILEGES";
{ name = "testdb3"; schema = ./testdb.sql; } };
]; } {
# note that using pkgs.writeText here is generally not a good idea, name = "testuser2";
# as it will store the password in world-readable /nix/store ;) ensurePermissions = {
services.mysql.initialScript = pkgs.writeText "mysql-init.sql" '' "testdb2.*" = "ALL PRIVILEGES";
CREATE USER 'testuser3'@'localhost' IDENTIFIED BY 'secure'; };
GRANT ALL PRIVILEGES ON testdb3.* TO 'testuser3'@'localhost'; }];
''; package = package;
services.mysql.ensureDatabases = [ "testdb" "testdb2" ]; settings = {
services.mysql.ensureUsers = [{ mysqld = {
name = "testuser"; plugin-load-add = lib.optional hasMroonga "ha_mroonga.so"
ensurePermissions = { ++ lib.optional hasRocksDB "ha_rocksdb.so";
"testdb.*" = "ALL PRIVILEGES"; };
}; };
} {
name = "testuser2";
ensurePermissions = {
"testdb2.*" = "ALL PRIVILEGES";
};
}];
services.mysql.package = pkgs.mysql80;
};
mariadb =
{ pkgs, ... }:
{
imports = [ users ];
services.mysql.enable = true;
services.mysql.initialScript = pkgs.writeText "mariadb-init.sql" ''
ALTER USER root@localhost IDENTIFIED WITH unix_socket;
DELETE FROM mysql.user WHERE password = ''' AND plugin = ''';
DELETE FROM mysql.user WHERE user = ''';
FLUSH PRIVILEGES;
'';
services.mysql.ensureDatabases = [ "testdb" "testdb2" ];
services.mysql.ensureUsers = [{
name = "testuser";
ensurePermissions = {
"testdb.*" = "ALL PRIVILEGES";
};
} {
name = "testuser2";
ensurePermissions = {
"testdb2.*" = "ALL PRIVILEGES";
};
}];
services.mysql.settings = {
mysqld = {
plugin-load-add = [ "ha_mroonga.so" "ha_rocksdb.so" ];
}; };
}; };
services.mysql.package = pkgs.mariadb;
};
mariadb = {
};
};
testScript = ''
start_all()
machine = ${name}
machine.wait_for_unit("mysql")
machine.succeed(
"echo 'use testdb; create table tests (test_id INT, PRIMARY KEY (test_id));' | sudo -u testuser mysql -u testuser"
)
machine.succeed(
"echo 'use testdb; insert into tests values (42);' | sudo -u testuser mysql -u testuser"
)
# Ensure testuser2 is not able to insert into testdb as mysql testuser2
machine.fail(
"echo 'use testdb; insert into tests values (23);' | sudo -u testuser2 mysql -u testuser2"
)
# Ensure testuser2 is not able to authenticate as mysql testuser
machine.fail(
"echo 'use testdb; insert into tests values (23);' | sudo -u testuser2 mysql -u testuser"
)
machine.succeed(
"echo 'use testdb; select test_id from tests;' | sudo -u testuser mysql -u testuser -N | grep 42"
)
${lib.optionalString hasMroonga ''
# Check if Mroonga plugin works
machine.succeed(
"echo 'use testdb; create table mroongadb (test_id INT, PRIMARY KEY (test_id)) ENGINE = Mroonga;' | sudo -u testuser mysql -u testuser"
)
machine.succeed(
"echo 'use testdb; insert into mroongadb values (25);' | sudo -u testuser mysql -u testuser"
)
machine.succeed(
"echo 'use testdb; select test_id from mroongadb;' | sudo -u testuser mysql -u testuser -N | grep 25"
)
machine.succeed(
"echo 'use testdb; drop table mroongadb;' | sudo -u testuser mysql -u testuser"
)
''}
${lib.optionalString hasRocksDB ''
# Check if RocksDB plugin works
machine.succeed(
"echo 'use testdb; create table rocksdb (test_id INT, PRIMARY KEY (test_id)) ENGINE = RocksDB;' | sudo -u testuser mysql -u testuser"
)
machine.succeed(
"echo 'use testdb; insert into rocksdb values (28);' | sudo -u testuser mysql -u testuser"
)
machine.succeed(
"echo 'use testdb; select test_id from rocksdb;' | sudo -u testuser mysql -u testuser -N | grep 28"
)
machine.succeed(
"echo 'use testdb; drop table rocksdb;' | sudo -u testuser mysql -u testuser"
)
''}
'';
}; };
in
testScript = '' lib.mapAttrs (_: package: makeMySQLTest {
start_all() inherit package;
hasRocksDB = false; hasMroonga = false;
mysql57.wait_for_unit("mysql") }) mysqlPackages
mysql57.succeed( // (lib.mapAttrs (_: package: makeMySQLTest {
"echo 'use testdb; create table tests (test_id INT, PRIMARY KEY (test_id));' | sudo -u testuser mysql -u testuser" inherit package;
) }) mariadbPackages)
mysql57.succeed(
"echo 'use testdb; insert into tests values (41);' | sudo -u testuser mysql -u testuser"
)
# Ensure testuser2 is not able to insert into testdb as mysql testuser2
mysql57.fail(
"echo 'use testdb; insert into tests values (22);' | sudo -u testuser2 mysql -u testuser2"
)
# Ensure testuser2 is not able to authenticate as mysql testuser
mysql57.fail(
"echo 'use testdb; insert into tests values (22);' | sudo -u testuser2 mysql -u testuser"
)
mysql57.succeed(
"echo 'use testdb; select test_id from tests;' | sudo -u testuser mysql -u testuser -N | grep 41"
)
mysql57.succeed(
"echo 'use testdb3; select * from tests;' | mysql -u testuser3 --password=secure -N | grep 4"
)
mysql80.wait_for_unit("mysql")
mysql80.succeed(
"echo 'use testdb; create table tests (test_id INT, PRIMARY KEY (test_id));' | sudo -u testuser mysql -u testuser"
)
mysql80.succeed(
"echo 'use testdb; insert into tests values (41);' | sudo -u testuser mysql -u testuser"
)
# Ensure testuser2 is not able to insert into testdb as mysql testuser2
mysql80.fail(
"echo 'use testdb; insert into tests values (22);' | sudo -u testuser2 mysql -u testuser2"
)
# Ensure testuser2 is not able to authenticate as mysql testuser
mysql80.fail(
"echo 'use testdb; insert into tests values (22);' | sudo -u testuser2 mysql -u testuser"
)
mysql80.succeed(
"echo 'use testdb; select test_id from tests;' | sudo -u testuser mysql -u testuser -N | grep 41"
)
mysql80.succeed(
"echo 'use testdb3; select * from tests;' | mysql -u testuser3 --password=secure -N | grep 4"
)
mariadb.wait_for_unit("mysql")
mariadb.succeed(
"echo 'use testdb; create table tests (test_id INT, PRIMARY KEY (test_id));' | sudo -u testuser mysql -u testuser"
)
mariadb.succeed(
"echo 'use testdb; insert into tests values (42);' | sudo -u testuser mysql -u testuser"
)
# Ensure testuser2 is not able to insert into testdb as mysql testuser2
mariadb.fail(
"echo 'use testdb; insert into tests values (23);' | sudo -u testuser2 mysql -u testuser2"
)
# Ensure testuser2 is not able to authenticate as mysql testuser
mariadb.fail(
"echo 'use testdb; insert into tests values (23);' | sudo -u testuser2 mysql -u testuser"
)
mariadb.succeed(
"echo 'use testdb; select test_id from tests;' | sudo -u testuser mysql -u testuser -N | grep 42"
)
# Check if Mroonga plugin works
mariadb.succeed(
"echo 'use testdb; create table mroongadb (test_id INT, PRIMARY KEY (test_id)) ENGINE = Mroonga;' | sudo -u testuser mysql -u testuser"
)
mariadb.succeed(
"echo 'use testdb; insert into mroongadb values (25);' | sudo -u testuser mysql -u testuser"
)
mariadb.succeed(
"echo 'use testdb; select test_id from mroongadb;' | sudo -u testuser mysql -u testuser -N | grep 25"
)
mariadb.succeed(
"echo 'use testdb; drop table mroongadb;' | sudo -u testuser mysql -u testuser"
)
# Check if RocksDB plugin works
mariadb.succeed(
"echo 'use testdb; create table rocksdb (test_id INT, PRIMARY KEY (test_id)) ENGINE = RocksDB;' | sudo -u testuser mysql -u testuser"
)
mariadb.succeed(
"echo 'use testdb; insert into rocksdb values (28);' | sudo -u testuser mysql -u testuser"
)
mariadb.succeed(
"echo 'use testdb; select test_id from rocksdb;' | sudo -u testuser mysql -u testuser -N | grep 28"
)
mariadb.succeed(
"echo 'use testdb; drop table rocksdb;' | sudo -u testuser mysql -u testuser"
)
'';
})

View file

@ -2,13 +2,13 @@
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
pname = "praat"; pname = "praat";
version = "6.2.03"; version = "6.2.04";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "praat"; owner = "praat";
repo = "praat"; repo = "praat";
rev = "v${version}"; rev = "v${version}";
sha256 = "sha256-0WTbLEPEqPm7BI02mjlwcsewkrmIsHtNlhccqK1d6SI="; sha256 = "sha256-xzEgj4pjW+y46CXtVq4myHKX6DImCibsUz8m0G6F+YQ=";
}; };
configurePhase = '' configurePhase = ''

View file

@ -5,7 +5,7 @@
}: }:
mkDerivation rec { mkDerivation rec {
version = "0.9.5"; version = "0.9.6";
pname = "qjackctl"; pname = "qjackctl";
# some dependencies such as killall have to be installed additionally # some dependencies such as killall have to be installed additionally
@ -14,7 +14,7 @@ mkDerivation rec {
owner = "rncbc"; owner = "rncbc";
repo = "qjackctl"; repo = "qjackctl";
rev = "${pname}_${lib.replaceChars ["."] ["_"] version}"; rev = "${pname}_${lib.replaceChars ["."] ["_"] version}";
sha256 = "sha256-20oy3R0gbVXO3Da80cTYXu+BG8OfVNRLtAwHk8nRFJk="; sha256 = "sha256-8oVnUe+/y4p1WeHMEhKMIl0/ax3PT0pN4f1UJaBmZBw=";
}; };
buildInputs = [ buildInputs = [

View file

@ -5,14 +5,14 @@
mkDerivation rec { mkDerivation rec {
pname = "qpwgraph"; pname = "qpwgraph";
version = "0.1.1"; version = "0.2.0";
src = fetchFromGitLab { src = fetchFromGitLab {
domain = "gitlab.freedesktop.org"; domain = "gitlab.freedesktop.org";
owner = "rncbc"; owner = "rncbc";
repo = "qpwgraph"; repo = "qpwgraph";
rev = "v${version}"; rev = "v${version}";
sha256 = "sha256-r3FoAV0wah9fwnqyMyu8927c4Uj0zZoQNvLoXP5AP/E="; sha256 = "sha256-SGx80fMFomNEa/jgH8Yeof+f7zXCDxx3Yqd0GxHZGMw=";
}; };
nativeBuildInputs = [ cmake pkg-config ]; nativeBuildInputs = [ cmake pkg-config ];

View file

@ -30,11 +30,11 @@
mkDerivation rec { mkDerivation rec {
pname = "qtractor"; pname = "qtractor";
version = "0.9.24"; version = "0.9.25";
src = fetchurl { src = fetchurl {
url = "mirror://sourceforge/${pname}/${pname}-${version}.tar.gz"; url = "mirror://sourceforge/${pname}/${pname}-${version}.tar.gz";
sha256 = "sha256-YTT7ko5HjKrZ8DKU3L06EI7bZeBtvPl21pqUf6EaeS4="; sha256 = "sha256-cKXHH7rugTJ5D7MDJmr/fX6p209wyGMQvSLbv5T0KXU=";
}; };
nativeBuildInputs = [ nativeBuildInputs = [

View file

@ -11,11 +11,11 @@
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
pname = "drawio"; pname = "drawio";
version = "16.1.2"; version = "16.4.0";
src = fetchurl { src = fetchurl {
url = "https://github.com/jgraph/drawio-desktop/releases/download/v${version}/drawio-x86_64-${version}.rpm"; url = "https://github.com/jgraph/drawio-desktop/releases/download/v${version}/drawio-x86_64-${version}.rpm";
sha256 = "b86ff3f77b17e7da66979fe8ea878685c0018273f5d0302f10d3094d502452ee"; sha256 = "624f776478b6960adb1be565077f79aed72c95de5e995fc1216b78978c9c6857";
}; };
nativeBuildInputs = [ nativeBuildInputs = [
@ -86,6 +86,12 @@ stdenv.mkDerivation rec {
--replace /opt/drawio/drawio $out/bin/drawio --replace /opt/drawio/drawio $out/bin/drawio
''; '';
doInstallCheckPhase = true;
installCheckPhase = ''
$out/bin/drawio --help > /dev/null
'';
meta = with lib; { meta = with lib; {
description = "A desktop application for creating diagrams"; description = "A desktop application for creating diagrams";
homepage = "https://about.draw.io/"; homepage = "https://about.draw.io/";

View file

@ -1,106 +0,0 @@
{ lib, stdenv, fetchurl, glibc, libGLU, libGL, freetype, glib, libSM, libICE, libXi, libXv
, libXrender, libXrandr, libXfixes, libXcursor, libXinerama, libXext, libX11
, zlib, fontconfig, dpkg, libproxy, libxml2, gst_all_1, dbus }:
let
arch =
if stdenv.hostPlatform.system == "x86_64-linux" then "amd64"
else if stdenv.hostPlatform.system == "i686-linux" then "i386"
else throw "Unsupported system ${stdenv.hostPlatform.system}";
sha256 =
if arch == "amd64"
then "0dwnppn5snl5bwkdrgj4cyylnhngi0g66fn2k41j3dvis83x24k6"
else "0gndbxrj3kgc2dhjqwjifr3cl85hgpm695z0wi01wvwzhrjqs0l2";
version = "7.1.8.3036";
fullPath = lib.makeLibraryPath [
glibc
glib
stdenv.cc.cc
libSM
libICE
libXi
libXv
libGLU libGL
libXrender
libXrandr
libXfixes
libXcursor
libXinerama
freetype
libXext
libX11
zlib
fontconfig
libproxy
libxml2
dbus
gst_all_1.gstreamer
gst_all_1.gst-plugins-base
];
in
stdenv.mkDerivation rec {
pname = "googleearth";
inherit version;
src = fetchurl {
url = "https://dl.google.com/linux/earth/deb/pool/main/g/google-earth-stable/google-earth-stable_${version}-r0_${arch}.deb";
inherit sha256;
};
phases = [ "unpackPhase" "installPhase" "checkPhase" ];
doCheck = true;
buildInputs = [ dpkg ];
unpackPhase = ''
dpkg-deb -x ${src} ./
'';
installPhase =''
mkdir $out
mv usr/* $out/
rmdir usr
mv * $out/
rm $out/bin/google-earth $out/opt/google/earth/free/googleearth
# patch and link googleearth binary
ln -s $out/opt/google/earth/free/googleearth-bin $out/bin/googleearth
patchelf --interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" \
--set-rpath "${fullPath}:\$ORIGIN" \
$out/opt/google/earth/free/googleearth-bin
# patch and link gpsbabel binary
ln -s $out/opt/google/earth/free/gpsbabel $out/bin/gpsbabel
patchelf --interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" \
--set-rpath "${fullPath}:\$ORIGIN" \
$out/opt/google/earth/free/gpsbabel
# patch libraries
for a in $out/opt/google/earth/free/*.so* ; do
patchelf --set-rpath "${fullPath}:\$ORIGIN" $a
done
# Add desktop config file and icons
mkdir -p $out/share/{applications,icons/hicolor/{16x16,22x22,24x24,32x32,48x48,64x64,128x128,256x256}/apps,pixmaps}
ln -s $out/opt/google/earth/free/google-earth.desktop $out/share/applications/google-earth.desktop
sed -i -e "s|Exec=.*|Exec=$out/bin/googleearth|g" $out/opt/google/earth/free/google-earth.desktop
for size in 16 22 24 32 48 64 128 256; do
ln -s $out/opt/google/earth/free/product_logo_"$size".png $out/share/icons/hicolor/"$size"x"$size"/apps/google-earth.png
done
ln -s $out/opt/google/earth/free/product_logo_256.png $out/share/pixmaps/google-earth.png
'';
checkPhase = ''
$out/bin/gpsbabel -V > /dev/null
'';
dontPatchELF = true;
meta = with lib; {
description = "A world sphere viewer";
homepage = "http://earth.google.com";
license = licenses.unfree;
maintainers = with maintainers; [ markus1189 ];
platforms = platforms.linux;
};
}

View file

@ -1,82 +1,77 @@
{ stdenv, { stdenv
lib, , lib
makeWrapper, , fetchurl
fetchurl, , libgccjit
dpkg, , dpkg
makeDesktopItem, , makeDesktopItem
copyDesktopItems, , copyDesktopItems
autoPatchelfHook, , autoPatchelfHook
gst_all_1, , sane-backends
sane-backends, , jdk11
xorg, }:
gnome2,
alsa-lib,
libgccjit,
jdk11
}:
let # See also package 'pdfstudioviewer'
year = "2021"; # Differences are ${pname}, Download directory name (PDFStudio / PDFStudioViewer),
major = "1"; # sha256, and libgccjit (not needed for PDFStudioViewer)
minor = "2"; let year = "2021";
in stdenv.mkDerivation rec { in
stdenv.mkDerivation rec {
pname = "pdfstudio"; pname = "pdfstudio";
version = "${year}.${major}.${minor}"; version = "${year}.1.2";
autoPatchelfIgnoreMissingDeps = true; strictDeps = true;
src = fetchurl { src = fetchurl {
url = "https://download.qoppa.com/${pname}/v${year}/PDFStudio_v${year}_${major}_${minor}_linux64.deb"; url = "https://download.qoppa.com/${pname}/v${year}/PDFStudio_v${
builtins.replaceStrings [ "." ] [ "_" ] version
}_linux64.deb";
sha256 = "1188ll2qz58rr2slavqxisbz4q3fdzidpasb1p33926z0ym3rk45"; sha256 = "1188ll2qz58rr2slavqxisbz4q3fdzidpasb1p33926z0ym3rk45";
}; };
nativeBuildInputs = [ buildInputs = [
gst_all_1.gst-libav libgccjit #for libstdc++.so.6 and libgomp.so.1
sane-backends sane-backends #for libsane.so.1
xorg.libXxf86vm jdk11
xorg.libXtst
gnome2.libgtkhtml
alsa-lib
libgccjit
autoPatchelfHook
makeWrapper
dpkg
copyDesktopItems
jdk11 # only for unpacking .jar.pack files
]; ];
desktopItems = [(makeDesktopItem { nativeBuildInputs = [
name = "${pname}${year}"; autoPatchelfHook
desktopName = "PDF Studio"; dpkg
genericName = "View and edit PDF files"; copyDesktopItems
exec = "${pname} %f"; ];
icon = "${pname}${year}";
comment = "Views and edits PDF files"; desktopItems = [
mimeType = "application/pdf"; (makeDesktopItem {
categories = "Office"; name = "${pname}${year}";
type = "Application"; desktopName = "PDF Studio";
terminal = false; genericName = "View and edit PDF files";
})]; exec = "${pname} %f";
icon = "${pname}${year}";
comment = "Views and edits PDF files";
mimeType = "application/pdf";
categories = "Office";
type = "Application";
terminal = false;
})
];
unpackPhase = "dpkg-deb -x $src ."; unpackPhase = "dpkg-deb -x $src .";
dontConfigure = true;
dontBuild = true; dontBuild = true;
postPatch = ''
substituteInPlace opt/${pname}${year}/${pname}${year} --replace "# INSTALL4J_JAVA_HOME_OVERRIDE=" "INSTALL4J_JAVA_HOME_OVERRIDE=${jdk11.out}"
substituteInPlace opt/${pname}${year}/updater --replace "# INSTALL4J_JAVA_HOME_OVERRIDE=" "INSTALL4J_JAVA_HOME_OVERRIDE=${jdk11.out}"
'';
installPhase = '' installPhase = ''
runHook preInstall runHook preInstall
mkdir -p $out/bin mkdir -p $out/bin
mkdir -p $out/share mkdir -p $out/share
mkdir -p $out/share/applications
mkdir -p $out/share/pixmaps mkdir -p $out/share/pixmaps
cp -r opt/${pname}${year} $out/share/ cp -r opt/${pname}${year} $out/share/
rm -rf $out/share/${pname}${year}/jre
ln -s $out/share/${pname}${year}/.install4j/${pname}${year}.png $out/share/pixmaps/ ln -s $out/share/${pname}${year}/.install4j/${pname}${year}.png $out/share/pixmaps/
makeWrapper $out/share/${pname}${year}/${pname}${year} $out/bin/${pname} ln -s $out/share/${pname}${year}/${pname}${year} $out/bin/${pname}
#Unpack jar files. Otherwise pdfstudio does this and fails due to read-only FS.
for pfile in $out/share/${pname}${year}/jre/lib/{,ext/}*.jar.pack; do
jar_file=`echo "$pfile" | awk '{ print substr($0,1,length($0)-5) }'`
unpack200 -r "$pfile" "$jar_file"
done
runHook postInstall runHook postInstall
''; '';
@ -86,6 +81,7 @@ in stdenv.mkDerivation rec {
description = "An easy to use, full-featured PDF editing software"; description = "An easy to use, full-featured PDF editing software";
license = licenses.unfree; license = licenses.unfree;
platforms = platforms.linux; platforms = platforms.linux;
mainProgram = pname;
maintainers = [ maintainers.pwoelfel ]; maintainers = [ maintainers.pwoelfel ];
}; };
} }

View file

@ -8,13 +8,13 @@
python3.pkgs.buildPythonApplication rec { python3.pkgs.buildPythonApplication rec {
pname = "scli"; pname = "scli";
version = "0.6.5"; version = "0.6.6";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "isamert"; owner = "isamert";
repo = pname; repo = pname;
rev = "v${version}"; rev = "v${version}";
sha256 = "1lykxkqscvpzb7bvl8kfaf23mjhr2kaaqdg0756xx4z1m0smpkgy"; sha256 = "16hfp8dn270amrilvv3sjqhq2x295kw0cxszf63jh405z3ql834g";
}; };
propagatedBuildInputs = with python3.pkgs; [ propagatedBuildInputs = with python3.pkgs; [

View file

@ -19,9 +19,9 @@
} }
}, },
"beta": { "beta": {
"version": "98.0.4758.54", "version": "98.0.4758.66",
"sha256": "0w3pvp23y0vyj9p7j6nfxgnnzc5jyjn65k1khx0i333hs97vidbc", "sha256": "06hdd2cy6mdiiwbrn2jawmcidxbf46z9wyklkm3mmzbrj1xrh0gd",
"sha256bin64": "1qxkqw45jzcrg2ziqh4npg19a52b5j1hvag4n5qlrq4bfblsbwwh", "sha256bin64": "0r1lmgvvxb1h6p20gzp8qwdfs4czvqyg6bgp4wb2aax1n0448rbr",
"deps": { "deps": {
"gn": { "gn": {
"version": "2021-12-07", "version": "2021-12-07",
@ -32,15 +32,15 @@
} }
}, },
"dev": { "dev": {
"version": "99.0.4818.0", "version": "99.0.4840.0",
"sha256": "1k8xzmybrmwgcyg4n7x3gj486rpwic17m6i5ij9nmfzcxx7fbwlm", "sha256": "0l1azyd7an8nw2gjnn313gn6sljvw6lbd9g59s7d59lpn2bmbc7j",
"sha256bin64": "1jfqmv94ami3n6hzp9ycczqv3lh3wijsf555mg62rv4rdvw5adm6", "sha256bin64": "145qjhdmi39aaw0a3sarlgi67rjhik1xbm62rw7ba0wgnrbvvrjb",
"deps": { "deps": {
"gn": { "gn": {
"version": "2022-01-07", "version": "2022-01-10",
"url": "https://gn.googlesource.com/gn", "url": "https://gn.googlesource.com/gn",
"rev": "f1b1412521b41e47118b29863224171e434a27a2", "rev": "80a40b07305373617eba2d5878d353532af77da3",
"sha256": "1cxq991by7sa5k1hvb5xx98bfqgq7rdbw3cawhyyqq91a521wsb7" "sha256": "1103lf38h7412949j6nrk48m2vv2rrxacn42sjg33lg88nyv7skv"
} }
} }
}, },

View file

@ -44,7 +44,7 @@
, libvaSupport ? true, libva , libvaSupport ? true, libva
# For Vulkan support (--enable-features=Vulkan) # For Vulkan support (--enable-features=Vulkan)
, vulkanSupport ? true, vulkan-loader , addOpenGLRunpath
}: }:
with lib; with lib;
@ -70,7 +70,6 @@ let
libxkbcommon pipewire wayland libxkbcommon pipewire wayland
] ++ optional pulseSupport libpulseaudio ] ++ optional pulseSupport libpulseaudio
++ optional libvaSupport libva ++ optional libvaSupport libva
++ optional vulkanSupport vulkan-loader
++ [ gtk3 ]; ++ [ gtk3 ];
suffix = if channel != "stable" then "-" + channel else ""; suffix = if channel != "stable" then "-" + channel else "";
@ -143,7 +142,7 @@ in stdenv.mkDerivation {
makeWrapper "$out/share/google/$appname/google-$appname" "$exe" \ makeWrapper "$out/share/google/$appname/google-$appname" "$exe" \
--prefix LD_LIBRARY_PATH : "$rpath" \ --prefix LD_LIBRARY_PATH : "$rpath" \
--prefix PATH : "$binpath" \ --prefix PATH : "$binpath" \
--prefix XDG_DATA_DIRS : "$XDG_ICON_DIRS:$GSETTINGS_SCHEMAS_PATH" \ --prefix XDG_DATA_DIRS : "$XDG_ICON_DIRS:$GSETTINGS_SCHEMAS_PATH:${addOpenGLRunpath.driverLink}/share" \
--add-flags ${escapeShellArg commandLineArgs} --add-flags ${escapeShellArg commandLineArgs}
for elf in $out/share/google/$appname/{chrome,chrome-sandbox,${crashpadHandlerBinary},nacl_helper}; do for elf in $out/share/google/$appname/{chrome,chrome-sandbox,${crashpadHandlerBinary},nacl_helper}; do

View file

@ -2,15 +2,15 @@
buildGoModule rec { buildGoModule rec {
pname = "argocd"; pname = "argocd";
version = "2.2.2"; version = "2.2.3";
commit = "03b17e0233e64787ffb5fcf65c740cc2a20822ba"; commit = "afbd59ba636cfd999fe6ead8a84323413882e230";
tag = "v${version}"; tag = "v${version}";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "argoproj"; owner = "argoproj";
repo = "argo-cd"; repo = "argo-cd";
rev = tag; rev = tag;
sha256 = "sha256-xExtGKM3iNgX849xmLcgIwRbXJSJnGDuVhRMkti+Mkc="; sha256 = "sha256-Lw4/VmwD/IF2GEFzQP1kerXrST1kvWvG2nr/br/tO0w=";
}; };
vendorSha256 = "sha256-BVhts+gOM6nhcR1lkFzy7OJnainLXw5YdeseBBRF2xE="; vendorSha256 = "sha256-BVhts+gOM6nhcR1lkFzy7OJnainLXw5YdeseBBRF2xE=";

View file

@ -2,14 +2,14 @@
python3Packages.buildPythonApplication rec { python3Packages.buildPythonApplication rec {
pname = "flexget"; pname = "flexget";
version = "3.2.8"; version = "3.2.11";
# Fetch from GitHub in order to use `requirements.in` # Fetch from GitHub in order to use `requirements.in`
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "flexget"; owner = "flexget";
repo = "flexget"; repo = "flexget";
rev = "v${version}"; rev = "v${version}";
sha256 = "0hr19f678pyd7mnzclfv7imh9s2m01k92dza1csyfacclvri8m07"; sha256 = "1l9xy8k0imfdg4r03k659f85z945bksx672gqhkchf2svi2vnvql";
}; };
postPatch = '' postPatch = ''

View file

@ -24,7 +24,7 @@ let
in stdenv.mkDerivation rec { in stdenv.mkDerivation rec {
pname = "signal-desktop"; pname = "signal-desktop";
version = "5.27.0"; # Please backport all updates to the stable channel. version = "5.27.1"; # Please backport all updates to the stable channel.
# All releases have a limited lifetime and "expire" 90 days after the release. # All releases have a limited lifetime and "expire" 90 days after the release.
# When releases "expire" the application becomes unusable until an update is # When releases "expire" the application becomes unusable until an update is
# applied. The expiration date for the current release can be extracted with: # applied. The expiration date for the current release can be extracted with:
@ -34,7 +34,7 @@ in stdenv.mkDerivation rec {
src = fetchurl { src = fetchurl {
url = "https://updates.signal.org/desktop/apt/pool/main/s/signal-desktop/signal-desktop_${version}_amd64.deb"; url = "https://updates.signal.org/desktop/apt/pool/main/s/signal-desktop/signal-desktop_${version}_amd64.deb";
sha256 = "1agxn4fcgln5lsccvw5b7g2psv6nv2y7qm5df201c9pbwjak74nm"; sha256 = "0z0v7q0rpxdx7ic78jv7wp1hq8nrfp51jjdr6d85x0hsfdj0z1mc";
}; };
nativeBuildInputs = [ nativeBuildInputs = [

View file

@ -1,16 +1,30 @@
{ lib, stdenv, fetchurl, python2, rcs, git, makeWrapper }: { lib
, stdenv
, fetchurl
, python
, rcs
, git
, makeWrapper
}:
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
pname = "src"; pname = "src";
version = "1.28"; version = "1.29";
src = fetchurl { src = fetchurl {
url = "http://www.catb.org/~esr/src/${pname}-${version}.tar.gz"; url = "http://www.catb.org/~esr/src/${pname}-${version}.tar.gz";
sha256 = "1fkr5z3mlj13djz9w1sb644wc7r1fywz52qq97byw1yyw0bqyi7f"; sha256 = "sha256-Tc+qBhLtC9u23BrqVniAprAV8YhXELvbMn+XxN5BQkE=";
}; };
nativeBuildInputs = [ makeWrapper ]; nativeBuildInputs = [
buildInputs = [ python2 rcs git ]; makeWrapper
];
buildInputs = [
python
rcs
git
];
preConfigure = '' preConfigure = ''
patchShebangs . patchShebangs .
@ -24,6 +38,7 @@ stdenv.mkDerivation rec {
''; '';
meta = with lib; { meta = with lib; {
homepage = "http://www.catb.org/esr/src/";
description = "Simple single-file revision control"; description = "Simple single-file revision control";
longDescription = '' longDescription = ''
SRC, acronym of Simple Revision Control, is RCS/SCCS reloaded with a SRC, acronym of Simple Revision Control, is RCS/SCCS reloaded with a
@ -33,10 +48,9 @@ stdenv.mkDerivation rec {
will seem familiar to Subversion/Git/hg users, and no binary blobs will seem familiar to Subversion/Git/hg users, and no binary blobs
anywhere. anywhere.
''; '';
homepage = "http://www.catb.org/esr/src/";
changelog = "https://gitlab.com/esr/src/raw/${version}/NEWS"; changelog = "https://gitlab.com/esr/src/raw/${version}/NEWS";
license = licenses.bsd2; license = licenses.bsd2;
platforms = platforms.all;
maintainers = with maintainers; [ calvertvl AndersonTorres ]; maintainers = with maintainers; [ calvertvl AndersonTorres ];
inherit (python.meta) platforms;
}; };
} }

View file

@ -1,4 +1,4 @@
{ lib, buildKodiAddon, fetchzip, addonUpdateScript, requests, xbmcswift2 }: { lib, buildKodiAddon, fetchzip, addonUpdateScript, dateutil, requests, xbmcswift2 }:
buildKodiAddon rec { buildKodiAddon rec {
pname = "arteplussept"; pname = "arteplussept";
@ -11,6 +11,7 @@ buildKodiAddon rec {
}; };
propagatedBuildInputs = [ propagatedBuildInputs = [
dateutil
requests requests
xbmcswift2 xbmcswift2
]; ];

View file

@ -1,7 +1,7 @@
{ fetchurl, lib, stdenv }: { fetchurl, lib, stdenv }:
let let
version = "0.24.5"; version = "0.25.2";
suffix = { suffix = {
x86_64-linux = "x86_64"; x86_64-linux = "x86_64";
@ -22,15 +22,15 @@ stdenv.mkDerivation {
sourceRoot = "."; sourceRoot = ".";
src = dlbin { src = dlbin {
x86_64-linux = "sha256-drcm2kz2csuJqr8Oqs0r1BrxgPHOyuwC2S+99MhbMjA="; x86_64-linux = "sha256-ZzlPq+Q9XfWQJr+7nKS0e6bfKwYNfpMHSiBIKeOr/s4=";
aarch64-linux = "sha256-x8RoBmgY3HRUOLw8YzEwQfQuT83zGfBHHWu88b4i05o="; aarch64-linux = "sha256-75UC+HeVUfUk1HRvTJsOHbHHkgr6me1OtxDF7lahf68=";
}; };
dontConfigure = true; dontConfigure = true;
buildPhase = '' buildPhase = ''
mv release-v${version}/firecracker-v${version}-${suffix} firecracker mv release-v${version}-${suffix}/firecracker-v${version}-${suffix} firecracker
mv release-v${version}/jailer-v${version}-${suffix} jailer mv release-v${version}-${suffix}/jailer-v${version}-${suffix} jailer
chmod +x firecracker jailer chmod +x firecracker jailer
''; '';

View file

@ -28,15 +28,13 @@
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
pname = "elementary-calendar"; pname = "elementary-calendar";
version = "6.0.3"; version = "6.1.0";
repoName = "calendar";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "elementary"; owner = "elementary";
repo = repoName; repo = "calendar";
rev = version; rev = version;
sha256 = "sha256-+RQUiJLuCIbmcbtsOCfF9HYFrxtldZMbg2vg/a/IOaY="; sha256 = "sha256-LaVJ7QLc0UdSLgLIuHP4Anc7kPUelZW9PnIWuqKGtEQ=";
}; };
nativeBuildInputs = [ nativeBuildInputs = [

View file

@ -1,28 +1,23 @@
{ lib, stdenv, fetchurl, autoconf, automake }: { lib, stdenv, fetchFromGitHub }:
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
pname = "avra"; pname = "avra";
version = "1.3.0"; version = "1.4.2";
src = fetchurl { src = fetchFromGitHub {
url = "mirror://sourceforge/avra/avra-${version}.tar.bz2"; owner = "Ro5bert";
sha256 = "04lp0k0h540l5pmnaai07637f0p4zi766v6sfm7cryfaca3byb56"; repo = pname;
rev = version;
hash = "sha256-joOj89WZ9Si5fcu1w1VHj5fOcnB9N2313Yb29A+nCCY=";
}; };
buildInputs = [ autoconf automake ]; makeFlags = [ "PREFIX=${placeholder "out"}" ];
preConfigure = '' doCheck = true;
cd src/
aclocal
autoconf
touch NEWS README AUTHORS ChangeLog
automake -a
'';
meta = with lib; { meta = with lib; {
description = "Assembler for the Atmel AVR microcontroller family"; description = "Assembler for the Atmel AVR microcontroller family";
homepage = "http://avra.sourceforge.net/"; homepage = "https://github.com/Ro5bert/avra";
license = licenses.gpl2Plus; license = licenses.gpl2Plus;
platforms = platforms.all; platforms = platforms.all;
}; };

View file

@ -1,36 +1,45 @@
{ lib, stdenv, fetchzip, fpc , lang ? "en" } : { lib, stdenv, fetchzip, fpc , lang ? "en" } :
assert lib.assertOneOf "lang" lang ["cn" "de" "en" "fr" "tr"]; assert lib.assertOneOf "lang" lang ["cn" "de" "en" "fr" "tr"];
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
pname = "gavrasm"; pname = "gavrasm";
version = "4.5"; version = "5.1";
flatVersion = lib.strings.replaceStrings ["."] [""] version;
src = fetchzip { src = fetchzip {
url ="http://www.avr-asm-tutorial.net/gavrasm/v45/gavrasm_sources_lin_45.zip"; url = "http://www.avr-asm-tutorial.net/gavrasm/v${flatVersion}/gavrasm_sources_lin_${flatVersion}.zip";
sha256 = "1f5g5ran74pznwj4g7vfqh2qhymaj3p26f2lvzbmlwq447iid52c"; sha256 = "0k94f8k4980wvhx3dpl1savpx4wqv9r5090l0skg2k8vlhsv58gf";
stripRoot=false; stripRoot=false;
}; };
nativeBuildInputs = [ fpc ]; nativeBuildInputs = [ fpc ];
configurePhase = '' configurePhase = ''
runHook preConfigure
cp gavrlang_${lang}.pas gavrlang.pas cp gavrlang_${lang}.pas gavrlang.pas
runHook postConfigure
''; '';
buildPhase = '' buildPhase = ''
runHook preBuild
fpc gavrasm.pas fpc gavrasm.pas
runHook postBuild
''; '';
installPhase = '' installPhase = ''
runHook preInstall
mkdir -p $out/bin mkdir -p $out/bin
cp gavrasm $out/bin cp gavrasm $out/bin
mkdir -p $out/doc mkdir -p $out/doc
cp instr.asm $out/doc cp instr.asm $out/doc
cp ReadMe.Txt $out/doc cp ReadMe.Txt $out/doc
cp LiesMich.Txt $out/doc cp LiesMich.Txt $out/doc
runHook postInstall
''; '';
meta = with lib; { meta = with lib; {
homepage = "http://www.avr-asm-tutorial.net/gavrasm"; homepage = "http://www.avr-asm-tutorial.net/gavrasm/";
description = "AVR Assembler for ATMEL AVR-Processors"; description = "AVR Assembler for ATMEL AVR-Processors";
license = licenses.unfree; license = licenses.unfree;
maintainers = with maintainers; [ mafo ]; maintainers = with maintainers; [ mafo ];

View file

@ -7,8 +7,8 @@ stdenv.mkDerivation {
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "revol-xut"; owner = "revol-xut";
repo = "lingua-franca-nix-releases"; repo = "lingua-franca-nix-releases";
rev = "11c6d5297cd63bf0b365a68c5ca31ec80083bd05"; rev = "d37bbfa530f0189c3e86ce0191134cdf42c6aec7";
sha256 = "DgxunzC8Ep0WdwChDHWgG5QJbJZ8UgQRXtP1HZqL9Jg="; sha256 = "/qMBOjffvShCPcbh9rJ7aVgdgZQ1hilHakjLyEhSmgs=";
}; };
buildInputs = [ jdk11_headless ]; buildInputs = [ jdk11_headless ];

View file

@ -1,4 +1,4 @@
{ lib, stdenv, fetchFromGitHub, cmake, boost, zlib }: { lib, stdenv, fetchFromGitHub, fetchpatch, cmake, boost, zlib }:
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
pname = "assimp"; pname = "assimp";
@ -12,6 +12,15 @@ stdenv.mkDerivation rec {
hash = "sha256-GNSfaP8O5IsjGwtC3DFaV4OiMMUXIcmHmz+5TCT/HP8="; hash = "sha256-GNSfaP8O5IsjGwtC3DFaV4OiMMUXIcmHmz+5TCT/HP8=";
}; };
patches = [
# Fix include directory with split outputs
# https://github.com/assimp/assimp/pull/4337
(fetchpatch {
url = "https://github.com/assimp/assimp/commit/5dcaf445c3da079cf43890a0688428a7e1de0b30.patch";
sha256 = "sha256-KwqTAoDPkhFq469+VaUuGoqfymu2bWLG9W3BvFvyU5I=";
})
];
nativeBuildInputs = [ cmake ]; nativeBuildInputs = [ cmake ];
buildInputs = [ boost zlib ]; buildInputs = [ boost zlib ];

View file

@ -1,33 +0,0 @@
{ lib, stdenv, fetchFromGitHub, fetchpatch, cmake, ffmpeg_3, SDL2, chromaprint, libebur128 }:
stdenv.mkDerivation rec {
version = "4.3.0";
pname = "libgroove";
src = fetchFromGitHub {
owner = "andrewrk";
repo = "libgroove";
rev = version;
sha256 = "1la9d9kig50mc74bxvhx6hzqv0nrci9aqdm4k2j4q0s1nlfgxipd";
};
patches = [
./no-warnings-as-errors.patch
(fetchpatch {
name = "update-for-ffmpeg-3.0.patch";
url = "https://aur.archlinux.org/cgit/aur.git/plain/0001-update-for-ffmpeg-3.0.patch?h=libgroove&id=a9f3bd2a5afd3227733414a5d54c7a2aa0a1249e";
sha256 = "0800drk9df1kwbv80f2ffv77xk888249fk0d961rp2a305hvyrk0";
})
];
nativeBuildInputs = [ cmake ];
buildInputs = [ ffmpeg_3 SDL2 chromaprint libebur128 ];
meta = with lib; {
description = "Streaming audio processing library";
homepage = "https://github.com/andrewrk/libgroove";
license = licenses.mit;
platforms = platforms.unix;
maintainers = with maintainers; [ andrewrk ];
};
}

View file

@ -1,15 +0,0 @@
diff --git a/CMakeLists.txt b/CMakeLists.txt
index a1e8541..6bc9c30 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -135,8 +135,8 @@ configure_file (
"${PROJECT_BINARY_DIR}/config.h"
)
-set(LIB_CFLAGS "${C99_C_FLAGS} -pedantic -Werror -Wall -Werror=strict-prototypes -Werror=old-style-definition -Werror=missing-prototypes -D_REENTRANT -D_POSIX_C_SOURCE=200809L")
-set(EXAMPLE_CFLAGS "${C99_C_FLAGS} -pedantic -Werror -Wall -g")
+set(LIB_CFLAGS "${C99_C_FLAGS} -pedantic -Wall -Werror=strict-prototypes -Werror=old-style-definition -Werror=missing-prototypes -D_REENTRANT -D_POSIX_C_SOURCE=200809L")
+set(EXAMPLE_CFLAGS "${C99_C_FLAGS} -pedantic -Wall -g")
set(EXAMPLE_INCLUDES "${PROJECT_SOURCE_DIR}")
add_library(groove SHARED ${LIBGROOVE_SOURCES} ${LIBGROOVE_HEADERS})

View file

@ -3,11 +3,11 @@
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
pname = "libgsf"; pname = "libgsf";
version = "1.14.47"; version = "1.14.48";
src = fetchurl { src = fetchurl {
url = "mirror://gnome/sources/${pname}/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz"; url = "mirror://gnome/sources/${pname}/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
sha256 = "0kbpp9ksl7977xiga37sk1gdw1r039v6zviqznl7alvvg39yp26i"; sha256 = "/4bX8dRt0Ovvt72DCnSkHbZDYrmHv4hT//arTBEyuDc=";
}; };
nativeBuildInputs = [ pkg-config intltool libintl ]; nativeBuildInputs = [ pkg-config intltool libintl ];

View file

@ -19,13 +19,13 @@
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
pname = "umockdev"; pname = "umockdev";
version = "0.17.5"; version = "0.17.6";
outputs = [ "bin" "out" "dev" "devdoc" ]; outputs = [ "bin" "out" "dev" "devdoc" ];
src = fetchurl { src = fetchurl {
url = "https://github.com/martinpitt/umockdev/releases/download/${version}/${pname}-${version}.tar.xz"; url = "https://github.com/martinpitt/umockdev/releases/download/${version}/${pname}-${version}.tar.xz";
sha256 = "sha256-9mNKYFiQtzkBTQEuVWIfR9+e2jAqDszlHGMEQpcRe8U="; sha256 = "sha256-X60zN3orHU8lOfRVCfbHTdrleKxB7ILCIGvXSZLdoSk=";
}; };
nativeBuildInputs = [ nativeBuildInputs = [

View file

@ -64,7 +64,7 @@ assert enableGeoLocation -> geoclue2 != null;
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
pname = "webkitgtk"; pname = "webkitgtk";
version = "2.34.3"; version = "2.34.4";
outputs = [ "out" "dev" ]; outputs = [ "out" "dev" ];
@ -72,7 +72,7 @@ stdenv.mkDerivation rec {
src = fetchurl { src = fetchurl {
url = "https://webkitgtk.org/releases/${pname}-${version}.tar.xz"; url = "https://webkitgtk.org/releases/${pname}-${version}.tar.xz";
sha256 = "sha256-DS83qjLiGjbk3Vpc565c4nQ1wp1oA7liuMkMsMxJxS0="; sha256 = "sha256-l19QGRmbp2mRkYNc914BoYuU47zQEH2nOJ1N3LGrpAY=";
}; };
patches = lib.optionals stdenv.isLinux [ patches = lib.optionals stdenv.isLinux [

View file

@ -2,6 +2,7 @@
, stdenv , stdenv
, fetchFromGitHub , fetchFromGitHub
, autoreconfHook , autoreconfHook
, openssl
}: }:
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
@ -15,6 +16,12 @@ stdenv.mkDerivation rec {
sha256 = "sha256-/noS5cn8lllWoGyZ9QyjRmdiR6LXzfT4lYGEt+0+Bdw="; sha256 = "sha256-/noS5cn8lllWoGyZ9QyjRmdiR6LXzfT4lYGEt+0+Bdw=";
}; };
postPatch = ''
patchShebangs ./scripts
# ocsp tests require network access
sed -i -e '/ocsp\.test/d' -e '/ocsp-stapling\.test/d' scripts/include.am
'';
# Almost same as Debian but for now using --enable-all --enable-reproducible-build instead of --enable-distro to ensure options.h gets installed # Almost same as Debian but for now using --enable-all --enable-reproducible-build instead of --enable-distro to ensure options.h gets installed
configureFlags = [ configureFlags = [
"--enable-all" "--enable-all"
@ -36,6 +43,9 @@ stdenv.mkDerivation rec {
autoreconfHook autoreconfHook
]; ];
doCheck = true;
checkInputs = [ openssl ];
postInstall = '' postInstall = ''
# fix recursive cycle: # fix recursive cycle:
# wolfssl-config points to dev, dev propagates bin # wolfssl-config points to dev, dev propagates bin

View file

@ -0,0 +1,22 @@
{ lib, buildNimPackage, fetchFromGitHub }:
buildNimPackage rec {
pname = "jsony";
version = "1.1.3";
src = fetchFromGitHub {
owner = "treeform";
repo = pname;
rev = version;
hash = "sha256-jtUCoqwCmE536Kpv/vZxGgqiHyReZf1WOiBdUzmMhM4=";
};
doCheck = true;
meta = with lib;
src.meta // {
description = "A loose, direct to object json parser with hooks";
license = [ licenses.mit ];
maintainers = [ maintainers.erdnaxe ];
};
}

View file

@ -11,12 +11,12 @@
buildPythonPackage rec { buildPythonPackage rec {
pname = "azure-mgmt-subscription"; pname = "azure-mgmt-subscription";
version = "2.0.0"; version = "3.0.0";
src = fetchPypi { src = fetchPypi {
inherit pname version; inherit pname version;
extension = "zip"; extension = "zip";
sha256 = "70ec6e3395549c434bfd981f8f76cb8b6863339bad9b31924c1510af661dbf45"; sha256 = "157bd9123a5814473a9cd131832ea614c478548722ec01f47b35d778dc307d55";
}; };
propagatedBuildInputs = [ propagatedBuildInputs = [

View file

@ -12,13 +12,13 @@
buildPythonPackage rec { buildPythonPackage rec {
pname = "django-anymail"; pname = "django-anymail";
version = "8.4"; version = "8.5";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "anymail"; owner = "anymail";
repo = pname; repo = pname;
rev = "v${version}"; rev = "v${version}";
sha256 = "08ac24hrafkk1jg3milfjky3qni1cz5qggp1rgzq9r7ina4akjma"; sha256 = "1p2c7hf9baxr8khk8h7y8d38imw4zm920dgd9nbda18vlh7gpbcf";
}; };
propagatedBuildInputs = [ propagatedBuildInputs = [

View file

@ -11,13 +11,13 @@
buildPythonPackage rec { buildPythonPackage rec {
pname = "dogpile-cache"; pname = "dogpile-cache";
version = "1.1.4"; version = "1.1.5";
disabled = pythonOlder "3.6"; disabled = pythonOlder "3.6";
src = fetchPypi { src = fetchPypi {
pname = "dogpile.cache"; pname = "dogpile.cache";
inherit version; inherit version;
sha256 = "ea09bebf24bb7c028caf98963785fe9ad0bd397305849a3303bc5380d468d813"; sha256 = "0f01bdc329329a8289af9705ff40fadb1f82a28c336f3174e12142b70d31c756";
}; };
preCheck = '' preCheck = ''

View file

@ -2,13 +2,13 @@
buildPythonPackage rec { buildPythonPackage rec {
pname = "downloader-cli"; pname = "downloader-cli";
version = "0.3.1"; version = "0.3.2";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "deepjyoti30"; owner = "deepjyoti30";
repo = pname; repo = pname;
rev = version; rev = version;
sha256 = "0gbbjxb9vf5g890cls3mwzl8lmcn6jkpgm5cbrif740mn2b4q228"; sha256 = "0hjwy3qa6al6p35pv01sdl3szh7asf6vlmhwjbkpppn4zi239k0y";
}; };
propagatedBuildInputs = [ urllib3 ]; propagatedBuildInputs = [ urllib3 ];

View file

@ -10,14 +10,14 @@
buildPythonPackage rec { buildPythonPackage rec {
pname = "dufte"; pname = "dufte";
version = "0.2.27"; version = "0.2.29";
disabled = pythonOlder "3.6"; disabled = pythonOlder "3.6";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "nschloe"; owner = "nschloe";
repo = pname; repo = pname;
rev = version; rev = version;
sha256 = "1i68h224hx9clxj3l0rd2yigsi6fqsr3x10vj5hf3j6s69iah7r3"; sha256 = "0ccsmpj160xj6w503a948aw8icj55mw9414xnmijmmjvlwhm0p48";
}; };
format = "pyproject"; format = "pyproject";
@ -28,6 +28,13 @@ buildPythonPackage rec {
importlib-metadata importlib-metadata
]; ];
preCheck = ''
export HOME=$(mktemp -d)
mkdir -p $HOME/.config/matplotlib
echo "backend: ps" > $HOME/.config/matplotlib/matplotlibrc
ln -s $HOME/.config/matplotlib $HOME/.matplotlib
'';
checkInputs = [ checkInputs = [
pytestCheckHook pytestCheckHook
]; ];

View file

@ -11,14 +11,14 @@
buildPythonPackage rec { buildPythonPackage rec {
pname = "green"; pname = "green";
version = "3.4.0"; version = "3.4.1";
format = "setuptools"; format = "setuptools";
disabled = !isPy3k; disabled = !isPy3k;
src = fetchPypi { src = fetchPypi {
inherit pname version; inherit pname version;
sha256 = "6325681c94afd0f225c7ea2dcfedfde88c859d60da384d54c9ee70b91e434b14"; sha256 = "5dda2d2a277012227011f8f21523d70a550ebe5d47cc890fa16b9fcd9a91da53";
}; };
patches = [ patches = [

View file

@ -1,10 +1,23 @@
{ lib, buildPythonPackage, fetchPypi, fetchpatch, isPy27, pythonAtLeast { lib
, buildPythonPackage
, fetchFromGitHub
, pythonOlder
, pytestCheckHook
, atpublic
, cached-property
, clickhouse-driver
, click
, dask
, graphviz , graphviz
, importlib-metadata
, multipledispatch , multipledispatch
, numpy , numpy
, pandas , pandas
, parsy
, pyarrow , pyarrow
, pytest , pytest
, pytest-mock
, pytest-xdist
, pytz , pytz
, regex , regex
, requests , requests
@ -12,54 +25,117 @@
, tables , tables
, toolz , toolz
}: }:
let
# ignore tests for which dependencies are not available
backends = [
"csv"
"dask"
"hdf5"
"pandas"
"parquet"
"sqlite"
];
backendsString = lib.concatStringsSep " " backends;
ibisTestingData = fetchFromGitHub {
owner = "ibis-project";
repo = "testing-data";
rev = "743201a35c6b968cf55b054f9d28949ea15d1f0a";
sha256 = "sha256-xuSE6wHP3aF8lnEE2SuFbTRBu49ecRmc1F3HPcszptI=";
};
in
buildPythonPackage rec { buildPythonPackage rec {
pname = "ibis-framework"; pname = "ibis-framework";
version = "1.3.0"; version = "2.1.1";
disabled = isPy27 || pythonAtLeast "3.8"; disabled = pythonOlder "3.7";
src = fetchPypi { src = fetchFromGitHub {
inherit pname version; repo = "ibis";
sha256 = "1my94a11jzg1hv6ln8wxklbqrg6z5l2l77vr89aq0829yyxacmv7"; owner = "ibis-project";
rev = version;
sha256 = "sha256-n3fR6wvcSfIo7760seB+5SxtoYSqQmqkzZ9VlNQF200=";
}; };
patches = [
# fix tests for pandas 1.1
(fetchpatch {
url = "https://github.com/ibis-project/ibis/commit/53ef3cefc4ae90d61f3612310cb36da2bcd11305.diff";
sha256 = "1i5yjmqridjqpggiinsjaz5spcxca5bd48vy7a0mj4mm1b5flw2m";
})
];
propagatedBuildInputs = [ propagatedBuildInputs = [
atpublic
cached-property
clickhouse-driver
dask
graphviz
multipledispatch multipledispatch
numpy numpy
pandas pandas
parsy
pyarrow
pytz pytz
regex regex
toolz
sqlalchemy
requests requests
graphviz sqlalchemy
tables tables
pyarrow toolz
]; ] ++ lib.optionals (pythonOlder "3.8") [ importlib-metadata ];
checkInputs = [ checkInputs = [
pytestCheckHook
click
pytest pytest
pytest-mock
pytest-xdist
]; ];
# ignore tests which require test dataset, or frameworks not available # these tests are broken upstream: https://github.com/ibis-project/ibis/issues/3291
checkPhase = '' disabledTests = [
pytest ibis \ "test_summary_numeric"
--ignore=ibis/tests/all \ "test_summary_non_numeric"
--ignore=ibis/{sql,spark} "test_batting_most_hits"
"test_join_with_window_function"
"test_where_long"
"test_quantile_groupby"
"test_summary_numeric"
"test_summary_numeric_group_by"
"test_summary_non_numeric"
"test_searched_case_column"
"test_simple_case_column"
"test_summary_non_numeric_group_by"
];
pytestFlagsArray = [
"--numprocesses $NIX_BUILD_CORES"
"ibis/tests"
"ibis/backends/tests"
"ibis/backends/{${lib.concatStringsSep "," backends}}/tests"
];
preCheck = ''
set -euo pipefail
export IBIS_TEST_DATA_DIRECTORY
IBIS_TEST_DATA_DIRECTORY="$(mktemp -d)"
# copy the test data to a writable directory
cp -r ${ibisTestingData}/* "$IBIS_TEST_DATA_DIRECTORY"
find "$IBIS_TEST_DATA_DIRECTORY" -type d -exec chmod u+rwx {} +
find "$IBIS_TEST_DATA_DIRECTORY" -type f -exec chmod u+rw {} +
# load data
for backend in ${backendsString}; do
python ci/datamgr.py "$backend" &
done
wait
export PYTEST_BACKENDS="${backendsString}"
''; '';
pythonImportsCheck = [ "ibis" ] ++ (map (backend: "ibis.backends.${backend}") backends);
meta = with lib; { meta = with lib; {
description = "Productivity-centric Python Big Data Framework"; description = "Productivity-centric Python Big Data Framework";
homepage = "https://github.com/ibis-project/ibis"; homepage = "https://github.com/ibis-project/ibis";
license = licenses.asl20; license = licenses.asl20;
maintainers = [ maintainers.costrouc ]; maintainers = with maintainers; [ costrouc cpcloud ];
}; };
} }

View file

@ -9,12 +9,12 @@
buildPythonPackage rec { buildPythonPackage rec {
pname = "imbalanced-learn"; pname = "imbalanced-learn";
version = "0.8.1"; version = "0.9.0";
disabled = isPy27; # scikit-learn>=0.21 doesn't work on python2 disabled = isPy27; # scikit-learn>=0.21 doesn't work on python2
src = fetchPypi { src = fetchPypi {
inherit pname version; inherit pname version;
sha256 = "eaf576b1ba3523a0facf3aaa483ca17e326301e53e7678c54d73b7e0250edd43"; sha256 = "836a4c137cc3c10310d4f6cd5ec34600ff488d7f8c243a997c3f9b551c91d0b2";
}; };
propagatedBuildInputs = [ scikit-learn ]; propagatedBuildInputs = [ scikit-learn ];

View file

@ -20,11 +20,11 @@
buildPythonPackage rec { buildPythonPackage rec {
pname = "internetarchive"; pname = "internetarchive";
version = "2.2.0"; version = "2.3.0";
src = fetchPypi { src = fetchPypi {
inherit pname version; inherit pname version;
sha256 = "ebd11ecd038c71e75a3aef8d87750b46480169ecaefb23074c4ae48440bf2836"; sha256 = "fa89dc4be3e0a0aee24810a4a754e24adfd07edf710c645b4f642422c6078b8d";
}; };
propagatedBuildInputs = [ propagatedBuildInputs = [

View file

@ -0,0 +1,28 @@
{ lib, buildPythonPackage, pythonOlder, fetchFromSourcehut
, ipfs, packaging, tomli }:
buildPythonPackage rec {
pname = "ipwhl";
version = "1.0.0";
format = "flit";
disabled = pythonOlder "3.6";
src = fetchFromSourcehut {
owner = "~cnx";
repo = "ipwhl-utils";
rev = version;
sha256 = "sha256-KstwdmHpn4ypBNpX56NeStqdzy5RElMTW1oR2hCtJ7c=";
};
buildInputs = [ ipfs ];
propagatedBuildInputs = [ packaging tomli ];
doCheck = false; # there's no test
pythonImportsCheck = [ "ipwhl" ];
meta = with lib; {
description = "Utilities for the InterPlanetary Wheels";
homepage = "https://git.sr.ht/~cnx/ipwhl-utils";
license = licenses.agpl3Plus;
maintainers = [ maintainers.McSinyx ];
};
}

View file

@ -15,11 +15,11 @@
buildPythonPackage rec { buildPythonPackage rec {
pname = "launchpadlib"; pname = "launchpadlib";
version = "1.10.15.1"; version = "1.10.16";
src = fetchPypi { src = fetchPypi {
inherit pname version; inherit pname version;
sha256 = "4891f5b0c9bafbbb78aa06eeba1635629663c6aa80f621bcd1fc1057c8dd14b5"; sha256 = "0df4b13936f988afd0ee485f40fa6922eab783b48c38ca0108cb73c8788fca80";
}; };
propagatedBuildInputs = [ propagatedBuildInputs = [

View file

@ -14,14 +14,14 @@
buildPythonPackage rec { buildPythonPackage rec {
pname = "liquidctl"; pname = "liquidctl";
version = "1.8.0"; version = "1.8.1";
disabled = pythonOlder "3.6"; disabled = pythonOlder "3.6";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = pname; owner = pname;
repo = pname; repo = pname;
rev = "v${version}"; rev = "v${version}";
sha256 = "sha256-N0Ebd0zIHFmuiIozkAy4SV3o8rFA1wmrGd+dJo8jdk0="; sha256 = "0cl1xg3rqpn4yjflwcz667pwfjnbq0g41pkg2nak7x9mxqnbdk70";
}; };
nativeBuildInputs = [ installShellFiles ]; nativeBuildInputs = [ installShellFiles ];

View file

@ -15,20 +15,20 @@
buildPythonPackage rec { buildPythonPackage rec {
pname = "orjson"; pname = "orjson";
version = "3.6.5"; version = "3.6.6";
disabled = pythonOlder "3.7"; disabled = pythonOlder "3.7";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "ijl"; owner = "ijl";
repo = pname; repo = pname;
rev = version; rev = version;
sha256 = "1f8gc62w4hncrz8xkfw730cfqnk5433qswz3rba3pvvd7ldj5658"; sha256 = "00s8pwvq830h2y77pwx1i2vfvnzisvp41qhzqcp1piyc3pwxfc13";
}; };
cargoDeps = rustPlatform.fetchCargoTarball { cargoDeps = rustPlatform.fetchCargoTarball {
inherit src; inherit src;
name = "${pname}-${version}"; name = "${pname}-${version}";
sha256 = "0jlhzdnfyk7hnn74rz9zbx51sdjs6rwlzfl1g62h58x28xh6m6gb"; sha256 = "0l1zvkr06kwclgxy1qz9fxa1gjrpf5nnx6hb12j4ymyyxpcmn8rz";
}; };
format = "pyproject"; format = "pyproject";

View file

@ -7,6 +7,9 @@
, virtualenv , virtualenv
, pretend , pretend
, pytest , pytest
# coupled downsteam dependencies
, pip-tools
}: }:
buildPythonPackage rec { buildPythonPackage rec {
@ -32,6 +35,8 @@ buildPythonPackage rec {
# Pip wants pytest, but tests are not distributed # Pip wants pytest, but tests are not distributed
doCheck = false; doCheck = false;
passthru.tests = { inherit pip-tools; };
meta = { meta = {
description = "The PyPA recommended tool for installing Python packages"; description = "The PyPA recommended tool for installing Python packages";
license = with lib.licenses; [ mit ]; license = with lib.licenses; [ mit ];

View file

@ -8,12 +8,14 @@
buildPythonPackage rec { buildPythonPackage rec {
pname = "pymazda"; pname = "pymazda";
version = "0.3.0"; version = "0.3.1";
format = "setuptools";
disabled = pythonOlder "3.6"; disabled = pythonOlder "3.6";
src = fetchPypi { src = fetchPypi {
inherit pname version; inherit pname version;
sha256 = "sha256-D0odz4GkKvjuafhEGlHtRnO8lk4rV9y3imaHl7jXqJw="; sha256 = "eb4b275bcdfbf947e00b27c20dfc8ebcedfc1fb1252449141eccb5c39d782440";
}; };
propagatedBuildInputs = [ propagatedBuildInputs = [
@ -23,7 +25,10 @@ buildPythonPackage rec {
# Project has no tests # Project has no tests
doCheck = false; doCheck = false;
pythonImportsCheck = [ "pymazda" ];
pythonImportsCheck = [
"pymazda"
];
meta = with lib; { meta = with lib; {
description = "Python client for interacting with the MyMazda API"; description = "Python client for interacting with the MyMazda API";

View file

@ -10,11 +10,11 @@
buildPythonPackage rec { buildPythonPackage rec {
pname = "pywayland"; pname = "pywayland";
version = "0.4.8"; version = "0.4.9";
src = fetchPypi { src = fetchPypi {
inherit pname version; inherit pname version;
sha256 = "abby4o9LmiRZwNkPhYfFOWgRtxU8e5CURQnutz6cWjQ="; sha256 = "EJ/Ul1ZpIQa5Mw6UmkRi7GC+b+mCMqhto6EsfNjpCdg=";
}; };
nativeBuildInputs = [ pkg-config ]; nativeBuildInputs = [ pkg-config ];

View file

@ -24,12 +24,12 @@
buildPythonPackage rec { buildPythonPackage rec {
pname = "snowflake-connector-python"; pname = "snowflake-connector-python";
version = "2.7.2"; version = "2.7.3";
disabled = pythonOlder "3.6"; disabled = pythonOlder "3.6";
src = fetchPypi { src = fetchPypi {
inherit pname version; inherit pname version;
sha256 = "b2f8f360750eefa98be09ff53c130381646f8dfc8c6e4a705387676210ff8578"; sha256 = "026562392d8733bdfaddcd5ec1537a139940df46a3a225849a36c71c1bf3e61c";
}; };
propagatedBuildInputs = [ propagatedBuildInputs = [

View file

@ -6,14 +6,14 @@
buildPythonPackage rec { buildPythonPackage rec {
pname = "sphinx-inline-tabs"; pname = "sphinx-inline-tabs";
version = "2021.08.17.beta10"; version = "2022.01.02.beta11";
format = "flit"; format = "flit";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "pradyunsg"; owner = "pradyunsg";
repo = "sphinx-inline-tabs"; repo = "sphinx-inline-tabs";
rev = version; rev = version;
sha256 = "sha256-T3OqK0eXNiBs2zQURCSPLc8aIyf2an32UyDh4qSmxQ4="; sha256 = "sha256-k2nOidUk87EZbFsqQ7zr/4eHk+T7wUOYimjbllfneUM=";
}; };
propagatedBuildInputs = [ propagatedBuildInputs = [

View file

@ -2,11 +2,11 @@
buildPythonPackage rec { buildPythonPackage rec {
pname = "stripe"; pname = "stripe";
version = "2.64.0"; version = "2.65.0";
src = fetchPypi { src = fetchPypi {
inherit pname version; inherit pname version;
sha256 = "2f4b2175046104e4fcd8a2689a68bb9828a857814126d2ed13772cf2554fb93e"; sha256 = "2e55d4d7262085de9cef2228f14581925c35350ba58a332352b1ec9e19a7b7a6";
}; };
propagatedBuildInputs = [ requests ]; propagatedBuildInputs = [ requests ];

View file

@ -12,11 +12,11 @@
buildPythonPackage rec { buildPythonPackage rec {
pname = "svglib"; pname = "svglib";
version = "1.1.0"; version = "1.2.0";
src = fetchPypi { src = fetchPypi {
inherit pname version; inherit pname version;
sha256 = "520ee5290ee2ebeebd20ca0d7d995c08c903b364fcf515826bab43a1288d422e"; sha256 = "33f075dc853807e56e92d6dc404104c6ccc7fb5388d96ab943d7b349b1c924c7";
}; };
disabled = !isPy3k; disabled = !isPy3k;

View file

@ -17,11 +17,11 @@
buildPythonPackage rec { buildPythonPackage rec {
pname = "tern"; pname = "tern";
version = "2.9.0"; version = "2.9.1";
src = fetchPypi { src = fetchPypi {
inherit pname version; inherit pname version;
sha256 = "9cb509dba91718feecefd302388a89d4782454f6613e8f931ec8de87a6594de0"; sha256 = "c7ce55a500061e1160b040e75dc38d0eccc790a2b70fa3b7ad1b4fb715c18fc9";
}; };
preBuild = '' preBuild = ''

View file

@ -15,7 +15,7 @@
buildPythonPackage rec { buildPythonPackage rec {
pname = "teslajsonpy"; pname = "teslajsonpy";
version = "1.5.0"; version = "1.6.0";
format = "pyproject"; format = "pyproject";
disabled = pythonOlder "3.6"; disabled = pythonOlder "3.6";
@ -24,7 +24,7 @@ buildPythonPackage rec {
owner = "zabuldon"; owner = "zabuldon";
repo = pname; repo = pname;
rev = "v${version}"; rev = "v${version}";
sha256 = "sha256-5ZGj3ZS+KGtnlphyUF1xb9e2XuHa4qbOWWtyzZwP1RM="; sha256 = "1jxdfk2ka131spnfkl35lnzvkgwgsbs5xl3hsjj03q1nfjcqvx9l";
}; };
nativeBuildInputs = [ nativeBuildInputs = [

View file

@ -10,7 +10,7 @@
buildPythonPackage rec { buildPythonPackage rec {
pname = "tinydb"; pname = "tinydb";
version = "4.5.2"; version = "4.6.1";
disabled = pythonOlder "3.5"; disabled = pythonOlder "3.5";
format = "pyproject"; format = "pyproject";
@ -18,7 +18,7 @@ buildPythonPackage rec {
owner = "msiemens"; owner = "msiemens";
repo = pname; repo = pname;
rev = "v${version}"; rev = "v${version}";
sha256 = "0gyc9rk1adw4gynwnv4kfas0hxv1cql0sm5b3fsms39088ha894l"; sha256 = "17m8g6xzwa0k8qb4k4p9hjcyv58gmxz1lkvr2ckc5csa0ydvv91a";
}; };
nativeBuildInputs = [ nativeBuildInputs = [

View file

@ -2,11 +2,11 @@
buildPythonPackage rec { buildPythonPackage rec {
pname = "types-futures"; pname = "types-futures";
version = "3.3.2"; version = "3.3.7";
src = fetchPypi { src = fetchPypi {
inherit pname version; inherit pname version;
sha256 = "f47bf00704ef8ff05726a7e86fcf0986de998992fbdd880986121baa8b7184bf"; sha256 = "d286db818fb67e3ce5c28acd9058c067329b91865acc443ac3cf91497fa36f05";
}; };
meta = with lib; { meta = with lib; {

View file

@ -6,12 +6,12 @@
buildPythonPackage rec { buildPythonPackage rec {
pname = "types-protobuf"; pname = "types-protobuf";
version = "3.18.4"; version = "3.19.5";
format = "setuptools"; format = "setuptools";
src = fetchPypi { src = fetchPypi {
inherit pname version; inherit pname version;
sha256 = "2aed45e5257e9adebce306637179bfa111d42ecdd523e2a13d30cf8b2ee3cc84"; sha256 = "9e3d954de5f5693817514b8da3476daa22f035d2b8060217c78c3831a1a49c23";
}; };
propagatedBuildInputs = [ propagatedBuildInputs = [

View file

@ -5,12 +5,12 @@
buildPythonPackage rec { buildPythonPackage rec {
pname = "types-urllib3"; pname = "types-urllib3";
version = "1.26.4"; version = "1.26.7";
format = "setuptools"; format = "setuptools";
src = fetchPypi { src = fetchPypi {
inherit pname version; inherit pname version;
hash = "sha256-NcF74J4bzvOx4hAcUXK5fNt4MwkVlzx0H0wZedhAXvk="; hash = "sha256-z9H7vkuppgXtFIKUAIqsinuLdHJlHRzDV9UHrlli49I=";
}; };
# Module doesn't have tests # Module doesn't have tests

View file

@ -2,11 +2,11 @@
buildPythonPackage rec { buildPythonPackage rec {
pname = "vertica-python"; pname = "vertica-python";
version = "1.0.2"; version = "1.0.3";
src = fetchPypi { src = fetchPypi {
inherit pname version; inherit pname version;
sha256 = "ce0abfc5909d06031dc612ec321d7f75df50bcb47a31e14e882a299cea2ea7a3"; sha256 = "cfe1794c5ba9fdfbd470a55d82f60c2e08e129828367753bf64199a58a539bc2";
}; };
propagatedBuildInputs = [ future python-dateutil six ]; propagatedBuildInputs = [ future python-dateutil six ];

View file

@ -2,13 +2,13 @@
buildPythonPackage rec { buildPythonPackage rec {
pname = "wrf-python"; pname = "wrf-python";
version = "1.3.2"; version = "1.3.2.6";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "NCAR"; owner = "NCAR";
repo = "wrf-python"; repo = "wrf-python";
rev = version; rev = version;
sha256 = "1rklkki54z5392cpwwy78bnmsy2ghc187l3j7nv0rzn6jk5bvyi7"; sha256 = "046kflai71r7xrmdw6jn0ifn5656wj9gpnwlgxkx430dgk7zbc2y";
}; };
propagatedBuildInputs = [ propagatedBuildInputs = [

View file

@ -2,13 +2,13 @@
buildPythonPackage rec { buildPythonPackage rec {
pname = "youtube-search-python"; pname = "youtube-search-python";
version = "1.5.3"; version = "1.6.0";
disabled = pythonOlder "3.6"; disabled = pythonOlder "3.6";
src = fetchPypi { src = fetchPypi {
inherit pname version; inherit pname version;
sha256 = "4bc39224d1f0915692101a7739289c41173de2eb88b445aabc7be284802b7489"; sha256 = "57efe3ac32bdedc8378d907b230191a7de3ed22d0359d7b55d8355039231f974";
}; };
propagatedBuildInputs = [ httpx ]; propagatedBuildInputs = [ httpx ];

View file

@ -18,7 +18,7 @@
buildPythonPackage rec { buildPythonPackage rec {
pname = "zigpy-znp"; pname = "zigpy-znp";
version = "0.6.4"; version = "0.7.0";
format = "setuptools"; format = "setuptools";
disabled = pythonOlder "3.7"; disabled = pythonOlder "3.7";
@ -27,7 +27,7 @@ buildPythonPackage rec {
owner = "zigpy"; owner = "zigpy";
repo = pname; repo = pname;
rev = "v${version}"; rev = "v${version}";
sha256 = "0hz483wqzpdaap96gbjasisxd4wy8f4lslnspcvzqcf4dy1mxln6"; sha256 = "0h6dclz4q4lvmapzpslh8kb0aihdjddbkxc4zc981glbip89li5w";
}; };
propagatedBuildInputs = [ propagatedBuildInputs = [

View file

@ -7,11 +7,11 @@
buildPythonPackage rec { buildPythonPackage rec {
pname = "zstandard"; pname = "zstandard";
version = "0.16.0"; version = "0.17.0";
src = fetchPypi { src = fetchPypi {
inherit pname version; inherit pname version;
sha256 = "eaae2d3e8fdf8bfe269628385087e4b648beef85bb0c187644e7df4fb0fe9046"; sha256 = "fa9194cb91441df7242aa3ddc4cb184be38876cb10dd973674887f334bafbfb6";
}; };
propagatedNativeBuildInputs = [ cffi ]; propagatedNativeBuildInputs = [ cffi ];

View file

@ -2,13 +2,13 @@
buildGoModule rec { buildGoModule rec {
pname = "ddosify"; pname = "ddosify";
version = "0.7.1"; version = "0.7.2";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = pname; owner = pname;
repo = pname; repo = pname;
rev = "v${version}"; rev = "v${version}";
sha256 = "sha256-QzNMUeA9oOZaNZDGf9TXloZ5r2prDHTRX1wso3fSetc="; sha256 = "sha256-QLJB2WcnguknEMdgwJzltp++mJCL4cFOWU568aTk0sc=";
}; };
vendorSha256 = "sha256-TY8shTb77uFm8/yCvlIncAfq7brWgnH/63W+hj1rvqg="; vendorSha256 = "sha256-TY8shTb77uFm8/yCvlIncAfq7brWgnH/63W+hj1rvqg=";

View file

@ -2,21 +2,21 @@
buildGraalvmNativeImage rec { buildGraalvmNativeImage rec {
pname = "clojure-lsp"; pname = "clojure-lsp";
version = "2022.01.03-19.46.10"; version = "2022.01.22-01.31.09";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = pname; owner = pname;
repo = pname; repo = pname;
rev = version; rev = version;
sha256 = "sha256-BbhT4I4M7PwHHFwNDNY4mJxsreJVOEwlValZTgS0Zs8="; sha256 = "sha256-xQSOJRKKjX3AfQsYe4UNhFlLgWPkoY8NOPXCO1oc3BI=";
}; };
jar = fetchurl { jar = fetchurl {
url = "https://github.com/clojure-lsp/clojure-lsp/releases/download/${version}/clojure-lsp.jar"; url = "https://github.com/clojure-lsp/clojure-lsp/releases/download/${version}/clojure-lsp-standalone.jar";
sha256 = "sha256-QG9Z4wkzh1kaX44oee325BvY2XqXRo4iBjY5LPnkLBQ="; sha256 = "sha256-le0+ZmGyhM/UfGUV05FHyx5PlARxL/T2aC8UhiPYjxw";
}; };
# https://github.com/clojure-lsp/clojure-lsp/blob/2021.11.02-15.24.47/graalvm/native-unix-compile.sh#L18-L27 # https://github.com/clojure-lsp/clojure-lsp/blob/2022.01.22-01.31.09/cli/graalvm/native-unix-compile.sh#L18-L27
# Needs to be inject on `nativeImageBuildArgs` inside shell environment, # Needs to be inject on `nativeImageBuildArgs` inside shell environment,
# otherwise we can't expand to the value set in `mktemp -d` call # otherwise we can't expand to the value set in `mktemp -d` call
preBuild = '' preBuild = ''
@ -50,12 +50,12 @@ buildGraalvmNativeImage rec {
latest_version=$(curl -s https://api.github.com/repos/clojure-lsp/clojure-lsp/releases/latest | jq --raw-output .tag_name) latest_version=$(curl -s https://api.github.com/repos/clojure-lsp/clojure-lsp/releases/latest | jq --raw-output .tag_name)
old_jar_hash=$(nix-instantiate --eval --strict -A "clojure-lsp.jar.drvAttrs.outputHash" | tr -d '"' | sed -re 's|[+]|\\&|g') old_jar_hash=$(nix-instantiate --eval --strict -A "clojure-lsp-standalone.jar.drvAttrs.outputHash" | tr -d '"' | sed -re 's|[+]|\\&|g')
curl -o clojure-lsp.jar -sL https://github.com/clojure-lsp/clojure-lsp/releases/download/$latest_version/clojure-lsp.jar curl -o clojure-lsp.jar -sL https://github.com/clojure-lsp/clojure-lsp/releases/download/$latest_version/clojure-lsp-standalone.jar
new_jar_hash=$(nix-hash --flat --type sha256 clojure-lsp.jar | sed -re 's|[+]|\\&|g') new_jar_hash=$(nix-hash --flat --type sha256 clojure-lsp-standalone.jar | sed -re 's|[+]|\\&|g')
rm -f clojure-lsp.jar rm -f clojure-lsp-standalone.jar
nixFile=$(nix-instantiate --eval --strict -A "clojure-lsp.meta.position" | sed -re 's/^"(.*):[0-9]+"$/\1/') nixFile=$(nix-instantiate --eval --strict -A "clojure-lsp.meta.position" | sed -re 's/^"(.*):[0-9]+"$/\1/')

View file

@ -19,15 +19,15 @@
}: }:
let let
buildNum = "2021-06-30-819"; buildNum = "2022-01-18-884";
in in
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
pname = "rgp"; pname = "rgp";
version = "1.11"; version = "1.12";
src = fetchurl { src = fetchurl {
url = "https://gpuopen.com/download/radeon-developer-tool-suite/RadeonDeveloperToolSuite-${buildNum}.tgz"; url = "https://gpuopen.com/download/radeon-developer-tool-suite/RadeonDeveloperToolSuite-${buildNum}.tgz";
sha256 = "ru+e/oY844x4nvSVRBrTGDdnzUOBhwkaIrnftBITyE8="; sha256 = "88ot16N8XtRlDCP+zIaOqG5BuR0OyG/0u1NEXsun/nY=";
}; };
nativeBuildInputs = [ makeWrapper autoPatchelfHook ]; nativeBuildInputs = [ makeWrapper autoPatchelfHook ];

View file

@ -9,13 +9,13 @@
}: }:
rustPlatform.buildRustPackage rec { rustPlatform.buildRustPackage rec {
pname = "sentry-cli"; pname = "sentry-cli";
version = "1.71.0"; version = "1.72.0";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "getsentry"; owner = "getsentry";
repo = "sentry-cli"; repo = "sentry-cli";
rev = version; rev = version;
sha256 = "0iw6skcxnqqa0vj5q1ra855gxgjj9a26hj85nm9p49ai5l85bkgv"; sha256 = "sha256-2Aj2Y0c8JR8s6Ek7sZfU+5RENkoCVSAxtOvkHilfb48=";
}; };
doCheck = false; doCheck = false;
@ -25,7 +25,7 @@ rustPlatform.buildRustPackage rec {
buildInputs = [ openssl ] ++ lib.optionals stdenv.isDarwin [ Security SystemConfiguration ]; buildInputs = [ openssl ] ++ lib.optionals stdenv.isDarwin [ Security SystemConfiguration ];
nativeBuildInputs = [ pkg-config ]; nativeBuildInputs = [ pkg-config ];
cargoSha256 = "0n9354mm97z3n001airipq8k58i7lg20p2m9yfx9y0zhsagyhmj8"; cargoSha256 = "sha256-sSIQ7Wa0otbq82WELxP3oFYa1FoaoZz2jCB59Ob6zNM=";
meta = with lib; { meta = with lib; {
homepage = "https://docs.sentry.io/cli/"; homepage = "https://docs.sentry.io/cli/";

View file

@ -2,13 +2,13 @@
buildGoModule rec { buildGoModule rec {
pname = "skaffold"; pname = "skaffold";
version = "1.35.1"; version = "1.35.2";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "GoogleContainerTools"; owner = "GoogleContainerTools";
repo = "skaffold"; repo = "skaffold";
rev = "v${version}"; rev = "v${version}";
sha256 = "sha256-8Ye2eR9eB7oyYOo46OraOxfLOG/XphWJkk+xPzDthPU="; sha256 = "sha256-s1gkfgpQhmXgbU0iGu71a+cMQsInGTf7GUb8h2SK9qs=";
}; };
vendorSha256 = "sha256-jr4HEs2mTRPNAiV/OWUnjYyQ1uSUJfVOTNCRi/18tEo="; vendorSha256 = "sha256-jr4HEs2mTRPNAiV/OWUnjYyQ1uSUJfVOTNCRi/18tEo=";
@ -24,6 +24,11 @@ buildGoModule rec {
nativeBuildInputs = [ installShellFiles ]; nativeBuildInputs = [ installShellFiles ];
doInstallCheck = true;
installCheckPhase = ''
$out/bin/skaffold version | grep ${version} > /dev/null
'';
postInstall = '' postInstall = ''
installShellCompletion --cmd skaffold \ installShellCompletion --cmd skaffold \
--bash <($out/bin/skaffold completion bash) \ --bash <($out/bin/skaffold completion bash) \

View file

@ -2,13 +2,13 @@
buildGoModule rec { buildGoModule rec {
pname = "vultr-cli"; pname = "vultr-cli";
version = "2.11.3"; version = "2.12.0";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "vultr"; owner = "vultr";
repo = pname; repo = pname;
rev = "v${version}"; rev = "v${version}";
sha256 = "sha256-UI7D5bvfyGsNa6Gd1XuFu1VgiIQJ/b0g6DQlsJbaocI="; sha256 = "sha256-mT99flZAAhLSynD/8+fa74Mc3KK8pVs+OOFDYNSBzEE=";
}; };
vendorSha256 = null; vendorSha256 = null;

View file

@ -2,16 +2,16 @@
buildGoModule rec { buildGoModule rec {
pname = "yq-go"; pname = "yq-go";
version = "4.16.2"; version = "4.17.2";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "mikefarah"; owner = "mikefarah";
repo = "yq"; repo = "yq";
rev = "v${version}"; rev = "v${version}";
sha256 = "sha256-qJZDFyBSiaS0cUcfEz1P+b5Z6Tb//KKWeYqNJpdOh9Q="; sha256 = "sha256-jfb/r4Z8i23A0e4cJqZoG2TPXGVFOf64FfnZy/keAeQ=";
}; };
vendorSha256 = "sha256-6J+pHWiswDRxCFdRj/d+6+QLxEF207vTyfnPq5tP30o="; vendorSha256 = "sha256-0eaD4oT6DyCWkJ0He4A7ysOEJD8CtFH6diQYBuEOoIk=";
doCheck = false; doCheck = false;

View file

@ -8,13 +8,13 @@
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
pname = "r2mod_cli"; pname = "r2mod_cli";
version = "1.2.0"; version = "1.2.1";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "Foldex"; owner = "Foldex";
repo = "r2mod_cli"; repo = "r2mod_cli";
rev = "v${version}"; rev = "v${version}";
sha256 = "sha256-VNqdVDBR6+eNOeUthPXLfz+0VoaNfSj4f04HLvjg6/0="; sha256 = "sha256-FS9P/uTZU4d6zpM3TlEW6i6PLGHxqqO2fc8D7VsPCig=";
}; };
buildInputs = [ bashInteractive ]; buildInputs = [ bashInteractive ];

View file

@ -274,6 +274,13 @@ in {
filesToInstall = ["u-boot-dtb.bin"]; filesToInstall = ["u-boot-dtb.bin"];
}; };
ubootOlimexA64Olinuxino = buildUBoot {
defconfig = "a64-olinuxino-emmc_defconfig";
extraMeta.platforms = ["aarch64-linux"];
BL31 = "${armTrustedFirmwareAllwinner}/bl31.bin";
filesToInstall = ["u-boot-sunxi-with-spl.bin"];
};
ubootOrangePiPc = buildUBoot { ubootOrangePiPc = buildUBoot {
defconfig = "orangepi_pc_defconfig"; defconfig = "orangepi_pc_defconfig";
extraMeta.platforms = ["armv7l-linux"]; extraMeta.platforms = ["armv7l-linux"];

View file

@ -485,12 +485,12 @@ final: prev:
chadtree = buildVimPluginFrom2Nix { chadtree = buildVimPluginFrom2Nix {
pname = "chadtree"; pname = "chadtree";
version = "2022-01-20"; version = "2022-01-22";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "ms-jpq"; owner = "ms-jpq";
repo = "chadtree"; repo = "chadtree";
rev = "67d739c993549aea6eaa1d50aa341f8e8e3ae91a"; rev = "e6fe7bcc3d354f7da68bea64c612eb2f78e959d1";
sha256 = "04zxjm5qzkp0ydvgyqidzzrbw76n554c9212xxm4a8mkwprx1wnj"; sha256 = "0rq82dz1s7xshbdydah50vpzhakbzcbxkx4j5mgg5pwgbglaj9xj";
}; };
meta.homepage = "https://github.com/ms-jpq/chadtree/"; meta.homepage = "https://github.com/ms-jpq/chadtree/";
}; };
@ -893,12 +893,12 @@ final: prev:
coc-nvim = buildVimPluginFrom2Nix { coc-nvim = buildVimPluginFrom2Nix {
pname = "coc.nvim"; pname = "coc.nvim";
version = "2022-01-19"; version = "2022-01-21";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "neoclide"; owner = "neoclide";
repo = "coc.nvim"; repo = "coc.nvim";
rev = "3710b54c51ff8cf97fe6686dd6220734726c42bf"; rev = "6a510523b0bf697bffe5ba77d0e404532fd92e65";
sha256 = "1fj2rn3mnf29hpfjc8vz3n1w6jm0z96xazmg83mv1l0lg44ffwkd"; sha256 = "1xp8zvj1wbywfgy2kgvqmxpw675wlmpjdgbqzmb53rjjhsb9w107";
}; };
meta.homepage = "https://github.com/neoclide/coc.nvim/"; meta.homepage = "https://github.com/neoclide/coc.nvim/";
}; };
@ -1158,12 +1158,12 @@ final: prev:
Coqtail = buildVimPluginFrom2Nix { Coqtail = buildVimPluginFrom2Nix {
pname = "Coqtail"; pname = "Coqtail";
version = "2022-01-03"; version = "2022-01-21";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "whonore"; owner = "whonore";
repo = "Coqtail"; repo = "Coqtail";
rev = "c8ffb3d358e85211b17dd18df6007e3be1bd2569"; rev = "cbe08b44bf2cba835c541f4b7eddc9f533dbe584";
sha256 = "1y8gv10llnihpylzq9jca93g7gb0gf6rbr0pwhvirrvz514czfl8"; sha256 = "1g32297zkvdrmvjacwf6ig2q7whvzj8wzrxb71vzr9qskp0qx81v";
}; };
meta.homepage = "https://github.com/whonore/Coqtail/"; meta.homepage = "https://github.com/whonore/Coqtail/";
}; };
@ -2039,12 +2039,12 @@ final: prev:
friendly-snippets = buildVimPluginFrom2Nix { friendly-snippets = buildVimPluginFrom2Nix {
pname = "friendly-snippets"; pname = "friendly-snippets";
version = "2022-01-15"; version = "2022-01-20";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "rafamadriz"; owner = "rafamadriz";
repo = "friendly-snippets"; repo = "friendly-snippets";
rev = "d4f5c0507cfe4c67024f58c84ba982f7f5c71a7a"; rev = "35bacce3c903dff2852e87a13196cad0dd166093";
sha256 = "1g7q5a6c761a8y77081l0907qcyhvzd0mncqyg93p1r5jrbv1r9m"; sha256 = "0inq7d48j4ck3zfkbvmi76xvis1sybk15mda23zfnm6zj0k3hjh1";
}; };
meta.homepage = "https://github.com/rafamadriz/friendly-snippets/"; meta.homepage = "https://github.com/rafamadriz/friendly-snippets/";
}; };
@ -2315,12 +2315,12 @@ final: prev:
glow-nvim = buildVimPluginFrom2Nix { glow-nvim = buildVimPluginFrom2Nix {
pname = "glow.nvim"; pname = "glow.nvim";
version = "2022-01-09"; version = "2022-01-20";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "ellisonleao"; owner = "ellisonleao";
repo = "glow.nvim"; repo = "glow.nvim";
rev = "42dcd3fff4052b41b241453880c6067dbfea55f6"; rev = "df202bd09bab4b63f5f64857eb8f3411d46fdf11";
sha256 = "140la8pli0jc3mi4zs91h8rvl989p2hw9gj12ag8zmizm1dic2il"; sha256 = "1ndgrrlhw87vwy12fzvf5fhnjdsl9na1a3j4hj6slq9v48rkv87f";
}; };
meta.homepage = "https://github.com/ellisonleao/glow.nvim/"; meta.homepage = "https://github.com/ellisonleao/glow.nvim/";
}; };
@ -2868,24 +2868,24 @@ final: prev:
kanagawa-nvim = buildVimPluginFrom2Nix { kanagawa-nvim = buildVimPluginFrom2Nix {
pname = "kanagawa.nvim"; pname = "kanagawa.nvim";
version = "2022-01-17"; version = "2022-01-21";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "rebelot"; owner = "rebelot";
repo = "kanagawa.nvim"; repo = "kanagawa.nvim";
rev = "a93be0c57248c552b3f7f91ffbb441c677e55d85"; rev = "e308a9e5e8b527d646bf485b9148db894a617560";
sha256 = "1cwmz2zzkci8jyrna7c3s4lw9a837adjjwpdh3ad7r4zjsjzim9a"; sha256 = "07hky7mqz8zj21y0cvb7fadiv0fmxzkm6f2i490d85dj3i3njijv";
}; };
meta.homepage = "https://github.com/rebelot/kanagawa.nvim/"; meta.homepage = "https://github.com/rebelot/kanagawa.nvim/";
}; };
kommentary = buildVimPluginFrom2Nix { kommentary = buildVimPluginFrom2Nix {
pname = "kommentary"; pname = "kommentary";
version = "2022-01-16"; version = "2022-01-21";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "b3nj5m1n"; owner = "b3nj5m1n";
repo = "kommentary"; repo = "kommentary";
rev = "91c8819ea264b77d63b96b16ed0cf90c4b97f87a"; rev = "a190d052fca4ce74ffddb1c87c87ccf15f9111d5";
sha256 = "16k1yc9ihbrrcshjz8jv3b1jggr990vsx2pf6y24cfqp9srn9gda"; sha256 = "0p2hyqv73gn1lrzf8yi84cfj199jx8ix0llm4jykkxlyx3qprwq2";
}; };
meta.homepage = "https://github.com/b3nj5m1n/kommentary/"; meta.homepage = "https://github.com/b3nj5m1n/kommentary/";
}; };
@ -2988,12 +2988,12 @@ final: prev:
lean-nvim = buildVimPluginFrom2Nix { lean-nvim = buildVimPluginFrom2Nix {
pname = "lean.nvim"; pname = "lean.nvim";
version = "2022-01-19"; version = "2022-01-20";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "Julian"; owner = "Julian";
repo = "lean.nvim"; repo = "lean.nvim";
rev = "bfb370349b5ebc09aee8dd172fec382cfd10d74c"; rev = "8dc39f1ce00cf50890e7a55c3bc24017531338f7";
sha256 = "0lkcqvk235f51ki2f3mcs607ardk1wknfn0qgbp77ii77ycjnl93"; sha256 = "18aywn1hkhpxc3fgy9xys5fjh0l69nrgdwaiy9fzfqy8d6fk3ssf";
}; };
meta.homepage = "https://github.com/Julian/lean.nvim/"; meta.homepage = "https://github.com/Julian/lean.nvim/";
}; };
@ -3132,12 +3132,12 @@ final: prev:
lightspeed-nvim = buildVimPluginFrom2Nix { lightspeed-nvim = buildVimPluginFrom2Nix {
pname = "lightspeed.nvim"; pname = "lightspeed.nvim";
version = "2022-01-18"; version = "2022-01-21";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "ggandor"; owner = "ggandor";
repo = "lightspeed.nvim"; repo = "lightspeed.nvim";
rev = "56a54e3c7b792cca41881b69960499952fdc29c2"; rev = "428051b2e5212cea914510eb9eb979ec06d5b2e1";
sha256 = "0gvzg8p900wcf72nzvyky747ils22fnm5yrg47bv04dz49zsx6p2"; sha256 = "01s3v3jfmgyrmwkifnyfh0wlm1d5fdvfvya0564y76bj4sh2lpzw";
}; };
meta.homepage = "https://github.com/ggandor/lightspeed.nvim/"; meta.homepage = "https://github.com/ggandor/lightspeed.nvim/";
}; };
@ -3911,12 +3911,12 @@ final: prev:
neorg = buildVimPluginFrom2Nix { neorg = buildVimPluginFrom2Nix {
pname = "neorg"; pname = "neorg";
version = "2022-01-20"; version = "2022-01-21";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "nvim-neorg"; owner = "nvim-neorg";
repo = "neorg"; repo = "neorg";
rev = "cf26a69a816feda4f47b265fd420f9cf4ea058b5"; rev = "e8b8cb0a75a4ca2da6b5a9bec79cd2002ef03882";
sha256 = "10rhpxl1106f7jd9n2n8kx5fv4d5icmqdlnfkdj7n82v1npj7igw"; sha256 = "1nf74v4147jyc1cb3scvja49160wcjqvgppiq7whgili1ic8s1d6";
}; };
meta.homepage = "https://github.com/nvim-neorg/neorg/"; meta.homepage = "https://github.com/nvim-neorg/neorg/";
}; };
@ -3983,12 +3983,12 @@ final: prev:
neovim-ayu = buildVimPluginFrom2Nix { neovim-ayu = buildVimPluginFrom2Nix {
pname = "neovim-ayu"; pname = "neovim-ayu";
version = "2021-12-31"; version = "2022-01-21";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "Shatur"; owner = "Shatur";
repo = "neovim-ayu"; repo = "neovim-ayu";
rev = "afac814359bb03fc5a1cb9d86a45d619a59ba7d9"; rev = "0bca6a4382e7cc5e26da8dce49e7f69abfb0e998";
sha256 = "1smcibp3akb9mdgvvvh5ny0avbn5lnb5scvv3d4g181c39nmx1y9"; sha256 = "0pfrmzcs4vkxg74hzrp8g4kwb33m1r503c0b1yq25z33scqwc6hp";
}; };
meta.homepage = "https://github.com/Shatur/neovim-ayu/"; meta.homepage = "https://github.com/Shatur/neovim-ayu/";
}; };
@ -4163,24 +4163,24 @@ final: prev:
nord-nvim = buildVimPluginFrom2Nix { nord-nvim = buildVimPluginFrom2Nix {
pname = "nord.nvim"; pname = "nord.nvim";
version = "2022-01-11"; version = "2022-01-20";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "shaunsingh"; owner = "shaunsingh";
repo = "nord.nvim"; repo = "nord.nvim";
rev = "002d3fd2ad677b3a6f34b2f4dffbfff455abff11"; rev = "2ec29eda54f5bbc8856794361847729b0f724095";
sha256 = "0ylfx2d02r8ri015k5yd9gb78dwvc2sfpyw6krcqs07i0z7gaskz"; sha256 = "1fz30h6nvgy71yc6ccn6m8wbc18kz29xm11zmsxc1qlp0a6j7c59";
}; };
meta.homepage = "https://github.com/shaunsingh/nord.nvim/"; meta.homepage = "https://github.com/shaunsingh/nord.nvim/";
}; };
nordic-nvim = buildVimPluginFrom2Nix { nordic-nvim = buildVimPluginFrom2Nix {
pname = "nordic.nvim"; pname = "nordic.nvim";
version = "2021-12-20"; version = "2022-01-14";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "andersevenrud"; owner = "andersevenrud";
repo = "nordic.nvim"; repo = "nordic.nvim";
rev = "c348fba712af0c15bfdf23b396fdcb0311dfbae9"; rev = "b97cc5faafb10edd8fb5b261423b2f917ba43e1b";
sha256 = "17kmlc92wl1qya76kx9p2lq0v3n2503hlb1cf3kmys0d40xb8rsc"; sha256 = "0b1643j492v7pm9b1z6ana3pjvaf4dqz1zvbqnl5r0bmkl2bb4m4";
}; };
meta.homepage = "https://github.com/andersevenrud/nordic.nvim/"; meta.homepage = "https://github.com/andersevenrud/nordic.nvim/";
}; };
@ -4223,12 +4223,12 @@ final: prev:
null-ls-nvim = buildVimPluginFrom2Nix { null-ls-nvim = buildVimPluginFrom2Nix {
pname = "null-ls.nvim"; pname = "null-ls.nvim";
version = "2022-01-19"; version = "2022-01-21";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "jose-elias-alvarez"; owner = "jose-elias-alvarez";
repo = "null-ls.nvim"; repo = "null-ls.nvim";
rev = "4d45075678db7442f4d78287efd11b08bd414bcd"; rev = "5213916f51a178287cf5162354f2f7c2c4e204bb";
sha256 = "0sr0y06cccdz8xa8dd0fqxm6yf243az0kri637q8l04b6z6x84bp"; sha256 = "0v34s75srr2ds3jw100hjr2mwbycwhvrv6y02ddzmgw0bsqfgw9c";
}; };
meta.homepage = "https://github.com/jose-elias-alvarez/null-ls.nvim/"; meta.homepage = "https://github.com/jose-elias-alvarez/null-ls.nvim/";
}; };
@ -4257,6 +4257,18 @@ final: prev:
meta.homepage = "https://github.com/ChristianChiarulli/nvcode-color-schemes.vim/"; meta.homepage = "https://github.com/ChristianChiarulli/nvcode-color-schemes.vim/";
}; };
catppuccin-nvim = buildVimPluginFrom2Nix {
pname = "catppuccin-nvim";
version = "2022-01-21";
src = fetchFromGitHub {
owner = "catppuccin";
repo = "nvim";
rev = "baf9a2c5d81f4336b0504e35c148482535dc2ac9";
sha256 = "00nma5a4jybncm3dj388p03nd4kkpj11l1cmd1dfmnzd41iaia99";
};
meta.homepage = "https://github.com/catppuccin/nvim/";
};
nvim-ale-diagnostic = buildVimPluginFrom2Nix { nvim-ale-diagnostic = buildVimPluginFrom2Nix {
pname = "nvim-ale-diagnostic"; pname = "nvim-ale-diagnostic";
version = "2021-11-06"; version = "2021-11-06";
@ -4595,12 +4607,12 @@ final: prev:
nvim-lspconfig = buildVimPluginFrom2Nix { nvim-lspconfig = buildVimPluginFrom2Nix {
pname = "nvim-lspconfig"; pname = "nvim-lspconfig";
version = "2022-01-20"; version = "2022-01-21";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "neovim"; owner = "neovim";
repo = "nvim-lspconfig"; repo = "nvim-lspconfig";
rev = "58f260a603fc73ff537569ff2e81510554e54e38"; rev = "58d2ba6b968539a20d701be0bf98ae154456e265";
sha256 = "1n7rhf60l9l1wbdmvwl871lq0dc0p6r7wdskmh530g0vch47kj0r"; sha256 = "04l70b5sl1c98gmk9s9zwa39gbp1w46ivwmyryr96g0znidh3ryk";
}; };
meta.homepage = "https://github.com/neovim/nvim-lspconfig/"; meta.homepage = "https://github.com/neovim/nvim-lspconfig/";
}; };
@ -4727,24 +4739,24 @@ final: prev:
nvim-tree-lua = buildVimPluginFrom2Nix { nvim-tree-lua = buildVimPluginFrom2Nix {
pname = "nvim-tree.lua"; pname = "nvim-tree.lua";
version = "2021-12-24"; version = "2022-01-21";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "kyazdani42"; owner = "kyazdani42";
repo = "nvim-tree.lua"; repo = "nvim-tree.lua";
rev = "0a2f6b0b6ba558a88c77a6b262af647760e6eca8"; rev = "2dfed89af7724f9e71d2fdbe3cde791a93e9b9e0";
sha256 = "0svxndakxlin4jgmzmx7xj9ysbiy94hfszq89bv2qcxlkfxa78l0"; sha256 = "1842c6s3q8hd8cnnyniwjxkkl48zzdy7v2gx20fiacnf365vgzpc";
}; };
meta.homepage = "https://github.com/kyazdani42/nvim-tree.lua/"; meta.homepage = "https://github.com/kyazdani42/nvim-tree.lua/";
}; };
nvim-treesitter = buildVimPluginFrom2Nix { nvim-treesitter = buildVimPluginFrom2Nix {
pname = "nvim-treesitter"; pname = "nvim-treesitter";
version = "2022-01-20"; version = "2022-01-21";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "nvim-treesitter"; owner = "nvim-treesitter";
repo = "nvim-treesitter"; repo = "nvim-treesitter";
rev = "f048886f828e369cac3b771071137b2c62ca29e4"; rev = "3c462d362f49611c295e6c4870c97e2ae7f530cd";
sha256 = "1kifzwmwqjwkcfrpmv3kb00m1mjbnk3p2hdwpk7n1i90nqlix06d"; sha256 = "1sqr8q9mdggcwd2nm2wwdviad7nf9pzwxmv3wj7asnmw271a1n7b";
}; };
meta.homepage = "https://github.com/nvim-treesitter/nvim-treesitter/"; meta.homepage = "https://github.com/nvim-treesitter/nvim-treesitter/";
}; };
@ -4787,12 +4799,12 @@ final: prev:
nvim-treesitter-textobjects = buildVimPluginFrom2Nix { nvim-treesitter-textobjects = buildVimPluginFrom2Nix {
pname = "nvim-treesitter-textobjects"; pname = "nvim-treesitter-textobjects";
version = "2022-01-19"; version = "2022-01-21";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "nvim-treesitter"; owner = "nvim-treesitter";
repo = "nvim-treesitter-textobjects"; repo = "nvim-treesitter-textobjects";
rev = "c2e643b5db31e90f034c5412f38913523090378e"; rev = "5681ed6e8754efd3de748fadd14ce9b8f06c1fd7";
sha256 = "0yswhj8s6f6g8y5bc08zq6n806ybf8xpn4yp0m25phlrm1wwdd5c"; sha256 = "0c3vj1lxp942qs0ghdp8m5ih1dxmnj8l14qjnh46dn5xrfxh73ss";
}; };
meta.homepage = "https://github.com/nvim-treesitter/nvim-treesitter-textobjects/"; meta.homepage = "https://github.com/nvim-treesitter/nvim-treesitter-textobjects/";
}; };
@ -4823,12 +4835,12 @@ final: prev:
nvim-ts-rainbow = buildVimPluginFrom2Nix { nvim-ts-rainbow = buildVimPluginFrom2Nix {
pname = "nvim-ts-rainbow"; pname = "nvim-ts-rainbow";
version = "2022-01-20"; version = "2022-01-21";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "p00f"; owner = "p00f";
repo = "nvim-ts-rainbow"; repo = "nvim-ts-rainbow";
rev = "c758824b37868f0c6f9e41a0c22944372f6cfaea"; rev = "5470a3bb6e7ad316d63fab0951fd181ccfdc5716";
sha256 = "0bhk0r7m84ab3fwkf6kg1icd30xajsyqnqwqqn3ny7zh48bic0qv"; sha256 = "1648zm3baqi9711r0ywpnj7a7c8giwy6bazbxhcwv0qsjnnm5n70";
}; };
meta.homepage = "https://github.com/p00f/nvim-ts-rainbow/"; meta.homepage = "https://github.com/p00f/nvim-ts-rainbow/";
}; };
@ -4871,12 +4883,12 @@ final: prev:
nvim_context_vt = buildVimPluginFrom2Nix { nvim_context_vt = buildVimPluginFrom2Nix {
pname = "nvim_context_vt"; pname = "nvim_context_vt";
version = "2022-01-16"; version = "2022-01-21";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "haringsrob"; owner = "haringsrob";
repo = "nvim_context_vt"; repo = "nvim_context_vt";
rev = "7d8cfce794b32c9d98097edbce2d20980921c6b6"; rev = "9cf62516d16114c935eeb9bbe57b02e39c3bfbd7";
sha256 = "1cnjcr4jrphsw0ybwy7093vk2mr59sk5fwvsvvsllrc1gc60f7gi"; sha256 = "1fvsjfcfm83kvcfgps39j845pkh89s4vq2wk49a0qi5g8a8mjphx";
}; };
meta.homepage = "https://github.com/haringsrob/nvim_context_vt/"; meta.homepage = "https://github.com/haringsrob/nvim_context_vt/";
}; };
@ -4919,12 +4931,12 @@ final: prev:
octo-nvim = buildVimPluginFrom2Nix { octo-nvim = buildVimPluginFrom2Nix {
pname = "octo.nvim"; pname = "octo.nvim";
version = "2022-01-19"; version = "2022-01-20";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "pwntester"; owner = "pwntester";
repo = "octo.nvim"; repo = "octo.nvim";
rev = "781f175b210f4c825a8c7e4922d8113c227f6fa4"; rev = "c2ea3cba7d34ce9bce9d1e1d9710ab4b2be7e651";
sha256 = "0w8zyv7h7frzbp23fvwarbaj08qi2i15kh2y1py3ms97nvbj1qxr"; sha256 = "126fq92v72ljmdxrdh384yck3kd4avmss37rcyfryzhzfrjj2gcj";
}; };
meta.homepage = "https://github.com/pwntester/octo.nvim/"; meta.homepage = "https://github.com/pwntester/octo.nvim/";
}; };
@ -5461,12 +5473,12 @@ final: prev:
refactoring-nvim = buildVimPluginFrom2Nix { refactoring-nvim = buildVimPluginFrom2Nix {
pname = "refactoring.nvim"; pname = "refactoring.nvim";
version = "2022-01-20"; version = "2022-01-21";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "theprimeagen"; owner = "theprimeagen";
repo = "refactoring.nvim"; repo = "refactoring.nvim";
rev = "fc5de4af62272864f947d4af3bdd87c4f28c371c"; rev = "4f63e903fbcfa5d17fdbe6ae9b03e0b09ab5af89";
sha256 = "1pcllxlmk4d6n2rgcgj8vwghfxa1y8gxdmk7w9fnjc83dczfh8nd"; sha256 = "0krvp2q20f6iwk33www097c2i8ah9pls6j1lmbx92n437k6sj5gj";
}; };
meta.homepage = "https://github.com/theprimeagen/refactoring.nvim/"; meta.homepage = "https://github.com/theprimeagen/refactoring.nvim/";
}; };
@ -5641,12 +5653,12 @@ final: prev:
SchemaStore-nvim = buildVimPluginFrom2Nix { SchemaStore-nvim = buildVimPluginFrom2Nix {
pname = "SchemaStore.nvim"; pname = "SchemaStore.nvim";
version = "2022-01-17"; version = "2022-01-20";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "b0o"; owner = "b0o";
repo = "SchemaStore.nvim"; repo = "SchemaStore.nvim";
rev = "3608a47a5910f35fdbebcc6a9a9f7869aaab2b76"; rev = "4d03a1db6d00e4a413e15d1e5f5b090a7bc5f4b6";
sha256 = "1dlqqndrp3pkrq2b4fzjp6s7bl0h23si3sjga2136619hvhsic86"; sha256 = "1zwc9n3rwsq7cqz0mryl05zggzdgir8kwsgpvd64lxmf92xzs1mv";
}; };
meta.homepage = "https://github.com/b0o/SchemaStore.nvim/"; meta.homepage = "https://github.com/b0o/SchemaStore.nvim/";
}; };
@ -6087,12 +6099,12 @@ final: prev:
surround-nvim = buildVimPluginFrom2Nix { surround-nvim = buildVimPluginFrom2Nix {
pname = "surround.nvim"; pname = "surround.nvim";
version = "2022-01-11"; version = "2022-01-21";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "blackCauldron7"; owner = "blackCauldron7";
repo = "surround.nvim"; repo = "surround.nvim";
rev = "4ddbef573eba3a8f31ac8da72d495efca33caac0"; rev = "bc07f9d15535b76e464bc4e9e94702136a60b785";
sha256 = "0q4zfa5gvc7v01d431bar8dry55yyb5gmxphmjbx0xq2vai1fcbf"; sha256 = "1j0jq44a5kqfpca3hwhx1jzwl79d3apii0j5b3l4kwhgjgvjwjdm";
}; };
meta.homepage = "https://github.com/blackCauldron7/surround.nvim/"; meta.homepage = "https://github.com/blackCauldron7/surround.nvim/";
}; };
@ -6389,12 +6401,12 @@ final: prev:
telescope-github-nvim = buildVimPluginFrom2Nix { telescope-github-nvim = buildVimPluginFrom2Nix {
pname = "telescope-github.nvim"; pname = "telescope-github.nvim";
version = "2022-01-18"; version = "2022-01-21";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "nvim-telescope"; owner = "nvim-telescope";
repo = "telescope-github.nvim"; repo = "telescope-github.nvim";
rev = "abe424a49a5d3ba8532d4c245611874626795f24"; rev = "36df6b281eb3cb47494933a3dc44c874086fa688";
sha256 = "1dyh2iiz2aqm43gwlm326n47bskm5g9skpb1l6s640x1zkhldimk"; sha256 = "1lra7c38m3amqgdlb4gnl3rnvszwzn0yv624v2h4lhax8nzzq85j";
}; };
meta.homepage = "https://github.com/nvim-telescope/telescope-github.nvim/"; meta.homepage = "https://github.com/nvim-telescope/telescope-github.nvim/";
}; };
@ -6750,12 +6762,12 @@ final: prev:
ultisnips = buildVimPluginFrom2Nix { ultisnips = buildVimPluginFrom2Nix {
pname = "ultisnips"; pname = "ultisnips";
version = "2022-01-17"; version = "2022-01-21";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "SirVer"; owner = "SirVer";
repo = "ultisnips"; repo = "ultisnips";
rev = "016410284e41a67d2a29ca581ae016e56b66b000"; rev = "bc480c1aac4cb6237aa3316ab576e7a674f064ca";
sha256 = "0r988wimis7wx77zzvwqnzzyhq7rfnznvp9vr7vlwg5ilcy2mzy1"; sha256 = "1xkw1m70fr4cqc4wjawzbrkkankbyi7ma61d727sqrigzaqk1zjh";
}; };
meta.homepage = "https://github.com/SirVer/ultisnips/"; meta.homepage = "https://github.com/SirVer/ultisnips/";
}; };
@ -7470,12 +7482,12 @@ final: prev:
vim-clap = buildVimPluginFrom2Nix { vim-clap = buildVimPluginFrom2Nix {
pname = "vim-clap"; pname = "vim-clap";
version = "2022-01-17"; version = "2022-01-21";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "liuchengxu"; owner = "liuchengxu";
repo = "vim-clap"; repo = "vim-clap";
rev = "7dfd2c779b7e4262a17ceb0b7491586e89a2a069"; rev = "7aa3959cad43302601d530671808f1b9cd1b5233";
sha256 = "07v7czk68l5ab4lv9g51gm7lrd0p2wniyjf12d7zcnzja0ayhp22"; sha256 = "07298d5fzsg1jyvwiqpphn9add0ihvk0cdhmsvz3zvabh32mx8lz";
}; };
meta.homepage = "https://github.com/liuchengxu/vim-clap/"; meta.homepage = "https://github.com/liuchengxu/vim-clap/";
}; };
@ -9214,12 +9226,12 @@ final: prev:
pname = "vim-markdown"; pname = "vim-markdown";
version = "2020-07-14"; version = "2020-07-14";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "plasticboy"; owner = "preservim";
repo = "vim-markdown"; repo = "vim-markdown";
rev = "8e5d86f7b85234d3d1b4207dceebc43a768ed5d4"; rev = "8e5d86f7b85234d3d1b4207dceebc43a768ed5d4";
sha256 = "013vh2rnfifm5j56imar03rvchz68ll4lbgy9y8fbw7s9a0k6yaa"; sha256 = "013vh2rnfifm5j56imar03rvchz68ll4lbgy9y8fbw7s9a0k6yaa";
}; };
meta.homepage = "https://github.com/plasticboy/vim-markdown/"; meta.homepage = "https://github.com/preservim/vim-markdown/";
}; };
vim-markdown-composer = buildVimPluginFrom2Nix { vim-markdown-composer = buildVimPluginFrom2Nix {
@ -10605,12 +10617,12 @@ final: prev:
vim-table-mode = buildVimPluginFrom2Nix { vim-table-mode = buildVimPluginFrom2Nix {
pname = "vim-table-mode"; pname = "vim-table-mode";
version = "2021-12-01"; version = "2022-01-21";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "dhruvasagar"; owner = "dhruvasagar";
repo = "vim-table-mode"; repo = "vim-table-mode";
rev = "c547471c0ed32b8511f62752974cde5277e13df4"; rev = "9191af46b6bee8d3e3474c7f8ea134c800e55985";
sha256 = "1qdrd87b91013z1br67j1j45s4iva7ah1r52zkkr0sj0pbiiqh7r"; sha256 = "0szp8n82qmjwpm8skq3zqbmk0j9b269h86v7p6qlwdjnvr39hnis";
}; };
meta.homepage = "https://github.com/dhruvasagar/vim-table-mode/"; meta.homepage = "https://github.com/dhruvasagar/vim-table-mode/";
}; };
@ -10846,12 +10858,12 @@ final: prev:
vim-tpipeline = buildVimPluginFrom2Nix { vim-tpipeline = buildVimPluginFrom2Nix {
pname = "vim-tpipeline"; pname = "vim-tpipeline";
version = "2022-01-14"; version = "2022-01-22";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "vimpostor"; owner = "vimpostor";
repo = "vim-tpipeline"; repo = "vim-tpipeline";
rev = "021f2ebf017b32289ca9bd11b0e988315f34ea96"; rev = "4190d800ec8e29e446c61011fee0dcec61f20199";
sha256 = "0pwf5bks7p3vj622vcab0rfxxkvh4lzn4f6l4wy92hccb1zv40ps"; sha256 = "0mq9mjypq101y593ji7biwvvqzbf5argwcdnpqzphk1ikldq3xh0";
}; };
meta.homepage = "https://github.com/vimpostor/vim-tpipeline/"; meta.homepage = "https://github.com/vimpostor/vim-tpipeline/";
}; };
@ -10906,12 +10918,12 @@ final: prev:
vim-ultest = buildVimPluginFrom2Nix { vim-ultest = buildVimPluginFrom2Nix {
pname = "vim-ultest"; pname = "vim-ultest";
version = "2022-01-20"; version = "2022-01-21";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "rcarriga"; owner = "rcarriga";
repo = "vim-ultest"; repo = "vim-ultest";
rev = "858fd9c1813c59f19f8d70e0b5883894987e8683"; rev = "00da9eacaf4396bdc11817f987c35e5d09486eb4";
sha256 = "1fgj68ik71ci53r3wszjmm9cq3275hn9v6giyjizhzgyk1h2p8ac"; sha256 = "1r5zdwm20110mzwawxik563l4bw5zxhrpdsn0cgq04icp5gbbxrc";
}; };
meta.homepage = "https://github.com/rcarriga/vim-ultest/"; meta.homepage = "https://github.com/rcarriga/vim-ultest/";
}; };
@ -11038,12 +11050,12 @@ final: prev:
vim-wakatime = buildVimPluginFrom2Nix { vim-wakatime = buildVimPluginFrom2Nix {
pname = "vim-wakatime"; pname = "vim-wakatime";
version = "2022-01-07"; version = "2022-01-21";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "wakatime"; owner = "wakatime";
repo = "vim-wakatime"; repo = "vim-wakatime";
rev = "441f5c7ce8adce1d30403bca26ea5e6a3a2b82e4"; rev = "e7f67547956667dd87c4c74bff2760567c3e3ab1";
sha256 = "1zflwz70iqfdrzlq9lvyi2awbj5s9s0daqx4rf4lkp58jb0q6jqr"; sha256 = "0v6kyjsw8ridyvvlwncprfz56iyk9rlsiva5k6sn5ir62cdwhipj";
}; };
meta.homepage = "https://github.com/wakatime/vim-wakatime/"; meta.homepage = "https://github.com/wakatime/vim-wakatime/";
}; };
@ -11326,12 +11338,12 @@ final: prev:
vimspector = buildVimPluginFrom2Nix { vimspector = buildVimPluginFrom2Nix {
pname = "vimspector"; pname = "vimspector";
version = "2022-01-18"; version = "2022-01-21";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "puremourning"; owner = "puremourning";
repo = "vimspector"; repo = "vimspector";
rev = "3ebb4be89735771d43d2c5109f2a46df8ebe10c5"; rev = "2588e4c8dec5bd6a6803d1c86b9e7354409b7d8b";
sha256 = "1z4s6rmia8qp516c0ryizs0q69zlrfa7b7ps5ylbz6w504kywqmm"; sha256 = "07yv643amq7q8bpdqd5m806bw28yzjgpb2hrhnjnh0bj0fqxhkqb";
fetchSubmodules = true; fetchSubmodules = true;
}; };
meta.homepage = "https://github.com/puremourning/vimspector/"; meta.homepage = "https://github.com/puremourning/vimspector/";

View file

@ -752,7 +752,7 @@ self: super: {
libiconv libiconv
]; ];
cargoSha256 = "sha256-LSDtjQxmK+Qe0OJXoEbWeIAqP7NxU+UtVPdL86Hpv5Y="; cargoSha256 = "sha256-4VXXQjGmGGQXgfzSOvFnQS+iQjidj0FjaNKZ3VzBqw0=";
}; };
in in
'' ''

View file

@ -63,6 +63,7 @@ buoto/gotests-vim
camspiers/lens.vim camspiers/lens.vim
camspiers/snap camspiers/snap
carlitux/deoplete-ternjs carlitux/deoplete-ternjs
catppuccin/nvim as catppuccin-nvim
ccarpita/rtorrent-syntax-file ccarpita/rtorrent-syntax-file
cespare/vim-toml cespare/vim-toml
chaoren/vim-wordmotion chaoren/vim-wordmotion
@ -617,7 +618,6 @@ PeterRincker/vim-argumentative
petRUShka/vim-opencl petRUShka/vim-opencl
phaazon/hop.nvim phaazon/hop.nvim
phanviet/vim-monokai-pro phanviet/vim-monokai-pro
plasticboy/vim-markdown
Pocco81/TrueZen.nvim Pocco81/TrueZen.nvim
ponko2/deoplete-fish ponko2/deoplete-fish
posva/vim-vue posva/vim-vue
@ -629,6 +629,7 @@ prabirshrestha/vim-lsp
preservim/nerdcommenter preservim/nerdcommenter
preservim/nerdtree preservim/nerdtree
preservim/tagbar preservim/tagbar
preservim/vim-markdown
preservim/vim-pencil preservim/vim-pencil
preservim/vim-wordy preservim/vim-wordy
preservim/vimux preservim/vimux

View file

@ -41,7 +41,7 @@ stdenv.mkDerivation rec {
nativeBuildInputs = [ nativeBuildInputs = [
autoconf automake pkg-config libtool gettext which gobject-introspection autoconf automake pkg-config libtool gettext which gobject-introspection
gtk-doc libxslt docbook_xml_dtd_412 docbook_xml_dtd_43 docbook_xsl util-linux gtk-doc libxslt docbook_xml_dtd_412 docbook_xml_dtd_43 docbook_xsl
]; ];
postPatch = lib.optionalString stdenv.hostPlatform.isMusl '' postPatch = lib.optionalString stdenv.hostPlatform.isMusl ''
@ -51,7 +51,7 @@ stdenv.mkDerivation rec {
''; '';
buildInputs = [ buildInputs = [
expat libgudev libblockdev acl systemd glib libatasmart polkit expat libgudev libblockdev acl systemd glib libatasmart polkit util-linux
]; ];
preConfigure = "NOCONFIGURE=1 ./autogen.sh"; preConfigure = "NOCONFIGURE=1 ./autogen.sh";

View file

@ -8,6 +8,7 @@
, gcc11 , gcc11
, gnome , gnome
, gssdp , gssdp
, lame
, lib , lib
, libgmpris , libgmpris
, llvmPackages_10 , llvmPackages_10
@ -45,11 +46,11 @@ let
in in
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
pname = "hqplayerd"; pname = "hqplayerd";
version = "4.28.2-76"; version = "4.29.1-80";
src = fetchurl { src = fetchurl {
url = "https://www.signalyst.eu/bins/${pname}/fc34/${pname}-${version}sse42.fc34.x86_64.rpm"; url = "https://www.signalyst.eu/bins/${pname}/fc34/${pname}-${version}sse42.fc34.x86_64.rpm";
sha256 = "sha256-LWNC4tXDddkW1zFf99CQTZjXJq7EMWuDkxS8HJ9AGiY="; sha256 = "sha256-TL5zq7fu7tLoWadmVDMXrE8oiVhHbggpmwWrIGRuAnI=";
}; };
unpackPhase = '' unpackPhase = ''
@ -67,6 +68,7 @@ stdenv.mkDerivation rec {
gssdp gssdp
gupnp_1_2 gupnp_1_2
gupnp-av_0_12 gupnp-av_0_12
lame
libgmpris libgmpris
llvmPackages_10.openmp llvmPackages_10.openmp
mpg123 mpg123

View file

@ -2,7 +2,7 @@
let let
pname = "miniflux"; pname = "miniflux";
version = "2.0.34"; version = "2.0.35";
in buildGoModule { in buildGoModule {
inherit pname version; inherit pname version;
@ -11,10 +11,10 @@ in buildGoModule {
owner = pname; owner = pname;
repo = "v2"; repo = "v2";
rev = version; rev = version;
sha256 = "sha256-6fXmi0q6J1XyxEtOuKO8efkwLrfkMiqeKTHZPuoKYAs="; sha256 = "sha256-tOainlvEB0O6yMzIm0df4r8D68swtjXBFUDsPcNc3uA=";
}; };
vendorSha256 = "sha256-P8ukjBrkPZ0n8HtfyEf2pG3DAXl7D10Ib+dmtwI4KqI="; vendorSha256 = "sha256-dxtQAGlNOVO9NtuGbF6Nifa4QhnFGyHKhlDS3+V5HuM=";
nativeBuildInputs = [ installShellFiles ]; nativeBuildInputs = [ installShellFiles ];

View file

@ -2,11 +2,11 @@
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
pname = "riemann"; pname = "riemann";
version = "0.3.7"; version = "0.3.8";
src = fetchurl { src = fetchurl {
url = "https://github.com/riemann/riemann/releases/download/${version}/${pname}-${version}.tar.bz2"; url = "https://github.com/riemann/riemann/releases/download/${version}/${pname}-${version}.tar.bz2";
sha256 = "sha256-WpJsmb74RhMMKGdNHcYcG4TA+QgpliQ2Ae89JkIjaAo="; sha256 = "sha256-MjTUrqdi9K71PhpLzR3lqdOiNM7Ilmh8HWf3BUOr+b0=";
}; };
nativeBuildInputs = [ makeWrapper ]; nativeBuildInputs = [ makeWrapper ];

View file

@ -71,7 +71,6 @@ let
# Commercial services # Commercial services
qobuz = [ curl libgcrypt yajl ]; qobuz = [ curl libgcrypt yajl ];
soundcloud = [ curl yajl ]; soundcloud = [ curl yajl ];
tidal = [ curl yajl ];
# Client support # Client support
libmpdclient = [ libmpdclient ]; libmpdclient = [ libmpdclient ];
# Tag support # Tag support
@ -196,7 +195,7 @@ in
"lame" "libsamplerate" "shout" "lame" "libsamplerate" "shout"
"libmpdclient" "id3tag" "expat" "pcre" "libmpdclient" "id3tag" "expat" "pcre"
"yajl" "sqlite" "yajl" "sqlite"
"soundcloud" "qobuz" "tidal" "soundcloud" "qobuz"
] ++ lib.optionals stdenv.isLinux [ ] ++ lib.optionals stdenv.isLinux [
"alsa" "systemd" "syslog" "io_uring" "alsa" "systemd" "syslog" "io_uring"
] ++ lib.optionals (!stdenv.isDarwin) [ ] ++ lib.optionals (!stdenv.isDarwin) [

View file

@ -2,32 +2,29 @@
nimPackages.buildNimPackage rec { nimPackages.buildNimPackage rec {
pname = "nitter"; pname = "nitter";
version = "unstable-2021-12-31"; version = "unstable-2022-01-32";
nimBinOnly = true; nimBinOnly = true;
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "zedeus"; owner = "zedeus";
repo = "nitter"; repo = "nitter";
rev = "9d117aa15b3c3238cee79acd45d655eeb0e46293"; rev = "cdb4efadfeb5102b501c7ff79261fefc7327edb9";
sha256 = "06hd3r1kgxx83sl5ss90r39v815xp2ki72fc8p64kid34mcn57cz"; sha256 = "sha256-kNK0UQd1whkaZwj98b2JYtYwjUSE1qBcAYytqnSaK1o=";
}; };
buildInputs = with nimPackages; [ buildInputs = with nimPackages; [
jester jester
karax karax
sass sass
regex
unicodedb
unicodeplus
segmentation
nimcrypto nimcrypto
markdown markdown
packedjson packedjson
supersnappy supersnappy
redpool redpool
flatty
zippy
redis redis
zippy
flatty
jsony
]; ];
postBuild = '' postBuild = ''

View file

@ -2,8 +2,8 @@
# Native buildInputs components # Native buildInputs components
, bison, boost, cmake, fixDarwinDylibNames, flex, makeWrapper, pkg-config , bison, boost, cmake, fixDarwinDylibNames, flex, makeWrapper, pkg-config
# Common components # Common components
, curl, libiconv, ncurses, openssl, pcre2 , curl, libiconv, ncurses, openssl, pcre, pcre2
, libkrb5, liburing, systemd , libkrb5, libaio, liburing, systemd
, CoreServices, cctools, perl , CoreServices, cctools, perl
, jemalloc, less , jemalloc, less
# Server components # Server components
@ -14,36 +14,37 @@
, withStorageRocks ? true , withStorageRocks ? true
}: }:
with lib;
let # in mariadb # spans the whole file let # in mariadb # spans the whole file
libExt = stdenv.hostPlatform.extensions.sharedLibrary; libExt = stdenv.hostPlatform.extensions.sharedLibrary;
mytopEnv = perl.withPackages (p: with p; [ DBDmysql DBI TermReadKey ]); mytopEnv = perl.withPackages (p: with p; [ DBDmysql DBI TermReadKey ]);
mariadb = server // { mariadbPackage = packageSettings: (server packageSettings) // {
inherit client; # MariaDB Client client = client packageSettings; # MariaDB Client
server = server; # MariaDB Server server = server packageSettings; # MariaDB Server
}; };
common = rec { # attributes common to both builds commonOptions = packageSettings: rec { # attributes common to both builds
version = "10.6.5"; inherit (packageSettings) version;
src = fetchurl { src = fetchurl {
url = "https://downloads.mariadb.com/MariaDB/mariadb-${version}/source/mariadb-${version}.tar.gz"; url = "https://downloads.mariadb.com/MariaDB/mariadb-${version}/source/mariadb-${version}.tar.gz";
sha256 = "sha256-4L4EBCjZpCqLtL0iG1Z/8lIs1vqJBjhic9pPA8XCCo8="; inherit (packageSettings) sha256;
}; };
nativeBuildInputs = [ cmake pkg-config ] nativeBuildInputs = [ cmake pkg-config ]
++ optional stdenv.hostPlatform.isDarwin fixDarwinDylibNames ++ lib.optional stdenv.hostPlatform.isDarwin fixDarwinDylibNames
++ optional (!stdenv.hostPlatform.isDarwin) makeWrapper; ++ lib.optional (!stdenv.hostPlatform.isDarwin) makeWrapper;
buildInputs = [ buildInputs = [
curl libiconv ncurses openssl pcre2 zlib curl libiconv ncurses openssl zlib
] ++ optionals stdenv.hostPlatform.isLinux [ libkrb5 liburing systemd ] ] ++ (packageSettings.extraBuildInputs or [])
++ optionals stdenv.hostPlatform.isDarwin [ CoreServices cctools perl ] ++ lib.optionals stdenv.hostPlatform.isLinux ([ libkrb5 systemd ]
++ optional (!stdenv.hostPlatform.isDarwin) [ jemalloc ]; ++ (if (lib.versionOlder version "10.6") then [ libaio ] else [ liburing ]))
++ lib.optionals stdenv.hostPlatform.isDarwin [ CoreServices cctools perl ]
++ lib.optional (!stdenv.hostPlatform.isDarwin) [ jemalloc ]
++ (if (lib.versionOlder version "10.5") then [ pcre ] else [ pcre2 ]);
prePatch = '' prePatch = ''
sed -i 's,[^"]*/var/log,/var/log,g' storage/mroonga/vendor/groonga/CMakeLists.txt sed -i 's,[^"]*/var/log,/var/log,g' storage/mroonga/vendor/groonga/CMakeLists.txt
@ -54,7 +55,7 @@ common = rec { # attributes common to both builds
] ]
# Fixes a build issue as documented on # Fixes a build issue as documented on
# https://jira.mariadb.org/browse/MDEV-26769?focusedCommentId=206073&page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#comment-206073 # https://jira.mariadb.org/browse/MDEV-26769?focusedCommentId=206073&page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#comment-206073
++ lib.optional (!stdenv.isLinux) ./patch/macos-MDEV-26769-regression-fix.patch; ++ lib.optional (!stdenv.hostPlatform.isLinux && lib.versionAtLeast version "10.6") ./patch/macos-MDEV-26769-regression-fix.patch;
cmakeFlags = [ cmakeFlags = [
"-DBUILD_CONFIG=mysql_release" "-DBUILD_CONFIG=mysql_release"
@ -86,7 +87,7 @@ common = rec { # attributes common to both builds
"-DWITH_SAFEMALLOC=OFF" "-DWITH_SAFEMALLOC=OFF"
"-DWITH_UNIT_TESTS=OFF" "-DWITH_UNIT_TESTS=OFF"
"-DEMBEDDED_LIBRARY=OFF" "-DEMBEDDED_LIBRARY=OFF"
] ++ optionals stdenv.hostPlatform.isDarwin [ ] ++ lib.optionals stdenv.hostPlatform.isDarwin [
# On Darwin without sandbox, CMake will find the system java and attempt to build with java support, but # On Darwin without sandbox, CMake will find the system java and attempt to build with java support, but
# then it will fail during the actual build. Let's just disable the flag explicitly until someone decides # then it will fail during the actual build. Let's just disable the flag explicitly until someone decides
# to pass in java explicitly. # to pass in java explicitly.
@ -98,37 +99,39 @@ common = rec { # attributes common to both builds
# Remove Development components. Need to use libmysqlclient. # Remove Development components. Need to use libmysqlclient.
rm "$out"/lib/mysql/plugin/daemon_example.ini rm "$out"/lib/mysql/plugin/daemon_example.ini
rm "$out"/lib/{libmariadbclient.a,libmysqlclient.a,libmysqlclient_r.a,libmysqlservices.a} rm "$out"/lib/{libmariadbclient.a,libmysqlclient.a,libmysqlclient_r.a,libmysqlservices.a}
rm "$out"/bin/{mariadb-config,mariadb_config,mysql_config} rm -f "$out"/bin/{mariadb-config,mariadb_config,mysql_config}
rm -r $out/include rm -r $out/include
rm -r $out/lib/pkgconfig rm -r $out/lib/pkgconfig
''; '';
# perlPackages.DBDmysql is broken on darwin # perlPackages.DBDmysql is broken on darwin
postFixup = optionalString (!stdenv.hostPlatform.isDarwin) '' postFixup = lib.optionalString (!stdenv.hostPlatform.isDarwin) ''
wrapProgram $out/bin/mytop --set PATH ${makeBinPath [ less ncurses ]} wrapProgram $out/bin/mytop --set PATH ${lib.makeBinPath [ less ncurses ]}
''; '';
passthru.mysqlVersion = "5.7"; passthru.tests = let
testVersion = "mariadb_${builtins.replaceStrings ["."] [""] (lib.versions.majorMinor (packageSettings.version))}";
passthru.tests = { in {
mariadb-galera-mariabackup = nixosTests.mariadb-galera-mariabackup; mariadb-galera-rsync = nixosTests.mariadb-galera.${testVersion};
mariadb-galera-rsync = nixosTests.mariadb-galera-rsync; mysql = nixosTests.mysql.${testVersion};
mysql = nixosTests.mysql; mysql-autobackup = nixosTests.mysql-autobackup.${testVersion};
mysql-autobackup = nixosTests.mysql-autobackup; mysql-backup = nixosTests.mysql-backup.${testVersion};
mysql-backup = nixosTests.mysql-backup; mysql-replication = nixosTests.mysql-replication.${testVersion};
mysql-replication = nixosTests.mysql-replication;
}; };
meta = { meta = with lib; {
description = "An enhanced, drop-in replacement for MySQL"; description = "An enhanced, drop-in replacement for MySQL";
homepage = "https://mariadb.org/"; homepage = "https://mariadb.org/";
license = licenses.gpl2; license = licenses.gpl2;
maintainers = with maintainers; [ thoughtpolice ]; maintainers = with maintainers; [ thoughtpolice ajs124 das_j ];
platforms = platforms.all; platforms = platforms.all;
}; };
}; };
client = stdenv.mkDerivation (common // { client = packageSettings: let
common = commonOptions packageSettings;
in stdenv.mkDerivation (common // {
pname = "mariadb-client"; pname = "mariadb-client";
outputs = [ "out" "man" ]; outputs = [ "out" "man" ];
@ -153,7 +156,10 @@ client = stdenv.mkDerivation (common // {
''; '';
}); });
server = stdenv.mkDerivation (common // { server = packageSettings: let
common = commonOptions packageSettings;
in stdenv.mkDerivation (common // {
pname = "mariadb-server"; pname = "mariadb-server";
outputs = [ "out" "man" ]; outputs = [ "out" "man" ];
@ -163,11 +169,11 @@ server = stdenv.mkDerivation (common // {
buildInputs = common.buildInputs ++ [ buildInputs = common.buildInputs ++ [
bzip2 lz4 lzo snappy xz zstd bzip2 lz4 lzo snappy xz zstd
cracklib judy libevent libxml2 cracklib judy libevent libxml2
] ++ optional (stdenv.hostPlatform.isLinux && !stdenv.hostPlatform.isAarch32) numactl ] ++ lib.optional (stdenv.hostPlatform.isLinux && !stdenv.hostPlatform.isAarch32) numactl
++ optionals stdenv.hostPlatform.isLinux [ linux-pam ] ++ lib.optionals stdenv.hostPlatform.isLinux [ linux-pam ]
++ optional (stdenv.hostPlatform.isLinux && stdenv.hostPlatform.isx86_64) pmdk.dev ++ lib.optional (stdenv.hostPlatform.isLinux && stdenv.hostPlatform.isx86_64) pmdk.dev
++ optional (!stdenv.hostPlatform.isDarwin) mytopEnv ++ lib.optional (!stdenv.hostPlatform.isDarwin) mytopEnv
++ optionals withStorageMroonga [ kytea libsodium msgpack zeromq ]; ++ lib.optionals withStorageMroonga [ kytea libsodium msgpack zeromq ];
patches = common.patches; patches = common.patches;
@ -188,38 +194,54 @@ server = stdenv.mkDerivation (common // {
"-DWITHOUT_EXAMPLE=1" "-DWITHOUT_EXAMPLE=1"
"-DWITHOUT_FEDERATED=1" "-DWITHOUT_FEDERATED=1"
"-DWITHOUT_TOKUDB=1" "-DWITHOUT_TOKUDB=1"
] ++ optional (stdenv.hostPlatform.isLinux && !stdenv.hostPlatform.isAarch32) [ ] ++ lib.optional (stdenv.hostPlatform.isLinux && !stdenv.hostPlatform.isAarch32) [
"-DWITH_NUMA=ON" "-DWITH_NUMA=ON"
] ++ optional (!withStorageMroonga) [ ] ++ lib.optional (!withStorageMroonga) [
"-DWITHOUT_MROONGA=1" "-DWITHOUT_MROONGA=1"
] ++ optional (!withStorageRocks) [ ] ++ lib.optional (!withStorageRocks) [
"-DWITHOUT_ROCKSDB=1" "-DWITHOUT_ROCKSDB=1"
] ++ optional (!stdenv.hostPlatform.isDarwin && withStorageRocks) [ ] ++ lib.optional (!stdenv.hostPlatform.isDarwin && withStorageRocks) [
"-DWITH_ROCKSDB_JEMALLOC=ON" "-DWITH_ROCKSDB_JEMALLOC=ON"
] ++ optional (!stdenv.hostPlatform.isDarwin) [ ] ++ lib.optional (!stdenv.hostPlatform.isDarwin) [
"-DWITH_JEMALLOC=yes" "-DWITH_JEMALLOC=yes"
] ++ optionals stdenv.hostPlatform.isDarwin [ ] ++ lib.optionals stdenv.hostPlatform.isDarwin [
"-DPLUGIN_AUTH_PAM=OFF" "-DPLUGIN_AUTH_PAM=OFF"
"-DWITHOUT_OQGRAPH=1" "-DWITHOUT_OQGRAPH=1"
"-DWITHOUT_PLUGIN_S3=1" "-DWITHOUT_PLUGIN_S3=1"
]; ];
preConfigure = optionalString (!stdenv.hostPlatform.isDarwin) '' preConfigure = lib.optionalString (!stdenv.hostPlatform.isDarwin) ''
patchShebangs scripts/mytop.sh patchShebangs scripts/mytop.sh
''; '';
postInstall = common.postInstall + '' postInstall = common.postInstall + ''
rm -r "$out"/share/aclocal rm -r "$out"/share/aclocal
chmod +x "$out"/bin/wsrep_sst_common chmod +x "$out"/bin/wsrep_sst_common
rm "$out"/bin/{mariadb-client-test,mariadb-test,mysql_client_test,mysqltest} rm -f "$out"/bin/{mariadb-client-test,mariadb-test,mysql_client_test,mysqltest}
'' + optionalString withStorageMroonga '' '' + lib.optionalString withStorageMroonga ''
mv "$out"/share/{groonga,groonga-normalizer-mysql} "$out"/share/doc/mysql mv "$out"/share/{groonga,groonga-normalizer-mysql} "$out"/share/doc/mysql
'' + optionalString (!stdenv.hostPlatform.isDarwin) '' '' + lib.optionalString (!stdenv.hostPlatform.isDarwin && lib.versionAtLeast common.version "10.4") ''
mv "$out"/OFF/suite/plugins/pam/pam_mariadb_mtr.so "$out"/share/pam/lib/security mv "$out"/OFF/suite/plugins/pam/pam_mariadb_mtr.so "$out"/share/pam/lib/security
mv "$out"/OFF/suite/plugins/pam/mariadb_mtr "$out"/share/pam/etc/security mv "$out"/OFF/suite/plugins/pam/mariadb_mtr "$out"/share/pam/etc/security
rm -r "$out"/OFF rm -r "$out"/OFF
''; '';
CXXFLAGS = optionalString stdenv.hostPlatform.isi686 "-fpermissive"; CXXFLAGS = lib.optionalString stdenv.hostPlatform.isi686 "-fpermissive";
}); });
in mariadb in {
mariadb_104 = mariadbPackage {
# Supported until 2024-06-18
version = "10.4.22";
sha256 = "000ca1hdnj2jg051cjgdd2ralgwgh2p8nwb1x6b85202xdpc7ga4";
};
mariadb_105 = mariadbPackage {
# Supported until 2025-06-24
version = "10.5.13";
sha256 = "0n0w1pyypv6wsknaqyykj3lc9zv6smji4q5jcf90w4rid330iw0n";
};
mariadb_106 = mariadbPackage {
# Supported until 2026-07
version = "10.6.5";
sha256 = "13qaqb2h6kysfdi3h1l9zbb2qlpjgxb1n8mxnj5jm96r50209gp0";
};
}

View file

@ -2,13 +2,13 @@
buildGoModule rec { buildGoModule rec {
pname = "tailscale"; pname = "tailscale";
version = "1.20.1"; version = "1.20.2";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "tailscale"; owner = "tailscale";
repo = "tailscale"; repo = "tailscale";
rev = "v${version}"; rev = "v${version}";
sha256 = "sha256-n+94ipR1w63NS2tzMsJWY4oxeTBEWrp8e2gF+CTpvrI="; sha256 = "sha256-uW/C4Bks7qGJEQhPoqd2LSk8MAD9gcDRsJbbowgsSuY=";
}; };
nativeBuildInputs = lib.optionals stdenv.isLinux [ makeWrapper ]; nativeBuildInputs = lib.optionals stdenv.isLinux [ makeWrapper ];

View file

@ -2,15 +2,15 @@
buildGoModule rec { buildGoModule rec {
pname = "traefik"; pname = "traefik";
version = "2.5.6"; version = "2.5.7";
src = fetchzip { src = fetchzip {
url = "https://github.com/traefik/traefik/releases/download/v${version}/traefik-v${version}.src.tar.gz"; url = "https://github.com/traefik/traefik/releases/download/v${version}/traefik-v${version}.src.tar.gz";
sha256 = "sha256-HHJTfAigUH7C0VuKUeGypqFlQwVdy05Ki/aTxDsl+tg="; sha256 = "sha256-CQXrAKdfNqGKXw3Ds47uq6ALsDh6JRf+94axOvLzWbE=";
stripRoot = false; stripRoot = false;
}; };
vendorSha256 = "sha256-DqjqJPyoFlCjIIaHYS5jrROQWDxZk+RGfccC2jYZ8LE="; vendorSha256 = "sha256-aZemr1waV2hIujbI+1PrivXxa1RrT0Ams4xT4QxTQPY=";
doCheck = false; doCheck = false;

View file

@ -18,16 +18,16 @@
rustPlatform.buildRustPackage rec { rustPlatform.buildRustPackage rec {
pname = "nushell"; pname = "nushell";
version = "0.42.0"; version = "0.43.0";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = pname; owner = pname;
repo = pname; repo = pname;
rev = version; rev = version;
sha256 = "sha256-2EBy61K/HCdCFZkVT5XrflQGuQrRWfdrevV3OPjpUcQ="; sha256 = "sha256-LSKddSDmXKRnD6PuCPCg/AUMj5y1lzFD24aqVrP7NjU=";
}; };
cargoSha256 = "sha256-iU19rHb1td4NIF+P3wctIcZKL09H+51XwD3NaSBKK18="; cargoSha256 = "sha256-gVjOsRDL7u3bXqmHVaqfQnPfGw9Qny4ETRYyhwyEoI0=";
nativeBuildInputs = [ pkg-config ] nativeBuildInputs = [ pkg-config ]
++ lib.optionals (withExtraFeatures && stdenv.isLinux) [ python3 ]; ++ lib.optionals (withExtraFeatures && stdenv.isLinux) [ python3 ];

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