mirror of
https://github.com/NixOS/nixpkgs.git
synced 2026-07-06 17:13:24 -05:00
Merge release-26.05 into staging-next-26.05
This commit is contained in:
commit
ce6ea406e0
44 changed files with 684 additions and 231 deletions
2
.github/workflows/teams.yml
vendored
2
.github/workflows/teams.yml
vendored
|
|
@ -2,7 +2,7 @@ name: Teams
|
|||
|
||||
on:
|
||||
schedule:
|
||||
# Every Tuesday at 19:42 (randomly chosen)
|
||||
# Every Monday at 19:42 (randomly chosen)
|
||||
- cron: '42 19 * * 1'
|
||||
workflow_dispatch:
|
||||
|
||||
|
|
|
|||
|
|
@ -2,10 +2,11 @@
|
|||
"acme": {
|
||||
"description": "Maintain ACME-related packages and modules.",
|
||||
"id": 3806126,
|
||||
"maintainers": {},
|
||||
"maintainers": {
|
||||
"emilazy": 18535642
|
||||
},
|
||||
"members": {
|
||||
"arianvp": 628387,
|
||||
"emilazy": 18535642,
|
||||
"m1cr0man": 3044438
|
||||
},
|
||||
"name": "ACME"
|
||||
|
|
@ -71,11 +72,10 @@
|
|||
"description": "coordinates efforts towards bootstrappable builds (see https://bootstrappable.org/)",
|
||||
"id": 9141350,
|
||||
"maintainers": {
|
||||
"philiptaron": 43863,
|
||||
"zeuner": 2545850
|
||||
},
|
||||
"members": {
|
||||
"philiptaron": 43863
|
||||
},
|
||||
"members": {},
|
||||
"name": "bootstrapping"
|
||||
},
|
||||
"categorization": {
|
||||
|
|
@ -176,6 +176,7 @@
|
|||
"description": "Improve Darwin-support across Nixpkgs and help maintainers without access to Darwin hardware. Apply to join through https://github.com/NixOS/nixpkgs/issues/323144 to keep the process transparent.",
|
||||
"id": 2385202,
|
||||
"maintainers": {
|
||||
"emilazy": 18535642,
|
||||
"toonn": 1486805
|
||||
},
|
||||
"members": {
|
||||
|
|
@ -205,7 +206,6 @@
|
|||
"donn": 12652988,
|
||||
"dwt": 57199,
|
||||
"eclairevoyant": 848000,
|
||||
"emilazy": 18535642,
|
||||
"ethancedwards8": 60861925,
|
||||
"fiddlerwoaroof": 808745,
|
||||
"fulsomenko": 14945057,
|
||||
|
|
@ -410,9 +410,7 @@
|
|||
"jtojnar": 705123
|
||||
},
|
||||
"members": {
|
||||
"bobby285271": 20080233,
|
||||
"dasj19": 7589338,
|
||||
"hedning": 71978
|
||||
"bobby285271": 20080233
|
||||
},
|
||||
"name": "GNOME"
|
||||
},
|
||||
|
|
@ -556,11 +554,12 @@
|
|||
"id": 9955829,
|
||||
"maintainers": {
|
||||
"RossComputerGuy": 19699320,
|
||||
"alyssais": 2768870
|
||||
"alyssais": 2768870,
|
||||
"emilazy": 18535642
|
||||
},
|
||||
"members": {
|
||||
"Ericson2314": 1055245,
|
||||
"emilazy": 18535642,
|
||||
"peterwaller-arm": 52030119,
|
||||
"rrbutani": 7833358,
|
||||
"sternenseemann": 3154475
|
||||
},
|
||||
|
|
@ -695,8 +694,7 @@
|
|||
"description": "",
|
||||
"id": 174820,
|
||||
"maintainers": {
|
||||
"Ericson2314": 1055245,
|
||||
"tomberek": 178444
|
||||
"Ericson2314": 1055245
|
||||
},
|
||||
"members": {
|
||||
"Mic92": 96200,
|
||||
|
|
@ -704,6 +702,7 @@
|
|||
"edolstra": 1148549,
|
||||
"lisanna-dettwyler": 72424138,
|
||||
"lovesegfault": 7243783,
|
||||
"tomberek": 178444,
|
||||
"xokdvium": 145775305
|
||||
},
|
||||
"name": "Nix team"
|
||||
|
|
@ -852,15 +851,15 @@
|
|||
"description": "Team that is interested in reproducible builds",
|
||||
"id": 7625643,
|
||||
"maintainers": {
|
||||
"raboof": 131856,
|
||||
"zimbatm": 3248
|
||||
"raboof": 131856
|
||||
},
|
||||
"members": {
|
||||
"Artturin": 56650223,
|
||||
"Atemu": 18599032,
|
||||
"RaitoBezarius": 314564,
|
||||
"davidak": 91113,
|
||||
"mschwaig": 3856390
|
||||
"mschwaig": 3856390,
|
||||
"zimbatm": 3248
|
||||
},
|
||||
"name": "reproducible"
|
||||
},
|
||||
|
|
@ -964,13 +963,13 @@
|
|||
"description": "Maintain the standard environment and its surrounding logic.",
|
||||
"id": 11265412,
|
||||
"maintainers": {
|
||||
"RossComputerGuy": 19699320
|
||||
"RossComputerGuy": 19699320,
|
||||
"emilazy": 18535642,
|
||||
"philiptaron": 43863
|
||||
},
|
||||
"members": {
|
||||
"Artturin": 56650223,
|
||||
"Ericson2314": 1055245,
|
||||
"emilazy": 18535642,
|
||||
"philiptaron": 43863,
|
||||
"reckenrode": 7413633
|
||||
},
|
||||
"name": "stdenv"
|
||||
|
|
|
|||
|
|
@ -21,11 +21,6 @@
|
|||
};
|
||||
};
|
||||
|
||||
environment.systemPackages = [
|
||||
# provide onscreen keyboard
|
||||
pkgs.kdePackages.plasma-keyboard
|
||||
];
|
||||
|
||||
environment.plasma6.excludePackages = [
|
||||
# Optional wallpapers that add 126 MiB to the graphical installer
|
||||
# closure. They will still need to be downloaded when installing a
|
||||
|
|
|
|||
|
|
@ -887,6 +887,7 @@
|
|||
./services/misc/ihaskell.nix
|
||||
./services/misc/iio-niri.nix
|
||||
./services/misc/input-remapper.nix
|
||||
./services/misc/inventree.nix
|
||||
./services/misc/invidious-router.nix
|
||||
./services/misc/irkerd.nix
|
||||
./services/misc/jackett.nix
|
||||
|
|
|
|||
|
|
@ -276,8 +276,7 @@ in
|
|||
++ (with pkgs.pantheon; [
|
||||
elementary-files
|
||||
elementary-settings-daemon
|
||||
# https://github.com/elementary/portals/issues/157
|
||||
# xdg-desktop-portal-pantheon
|
||||
xdg-desktop-portal-pantheon
|
||||
])
|
||||
) config.environment.pantheon.excludePackages;
|
||||
|
||||
|
|
|
|||
|
|
@ -169,6 +169,9 @@ in
|
|||
krdp
|
||||
kconfig # required for xdg-terminal from xdg-utils
|
||||
qtbase # for qtpaths which is required for xdg-mime from xdg-utils
|
||||
# touch keyboard
|
||||
plasma-keyboard
|
||||
qtvirtualkeyboard # used by plasma-keyboard KCM
|
||||
]
|
||||
++ lib.optional config.networking.networkmanager.enable qrca
|
||||
++ lib.optionals config.hardware.sensor.iio.enable [
|
||||
|
|
|
|||
|
|
@ -125,6 +125,12 @@ in
|
|||
};
|
||||
users.groups.scanservjs = { };
|
||||
|
||||
systemd.tmpfiles.rules = [
|
||||
"d ${cfg.stateDir}/data 0755 scanservjs scanservjs - -"
|
||||
"d ${cfg.stateDir}/data/preview 0755 scanservjs scanservjs - -"
|
||||
"L+ ${cfg.stateDir}/data/preview/default.jpg - - - - ${package}/lib/data/preview/default.jpg"
|
||||
];
|
||||
|
||||
systemd.services.scanservjs = {
|
||||
description = "scanservjs";
|
||||
after = [ "network.target" ];
|
||||
|
|
|
|||
411
nixos/modules/services/misc/inventree.nix
Normal file
411
nixos/modules/services/misc/inventree.nix
Normal file
|
|
@ -0,0 +1,411 @@
|
|||
{
|
||||
config,
|
||||
pkgs,
|
||||
lib,
|
||||
...
|
||||
}:
|
||||
let
|
||||
cfg = config.services.inventree;
|
||||
pkg = cfg.package;
|
||||
|
||||
mysqlLocal = cfg.database.createLocally && cfg.database.dbtype == "mysql";
|
||||
pgsqlLocal = cfg.database.createLocally && cfg.database.dbtype == "postgresql";
|
||||
|
||||
manage = pkgs.writeShellScriptBin "inventree-manage" ''
|
||||
set -a
|
||||
${lib.toShellVars cfg.settings}
|
||||
${lib.optionalString (
|
||||
cfg.database.passwordFile != null
|
||||
) ''INVENTREE_DB_PASSWORD="$(<${lib.escapeShellArg cfg.database.passwordFile})"''}
|
||||
set +a
|
||||
|
||||
pushd ${lib.escapeShellArg cfg.dataDir}
|
||||
expectedUser=${lib.escapeShellArg cfg.user}
|
||||
sudo=()
|
||||
if [[ "$USER" != "$expectedUser" ]]; then
|
||||
${
|
||||
if config.security.sudo.enable then
|
||||
''sudo+=(${config.security.wrapperDir}/sudo -u "$expectedUser" -E)''
|
||||
else
|
||||
''printf 'Aborting, inventree-manage must be run as user %s\n!' "$expectedUser" >&2; exit 2''
|
||||
}
|
||||
fi
|
||||
exec "''${sudo[@]}" ${cfg.package}/bin/inventree "$@"
|
||||
'';
|
||||
|
||||
in
|
||||
{
|
||||
meta.buildDocsInSandbox = false;
|
||||
|
||||
meta.maintainers = with lib.maintainers; [
|
||||
kurogeek
|
||||
];
|
||||
|
||||
options.services.inventree = {
|
||||
enable = lib.mkEnableOption "inventree";
|
||||
|
||||
dataDir = lib.mkOption {
|
||||
type = lib.types.str;
|
||||
default = "/var/lib/inventree";
|
||||
description = "Inventree's data storage path. Will be `/var/lib/inventree` by default.";
|
||||
};
|
||||
|
||||
package = lib.mkOption {
|
||||
type = lib.types.package;
|
||||
description = "Which package to use for the InvenTree instance.";
|
||||
default = pkgs.inventree;
|
||||
defaultText = lib.literalExpression "pkgs.inventree";
|
||||
};
|
||||
|
||||
adminPasswordFile = lib.mkOption {
|
||||
type = lib.types.nullOr lib.types.path;
|
||||
default = null;
|
||||
example = "/run/keys/inventree-password";
|
||||
description = "Path to a file containing admin password";
|
||||
};
|
||||
|
||||
secretKeyFile = lib.mkOption {
|
||||
type = lib.types.path;
|
||||
default = "${cfg.dataDir}/secret_key.txt";
|
||||
defaultText = lib.literalExpression ''"''${cfg.dataDir}/secret_key.txt"'';
|
||||
example = "/run/keys/inventree-secret-key";
|
||||
description = ''
|
||||
Path to a file containing the secret key
|
||||
'';
|
||||
};
|
||||
|
||||
database = {
|
||||
dbtype = lib.mkOption {
|
||||
type = lib.types.nullOr (
|
||||
lib.types.enum [
|
||||
"postgresql"
|
||||
"mysql"
|
||||
]
|
||||
);
|
||||
default = "postgresql";
|
||||
description = "Database type.";
|
||||
};
|
||||
dbhost = lib.mkOption {
|
||||
type = lib.types.nullOr lib.types.str;
|
||||
default = null;
|
||||
example = "localhost";
|
||||
description = "Database host or socket path.";
|
||||
};
|
||||
dbport = lib.mkOption {
|
||||
type = lib.types.nullOr lib.types.port;
|
||||
default = null;
|
||||
example = 5432;
|
||||
description = "Database host port.";
|
||||
};
|
||||
dbname = lib.mkOption {
|
||||
type = lib.types.str;
|
||||
default = "inventree";
|
||||
description = "Database name.";
|
||||
};
|
||||
dbuser = lib.mkOption {
|
||||
type = lib.types.str;
|
||||
default = "inventree";
|
||||
description = "Database username.";
|
||||
};
|
||||
passwordFile = lib.mkOption {
|
||||
type = with lib.types; nullOr path;
|
||||
default = null;
|
||||
example = "/run/keys/inventree-dbpassword";
|
||||
description = ''
|
||||
A file containing the password corresponding to
|
||||
<option>database.dbuser</option>.
|
||||
'';
|
||||
};
|
||||
createLocally = lib.mkOption {
|
||||
type = lib.types.bool;
|
||||
default = true;
|
||||
description = "Create the database and database user locally.";
|
||||
};
|
||||
};
|
||||
|
||||
domain = lib.mkOption {
|
||||
type = lib.types.str;
|
||||
default = "localhost";
|
||||
example = "inventree.example.com";
|
||||
description = ''
|
||||
The INVENTREE_SITE_URL option defines the base URL for the
|
||||
InvenTree server. This is a critical setting, and it is required
|
||||
for correct operation of the server. If not specified, the
|
||||
server will attempt to determine the site URL automatically -
|
||||
but this may not always be correct!
|
||||
|
||||
The site URL is the URL that users will use to access the
|
||||
InvenTree server. For example, if the server is accessible at
|
||||
`https://inventree.example.com`, the site URL should be set to
|
||||
`https://inventree.example.com`. Note that this is not
|
||||
necessarily the same as the internal URL that the server is
|
||||
running on - the internal URL will depend entirely on your
|
||||
server configuration and may be obscured by a reverse proxy or
|
||||
other such setup.
|
||||
'';
|
||||
};
|
||||
|
||||
user = lib.mkOption {
|
||||
type = lib.types.str;
|
||||
default = "inventree";
|
||||
description = "User under which InvenTree runs.";
|
||||
};
|
||||
|
||||
group = lib.mkOption {
|
||||
type = lib.types.str;
|
||||
default = "inventree";
|
||||
description = "Group under which InvenTree runs.";
|
||||
};
|
||||
|
||||
settings = lib.mkOption {
|
||||
type =
|
||||
with lib.types;
|
||||
attrsOf (
|
||||
nullOr (oneOf [
|
||||
path
|
||||
str
|
||||
])
|
||||
);
|
||||
default = { };
|
||||
description = ''
|
||||
InvenTree config options.
|
||||
|
||||
See [the documentation](https://docs.inventree.org/en/stable/start/config/) for available options.
|
||||
'';
|
||||
example = {
|
||||
INVENTREE_CACHE_ENABLED = true;
|
||||
INVENTREE_CACHE_HOST = "localhost";
|
||||
|
||||
INVENTREE_EMAIL_HOST = "smtp.example.com";
|
||||
INVENTREE_EMAIL_PORT = 25;
|
||||
};
|
||||
};
|
||||
|
||||
};
|
||||
|
||||
config = lib.mkIf cfg.enable (
|
||||
lib.mkMerge [
|
||||
{
|
||||
services.inventree.settings = {
|
||||
INVENTREE_DB_ENGINE = cfg.database.dbtype;
|
||||
INVENTREE_DB_NAME = cfg.database.dbname;
|
||||
INVENTREE_DB_HOST = cfg.database.dbhost;
|
||||
INVENTREE_DB_USER = cfg.database.dbuser;
|
||||
INVENTREE_DB_PORT = if cfg.database.dbport != null then toString cfg.database.dbport else null;
|
||||
|
||||
INVENTREE_CONFIG_FILE = lib.mkDefault "${cfg.dataDir}/config/config.yaml";
|
||||
INVENTREE_OIDC_PRIVATE_KEY_FILE = lib.mkDefault "${cfg.dataDir}/config/oidc_private_key.txt";
|
||||
INVENTREE_STATIC_ROOT = lib.mkDefault "${cfg.package}/lib/inventree/static";
|
||||
INVENTREE_MEDIA_ROOT = lib.mkDefault "${cfg.dataDir}/data/media";
|
||||
INVENTREE_BACKUP_DIR = lib.mkDefault "${cfg.dataDir}/data/backups";
|
||||
INVENTREE_SITE_URL = lib.mkDefault "http://${cfg.domain}";
|
||||
INVENTREE_PLUGIN_FILE = lib.mkDefault "${cfg.dataDir}/data/plugins/plugins.txt";
|
||||
INVENTREE_PLUGIN_DIR = lib.mkDefault "${cfg.dataDir}/data/plugins";
|
||||
INVENTREE_ADMIN_USER = lib.mkDefault "admin";
|
||||
INVENTREE_ADMIN_EMAIL = lib.mkDefault "admin@${cfg.domain}";
|
||||
INVENTREE_ADMIN_PASSWORD_FILE = lib.mkDefault cfg.adminPasswordFile;
|
||||
INVENTREE_SECRET_KEY_FILE = lib.mkDefault cfg.secretKeyFile;
|
||||
INVENTREE_AUTO_UPDATE = lib.mkDefault "false";
|
||||
};
|
||||
environment.systemPackages = [ manage ];
|
||||
systemd.tmpfiles.rules = (
|
||||
map (dir: "d ${dir} 0755 inventree inventree") [
|
||||
"${cfg.dataDir}"
|
||||
"${cfg.dataDir}/config"
|
||||
"${cfg.dataDir}/data"
|
||||
"${cfg.dataDir}/data/media"
|
||||
"${cfg.dataDir}/data/backups"
|
||||
"${cfg.dataDir}/data/plugins"
|
||||
]
|
||||
);
|
||||
|
||||
services.postgresql = lib.mkIf pgsqlLocal {
|
||||
enable = true;
|
||||
ensureDatabases = [ cfg.database.dbname ];
|
||||
ensureUsers = [
|
||||
{
|
||||
name = cfg.database.dbuser;
|
||||
ensureDBOwnership = true;
|
||||
}
|
||||
];
|
||||
};
|
||||
|
||||
services.mysql = lib.mkIf mysqlLocal {
|
||||
enable = true;
|
||||
package = lib.mkDefault pkgs.mariadb;
|
||||
ensureDatabases = [ cfg.database.dbname ];
|
||||
ensureUsers = [
|
||||
{
|
||||
name = cfg.database.dbuser;
|
||||
ensurePermissions = {
|
||||
"${cfg.database.dbname}.*" = "ALL PRIVILEGES";
|
||||
};
|
||||
}
|
||||
];
|
||||
};
|
||||
|
||||
services.nginx.enable = true;
|
||||
services.nginx.virtualHosts.${cfg.domain} = {
|
||||
locations =
|
||||
let
|
||||
unixPath = config.systemd.sockets.inventree-server.socketConfig.ListenStream;
|
||||
in
|
||||
{
|
||||
"/" = {
|
||||
extraConfig = ''
|
||||
proxy_set_header Host $host;
|
||||
proxy_set_header X-Forwarded-By $server_addr:$server_port;
|
||||
proxy_set_header X-Forwarded-For $remote_addr;
|
||||
proxy_set_header X-Forwarded-Proto $scheme;
|
||||
proxy_set_header X-Real-IP $remote_addr;
|
||||
proxy_set_header CLIENT_IP $remote_addr;
|
||||
|
||||
proxy_pass_request_headers on;
|
||||
|
||||
proxy_redirect off;
|
||||
|
||||
client_max_body_size 100M;
|
||||
|
||||
proxy_buffering off;
|
||||
proxy_request_buffering off;
|
||||
'';
|
||||
proxyPass = "http://unix:${unixPath}";
|
||||
};
|
||||
"/auth" = {
|
||||
extraConfig = ''
|
||||
internal;
|
||||
proxy_pass_request_body off;
|
||||
proxy_set_header Content-Length "";
|
||||
proxy_set_header X-Original-URI $request_uri;
|
||||
'';
|
||||
proxyPass = "http://unix:${unixPath}:/auth/";
|
||||
};
|
||||
"/static/" = {
|
||||
alias = "${cfg.settings.INVENTREE_STATIC_ROOT}/";
|
||||
extraConfig = ''
|
||||
autoindex on;
|
||||
|
||||
# Caching settings
|
||||
expires 30d;
|
||||
add_header Pragma public;
|
||||
add_header Cache-Control "public";
|
||||
'';
|
||||
};
|
||||
"/media/" = {
|
||||
alias = "${cfg.settings.INVENTREE_MEDIA_ROOT}/";
|
||||
extraConfig = ''
|
||||
auth_request /auth;
|
||||
add_header Content-disposition "attachment";
|
||||
'';
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
systemd.services.inventree-setup = {
|
||||
description = "Inventree setup";
|
||||
wantedBy = [ "inventree.target" ];
|
||||
partOf = [ "inventree.target" ];
|
||||
after = lib.optional mysqlLocal "mysql.service" ++ lib.optional pgsqlLocal "postgresql.target";
|
||||
requires = lib.optional mysqlLocal "mysql.service" ++ lib.optional pgsqlLocal "postgresql.target";
|
||||
before = [
|
||||
"inventree-server.service"
|
||||
"inventree-qcluster.service"
|
||||
];
|
||||
serviceConfig = {
|
||||
Type = "oneshot";
|
||||
User = cfg.user;
|
||||
Group = cfg.group;
|
||||
RemainAfterExit = true;
|
||||
PrivateTmp = true;
|
||||
}
|
||||
// lib.optionalAttrs (cfg.database.passwordFile != null) {
|
||||
LoadCredential = "db_password:${cfg.database.passwordFile}";
|
||||
};
|
||||
environment = cfg.settings;
|
||||
script = ''
|
||||
set -euo pipefail
|
||||
umask u=rwx,g=,o=
|
||||
|
||||
${
|
||||
lib.optionalString (cfg.database.passwordFile != null) ''
|
||||
INVENTREE_DB_PASSWORD=$(<"$CREDENTIALS_DIRECTORY/db_password")
|
||||
''
|
||||
} \
|
||||
exec ${pkg}/bin/inventree migrate
|
||||
'';
|
||||
};
|
||||
|
||||
systemd.services.inventree-server = {
|
||||
description = "Inventree Gunicorn service";
|
||||
requiredBy = [ "inventree.target" ];
|
||||
partOf = [ "inventree.target" ];
|
||||
environment = cfg.settings;
|
||||
serviceConfig = {
|
||||
User = cfg.user;
|
||||
Group = cfg.group;
|
||||
StateDirectory = "inventree";
|
||||
PrivateTmp = true;
|
||||
}
|
||||
// lib.optionalAttrs (cfg.database.passwordFile != null) {
|
||||
LoadCredential = "db_password:${cfg.database.passwordFile}";
|
||||
};
|
||||
script = ''
|
||||
${
|
||||
lib.optionalString (cfg.database.passwordFile != null) ''
|
||||
INVENTREE_DB_PASSWORD=$(<"$CREDENTIALS_DIRECTORY/db_password")
|
||||
''
|
||||
} \
|
||||
exec ${pkg}/bin/gunicorn InvenTree.wsgi
|
||||
'';
|
||||
};
|
||||
|
||||
systemd.sockets.inventree-server = {
|
||||
wantedBy = [ "sockets.target" ];
|
||||
partOf = [ "inventree.target" ];
|
||||
socketConfig.ListenStream = "/run/inventree/gunicorn.socket";
|
||||
};
|
||||
|
||||
systemd.services.inventree-qcluster = {
|
||||
description = "InvenTree qcluster server";
|
||||
requiredBy = [ "inventree.target" ];
|
||||
wantedBy = [ "inventree.target" ];
|
||||
partOf = [ "inventree.target" ];
|
||||
environment = cfg.settings;
|
||||
serviceConfig = {
|
||||
User = cfg.user;
|
||||
Group = cfg.group;
|
||||
StateDirectory = "inventree";
|
||||
PrivateTmp = true;
|
||||
}
|
||||
// lib.optionalAttrs (cfg.database.passwordFile != null) {
|
||||
LoadCredential = "db_password:${cfg.database.passwordFile}";
|
||||
};
|
||||
script = ''
|
||||
${
|
||||
lib.optionalString (cfg.database.passwordFile != null) ''
|
||||
INVENTREE_DB_PASSWORD=$(<"$CREDENTIALS_DIRECTORY/db_password")
|
||||
''
|
||||
} \
|
||||
exec ${pkg}/bin/inventree qcluster
|
||||
'';
|
||||
};
|
||||
|
||||
systemd.targets.inventree = {
|
||||
description = "Target for all InvenTree services";
|
||||
wantedBy = [ "multi-user.target" ];
|
||||
wants = [ "network-online.target" ];
|
||||
after = [ "network-online.target" ];
|
||||
};
|
||||
|
||||
users = lib.optionalAttrs (cfg.user == cfg.user) {
|
||||
users.${cfg.user} = {
|
||||
group = cfg.group;
|
||||
isSystemUser = true;
|
||||
home = cfg.dataDir;
|
||||
};
|
||||
groups.${cfg.group}.members = [ cfg.user ];
|
||||
};
|
||||
}
|
||||
]
|
||||
);
|
||||
}
|
||||
|
|
@ -800,6 +800,7 @@ in
|
|||
installer = handleTest ./installer.nix { systemdStage1 = false; };
|
||||
installer-systemd-stage-1 = handleTest ./installer.nix { systemdStage1 = true; };
|
||||
intune = runTest ./intune.nix;
|
||||
inventree = runTest ./inventree.nix;
|
||||
invidious = runTest ./invidious.nix;
|
||||
invoiceplane = runTest ./invoiceplane.nix;
|
||||
iodine = runTest ./iodine.nix;
|
||||
|
|
@ -1486,6 +1487,7 @@ in
|
|||
sane = runTest ./sane.nix;
|
||||
sanoid = runTest ./sanoid.nix;
|
||||
saunafs = runTest ./saunafs.nix;
|
||||
scanservjs = runTest ./scanservjs.nix;
|
||||
scaphandre = runTest ./scaphandre.nix;
|
||||
schleuder = runTest ./schleuder.nix;
|
||||
scion-freestanding-deployment = runTest ./scion/freestanding-deployment;
|
||||
|
|
|
|||
33
nixos/tests/inventree.nix
Normal file
33
nixos/tests/inventree.nix
Normal file
|
|
@ -0,0 +1,33 @@
|
|||
{ lib, ... }:
|
||||
{
|
||||
name = "inventree";
|
||||
meta.maintainers = with lib.maintainers; [
|
||||
kurogeek
|
||||
];
|
||||
|
||||
nodes = {
|
||||
psqlTest = {
|
||||
services.inventree = {
|
||||
enable = true;
|
||||
};
|
||||
};
|
||||
mysqlTest = {
|
||||
services.inventree = {
|
||||
enable = true;
|
||||
database.dbtype = "mysql";
|
||||
};
|
||||
};
|
||||
};
|
||||
testScript = ''
|
||||
start_all()
|
||||
psqlTest.wait_for_unit("inventree.target")
|
||||
psqlTest.wait_for_unit("inventree-server.service")
|
||||
psqlTest.wait_for_open_unix_socket("/run/inventree/gunicorn.socket")
|
||||
psqlTest.wait_until_succeeds("curl -sf http://localhost/web")
|
||||
|
||||
mysqlTest.wait_for_unit("inventree.target")
|
||||
mysqlTest.wait_for_unit("inventree-server.service")
|
||||
mysqlTest.wait_for_open_unix_socket("/run/inventree/gunicorn.socket")
|
||||
mysqlTest.wait_until_succeeds("curl -sf http://localhost/web")
|
||||
'';
|
||||
}
|
||||
23
nixos/tests/scanservjs.nix
Normal file
23
nixos/tests/scanservjs.nix
Normal file
|
|
@ -0,0 +1,23 @@
|
|||
let
|
||||
port = 1234;
|
||||
in
|
||||
{
|
||||
name = "scanservjs";
|
||||
|
||||
nodes.machine =
|
||||
{ ... }:
|
||||
{
|
||||
services.scanservjs = {
|
||||
enable = true;
|
||||
settings.host = "0.0.0.0";
|
||||
settings.port = port;
|
||||
};
|
||||
};
|
||||
|
||||
testScript = ''
|
||||
machine.wait_for_unit("scanservjs.service")
|
||||
machine.wait_until_succeeds(
|
||||
"curl --silent --fail --show-error --location http://localhost:${toString port}"
|
||||
)
|
||||
'';
|
||||
}
|
||||
|
|
@ -9,15 +9,15 @@
|
|||
|
||||
buildGoModule (finalAttrs: {
|
||||
pname = "adguardhome";
|
||||
version = "0.107.76";
|
||||
version = "0.107.77";
|
||||
src = fetchFromGitHub {
|
||||
owner = "AdguardTeam";
|
||||
repo = "AdGuardHome";
|
||||
tag = "v${finalAttrs.version}";
|
||||
hash = "sha256-CF1Ieu7oCnzvXwoHzX5126gQGcgXL+giMtUciKBZ2ZU=";
|
||||
hash = "sha256-CwM8Zi5FXNwb+5gdESoP31Ja1O6PrnOgFfJaT8Yc890=";
|
||||
};
|
||||
|
||||
vendorHash = "sha256-tHabP5I7PZtDkVucF95StRyXGEsfbuc6Z3AhQZ/g2f8=";
|
||||
vendorHash = "sha256-D91mHBG78LOG1O5oVlaA3T8HWIISPeKMB06VpWuxxqo=";
|
||||
|
||||
dashboard = buildNpmPackage {
|
||||
inherit (finalAttrs) src version;
|
||||
|
|
|
|||
|
|
@ -40,16 +40,16 @@ let
|
|||
in
|
||||
stdenv.mkDerivation (finalAttrs: {
|
||||
pname = "calibre";
|
||||
version = "9.8.0";
|
||||
version = "9.9.0";
|
||||
|
||||
src = fetchurl {
|
||||
url = "https://download.calibre-ebook.com/${finalAttrs.version}/calibre-${finalAttrs.version}.tar.xz";
|
||||
hash = "sha256-3dkWokb8gh4JPbrBsJ9dGy/IS1PfNrAU775qxo8CaO8=";
|
||||
hash = "sha256-ozwoRlJThVLiFmaR0fXdfxLDTEF4935rQGLZ+MzwXLk=";
|
||||
};
|
||||
|
||||
patches =
|
||||
let
|
||||
debian-source = "ds+_0.10.5-1";
|
||||
debian-source = "ds+_0.10.6-1";
|
||||
debian-tag = "${finalAttrs.version}+${debian-source}";
|
||||
in
|
||||
[
|
||||
|
|
|
|||
|
|
@ -8,13 +8,13 @@
|
|||
|
||||
stdenv.mkDerivation (finalAttrs: {
|
||||
pname = "croaring";
|
||||
version = "4.6.1";
|
||||
version = "4.7.0";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "RoaringBitmap";
|
||||
repo = "CRoaring";
|
||||
tag = "v${finalAttrs.version}";
|
||||
hash = "sha256-wks7kkF0va7RUJXY74ku/yWTSsHQKlFczfhAHyuNudM=";
|
||||
hash = "sha256-YXEEiWbbP6G7x/rQiihAq20OEMxJNSgky+JTEaKlNDU=";
|
||||
};
|
||||
|
||||
# roaring.pc.in cannot handle absolute CMAKE_INSTALL_*DIRs, nor
|
||||
|
|
@ -28,27 +28,6 @@ stdenv.mkDerivation (finalAttrs: {
|
|||
|
||||
doCheck = true;
|
||||
|
||||
postPatch = ''
|
||||
# Fixes the build of dependent projects by updating the supported
|
||||
# CMake version.
|
||||
# Issue: https://github.com/RoaringBitmap/CRoaring/issues/793
|
||||
# PR: https://github.com/RoaringBitmap/CRoaring/pull/794
|
||||
substituteInPlace CMakeLists.txt \
|
||||
--replace-fail '2.8...3.15' '3.15'
|
||||
'';
|
||||
|
||||
preConfigure = ''
|
||||
mkdir -p dependencies/.cache
|
||||
ln -s ${
|
||||
fetchFromGitHub {
|
||||
owner = "clibs";
|
||||
repo = "cmocka";
|
||||
rev = "f5e2cd77c88d9f792562888d2b70c5a396bfbf7a";
|
||||
hash = "sha256-Oq0nFsZhl8IF7kQN/LgUq8VBy+P7gO98ep/siy5A7Js=";
|
||||
}
|
||||
} dependencies/.cache/cmocka
|
||||
'';
|
||||
|
||||
cmakeFlags = [ (lib.cmakeBool "ROARING_USE_CPM" false) ];
|
||||
|
||||
meta = {
|
||||
|
|
|
|||
|
|
@ -8,15 +8,15 @@
|
|||
}:
|
||||
|
||||
let
|
||||
version = "7.1.220";
|
||||
version = "7.1.230";
|
||||
srcs = {
|
||||
x86_64-linux = fetchurl {
|
||||
url = "https://github.com/aunetx/deezer-linux/releases/download/v${version}/deezer-desktop-${version}-x64.tar.xz";
|
||||
hash = "sha256-q4j4S88c7xsC+Ax7XY1EVbqRRJXH+JzLrZRRB6rfQOE=";
|
||||
hash = "sha256-OP5ceyGQQFRgW1GZPElxdjkYikNVMkvomkXCr9dD67Y=";
|
||||
};
|
||||
aarch64-linux = fetchurl {
|
||||
url = "https://github.com/aunetx/deezer-linux/releases/download/v${version}/deezer-desktop-${version}-arm64.tar.xz";
|
||||
hash = "sha256-g94qn+EHr8Dwn21L7z3W7Z5+LJoVSQcAEXHpJiAdbJg=";
|
||||
hash = "sha256-IiUZgMHdhkU0B5uDLARHpcCUxlsZ4+rj5sAKJXZpcBw=";
|
||||
};
|
||||
};
|
||||
|
||||
|
|
|
|||
|
|
@ -7,17 +7,17 @@
|
|||
|
||||
buildGoModule (finalAttrs: {
|
||||
pname = "etcd";
|
||||
version = "3.4.44";
|
||||
version = "3.4.45";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "etcd-io";
|
||||
repo = "etcd";
|
||||
tag = "v${finalAttrs.version}";
|
||||
hash = "sha256-56V9cAlFiCdDm3X8lBJmjwj1HVRNihrCzIV0r0XEMHk=";
|
||||
hash = "sha256-GvhejN7+woYK7UBNguzEaO6rqAbT7Vbwl5nFmI/F6Sc=";
|
||||
};
|
||||
|
||||
proxyVendor = true;
|
||||
vendorHash = "sha256-DqKVZ4Z2RMRwi4Z/6Rh3SE6NSyuHePSYrIM7sPyPC74=";
|
||||
vendorHash = "sha256-0xIK71sAwMzzSaN2lFKKdGtDKWYtL25x5GDoO6bO0wI=";
|
||||
|
||||
preBuild = ''
|
||||
go mod tidy
|
||||
|
|
|
|||
|
|
@ -7,11 +7,11 @@
|
|||
}:
|
||||
|
||||
let
|
||||
version = "3.5.30";
|
||||
etcdSrcHash = "sha256-1FJOB9O1AP5zhQO+UtXeZ1zUUSLlNyrG8BKDNHn49aE=";
|
||||
etcdServerVendorHash = "sha256-a8qk0KajYeAhqSHx87qjU1mWqd2z8JJmvL8VQiqD/eM=";
|
||||
etcdUtlVendorHash = "sha256-zem39kXZivNYWhgGu7oC1/UuLcMfDLhd1Jgdi0EwKNM=";
|
||||
etcdCtlVendorHash = "sha256-E6V6L6+eikcgCqE9+wJIdXnBCIuY+nq832TshYEvCL8=";
|
||||
version = "3.5.31";
|
||||
etcdSrcHash = "sha256-X3b1TBimNYo03fW0c5NeiD4uALMqtOQbJwPot11FCk8=";
|
||||
etcdServerVendorHash = "sha256-1/XJGpyYuTsb+1hReksX5VyD+6xbKaiLA8520cDKc/4=";
|
||||
etcdUtlVendorHash = "sha256-dUXAoIcOSlEbiSmy1M+oPaHt089gOttQwrB9ZhYc7v0=";
|
||||
etcdCtlVendorHash = "sha256-l1j00Mzv1z021rfBbFZrIce2pifQyRkST0bkZhVoST0=";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "etcd-io";
|
||||
|
|
|
|||
|
|
@ -9,11 +9,11 @@
|
|||
}:
|
||||
|
||||
let
|
||||
version = "3.6.11";
|
||||
etcdSrcHash = "sha256-xn6PJin0xZXR/xoWhCxdEq7uVXSBqv+BapwbP1Pdv84=";
|
||||
etcdCtlVendorHash = "sha256-+W8spn3T1vej4QD52ZxGXqTplwQBVG6Nuxf2P/u7nkQ=";
|
||||
etcdUtlVendorHash = "sha256-s9/QFtbtRx7Jgd/S9pRx8/JMQWmi92Jz/H8YcRS9huk=";
|
||||
etcdServerVendorHash = "sha256-nUangVgI4/62O7jhq2vNqrcJB/PtpZp+40X1W91+HOY=";
|
||||
version = "3.6.12";
|
||||
etcdSrcHash = "sha256-oUq/yRwSgJ2xZ6yoiEBYSSRH5NvHITXjMFuR7QZc4HU=";
|
||||
etcdCtlVendorHash = "sha256-0ZlJiXFS7QxJ+dfstJf+ogLPL0kxrE/4ZTsKb0OOCqA=";
|
||||
etcdUtlVendorHash = "sha256-o7TWg7RgeWZa92beumSGCpxvLcFMzqC1vgcKfi5K4dI=";
|
||||
etcdServerVendorHash = "sha256-UzToh6FaAVyxzZdDoukrHez1W9+tifFGEM16UCcmm5U=";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "etcd-io";
|
||||
|
|
|
|||
|
|
@ -2,10 +2,10 @@
|
|||
lib,
|
||||
stdenv,
|
||||
rustPlatform,
|
||||
|
||||
fetchFromGitHub,
|
||||
git,
|
||||
pkg-config,
|
||||
openssl,
|
||||
erlang,
|
||||
nodejs,
|
||||
bun,
|
||||
|
|
@ -33,8 +33,6 @@ rustPlatform.buildRustPackage (finalAttrs: {
|
|||
erlang
|
||||
];
|
||||
|
||||
buildInputs = [ openssl ];
|
||||
|
||||
nativeCheckInputs = [
|
||||
# used by several tests
|
||||
git
|
||||
|
|
@ -48,8 +46,9 @@ rustPlatform.buildRustPackage (finalAttrs: {
|
|||
];
|
||||
|
||||
checkFlags = [
|
||||
# Makes a network request
|
||||
# These tests make network requests
|
||||
"--skip=tests::echo::echo_dict"
|
||||
"--skip=tests::escript_success_with_dependency"
|
||||
]
|
||||
++ lib.optionals (stdenv.hostPlatform.isDarwin && stdenv.hostPlatform.isx86_64) [
|
||||
# Snapshot tests fail because a warning is shown on stdout
|
||||
|
|
|
|||
|
|
@ -38,7 +38,7 @@ rustPlatform.buildRustPackage (finalAttrs: {
|
|||
cargoHash = "sha256-rE7SErOhl2fcmvLairq+mvdnbDIk1aPo3eYqwRx5kkA=";
|
||||
|
||||
postPatch = ''
|
||||
substituteInPlace $cargoDepsCopy/source-registry-0/sdl2-sys-0.37.0/SDL/CMakeLists.txt \
|
||||
substituteInPlace $cargoDepsCopy/*/sdl2-sys-0.37.0/SDL/CMakeLists.txt \
|
||||
--replace-fail "cmake_minimum_required(VERSION 3.0.0)" "cmake_minimum_required(VERSION 3.0.0...3.5)" \
|
||||
--replace-fail "cmake_minimum_required(VERSION 3.4)" "cmake_minimum_required(VERSION 3.4...3.5)"
|
||||
'';
|
||||
|
|
|
|||
|
|
@ -6,13 +6,13 @@
|
|||
|
||||
stdenv.mkDerivation (finalAttrs: {
|
||||
pname = "haveged";
|
||||
version = "1.9.20";
|
||||
version = "1.9.21";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "jirka-h";
|
||||
repo = "haveged";
|
||||
rev = "v${finalAttrs.version}";
|
||||
hash = "sha256-7ymilQktEsCUTujGC2KTXN5LI2KQRbAd/4tEMxOZxpo=";
|
||||
hash = "sha256-ldJsB09xgACCI9ne10gxr2T2f20aVPXJXea32hoCYP8=";
|
||||
};
|
||||
|
||||
strictDeps = true;
|
||||
|
|
|
|||
|
|
@ -8,13 +8,13 @@
|
|||
|
||||
stdenv.mkDerivation {
|
||||
pname = "leanify";
|
||||
version = "0-unstable-2025-12-12";
|
||||
version = "0.4.3-unstable-2026-06-05";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "JayXon";
|
||||
repo = "Leanify";
|
||||
rev = "d2ba1671056e022623e8445f5700670bc05204bf";
|
||||
hash = "sha256-MXQnJyA6z01lodes6CINV7mzbRr6GnZaMAsjloGJzeg=";
|
||||
rev = "dc557c4027fc8a7479c4a71506c75c98ea8829f9";
|
||||
hash = "sha256-jyz0F0mY4z0lFA5a1ibJKHYKb35MvuVhFct2Him/my8=";
|
||||
};
|
||||
|
||||
postPatch = lib.optionalString stdenv.hostPlatform.isDarwin ''
|
||||
|
|
|
|||
|
|
@ -14,14 +14,14 @@
|
|||
|
||||
python3Packages.buildPythonApplication rec {
|
||||
pname = "matrix-synapse";
|
||||
version = "1.153.0";
|
||||
version = "1.154.0";
|
||||
pyproject = true;
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "element-hq";
|
||||
repo = "synapse";
|
||||
rev = "v${version}";
|
||||
hash = "sha256-2/KzRPUMfOOmI8j8WZsVU2ubNxidTb+FW0MZF+ktSSQ=";
|
||||
hash = "sha256-4US6PPJAI0UUOmy12thjXKX3IRUCH9w/zkRD3ivQ9BE=";
|
||||
};
|
||||
|
||||
cargoDeps = rustPlatform.fetchCargoVendor {
|
||||
|
|
|
|||
|
|
@ -48,13 +48,13 @@ let
|
|||
in
|
||||
buildGoModule (finalAttrs: {
|
||||
pname = "nezha";
|
||||
version = "2.0.14";
|
||||
version = "2.2.2";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "nezhahq";
|
||||
repo = "nezha";
|
||||
tag = "v${finalAttrs.version}";
|
||||
hash = "sha256-dSFwU1p2lAI8CaNoQgdX/pkumIumZpdLgnn1XCkoeKU=";
|
||||
hash = "sha256-40GirWaa03sX5UNL0ZI8qcFqYV2ZuRniWofKluKeW+0=";
|
||||
};
|
||||
|
||||
proxyVendor = true;
|
||||
|
|
@ -94,7 +94,7 @@ buildGoModule (finalAttrs: {
|
|||
GOROOT=''${GOROOT-$(go env GOROOT)} swag init --pd -d cmd/dashboard -g main.go -o cmd/dashboard/docs
|
||||
'';
|
||||
|
||||
vendorHash = "sha256-y7XvvpLrmoaU1gLtaN38T9rsS3Rpi313XAKaVcia6Q4=";
|
||||
vendorHash = "sha256-rYzkaJqk5r31Uagn1FRFDeICUeK392o1fyP6IBk9zgk=";
|
||||
|
||||
ldflags = [
|
||||
"-s"
|
||||
|
|
|
|||
|
|
@ -1,5 +1,5 @@
|
|||
--- a/libaom-sys-0.17.2+libaom.3.11.0/vendor/build/cmake/aom_optimization.cmake
|
||||
+++ b/libaom-sys-0.17.2+libaom.3.11.0/vendor/build/cmake/aom_optimization.cmake
|
||||
--- a/vendor/build/cmake/aom_optimization.cmake
|
||||
+++ b/vendor/build/cmake/aom_optimization.cmake
|
||||
@@ -212,7 +212,7 @@ endfunction()
|
||||
# Currently checks only for presence of required object formats and support for
|
||||
# the -Ox argument (multipass optimization).
|
||||
|
|
|
|||
|
|
@ -67,17 +67,11 @@ rustPlatform.buildRustPackage (finalAttrs: {
|
|||
"--skip=thumbnails::test_thumbs" # broken as of v0.9.2
|
||||
];
|
||||
|
||||
patches = [
|
||||
# The below patch is needed to fix this build, until the upstream dependency (libavif-rs) fixes the problem.
|
||||
# The explicit `patchFlags` can also be removed when this patch becomes obsolete.
|
||||
# <https://github.com/njaard/libavif-rs/issues/122>
|
||||
./libaom-sys-0.17.2+libaom.3.11.0-cmake-nasm-fix.patch
|
||||
];
|
||||
|
||||
patchFlags = [
|
||||
"-p1"
|
||||
"--directory=../${finalAttrs.pname}-${finalAttrs.version}-vendor/source-registry-0"
|
||||
];
|
||||
# The below patch is needed to fix this build, until the upstream dependency (libavif-rs) fixes the problem.
|
||||
# <https://github.com/njaard/libavif-rs/issues/122>
|
||||
postPatch = ''
|
||||
patch -p1 -d "$cargoDepsCopy"/*/libaom-sys-0.17.2+libaom.3.11.0 -i ${./libaom-sys-0.17.2+libaom.3.11.0-cmake-nasm-fix.patch}
|
||||
'';
|
||||
|
||||
postInstall = ''
|
||||
install -Dm444 $src/res/icons/icon.png $out/share/icons/hicolor/128x128/apps/oculante.png
|
||||
|
|
|
|||
|
|
@ -16,18 +16,18 @@
|
|||
|
||||
buildGoModule (finalAttrs: {
|
||||
pname = "olivetin";
|
||||
version = "3000.13.0";
|
||||
version = "3000.14.0";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "OliveTin";
|
||||
repo = "OliveTin";
|
||||
tag = finalAttrs.version;
|
||||
hash = "sha256-WqqUOl42o8C6eAv0lZ44bolgt9jdZwOLmbzA174Nk8s=";
|
||||
hash = "sha256-bMc+fmyaRNVLVzGSAUq+TgEdq1VO3Guvw9RnV+YdrRI=";
|
||||
};
|
||||
|
||||
modRoot = "service";
|
||||
|
||||
vendorHash = "sha256-8oWvOeRgmbknd3iOMngAK914ut+230cr7pkw6hF/9Hc=";
|
||||
vendorHash = "sha256-MxiINWFSpbkBDOBcusr2VViGgnlEoqOmj2gZaiGGjj0=";
|
||||
|
||||
subPackages = [ "." ];
|
||||
|
||||
|
|
@ -75,14 +75,14 @@ buildGoModule (finalAttrs: {
|
|||
'';
|
||||
|
||||
outputHashMode = "recursive";
|
||||
outputHash = "sha256-SaGHxawFw55zI37psqI9kdaR8DLnx4iV2XZdomr28b8=";
|
||||
outputHash = "sha256-EilPfKCT8byqBl2Ls5f8VrBcT8H+u8jqUQTX6brWhUE=";
|
||||
};
|
||||
|
||||
webui = buildNpmPackage {
|
||||
pname = "olivetin-webui";
|
||||
inherit (finalAttrs) version src;
|
||||
|
||||
npmDepsHash = "sha256-Z9ovQRqKFWqp52xDUHvrWMHO9qDWJf9CqoXwlcfnnTU=";
|
||||
npmDepsHash = "sha256-+XWucYyYHRC1usQ95HjlFVct2h8njuxfAKDFKNwwJLI=";
|
||||
|
||||
sourceRoot = "${finalAttrs.src.name}/frontend";
|
||||
|
||||
|
|
|
|||
|
|
@ -21,13 +21,13 @@
|
|||
}:
|
||||
stdenv.mkDerivation (finalAttrs: {
|
||||
pname = "peertube";
|
||||
version = "8.1.5";
|
||||
version = "8.1.8";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "Chocobozzz";
|
||||
repo = "PeerTube";
|
||||
tag = "v${finalAttrs.version}";
|
||||
hash = "sha256-vLKjTn8tdHb/DUHj/w3ovXmRNzD8CMSKCaPleW+i7Tc=";
|
||||
hash = "sha256-Ei7MgEyHDJyLXnjI8mT7S7pLno+pTmFWZHc6oEZaTcM=";
|
||||
};
|
||||
|
||||
outputs = [
|
||||
|
|
@ -40,7 +40,7 @@ stdenv.mkDerivation (finalAttrs: {
|
|||
inherit (finalAttrs) pname version src;
|
||||
pnpm = pnpm_10;
|
||||
fetcherVersion = 3;
|
||||
hash = "sha256-gvjk4OmKR6W/nllUCSaiX/lVXJSac9r04xr7fNiBftI=";
|
||||
hash = "sha256-fQ0FyBPZ3v3lCSoWYz1ccbOSrfgnzwQvOyE7Dp3ZGRY=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
|
|
|
|||
|
|
@ -21,7 +21,6 @@
|
|||
systemd,
|
||||
stdenv,
|
||||
undmg,
|
||||
vips,
|
||||
at-spi2-core,
|
||||
autoPatchelfHook,
|
||||
writeShellScript,
|
||||
|
|
@ -112,7 +111,6 @@ else
|
|||
libkrb5
|
||||
libgbm
|
||||
nss
|
||||
vips
|
||||
libxdamage
|
||||
];
|
||||
|
||||
|
|
@ -201,9 +199,6 @@ else
|
|||
--run '${versionConfigScript} || true'
|
||||
''}
|
||||
|
||||
# Remove bundled libraries
|
||||
rm -r $out/opt/QQ/resources/app/sharp-lib
|
||||
|
||||
# https://aur.archlinux.org/cgit/aur.git/commit/?h=linuxqq&id=f7644776ee62fa20e5eb30d0b1ba832513c77793
|
||||
rm -r $out/opt/QQ/resources/app/libssh2.so.1
|
||||
|
||||
|
|
|
|||
|
|
@ -1,12 +1,12 @@
|
|||
# Generated by ./update.sh - do not update manually!
|
||||
# Last updated: 2026-04-15
|
||||
# Last updated: 2026-06-03
|
||||
{ fetchurl }:
|
||||
let
|
||||
any-darwin = {
|
||||
version = "6.9.93-2026-04-01";
|
||||
version = "6.9.96-2026-05-28";
|
||||
src = fetchurl {
|
||||
url = "https://dldir1v6.qq.com/qqfile/qq/QQNT/Mac/QQ_6.9.93_260401_01.dmg";
|
||||
hash = "sha256-xCyvVAxYKma92SkL1fLraXKeDcKlRLLybtwKPWUKlis=";
|
||||
url = "https://qqdl.gtimg.cn/qqfile/QQNT/9.9.31/release/045f4292/QQ_6.9.96_260528_01.dmg";
|
||||
hash = "sha256-cMgWMXfKtL4ZLBrjGhROpCMNAHtFIdnZRfyi9XtsIjI=";
|
||||
};
|
||||
};
|
||||
in
|
||||
|
|
@ -14,17 +14,17 @@ in
|
|||
aarch64-darwin = any-darwin;
|
||||
x86_64-darwin = any-darwin;
|
||||
aarch64-linux = {
|
||||
version = "3.2.27-2026-04-01";
|
||||
version = "3.2.29-2026-05-28";
|
||||
src = fetchurl {
|
||||
url = "https://dldir1v6.qq.com/qqfile/qq/QQNT/Linux/QQ_3.2.27_260401_arm64_01.deb";
|
||||
hash = "sha256-sGLYPAdZmcxGy+3Lo7MEeEXysqP24XTWaQY/iM9bRLU=";
|
||||
url = "https://qqdl.gtimg.cn/qqfile/QQNT/9.9.31/release/00e6a3e7/QQ_3.2.29_260528_arm64_01.deb";
|
||||
hash = "sha256-W82MzaQB+/oYIafDx1j4SiU8MXVo8LnC10QmokdJ6aY=";
|
||||
};
|
||||
};
|
||||
x86_64-linux = {
|
||||
version = "3.2.27-2026-04-01";
|
||||
version = "3.2.29-2026-05-28";
|
||||
src = fetchurl {
|
||||
url = "https://dldir1v6.qq.com/qqfile/qq/QQNT/Linux/QQ_3.2.27_260401_amd64_01.deb";
|
||||
hash = "sha256-iI5gc0VSZAzab2B+w1I/6idSD/zx45Ou+uyqSJzCC+c=";
|
||||
url = "https://qqdl.gtimg.cn/qqfile/QQNT/9.9.31/release/00e6a3e7/QQ_3.2.29_260528_amd64_01.deb";
|
||||
hash = "sha256-HjgoB5ZzyUmUvA9HgNXYUoZHY5kgZZhi1J0cLyoZjiU=";
|
||||
};
|
||||
};
|
||||
}
|
||||
|
|
|
|||
|
|
@ -42,20 +42,20 @@
|
|||
|
||||
rustPlatform.buildRustPackage (finalAttrs: {
|
||||
pname = "rapidraw";
|
||||
version = "1.5.5";
|
||||
version = "1.5.6";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "CyberTimon";
|
||||
repo = "RapidRAW";
|
||||
tag = "v${finalAttrs.version}";
|
||||
hash = "sha256-CnH8EuHzHxuXbnOry2gMU/tMqpE8++ztyNPk3HHdZqE=";
|
||||
hash = "sha256-pfOdq2Q7GLGbzcgFkrRiczMWnS5TImbayYE1VWenYuo=";
|
||||
};
|
||||
|
||||
cargoHash = "sha256-c2MK1DyonfeZKfZAVWfwVh/In5SqKq7nnFrlz2686SM=";
|
||||
cargoHash = "sha256-liWOY+Jq8Yqo0QsntKjq2ntMAacfFyHCm6yhQM+KwRA=";
|
||||
|
||||
npmDeps = fetchNpmDeps {
|
||||
inherit (finalAttrs) src;
|
||||
hash = "sha256-1A6b63FjNvkAbu62dRXfMjTL1y2wr2gEsZkLqYvTk0w=";
|
||||
hash = "sha256-JtkzeCt21KIEshvoCHWo1QoxUgvVJN1loJrUHgvV4qE=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
|
|
|
|||
|
|
@ -1,64 +0,0 @@
|
|||
diff --git a/packages/server/src/api.js b/packages/server/src/api.js
|
||||
index bd43842..71ce7c9 100644
|
||||
--- a/packages/server/src/api.js
|
||||
+++ b/packages/server/src/api.js
|
||||
@@ -105,7 +105,7 @@ module.exports = new class Api {
|
||||
}
|
||||
|
||||
// If not then it's possible the default image is not quite the correct aspect ratio
|
||||
- const buffer = FileInfo.create(`${config.previewDirectory}/default.jpg`).toBuffer();
|
||||
+ const buffer = FileInfo.create('NIX_OUT_PLACEHOLDER/lib/node_modules/scanservjs-api/data/preview/default.jpg').toBuffer();
|
||||
|
||||
try {
|
||||
// We need to know the correct aspect ratio from the device
|
||||
diff --git a/packages/server/src/application.js b/packages/server/src/application.js
|
||||
index 2771036..0c2a4c0 100644
|
||||
--- a/packages/server/src/application.js
|
||||
+++ b/packages/server/src/application.js
|
||||
@@ -26,7 +26,7 @@ module.exports = new class Application {
|
||||
|
||||
userOptions() {
|
||||
if (this._userOptions === null) {
|
||||
- this._userOptions = new UserOptions('../../config/config.local.js');
|
||||
+ this._userOptions = new UserOptions(process.env.NIX_SCANSERVJS_CONFIG_PATH);
|
||||
}
|
||||
return this._userOptions;
|
||||
}
|
||||
diff --git a/packages/server/src/classes/user-options.js b/packages/server/src/classes/user-options.js
|
||||
index f129e3c..c71e754 100644
|
||||
--- a/packages/server/src/classes/user-options.js
|
||||
+++ b/packages/server/src/classes/user-options.js
|
||||
@@ -4,7 +4,7 @@ const path = require('path');
|
||||
module.exports = class UserOptions {
|
||||
constructor(localConfigPath) {
|
||||
if (localConfigPath) {
|
||||
- const localPath = path.join(__dirname, localConfigPath);
|
||||
+ const localPath = localConfigPath;
|
||||
if (fs.existsSync(localPath)) {
|
||||
this.local = require(localPath);
|
||||
}
|
||||
diff --git a/packages/server/src/configure.js b/packages/server/src/configure.js
|
||||
index c9e5ed8..484949c 100644
|
||||
--- a/packages/server/src/configure.js
|
||||
+++ b/packages/server/src/configure.js
|
||||
@@ -71,6 +71,7 @@ function initialize(rootPath) {
|
||||
|
||||
try {
|
||||
fs.mkdirSync(config.outputDirectory, { recursive: true });
|
||||
+ fs.mkdirSync(config.previewDirectory, { recursive: true });
|
||||
fs.mkdirSync(config.tempDirectory, { recursive: true });
|
||||
} catch (exception) {
|
||||
log.warn(`Error ensuring output and temp directories exist: ${exception}`);
|
||||
diff --git a/packages/server/src/server.js b/packages/server/src/server.js
|
||||
index e1a9fb0..3d58d37 100644
|
||||
--- a/packages/server/src/server.js
|
||||
+++ b/packages/server/src/server.js
|
||||
@@ -5,7 +5,7 @@ const configure = require('./configure');
|
||||
const config = application.config();
|
||||
const app = express();
|
||||
|
||||
-app.use(express.static('client'));
|
||||
+app.use(express.static('@client@'));
|
||||
|
||||
configure(app);
|
||||
|
||||
47
pkgs/by-name/sc/scanservjs/nix-compatibility.patch
Normal file
47
pkgs/by-name/sc/scanservjs/nix-compatibility.patch
Normal file
|
|
@ -0,0 +1,47 @@
|
|||
diff --git a/app-server/src/application.js b/app-server/src/application.js
|
||||
index a2c065f..2d594bf 100644
|
||||
--- a/app-server/src/application.js
|
||||
+++ b/app-server/src/application.js
|
||||
@@ -26,7 +26,7 @@ module.exports = new class Application {
|
||||
|
||||
userOptions() {
|
||||
if (this._userOptions === null) {
|
||||
- this._userOptions = new UserOptions('../../config/config.local.js');
|
||||
+ this._userOptions = new UserOptions(process.env.NIX_SCANSERVJS_CONFIG_PATH);
|
||||
}
|
||||
return this._userOptions;
|
||||
}
|
||||
diff --git a/app-server/src/classes/user-options.js b/app-server/src/classes/user-options.js
|
||||
index f129e3c..c71e754 100644
|
||||
--- a/app-server/src/classes/user-options.js
|
||||
+++ b/app-server/src/classes/user-options.js
|
||||
@@ -4,7 +4,7 @@ const path = require('path');
|
||||
module.exports = class UserOptions {
|
||||
constructor(localConfigPath) {
|
||||
if (localConfigPath) {
|
||||
- const localPath = path.join(__dirname, localConfigPath);
|
||||
+ const localPath = localConfigPath;
|
||||
if (fs.existsSync(localPath)) {
|
||||
this.local = require(localPath);
|
||||
}
|
||||
diff --git a/app-server/src/express-configurer.js b/app-server/src/express-configurer.js
|
||||
index 945dae2..1b456cc 100644
|
||||
--- a/app-server/src/express-configurer.js
|
||||
+++ b/app-server/src/express-configurer.js
|
||||
@@ -166,6 +166,7 @@ module.exports = class ExpressConfigurer {
|
||||
|
||||
try {
|
||||
fs.mkdirSync(config.outputDirectory, { recursive: true });
|
||||
+ fs.mkdirSync(config.previewDirectory, { recursive: true });
|
||||
fs.mkdirSync(config.thumbnailDirectory, { recursive: true });
|
||||
fs.mkdirSync(config.tempDirectory, { recursive: true });
|
||||
} catch (exception) {
|
||||
@@ -220,7 +221,7 @@ module.exports = class ExpressConfigurer {
|
||||
* @returns {ExpressConfigurer}
|
||||
*/
|
||||
statics() {
|
||||
- this.app.use(express.static('client'));
|
||||
+ this.app.use(express.static('@client@'));
|
||||
return this;
|
||||
}
|
||||
|
||||
|
|
@ -3,6 +3,7 @@
|
|||
fetchFromGitHub,
|
||||
buildNpmPackage,
|
||||
nodejs,
|
||||
nixosTests,
|
||||
}:
|
||||
|
||||
buildNpmPackage (finalAttrs: {
|
||||
|
|
@ -18,13 +19,42 @@ buildNpmPackage (finalAttrs: {
|
|||
|
||||
npmDepsHash = "sha256-HIWT09G8gqSFt9CIjsjJaDRnj2GO0G6JOGeI0p4/1vw=";
|
||||
|
||||
postInstall = ''
|
||||
mkdir $out/bin
|
||||
patches = [
|
||||
./nix-compatibility.patch
|
||||
];
|
||||
|
||||
postBuild = ''
|
||||
# Install runtime dependencies
|
||||
npm install \
|
||||
--prefix ./dist \
|
||||
--offline \
|
||||
--production \
|
||||
--ignore-scripts
|
||||
'';
|
||||
|
||||
installPhase = ''
|
||||
runHook preInstall
|
||||
|
||||
rm -rf $out/lib
|
||||
|
||||
mkdir -p $out/lib
|
||||
cp -r dist/* $out/lib
|
||||
|
||||
substituteInPlace "$out/lib/server/express-configurer.js" \
|
||||
--replace-fail "@client@" "$out/lib/client"
|
||||
|
||||
mkdir -p $out/bin
|
||||
makeWrapper ${lib.getExe nodejs} $out/bin/scanservjs \
|
||||
--set NODE_ENV production \
|
||||
--add-flags "'$out/lib/node_modules/scanservjs/app-server/src/server.js'"
|
||||
--add-flags "$out/lib/server/server.js"
|
||||
|
||||
runHook postInstall
|
||||
'';
|
||||
|
||||
passthru = {
|
||||
tests.smoke-test = nixosTests.scanservjs;
|
||||
};
|
||||
|
||||
meta = {
|
||||
description = "SANE scanner nodejs web ui";
|
||||
longDescription = "scanservjs is a simple web-based UI for SANE which allows you to share a scanner on a network without the need for drivers or complicated installation.";
|
||||
|
|
|
|||
|
|
@ -6,13 +6,13 @@
|
|||
|
||||
stdenvNoCC.mkDerivation rec {
|
||||
pname = "spaceship-prompt";
|
||||
version = "4.22.1";
|
||||
version = "4.22.3";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "denysdovhan";
|
||||
repo = "spaceship-prompt";
|
||||
rev = "v${version}";
|
||||
sha256 = "sha256-shZf1IfSkHnaHnQ4idiDrmaJYXtViwGntpfEOBUDyBk=";
|
||||
sha256 = "sha256-v2D8+EwOV5gzzawjgn99WJnYjI9N6bxqbHtTTfNWBNo=";
|
||||
};
|
||||
|
||||
strictDeps = true;
|
||||
|
|
|
|||
|
|
@ -122,13 +122,13 @@ let
|
|||
in
|
||||
stdenv.mkDerivation (finalAttrs: {
|
||||
pname = "strongswan";
|
||||
version = "6.0.6"; # Make sure to also update <nixpkgs/nixos/modules/services/networking/strongswan-swanctl/swanctl-params.nix> when upgrading!
|
||||
version = "6.0.7"; # Make sure to also update <nixpkgs/nixos/modules/services/networking/strongswan-swanctl/swanctl-params.nix> when upgrading!
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "strongswan";
|
||||
repo = "strongswan";
|
||||
tag = finalAttrs.version;
|
||||
hash = "sha256-Ojb+aAb9Ame4E9qzKcP9HZ+1AmP4XuxZO89nKca9Vl8=";
|
||||
hash = "sha256-OgLvCrAwFJA2t78pu+p+3DrsD53QizVotQqTiNoY1dk=";
|
||||
};
|
||||
|
||||
patches = [
|
||||
|
|
|
|||
|
|
@ -14,13 +14,13 @@ let
|
|||
in
|
||||
buildNpmPackage (finalAttrs: {
|
||||
pname = "sub-store-frontend";
|
||||
version = "2.17.19";
|
||||
version = "2.17.31";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "sub-store-org";
|
||||
repo = "Sub-Store-Front-End";
|
||||
tag = finalAttrs.version;
|
||||
hash = "sha256-fhJy/bErS9DHjjX5R+6KjqDNYyPOQaYPr54CS1vd3zc=";
|
||||
hash = "sha256-/L5qdjqXZ8MjEjOGT8e8vdS/F9uudkemboAVrYih0Zc=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
|
|
|
|||
|
|
@ -3,41 +3,37 @@
|
|||
fetchFromGitHub,
|
||||
python3Packages,
|
||||
versionCheckHook,
|
||||
fetchpatch2,
|
||||
}:
|
||||
|
||||
python3Packages.buildPythonApplication (finalAttrs: {
|
||||
pname = "sylkserver";
|
||||
version = "6.5.0";
|
||||
version = "6.6.0";
|
||||
pyproject = true;
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "AGProjects";
|
||||
repo = "sylkserver";
|
||||
tag = finalAttrs.version;
|
||||
hash = "sha256-A15EJs35ZgXy9db3+XC0q5fTlemLJsA945nvIY50Pa4=";
|
||||
hash = "sha256-FeoyQWM4dvO1FJ6q5uXczPCtX2Aocm+jIkAy88uvPFI=";
|
||||
};
|
||||
|
||||
patches = [
|
||||
# should be removed with next release
|
||||
(fetchpatch2 {
|
||||
url = "https://github.com/AGProjects/sylkserver/commit/c0d943b4ff4401b2892b84d66e7cd27db7e6a927.patch";
|
||||
hash = "sha256-U0a8mRbt8c4lUcN2xYDfvXTt/sWcvi7F3/Vw5sIQPrU=";
|
||||
})
|
||||
build-system = with python3Packages; [
|
||||
setuptools
|
||||
];
|
||||
|
||||
build-system = [ python3Packages.setuptools ];
|
||||
|
||||
dependencies = with python3Packages; [
|
||||
autobahn
|
||||
cassandra-driver
|
||||
cement
|
||||
dnspython
|
||||
klein
|
||||
lxml
|
||||
lxml-html-clean
|
||||
msrplib
|
||||
python3-eventlib
|
||||
python3-gnutls
|
||||
python3-sipsimple
|
||||
systemd-python
|
||||
wokkel
|
||||
xcaplib
|
||||
];
|
||||
|
|
@ -53,7 +49,7 @@ python3Packages.buildPythonApplication (finalAttrs: {
|
|||
description = "SIP/XMPP/WebRTC Application Server";
|
||||
homepage = "https://sylkserver.com/";
|
||||
downloadPage = "https://github.com/AGProjects/sylkserver";
|
||||
changelog = "https://github.com/AGProjects/sylkserver/releases/tag/${finalAttrs.version}";
|
||||
changelog = "https://github.com/AGProjects/sylkserver/blob/${finalAttrs.src.rev}/debian/changelog";
|
||||
license = lib.licenses.gpl3Plus;
|
||||
teams = [ lib.teams.ngi ];
|
||||
mainProgram = "sylk-server";
|
||||
|
|
|
|||
|
|
@ -35,6 +35,7 @@ stdenv.mkDerivation rec {
|
|||
# Unity Hub binary dependencies
|
||||
libxrandr
|
||||
xdg-utils
|
||||
p7zip
|
||||
|
||||
# GTK filepicker
|
||||
gsettings-desktop-schemas
|
||||
|
|
|
|||
|
|
@ -10,15 +10,15 @@
|
|||
|
||||
stdenvNoCC.mkDerivation (finalAttrs: {
|
||||
pname = "youtrack";
|
||||
version = "2026.1.12458";
|
||||
version = "2026.1.13570";
|
||||
|
||||
src = dockerTools.exportImage {
|
||||
diskSize = 8192;
|
||||
fromImage = dockerTools.pullImage {
|
||||
imageName = "jetbrains/youtrack";
|
||||
arch = "amd64";
|
||||
imageDigest = "sha256:64b9c6c0e409e9cb7e62558bbb2ca0208a85d1c40331b41430e290404b300e40";
|
||||
hash = "sha256-7rlilHogqwxPXZlhAHv5Kk2+i8rMyGP6eZR1DdbhRDM=";
|
||||
imageDigest = "sha256:2ea82348ed037f91f847dd99f196e632769dbd44a00d5659ee7a50cf9774149a";
|
||||
hash = "sha256-+GVDh4ptBQggtZDWI56pEvkPonL9QG9126amtwZS0T8=";
|
||||
};
|
||||
};
|
||||
unpackPhase = ''
|
||||
|
|
|
|||
|
|
@ -6,27 +6,24 @@
|
|||
ninja,
|
||||
pkg-config,
|
||||
vala,
|
||||
wrapGAppsHook3,
|
||||
wrapGAppsHook4,
|
||||
gdk-pixbuf,
|
||||
glib,
|
||||
granite,
|
||||
gtk3,
|
||||
libhandy,
|
||||
granite7,
|
||||
gtk4,
|
||||
libportal,
|
||||
nix-update-script,
|
||||
}:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "elementary-screenshot";
|
||||
# nixpkgs-update: no auto update
|
||||
# We disabled x-d-p-pantheon due to https://github.com/elementary/portals/issues/157
|
||||
# so hold back this before the issue is fixed since later versions enforce using portals.
|
||||
version = "8.0.0";
|
||||
version = "8.0.4";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "elementary";
|
||||
repo = "screenshot";
|
||||
rev = version;
|
||||
hash = "sha256-z7FP+OZYF/9YLXYCQF/ElihKjKHVfeHc38RHdPb2aIE=";
|
||||
hash = "sha256-hVYzriIRvBDBdRRZRiXZwEazu9ZPhPaVY/pOfw95ZkU=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
|
|
@ -34,15 +31,15 @@ stdenv.mkDerivation rec {
|
|||
ninja
|
||||
pkg-config
|
||||
vala
|
||||
wrapGAppsHook3
|
||||
wrapGAppsHook4
|
||||
];
|
||||
|
||||
buildInputs = [
|
||||
gdk-pixbuf
|
||||
glib
|
||||
granite
|
||||
gtk3
|
||||
libhandy
|
||||
granite7
|
||||
gtk4
|
||||
libportal
|
||||
];
|
||||
|
||||
passthru = {
|
||||
|
|
|
|||
|
|
@ -23,7 +23,7 @@
|
|||
|
||||
buildPythonPackage rec {
|
||||
pname = "pypdf";
|
||||
version = "6.10.2";
|
||||
version = "6.12.2";
|
||||
pyproject = true;
|
||||
|
||||
src = fetchFromGitHub {
|
||||
|
|
@ -32,7 +32,7 @@ buildPythonPackage rec {
|
|||
tag = version;
|
||||
# fetch sample files used in tests
|
||||
fetchSubmodules = true;
|
||||
hash = "sha256-f7U9kZrAnUHv0nBrcHI+Otd49jIJz0d1uWRHymWJnYo=";
|
||||
hash = "sha256-rRvRAasPgE5nCChYJYB9olSE3RWmztYSJoAbmh+a3Q0=";
|
||||
};
|
||||
|
||||
outputs = [
|
||||
|
|
|
|||
|
|
@ -38,8 +38,8 @@ let
|
|||
packages = {
|
||||
"classical" = [ ];
|
||||
"reals" = [ "classical" ];
|
||||
"experimental-reals" = [ "reals" ];
|
||||
"analysis" = [ "reals" ];
|
||||
"experimental-reals" = [ "analysis" ];
|
||||
"reals-stdlib" = [ "reals" ];
|
||||
"analysis-stdlib" = [
|
||||
"analysis"
|
||||
|
|
|
|||
|
|
@ -48,6 +48,13 @@ let
|
|||
for i in _checkouts/* ; do
|
||||
ln -s $(pwd)/$i $(pwd)/_build/default/lib/
|
||||
done
|
||||
''
|
||||
# OTP 29 tests fail on warnings, fixed in https://github.com/erlang/rebar3/pull/2996
|
||||
+ lib.optionalString ((lib.versions.major erlang.version) == "29") ''
|
||||
substituteInPlace rebar.config --replace-fail 'nowarn_deprecated_catch' 'nowarn_deprecated_catch,nowarn_export_var_subexpr'
|
||||
|
||||
substituteInPlace apps/rebar/test/rebar_xref_SUITE.erl \
|
||||
--replace-fail 'xref_test, xref_ignore_test,' 'xref_test,'
|
||||
'';
|
||||
|
||||
buildPhase = ''
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue