diff --git a/maintainers/maintainer-list.nix b/maintainers/maintainer-list.nix index 14675f3e23bc..47ef2cc1f6ce 100644 --- a/maintainers/maintainer-list.nix +++ b/maintainers/maintainer-list.nix @@ -2460,6 +2460,12 @@ githubId = 7432848; name = "Daniel Albert"; }; + eskytthe = { + email = "eskytthe@gmail.com"; + github = "eskytthe"; + githubId = 2544204; + name = "Erik Skytthe"; + }; Esteth = { email = "adam.copp@gmail.com"; name = "Adam Copp"; @@ -8909,6 +8915,12 @@ githubId = 474343; name = "Xavier Zwirtz"; }; + ymarkus = { + name = "Yannick Markus"; + email = "nixpkgs@ymarkus.dev"; + github = "ymarkus"; + githubId = 62380378; + }; ymeister = { name = "Yuri Meister"; email = "47071325+ymeister@users.noreply.github.com"; diff --git a/nixos/modules/config/fonts/fontconfig.nix b/nixos/modules/config/fonts/fontconfig.nix index 6ac64b0ec9c6..ac2a024eaa89 100644 --- a/nixos/modules/config/fonts/fontconfig.nix +++ b/nixos/modules/config/fonts/fontconfig.nix @@ -278,7 +278,14 @@ in (mkRemovedOptionModule [ "fonts" "fontconfig" "hinting" "style" ] "") (mkRemovedOptionModule [ "fonts" "fontconfig" "forceAutohint" ] "") (mkRemovedOptionModule [ "fonts" "fontconfig" "renderMonoTTFAsBitmap" ] "") - ]; + ] ++ lib.forEach [ "enable" "substitutions" "preset" ] + (opt: lib.mkRemovedOptionModule [ "fonts" "fontconfig" "ultimate" "${opt}" ] '' + The fonts.fontconfig.ultimate module and configuration is obsolete. + The repository has since been archived and activity has ceased. + https://github.com/bohoomil/fontconfig-ultimate/issues/171. + No action should be needed for font configuration, as the fonts.fontconfig + module is already used by default. + ''); options = { diff --git a/nixos/modules/programs/hamster.nix b/nixos/modules/programs/hamster.nix index ddf26a22fb53..b2f4a82b260e 100644 --- a/nixos/modules/programs/hamster.nix +++ b/nixos/modules/programs/hamster.nix @@ -3,7 +3,7 @@ with lib; { - meta.maintainers = maintainers.fabianhauser; + meta.maintainers = pkgs.hamster.meta.maintainers; options.programs.hamster.enable = mkEnableOption "Whether to enable hamster time tracking."; diff --git a/nixos/modules/services/continuous-integration/buildbot/master.nix b/nixos/modules/services/continuous-integration/buildbot/master.nix index 0185f490b0c2..e1950b91382b 100644 --- a/nixos/modules/services/continuous-integration/buildbot/master.nix +++ b/nixos/modules/services/continuous-integration/buildbot/master.nix @@ -25,7 +25,7 @@ let change_source = [ ${concatStringsSep "," cfg.changeSource} ], schedulers = [ ${concatStringsSep "," cfg.schedulers} ], builders = [ ${concatStringsSep "," cfg.builders} ], - status = [ ${concatStringsSep "," cfg.status} ], + services = [ ${concatStringsSep "," cfg.reporters} ], ) for step in [ ${concatStringsSep "," cfg.factorySteps} ]: factory.addStep(step) @@ -119,10 +119,10 @@ in { default = [ "worker.Worker('example-worker', 'pass')" ]; }; - status = mkOption { + reporters = mkOption { default = []; type = types.listOf types.str; - description = "List of status notification endpoints."; + description = "List of reporter objects used to present build status to various users."; }; user = mkOption { @@ -276,6 +276,10 @@ in { imports = [ (mkRenamedOptionModule [ "services" "buildbot-master" "bpPort" ] [ "services" "buildbot-master" "pbPort" ]) + (mkRemovedOptionModule [ "services" "buildbot-master" "status" ] '' + Since Buildbot 0.9.0, status targets are deprecated and ignored. + Review your configuration and migrate to reporters (available at services.buildbot-master.reporters). + '') ]; meta.maintainers = with lib.maintainers; [ nand0p mic92 ]; diff --git a/nixos/modules/services/databases/openldap.nix b/nixos/modules/services/databases/openldap.nix index 8c2851c37ac2..9b4d9a98b745 100644 --- a/nixos/modules/services/databases/openldap.nix +++ b/nixos/modules/services/databases/openldap.nix @@ -232,7 +232,7 @@ in }; meta = { - maintainers = lib.maintainers.mic92; + maintainers = [ lib.maintainers.mic92 ]; }; diff --git a/nixos/modules/services/hardware/undervolt.nix b/nixos/modules/services/hardware/undervolt.nix index e5ef0601de3c..da627af73bc6 100644 --- a/nixos/modules/services/hardware/undervolt.nix +++ b/nixos/modules/services/hardware/undervolt.nix @@ -1,18 +1,32 @@ { config, pkgs, lib, ... }: with lib; - let cfg = config.services.undervolt; -in { + cliArgs = lib.cli.toGNUCommandLineShell {} { + inherit (cfg) + verbose + temp + ; + # `core` and `cache` are both intentionally set to `cfg.coreOffset` as according to the undervolt docs: + # + # Core or Cache offsets have no effect. It is not possible to set different offsets for + # CPU Core and Cache. The CPU will take the smaller of the two offsets, and apply that to + # both CPU and Cache. A warning message will be displayed if you attempt to set different offsets. + core = cfg.coreOffset; + cache = cfg.coreOffset; + gpu = cfg.gpuOffset; + uncore = cfg.uncoreOffset; + analogio = cfg.analogioOffset; + + temp-bat = cfg.tempBat; + temp-ac = cfg.tempAc; + }; +in +{ options.services.undervolt = { - enable = mkOption { - type = types.bool; - default = false; - description = '' - Whether to undervolt intel cpus. - ''; - }; + enable = mkEnableOption + "Intel CPU undervolting service (WARNING: may permanently damage your hardware!)"; verbose = mkOption { type = types.bool; @@ -32,58 +46,58 @@ in { }; coreOffset = mkOption { - type = types.nullOr types.str; + type = types.nullOr types.int; default = null; description = '' - The amount of voltage to offset the CPU cores by. Accepts a floating point number. + The amount of voltage in mV to offset the CPU cores by. ''; }; gpuOffset = mkOption { - type = types.nullOr types.str; + type = types.nullOr types.int; default = null; description = '' - The amount of voltage to offset the GPU by. Accepts a floating point number. + The amount of voltage in mV to offset the GPU by. ''; }; uncoreOffset = mkOption { - type = types.nullOr types.str; + type = types.nullOr types.int; default = null; description = '' - The amount of voltage to offset uncore by. Accepts a floating point number. + The amount of voltage in mV to offset uncore by. ''; }; analogioOffset = mkOption { - type = types.nullOr types.str; + type = types.nullOr types.int; default = null; description = '' - The amount of voltage to offset analogio by. Accepts a floating point number. + The amount of voltage in mV to offset analogio by. ''; }; temp = mkOption { - type = types.nullOr types.str; + type = types.nullOr types.int; default = null; description = '' - The temperature target. Accepts a floating point number. + The temperature target in Celsius degrees. ''; }; tempAc = mkOption { - type = types.nullOr types.str; + type = types.nullOr types.int; default = null; description = '' - The temperature target on AC power. Accepts a floating point number. + The temperature target on AC power in Celsius degrees. ''; }; tempBat = mkOption { - type = types.nullOr types.str; + type = types.nullOr types.int; default = null; description = '' - The temperature target on battery power. Accepts a floating point number. + The temperature target on battery power in Celsius degrees. ''; }; }; @@ -100,24 +114,7 @@ in { serviceConfig = { Type = "oneshot"; Restart = "no"; - - # `core` and `cache` are both intentionally set to `cfg.coreOffset` as according to the undervolt docs: - # - # Core or Cache offsets have no effect. It is not possible to set different offsets for - # CPU Core and Cache. The CPU will take the smaller of the two offsets, and apply that to - # both CPU and Cache. A warning message will be displayed if you attempt to set different offsets. - ExecStart = '' - ${pkgs.undervolt}/bin/undervolt \ - ${optionalString cfg.verbose "--verbose"} \ - ${optionalString (cfg.coreOffset != null) "--core ${cfg.coreOffset}"} \ - ${optionalString (cfg.coreOffset != null) "--cache ${cfg.coreOffset}"} \ - ${optionalString (cfg.gpuOffset != null) "--gpu ${cfg.gpuOffset}"} \ - ${optionalString (cfg.uncoreOffset != null) "--uncore ${cfg.uncoreOffset}"} \ - ${optionalString (cfg.analogioOffset != null) "--analogio ${cfg.analogioOffset}"} \ - ${optionalString (cfg.temp != null) "--temp ${cfg.temp}"} \ - ${optionalString (cfg.tempAc != null) "--temp-ac ${cfg.tempAc}"} \ - ${optionalString (cfg.tempBat != null) "--temp-bat ${cfg.tempBat}"} - ''; + ExecStart = "${pkgs.undervolt}/bin/undervolt ${cliArgs}"; }; }; diff --git a/nixos/modules/services/mail/mailman.nix b/nixos/modules/services/mail/mailman.nix index f5e78b182933..5c61cfbebf6c 100644 --- a/nixos/modules/services/mail/mailman.nix +++ b/nixos/modules/services/mail/mailman.nix @@ -6,42 +6,46 @@ let cfg = config.services.mailman; + pythonEnv = pkgs.python3.withPackages (ps: + [ps.mailman ps.mailman-web] + ++ lib.optional cfg.hyperkitty.enable ps.mailman-hyperkitty + ++ cfg.extraPythonPackages); + # This deliberately doesn't use recursiveUpdate so users can # override the defaults. - settings = { + webSettings = { DEFAULT_FROM_EMAIL = cfg.siteOwner; SERVER_EMAIL = cfg.siteOwner; ALLOWED_HOSTS = [ "localhost" "127.0.0.1" ] ++ cfg.webHosts; COMPRESS_OFFLINE = true; - STATIC_ROOT = "/var/lib/mailman-web/static"; + STATIC_ROOT = "/var/lib/mailman-web-static"; MEDIA_ROOT = "/var/lib/mailman-web/media"; + LOGGING = { + version = 1; + disable_existing_loggers = true; + handlers.console.class = "logging.StreamHandler"; + loggers.django = { + handlers = [ "console" ]; + level = "INFO"; + }; + }; + HAYSTACK_CONNECTIONS.default = { + ENGINE = "haystack.backends.whoosh_backend.WhooshEngine"; + PATH = "/var/lib/mailman-web/fulltext-index"; + }; } // cfg.webSettings; - settingsJSON = pkgs.writeText "settings.json" (builtins.toJSON settings); + webSettingsJSON = pkgs.writeText "settings.json" (builtins.toJSON webSettings); - mailmanCfg = '' - [mailman] - site_owner: ${cfg.siteOwner} - layout: fhs - - [paths.fhs] - bin_dir: ${pkgs.python3Packages.mailman}/bin - var_dir: /var/lib/mailman - queue_dir: $var_dir/queue - template_dir: $var_dir/templates - log_dir: $var_dir/log - lock_dir: $var_dir/lock - etc_dir: /etc - ext_dir: $etc_dir/mailman.d - pid_file: /run/mailman/master.pid - '' + optionalString cfg.hyperkitty.enable '' - - [archiver.hyperkitty] - class: mailman_hyperkitty.Archiver - enable: yes - configuration: /var/lib/mailman/mailman-hyperkitty.cfg + # TODO: Should this be RFC42-ised so that users can set additional options without modifying the module? + mtaConfig = pkgs.writeText "mailman-postfix.cfg" '' + [postfix] + postmap_command: ${pkgs.postfix}/bin/postmap + transport_file_type: hash ''; + mailmanCfg = lib.generators.toINI {} cfg.settings; + mailmanHyperkittyCfg = pkgs.writeText "mailman-hyperkitty.cfg" '' [general] # This is your HyperKitty installation, preferably on the localhost. This @@ -84,7 +88,7 @@ in { type = types.package; default = pkgs.mailman; defaultText = "pkgs.mailman"; - example = "pkgs.mailman.override { archivers = []; }"; + example = literalExample "pkgs.mailman.override { archivers = []; }"; description = "Mailman package to use"; }; @@ -98,18 +102,6 @@ in { ''; }; - webRoot = mkOption { - type = types.path; - default = "${pkgs.mailman-web}/${pkgs.python3.sitePackages}"; - defaultText = "\${pkgs.mailman-web}/\${pkgs.python3.sitePackages}"; - description = '' - The web root for the Hyperkity + Postorius apps provided by Mailman. - This variable can be set, of course, but it mainly exists so that site - admins can refer to it in their own hand-written web server - configuration files. - ''; - }; - webHosts = mkOption { type = types.listOf types.str; default = []; @@ -124,7 +116,7 @@ in { webUser = mkOption { type = types.str; - default = config.services.httpd.user; + default = "mailman-web"; description = '' User to run mailman-web as ''; @@ -138,6 +130,22 @@ in { ''; }; + serve = { + enable = mkEnableOption "Automatic nginx and uwsgi setup for mailman-web"; + }; + + extraPythonPackages = mkOption { + description = "Packages to add to the python environment used by mailman and mailman-web"; + type = types.listOf types.package; + default = []; + }; + + settings = mkOption { + description = "Settings for mailman.cfg"; + type = types.attrsOf (types.attrsOf types.str); + default = {}; + }; + hyperkitty = { enable = mkEnableOption "the Hyperkitty archiver for Mailman"; @@ -158,6 +166,35 @@ in { config = mkIf cfg.enable { + services.mailman.settings = { + mailman.site_owner = lib.mkDefault cfg.siteOwner; + mailman.layout = "fhs"; + + "paths.fhs" = { + bin_dir = "${pkgs.python3Packages.mailman}/bin"; + var_dir = "/var/lib/mailman"; + queue_dir = "$var_dir/queue"; + template_dir = "$var_dir/templates"; + log_dir = "/var/log/mailman"; + lock_dir = "$var_dir/lock"; + etc_dir = "/etc"; + ext_dir = "$etc_dir/mailman.d"; + pid_file = "/run/mailman/master.pid"; + }; + + mta.configuration = lib.mkDefault "${mtaConfig}"; + + "archiver.hyperkitty" = lib.mkIf cfg.hyperkitty.enable { + class = "mailman_hyperkitty.Archiver"; + enable = "yes"; + configuration = "/var/lib/mailman/mailman-hyperkitty.cfg"; + }; + } // (let + loggerNames = ["root" "archiver" "bounce" "config" "database" "debug" "error" "fromusenet" "http" "locks" "mischief" "plugins" "runner" "smtp"]; + loggerSectionNames = map (n: "logging.${n}") loggerNames; + in lib.genAttrs loggerSectionNames(name: { handler = "stderr"; }) + ); + assertions = let inherit (config.services) postfix; @@ -183,7 +220,17 @@ in { (requirePostfixHash [ "config" "local_recipient_maps" ] "postfix_lmtp") ]; - users.users.mailman = { description = "GNU Mailman"; isSystemUser = true; }; + users.users.mailman = { + description = "GNU Mailman"; + isSystemUser = true; + group = "mailman"; + }; + users.users.mailman-web = lib.mkIf (cfg.webUser == "mailman-web") { + description = "GNU Mailman web interface"; + isSystemUser = true; + group = "mailman"; + }; + users.groups.mailman = {}; environment.etc."mailman.cfg".text = mailmanCfg; @@ -198,14 +245,35 @@ in { import json - with open('${settingsJSON}') as f: + with open('${webSettingsJSON}') as f: globals().update(json.load(f)) with open('/var/lib/mailman-web/settings_local.json') as f: globals().update(json.load(f)) ''; - environment.systemPackages = [ cfg.package ] ++ (with pkgs; [ mailman-web ]); + services.nginx = mkIf cfg.serve.enable { + enable = mkDefault true; + virtualHosts."${lib.head cfg.webHosts}" = { + serverAliases = cfg.webHosts; + locations = { + "/".extraConfig = "uwsgi_pass unix:/run/mailman-web.socket;"; + "/static/".alias = webSettings.STATIC_ROOT + "/"; + }; + }; + }; + + environment.systemPackages = [ (pkgs.buildEnv { + name = "mailman-tools"; + # We don't want to pollute the system PATH with a python + # interpreter etc. so let's pick only the stuff we actually + # want from pythonEnv + pathsToLink = ["/bin"]; + paths = [pythonEnv]; + postBuild = '' + find $out/bin/ -mindepth 1 -not -name "mailman*" -delete + ''; + }) ]; services.postfix = { recipientDelimiter = "+"; # bake recipient addresses in mail envelopes via VERP @@ -214,181 +282,156 @@ in { }; }; - systemd.services.mailman = { - description = "GNU Mailman Master Process"; - after = [ "network.target" ]; - restartTriggers = [ config.environment.etc."mailman.cfg".source ]; - wantedBy = [ "multi-user.target" ]; - serviceConfig = { - ExecStart = "${cfg.package}/bin/mailman start"; - ExecStop = "${cfg.package}/bin/mailman stop"; - User = "mailman"; - Type = "forking"; - RuntimeDirectory = "mailman"; - PIDFile = "/run/mailman/master.pid"; - }; + systemd.sockets.mailman-uwsgi = lib.mkIf cfg.serve.enable { + wantedBy = ["sockets.target"]; + before = ["nginx.service"]; + socketConfig.ListenStream = "/run/mailman-web.socket"; }; - - systemd.services.mailman-settings = { - description = "Generate settings files (including secrets) for Mailman"; - before = [ "mailman.service" "mailman-web.service" "hyperkitty.service" "httpd.service" "uwsgi.service" ]; - requiredBy = [ "mailman.service" "mailman-web.service" "hyperkitty.service" "httpd.service" "uwsgi.service" ]; - path = with pkgs; [ jq ]; - script = '' - mailmanDir=/var/lib/mailman - mailmanWebDir=/var/lib/mailman-web - - mailmanCfg=$mailmanDir/mailman-hyperkitty.cfg - mailmanWebCfg=$mailmanWebDir/settings_local.json - - install -m 0700 -o mailman -g nogroup -d $mailmanDir - install -m 0700 -o ${cfg.webUser} -g nogroup -d $mailmanWebDir - - if [ ! -e $mailmanWebCfg ]; then - hyperkittyApiKey=$(tr -dc A-Za-z0-9 < /dev/urandom | head -c 64) - secretKey=$(tr -dc A-Za-z0-9 < /dev/urandom | head -c 64) - - mailmanWebCfgTmp=$(mktemp) - jq -n '.MAILMAN_ARCHIVER_KEY=$archiver_key | .SECRET_KEY=$secret_key' \ - --arg archiver_key "$hyperkittyApiKey" \ - --arg secret_key "$secretKey" \ - >"$mailmanWebCfgTmp" - chown ${cfg.webUser} "$mailmanWebCfgTmp" - mv -n "$mailmanWebCfgTmp" $mailmanWebCfg - fi - - hyperkittyApiKey="$(jq -r .MAILMAN_ARCHIVER_KEY $mailmanWebCfg)" - mailmanCfgTmp=$(mktemp) - sed "s/@API_KEY@/$hyperkittyApiKey/g" ${mailmanHyperkittyCfg} >"$mailmanCfgTmp" - chown mailman "$mailmanCfgTmp" - mv "$mailmanCfgTmp" $mailmanCfg - ''; - serviceConfig = { - Type = "oneshot"; - # RemainAfterExit makes restartIfChanged work for this service, so - # downstream services will get updated automatically when things like - # services.mailman.hyperkitty.baseUrl change. Otherwise users have to - # restart things manually, which is confusing. - RemainAfterExit = "yes"; + systemd.services = { + mailman = { + description = "GNU Mailman Master Process"; + after = [ "network.target" ]; + restartTriggers = [ config.environment.etc."mailman.cfg".source ]; + wantedBy = [ "multi-user.target" ]; + serviceConfig = { + ExecStart = "${pythonEnv}/bin/mailman start"; + ExecStop = "${pythonEnv}/bin/mailman stop"; + User = "mailman"; + Group = "mailman"; + Type = "forking"; + RuntimeDirectory = "mailman"; + LogsDirectory = "mailman"; + PIDFile = "/run/mailman/master.pid"; + }; }; - }; - systemd.services.mailman-web = { - description = "Init Postorius DB"; - before = [ "httpd.service" "uwsgi.service" ]; - requiredBy = [ "httpd.service" "uwsgi.service" ]; - restartTriggers = [ config.environment.etc."mailman3/settings.py".source ]; - script = '' - ${pkgs.mailman-web}/bin/mailman-web migrate - rm -rf static - ${pkgs.mailman-web}/bin/mailman-web collectstatic - ${pkgs.mailman-web}/bin/mailman-web compress - ''; - serviceConfig = { - User = cfg.webUser; - Type = "oneshot"; - # Similar to mailman-settings.service, this makes restartTriggers work - # properly for this service. - RemainAfterExit = "yes"; - WorkingDirectory = "/var/lib/mailman-web"; + mailman-settings = { + description = "Generate settings files (including secrets) for Mailman"; + before = [ "mailman.service" "mailman-web-setup.service" "mailman-uwsgi.service" "hyperkitty.service" ]; + requiredBy = [ "mailman.service" "mailman-web-setup.service" "mailman-uwsgi.service" "hyperkitty.service" ]; + path = with pkgs; [ jq ]; + script = '' + mailmanDir=/var/lib/mailman + mailmanWebDir=/var/lib/mailman-web + + mailmanCfg=$mailmanDir/mailman-hyperkitty.cfg + mailmanWebCfg=$mailmanWebDir/settings_local.json + + install -m 0775 -o mailman -g mailman -d /var/lib/mailman-web-static + install -m 0770 -o mailman -g mailman -d $mailmanDir + install -m 0770 -o ${cfg.webUser} -g mailman -d $mailmanWebDir + + if [ ! -e $mailmanWebCfg ]; then + hyperkittyApiKey=$(tr -dc A-Za-z0-9 < /dev/urandom | head -c 64) + secretKey=$(tr -dc A-Za-z0-9 < /dev/urandom | head -c 64) + + mailmanWebCfgTmp=$(mktemp) + jq -n '.MAILMAN_ARCHIVER_KEY=$archiver_key | .SECRET_KEY=$secret_key' \ + --arg archiver_key "$hyperkittyApiKey" \ + --arg secret_key "$secretKey" \ + >"$mailmanWebCfgTmp" + chown root:mailman "$mailmanWebCfgTmp" + chmod 440 "$mailmanWebCfgTmp" + mv -n "$mailmanWebCfgTmp" "$mailmanWebCfg" + fi + + hyperkittyApiKey="$(jq -r .MAILMAN_ARCHIVER_KEY "$mailmanWebCfg")" + mailmanCfgTmp=$(mktemp) + sed "s/@API_KEY@/$hyperkittyApiKey/g" ${mailmanHyperkittyCfg} >"$mailmanCfgTmp" + chown mailman:mailman "$mailmanCfgTmp" + mv "$mailmanCfgTmp" "$mailmanCfg" + ''; }; - }; - systemd.services.mailman-daily = { - description = "Trigger daily Mailman events"; - startAt = "daily"; - restartTriggers = [ config.environment.etc."mailman.cfg".source ]; - serviceConfig = { - ExecStart = "${cfg.package}/bin/mailman digests --send"; - User = "mailman"; + mailman-web-setup = { + description = "Prepare mailman-web files and database"; + before = [ "uwsgi.service" "mailman-uwsgi.service" ]; + requiredBy = [ "mailman-uwsgi.service" ]; + restartTriggers = [ config.environment.etc."mailman3/settings.py".source ]; + script = '' + [[ -e "${webSettings.STATIC_ROOT}" ]] && find "${webSettings.STATIC_ROOT}/" -mindepth 1 -delete + ${pythonEnv}/bin/mailman-web migrate + ${pythonEnv}/bin/mailman-web collectstatic + ${pythonEnv}/bin/mailman-web compress + ''; + serviceConfig = { + User = cfg.webUser; + Group = "mailman"; + Type = "oneshot"; + WorkingDirectory = "/var/lib/mailman-web"; + }; }; - }; - systemd.services.hyperkitty = { - inherit (cfg.hyperkitty) enable; - description = "GNU Hyperkitty QCluster Process"; - after = [ "network.target" ]; - restartTriggers = [ config.environment.etc."mailman3/settings.py".source ]; - wantedBy = [ "mailman.service" "multi-user.target" ]; - serviceConfig = { - ExecStart = "${pkgs.mailman-web}/bin/mailman-web qcluster"; - User = cfg.webUser; - WorkingDirectory = "/var/lib/mailman-web"; + mailman-uwsgi = mkIf cfg.serve.enable (let + uwsgiConfig.uwsgi = { + type = "normal"; + plugins = ["python3"]; + home = pythonEnv; + module = "mailman_web.wsgi"; + }; + uwsgiConfigFile = pkgs.writeText "uwsgi-mailman.json" (builtins.toJSON uwsgiConfig); + in { + wantedBy = ["multi-user.target"]; + requires = ["mailman-uwsgi.socket" "mailman-web-setup.service"]; + restartTriggers = [ config.environment.etc."mailman3/settings.py".source ]; + serviceConfig = { + # Since the mailman-web settings.py obstinately creates a logs + # dir in the cwd, change to the (writable) runtime directory before + # starting uwsgi. + ExecStart = "${pkgs.coreutils}/bin/env -C $RUNTIME_DIRECTORY ${pkgs.uwsgi.override { plugins = ["python3"]; }}/bin/uwsgi --json ${uwsgiConfigFile}"; + User = cfg.webUser; + Group = "mailman"; + RuntimeDirectory = "mailman-uwsgi"; + }; + }); + + mailman-daily = { + description = "Trigger daily Mailman events"; + startAt = "daily"; + restartTriggers = [ config.environment.etc."mailman.cfg".source ]; + serviceConfig = { + ExecStart = "${pythonEnv}/bin/mailman digests --send"; + User = "mailman"; + Group = "mailman"; + }; }; - }; - systemd.services.hyperkitty-minutely = { - inherit (cfg.hyperkitty) enable; - description = "Trigger minutely Hyperkitty events"; - startAt = "minutely"; - restartTriggers = [ config.environment.etc."mailman3/settings.py".source ]; - serviceConfig = { - ExecStart = "${pkgs.mailman-web}/bin/mailman-web runjobs minutely"; - User = cfg.webUser; - WorkingDirectory = "/var/lib/mailman-web"; + hyperkitty = lib.mkIf cfg.hyperkitty.enable { + description = "GNU Hyperkitty QCluster Process"; + after = [ "network.target" ]; + restartTriggers = [ config.environment.etc."mailman3/settings.py".source ]; + wantedBy = [ "mailman.service" "multi-user.target" ]; + serviceConfig = { + ExecStart = "${pythonEnv}/bin/mailman-web qcluster"; + User = cfg.webUser; + Group = "mailman"; + WorkingDirectory = "/var/lib/mailman-web"; + }; }; - }; - - systemd.services.hyperkitty-quarter-hourly = { - inherit (cfg.hyperkitty) enable; - description = "Trigger quarter-hourly Hyperkitty events"; - startAt = "*:00/15"; - restartTriggers = [ config.environment.etc."mailman3/settings.py".source ]; - serviceConfig = { - ExecStart = "${pkgs.mailman-web}/bin/mailman-web runjobs quarter_hourly"; - User = cfg.webUser; - WorkingDirectory = "/var/lib/mailman-web"; - }; - }; - - systemd.services.hyperkitty-hourly = { - inherit (cfg.hyperkitty) enable; - description = "Trigger hourly Hyperkitty events"; - startAt = "hourly"; - restartTriggers = [ config.environment.etc."mailman3/settings.py".source ]; - serviceConfig = { - ExecStart = "${pkgs.mailman-web}/bin/mailman-web runjobs hourly"; - User = cfg.webUser; - WorkingDirectory = "/var/lib/mailman-web"; - }; - }; - - systemd.services.hyperkitty-daily = { - inherit (cfg.hyperkitty) enable; - description = "Trigger daily Hyperkitty events"; - startAt = "daily"; - restartTriggers = [ config.environment.etc."mailman3/settings.py".source ]; - serviceConfig = { - ExecStart = "${pkgs.mailman-web}/bin/mailman-web runjobs daily"; - User = cfg.webUser; - WorkingDirectory = "/var/lib/mailman-web"; - }; - }; - - systemd.services.hyperkitty-weekly = { - inherit (cfg.hyperkitty) enable; - description = "Trigger weekly Hyperkitty events"; - startAt = "weekly"; - restartTriggers = [ config.environment.etc."mailman3/settings.py".source ]; - serviceConfig = { - ExecStart = "${pkgs.mailman-web}/bin/mailman-web runjobs weekly"; - User = cfg.webUser; - WorkingDirectory = "/var/lib/mailman-web"; - }; - }; - - systemd.services.hyperkitty-yearly = { - inherit (cfg.hyperkitty) enable; - description = "Trigger yearly Hyperkitty events"; - startAt = "yearly"; - restartTriggers = [ config.environment.etc."mailman3/settings.py".source ]; - serviceConfig = { - ExecStart = "${pkgs.mailman-web}/bin/mailman-web runjobs yearly"; - User = cfg.webUser; - WorkingDirectory = "/var/lib/mailman-web"; - }; - }; + } // flip lib.mapAttrs' { + "minutely" = "minutely"; + "quarter_hourly" = "*:00/15"; + "hourly" = "hourly"; + "daily" = "daily"; + "weekly" = "weekly"; + "yearly" = "yearly"; + } (name: startAt: + lib.nameValuePair "hyperkitty-${name}" (lib.mkIf cfg.hyperkitty.enable { + description = "Trigger ${name} Hyperkitty events"; + inherit startAt; + restartTriggers = [ config.environment.etc."mailman3/settings.py".source ]; + serviceConfig = { + ExecStart = "${pythonEnv}/bin/mailman-web runjobs minutely"; + User = cfg.webUser; + Group = "mailman"; + WorkingDirectory = "/var/lib/mailman-web"; + }; + })); + }; + meta = { + maintainers = with lib.maintainers; [ lheckemann ]; + doc = ./mailman.xml; }; } diff --git a/nixos/modules/services/mail/mailman.xml b/nixos/modules/services/mail/mailman.xml new file mode 100644 index 000000000000..cbe50ed0b917 --- /dev/null +++ b/nixos/modules/services/mail/mailman.xml @@ -0,0 +1,59 @@ + + Mailman + + Mailman is free + software for managing electronic mail discussion and e-newsletter + lists. Mailman and its web interface can be configured using the + corresponding NixOS module. Note that this service is best used with + an existing, securely configured Postfix setup, as it does not automatically configure this. + + +
+ Basic usage + + For a basic configuration, the following settings are suggested: + { config, ... }: { + services.postfix = { + enable = true; + relayDomains = ["hash:/var/lib/mailman/data/postfix_domains"]; + sslCert = config.security.acme.certs."lists.example.org".directory + "/full.pem"; + sslKey = config.security.acme.certs."lists.example.org".directory + "/key.pem"; + config = { + transport_maps = ["hash:/var/lib/mailman/data/postfix_lmtp"]; + local_recipient_maps = ["hash:/var/lib/mailman/data/postfix_lmtp"]; + }; + }; + services.mailman = { + enable = true; + serve.enable = true; + hyperkitty.enable = true; + webHosts = ["lists.example.org"]; + siteOwner = "mailman@example.org"; + }; + services.nginx.virtualHosts."lists.example.org".enableACME = true; + networking.firewall.allowedTCPPorts = [ 25 80 443 ]; +} + + + DNS records will also be required: + + AAAA and A records pointing to the host in question, in order for browsers to be able to discover the address of the web server; + An MX record pointing to a domain name at which the host is reachable, in order for other mail servers to be able to deliver emails to the mailing lists it hosts. + + + + After this has been done and appropriate DNS records have been + set up, the Postorius mailing list manager and the Hyperkitty + archive browser will be available at + https://lists.example.org/. Note that this setup is not + sufficient to deliver emails to most email providers nor to + avoid spam -- a number of additional measures for authenticating + incoming and outgoing mails, such as SPF, DMARC and DKIM are + necessary, but outside the scope of the Mailman module. + +
+
diff --git a/nixos/modules/services/monitoring/prometheus/exporters.nix b/nixos/modules/services/monitoring/prometheus/exporters.nix index 0318acae50f7..c4aedd7e23b2 100644 --- a/nixos/modules/services/monitoring/prometheus/exporters.nix +++ b/nixos/modules/services/monitoring/prometheus/exporters.nix @@ -39,6 +39,7 @@ let "node" "postfix" "postgres" + "redis" "rspamd" "snmp" "surfboard" @@ -171,15 +172,6 @@ in (opt: lib.mkRemovedOptionModule [ "services" "prometheus" "${opt}" ] '' The prometheus exporters are now configured using `services.prometheus.exporters'. See the 18.03 release notes for more information. - '' )) - - ++ (lib.forEach [ "enable" "substitutions" "preset" ] - (opt: lib.mkRemovedOptionModule [ "fonts" "fontconfig" "ultimate" "${opt}" ] '' - The fonts.fontconfig.ultimate module and configuration is obsolete. - The repository has since been archived and activity has ceased. - https://github.com/bohoomil/fontconfig-ultimate/issues/171. - No action should be needed for font configuration, as the fonts.fontconfig - module is already used by default. '' )); options.services.prometheus.exporters = mkOption { diff --git a/nixos/modules/services/monitoring/prometheus/exporters/redis.nix b/nixos/modules/services/monitoring/prometheus/exporters/redis.nix new file mode 100644 index 000000000000..befbcb21f766 --- /dev/null +++ b/nixos/modules/services/monitoring/prometheus/exporters/redis.nix @@ -0,0 +1,19 @@ +{ config, lib, pkgs, options }: + +with lib; + +let + cfg = config.services.prometheus.exporters.redis; +in +{ + port = 9121; + serviceOpts = { + serviceConfig = { + ExecStart = '' + ${pkgs.prometheus-redis-exporter}/bin/redis_exporter \ + -web.listen-address ${cfg.listenAddress}:${toString cfg.port} \ + ${concatStringsSep " \\\n " cfg.extraFlags} + ''; + }; + }; +} diff --git a/nixos/modules/services/network-filesystems/ipfs.nix b/nixos/modules/services/network-filesystems/ipfs.nix index a3bd40135d19..7d18410ff0a4 100644 --- a/nixos/modules/services/network-filesystems/ipfs.nix +++ b/nixos/modules/services/network-filesystems/ipfs.nix @@ -12,6 +12,19 @@ let (optionalString (cfg.defaultMode == "norouting") "--routing=none") ] ++ cfg.extraFlags); + splitMulitaddr = addrRaw: lib.tail (lib.splitString "/" addrRaw); + + multiaddrToListenStream = addrRaw: let + addr = splitMulitaddr addrRaw; + s = builtins.elemAt addr; + in if s 0 == "ip4" && s 2 == "tcp" + then "${s 1}:${s 3}" + else if s 0 == "ip6" && s 2 == "tcp" + then "[${s 1}]:${s 3}" + else if s 0 == "unix" + then "/${lib.concatStringsSep "/" (lib.tail addr)}" + else null; # not valid for listen stream, skip + in { ###### interface @@ -80,7 +93,10 @@ in { swarmAddress = mkOption { type = types.listOf types.str; - default = [ "/ip4/0.0.0.0/tcp/4001" "/ip6/::/tcp/4001" ]; + default = [ + "/ip4/0.0.0.0/tcp/4001" + "/ip6/::/tcp/4001" + ]; description = "Where IPFS listens for incoming p2p connections"; }; @@ -250,14 +266,18 @@ in { systemd.sockets.ipfs-gateway = { wantedBy = [ "sockets.target" ]; - socketConfig.ListenStream = [ "" ] - ++ lib.optional (cfg.gatewayAddress == opt.gatewayAddress.default) [ "127.0.0.1:8080" "[::1]:8080" ]; + socketConfig.ListenStream = let + fromCfg = multiaddrToListenStream cfg.gatewayAddress; + in [ "" ] ++ lib.optional (fromCfg != null) fromCfg; }; systemd.sockets.ipfs-api = { wantedBy = [ "sockets.target" ]; - socketConfig.ListenStream = [ "" "%t/ipfs.sock" ] - ++ lib.optional (cfg.apiAddress == opt.apiAddress.default) [ "127.0.0.1:5001" "[::1]:5001" ]; + # We also include "%t/ipfs.sock" because tere is no way to put the "%t" + # in the multiaddr. + socketConfig.ListenStream = let + fromCfg = multiaddrToListenStream cfg.apiAddress; + in [ "" "%t/ipfs.sock" ] ++ lib.optional (fromCfg != null) fromCfg; }; }; diff --git a/nixos/modules/system/boot/loader/systemd-boot/systemd-boot-builder.py b/nixos/modules/system/boot/loader/systemd-boot/systemd-boot-builder.py index d8baed65c6df..97e824fe629c 100644 --- a/nixos/modules/system/boot/loader/systemd-boot/systemd-boot-builder.py +++ b/nixos/modules/system/boot/loader/systemd-boot/systemd-boot-builder.py @@ -47,9 +47,9 @@ def write_loader_conf(profile, generation): if "@timeout@" != "": f.write("timeout @timeout@\n") if profile: - f.write("default nixos-%s-generation-%d.conf\n".format(profile, generation)) + f.write("default nixos-%s-generation-%d.conf\n" % (profile, generation)) else: - f.write("default nixos-generation-%d.conf\n".format(generation)) + f.write("default nixos-generation-%d.conf\n" % (generation)) if not @editor@: f.write("editor 0\n"); f.write("console-mode @consoleMode@\n"); diff --git a/nixos/modules/system/boot/systemd-unit-options.nix b/nixos/modules/system/boot/systemd-unit-options.nix index bee21f1a8f36..c6dbb96951ae 100644 --- a/nixos/modules/system/boot/systemd-unit-options.nix +++ b/nixos/modules/system/boot/systemd-unit-options.nix @@ -233,6 +233,7 @@ in rec { path = mkOption { default = []; + type = with types; listOf (oneOf [ package str ]); apply = ps: "${makeBinPath ps}:${makeSearchPathOutput "bin" "sbin" ps}"; description = '' Packages added to the service's PATH diff --git a/nixos/tests/ipfs.nix b/nixos/tests/ipfs.nix index 82234f969226..9c0ff5306e06 100644 --- a/nixos/tests/ipfs.nix +++ b/nixos/tests/ipfs.nix @@ -7,21 +7,28 @@ import ./make-test-python.nix ({ pkgs, ...} : { nodes.machine = { ... }: { services.ipfs = { enable = true; + # Also will add a unix domain socket socket API address, see module. + startWhenNeeded = true; apiAddress = "/ip4/127.0.0.1/tcp/2324"; }; }; testScript = '' start_all() - machine.wait_for_unit("ipfs") - machine.wait_until_succeeds("ipfs --api /ip4/127.0.0.1/tcp/2324 id") + # IPv4 activation + + machine.succeed("ipfs --api /ip4/127.0.0.1/tcp/2324 id") ipfs_hash = machine.succeed( "echo fnord | ipfs --api /ip4/127.0.0.1/tcp/2324 add | awk '{ print $2 }'" ) machine.succeed(f"ipfs cat /ipfs/{ipfs_hash.strip()} | grep fnord") + # Unix domain socket activation + + machine.stop_job("ipfs") + ipfs_hash = machine.succeed( "echo fnord2 | ipfs --api /unix/run/ipfs.sock add | awk '{ print $2 }'" ) diff --git a/nixos/tests/prometheus-exporters.nix b/nixos/tests/prometheus-exporters.nix index 4dbd64312224..75c4ca12db24 100644 --- a/nixos/tests/prometheus-exporters.nix +++ b/nixos/tests/prometheus-exporters.nix @@ -475,6 +475,20 @@ let ''; }; + redis = { + exporterConfig = { + enable = true; + }; + metricProvider.services.redis.enable = true; + exporterTest = '' + wait_for_unit("redis.service") + wait_for_unit("prometheus-redis-exporter.service") + wait_for_open_port(6379) + wait_for_open_port(9121) + wait_until_succeeds("curl -sSf localhost:9121/metrics | grep -q 'redis_up 1'") + ''; + }; + rspamd = { exporterConfig = { enable = true; diff --git a/pkgs/applications/editors/vscode/update.sh b/pkgs/applications/editors/vscode/update.sh new file mode 100755 index 000000000000..d573fdf04aaf --- /dev/null +++ b/pkgs/applications/editors/vscode/update.sh @@ -0,0 +1,39 @@ +#!/usr/bin/env nix-shell +#!nix-shell -i bash -p curl gnugrep gnused gawk + +ROOT="$(dirname "$(readlink -f "$0")")" +if [ ! -f "$ROOT/vscode.nix" ]; then + echo "ERROR: cannot find vscode.nix in $ROOT" + exit 1 +fi +if [ ! -f "$ROOT/vscodium.nix" ]; then + echo "ERROR: cannot find vscodium.nix in $ROOT" + exit 1 +fi + +# VSCode + +VSCODE_VER=$(curl -s -L "https://code.visualstudio.com/Download" | grep "is now available" | awk -F'' '{print $1}' | awk -F'>' '{print $NF}') +VSCODE_VER=$(curl -s -L "https://code.visualstudio.com/updates/v${VSCODE_VER/./_}" | grep "Downloads:" | awk -F'code.visualstudio.com/' '{print $2}' | awk -F'/' '{print $1}') +sed -i "s/version = \".*\"/version = \"${VSCODE_VER}\"/" "$ROOT/vscode.nix" + +VSCODE_LINUX_URL="https://vscode-update.azurewebsites.net/${VSCODE_VER}/linux-x64/stable" +VSCODE_LINUX_SHA256=$(nix-prefetch-url ${VSCODE_LINUX_URL}) +sed -i "s/x86_64-linux = \".\{52\}\"/x86_64-linux = \"${VSCODE_LINUX_SHA256}\"/" "$ROOT/vscode.nix" + +VSCODE_DARWIN_URL="https://vscode-update.azurewebsites.net/${VSCODE_VER}/darwin/stable" +VSCODE_DARWIN_SHA256=$(nix-prefetch-url ${VSCODE_DARWIN_URL}) +sed -i "s/x86_64-darwin = \".\{52\}\"/x86_64-darwin = \"${VSCODE_DARWIN_SHA256}\"/" "$ROOT/vscode.nix" + +# VSCodium + +VSCODIUM_VER=$(curl -Ls -w %{url_effective} -o /dev/null https://github.com/VSCodium/vscodium/releases/latest | awk -F'/' '{print $NF}') +sed -i "s/version = \".*\"/version = \"${VSCODIUM_VER}\"/" "$ROOT/vscodium.nix" + +VSCODIUM_LINUX_URL="https://github.com/VSCodium/vscodium/releases/download/${VSCODIUM_VER}/VSCodium-linux-x64-${VSCODIUM_VER}.tar.gz" +VSCODIUM_LINUX_SHA256=$(nix-prefetch-url ${VSCODIUM_LINUX_URL}) +sed -i "s/x86_64-linux = \".\{52\}\"/x86_64-linux = \"${VSCODIUM_LINUX_SHA256}\"/" "$ROOT/vscodium.nix" + +VSCODIUM_DARWIN_URL="https://github.com/VSCodium/vscodium/releases/download/${VSCODIUM_VER}/VSCodium-darwin-${VSCODIUM_VER}.zip" +VSCODIUM_DARWIN_SHA256=$(nix-prefetch-url ${VSCODIUM_DARWIN_URL}) +sed -i "s/x86_64-darwin = \".\{52\}\"/x86_64-darwin = \"${VSCODIUM_DARWIN_SHA256}\"/" "$ROOT/vscodium.nix" \ No newline at end of file diff --git a/pkgs/applications/graphics/paraview/default.nix b/pkgs/applications/graphics/paraview/default.nix index 15d70d143081..b201f9dbf0da 100644 --- a/pkgs/applications/graphics/paraview/default.nix +++ b/pkgs/applications/graphics/paraview/default.nix @@ -1,26 +1,33 @@ -{ stdenv, fetchFromGitHub, cmake, makeWrapper, qtbase , qttools, python -, libGLU, libGL , libXt, qtx11extras, qtxmlpatterns , mkDerivation }: +{ boost, cmake, fetchFromGitHub, ffmpeg, qtbase, qtx11extras, + qttools, qtxmlpatterns, qtsvg, gdal, gfortran, libXt, makeWrapper, + mkDerivation, ninja, openmpi, python3, stdenv, tbb, libGLU, libGL }: mkDerivation rec { pname = "paraview"; - version = "5.6.3"; + version = "5.8.0"; - # fetching from GitHub instead of taking an "official" source - # tarball because of missing submodules there src = fetchFromGitHub { owner = "Kitware"; repo = "ParaView"; rev = "v${version}"; - sha256 = "0zcij59pg47c45gfddnpbin13w16smzhcbivzm1k4pg4366wxq1q"; + sha256 = "1mka6wwg9mbkqi3phs29mvxq6qbc44sspbm4awwamqhilh4grhrj"; fetchSubmodules = true; }; - cmakeFlags = [ - "-DPARAVIEW_ENABLE_PYTHON=ON" - "-DPARAVIEW_INSTALL_DEVELOPMENT_FILES=ON" - "-DPARAVIEW_ENABLE_EMBEDDED_DOCUMENTATION=OFF" - "-DOpenGL_GL_PREFERENCE=GLVND" - ]; + # Avoid error: format not a string literal and + # no format arguments [-Werror=format-security] + preConfigure = '' + substituteInPlace VTK/Common/Core/vtkLogger.h \ + --replace 'vtkLogScopeF(verbosity_name, __func__)' 'vtkLogScopeF(verbosity_name, "%s", __func__)' + + substituteInPlace VTK/Common/Core/vtkLogger.h \ + --replace 'vtkVLogScopeF(level, __func__)' 'vtkVLogScopeF(level, "%s", __func__)' + ''; + + # Find the Qt platform plugin "minimal" + patchPhase = '' + export QT_PLUGIN_PATH=${qtbase.bin}/${qtbase.qtPluginPrefix} + ''; # During build, binaries are called that rely on freshly built # libraries. These reside in build/lib, and are not found by @@ -29,37 +36,50 @@ mkDerivation rec { export LD_LIBRARY_PATH=$LD_LIBRARY_PATH''${LD_LIBRARY_PATH:+:}$PWD/lib:$PWD/VTK/ThirdParty/vtkm/vtk-m/lib ''; - enableParallelBuilding = true; + cmakeFlags = [ + "-DCMAKE_BUILD_TYPE=Release" + "-DPARAVIEW_ENABLE_FFMPEG=ON" + "-DPARAVIEW_ENABLE_GDAL=ON" + "-DPARAVIEW_ENABLE_MOTIONFX=ON" + "-DPARAVIEW_ENABLE_VISITBRIDGE=ON" + "-DPARAVIEW_ENABLE_XDMF3=ON" + "-DPARAVIEW_INSTALL_DEVELOPMENT_FILES=ON" + "-DPARAVIEW_USE_MPI=ON" + "-DPARAVIEW_USE_PYTHON=ON" + "-DVTK_SMP_IMPLEMENTATION_TYPE=TBB" + "-DVTKm_ENABLE_MPI=ON" + "-DCMAKE_INSTALL_LIBDIR=lib" + "-DCMAKE_INSTALL_INCLUDEDIR=include" + "-DCMAKE_INSTALL_BINDIR=bin" + "-DOpenGL_GL_PREFERENCE=GLVND" + "-GNinja" + ]; nativeBuildInputs = [ cmake makeWrapper + ninja + gfortran ]; buildInputs = [ - python - python.pkgs.numpy libGLU libGL libXt + openmpi + (python3.withPackages (ps: with ps; [ numpy matplotlib mpi4py ])) + tbb + boost + ffmpeg + gdal qtbase qtx11extras qttools qtxmlpatterns + qtsvg ]; - # Paraview links into the Python library, resolving symbolic links on the way, - # so we need to put the correct sitePackages (with numpy) back on the path - preFixup = '' - wrapQtApp $out/bin/paraview \ - --prefix PYTHONPATH "${python.pkgs.numpy}/${python.sitePackages}" - wrapQtApp $out/bin/pvbatch \ - --prefix PYTHONPATH "${python.pkgs.numpy}/${python.sitePackages}" - wrapQtApp $out/bin/pvpython \ - --prefix PYTHONPATH "${python.pkgs.numpy}/${python.sitePackages}" - ''; - meta = with stdenv.lib; { - homepage = "http://www.paraview.org/"; + homepage = "https://www.paraview.org/"; description = "3D Data analysis and visualization application"; license = licenses.free; maintainers = with maintainers; [ guibert ]; diff --git a/pkgs/applications/graphics/sane/backends/default.nix b/pkgs/applications/graphics/sane/backends/default.nix index 6aba42d33e63..ad2681d25fe5 100644 --- a/pkgs/applications/graphics/sane/backends/default.nix +++ b/pkgs/applications/graphics/sane/backends/default.nix @@ -1,10 +1,10 @@ { callPackage, fetchurl, ... } @ args: callPackage ./generic.nix (args // rec { - version = "1.0.28"; + version = "1.0.30"; src = fetchurl { - url = "https://gitlab.com/sane-project/backends/uploads/9e718daff347826f4cfe21126c8d5091/sane-backends-${version}.tar.gz"; - sha256 = "00yy8q9hqdf0zjxxl4d8njr9zf0hhi3a9ib23ikc2anqf8zhy9ii"; + url = "https://gitlab.com/sane-project/backends/uploads/c3dd60c9e054b5dee1e7b01a7edc98b0/sane-backends-${version}.tar.gz"; + sha256 = "18vryaycps3zpjzxh0wjgg8nv2f4pdvcfxxmdfj28qbzqjlrcp9z"; }; }) diff --git a/pkgs/applications/misc/devdocs-desktop/default.nix b/pkgs/applications/misc/devdocs-desktop/default.nix new file mode 100644 index 000000000000..7c1726961339 --- /dev/null +++ b/pkgs/applications/misc/devdocs-desktop/default.nix @@ -0,0 +1,43 @@ +{ stdenv, appimageTools, fetchurl, gsettings-desktop-schemas, gtk3 }: + +let + version = "0.7.1"; + pname = "devdocs-desktop"; + name = "${pname}-${version}"; + + src = fetchurl { + url = "https://github.com/egoist/devdocs-desktop/releases/download/v${version}/DevDocs-${version}.AppImage"; + sha256 = "5bba99a34c90a65eff67aface0b7446cbf43d620a1c195f27e7bb33ab6d3d0c2"; + }; + + appimageContents = appimageTools.extractType2 { + inherit name src; + }; + +in appimageTools.wrapType2 rec { + inherit name src; + + profile = '' + export XDG_DATA_DIRS=${gsettings-desktop-schemas}/share/gsettings-schemas/${gsettings-desktop-schemas.name}:${gtk3}/share/gsettings-schemas/${gtk3.name}:$XDG_DATA_DIRS + ''; + + extraInstallCommands = '' + mv $out/bin/${name} $out/bin/${pname} + install -m 444 -D ${appimageContents}/devdocs.desktop $out/share/applications/devdocs.desktop + install -m 444 -D ${appimageContents}/devdocs.png $out/share/icons/hicolor/0x0/apps/devdocs.png + substituteInPlace $out/share/applications/devdocs.desktop \ + --replace 'Exec=AppRun' 'Exec=${pname}' + ''; + + meta = with stdenv.lib; { + description = "A full-featured desktop app for DevDocs.io"; + longDescription = '' + DevDocs.io combines multiple API documentations in a fast, organized, and searchable interface. This is an unofficial desktop app for it. + ''; + homepage = "https://github.com/egoist/devdocs-desktop"; + downloadPage = "https://github.com/egoist/devdocs-desktop/releases"; + license = licenses.mit; + maintainers = with maintainers; [ ymarkus ]; + platforms = [ "x86_64-linux" ]; + }; +} diff --git a/pkgs/applications/networking/browsers/castor/default.nix b/pkgs/applications/networking/browsers/castor/default.nix new file mode 100644 index 000000000000..6209c3263bcd --- /dev/null +++ b/pkgs/applications/networking/browsers/castor/default.nix @@ -0,0 +1,53 @@ +{ stdenv +, fetchurl +, rustPlatform +, pkg-config +, wrapGAppsHook +, openssl +, gtk3 +, gdk-pixbuf +, pango +, atk +, cairo +}: + +rustPlatform.buildRustPackage rec { + pname = "castor"; + version = "0.8.14"; + + src = fetchurl { + url = "https://git.sr.ht/~julienxx/castor/archive/${version}.tar.gz"; + sha256 = "1ykpmbimhfy3ys2hvv0mn8xiwxzdl43gpny1nc58i0gzv07ar8sc"; + }; + + cargoSha256 = "04w49wka1vkb295lk6fzd6c5rwhzrqkp26hd5d94rx7bhcjmmb9w"; + verifyCargoDeps = true; + + nativeBuildInputs = [ + pkg-config + wrapGAppsHook + ]; + + buildInputs = [ + openssl + gtk3 + gdk-pixbuf + pango + atk + cairo + ]; + + postInstall = "make PREFIX=$out copy-data"; + + # Sometimes tests fail when run in parallel + checkFlags = [ "--test-threads=1" ]; + + meta = with stdenv.lib; { + description = "A graphical client for plain-text protocols written in Rust with GTK. It currently supports the Gemini, Gopher and Finger protocols"; + homepage = "https://sr.ht/~julienxx/Castor"; + license = licenses.mit; + platforms = platforms.all; + maintainers = with maintainers; [ fgaz ]; + }; +} + diff --git a/pkgs/applications/networking/cluster/terragrunt/default.nix b/pkgs/applications/networking/cluster/terragrunt/default.nix index 6a4e1979e883..74f576b9a394 100644 --- a/pkgs/applications/networking/cluster/terragrunt/default.nix +++ b/pkgs/applications/networking/cluster/terragrunt/default.nix @@ -2,16 +2,16 @@ buildGoModule rec { pname = "terragrunt"; - version = "0.23.14"; + version = "0.23.23"; src = fetchFromGitHub { owner = "gruntwork-io"; repo = pname; rev = "v${version}"; - sha256 = "1znb9d4n9zv3dq10dw17kb1h04gj8iz6gwx1a741fcf4ygp8zpy1"; + sha256 = "1087zs5k73rhhzni8zdj950aw4nsc7mqjj8lgdcc8y3yx8p8y5hy"; }; - vendorSha256 = "0h737h25f80zfx84vm6ry0581c32ylcb5h9givqk5k5kh5qgkbgx"; + vendorSha256 = "1xn7c6y32vpanqvf1sfpw6bs73dbjniavjbf00j0vx83bfyklsr4"; buildInputs = [ makeWrapper ]; diff --git a/pkgs/applications/networking/instant-messengers/telegram/tdesktop/default.nix b/pkgs/applications/networking/instant-messengers/telegram/tdesktop/default.nix index d4493355951f..eacd5ece8b88 100644 --- a/pkgs/applications/networking/instant-messengers/telegram/tdesktop/default.nix +++ b/pkgs/applications/networking/instant-messengers/telegram/tdesktop/default.nix @@ -19,12 +19,12 @@ with lib; mkDerivation rec { pname = "telegram-desktop"; - version = "2.1.11"; + version = "2.1.12"; # Telegram-Desktop with submodules src = fetchurl { url = "https://github.com/telegramdesktop/tdesktop/releases/download/v${version}/tdesktop-${version}-full.tar.gz"; - sha256 = "1sd6nrcjg5gpq6ynvwnz8f4jz8flknybx6b0pfxqrqqpzy7wjl5m"; + sha256 = "1b9kgib9dxjcfnw2zdbqd12ikcswkl35nwy9m47x5jvy3glxg6m8"; }; postPatch = '' diff --git a/pkgs/applications/networking/instant-messengers/zoom-us/default.nix b/pkgs/applications/networking/instant-messengers/zoom-us/default.nix index 7f5cf65e0937..e82fbc7bebce 100644 --- a/pkgs/applications/networking/instant-messengers/zoom-us/default.nix +++ b/pkgs/applications/networking/instant-messengers/zoom-us/default.nix @@ -15,11 +15,11 @@ assert pulseaudioSupport -> libpulseaudio != null; let inherit (stdenv.lib) concatStringsSep makeBinPath optional; - version = "5.0.418682.0603"; + version = "5.1.412382.0614"; srcs = { x86_64-linux = fetchurl { url = "https://zoom.us/client/${version}/zoom_x86_64.tar.xz"; - sha256 = "1vlba3jgp3dr16n5g29l0dpdd054d8h6lkwk3a6346shvd46mpja"; + sha256 = "07xb3v5i08wq0a3my9id91gizsxj5ppqvxmcbdy04j7yn4i1jm9x"; }; }; @@ -60,7 +60,6 @@ in mkDerivation { "zcacert.pem" "zoom" "zoom.sh" - "zoomlinux" "zopen" ]; in '' @@ -126,7 +125,7 @@ in mkDerivation { description = "zoom.us video conferencing application"; license = stdenv.lib.licenses.unfree; platforms = builtins.attrNames srcs; - maintainers = with stdenv.lib.maintainers; [ danbst tadfisher ]; + maintainers = with stdenv.lib.maintainers; [ danbst tadfisher doronbehar ]; }; } diff --git a/pkgs/applications/networking/znc/default.nix b/pkgs/applications/networking/znc/default.nix index fae03846b68e..13803556a479 100644 --- a/pkgs/applications/networking/znc/default.nix +++ b/pkgs/applications/networking/znc/default.nix @@ -13,11 +13,11 @@ with stdenv.lib; stdenv.mkDerivation rec { pname = "znc"; - version = "1.8.0"; + version = "1.8.1"; src = fetchurl { url = "https://znc.in/releases/archive/${pname}-${version}.tar.gz"; - sha256 = "0m5xf60r40pgbg9lyk56dafxj2hj149pn2wf8vzsp8xgq4kv5zcl"; + sha256 = "0hb1v167aa6gv5bcwz352l6b8gnd74ymjw92y4x882l099hzg59i"; }; nativeBuildInputs = [ pkgconfig ]; diff --git a/pkgs/applications/science/misc/root/5.nix b/pkgs/applications/science/misc/root/5.nix index fd06d721ebd1..58cc8f8f59ef 100644 --- a/pkgs/applications/science/misc/root/5.nix +++ b/pkgs/applications/science/misc/root/5.nix @@ -1,18 +1,18 @@ { stdenv, fetchurl, fetchpatch, cmake, pcre, pkgconfig, python2 -, libX11, libXpm, libXft, libXext, libGLU, libGL, zlib, libxml2, lzma, gsl_1 +, libX11, libXpm, libXft, libXext, libGLU, libGL, zlib, libxml2, lz4, lzma, gsl_1, xxHash , Cocoa, OpenGL, noSplash ? false }: stdenv.mkDerivation rec { pname = "root"; - version = "5.34.36"; + version = "5.34.38"; src = fetchurl { url = "https://root.cern.ch/download/root_v${version}.source.tar.gz"; - sha256 = "1kbx1jxc0i5xfghpybk8927a0wamxyayij9c74zlqm0595gqx1pw"; + sha256 = "1ln448lszw4d6jmbdphkr2plwxxlhmjkla48vmmq750xc1lxlfrc"; }; nativeBuildInputs = [ pkgconfig ]; - buildInputs = [ cmake pcre python2 zlib libxml2 lzma gsl_1 ] + buildInputs = [ cmake pcre python2 zlib libxml2 lz4 lzma gsl_1 xxHash ] ++ stdenv.lib.optionals (!stdenv.isDarwin) [ libX11 libXpm libXft libXext libGLU libGL ] ++ stdenv.lib.optionals (stdenv.isDarwin) [ Cocoa OpenGL ] ; @@ -20,12 +20,6 @@ stdenv.mkDerivation rec { patches = [ ./sw_vers_root5.patch - (fetchpatch { - name = "enable_new_gcc.patch"; - url = "https://aur.archlinux.org/cgit/aur.git/plain/enable_new_gcc.patch?h=root5&id=91c50876081a0af36f84ec4f0f9dba869107fa4f"; - sha256 = "1rnp0xlw0yqi7mjs4w145njd79i8kkir1qik7zwicdik9axf8ygm"; - }) - # prevents rootcint from looking in /usr/includes and such ./purify_include_paths_root5.patch diff --git a/pkgs/applications/video/clipgrab/default.nix b/pkgs/applications/video/clipgrab/default.nix index fc752f1bd1fd..2eda7fe1dab3 100644 --- a/pkgs/applications/video/clipgrab/default.nix +++ b/pkgs/applications/video/clipgrab/default.nix @@ -5,10 +5,10 @@ mkDerivation rec { pname = "clipgrab"; - version = "3.8.11"; + version = "3.8.12"; src = fetchurl { - sha256 = "0jpfdmyzjasq4x1xvk7b1cmhhq6fz6ydvvbwz2wclph367x496xk"; + sha256 = "1nnph6sn4mpdj20hngwr57ripmdp60w3vrn89s8ssy7cjv500ngd"; # The .tar.bz2 "Download" link is a binary blob, the source is the .tar.gz! url = "https://download.clipgrab.org/${pname}-${version}.tar.gz"; }; diff --git a/pkgs/applications/virtualization/open-vm-tools/default.nix b/pkgs/applications/virtualization/open-vm-tools/default.nix index 84f74ef6dd03..46d91884fcd3 100644 --- a/pkgs/applications/virtualization/open-vm-tools/default.nix +++ b/pkgs/applications/virtualization/open-vm-tools/default.nix @@ -1,7 +1,7 @@ { stdenv, lib, fetchFromGitHub, makeWrapper, autoreconfHook, fuse, libmspack, openssl, pam, xercesc, icu, libdnet, procps, libX11, libXext, libXinerama, libXi, libXrender, libXrandr, libXtst, - pkgconfig, glib, gtk3, gtkmm3, iproute, dbus, systemd, which, + pkgconfig, glib, gdk-pixbuf-xlib, gtk3, gtkmm3, iproute, dbus, systemd, which, withX ? true }: stdenv.mkDerivation rec { @@ -21,9 +21,13 @@ stdenv.mkDerivation rec { nativeBuildInputs = [ autoreconfHook makeWrapper pkgconfig ]; buildInputs = [ fuse glib icu libdnet libmspack openssl pam procps xercesc ] - ++ lib.optionals withX [ gtk3 gtkmm3 libX11 libXext libXinerama libXi libXrender libXrandr libXtst ]; + ++ lib.optionals withX [ gdk-pixbuf-xlib gtk3 gtkmm3 libX11 libXext libXinerama libXi libXrender libXrandr libXtst ]; + + patches = [ + ./recognize_nixos.patch + ./find_gdk_pixbuf_xlib.patch #See https://github.com/vmware/open-vm-tools/pull/438 + ]; - patches = [ ./recognize_nixos.patch ]; postPatch = '' # Build bugfix for 10.1.0, stolen from Arch PKGBUILD mkdir -p common-agent/etc/config diff --git a/pkgs/applications/virtualization/open-vm-tools/find_gdk_pixbuf_xlib.patch b/pkgs/applications/virtualization/open-vm-tools/find_gdk_pixbuf_xlib.patch new file mode 100644 index 000000000000..6606c50e77d9 --- /dev/null +++ b/pkgs/applications/virtualization/open-vm-tools/find_gdk_pixbuf_xlib.patch @@ -0,0 +1,12 @@ +diff --git a/lib/appUtil/Makefile.am b/lib/appUtil/Makefile.am +index a0d8e391..899cd4e9 100644 +--- a/lib/appUtil/Makefile.am ++++ b/lib/appUtil/Makefile.am +@@ -21,4 +21,6 @@ libAppUtil_la_SOURCES = + libAppUtil_la_SOURCES += appUtil.c + libAppUtil_la_SOURCES += appUtilX11.c + +-AM_CFLAGS = @GTK_CPPFLAGS@ ++AM_CFLAGS = ++AM_CFLAGS += @GTK_CPPFLAGS@ ++AM_CFLAGS += @GDK_PIXBUF_XLIB2_CPPFLAGS@ diff --git a/pkgs/data/fonts/noto-fonts/default.nix b/pkgs/data/fonts/noto-fonts/default.nix index f4a6dba30291..e077fc303445 100644 --- a/pkgs/data/fonts/noto-fonts/default.nix +++ b/pkgs/data/fonts/noto-fonts/default.nix @@ -2,6 +2,7 @@ , stdenvNoCC , lib , fetchFromGitHub +, fetchurl , fetchzip , optipng , cairo @@ -146,4 +147,28 @@ in maintainers = with maintainers; [ mathnerd314 ]; }; }; + + noto-fonts-emoji-blob-bin = stdenv.mkDerivation rec { + pname = "noto-fonts-emoji-blob-bin"; + version = "2019-06-14-Emoji-12"; + + src = fetchurl { + url = "https://github.com/C1710/blobmoji/releases/download/v${version}/Blobmoji.ttf"; + sha256 = "0snvymglmvpnfgsriw2cnnqm0f4llav0jvzir6mpd17mqqhhabbh"; + }; + + dontUnpack = true; + + installPhase = '' + install -D $src $out/share/fonts/blobmoji/Blobmoji.ttf + ''; + + meta = with stdenv.lib; { + description = "Noto Emoji with extended Blob support"; + homepage = https://github.com/C1710/blobmoji; + license = with licenses; [ ofl asl20 ]; + platforms = platforms.all; + maintainers = with maintainers; [ rileyinman ]; + }; + }; } diff --git a/pkgs/data/themes/matcha/default.nix b/pkgs/data/themes/matcha/default.nix index f0617e56d789..5edc2990c025 100644 --- a/pkgs/data/themes/matcha/default.nix +++ b/pkgs/data/themes/matcha/default.nix @@ -2,13 +2,13 @@ stdenv.mkDerivation rec { pname = "matcha-gtk-theme"; - version = "2020-05-24"; + version = "2020-06-18"; src = fetchFromGitHub { owner = "vinceliuice"; repo = pname; rev = version; - sha256 = "186ypnkyaqjw671ny363xmixw6zdvrgj9xvmsrdgr8i0h3z8qwr8"; + sha256 = "1hgwlzyfxl8yw93r0vsnvi51a4k5bn5qw1axhldy5l928qhmd5x7"; }; buildInputs = [ gdk-pixbuf librsvg ]; diff --git a/pkgs/desktops/cinnamon/cinnamon-translations/default.nix b/pkgs/desktops/cinnamon/cinnamon-translations/default.nix index b2a3acd07229..ce630999147d 100644 --- a/pkgs/desktops/cinnamon/cinnamon-translations/default.nix +++ b/pkgs/desktops/cinnamon/cinnamon-translations/default.nix @@ -5,13 +5,13 @@ stdenv.mkDerivation rec { pname = "cinnamon-translations"; - version = "4.4.2"; + version = "4.6.0"; src = fetchFromGitHub { owner = "linuxmint"; repo = pname; rev = version; - sha256 = "1n1nkapcgxmbv0l8hrx5cf588pi4ifx12xbz46lq4p1ijrlfivba"; + sha256 = "04rlgcbz02n9kj1w12xa56b7f4x10y6g91hsl70zmag568mdclzz"; }; nativeBuildInputs = [ diff --git a/pkgs/development/arduino/platformio/core.nix b/pkgs/development/arduino/platformio/core.nix index 0d333a49d37a..d83013dbbde5 100644 --- a/pkgs/development/arduino/platformio/core.nix +++ b/pkgs/development/arduino/platformio/core.nix @@ -51,14 +51,14 @@ let in buildPythonApplication rec { pname = "platformio"; - version = "4.3.1"; + version = "4.3.4"; # pypi tarballs don't contain tests - https://github.com/platformio/platformio-core/issues/1964 src = fetchFromGitHub { owner = "platformio"; repo = "platformio-core"; rev = "v${version}"; - sha256 = "1dxnjy60zpkgyrbvbf6b9qi6m37gm8gwjmxwfj30npr1y7rvxwrw"; + sha256 = "0vf2j79319ypr4yrdmx84853igkb188sjfvlxgw06rlsvsm3kacq"; }; propagatedBuildInputs = [ diff --git a/pkgs/development/arduino/platformio/use-local-spdx-license-list.patch b/pkgs/development/arduino/platformio/use-local-spdx-license-list.patch index 16294a4d6cd6..953eb3c92893 100644 --- a/pkgs/development/arduino/platformio/use-local-spdx-license-list.patch +++ b/pkgs/development/arduino/platformio/use-local-spdx-license-list.patch @@ -8,7 +8,7 @@ index be49b3ee..d1390a88 100644 def load_spdx_licenses(): - r = requests.get( - "https://raw.githubusercontent.com/spdx/license-list-data" -- "/v3.8/json/licenses.json" +- "/v3.9/json/licenses.json" - ) - r.raise_for_status() - return r.json() diff --git a/pkgs/development/compilers/adoptopenjdk-icedtea-web/default.nix b/pkgs/development/compilers/adoptopenjdk-icedtea-web/default.nix index 72ed184357c1..b62b9c95ef6a 100644 --- a/pkgs/development/compilers/adoptopenjdk-icedtea-web/default.nix +++ b/pkgs/development/compilers/adoptopenjdk-icedtea-web/default.nix @@ -3,13 +3,13 @@ stdenv.mkDerivation rec { pname = "adoptopenjdk-icedtea-web"; - version = "1.8.3"; + version = "1.8.4"; src = fetchFromGitHub { owner = "AdoptOpenJDK"; repo = "IcedTea-Web"; rev = "icedtea-web-${version}"; - sha256 = "0bm5k11i2vgb54ch1bawsmjbwnqnp04saadwm2f2mggmmdc6b1qq"; + sha256 = "0pxijw9v5k4j840jczglx9qyfd57df390g5jdaz3qafblfg0k10n"; }; nativeBuildInputs = [ autoreconfHook pkgconfig bc ]; diff --git a/pkgs/development/compilers/openjdk/11.nix b/pkgs/development/compilers/openjdk/11.nix index ef496f5f7c52..9edb70074c7d 100644 --- a/pkgs/development/compilers/openjdk/11.nix +++ b/pkgs/development/compilers/openjdk/11.nix @@ -10,7 +10,7 @@ let major = "11"; - update = ".0.6"; + update = ".0.7"; build = "ga"; openjdk = stdenv.mkDerivation rec { @@ -19,7 +19,7 @@ let src = fetchurl { url = "http://hg.openjdk.java.net/jdk-updates/jdk${major}u/archive/jdk-${version}.tar.gz"; - sha256 = "1w6n0cnz9izpjb3sc870q7a0jz85a6c7fiszymxin10cnsajkzir"; + sha256 = "14daacng9ndxf4kmvsn7nracwfiwwmw5rha8rkk3723pfk9g8q7p"; }; nativeBuildInputs = [ pkgconfig autoconf ]; @@ -135,7 +135,7 @@ let homepage = "http://openjdk.java.net/"; license = licenses.gpl2; description = "The open-source Java Development Kit"; - maintainers = with maintainers; [ edwtjo ]; + maintainers = with maintainers; [ edwtjo asbachb ]; platforms = [ "i686-linux" "x86_64-linux" "aarch64-linux" "armv7l-linux" "armv6l-linux" ]; }; diff --git a/pkgs/development/libraries/freeimage/default.nix b/pkgs/development/libraries/freeimage/default.nix index 878299f725a6..c31f858850c9 100644 --- a/pkgs/development/libraries/freeimage/default.nix +++ b/pkgs/development/libraries/freeimage/default.nix @@ -1,5 +1,8 @@ { lib, stdenv, fetchurl, unzip, darwin }: +# TODO: consider unvendoring various dependencies (libpng, libjpeg, +# libwebp, zlib, ...) + stdenv.mkDerivation { name = "freeimage-3.18.0"; @@ -50,5 +53,7 @@ stdenv.mkDerivation { license = "GPL"; maintainers = with lib.maintainers; [viric]; platforms = with lib.platforms; unix; + # see https://github.com/NixOS/nixpkgs/issues/77653 + broken = stdenv.isAarch64; }; } diff --git a/pkgs/development/libraries/libmodulemd/1.nix b/pkgs/development/libraries/libmodulemd/1.nix deleted file mode 100644 index 174296375e08..000000000000 --- a/pkgs/development/libraries/libmodulemd/1.nix +++ /dev/null @@ -1,21 +0,0 @@ -{ libmodulemd, fetchurl }: - -libmodulemd.overrideAttrs(old: rec { - name = "libmodulemd-${version}"; - version = "1.8.15"; - - # Removes py output since there's no overrides here - outputs = [ "out" "devdoc" ]; - - patches = [ - # Checks for glib docs in glib's prefix - # but they're installed to another - ./dont-check-docs.patch - ]; - - src = fetchurl { - url = "https://github.com/fedora-modularity/libmodulemd/releases/download/${name}/modulemd-${version}.tar.xz"; - sha256 = "0gz8p3qzji3cx0r57sy3gn4dhigg4k7pcxj3lmjcjn13vxh5rm7z"; - }; - -}) diff --git a/pkgs/development/libraries/libmodulemd/dont-check-docs.patch b/pkgs/development/libraries/libmodulemd/dont-check-docs.patch deleted file mode 100644 index 38ad5683692b..000000000000 --- a/pkgs/development/libraries/libmodulemd/dont-check-docs.patch +++ /dev/null @@ -1,29 +0,0 @@ -diff --git a/meson.build b/meson.build -index 155c9e7..9125372 100644 ---- a/meson.build -+++ b/meson.build -@@ -60,15 +60,15 @@ sh = find_program('sh') - sed = find_program('sed') - test = find_program('test') - --ret = run_command ([test, '-e', join_paths(glib_docpath, 'glib/index.html')]) --if ret.returncode() != 0 -- error('Missing documentation for GLib.') --endif -- --ret = run_command ([test, '-e', join_paths(glib_docpath, 'gobject/index.html')]) --if ret.returncode() != 0 -- error('Missing documentation for GObject.') --endif -+# ret = run_command ([test, '-e', join_paths(glib_docpath, 'glib/index.html')]) -+# if ret.returncode() != 0 -+# error('Missing documentation for GLib.') -+# endif -+ -+# ret = run_command ([test, '-e', join_paths(glib_docpath, 'gobject/index.html')]) -+# if ret.returncode() != 0 -+# error('Missing documentation for GObject.') -+# endif - - python_name = get_option('python_name') - diff --git a/pkgs/development/libraries/mygui/default.nix b/pkgs/development/libraries/mygui/default.nix index 94c578f6c268..894d35eb3d8a 100644 --- a/pkgs/development/libraries/mygui/default.nix +++ b/pkgs/development/libraries/mygui/default.nix @@ -5,13 +5,13 @@ let renderSystem = if withOgre then "3" else "4"; in stdenv.mkDerivation rec { pname = "mygui"; - version = "3.2.2"; + version = "3.4.0"; src = fetchFromGitHub { owner = "MyGUI"; repo = "mygui"; rev = "MyGUI${version}"; - sha256 = "1wk7jmwm55rhlqqcyvqsxdmwvl70bysl9azh4kd9n57qlmgk3zmw"; + sha256 = "0a4zi8w18pjj813n7kmxldl1d9r1jp0iyhkw7pbqgl8f7qaq994w"; }; enableParallelBuilding = true; diff --git a/pkgs/development/libraries/swiftshader/default.nix b/pkgs/development/libraries/swiftshader/default.nix new file mode 100644 index 000000000000..3965f46bd8d8 --- /dev/null +++ b/pkgs/development/libraries/swiftshader/default.nix @@ -0,0 +1,63 @@ +{ stdenv, fetchgit, python3, cmake, jq, libX11, libXext }: + +stdenv.mkDerivation rec { + pname = "swiftshader"; + version = "2020-06-17"; + + src = fetchgit { + url = "https://swiftshader.googlesource.com/SwiftShader"; + rev = "763957e6b4fc1aa360ab19c4109b8b26686783e8"; + sha256 = "0sdh48swx0qyq2nfkv1nggs14am0qc7z239qrxb69p2ddqm76g1s"; + }; + + nativeBuildInputs = [ cmake python3 jq ]; + buildInputs = [ libX11 libXext ]; + + # Make sure we include the drivers and icd files in the output as the cmake + # generated install command only puts in the spirv-tools stuff. + installPhase = '' + runHook preInstall + + # + # Vulkan driver + # + vk_so_path="$out/lib/libvk_swiftshader.so" + mkdir -p "$(dirname "$vk_so_path")" + mv Linux/libvk_swiftshader.so "$vk_so_path" + + vk_icd_json="$out/share/vulkan/icd.d/vk_swiftshader_icd.json" + mkdir -p "$(dirname "$vk_icd_json")" + jq ".ICD.library_path = \"$vk_so_path\"" "$vk_icd_json" + + # + # GL driver + # + gl_so_path="$out/lib/libEGL.so" + mkdir -p "$(dirname "$gl_so_path")" + mv Linux/libEGL.so "$gl_so_path" + + gl_icd_json="$out/share/glvnd/egl_vendor.d/swiftshader.json" + mkdir -p "$(dirname "$gl_icd_json")" + cat >"$gl_icd_json" < Cow<'_, str> { + } + + #[test] ++#[ignore] + fn test_format_rust_expression() { + use crate::assert_snapshot; + assert_snapshot!(format_rust_expression("vec![1,2,3]"), @"vec![1, 2, 3]"); diff --git a/pkgs/development/tools/rust/rust-analyzer/default.nix b/pkgs/development/tools/rust/rust-analyzer/default.nix index 43bf5415ce01..e9d4deefb459 100644 --- a/pkgs/development/tools/rust/rust-analyzer/default.nix +++ b/pkgs/development/tools/rust/rust-analyzer/default.nix @@ -2,10 +2,10 @@ { rust-analyzer-unwrapped = callPackage ./generic.nix rec { - rev = "2020-06-01"; + rev = "2020-06-08"; version = "unstable-${rev}"; - sha256 = "0chm47mrd4hybhvzn4cndq2ck0mj948mm181p1i1j1w0ms7zk1fg"; - cargoSha256 = "0yaz50f7hirlcs8bxc5dh170lch9l1gscwayan71k3pz23wkvlzs"; + sha256 = "0ywwsb717d1rwcy2yij58sj123pan0fb80sbsiqqprcln0aaspip"; + cargoSha256 = "1c6rmrhx7q4qcanr26yzlwc2rp1hh55m80jn56hy6hfcvwcdaij4"; }; rust-analyzer = callPackage ./wrapper.nix {} { diff --git a/pkgs/development/web/nodejs/v12.nix b/pkgs/development/web/nodejs/v12.nix index c28657c3bb1d..214292afbbe1 100644 --- a/pkgs/development/web/nodejs/v12.nix +++ b/pkgs/development/web/nodejs/v12.nix @@ -8,6 +8,6 @@ let in buildNodejs { inherit enableNpm; - version = "12.18.0"; - sha256 = "0gxi0cxkiylxr4spm3vg6n9w3x82770xaazhax8pydkqlcv8cs6l"; + version = "12.18.1"; + sha256 = "0yjwd8yilm85wkginvhhchcikjsl8g3l3qagbg0l2y1hg8f0anfa"; } diff --git a/pkgs/games/factorio/default.nix b/pkgs/games/factorio/default.nix index fde3d31716eb..3b47cb40ad0f 100644 --- a/pkgs/games/factorio/default.nix +++ b/pkgs/games/factorio/default.nix @@ -53,11 +53,11 @@ let x86_64-linux = let bdist = bdistForArch { inUrl = "linux64"; inTar = "x64"; }; in { alpha = { stable = bdist { sha256 = "1fg2wnia6anzya4m53jf2xqwwspvwskz3awdb3j0v3fzijps94wc"; version = "0.17.79"; withAuth = true; }; - experimental = bdist { sha256 = "0dm2s8iz7247i3j8cl5f4i3kipnmn5514gm21p7b4ahj6fhpc7pf"; version = "0.18.30"; withAuth = true; }; + experimental = bdist { sha256 = "1h0gv7cdn999hm2fl93kq6g98bzd1x3c8afq8v0a04dqjarjgr86"; version = "0.18.32"; withAuth = true; }; }; headless = { stable = bdist { sha256 = "1pr39nm23fj83jy272798gbl9003rgi4vgsi33f2iw3dk3x15kls"; version = "0.17.79"; }; - experimental = bdist { sha256 = "1c5jiqva2z58lghm6bhvjdj2n61xk8b8ss2hx80qsywgh3nqafr3"; version = "0.18.30"; }; + experimental = bdist { sha256 = "017ggrsnhwyfgx99q0wjagafjvk5pb6lcxl72y37gig72bfcapab"; version = "0.18.32"; }; }; demo = { stable = bdist { sha256 = "07qknasaqvzl9vy1fglm7xmdi7ynhmslrb0a209fhbfs0s7qqlgi"; version = "0.17.79"; }; diff --git a/pkgs/games/mudlet/default.nix b/pkgs/games/mudlet/default.nix index 75d16586a39f..b73af4515d3c 100644 --- a/pkgs/games/mudlet/default.nix +++ b/pkgs/games/mudlet/default.nix @@ -6,14 +6,14 @@ let in stdenv.mkDerivation rec { pname = "mudlet"; - version = "4.3"; + version = "4.9.1"; src = fetchFromGitHub { owner = "Mudlet"; repo = "Mudlet"; rev = "Mudlet-${version}"; fetchSubmodules = true; - sha256 = "0qqdmivfwf9jmv5yx90z1fj99nlhnq762lfw6bcxgv74y4l4b4c0"; + sha256 = "0i022qcmlq4xwl2yh4xd5qdc0ag52605qmqqz6bim0h8f3dp8cx1"; }; nativeBuildInputs = [ cmake wrapQtAppsHook git qttools which ]; diff --git a/pkgs/games/openmw/tes3mp.nix b/pkgs/games/openmw/tes3mp.nix index 59bdc6901078..df332c0e5bf3 100644 --- a/pkgs/games/openmw/tes3mp.nix +++ b/pkgs/games/openmw/tes3mp.nix @@ -1,4 +1,4 @@ -{ stdenv, cmake, openmw, fetchFromGitHub, luajit, makeWrapper }: +{ stdenv, cmake, openmw, fetchFromGitHub, luajit, makeWrapper, mygui }: # revisions are taken from https://github.com/GrimKriegor/TES3MP-deploy @@ -28,6 +28,17 @@ let rev = "24aae91d9ddad38cdb3b0e0a13af59f142803e94"; sha256 = "1rfmxxr9ircfagdpbdrzl26msdhx1i3g974cblbv69078cradfh3"; }; + # https://github.com/TES3MP/openmw-tes3mp/issues/555 + mygui_ = mygui.overrideAttrs (oldAttrs: rec { + version = "3.2.2"; + + src = fetchFromGitHub { + owner = "MyGUI"; + repo = "mygui"; + rev = "MyGUI${version}"; + sha256 = "1wk7jmwm55rhlqqcyvqsxdmwvl70bysl9azh4kd9n57qlmgk3zmw"; + }; + }); in openmw.overrideAttrs (oldAttrs: rec { version = "2019-11-19"; name = "openmw-tes3mp-${version}"; @@ -41,7 +52,7 @@ in openmw.overrideAttrs (oldAttrs: rec { }; nativeBuildInputs = oldAttrs.nativeBuildInputs ++ [ makeWrapper ]; - buildInputs = oldAttrs.buildInputs ++ [ luajit ]; + buildInputs = [ luajit mygui_ ] ++ oldAttrs.buildInputs; cmakeFlags = oldAttrs.cmakeFlags ++ [ "-DBUILD_OPENCS=OFF" @@ -50,7 +61,7 @@ in openmw.overrideAttrs (oldAttrs: rec { "-DRakNet_LIBRARY_DEBUG=${rakNetLibrary}/lib/libRakNetLibStatic.a" ]; - # https://gcc.gnu.org/bugzilla/show_bug.cgi?id=95175 + # https://github.com/TES3MP/openmw-tes3mp/issues/552 patches = [ ./tes3mp.patch ]; diff --git a/pkgs/misc/emulators/wine/sources.nix b/pkgs/misc/emulators/wine/sources.nix index 964e08674ca6..dd3cae339ca1 100644 --- a/pkgs/misc/emulators/wine/sources.nix +++ b/pkgs/misc/emulators/wine/sources.nix @@ -39,16 +39,16 @@ in rec { unstable = fetchurl rec { # NOTE: Don't forget to change the SHA256 for staging as well. - version = "5.5"; + version = "5.10"; url = "https://dl.winehq.org/wine/source/5.x/wine-${version}.tar.xz"; - sha256 = "1z7mvl6fgk7cg8vmy157r8azcz89srnckbzvsc6cva7a1fdi7qx0"; + sha256 = "0g9k094biyjc0ng3vnncdr1psf0ykn36nqirrqdzc5y82s9a1alv"; inherit (stable) mono gecko32 gecko64; }; staging = fetchFromGitHub rec { # https://github.com/wine-staging/wine-staging/releases inherit (unstable) version; - sha256 = "0wcj73xcxsk5897m5fg14cjir2md167m09jjjv9z9n6157bfr9fw"; + sha256 = "1nnj52g0kp7i38qw85sp5qsf7gph1hh3ywibrdfpjmjpyj30v7sw"; owner = "wine-staging"; repo = "wine-staging"; rev = "v${version}"; diff --git a/pkgs/os-specific/linux/exfat/default.nix b/pkgs/os-specific/linux/exfat/default.nix index e66ac4d65ab9..59f9c709e5fa 100644 --- a/pkgs/os-specific/linux/exfat/default.nix +++ b/pkgs/os-specific/linux/exfat/default.nix @@ -21,6 +21,9 @@ stdenv.mkDerivation rec { makeFlags = [ "KDIR=${kernel.dev}/lib/modules/${kernel.modDirVersion}/build" + "ARCH=${stdenv.hostPlatform.platform.kernelArch}" + ] ++ stdenv.lib.optional (stdenv.hostPlatform != stdenv.buildPlatform) [ + "CROSS_COMPILE=${stdenv.cc.targetPrefix}" ]; installPhase = '' diff --git a/pkgs/os-specific/linux/kernel/common-config.nix b/pkgs/os-specific/linux/kernel/common-config.nix index 5a2fb8cf7aab..1272d19d8ea5 100644 --- a/pkgs/os-specific/linux/kernel/common-config.nix +++ b/pkgs/os-specific/linux/kernel/common-config.nix @@ -639,6 +639,14 @@ let # enabled by default in x86_64 but not arm64, so we do that here HIDRAW = yes; + HID_ACRUX_FF = yes; + DRAGONRISE_FF = yes; + HOLTEK_FF = yes; + SONY_FF = yes; + SMARTJOYPLUS_FF = yes; + THRUSTMASTER_FF = yes; + ZEROPLUS_FF = yes; + MODULE_COMPRESS = yes; MODULE_COMPRESS_XZ = yes; KERNEL_XZ = yes; diff --git a/pkgs/os-specific/linux/kernel/linux-5.4.nix b/pkgs/os-specific/linux/kernel/linux-5.4.nix index 1c5bfad41681..a2fbbbe37349 100644 --- a/pkgs/os-specific/linux/kernel/linux-5.4.nix +++ b/pkgs/os-specific/linux/kernel/linux-5.4.nix @@ -3,7 +3,7 @@ with stdenv.lib; buildLinux (args // rec { - version = "5.4.46"; + version = "5.4.47"; # modDirVersion needs to be x.y.z, will automatically add .0 if needed modDirVersion = if (modDirVersionArg == null) then concatStringsSep "." (take 3 (splitVersion "${version}.0")) else modDirVersionArg; @@ -13,6 +13,6 @@ buildLinux (args // rec { src = fetchurl { url = "mirror://kernel/linux/kernel/v5.x/linux-${version}.tar.xz"; - sha256 = "13hvnfdcbcb9a21zizq8d90mc8maxz03zmzsj6iqsjd2y7r4y1rh"; + sha256 = "0v4d86yci4lq82nb1fgf0g3j0348v6q6m77czpm4b3cs7lwrs2wp"; }; } // (args.argsOverride or {})) diff --git a/pkgs/os-specific/linux/kernel/linux-5.6.nix b/pkgs/os-specific/linux/kernel/linux-5.6.nix index bf245442ecef..478cdf71bf44 100644 --- a/pkgs/os-specific/linux/kernel/linux-5.6.nix +++ b/pkgs/os-specific/linux/kernel/linux-5.6.nix @@ -3,7 +3,7 @@ with stdenv.lib; buildLinux (args // rec { - version = "5.6.18"; + version = "5.6.19"; # modDirVersion needs to be x.y.z, will automatically add .0 if needed modDirVersion = if (modDirVersionArg == null) then concatStringsSep "." (take 3 (splitVersion "${version}.0")) else modDirVersionArg; @@ -13,6 +13,6 @@ buildLinux (args // rec { src = fetchurl { url = "mirror://kernel/linux/kernel/v5.x/linux-${version}.tar.xz"; - sha256 = "0cpiyzr62sv2yz0mla7skalb04pnr4nlkpi1zfcfzyjf1gjz8h8h"; + sha256 = "1s0yc1138sglbm4vyizl4r7hnc1l7nykdjp4063ad67yayr2ylv2"; }; } // (args.argsOverride or {})) diff --git a/pkgs/os-specific/linux/kernel/linux-5.7.nix b/pkgs/os-specific/linux/kernel/linux-5.7.nix index c7f1389f1128..0f04abfec8fd 100644 --- a/pkgs/os-specific/linux/kernel/linux-5.7.nix +++ b/pkgs/os-specific/linux/kernel/linux-5.7.nix @@ -3,7 +3,7 @@ with stdenv.lib; buildLinux (args // rec { - version = "5.7.2"; + version = "5.7.3"; # modDirVersion needs to be x.y.z, will automatically add .0 if needed modDirVersion = if (modDirVersionArg == null) then concatStringsSep "." (take 3 (splitVersion "${version}.0")) else modDirVersionArg; @@ -13,6 +13,6 @@ buildLinux (args // rec { src = fetchurl { url = "mirror://kernel/linux/kernel/v5.x/linux-${version}.tar.xz"; - sha256 = "02brxm78n0kg4mh48acvjsr7mpvaqd279ycyaixaflid1s1awrb0"; + sha256 = "1sgwdcyn9105lfgg25q41yj30sy9cqfdm8m4dmka8gzllxxyq407"; }; } // (args.argsOverride or {})) diff --git a/pkgs/servers/mail/mailman/default.nix b/pkgs/servers/mail/mailman/default.nix index 37b4d29eeb16..879fd19adb0a 100644 --- a/pkgs/servers/mail/mailman/default.nix +++ b/pkgs/servers/mail/mailman/default.nix @@ -1,4 +1,4 @@ -{ stdenv, buildPythonPackage, fetchPypi, isPy3k, alembic, aiosmtpd, dnspython +{ stdenv, buildPythonPackage, fetchPypi, fetchpatch, isPy3k, alembic, aiosmtpd, dnspython , flufl_bounce, flufl_i18n, flufl_lock, lazr_config, lazr_delegates, passlib , requests, zope_configuration, click, falcon, importlib-resources , zope_component, lynx, postfix, authheaders, gunicorn @@ -20,7 +20,19 @@ buildPythonPackage rec { zope_component authheaders gunicorn ]; - patchPhase = '' + patches = [ + (fetchpatch { + url = https://gitlab.com/mailman/mailman/-/commit/4b206e2a5267a0e17f345fd7b2d957122ba57566.patch; + sha256 = "06axmrn74p81wvcki36c7gfj5fp5q15zxz2yl3lrvijic7hbs4n2"; + }) + (fetchpatch { + url = https://gitlab.com/mailman/mailman/-/commit/9613154f3c04fa2383fbf017031ef263c291418d.patch; + sha256 = "0vyw87s857vfxbf7kihwb6w094xyxmxbi1bpdqi3ybjamjycp55r"; + }) + ./log-stderr.patch + ]; + + postPatch = '' substituteInPlace src/mailman/config/postfix.cfg \ --replace /usr/sbin/postmap ${postfix}/bin/postmap substituteInPlace src/mailman/config/schema.cfg \ diff --git a/pkgs/servers/mail/mailman/log-stderr.patch b/pkgs/servers/mail/mailman/log-stderr.patch new file mode 100644 index 000000000000..2edbe1f18313 --- /dev/null +++ b/pkgs/servers/mail/mailman/log-stderr.patch @@ -0,0 +1,13 @@ +diff --git a/src/mailman/core/logging.py b/src/mailman/core/logging.py +index f8f87279f..7ff13b003 100644 +--- a/src/mailman/core/logging.py ++++ b/src/mailman/core/logging.py +@@ -142,6 +142,8 @@ def _init_logger(propagate, sub_name, log, logger_config): + address, facility = _get_syslog_params(logger_config) + handler = logging.handlers.SysLogHandler( + address=address, facility=facility) ++ elif logger_config.handler == 'stderr': ++ handler = logging.StreamHandler(sys.stderr) + else: + path_str = logger_config.path + path_abs = os.path.normpath(os.path.join(config.LOG_DIR, path_str)) diff --git a/pkgs/servers/mail/mailman/web.nix b/pkgs/servers/mail/mailman/web.nix index f770f2e4489d..53fdf851cfe8 100644 --- a/pkgs/servers/mail/mailman/web.nix +++ b/pkgs/servers/mail/mailman/web.nix @@ -1,6 +1,5 @@ { buildPythonPackage, lib, fetchgit, isPy3k , git, makeWrapper, sassc, hyperkitty, postorius, whoosh -, django }: buildPythonPackage rec { @@ -17,8 +16,13 @@ buildPythonPackage rec { # This is just so people installing from pip also get uwsgi # installed, AFAICT. + + # Django is depended on transitively by hyperkitty and postorius, + # and mailman_web has overly restrictive version bounds on it, so + # let's remove it. postPatch = '' sed -i '/^ uwsgi$/d' setup.cfg + sed -i '/^ Django/d' setup.cfg ''; nativeBuildInputs = [ git makeWrapper ]; @@ -36,7 +40,5 @@ buildPythonPackage rec { description = "Django project for Mailman 3 web interface"; license = licenses.gpl3; maintainers = with maintainers; [ peti qyliss ]; - # mailman-web requires django < 2.2 - broken = versionOlder "2.2" django.version; }; } diff --git a/pkgs/servers/monitoring/prometheus/redis-exporter-deps.nix b/pkgs/servers/monitoring/prometheus/redis-exporter-deps.nix new file mode 100644 index 000000000000..33747715fbef --- /dev/null +++ b/pkgs/servers/monitoring/prometheus/redis-exporter-deps.nix @@ -0,0 +1,390 @@ +# file generated from go.mod using vgo2nix (https://github.com/adisbladis/vgo2nix) +[ + { + goPackagePath = "github.com/alecthomas/template"; + fetch = { + type = "git"; + url = "https://github.com/alecthomas/template"; + rev = "fb15b899a751"; + sha256 = "1vlasv4dgycydh5wx6jdcvz40zdv90zz1h7836z7lhsi2ymvii26"; + }; + } + { + goPackagePath = "github.com/alecthomas/units"; + fetch = { + type = "git"; + url = "https://github.com/alecthomas/units"; + rev = "c3de453c63f4"; + sha256 = "0js37zlgv37y61j4a2d46jh72xm5kxmpaiw0ya9v944bjpc386my"; + }; + } + { + goPackagePath = "github.com/beorn7/perks"; + fetch = { + type = "git"; + url = "https://github.com/beorn7/perks"; + rev = "v1.0.1"; + sha256 = "17n4yygjxa6p499dj3yaqzfww2g7528165cl13haj97hlx94dgl7"; + }; + } + { + goPackagePath = "github.com/cespare/xxhash"; + fetch = { + type = "git"; + url = "https://github.com/cespare/xxhash"; + rev = "v2.1.1"; + sha256 = "0rl5rs8546zj1vzggv38w93wx0b5dvav7yy5hzxa8kw7iikv1cgr"; + }; + } + { + goPackagePath = "github.com/davecgh/go-spew"; + fetch = { + type = "git"; + url = "https://github.com/davecgh/go-spew"; + rev = "v1.1.1"; + sha256 = "0hka6hmyvp701adzag2g26cxdj47g21x6jz4sc6jjz1mn59d474y"; + }; + } + { + goPackagePath = "github.com/go-kit/kit"; + fetch = { + type = "git"; + url = "https://github.com/go-kit/kit"; + rev = "v0.9.0"; + sha256 = "09038mnw705h7isbjp8dzgp2i04bp5rqkmifxvwc5xkh75s00qpw"; + }; + } + { + goPackagePath = "github.com/go-logfmt/logfmt"; + fetch = { + type = "git"; + url = "https://github.com/go-logfmt/logfmt"; + rev = "v0.4.0"; + sha256 = "06smxc112xmixz78nyvk3b2hmc7wasf2sl5vxj1xz62kqcq9lzm9"; + }; + } + { + goPackagePath = "github.com/go-stack/stack"; + fetch = { + type = "git"; + url = "https://github.com/go-stack/stack"; + rev = "v1.8.0"; + sha256 = "0wk25751ryyvxclyp8jdk5c3ar0cmfr8lrjb66qbg4808x66b96v"; + }; + } + { + goPackagePath = "github.com/gogo/protobuf"; + fetch = { + type = "git"; + url = "https://github.com/gogo/protobuf"; + rev = "v1.1.1"; + sha256 = "1525pq7r6h3s8dncvq8gxi893p2nq8dxpzvq0nfl5b4p6mq0v1c2"; + }; + } + { + goPackagePath = "github.com/golang/protobuf"; + fetch = { + type = "git"; + url = "https://github.com/golang/protobuf"; + rev = "v1.4.0"; + sha256 = "1fjvl5n77abxz5qsd4mgyvjq19x43c5bfvmq62mq3m5plx6zksc8"; + }; + } + { + goPackagePath = "github.com/gomodule/redigo"; + fetch = { + type = "git"; + url = "https://github.com/gomodule/redigo"; + rev = "v1.8.2"; + sha256 = "0wp37175n4lgkq234px9vx0c7mdx8sx3d45zky73az8zbabirwga"; + }; + } + { + goPackagePath = "github.com/google/go-cmp"; + fetch = { + type = "git"; + url = "https://github.com/google/go-cmp"; + rev = "v0.4.0"; + sha256 = "1x5pvl3fb5sbyng7i34431xycnhmx8xx94gq2n19g6p0vz68z2v2"; + }; + } + { + goPackagePath = "github.com/google/gofuzz"; + fetch = { + type = "git"; + url = "https://github.com/google/gofuzz"; + rev = "v1.0.0"; + sha256 = "0qz439qvccm91w0mmjz4fqgx48clxdwagkvvx89cr43q1d4iry36"; + }; + } + { + goPackagePath = "github.com/json-iterator/go"; + fetch = { + type = "git"; + url = "https://github.com/json-iterator/go"; + rev = "v1.1.9"; + sha256 = "0pkn2maymgl9v6vmq9q1si8xr5bbl88n6981y0lx09px6qxb29qx"; + }; + } + { + goPackagePath = "github.com/julienschmidt/httprouter"; + fetch = { + type = "git"; + url = "https://github.com/julienschmidt/httprouter"; + rev = "v1.2.0"; + sha256 = "1k8bylc9s4vpvf5xhqh9h246dl1snxrzzz0614zz88cdh8yzs666"; + }; + } + { + goPackagePath = "github.com/konsorten/go-windows-terminal-sequences"; + fetch = { + type = "git"; + url = "https://github.com/konsorten/go-windows-terminal-sequences"; + rev = "v1.0.3"; + sha256 = "1yrsd4s8vhjnxhwbigirymz89dn6qfjnhn28i33vvvdgf96j6ypl"; + }; + } + { + goPackagePath = "github.com/kr/logfmt"; + fetch = { + type = "git"; + url = "https://github.com/kr/logfmt"; + rev = "b84e30acd515"; + sha256 = "02ldzxgznrfdzvghfraslhgp19la1fczcbzh7wm2zdc6lmpd1qq9"; + }; + } + { + goPackagePath = "github.com/kr/pretty"; + fetch = { + type = "git"; + url = "https://github.com/kr/pretty"; + rev = "v0.1.0"; + sha256 = "18m4pwg2abd0j9cn5v3k2ksk9ig4vlwxmlw9rrglanziv9l967qp"; + }; + } + { + goPackagePath = "github.com/kr/pty"; + fetch = { + type = "git"; + url = "https://github.com/kr/pty"; + rev = "v1.1.1"; + sha256 = "0383f0mb9kqjvncqrfpidsf8y6ns5zlrc91c6a74xpyxjwvzl2y6"; + }; + } + { + goPackagePath = "github.com/kr/text"; + fetch = { + type = "git"; + url = "https://github.com/kr/text"; + rev = "v0.1.0"; + sha256 = "1gm5bsl01apvc84bw06hasawyqm4q84vx1pm32wr9jnd7a8vjgj1"; + }; + } + { + goPackagePath = "github.com/matttproud/golang_protobuf_extensions"; + fetch = { + type = "git"; + url = "https://github.com/matttproud/golang_protobuf_extensions"; + rev = "v1.0.1"; + sha256 = "1d0c1isd2lk9pnfq2nk0aih356j30k3h1gi2w0ixsivi5csl7jya"; + }; + } + { + goPackagePath = "github.com/modern-go/concurrent"; + fetch = { + type = "git"; + url = "https://github.com/modern-go/concurrent"; + rev = "bacd9c7ef1dd"; + sha256 = "0s0fxccsyb8icjmiym5k7prcqx36hvgdwl588y0491gi18k5i4zs"; + }; + } + { + goPackagePath = "github.com/modern-go/reflect2"; + fetch = { + type = "git"; + url = "https://github.com/modern-go/reflect2"; + rev = "v1.0.1"; + sha256 = "06a3sablw53n1dqqbr2f53jyksbxdmmk8axaas4yvnhyfi55k4lf"; + }; + } + { + goPackagePath = "github.com/mwitkow/go-conntrack"; + fetch = { + type = "git"; + url = "https://github.com/mwitkow/go-conntrack"; + rev = "cc309e4a2223"; + sha256 = "0nbrnpk7bkmqg9mzwsxlm0y8m7s9qd9phr1q30qlx2qmdmz7c1mf"; + }; + } + { + goPackagePath = "github.com/pkg/errors"; + fetch = { + type = "git"; + url = "https://github.com/pkg/errors"; + rev = "v0.8.1"; + sha256 = "0g5qcb4d4fd96midz0zdk8b9kz8xkzwfa8kr1cliqbg8sxsy5vd1"; + }; + } + { + goPackagePath = "github.com/pmezard/go-difflib"; + fetch = { + type = "git"; + url = "https://github.com/pmezard/go-difflib"; + rev = "v1.0.0"; + sha256 = "0c1cn55m4rypmscgf0rrb88pn58j3ysvc2d0432dp3c6fqg6cnzw"; + }; + } + { + goPackagePath = "github.com/prometheus/client_golang"; + fetch = { + type = "git"; + url = "https://github.com/prometheus/client_golang"; + rev = "v1.6.0"; + sha256 = "0wwkx69in9dy5kzd3z6rrqf5by8cwl9r7r17fswcpx9rl3g61x1l"; + }; + } + { + goPackagePath = "github.com/prometheus/client_model"; + fetch = { + type = "git"; + url = "https://github.com/prometheus/client_model"; + rev = "v0.2.0"; + sha256 = "0jffnz94d6ff39fr96b5w8i8yk26pwnrfggzz8jhi8k0yihg2c9d"; + }; + } + { + goPackagePath = "github.com/prometheus/common"; + fetch = { + type = "git"; + url = "https://github.com/prometheus/common"; + rev = "v0.9.1"; + sha256 = "12pyywb02p7d30ccm41mwn69qsgqnsgv1w9jlqrrln2f1svnbqch"; + }; + } + { + goPackagePath = "github.com/prometheus/procfs"; + fetch = { + type = "git"; + url = "https://github.com/prometheus/procfs"; + rev = "v0.0.11"; + sha256 = "1msc8bfywsmrgr2ryqjdqwkxiz1ll08r3qgvaka2507z1wpcpj2c"; + }; + } + { + goPackagePath = "github.com/sirupsen/logrus"; + fetch = { + type = "git"; + url = "https://github.com/sirupsen/logrus"; + rev = "v1.6.0"; + sha256 = "1zf9is1yxxnna0d1pyag2m9ziy3l27zb2j92p9msm1gx5jjrvzzj"; + }; + } + { + goPackagePath = "github.com/stretchr/objx"; + fetch = { + type = "git"; + url = "https://github.com/stretchr/objx"; + rev = "v0.1.1"; + sha256 = "0iph0qmpyqg4kwv8jsx6a56a7hhqq8swrazv40ycxk9rzr0s8yls"; + }; + } + { + goPackagePath = "github.com/stretchr/testify"; + fetch = { + type = "git"; + url = "https://github.com/stretchr/testify"; + rev = "v1.5.1"; + sha256 = "09r89m1wy4cjv2nps1ykp00qjpi0531r07q3s34hr7m6njk4srkl"; + }; + } + { + goPackagePath = "golang.org/x/crypto"; + fetch = { + type = "git"; + url = "https://go.googlesource.com/crypto"; + rev = "c2843e01d9a2"; + sha256 = "01xgxbj5r79nmisdvpq48zfy8pzaaj90bn6ngd4nf33j9ar1dp8r"; + }; + } + { + goPackagePath = "golang.org/x/net"; + fetch = { + type = "git"; + url = "https://go.googlesource.com/net"; + rev = "d28f0bde5980"; + sha256 = "18xj31h70m7xxb7gc86n9i21w6d7djbjz67zfaljm4jqskz6hxkf"; + }; + } + { + goPackagePath = "golang.org/x/sync"; + fetch = { + type = "git"; + url = "https://go.googlesource.com/sync"; + rev = "cd5d95a43a6e"; + sha256 = "1nqkyz2y1qvqcma52ijh02s8aiqmkfb95j08f6zcjhbga3ds6hds"; + }; + } + { + goPackagePath = "golang.org/x/sys"; + fetch = { + type = "git"; + url = "https://go.googlesource.com/sys"; + rev = "1957bb5e6d1f"; + sha256 = "0imqk4l9785rw7ddvywyf8zn7k3ga6f17ky8rmf8wrri7nknr03f"; + }; + } + { + goPackagePath = "golang.org/x/text"; + fetch = { + type = "git"; + url = "https://go.googlesource.com/text"; + rev = "v0.3.0"; + sha256 = "0r6x6zjzhr8ksqlpiwm5gdd7s209kwk5p4lw54xjvz10cs3qlq19"; + }; + } + { + goPackagePath = "golang.org/x/xerrors"; + fetch = { + type = "git"; + url = "https://go.googlesource.com/xerrors"; + rev = "9bdfabe68543"; + sha256 = "1yjfi1bk9xb81lqn85nnm13zz725wazvrx3b50hx19qmwg7a4b0c"; + }; + } + { + goPackagePath = "google.golang.org/protobuf"; + fetch = { + type = "git"; + url = "https://go.googlesource.com/protobuf"; + rev = "v1.21.0"; + sha256 = "12bwln8z1lf9105gdp6ip0rx741i4yfz1520gxnp8861lh9wcl63"; + }; + } + { + goPackagePath = "gopkg.in/alecthomas/kingpin.v2"; + fetch = { + type = "git"; + url = "https://gopkg.in/alecthomas/kingpin.v2"; + rev = "v2.2.6"; + sha256 = "0mndnv3hdngr3bxp7yxfd47cas4prv98sqw534mx7vp38gd88n5r"; + }; + } + { + goPackagePath = "gopkg.in/check.v1"; + fetch = { + type = "git"; + url = "https://gopkg.in/check.v1"; + rev = "41f04d3bba15"; + sha256 = "0vfk9czmlxmp6wndq8k17rhnjxal764mxfhrccza7nwlia760pjy"; + }; + } + { + goPackagePath = "gopkg.in/yaml.v2"; + fetch = { + type = "git"; + url = "https://gopkg.in/yaml.v2"; + rev = "v2.2.5"; + sha256 = "08smz8dfyxp02ha74my9iszqa5qzgl3ksi28ilyp8lqipssiq6fg"; + }; + } +] diff --git a/pkgs/servers/monitoring/prometheus/redis-exporter.nix b/pkgs/servers/monitoring/prometheus/redis-exporter.nix new file mode 100644 index 000000000000..ea15fecc8ef0 --- /dev/null +++ b/pkgs/servers/monitoring/prometheus/redis-exporter.nix @@ -0,0 +1,32 @@ +{ stdenv, buildGoPackage, fetchFromGitHub }: + +buildGoPackage rec { + pname = "redis_exporter"; + version = "1.7.0"; + + goPackagePath = "github.com/oliver006/redis_exporter"; + + src = fetchFromGitHub { + owner = "oliver006"; + repo = "redis_exporter"; + rev = "v${version}"; + sha256 = "0rwaxpylividyxz0snfgck32kvpgjkhg20bmdnlp35cdzxcxi8m1"; + }; + + goDeps = ./redis-exporter-deps.nix; + + buildFlagsArray = '' + -ldflags= + -X main.BuildVersion=${version} + -X main.BuildCommitSha=unknown + -X main.BuildDate=unknown + ''; + + meta = with stdenv.lib; { + description = "Prometheus exporter for Redis metrics"; + inherit (src.meta) homepage; + license = licenses.mit; + maintainers = with maintainers; [ eskytthe srhb ]; + platforms = platforms.unix; + }; +} diff --git a/pkgs/servers/nextcloud/default.nix b/pkgs/servers/nextcloud/default.nix index 9a7cc077508f..048de16ceed3 100644 --- a/pkgs/servers/nextcloud/default.nix +++ b/pkgs/servers/nextcloud/default.nix @@ -33,7 +33,7 @@ in { }; nextcloud18 = generic { - version = "18.0.4"; - sha256 = "0aa3f4xbkzacfw0h9aic0ywk5mqlwka83qaszizj8lmk68kf3n7s"; + version = "18.0.6"; + sha256 = "1chmkg31jc1nr53y8r886mmd2jzb78094mrx7ggcfpjfkkv8b89s"; }; } diff --git a/pkgs/servers/routinator/default.nix b/pkgs/servers/routinator/default.nix index 46416c982760..1174d0802ae8 100644 --- a/pkgs/servers/routinator/default.nix +++ b/pkgs/servers/routinator/default.nix @@ -2,16 +2,16 @@ rustPlatform.buildRustPackage rec { pname = "routinator"; - version = "0.7.0"; + version = "0.7.1"; src = fetchFromGitHub { owner = "NLnetLabs"; repo = pname; rev = "v${version}"; - sha256 = "1qbaibmbiw3pffi0cm6d06k1gra4acgxr97gj7f1ckvql5rni4h0"; + sha256 = "12fgvalv12v8690pxmsdg179r170d4mc1kynsb25fm0zggy838jn"; }; - cargoSha256 = "138h99l3vv34higbqj59fa88w7c63c80g3rw07n9j2f834cvr901"; + cargoSha256 = "01118mnb5gm0xqi2c8jj3fk8y55jnnyg9zgn2g4xn7f3i8dcczka"; meta = with stdenv.lib; { description = "An RPKI Validator written in Rust"; diff --git a/pkgs/servers/sql/monetdb/default.nix b/pkgs/servers/sql/monetdb/default.nix index 5a58a52210af..ec232b864637 100644 --- a/pkgs/servers/sql/monetdb/default.nix +++ b/pkgs/servers/sql/monetdb/default.nix @@ -3,7 +3,7 @@ }: let - version = "11.35.19"; + version = "11.37.7"; in stdenv.mkDerivation { pname = "monetdb"; @@ -11,7 +11,7 @@ in stdenv.mkDerivation { src = fetchurl { url = "https://dev.monetdb.org/downloads/sources/archive/MonetDB-${version}.tar.bz2"; - sha256 = "1qfgsv1k23sn6jl7jbxmfh7w7hyzmh8r1cddl4kksqrw41q6h82q"; + sha256 = "00z6c7z4f9ww43574nz32b06rw5ln5fy3hlml32h2wrwsg0cj5jh"; }; postPatch = '' diff --git a/pkgs/shells/fish/default.nix b/pkgs/shells/fish/default.nix index 420aac7607e4..7cd31f14abdb 100644 --- a/pkgs/shells/fish/default.nix +++ b/pkgs/shells/fish/default.nix @@ -79,20 +79,17 @@ let # additional profiles are expected in order of precedence, which means the reverse of the # NIX_PROFILES variable (same as config.environment.profiles) - set -l __nix_profile_paths (echo $NIX_PROFILES | ${coreutils}/bin/tr ' ' '\n')[-1..1] + set -l __nix_profile_paths (string split ' ' $NIX_PROFILES)[-1..1] - set __extra_completionsdir \ + set -p __extra_completionsdir \ $__nix_profile_paths"/etc/fish/completions" \ - $__nix_profile_paths"/share/fish/vendor_completions.d" \ - $__extra_completionsdir - set __extra_functionsdir \ + $__nix_profile_paths"/share/fish/vendor_completions.d" + set -p __extra_functionsdir \ $__nix_profile_paths"/etc/fish/functions" \ - $__nix_profile_paths"/share/fish/vendor_functions.d" \ - $__extra_functionsdir - set __extra_confdir \ + $__nix_profile_paths"/share/fish/vendor_functions.d" + set -p __extra_confdir \ $__nix_profile_paths"/etc/fish/conf.d" \ - $__nix_profile_paths"/share/fish/vendor_conf.d" \ - $__extra_confdir + $__nix_profile_paths"/share/fish/vendor_conf.d" end ''; diff --git a/pkgs/shells/oil/default.nix b/pkgs/shells/oil/default.nix index 019a66c77eb7..bce76b4cc825 100644 --- a/pkgs/shells/oil/default.nix +++ b/pkgs/shells/oil/default.nix @@ -2,11 +2,11 @@ stdenv.mkDerivation rec { pname = "oil"; - version = "0.8.pre4"; + version = "0.8.pre6"; src = fetchurl { url = "https://www.oilshell.org/download/oil-${version}.tar.xz"; - sha256 = "07kj86hrvlz9f1gh3qv4hdaz3qnb4a2qf0dnxhd2r0qilrkjanxh"; + sha256 = "1gbc74in78lbkciz7wzjplrm185wn6fz57n66xmazayivqmpvgfm"; }; postPatch = '' diff --git a/pkgs/shells/zsh/oh-my-zsh/default.nix b/pkgs/shells/zsh/oh-my-zsh/default.nix index 6896904ec9a4..37374900a4ec 100644 --- a/pkgs/shells/zsh/oh-my-zsh/default.nix +++ b/pkgs/shells/zsh/oh-my-zsh/default.nix @@ -4,13 +4,13 @@ { stdenv, fetchgit }: stdenv.mkDerivation rec { - version = "2020-06-17"; + version = "2020-06-18"; pname = "oh-my-zsh"; - rev = "d47447a5e63715ae6ab6c2f46924dc8766c8e746"; + rev = "5ffc0d036c587741fd25092e7809dad2b00b3677"; src = fetchgit { inherit rev; url = "https://github.com/ohmyzsh/ohmyzsh"; - sha256 = "1hfinbmwwinvqnv3ldcja8gqh9n6ll6749055vk8icdixa9jwcyl"; + sha256 = "04a9zg3l824wywk0qcm0pc4n4522cqljyix7kh3frc4psqnhh8qr"; }; pathsToLink = [ "/share/oh-my-zsh" ]; diff --git a/pkgs/tools/X11/xwallpaper/default.nix b/pkgs/tools/X11/xwallpaper/default.nix new file mode 100644 index 000000000000..ad2995b4ca60 --- /dev/null +++ b/pkgs/tools/X11/xwallpaper/default.nix @@ -0,0 +1,27 @@ +{ stdenv, fetchFromGitHub, pkg-config, autoreconfHook, pixman, xcbutil, xcbutilimage +, libseccomp, libjpeg, libpng, libXpm }: + +stdenv.mkDerivation rec { + pname = "xwallpaper"; + version = "0.6.5"; + + src = fetchFromGitHub { + owner = "stoeckmann"; + repo = "xwallpaper"; + rev = "v${version}"; + sha256 = "121ai4dc0v65qk12gn9w62ixly8hc8a5qrygkbb82vy8ck4jqxj7"; + }; + + preConfigure = "./autogen.sh"; + + nativeBuildInputs = [ pkg-config autoreconfHook ]; + buildInputs = [ pixman xcbutilimage xcbutil libseccomp libjpeg libpng libXpm ]; + + meta = with stdenv.lib; { + homepage = "https://github.com/stoeckmann/xwallpaper"; + description = "Utility for setting wallpapers in X"; + license = licenses.isc; + maintainers = with maintainers; [ ivar ]; + platforms = platforms.linux; + }; +} diff --git a/pkgs/tools/filesystems/fuse-overlayfs/default.nix b/pkgs/tools/filesystems/fuse-overlayfs/default.nix index f21f19eb7251..46f6bb404ae9 100644 --- a/pkgs/tools/filesystems/fuse-overlayfs/default.nix +++ b/pkgs/tools/filesystems/fuse-overlayfs/default.nix @@ -2,13 +2,13 @@ stdenv.mkDerivation rec { pname = "fuse-overlayfs"; - version = "1.0.0"; + version = "1.1.0"; src = fetchFromGitHub { owner = "containers"; repo = pname; rev = "v${version}"; - sha256 = "0h1ay2l7zyiqplh8whanw68mcfri79lc03wjjrhqji5ddwznv6fa"; + sha256 = "0dv62kyc8hvwb4gkhyxzwagp87nv0mr1612dz6q835is1vqav134"; }; nativeBuildInputs = [ autoreconfHook pkg-config ]; diff --git a/pkgs/tools/misc/rmlint/default.nix b/pkgs/tools/misc/rmlint/default.nix index 2ea1668409a5..936c78b695d1 100644 --- a/pkgs/tools/misc/rmlint/default.nix +++ b/pkgs/tools/misc/rmlint/default.nix @@ -1,6 +1,22 @@ -{ stdenv, fetchFromGitHub -, gettext, pkgconfig, scons -, glib, json-glib, libelf, sphinx, utillinux }: +{ stdenv +, cairo +, fetchFromGitHub +, gettext +, glib +, gobject-introspection +, gtksourceview3 +, json-glib +, libelf +, makeWrapper +, pango +, pkgconfig +, polkit +, python3 +, scons +, sphinx +, utillinux +, wrapGAppsHook +, withGui ? false }: with stdenv.lib; stdenv.mkDerivation rec { @@ -17,14 +33,39 @@ stdenv.mkDerivation rec { CFLAGS="-I${stdenv.lib.getDev utillinux}/include"; nativeBuildInputs = [ - pkgconfig sphinx gettext scons + pkgconfig + sphinx + gettext + scons + ] ++ stdenv.lib.optionals withGui [ + makeWrapper + wrapGAppsHook ]; buildInputs = [ - glib json-glib libelf utillinux + glib + json-glib + libelf + utillinux + ] ++ stdenv.lib.optionals withGui [ + cairo + gobject-introspection + gtksourceview3 + pango + polkit + python3 + python3.pkgs.pygobject3 ]; - prefixKey = "--prefix="; + # this doesn't seem to support configureFlags, and appends $out afterwards, + # so add the --without-gui in front of it + prefixKey = stdenv.lib.optionalString (!withGui) " --without-gui " + "--prefix="; + + # in GUI mode, this shells out to itself, and tries to import python modules + postInstall = stdenv.lib.optionalString withGui '' + gappsWrapperArgs+=(--prefix PATH : "$out/bin") + gappsWrapperArgs+=(--prefix PYTHONPATH : "$(toPythonPath $out):$(toPythonPath ${python3.pkgs.pygobject3}):$(toPythonPath ${python3.pkgs.pycairo})") + ''; meta = { description = "Extremely fast tool to remove duplicates and other lint from your filesystem"; diff --git a/pkgs/tools/misc/rpm-ostree/default.nix b/pkgs/tools/misc/rpm-ostree/default.nix index 41e59162905a..e04d37ba3c6b 100644 --- a/pkgs/tools/misc/rpm-ostree/default.nix +++ b/pkgs/tools/misc/rpm-ostree/default.nix @@ -32,7 +32,7 @@ , python , json_c , zchunk -, libmodulemd_1 +, libmodulemd , utillinux , sqlite , cppunit @@ -40,13 +40,13 @@ stdenv.mkDerivation rec { pname = "rpm-ostree"; - version = "2020.1"; + version = "2020.2"; outputs = [ "out" "dev" "man" "devdoc" ]; src = fetchurl { url = "https://github.com/coreos/${pname}/releases/download/v${version}/${pname}-${version}.tar.xz"; - sha256 = "1xgfppq4fqqvg3cs327bckjpiz6rrn3bbbhg3q5p4j2bzsq89xiz"; + sha256 = "nuEBEVFqr9J+Nf98GZkvNNYOtpMUjKzYrzCc1T2cR3A="; }; nativeBuildInputs = [ @@ -88,7 +88,7 @@ stdenv.mkDerivation rec { # required by vendored libdnf json_c zchunk - libmodulemd_1 + libmodulemd utillinux # for smartcols.pc sqlite cppunit diff --git a/pkgs/tools/system/tre-command/default.nix b/pkgs/tools/system/tre-command/default.nix index bc0fa7ea988d..b420126a95e6 100644 --- a/pkgs/tools/system/tre-command/default.nix +++ b/pkgs/tools/system/tre-command/default.nix @@ -1,17 +1,17 @@ { rustPlatform, fetchFromGitHub, stdenv }: rustPlatform.buildRustPackage rec { - pname = "tre"; - version = "0.2.3"; + pname = "tre-command"; + version = "0.3.1"; src = fetchFromGitHub { owner = "dduan"; repo = "tre"; rev = "v${version}"; - sha256 = "1fazw2wn738iknbv54gv7qll7d4q2gy9bq1s3f3cv21cdv6bqral"; + sha256 = "1fm3fszy7fd0dgf5dwm35nb0ym0waw92iyx128lr2vlbyzln6ija"; }; - cargoSha256 = "16bvnwgjf3kj99d77j1pkldbasxfwy55sj9sv9vf2z6llfmzfabd"; + cargoSha256 = "0sk4dn5rrqhkaxm76y1d7rsjsw6pdjdhb2xv7qqrlivfk6y5k31x"; meta = with stdenv.lib; { description = "Tree command, improved"; diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 24520d139e77..a5a8f47c1417 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -1656,6 +1656,8 @@ in desync = callPackage ../applications/networking/sync/desync { }; + devdocs-desktop = callPackage ../applications/misc/devdocs-desktop { }; + devmem2 = callPackage ../os-specific/linux/devmem2 { }; dbus-broker = callPackage ../os-specific/linux/dbus-broker { }; @@ -7586,6 +7588,8 @@ in xcruiser = callPackage ../applications/misc/xcruiser { }; + xwallpaper = callPackage ../tools/X11/xwallpaper { }; + xxkb = callPackage ../applications/misc/xxkb { }; ugarit = callPackage ../tools/backup/ugarit { @@ -9229,6 +9233,7 @@ in cargo-inspect = callPackage ../development/tools/rust/cargo-inspect { inherit (darwin.apple_sdk.frameworks) Security; }; + cargo-insta = callPackage ../development/tools/rust/cargo-insta { }; cargo-make = callPackage ../development/tools/rust/cargo-make { inherit (darwin.apple_sdk.frameworks) Security; }; @@ -11041,6 +11046,8 @@ in swiftformat = callPackage ../development/tools/swiftformat { }; + swiftshader = callPackage ../development/libraries/swiftshader { }; + systemfd = callPackage ../development/tools/systemfd { }; swig1 = callPackage ../development/tools/misc/swig { }; @@ -13580,7 +13587,6 @@ in libvdpau = callPackage ../development/libraries/libvdpau { }; libmodulemd = callPackage ../development/libraries/libmodulemd { }; - libmodulemd_1 = callPackage ../development/libraries/libmodulemd/1.nix { }; libvdpau-va-gl = callPackage ../development/libraries/libvdpau-va-gl { }; @@ -15825,11 +15831,7 @@ in mailman-rss = callPackage ../development/python-modules/mailman-rss { }; - mailman-web = with (python3.override { - packageOverrides = self: super: { - django = self.django_1_11; - }; - }).pkgs; toPythonApplication mailman-web; + mailman-web = with python3.pkgs; toPythonApplication mailman-web; mattermost = callPackage ../servers/mattermost { }; matterircd = callPackage ../servers/mattermost/matterircd.nix { }; @@ -16218,6 +16220,7 @@ in prometheus-postgres-exporter = callPackage ../servers/monitoring/prometheus/postgres-exporter.nix { }; prometheus-process-exporter = callPackage ../servers/monitoring/prometheus/process-exporter.nix { }; prometheus-pushgateway = callPackage ../servers/monitoring/prometheus/pushgateway.nix { }; + prometheus-redis-exporter = callPackage ../servers/monitoring/prometheus/redis-exporter.nix { }; prometheus-rabbitmq-exporter = callPackage ../servers/monitoring/prometheus/rabbitmq-exporter.nix { }; prometheus-snmp-exporter = callPackage ../servers/monitoring/prometheus/snmp-exporter.nix { }; prometheus-tor-exporter = callPackage ../servers/monitoring/prometheus/tor-exporter.nix { }; @@ -18288,7 +18291,7 @@ in nordic-polar = callPackage ../data/themes/nordic-polar { }; inherit (callPackages ../data/fonts/noto-fonts {}) - noto-fonts noto-fonts-cjk noto-fonts-emoji noto-fonts-extra; + noto-fonts noto-fonts-cjk noto-fonts-emoji noto-fonts-emoji-blob-bin noto-fonts-extra; nullmailer = callPackage ../servers/mail/nullmailer { stdenv = gccStdenv; @@ -18996,6 +18999,8 @@ in carla = qt5.callPackage ../applications/audio/carla { }; + castor = callPackage ../applications/networking/browsers/castor { }; + catimg = callPackage ../tools/misc/catimg { }; catt = python3Packages.callPackage ../applications/video/catt { }; @@ -26288,6 +26293,8 @@ in sqsh = callPackage ../development/tools/sqsh { }; + go-swagger = callPackage ../development/tools/go-swagger { }; + jx = callPackage ../applications/networking/cluster/jx {}; prow = callPackage ../applications/networking/cluster/prow { };