diff options
116 files changed, 2561 insertions, 841 deletions
diff --git a/.github/CODEOWNERS b/.github/CODEOWNERS index a3a6834dfe5a..15e253be5b80 100644 --- a/.github/CODEOWNERS +++ b/.github/CODEOWNERS @@ -359,3 +359,8 @@ nixos/tests/zfs.nix @raitobezarius nixos/modules/services/continuous-integration/buildbot @Mic92 @zowoq nixos/tests/buildbot.nix @Mic92 @zowoq pkgs/development/tools/continuous-integration/buildbot @Mic92 @zowoq + +# Pretix +pkgs/by-name/pr/pretix/ @mweinelt +nixos/modules/services/web-apps/pretix.nix @mweinelt +nixos/tests/web-apps/pretix.nix @mweinelt diff --git a/nixos/doc/manual/release-notes/rl-2405.section.md b/nixos/doc/manual/release-notes/rl-2405.section.md index b4eea551d270..1c1fe7f997cf 100644 --- a/nixos/doc/manual/release-notes/rl-2405.section.md +++ b/nixos/doc/manual/release-notes/rl-2405.section.md @@ -103,6 +103,8 @@ The pre-existing [services.ankisyncd](#opt-services.ankisyncd.enable) has been m - [Monado](https://monado.freedesktop.org/), an open source XR runtime. Available as [services.monado](#opt-services.monado.enable). +- [Pretix](https://pretix.eu/about/en/), an open source ticketing software for events. Available as [services.pretix]($opt-services-pretix.enable). + - [Clevis](https://github.com/latchset/clevis), a pluggable framework for automated decryption, used to unlock encrypted devices in initrd. Available as [boot.initrd.clevis.enable](#opt-boot.initrd.clevis.enable). - [armagetronad](https://wiki.armagetronad.org), a mid-2000s 3D lightcycle game widely played at iD Tech Camps. You can define multiple servers using `services.armagetronad.<server>.enable`. @@ -320,7 +322,12 @@ The pre-existing [services.ankisyncd](#opt-services.ankisyncd.enable) has been m - `addDriverRunpath` has been added to facilitate the deprecation of the old `addOpenGLRunpath` setuphook. This change is motivated by the evolution of the setuphook to include all hardware acceleration. -- Cinnamon has been updated to 6.0. Please beware that the [Wayland session](https://blog.linuxmint.com/?p=4591) is still experimental in this release. +- Cinnamon has been updated to 6.0. Please beware that the [Wayland session](https://blog.linuxmint.com/?p=4591) is still experimental in this release and could potentially [affect Xorg sessions](https://blog.linuxmint.com/?p=4639). We suggest a reboot when switching between sessions. + +- MATE has been updated to 1.28. + - To properly support panel plugins built with Wayland (in-process) support, we are introducing `services.xserver.desktopManager.mate.extraPanelApplets` option, please use that for installing panel applets. + - Similarly, please use `services.xserver.desktopManager.mate.extraCajaExtensions` option for installing Caja extensions. + - To use the Wayland session, enable `services.xserver.desktopManager.mate.enableWaylandSession`. This is opt-in for now as it is in early stage and introduces a new set of Wayfire closure. Due to [known issues with LightDM](https://github.com/canonical/lightdm/issues/63), we suggest using SDDM for display manager. - New `boot.loader.systemd-boot.xbootldrMountPoint` allows setting up a separate [XBOOTLDR partition](https://uapi-group.org/specifications/specs/boot_loader_specification/) to store boot files. Useful on systems with a small EFI System partition that cannot be easily repartitioned. @@ -347,6 +354,8 @@ The pre-existing [services.ankisyncd](#opt-services.ankisyncd.enable) has been m - [Lilypond](https://lilypond.org/index.html) and [Denemo](https://www.denemo.org) are now compiled with Guile 3.0. +- The EC2 image module now enables the [Amazon SSM Agent](https://docs.aws.amazon.com/systems-manager/latest/userguide/ssm-agent.html) by default. + - The following options of the Nextcloud module were moved into [`services.nextcloud.settings`](#opt-services.nextcloud.settings) and renamed to match the name from Nextcloud's `config.php`: - `logLevel` -> [`loglevel`](#opt-services.nextcloud.settings.loglevel), - `logType` -> [`log_type`](#opt-services.nextcloud.settings.log_type), diff --git a/nixos/modules/hardware/video/webcam/ipu6.nix b/nixos/modules/hardware/video/webcam/ipu6.nix index c2dbdc217bd6..a7767e446bd4 100644 --- a/nixos/modules/hardware/video/webcam/ipu6.nix +++ b/nixos/modules/hardware/video/webcam/ipu6.nix @@ -30,7 +30,10 @@ in ipu6-drivers ]; - hardware.firmware = [ pkgs.ipu6-camera-bins ]; + hardware.firmware = with pkgs; [ + ipu6-camera-bins + ivsc-firmware + ]; services.udev.extraRules = '' SUBSYSTEM=="intel-ipu6-psys", MODE="0660", GROUP="video" diff --git a/nixos/modules/module-list.nix b/nixos/modules/module-list.nix index 41e369ac1c65..2ccaea466c6a 100644 --- a/nixos/modules/module-list.nix +++ b/nixos/modules/module-list.nix @@ -1358,6 +1358,7 @@ ./services/web-apps/plausible.nix ./services/web-apps/powerdns-admin.nix ./services/web-apps/pretalx.nix + ./services/web-apps/pretix.nix ./services/web-apps/prosody-filer.nix ./services/web-apps/rimgo.nix ./services/web-apps/sftpgo.nix diff --git a/nixos/modules/services/networking/networkmanager.nix b/nixos/modules/services/networking/networkmanager.nix index 0a4fcde72111..573a02cbda9e 100644 --- a/nixos/modules/services/networking/networkmanager.nix +++ b/nixos/modules/services/networking/networkmanager.nix @@ -600,6 +600,7 @@ in description = "Ensure that NetworkManager declarative profiles are created"; wantedBy = [ "multi-user.target" ]; before = [ "network-online.target" ]; + after = [ "NetworkManager.service" ]; script = let path = id: "/run/NetworkManager/system-connections/${id}.nmconnection"; in '' @@ -609,9 +610,7 @@ in ${pkgs.envsubst}/bin/envsubst -i ${ini.generate (lib.escapeShellArg profile.n) profile.v} > ${path (lib.escapeShellArg profile.n)} '') (lib.mapAttrsToList (n: v: { inherit n v; }) cfg.ensureProfiles.profiles) + '' - if systemctl is-active --quiet NetworkManager; then - ${pkgs.networkmanager}/bin/nmcli connection reload - fi + ${pkgs.networkmanager}/bin/nmcli connection reload ''; serviceConfig = { EnvironmentFile = cfg.ensureProfiles.environmentFiles; diff --git a/nixos/modules/services/web-apps/komga.nix b/nixos/modules/services/web-apps/komga.nix index 31f475fc7b04..d7ab2a9e612e 100644 --- a/nixos/modules/services/web-apps/komga.nix +++ b/nixos/modules/services/web-apps/komga.nix @@ -1,99 +1,122 @@ -{ config, pkgs, lib, ... }: - -with lib; +{ + config, + pkgs, + lib, + ... +}: let cfg = config.services.komga; - -in { + inherit (lib) mkOption mkEnableOption maintainers; + inherit (lib.types) port str bool; +in +{ options = { services.komga = { - enable = mkEnableOption (lib.mdDoc "Komga, a free and open source comics/mangas media server"); + enable = mkEnableOption "Komga, a free and open source comics/mangas media server"; port = mkOption { - type = types.port; + type = port; default = 8080; - description = lib.mdDoc '' - The port that Komga will listen on. - ''; + description = "The port that Komga will listen on."; }; user = mkOption { - type = types.str; + type = str; default = "komga"; - description = lib.mdDoc '' - User account under which Komga runs. - ''; + description = "User account under which Komga runs."; }; group = mkOption { - type = types.str; + type = str; default = "komga"; - description = lib.mdDoc '' - Group under which Komga runs. - ''; + description = "Group under which Komga runs."; }; stateDir = mkOption { - type = types.str; + type = str; default = "/var/lib/komga"; - description = lib.mdDoc '' - State and configuration directory Komga will use. - ''; + description = "State and configuration directory Komga will use."; }; openFirewall = mkOption { - type = types.bool; + type = bool; default = false; - description = lib.mdDoc '' - Whether to open the firewall for the port in {option}`services.komga.port`. - ''; + description = "Whether to open the firewall for the port in {option}`services.komga.port`."; }; }; }; - config = mkIf cfg.enable { - - networking.firewall.allowedTCPPorts = mkIf cfg.openFirewall [ cfg.port ]; + config = + let + inherit (lib) mkIf getExe; + in + mkIf cfg.enable { - users.groups = mkIf (cfg.group == "komga") { - komga = {}; - }; + networking.firewall.allowedTCPPorts = mkIf cfg.openFirewall [ cfg.port ]; - users.users = mkIf (cfg.user == "komga") { - komga = { - group = cfg.group; - home = cfg.stateDir; - description = "Komga Daemon user"; - isSystemUser = true; - }; - }; + users.groups = mkIf (cfg.group == "komga") { komga = { }; }; - systemd.services.komga = { - environment = { - SERVER_PORT = builtins.toString cfg.port; - KOMGA_CONFIGDIR = cfg.stateDir; + users.users = mkIf (cfg.user == "komga") { + komga = { + group = cfg.group; + home = cfg.stateDir; + description = "Komga Daemon user"; + isSystemUser = true; + }; }; - description = "Komga is a free and open source comics/mangas media server"; - - wantedBy = [ "multi-user.target" ]; - wants = [ "network-online.target" ]; - after = [ "network-online.target" ]; - - serviceConfig = { - User = cfg.user; - Group = cfg.group; - - Type = "simple"; - Restart = "on-failure"; - ExecStart = "${pkgs.komga}/bin/komga"; - - StateDirectory = mkIf (cfg.stateDir == "/var/lib/komga") "komga"; + systemd.services.komga = { + environment = { + SERVER_PORT = builtins.toString cfg.port; + KOMGA_CONFIGDIR = cfg.stateDir; + }; + + description = "Komga is a free and open source comics/mangas media server"; + + wantedBy = [ "multi-user.target" ]; + wants = [ "network-online.target" ]; + after = [ "network-online.target" ]; + + serviceConfig = { + User = cfg.user; + Group = cfg.group; + + Type = "simple"; + Restart = "on-failure"; + ExecStart = getExe pkgs.komga; + + StateDirectory = mkIf (cfg.stateDir == "/var/lib/komga") "komga"; + + RemoveIPC = true; + NoNewPrivileges = true; + CapabilityBoundingSet = ""; + SystemCallFilter = [ "@system-service" ]; + ProtectSystem = "full"; + PrivateTmp = true; + ProtectProc = "invisible"; + ProtectClock = true; + ProcSubset = "pid"; + PrivateUsers = true; + PrivateDevices = true; + ProtectHostname = true; + ProtectKernelTunables = true; + RestrictAddressFamilies = [ + "AF_INET" + "AF_INET6" + "AF_NETLINK" + ]; + LockPersonality = true; + RestrictNamespaces = true; + ProtectKernelLogs = true; + ProtectControlGroups = true; + ProtectKernelModules = true; + SystemCallArchitectures = "native"; + RestrictSUIDSGID = true; + RestrictRealtime = true; + }; }; - }; - }; meta.maintainers = with maintainers; [ govanify ]; } diff --git a/nixos/modules/services/web-apps/pretix.nix b/nixos/modules/services/web-apps/pretix.nix new file mode 100644 index 000000000000..65e658d474eb --- /dev/null +++ b/nixos/modules/services/web-apps/pretix.nix @@ -0,0 +1,579 @@ +{ config +, lib +, pkgs +, utils +, ... +}: + +let + inherit (lib) + concatMapStringsSep + escapeShellArgs + filter + filterAttrs + getExe + getExe' + isAttrs + isList + literalExpression + mapAttrs + mkDefault + mkEnableOption + mkIf + mkOption + mkPackageOption + optionals + optionalString + recursiveUpdate + types + ; + + filterRecursiveNull = o: + if isAttrs o then + mapAttrs (_: v: filterRecursiveNull v) (filterAttrs (_: v: v != null) o) + else if isList o then + map filterRecursiveNull (filter (v: v != null) o) + else + o; + + cfg = config.services.pretix; + format = pkgs.formats.ini { }; + + configFile = format.generate "pretix.cfg" (filterRecursiveNull cfg.settings); + + finalPackage = cfg.package.override { + inherit (cfg) plugins; + }; + + pythonEnv = cfg.package.python.buildEnv.override { + extraLibs = with cfg.package.python.pkgs; [ + (toPythonModule finalPackage) + gunicorn + ] + ++ lib.optionals (cfg.settings.memcached.location != null) + cfg.package.optional-dependencies.memcached + ; + }; + + withRedis = cfg.settings.redis.location != null; +in +{ + meta = with lib; { + maintainers = with maintainers; [ hexa ]; + }; + + options.services.pretix = { + enable = mkEnableOption "pretix"; + + package = mkPackageOption pkgs "pretix" { }; + + group = mkOption { + type = types.str; + default = "pretix"; + description = '' + Group under which pretix should run. + ''; + }; + + user = mkOption { + type = types.str; + default = "pretix"; + description = '' + User under which pretix should run. + ''; + }; + + environmentFile = mkOption { + type = types.nullOr types.path; + default = null; + example = "/run/keys/pretix-secrets.env"; + description = '' + Environment file to pass secret configuration values. + + Each line must follow the `PRETIX_SECTION_KEY=value` pattern. + ''; + }; + + plugins = mkOption { + type = types.listOf types.package; + default = []; + example = literalExpression '' + with config.services.pretix.package.plugins; [ + passbook + pages + ]; + ''; + description = '' + Pretix plugins to install into the Python environment. + ''; + }; + + gunicorn.extraArgs = mkOption { + type = with types; listOf str; + default = [ + "--name=pretix" + ]; + example = [ + "--name=pretix" + "--workers=4" + "--max-requests=1200" + "--max-requests-jitter=50" + "--log-level=info" + ]; + description = '' + Extra arguments to pass to gunicorn. + See <https://docs.pretix.eu/en/latest/admin/installation/manual_smallscale.html#start-pretix-as-a-service> for details. + ''; + apply = escapeShellArgs; + }; + + celery = { + extraArgs = mkOption { + type = with types; listOf str; + default = [ ]; + description = '' + Extra arguments to pass to celery. + + See <https://docs.celeryq.dev/en/stable/reference/cli.html#celery-worker> for more info. + ''; + apply = utils.escapeSystemdExecArgs; + }; + }; + + nginx = { + enable = mkOption { + type = types.bool; + default = true; + example = false; + description = '' + Whether to set up an nginx virtual host. + ''; + }; + + domain = mkOption { + type = types.str; + example = "talks.example.com"; + description = '' + The domain name under which to set up the virtual host. + ''; + }; + }; + + database.createLocally = mkOption { + type = types.bool; + default = true; + example = false; + description = '' + Whether to automatically set up the database on the local DBMS instance. + + Only supported for PostgreSQL. Not required for sqlite. + ''; + }; + + settings = mkOption { + type = types.submodule { + freeformType = format.type; + options = { + pretix = { + instance_name = mkOption { + type = types.str; + example = "tickets.example.com"; + description = '' + The name of this installation. + ''; + }; + + url = mkOption { + type = types.str; + example = "https://tickets.example.com"; + description = '' + The installation’s full URL, without a trailing slash. + ''; + }; + + cachedir = mkOption { + type = types.path; + default = "/var/cache/pretix"; + description = '' + Directory for storing temporary files. + ''; + }; + + datadir = mkOption { + type = types.path; + default = "/var/lib/pretix"; + description = '' + Directory for storing user uploads and similar data. + ''; + }; + + logdir = mkOption { + type = types.path; + default = "/var/log/pretix"; + description = '' + Directory for storing log files. + ''; + }; + + currency = mkOption { + type = types.str; + default = "EUR"; + example = "USD"; + description = '' + Default currency for events in its ISO 4217 three-letter code. + ''; + }; + + registration = mkOption { + type = types.bool; + default = false; + example = true; + description = '' + Whether to allow registration of new admin users. + ''; + }; + }; + + database = { + backend = mkOption { + type = types.enum [ + "sqlite3" + "postgresql" + ]; + default = "postgresql"; + description = '' + Database backend to use. + + Only postgresql is recommended for production setups. + ''; + }; + + host = mkOption { + type = with types; nullOr types.path; + default = if cfg.settings.database.backend == "postgresql" then "/run/postgresql" else null; + defaultText = literalExpression '' + if config.services.pretix.settings..database.backend == "postgresql" then "/run/postgresql" + else null + ''; + description = '' + Database host or socket path. + ''; + }; + + name = mkOption { + type = types.str; + default = "pretix"; + description = '' + Database name. + ''; + }; + + user = mkOption { + type = types.str; + default = "pretix"; + description = '' + Database username. + ''; + }; + }; + + mail = { + from = mkOption { + type = types.str; + example = "tickets@example.com"; + description = '' + E-Mail address used in the `FROM` header of outgoing mails. + ''; + }; + + host = mkOption { + type = types.str; + default = "localhost"; + example = "mail.example.com"; + description = '' + Hostname of the SMTP server use for mail delivery. + ''; + }; + + port = mkOption { + type = types.port; + default = 25; + example = 587; + description = '' + Port of the SMTP server to use for mail delivery. + ''; + }; + }; + + celery = { + backend = mkOption { + type = types.str; + default = "redis+socket://${config.services.redis.servers.pretix.unixSocket}?virtual_host=1"; + defaultText = literalExpression '' + optionalString config.services.pretix.celery.enable "redis+socket://''${config.services.redis.servers.pretix.unixSocket}?virtual_host=1" + ''; + description = '' + URI to the celery backend used for the asynchronous job queue. + ''; + }; + + broker = mkOption { + type = types.str; + default = "redis+socket://${config.services.redis.servers.pretix.unixSocket}?virtual_host=2"; + defaultText = literalExpression '' + optionalString config.services.pretix.celery.enable "redis+socket://''${config.services.redis.servers.pretix.unixSocket}?virtual_host=2" + ''; + description = '' + URI to the celery broker used for the asynchronous job queue. + ''; + }; + }; + + redis = { + location = mkOption { + type = with types; nullOr str; + default = "unix://${config.services.redis.servers.pretix.unixSocket}?db=0"; + defaultText = literalExpression '' + "unix://''${config.services.redis.servers.pretix.unixSocket}?db=0" + ''; + description = '' + URI to the redis server, used to speed up locking, caching and session storage. + ''; + }; + + sessions = mkOption { + type = types.bool; + default = true; + example = false; + description = '' + Whether to use redis as the session storage. + ''; + }; + }; + + memcached = { + location = mkOption { + type = with types; nullOr str; + default = null; + example = "127.0.0.1:11211"; + description = '' + The `host:port` combination or the path to the UNIX socket of a memcached instance. + + Can be used instead of Redis for caching. + ''; + }; + }; + + tools = { + pdftk = mkOption { + type = types.path; + default = getExe pkgs.pdftk; + defaultText = literalExpression '' + lib.getExe pkgs.pdftk + ''; + description = '' + Path to the pdftk executable. + ''; + }; + }; + }; + }; + default = { }; + description = '' + pretix configuration as a Nix attribute set. All settings can also be passed + from the environment. + + See <https://docs.pretix.eu/en/latest/admin/config.html> for possible options. + ''; + }; + }; + + config = mkIf cfg.enable { + # https://docs.pretix.eu/en/latest/admin/installation/index.html + + environment.systemPackages = [ + (pkgs.writeScriptBin "pretix-manage" '' + cd ${cfg.settings.pretix.datadir} + sudo=exec + if [[ "$USER" != ${cfg.user} ]]; then + sudo='exec /run/wrappers/bin/sudo -u ${cfg.user} ${optionalString withRedis "-g redis-pretix"} --preserve-env=PRETIX_CONFIG_FILE' + fi + export PRETIX_CONFIG_FILE=${configFile} + $sudo ${getExe' pythonEnv "pretix-manage"} "$@" + '') + ]; + + services = { + nginx = mkIf cfg.nginx.enable { + enable = true; + recommendedGzipSettings = mkDefault true; + recommendedOptimisation = mkDefault true; + recommendedProxySettings = mkDefault true; + recommendedTlsSettings = mkDefault true; + upstreams.pretix.servers."unix:/run/pretix/pretix.sock" = { }; + virtualHosts.${cfg.nginx.domain} = { + # https://docs.pretix.eu/en/latest/admin/installation/manual_smallscale.html#ssl + extraConfig = '' + more_set_headers Referrer-Policy same-origin; + more_set_headers X-Content-Type-Options nosniff; + ''; + locations = { + "/".proxyPass = "http://pretix"; + "/media/" = { + alias = "${cfg.settings.pretix.datadir}/media/"; + extraConfig = '' + access_log off; + expires 7d; + ''; + }; + "^~ /media/(cachedfiles|invoices)" = { + extraConfig = '' + deny all; + return 404; + ''; + }; + "/static/" = { + alias = "${finalPackage}/${cfg.package.python.sitePackages}/pretix/static.dist/"; + extraConfig = '' + access_log off; + more_set_headers Cache-Control "public"; + expires 365d; + ''; + }; + }; + }; + }; + + postgresql = mkIf (cfg.database.createLocally && cfg.settings.database.backend == "postgresql") { + enable = true; + ensureUsers = [ { + name = cfg.settings.database.user; + ensureDBOwnership = true; + } ]; + ensureDatabases = [ cfg.settings.database.name ]; + }; + + redis.servers.pretix.enable = withRedis; + }; + + systemd.services = let + commonUnitConfig = { + environment.PRETIX_CONFIG_FILE = configFile; + serviceConfig = { + User = "pretix"; + Group = "pretix"; + EnvironmentFile = optionals (cfg.environmentFile != null) [ + cfg.environmentFile + ]; + StateDirectory = [ + "pretix" + ]; + CacheDirectory = "pretix"; + LogsDirectory = "pretix"; + WorkingDirectory = cfg.settings.pretix.datadir; + SupplementaryGroups = optionals withRedis [ + "redis-pretix" + ]; + AmbientCapabilities = ""; + CapabilityBoundingSet = [ "" ]; + DevicePolicy = "closed"; + LockPersonality = true; + MemoryDenyWriteExecute = true; + NoNewPrivileges = true; + PrivateDevices = true; + PrivateTmp = true; + ProcSubset = "pid"; + ProtectControlGroups = true; + ProtectHome = true; + ProtectHostname = true; + ProtectKernelLogs = true; + ProtectKernelModules = true; + ProtectKernelTunables = true; + ProtectProc = "invisible"; + ProtectSystem = "strict"; + RemoveIPC = true; + RestrictAddressFamilies = [ + "AF_INET" + "AF_INET6" + "AF_UNIX" + ]; + RestrictNamespaces = true; + RestrictRealtime = true; + RestrictSUIDSGID = true; + SystemCallArchitectures = "native"; + SystemCallFilter = [ + "@system-service" + "~@privileged" + "@chown" + ]; + UMask = "0077"; + }; + }; + in { + pretix-web = recursiveUpdate commonUnitConfig { + description = "pretix web service"; + after = [ + "network.target" + "redis-pretix.service" + "postgresql.service" + ]; + wantedBy = [ "multi-user.target" ]; + preStart = '' + versionFile="${cfg.settings.pretix.datadir}/.version" + version=$(cat "$versionFile" 2>/dev/null || echo 0) + + pluginsFile="${cfg.settings.pretix.datadir}/.plugins" + plugins=$(cat "$pluginsFile" 2>/dev/null || echo "") + configuredPlugins="${concatMapStringsSep "|" (package: package.name) cfg.plugins}" + + if [[ $version != ${cfg.package.version} || $plugins != $configuredPlugins ]]; then + ${getExe' pythonEnv "pretix-manage"} migrate + + echo "${cfg.package.version}" > "$versionFile" + echo "$configuredPlugins" > "$pluginsFile" + fi + ''; + serviceConfig = { + ExecStart = "${getExe' pythonEnv "gunicorn"} --bind unix:/run/pretix/pretix.sock ${cfg.gunicorn.extraArgs} pretix.wsgi"; + RuntimeDirectory = "pretix"; + }; + }; + + pretix-periodic = recursiveUpdate commonUnitConfig { + description = "pretix periodic task runner"; + # every 15 minutes + startAt = [ "*:3,18,33,48" ]; + serviceConfig = { + Type = "oneshot"; + ExecStart = "${getExe' pythonEnv "pretix-manage"} runperiodic"; + }; + }; + + pretix-worker = recursiveUpdate commonUnitConfig { + description = "pretix asynchronous job runner"; + after = [ + "network.target" + "redis-pretix.service" + "postgresql.service" + ]; + wantedBy = [ "multi-user.target" ]; + serviceConfig.ExecStart = "${getExe' pythonEnv "celery"} -A pretix.celery_app worker ${cfg.celery.extraArgs}"; + }; + }; + + systemd.sockets.pretix-web.socketConfig = { + ListenStream = "/run/pretix/pretix.sock"; + SocketUser = "nginx"; + }; + + users = { + groups."${cfg.group}" = {}; + users."${cfg.user}" = { + isSystemUser = true; + createHome = true; + home = cfg.settings.pretix.datadir; + inherit (cfg) group; + }; + }; + }; +} diff --git a/nixos/modules/services/x11/desktop-managers/mate.nix b/nixos/modules/services/x11/desktop-managers/mate.nix index f535a1d298b9..957eac7848e7 100644 --- a/nixos/modules/services/x11/desktop-managers/mate.nix +++ b/nixos/modules/services/x11/desktop-managers/mate.nix @@ -20,6 +20,22 @@ in }; debug = mkEnableOption (lib.mdDoc "mate-session debug messages"); + + extraPanelApplets = mkOption { + default = [ ]; + example = literalExpression "with pkgs.mate; [ mate-applets ]"; + type = types.listOf types.package; + description = lib.mdDoc "Extra applets to add to mate-panel."; + }; + + extraCajaExtensions = mkOption { + default = [ ]; + example = lib.literalExpression "with pkgs.mate; [ caja-extensions ]"; + type = types.listOf types.package; + description = lib.mdDoc "Extra extensions to add to caja."; + }; + + enableWaylandSession = mkEnableOption (lib.mdDoc "MATE Wayland session"); }; environment.mate.excludePackages = mkOption { @@ -31,55 +47,63 @@ in }; - config = mkIf cfg.enable { - - services.xserver.displayManager.sessionPackages = [ - pkgs.mate.mate-session-manager - ]; - - # Let caja find extensions - environment.sessionVariables.CAJA_EXTENSION_DIRS = [ "${config.system.path}/lib/caja/extensions-2.0" ]; - - # Let mate-panel find applets - environment.sessionVariables."MATE_PANEL_APPLETS_DIR" = "${config.system.path}/share/mate-panel/applets"; - environment.sessionVariables."MATE_PANEL_EXTRA_MODULES" = "${config.system.path}/lib/mate-panel/applets"; - - # Debugging - environment.sessionVariables.MATE_SESSION_DEBUG = mkIf cfg.debug "1"; - - environment.systemPackages = utils.removePackagesByName - (pkgs.mate.basePackages ++ - pkgs.mate.extraPackages ++ - [ - pkgs.desktop-file-utils - pkgs.glib - pkgs.gtk3.out - pkgs.shared-mime-info - pkgs.xdg-user-dirs # Update user dirs as described in https://freedesktop.org/wiki/Software/xdg-user-dirs/ - pkgs.yelp # for 'Contents' in 'Help' menus - ]) - config.environment.mate.excludePackages; - - programs.dconf.enable = true; - # Shell integration for VTE terminals - programs.bash.vteIntegration = mkDefault true; - programs.zsh.vteIntegration = mkDefault true; - - # Mate uses this for printing - programs.system-config-printer.enable = (mkIf config.services.printing.enable (mkDefault true)); - - services.gnome.at-spi2-core.enable = true; - services.gnome.gnome-keyring.enable = true; - services.udev.packages = [ pkgs.mate.mate-settings-daemon ]; - services.gvfs.enable = true; - services.upower.enable = config.powerManagement.enable; - services.xserver.libinput.enable = mkDefault true; - - security.pam.services.mate-screensaver.unixAuth = true; - - xdg.portal.configPackages = mkDefault [ pkgs.mate.mate-desktop ]; - - environment.pathsToLink = [ "/share" ]; - }; - + config = mkMerge [ + (mkIf (cfg.enable || cfg.enableWaylandSession) { + services.xserver.displayManager.sessionPackages = [ + pkgs.mate.mate-session-manager + ]; + + # Debugging + environment.sessionVariables.MATE_SESSION_DEBUG = mkIf cfg.debug "1"; + + environment.systemPackages = utils.removePackagesByName + (pkgs.mate.basePackages ++ + pkgs.mate.extraPackages ++ + [ + (pkgs.mate.caja-with-extensions.override { + extensions = cfg.extraCajaExtensions; + }) + (pkgs.mate.mate-panel-with-applets.override { + applets = cfg.extraPanelApplets; + }) + pkgs.desktop-file-utils + pkgs.glib + pkgs.gtk3.out + pkgs.shared-mime-info + pkgs.xdg-user-dirs # Update user dirs as described in https://freedesktop.org/wiki/Software/xdg-user-dirs/ + pkgs.yelp # for 'Contents' in 'Help' menus + ]) + config.environment.mate.excludePackages; + + programs.dconf.enable = true; + # Shell integration for VTE terminals + programs.bash.vteIntegration = mkDefault true; + programs.zsh.vteIntegration = mkDefault true; + + # Mate uses this for printing + programs.system-config-printer.enable = (mkIf config.services.printing.enable (mkDefault true)); + + services.gnome.at-spi2-core.enable = true; + services.gnome.gnome-keyring.enable = true; + services.udev.packages = [ pkgs.mate.mate-settings-daemon ]; + services.gvfs.enable = true; + services.upower.enable = config.powerManagement.enable; + services.xserver.libinput.enable = mkDefault true; + + security.pam.services.mate-screensaver.unixAuth = true; + + xdg.portal.configPackages = mkDefault [ pkgs.mate.mate-desktop ]; + + environment.pathsToLink = [ "/share" ]; + }) + (mkIf cfg.enableWaylandSession { + programs.wayfire.enable = true; + programs.wayfire.plugins = [ pkgs.wayfirePlugins.firedecor ]; + + environment.sessionVariables.NIX_GSETTINGS_OVERRIDES_DIR = "${pkgs.mate.mate-gsettings-overrides}/share/gsettings-schemas/nixos-gsettings-overrides/glib-2.0/schemas"; + + environment.systemPackages = [ pkgs.mate.mate-wayland-session ]; + services.xserver.displayManager.sessionPackages = [ pkgs.mate.mate-wayland-session ]; + }) + ]; } diff --git a/nixos/modules/virtualisation/amazon-image.nix b/nixos/modules/virtualisation/amazon-image.nix index c7fe1bed5159..77730178422c 100644 --- a/nixos/modules/virtualisation/amazon-image.nix +++ b/nixos/modules/virtualisation/amazon-image.nix @@ -79,6 +79,10 @@ in serviceConfig.StandardOutput = "journal+console"; }; + # Amazon-issued AMIs include the SSM Agent by default, so we do the same. + # https://docs.aws.amazon.com/systems-manager/latest/userguide/ami-preinstalled-agent.html + services.amazon-ssm-agent.enable = true; + # Allow root logins only using the SSH key that the user specified # at instance creation time. services.openssh.enable = true; diff --git a/nixos/tests/all-tests.nix b/nixos/tests/all-tests.nix index 6726b9071ef6..89e92bc8a999 100644 --- a/nixos/tests/all-tests.nix +++ b/nixos/tests/all-tests.nix @@ -513,6 +513,7 @@ in { mastodon = discoverTests (import ./web-apps/mastodon { inherit handleTestOn; }); pixelfed = discoverTests (import ./web-apps/pixelfed { inherit handleTestOn; }); mate = handleTest ./mate.nix {}; + mate-wayland = handleTest ./mate-wayland.nix {}; matter-server = handleTest ./matter-server.nix {}; matomo = handleTest ./matomo.nix {}; matrix-appservice-irc = handleTest ./matrix/appservice-irc.nix {}; @@ -729,6 +730,7 @@ in { pppd = handleTest ./pppd.nix {}; predictable-interface-names = handleTest ./predictable-interface-names.nix {}; pretalx = runTest ./web-apps/pretalx.nix; + pretix = runTest ./web-apps/pretix.nix; printing-socket = handleTest ./printing.nix { socket = true; }; printing-service = handleTest ./printing.nix { socket = false; }; privoxy = handleTest ./privoxy.nix {}; diff --git a/nixos/tests/mate-wayland.nix b/nixos/tests/mate-wayland.nix new file mode 100644 index 000000000000..df39ead286e1 --- /dev/null +++ b/nixos/tests/mate-wayland.nix @@ -0,0 +1,63 @@ +import ./make-test-python.nix ({ pkgs, lib, ... }: { + name = "mate-wayland"; + + meta.maintainers = lib.teams.mate.members; + + nodes.machine = { ... }: { + imports = [ + ./common/user-account.nix + ]; + + services.xserver.enable = true; + services.xserver.displayManager = { + sddm.enable = true; # https://github.com/canonical/lightdm/issues/63 + sddm.wayland.enable = true; + defaultSession = "MATE"; + autoLogin = { + enable = true; + user = "alice"; + }; + }; + services.xserver.desktopManager.mate.enableWaylandSession = true; + + hardware.pulseaudio.enable = true; + + # Need to switch to a different GPU driver than the default one (-vga std) so that wayfire can launch: + virtualisation.qemu.options = [ "-vga none -device virtio-gpu-pci" ]; + }; + + enableOCR = true; + + testScript = { nodes, ... }: + let + user = nodes.machine.users.users.alice; + in + '' + machine.wait_for_unit("display-manager.service") + + with subtest("Wait for Wayland server"): + machine.wait_for_file("/run/user/${toString user.uid}/wayland-1") + + with subtest("Check if MATE session components actually start"): + for i in ["wayfire", "mate-panel", "mate-wayland.sh", "mate-wayland-components.sh"]: + machine.wait_until_succeeds(f"pgrep -f {i}") + machine.wait_for_text('(Applications|Places|System)') + # It is expected that this applet doesn't work in Wayland + machine.wait_for_text('WorkspaceSwitcherApplet') + + with subtest("Check if various environment variables are set"): + cmd = "xargs --null --max-args=1 echo < /proc/$(pgrep -xf mate-panel)/environ" + machine.succeed(f"{cmd} | grep 'XDG_SESSION_TYPE' | grep 'wayland'") + machine.succeed(f"{cmd} | grep 'XDG_SESSION_DESKTOP' | grep 'MATE'") + machine.succeed(f"{cmd} | grep 'MATE_PANEL_APPLETS_DIR' | grep '${pkgs.mate.mate-panel-with-applets.pname}'") + + with subtest("Check if Wayfire config is properly configured"): + for i in ["button_style = mate", "firedecor", "mate-wayland-components.sh"]: + machine.wait_until_succeeds(f"cat /home/${user.name}/.config/mate/wayfire.ini | grep '{i}'") + + with subtest("Check if Wayfire has ever coredumped"): + machine.fail("coredumpctl --json=short | grep wayfire") + machine.sleep(10) + machine.screenshot("screen") + ''; +}) diff --git a/nixos/tests/mate.nix b/nixos/tests/mate.nix index 48582e18d520..1252ec43cf3d 100644 --- a/nixos/tests/mate.nix +++ b/nixos/tests/mate.nix @@ -54,6 +54,15 @@ import ./make-test-python.nix ({ pkgs, lib, ... }: { machine.wait_for_text('(Applications|Places|System)') machine.wait_for_text('(Computer|Home|Trash)') + with subtest("Check if various environment variables are set"): + machine.succeed("xargs --null --max-args=1 echo < /proc/$(pgrep -xf marco)/environ | grep 'XDG_CURRENT_DESKTOP' | grep 'MATE'") + # From mate-panel-with-applets packaging + machine.succeed("xargs --null --max-args=1 echo < /proc/$(pgrep -xf mate-panel)/environ | grep 'MATE_PANEL_APPLETS_DIR' | grep '${pkgs.mate.mate-panel-with-applets.pname}'") + + with subtest("Check if applets are built with in-process support"): + # This is needed for Wayland support + machine.fail("pgrep -fa clock-applet") + with subtest("Lock the screen"): machine.wait_until_succeeds("su - ${user.name} -c '${env} mate-screensaver-command -q' | grep 'The screensaver is inactive'") machine.succeed("su - ${user.name} -c '${env} mate-screensaver-command -l >&2 &'") diff --git a/nixos/tests/web-apps/pretix.nix b/nixos/tests/web-apps/pretix.nix new file mode 100644 index 000000000000..559316f9b85c --- /dev/null +++ b/nixos/tests/web-apps/pretix.nix @@ -0,0 +1,47 @@ +{ + lib, + pkgs, + ... +}: + +{ + name = "pretix"; + meta.maintainers = with lib.maintainers; [ hexa ]; + + nodes = { + pretix = { + networking.extraHosts = '' + 127.0.0.1 tickets.local + ''; + + services.pretix = { + enable = true; + nginx.domain = "tickets.local"; + plugins = with pkgs.pretix.plugins; [ + passbook + pages + ]; + settings = { + pretix = { + instance_name = "NixOS Test"; + url = "http://tickets.local"; + }; + mail.from = "hello@tickets.local"; + }; + }; + }; + }; + + testScript = '' + start_all() + + pretix.wait_for_unit("pretix-web.service") + pretix.wait_for_unit("pretix-worker.service") + + pretix.wait_until_succeeds("curl -q --fail http://tickets.local") + + pretix.succeed("pretix-manage --help") + + pretix.log(pretix.succeed("systemd-analyze security pretix-web.service")) + ''; +} diff --git a/pkgs/applications/editors/vim/plugins/generated.nix b/pkgs/applications/editors/vim/plugins/generated.nix index 75f34b1d32a9..245d333d3c07 100644 --- a/pkgs/applications/editors/vim/plugins/generated.nix +++ b/pkgs/applications/editors/vim/plugins/generated.nix @@ -6625,14 +6625,14 @@ final: prev: neotest-pest = buildVimPlugin { pname = "neotest-pest"; - version = "2024-02-16"; + version = "2024-03-04"; src = fetchFromGitHub { - owner = "theutz"; + owner = "V13Axel"; repo = "neotest-pest"; - rev = "94ed941af4ea6e7d0caa4de8afbf966f3cfe35e4"; - sha256 = "1655rpr007ix9z4nxkabnvdk8c0kj080waxddaq656dhdzdj7l1q"; + rev = "25501800b5b8da578a03bb178a007d6f8abe7ae3"; + sha256 = "sha256-S36yvNrg6rroZbySOt9SKrHGSV6HUgRlSPUh79RNZ7M="; }; - meta.homepage = "https://github.com/theutz/neotest-pest/"; + meta.homepage = "https://github.com/V13Axel/neotest-pest/"; }; neotest-phpunit = buildVimPlugin { diff --git a/pkgs/applications/editors/vim/plugins/vim-plugin-names b/pkgs/applications/editors/vim/plugins/vim-plugin-names index 78c923ef87d5..10bf21e16d20 100644 --- a/pkgs/applications/editors/vim/plugins/vim-plugin-names +++ b/pkgs/applications/editors/vim/plugins/vim-plugin-names @@ -555,7 +555,7 @@ https://github.com/jfpedroza/neotest-elixir/,HEAD, https://github.com/nvim-neotest/neotest-go/,HEAD, https://github.com/MrcJkb/neotest-haskell/,HEAD, https://github.com/haydenmeade/neotest-jest/,HEAD, -https://github.com/theutz/neotest-pest/,HEAD, +https://github.com/V13Axel/neotest-pest/,HEAD, https://github.com/olimorris/neotest-phpunit/,HEAD, https://github.com/nvim-neotest/neotest-plenary/,HEAD, https://github.com/nvim-neotest/neotest-python/,HEAD, diff --git a/pkgs/applications/gis/qgis/unwrapped.nix b/pkgs/applications/gis/qgis/unwrapped.nix index ac72139796d4..04c02c8c0d78 100644 --- a/pkgs/applications/gis/qgis/unwrapped.nix +++ b/pkgs/applications/gis/qgis/unwrapped.nix @@ -98,9 +98,9 @@ in mkDerivation rec { wrapGAppsHook wrapQtAppsHook + bison cmake flex - bison ninja ]; diff --git a/pkgs/applications/misc/makeself/default.nix b/pkgs/applications/misc/makeself/default.nix index 7c2d33aebc00..91a2e11b3666 100644 --- a/pkgs/applications/misc/makeself/default.nix +++ b/pkgs/applications/misc/makeself/default.nix @@ -23,16 +23,18 @@ stdenv.mkDerivation rec { checkTarget = "test"; nativeCheckInputs = [ which zstd pbzip2 ]; + sharePath = "$out/share/${pname}"; + installPhase = '' runHook preInstall installManPage makeself.1 install -Dm555 makeself.sh $out/bin/makeself - install -Dm444 -t $out/share/${pname}/ makeself.lsm README.md makeself-header.sh + install -Dm444 -t ${sharePath}/ makeself.lsm README.md makeself-header.sh runHook postInstall ''; fixupPhase = '' - sed -e "s|^HEADER=.*|HEADER=$out/share/${pname}-${version}/makeself-header.sh|" -i $out/bin/makeself + sed -e "s|^HEADER=.*|HEADER=${sharePath}/makeself-header.sh|" -i $out/bin/makeself ''; meta = with lib; { diff --git a/pkgs/applications/networking/cluster/bosh-cli/default.nix b/pkgs/applications/networking/cluster/bosh-cli/default.nix index ab20b2dc72cc..0daf7ae97ba1 100644 --- a/pkgs/applications/networking/cluster/bosh-cli/default.nix +++ b/pkgs/applications/networking/cluster/bosh-cli/default.nix @@ -8,13 +8,13 @@ buildGoModule rec { pname = "bosh-cli"; - version = "7.5.4"; + version = "7.5.5"; src = fetchFromGitHub { owner = "cloudfoundry"; repo = pname; rev = "v${version}"; - sha256 = "sha256-aNzKp7QwyhC/ado0NrCyxrRZu+ePGBNSq31/Iw6k6n0="; + sha256 = "sha256-LjqMCkEIl+0psxIys/tvJPkEQqDRzLOsaFUfAVG+RrE="; }; vendorHash = null; diff --git a/pkgs/applications/networking/pjsip/default.nix b/pkgs/applications/networking/pjsip/default.nix index 2cf57b8b6c00..124a1d40f3b3 100644 --- a/pkgs/applications/networking/pjsip/default.nix +++ b/pkgs/applications/networking/pjsip/default.nix @@ -15,13 +15,13 @@ }: stdenv.mkDerivation (finalAttrs: { pname = "pjsip"; - version = "2.14"; + version = "2.14.1"; src = fetchFromGitHub { owner = finalAttrs.pname; repo = "pjproject"; rev = "refs/tags/${finalAttrs.version}"; - hash = "sha256-PWCeIvnBAOqbcNYPhIY7hykdvLzoD9lssSViCCPNT68="; + hash = "sha256-LDA3o1QMrAxcGuOi/YRoMzXmw/wFkfDs2wweZuIJ2RY="; }; patches = [ diff --git a/pkgs/applications/video/mythtv/default.nix b/pkgs/applications/video/mythtv/default.nix index deea5c1cb493..fba7eb16839e 100644 --- a/pkgs/applications/video/mythtv/default.nix +++ b/pkgs/applications/video/mythtv/default.nix @@ -8,34 +8,18 @@ mkDerivation rec { pname = "mythtv"; - version = "32.0"; + version = "34.0"; src = fetchFromGitHub { owner = "MythTV"; repo = "mythtv"; rev = "v${version}"; - sha256 = "0i4fs3rbk1jggh62wflpa2l03na9i1ihpz2vsdic9vfahqqjxff1"; + hash = "sha256-6/TEoyYIRq6pufYzGOmO5DB05JuDo9lqRAYT5N5M/L4="; }; patches = [ # Disable sourcing /etc/os-release ./dont-source-os-release.patch - - # Fix QMake variable substitution syntax - MythTV/mythtv#550 - (fetchpatch { - name = "fix-qmake-var-syntax.patch"; - url = "https://github.com/MythTV/mythtv/commit/a8da7f7e7ec069164adbef65a8104adc9bb52e36.patch"; - stripLen = 1; - hash = "sha256-JfRME00YNNjl6SKs1HBa0wBa/lR/Rt3zbQtWhsC36JM="; - }) - - # Bachport the build against binutils-2.41 - (fetchpatch { - name = "binutils-2.41.patch"; - url = "https://github.com/MythTV/mythtv/commit/f9f9bba62ee2743c816cb2b9634b6b4397e5e2e3.patch"; - stripLen = 1; - hash = "sha256-IcXgBtfqPZ42inYFe7l8mWvKUV13S/YEQAHcOFaDivI="; - }) ]; setSourceRoot = "sourceRoot=$(echo */mythtv)"; diff --git a/pkgs/applications/video/mythtv/dont-source-os-release.patch b/pkgs/applications/video/mythtv/dont-source-os-release.patch index fb4dc686af6a..0ef27450d634 100644 --- a/pkgs/applications/video/mythtv/dont-source-os-release.patch +++ b/pkgs/applications/video/mythtv/dont-source-os-release.patch @@ -1,6 +1,6 @@ --- a/configure +++ b/configure -@@ -5894,9 +5894,9 @@ else +@@ -5451,9 +5451,9 @@ else die "ERROR: cannot find soundtouch 1.8.0 or later." fi diff --git a/pkgs/applications/video/vdr/markad/default.nix b/pkgs/applications/video/vdr/markad/default.nix index c0672821558b..a86a1ee02706 100644 --- a/pkgs/applications/video/vdr/markad/default.nix +++ b/pkgs/applications/video/vdr/markad/default.nix @@ -19,12 +19,12 @@ }: stdenv.mkDerivation rec { pname = "vdr-markad"; - version = "3.4.6"; + version = "3.4.12"; src = fetchFromGitHub { repo = "vdr-plugin-markad"; owner = "kfb77"; - sha256 = "sha256-fixkalZAPz0iO1SmshsO0vYc2sksH2lrStsSOEcdZ1g="; + sha256 = "sha256-yc/zWMGzsfZl3n+Qt5Se2duo3jwntCWaYq1yACsrPzM="; rev = "V${version}"; }; diff --git a/pkgs/applications/video/vdr/softhddevice/default.nix b/pkgs/applications/video/vdr/softhddevice/default.nix index 4d2504f5e5e6..23c6433f9ebb 100644 --- a/pkgs/applications/video/vdr/softhddevice/default.nix +++ b/pkgs/applications/video/vdr/softhddevice/default.nix @@ -14,12 +14,12 @@ }: stdenv.mkDerivation rec { pname = "vdr-softhddevice"; - version = "2.1.1"; + version = "2.1.2"; src = fetchFromGitHub { owner = "ua0lnj"; repo = "vdr-plugin-softhddevice"; - sha256 = "sha256-d/Cl0sE4laDdjMhd3xTHcY4OT5tWWCFCvLsNF157+zw="; + sha256 = "sha256-y6b0nOf597uxS9zDh0NQOwLN81nk4U7lHK2CalyVi8s="; rev = "v${version}"; }; diff --git a/pkgs/applications/window-managers/wayfire/firedecor.nix b/pkgs/applications/window-managers/wayfire/firedecor.nix new file mode 100644 index 000000000000..ce42f6fc6886 --- /dev/null +++ b/pkgs/applications/window-managers/wayfire/firedecor.nix @@ -0,0 +1,73 @@ +{ stdenv +, lib +, fetchFromGitHub +, meson +, ninja +, pkg-config +, boost +, cairo +, glib +, libGL +, libinput +, librsvg +, libxkbcommon +, pango +, udev +, wayfire +, wayland +, wf-config +, xcbutilwm +, mate +}: + +stdenv.mkDerivation (finalAttrs: { + pname = "firedecor"; + version = "2023-10-23"; + + src = fetchFromGitHub { + owner = "mntmn"; + repo = "Firedecor"; + rev = finalAttrs.version; + hash = "sha256-7or8HkmIZnLpXEZzUhJ3u8SIPfIQFgn32Ju/5OzK06Y="; + }; + + nativeBuildInputs = [ + meson + ninja + pkg-config + ]; + + buildInputs = [ + boost + cairo + glib + libGL + libinput + librsvg + libxkbcommon + pango + udev + wayfire + wayland + wf-config + xcbutilwm + ]; + + postPatch = '' + substituteInPlace src/firedecor-theme.cpp \ + --replace-fail "/usr/share" "/run/current-system/sw/share" + ''; + + env = { + PKG_CONFIG_WAYFIRE_PLUGINDIR = "${placeholder "out"}/lib/wayfire"; + PKG_CONFIG_WAYFIRE_METADATADIR = "${placeholder "out"}/share/wayfire/metadata"; + }; + + meta = with lib; { + homepage = "https://github.com/mntmn/Firedecor"; + description = "Advanced window decoration plugin for the Wayfire window manager"; + license = licenses.mit; + inherit (mate.mate-wayland-session.meta) maintainers; + inherit (wayfire.meta) platforms; + }; +}) diff --git a/pkgs/applications/window-managers/wayfire/plugins.nix b/pkgs/applications/window-managers/wayfire/plugins.nix index 86f522cdd68d..b8af85aafd0d 100644 --- a/pkgs/applications/window-managers/wayfire/plugins.nix +++ b/pkgs/applications/window-managers/wayfire/plugins.nix @@ -4,6 +4,7 @@ lib.makeScope pkgs.newScope (self: let inherit (self) callPackage; in { + firedecor = callPackage ./firedecor.nix { }; wayfire-plugins-extra = callPackage ./wayfire-plugins-extra.nix { }; wcm = callPackage ./wcm.nix { }; wf-shell = callPackage ./wf-shell.nix { }; diff --git a/pkgs/by-name/co/cockpit/package.nix b/pkgs/by-name/co/cockpit/package.nix index 46ae83705426..063483c0c561 100644 --- a/pkgs/by-name/co/cockpit/package.nix +++ b/pkgs/by-name/co/cockpit/package.nix @@ -44,13 +44,13 @@ in stdenv.mkDerivation rec { pname = "cockpit"; - version = "312"; + version = "313"; src = fetchFromGitHub { owner = "cockpit-project"; repo = "cockpit"; rev = "refs/tags/${version}"; - hash = "sha256-X3IsUaqXlg/SlqHo9jK+hONY/6LAIAfRO9rAwCQcq64="; + hash = "sha256-k/JbvotOcVs2OXwGOrnjY0xYRRgvk61p0o7VQTTPqz4="; fetchSubmodules = true; }; diff --git a/pkgs/applications/misc/hyprdim/default.nix b/pkgs/by-name/hy/hyprdim/package.nix index 10938330196a..ee0df4f9fc03 100644 --- a/pkgs/applications/misc/hyprdim/default.nix +++ b/pkgs/by-name/hy/hyprdim/package.nix @@ -1,8 +1,9 @@ -{ lib -, rustPlatform -, fetchFromGitHub -, installShellFiles -, nix-update-script +{ + lib, + rustPlatform, + fetchFromGitHub, + installShellFiles, + nix-update-script, }: rustPlatform.buildRustPackage rec { @@ -18,17 +19,15 @@ rustPlatform.buildRustPackage rec { cargoHash = "sha256-hgcGzRLB1L3yxJjw1ECDJPmbl1W+2OS4KDojclyVYrc="; - nativeBuildInputs = [ - installShellFiles - ]; + nativeBuildInputs = [ installShellFiles ]; postInstall = '' installManPage target/man/hyprdim.1 installShellCompletion --cmd hyprdim \ - --bash <(cat target/completions/hyprdim.bash) \ - --fish <(cat target/completions/hyprdim.fish) \ - --zsh <(cat target/completions/_hyprdim) + --bash target/completions/hyprdim.bash \ + --fish target/completions/hyprdim.fish \ + --zsh target/completions/_hyprdim ''; passthru.updateScript = nix-update-script { }; diff --git a/pkgs/applications/misc/hyprnome/default.nix b/pkgs/by-name/hy/hyprnome/package.nix index d8d6ba70c8f7..691ebc574a43 100644 --- a/pkgs/applications/misc/hyprnome/default.nix +++ b/pkgs/by-name/hy/hyprnome/package.nix @@ -1,8 +1,9 @@ -{ lib -, rustPlatform -, fetchFromGitHub -, installShellFiles -, nix-update-script +{ + lib, + rustPlatform, + fetchFromGitHub, + installShellFiles, + nix-update-script, }: rustPlatform.buildRustPackage rec { @@ -18,17 +19,15 @@ rustPlatform.buildRustPackage rec { cargoHash = "sha256-DpbRs97sr5wpJSrYF99ZiQ0SZOZdoQjfaLhKIAU95HA="; - nativeBuildInputs = [ - installShellFiles - ]; + nativeBuildInputs = [ installShellFiles ]; postInstall = '' installManPage target/man/hyprnome.1 installShellCompletion --cmd hyprnome \ - --bash <(cat target/completions/hyprnome.bash) \ - --fish <(cat target/completions/hyprnome.fish) \ - --zsh <(cat target/completions/_hyprnome) + --bash target/completions/hyprnome.bash \ + --fish target/completions/hyprnome.fish \ + --zsh target/completions/_hyprnome ''; passthru.updateScript = nix-update-script { }; diff --git a/pkgs/by-name/my/mycelium/Cargo.lock b/pkgs/by-name/my/mycelium/Cargo.lock index 8979931acce8..311901f8a242 100644 --- a/pkgs/by-name/my/mycelium/Cargo.lock +++ b/pkgs/by-name/my/mycelium/Cargo.lock @@ -146,18 +146,19 @@ checksum = "d468802bab17cbc0cc575e9b053f41e72aa36bfa6b7f55e3529ffa43161b97fa" [[package]] name = "axum" -version = "0.6.20" +version = "0.7.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3b829e4e32b91e643de6eafe82b1d90675f5874230191a4ffbc1b336dec4d6bf" +checksum = "1236b4b292f6c4d6dc34604bb5120d85c3fe1d1aa596bd5cc52ca054d13e7b9e" dependencies = [ "async-trait", "axum-core", - "bitflags 1.3.2", "bytes", "futures-util", - "http", - "http-body", - "hyper", + "http 1.1.0", + "http-body 1.0.0", + "http-body-util", + "hyper 1.2.0", + "hyper-util", "itoa", "matchit", "memchr", @@ -178,17 +179,20 @@ dependencies = [ [[package]] name = "axum-core" -version = "0.3.4" +version = "0.4.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "759fa577a247914fd3f7f76d62972792636412fbfd634cd452f6a385a74d2d2c" +checksum = "a15c63fd72d41492dc4f497196f5da1fb04fb7529e631d73630d1b491e47a2e3" dependencies = [ "async-trait", "bytes", "futures-util", - "http", - "http-body", + "http 1.1.0", + "http-body 1.0.0", + "http-body-util", "mime", + "pin-project-lite", "rustversion", + "sync_wrapper", "tower-layer", "tower-service", ] @@ -311,6 +315,12 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd" [[package]] +name = "cfg_aliases" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fd16c4719339c4530435d38e511904438d07cce7950afa3718a84ac36c10e89e" + +[[package]] name = "cipher" version = "0.4.4" source = "registry+https://github.com/rust-lang/crates.io-index" @@ -504,9 +514,9 @@ dependencies = [ [[package]] name = "etherparse" -version = "0.13.0" +version = "0.14.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "827292ea592108849932ad8e30218f8b1f21c0dfd0696698a18b5d0aed62d990" +checksum = "24890603eb4b43aa788f02261ce21714449033e3e2ab93692f0ab18480c3c9b1" dependencies = [ "arrayvec", ] @@ -691,7 +701,26 @@ dependencies = [ "futures-core", "futures-sink", "futures-util", - "http", + "http 0.2.11", + "indexmap", + "slab", + "tokio", + "tokio-util", + "tracing", +] + +[[package]] +name = "h2" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "31d030e59af851932b72ceebadf4a2b5986dba4c3b99dd2493f8273a0f151943" +dependencies = [ + "bytes", + "fnv", + "futures-core", + "futures-sink", + "futures-util", + "http 1.1.0", "indexmap", "slab", "tokio", @@ -729,13 +758,47 @@ dependencies = [ ] [[package]] +name = "http" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "21b9ddb458710bc376481b842f5da65cdf31522de232c1ca8146abce2a358258" +dependencies = [ + "bytes", + "fnv", + "itoa", +] + +[[package]] name = "http-body" version = "0.4.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7ceab25649e9960c0311ea418d17bee82c0dcec1bd053b5f9a66e265a693bed2" dependencies = [ "bytes", - "http", + "http 0.2.11", + "pin-project-lite", +] + +[[package]] +name = "http-body" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1cac85db508abc24a2e48553ba12a996e87244a0395ce011e62b37158745d643" +dependencies = [ + "bytes", + "http 1.1.0", +] + +[[package]] +name = "http-body-util" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "41cb79eb393015dadd30fc252023adb0b2400a0caee0fa2a077e6e21a551e840" +dependencies = [ + "bytes", + "futures-util", + "http 1.1.0", + "http-body 1.0.0", "pin-project-lite", ] @@ -767,9 +830,9 @@ dependencies = [ "futures-channel", "futures-core", "futures-util", - "h2", - "http", - "http-body", + "h2 0.3.24", + "http 0.2.11", + "http-body 0.4.6", "httparse", "httpdate", "itoa", @@ -782,17 +845,39 @@ dependencies = [ ] [[package]] -name = "hyper-rustls" -version = "0.24.2" +name = "hyper" +version = "1.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ec3efd23720e2049821a693cbc7e65ea87c72f1c58ff2f9522ff332b1491e590" +checksum = "186548d73ac615b32a73aafe38fb4f56c0d340e110e5a200bcadbaf2e199263a" dependencies = [ + "bytes", + "futures-channel", "futures-util", - "http", - "hyper", - "rustls", + "h2 0.4.2", + "http 1.1.0", + "http-body 1.0.0", + "httparse", + "httpdate", + "itoa", + "pin-project-lite", + "smallvec", + "tokio", +] + +[[package]] +name = "hyper-util" +version = "0.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ca38ef113da30126bbff9cd1705f9273e15d45498615d138b0c20279ac7a76aa" +dependencies = [ + "bytes", + "futures-util", + "http 1.1.0", + "http-body 1.0.0", + "hyper 1.2.0", + "pin-project-lite", + "socket2", "tokio", - "tokio-rustls", ] [[package]] @@ -886,9 +971,9 @@ dependencies = [ [[package]] name = "libc" -version = "0.2.152" +version = "0.2.153" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "13e3bf6590cbc649f4d1a3eefc9d5d6eb746f5200ffb04e5e142700b8faa56e7" +checksum = "9c198f91728a82281a64e1f4f9eeb25d82cb32a5de251c6bd1b5154d63a8e7bd" [[package]] name = "libloading" @@ -908,9 +993,9 @@ checksum = "01cda141df6706de531b6c46c3a33ecca755538219bd484262fa09410c13539c" [[package]] name = "log" -version = "0.4.20" +version = "0.4.21" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b5e6163cb8c49088c2c36f57875e58ccd8c87c7427f7fbd50ea6710b2f3f2e8f" +checksum = "90ed8c1e510134f979dbc4f070f87d4313098b704861a105fe34231c70a3901c" [[package]] name = "loom" @@ -972,9 +1057,9 @@ dependencies = [ [[package]] name = "mio" -version = "0.8.10" +version = "0.8.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8f3d0b296e374a4e6f3c7b0a1f5a51d748a0d34c85e7dc48fc3fa9a87657fe09" +checksum = "a4a650543ca06a924e8b371db273b2756685faae30f8487da1b56505a8f78b0c" dependencies = [ "libc", "wasi", @@ -983,7 +1068,7 @@ dependencies = [ [[package]] name = "mycelium" -version = "0.4.2" +version = "0.4.3" dependencies = [ "aes-gcm", "axum", @@ -1002,7 +1087,7 @@ dependencies = [ "libc", "log", "network-interface", - "nix 0.27.1", + "nix 0.28.0", "pretty_env_logger", "quinn", "rand", @@ -1119,6 +1204,18 @@ dependencies = [ "bitflags 2.4.2", "cfg-if", "libc", +] + +[[package]] +name = "nix" +version = "0.28.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ab2156c4fce2f8df6c499cc1c763e4394b7482525bf2a9701c9d79d215f519e4" +dependencies = [ + "bitflags 2.4.2", + "cfg-if", + "cfg_aliases", + "libc", "memoffset", ] @@ -1360,9 +1457,9 @@ dependencies = [ [[package]] name = "rcgen" -version = "0.12.0" +version = "0.12.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5d918c80c5a4c7560db726763020bd16db179e4d5b828078842274a443addb5d" +checksum = "48406db8ac1f3cbc7dcdb56ec355343817958a356ff430259bb07baf7607e1e1" dependencies = [ "pem", "ring 0.17.7", @@ -1425,11 +1522,10 @@ dependencies = [ "encoding_rs", "futures-core", "futures-util", - "h2", - "http", - "http-body", - "hyper", - "hyper-rustls", + "h2 0.3.24", + "http 0.2.11", + "http-body 0.4.6", + "hyper 0.14.28", "ipnet", "js-sys", "log", @@ -1437,20 +1533,16 @@ dependencies = [ "once_cell", "percent-encoding", "pin-project-lite", - "rustls", - "rustls-pemfile", "serde", "serde_json", "serde_urlencoded", "system-configuration", "tokio", - "tokio-rustls", "tower-service", "url", "wasm-bindgen", "wasm-bindgen-futures", "web-sys", - "webpki-roots", "winreg", ] @@ -1541,22 +1633,12 @@ version = "0.21.10" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f9d5a6813c0759e4609cd494e8e725babae6a2ca7b62a5536a13daaec6fcb7ba" dependencies = [ - "log", "ring 0.17.7", "rustls-webpki", "sct", ] [[package]] -name = "rustls-pemfile" -version = "1.0.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1c74cae0a4cf6ccbbf5f359f08efdf8ee7e1dc532573bf0db71968cb56b1448c" -dependencies = [ - "base64", -] - -[[package]] name = "rustls-webpki" version = "0.101.7" source = "registry+https://github.com/rust-lang/crates.io-index" @@ -1602,18 +1684,18 @@ checksum = "b97ed7a9823b74f99c7742f5336af7be5ecd3eeafcb1507d1fa93347b1d589b0" [[package]] name = "serde" -version = "1.0.195" +version = "1.0.197" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "63261df402c67811e9ac6def069e4786148c4563f4b50fd4bf30aa370d626b02" +checksum = "3fb1c873e1b9b056a4dc4c0c198b24c3ffa059243875552b2bd0933b1aee4ce2" dependencies = [ "serde_derive", ] [[package]] name = "serde_derive" -version = "1.0.195" +version = "1.0.197" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "46fe8f8603d81ba86327b23a2e9cdf49e1255fb94a4c5f297f6ee0547178ea2c" +checksum = "7eb0b34b42edc17f6b7cac84a52a1c5f0e1bb2227e997ca9011ea3dd34e8610b" dependencies = [ "proc-macro2", "quote", @@ -1622,9 +1704,9 @@ dependencies = [ [[package]] name = "serde_json" -version = "1.0.111" +version = "1.0.114" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "176e46fa42316f18edd598015a5166857fc835ec732f5215eac6b7bdbf0a84f4" +checksum = "c5f09b1bd632ef549eaa9f60a1f8de742bdbc698e6cee2095fc84dde5f549ae0" dependencies = [ "itoa", "ryu", @@ -1880,16 +1962,6 @@ dependencies = [ ] [[package]] -name = "tokio-rustls" -version = "0.24.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c28327cf380ac148141087fbfb9de9d7bd4e84ab5d2c28fbc911d753de8a7081" -dependencies = [ - "rustls", - "tokio", -] - -[[package]] name = "tokio-stream" version = "0.1.14" source = "registry+https://github.com/rust-lang/crates.io-index" @@ -1929,9 +2001,9 @@ dependencies = [ [[package]] name = "toml" -version = "0.7.8" +version = "0.8.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dd79e69d3b627db300ff956027cc6c3798cef26d22526befdfcd12feeb6d2257" +checksum = "9a9aad4a3066010876e8dcf5a8a06e70a558751117a145c6ce2b82c2e2054290" dependencies = [ "serde", "serde_spanned", @@ -1950,9 +2022,9 @@ dependencies = [ [[package]] name = "toml_edit" -version = "0.19.15" +version = "0.22.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1b5bb770da30e5cbfde35a2d7b9b8a2c4b8ef89548a7a6aeab5c9a576e3e7421" +checksum = "2c1b5fd4128cc8d3e0cb74d4ed9a9cc7c7284becd4df68f5f940e1ad123606f6" dependencies = [ "indexmap", "serde", @@ -2242,12 +2314,6 @@ dependencies = [ ] [[package]] -name = "webpki-roots" -version = "0.25.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1778a42e8b3b90bff8d0f5032bf22250792889a5cdc752aa0020c84abe3aaf10" - -[[package]] name = "winapi" version = "0.3.9" source = "registry+https://github.com/rust-lang/crates.io-index" @@ -2459,9 +2525,9 @@ checksum = "dff9641d1cd4be8d1a070daf9e3773c5f67e78b4d9d42263020c057706765c04" [[package]] name = "winnow" -version = "0.5.34" +version = "0.6.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b7cf47b659b318dccbd69cc4797a39ae128f533dce7902a1096044d1967b9c16" +checksum = "dffa400e67ed5a4dd237983829e66475f0a4a26938c4b04c21baede6262215b8" dependencies = [ "memchr", ] @@ -2504,9 +2570,9 @@ dependencies = [ [[package]] name = "x25519-dalek" -version = "2.0.0" +version = "2.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fb66477291e7e8d2b0ff1bcb900bf29489a9692816d79874bea351e7a8b6de96" +checksum = "c7e468321c81fb07fa7f4c636c3972b9100f0346e5b6a9f2bd0603a52f7ed277" dependencies = [ "curve25519-dalek", "rand_core", diff --git a/pkgs/by-name/my/mycelium/package.nix b/pkgs/by-name/my/mycelium/package.nix index d5b66705d15a..b3aee2f9ff3e 100644 --- a/pkgs/by-name/my/mycelium/package.nix +++ b/pkgs/by-name/my/mycelium/package.nix @@ -7,13 +7,13 @@ rustPlatform.buildRustPackage rec { pname = "mycelium"; - version = "0.4.2"; + version = "0.4.3"; src = fetchFromGitHub { owner = "threefoldtech"; repo = "mycelium"; rev = "v${version}"; - hash = "sha256-VWrWg9UpBSug0cvY/zuzGFI6Y0CRFcrh1Cy4mbYtg9Q="; + hash = "sha256-bA3ci+vqXBCPBaxMvfUdFcqdaZbAw/+r5UbH/as/fnc="; }; cargoLock = { @@ -33,7 +33,7 @@ rustPlatform.buildRustPackage rec { homepage = "https://github.com/threefoldtech/mycelium"; changelog = "https://github.com/threefoldtech/mycelium/blob/${src.rev}/CHANGELOG.md"; license = licenses.asl20; - maintainers = with maintainers; [ matthewcroughan ]; + maintainers = with maintainers; [ flokli matthewcroughan ]; mainProgram = "mycelium"; }; } diff --git a/pkgs/by-name/pr/pretix/package.nix b/pkgs/by-name/pr/pretix/package.nix new file mode 100644 index 000000000000..952da297900f --- /dev/null +++ b/pkgs/by-name/pr/pretix/package.nix @@ -0,0 +1,264 @@ +{ lib +, buildNpmPackage +, fetchFromGitHub +, fetchPypi +, fetchpatch2 +, nodejs +, python3 +, gettext +, nixosTests +, plugins ? [ ] +}: + +let + python = python3.override { + packageOverrides = self: super: { + django = super.django_4; + + stripe = super.stripe.overridePythonAttrs rec { + version = "7.9.0"; + + src = fetchPypi { + pname = "stripe"; + inherit version; + hash = "sha256-hOXkMINaSwzU/SpXzjhTJp0ds0OREc2mtu11LjSc9KE="; + }; + }; + + pretix-plugin-build = self.callPackage ./plugin-build.nix { }; + }; + }; + + pname = "pretix"; + version = "2024.2.0"; + + src = fetchFromGitHub { + owner = "pretix"; + repo = "pretix"; + rev = "refs/tags/v${version}"; + hash = "sha256-emtF5dDXEXN8GIucHbjF+m9Vkg1Jj6nmQdHhBOkXMAs="; + }; + + npmDeps = buildNpmPackage { + pname = "pretix-node-modules"; + inherit version src; + + sourceRoot = "${src.name}/src/pretix/static/npm_dir"; + npmDepsHash = "sha256-kE13dcTdWZZNHPMcHEiK0a2dEcu3Z3/q815YhaVkLbQ="; + + dontBuild = true; + + installPhase = '' + runHook preInstall + + mkdir $out + cp -R node_modules $out/ + + runHook postInstall + ''; + }; +in +python.pkgs.buildPythonApplication rec { + inherit pname version src; + pyproject = true; + + patches = [ + # Discover pretix.plugin entrypoints during build and add them into + # INSTALLED_APPS, so that their static files are collected. + ./plugin-build.patch + + (fetchpatch2 { + # Allow customization of cache and log directory + # https://github.com/pretix/pretix/pull/3997 + name = "pretix-directory-customization.patch"; + url = "https://github.com/pretix/pretix/commit/e151d1d1f08917e547df49da0779b36bb73b7294.patch"; + hash = "sha256-lO5eCKSqUaCwSm7rouMTFMwauWl9Tz/Yf0JE/IO+bnI="; + }) + ]; + + postPatch = '' + NODE_PREFIX=src/pretix/static.dist/node_prefix + mkdir -p $NODE_PREFIX + cp -R ${npmDeps}/node_modules $NODE_PREFIX/ + chmod -R u+w $NODE_PREFIX/ + + # unused + sed -i "/setuptools-rust/d" pyproject.toml + + substituteInPlace pyproject.toml \ + --replace-fail phonenumberslite phonenumbers \ + --replace-fail psycopg2-binary psycopg2 \ + --replace-fail vat_moss_forked==2020.3.20.0.11.0 vat-moss \ + --replace-fail "bleach==5.0.*" bleach \ + --replace-fail "dnspython==2.5.*" dnspython \ + --replace-fail "importlib_metadata==7.*" importlib_metadata \ + --replace-fail "protobuf==4.25.*" protobuf \ + --replace-fail "pycryptodome==3.20.*" pycryptodome \ + --replace-fail "pypdf==3.9.*" pypdf \ + --replace-fail "python-dateutil==2.8.*" python-dateutil \ + --replace-fail "sentry-sdk==1.40.*" sentry-sdk \ + --replace-fail "stripe==7.9.*" stripe + ''; + + build-system = with python.pkgs; [ + gettext + nodejs + pythonRelaxDepsHook + setuptools + tomli + ]; + + dependencies = with python.pkgs; [ + arabic-reshaper + babel + beautifulsoup4 + bleach + celery + chardet + cryptography + css-inline + defusedcsv + dj-static + django + django-bootstrap3 + django-compressor + django-countries + django-filter + django-formset-js-improved + django-formtools + django-hierarkey + django-hijack + django-i18nfield + django-libsass + django-localflavor + django-markup + django-oauth-toolkit + django-otp + django-phonenumber-field + django-redis + django-scopes + django-statici18n + djangorestframework + dnspython + drf-ujson2 + geoip2 + importlib-metadata + isoweek + jsonschema + kombu + libsass + lxml + markdown + mt-940 + oauthlib + openpyxl + packaging + paypalrestsdk + paypal-checkout-serversdk + pyjwt + phonenumbers + pillow + pretix-plugin-build + protobuf + psycopg2 + pycountry + pycparser + pycryptodome + pypdf + python-bidi + python-dateutil + pytz + pytz-deprecation-shim + pyuca + qrcode + redis + reportlab + requests + sentry-sdk + sepaxml + slimit + static3 + stripe + text-unidecode + tlds + tqdm + vat-moss + vobject + webauthn + zeep + ] ++ plugins; + + optional-dependencies = with python.pkgs; { + memcached = [ + pylibmc + ]; + }; + + postInstall = '' + mkdir -p $out/bin + cp ./src/manage.py $out/bin/pretix-manage + + # Trim packages size + rm -rfv $out/${python.sitePackages}/pretix/static.dist/node_prefix + ''; + + dontStrip = true; # no binaries + + nativeCheckInputs = with python.pkgs; [ + pytestCheckHook + pytest-xdist + pytest-mock + pytest-django + pytest-asyncio + pytest-rerunfailures + freezegun + fakeredis + responses + ] ++ lib.flatten (lib.attrValues optional-dependencies); + + pytestFlagsArray = [ + "--reruns" "3" + + # tests fail when run before 4:30am + # https://github.com/pretix/pretix/pull/3987 + "--deselect=src/tests/base/test_orders.py::PaymentReminderTests::test_sent_days" + "--deselect=src/tests/plugins/sendmail/test_rules.py::test_sendmail_rule_specified_subevent" + ]; + + preCheck = '' + export PYTHONPATH=$(pwd)/src:$PYTHONPATH + export DJANGO_SETTINGS_MODULE=tests.settings + ''; + + passthru = { + inherit + npmDeps + python + ; + plugins = lib.recurseIntoAttrs + (python.pkgs.callPackage ./plugins { + inherit (python.pkgs) callPackage; + } + ); + tests = { + inherit (nixosTests) pretix; + }; + }; + + meta = with lib; { + description = "Ticketing software that cares about your event—all the way"; + homepage = "https://github.com/pretix/pretix"; + license = with licenses; [ + agpl3Only + # 3rd party components below src/pretix/static + bsd2 + isc + mit + ofl # fontawesome + unlicense + # all other files below src/pretix/static and src/pretix/locale and aux scripts + asl20 + ]; + maintainers = with maintainers; [ hexa ]; + }; +} diff --git a/pkgs/by-name/pr/pretix/plugin-build.nix b/pkgs/by-name/pr/pretix/plugin-build.nix new file mode 100644 index 000000000000..307ff4114eb7 --- /dev/null +++ b/pkgs/by-name/pr/pretix/plugin-build.nix @@ -0,0 +1,37 @@ +{ + lib, + buildPythonPackage, + fetchPypi, + setuptools, + django, + gettext, +}: + +buildPythonPackage rec { + pname = "pretix-plugin-build"; + version = "1.0.1"; + pyproject = true; + + src = fetchPypi { + inherit pname version; + hash = "sha256-iLbqcCAbeK4PyLXiebpdE27rt6bOP7eXczIG2bdvvYo="; + }; + + build-system = [ + setuptools + ]; + + dependencies = [ + django + gettext + ]; + + doCheck = false; # no tests + + meta = with lib; { + description = ""; + homepage = "https://github.com/pretix/pretix-plugin-build"; + license = licenses.asl20; + maintainers = with maintainers; [ hexa ]; + }; +} diff --git a/pkgs/by-name/pr/pretix/plugin-build.patch b/pkgs/by-name/pr/pretix/plugin-build.patch new file mode 100644 index 000000000000..aa935ed28148 --- /dev/null +++ b/pkgs/by-name/pr/pretix/plugin-build.patch @@ -0,0 +1,20 @@ +diff --git a/src/pretix/_build_settings.py b/src/pretix/_build_settings.py +index c03f56a1a..d1ea73b84 100644 +--- a/src/pretix/_build_settings.py ++++ b/src/pretix/_build_settings.py +@@ -24,6 +24,8 @@ + This file contains settings that we need at wheel require time. All settings that we only need at runtime are set + in settings.py. + """ ++from importlib_metadata import entry_points ++ + from ._base_settings import * # NOQA + + ENTROPY = { +@@ -47,3 +49,6 @@ HAS_MEMCACHED = False + HAS_CELERY = False + HAS_GEOIP = False + SENTRY_ENABLED = False ++ ++for entry_point in entry_points(group='pretix.plugin'): ++ INSTALLED_APPS.append(entry_point.module) # noqa: F405 diff --git a/pkgs/by-name/pr/pretix/plugins/default.nix b/pkgs/by-name/pr/pretix/plugins/default.nix new file mode 100644 index 000000000000..70e643705c00 --- /dev/null +++ b/pkgs/by-name/pr/pretix/plugins/default.nix @@ -0,0 +1,13 @@ +{ callPackage +, ... +}: + +{ + pages = callPackage ./pages.nix { }; + + passbook = callPackage ./passbook.nix { }; + + reluctant-stripe = callPackage ./reluctant-stripe.nix { }; + + stretchgoals = callPackage ./stretchgoals.nix { }; +} diff --git a/pkgs/by-name/pr/pretix/plugins/pages.nix b/pkgs/by-name/pr/pretix/plugins/pages.nix new file mode 100644 index 000000000000..91f8ef032f77 --- /dev/null +++ b/pkgs/by-name/pr/pretix/plugins/pages.nix @@ -0,0 +1,37 @@ +{ lib +, buildPythonPackage +, fetchFromGitHub +, pretix-plugin-build +, setuptools +}: + +buildPythonPackage rec { + pname = "pretix-pages"; + version = "1.6.0"; + pyproject = true; + + src = fetchFromGitHub { + owner = "pretix"; + repo = "pretix-pages"; + rev = "v${version}"; + hash = "sha256-cO5tAiOifLpqFEQwYgrGoByUecpzvue8YmChpPwm+y0="; + }; + + build-system = [ + pretix-plugin-build + setuptools + ]; + + doCheck = false; # no tests + + pythonImportsCheck = [ + "pretix_pages" + ]; + + meta = with lib; { + description = "Plugin to add static pages to your pretix event"; + homepage = "https://github.com/pretix/pretix-pages"; + license = licenses.asl20; + maintainers = with maintainers; [ hexa ]; + }; +} diff --git a/pkgs/by-name/pr/pretix/plugins/passbook-openssl.patch b/pkgs/by-name/pr/pretix/plugins/passbook-openssl.patch new file mode 100644 index 000000000000..44c0d56886af --- /dev/null +++ b/pkgs/by-name/pr/pretix/plugins/passbook-openssl.patch @@ -0,0 +1,33 @@ +diff --git a/pretix_passbook/apps.py b/pretix_passbook/apps.py +index e34eee1..a7ad382 100644 +--- a/pretix_passbook/apps.py ++++ b/pretix_passbook/apps.py +@@ -22,15 +22,6 @@ class PassbookApp(AppConfig): + def ready(self): + from . import signals # NOQA + +- @cached_property +- def compatibility_errors(self): +- import shutil +- +- errs = [] +- if not shutil.which("openssl"): +- errs.append("The OpenSSL binary is not installed or not in the PATH.") +- return errs +- + @cached_property + def compatibility_warnings(self): + errs = [] +diff --git a/pretix_passbook/forms.py b/pretix_passbook/forms.py +index 2a38604..aec38de 100644 +--- a/pretix_passbook/forms.py ++++ b/pretix_passbook/forms.py +@@ -41,7 +41,7 @@ class CertificateFileField(forms.FileField): + return SimpleUploadedFile("cert.pem", content, "text/plain") + + openssl_cmd = [ +- "openssl", ++ "@openssl@", + "x509", + "-inform", + "DER", diff --git a/pkgs/by-name/pr/pretix/plugins/passbook.nix b/pkgs/by-name/pr/pretix/plugins/passbook.nix new file mode 100644 index 000000000000..b7d380aa681d --- /dev/null +++ b/pkgs/by-name/pr/pretix/plugins/passbook.nix @@ -0,0 +1,59 @@ +{ lib +, buildPythonPackage +, fetchFromGitHub +, substituteAll + +# build-system +, pretix-plugin-build +, setuptools + +# runtime +, openssl + +# dependencies +, googlemaps +, wallet-py3k +}: + +buildPythonPackage rec { + pname = "pretix-passbook"; + version = "1.13.1"; + pyproject = true; + + src = fetchFromGitHub { + owner = "pretix"; + repo = "pretix-passbook"; + rev = "v${version}"; + hash = "sha256-bp64wCEMon05JhOaDr/cVbqUxc+7ndcsSuSesxJt8GE="; + }; + + patches = [ + (substituteAll { + src = ./passbook-openssl.patch; + openssl = lib.getExe openssl; + }) + ]; + + build-system = [ + pretix-plugin-build + setuptools + ]; + + dependencies = [ + googlemaps + wallet-py3k + ]; + + doCheck = false; # no tests + + pythonImportsCheck = [ + "pretix_passbook" + ]; + + meta = with lib; { + description = "Support for Apple Wallet/Passbook files in pretix"; + homepage = "https://github.com/pretix/pretix-passbook"; + license = licenses.asl20; + maintainers = with maintainers; [ hexa ]; + }; +} diff --git a/pkgs/by-name/pr/pretix/plugins/reluctant-stripe.nix b/pkgs/by-name/pr/pretix/plugins/reluctant-stripe.nix new file mode 100644 index 000000000000..40ab96a36bca --- /dev/null +++ b/pkgs/by-name/pr/pretix/plugins/reluctant-stripe.nix @@ -0,0 +1,37 @@ +{ lib +, buildPythonPackage +, fetchFromGitHub +, pretix-plugin-build +, setuptools +}: + +buildPythonPackage { + pname = "pretix-reluctant-stripe"; + version = "unstable-2023-08-03"; + pyproject = true; + + src = fetchFromGitHub { + owner = "metarheinmain"; + repo = "pretix-reluctant-stripe"; + rev = "ae2d770442553e5fc00815ff4521a8fd2c113fd9"; + hash = "sha256-bw9aDMxl4/uar5KHjj+wwkYkaGMRxHWY/c1N75bxu0o="; + }; + + build-system = [ + pretix-plugin-build + setuptools + ]; + + doCheck = false; # no tests + + pythonImportsCheck = [ + "pretix_reluctant_stripe" + ]; + + meta = with lib; { + description = "Nudge users to not use Stripe as a payment provider"; + homepage = "https://github.com/metarheinmain/pretix-reluctant-stripe"; + license = licenses.asl20; + maintainers = with maintainers; [ hexa ]; + }; +} diff --git a/pkgs/by-name/pr/pretix/plugins/stretchgoals.nix b/pkgs/by-name/pr/pretix/plugins/stretchgoals.nix new file mode 100644 index 000000000000..4d1cb8d02e84 --- /dev/null +++ b/pkgs/by-name/pr/pretix/plugins/stretchgoals.nix @@ -0,0 +1,37 @@ +{ lib +, buildPythonPackage +, fetchFromGitHub +, pretix-plugin-build +, setuptools +}: + +buildPythonPackage { + pname = "pretix-avgchart"; + version = "unstable-2023-11-27"; + pyproject = true; + + src = fetchFromGitHub { + owner = "rixx"; + repo = "pretix-avgchart"; + rev = "219816c7ec523a5c23778523b2616ac0c835cb3a"; + hash = "sha256-1V/0PUvStgQeBQ0v6GoofAgyPmWs3RD+v5ekmAO9vFU="; + }; + + build-system = [ + pretix-plugin-build + setuptools + ]; + + doCheck = false; # no tests + + pythonImportsCheck = [ + "pretix_stretchgoals" + ]; + + meta = with lib; { + description = "Display the average ticket sales price over time"; + homepage = "https://github.com/rixx/pretix-avgchart"; + license = licenses.asl20; + maintainers = with maintainers; [ hexa ]; + }; +} diff --git a/pkgs/by-name/re/renode-dts2repl/package.nix b/pkgs/by-name/re/renode-dts2repl/package.nix index b6af65fa0b38..24736a889e51 100644 --- a/pkgs/by-name/re/renode-dts2repl/package.nix +++ b/pkgs/by-name/re/renode-dts2repl/package.nix @@ -6,14 +6,14 @@ python3.pkgs.buildPythonApplication { pname = "renode-dts2repl"; - version = "unstable-2024-02-29"; + version = "unstable-2024-03-12"; pyproject = true; src = fetchFromGitHub { owner = "antmicro"; repo = "dts2repl"; - rev = "a53f2f01039a462bdd7322d1fb315edd95033b6d"; - hash = "sha256-DsHNS9pZu3ZWM3teG3pUi0EM+8znmCPTSGuzGmJ4IgU="; + rev = "eff98d616e3541e54ca783c84f598c9e348a76a8"; + hash = "sha256-qNHj5WOSca04ceGeRNa60M6cH9/rRHLEF1YX75yYDO8="; }; nativeBuildInputs = [ diff --git a/pkgs/by-name/wl/wl-clipboard-rs/package.nix b/pkgs/by-name/wl/wl-clipboard-rs/package.nix index 4fab6ae6574e..509845a637ee 100644 --- a/pkgs/by-name/wl/wl-clipboard-rs/package.nix +++ b/pkgs/by-name/wl/wl-clipboard-rs/package.nix @@ -6,18 +6,18 @@ , withNativeLibs ? false }: -rustPlatform.buildRustPackage { +rustPlatform.buildRustPackage rec { pname = "wl-clipboard-rs"; - version = "0.8.0-unstable-2023-11-27"; + version = "0.8.1"; src = fetchFromGitHub { owner = "YaLTeR"; repo = "wl-clipboard-rs"; - rev = "be851408e0f91edffdc2f1a76805035847f9f8a9"; - hash = "sha256-OfLn7izG1KSUjdd2gO4aaSCDlcaWoFiFmgwwhR1hRsQ="; + rev = "v${version}"; + hash = "sha256-tNmpGBg21IuhKEzY15O2MKVpMB+eCjvRVwVUahADuJU="; }; - cargoHash = "sha256-rYFCPyWTUhyrEcoRM8I+iX7IaY/6i1tBVjhs47m3XY8="; + cargoHash = "sha256-0Ix+fF1QO1KU8FIOb8EV4iYXe4S69sZOxCdxYccL8m0="; cargoBuildFlags = [ "--package=wl-clipboard-rs" @@ -47,14 +47,13 @@ rustPlatform.buildRustPackage { "--skip=tests::copy::copy_test" ]; - meta = { + meta = with lib; { description = "Command-line copy/paste utilities for Wayland, written in Rust"; homepage = "https://github.com/YaLTeR/wl-clipboard-rs"; - # TODO: add `${version}` once we switch to tagged release - changelog = "https://github.com/YaLTeR/wl-clipboard-rs/blob/master/CHANGELOG.md"; - platforms = lib.platforms.linux; - license = with lib.licenses; [ asl20 mit ]; + changelog = "https://github.com/YaLTeR/wl-clipboard-rs/blob/v${version}/CHANGELOG.md"; + platforms = platforms.linux; + license = with licenses; [ asl20 mit ]; mainProgram = "wl-clip"; - maintainers = with lib.maintainers; [ thiagokokada ]; + maintainers = with maintainers; [ thiagokokada donovanglover ]; }; } diff --git a/pkgs/desktops/mate/atril/default.nix b/pkgs/desktops/mate/atril/default.nix index 29c0e1b824e9..611721da3642 100644 --- a/pkgs/desktops/mate/atril/default.nix +++ b/pkgs/desktops/mate/atril/default.nix @@ -3,16 +3,17 @@ , fetchurl , pkg-config , gettext +, caja , gtk3 , glib , libxml2 , libarchive , libsecret , poppler +, mate-desktop , itstool , hicolor-icon-theme , texlive -, mate , wrapGAppsHook , enableEpub ? true , webkitgtk_4_1 @@ -28,11 +29,11 @@ stdenv.mkDerivation rec { pname = "atril"; - version = "1.26.2"; + version = "1.28.0"; src = fetchurl { url = "https://pub.mate-desktop.org/releases/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz"; - sha256 = "wwW51fVxP0Jiau4DggkTA0IrPXGlbd1lkyzNsjx86SY="; + sha256 = "ztRyX26bccTqY2dr/DzDvgnSnboIqnp6uXlk4LQ1UWI="; }; nativeBuildInputs = [ @@ -42,6 +43,7 @@ stdenv.mkDerivation rec { ]; buildInputs = [ + caja gtk3 glib itstool @@ -49,8 +51,7 @@ stdenv.mkDerivation rec { libsecret libxml2 poppler - mate.caja - mate.mate-desktop + mate-desktop hicolor-icon-theme texlive.bin.core # for synctex, used by the pdf back-end ] diff --git a/pkgs/desktops/mate/caja-dropbox/default.nix b/pkgs/desktops/mate/caja-dropbox/default.nix index bb19521e835c..7841d0769a36 100644 --- a/pkgs/desktops/mate/caja-dropbox/default.nix +++ b/pkgs/desktops/mate/caja-dropbox/default.nix @@ -5,8 +5,8 @@ , pkg-config , gobject-introspection , gdk-pixbuf +, caja , gtk3 -, mate , python3 , dropbox , mateUpdateScript @@ -17,11 +17,11 @@ let in stdenv.mkDerivation rec { pname = "caja-dropbox"; - version = "1.26.0"; + version = "1.28.0"; src = fetchurl { url = "https://pub.mate-desktop.org/releases/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz"; - sha256 = "16w4r0zjps12lmzwiwpb9qnmbvd0p391q97296sxa8k88b1x14wn"; + sha256 = "t0w4qZQlS9PPfLxxK8LsdRagypQqpleFJs29aqYgGWM="; }; patches = [ @@ -44,8 +44,8 @@ stdenv.mkDerivation rec { ]; buildInputs = [ + caja gtk3 - mate.caja python3 ]; diff --git a/pkgs/desktops/mate/caja-extensions/default.nix b/pkgs/desktops/mate/caja-extensions/default.nix index 1cbbd97cc484..a73b892c5649 100644 --- a/pkgs/desktops/mate/caja-extensions/default.nix +++ b/pkgs/desktops/mate/caja-extensions/default.nix @@ -3,23 +3,24 @@ , fetchurl , pkg-config , gettext +, caja +, glib +, gst_all_1 , gtk3 , gupnp -, mate , imagemagick +, mate-desktop , wrapGAppsHook , mateUpdateScript -, glib -, substituteAll }: stdenv.mkDerivation rec { pname = "caja-extensions"; - version = "1.26.1"; + version = "1.28.0"; src = fetchurl { url = "https://pub.mate-desktop.org/releases/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz"; - sha256 = "WJwZ4/oQJC1iOaXMuVhVmENqVuvpTS6ypQtZUMzh1SA="; + sha256 = "0phsXgdAg1/icc+9WCPu6vAyka8XYyA/RwCruBCeMXU="; }; nativeBuildInputs = [ @@ -29,31 +30,20 @@ stdenv.mkDerivation rec { ]; buildInputs = [ + caja + glib + gst_all_1.gstreamer + gst_all_1.gst-plugins-base + gst_all_1.gst-plugins-good gtk3 gupnp - mate.caja - mate.mate-desktop imagemagick - ]; - - patches = [ - (substituteAll { - src = ./hardcode-gsettings.patch; - caja_gsetttings_path = glib.getSchemaPath mate.caja; - desktop_gsetttings_path = glib.getSchemaPath mate.mate-desktop; - }) + mate-desktop ]; postPatch = '' - substituteInPlace open-terminal/caja-open-terminal.c --subst-var-by \ - GSETTINGS_PATH ${glib.makeSchemaPath "$out" "${pname}-${version}"} - substituteInPlace sendto/caja-sendto-command.c --subst-var-by \ - GSETTINGS_PATH ${glib.makeSchemaPath "$out" "${pname}-${version}"} - substituteInPlace wallpaper/caja-wallpaper-extension.c --subst-var-by \ - GSETTINGS_PATH ${glib.makeSchemaPath "$out" "${pname}-${version}"} - for f in image-converter/caja-image-{resizer,rotator}.c; do - substituteInPlace $f --replace "/usr/bin/convert" "${imagemagick}/bin/convert" + substituteInPlace $f --replace-fail 'argv[0] = "convert"' 'argv[0] = "${imagemagick}/bin/convert"' done ''; diff --git a/pkgs/desktops/mate/caja-extensions/hardcode-gsettings.patch b/pkgs/desktops/mate/caja-extensions/hardcode-gsettings.patch deleted file mode 100644 index f37124963d0d..000000000000 --- a/pkgs/desktops/mate/caja-extensions/hardcode-gsettings.patch +++ /dev/null @@ -1,169 +0,0 @@ -diff --git a/open-terminal/caja-open-terminal.c b/open-terminal/caja-open-terminal.c -index e14a9bf..691afab 100644 ---- a/open-terminal/caja-open-terminal.c -+++ b/open-terminal/caja-open-terminal.c -@@ -135,8 +135,18 @@ desktop_opens_home_dir (void) - { - gboolean result; - GSettings* settings; -- -- settings = g_settings_new (COT_SCHEMA); -+ GSettingsSchemaSource* schema_source; -+ GSettingsSchema* schema; -+ -+ schema_source = g_settings_schema_source_new_from_directory("@GSETTINGS_PATH@", -+ g_settings_schema_source_get_default(), -+ TRUE, NULL); -+ schema = g_settings_schema_source_lookup(schema_source, -+ COT_SCHEMA, -+ FALSE); -+ settings = g_settings_new_full(schema, NULL, NULL); -+ g_settings_schema_source_unref(schema_source); -+ g_settings_schema_unref(schema); - result = g_settings_get_boolean (settings, COT_DESKTOP_KEY); - g_object_unref (settings); - return result; -@@ -147,8 +157,18 @@ set_desktop_opens_home_dir (gboolean val) - { - gboolean result; - GSettings* settings; -- -- settings = g_settings_new (COT_SCHEMA); -+ GSettingsSchemaSource* schema_source; -+ GSettingsSchema* schema; -+ -+ schema_source = g_settings_schema_source_new_from_directory("@GSETTINGS_PATH@", -+ g_settings_schema_source_get_default(), -+ TRUE, NULL); -+ schema = g_settings_schema_source_lookup(schema_source, -+ COT_SCHEMA, -+ FALSE); -+ settings = g_settings_new_full(schema, NULL, NULL); -+ g_settings_schema_source_unref(schema_source); -+ g_settings_schema_unref(schema); - result = g_settings_set_boolean (settings, COT_DESKTOP_KEY, val); - g_object_unref (settings); - return result; -@@ -159,8 +179,18 @@ desktop_is_home_dir (void) - { - gboolean result; - GSettings* settings; -- -- settings = g_settings_new (CAJA_SCHEMA); -+ GSettingsSchemaSource* schema_source; -+ GSettingsSchema* schema; -+ -+ schema_source = g_settings_schema_source_new_from_directory("@caja_gsetttings_path@", -+ g_settings_schema_source_get_default(), -+ TRUE, NULL); -+ schema = g_settings_schema_source_lookup(schema_source, -+ CAJA_SCHEMA, -+ FALSE); -+ settings = g_settings_new_full(schema, NULL, NULL); -+ g_settings_schema_source_unref(schema_source); -+ g_settings_schema_unref(schema); - result = g_settings_get_boolean (settings, CAJA_DESKTOP_KEY); - g_object_unref (settings); - return result; -@@ -171,8 +201,18 @@ default_terminal_application (void) - { - gchar *result; - GSettings* settings; -- -- settings = g_settings_new (TERM_SCHEMA); -+ GSettingsSchemaSource* schema_source; -+ GSettingsSchema* schema; -+ -+ schema_source = g_settings_schema_source_new_from_directory("@desktop_gsetttings_path@", -+ g_settings_schema_source_get_default(), -+ TRUE, NULL); -+ schema = g_settings_schema_source_lookup(schema_source, -+ TERM_SCHEMA, -+ FALSE); -+ settings = g_settings_new_full(schema, NULL, NULL); -+ g_settings_schema_source_unref(schema_source); -+ g_settings_schema_unref(schema); - result = g_settings_get_string (settings, TERM_EXEC_KEY); - g_object_unref (settings); - -@@ -189,8 +229,18 @@ set_default_terminal_application (const gchar* exec) - { - gboolean result; - GSettings* settings; -- -- settings = g_settings_new (TERM_SCHEMA); -+ GSettingsSchemaSource* schema_source; -+ GSettingsSchema* schema; -+ -+ schema_source = g_settings_schema_source_new_from_directory("@desktop_gsetttings_path@", -+ g_settings_schema_source_get_default(), -+ TRUE, NULL); -+ schema = g_settings_schema_source_lookup(schema_source, -+ TERM_SCHEMA, -+ FALSE); -+ settings = g_settings_new_full(schema, NULL, NULL); -+ g_settings_schema_source_unref(schema_source); -+ g_settings_schema_unref(schema); - result = g_settings_set_string (settings, TERM_EXEC_KEY, exec); - g_object_unref (settings); - return result; -diff --git a/sendto/caja-sendto-command.c b/sendto/caja-sendto-command.c -index 8181db6..579dc81 100644 ---- a/sendto/caja-sendto-command.c -+++ b/sendto/caja-sendto-command.c -@@ -801,6 +801,8 @@ caja_sendto_init (void) - int main (int argc, char **argv) - { - GOptionContext *context; -+ GSettingsSchemaSource* schema_source; -+ GSettingsSchema* schema; - GError *error = NULL; - - #ifdef ENABLE_NLS -@@ -818,7 +820,15 @@ int main (int argc, char **argv) - return 1; - } - -- settings = g_settings_new ("org.mate.Caja.Sendto"); -+ schema_source = g_settings_schema_source_new_from_directory("@GSETTINGS_PATH@", -+ g_settings_schema_source_get_default(), -+ TRUE, NULL); -+ schema = g_settings_schema_source_lookup(schema_source, -+ "org.mate.Caja.Sendto", -+ FALSE); -+ settings = g_settings_new_full(schema, NULL, NULL); -+ g_settings_schema_source_unref(schema_source); -+ g_settings_schema_unref(schema); - caja_sendto_init (); - if (caja_sendto_plugin_init () == FALSE) { - GtkWidget *error_dialog; -diff --git a/wallpaper/caja-wallpaper-extension.c b/wallpaper/caja-wallpaper-extension.c -index 3119e9f..4f80c88 100644 ---- a/wallpaper/caja-wallpaper-extension.c -+++ b/wallpaper/caja-wallpaper-extension.c -@@ -47,6 +47,8 @@ set_wallpaper_callback (CajaMenuItem *item, - { - GList *files; - GSettings *settings; -+ GSettingsSchemaSource* schema_source; -+ GSettingsSchema* schema; - CajaFileInfo *file; - gchar *uri; - gchar *filename; -@@ -57,7 +59,15 @@ set_wallpaper_callback (CajaMenuItem *item, - uri = caja_file_info_get_uri (file); - filename = g_filename_from_uri(uri, NULL, NULL); - -- settings = g_settings_new (WP_SCHEMA); -+ schema_source = g_settings_schema_source_new_from_directory("@desktop_gsetttings_path@", -+ g_settings_schema_source_get_default(), -+ TRUE, NULL); -+ schema = g_settings_schema_source_lookup(schema_source, -+ WP_SCHEMA, -+ FALSE); -+ settings = g_settings_new_full(schema, NULL, NULL); -+ g_settings_schema_source_unref(schema_source); -+ g_settings_schema_unref(schema); - - g_settings_set_string (settings, WP_FILE_KEY, filename); - diff --git a/pkgs/desktops/mate/caja-with-extensions/default.nix b/pkgs/desktops/mate/caja-with-extensions/default.nix deleted file mode 100644 index 4de6d5d6d760..000000000000 --- a/pkgs/desktops/mate/caja-with-extensions/default.nix +++ /dev/null @@ -1,29 +0,0 @@ -{ stdenv -, lib -, makeWrapper -, caja-extensions -, caja -, extensions ? [ caja-extensions ] -, mateUpdateScript -}: - -stdenv.mkDerivation { - pname = "${caja.pname}-with-extensions"; - version = caja.version; - - dontUnpack = true; - - nativeBuildInputs = [ - makeWrapper - ]; - - inherit caja; - - installPhase = '' - mkdir -p $out/bin - makeWrapper $caja/bin/caja $out/bin/caja \ - --set CAJA_EXTENSION_DIRS ${lib.concatMapStringsSep ":" (x: "${x.outPath}/lib/caja/extensions-2.0") extensions} - ''; - - inherit (caja.meta); -} diff --git a/pkgs/desktops/mate/caja/default.nix b/pkgs/desktops/mate/caja/default.nix index fc5a8e93d9b9..a09cef4621a8 100644 --- a/pkgs/desktops/mate/caja/default.nix +++ b/pkgs/desktops/mate/caja/default.nix @@ -3,24 +3,26 @@ , fetchurl , pkg-config , gettext +, gtk-layer-shell , gtk3 , libnotify , libxml2 , libexif , exempi -, mate +, mate-desktop , hicolor-icon-theme +, wayland , wrapGAppsHook , mateUpdateScript }: stdenv.mkDerivation rec { pname = "caja"; - version = "1.26.3"; + version = "1.28.0"; src = fetchurl { url = "https://pub.mate-desktop.org/releases/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz"; - sha256 = "gT7fCKNvmV7DwVBBMf+K+70CH24VhmQ/5dztXnPleQ0="; + sha256 = "HjAUzhRVgX7C73TQnv37aDXYo3LtmhbvtZGe97ghlXo="; }; nativeBuildInputs = [ @@ -30,13 +32,15 @@ stdenv.mkDerivation rec { ]; buildInputs = [ + gtk-layer-shell gtk3 libnotify libxml2 libexif exempi - mate.mate-desktop + mate-desktop hicolor-icon-theme + wayland ]; configureFlags = [ "--disable-update-mimedb" ]; diff --git a/pkgs/desktops/mate/caja/with-extensions.nix b/pkgs/desktops/mate/caja/with-extensions.nix new file mode 100644 index 000000000000..b9a55b4b9209 --- /dev/null +++ b/pkgs/desktops/mate/caja/with-extensions.nix @@ -0,0 +1,61 @@ +{ stdenv +, lib +, glib +, wrapGAppsHook +, xorg +, caja +, cajaExtensions +, extensions ? [ ] +, useDefaultExtensions ? true +}: + +let + selectedExtensions = extensions ++ (lib.optionals useDefaultExtensions cajaExtensions); +in +stdenv.mkDerivation { + pname = "${caja.pname}-with-extensions"; + version = caja.version; + + src = null; + + nativeBuildInputs = [ + glib + wrapGAppsHook + ]; + + buildInputs = lib.forEach selectedExtensions (x: x.buildInputs) ++ selectedExtensions + ++ [ caja ] ++ caja.buildInputs; + + dontUnpack = true; + dontConfigure = true; + dontBuild = true; + + preferLocalBuild = true; + allowSubstitutes = false; + + installPhase = '' + runHook preInstall + + mkdir -p $out + ${xorg.lndir}/bin/lndir -silent ${caja} $out + + dbus_service_path="share/dbus-1/services/org.mate.freedesktop.FileManager1.service" + rm -f $out/share/applications/* "$out/$dbus_service_path" + for file in ${caja}/share/applications/*; do + substitute "$file" "$out/share/applications/$(basename $file)" \ + --replace-fail "${caja}" "$out" + done + substitute "${caja}/$dbus_service_path" "$out/$dbus_service_path" \ + --replace-fail "${caja}" "$out" + + runHook postInstall + ''; + + preFixup = lib.optionalString (selectedExtensions != [ ]) '' + gappsWrapperArgs+=( + --set CAJA_EXTENSION_DIRS ${lib.concatMapStringsSep ":" (x: "${x.outPath}/lib/caja/extensions-2.0") selectedExtensions} + ) + ''; + + inherit (caja.meta); +} diff --git a/pkgs/desktops/mate/default.nix b/pkgs/desktops/mate/default.nix index 8604c0f5ee90..da8c8e065789 100644 --- a/pkgs/desktops/mate/default.nix +++ b/pkgs/desktops/mate/default.nix @@ -14,7 +14,7 @@ let caja = callPackage ./caja { }; caja-dropbox = callPackage ./caja-dropbox { }; caja-extensions = callPackage ./caja-extensions { }; - caja-with-extensions = callPackage ./caja-with-extensions { }; + caja-with-extensions = callPackage ./caja/with-extensions.nix { }; engrampa = callPackage ./engrampa { }; eom = callPackage ./eom { }; libmatekbd = callPackage ./libmatekbd { }; @@ -27,6 +27,7 @@ let mate-common = callPackage ./mate-common { }; mate-control-center = callPackage ./mate-control-center { }; mate-desktop = callPackage ./mate-desktop { }; + mate-gsettings-overrides = callPackage ./mate-gsettings-overrides { }; mate-icon-theme = callPackage ./mate-icon-theme { }; mate-icon-theme-faenza = callPackage ./mate-icon-theme-faenza { }; mate-indicator-applet = callPackage ./mate-indicator-applet { }; @@ -35,6 +36,7 @@ let mate-netbook = callPackage ./mate-netbook { }; mate-notification-daemon = callPackage ./mate-notification-daemon { }; mate-panel = callPackage ./mate-panel { }; + mate-panel-with-applets = callPackage ./mate-panel/with-applets.nix { }; mate-polkit = callPackage ./mate-polkit { }; mate-power-manager = callPackage ./mate-power-manager { }; mate-sensors-applet = callPackage ./mate-sensors-applet { }; @@ -49,12 +51,13 @@ let mate-user-guide = callPackage ./mate-user-guide { }; mate-user-share = callPackage ./mate-user-share { }; mate-utils = callPackage ./mate-utils { }; + mate-wayland-session = callPackage ./mate-wayland-session { }; mozo = callPackage ./mozo { }; - pluma = callPackage ./pluma { inherit (pkgs.gnome) adwaita-icon-theme; }; + pluma = callPackage ./pluma { }; python-caja = callPackage ./python-caja { }; + # Caja and mate-panel are managed in NixOS module. basePackages = [ - caja libmatekbd libmatemixer libmateweather @@ -65,7 +68,6 @@ let mate-icon-theme mate-menus mate-notification-daemon - mate-panel mate-polkit mate-session-manager mate-settings-daemon @@ -75,7 +77,7 @@ let extraPackages = [ atril - caja-extensions + caja-extensions # for caja-sendto engrampa eom mate-applets @@ -86,7 +88,6 @@ let mate-netbook mate-power-manager mate-screensaver - mate-sensors-applet mate-system-monitor mate-terminal mate-user-guide @@ -96,6 +97,20 @@ let pluma ]; + cajaExtensions = [ + caja-extensions + ]; + + panelApplets = [ + mate-applets + mate-indicator-applet + mate-netbook + mate-notification-daemon + mate-media + mate-power-manager + mate-sensors-applet + mate-utils + ]; }; in lib.makeScope pkgs.newScope packages diff --git a/pkgs/desktops/mate/engrampa/default.nix b/pkgs/desktops/mate/engrampa/default.nix index 8ed6f37fc4d6..d8ec65de6b9d 100644 --- a/pkgs/desktops/mate/engrampa/default.nix +++ b/pkgs/desktops/mate/engrampa/default.nix @@ -5,22 +5,24 @@ , gettext , itstool , libxml2 +, caja , gtk3 -, mate , hicolor-icon-theme +, json-glib +, mate-desktop , wrapGAppsHook , mateUpdateScript -# can be defaulted to true once engrampa builds with meson (version > 1.27.0) +# can be defaulted to true once switch to meson , withMagic ? stdenv.buildPlatform.canExecute stdenv.hostPlatform, file }: stdenv.mkDerivation rec { pname = "engrampa"; - version = "1.26.2"; + version = "1.28.1"; src = fetchurl { url = "https://pub.mate-desktop.org/releases/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz"; - sha256 = "cx9cR7UfNvyMiWUrbnfbT7K0Zjid6ZkMmFUpo9T/iEw="; + sha256 = "nFxMm8+LCO6qjydVONJLTJVQidWK7AMx6JwCuE2FOGo="; }; nativeBuildInputs = [ @@ -32,10 +34,11 @@ stdenv.mkDerivation rec { ]; buildInputs = [ + caja gtk3 - mate.caja hicolor-icon-theme - mate.mate-desktop + json-glib + mate-desktop ] ++ lib.optionals withMagic [ file ]; diff --git a/pkgs/desktops/mate/eom/default.nix b/pkgs/desktops/mate/eom/default.nix index 765d10dd9d68..0ca00c27b92b 100644 --- a/pkgs/desktops/mate/eom/default.nix +++ b/pkgs/desktops/mate/eom/default.nix @@ -13,7 +13,7 @@ , libpeas , shared-mime-info , gtk3 -, mate +, mate-desktop , hicolor-icon-theme , wrapGAppsHook , mateUpdateScript @@ -21,11 +21,11 @@ stdenv.mkDerivation rec { pname = "eom"; - version = "1.26.1"; + version = "1.28.0"; src = fetchurl { url = "https://pub.mate-desktop.org/releases/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz"; - sha256 = "tSUSKUlPfmxi4J+yEeQzCN9PB0xVG6CiM9ws1oZLmWA="; + sha256 = "mgHKsplaGoxyWMhl6uXxgu1HMMRGcq/cOgfkI+3VOrw="; }; nativeBuildInputs = [ @@ -45,7 +45,7 @@ stdenv.mkDerivation rec { shared-mime-info gtk3 libpeas - mate.mate-desktop + mate-desktop hicolor-icon-theme ]; diff --git a/pkgs/desktops/mate/libmatekbd/default.nix b/pkgs/desktops/mate/libmatekbd/default.nix index 901d1c6bfffa..918e28f255aa 100644 --- a/pkgs/desktops/mate/libmatekbd/default.nix +++ b/pkgs/desktops/mate/libmatekbd/default.nix @@ -10,11 +10,11 @@ stdenv.mkDerivation rec { pname = "libmatekbd"; - version = "1.26.1"; + version = "1.28.0"; src = fetchurl { url = "https://pub.mate-desktop.org/releases/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz"; - sha256 = "Y5ONkSUpRe7qiP2DdNEjG9g9As2WXGu6F8GF7bOXvO0="; + sha256 = "XS5YSDwrI9M1A9JMiPi5CijMAYnX5AAbPic6YE9v6A4="; }; nativeBuildInputs = [ diff --git a/pkgs/desktops/mate/libmatemixer/default.nix b/pkgs/desktops/mate/libmatemixer/default.nix index 310bfb96a7d9..ebdd3eb07dda 100644 --- a/pkgs/desktops/mate/libmatemixer/default.nix +++ b/pkgs/desktops/mate/libmatemixer/default.nix @@ -7,6 +7,7 @@ , glib , alsaSupport ? stdenv.isLinux , alsa-lib +, udev , pulseaudioSupport ? config.pulseaudio or true , libpulseaudio , ossSupport ? false @@ -15,11 +16,11 @@ stdenv.mkDerivation rec { pname = "libmatemixer"; - version = "1.26.1"; + version = "1.28.0"; src = fetchurl { url = "https://pub.mate-desktop.org/releases/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz"; - sha256 = "SWD1mmufr4KgHUpLjMJgtIaN2ZHv1Kmxe10KFaHToa4="; + sha256 = "XXO5Ijl/YGiOPJUw61MrzkbDDiYtsbU1L6MsQNhwoMc="; }; nativeBuildInputs = [ @@ -29,9 +30,12 @@ stdenv.mkDerivation rec { buildInputs = [ glib - ] - ++ lib.optional alsaSupport alsa-lib - ++ lib.optional pulseaudioSupport libpulseaudio; + ] ++ lib.optionals alsaSupport [ + alsa-lib + udev + ] ++ lib.optionals pulseaudioSupport [ + libpulseaudio + ]; configureFlags = lib.optional ossSupport "--enable-oss"; diff --git a/pkgs/desktops/mate/libmateweather/default.nix b/pkgs/desktops/mate/libmateweather/default.nix index 4c7e6eb6c023..4c003c4a9873 100644 --- a/pkgs/desktops/mate/libmateweather/default.nix +++ b/pkgs/desktops/mate/libmateweather/default.nix @@ -14,11 +14,11 @@ stdenv.mkDerivation rec { pname = "libmateweather"; - version = "1.26.3"; + version = "1.28.0"; src = fetchurl { url = "https://pub.mate-desktop.org/releases/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz"; - sha256 = "XmzSRBiEfLRazxfaW0NacTHLTsKs/2joKPNCob8T70o="; + sha256 = "VUNz3rWzk7nYSydd0spmyaSi0ObskgRPq4qlPjAy0rU="; }; strictDeps = true; diff --git a/pkgs/desktops/mate/marco/default.nix b/pkgs/desktops/mate/marco/default.nix index 0e71a9a86fd6..598cc51eca46 100644 --- a/pkgs/desktops/mate/marco/default.nix +++ b/pkgs/desktops/mate/marco/default.nix @@ -14,6 +14,7 @@ , gnome , glib , gtk3 +, mate-desktop , mate-settings-daemon , wrapGAppsHook , mateUpdateScript @@ -21,11 +22,11 @@ stdenv.mkDerivation rec { pname = "marco"; - version = "1.26.2"; + version = "1.28.1"; src = fetchurl { url = "https://pub.mate-desktop.org/releases/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz"; - sha256 = "EvGiVP4QcvAwSIRxHgiaVoJ4CgEVk0Au043muUgOB6M="; + sha256 = "JJbl5A7pgM1oSUk6w+D4/Q3si4HGdNqNm6GaV38KwuE="; }; nativeBuildInputs = [ @@ -45,9 +46,15 @@ stdenv.mkDerivation rec { libstartup_notification gtk3 gnome.zenity + mate-desktop mate-settings-daemon ]; + postPatch = '' + substituteInPlace src/core/util.c \ + --replace-fail 'argvl[i++] = "zenity"' 'argvl[i++] = "${gnome.zenity}/bin/zenity"' + ''; + env.NIX_CFLAGS_COMPILE = "-I${glib.dev}/include/gio-unix-2.0"; enableParallelBuilding = true; diff --git a/pkgs/desktops/mate/mate-applets/default.nix b/pkgs/desktops/mate/mate-applets/default.nix index dfb4e4620c51..3e20dc74da43 100644 --- a/pkgs/desktops/mate/mate-applets/default.nix +++ b/pkgs/desktops/mate/mate-applets/default.nix @@ -7,7 +7,7 @@ , dbus-glib , glib , gtk3 -, gtksourceview3 +, gtksourceview4 , gucharmap , libmateweather , libnl @@ -20,7 +20,6 @@ , polkit , upower , wirelesstools -, mate , hicolor-icon-theme , wrapGAppsHook , mateUpdateScript @@ -28,11 +27,11 @@ stdenv.mkDerivation rec { pname = "mate-applets"; - version = "1.26.1"; + version = "1.28.0"; src = fetchurl { url = "https://pub.mate-desktop.org/releases/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz"; - sha256 = "Orj2HbN23DM85MGHIsY6B/qz6OEnK34OCXrUWXsXwsI="; + sha256 = "G2vva9XTJvudyCj/kQ5LG5KUtGYMMR3ByQMQ/Zw1ZoY="; }; nativeBuildInputs = [ @@ -45,7 +44,7 @@ stdenv.mkDerivation rec { buildInputs = [ dbus-glib gtk3 - gtksourceview3 + gtksourceview4 gucharmap hicolor-icon-theme libgtop @@ -61,7 +60,7 @@ stdenv.mkDerivation rec { wirelesstools ]; - configureFlags = [ "--enable-suid=no" ]; + configureFlags = [ "--enable-suid=no" "--enable-in-process" ]; env.NIX_CFLAGS_COMPILE = "-I${glib.dev}/include/gio-unix-2.0"; diff --git a/pkgs/desktops/mate/mate-backgrounds/default.nix b/pkgs/desktops/mate/mate-backgrounds/default.nix index 639f156c8ac7..0d512260d303 100644 --- a/pkgs/desktops/mate/mate-backgrounds/default.nix +++ b/pkgs/desktops/mate/mate-backgrounds/default.nix @@ -1,31 +1,21 @@ { lib -, stdenv +, stdenvNoCC , fetchurl -, fetchpatch , meson , ninja , gettext , mateUpdateScript }: -stdenv.mkDerivation rec { +stdenvNoCC.mkDerivation rec { pname = "mate-backgrounds"; - version = "1.26.0"; + version = "1.28.0"; src = fetchurl { url = "https://pub.mate-desktop.org/releases/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz"; - sha256 = "0379hngy3ap1r5kmqvmzs9r710k2c9nal2ps3hq765df4ir15j8d"; + sha256 = "UNGv0CSGvQesIqWmtu+jAxFI8NSKguSI2QmtVwA6aUM="; }; - patches = [ - # Fix build with meson 0.61, can be removed on next update. - # https://github.com/mate-desktop/mate-backgrounds/pull/39 - (fetchpatch { - url = "https://github.com/mate-desktop/mate-backgrounds/commit/0096e237d420e6247a75a1c6940a818e309ac2a7.patch"; - sha256 = "HEF8VWunFO+NCG18fZA7lbE2l8pc6Z3jcD+rSZ1Jsqg="; - }) - ]; - nativeBuildInputs = [ gettext meson diff --git a/pkgs/desktops/mate/mate-calc/default.nix b/pkgs/desktops/mate/mate-calc/default.nix index cdb743cac665..4a4d6db2a3b3 100644 --- a/pkgs/desktops/mate/mate-calc/default.nix +++ b/pkgs/desktops/mate/mate-calc/default.nix @@ -14,11 +14,11 @@ stdenv.mkDerivation rec { pname = "mate-calc"; - version = "1.26.0"; + version = "1.28.0"; src = fetchurl { url = "https://pub.mate-desktop.org/releases/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz"; - sha256 = "0mddfh9ixhh60nfgx5kcprcl9liavwqyina11q3pnpfs3n02df3y"; + sha256 = "gEsSXR4oZLHnSvgW2psquLGUcrmvl0Q37nNVraXmKPU="; }; nativeBuildInputs = [ diff --git a/pkgs/desktops/mate/mate-common/default.nix b/pkgs/desktops/mate/mate-common/default.nix index 0f4a1901932b..fac27474e32a 100644 --- a/pkgs/desktops/mate/mate-common/default.nix +++ b/pkgs/desktops/mate/mate-common/default.nix @@ -1,16 +1,16 @@ { lib -, stdenv +, stdenvNoCC , fetchurl , mateUpdateScript }: -stdenv.mkDerivation rec { +stdenvNoCC.mkDerivation rec { pname = "mate-common"; - version = "1.26.0"; + version = "1.28.0"; src = fetchurl { url = "https://pub.mate-desktop.org/releases/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz"; - sha256 = "014wpfqpqmfkzv81paap4fz15mj1gsyvaxlrfqsp9a3yxw4f7jaf"; + sha256 = "QrfCzuJo9x1+HBrU9pvNoOzWVXipZyIYfGt2N40mugo="; }; enableParallelBuilding = true; diff --git a/pkgs/desktops/mate/mate-control-center/default.nix b/pkgs/desktops/mate/mate-control-center/default.nix index 8e2e3ea621c2..8305601204e2 100644 --- a/pkgs/desktops/mate/mate-control-center/default.nix +++ b/pkgs/desktops/mate/mate-control-center/default.nix @@ -5,17 +5,27 @@ , gettext , itstool , libxml2 +, accountsservice +, caja , dbus-glib , libxklavier , libcanberra-gtk3 +, libgtop +, libmatekbd , librsvg -, libappindicator-gtk3 +, libayatana-appindicator , glib , desktop-file-utils , dconf , gtk3 , polkit -, mate +, marco +, mate-desktop +, mate-menus +, mate-panel +, mate-settings-daemon +, udisks2 +, systemd , hicolor-icon-theme , wrapGAppsHook , mateUpdateScript @@ -23,11 +33,11 @@ stdenv.mkDerivation rec { pname = "mate-control-center"; - version = "1.26.1"; + version = "1.28.0"; src = fetchurl { url = "https://pub.mate-desktop.org/releases/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz"; - sha256 = "4F9JKjtleqVvxY989xvIyA344lNR/eTbT1I6uNtbVgg="; + sha256 = "6/LHBP1SSNwvmDb/KQKIae8p1QVJB8xhVzS2ODp5FLw="; }; nativeBuildInputs = [ @@ -39,32 +49,41 @@ stdenv.mkDerivation rec { ]; buildInputs = [ + accountsservice libxml2 dbus-glib libxklavier libcanberra-gtk3 + libgtop + libmatekbd librsvg - libappindicator-gtk3 + libayatana-appindicator gtk3 dconf polkit hicolor-icon-theme - mate.mate-desktop - mate.libmatekbd - mate.mate-menus - mate.mate-panel # for org.mate.panel schema, see m-c-c#678 - mate.marco - mate.mate-settings-daemon + marco + mate-desktop + mate-menus + mate-panel # for org.mate.panel schema, see m-c-c#678 + mate-settings-daemon + udisks2 + systemd ]; + postPatch = '' + substituteInPlace capplets/system-info/mate-system-info.c \ + --replace-fail "/usr/bin/mate-about" "${mate-desktop}/bin/mate-about" + ''; + configureFlags = [ "--disable-update-mimedb" ]; preFixup = '' gappsWrapperArgs+=( # WM keyboard shortcuts - --prefix XDG_DATA_DIRS : "${mate.marco}/share" + --prefix XDG_DATA_DIRS : "${marco}/share" # Desktop font, works only when passed after gtk3 schemas in the wrapper for some reason - --prefix XDG_DATA_DIRS : "${glib.getSchemaDataDirPath mate.caja}" + --prefix XDG_DATA_DIRS : "${glib.getSchemaDataDirPath caja}" ) ''; diff --git a/pkgs/desktops/mate/mate-desktop/default.nix b/pkgs/desktops/mate/mate-desktop/default.nix index d7c052ae3c24..4f917028bd80 100644 --- a/pkgs/desktops/mate/mate-desktop/default.nix +++ b/pkgs/desktops/mate/mate-desktop/default.nix @@ -4,7 +4,7 @@ , pkg-config , gettext , isocodes -, gnome +, libstartup_notification , gtk3 , dconf , wrapGAppsHook @@ -13,11 +13,13 @@ stdenv.mkDerivation rec { pname = "mate-desktop"; - version = "1.26.2"; + version = "1.28.2"; + + outputs = [ "out" "dev" ]; src = fetchurl { url = "https://pub.mate-desktop.org/releases/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz"; - sha256 = "XtA/fFLXt+zknKHnNqp2au/rXGOeqz5oxwkMUw0CN2o="; + sha256 = "MrtLeSAUs5HB4biunBioK01EdlCYS0y6fSjpVWSWSqI="; }; nativeBuildInputs = [ @@ -28,10 +30,14 @@ stdenv.mkDerivation rec { buildInputs = [ dconf - gtk3 isocodes ]; + propagatedBuildInputs = [ + gtk3 + libstartup_notification + ]; + enableParallelBuilding = true; passthru.updateScript = mateUpdateScript { inherit pname; }; diff --git a/pkgs/desktops/mate/mate-gsettings-overrides/default.nix b/pkgs/desktops/mate/mate-gsettings-overrides/default.nix new file mode 100644 index 000000000000..e9e2c3c3b0b9 --- /dev/null +++ b/pkgs/desktops/mate/mate-gsettings-overrides/default.nix @@ -0,0 +1,24 @@ +{ lib +, runCommand +, gsettings-desktop-schemas +, mate-wayland-session +, glib +}: + +let + gsettingsOverridePackages = [ + gsettings-desktop-schemas + mate-wayland-session + ]; +in +runCommand "mate-gsettings-overrides" { preferLocalBuild = true; } '' + data_dir="$out/share/gsettings-schemas/nixos-gsettings-overrides" + schema_dir="$data_dir/glib-2.0/schemas" + mkdir -p "$schema_dir" + + ${lib.concatMapStringsSep "\n" (pkg: "cp -rf \"${glib.getSchemaPath pkg}\"/*.xml \"${glib.getSchemaPath pkg}\"/*.gschema.override \"$schema_dir\"") gsettingsOverridePackages} + + chmod -R a+w "$data_dir" + + ${glib.dev}/bin/glib-compile-schemas --strict "$schema_dir" +'' diff --git a/pkgs/desktops/mate/mate-icon-theme/default.nix b/pkgs/desktops/mate/mate-icon-theme/default.nix index 1f874fa6f16e..b951d929bb06 100644 --- a/pkgs/desktops/mate/mate-icon-theme/default.nix +++ b/pkgs/desktops/mate/mate-icon-theme/default.nix @@ -12,11 +12,11 @@ stdenv.mkDerivation rec { pname = "mate-icon-theme"; - version = "1.26.0"; + version = "1.28.0"; src = fetchurl { url = "https://pub.mate-desktop.org/releases/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz"; - sha256 = "0nha555fhhn0j5wmzmdc7bh93ckzwwdm8mwmzma5whkzslv09xa1"; + sha256 = "lNYHkGDKXfdFQpId5O6ji30C0HVhyRk1bZXeh2+abTo="; }; nativeBuildInputs = [ diff --git a/pkgs/desktops/mate/mate-indicator-applet/default.nix b/pkgs/desktops/mate/mate-indicator-applet/default.nix index b6445151f594..0a915625958b 100644 --- a/pkgs/desktops/mate/mate-indicator-applet/default.nix +++ b/pkgs/desktops/mate/mate-indicator-applet/default.nix @@ -5,7 +5,7 @@ , gettext , gtk3 , libayatana-indicator -, mate +, mate-panel , hicolor-icon-theme , wrapGAppsHook , mateUpdateScript @@ -13,17 +13,17 @@ stdenv.mkDerivation rec { pname = "mate-indicator-applet"; - version = "1.26.0"; + version = "1.28.0"; src = fetchurl { url = "https://pub.mate-desktop.org/releases/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz"; - sha256 = "144fh9f3lag2cqnmb6zxlh8k83ya8kha6rmd7r8gg3z5w3nzpyz4"; + sha256 = "zrPXA5cKPlWNfNffCxwhceOvdSolSVrO0uIiwemtSc0="; }; postPatch = '' # Find installed Unity & Ayatana (new-style) indicators substituteInPlace src/applet-main.c \ - --replace '/usr/share' '/run/current-system/sw/share' + --replace-fail '/usr/share' '/run/current-system/sw/share' ''; nativeBuildInputs = [ @@ -35,7 +35,7 @@ stdenv.mkDerivation rec { buildInputs = [ gtk3 libayatana-indicator - mate.mate-panel + mate-panel hicolor-icon-theme ]; diff --git a/pkgs/desktops/mate/mate-media/default.nix b/pkgs/desktops/mate/mate-media/default.nix index 0b5eae0172e0..4b2590088e1d 100644 --- a/pkgs/desktops/mate/mate-media/default.nix +++ b/pkgs/desktops/mate/mate-media/default.nix @@ -4,32 +4,27 @@ , pkg-config , gettext , libtool -, libxml2 -, libcanberra-gtk3 +, gtk-layer-shell , gtk3 -, mate +, libcanberra-gtk3 +, libmatemixer +, libxml2 +, mate-desktop +, mate-panel +, wayland , wrapGAppsHook , mateUpdateScript }: stdenv.mkDerivation rec { pname = "mate-media"; - version = "1.26.2"; + version = "1.28.1"; src = fetchurl { url = "https://pub.mate-desktop.org/releases/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz"; - sha256 = "r0ZjlXTMOIUTCJyhC7FB/8Pm0awz5zDkII21dZZChQ8="; + sha256 = "vNwQLiL2P1XmMWbVxwjpHBE1cOajCodDRaiGCeg6mRI="; }; - buildInputs = [ - libxml2 - libcanberra-gtk3 - gtk3 - mate.libmatemixer - mate.mate-panel - mate.mate-desktop - ]; - nativeBuildInputs = [ pkg-config gettext @@ -37,6 +32,19 @@ stdenv.mkDerivation rec { wrapGAppsHook ]; + buildInputs = [ + gtk-layer-shell + gtk3 + libcanberra-gtk3 + libmatemixer + libxml2 + mate-desktop + mate-panel + wayland + ]; + + configureFlags = [ "--enable-in-process" ]; + enableParallelBuilding = true; passthru.updateScript = mateUpdateScript { inherit pname; }; diff --git a/pkgs/desktops/mate/mate-menus/default.nix b/pkgs/desktops/mate/mate-menus/default.nix index 9d879340ce1e..9328147e642c 100644 --- a/pkgs/desktops/mate/mate-menus/default.nix +++ b/pkgs/desktops/mate/mate-menus/default.nix @@ -11,11 +11,11 @@ stdenv.mkDerivation rec { pname = "mate-menus"; - version = "1.26.1"; + version = "1.28.0"; src = fetchurl { url = "https://pub.mate-desktop.org/releases/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz"; - sha256 = "RY1ZmuW2UMfSF0D5/pVMSoOL5F7WKrQOIOMG+vXdHYw="; + sha256 = "z0DHXH1vCq0dSWmCj8YgJcYiK8aoTwu51urX5FlwUI0="; }; nativeBuildInputs = [ diff --git a/pkgs/desktops/mate/mate-notification-daemon/default.nix b/pkgs/desktops/mate/mate-notification-daemon/default.nix index 7569a676db11..ca1fa2e17289 100644 --- a/pkgs/desktops/mate/mate-notification-daemon/default.nix +++ b/pkgs/desktops/mate/mate-notification-daemon/default.nix @@ -7,6 +7,7 @@ , libcanberra-gtk3 , libnotify , libwnck +, gtk-layer-shell , gtk3 , libxml2 , mate-desktop @@ -17,11 +18,11 @@ stdenv.mkDerivation rec { pname = "mate-notification-daemon"; - version = "1.26.1"; + version = "1.28.0"; src = fetchurl { url = "https://pub.mate-desktop.org/releases/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz"; - sha256 = "Dq6SlsSKPHH9VvGTGWH5LSnkWgRf5fGgX4PHQAwxmSQ="; + sha256 = "pDEDSOrYZsvLm0xGP00mXMapahp4KpQRoIsjvWXbsuA="; }; nativeBuildInputs = [ @@ -35,11 +36,14 @@ stdenv.mkDerivation rec { libcanberra-gtk3 libnotify libwnck + gtk-layer-shell gtk3 mate-desktop mate-panel ]; + configureFlags = [ "--enable-in-process" ]; + env.NIX_CFLAGS_COMPILE = "-I${glib.dev}/include/gio-unix-2.0"; enableParallelBuilding = true; diff --git a/pkgs/desktops/mate/mate-panel/default.nix b/pkgs/desktops/mate/mate-panel/default.nix index 214e1767f25b..75340bf4dc96 100644 --- a/pkgs/desktops/mate/mate-panel/default.nix +++ b/pkgs/desktops/mate/mate-panel/default.nix @@ -5,25 +5,31 @@ , gettext , itstool , glib +, gnome +, gtk-layer-shell +, gtk3 +, libmateweather , libwnck , librsvg , libxml2 , dconf -, gtk3 -, mate +, mate-desktop +, mate-menus , hicolor-icon-theme +, wayland , gobject-introspection , wrapGAppsHook +, marco , mateUpdateScript }: stdenv.mkDerivation rec { pname = "mate-panel"; - version = "1.26.4"; + version = "1.28.0"; src = fetchurl { url = "https://pub.mate-desktop.org/releases/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz"; - sha256 = "IHD51RVlfl3c2g2H73KXE9upy3sq0GIjvWdKIcxrPa8="; + sha256 = "s70EoJTQ61vX3DOA728MSdmp1SCXM9fM17RtBmogjLo="; }; nativeBuildInputs = [ @@ -35,18 +41,29 @@ stdenv.mkDerivation rec { ]; buildInputs = [ - glib + gtk-layer-shell + libmateweather libwnck librsvg libxml2 - gtk3 dconf - mate.libmateweather - mate.mate-desktop - mate.mate-menus + mate-desktop + mate-menus hicolor-icon-theme + wayland ]; + propagatedBuildInputs = [ + glib + gtk3 + # See https://github.com/mate-desktop/mate-panel/issues/1402 + # This is propagated for mate_panel_applet_settings_new and applet's wrapGAppsHook + gnome.dconf-editor + ]; + + # Needed for Wayland support. + configureFlags = [ "--with-in-process-applets=all" ]; + env.NIX_CFLAGS_COMPILE = "-I${glib.dev}/include/gio-unix-2.0"; makeFlags = [ @@ -57,7 +74,7 @@ stdenv.mkDerivation rec { preFixup = '' gappsWrapperArgs+=( # Workspace switcher settings, works only when passed after gtk3 schemas in the wrapper for some reason - --prefix XDG_DATA_DIRS : "${glib.getSchemaDataDirPath mate.marco}" + --prefix XDG_DATA_DIRS : "${glib.getSchemaDataDirPath marco}" ) ''; diff --git a/pkgs/desktops/mate/mate-panel/with-applets.nix b/pkgs/desktops/mate/mate-panel/with-applets.nix new file mode 100644 index 000000000000..e3f76645aa7c --- /dev/null +++ b/pkgs/desktops/mate/mate-panel/with-applets.nix @@ -0,0 +1,61 @@ +{ stdenv +, lib +, glib +, wrapGAppsHook +, xorg +, marco +, mate-panel +, panelApplets +, applets ? [ ] +, useDefaultApplets ? true +}: + +let + selectedApplets = applets ++ (lib.optionals useDefaultApplets panelApplets); +in +stdenv.mkDerivation { + pname = "${mate-panel.pname}-with-applets"; + version = mate-panel.version; + + src = null; + + paths = [ mate-panel ] ++ selectedApplets; + passAsFile = [ "paths" ]; + + nativeBuildInputs = [ + glib + wrapGAppsHook + ]; + + buildInputs = lib.forEach selectedApplets (x: x.buildInputs) ++ selectedApplets + ++ [ mate-panel ] ++ mate-panel.buildInputs ++ mate-panel.propagatedBuildInputs; + + dontUnpack = true; + dontConfigure = true; + dontBuild = true; + + preferLocalBuild = true; + allowSubstitutes = false; + + installPhase = '' + runHook preInstall + + mkdir -p $out + for i in $(cat $pathsPath); do + ${xorg.lndir}/bin/lndir -silent $i $out + done + + runHook postInstall + ''; + + preFixup = '' + gappsWrapperArgs+=( + --set MATE_PANEL_APPLETS_DIR "$out/share/mate-panel/applets" + --set MATE_PANEL_EXTRA_MODULES "$out/lib/mate-panel/applets" + # Workspace switcher settings + --prefix XDG_DATA_DIRS : "${glib.getSchemaDataDirPath marco}" + ) + ''; + + inherit (mate-panel.meta); +} diff --git a/pkgs/desktops/mate/mate-polkit/default.nix b/pkgs/desktops/mate/mate-polkit/default.nix index 1adee4c01b0f..827a641d3967 100644 --- a/pkgs/desktops/mate/mate-polkit/default.nix +++ b/pkgs/desktops/mate/mate-polkit/default.nix @@ -5,19 +5,18 @@ , gettext , gtk3 , gobject-introspection -, libappindicator-gtk3 -, libindicator-gtk3 +, libayatana-appindicator , polkit , mateUpdateScript }: stdenv.mkDerivation rec { pname = "mate-polkit"; - version = "1.26.1"; + version = "1.28.1"; src = fetchurl { url = "https://pub.mate-desktop.org/releases/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz"; - sha256 = "9bewtd/FMwLEBAMkWZjrkSGvP1DnFmagmrc7slRSA1c="; + sha256 = "NQod0KjtaiycGDz/KiHzlCmelo/MauLoyTxWXa5gSug="; }; nativeBuildInputs = [ @@ -28,8 +27,7 @@ stdenv.mkDerivation rec { buildInputs = [ gtk3 - libappindicator-gtk3 - libindicator-gtk3 + libayatana-appindicator polkit ]; diff --git a/pkgs/desktops/mate/mate-power-manager/default.nix b/pkgs/desktops/mate/mate-power-manager/default.nix index 1bf511d5073f..1eaff61fc1b2 100644 --- a/pkgs/desktops/mate/mate-power-manager/default.nix +++ b/pkgs/desktops/mate/mate-power-manager/default.nix @@ -6,6 +6,7 @@ , glib , itstool , libxml2 +, mate-desktop , mate-panel , libnotify , libcanberra-gtk3 @@ -21,11 +22,11 @@ stdenv.mkDerivation rec { pname = "mate-power-manager"; - version = "1.26.1"; + version = "1.28.1"; src = fetchurl { url = "https://pub.mate-desktop.org/releases/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz"; - sha256 = "IM2dIu0Eur+Yu1DnGg7F14qKR2KHcjJ4+H2nbKv7EEI="; + sha256 = "jr3LdLYH6Ggza6moFGze+Pl7zlNcKwyzv2UMWPce7iE="; }; nativeBuildInputs = [ @@ -46,6 +47,7 @@ stdenv.mkDerivation rec { dbus-glib upower polkit + mate-desktop mate-panel ]; diff --git a/pkgs/desktops/mate/mate-screensaver/default.nix b/pkgs/desktops/mate/mate-screensaver/default.nix index 37cf461b78a5..2d2c9bfaf952 100644 --- a/pkgs/desktops/mate/mate-screensaver/default.nix +++ b/pkgs/desktops/mate/mate-screensaver/default.nix @@ -8,20 +8,22 @@ , libXScrnSaver , libnotify , libxml2 +, mate-desktop +, mate-menus +, mate-panel , pam , systemd -, mate , wrapGAppsHook , mateUpdateScript }: stdenv.mkDerivation rec { pname = "mate-screensaver"; - version = "1.26.2"; + version = "1.28.0"; src = fetchurl { url = "https://pub.mate-desktop.org/releases/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz"; - sha256 = "2pcAziQUW9VdJJJ+7P5tMdClLq6G5WOyxlBUs1al/34="; + sha256 = "ag8kqPhKL5XhARSrU+Y/1KymiKVf3FA+1lDgpBDj6nA="; }; nativeBuildInputs = [ @@ -36,11 +38,11 @@ stdenv.mkDerivation rec { dbus-glib libXScrnSaver libnotify + mate-desktop + mate-menus + mate-panel pam systemd - mate.mate-desktop - mate.mate-menus - mate.mate-panel ]; configureFlags = [ "--without-console-kit" ]; diff --git a/pkgs/desktops/mate/mate-sensors-applet/default.nix b/pkgs/desktops/mate/mate-sensors-applet/default.nix index 7c5988e34503..88fc966edb56 100644 --- a/pkgs/desktops/mate/mate-sensors-applet/default.nix +++ b/pkgs/desktops/mate/mate-sensors-applet/default.nix @@ -10,29 +10,26 @@ , libatasmart , libnotify , lm_sensors -, mate +, mate-panel , hicolor-icon-theme -, wrapGAppsHook , mateUpdateScript }: stdenv.mkDerivation rec { pname = "mate-sensors-applet"; - version = "1.26.0"; + version = "1.28.0"; src = fetchurl { url = "https://pub.mate-desktop.org/releases/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz"; - sha256 = "0s19r30fsicqvvcnz57lv158pi35w9zn5i7h5hz59224y0zpqhsc"; + sha256 = "1GU2ZoKvj+uGGCg8l4notw22/RfKj6lQrG9xAQIxWoE="; }; nativeBuildInputs = [ pkg-config gettext itstool - wrapGAppsHook ]; - # maybe add nvidia-settings later on buildInputs = [ gtk3 libxml2 @@ -40,10 +37,12 @@ stdenv.mkDerivation rec { libatasmart libnotify lm_sensors - mate.mate-panel + mate-panel hicolor-icon-theme ]; + configureFlags = [ "--enable-in-process" ]; + enableParallelBuilding = true; passthru.updateScript = mateUpdateScript { inherit pname; }; diff --git a/pkgs/desktops/mate/mate-session-manager/default.nix b/pkgs/desktops/mate/mate-session-manager/default.nix index 443339388f17..c8b0c94f888e 100644 --- a/pkgs/desktops/mate/mate-session-manager/default.nix +++ b/pkgs/desktops/mate/mate-session-manager/default.nix @@ -8,11 +8,13 @@ , systemd , libSM , libXtst +, glib , gtk3 , libepoxy , polkit , hicolor-icon-theme -, mate +, mate-desktop +, mate-screensaver , wrapGAppsHook , fetchpatch , mateUpdateScript @@ -20,11 +22,11 @@ stdenv.mkDerivation rec { pname = "mate-session-manager"; - version = "1.26.1"; + version = "1.28.0"; src = fetchurl { url = "https://pub.mate-desktop.org/releases/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz"; - sha256 = "W4x9ZEH9nCk8hjiCq2enSTxTzfZOqyfAlFdfQj69Qng="; + sha256 = "0yzkWVuh2mUpB3cgPyvIK9lzshSjoECAoe9caJkKLXs="; }; patches = [ @@ -48,7 +50,8 @@ stdenv.mkDerivation rec { libSM libXtst gtk3 - mate.mate-desktop + mate-desktop + mate-screensaver # for gsm_manager_init hicolor-icon-theme libepoxy polkit @@ -56,9 +59,11 @@ stdenv.mkDerivation rec { enableParallelBuilding = true; + env.NIX_CFLAGS_COMPILE = "-I${glib.dev}/include/gio-unix-2.0"; + postFixup = '' substituteInPlace $out/share/xsessions/mate.desktop \ - --replace "Exec=mate-session" "Exec=$out/bin/mate-session" + --replace-fail "Exec=mate-session" "Exec=$out/bin/mate-session" ''; passthru.providedSessions = [ "mate" ]; diff --git a/pkgs/desktops/mate/mate-settings-daemon/default.nix b/pkgs/desktops/mate/mate-settings-daemon/default.nix index 6d245add0df3..09085ed04869 100644 --- a/pkgs/desktops/mate/mate-settings-daemon/default.nix +++ b/pkgs/desktops/mate/mate-settings-daemon/default.nix @@ -4,15 +4,16 @@ , pkg-config , gettext , glib -, dbus-glib , libxklavier , libcanberra-gtk3 , libnotify +, libmatekbd +, libmatemixer , nss , polkit , dconf , gtk3 -, mate +, mate-desktop , pulseaudioSupport ? stdenv.config.pulseaudio or true , libpulseaudio , wrapGAppsHook @@ -21,11 +22,11 @@ stdenv.mkDerivation rec { pname = "mate-settings-daemon"; - version = "1.26.1"; + version = "1.28.0"; src = fetchurl { url = "https://pub.mate-desktop.org/releases/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz"; - sha256 = "aX6mW1QpIcK3ZhRSktJo0wCcwtqDFtKnhphpBV5LGFk="; + sha256 = "TtfNraqkyZ7//AKCuEEXA7t24HLEHEtXmJ+MW0BhGjo="; }; nativeBuildInputs = [ @@ -35,17 +36,16 @@ stdenv.mkDerivation rec { ]; buildInputs = [ - dbus-glib libxklavier libcanberra-gtk3 libnotify + libmatekbd + libmatemixer nss polkit gtk3 dconf - mate.mate-desktop - mate.libmatekbd - mate.libmatemixer + mate-desktop ] ++ lib.optional pulseaudioSupport libpulseaudio; configureFlags = lib.optional pulseaudioSupport "--enable-pulse"; diff --git a/pkgs/desktops/mate/mate-system-monitor/default.nix b/pkgs/desktops/mate/mate-system-monitor/default.nix index a29cc7c18ec7..9408e6529365 100644 --- a/pkgs/desktops/mate/mate-system-monitor/default.nix +++ b/pkgs/desktops/mate/mate-system-monitor/default.nix @@ -7,21 +7,21 @@ , gtkmm3 , libxml2 , libgtop -, libwnck , librsvg , polkit , systemd , wrapGAppsHook +, mate-desktop , mateUpdateScript }: stdenv.mkDerivation rec { pname = "mate-system-monitor"; - version = "1.26.3"; + version = "1.28.1"; src = fetchurl { url = "https://pub.mate-desktop.org/releases/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz"; - sha256 = "WFthNBX3bucDt7XlK1WWKUKVB+A8kwVKSq3Pb5xlIkk="; + sha256 = "QtZj1rkPtTYevBP2VHmD1vHirHXcKuTxysbqYymWWiU="; }; nativeBuildInputs = [ @@ -35,13 +35,16 @@ stdenv.mkDerivation rec { gtkmm3 libxml2 libgtop - libwnck librsvg polkit systemd ]; - configureFlags = [ "--enable-systemd" ]; + postPatch = '' + # This package does not provide mate-version.xml. + substituteInPlace src/sysinfo.cpp \ + --replace-fail 'DATADIR "/mate-about/mate-version.xml"' '"${mate-desktop}/share/mate-about/mate-version.xml"' + ''; enableParallelBuilding = true; diff --git a/pkgs/desktops/mate/mate-terminal/default.nix b/pkgs/desktops/mate/mate-terminal/default.nix index e2406789df43..76c002c9299d 100644 --- a/pkgs/desktops/mate/mate-terminal/default.nix +++ b/pkgs/desktops/mate/mate-terminal/default.nix @@ -16,11 +16,11 @@ stdenv.mkDerivation rec { pname = "mate-terminal"; - version = "1.26.1"; + version = "1.28.1"; src = fetchurl { url = "https://pub.mate-desktop.org/releases/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz"; - sha256 = "fBMCBvC0eIfoySdOc/jBn65RETRXKGmnwjERt4nh4dA="; + sha256 = "8TXrGp4q4ieY7LLcGRT9tM/XdOa7ZcAVK+N8xslGnpI="; }; nativeBuildInputs = [ diff --git a/pkgs/desktops/mate/mate-user-guide/default.nix b/pkgs/desktops/mate/mate-user-guide/default.nix index 5b894c40340c..7dc2e9ad4221 100644 --- a/pkgs/desktops/mate/mate-user-guide/default.nix +++ b/pkgs/desktops/mate/mate-user-guide/default.nix @@ -10,11 +10,11 @@ stdenv.mkDerivation rec { pname = "mate-user-guide"; - version = "1.26.2"; + version = "1.28.0"; src = fetchurl { url = "https://pub.mate-desktop.org/releases/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz"; - sha256 = "TTK241ZKyPTqqysVSC33+XaXUN+IEavtg30KLn7jgIs="; + sha256 = "U+8IFPUGVEYU7WGre+UiHMjTqfFPfvlpjJD+fkYBS54="; }; nativeBuildInputs = [ @@ -29,7 +29,7 @@ stdenv.mkDerivation rec { postPatch = '' substituteInPlace mate-user-guide.desktop.in.in \ - --replace "Exec=yelp" "Exec=${yelp}/bin/yelp" + --replace-fail "Exec=yelp" "Exec=${yelp}/bin/yelp" ''; enableParallelBuilding = true; diff --git a/pkgs/desktops/mate/mate-user-share/default.nix b/pkgs/desktops/mate/mate-user-share/default.nix index 84204e3e34be..3e33e4fd47a4 100644 --- a/pkgs/desktops/mate/mate-user-share/default.nix +++ b/pkgs/desktops/mate/mate-user-share/default.nix @@ -5,6 +5,7 @@ , gettext , itstool , gtk3 +, caja , dbus-glib , libnotify , libxml2 @@ -21,11 +22,11 @@ let in stdenv.mkDerivation rec { pname = "mate-user-share"; - version = "1.26.0"; + version = "1.28.0"; src = fetchurl { url = "https://pub.mate-desktop.org/releases/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz"; - sha256 = "1wh0b4qw5wzpl7sg44lpwjb9r6xllch3xfz8c2cchl8rcgbh2kph"; + sha256 = "iYVgmZkXllE0jkl+8I81C4YIG5expKcwQHfurlc5rjg="; }; nativeBuildInputs = [ @@ -38,10 +39,10 @@ stdenv.mkDerivation rec { buildInputs = [ gtk3 + caja dbus-glib libnotify libcanberra-gtk3 - mate.caja hicolor-icon-theme # Should mod_dnssd and apacheHttpd be runtime dependencies? # In gnome-user-share they are not. diff --git a/pkgs/desktops/mate/mate-utils/default.nix b/pkgs/desktops/mate/mate-utils/default.nix index cfe24a4888a0..35ce76d7c0fa 100644 --- a/pkgs/desktops/mate/mate-utils/default.nix +++ b/pkgs/desktops/mate/mate-utils/default.nix @@ -1,43 +1,34 @@ { lib , stdenv , fetchurl -, fetchpatch , pkg-config , gettext , itstool , glib +, gtk-layer-shell , gtk3 , libxml2 , libgtop , libcanberra-gtk3 , inkscape , udisks2 -, mate +, mate-desktop +, mate-panel , hicolor-icon-theme +, wayland , wrapGAppsHook , mateUpdateScript }: stdenv.mkDerivation rec { pname = "mate-utils"; - version = "1.26.1"; + version = "1.28.0"; src = fetchurl { url = "https://pub.mate-desktop.org/releases/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz"; - sha256 = "L1NHWxoJkd1ak9ndpY/KTkFvJZJTWG2UpbEQjxI3BiA="; + sha256 = "WESdeg0dkA/wO3jKn36Ywh6X9H/Ca+5/8cYYNPIviNM="; }; - patches = [ - # Hopefully helps "libxml2.treeError: xmlSetProp() failed" - # This patch is not part of upstream yet. - # https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=919058 - # https://github.com/mate-desktop/mate-utils/issues/210 - (fetchpatch { - url = "https://salsa.debian.org/debian-mate-team/mate-utils/-/raw/2b43d78f3fdbf0aa50716b62bcada2ef015957c6/debian/patches/1001_fix-gsearchtool-pt-help-translation.patch"; - sha256 = "SZVpdup/bNv+3hEGQ0L13mgXyNm+wRcL53t9/Oi24wA="; - }) - ]; - nativeBuildInputs = [ pkg-config gettext @@ -47,15 +38,28 @@ stdenv.mkDerivation rec { ]; buildInputs = [ + gtk-layer-shell gtk3 libgtop libcanberra-gtk3 libxml2 udisks2 - mate.mate-panel + mate-desktop + mate-panel hicolor-icon-theme + wayland ]; + postPatch = '' + # Workaround undefined version requirements + # https://github.com/mate-desktop/mate-utils/issues/361 + substituteInPlace configure \ + --replace-fail '>= $GTK_LAYER_SHELL_REQUIRED_VERSION' "" \ + --replace-fail '>= $GDK_WAYLAND_REQUIRED_VERSION' "" + ''; + + configureFlags = [ "--enable-wayland" ]; + env.NIX_CFLAGS_COMPILE = "-I${glib.dev}/include/gio-unix-2.0"; enableParallelBuilding = true; diff --git a/pkgs/desktops/mate/mate-wayland-session/default.nix b/pkgs/desktops/mate/mate-wayland-session/default.nix new file mode 100644 index 000000000000..b803caa7048f --- /dev/null +++ b/pkgs/desktops/mate/mate-wayland-session/default.nix @@ -0,0 +1,58 @@ +{ stdenvNoCC +, lib +, fetchFromGitHub +, meson +, ninja +, glib +, mate-polkit +, mate-notification-daemon +, wayfire +, wayfirePlugins +, gitUpdater +}: + +stdenvNoCC.mkDerivation rec { + pname = "mate-wayland-session"; + version = "1.28.3"; + + src = fetchFromGitHub { + owner = "mate-desktop"; + repo = "mate-wayland-session"; + rev = "v${version}"; + hash = "sha256-sUAq2BylsvjYn8Lt+nm4yIfVhzIEefxKZYnhJnuxjs0="; + }; + + nativeBuildInputs = [ + meson + ninja + glib + ]; + + postPatch = '' + substituteInPlace session/mate-wayland-components.sh \ + --replace-fail "polkit-mate-authentication-agent-1" "${mate-polkit}/libexec/polkit-mate-authentication-agent-1" \ + --replace-fail "mate-notification-daemon" "${mate-notification-daemon}/libexec/mate-notification-daemon" \ + --replace-fail "cat /usr/bin/blueman-applet" "command -v blueman-applet" \ + --replace-fail "cat /usr/bin/gnome-keyring-daemon" "command -v gnome-keyring-daemon" + + # Ensure wayfire.ini is writable, as this script tries to modify it later. + substituteInPlace session/mate-wayland.sh \ + --replace-fail "cp /usr/share/doc/wayfire/examples/wayfire.ini" "cp --no-preserve=mode,ownership ${wayfire.src}/wayfire.ini" \ + --replace-fail "/usr/share/doc/wayfire/examples/wayfire.ini" "${wayfire.src}/wayfire.ini" \ + --replace-fail "/usr/lib/x86_64-linux-gnu/wayfire/libfiredecor.so" "${wayfirePlugins.firedecor}/lib/wayfire/libfiredecor.so" \ + --replace-fail "/usr/share/doc/firedecor/firedecor.config" "$out/share/doc/firedecor/firedecor.config" + ''; + + passthru = { + providedSessions = [ "MATE" ]; + updateScript = gitUpdater { rev-prefix = "v"; }; + }; + + meta = with lib; { + description = "Wayland session using Wayfire for the MATE desktop"; + homepage = "https://mate-desktop.org"; + license = licenses.gpl2Plus; + platforms = platforms.unix; + maintainers = teams.mate.members; + }; +} diff --git a/pkgs/desktops/mate/mozo/default.nix b/pkgs/desktops/mate/mozo/default.nix index 3b0618bc41ac..94426da24178 100644 --- a/pkgs/desktops/mate/mozo/default.nix +++ b/pkgs/desktops/mate/mozo/default.nix @@ -3,7 +3,7 @@ , fetchurl , pkg-config , gettext -, mate +, mate-menus , gtk3 , glib , wrapGAppsHook @@ -13,14 +13,14 @@ python3.pkgs.buildPythonApplication rec { pname = "mozo"; - version = "1.26.2"; + version = "1.28.0"; format = "other"; doCheck = false; src = fetchurl { url = "https://pub.mate-desktop.org/releases/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz"; - sha256 = "RyxILg7y+xYp5h4X2qoaSH9kOSsCmEncmkCCr7OLye4="; + sha256 = "/piYT/1qqMNtBZS879ugPeObQtQeAHJRaAOE8870SSQ="; }; nativeBuildInputs = [ @@ -31,7 +31,7 @@ python3.pkgs.buildPythonApplication rec { ]; propagatedBuildInputs = [ - mate.mate-menus + mate-menus python3.pkgs.pygobject3 ]; diff --git a/pkgs/desktops/mate/pluma/default.nix b/pkgs/desktops/mate/pluma/default.nix index ed7d54e9469b..98985a28564f 100644 --- a/pkgs/desktops/mate/pluma/default.nix +++ b/pkgs/desktops/mate/pluma/default.nix @@ -9,7 +9,6 @@ , enchant , libxml2 , python3 -, adwaita-icon-theme , gtksourceview4 , libpeas , mate-desktop @@ -19,11 +18,11 @@ stdenv.mkDerivation rec { pname = "pluma"; - version = "1.26.1"; + version = "1.28.0"; src = fetchurl { url = "https://pub.mate-desktop.org/releases/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz"; - sha256 = "WVns49cRjhBmWfZNIC0O0XY60Qu7ul0qzYy/ui45lPE="; + sha256 = "qorflYk0UJOlDjCyft5KeKJCHRcnwn9GX8h8Q1llodQ="; }; nativeBuildInputs = [ @@ -37,7 +36,6 @@ stdenv.mkDerivation rec { ]; buildInputs = [ - adwaita-icon-theme enchant gtksourceview4 libpeas diff --git a/pkgs/desktops/mate/python-caja/default.nix b/pkgs/desktops/mate/python-caja/default.nix index b9c58d8d9268..7f668cdde996 100644 --- a/pkgs/desktops/mate/python-caja/default.nix +++ b/pkgs/desktops/mate/python-caja/default.nix @@ -3,19 +3,19 @@ , fetchurl , pkg-config , gettext +, caja , gtk3 -, mate , python3Packages , mateUpdateScript }: stdenv.mkDerivation rec { pname = "python-caja"; - version = "1.26.0"; + version = "1.28.0"; src = fetchurl { url = "https://pub.mate-desktop.org/releases/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz"; - sha256 = "181zcs1pi3762chm4xraqs8048jm7jzwnvgwla1v3z2nqzpp3xr1"; + sha256 = "sFbCOdvf4z7QzIQx+zUAqTj3h7Weh19f+TV4umb2gNY="; }; nativeBuildInputs = [ @@ -25,8 +25,8 @@ stdenv.mkDerivation rec { ]; buildInputs = [ + caja gtk3 - mate.caja python3Packages.python python3Packages.pygobject3 ]; diff --git a/pkgs/development/libraries/rocksdb/default.nix b/pkgs/development/libraries/rocksdb/default.nix index c25a349ba32d..6c2aaaa8815a 100644 --- a/pkgs/development/libraries/rocksdb/default.nix +++ b/pkgs/development/libraries/rocksdb/default.nix @@ -39,20 +39,9 @@ stdenv.mkDerivation (finalAttrs: { "tools" ]; - env.NIX_CFLAGS_COMPILE = toString (lib.optionals stdenv.cc.isGNU [ - "-Wno-error=deprecated-copy" - "-Wno-error=pessimizing-move" - # Needed with GCC 12 - "-Wno-error=format-truncation" - "-Wno-error=maybe-uninitialized" - ] ++ lib.optionals stdenv.cc.isClang [ - "-Wno-error=unused-private-field" - "-faligned-allocation" - ] ++ lib.optionals (lib.versionOlder finalAttrs.version "8") [ - "-Wno-error=unused-but-set-variable" - ] ++ lib.optionals (lib.versionOlder finalAttrs.version "7") [ - "-Wno-error=deprecated-copy" - ]); + env.NIX_CFLAGS_COMPILE = toString (lib.optionals stdenv.cc.isClang [ + "-faligned-allocation" + ]); cmakeFlags = [ "-DPORTABLE=1" @@ -71,12 +60,25 @@ stdenv.mkDerivation (finalAttrs: { "-DUSE_RTTI=1" "-DROCKSDB_INSTALL_ON_WINDOWS=YES" # harmless elsewhere (lib.optional sse42Support "-DFORCE_SSE42=1") - "-DFAIL_ON_WARNINGS=${if stdenv.hostPlatform.isMinGW then "NO" else "YES"}" + "-DFAIL_ON_WARNINGS=NO" ] ++ lib.optional (!enableShared) "-DROCKSDB_BUILD_SHARED=0"; # otherwise "cc1: error: -Wformat-security ignored without -Wformat [-Werror=format-security]" hardeningDisable = lib.optional stdenv.hostPlatform.isWindows "format"; + postPatch = lib.optionalString (lib.versionOlder finalAttrs.version "8") '' + # Fix gcc-13 build failures due to missing <cstdint> and + # <system_error> includes, fixed upstyream sice 8.x + sed -e '1i #include <cstdint>' -i db/compaction/compaction_iteration_stats.h + sed -e '1i #include <cstdint>' -i table/block_based/data_block_hash_index.h + sed -e '1i #include <cstdint>' -i util/string_util.h + sed -e '1i #include <cstdint>' -i include/rocksdb/utilities/checkpoint.h + '' + lib.optionalString (lib.versionOlder finalAttrs.version "7") '' + # Fix gcc-13 build failures due to missing <cstdint> and + # <system_error> includes, fixed upstyream sice 7.x + sed -e '1i #include <system_error>' -i third-party/folly/folly/synchronization/detail/ProxyLockable-inl.h + ''; + preInstall = '' mkdir -p $tools/bin cp tools/{ldb,sst_dump}${stdenv.hostPlatform.extensions.executable} $tools/bin/ diff --git a/pkgs/development/python-modules/arviz/default.nix b/pkgs/development/python-modules/arviz/default.nix index edd555a96b16..56298852a377 100644 --- a/pkgs/development/python-modules/arviz/default.nix +++ b/pkgs/development/python-modules/arviz/default.nix @@ -31,7 +31,7 @@ buildPythonPackage rec { pname = "arviz"; - version = "0.17.0"; + version = "0.17.1"; pyproject = true; disabled = pythonOlder "3.9"; @@ -40,7 +40,7 @@ buildPythonPackage rec { owner = "arviz-devs"; repo = "arviz"; rev = "refs/tags/v${version}"; - hash = "sha256-DqVwbiNJHdRxK3Ppfa6sqPJzDqMaj1mtlAJHFq09u2Y="; + hash = "sha256-V0/yboKpK/4QuCOzKDiyFpu/J2JLu0aQxRZ+rpMS9eY="; }; propagatedBuildInputs = [ diff --git a/pkgs/development/python-modules/axis/default.nix b/pkgs/development/python-modules/axis/default.nix index 261d1b5ab5cd..2a5210c69317 100644 --- a/pkgs/development/python-modules/axis/default.nix +++ b/pkgs/development/python-modules/axis/default.nix @@ -13,7 +13,7 @@ buildPythonPackage rec { pname = "axis"; - version = "54"; + version = "55"; pyproject = true; disabled = pythonOlder "3.11"; @@ -22,7 +22,7 @@ buildPythonPackage rec { owner = "Kane610"; repo = "axis"; rev = "refs/tags/v${version}"; - hash = "sha256-Atx9Lg0WgKcdnXqHieJFadjMPhK1F2qifSa89XxT8J8="; + hash = "sha256-WId4+xLr6VD79r5K+fgrxfyJGWmobTMpYGGNkFrlerQ="; }; postPatch = '' diff --git a/pkgs/development/python-modules/css-inline/default.nix b/pkgs/development/python-modules/css-inline/default.nix index 44c142b89308..41caa34dedac 100644 --- a/pkgs/development/python-modules/css-inline/default.nix +++ b/pkgs/development/python-modules/css-inline/default.nix @@ -9,6 +9,7 @@ # native darwin dependencies , libiconv , Security +, SystemConfiguration # tests , pytestCheckHook @@ -52,6 +53,7 @@ buildPythonPackage rec { buildInputs = lib.optionals stdenv.isDarwin [ libiconv Security + SystemConfiguration ]; pythonImportsCheck = [ @@ -66,6 +68,9 @@ buildPythonPackage rec { disabledTests = [ # fails to connect to local server "test_remote_stylesheet" + ] ++ lib.optionals (stdenv.isDarwin) [ + # pyo3_runtime.PanicException: event loop thread panicked + "test_invalid_href" ]; meta = with lib; { diff --git a/pkgs/development/python-modules/django-compressor/default.nix b/pkgs/development/python-modules/django-compressor/default.nix index a8d367e854af..543c483023df 100644 --- a/pkgs/development/python-modules/django-compressor/default.nix +++ b/pkgs/development/python-modules/django-compressor/default.nix @@ -1,24 +1,32 @@ { lib , buildPythonPackage , fetchPypi +, pythonRelaxDepsHook + +# build-system +, setuptools + +# dependencies +, calmjs +, django-appconf +, jinja2 , rcssmin , rjsmin -, django-appconf + +# tests , beautifulsoup4 , brotli -, pytestCheckHook +, csscompressor , django-sekizai +, pytestCheckHook , pytest-django -, csscompressor -, calmjs -, jinja2 -, python + }: buildPythonPackage rec { pname = "django-compressor"; version = "4.4"; - format = "setuptools"; + pyproject = true; src = fetchPypi { pname = "django_compressor"; @@ -26,7 +34,17 @@ buildPythonPackage rec { hash = "sha256-GwrMnPup9pvDjnxB2psNcKILyVWHtkP/75YJz0YGT2c="; }; - propagatedBuildInputs = [ + build-system = [ + setuptools + pythonRelaxDepsHook + ]; + + pythonRelaxDeps = [ + "rcssmin" + "rjsmin" + ]; + + dependencies = [ beautifulsoup4 calmjs django-appconf @@ -35,7 +53,9 @@ buildPythonPackage rec { rjsmin ]; - checkInputs = [ + env.DJANGO_SETTINGS_MODULE = "compressor.test_settings"; + + nativeCheckInputs = [ beautifulsoup4 brotli csscompressor @@ -53,8 +73,6 @@ buildPythonPackage rec { pythonImportsCheck = [ "compressor" ]; - DJANGO_SETTINGS_MODULE = "compressor.test_settings"; - meta = with lib; { description = "Compresses linked and inline JavaScript or CSS into single cached files"; homepage = "https://django-compressor.readthedocs.org/"; diff --git a/pkgs/development/python-modules/django-otp/default.nix b/pkgs/development/python-modules/django-otp/default.nix index 216b24e3c0c0..c1078160b6eb 100644 --- a/pkgs/development/python-modules/django-otp/default.nix +++ b/pkgs/development/python-modules/django-otp/default.nix @@ -1,46 +1,63 @@ { lib , buildPythonPackage , fetchFromGitHub +, hatchling , django , freezegun -, pythonOlder , qrcode +, pytest +, python }: buildPythonPackage rec { pname = "django-otp"; - version = "1.1.3"; - format = "setuptools"; - disabled = pythonOlder "3"; + version = "1.3.0post1"; + pyproject = true; src = fetchFromGitHub { owner = "django-otp"; repo = "django-otp"; rev = "v${version}"; - hash = "sha256-Ac9p7q9yaUr3WTTGxCY16Yo/Z8i1RtnD2g0Aj2pqSXY="; + hash = "sha256-Q8YTCYERyoAXenSiDabxuxaWiD6ZeJKKKgaR/Rg3y20="; }; - postPatch = '' - patchShebangs manage.py - ''; + build-system = [ + hatchling + ]; - propagatedBuildInputs = [ + dependencies = [ django qrcode ]; + env.DJANGO_SETTINGS_MODUOLE = "test.test_project.settings"; + nativeCheckInputs = [ freezegun + pytest ]; checkPhase = '' - ./manage.py test django_otp + runHook preCheck + + export PYTHONPATH=$PYTHONPATH:test + export DJANGO_SETTINGS_MODULE=test_project.settings + ${python.interpreter} -m django test django_otp + + runHook postCheck ''; - pythonImportsCheck = [ "django_otp" ]; + pytestFlagsArray = [ + "src/django_otp/test.py" + ]; + + pythonImportsCheck = [ + "django_otp" + ]; meta = with lib; { - homepage = "https://github.com/jazzband/django-model-utils"; + homepage = "https://github.com/django-otp/django-otp"; + changelog = "https://github.com/django-otp/django-otp/blob/${src.rev}/CHANGES.rst"; description = "Pluggable framework for adding two-factor authentication to Django using one-time passwords"; license = licenses.bsd2; maintainers = with maintainers; [ ]; diff --git a/pkgs/development/python-modules/django-statici18n/default.nix b/pkgs/development/python-modules/django-statici18n/default.nix index 9fc04339c226..8ce7bc0340a9 100644 --- a/pkgs/development/python-modules/django-statici18n/default.nix +++ b/pkgs/development/python-modules/django-statici18n/default.nix @@ -1,25 +1,37 @@ { lib , buildPythonPackage , fetchFromGitHub + +# build-system +, setuptools + +# dependencies , django , django-appconf + +# tests , pytest-django , pytestCheckHook }: buildPythonPackage rec { pname = "django-statici18n"; - version = "2.3.1"; - format = "setuptools"; + version = "2.4.0"; + pyproject = true; src = fetchFromGitHub { owner = "zyegfryed"; - repo = pname; - rev = "refs/tags/v${version}"; - hash = "sha256-2fFJJNdF0jspS7djDL8sToPTetzNR6pfNp5ohCNa30I="; + repo = "django-statici18n"; + # https://github.com/zyegfryed/django-statici18n/issues/59 + rev = "9b83a8f0f2e625dd5f56d53cfe4e07aca9479ab6"; + hash = "sha256-KrIlWmN7um9ad2avfANOza579bjYkxTo9F0UFpvLu3A="; }; - propagatedBuildInputs = [ + build-system = [ + setuptools + ]; + + dependencies = [ django django-appconf ]; @@ -28,7 +40,7 @@ buildPythonPackage rec { "statici18n" ]; - DJANGO_SETTINGS_MODULE = "tests.test_project.project.settings"; + env.DJANGO_SETTINGS_MODULE = "tests.test_project.project.settings"; nativeCheckInputs = [ pytest-django diff --git a/pkgs/development/python-modules/jsonargparse/default.nix b/pkgs/development/python-modules/jsonargparse/default.nix index 23a4200500a4..04b290ff5507 100644 --- a/pkgs/development/python-modules/jsonargparse/default.nix +++ b/pkgs/development/python-modules/jsonargparse/default.nix @@ -25,7 +25,7 @@ buildPythonPackage rec { pname = "jsonargparse"; - version = "4.27.5"; + version = "4.27.6"; pyproject = true; disabled = pythonOlder "3.11"; @@ -34,7 +34,7 @@ buildPythonPackage rec { owner = "omni-us"; repo = "jsonargparse"; rev = "refs/tags/v${version}"; - hash = "sha256-MSvgOF/5X78HSSRvv1TBmaYZgcUVMKGaHfzXu3lIGVY="; + hash = "sha256-N34DRWty3QiXDPpHGUvLpQXtU4TQHxI32rizcwQdHBU="; }; nativeBuildInputs = [ diff --git a/pkgs/development/python-modules/langchain-core/default.nix b/pkgs/development/python-modules/langchain-core/default.nix index ad212e915681..350e9a903690 100644 --- a/pkgs/development/python-modules/langchain-core/default.nix +++ b/pkgs/development/python-modules/langchain-core/default.nix @@ -16,7 +16,7 @@ buildPythonPackage rec { pname = "langchain-core"; - version = "0.1.31"; + version = "0.1.32"; pyproject = true; disabled = pythonOlder "3.8"; @@ -24,7 +24,7 @@ buildPythonPackage rec { src = fetchPypi { pname = "langchain_core"; inherit version; - hash = "sha256-1mDPIJu2zmHLHIUxB7CRqqgJAVpV3Ongzhm1HUyPKnA="; + hash = "sha256-1iaDvsvyD1HxKHV5GgQjIPReqgyHomfTC8A7waB/XsI="; }; pythonRelaxDeps = [ diff --git a/pkgs/development/python-modules/langsmith/default.nix b/pkgs/development/python-modules/langsmith/default.nix index 5ab6970da9fb..d89584de366d 100644 --- a/pkgs/development/python-modules/langsmith/default.nix +++ b/pkgs/development/python-modules/langsmith/default.nix @@ -15,7 +15,7 @@ buildPythonPackage rec { pname = "langsmith"; - version = "0.1.23"; + version = "0.1.26"; pyproject = true; disabled = pythonOlder "3.8"; @@ -24,7 +24,7 @@ buildPythonPackage rec { owner = "langchain-ai"; repo = "langsmith-sdk"; rev = "refs/tags/v${version}"; - hash = "sha256-AiXTIk20T9symFUenCxnOUXhyNAkffbEt8acEU0EMBg="; + hash = "sha256-bvG4B7xUESbj3iX/SjsManv4itR2kkfixzxkKuZgPfw="; }; sourceRoot = "${src.name}/python"; diff --git a/pkgs/development/python-modules/mypy-boto3/default.nix b/pkgs/development/python-modules/mypy-boto3/default.nix index fd96cc0aa78a..f5ddd8f64369 100644 --- a/pkgs/development/python-modules/mypy-boto3/default.nix +++ b/pkgs/development/python-modules/mypy-boto3/default.nix @@ -59,7 +59,7 @@ rec { mypy-boto3-amp = buildMypyBoto3Package "amp" "1.34.39" "sha256-XOousDfEQsZ9z48iH2wVHuUaIwoECwbkHvIAlV3+zu4="; - mypy-boto3-amplify = buildMypyBoto3Package "amplify" "1.34.45" "sha256-hV0fg6Y39NkZ6Qa6GyIYicMERjCBAjZYcSsJ+1jXAfA="; + mypy-boto3-amplify = buildMypyBoto3Package "amplify" "1.34.63" "sha256-alOtCCZwBcx6g3lm80AzI5aF8WbEABd44A0e6gfZ42o="; mypy-boto3-amplifybackend = buildMypyBoto3Package "amplifybackend" "1.34.0" "sha256-wP6fOHAUg4dvrlQ2rUNk/lgIr6JnpWu/0Tr2prTckOk="; @@ -105,7 +105,7 @@ rec { mypy-boto3-autoscaling-plans = buildMypyBoto3Package "autoscaling-plans" "1.34.0" "sha256-16siojcxNe5MuSZSRJXPAz2UudJozEEyCYUrsGNDAM8="; - mypy-boto3-backup = buildMypyBoto3Package "backup" "1.34.0" "sha256-H4wIDyA+/6sH6X5zp/HGP2vfWIY5HzgTfa1ThXfXwYM="; + mypy-boto3-backup = buildMypyBoto3Package "backup" "1.34.64" "sha256-RvxhEmrOtkvagjaj8x2H7AAp+uK9qDIDe7T9p52rKRc="; mypy-boto3-backup-gateway = buildMypyBoto3Package "backup-gateway" "1.34.0" "sha256-nSIEEDKJfI852/WBQ7OuDPuVijEiMr1vhpkzODbhRRc="; @@ -161,7 +161,7 @@ rec { mypy-boto3-codeartifact = buildMypyBoto3Package "codeartifact" "1.34.0" "sha256-iUgoanqMSyxRopVctyFLiu+otFSgRvdgQPw4mKX3QIk="; - mypy-boto3-codebuild = buildMypyBoto3Package "codebuild" "1.34.59" "sha256-dkX5QeHjfBrY8mU+/5tKVkJlqAodBYqkW8oei1iqTl0="; + mypy-boto3-codebuild = buildMypyBoto3Package "codebuild" "1.34.64" "sha256-ZsTKKDanTLB4jFOGLQTLPEterhabpShrchHvvWcUBMo="; mypy-boto3-codecatalyst = buildMypyBoto3Package "codecatalyst" "1.34.0" "sha256-TsXVy8bx6kaj84PJiNNU+075Tx3WW0mrtZFOyLx9yT4="; @@ -197,7 +197,7 @@ rec { mypy-boto3-config = buildMypyBoto3Package "config" "1.34.45" "sha256-LN1CcIOj9cgzSNCvnUVwLRNPXlitHAlt+5jj6wu6i8E="; - mypy-boto3-connect = buildMypyBoto3Package "connect" "1.34.61" "sha256-LbiRcZWmULytWtEy0J2mXqQtHofbbfbRV2PyvEFcRfA="; + mypy-boto3-connect = buildMypyBoto3Package "connect" "1.34.64" "sha256-ijgvxHI9taQXYZa1d4yLMp63bCrEFfE0Ug/vmKUGaNM="; mypy-boto3-connect-contact-lens = buildMypyBoto3Package "connect-contact-lens" "1.34.0" "sha256-Wx9vcjlgXdWZ2qP3Y/hTY2LAeTd+hyyV5JSIuKQ5I5k="; @@ -251,9 +251,9 @@ rec { mypy-boto3-ebs = buildMypyBoto3Package "ebs" "1.34.0" "sha256-xIrrXOayZed+Jcn4CFXXNgKz/G+RdiuwA04wq+Ry/fs="; - mypy-boto3-ec2 = buildMypyBoto3Package "ec2" "1.34.61" "sha256-rRK8Q3zUJuelfYvaUhrqxbsFUn1Xl6oxCahaRhI3+W8="; + mypy-boto3-ec2 = buildMypyBoto3Package "ec2" "1.34.64" "sha256-fDsnEbTo5UAgPGCoUqGbvk68+9RNN8qZpScW7t/Bq+Q="; - mypy-boto3-ec2-instance-connect = buildMypyBoto3Package "ec2-instance-connect" "1.34.0" "sha256-95TXW9HJHciM+lZCdlUYOwcLhkKE8RJpRx9/dEnu3FU="; + mypy-boto3-ec2-instance-connect = buildMypyBoto3Package "ec2-instance-connect" "1.34.63" "sha256-kExmGXEJ5jrvOewmWx7AjVb3boD5GU0cEUp/2PQhzlw="; mypy-boto3-ecr = buildMypyBoto3Package "ecr" "1.34.0" "sha256-uD+wMR6WikLUyoIbAGwY1KPj42S4zr7nWOpPqXxaw0U="; @@ -275,7 +275,7 @@ rec { mypy-boto3-elb = buildMypyBoto3Package "elb" "1.34.0" "sha256-5Eh5D872pVDd7Q+DDh3zpGMVgS8fUJsV+63H1fet73s="; - mypy-boto3-elbv2 = buildMypyBoto3Package "elbv2" "1.34.32" "sha256-jDrQb4A0PVBSxH7vuPXehpEYdU8Hwgv2Sc2+j0OGVJg="; + mypy-boto3-elbv2 = buildMypyBoto3Package "elbv2" "1.34.63" "sha256-snXMLMHLEpJjfX1GJp6FfYgIjkS8vkbf/hESBdhxIfk="; mypy-boto3-emr = buildMypyBoto3Package "emr" "1.34.44" "sha256-zM1VpAaBSxqdZiSrNiaAKfvliNRXMLEmvFvXcFmkZO0="; @@ -297,7 +297,7 @@ rec { mypy-boto3-firehose = buildMypyBoto3Package "firehose" "1.34.46" "sha256-Fgs7wrwKPK79cYduCR/RYQ2FEZvghDuWI1hXKzFLfJo="; - mypy-boto3-fis = buildMypyBoto3Package "fis" "1.34.0" "sha256-0TJ7iAF9hTOiKoW305p8a5fE0lZrdtoFDj/jjZzfdf0="; + mypy-boto3-fis = buildMypyBoto3Package "fis" "1.34.63" "sha256-TJnzgQGDcybpVqg+p7Tuvw/RoY79cQPPChyHWlMxhiY="; mypy-boto3-fms = buildMypyBoto3Package "fms" "1.34.0" "sha256-tzaSecIXzkC+Zr5MGpU7GaoiGHGsywEglZ8+Ja0XDDo="; @@ -411,7 +411,7 @@ rec { mypy-boto3-kinesisanalytics = buildMypyBoto3Package "kinesisanalytics" "1.34.0" "sha256-eEoSmwMTa/hsbKbuKuzAZv4jHljGKq3b5Rw7K2Pgc50="; - mypy-boto3-kinesisanalyticsv2 = buildMypyBoto3Package "kinesisanalyticsv2" "1.34.62" "sha256-bL6EKRjfIIUUIMSpoE0BWeAg3xb2xbKi8NBpHSaEEFg="; + mypy-boto3-kinesisanalyticsv2 = buildMypyBoto3Package "kinesisanalyticsv2" "1.34.64" "sha256-7sJyrWtBcbrWlCjR7pLdBLgW7sXcRazDPBW+OGwh4Xg="; mypy-boto3-kinesisvideo = buildMypyBoto3Package "kinesisvideo" "1.34.48" "sha256-uYSkwOuYKF3B+sj5IWbDL789Xue2yNY9g14j/2b6k6w="; @@ -581,7 +581,7 @@ rec { mypy-boto3-rbin = buildMypyBoto3Package "rbin" "1.34.0" "sha256-Y+a/p3r5IgWk4oH6MOeq0e7rMiNvLCqoz1ZE+xXNtOw="; - mypy-boto3-rds = buildMypyBoto3Package "rds" "1.34.58" "sha256-P3s5qNAV9UG6fMSxvkUevKACU3FGjhOne1D0LRi/eMk="; + mypy-boto3-rds = buildMypyBoto3Package "rds" "1.34.63" "sha256-1JsO69vElUUgZlDNejuZz8x7bPCtHkZAG1qEtvg+O5E="; mypy-boto3-rds-data = buildMypyBoto3Package "rds-data" "1.34.6" "sha256-d+WXt3cSUe5ZxynSjPSJxXgv6evP/rhZrX1ua9rtSx8="; @@ -619,13 +619,13 @@ rec { mypy-boto3-rum = buildMypyBoto3Package "rum" "1.34.49" "sha256-Mq2H+13cjxYRwFfxJpWTAb+W5bx+Vew+jl+zbreRIkQ="; - mypy-boto3-s3 = buildMypyBoto3Package "s3" "1.34.62" "sha256-HWDLEJB667VrTYZYircK5C23oRSGnwWLu7tNWG6yLm0="; + mypy-boto3-s3 = buildMypyBoto3Package "s3" "1.34.64" "sha256-6yjHKgKA6lOpr4yEmjm2RR2At+YQwfrhWR7o79OhkNM="; mypy-boto3-s3control = buildMypyBoto3Package "s3control" "1.34.18" "sha256-53s5ii1gFX9toigiazEtS5Jogg3VFFr+1/uiLzoU7Uo="; mypy-boto3-s3outposts = buildMypyBoto3Package "s3outposts" "1.34.0" "sha256-xLuGP9Fe0S7zRimt1AKd9KOrytmNd/GTRg5OVi5Xpos="; - mypy-boto3-sagemaker = buildMypyBoto3Package "sagemaker" "1.34.53" "sha256-IgZzJstoOg1wzucKqPBx47baLbagrUk1kW4P8cI++cg="; + mypy-boto3-sagemaker = buildMypyBoto3Package "sagemaker" "1.34.64" "sha256-Sf1T1aqRMIEZmuA2KH5tzuhTDN8yfFID/+h0DCWxws0="; mypy-boto3-sagemaker-a2i-runtime = buildMypyBoto3Package "sagemaker-a2i-runtime" "1.34.0" "sha256-jMZ3aWKQPhNec4A/02S1waQi6Mx9JVdENc3kblhsKjA="; @@ -647,7 +647,7 @@ rec { mypy-boto3-sdb = buildMypyBoto3Package "sdb" "1.34.0" "sha256-13BuAQD8uDwwDhCw+8O3V882H6/oor5Z8mBmjb7HHAU="; - mypy-boto3-secretsmanager = buildMypyBoto3Package "secretsmanager" "1.34.43" "sha256-q79WB3XC/g3Dg7f3DBahv3U9mz/8DKpeNUR+aFeDpos="; + mypy-boto3-secretsmanager = buildMypyBoto3Package "secretsmanager" "1.34.63" "sha256-oZM3PXGPdH1Th4tcx/7y6bj944kuR4isaQ/SsWo1Vkw="; mypy-boto3-securityhub = buildMypyBoto3Package "securityhub" "1.34.20" "sha256-EcLY5SXSN2kJEuo8s2sYJJfq/X78BM1msyI9TfYD7Xw="; diff --git a/pkgs/development/python-modules/paypalrestsdk/default.nix b/pkgs/development/python-modules/paypalrestsdk/default.nix new file mode 100644 index 000000000000..43061b4eeab2 --- /dev/null +++ b/pkgs/development/python-modules/paypalrestsdk/default.nix @@ -0,0 +1,44 @@ +{ buildPythonPackage +, fetchPypi + +# build-system +, setuptools + +# dependencies +, pyopenssl +, requests +, six +}: + +buildPythonPackage rec { + pname = "paypalrestsdk"; + version = "1.13.2"; + pyproject = true; + + src = fetchPypi { + inherit pname version; + sha256 = "sha256-kZUfNtsw1oW5ceFASYSRo1bPHfjv9xZWYDrKTtcs81o="; + }; + + build-system = [ + setuptools + ]; + + dependencies = [ + pyopenssl + requests + six + ]; + + doCheck = false; # no tests + + pythonImportsCheck = [ + "paypalrestsdk" + ]; + + meta = { + homepage = "https://developer.paypal.com/"; + description = "Python APIs to create, process and manage payment"; + license = "PayPal SDK License"; + }; +} diff --git a/pkgs/development/python-modules/streamlit/default.nix b/pkgs/development/python-modules/streamlit/default.nix index 851a613d8740..cbceaf476ccf 100644 --- a/pkgs/development/python-modules/streamlit/default.nix +++ b/pkgs/development/python-modules/streamlit/default.nix @@ -32,14 +32,14 @@ buildPythonPackage rec { pname = "streamlit"; - version = "1.32.1"; + version = "1.32.2"; pyproject = true; disabled = pythonOlder "3.8"; src = fetchPypi { inherit pname version; - hash = "sha256-7GQASW9niFIUPLwjxMQ4ifeLbJPC4nVv2OBgzM3kuP0="; + hash = "sha256-Eli5y8P/lXv30Jsb/IXO3DCPEGWzB0hUUpWpr41Vd6s="; }; nativeBuildInputs = [ diff --git a/pkgs/development/python-modules/wallet-py3k/default.nix b/pkgs/development/python-modules/wallet-py3k/default.nix new file mode 100644 index 000000000000..f78463e6748a --- /dev/null +++ b/pkgs/development/python-modules/wallet-py3k/default.nix @@ -0,0 +1,47 @@ +{ lib +, buildPythonPackage +, fetchPypi +, substituteAll +, openssl +, setuptools +, six +}: + +buildPythonPackage rec { + pname = "wallet-py3k"; + version = "0.0.4"; + pyproject = true; + + src = fetchPypi { + inherit pname version; + hash = "sha256-kyHSh8qHbzK6gFLGnL6dUJ/GLJHTNC86jjXa/APqIzI="; + }; + + patches = [ + (substituteAll { + src = ./openssl-path.patch; + openssl = lib.getExe openssl; + }) + ]; + + build-system = [ + setuptools + ]; + + dependencies = [ + six + ]; + + doCheck = false; # no tests + + pythonImportsCheck = [ + "wallet" + ]; + + meta = with lib; { + description = "Passbook file generator"; + homepage = "https://pypi.org/project/wallet-py3k"; + license = licenses.mit; + maintainers = with maintainers; [ hexa ]; + }; +} diff --git a/pkgs/development/python-modules/wallet-py3k/openssl-path.patch b/pkgs/development/python-modules/wallet-py3k/openssl-path.patch new file mode 100644 index 000000000000..8864818b13f7 --- /dev/null +++ b/pkgs/development/python-modules/wallet-py3k/openssl-path.patch @@ -0,0 +1,13 @@ +diff --git a/wallet/models.py b/wallet/models.py +index 1b75402..ad115de 100644 +--- a/wallet/models.py ++++ b/wallet/models.py +@@ -320,7 +320,7 @@ class Pass(object): + def _createSignature(self, manifest, certificate, key, + wwdr_certificate, password): + openssl_cmd = [ +- 'openssl', ++ '@openssl@', + 'smime', + '-binary', + '-sign', diff --git a/pkgs/development/tools/electron/binary/default.nix b/pkgs/development/tools/electron/binary/default.nix index 0cdb42a3a0b8..a9fbf9d1de3d 100644 --- a/pkgs/development/tools/electron/binary/default.nix +++ b/pkgs/development/tools/electron/binary/default.nix @@ -184,4 +184,13 @@ rec { aarch64-darwin = "d64947fee370a3b111f170399969977959848f2a2f544a1ae5dc081fc2df75cf"; headers = "1lrwc03ffrf4bi2faampkx7yg0iqsrcp86znp9fw6ajwdwgqsc81"; }; + + electron_29-bin = mkElectron "29.1.4" { + armv7l-linux = "12a7e6a8ef214d104ee72eb6636a055c9c6d41bcc58f31a8dc48b9bc8fd0fcb5"; + aarch64-linux = "0d41a51d45712d0312dd24d79a395e80280bd8365ebb8e46c252cadcb780354b"; + x86_64-linux = "83a37103b67378a9073898541cfc4af8b5de708da15135f060bf26993ab426b5"; + x86_64-darwin = "e7887396018840ca482eb481edbff2e9a5580998412ffd217f70fad02f23969d"; + aarch64-darwin = "7ad63253fd6de9dbb337efbf4a6d0161f0e4c5953243bec27de488db98ef8a6c"; + headers = "0plc831v1fva2yrwg1zal5n9wkgy0f6v1by6b3jh8wjgrsrkhk00"; + }; } diff --git a/pkgs/os-specific/linux/ipp-usb/default.nix b/pkgs/os-specific/linux/ipp-usb/default.nix index 38d9afddaca6..decdea12ee3d 100644 --- a/pkgs/os-specific/linux/ipp-usb/default.nix +++ b/pkgs/os-specific/linux/ipp-usb/default.nix @@ -1,13 +1,13 @@ { buildGoModule, avahi, libusb1, pkg-config, lib, fetchFromGitHub, ronn }: buildGoModule rec { pname = "ipp-usb"; - version = "0.9.24"; + version = "0.9.25"; src = fetchFromGitHub { owner = "openprinting"; repo = "ipp-usb"; rev = version; - sha256 = "sha256-06Kb4s9oN53llz/Yya45ig5rd86VvlcK+vRh3bL/MAw="; + sha256 = "sha256-ryKQDzb31JA192lbCYkwJrXgwErViqIzP4mD2NmWdgA="; }; postPatch = '' diff --git a/pkgs/os-specific/linux/kernel/generic.nix b/pkgs/os-specific/linux/kernel/generic.nix index 14c863b459b1..9c1f5a86f37e 100644 --- a/pkgs/os-specific/linux/kernel/generic.nix +++ b/pkgs/os-specific/linux/kernel/generic.nix @@ -12,8 +12,10 @@ , rustc , rustPlatform , rust-bindgen +, nixosTests +}: -, # The kernel source tarball. +{ # The kernel source tarball. src , # The kernel version. @@ -66,7 +68,6 @@ , preferBuiltin ? stdenv.hostPlatform.linux-kernel.preferBuiltin or false , kernelArch ? stdenv.hostPlatform.linuxArch , kernelTests ? [] -, nixosTests , ... }@args: diff --git a/pkgs/servers/home-assistant/custom-components/default.nix b/pkgs/servers/home-assistant/custom-components/default.nix index a87554e02eb1..8bb7f9e0dfbf 100644 --- a/pkgs/servers/home-assistant/custom-components/default.nix +++ b/pkgs/servers/home-assistant/custom-components/default.nix @@ -10,6 +10,8 @@ emporia_vue = callPackage ./emporia_vue {}; + epex_spot = callPackage ./epex_spot {}; + govee-lan = callPackage ./govee-lan {}; gpio = callPackage ./gpio {}; @@ -18,6 +20,8 @@ miele = callPackage ./miele {}; + moonraker = callPackage ./moonraker {}; + omnik_inverter = callPackage ./omnik_inverter {}; prometheus_sensor = callPackage ./prometheus_sensor {}; diff --git a/pkgs/servers/home-assistant/custom-components/epex_spot/default.nix b/pkgs/servers/home-assistant/custom-components/epex_spot/default.nix new file mode 100644 index 000000000000..e655a0d788d9 --- /dev/null +++ b/pkgs/servers/home-assistant/custom-components/epex_spot/default.nix @@ -0,0 +1,39 @@ +{ lib +, fetchFromGitHub +, buildHomeAssistantComponent +, beautifulsoup4 +}: + +buildHomeAssistantComponent rec { + owner = "mampfes"; + domain = "epex_spot"; + version = "2.3.5"; + + src = fetchFromGitHub { + owner = "mampfes"; + repo = "ha_epex_spot"; + rev = "refs/tags/${version}"; + hash = "sha256-WmPsFfQm8ChEr41XVgKi2BGwta5aKH9GDz4iIfTAPK4="; + }; + + propagatedBuildInputs = [ + beautifulsoup4 + ]; + + postPatch = '' + substituteInPlace custom_components/epex_spot/manifest.json --replace-fail 'bs4' 'beautifulsoup4' + ''; + + #skip phases without activity + dontConfigure = true; + doCheck = false; + dontBuild = true; + + meta = with lib; { + changelog = "https://github.com/mampfes/ha_epex_spot/releases/tag/${version}"; + description = "This component adds electricity prices from stock exchange EPEX Spot to Home Assistant"; + homepage = "https://github.com/mampfes/ha_epex_spot"; + maintainers = with maintainers; [ _9R ]; + license = licenses.mit; + }; +} diff --git a/pkgs/servers/home-assistant/custom-components/moonraker/default.nix b/pkgs/servers/home-assistant/custom-components/moonraker/default.nix new file mode 100644 index 000000000000..660847ddd2e3 --- /dev/null +++ b/pkgs/servers/home-assistant/custom-components/moonraker/default.nix @@ -0,0 +1,35 @@ +{ lib +, fetchFromGitHub +, buildHomeAssistantComponent +, moonraker-api +}: + +buildHomeAssistantComponent rec { + owner = "marcolivierarsenault"; + domain = "moonraker"; + version = "1.1.1"; + + src = fetchFromGitHub { + owner = "marcolivierarsenault"; + repo = "moonraker-home-assistant"; + rev = "refs/tags/${version}"; + hash = "sha256-jxMi4hmSVBU9ztoHxFINoJo8klirfo6j7gWty7FXFkQ="; + }; + + propagatedBuildInputs = [ + moonraker-api + ]; + + #skip phases with nothing to do + dontConfigure = true; + dontBuild = true; + doCheck = false; + + meta = with lib; { + changelog = "https://github.com/marcolivierarsenault/moonraker-home-assistant/releases/tag/${version}"; + description = "Custom integration for Moonraker and Klipper in Home Assistant"; + homepage = "https://github.com/marcolivierarsenault/moonraker-home-assistant"; + maintainers = with maintainers; [ _9R ]; + license = licenses.mit; + }; +} diff --git a/pkgs/servers/minio/default.nix b/pkgs/servers/minio/default.nix index f1553889e4de..e36a1662907d 100644 --- a/pkgs/servers/minio/default.nix +++ b/pkgs/servers/minio/default.nix @@ -21,16 +21,16 @@ let in buildGoModule rec { pname = "minio"; - version = "2024-03-07T00-43-48Z"; + version = "2024-03-10T02-53-48Z"; src = fetchFromGitHub { owner = "minio"; repo = "minio"; rev = "RELEASE.${version}"; - hash = "sha256-W82479M4Bgq1ERpiAR6Zc5YDr8vADOtQThV6lSlDuTs="; + hash = "sha256-XcJm5FcX0NNjjY/WDQyR2RF8J3GkqEvpAhFDZj9ztks="; }; - vendorHash = "sha256-VHokz58pSZd2Tt3hG8MgpeilEMFGjOZ/y6YKt9Fe5xw="; + vendorHash = "sha256-0W2D5CQkrZMPlehvmExeQ6txwEyRe3XZl0Bv0Ww5COs="; doCheck = false; diff --git a/pkgs/servers/monitoring/grafana/default.nix b/pkgs/servers/monitoring/grafana/default.nix index 20f8dcf5b113..789847770c55 100644 --- a/pkgs/servers/monitoring/grafana/default.nix +++ b/pkgs/servers/monitoring/grafana/default.nix @@ -18,29 +18,18 @@ let done rm -r packages/grafana-e2e ''; - - # Injects a `t.Skip()` into a given test since - # there's apparently no other way to skip tests here. - skipTest = lineOffset: testCase: file: - let - jumpAndAppend = lib.concatStringsSep ";" (lib.replicate (lineOffset - 1) "n" ++ [ "a" ]); - in '' - sed -i -e '/${testCase}/{ - ${jumpAndAppend} t.Skip(); - }' ${file} - ''; in buildGoModule rec { pname = "grafana"; - version = "10.3.4"; + version = "10.4.0"; - excludedPackages = [ "alert_webhook_listener" "clean-swagger" "release_publisher" "slow_proxy" "slow_proxy_mac" "macaron" "devenv" "modowners" ]; + subPackages = [ "pkg/cmd/grafana" "pkg/cmd/grafana-server" "pkg/cmd/grafana-cli" ]; src = fetchFromGitHub { owner = "grafana"; repo = "grafana"; rev = "v${version}"; - hash = "sha256-zogjS8ywNVYF5W2/jCpBXmCu1MEqPbt2e6mCFborP7o="; + hash = "sha256-Rp2jGspbmqJFzSbiVy2/5oqQJnAdGG/T+VNBHVsHSwg="; }; offlineCache = stdenv.mkDerivation { @@ -48,7 +37,7 @@ buildGoModule rec { inherit src; nativeBuildInputs = [ yarn nodejs cacert - jq moreutils + jq moreutils python3 ]; postPatch = '' ${patchAwayGrafanaE2E} @@ -67,12 +56,12 @@ buildGoModule rec { dontInstall = true; dontFixup = true; outputHashMode = "recursive"; - outputHash = "sha256-70eMa8E483f/Bz7iy+4Seap1EfIdjD5krnt6W9CUows="; + outputHash = "sha256-QdyXSPshzugkDTJoUrJlHNuhPAyR9gae5Cbk8Q8FSl4="; }; disallowedRequisites = [ offlineCache ]; - vendorHash = "sha256-PEPk3T/tCfJNZKOn3tL6p8Bnpc5wZMduNeHrv+l8mmU="; + vendorHash = "sha256-cNkMVLXp3hPMcW0ilOM0VlrrDX/IsZaze+/6qlTfmRs="; nativeBuildInputs = [ wire yarn jq moreutils removeReferencesTo python3 ]; @@ -90,35 +79,6 @@ buildGoModule rec { GOARCH= CGO_ENABLED=0 go generate ./kinds/gen.go GOARCH= CGO_ENABLED=0 go generate ./public/app/plugins/gen.go GOARCH= CGO_ENABLED=0 go generate ./pkg/kindsys/report.go - - # Work around `main module (github.com/grafana/grafana) does not contain package github.com/grafana/grafana/pkg/util/xorm`. - # Apparently these files confuse the dependency resolution for the go builder implemented here. - rm pkg/util/xorm/go.{mod,sum} - - # The testcase makes an API call against grafana.com: - # - # [...] - # grafana> t=2021-12-02T14:24:58+0000 lvl=dbug msg="Failed to get latest.json repo from github.com" logger=update.checker error="Get \"https://raw.githubusercontent.com/grafana/grafana/main/latest.json\": dial tcp: lookup raw.githubusercontent.com on [::1]:53: read udp [::1]:36391->[::1]:53: read: connection refused" - # grafana> t=2021-12-02T14:24:58+0000 lvl=dbug msg="Failed to get plugins repo from grafana.com" logger=plugin.manager error="Get \"https://grafana.com/api/plugins/versioncheck?slugIn=&grafanaVersion=\": dial tcp: lookup grafana.com on [::1]:53: read udp [::1]:41796->[::1]:53: read: connection refused" - ${skipTest 1 "Request is not forbidden if from an admin" "pkg/tests/api/plugins/api_plugins_test.go"} - - # Skip a flaky test (https://github.com/NixOS/nixpkgs/pull/126928#issuecomment-861424128) - ${skipTest 2 "it should change folder successfully and return correct result" "pkg/services/libraryelements/libraryelements_patch_test.go"} - - # Skip flaky tests (https://logs.ofborg.org/?key=nixos/nixpkgs.263185&attempt_id=5b056a17-67a7-4b74-9dc7-888eb1d6c2dd) - ${skipTest 1 "TestIntegrationRulerAccess" "pkg/tests/api/alerting/api_alertmanager_test.go"} - ${skipTest 1 "TestIntegrationRulePause" "pkg/tests/api/alerting/api_ruler_test.go"} - - # main module (github.com/grafana/grafana) does not contain package github.com/grafana/grafana/scripts/go - rm -r scripts/go - - # Requires making API calls against storage.googleapis.com: - # - # [...] - # grafana> 2023/08/24 08:30:23 failed to copy objects, err: Post "https://storage.googleapis.com/upload/storage/v1/b/grafana-testing-repo/o?alt=json&name=test-path%2Fbuild%2FTestCopyLocalDir2194093976%2F001%2Ffile2.txt&prettyPrint=false&projection=full&uploadType=multipart": dial tcp: lookup storage.googleapis.com on [::1]:53: read udp [::1]:36436->[::1]:53: read: connection refused - # grafana> panic: test timed out after 10m0s - rm pkg/build/gcloud/storage/gsutil_test.go - # Setup node_modules export HOME="$(mktemp -d)" diff --git a/pkgs/servers/monitoring/prometheus/smartctl-exporter/default.nix b/pkgs/servers/monitoring/prometheus/smartctl-exporter/default.nix index 2e916367c924..9b2f145f0f35 100644 --- a/pkgs/servers/monitoring/prometheus/smartctl-exporter/default.nix +++ b/pkgs/servers/monitoring/prometheus/smartctl-exporter/default.nix @@ -6,16 +6,16 @@ buildGoModule rec { pname = "smartctl_exporter"; - version = "0.11.0"; + version = "0.12.0"; src = fetchFromGitHub { owner = "prometheus-community"; repo = pname; rev = "refs/tags/v${version}"; - hash = "sha256-oUdMsUAlN/4uRSzxQrO0TOVRgyEdxYkGtf3VoNbxdhw="; + hash = "sha256-QQoWAsnE/7ifvgEfQJ6cbzmwOrE7oe2zalTbu/P7r18="; }; - vendorHash = "sha256-0WLI+nLhRkf1CGhSer1Jkv1nUho5sxIbTE/Mf5JmX7U="; + vendorHash = "sha256-WUB2FgBl4Tybz7T0yvcSYIlG75NEhXpn1F0yuB9F21g="; ldflags = [ "-X github.com/prometheus/common/version.Version=${version}" diff --git a/pkgs/servers/redpanda/default.nix b/pkgs/servers/redpanda/default.nix index e593b2f57307..017356ed5efe 100644 --- a/pkgs/servers/redpanda/default.nix +++ b/pkgs/servers/redpanda/default.nix @@ -7,12 +7,12 @@ , stdenv }: let - version = "23.3.7"; + version = "23.3.8"; src = fetchFromGitHub { owner = "redpanda-data"; repo = "redpanda"; rev = "v${version}"; - sha256 = "sha256-z5V9u81skkCBDoYGyC3ThGKI4KhQEdtmBqJSEbBHPF0="; + sha256 = "sha256-a5V9kvRm7Np0pE/gMHtlkgbIlKfY9ehFVU35QDwpHh0="; }; server = callPackage ./server.nix { inherit src version; }; in @@ -21,7 +21,7 @@ buildGoModule rec { inherit doCheck src version; modRoot = "./src/go/rpk"; runVend = false; - vendorHash = "sha256-dSCF44F+2GjWD/IcdA4fsfHsjVnX0bCXsG7r6C6ECak="; + vendorHash = "sha256-qjX0DVAZqr7Ec1dFs4zBlDpu69IkhgLkvy4FA7br7bk="; ldflags = [ ''-X "github.com/redpanda-data/redpanda/src/go/rpk/pkg/cli/cmd/version.version=${version}"'' diff --git a/pkgs/tools/networking/v2ray/default.nix b/pkgs/tools/networking/v2ray/default.nix index a3d087bbd644..aa398dfcb9f3 100644 --- a/pkgs/tools/networking/v2ray/default.nix +++ b/pkgs/tools/networking/v2ray/default.nix @@ -6,18 +6,18 @@ buildGoModule rec { pname = "v2ray-core"; - version = "5.14.1"; + version = "5.15.0"; src = fetchFromGitHub { owner = "v2fly"; repo = "v2ray-core"; rev = "v${version}"; - hash = "sha256-fa8bgI1xpxunAr69xz2CPmo7XWoCODlBAnlb7fQg43U="; + hash = "sha256-XxmzJfZa05Kf32Lh6FapYpQZProJyzlXoXKnDPiWqMQ="; }; # `nix-update` doesn't support `vendorHash` yet. # https://github.com/Mic92/nix-update/pull/95 - vendorHash = "sha256-PPytLBW+dvZW/TWjTpqkP1zPwgh1Ji58BHzBUY9wRW8="; + vendorHash = "sha256-SQ7DcrKYf4Wclp/HG8e7q5YPvVNj/kHV/pGmEyOU/BY="; ldflags = [ "-s" "-w" ]; diff --git a/pkgs/tools/package-management/comma/default.nix b/pkgs/tools/package-management/comma/default.nix index b73e64924a6d..cf3b9c3dc9e4 100644 --- a/pkgs/tools/package-management/comma/default.nix +++ b/pkgs/tools/package-management/comma/default.nix @@ -10,16 +10,16 @@ rustPlatform.buildRustPackage rec { pname = "comma"; - version = "1.7.1"; + version = "1.8.0"; src = fetchFromGitHub { owner = "nix-community"; repo = "comma"; rev = "v${version}"; - hash = "sha256-x2HVm2vcEFHDrCQLIp5QzNsDARcbBfPdaIMLWVNfi4c="; + hash = "sha256-PW9OS/ccRxigP0ikk1XR4QhQX4j9+ALQz0FMKXF3yRA="; }; - cargoHash = "sha256-N6Bc0+m0Qz1c/80oLvQTj8gvMusPXIriegNlRYWWStU="; + cargoHash = "sha256-lNz4E+dcJ6ACkNraM4DUR4yFbkWgAZ4ngbAML8JYVtE="; nativeBuildInputs = [ makeBinaryWrapper ]; diff --git a/pkgs/tools/security/cnspec/default.nix b/pkgs/tools/security/cnspec/default.nix index 38c8813a301c..b02e670666bf 100644 --- a/pkgs/tools/security/cnspec/default.nix +++ b/pkgs/tools/security/cnspec/default.nix @@ -5,18 +5,18 @@ buildGoModule rec { pname = "cnspec"; - version = "10.7.1"; + version = "10.7.3"; src = fetchFromGitHub { owner = "mondoohq"; repo = "cnspec"; rev = "refs/tags/v${version}"; - hash = "sha256-i7XZXZuEZasW00HMpwyyS7pxI8hMrx6DZmp39sj1IyI="; + hash = "sha256-TFwMquMyHnUGyHGKBrialsDKL5Mubsop1Sudyu/IGjE="; }; proxyVendor = true; - vendorHash = "sha256-B5wwA2S6LiMRBpM6fWaPVubKuOjkdYcffAssSbpLs48="; + vendorHash = "sha256-+hlJqcX3cGo/ej5HPPZBZCTUHvB9+/iPTebNKdokLQ0="; subPackages = [ "apps/cnspec" diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 47d77b84d921..bfd62e7c92b4 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -5631,8 +5631,6 @@ with pkgs; hypr = callPackage ../applications/window-managers/hyprwm/hypr { cairo = cairo.override { xcbSupport = true; }; }; - hyprdim = callPackage ../applications/misc/hyprdim { }; - hyprland = callPackage ../applications/window-managers/hyprwm/hyprland { wlroots = callPackage ../applications/window-managers/hyprwm/hyprland/wlroots.nix { }; udis86 = callPackage ../applications/window-managers/hyprwm/hyprland/udis86.nix { }; @@ -5644,8 +5642,6 @@ with pkgs; hyprland-protocols = callPackage ../applications/window-managers/hyprwm/hyprland-protocols { }; - hyprnome = callPackage ../applications/misc/hyprnome { }; - hyprpaper = callPackage ../applications/window-managers/hyprwm/hyprpaper { }; hyprpicker = callPackage ../applications/window-managers/hyprwm/hyprpicker { @@ -18260,7 +18256,8 @@ with pkgs; electron_25-bin electron_26-bin electron_27-bin - electron_28-bin; + electron_28-bin + electron_29-bin; electron_10 = electron_10-bin; electron_11 = electron_11-bin; @@ -18281,7 +18278,7 @@ with pkgs; electron_26 = electron_26-bin; electron_27 = if lib.meta.availableOn stdenv.hostPlatform electron-source.electron_27 then electron-source.electron_27 else electron_27-bin; electron_28 = if lib.meta.availableOn stdenv.hostPlatform electron-source.electron_28 then electron-source.electron_28 else electron_28-bin; - electron_29 = electron-source.electron_29; + electron_29 = if lib.meta.availableOn stdenv.hostPlatform electron-source.electron_29 then electron-source.electron_29 else electron_29-bin; electron = electron_29; autobuild = callPackage ../development/tools/misc/autobuild { }; @@ -24454,7 +24451,7 @@ with pkgs; rlottie = callPackage ../development/libraries/rlottie { }; - rocksdb = pin-to-gcc12-if-gcc13 (callPackage ../development/libraries/rocksdb { }); + rocksdb = callPackage ../development/libraries/rocksdb { }; rocksdb_7_10 = rocksdb.overrideAttrs rec { pname = "rocksdb"; @@ -38651,7 +38648,9 @@ with pkgs; getdp = callPackage ../applications/science/math/getdp { }; - gurobi = callPackage ../applications/science/math/gurobi { }; + gurobi = callPackage ../applications/science/math/gurobi { + python3 = python310; + }; jags = callPackage ../applications/science/math/jags { }; diff --git a/pkgs/top-level/linux-kernels.nix b/pkgs/top-level/linux-kernels.nix index 1a040f052c71..afcec5061a36 100644 --- a/pkgs/top-level/linux-kernels.nix +++ b/pkgs/top-level/linux-kernels.nix @@ -713,6 +713,5 @@ in { ''; }; - buildLinux = attrs: callPackage ../os-specific/linux/kernel/generic.nix attrs; - + buildLinux = callPackage ../os-specific/linux/kernel/generic.nix {}; } diff --git a/pkgs/top-level/python-aliases.nix b/pkgs/top-level/python-aliases.nix index c10b48c8421a..96fccb3f3ecc 100644 --- a/pkgs/top-level/python-aliases.nix +++ b/pkgs/top-level/python-aliases.nix @@ -302,7 +302,6 @@ mapAliases ({ pam = python-pam; # added 2020-09-07. PasteDeploy = pastedeploy; # added 2021-10-07 pathpy = path; # added 2022-04-12 - paypalrestsdk = throw "paypalrestsdk was removed, the upstream repo was archived back in 2020"; # Added 2023-11-25 pdfposter = throw "pdfposter was promoted to a top-level attribute"; # Added 2023-06-29 pdfminer = pdfminer-six; # added 2022-05-25 pep257 = pydocstyle; # added 2022-04-12 diff --git a/pkgs/top-level/python-packages.nix b/pkgs/top-level/python-packages.nix index fe48ab19bfb7..291990e8f160 100644 --- a/pkgs/top-level/python-packages.nix +++ b/pkgs/top-level/python-packages.nix @@ -2527,7 +2527,7 @@ self: super: with self; { css-inline = callPackage ../development/python-modules/css-inline { inherit (pkgs.darwin) libiconv; - inherit (pkgs.darwin.apple_sdk.frameworks) Security; + inherit (pkgs.darwin.apple_sdk.frameworks) Security SystemConfiguration; }; css-parser = callPackage ../development/python-modules/css-parser { }; @@ -9298,6 +9298,8 @@ self: super: with self; { paypalhttp = callPackage ../development/python-modules/paypalhttp { }; + paypalrestsdk = callPackage ../development/python-modules/paypalrestsdk { }; + pbkdf2 = callPackage ../development/python-modules/pbkdf2 { }; pbr = callPackage ../development/python-modules/pbr { }; @@ -16358,6 +16360,8 @@ self: super: with self; { wallbox = callPackage ../development/python-modules/wallbox { }; + wallet-py3k = callPackage ../development/python-modules/wallet-py3k { }; + walrus = callPackage ../development/python-modules/walrus { }; wand = callPackage ../development/python-modules/wand { }; |