Merge master into staging-next

This commit is contained in:
github-actions[bot]
2023-04-20 18:01:06 +00:00
committed by GitHub
81 changed files with 1472 additions and 1614 deletions
@@ -429,6 +429,8 @@ In addition to numerous new and upgraded packages, this release has the followin
- `k3s` can now be configured with an EnvironmentFile for its systemd service, allowing secrets to be provided without ending up in the Nix Store.
- `gitea` module options have been changed to be RFC042 conforming (i.e. some options were moved to be located under `services.gitea.settings`)
- `boot.initrd.luks.device.<name>` has a new `tryEmptyPassphrase` option, this is useful for OEM's who need to install an encrypted disk with a future settable passphrase
- Lisp gained a [manual section](https://nixos.org/manual/nixpkgs/stable/#lisp), documenting a new and backwards incompatible interface. The previous interface will be removed in a future release.
+1 -4
View File
@@ -10,10 +10,7 @@ let
check = x: (lib.types.package.check x) && (attrByPath ["meta" "isIbusEngine"] false x);
};
impanel =
if cfg.panel != null
then "--panel=${cfg.panel}"
else "";
impanel = optionalString (cfg.panel != null) "--panel=${cfg.panel}";
ibusAutostart = pkgs.writeTextFile {
name = "autostart-ibus-daemon";
+2 -2
View File
@@ -22,8 +22,8 @@ let
(option: ''
menuentry '${defaults.name} ${
# Name appended to menuentry defaults to params if no specific name given.
option.name or (if option ? params then "(${option.params})" else "")
}' ${if option ? class then " --class ${option.class}" else ""} {
option.name or (optionalString (option ? params) "(${option.params})")
}' ${optionalString (option ? class) " --class ${option.class}"} {
linux ${defaults.image} \''${isoboot} ${defaults.params} ${
option.params or ""
}
+1 -1
View File
@@ -11,7 +11,7 @@ let
${concatStringsSep "\n"
(mapAttrsToList (command: action: "${command} ${action}") cfg.commands)
}
${if cfg.clearDefaultCommands then "#stop" else ""}
${optionalString cfg.clearDefaultCommands "#stop"}
#line-edit
${concatStringsSep "\n"
+8 -8
View File
@@ -1,7 +1,7 @@
{ config, pkgs, lib, ... }:
let
inherit (lib) mkOption mkIf types;
inherit (lib) mkOption mkIf types optionalString;
cfg = config.programs.tmux;
@@ -17,17 +17,17 @@ let
set -g base-index ${toString cfg.baseIndex}
setw -g pane-base-index ${toString cfg.baseIndex}
${if cfg.newSession then "new-session" else ""}
${optionalString cfg.newSession "new-session"}
${if cfg.reverseSplit then ''
${optionalString cfg.reverseSplit ''
bind v split-window -h
bind s split-window -v
'' else ""}
''}
set -g status-keys ${cfg.keyMode}
set -g mode-keys ${cfg.keyMode}
${if cfg.keyMode == "vi" && cfg.customPaneNavigationAndResize then ''
${optionalString (cfg.keyMode == "vi" && cfg.customPaneNavigationAndResize) ''
bind h select-pane -L
bind j select-pane -D
bind k select-pane -U
@@ -37,15 +37,15 @@ let
bind -r J resize-pane -D ${toString cfg.resizeAmount}
bind -r K resize-pane -U ${toString cfg.resizeAmount}
bind -r L resize-pane -R ${toString cfg.resizeAmount}
'' else ""}
''}
${if (cfg.shortcut != defaultShortcut) then ''
${optionalString (cfg.shortcut != defaultShortcut) ''
# rebind main key: C-${cfg.shortcut}
unbind C-${defaultShortcut}
set -g prefix C-${cfg.shortcut}
bind ${cfg.shortcut} send-prefix
bind C-${cfg.shortcut} last-window
'' else ""}
''}
setw -g aggressive-resize ${boolToStr cfg.aggressiveResize}
setw -g clock-mode-style ${if cfg.clock24 then "24" else "12"}
+2 -2
View File
@@ -781,11 +781,11 @@ in {
# FIXME Most of these custom warnings and filters for security.acme.certs.* are required
# because using mkRemovedOptionModule/mkChangedOptionModule with attrsets isn't possible.
warnings = filter (w: w != "") (mapAttrsToList (cert: data: if data.extraDomains != "_mkMergedOptionModule" then ''
warnings = filter (w: w != "") (mapAttrsToList (cert: data: optionalString (data.extraDomains != "_mkMergedOptionModule") ''
The option definition `security.acme.certs.${cert}.extraDomains` has changed
to `security.acme.certs.${cert}.extraDomainNames` and is now a list of strings.
Setting a custom webroot for extra domains is not possible, instead use separate certs.
'' else "") cfg.certs);
'') cfg.certs);
assertions = let
certs = attrValues cfg.certs;
+2 -2
View File
@@ -275,9 +275,9 @@ in {
warnings =
# https://github.com/badaix/snapcast/blob/98ac8b2fb7305084376607b59173ce4097c620d8/server/streamreader/stream_manager.cpp#L85
filter (w: w != "") (mapAttrsToList (k: v: if v.type == "spotify" then ''
filter (w: w != "") (mapAttrsToList (k: v: optionalString (v.type == "spotify") ''
services.snapserver.streams.${k}.type = "spotify" is deprecated, use services.snapserver.streams.${k}.type = "librespot" instead.
'' else "") cfg.streams);
'') cfg.streams);
systemd.services.snapserver = {
after = [ "network.target" ];
@@ -20,7 +20,7 @@ let
'';
backupDatabaseScript = db: ''
dest="${cfg.location}/${db}.gz"
if ${mariadb}/bin/mysqldump ${if cfg.singleTransaction then "--single-transaction" else ""} ${db} | ${gzip}/bin/gzip -c > $dest.tmp; then
if ${mariadb}/bin/mysqldump ${optionalString cfg.singleTransaction "--single-transaction"} ${db} | ${gzip}/bin/gzip -c > $dest.tmp; then
mv $dest.tmp $dest
echo "Backed up to $dest"
else
+1 -1
View File
@@ -300,7 +300,7 @@ in
filesFromTmpFile = "/run/restic-backups-${name}/includes";
backupPaths =
if (backup.dynamicFilesFrom == null)
then if (backup.paths != null) then concatStringsSep " " backup.paths else ""
then optionalString (backup.paths != null) (concatStringsSep " " backup.paths)
else "--files-from ${filesFromTmpFile}";
pruneCmd = optionals (builtins.length backup.pruneOpts > 0) [
(resticCmd + " forget --prune " + (concatStringsSep " " backup.pruneOpts))
@@ -196,9 +196,9 @@ in
--gcmode ${cfg.gcmode} \
--port ${toString cfg.port} \
--maxpeers ${toString cfg.maxpeers} \
${if cfg.http.enable then ''--http --http.addr ${cfg.http.address} --http.port ${toString cfg.http.port}'' else ""} \
${optionalString cfg.http.enable ''--http --http.addr ${cfg.http.address} --http.port ${toString cfg.http.port}''} \
${optionalString (cfg.http.apis != null) ''--http.api ${lib.concatStringsSep "," cfg.http.apis}''} \
${if cfg.websocket.enable then ''--ws --ws.addr ${cfg.websocket.address} --ws.port ${toString cfg.websocket.port}'' else ""} \
${optionalString cfg.websocket.enable ''--ws --ws.addr ${cfg.websocket.address} --ws.port ${toString cfg.websocket.port}''} \
${optionalString (cfg.websocket.apis != null) ''--ws.api ${lib.concatStringsSep "," cfg.websocket.apis}''} \
${optionalString cfg.metrics.enable ''--metrics --metrics.addr ${cfg.metrics.address} --metrics.port ${toString cfg.metrics.port}''} \
--authrpc.addr ${cfg.authrpc.address} --authrpc.port ${toString cfg.authrpc.port} --authrpc.vhosts ${lib.concatStringsSep "," cfg.authrpc.vhosts} \
@@ -242,7 +242,7 @@ in {
jobdir="${jenkinsCfg.home}/$jenkinsjobname"
rm -rf "$jobdir"
done
'' + (if cfg.accessUser != "" then reloadScript else "");
'' + (optionalString (cfg.accessUser != "") reloadScript);
serviceConfig = {
Type = "oneshot";
User = jenkinsCfg.user;
@@ -4,7 +4,7 @@ with lib;
let
cfg = config.services.minetest-server;
flag = val: name: if val != null then "--${name} ${toString val} " else "";
flag = val: name: optionalString (val != null) "--${name} ${toString val} ";
flags = [
(flag cfg.gameId "gameid")
(flag cfg.world "world")
+2 -3
View File
@@ -83,9 +83,8 @@ let
};
mailOption =
if foldr (n: a: a || (n.mail or false) != false) false (attrValues cfg.settings)
then "--mail=${pkgs.mailutils}/bin/mail"
else "";
optionalString (foldr (n: a: a || (n.mail or false) != false) false (attrValues cfg.settings))
"--mail=${pkgs.mailutils}/bin/mail";
in
{
imports = [
+1 -1
View File
@@ -7,7 +7,7 @@ let
cfg = config.services.syslogd;
syslogConf = pkgs.writeText "syslog.conf" ''
${if (cfg.tty != "") then "kern.warning;*.err;authpriv.none /dev/${cfg.tty}" else ""}
${optionalString (cfg.tty != "") "kern.warning;*.err;authpriv.none /dev/${cfg.tty}"}
${cfg.defaultConfig}
${cfg.extraConfig}
'';
+1 -1
View File
@@ -234,7 +234,7 @@ let
headerChecks = concatStringsSep "\n" (map (x: "${x.pattern} ${x.action}") cfg.headerChecks) + cfg.extraHeaderChecks;
aliases = let separator = if cfg.aliasMapType == "hash" then ":" else ""; in
aliases = let separator = optionalString (cfg.aliasMapType == "hash") ":"; in
optionalString (cfg.postmasterAlias != "") ''
postmaster${separator} ${cfg.postmasterAlias}
''
+5 -5
View File
@@ -10,7 +10,7 @@ let
Connection = ${cfg.device.connection}
SynchronizeTime = ${if cfg.device.synchronizeTime then "yes" else "no"}
LogFormat = ${cfg.log.format}
${if (cfg.device.pin != null) then "PIN = ${cfg.device.pin}" else ""}
${optionalString (cfg.device.pin != null) "PIN = ${cfg.device.pin}"}
${cfg.extraConfig.gammu}
@@ -33,10 +33,10 @@ let
${optionalString (cfg.backend.service == "sql" && cfg.backend.sql.driver == "native_pgsql") (
with cfg.backend; ''
Driver = ${sql.driver}
${if (sql.database!= null) then "Database = ${sql.database}" else ""}
${if (sql.host != null) then "Host = ${sql.host}" else ""}
${if (sql.user != null) then "User = ${sql.user}" else ""}
${if (sql.password != null) then "Password = ${sql.password}" else ""}
${optionalString (sql.database!= null) "Database = ${sql.database}"}
${optionalString (sql.host != null) "Host = ${sql.host}"}
${optionalString (sql.user != null) "User = ${sql.user}"}
${optionalString (sql.password != null) "Password = ${sql.password}"}
'')}
${cfg.extraConfig.smsd}
+126 -108
View File
@@ -26,9 +26,18 @@ in
imports = [
(mkRenamedOptionModule [ "services" "gitea" "cookieSecure" ] [ "services" "gitea" "settings" "session" "COOKIE_SECURE" ])
(mkRenamedOptionModule [ "services" "gitea" "disableRegistration" ] [ "services" "gitea" "settings" "service" "DISABLE_REGISTRATION" ])
(mkRenamedOptionModule [ "services" "gitea" "domain" ] [ "services" "gitea" "settings" "server" "DOMAIN" ])
(mkRenamedOptionModule [ "services" "gitea" "httpAddress" ] [ "services" "gitea" "settings" "server" "HTTP_ADDR" ])
(mkRenamedOptionModule [ "services" "gitea" "httpPort" ] [ "services" "gitea" "settings" "server" "HTTP_PORT" ])
(mkRenamedOptionModule [ "services" "gitea" "log" "level" ] [ "services" "gitea" "settings" "log" "LEVEL" ])
(mkRenamedOptionModule [ "services" "gitea" "log" "rootPath" ] [ "services" "gitea" "settings" "log" "ROOT_PATH" ])
(mkRenamedOptionModule [ "services" "gitea" "rootUrl" ] [ "services" "gitea" "settings" "server" "ROOT_URL" ])
(mkRenamedOptionModule [ "services" "gitea" "ssh" "clonePort" ] [ "services" "gitea" "settings" "server" "SSH_PORT" ])
(mkRenamedOptionModule [ "services" "gitea" "staticRootPath" ] [ "services" "gitea" "settings" "server" "STATIC_ROOT_PATH" ])
(mkChangedOptionModule [ "services" "gitea" "enableUnixSocket" ] [ "services" "gitea" "settings" "server" "PROTOCOL" ] (
config: if config.services.gitea.enableUnixSocket then "http+unix" else "http"
))
(mkRemovedOptionModule [ "services" "gitea" "ssh" "enable" ] "services.gitea.ssh.enable has been migrated into freeform setting services.gitea.settings.server.DISABLE_SSH. Keep in mind that the setting is inverted")
];
@@ -57,7 +66,14 @@ in
stateDir = mkOption {
default = "/var/lib/gitea";
type = types.str;
description = lib.mdDoc "gitea data directory.";
description = lib.mdDoc "Gitea data directory.";
};
customDir = mkOption {
default = "${cfg.stateDir}/custom";
defaultText = literalExpression ''"''${config.${opt.stateDir}}/custom"'';
type = types.str;
description = lib.mdDoc "Gitea custom directory. Used for config, custom templates and other options.";
};
user = mkOption {
@@ -66,6 +82,12 @@ in
description = lib.mdDoc "User account under which gitea runs.";
};
group = mkOption {
type = types.str;
default = "gitea";
description = lib.mdDoc "Group under which gitea runs.";
};
database = {
type = mkOption {
type = types.enum [ "sqlite3" "mysql" "postgres" ];
@@ -216,44 +238,6 @@ in
description = lib.mdDoc "Path to the git repositories.";
};
domain = mkOption {
type = types.str;
default = "localhost";
description = lib.mdDoc "Domain name of your server.";
};
rootUrl = mkOption {
type = types.str;
default = "http://localhost:3000/";
description = lib.mdDoc "Full public URL of gitea server.";
};
httpAddress = mkOption {
type = types.str;
default = "0.0.0.0";
description = lib.mdDoc "HTTP listen address.";
};
httpPort = mkOption {
type = types.port;
default = 3000;
description = lib.mdDoc "HTTP listen port.";
};
enableUnixSocket = mkOption {
type = types.bool;
default = false;
description = lib.mdDoc "Configure Gitea to listen on a unix socket instead of the default TCP port.";
};
staticRootPath = mkOption {
type = types.either types.str types.path;
default = cfg.package.data;
defaultText = literalExpression "package.data";
example = "/var/lib/gitea/data";
description = lib.mdDoc "Upper level of template and static files path.";
};
mailerPasswordFile = mkOption {
type = types.nullOr types.str;
default = null;
@@ -285,7 +269,7 @@ in
};
}
'';
type = with types; submodule {
type = types.submodule {
freeformType = format.type;
options = {
log = {
@@ -303,6 +287,46 @@ in
};
server = {
PROTOCOL = mkOption {
type = types.enum [ "http" "https" "fcgi" "http+unix" "fcgi+unix" ];
default = "http";
description = lib.mdDoc ''Listen protocol. `+unix` means "over unix", not "in addition to."'';
};
HTTP_ADDR = mkOption {
type = types.either types.str types.path;
default = if lib.hasSuffix "+unix" cfg.settings.server.PROTOCOL then "/run/gitea/gitea.sock" else "0.0.0.0";
defaultText = literalExpression ''if lib.hasSuffix "+unix" cfg.settings.server.PROTOCOL then "/run/gitea/gitea.sock" else "0.0.0.0"'';
description = lib.mdDoc "Listen address. Must be a path when using a unix socket.";
};
HTTP_PORT = mkOption {
type = types.port;
default = 3000;
description = lib.mdDoc "Listen port. Ignored when using a unix socket.";
};
DOMAIN = mkOption {
type = types.str;
default = "localhost";
description = lib.mdDoc "Domain name of your server.";
};
ROOT_URL = mkOption {
type = types.str;
default = "http://${cfg.settings.server.DOMAIN}:${toString cfg.settings.server.HTTP_PORT}/";
defaultText = literalExpression ''"http://''${config.services.gitea.settings.server.DOMAIN}:''${toString config.services.gitea.settings.server.HTTP_PORT}/"'';
description = lib.mdDoc "Full public URL of gitea server.";
};
STATIC_ROOT_PATH = mkOption {
type = types.either types.str types.path;
default = cfg.package.data;
defaultText = literalExpression "config.${opt.package}.data";
example = "/var/lib/gitea/data";
description = lib.mdDoc "Upper level of template and static files path.";
};
DISABLE_SSH = mkOption {
type = types.bool;
default = false;
@@ -359,7 +383,7 @@ in
config = mkIf cfg.enable {
assertions = [
{ assertion = cfg.database.createDatabase -> cfg.database.user == cfg.user;
{ assertion = cfg.database.createDatabase -> useSqlite || cfg.database.user == cfg.user;
message = "services.gitea.database.user must match services.gitea.user if the database is to be automatically provisioned";
}
];
@@ -389,26 +413,10 @@ in
ROOT = cfg.repositoryRoot;
};
server = mkMerge [
{
DOMAIN = cfg.domain;
STATIC_ROOT_PATH = toString cfg.staticRootPath;
LFS_JWT_SECRET = "#lfsjwtsecret#";
ROOT_URL = cfg.rootUrl;
}
(mkIf cfg.enableUnixSocket {
PROTOCOL = "http+unix";
HTTP_ADDR = "/run/gitea/gitea.sock";
})
(mkIf (!cfg.enableUnixSocket) {
HTTP_ADDR = cfg.httpAddress;
HTTP_PORT = cfg.httpPort;
})
(mkIf cfg.lfs.enable {
LFS_START_SERVER = true;
})
];
server = mkIf cfg.lfs.enable {
LFS_START_SERVER = true;
LFS_JWT_SECRET = "#lfsjwtsecret#";
};
session = {
COOKIE_NAME = lib.mkDefault "session";
@@ -428,7 +436,7 @@ in
JWT_SECRET = "#oauth2jwtsecret#";
};
lfs = mkIf (cfg.lfs.enable) {
lfs = mkIf cfg.lfs.enable {
PATH = cfg.lfs.contentDir;
};
};
@@ -457,33 +465,35 @@ in
};
systemd.tmpfiles.rules = [
"d '${cfg.dump.backupDir}' 0750 ${cfg.user} gitea - -"
"z '${cfg.dump.backupDir}' 0750 ${cfg.user} gitea - -"
"Z '${cfg.dump.backupDir}' - ${cfg.user} gitea - -"
"d '${cfg.lfs.contentDir}' 0750 ${cfg.user} gitea - -"
"z '${cfg.lfs.contentDir}' 0750 ${cfg.user} gitea - -"
"Z '${cfg.lfs.contentDir}' - ${cfg.user} gitea - -"
"d '${cfg.repositoryRoot}' 0750 ${cfg.user} gitea - -"
"z '${cfg.repositoryRoot}' 0750 ${cfg.user} gitea - -"
"Z '${cfg.repositoryRoot}' - ${cfg.user} gitea - -"
"d '${cfg.stateDir}' 0750 ${cfg.user} gitea - -"
"d '${cfg.stateDir}/conf' 0750 ${cfg.user} gitea - -"
"d '${cfg.stateDir}/custom' 0750 ${cfg.user} gitea - -"
"d '${cfg.stateDir}/custom/conf' 0750 ${cfg.user} gitea - -"
"d '${cfg.stateDir}/data' 0750 ${cfg.user} gitea - -"
"d '${cfg.stateDir}/log' 0750 ${cfg.user} gitea - -"
"z '${cfg.stateDir}' 0750 ${cfg.user} gitea - -"
"z '${cfg.stateDir}/.ssh' 0700 ${cfg.user} gitea - -"
"z '${cfg.stateDir}/conf' 0750 ${cfg.user} gitea - -"
"z '${cfg.stateDir}/custom' 0750 ${cfg.user} gitea - -"
"z '${cfg.stateDir}/custom/conf' 0750 ${cfg.user} gitea - -"
"z '${cfg.stateDir}/data' 0750 ${cfg.user} gitea - -"
"z '${cfg.stateDir}/log' 0750 ${cfg.user} gitea - -"
"Z '${cfg.stateDir}' - ${cfg.user} gitea - -"
"d '${cfg.dump.backupDir}' 0750 ${cfg.user} ${cfg.group} - -"
"z '${cfg.dump.backupDir}' 0750 ${cfg.user} ${cfg.group} - -"
"Z '${cfg.dump.backupDir}' - ${cfg.user} ${cfg.group} - -"
"d '${cfg.repositoryRoot}' 0750 ${cfg.user} ${cfg.group} - -"
"z '${cfg.repositoryRoot}' 0750 ${cfg.user} ${cfg.group} - -"
"Z '${cfg.repositoryRoot}' - ${cfg.user} ${cfg.group} - -"
"d '${cfg.stateDir}' 0750 ${cfg.user} ${cfg.group} - -"
"d '${cfg.stateDir}/conf' 0750 ${cfg.user} ${cfg.group} - -"
"d '${cfg.customDir}' 0750 ${cfg.user} ${cfg.group} - -"
"d '${cfg.customDir}/conf' 0750 ${cfg.user} ${cfg.group} - -"
"d '${cfg.stateDir}/data' 0750 ${cfg.user} ${cfg.group} - -"
"d '${cfg.stateDir}/log' 0750 ${cfg.user} ${cfg.group} - -"
"z '${cfg.stateDir}' 0750 ${cfg.user} ${cfg.group} - -"
"z '${cfg.stateDir}/.ssh' 0700 ${cfg.user} ${cfg.group} - -"
"z '${cfg.stateDir}/conf' 0750 ${cfg.user} ${cfg.group} - -"
"z '${cfg.customDir}' 0750 ${cfg.user} ${cfg.group} - -"
"z '${cfg.customDir}/conf' 0750 ${cfg.user} ${cfg.group} - -"
"z '${cfg.stateDir}/data' 0750 ${cfg.user} ${cfg.group} - -"
"z '${cfg.stateDir}/log' 0750 ${cfg.user} ${cfg.group} - -"
"Z '${cfg.stateDir}' - ${cfg.user} ${cfg.group} - -"
# If we have a folder or symlink with gitea locales, remove it
# And symlink the current gitea locales in place
"L+ '${cfg.stateDir}/conf/locale' - - - - ${cfg.package.out}/locale"
] ++ lib.optionals cfg.lfs.enable [
"d '${cfg.lfs.contentDir}' 0750 ${cfg.user} ${cfg.group} - -"
"z '${cfg.lfs.contentDir}' 0750 ${cfg.user} ${cfg.group} - -"
"Z '${cfg.lfs.contentDir}' - ${cfg.user} ${cfg.group} - -"
];
systemd.services.gitea = {
@@ -500,47 +510,52 @@ in
# lfs_jwt_secret.
# We have to consider this to stay compatible with older installations.
preStart = let
runConfig = "${cfg.stateDir}/custom/conf/app.ini";
secretKey = "${cfg.stateDir}/custom/conf/secret_key";
oauth2JwtSecret = "${cfg.stateDir}/custom/conf/oauth2_jwt_secret";
oldLfsJwtSecret = "${cfg.stateDir}/custom/conf/jwt_secret"; # old file for LFS_JWT_SECRET
lfsJwtSecret = "${cfg.stateDir}/custom/conf/lfs_jwt_secret"; # new file for LFS_JWT_SECRET
internalToken = "${cfg.stateDir}/custom/conf/internal_token";
runConfig = "${cfg.customDir}/conf/app.ini";
secretKey = "${cfg.customDir}/conf/secret_key";
oauth2JwtSecret = "${cfg.customDir}/conf/oauth2_jwt_secret";
oldLfsJwtSecret = "${cfg.customDir}/conf/jwt_secret"; # old file for LFS_JWT_SECRET
lfsJwtSecret = "${cfg.customDir}/conf/lfs_jwt_secret"; # new file for LFS_JWT_SECRET
internalToken = "${cfg.customDir}/conf/internal_token";
replaceSecretBin = "${pkgs.replace-secret}/bin/replace-secret";
in ''
# copy custom configuration and generate a random secret key if needed
# copy custom configuration and generate random secrets if needed
${optionalString (!cfg.useWizard) ''
function gitea_setup {
cp -f ${configFile} ${runConfig}
cp -f '${configFile}' '${runConfig}'
if [ ! -s ${secretKey} ]; then
${exe} generate secret SECRET_KEY > ${secretKey}
if [ ! -s '${secretKey}' ]; then
${exe} generate secret SECRET_KEY > '${secretKey}'
fi
# Migrate LFS_JWT_SECRET filename
if [[ -s ${oldLfsJwtSecret} && ! -s ${lfsJwtSecret} ]]; then
mv ${oldLfsJwtSecret} ${lfsJwtSecret}
if [[ -s '${oldLfsJwtSecret}' && ! -s '${lfsJwtSecret}' ]]; then
mv '${oldLfsJwtSecret}' '${lfsJwtSecret}'
fi
if [ ! -s ${oauth2JwtSecret} ]; then
${exe} generate secret JWT_SECRET > ${oauth2JwtSecret}
if [ ! -s '${oauth2JwtSecret}' ]; then
${exe} generate secret JWT_SECRET > '${oauth2JwtSecret}'
fi
if [ ! -s ${lfsJwtSecret} ]; then
${exe} generate secret LFS_JWT_SECRET > ${lfsJwtSecret}
${lib.optionalString cfg.lfs.enable ''
if [ ! -s '${lfsJwtSecret}' ]; then
${exe} generate secret LFS_JWT_SECRET > '${lfsJwtSecret}'
fi
''}
if [ ! -s ${internalToken} ]; then
${exe} generate secret INTERNAL_TOKEN > ${internalToken}
if [ ! -s '${internalToken}' ]; then
${exe} generate secret INTERNAL_TOKEN > '${internalToken}'
fi
chmod u+w '${runConfig}'
${replaceSecretBin} '#secretkey#' '${secretKey}' '${runConfig}'
${replaceSecretBin} '#dbpass#' '${cfg.database.passwordFile}' '${runConfig}'
${replaceSecretBin} '#oauth2jwtsecret#' '${oauth2JwtSecret}' '${runConfig}'
${replaceSecretBin} '#lfsjwtsecret#' '${lfsJwtSecret}' '${runConfig}'
${replaceSecretBin} '#internaltoken#' '${internalToken}' '${runConfig}'
${lib.optionalString cfg.lfs.enable ''
${replaceSecretBin} '#lfsjwtsecret#' '${lfsJwtSecret}' '${runConfig}'"
''}
${lib.optionalString (cfg.mailerPasswordFile != null) ''
${replaceSecretBin} '#mailerpass#' '${cfg.mailerPasswordFile}' '${runConfig}'
''}
@@ -565,7 +580,7 @@ in
serviceConfig = {
Type = "simple";
User = cfg.user;
Group = "gitea";
Group = cfg.group;
WorkingDirectory = cfg.stateDir;
ExecStart = "${exe} web --pid /run/gitea/gitea.pid";
Restart = "always";
@@ -573,7 +588,7 @@ in
RuntimeDirectory = "gitea";
RuntimeDirectoryMode = "0755";
# Access write directories
ReadWritePaths = [ cfg.dump.backupDir cfg.repositoryRoot cfg.stateDir cfg.lfs.contentDir ];
ReadWritePaths = [ cfg.customDir cfg.dump.backupDir cfg.repositoryRoot cfg.stateDir cfg.lfs.contentDir ];
UMask = "0027";
# Capabilities
CapabilityBoundingSet = "";
@@ -606,6 +621,7 @@ in
USER = cfg.user;
HOME = cfg.stateDir;
GITEA_WORK_DIR = cfg.stateDir;
GITEA_CUSTOM = cfg.customDir;
};
};
@@ -614,12 +630,14 @@ in
description = "Gitea Service";
home = cfg.stateDir;
useDefaultShell = true;
group = "gitea";
group = cfg.group;
isSystemUser = true;
};
};
users.groups.gitea = {};
users.groups = mkIf (cfg.group == "gitea") {
gitea = {};
};
warnings =
optional (cfg.database.password != "") "config.services.gitea.database.password will be stored as plaintext in the Nix store. Use database.passwordFile instead." ++
+1 -1
View File
@@ -1215,7 +1215,7 @@ in {
enableDelete = true; # This must be true, otherwise GitLab won't manage it correctly
extraConfig = {
auth.token = {
realm = "http${if cfg.https == true then "s" else ""}://${cfg.host}/jwt/auth";
realm = "http${optionalString (cfg.https == true) "s"}://${cfg.host}/jwt/auth";
service = cfg.registry.serviceName;
issuer = cfg.registry.issuer;
rootcertbundle = cfg.registry.certFile;
+1 -1
View File
@@ -3,7 +3,7 @@ with lib;
let
cfg = config.services.mbpfan;
verbose = if cfg.verbose then "v" else "";
verbose = optionalString cfg.verbose "v";
settingsFormat = pkgs.formats.ini {};
settingsFile = settingsFormat.generate "mbpfan.ini" cfg.settings;
+7 -7
View File
@@ -283,13 +283,13 @@ in
services.redmine.settings = {
production = {
scm_subversion_command = if cfg.components.subversion then "${pkgs.subversion}/bin/svn" else "";
scm_mercurial_command = if cfg.components.mercurial then "${pkgs.mercurial}/bin/hg" else "";
scm_git_command = if cfg.components.git then "${pkgs.git}/bin/git" else "";
scm_cvs_command = if cfg.components.cvs then "${pkgs.cvs}/bin/cvs" else "";
scm_bazaar_command = if cfg.components.breezy then "${pkgs.breezy}/bin/bzr" else "";
imagemagick_convert_command = if cfg.components.imagemagick then "${pkgs.imagemagick}/bin/convert" else "";
gs_command = if cfg.components.ghostscript then "${pkgs.ghostscript}/bin/gs" else "";
scm_subversion_command = optionalString cfg.components.subversion "${pkgs.subversion}/bin/svn";
scm_mercurial_command = optionalString cfg.components.mercurial "${pkgs.mercurial}/bin/hg";
scm_git_command = optionalString cfg.components.git "${pkgs.git}/bin/git";
scm_cvs_command = optionalString cfg.components.cvs "${pkgs.cvs}/bin/cvs";
scm_bazaar_command = optionalString cfg.components.breezy "${pkgs.breezy}/bin/bzr";
imagemagick_convert_command = optionalString cfg.components.imagemagick "${pkgs.imagemagick}/bin/convert";
gs_command = optionalString cfg.components.ghostscript "${pkgs.ghostscript}/bin/gs";
minimagick_font_path = "${cfg.components.minimagick_font_path}";
};
};
+1 -1
View File
@@ -20,7 +20,7 @@ let
${optionalString (cfg.hostsAllowReg != []) "hosts_allow_reg = ${concatStringsSep "," cfg.hostsAllowReg}"}
${optionalString (cfg.hostsAllowSip != []) "hosts_allow_sip = ${concatStringsSep "," cfg.hostsAllowSip}"}
${optionalString (cfg.hostsDenySip != []) "hosts_deny_sip = ${concatStringsSep "," cfg.hostsDenySip}"}
${if (cfg.passwordFile != "") then "proxy_auth_pwfile = ${cfg.passwordFile}" else ""}
${optionalString (cfg.passwordFile != "") "proxy_auth_pwfile = ${cfg.passwordFile}"}
${cfg.extraConfig}
'';
@@ -58,10 +58,10 @@ in
};
};
serviceOpts = let
collectSettingsArgs = if (cfg.collectdBinary.enable) then ''
collectSettingsArgs = optionalString (cfg.collectdBinary.enable) ''
--collectd.listen-address ${cfg.collectdBinary.listenAddress}:${toString cfg.collectdBinary.port} \
--collectd.security-level ${cfg.collectdBinary.securityLevel} \
'' else "";
'';
in {
serviceConfig = {
ExecStart = ''
@@ -1,13 +1,13 @@
{ config, lib, ...}:
let
inherit (lib) concatStringsSep mkOption types;
inherit (lib) concatStringsSep mkOption types optionalString;
in {
mkCellServDB = cellName: db: ''
>${cellName}
'' + (concatStringsSep "\n" (map (dbm: if (dbm.ip != "" && dbm.dnsname != "") then dbm.ip + " #" + dbm.dnsname else "")
'' + (concatStringsSep "\n" (map (dbm: optionalString (dbm.ip != "" && dbm.dnsname != "") "${dbm.ip} #${dbm.dnsname}")
db))
+ "\n";
+1 -1
View File
@@ -17,7 +17,7 @@ let
ttl ${toString proxy.ttl}
${render proxy.rules (ruleNetworkName: rule: ''
rule ${prefer rule.network ruleNetworkName} {
${rule.method}${if rule.method == "iface" then " ${rule.interface}" else ""}
${rule.method}${optionalString (rule.method == "iface") " ${rule.interface}"}
}'')}
}'')}
'');
+1 -1
View File
@@ -86,7 +86,7 @@ in
redis.createInstance = mkOption {
type = types.nullOr types.str;
default = if versionAtLeast config.system.stateVersion "22.05" then "ntopng" else "";
default = optionalString (versionAtLeast config.system.stateVersion "22.05") "ntopng";
description = lib.mdDoc ''
Local Redis instance name. Set to `null` to disable
local Redis instance. Defaults to `""` for
@@ -169,11 +169,11 @@ in
else (concatStrings (map (i: "--interface=\"${i}\"")
interfaces))} \
-h "${hostKey}" \
${if !syslog then "--no-syslog" else ""} \
${optionalString (!syslog) "--no-syslog" } \
${if passwordAuthentication then "--password" else "--no-password" } \
${if publicKeyAuthentication then "--publickey" else "--no-publickey" } \
${if rootLogin then "--root-login" else "--no-root-login" } \
${if loginShell != null then "--login-shell=\"${loginShell}\"" else "" } \
${optionalString (loginShell != null) "--login-shell=\"${loginShell}\"" } \
${if srpKeyExchange then "--srp-keyexchange" else "--no-srp-keyexchange" } \
${if !tcpForwarding then "--no-tcpip-forward" else "--tcpip-forward"} \
${if x11Forwarding then "--x11-forward" else "--no-x11-forward" } \
@@ -474,10 +474,10 @@ in
mkdir -m 0755 -p "$(dirname '${k.path}')"
ssh-keygen \
-t "${k.type}" \
${if k ? bits then "-b ${toString k.bits}" else ""} \
${if k ? rounds then "-a ${toString k.rounds}" else ""} \
${if k ? comment then "-C '${k.comment}'" else ""} \
${if k ? openSSHFormat && k.openSSHFormat then "-o" else ""} \
${optionalString (k ? bits) "-b ${toString k.bits}"} \
${optionalString (k ? rounds) "-a ${toString k.rounds}"} \
${optionalString (k ? comment) "-C '${k.comment}'"} \
${optionalString (k ? openSSHFormat && k.openSSHFormat) "-o"} \
-f "${k.path}" \
-N ""
fi
@@ -550,7 +550,7 @@ in
'') cfg.ports}
${concatMapStrings ({ port, addr, ... }: ''
ListenAddress ${addr}${if port != null then ":" + toString port else ""}
ListenAddress ${addr}${optionalString (port != null) (":" + toString port)}
'') cfg.listenAddresses}
${optionalString cfgc.setXAuthLocation ''
@@ -4,7 +4,7 @@ let
inherit (builtins) toFile;
inherit (lib) concatMapStringsSep concatStringsSep mapAttrsToList
mkIf mkEnableOption mkOption types literalExpression;
mkIf mkEnableOption mkOption types literalExpression optionalString;
cfg = config.services.strongswan;
@@ -34,8 +34,8 @@ let
strongswanConf = {setup, connections, ca, secretsFile, managePlugins, enabledPlugins}: toFile "strongswan.conf" ''
charon {
${if managePlugins then "load_modular = no" else ""}
${if managePlugins then ("load = " + (concatStringsSep " " enabledPlugins)) else ""}
${optionalString managePlugins "load_modular = no"}
${optionalString managePlugins ("load = " + (concatStringsSep " " enabledPlugins))}
plugins {
stroke {
secrets_file = ${secretsFile}
@@ -154,8 +154,8 @@ in
environment.systemPackages = [ pkgs.stunnel ];
environment.etc."stunnel.cfg".text = ''
${ if cfg.user != null then "setuid = ${cfg.user}" else "" }
${ if cfg.group != null then "setgid = ${cfg.group}" else "" }
${ optionalString (cfg.user != null) "setuid = ${cfg.user}" }
${ optionalString (cfg.group != null) "setgid = ${cfg.group}" }
debug = ${cfg.logLevel}
+1 -1
View File
@@ -27,7 +27,7 @@ let
${optionalString srv.unlisted "type = UNLISTED"}
${optionalString (srv.flags != "") "flags = ${srv.flags}"}
socket_type = ${if srv.protocol == "udp" then "dgram" else "stream"}
${if srv.port != 0 then "port = ${toString srv.port}" else ""}
${optionalString (srv.port != 0) "port = ${toString srv.port}"}
wait = ${if srv.protocol == "udp" then "yes" else "no"}
user = ${srv.user}
server = ${srv.server}
@@ -209,6 +209,20 @@ in
'';
};
extraSettings = mkOption {
type = with types; attrsOf (oneOf [ bool ints.positive str ]);
default = {};
description = lib.mdDoc ''
Extra default configuration for all jails (i.e. `[DEFAULT]`). See
<https://github.com/fail2ban/fail2ban/blob/master/config/jail.conf> for an overview.
'';
example = literalExpression ''
{
findtime = "15m";
}
'';
};
jails = mkOption {
default = { };
example = literalExpression ''
@@ -335,6 +349,10 @@ in
# Actions
banaction = ${cfg.banaction}
banaction_allports = ${cfg.banaction-allports}
${optionalString (cfg.extraSettings != {}) ''
# Extra settings
${generators.toKeyValue {} cfg.extraSettings}
''}
'';
# Block SSH if there are too many failing connection attempts.
# Benefits from verbose sshd logging to observe failed login attempts,
@@ -72,15 +72,14 @@ let
} // (getProviderOptions cfg cfg.provider) // cfg.extraConfig;
mapConfig = key: attr:
if attr != null && attr != [] then (
optionalString (attr != null && attr != []) (
if isDerivation attr then mapConfig key (toString attr) else
if (builtins.typeOf attr) == "set" then concatStringsSep " "
(mapAttrsToList (name: value: mapConfig (key + "-" + name) value) attr) else
if (builtins.typeOf attr) == "list" then concatMapStringsSep " " (mapConfig key) attr else
if (builtins.typeOf attr) == "bool" then "--${key}=${boolToString attr}" else
if (builtins.typeOf attr) == "string" then "--${key}='${attr}'" else
"--${key}=${toString attr}")
else "";
"--${key}=${toString attr}");
configString = concatStringsSep " " (mapAttrsToList mapConfig allConfig);
in
@@ -72,7 +72,7 @@ in {
EnvironmentFile = cfg.credentialsFile;
ExecStart = ''
${cfg.package}/bin/cachix ${lib.optionalString cfg.verbose "--verbose"} ${lib.optionalString (cfg.host != null) "--host ${cfg.host}"} \
deploy agent ${cfg.name} ${if cfg.profile != null then cfg.profile else ""}
deploy agent ${cfg.name} ${optionalString (cfg.profile != null) cfg.profile}
'';
};
};
@@ -1025,8 +1025,8 @@ in
services.postfix = lib.mkIf cfg.mail.incoming.enable {
enable = true;
sslCert = if cfg.sslCertificate != null then cfg.sslCertificate else "";
sslKey = if cfg.sslCertificateKey != null then cfg.sslCertificateKey else "";
sslCert = lib.optionalString (cfg.sslCertificate != null) cfg.sslCertificate;
sslKey = lib.optionalString (cfg.sslCertificateKey != null) cfg.sslCertificateKey;
origin = cfg.hostname;
relayDomains = [ cfg.hostname ];
@@ -54,7 +54,7 @@ in {
serviceConfig = {
ExecStart = "${pkgs.fcgiwrap}/sbin/fcgiwrap -c ${builtins.toString cfg.preforkProcesses} ${
if (cfg.socketType != "unix") then "-s ${cfg.socketType}:${cfg.socketAddress}" else ""
optionalString (cfg.socketType != "unix") "-s ${cfg.socketType}:${cfg.socketAddress}"
}";
} // (if cfg.user != null && cfg.group != null then {
User = cfg.user;
@@ -64,7 +64,7 @@ let
];
maybeModuleString = moduleName:
if elem moduleName cfg.enableModules then ''"${moduleName}"'' else "";
optionalString (elem moduleName cfg.enableModules) ''"${moduleName}"'';
modulesIncludeString = concatStringsSep ",\n"
(filter (x: x != "") (map maybeModuleString allKnownModules));
@@ -106,15 +106,15 @@ let
static-file.exclude-extensions = ( ".fcgi", ".php", ".rb", "~", ".inc" )
index-file.names = ( "index.html" )
${if cfg.mod_userdir then ''
${optionalString cfg.mod_userdir ''
userdir.path = "public_html"
'' else ""}
''}
${if cfg.mod_status then ''
${optionalString cfg.mod_status ''
status.status-url = "/server-status"
status.statistics-url = "/server-statistics"
status.config-url = "/server-config"
'' else ""}
''}
${cfg.extraConfig}
'';
@@ -318,7 +318,7 @@ let
listenString = { addr, port, ssl, extraParameters ? [], ... }:
# UDP listener for QUIC transport protocol.
(if ssl && vhost.quic then "
(optionalString (ssl && vhost.quic) "
listen ${addr}:${toString port} quic "
+ optionalString vhost.default "default_server "
+ optionalString vhost.reuseport "reuseport "
@@ -326,7 +326,7 @@ let
let inCompatibleParameters = [ "ssl" "proxy_protocol" "http2" ];
isCompatibleParameter = param: !(any (p: p == param) inCompatibleParameters);
in filter isCompatibleParameter extraParameters))
+ ";" else "")
+ ";")
+ "
listen ${addr}:${toString port} "
@@ -234,11 +234,11 @@ in
ln -sfn ${tomcat}/conf/$i ${cfg.baseDir}/conf/`basename $i`
done
${if cfg.extraConfigFiles != [] then ''
${optionalString (cfg.extraConfigFiles != []) ''
for i in ${toString cfg.extraConfigFiles}; do
ln -sfn $i ${cfg.baseDir}/conf/`basename $i`
done
'' else ""}
''}
# Create a modified catalina.properties file
# Change all references from CATALINA_HOME to CATALINA_BASE and add support for shared libraries
@@ -345,7 +345,7 @@ in
# Symlink all the given web applications files or paths into the webapps/ directory
# of this virtual host
for i in "${if virtualHost ? webapps then toString virtualHost.webapps else ""}"; do
for i in "${optionalString (virtualHost ? webapps) (toString virtualHost.webapps)}"; do
if [ -f $i ]; then
# If the given web application is a file, symlink it into the webapps/ directory
ln -sfn $i ${cfg.baseDir}/virtualhosts/${virtualHost.name}/webapps/`basename $i`
@@ -33,7 +33,7 @@ let
then realGrub.override { efiSupport = cfg.efiSupport; }
else null;
f = x: if x == null then "" else "" + x;
f = x: optionalString (x != null) ("" + x);
grubConfig = args:
let
@@ -52,7 +52,7 @@ let
fullName = lib.getName realGrub;
fullVersion = lib.getVersion realGrub;
grubEfi = f grubEfi;
grubTargetEfi = if cfg.efiSupport && (cfg.version == 2) then f (grubEfi.grubTarget or "") else "";
grubTargetEfi = optionalString (cfg.efiSupport && (cfg.version == 2)) (f (grubEfi.grubTarget or ""));
bootPath = args.path;
storePath = config.boot.loader.grub.storePath;
bootloaderId = if args.efiBootloaderId == null then "${config.system.nixos.distroName}${efiSysMountPoint'}" else args.efiBootloaderId;
@@ -20,7 +20,7 @@ let
nix = config.nix.package.out;
timeout = if config.boot.loader.timeout != null then config.boot.loader.timeout else "";
timeout = optionalString (config.boot.loader.timeout != null) config.boot.loader.timeout;
editor = if cfg.editor then "True" else "False";
@@ -32,9 +32,9 @@ let
inherit (config.system.nixos) distroName;
memtest86 = if cfg.memtest86.enable then pkgs.memtest86-efi else "";
memtest86 = optionalString cfg.memtest86.enable pkgs.memtest86-efi;
netbootxyz = if cfg.netbootxyz.enable then pkgs.netbootxyz-efi else "";
netbootxyz = optionalString cfg.netbootxyz.enable pkgs.netbootxyz-efi;
copyExtraFiles = pkgs.writeShellScript "copy-extra-files" ''
empty_file=$(${pkgs.coreutils}/bin/mktemp)
+1 -2
View File
@@ -1024,13 +1024,12 @@ in
copy_bin_and_libs ${pkgs.gnupg}/libexec/scdaemon
${concatMapStringsSep "\n" (x:
if x.gpgCard != null then
optionalString (x.gpgCard != null)
''
mkdir -p $out/secrets/gpg-keys/${x.device}
cp -a ${x.gpgCard.encryptedPass} $out/secrets/gpg-keys/${x.device}/cryptkey.gpg
cp -a ${x.gpgCard.publicKey} $out/secrets/gpg-keys/${x.device}/pubkey.asc
''
else ""
) (attrValues luks.devices)
}
''}
+1 -1
View File
@@ -319,7 +319,7 @@ in
message = let
fs = head (filter notAutoResizable fileSystems);
in
"Mountpoint '${fs.mountPoint}': 'autoResize = true' is not supported for 'fsType = \"${fs.fsType}\"':${if fs.fsType == "auto" then " fsType has to be explicitly set and" else ""} only the ext filesystems and f2fs support it.";
"Mountpoint '${fs.mountPoint}': 'autoResize = true' is not supported for 'fsType = \"${fs.fsType}\"':${optionalString (fs.fsType == "auto") " fsType has to be explicitly set and"} only the ext filesystems and f2fs support it.";
}
];
@@ -170,11 +170,11 @@ let
--setenv HOST_PORT="$HOST_PORT" \
--setenv PATH="$PATH" \
${optionalString cfg.ephemeral "--ephemeral"} \
${if cfg.additionalCapabilities != null && cfg.additionalCapabilities != [] then
''--capability="${concatStringsSep "," cfg.additionalCapabilities}"'' else ""
${optionalString (cfg.additionalCapabilities != null && cfg.additionalCapabilities != [])
''--capability="${concatStringsSep "," cfg.additionalCapabilities}"''
} \
${if cfg.tmpfs != null && cfg.tmpfs != [] then
''--tmpfs=${concatStringsSep " --tmpfs=" cfg.tmpfs}'' else ""
${optionalString (cfg.tmpfs != null && cfg.tmpfs != [])
''--tmpfs=${concatStringsSep " --tmpfs=" cfg.tmpfs}''
} \
${containerInit cfg} "''${SYSTEM_PATH:-/nix/var/nix/profiles/system}/init"
'';
+2 -2
View File
@@ -214,11 +214,11 @@ let
mkdir $out
diskImage=$out/disk.img
${qemu}/bin/qemu-img create -f qcow2 $diskImage "120M"
${if cfg.useEFIBoot then ''
${lib.optionalString cfg.useEFIBoot ''
efiVars=$out/efi-vars.fd
cp ${cfg.efi.variables} $efiVars
chmod 0644 $efiVars
'' else ""}
''}
'';
buildInputs = [ pkgs.util-linux ];
QEMU_OPTS = "-nographic -serial stdio -monitor none"
+10 -2
View File
@@ -1,6 +1,6 @@
{ lib
, fetchFromGitHub
, fetchFromGitLab
, fetchpatch
, gitUpdater
, python3Packages
, blueprint-compiler
@@ -38,7 +38,15 @@ python3Packages.buildPythonApplication rec {
sha256 = "sha256-8VF/CD0Wu2eV6wOpj/M6peKDthFWlcg+1NzzTSIH4S8=";
};
patches = [ ./vulkan_icd.patch ];
patches = [
./vulkan_icd.patch
# Remove next version
(fetchpatch {
url = "https://github.com/bottlesdevs/Bottles/commit/7cb284f9bac0b71bf632bfc70d94f7a53bc51267.patch";
hash = "sha256-mRF+BtQ0qM7Yvx7SONeH2wc04F87fEyNRlBuyQrzN8Y=";
})
];
# https://github.com/bottlesdevs/Bottles/wiki/Packaging
nativeBuildInputs = [
@@ -1,40 +1,44 @@
{ lib, stdenv, fetchFromGitHub
, autoconf, autoconf-archive, automake, glib, intltool, libtool, pkg-config
, gnome-desktop, gnupg, gtk3, udisks
{ lib, stdenv, fetchFromGitHub, writeText
, glib, meson, ninja, pkg-config, python3
, coreutils, gnome-desktop, gnupg, gtk3, systemdMinimal, udisks
}:
stdenv.mkDerivation rec {
pname = "eos-installer";
version = "4.0.3";
version = "5.0.2";
src = fetchFromGitHub {
owner = "endlessm";
repo = "eos-installer";
rev = "Release_${version}";
sha256 = "1nl6vim5dd83kvskmf13xp9d6zx39fayz4z0wqwf7xf4nwl07gwz";
sha256 = "utTTux8o8TN51bvnGldrtMEatiLA1AiHf/9XJZ7k7KM=";
fetchSubmodules = true;
};
strictDeps = true;
nativeBuildInputs = [
autoconf autoconf-archive automake glib intltool libtool pkg-config
glib gnupg meson ninja pkg-config python3
];
buildInputs = [ gnome-desktop gtk3 udisks ];
buildInputs = [ gnome-desktop gtk3 systemdMinimal udisks ];
preConfigure = ''
./autogen.sh
patchShebangs tests
substituteInPlace tests/test-scribe.c \
--replace /bin/true ${coreutils}/bin/true \
--replace /bin/false ${coreutils}/bin/false
'';
configureFlags = [
mesonFlags = [
"--libexecdir=${placeholder "out"}/bin"
"--localstatedir=/var"
"--with-systemdsystemunitdir=${placeholder "out"}/lib/systemd/system"
"--cross-file=${writeText "crossfile.ini" ''
[binaries]
gpg = '${gnupg}/bin/gpg'
''}"
];
# These are for runtime, so can't be discovered from PATH, which
# is constructed from nativeBuildInputs.
GPG_PATH = "${gnupg}/bin/gpg";
GPGCONF_PATH = "${gnupg}/bin/gpgconf";
PKG_CONFIG_SYSTEMD_SYSTEMDSYSTEMUNITDIR = "${placeholder "out"}/lib/systemd/system";
doCheck = true;
enableParallelBuilding = true;
@@ -1,6 +1,6 @@
{ stdenv, lib, buildGoModule, fetchFromGitHub }:
let
version = "1.4.8";
version = "1.5.2";
in
buildGoModule {
pname = "ktunnel";
@@ -10,14 +10,14 @@ buildGoModule {
owner = "omrikiei";
repo = "ktunnel";
rev = "v${version}";
sha256 = "sha256-Iw7Z4iuKxmRrS51KP3k/ouXW4xssdNgxDDzNQR2Zygg=";
sha256 = "sha256-QZL3TSvxSPuBjjATAqoAOZNBSB6NCGfHHG2dq8C4Wwk=";
};
ldflags = [
"-s" "-w"
];
vendorSha256 = "sha256-p9AYZWNO2oqLich0qzZYuAk55HqB6ttS66ORuNZ4rJg=";
vendorHash = "sha256-Q8t/NWGeUB1IpxdsxvyvbYh/adtcA4p+7bcCy9YFjsw=";
preCheck = "export HOME=$(mktemp -d)";
@@ -10,16 +10,16 @@
buildGoModule rec {
pname = "werf";
version = "1.2.219";
version = "1.2.224";
src = fetchFromGitHub {
owner = "werf";
repo = "werf";
rev = "v${version}";
hash = "sha256-yenIGKN6OoDxPRn4aHOQu8Msp1WzjLZzTZkSSKq1zlc=";
hash = "sha256-j7Lio56CMC4bJ58Oucm1hCqFNzMeoDpDRh/ALmF9Y3Y=";
};
vendorHash = "sha256-lif2Vj8HQH8rZeBIky1lz5J6ISdV2yPyR1vQrPcZLuU=";
vendorHash = "sha256-SdBWW1tv3OauCex8l6Kg7uKLFUOvDvCE8rnULytndqw=";
proxyVendor = true;
@@ -17,14 +17,14 @@
let
pname = "qownnotes";
appname = "QOwnNotes";
version = "23.4.0";
version = "23.4.6";
in
stdenv.mkDerivation {
inherit pname appname version;
src = fetchurl {
url = "https://download.tuxfamily.org/${pname}/src/${pname}-${version}.tar.xz";
sha256 = "sha256-8gSy7WL0wpLAXxVo3oOA9X12qd/R7P3MgmlwXxpJSUs=";
sha256 = "sha256-lfQkY/B+mv+hUeAfmZkZ2BHq7MjR0MUVNPjk5QCGisE=";
};
nativeBuildInputs = [
@@ -179,7 +179,7 @@ checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd"
[[package]]
name = "cloud-hypervisor"
version = "31.0.0"
version = "31.1.0"
dependencies = [
"anyhow",
"api_client",
@@ -545,8 +545,7 @@ dependencies = [
[[package]]
name = "kvm-ioctls"
version = "0.13.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "b8f8dc9c1896e5f144ec5d07169bc29f39a047686d29585a91f30489abfaeb6b"
source = "git+https://github.com/rust-vmm/kvm-ioctls?branch=main#23a3bb045a467e60bb00328a0b13cea13b5815d0"
dependencies = [
"kvm-bindings",
"libc",
@@ -2,13 +2,13 @@
rustPlatform.buildRustPackage rec {
pname = "cloud-hypervisor";
version = "31.0";
version = "31.1";
src = fetchFromGitHub {
owner = "cloud-hypervisor";
repo = pname;
rev = "v${version}";
sha256 = "RDHrBu8ePpFkN7BkTbqe2EXNNW7q96zNrjo269K1Zdo=";
sha256 = "vQa43ic3pRzRfT8S9LQIO+VIo6AS2tEMT16CDrMw8R0=";
};
cargoLock = {
@@ -16,6 +16,7 @@ rustPlatform.buildRustPackage rec {
outputHashes = {
"acpi_tables-0.1.0" = "sha256-hP9Fi1K6hX0PkOuomjIzY+oOiPO/5YSNzo0Z98Syz2A=";
"kvm-bindings-0.6.0" = "sha256-wGdAuPwsgRIqx9dh0m+hC9A/Akz9qg9BM+p06Fi5ACM=";
"kvm-ioctls-0.13.0" = "sha256-jHnFGwBWnAa2lRu4a5eRNy1Y26NX5MV8alJ86VR++QE=";
"micro_http-0.1.0" = "sha256-w2witqKXE60P01oQleujmHSnzMKxynUGKWyq5GEh1Ew=";
"mshv-bindings-0.1.1" = "sha256-NwLPzX23nOe00qGoj1rLCWsJ5xEMmPUEtPVZNAYorWQ=";
"versionize_derive-0.1.4" = "sha256-BPl294UqjVl8tThuvylXUFjFNjJx8OSfBGJLg8jIkWw=";
@@ -1,10 +1,10 @@
{ lib, stdenv, fetchurl, fetchpatch, python3Packages, zlib, pkg-config, glib, buildPackages
, perl, pixman, vde2, alsa-lib, texinfo, flex
, pixman, vde2, alsa-lib, texinfo, flex
, bison, lzo, snappy, libaio, libtasn1, gnutls, nettle, curl, ninja, meson, sigtool
, makeWrapper, runtimeShell, removeReferencesTo
, attr, libcap, libcap_ng, socat, libslirp
, CoreServices, Cocoa, Hypervisor, rez, setfile, vmnet
, guestAgentSupport ? with stdenv.hostPlatform; isLinux || isSunOS || isWindows
, guestAgentSupport ? with stdenv.hostPlatform; isLinux || isNetBSD || isOpenBSD || isSunOS || isWindows
, numaSupport ? stdenv.isLinux && !stdenv.isAarch32, numactl
, seccompSupport ? stdenv.isLinux, libseccomp
, alsaSupport ? lib.hasSuffix "linux" stdenv.hostPlatform.system && !nixosTestRunner
@@ -37,31 +37,37 @@
, qemu # for passthru.tests
}:
let
hexagonSupport = hostCpuTargets == null || lib.elem "hexagon" hostCpuTargets;
in
stdenv.mkDerivation rec {
pname = "qemu"
+ lib.optionalString xenSupport "-xen"
+ lib.optionalString hostCpuOnly "-host-cpu-only"
+ lib.optionalString nixosTestRunner "-for-vm-tests";
version = "7.2.1";
version = "8.0.0";
src = fetchurl {
url = "https://download.qemu.org/qemu-${version}.tar.xz";
sha256 = "jIVpms+dekOl/immTN1WNwsMLRrQdLr3CYqCTReq1zs=";
sha256 = "u2DwNBUxGB1sw5ad0ZoBPQQnqH+RgZOXDZrbkRMeVtA=";
};
depsBuildBuild = [ buildPackages.stdenv.cc ];
depsBuildBuild = [ buildPackages.stdenv.cc ]
++ lib.optionals hexagonSupport [ pkg-config ];
nativeBuildInputs = [
makeWrapper removeReferencesTo
pkg-config flex bison meson ninja perl
pkg-config flex bison meson ninja
# Don't change this to python3 and python3.pkgs.*, breaks cross-compilation
python3Packages.python python3Packages.sphinx python3Packages.sphinx-rtd-theme
]
++ lib.optionals gtkSupport [ wrapGAppsHook ]
++ lib.optionals hexagonSupport [ glib ]
++ lib.optionals stdenv.isDarwin [ sigtool ];
buildInputs = [ zlib glib perl pixman
buildInputs = [ zlib glib pixman
vde2 texinfo lzo snappy libtasn1
gnutls nettle curl libslirp
]
@@ -117,15 +123,6 @@ stdenv.mkDerivation rec {
sha256 = "sha256-oC+bRjEHixv1QEFO9XAm4HHOwoiT+NkhknKGPydnZ5E=";
revert = true;
})
# glibc >=2.37 compat, see https://lore.kernel.org/qemu-devel/20230110174901.2580297-1-berrange@redhat.com/
(fetchpatch {
url = "https://gitlab.com/qemu-project/qemu/-/commit/9f0246539ae84a5e21efd1cc4516fc343f08115a.patch";
sha256 = "sha256-1iWOWkLH0WP1Hk23fmrRVdX7YZWUXOvWRMTt8QM93BI=";
})
(fetchpatch {
url = "https://gitlab.com/qemu-project/qemu/-/commit/6003159ce18faad4e1bc7bf9c85669019cd4950e.patch";
sha256 = "sha256-DKGCbR+VDIFLp6FhER78gyJ3Rn1dD47pMtkcIIMd0B8=";
})
]
++ lib.optional nixosTestRunner ./force-uid0-on-9p.patch;
@@ -241,8 +238,6 @@ stdenv.mkDerivation rec {
# Add a qemu-kvm wrapper for compatibility/convenience.
postInstall = ''
ln -s $out/bin/qemu-system-${stdenv.hostPlatform.qemuArch} $out/bin/qemu-kvm
'' + lib.optionalString stdenv.isLinux ''
ln -s $out/libexec/virtiofsd $out/bin
'';
passthru = {
@@ -262,6 +257,5 @@ stdenv.mkDerivation rec {
mainProgram = "qemu-kvm";
maintainers = with maintainers; [ eelco qyliss ];
platforms = platforms.unix;
priority = 10; # Prefer virtiofsd from the virtiofsd package.
};
}
@@ -1,4 +1,4 @@
From 747a741772cde6bb340eb8bdb493390280de8d16 Mon Sep 17 00:00:00 2001
From 2ec149ea3f0046fa83e3be74aca192649a60be47 Mon Sep 17 00:00:00 2001
From: Keno Fischer <keno@juliacomputing.com>
Date: Sat, 16 Jun 2018 20:56:54 -0400
Subject: [PATCH] 9p: darwin: Provide fallback impl for utimensat
@@ -29,23 +29,23 @@ Signed-off-by: Will Cohen <wwcohen@gmail.com>
4 files changed, 111 insertions(+), 1 deletion(-)
diff --git a/hw/9pfs/9p-local.c b/hw/9pfs/9p-local.c
index d42ce6d8b8..b2c1fa42e1 100644
index 9d07620235..9c77a431d5 100644
--- a/hw/9pfs/9p-local.c
+++ b/hw/9pfs/9p-local.c
@@ -1085,7 +1085,7 @@ static int local_utimensat(FsContext *s, V9fsPath *fs_path,
@@ -1081,7 +1081,7 @@ static int local_utimensat(FsContext *s, V9fsPath *fs_path,
goto out;
}
- ret = utimensat(dirfd, name, buf, AT_SYMLINK_NOFOLLOW);
- ret = qemu_utimensat(dirfd, name, buf, AT_SYMLINK_NOFOLLOW);
+ ret = utimensat_nofollow(dirfd, name, buf);
close_preserve_errno(dirfd);
out:
g_free(dirpath);
diff --git a/hw/9pfs/9p-util-darwin.c b/hw/9pfs/9p-util-darwin.c
index bec0253474..2fc0475292 100644
index 95146e7354..74ab2a7f99 100644
--- a/hw/9pfs/9p-util-darwin.c
+++ b/hw/9pfs/9p-util-darwin.c
@@ -95,3 +95,99 @@ int qemu_mknodat(int dirfd, const char *filename, mode_t mode, dev_t dev)
@@ -145,3 +145,99 @@ int qemu_mknodat(int dirfd, const char *filename, mode_t mode, dev_t dev)
}
#endif
@@ -160,12 +160,12 @@ index db451b0784..320697f347 100644
+ return utimensat(dirfd, filename, times, AT_SYMLINK_NOFOLLOW);
+}
diff --git a/hw/9pfs/9p-util.h b/hw/9pfs/9p-util.h
index 97e681e167..fd50d6243a 100644
index c314cf381d..12d57f3398 100644
--- a/hw/9pfs/9p-util.h
+++ b/hw/9pfs/9p-util.h
@@ -36,6 +36,12 @@ static inline int qemu_lsetxattr(const char *path, const char *name,
#define qemu_lsetxattr lsetxattr
#endif
@@ -101,6 +101,12 @@ static inline int errno_to_dotl(int err) {
#define qemu_utimensat utimensat
#define qemu_unlinkat unlinkat
+/* Compatibility with old SDK Versions for Darwin */
+#if defined(CONFIG_DARWIN) && !defined(UTIME_NOW)
@@ -176,7 +176,7 @@ index 97e681e167..fd50d6243a 100644
static inline void close_preserve_errno(int fd)
{
int serrno = errno;
@@ -98,6 +104,8 @@ ssize_t flistxattrat_nofollow(int dirfd, const char *filename,
@@ -163,6 +169,8 @@ ssize_t flistxattrat_nofollow(int dirfd, const char *filename,
char *list, size_t size);
ssize_t fremovexattrat_nofollow(int dirfd, const char *filename,
const char *name);
@@ -186,5 +186,4 @@ index 97e681e167..fd50d6243a 100644
/*
* Darwin has d_seekoff, which appears to function similarly to d_off.
--
2.35.1
2.39.2
@@ -1,14 +1,14 @@
{ lib, stdenv, fetchFromGitHub }:
{ lib, stdenvNoCC, fetchFromGitHub }:
stdenv.mkDerivation rec {
stdenvNoCC.mkDerivation rec {
pname = "scheme-manpages";
version = "unstable-2023-02-06";
version = "unstable-2023-03-26";
src = fetchFromGitHub {
owner = "schemedoc";
repo = "manpages";
rev = "ccaa76761a1b100e99287c120196bd5f32d4a403";
hash = "sha256-RL/94dQiZJ60cXHQ9r4P3hRBqe55oUissCmSp4XLM+o=";
rev = "eac67db33b2111f19ac267585032df8b4838e6f4";
hash = "sha256-FBoagGHWsxZo40gOqeBUw0L+LtNAVF/q6IZ3N9QBFQs=";
};
dontBuild = true;
+4 -4
View File
@@ -1,6 +1,6 @@
{
"commit": "88252bfad2741817b521acc02a424b878264bf9f",
"url": "https://github.com/commercialhaskell/all-cabal-hashes/archive/88252bfad2741817b521acc02a424b878264bf9f.tar.gz",
"sha256": "00nc417r9xrknhmyjh3rfxlsbchizxicnbp98q63yb5czdapg4bm",
"msg": "Update from Hackage at 2023-04-13T09:45:26Z"
"commit": "67ecaa60725908a5bc562294a2c0e03e30858aa7",
"url": "https://github.com/commercialhaskell/all-cabal-hashes/archive/67ecaa60725908a5bc562294a2c0e03e30858aa7.tar.gz",
"sha256": "0yf0dliq65j5achg3iqz0hkf25jjkgxarsdsr5vl2r5h41n39qg3",
"msg": "Update from Hackage at 2023-04-18T09:14:41Z"
}
+3 -3
View File
@@ -2,13 +2,13 @@
rustPlatform.buildRustPackage rec {
pname = "gleam";
version = "0.28.2";
version = "0.28.3";
src = fetchFromGitHub {
owner = "gleam-lang";
repo = pname;
rev = "refs/tags/v${version}";
hash = "sha256-4sYHI3yh5KvLxdpWkCMya7v5aXG+FvvK7hmpOkX1R28=";
hash = "sha256-3uHR6W2Vbqen9e6OXEFFl91/LzXCix4alnprFB36yes=";
};
nativeBuildInputs = [ git pkg-config ];
@@ -16,7 +16,7 @@ rustPlatform.buildRustPackage rec {
buildInputs = [ openssl ] ++
lib.optionals stdenv.isDarwin [ Security libiconv ];
cargoSha256 = "sha256-7RLeLZS28eIGObisRRI3skSkplWZGnyikvD3qfFDpU8=";
cargoHash = "sha256-3+Jb/POABFIBkKpaTD9JDc1vrDzsJe9mGRBQR3UnDAg=";
meta = with lib; {
description = "A statically typed language for the Erlang VM";
@@ -38,6 +38,11 @@ self: super: {
happy = dontCheck super.happy;
happy_1_19_12 = doDistribute (dontCheck super.happy_1_19_12);
# add arm specific library
wiringPi = overrideCabal ({librarySystemDepends ? [], ...}: {
librarySystemDepends = librarySystemDepends ++ [pkgs.wiringpi];
}) super.wiringPi;
} // lib.optionalAttrs pkgs.stdenv.hostPlatform.isAarch64 {
# AARCH64-SPECIFIC OVERRIDES
@@ -2489,7 +2489,7 @@ self: super: {
# 2022-11-15: Needs newer witch package and brick 1.3 which in turn works with text-zipper 0.12
# Other dependencies are resolved with doJailbreak for both swarm and brick_1_3
swarm = doJailbreak (super.swarm.override {
brick = doJailbreak (dontCheck super.brick_1_6);
brick = doJailbreak (dontCheck super.brick_1_7);
});
# Too strict upper bound on bytestring
@@ -62,8 +62,6 @@ in {
ghc-source-gen = checkAgainAfter super.ghc-source-gen "0.4.3.0" "fails to build" (markBroken super.ghc-source-gen);
lucid = jailbreakForCurrentVersion super.lucid "2.11.1";
haskell-src-meta = doJailbreak super.haskell-src-meta;
# Tests fail in GHC 9.2
@@ -211,7 +209,7 @@ in {
# https://github.com/tweag/ormolu/issues/941
fourmolu = overrideCabal (drv: {
libraryHaskellDepends = drv.libraryHaskellDepends ++ [ self.file-embed ];
}) (disableCabalFlag "fixity-th" super.fourmolu_0_10_0_0);
}) (disableCabalFlag "fixity-th" super.fourmolu_0_10_1_0);
# Apply workaround for Cabal 3.8 bug https://github.com/haskell/cabal/issues/8455
# by making `pkg-config --static` happy. Note: Cabal 3.9 is also affected, so
@@ -4975,6 +4975,7 @@ broken-packages:
- softfloat-hs
- solar
- solga
- som # test failure in job https://hydra.nixos.org/build/216744749 at 2023-04-20
- Sonnex
- sorted
- sorting
@@ -5254,6 +5255,7 @@ broken-packages:
- tasty-hedgehog-coverage
- tasty-json
- tasty-mgolden
- tasty-papi # test failure in job https://hydra.nixos.org/build/216756583 at 2023-04-20
- tasty-stats
- tasty-test-vector
- TastyTLT
@@ -5701,6 +5703,7 @@ broken-packages:
- vector-fftw
- vector-functorlazy
- vector-heterogenous
- vector-quicksort # dependency missing in job https://hydra.nixos.org/build/216753081 at 2023-04-20
- vector-random
- vector-read-instances
- vector-space-map
@@ -134,7 +134,7 @@ extra-packages:
- retrie < 1.2.0.0 # 2022-12-30: required for hls on ghc < 9.2
- ghc-tags == 1.5.* # 2023-02-18: preserve for ghc-lib == 9.2.*
- primitive == 0.7.4.0 # 2023-03-04: primitive 0.8 is not compatible with too many packages on ghc 9.4 as of now
- fourmolu == 0.10.0.0 # 2023-04-03: for hls-fourmolu-plugin 1.1.1.0
- fourmolu == 0.10.1.0 # 2023-04-18: for hls-fourmolu-plugin 1.1.1.0
package-maintainers:
abbradar:
@@ -1,4 +1,4 @@
# Stackage LTS 20.17
# Stackage LTS 20.18
# This file is auto-generated by
# maintainers/scripts/haskell/update-stackage.sh
default-package-overrides:
@@ -8,7 +8,7 @@ default-package-overrides:
- AC-Angle ==1.0
- acc ==0.2.0.1
- ace ==0.6
- acid-state ==0.16.1.1
- acid-state ==0.16.1.2
- action-permutations ==0.0.0.1
- active ==0.2.0.17
- ad ==4.5.4
@@ -43,7 +43,7 @@ default-package-overrides:
- al ==0.1.4.2
- alarmclock ==0.7.0.6
- alerts ==0.1.2.0
- alex ==3.2.7.1
- alex ==3.2.7.2
- alex-meta ==0.3.0.13
- algebra ==4.3.1
- algebraic-graphs ==0.6.1
@@ -446,8 +446,8 @@ default-package-overrides:
- convertible ==1.1.1.1
- cookie ==0.4.6
- copr-api ==0.1.0
- core-data ==0.3.9.0
- core-program ==0.6.5.0
- core-data ==0.3.9.1
- core-program ==0.6.5.1
- core-telemetry ==0.2.8.0
- core-text ==0.3.8.1
- countable ==1.2
@@ -554,7 +554,7 @@ default-package-overrides:
- dawg-ord ==0.5.1.2
- dbcleaner ==0.1.3
- DBFunctor ==0.1.2.1
- dbus ==1.2.27
- dbus ==1.2.28
- dbus-hslogger ==0.1.0.1
- debian ==4.0.4
- debian-build ==0.10.2.1
@@ -771,7 +771,7 @@ default-package-overrides:
- filecache ==0.4.1
- file-embed ==0.0.15.0
- file-embed-lzma ==0.0.1
- filelock ==0.1.1.5
- filelock ==0.1.1.6
- filemanip ==0.3.6.3
- file-modules ==0.1.2.4
- filepath-bytestring ==1.4.2.1.12
@@ -1047,7 +1047,7 @@ default-package-overrides:
- hasql-dynamic-statements ==0.3.1.2
- hasql-implicits ==0.1.1
- hasql-migration ==0.3.0
- hasql-notifications ==0.2.0.3
- hasql-notifications ==0.2.0.4
- hasql-optparse-applicative ==0.5
- hasql-pool ==0.8.0.7
- hasql-queue ==1.2.0.2
@@ -1301,7 +1301,7 @@ default-package-overrides:
- inbox ==0.2.0
- include-file ==0.1.0.4
- incremental ==0.3.1
- incremental-parser ==0.5.0.4
- incremental-parser ==0.5.0.5
- indents ==0.5.0.1
- indexed ==0.1.3
- indexed-containers ==0.1.0.2
@@ -1398,7 +1398,7 @@ default-package-overrides:
- keep-alive ==0.2.1.0
- keycode ==0.2.2
- keys ==3.12.3
- ki ==1.0.0.2
- ki ==1.0.1.0
- kind-apply ==0.3.2.1
- kind-generics ==0.4.1.4
- kind-generics-th ==0.2.2.3
@@ -1509,7 +1509,7 @@ default-package-overrides:
- lua ==2.2.1
- lua-arbitrary ==1.0.1.1
- lucid2 ==0.0.20221012
- lucid ==2.11.1
- lucid ==2.11.20230408
- lucid-cdn ==0.2.2.0
- lucid-extras ==0.2.2
- lukko ==0.1.1.3
@@ -1576,7 +1576,7 @@ default-package-overrides:
- microlens-mtl ==0.2.0.3
- microlens-platform ==0.4.2.1
- microlens-process ==0.2.0.2
- microlens-th ==0.4.3.11
- microlens-th ==0.4.3.12
- microspec ==0.2.1.3
- microstache ==1.0.2.3
- midair ==0.2.0.1
@@ -1652,15 +1652,15 @@ default-package-overrides:
- mono-traversable-instances ==0.1.1.0
- mono-traversable-keys ==0.2.0
- more-containers ==0.2.2.2
- morpheus-graphql ==0.27.0
- morpheus-graphql-app ==0.27.0
- morpheus-graphql-client ==0.27.0
- morpheus-graphql-code-gen ==0.27.0
- morpheus-graphql-code-gen-utils ==0.27.0
- morpheus-graphql-core ==0.27.0
- morpheus-graphql-server ==0.27.0
- morpheus-graphql-subscriptions ==0.27.0
- morpheus-graphql-tests ==0.27.0
- morpheus-graphql ==0.27.1
- morpheus-graphql-app ==0.27.1
- morpheus-graphql-client ==0.27.1
- morpheus-graphql-code-gen ==0.27.1
- morpheus-graphql-code-gen-utils ==0.27.1
- morpheus-graphql-core ==0.27.1
- morpheus-graphql-server ==0.27.1
- morpheus-graphql-subscriptions ==0.27.1
- morpheus-graphql-tests ==0.27.1
- moss ==0.2.0.1
- mountpoints ==1.0.2
- mpi-hs ==0.7.2.0
@@ -1939,7 +1939,7 @@ default-package-overrides:
- polysemy-fs ==0.1.0.0
- polysemy-kvstore ==0.1.3.0
- polysemy-methodology ==0.2.2.0
- polysemy-plugin ==0.4.4.0
- polysemy-plugin ==0.4.5.0
- polysemy-several ==0.1.1.0
- polysemy-webserver ==0.2.1.1
- polysemy-zoo ==0.8.1.0
@@ -2105,7 +2105,7 @@ default-package-overrides:
- reducers ==3.12.4
- refact ==0.3.0.2
- ref-fd ==0.5.0.1
- refined ==0.8
- refined ==0.8.1
- reflection ==2.1.7
- reform ==0.2.7.5
- reform-blaze ==0.2.4.4
@@ -2203,7 +2203,7 @@ default-package-overrides:
- sample-frame-np ==0.0.5
- sampling ==0.3.5
- sandi ==0.5
- sandwich ==0.1.3.0
- sandwich ==0.1.3.1
- sandwich-hedgehog ==0.1.1.0
- sandwich-quickcheck ==0.1.0.6
- sandwich-slack ==0.1.1.0
@@ -2413,7 +2413,7 @@ default-package-overrides:
- StateVar ==1.2.2
- stateWriter ==0.3.0
- static-text ==0.2.0.7
- statistics ==0.16.1.2
- statistics ==0.16.2.0
- status-notifier-item ==0.3.1.0
- stb-image-redux ==0.2.1.2
- step-function ==0.2.0.1
@@ -2442,7 +2442,7 @@ default-package-overrides:
- streaming-attoparsec ==1.0.0.1
- streaming-bytestring ==0.2.4
- streaming-cassava ==0.2.0.0
- streaming-commons ==0.2.2.5
- streaming-commons ==0.2.2.6
- streaming-wai ==0.1.1
- streamly ==0.8.1.1
- streams ==3.3.2
@@ -2708,7 +2708,7 @@ default-package-overrides:
- typed-process ==0.2.11.0
- typed-uuid ==0.2.0.0
- type-equality ==1
- type-errors ==0.2.0.1
- type-errors ==0.2.0.2
- type-fun ==0.1.3
- type-hint ==0.1
- type-level-integers ==0.0.1
@@ -2879,7 +2879,7 @@ default-package-overrides:
- wave ==0.2.0
- wcwidth ==0.0.2
- webby ==1.1.0
- webdriver ==0.10.0.0
- webdriver ==0.10.0.1
- webex-teams-api ==0.2.0.1
- webex-teams-conduit ==0.2.0.1
- webgear-core ==1.0.4
@@ -2905,7 +2905,7 @@ default-package-overrides:
- witherable ==0.4.2
- within ==0.2.0.1
- with-location ==0.1.0
- with-utf8 ==1.0.2.3
- with-utf8 ==1.0.2.4
- witness ==0.6.1
- wizards ==1.0.3
- wl-pprint ==1.2.1
@@ -2973,7 +2973,7 @@ default-package-overrides:
- yesod-auth ==1.6.11.1
- yesod-auth-basic ==0.1.0.3
- yesod-auth-hashdb ==1.7.1.7
- yesod-auth-oauth2 ==0.7.0.3
- yesod-auth-oauth2 ==0.7.1.0
- yesod-bin ==1.6.2.2
- yesod-core ==1.6.24.2
- yesod-eventsource ==1.6.0.1
@@ -810,11 +810,8 @@ dont-distribute-packages:
- bitcoin-api
- bitcoin-api-extra
- bitcoin-block
- bitcoin-compact-filters
- bitcoin-tx
- bitcoin-types
- bitcoind-regtest
- bitcoind-rpc
- bitfield
- bitly-cli
- bitmaps
@@ -1112,6 +1109,7 @@ dont-distribute-packages:
- cqrs-test
- cqrs-testkit
- crackNum
- crackNum_3_4
- craft
- craftwerk-cairo
- craftwerk-gtk
@@ -1279,6 +1277,7 @@ dont-distribute-packages:
- distribution-plot
- dixi
- dl-fedora
- dl-fedora_0_9_5
- dmenu-pkill
- dmenu-pmount
- dmenu-search
@@ -1544,9 +1543,6 @@ dont-distribute-packages:
- ftshell
- funbot
- funbot-git-hook
- funcons-lambda-cbv-mp
- funcons-simple
- funcons-tools
- function-combine
- functor
- functor-combo
@@ -1600,7 +1596,6 @@ dont-distribute-packages:
- geolite-csv
- getemx
- gf
- ghc-debug-brick
- ghc-imported-from
- ghc-instances
- ghc-mod
@@ -1083,11 +1083,11 @@ self: super: builtins.intersectAttrs super {
}) super.fourmolu;
# Test suite wants to run main executable
fourmolu_0_10_0_0 = overrideCabal (drv: {
fourmolu_0_10_1_0 = overrideCabal (drv: {
preCheck = drv.preCheck or "" + ''
export PATH="$PWD/dist/build/fourmolu:$PATH"
'';
}) super.fourmolu_0_10_0_0;
}) super.fourmolu_0_10_1_0;
# Test suite needs to execute 'disco' binary
disco = overrideCabal (drv: {
File diff suppressed because it is too large Load Diff
@@ -58,10 +58,13 @@ stdenv.mkDerivation rec {
buildPackages.libgphoto2;
in
''
mkdir -p $out/lib/udev/rules.d
mkdir -p $out/lib/udev/{rules.d,hwdb.d}
${executablePrefix}/lib/libgphoto2/print-camera-list \
udev-rules version 175 group camera \
>$out/lib/udev/rules.d/40-gphoto2.rules
udev-rules version 201 group camera \
>$out/lib/udev/rules.d/40-libgphoto2.rules
${executablePrefix}/lib/libgphoto2/print-camera-list \
hwdb version 201 group camera \
>$out/lib/udev/hwdb.d/20-gphoto.hwdb
'';
meta = {
@@ -1,7 +1,6 @@
{ lib
, stdenv
, fetchFromGitHub
, fetchpatch
, makeWrapper
, meson
, ninja
@@ -21,22 +20,15 @@
stdenv.mkDerivation rec {
pname = "xdg-desktop-portal-wlr";
version = "0.6.0";
version = "0.7.0";
src = fetchFromGitHub {
owner = "emersion";
repo = pname;
rev = "v${version}";
sha256 = "sha256-UztkfvMIbslPd/d262NZFb6WfESc9nBsSSH96BA4Aqw=";
sha256 = "sha256-EwBHkXFEPAEgVUGC/0e2Bae/rV5lec1ttfbJ5ce9cKw=";
};
# scdoc: mark as build-time dependency
# https://github.com/emersion/xdg-desktop-portal-wlr/pull/248
patches = [(fetchpatch {
url = "https://github.com/emersion/xdg-desktop-portal-wlr/commit/92ccd62428082ba855e359e83730c4370cd1aac7.patch";
hash = "sha256-mU1whfp7BoSylaS3y+YwfABImZFOeuItSXCon0C7u20=";
})];
strictDeps = true;
depsBuildBuild = [ pkg-config ];
nativeBuildInputs = [ meson ninja pkg-config scdoc wayland-scanner makeWrapper ];
+32 -7
View File
@@ -1,18 +1,43 @@
{ lib, stdenv, fetchurl, buildDunePackage, pkg-config, gsl, darwin, dune-configurator }:
{ lib, stdenv, fetchFromGitHub, fetchpatch, buildDunePackage, pkg-config, gsl, darwin, dune-configurator }:
buildDunePackage rec {
pname = "gsl";
version = "1.24.3";
useDune2 = true;
minimalOCamlVersion = "4.12";
minimumOCamlVersion = "4.08";
src = fetchurl {
url = "https://github.com/mmottl/gsl-ocaml/releases/download/${version}/gsl-${version}.tbz";
sha256 = "1mpzcgbrha2l8iikqbmn32668v2mnnsykxg5n5jgs0qnskn2nvrn";
src = fetchFromGitHub {
owner = "mmottl";
repo = "gsl-ocaml";
rev = version;
hash = "sha256-I+u7lFEredt8ZLiba8x904eTgSUdZq82/e82B+/GIlo=";
};
patches = [
# Switched to Dune lang 2.7
(fetchpatch {
url = "https://github.com/mmottl/gsl-ocaml/commit/be0f6933f16fea6d6fb2e39178816974be4c3724.patch";
sha256 = "sha256-G/4JT8XPYw+oNJEwJ9zRdUBwtNUHL+T8/htCb3qfuT8=";
})
# Fix dune rules
(fetchpatch {
url = "https://github.com/mmottl/gsl-ocaml/commit/0b38a22d9813de27eab5caafafeabd945f298b5e.patch";
sha256 = "sha256-S6OUDase2kR7V6fizaev5huqEAIM5QOkx3n18rj4y3w=";
})
# Updated opam file
(fetchpatch {
url = "https://github.com/mmottl/gsl-ocaml/commit/b749455b76501c9e3623e05d659565eab7292602.patch";
sha256 = "sha256-/GACjI3cRCApyGyk1kQp0rB/Hae8DIR9zs6q9KiS1ZQ=";
})
# Used new OCaml 4.12 C-macros
(fetchpatch {
url = "https://github.com/mmottl/gsl-ocaml/commit/cca79ea56a7ee83a4c67b432decdaef3de8c9d30.patch";
sha256 = "sha256-bsIKkvj9W8oAYSvP6ZfbqSgt5fSirc780O08WBhVRmI=";
})
];
duneVersion = "3";
nativeBuildInputs = [ pkg-config ];
buildInputs = [ dune-configurator gsl ];
propagatedBuildInputs = lib.optionals stdenv.isDarwin [ darwin.apple_sdk.frameworks.Accelerate ];
+3 -3
View File
@@ -2,16 +2,16 @@
buildGoModule rec {
pname = "xc";
version = "0.1.181";
version = "0.3.0";
src = fetchFromGitHub {
owner = "joerdav";
repo = pname;
rev = "v${version}";
sha256 = "sha256-C6qZdO6+n9BWm69y09kvnEBF45sB6bfOfmteNO2x68I=";
sha256 = "sha256-e/cJ1kVFUs2chOpqu2tHsK9MBhlMx9u6mIa5uUwvVg8=";
};
vendorHash = "sha256-cySflcTuAzbFZbtXmzZ98nfY8HUq1UedONTtKP4EICs=";
vendorHash = "sha256-hCdIO377LiXFKz0GfCmAADTPfoatk8YWzki7lVP3yLw=";
meta = with lib; {
homepage = "https://xcfile.dev/";
+19
View File
@@ -0,0 +1,19 @@
{ callPackage, openssl, fetchpatch, python3, enableNpm ? true }:
let
buildNodejs = callPackage ./nodejs.nix {
inherit openssl;
python = python3;
};
in
buildNodejs {
inherit enableNpm;
version = "20.0.0";
sha256 = "sha256-dFDnV5Vo99HLOYGFz85HLaKDeyqjbFliCyLOS5d7XLU=";
patches = [
./revert-arm64-pointer-auth.patch
./disable-darwin-v8-system-instrumentation-node19.patch
./bypass-darwin-xcrun-node16.patch
];
}
+7 -2
View File
@@ -17,6 +17,8 @@
, rustPlatform
, writeShellScriptBin
, yarn
, swift
, AVKit
, CoreAudio
}:
@@ -138,7 +140,7 @@ python3.pkgs.buildPythonApplication {
ninja
qt6.wrapQtAppsHook
rsync
];
] ++ lib.optional stdenv.isDarwin swift;
nativeCheckInputs = with python3.pkgs; [ pytest mock astroid ];
buildInputs = [
@@ -186,7 +188,10 @@ python3.pkgs.buildPythonApplication {
waitress
werkzeug
zipp
] ++ lib.optionals stdenv.isDarwin [ CoreAudio ];
] ++ lib.optionals stdenv.isDarwin [
AVKit
CoreAudio
];
# Activate optimizations
RELEASE = true;
+456 -455
View File
File diff suppressed because it is too large Load Diff
+11 -2
View File
@@ -3,22 +3,30 @@
, fetchFromGitea
, rustPlatform
, pkg-config
, git
, openssl
, Security
}:
rustPlatform.buildRustPackage rec {
pname = "fedigroups";
version = "0.4.4";
version = "0.4.5";
src = fetchFromGitea {
domain = "git.ondrovo.com";
owner = "MightyPork";
repo = "group-actor";
rev = "v${version}";
sha256 = "sha256-1WqIQp16bs+UB+NSEZn0JH6NOkuAx8iUfho4roA2B00=";
sha256 = "sha256-NMqoYUNN2ntye9mNC3KAAc0DBg+QY7+6/DASwHPexY0=";
forceFetchGit = true; # Archive generation is disabled on this gitea instance
leaveDotGit = true; # git command in build.rs
};
# The lockfile in the repo is not up to date
postPatch = ''
cp ${./Cargo.lock} Cargo.lock
'';
cargoLock = {
lockFile = ./Cargo.lock;
outputHashes = {
@@ -28,6 +36,7 @@ rustPlatform.buildRustPackage rec {
nativeBuildInputs = [
pkg-config
git
];
buildInputs = [
+3 -3
View File
@@ -2,16 +2,16 @@
rustPlatform.buildRustPackage rec {
pname = "virtiofsd";
version = "1.5.1";
version = "1.6.0";
src = fetchFromGitLab {
owner = "virtio-fs";
repo = "virtiofsd";
rev = "v${version}";
sha256 = "sha256-FQKZVkPD4DQKMduWW2g9vD1vvaFlU6QpNEj+g3yeE2Q=";
sha256 = "jxo6qQLIhwT6cqhYWx+5GEnuS9E7O2u82QrzxabjcOs=";
};
cargoHash = "sha256-scKbu69lrEfUpErs6gZyZOGb3OwCzDThbs6O0ZtJX/8=";
cargoHash = "sha256-1wDlYQXRJSkXyQU7H+mQWtsLSpX7i7SdmFYLjyRWfx8=";
LIBCAPNG_LIB_PATH = "${lib.getLib libcap_ng}/lib";
LIBCAPNG_LINK_TYPE =
+1 -1
View File
@@ -31,7 +31,7 @@ index d5c1c8bb10..88c77e8142 100755
- log.error("Error: cannot launch ldconfig -p to locate libfakeXinerama:")
- log.error(" %s", e)
- return find_lib("libfakeXinerama.so.1")
+ return "@libfakeXinerama@/lib/libfakeXinerama.so.1"
+ return "@libfakeXinerama@/lib/libfakeXinerama.so.1.0"
current_xinerama_config = None
+8 -4
View File
@@ -5,18 +5,22 @@
}:
buildGoModule rec {
pname = "chatgpt";
version = "1.1.1";
version = "1.2.0";
src = fetchFromGitHub {
owner = "j178";
repo = pname;
rev = "v${version}";
hash = "sha256-sGcVtppw1q05ICcYyRcF2gpFCzbBftaxAM4X4/k48as=";
hash = "sha256-5tEtkEDQxWFVWyK7uipm20yccCPkCDaMLzS25MmGRbE=";
};
vendorHash = "sha256-lD9G8N1BpWda2FAi80qzvdiQXoJIWl529THYMfQmXtg=";
vendorHash = "sha256-q1+4KExXth7+UC8h0+M6ChnW7T1j468umi7Q1jwnzgo=";
subPackages = [ "." ];
subPackages = [ "cmd" ];
postInstall = ''
mv $out/bin/cmd $out/bin/$pname
'';
meta = with lib; {
description = "Interactive CLI for ChatGPT";
+2 -2
View File
@@ -2,11 +2,11 @@
stdenvNoCC.mkDerivation rec {
pname = "panoply";
version = "5.2.3";
version = "5.2.5";
src = fetchurl {
url = "https://www.giss.nasa.gov/tools/panoply/download/PanoplyJ-${version}.tgz";
sha256 = "sha256-bbePMbI1YF0YvakO5vlURdE7UG3pLiuByImYvDq9cRY=";
sha256 = "sha256-FzLL4FCAT9iZ6YFlzc+D5LPg89L/s9dIum/DoFe61Es=";
};
nativeBuildInputs = [ makeWrapper ];
+3 -3
View File
@@ -7,16 +7,16 @@
buildGoModule rec {
pname = "tbls";
version = "1.64.0";
version = "1.65.3";
src = fetchFromGitHub {
owner = "k1LoW";
repo = "tbls";
rev = "v${version}";
hash = "sha256-XHHoPaT+qo2UBfYvslFhhSmo7a9YsBX3Ay+piOBVTxc=";
hash = "sha256-/RyDv256qbi1CMHmB2LZxMBqOM81nA3r5N8jRrww/mQ=";
};
vendorHash = "sha256-YrDQSySBplYgakgvb6BwK1AK6h0Usy8MvCndHSSYrlQ=";
vendorHash = "sha256-qT8YhNZ+9n9+VduW8a/tr74w3OyWue7a51667Q9dMCg=";
CGO_CFLAGS = [ "-Wno-format-security" ];
+2 -2
View File
@@ -2,7 +2,7 @@
buildGoModule rec {
pname = "vale";
version = "2.24.2";
version = "2.24.3";
subPackages = [ "cmd/vale" ];
outputs = [ "out" "data" ];
@@ -11,7 +11,7 @@ buildGoModule rec {
owner = "errata-ai";
repo = "vale";
rev = "v${version}";
hash = "sha256-d8AXKUlIbIuzQMj963uaArt+DakIi08aXtEFVYbm/oE=";
hash = "sha256-8sJdt7lM/Ut/mtCoN2QZjtqh1fiWbI9taiLlnnx66PE=";
};
vendorHash = "sha256-ZgBt4BgZWViNqYCuqb/Wt1zVjFM9h1UsmsYox7kMJ1A=";
+30
View File
@@ -0,0 +1,30 @@
{ lib
, rustPlatform
, fetchFromGitHub
}:
rustPlatform.buildRustPackage rec {
pname = "zet";
version = "1.0.0";
src = fetchFromGitHub {
owner = "yarrow";
repo = "zet";
rev = "v${version}";
hash = "sha256-IjM+jSb+kdML0zZGuz9+9wrFzQCujn/bg9/vaTzMtUs=";
};
cargoHash = "sha256-kHIOsSR7ZxBzp4dtm2hbi8ddtlQ86x5EASk5HFmnhFo=";
# tests fail with `--release`
# https://github.com/yarrow/zet/pull/7
checkType = "debug";
meta = with lib; {
description = "CLI utility to find the union, intersection, set difference, etc of files considered as sets of lines";
homepage = "https://github.com/yarrow/zet";
changelog = "https://github.com/yarrow/zet/blob/${src.rev}/CHANGELOG.md";
license = with licenses; [ asl20 mit ];
maintainers = with maintainers; [ figsoda ];
};
}
+9 -3
View File
@@ -9401,9 +9401,13 @@ with pkgs;
nodejs-slim-19_x = callPackage ../development/web/nodejs/v19.nix {
enableNpm = false;
};
nodejs_20 = callPackage ../development/web/nodejs/v20.nix { };
nodejs-slim_20 = callPackage ../development/web/nodejs/v20.nix {
enableNpm = false;
};
# Update this when adding the newest nodejs major version!
nodejs_latest = nodejs-19_x;
nodejs-slim_latest = nodejs-slim-19_x;
nodejs_latest = nodejs_20;
nodejs-slim_latest = nodejs-slim_20;
buildNpmPackage = callPackage ../build-support/node/build-npm-package { };
@@ -14037,6 +14041,8 @@ with pkgs;
zerofree = callPackage ../tools/filesystems/zerofree { };
zet = callPackage ../tools/text/zet { };
zfp = callPackage ../tools/compression/zfp { };
zfs-autobackup = callPackage ../tools/backup/zfs-autobackup { };
@@ -35659,7 +35665,7 @@ with pkgs;
angband = callPackage ../games/angband { };
anki = callPackage ../games/anki {
inherit (darwin.apple_sdk.frameworks) CoreAudio;
inherit (darwin.apple_sdk.frameworks) AVKit CoreAudio;
};
anki-bin = callPackage ../games/anki/bin.nix { };