diff options
author | github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> | 2024-04-12 00:02:21 +0000 |
---|---|---|
committer | GitHub <noreply@github.com> | 2024-04-12 00:02:21 +0000 |
commit | 4cfc319ea877f057cb7ad0c455c6af52e72bc557 (patch) | |
tree | e1d666cc01a58f7f73d3f189959af1e44e37247f | |
parent | d6df2992ca10742a093e533d92bfd0696390986c (diff) | |
parent | d8b125efc00a75fa2ec3a60c0eebda1fe9040951 (diff) |
Merge master into staging-next
57 files changed, 1696 insertions, 486 deletions
diff --git a/.github/CODEOWNERS b/.github/CODEOWNERS index 1ea2bae9bd57f..2c3532ae9c9ed 100644 --- a/.github/CODEOWNERS +++ b/.github/CODEOWNERS @@ -359,3 +359,16 @@ pkgs/development/tools/continuous-integration/buildbot @Mic92 @zowoq pkgs/by-name/pr/pretix/ @mweinelt nixos/modules/services/web-apps/pretix.nix @mweinelt nixos/tests/web-apps/pretix.nix @mweinelt + +# incus/lxc/lxd +nixos/maintainers/scripts/lxd/ @adamcstephens +nixos/modules/virtualisation/incus.nix @adamcstephens +nixos/modules/virtualisation/lxc* @adamcstephens +nixos/modules/virtualisation/lxd* @adamcstephens +nixos/tests/incus/ @adamcstephens +nixos/tests/lxd/ @adamcstephens +pkgs/by-name/in/incus/ @adamcstephens +pkgs/by-name/lx/lxc* @adamcstephens +pkgs/by-name/lx/lxd* @adamcstephens +pkgs/os-specific/linux/lxc/ @adamcstephens + diff --git a/doc/packages/shell-helpers.section.md b/doc/packages/shell-helpers.section.md index 1c73303f82843..e7c2b0abebfca 100644 --- a/doc/packages/shell-helpers.section.md +++ b/doc/packages/shell-helpers.section.md @@ -2,11 +2,11 @@ Some packages provide the shell integration to be more useful. But unlike other systems, nix doesn't have a standard `share` directory location. This is why a bunch `PACKAGE-share` scripts are shipped that print the location of the corresponding shared folder. Current list of such packages is as following: -- `sk` : `sk-share` +- `fzf` : `fzf-share` -E.g. `sk` can then be used in the `.bashrc` like this: +E.g. `fzf` can then be used in the `.bashrc` like this: ```bash -source "$(sk-share)/completion.bash" -source "$(sk-share)/key-bindings.bash" +source "$(fzf-share)/completion.bash" +source "$(fzf-share)/key-bindings.bash" ``` diff --git a/maintainers/maintainer-list.nix b/maintainers/maintainer-list.nix index adc0d3563ea44..77321baf73206 100644 --- a/maintainers/maintainer-list.nix +++ b/maintainers/maintainer-list.nix @@ -11419,6 +11419,13 @@ fingerprint = "80EE AAD8 43F9 3097 24B5 3D7E 27E9 7B91 E63A 7FF8"; }]; }; + link2xt = { + email = "link2xt@testrun.org"; + githubId = 18373967; + github = "link2xt"; + matrix = "@link2xt:matrix.org"; + name = "link2xt"; + }; linquize = { email = "linquize@yahoo.com.hk"; github = "linquize"; @@ -11821,6 +11828,12 @@ githubId = 30468956; name = "Lukas Heiligenbrunner"; }; + lukaslihotzki = { + email = "lukas@lihotzki.de"; + github = "lukaslihotzki"; + githubId = 10326063; + name = "Lukas Lihotzki"; + }; lukaswrz = { email = "lukas@wrz.one"; github = "lukaswrz"; diff --git a/nixos/doc/manual/release-notes/rl-2305.section.md b/nixos/doc/manual/release-notes/rl-2305.section.md index 031442940b9e3..ce874a6e0b2d6 100644 --- a/nixos/doc/manual/release-notes/rl-2305.section.md +++ b/nixos/doc/manual/release-notes/rl-2305.section.md @@ -79,7 +79,7 @@ In addition to numerous new and updated packages, this release has the following - [frigate](https://frigate.video), an open source NVR built around real-time AI object detection. Available as [services.frigate](#opt-services.frigate.enable). -- [fzf](https://github.com/junegunn/fzf), a command line fuzzyfinder. Available as [programs.fzf](#opt-programs.fzf.enable). +- [fzf](https://github.com/junegunn/fzf), a command line fuzzyfinder. Available as [programs.fzf](#opt-programs.fzf.fuzzyCompletion). - [gemstash](https://github.com/rubygems/gemstash), a RubyGems.org cache and private gem server. Available as [services.gemstash](#opt-services.gemstash.enable). diff --git a/nixos/doc/manual/release-notes/rl-2405.section.md b/nixos/doc/manual/release-notes/rl-2405.section.md index 2d487bd23e1ba..0a044bfc5d1fd 100644 --- a/nixos/doc/manual/release-notes/rl-2405.section.md +++ b/nixos/doc/manual/release-notes/rl-2405.section.md @@ -328,8 +328,6 @@ The pre-existing [services.ankisyncd](#opt-services.ankisyncd.enable) has been m - `xxd` has been moved from `vim` default output to its own output to reduce closure size. The canonical way to reference it across all platforms is `unixtools.xxd`. -- `programs.fzf.keybindings` and `programs.fzf.fuzzyCompletion` got replaced by `programs.fzf.enable` as shell-completion is included in the fzf-binary now there is no easy option to load completion and keybindings separately. Please consult fzf-documentation on how to configure/disable certain keybindings. - - The `stalwart-mail` package has been updated to v0.5.3, which includes [breaking changes](https://github.com/stalwartlabs/mail-server/blob/v0.5.3/UPGRADING.md). - `services.zope2` has been removed as `zope2` is unmaintained and was relying on Python2. diff --git a/nixos/modules/module-list.nix b/nixos/modules/module-list.nix index 32ce0f3ec58de..89c8104564fcf 100644 --- a/nixos/modules/module-list.nix +++ b/nixos/modules/module-list.nix @@ -213,6 +213,7 @@ ./programs/kbdlight.nix ./programs/kclock.nix ./programs/kdeconnect.nix + ./programs/lazygit.nix ./programs/less.nix ./programs/liboping.nix ./programs/light.nix @@ -1365,6 +1366,7 @@ ./services/web-apps/miniflux.nix ./services/web-apps/monica.nix ./services/web-apps/moodle.nix + ./services/web-apps/movim.nix ./services/web-apps/netbox.nix ./services/web-apps/nextcloud.nix ./services/web-apps/nextcloud-notify_push.nix diff --git a/nixos/modules/programs/fzf.nix b/nixos/modules/programs/fzf.nix index 05e39c43c11b8..acc23d75df7b6 100644 --- a/nixos/modules/programs/fzf.nix +++ b/nixos/modules/programs/fzf.nix @@ -1,46 +1,38 @@ { pkgs, config, lib, ... }: -with lib; - let cfg = config.programs.fzf; - in { - imports = [ - (lib.mkRemovedOptionModule [ "programs" "fzf" "keybindings" ] '' - Use "programs.fzf.enable" instead, due to fzf upstream-change it's not possible to load shell-completion and keybindings separately. - If you want to change/disable certain keybindings please check the fzf-documentation. - '') - (lib.mkRemovedOptionModule [ "programs" "fzf" "fuzzyCompletion" ] '' - Use "programs.fzf.enable" instead, due to fzf upstream-change it's not possible to load shell-completion and keybindings separately. - If you want to change/disable certain keybindings please check the fzf-documentation. - '') - ]; - options = { - programs.fzf.enable = mkEnableOption (mdDoc "fuzzy completion with fzf and keybindings"); + programs.fzf = { + fuzzyCompletion = lib.mkEnableOption (lib.mdDoc "fuzzy completion with fzf"); + keybindings = lib.mkEnableOption (lib.mdDoc "fzf keybindings"); + }; }; - config = mkIf cfg.enable { - environment.systemPackages = [ pkgs.fzf ]; + config = lib.mkIf (cfg.keybindings || cfg.fuzzyCompletion) { + environment.systemPackages = lib.mkIf (cfg.keybindings || cfg.fuzzyCompletion) [ pkgs.fzf ]; - programs.bash.interactiveShellInit = '' - eval "$(${getExe pkgs.fzf} --bash)" - ''; - - programs.fish.interactiveShellInit = '' - ${getExe pkgs.fzf} --fish | source - ''; - - programs.zsh = { - interactiveShellInit = optionalString (!config.programs.zsh.ohMyZsh.enable) '' - eval "$(${getExe pkgs.fzf} --zsh)" + programs = { + bash.interactiveShellInit = lib.optionalString cfg.fuzzyCompletion '' + source ${pkgs.fzf}/share/fzf/completion.bash + '' + lib.optionalString cfg.keybindings '' + source ${pkgs.fzf}/share/fzf/key-bindings.bash ''; - ohMyZsh.plugins = mkIf (config.programs.zsh.ohMyZsh.enable) [ "fzf" ]; + zsh = { + interactiveShellInit = lib.optionalString (!config.programs.zsh.ohMyZsh.enable) + (lib.optionalString cfg.fuzzyCompletion '' + source ${pkgs.fzf}/share/fzf/completion.zsh + '' + lib.optionalString cfg.keybindings '' + source ${pkgs.fzf}/share/fzf/key-bindings.zsh + ''); + + ohMyZsh.plugins = lib.mkIf config.programs.zsh.ohMyZsh.enable [ "fzf" ]; + }; }; }; - meta.maintainers = with maintainers; [ laalsaas ]; + meta.maintainers = with lib.maintainers; [ laalsaas ]; } diff --git a/nixos/modules/programs/lazygit.nix b/nixos/modules/programs/lazygit.nix new file mode 100644 index 0000000000000..3e36a0e0c4a8f --- /dev/null +++ b/nixos/modules/programs/lazygit.nix @@ -0,0 +1,37 @@ +{ config, lib, pkgs, ... }: + +let + cfg = config.programs.lazygit; + + settingsFormat = pkgs.formats.yaml { }; +in +{ + options.programs.lazygit = { + enable = lib.mkEnableOption "lazygit, a simple terminal UI for git commands"; + + package = lib.mkPackageOption pkgs "lazygit" { }; + + settings = lib.mkOption { + inherit (settingsFormat) type; + default = { }; + description = '' + Lazygit configuration. + + See https://github.com/jesseduffield/lazygit/blob/master/docs/Config.md for documentation. + ''; + }; + }; + + config = lib.mkIf cfg.enable { + environment = { + systemPackages = [ cfg.package ]; + etc = lib.mkIf (cfg.settings != { }) { + "xdg/lazygit/config.yml".source = settingsFormat.generate "lazygit-config.yml" cfg.settings; + }; + }; + }; + + meta = { + maintainers = with lib.maintainers; [ linsui ]; + }; +} diff --git a/nixos/modules/services/misc/paperless.nix b/nixos/modules/services/misc/paperless.nix index 9301d1f687254..9a81fdde62af8 100644 --- a/nixos/modules/services/misc/paperless.nix +++ b/nixos/modules/services/misc/paperless.nix @@ -220,15 +220,16 @@ in config = mkIf cfg.enable { services.redis.servers.paperless.enable = mkIf enableRedis true; - systemd.tmpfiles.rules = [ - "d '${cfg.dataDir}' - ${cfg.user} ${config.users.users.${cfg.user}.group} - -" - "d '${cfg.mediaDir}' - ${cfg.user} ${config.users.users.${cfg.user}.group} - -" - (if cfg.consumptionDirIsPublic then - "d '${cfg.consumptionDir}' 777 - - - -" - else - "d '${cfg.consumptionDir}' - ${cfg.user} ${config.users.users.${cfg.user}.group} - -" - ) - ]; + systemd.tmpfiles.settings."10-paperless" = let + defaultRule = { + inherit (cfg) user; + inherit (config.users.users.${cfg.user}) group; + }; + in { + "${cfg.dataDir}".d = defaultRule; + "${cfg.mediaDir}".d = defaultRule; + "${cfg.consumptionDir}".d = if cfg.consumptionDirIsPublic then { mode = "777"; } else defaultRule; + }; systemd.services.paperless-scheduler = { description = "Paperless Celery Beat"; @@ -238,6 +239,7 @@ in User = cfg.user; ExecStart = "${pkg}/bin/celery --app paperless beat --loglevel INFO"; Restart = "on-failure"; + LoadCredential = lib.optionalString (cfg.passwordFile != null) "PAPERLESS_ADMIN_PASSWORD:${cfg.passwordFile}"; }; environment = env; @@ -270,7 +272,7 @@ in '' + optionalString (cfg.passwordFile != null) '' export PAPERLESS_ADMIN_USER="''${PAPERLESS_ADMIN_USER:-admin}" - export PAPERLESS_ADMIN_PASSWORD=$(cat "${cfg.dataDir}/superuser-password") + export PAPERLESS_ADMIN_PASSWORD=$(cat $CREDENTIALS_DIRECTORY/PAPERLESS_ADMIN_PASSWORD) superuserState="$PAPERLESS_ADMIN_USER:$PAPERLESS_ADMIN_PASSWORD" superuserStateFile="${cfg.dataDir}/superuser-state" @@ -298,19 +300,6 @@ in environment = env; }; - # Reading the user-provided password file requires root access - systemd.services.paperless-copy-password = mkIf (cfg.passwordFile != null) { - requiredBy = [ "paperless-scheduler.service" ]; - before = [ "paperless-scheduler.service" ]; - serviceConfig = { - ExecStart = '' - ${pkgs.coreutils}/bin/install --mode 600 --owner '${cfg.user}' --compare \ - '${cfg.passwordFile}' '${cfg.dataDir}/superuser-password' - ''; - Type = "oneshot"; - }; - }; - systemd.services.paperless-consumer = { description = "Paperless document consumer"; # Bind to `paperless-scheduler` so that the consumer never runs diff --git a/nixos/modules/services/web-apps/movim.nix b/nixos/modules/services/web-apps/movim.nix new file mode 100644 index 0000000000000..bb88a185b4618 --- /dev/null +++ b/nixos/modules/services/web-apps/movim.nix @@ -0,0 +1,711 @@ +{ config, lib, pkgs, ... }: + +let + inherit (lib) + filterAttrsRecursive + generators + literalExpression + mkDefault + mkIf + mkOption + mkEnableOption + mkPackageOption + mkMerge + pipe + types + ; + + cfg = config.services.movim; + + defaultPHPCfg = { + "output_buffering" = 0; + "error_reporting" = "E_ALL & ~E_DEPRECATED & ~E_STRICT"; + "opcache.enable_cli" = 1; + "opcache.interned_strings_buffer" = 8; + "opcache.max_accelerated_files" = 6144; + "opcache.memory_consumption" = 128; + "opcache.revalidate_freq" = 2; + "opcache.fast_shutdown" = 1; + }; + + phpCfg = generators.toKeyValue + { mkKeyValue = generators.mkKeyValueDefault { } " = "; } + (defaultPHPCfg // cfg.phpCfg); + + podConfigFlags = + let + bevalue = a: lib.escapeShellArg (generators.mkValueStringDefault { } a); + in + lib.concatStringsSep " " + (lib.attrsets.foldlAttrs + (acc: k: v: acc ++ lib.optional (v != null) "--${k}=${bevalue v}") + [ ] + cfg.podConfig); + + package = + let + p = cfg.package.override + ({ + inherit phpCfg; + withPgsql = cfg.database.type == "pgsql"; + withMysql = cfg.database.type == "mysql"; + inherit (cfg) minifyStaticFiles; + } // lib.optionalAttrs (lib.isAttrs cfg.minifyStaticFiles) (with cfg.minifyStaticFiles; { + esbuild = esbuild.package; + lightningcss = lightningcss.package; + scour = scour.package; + })); + in + p.overrideAttrs (finalAttrs: prevAttrs: + let + appDir = "$out/share/php/${finalAttrs.pname}"; + + stateDirectories = '' + # Symlinking in our state directories + rm -rf $out/.env $out/cache ${appDir}/public/cache + ln -s ${cfg.dataDir}/.env ${appDir}/.env + ln -s ${cfg.dataDir}/public/cache ${appDir}/public/cache + ln -s ${cfg.logDir} ${appDir}/log + ln -s ${cfg.runtimeDir}/cache ${appDir}/cache + ''; + + exposeComposer = '' + # Expose PHP Composer for scripts + mkdir -p $out/bin + echo "#!${lib.getExe pkgs.dash}" > $out/bin/movim-composer + echo "${finalAttrs.php.packages.composer}/bin/composer --working-dir="${appDir}" \"\$@\"" >> $out/bin/movim-composer + chmod +x $out/bin/movim-composer + ''; + + podConfigInputDisableReplace = lib.optionalString (podConfigFlags != "") + (lib.concatStringsSep "\n" + (lib.attrsets.foldlAttrs + (acc: k: v: + acc ++ lib.optional (v != null) + # Disable all Admin panel options that were set in the + # `cfg.podConfig` to prevent confusing situtions where the + # values are rewritten on server reboot + '' + substituteInPlace ${appDir}/app/widgets/AdminMain/adminmain.tpl \ + --replace-warn 'name="${k}"' 'name="${k}" disabled' + '') + [ ] + cfg.podConfig)); + + precompressStaticFilesJobs = + let + inherit (cfg.precompressStaticFiles) brotli gzip; + + findTextFileNames = lib.concatStringsSep " -o " + (builtins.map (n: ''-iname "*.${n}"'') + [ "css" "ini" "js" "json" "manifest" "mjs" "svg" "webmanifest" ]); + in + lib.concatStringsSep "\n" [ + (lib.optionalString brotli.enable '' + echo -n "Precompressing static files with Brotli …" + find ${appDir}/public -type f ${findTextFileNames} \ + | ${lib.getExe pkgs.parallel} ${lib.escapeShellArgs [ + "--will-cite" + "-j $NIX_BUILD_CORES" + "${lib.getExe brotli.package} --keep --quality=${builtins.toString brotli.compressionLevel} --output={}.br {}" + ]} + echo " done." + '') + (lib.optionalString gzip.enable '' + echo -n "Precompressing static files with Gzip …" + find ${appDir}/public -type f ${findTextFileNames} \ + | ${lib.getExe pkgs.parallel} ${lib.escapeShellArgs [ + "--will-cite" + "-j $NIX_BUILD_CORES" + "${lib.getExe gzip.package} -c -${builtins.toString gzip.compressionLevel} {} > {}.gz" + ]} + echo " done." + '') + ]; + in + { + postInstall = lib.concatStringsSep "\n\n" [ + prevAttrs.postInstall + stateDirectories + exposeComposer + podConfigInputDisableReplace + precompressStaticFilesJobs + ]; + }); + + configFile = pipe cfg.settings [ + (filterAttrsRecursive (_: v: v != null)) + (generators.toKeyValue { }) + (pkgs.writeText "movim-env") + ]; + + pool = "movim"; + fpm = config.services.phpfpm.pools.${pool}; + phpExecutionUnit = "phpfpm-${pool}"; + + dbService = { + "postgresql" = "postgresql.service"; + "mysql" = "mysql.service"; + }.${cfg.database.type}; +in +{ + options.services = { + movim = { + enable = mkEnableOption "a Movim instance"; + package = mkPackageOption pkgs "movim" { }; + phpPackage = mkPackageOption pkgs "php" { }; + + phpCfg = mkOption { + type = with types; attrsOf (oneOf [ int str bool ]); + defaultText = literalExpression (generators.toPretty { } defaultPHPCfg); + default = { }; + description = "Extra PHP INI options such as `memory_limit`, `max_execution_time`, etc."; + }; + + user = mkOption { + type = types.nonEmptyStr; + default = "movim"; + description = "User running Movim service"; + }; + + group = mkOption { + type = types.nonEmptyStr; + default = "movim"; + description = "Group running Movim service"; + }; + + dataDir = mkOption { + type = types.nonEmptyStr; + default = "/var/lib/movim"; + description = "State directory of the `movim` user which holds the application’s state & data."; + }; + + logDir = mkOption { + type = types.nonEmptyStr; + default = "/var/log/movim"; + description = "Log directory of the `movim` user which holds the application’s logs."; + }; + + runtimeDir = mkOption { + type = types.nonEmptyStr; + default = "/run/movim"; + description = "Runtime directory of the `movim` user which holds the application’s caches & temporary files."; + }; + + domain = mkOption { + type = types.nonEmptyStr; + description = "Fully-qualified domain name (FQDN) for the Movim instance."; + }; + + port = mkOption { + type = types.port; + default = 8080; + description = "Movim daemon port."; + }; + + debug = mkOption { + type = types.bool; + default = false; + description = "Debugging logs."; + }; + + verbose = mkOption { + type = types.bool; + default = false; + description = "Verbose logs."; + }; + + minifyStaticFiles = mkOption { + type = with types; either bool (submodule { + options = { + script = mkOption { + type = types.submodule { + options = { + enable = mkEnableOption "Script minification"; + package = mkPackageOption pkgs "esbuild" { }; + target = mkOption { + type = with types; nullOr nonEmptyStr; + default = null; + }; + }; + }; + }; + style = mkOption { + type = types.submodule { + options = { + enable = mkEnableOption "Script minification"; + package = mkPackageOption pkgs "lightningcss" { }; + target = mkOption { + type = with types; nullOr nonEmptyStr; + default = null; + }; + }; + }; + }; + svg = mkOption { + type = types.submodule { + options = { + enable = mkEnableOption "SVG minification"; + package = mkPackageOption pkgs "scour" { }; + }; + }; + }; + }; + }); + default = true; + description = "Do minification on public static files"; + }; + + precompressStaticFiles = mkOption { + type = with types; submodule { + options = { + brotli = { + enable = mkEnableOption "Brotli precompression"; + package = mkPackageOption pkgs "brotli" { }; + compressionLevel = mkOption { + type = types.ints.between 0 11; + default = 11; + description = "Brotli compression level"; + }; + }; + gzip = { + enable = mkEnableOption "Gzip precompression"; + package = mkPackageOption pkgs "gzip" { }; + compressionLevel = mkOption { + type = types.ints.between 1 9; + default = 9; + description = "Gzip compression level"; + }; + }; + }; + }; + default = { + brotli.enable = true; + gzip.enable = false; + }; + description = "Aggressively precompress static files"; + }; + + podConfig = mkOption { + type = types.submodule { + options = { + info = mkOption { + type = with types; nullOr str; + default = null; + description = "Content of the info box on the login page"; + }; + + description = mkOption { + type = with types; nullOr str; + default = null; + description = "General description of the instance"; + }; + + timezone = mkOption { + type = with types; nullOr str; + default = null; + description = "The server timezone"; + }; + + restrictsuggestions = mkOption { + type = with types; nullOr bool; + default = null; + description = "Only suggest chatrooms, Communities and other contents that are available on the user XMPP server and related services"; + }; + + chatonly = mkOption { + type = with types; nullOr bool; + default = null; + description = "Disable all the social feature (Communities, Blog…) and keep only the chat ones"; + }; + + disableregistration = mkOption { + type = with types; nullOr bool; + default = null; + description = "Remove the XMPP registration flow and buttons from the interface"; + }; + + loglevel = mkOption { + type = with types; nullOr (ints.between 0 3); + default = null; + description = "The server loglevel"; + }; + + locale = mkOption { + type = with types; nullOr str; + default = null; + description = "The server main locale"; + }; + + xmppdomain = mkOption { + type = with types; nullOr str; + default = null; + description = "The default XMPP server domain"; + }; + + xmppdescription = mkOption { + type = with types; nullOr str; + default = null; + description = "The default XMPP server description"; + }; + + xmppwhitelist = mkOption { + type = with types; nullOr str; + default = null; + description = "The allowlisted XMPP servers"; + }; + }; + }; + default = { }; + description = '' + Pod configuration (values from `php daemon.php config --help`). + Note that these values will now be disabled in the admin panel. + ''; + }; + + settings = mkOption { + type = with types; attrsOf (nullOr (oneOf [ int str bool ])); + default = { }; + description = ".env settings for Movim. Secrets should use `secretFile` option instead. `null`s will be culled."; + }; + + secretFile = mkOption { + type = with types; nullOr path; + default = null; + description = "The secret file to be sourced for the .env settings."; + }; + + database = { + type = mkOption { + type = types.enum [ "mysql" "postgresql" ]; + example = "mysql"; + default = "postgresql"; + description = "Database engine to use."; + }; + + name = mkOption { + type = types.str; + default = "movim"; + description = "Database name."; + }; + + user = mkOption { + type = types.str; + default = "movim"; + description = "Database username."; + }; + + createLocally = mkOption { + type = types.bool; + default = true; + description = "local database using UNIX socket authentication"; + }; + }; + + nginx = mkOption { + type = with types; nullOr (submodule + (import ../web-servers/nginx/vhost-options.nix { + inherit config lib; + })); + default = null; + example = lib.literalExpression /* nginx */ '' + { + serverAliases = [ + "pics.''${config.networking.domain}" + ]; + enableACME = true; + forceHttps = true; + } + ''; + description = '' + With this option, you can customize an nginx virtual host which already has sensible defaults for Movim. + Set to `{ }` if you do not need any customization to the virtual host. + If enabled, then by default, the {option}`serverName` is `''${domain}`, + If this is set to null (the default), no nginx virtualHost will be configured. + ''; + }; + + poolConfig = mkOption { + type = with types; attrsOf (oneOf [ int str bool ]); + default = { }; + description = "Options for Movim’s PHP-FPM pool."; + }; + }; + }; + + config = mkIf cfg.enable { + environment.systemPackages = [ cfg.package ]; + + users = { + users = { + movim = mkIf (cfg.user == "movim") { + isSystemUser = true; + group = cfg.group; + }; + "${config.services.nginx.user}".extraGroups = [ cfg.group ]; + }; + groups = { + ${cfg.group} = { }; + }; + }; + + services = { + movim = { + settings = mkMerge [ + { + DAEMON_URL = "//${cfg.domain}"; + DAEMON_PORT = cfg.port; + DAEMON_INTERFACE = "127.0.0.1"; + DAEMON_DEBUG = cfg.debug; + DAEMON_VERBOSE = cfg.verbose; + } + (mkIf cfg.database.createLocally { + DB_DRIVER = { + "postgresql" = "pgsql"; + "mysql" = "mysql"; + }.${cfg.database.type}; + DB_HOST = "localhost"; + DB_PORT = config.services.${cfg.database.type}.settings.port; + DB_DATABASE = cfg.database.name; + DB_USERNAME = cfg.database.user; + DB_PASSWORD = ""; + }) + ]; + + poolConfig = lib.mapAttrs' (n: v: lib.nameValuePair n (lib.mkDefault v)) { + "pm" = "dynamic"; + "php_admin_value[error_log]" = "stderr"; + "php_admin_flag[log_errors]" = true; + "catch_workers_output" = true; + "pm.max_children" = 32; + "pm.start_servers" = 2; + "pm.min_spare_servers" = 2; + "pm.max_spare_servers" = 8; + "pm.max_requests" = 500; + }; + }; + + nginx = mkIf (cfg.nginx != null) { + enable = true; + recommendedOptimisation = true; + recommendedGzipSettings = true; + recommendedBrotliSettings = true; + recommendedProxySettings = true; + # TODO: recommended cache options already in Nginx⁇ + appendHttpConfig = /* nginx */ '' + fastcgi_cache_path /tmp/nginx_cache levels=1:2 keys_zone=nginx_cache:100m inactive=60m; + fastcgi_cache_key "$scheme$request_method$host$request_uri"; + ''; + virtualHosts."${cfg.domain}" = mkMerge [ + cfg.nginx + { + root = lib.mkForce "${package}/share/php/movim/public"; + locations = { + "/favicon.ico" = { + priority = 100; + extraConfig = /* nginx */ '' + access_log off; + log_not_found off; + ''; + }; + "/robots.txt" = { + priority = 100; + extraConfig = /* nginx */ '' + access_log off; + log_not_found off; + ''; + }; + "~ /\\.(?!well-known).*" = { + priority = 210; + extraConfig = /* nginx */ '' + deny all; + ''; + }; + # Ask nginx to cache every URL starting with "/picture" + "/picture" = { + priority = 400; + tryFiles = "$uri $uri/ /index.php$is_args$args"; + extraConfig = /* nginx */ '' + set $no_cache 0; # Enable cache only there + ''; + }; + "/" = { + priority = 490; + tryFiles = "$uri $uri/ /index.php$is_args$args"; + extraConfig = /* nginx */ '' + # https://github.com/movim/movim/issues/314 + add_header Content-Security-Policy "default-src 'self'; img-src 'self' aesgcm: https:; media-src 'self' aesgcm: https:; script-src 'self' 'unsafe-eval' 'unsafe-inline'; style-src 'self' 'unsafe-inline';"; + set $no_cache 1; + ''; + }; + "~ \\.php$" = { + priority = 500; + tryFiles = "$uri =404"; + extraConfig = /* nginx */ '' + include ${config.services.nginx.package}/conf/fastcgi.conf; + add_header X-Cache $upstream_cache_status; + fastcgi_ignore_headers "Cache-Control" "Expires" "Set-Cookie"; + fastcgi_cache nginx_cache; + fastcgi_cache_valid any 7d; + fastcgi_cache_bypass $no_cache; + fastcgi_no_cache $no_cache; + fastcgi_split_path_info ^(.+\.php)(/.+)$; + fastcgi_index index.php; + fastcgi_pass unix:${fpm.socket}; + ''; + }; + "/ws/" = { + priority = 900; + proxyPass = "http://${cfg.settings.DAEMON_INTERFACE}:${builtins.toString cfg.port}/"; + proxyWebsockets = true; + recommendedProxySettings = true; + extraConfig = /* nginx */ '' + proxy_set_header X-Forwarded-Proto $scheme; + proxy_redirect off; + ''; + }; + }; + extraConfig = /* ngnix */ '' + index index.php; + ''; + } + ]; + }; + + mysql = mkIf (cfg.database.createLocally && cfg.database.type == "mysql") { + enable = mkDefault true; + package = mkDefault pkgs.mariadb; + ensureDatabases = [ cfg.database.name ]; + ensureUsers = [{ + name = cfg.user; + ensureDBOwnership = true; + }]; + }; + + postgresql = mkIf (cfg.database.createLocally && cfg.database.type == "postgresql") { + enable = mkDefault true; + ensureDatabases = [ cfg.database.name ]; + ensureUsers = [{ + name = cfg.user; + ensureDBOwnership = true; + }]; + authentication = '' + host ${cfg.database.name} ${cfg.database.user} localhost trust + ''; + }; + + phpfpm.pools.${pool} = + let + socketOwner = + if (cfg.nginx != null) + then config.services.nginx.user + else cfg.user; + in + { + phpPackage = package.php; + user = cfg.user; + group = cfg.group; + + phpOptions = '' + error_log = 'stderr' + log_errors = on + ''; + + settings = { + "listen.owner" = socketOwner; + "listen.group" = cfg.group; + "listen.mode" = "0660"; + "catch_workers_output" = true; + } // cfg.poolConfig; + }; + }; + + systemd = { + services.movim-data-setup = { + description = "Movim setup: .env file, databases init, cache reload"; + wantedBy = [ "multi-user.target" ]; + requiredBy = [ "${phpExecutionUnit}.service" ]; + before = [ "${phpExecutionUnit}.service" ]; + after = lib.optional cfg.database.createLocally dbService; + requires = lib.optional cfg.database.createLocally dbService; + + serviceConfig = { + Type = "oneshot"; + User = cfg.user; + Group = cfg.group; + UMask = "077"; + } // lib.optionalAttrs (cfg.secretFile != null) { + LoadCredential = "env-secrets:${cfg.secretFile}"; + }; + + script = '' + # Env vars + rm -f ${cfg.dataDir}/.env + cp --no-preserve=all ${configFile} ${cfg.dataDir}/.env + echo -e '\n' >> ${cfg.dataDir}/.env + if [[ -f "$CREDENTIALS_DIRECTORY/env-secrets" ]]; then + cat "$CREDENTIALS_DIRECTORY/env-secrets" >> ${cfg.dataDir}/.env + echo -e '\n' >> ${cfg.dataDir}/.env + fi + + # Caches, logs + mkdir -p ${cfg.dataDir}/public/cache ${cfg.logDir} ${cfg.runtimeDir}/cache + chmod -R ug+rw ${cfg.dataDir}/public/cache + chmod -R ug+rw ${cfg.logDir} + chmod -R ug+rwx ${cfg.runtimeDir}/cache + + # Migrations + MOVIM_VERSION="${package.version}" + if [[ ! -f "${cfg.dataDir}/.migration-version" ]] || [[ "$MOVIM_VERSION" != "$(<${cfg.dataDir}/.migration-version)" ]]; then + ${package}/bin/movim-composer movim:migrate && echo $MOVIM_VERSION > ${cfg.dataDir}/.migration-version + fi + '' + + lib.optionalString (podConfigFlags != "") ( + let + flags = lib.concatStringsSep " " + ([ "--no-interaction" ] + ++ lib.optional cfg.debug "-vvv" + ++ lib.optional (!cfg.debug && cfg.verbose) "-v"); + in + '' + ${lib.getExe package} config ${podConfigFlags} + '' + ); + }; + + services.movim = { + description = "Movim daemon"; + wantedBy = [ "multi-user.target" ]; + after = [ "movim-data-setup.service" ]; + requires = [ "movim-data-setup.service" ] + ++ lib.optional cfg.database.createLocally dbService; + environment = { + PUBLIC_URL = "//${cfg.domain}"; + WS_PORT = builtins.toString cfg.port; + }; + + serviceConfig = { + User = cfg.user; + Group = cfg.group; + WorkingDirectory = "${package}/share/php/movim"; + ExecStart = "${lib.getExe package} start"; + }; + }; + + services.${phpExecutionUnit} = { + after = [ "movim-data-setup.service" ]; + requires = [ "movim-data-setup.service" ] + ++ lib.optional cfg.database.createLocally dbService; + }; + + tmpfiles.settings."10-movim" = with cfg; { + "${dataDir}".d = { inherit user group; mode = "0710"; }; + "${dataDir}/public".d = { inherit user group; mode = "0750"; }; + "${dataDir}/public/cache".d = { inherit user group; mode = "0750"; }; + "${runtimeDir}".d = { inherit user group; mode = "0700"; }; + "${runtimeDir}/cache".d = { inherit user group; mode = "0700"; }; + "${logDir}".d = { inherit user group; mode = "0700"; }; + }; + }; + }; +} diff --git a/nixos/tests/all-tests.nix b/nixos/tests/all-tests.nix index 7d120d6bc09e8..909eea38b35e0 100644 --- a/nixos/tests/all-tests.nix +++ b/nixos/tests/all-tests.nix @@ -558,6 +558,7 @@ in { morty = handleTest ./morty.nix {}; mosquitto = handleTest ./mosquitto.nix {}; moosefs = handleTest ./moosefs.nix {}; + movim = discoverTests (import ./web-apps/movim { inherit handleTestOn; }); mpd = handleTest ./mpd.nix {}; mpv = handleTest ./mpv.nix {}; mtp = handleTest ./mtp.nix {}; diff --git a/nixos/tests/web-apps/movim/default.nix b/nixos/tests/web-apps/movim/default.nix new file mode 100644 index 0000000000000..5d6314e2b41be --- /dev/null +++ b/nixos/tests/web-apps/movim/default.nix @@ -0,0 +1,8 @@ +{ system ? builtins.currentSystem, handleTestOn }: + +let + supportedSystems = [ "x86_64-linux" "i686-linux" ]; +in +{ + standard = handleTestOn supportedSystems ./standard.nix { inherit system; }; +} diff --git a/nixos/tests/web-apps/movim/standard.nix b/nixos/tests/web-apps/movim/standard.nix new file mode 100644 index 0000000000000..470d81d8f7229 --- /dev/null +++ b/nixos/tests/web-apps/movim/standard.nix @@ -0,0 +1,102 @@ +import ../../make-test-python.nix ({ lib, pkgs, ... }: + +let + movim = { + domain = "movim.local"; + info = "No ToS in tests"; + description = "NixOS testing server"; + }; + xmpp = { + domain = "xmpp.local"; + admin = rec { + JID = "${username}@${xmpp.domain}"; + username = "romeo"; + password = "juliet"; + }; + }; +in +{ + name = "movim-standard"; + + meta = { + maintainers = with pkgs.lib.maintainers; [ toastal ]; + }; + + nodes = { + server = { pkgs, ... }: { + services.movim = { + inherit (movim) domain; + enable = true; + verbose = true; + podConfig = { + inherit (movim) description info; + xmppdomain = xmpp.domain; + }; + nginx = { }; + }; + + services.prosody = { + enable = true; + xmppComplianceSuite = false; + disco_items = [ + { url = "upload.${xmpp.domain}"; description = "File Uploads"; } + ]; + virtualHosts."${xmpp.domain}" = { + inherit (xmpp) domain; + enabled = true; + extraConfig = '' + Component "pubsub.${xmpp.domain}" "pubsub" + pubsub_max_items = 10000 + expose_publisher = true + + Component "upload.${xmpp.domain}" "http_file_share" + http_external_url = "http://upload.${xmpp.domain}" + http_file_share_expires_after = 300 * 24 * 60 * 60 + http_file_share_size_limit = 1024 * 1024 * 1024 + http_file_share_daily_quota = 4 * 1024 * 1024 * 1024 + ''; + }; + extraConfig = '' + pep_max_items = 10000 + + http_paths = { + file_share = "/"; + } + ''; + }; + + networking.extraHosts = '' + 127.0.0.1 ${movim.domain} + 127.0.0.1 ${xmpp.domain} + ''; + }; + }; + + testScript = /* python */ '' + server.wait_for_unit("phpfpm-movim.service") + server.wait_for_unit("nginx.service") + server.wait_for_open_port(80) + + server.wait_for_unit("prosody.service") + server.succeed('prosodyctl status | grep "Prosody is running"') + server.succeed("prosodyctl register ${xmpp.admin.username} ${xmpp.domain} ${xmpp.admin.password}") + + server.wait_for_unit("movim.service") + + # Test unauthenticated + server.fail("curl -L --fail-with-body --max-redirs 0 http://${movim.domain}/chat") + + # Test basic Websocket + server.succeed("echo \"\" | ${lib.getExe pkgs.websocat} 'ws://${movim.domain}/ws/?path=login&offset=0' --origin 'http://${movim.domain}'") + + # Test login + create cookiejar + login_html = server.succeed("curl --fail-with-body -c /tmp/cookies http://${movim.domain}/login") + assert "${movim.description}" in login_html + assert "${movim.info}" in login_html + + # Test authentication POST + server.succeed("curl --fail-with-body -b /tmp/cookies -X POST --data-urlencode 'username=${xmpp.admin.JID}' --data-urlencode 'password=${xmpp.admin.password}' http://${movim.domain}/login") + + server.succeed("curl -L --fail-with-body --max-redirs 1 -b /tmp/cookies http://${movim.domain}/chat") + ''; +}) diff --git a/pkgs/applications/editors/jetbrains/bin/versions.json b/pkgs/applications/editors/jetbrains/bin/versions.json index c0893d1cac127..af8d8453ad7c9 100644 --- a/pkgs/applications/editors/jetbrains/bin/versions.json +++ b/pkgs/applications/editors/jetbrains/bin/versions.json @@ -3,18 +3,18 @@ "clion": { "update-channel": "CLion RELEASE", "url-template": "https://download.jetbrains.com/cpp/CLion-{version}.tar.gz", - "version": "2023.3.4", - "sha256": "eae2e1646387ee36a2f24c10d924647fd3d00bb31dd42e9c17438ae7aecf79a8", - "url": "https://download.jetbrains.com/cpp/CLion-2023.3.4.tar.gz", - "build_number": "233.14475.31" + "version": "2024.1", + "sha256": "a753369d74832d15fcf082587291921e8a90be04529c05b8e9d64a3afb24120c", + "url": "https://download.jetbrains.com/cpp/CLion-2024.1.tar.gz", + "build_number": "241.14494.288" }, "datagrip": { "update-channel": "DataGrip RELEASE", "url-template": "https://download.jetbrains.com/datagrip/datagrip-{version}.tar.gz", - "version": "2024.1", - "sha256": "cc77892adcbf28b1a2205908466cca9c80217162cdac020d25d258a84cbb88d3", - "url": "https://download.jetbrains.com/datagrip/datagrip-2024.1.tar.gz", - "build_number": "241.14494.251" + "version": "2024.1.1", + "sha256": "05c1f910126b8499d26ab52d333307d3b6df6a3fa06b5e0b1a79ff15caf40e0a", + "url": "https://download.jetbrains.com/datagrip/datagrip-2024.1.1.tar.gz", + "build_number": "241.14494.283" }, "dataspell": { "update-channel": "DataSpell RELEASE", @@ -92,10 +92,10 @@ "rider": { "update-channel": "Rider RELEASE", "url-template": "https://download.jetbrains.com/rider/JetBrains.Rider-{version}.tar.gz", - "version": "2023.3.4", - "sha256": "fb137ea346d957f151cb0d7755661293ae5e33e36f306b6dc90fb42895443309", - "url": "https://download.jetbrains.com/rider/JetBrains.Rider-2023.3.4.tar.gz", - "build_number": "233.14475.66" + "version": "2024.1", + "sha256": "194096b0b550e1e320fc72aaf0510faeebf8737d05f6e02eecd72efe6f7cd757", + "url": "https://download.jetbrains.com/rider/JetBrains.Rider-2024.1.tar.gz", + "build_number": "241.14494.307" }, "ruby-mine": { "update-channel": "RubyMine RELEASE", @@ -126,18 +126,18 @@ "clion": { "update-channel": "CLion RELEASE", "url-template": "https://download.jetbrains.com/cpp/CLion-{version}-aarch64.tar.gz", - "version": "2023.3.4", - "sha256": "fa427be85ead8e2769aeadf19ce816cb7f02c3b08ec3b4cc7e0cddea44386dc8", - "url": "https://download.jetbrains.com/cpp/CLion-2023.3.4-aarch64.tar.gz", - "build_number": "233.14475.31" + "version": "2024.1", + "sha256": "f937b263bd697595427e3e1d04513f9b6a786d56214ce34fe7a038efa2e949cf", + "url": "https://download.jetbrains.com/cpp/CLion-2024.1-aarch64.tar.gz", + "build_number": "241.14494.288" }, "datagrip": { "update-channel": "DataGrip RELEASE", "url-template": "https://download.jetbrains.com/datagrip/datagrip-{version}-aarch64.tar.gz", - "version": "2024.1", - "sha256": "b293ed99d29510422090736c4e30a0ccd3974fc01ecce7a9f5f497c34b8ea077", - "url": "https://download.jetbrains.com/datagrip/datagrip-2024.1-aarch64.tar.gz", - "build_number": "241.14494.251" + "version": "2024.1.1", + "sha256": "d269bfe10fb97572e785dce6e387d09f429396db002e12ecb9a44cced915c032", + "url": "https://download.jetbrains.com/datagrip/datagrip-2024.1.1-aarch64.tar.gz", + "build_number": "241.14494.283" }, "dataspell": { "update-channel": "DataSpell RELEASE", @@ -215,10 +215,10 @@ "rider": { "update-channel": "Rider RELEASE", "url-template": "https://download.jetbrains.com/rider/JetBrains.Rider-{version}-aarch64.tar.gz", - "version": "2023.3.4", - "sha256": "99c80997bd0d2b8b918ef81fbbe7b422e165665c8fa3d108b1387ca0188c9558", - "url": "https://download.jetbrains.com/rider/JetBrains.Rider-2023.3.4-aarch64.tar.gz", - "build_number": "233.14475.66" + "version": "2024.1", + "sha256": "e196c8e70d7eb6f56a08df809f5de430bf5e61509abb13de8b301c036c4f446e", + "url": "https://download.jetbrains.com/rider/JetBrains.Rider-2024.1-aarch64.tar.gz", + "build_number": "241.14494.307" }, "ruby-mine": { "update-channel": "RubyMine RELEASE", @@ -249,18 +249,18 @@ "clion": { "update-channel": "CLion RELEASE", "url-template": "https://download.jetbrains.com/cpp/CLion-{version}.dmg", - "version": "2023.3.4", - "sha256": "2eb149d2bbf1c778f3386bc9cf7b11741b4372e69c680def31260b9aa213159e", - "url": "https://download.jetbrains.com/cpp/CLion-2023.3.4.dmg", - "build_number": "233.14475.31" + "version": "2024.1", + "sha256": "373c78ff045a17fdcae44cc9b76b41862d4bee9c8476813e518c7cc1de88b6a1", + "url": "https://download.jetbrains.com/cpp/CLion-2024.1.dmg", + "build_number": "241.14494.288" }, "datagrip": { "update-channel": "DataGrip RELEASE", "url-template": "https://download.jetbrains.com/datagrip/datagrip-{version}.dmg", - "version": "2024.1", - "sha256": "8a76d76466b62da1a68d08a066a56319b81e3cab09b57ab11822bf4373def6ce", - "url": "https://download.jetbrains.com/datagrip/datagrip-2024.1.dmg", - "build_number": "241.14494.251" + "version": "2024.1.1", + "sha256": "232582204a6f810bcbd2387ba2cef824f0f81c3a7e022f7f2bebf643d32f866d", + "url": "https://download.jetbrains.com/datagrip/datagrip-2024.1.1.dmg", + "build_number": "241.14494.283" }, "dataspell": { "update-channel": "DataSpell RELEASE", @@ -338,10 +338,10 @@ "rider": { "update-channel": "Rider RELEASE", "url-template": "https://download.jetbrains.com/rider/JetBrains.Rider-{version}.dmg", - "version": "2023.3.4", - "sha256": "00435dc8d9dd43bbd73a55be7d5b304be8ee124032a7485750aef86cddc53ba2", - "url": "https://download.jetbrains.com/rider/JetBrains.Rider-2023.3.4.dmg", - "build_number": "233.14475.66" + "version": "2024.1", + "sha256": "12155c779c7f11dd71b3573af266c0221960eaea8a442fda4faaec8ca6eefa95", + "url": "https://download.jetbrains.com/rider/JetBrains.Rider-2024.1.dmg", + "build_number": "241.14494.307" }, "ruby-mine": { "update-channel": "RubyMine RELEASE", @@ -372,18 +372,18 @@ "clion": { "update-channel": "CLion RELEASE", "url-template": "https://download.jetbrains.com/cpp/CLion-{version}-aarch64.dmg", - "version": "2023.3.4", - "sha256": "340d239008c38743a10e51ae609ec3bf3dd732cf2042ef997532c6b8ed272b1a", - "url": "https://download.jetbrains.com/cpp/CLion-2023.3.4-aarch64.dmg", - "build_number": "233.14475.31" + "version": "2024.1", + "sha256": "b1044fdbf9e3f93aaf8ca8ad2b7bc2eae165f86bc5cae6910f2ad0ee92c198a5", + "url": "https://download.jetbrains.com/cpp/CLion-2024.1-aarch64.dmg", + "build_number": "241.14494.288" }, "datagrip": { "update-channel": "DataGrip RELEASE", "url-template": "https://download.jetbrains.com/datagrip/datagrip-{version}-aarch64.dmg", - "version": "2024.1", - "sha256": "a5e92addc3f098670814c4d5660f275f997eaa958e9eb24007f862cfb74b8118", - "url": "https://download.jetbrains.com/datagrip/datagrip-2024.1-aarch64.dmg", - "build_number": "241.14494.251" + "version": "2024.1.1", + "sha256": "c2545df9784fa1f8f9234dd93d1c513ed691c797f26471cb545188ce7f495864", + "url": "https://download.jetbrains.com/datagrip/datagrip-2024.1.1-aarch64.dmg", + "build_number": "241.14494.283" }, "dataspell": { "update-channel": "DataSpell RELEASE", @@ -461,10 +461,10 @@ "rider": { "update-channel": "Rider RELEASE", "url-template": "https://download.jetbrains.com/rider/JetBrains.Rider-{version}-aarch64.dmg", - "version": "2023.3.4", - "sha256": "8ffd13dcc2207d4a781dc92e89643767e0dd6ef53024c92669f4daaf9cf929c0", - "url": "https://download.jetbrains.com/rider/JetBrains.Rider-2023.3.4-aarch64.dmg", - "build_number": "233.14475.66" + "version": "2024.1", + "sha256": "c2e0dadc6c7f924e849e87d1c04aeaa02d6a14d5868294dd36481a70cbd508cb", + "url": "https://download.jetbrains.com/rider/JetBrains.Rider-2024.1-aarch64.dmg", + "build_number": "241.14494.307" }, "ruby-mine": { "update-channel": "RubyMine RELEASE", diff --git a/pkgs/applications/editors/jetbrains/plugins/plugins.json b/pkgs/applications/editors/jetbrains/plugins/plugins.json index 115abc8470593..02b902bfbcce9 100644 --- a/pkgs/applications/editors/jetbrains/plugins/plugins.json +++ b/pkgs/applications/editors/jetbrains/plugins/plugins.json @@ -18,8 +18,6 @@ ], "builds": { "233.13135.979": "https://plugins.jetbrains.com/files/164/515255/IdeaVim-2.10.2-signed.zip", - "233.14475.31": "https://plugins.jetbrains.com/files/164/515255/IdeaVim-2.10.2-signed.zip", - "233.14475.66": "https://plugins.jetbrains.com/files/164/515255/IdeaVim-2.10.2-signed.zip", "233.15026.24": "https://plugins.jetbrains.com/files/164/515255/IdeaVim-2.10.2-signed.zip", "241.14494.234": "https://plugins.jetbrains.com/files/164/515255/IdeaVim-2.10.2-signed.zip", "241.14494.235": "https://plugins.jetbrains.com/files/164/515255/IdeaVim-2.10.2-signed.zip", @@ -27,7 +25,9 @@ "241.14494.238": "https://plugins.jetbrains.com/files/164/515255/IdeaVim-2.10.2-signed.zip", "241.14494.240": "https://plugins.jetbrains.com/files/164/515255/IdeaVim-2.10.2-signed.zip", "241.14494.241": "https://plugins.jetbrains.com/files/164/515255/IdeaVim-2.10.2-signed.zip", - "241.14494.251": "https://plugins.jetbrains.com/files/164/515255/IdeaVim-2.10.2-signed.zip" + "241.14494.283": "https://plugins.jetbrains.com/files/164/515255/IdeaVim-2.10.2-signed.zip", + "241.14494.288": "https://plugins.jetbrains.com/files/164/515255/IdeaVim-2.10.2-signed.zip", + "241.14494.307": "https://plugins.jetbrains.com/files/164/515255/IdeaVim-2.10.2-signed.zip" }, "name": "ideavim" }, @@ -42,13 +42,32 @@ }, "6954": { "compatible": [ + "clion", + "datagrip", + "goland", "idea-community", "idea-ultimate", - "mps" + "mps", + "phpstorm", + "pycharm-community", + "pycharm-professional", + "rider", + "ruby-mine", + "rust-rover", + "webstorm" ], "builds": { "233.13135.979": null, - "241.14494.240": null + "233.15026.24": null, + "241.14494.234": null, + "241.14494.235": null, + "241.14494.237": null, + "241.14494.238": null, + "241.14494.240": null, + "241.14494.241": null, + "241.14494.283": null, + "241.14494.288": null, + "241.14494.307": null }, "name": "kotlin" }, @@ -70,8 +89,6 @@ ], "builds": { "233.13135.979": null, - "233.14475.31": null, - "233.14475.66": null, "233.15026.24": "https://plugins.jetbrains.com/files/6981/509027/ini-233.15026.15.zip", "241.14494.234": "https://plugins.jetbrains.com/files/6981/513562/ini-241.14494.240.zip", "241.14494.235": "https://plugins.jetbrains.com/files/6981/513562/ini-241.14494.240.zip", @@ -79,7 +96,9 @@ "241.14494.238": "https://plugins.jetbrains.com/files/6981/513562/ini-241.14494.240.zip", "241.14494.240": "https://plugins.jetbrains.com/files/6981/513562/ini-241.14494.240.zip", "241.14494.241": "https://plugins.jetbrains.com/files/6981/513562/ini-241.14494.240.zip", - "241.14494.251": "https://plugins.jetbrains.com/files/6981/513562/ini-241.14494.240.zip" + "241.14494.283": "https://plugins.jetbrains.com/files/6981/513562/ini-241.14494.240.zip", + "241.14494.288": "https://plugins.jetbrains.com/files/6981/513562/ini-241.14494.240.zip", + "241.14494.307": "https://plugins.jetbrains.com/files/6981/513562/ini-241.14494.240.zip" }, "name": "ini" }, @@ -89,8 +108,8 @@ "phpstorm" ], "builds": { - "241.14494.237": "https://plugins.jetbrains.com/files/7219/514919/Symfony_Plugin-2023.1.267.zip", - "241.14494.240": "https://plugins.jetbrains.com/files/7219/514919/Symfony_Plugin-2023.1.267.zip" + "241.14494.237": "https://plugins.jetbrains.com/files/7219/518876/Symfony_Plugin-2023.1.268.zip", + "241.14494.240": "https://plugins.jetbrains.com/files/7219/518876/Symfony_Plugin-2023.1.268.zip" }, "name": "symfony-support" }, @@ -114,11 +133,11 @@ "rust-rover" ], "builds": { - "233.14475.66": "https://plugins.jetbrains.com/files/7322/484110/python-ce-233.14475.9.zip", "233.15026.24": "https://plugins.jetbrains.com/files/7322/502153/python-ce-233.14808.12.zip", "241.14494.238": "https://plugins.jetbrains.com/files/7322/513587/python-ce-241.14494.240.zip", "241.14494.240": "https://plugins.jetbrains.com/files/7322/513587/python-ce-241.14494.240.zip", - "241.14494.251": "https://plugins.jetbrains.com/files/7322/513587/python-ce-241.14494.240.zip" + "241.14494.283": "https://plugins.jetbrains.com/files/7322/513587/python-ce-241.14494.240.zip", + "241.14494.307": "https://plugins.jetbrains.com/files/7322/513587/python-ce-241.14494.240.zip" }, "name": "python-community-edition" }, @@ -139,15 +158,15 @@ ], "builds": { "233.13135.979": "https://plugins.jetbrains.com/files/8182/466854/intellij-rust-233.15445.zip", - "233.14475.31": "https://plugins.jetbrains.com/files/8182/466854/intellij-rust-233.15445.zip", - "233.14475.66": "https://plugins.jetbrains.com/files/8182/466854/intellij-rust-233.15445.zip", "241.14494.234": null, "241.14494.235": null, "241.14494.237": null, "241.14494.238": null, "241.14494.240": null, "241.14494.241": null, - "241.14494.251": null + "241.14494.283": null, + "241.14494.288": null, + "241.14494.307": null }, "name": "-deprecated-rust" }, @@ -168,15 +187,15 @@ ], "builds": { "233.13135.979": null, - "233.14475.31": null, - "233.14475.66": null, "241.14494.234": null, "241.14494.235": null, "241.14494.237": null, "241.14494.238": null, "241.14494.240": null, "241.14494.241": null, - "241.14494.251": null + "241.14494.283": null, + "241.14494.288": null, + "241.14494.307": null }, "name": "-deprecated-rust-beta" }, @@ -214,17 +233,17 @@ "webstorm" ], "builds": { - "233.13135.979": "https://plugins.jetbrains.com/files/8607/422943/NixIDEA-0.4.0.11.zip", - "233.14475.31": "https://plugins.jetbrains.com/files/8607/422943/NixIDEA-0.4.0.11.zip", - "233.14475.66": "https://plugins.jetbrains.com/files/8607/422943/NixIDEA-0.4.0.11.zip", - "233.15026.24": "https://plugins.jetbrains.com/files/8607/422943/NixIDEA-0.4.0.11.zip", - "241.14494.234": null, - "241.14494.235": null, - "241.14494.237": null, - "241.14494.238": null, - "241.14494.240": null, - "241.14494.241": null, - "241.14494.251": null + "233.13135.979": "https://plugins.jetbrains.com/files/8607/519418/NixIDEA-0.4.0.12.zip", + "233.15026.24": "https://plugins.jetbrains.com/files/8607/519418/NixIDEA-0.4.0.12.zip", + "241.14494.234": "https://plugins.jetbrains.com/files/8607/519418/NixIDEA-0.4.0.12.zip", + "241.14494.235": "https://plugins.jetbrains.com/files/8607/519418/NixIDEA-0.4.0.12.zip", + "241.14494.237": "https://plugins.jetbrains.com/files/8607/519418/NixIDEA-0.4.0.12.zip", + "241.14494.238": "https://plugins.jetbrains.com/files/8607/519418/NixIDEA-0.4.0.12.zip", + "241.14494.240": "https://plugins.jetbrains.com/files/8607/519418/NixIDEA-0.4.0.12.zip", + "241.14494.241": "https://plugins.jetbrains.com/files/8607/519418/NixIDEA-0.4.0.12.zip", + "241.14494.283": "https://plugins.jetbrains.com/files/8607/519418/NixIDEA-0.4.0.12.zip", + "241.14494.288": "https://plugins.jetbrains.com/files/8607/519418/NixIDEA-0.4.0.12.zip", + "241.14494.307": "https://plugins.jetbrains.com/files/8607/519418/NixIDEA-0.4.0.12.zip" }, "name": "nixidea" }, @@ -257,8 +276,6 @@ ], "builds": { "233.13135.979": "https://plugins.jetbrains.com/files/10037/493012/CSVEditor-3.3.0-233.zip", - "233.14475.31": "https://plugins.jetbrains.com/files/10037/493012/CSVEditor-3.3.0-233.zip", - "233.14475.66": "https://plugins.jetbrains.com/files/10037/493012/CSVEditor-3.3.0-233.zip", "233.15026.24": "https://plugins.jetbrains.com/files/10037/493012/CSVEditor-3.3.0-233.zip", "241.14494.234": "https://plugins.jetbrains.com/files/10037/493010/CSVEditor-3.3.0-241.zip", "241.14494.235": "https://plugins.jetbrains.com/files/10037/493010/CSVEditor-3.3.0-241.zip", @@ -266,7 +283,9 @@ "241.14494.238": "https://plugins.jetbrains.com/files/10037/493010/CSVEditor-3.3.0-241.zip", "241.14494.240": "https://plugins.jetbrains.com/files/10037/493010/CSVEditor-3.3.0-241.zip", "241.14494.241": "https://plugins.jetbrains.com/files/10037/493010/CSVEditor-3.3.0-241.zip", - "241.14494.251": "https://plugins.jetbrains.com/files/10037/493010/CSVEditor-3.3.0-241.zip" + "241.14494.283": "https://plugins.jetbrains.com/files/10037/493010/CSVEditor-3.3.0-241.zip", + "241.14494.288": "https://plugins.jetbrains.com/files/10037/493010/CSVEditor-3.3.0-241.zip", + "241.14494.307": "https://plugins.jetbrains.com/files/10037/493010/CSVEditor-3.3.0-241.zip" }, "name": "csv-editor" }, @@ -288,8 +307,6 @@ ], "builds": { "233.13135.979": "https://plugins.jetbrains.com/files/12062/445740/keymap-vscode-233.11799.188.zip", - "233.14475.31": "https://plugins.jetbrains.com/files/12062/445740/keymap-vscode-233.11799.188.zip", - "233.14475.66": "https://plugins.jetbrains.com/files/12062/445740/keymap-vscode-233.11799.188.zip", "233.15026.24": "https://plugins.jetbrains.com/files/12062/445740/keymap-vscode-233.11799.188.zip", "241.14494.234": "https://plugins.jetbrains.com/files/12062/508223/keymap-vscode-241.14494.150.zip", "241.14494.235": "https://plugins.jetbrains.com/files/12062/508223/keymap-vscode-241.14494.150.zip", @@ -297,7 +314,9 @@ "241.14494.238": "https://plugins.jetbrains.com/files/12062/508223/keymap-vscode-241.14494.150.zip", "241.14494.240": "https://plugins.jetbrains.com/files/12062/508223/keymap-vscode-241.14494.150.zip", "241.14494.241": "https://plugins.jetbrains.com/files/12062/508223/keymap-vscode-241.14494.150.zip", - "241.14494.251": "https://plugins.jetbrains.com/files/12062/508223/keymap-vscode-241.14494.150.zip" + "241.14494.283": "https://plugins.jetbrains.com/files/12062/508223/keymap-vscode-241.14494.150.zip", + "241.14494.288": "https://plugins.jetbrains.com/files/12062/508223/keymap-vscode-241.14494.150.zip", + "241.14494.307": "https://plugins.jetbrains.com/files/12062/508223/keymap-vscode-241.14494.150.zip" }, "name": "vscode-keymap" }, @@ -319,8 +338,6 @@ ], "builds": { "233.13135.979": "https://plugins.jetbrains.com/files/12559/445772/keymap-eclipse-233.11799.165.zip", - "233.14475.31": "https://plugins.jetbrains.com/files/12559/445772/keymap-eclipse-233.11799.165.zip", - "233.14475.66": "https://plugins.jetbrains.com/files/12559/445772/keymap-eclipse-233.11799.165.zip", "233.15026.24": "https://plugins.jetbrains.com/files/12559/445772/keymap-eclipse-233.11799.165.zip", "241.14494.234": "https://plugins.jetbrains.com/files/12559/508216/keymap-eclipse-241.14494.150.zip", "241.14494.235": "https://plugins.jetbrains.com/files/12559/508216/keymap-eclipse-241.14494.150.zip", @@ -328,7 +345,9 @@ "241.14494.238": "https://plugins.jetbrains.com/files/12559/508216/keymap-eclipse-241.14494.150.zip", "241.14494.240": "https://plugins.jetbrains.com/files/12559/508216/keymap-eclipse-241.14494.150.zip", "241.14494.241": "https://plugins.jetbrains.com/files/12559/508216/keymap-eclipse-241.14494.150.zip", - "241.14494.251": "https://plugins.jetbrains.com/files/12559/508216/keymap-eclipse-241.14494.150.zip" + "241.14494.283": "https://plugins.jetbrains.com/files/12559/508216/keymap-eclipse-241.14494.150.zip", + "241.14494.288": "https://plugins.jetbrains.com/files/12559/508216/keymap-eclipse-241.14494.150.zip", + "241.14494.307": "https://plugins.jetbrains.com/files/12559/508216/keymap-eclipse-241.14494.150.zip" }, "name": "eclipse-keymap" }, @@ -350,8 +369,6 @@ ], "builds": { "233.13135.979": "https://plugins.jetbrains.com/files/13017/445774/keymap-visualStudio-233.11799.165.zip", - "233.14475.31": "https://plugins.jetbrains.com/files/13017/445774/keymap-visualStudio-233.11799.165.zip", - "233.14475.66": "https://plugins.jetbrains.com/files/13017/445774/keymap-visualStudio-233.11799.165.zip", "233.15026.24": "https://plugins.jetbrains.com/files/13017/445774/keymap-visualStudio-233.11799.165.zip", "241.14494.234": "https://plugins.jetbrains.com/files/13017/508253/keymap-visualStudio-241.14494.150.zip", "241.14494.235": "https://plugins.jetbrains.com/files/13017/508253/keymap-visualStudio-241.14494.150.zip", @@ -359,7 +376,9 @@ "241.14494.238": "https://plugins.jetbrains.com/files/13017/508253/keymap-visualStudio-241.14494.150.zip", "241.14494.240": "https://plugins.jetbrains.com/files/13017/508253/keymap-visualStudio-241.14494.150.zip", "241.14494.241": "https://plugins.jetbrains.com/files/13017/508253/keymap-visualStudio-241.14494.150.zip", - "241.14494.251": "https://plugins.jetbrains.com/files/13017/508253/keymap-visualStudio-241.14494.150.zip" + "241.14494.283": "https://plugins.jetbrains.com/files/13017/508253/keymap-visualStudio-241.14494.150.zip", + "241.14494.288": "https://plugins.jetbrains.com/files/13017/508253/keymap-visualStudio-241.14494.150.zip", + "241.14494.307": "https://plugins.jetbrains.com/files/13017/508253/keymap-visualStudio-241.14494.150.zip" }, "name": "visual-studio-keymap" }, @@ -381,8 +400,6 @@ ], "builds": { "233.13135.979": "https://plugins.jetbrains.com/files/14059/82616/darcula-pitch-black.jar", - "233.14475.31": "https://plugins.jetbrains.com/files/14059/82616/darcula-pitch-black.jar", - "233.14475.66": "https://plugins.jetbrains.com/files/14059/82616/darcula-pitch-black.jar", "233.15026.24": "https://plugins.jetbrains.com/files/14059/82616/darcula-pitch-black.jar", "241.14494.234": "https://plugins.jetbrains.com/files/14059/82616/darcula-pitch-black.jar", "241.14494.235": "https://plugins.jetbrains.com/files/14059/82616/darcula-pitch-black.jar", @@ -390,7 +407,9 @@ "241.14494.238": "https://plugins.jetbrains.com/files/14059/82616/darcula-pitch-black.jar", "241.14494.240": "https://plugins.jetbrains.com/files/14059/82616/darcula-pitch-black.jar", "241.14494.241": "https://plugins.jetbrains.com/files/14059/82616/darcula-pitch-black.jar", - "241.14494.251": "https://plugins.jetbrains.com/files/14059/82616/darcula-pitch-black.jar" + "241.14494.283": "https://plugins.jetbrains.com/files/14059/82616/darcula-pitch-black.jar", + "241.14494.288": "https://plugins.jetbrains.com/files/14059/82616/darcula-pitch-black.jar", + "241.14494.307": "https://plugins.jetbrains.com/files/14059/82616/darcula-pitch-black.jar" }, "name": "darcula-pitch-black" }, @@ -411,17 +430,17 @@ "webstorm" ], "builds": { - "233.13135.979": "https://plugins.jetbrains.com/files/17718/512366/github-copilot-intellij-1.5.1.5285.zip", - "233.14475.31": "https://plugins.jetbrains.com/files/17718/512366/github-copilot-intellij-1.5.1.5285.zip", - "233.14475.66": "https://plugins.jetbrains.com/files/17718/512366/github-copilot-intellij-1.5.1.5285.zip", - "233.15026.24": "https://plugins.jetbrains.com/files/17718/512366/github-copilot-intellij-1.5.1.5285.zip", - "241.14494.234": "https://plugins.jetbrains.com/files/17718/512366/github-copilot-intellij-1.5.1.5285.zip", - "241.14494.235": "https://plugins.jetbrains.com/files/17718/512366/github-copilot-intellij-1.5.1.5285.zip", - "241.14494.237": "https://plugins.jetbrains.com/files/17718/512366/github-copilot-intellij-1.5.1.5285.zip", - "241.14494.238": "https://plugins.jetbrains.com/files/17718/512366/github-copilot-intellij-1.5.1.5285.zip", - "241.14494.240": "https://plugins.jetbrains.com/files/17718/512366/github-copilot-intellij-1.5.1.5285.zip", - "241.14494.241": "https://plugins.jetbrains.com/files/17718/512366/github-copilot-intellij-1.5.1.5285.zip", - "241.14494.251": "https://plugins.jetbrains.com/files/17718/512366/github-copilot-intellij-1.5.1.5285.zip" + "233.13135.979": "https://plugins.jetbrains.com/files/17718/517133/github-copilot-intellij-1.5.2.5345.zip", + "233.15026.24": "https://plugins.jetbrains.com/files/17718/517133/github-copilot-intellij-1.5.2.5345.zip", + "241.14494.234": "https://plugins.jetbrains.com/files/17718/517133/github-copilot-intellij-1.5.2.5345.zip", + "241.14494.235": "https://plugins.jetbrains.com/files/17718/517133/github-copilot-intellij-1.5.2.5345.zip", + "241.14494.237": "https://plugins.jetbrains.com/files/17718/517133/github-copilot-intellij-1.5.2.5345.zip", + "241.14494.238": "https://plugins.jetbrains.com/files/17718/517133/github-copilot-intellij-1.5.2.5345.zip", + "241.14494.240": "https://plugins.jetbrains.com/files/17718/517133/github-copilot-intellij-1.5.2.5345.zip", + "241.14494.241": "https://plugins.jetbrains.com/files/17718/517133/github-copilot-intellij-1.5.2.5345.zip", + "241.14494.283": "https://plugins.jetbrains.com/files/17718/517133/github-copilot-intellij-1.5.2.5345.zip", + "241.14494.288": "https://plugins.jetbrains.com/files/17718/517133/github-copilot-intellij-1.5.2.5345.zip", + "241.14494.307": "https://plugins.jetbrains.com/files/17718/517133/github-copilot-intellij-1.5.2.5345.zip" }, "name": "github-copilot" }, @@ -443,8 +462,6 @@ ], "builds": { "233.13135.979": "https://plugins.jetbrains.com/files/18444/165585/NetBeans6.5Keymap.zip", - "233.14475.31": "https://plugins.jetbrains.com/files/18444/165585/NetBeans6.5Keymap.zip", - "233.14475.66": "https://plugins.jetbrains.com/files/18444/165585/NetBeans6.5Keymap.zip", "233.15026.24": "https://plugins.jetbrains.com/files/18444/165585/NetBeans6.5Keymap.zip", "241.14494.234": "https://plugins.jetbrains.com/files/18444/165585/NetBeans6.5Keymap.zip", "241.14494.235": "https://plugins.jetbrains.com/files/18444/165585/NetBeans6.5Keymap.zip", @@ -452,7 +469,9 @@ "241.14494.238": "https://plugins.jetbrains.com/files/18444/165585/NetBeans6.5Keymap.zip", "241.14494.240": "https://plugins.jetbrains.com/files/18444/165585/NetBeans6.5Keymap.zip", "241.14494.241": "https://plugins.jetbrains.com/files/18444/165585/NetBeans6.5Keymap.zip", - "241.14494.251": "https://plugins.jetbrains.com/files/18444/165585/NetBeans6.5Keymap.zip" + "241.14494.283": "https://plugins.jetbrains.com/files/18444/165585/NetBeans6.5Keymap.zip", + "241.14494.288": "https://plugins.jetbrains.com/files/18444/165585/NetBeans6.5Keymap.zip", + "241.14494.307": "https://plugins.jetbrains.com/files/18444/165585/NetBeans6.5Keymap.zip" }, "name": "netbeans-6-5-keymap" }, @@ -463,9 +482,9 @@ "rust-rover" ], "builds": { - "233.14475.31": "https://plugins.jetbrains.com/files/22407/515371/intellij-rust-233.25026.24.zip", "233.15026.24": "https://plugins.jetbrains.com/files/22407/515371/intellij-rust-233.25026.24.zip", - "241.14494.240": "https://plugins.jetbrains.com/files/22407/515370/intellij-rust-241.25026.24.zip" + "241.14494.240": "https://plugins.jetbrains.com/files/22407/515370/intellij-rust-241.25026.24.zip", + "241.14494.288": "https://plugins.jetbrains.com/files/22407/515370/intellij-rust-241.25026.24.zip" }, "name": "rust" } @@ -481,21 +500,20 @@ "https://plugins.jetbrains.com/files/13017/508253/keymap-visualStudio-241.14494.150.zip": "sha256-tNgt0vIkdCB/LcaSj58mT6cNlw4lytRo0cZSt7sIERU=", "https://plugins.jetbrains.com/files/14059/82616/darcula-pitch-black.jar": "sha256-eXInfAqY3yEZRXCAuv3KGldM1pNKEioNwPB0rIGgJFw=", "https://plugins.jetbrains.com/files/164/515255/IdeaVim-2.10.2-signed.zip": "sha256-FP6th8J3ymfTrwvJ3Ms7fsNPh3f9ab5ZVg5yPpKV/rY=", - "https://plugins.jetbrains.com/files/17718/512366/github-copilot-intellij-1.5.1.5285.zip": "sha256-lep8ZUOjbV0tsfO/yEWJiHWtwm639zxpc/7L9rCKSsU=", + "https://plugins.jetbrains.com/files/17718/517133/github-copilot-intellij-1.5.2.5345.zip": "sha256-BaBYXN8eulaJtJSKrz9bZ2Yn8029goSAUvjYU+BaiIU=", "https://plugins.jetbrains.com/files/18444/165585/NetBeans6.5Keymap.zip": "sha256-KrzZTKZMQqoEMw+vDUv2jjs0EX0leaPBkU8H/ecq/oI=", "https://plugins.jetbrains.com/files/22407/515370/intellij-rust-241.25026.24.zip": "sha256-tBPoO2EkPaWFZ/Gu3UAkZPy4opssWJQEVlz9GZUkNtQ=", "https://plugins.jetbrains.com/files/22407/515371/intellij-rust-233.25026.24.zip": "sha256-j4b4To8jY4orP87GpphHPtLKeAPDNXcLNSUlIXDDy2Q=", "https://plugins.jetbrains.com/files/631/513581/python-241.14494.240.zip": "sha256-pQP1LF/6uImQpBOpxUGE8KmmFh26kiC4YaYLAHnEc3o=", "https://plugins.jetbrains.com/files/6981/509027/ini-233.15026.15.zip": "sha256-6sTD+OFO/yA7m5o0XqoJKLcQ4zAFro7Iy7WNPfA49xM=", "https://plugins.jetbrains.com/files/6981/513562/ini-241.14494.240.zip": "sha256-QC42nC7mEE3X1cmKj8jkwzpDJzX7ZoOPEd9y6i8IuvM=", - "https://plugins.jetbrains.com/files/7219/514919/Symfony_Plugin-2023.1.267.zip": "sha256-zhnoxJgJJDgSnLdaNRrqS767YuvAzm8sXzhz9e2G0+8=", + "https://plugins.jetbrains.com/files/7219/518876/Symfony_Plugin-2023.1.268.zip": "sha256-mYEuFdSaxw9Lc8yNgPB0ty6mfxjKaAa/jY6v4E2Qo0Q=", "https://plugins.jetbrains.com/files/7320/507957/PHP_Annotations-10.0.0.zip": "sha256-JIZ6Iq3sOcAm8fBXnjRrG9dqCZuD/WajyVmn1JjYMBA=", - "https://plugins.jetbrains.com/files/7322/484110/python-ce-233.14475.9.zip": "sha256-YMB/ewCKE1F/JXI8iau9pKkv9D5D9a8OiTVukkzTocA=", "https://plugins.jetbrains.com/files/7322/502153/python-ce-233.14808.12.zip": "sha256-PUBR9krJ26QrL2jTus0b+uhzkEkT+lGnBKy1f4i/U+w=", "https://plugins.jetbrains.com/files/7322/513587/python-ce-241.14494.240.zip": "sha256-6YC/aoiTRLAh87C2v3k24BLBH/tsdTWuDK/CBv8y1QI=", "https://plugins.jetbrains.com/files/8182/466854/intellij-rust-233.15445.zip": "sha256-+Lc/avYBLpyIV63DlbhAJtieHDv4HdggqdGFDw9iqN0=", "https://plugins.jetbrains.com/files/8554/508289/featuresTrainer-241.14494.150.zip": "sha256-D2gF9bLAEFd1+6vZskiM2Eyl5e8hmyh/VHrmW2NociE=", - "https://plugins.jetbrains.com/files/8607/422943/NixIDEA-0.4.0.11.zip": "sha256-Dwitpu5yLPWx+IUilpN5iqnN8FkKgaxUNjroBEx5lkM=", + "https://plugins.jetbrains.com/files/8607/519418/NixIDEA-0.4.0.12.zip": "sha256-D2HFG2tQy719+baHjUyizoq67tv6lDZrX3s6HDlBRA0=", "https://plugins.jetbrains.com/files/9568/513582/go-plugin-241.14494.240.zip": "sha256-66Gx4XFn5DEZ/wCkN7IFQKtp+P0R9PoEAXmwOB97Q3A=" } } diff --git a/pkgs/applications/editors/vscode/extensions/vscode-utils.nix b/pkgs/applications/editors/vscode/extensions/vscode-utils.nix index 5712fe6714238..4c7fae48fbe04 100644 --- a/pkgs/applications/editors/vscode/extensions/vscode-utils.nix +++ b/pkgs/applications/editors/vscode/extensions/vscode-utils.nix @@ -32,6 +32,10 @@ let inherit configurePhase buildPhase dontPatchELF dontStrip; + # Some .vsix files contain other directories (e.g., `package`) that we don't use. + # If other directories are present but `sourceRoot` is unset, the unpacker phase fails. + sourceRoot = "extension"; + installPrefix = "share/vscode/extensions/${vscodeExtUniqueId}"; nativeBuildInputs = [ unzip ] ++ nativeBuildInputs; diff --git a/pkgs/applications/misc/jrnl/default.nix b/pkgs/applications/misc/jrnl/default.nix index 43d320a4c0435..1e8113765f12b 100644 --- a/pkgs/applications/misc/jrnl/default.nix +++ b/pkgs/applications/misc/jrnl/default.nix @@ -1,27 +1,32 @@ -{ lib -, fetchFromGitHub -, python3 -, testers -, jrnl +{ + lib, + fetchFromGitHub, + python3, + testers, + jrnl, }: python3.pkgs.buildPythonApplication rec { pname = "jrnl"; version = "4.1"; - format = "pyproject"; + pyproject = true; src = fetchFromGitHub { owner = "jrnl-org"; - repo = pname; + repo = "jrnl"; rev = "refs/tags/v${version}"; hash = "sha256-DtujXSDJWnOrHjVgJEJNKJMhSrNBHlR2hvHeHLSIF2o="; }; - nativeBuildInputs = with python3.pkgs; [ - poetry-core - ]; + postPatch = '' + # Support pytest_bdd 7.1.2 and later, https://github.com/jrnl-org/jrnl/pull/1878 + substituteInPlace tests/lib/when_steps.py \ + --replace-fail "from pytest_bdd.steps import inject_fixture" "from pytest_bdd.compat import inject_fixture" + ''; - propagatedBuildInputs = with python3.pkgs; [ + build-system = with python3.pkgs; [ poetry-core ]; + + dependencies = with python3.pkgs; [ asteval colorama cryptography @@ -43,14 +48,11 @@ python3.pkgs.buildPythonApplication rec { toml ]; - preCheck = '' export HOME=$(mktemp -d); ''; - pythonImportsCheck = [ - "jrnl" - ]; + pythonImportsCheck = [ "jrnl" ]; passthru.tests.version = testers.testVersion { package = jrnl; @@ -58,11 +60,14 @@ python3.pkgs.buildPythonApplication rec { }; meta = with lib; { - changelog = "https://github.com/jrnl-org/jrnl/releases/tag/v${version}"; - description = "Simple command line journal application that stores your journal in a plain text file"; + description = "Command line journal application that stores your journal in a plain text file"; homepage = "https://jrnl.sh/"; + changelog = "https://github.com/jrnl-org/jrnl/releases/tag/v${version}"; license = licenses.gpl3Only; - maintainers = with maintainers; [ bryanasdev000 zalakain ]; + maintainers = with maintainers; [ + bryanasdev000 + zalakain + ]; mainProgram = "jrnl"; }; } diff --git a/pkgs/applications/misc/prusa-slicer/default.nix b/pkgs/applications/misc/prusa-slicer/default.nix index 8b86af91934e5..7952eadea68fa 100644 --- a/pkgs/applications/misc/prusa-slicer/default.nix +++ b/pkgs/applications/misc/prusa-slicer/default.nix @@ -66,12 +66,12 @@ let in stdenv.mkDerivation (finalAttrs: { pname = "prusa-slicer"; - version = "2.7.3"; + version = "2.7.4"; src = fetchFromGitHub { owner = "prusa3d"; repo = "PrusaSlicer"; - hash = "sha256-pV9KQlZoCQZWi12VUKntKzFUuZgGpDoh1aNMoAHTbZI="; + hash = "sha256-g2I2l6i/8p8werDs4mDI/lGeDQsma4WSB9vT6OB2LGg="; rev = "version_${finalAttrs.version}"; }; diff --git a/pkgs/applications/networking/browsers/chromium/upstream-info.nix b/pkgs/applications/networking/browsers/chromium/upstream-info.nix index d6f71c277692c..2597d293ac63a 100644 --- a/pkgs/applications/networking/browsers/chromium/upstream-info.nix +++ b/pkgs/applications/networking/browsers/chromium/upstream-info.nix @@ -1,11 +1,11 @@ { stable = { chromedriver = { - hash_darwin = "sha256-sB6gH5k5zK1IIctBTXQpxlgmLEoIatcLDYO+WIFaYxA="; + hash_darwin = "sha256-PmLV++FK6aCvdhNNhb2ZAmRLumr+VRFvN+7IByieEZk="; hash_darwin_aarch64 = - "sha256-sikyGQG0Y14eNjT3f/Z50cPmm38T58X7zQIGopXOHOs="; - hash_linux = "sha256-2WZmRXyvxN3hXeOoPQXL6lU6Xki9iUmTdETRxOkIYD0="; - version = "123.0.6312.86"; + "sha256-6Ys1EMSLmJNNaWdPeQiCT+bC0H7ABInVNzwXorGavn4="; + hash_linux = "sha256-iimq37dcEcY2suW73a6lhgHuNaoqtzbAZCHkQP9ro/Y="; + version = "123.0.6312.122"; }; deps = { gn = { @@ -15,9 +15,9 @@ version = "2024-02-19"; }; }; - hash = "sha256-C17TPDVFW3+cHO1tcEghjI6H59TVPm9hdCrF2s5NI68="; - hash_deb_amd64 = "sha256-zmnBi4UBx52fQKHHJuUaCMuDJl7ntQzhG6h/yH7YPNU="; - version = "123.0.6312.105"; + hash = "sha256-7H7h621AHPyhFYbaVFO892TtS+SP3Qu7cYUVk3ICL14="; + hash_deb_amd64 = "sha256-tNkO1mPZg1xltBfoWeNhLekITtZV/WNgu//i2DJb17c="; + version = "123.0.6312.122"; }; ungoogled-chromium = { deps = { @@ -28,12 +28,12 @@ version = "2024-02-19"; }; ungoogled-patches = { - hash = "sha256-81SoZBOAAV0cAVzz3yOzBstRW3vWjmkFoFNjYdPnme4="; - rev = "123.0.6312.105-1"; + hash = "sha256-ojKIAkJB/gfg6scCxUYNAGx4lsquAaCySBDcUCFLqSU="; + rev = "d5773b0fb696ef107cc6df6a94cbe732c9e905f9"; }; }; - hash = "sha256-C17TPDVFW3+cHO1tcEghjI6H59TVPm9hdCrF2s5NI68="; - hash_deb_amd64 = "sha256-zmnBi4UBx52fQKHHJuUaCMuDJl7ntQzhG6h/yH7YPNU="; - version = "123.0.6312.105"; + hash = "sha256-7H7h621AHPyhFYbaVFO892TtS+SP3Qu7cYUVk3ICL14="; + hash_deb_amd64 = "sha256-tNkO1mPZg1xltBfoWeNhLekITtZV/WNgu//i2DJb17c="; + version = "123.0.6312.122"; }; } diff --git a/pkgs/applications/networking/cluster/terraform/default.nix b/pkgs/applications/networking/cluster/terraform/default.nix index 94b7fe50c5a94..f32df7ccf8683 100644 --- a/pkgs/applications/networking/cluster/terraform/default.nix +++ b/pkgs/applications/networking/cluster/terraform/default.nix @@ -31,7 +31,7 @@ let postConfigure = '' # speakeasy hardcodes /bin/stty https://github.com/bgentry/speakeasy/issues/22 substituteInPlace vendor/github.com/bgentry/speakeasy/speakeasy_unix.go \ - --replace "/bin/stty" "${coreutils}/bin/stty" + --replace-fail "/bin/stty" "${coreutils}/bin/stty" ''; nativeBuildInputs = [ installShellFiles ]; diff --git a/pkgs/applications/networking/instant-messengers/discord/default.nix b/pkgs/applications/networking/instant-messengers/discord/default.nix index f9604c2ce1664..f2d0e55e18716 100644 --- a/pkgs/applications/networking/instant-messengers/discord/default.nix +++ b/pkgs/applications/networking/instant-messengers/discord/default.nix @@ -2,14 +2,14 @@ let versions = if stdenv.isLinux then { - stable = "0.0.47"; - ptb = "0.0.76"; - canary = "0.0.326"; - development = "0.0.16"; + stable = "0.0.49"; + ptb = "0.0.78"; + canary = "0.0.346"; + development = "0.0.17"; } else { - stable = "0.0.298"; - ptb = "0.0.105"; - canary = "0.0.451"; + stable = "0.0.300"; + ptb = "0.0.107"; + canary = "0.0.468"; development = "0.0.39"; }; version = versions.${branch}; @@ -17,33 +17,33 @@ let x86_64-linux = { stable = fetchurl { url = "https://dl.discordapp.net/apps/linux/${version}/discord-${version}.tar.gz"; - hash = "sha256-4cELs7K7DAfzbA0/BwAkKraTD7z58jzOf1J3Our3CwM="; + hash = "sha256-rVSYAkTZTlurnbUeYJFCgsPcsCqjJ1bJneQQiyhmvwQ="; }; ptb = fetchurl { url = "https://dl-ptb.discordapp.net/apps/linux/${version}/discord-ptb-${version}.tar.gz"; - hash = "sha256-Gj6OLzkHrEQ2CeEQpICaAh1m13DpM2cpNVsebBJ0MVc="; + hash = "sha256-Fp94BsR6Fzy4tV+c5ToP9GKg6GC/TryGvHWLupew4Z8="; }; canary = fetchurl { url = "https://dl-canary.discordapp.net/apps/linux/${version}/discord-canary-${version}.tar.gz"; - hash = "sha256-MxiFhd7tLvL1tBRc451qjCFZlmGM8IolckExp0sR3y8="; + hash = "sha256-/FBVo3ptZk2YQPoq+VpyxMlSWYlVb8ChpKW5YH/BM7U="; }; development = fetchurl { url = "https://dl-development.discordapp.net/apps/linux/${version}/discord-development-${version}.tar.gz"; - hash = "sha256-6QImWsNmL2JveB2QJ1MyBxkVEQfdPvKEdenRPjURptI="; + hash = "sha256-AmbaMVi/or+9QLuQO5u5btgKeKdrfo7bzZgGLILwgqo="; }; }; x86_64-darwin = { stable = fetchurl { url = "https://dl.discordapp.net/apps/osx/${version}/Discord.dmg"; - hash = "sha256-GlTebQ16sRgHdpB9+Jw7dn+KVZ6qIrAmWBSypTcoFmE="; + hash = "sha256-f9YIlzRESzzxtD9/us1DY5acu2HYo+UrwS7GWk9RwCk="; }; ptb = fetchurl { url = "https://dl-ptb.discordapp.net/apps/osx/${version}/DiscordPTB.dmg"; - hash = "sha256-X5bYO1D5eWTYh22v4R274OhjTsVv70XCyrMqeRlt0Bo="; + hash = "sha256-etxXrO9Ksacbdes3DT1Tm4kKD/t40jGUeSAegdexRqc="; }; canary = fetchurl { url = "https://dl-canary.discordapp.net/apps/osx/${version}/DiscordCanary.dmg"; - hash = "sha256-psVm0eXDHVBGNb/R0kHbvz/4ilyIg4xlOj/CwkwlvgM="; + hash = "sha256-UOoXDwAa5pFukqTCmUfM89QVK5jB13id8ek/gwWajMM="; }; development = fetchurl { url = "https://dl-development.discordapp.net/apps/osx/${version}/DiscordDevelopment.dmg"; diff --git a/pkgs/applications/version-management/cgit/common.nix b/pkgs/applications/version-management/cgit/common.nix index 0cbc04b7bcc23..b0ed32eb02227 100644 --- a/pkgs/applications/version-management/cgit/common.nix +++ b/pkgs/applications/version-management/cgit/common.nix @@ -12,6 +12,8 @@ stdenv.mkDerivation { inherit pname version src gitSrc; + separateDebugInfo = true; + nativeBuildInputs = [ pkg-config asciidoc ] ++ (with python3Packages; [ python wrapPython ]); diff --git a/pkgs/applications/version-management/git-repo/default.nix b/pkgs/applications/version-management/git-repo/default.nix index e989e03ca1cfb..a7d0f49344a04 100644 --- a/pkgs/applications/version-management/git-repo/default.nix +++ b/pkgs/applications/version-management/git-repo/default.nix @@ -4,13 +4,13 @@ stdenv.mkDerivation rec { pname = "git-repo"; - version = "2.39"; + version = "2.45"; src = fetchFromGitHub { owner = "android"; repo = "tools_repo"; rev = "v${version}"; - hash = "sha256-Qw0x/YiXMDrlTy6boembfqVRvEYiMWOALJtaMrr7/WI="; + hash = "sha256-f765TcOHL8wdPa9qSmGegofjCXx1tF/K5bRQnYQcYVc="; }; # Fix 'NameError: name 'ssl' is not defined' diff --git a/pkgs/applications/version-management/git-repo/import-ssl-module.patch b/pkgs/applications/version-management/git-repo/import-ssl-module.patch index efc3d2b1f8a5e..43e879a8ba174 100644 --- a/pkgs/applications/version-management/git-repo/import-ssl-module.patch +++ b/pkgs/applications/version-management/git-repo/import-ssl-module.patch @@ -18,11 +18,13 @@ diff --git a/repo b/repo index 8b05def..f394b3e 100755 --- a/repo +++ b/repo -@@ -236,6 +236,7 @@ import optparse +@@ -236,8 +236,9 @@ import optparse import re import shutil import stat +import ssl + import urllib.error + import urllib.request if sys.version_info[0] == 3: import urllib.request diff --git a/pkgs/by-name/as/asahi-bless/package.nix b/pkgs/by-name/as/asahi-bless/package.nix new file mode 100644 index 0000000000000..96943722a3c52 --- /dev/null +++ b/pkgs/by-name/as/asahi-bless/package.nix @@ -0,0 +1,26 @@ +{ lib +, fetchCrate +, rustPlatform +}: + +rustPlatform.buildRustPackage rec { + pname = "asahi-bless"; + version = "0.3.0"; + + src = fetchCrate { + inherit pname version; + hash = "sha256-pgl424SqeHODsjGwNRJtVHT6sKRlYxlXl3esEKK02jc="; + }; + + cargoHash = "sha256-ilblP8nqb/eY0+9Iua298M7NQKv+IwtdliGd9ZYAVaM="; + cargoDepsName = pname; + + meta = with lib; { + description = "A tool to select active boot partition on ARM Macs"; + homepage = "https://crates.io/crates/asahi-bless"; + license = licenses.mit; + maintainers = with maintainers; [ lukaslihotzki ]; + mainProgram = "asahi-bless"; + platforms = platforms.linux; + }; +} diff --git a/pkgs/by-name/as/asahi-btsync/package.nix b/pkgs/by-name/as/asahi-btsync/package.nix new file mode 100644 index 0000000000000..2b01e757086b8 --- /dev/null +++ b/pkgs/by-name/as/asahi-btsync/package.nix @@ -0,0 +1,26 @@ +{ lib +, fetchCrate +, rustPlatform +}: + +rustPlatform.buildRustPackage rec { + pname = "asahi-btsync"; + version = "0.2.0"; + + src = fetchCrate { + inherit pname version; + hash = "sha256-jp05WcwY1cWh4mBQj+3jRCZoG32OhDvTB84hOAGemX8="; + }; + + cargoHash = "sha256-XsgWqdwb0DDsK6HkaoVGQB/mm1U1TVzJM5q/gt9GryA="; + cargoDepsName = pname; + + meta = with lib; { + description = "A tool to sync Bluetooth pairing keys with macos on ARM Macs"; + homepage = "https://crates.io/crates/asahi-btsync"; + license = licenses.mit; + maintainers = with maintainers; [ lukaslihotzki ]; + mainProgram = "asahi-btsync"; + platforms = platforms.linux; + }; +} diff --git a/pkgs/by-name/as/asahi-nvram/package.nix b/pkgs/by-name/as/asahi-nvram/package.nix new file mode 100644 index 0000000000000..05f37e9c5cce7 --- /dev/null +++ b/pkgs/by-name/as/asahi-nvram/package.nix @@ -0,0 +1,26 @@ +{ lib +, fetchCrate +, rustPlatform +}: + +rustPlatform.buildRustPackage rec { + pname = "asahi-nvram"; + version = "0.2.1"; + + src = fetchCrate { + inherit pname version; + hash = "sha256-bFUFjHVTYj0eUmhijraOdeCvAt2UGX8+yyvooYN1Uo0="; + }; + + cargoHash = "sha256-WhySIQew8xxdwXLWkpvTYQZFiqCEPjEAjr7NVxfjDkU="; + cargoDepsName = pname; + + meta = with lib; { + description = "A tool to read and write nvram variables on ARM Macs"; + homepage = "https://crates.io/crates/asahi-nvram"; + license = licenses.mit; + maintainers = with maintainers; [ lukaslihotzki ]; + mainProgram = "asahi-nvram"; + platforms = platforms.linux; + }; +} diff --git a/pkgs/by-name/as/asahi-wifisync/package.nix b/pkgs/by-name/as/asahi-wifisync/package.nix new file mode 100644 index 0000000000000..deeac6d4b17eb --- /dev/null +++ b/pkgs/by-name/as/asahi-wifisync/package.nix @@ -0,0 +1,26 @@ +{ lib +, fetchCrate +, rustPlatform +}: + +rustPlatform.buildRustPackage rec { + pname = "asahi-wifisync"; + version = "0.2.0"; + + src = fetchCrate { + inherit pname version; + hash = "sha256-wKd6rUUnegvl6cHODVQlllaOXuAGlmwx9gr73I/2l/c="; + }; + + cargoHash = "sha256-UF1T0uAFO/ydTWigYXOP9Ju1qgV1oBmJuXSq4faSzJM="; + cargoDepsName = pname; + + meta = with lib; { + description = "A tool to sync Wifi passwords with macos on ARM Macs"; + homepage = "https://crates.io/crates/asahi-wifisync"; + license = licenses.mit; + maintainers = with maintainers; [ lukaslihotzki ]; + mainProgram = "asahi-wifisync"; + platforms = platforms.linux; + }; +} diff --git a/pkgs/by-name/bi/bitbake-language-server/package.nix b/pkgs/by-name/bi/bitbake-language-server/package.nix index e73c78124ac27..3789d3bd9ba22 100644 --- a/pkgs/by-name/bi/bitbake-language-server/package.nix +++ b/pkgs/by-name/bi/bitbake-language-server/package.nix @@ -1,19 +1,20 @@ { lib , nix-update-script , python3 +, oelint-adv , fetchFromGitHub }: python3.pkgs.buildPythonApplication rec { pname = "bitbake-language-server"; - version = "0.0.8"; + version = "0.0.14"; format = "pyproject"; src = fetchFromGitHub { owner = "Freed-Wu"; repo = pname; rev = version; - hash = "sha256-WJpa2LP95vrJG/OjiLSx8zEPO5ZOw66M5s3r2dufQJA="; + hash = "sha256-aGj9lW420A+iTQWSCdIITAJj3p89VUkPvdhQ/0M6uXo="; }; nativeBuildInputs = with python3.pkgs; [ @@ -22,18 +23,17 @@ python3.pkgs.buildPythonApplication rec { ]; propagatedBuildInputs = with python3.pkgs; [ - oelint-parser pygls - ]; + ] ++ [ oelint-adv ]; passthru.updateScript = nix-update-script { }; - meta = with lib; { + meta = { description = "Language server for bitbake"; mainProgram = "bitbake-language-server"; homepage = "https://github.com/Freed-Wu/bitbake-language-server"; - changelog = "https://github.com/Freed-Wu/bitbake-language-server/releases/tag/v${version}"; - license = licenses.gpl3; - maintainers = with maintainers; [ otavio ]; + changelog = "https://github.com/Freed-Wu/bitbake-language-server/releases/tag/${version}"; + license = lib.licenses.gpl3; + maintainers = [ lib.maintainers.otavio ]; }; } diff --git a/pkgs/by-name/de/deltatouch/package.nix b/pkgs/by-name/de/deltatouch/package.nix new file mode 100644 index 0000000000000..db6ba129e219d --- /dev/null +++ b/pkgs/by-name/de/deltatouch/package.nix @@ -0,0 +1,91 @@ +{ lib +, stdenv +, fetchFromGitea +, fetchpatch +, cmake +, intltool +, libdeltachat +, lomiri +, qt5 +, quirc +}: + +stdenv.mkDerivation (finalAttrs: { + pname = "deltatouch"; + version = "1.4.0"; + + src = fetchFromGitea { + domain = "codeberg.org"; + owner = "lk108"; + repo = "deltatouch"; + rev = "v${finalAttrs.version}"; + hash = "sha256-tqcQmFmF8Z9smVMfaXOmXQ3Uw41bUcU4iUi8fxBlg8U="; + fetchSubmodules = true; + }; + + + patches = [ + (fetchpatch { + name = "0001-deltatouch-Fix-localisation.patch"; + url = "https://codeberg.org/lk108/deltatouch/commit/dcfdd8a0fca5fff10d0383f77f4c0cbea302de00.patch"; + hash = "sha256-RRjHG/xKtj757ZP2SY0GtWwh66kkTWoICV1vDkFAw3k="; + }) + ]; + + nativeBuildInputs = [ + qt5.wrapQtAppsHook + intltool + cmake + ]; + + buildInputs = [ + qt5.qtbase + qt5.qtwebengine + qt5.qtquickcontrols2 + lomiri.lomiri-ui-toolkit + lomiri.lomiri-ui-extras + lomiri.lomiri-api + lomiri.lomiri-indicator-network # Lomiri.Connectivity module + lomiri.qqc2-suru-style + ]; + + postPatch = '' + # Fix all sorts of install locations + substituteInPlace CMakeLists.txt \ + --replace-fail 'set(DATA_DIR /)' 'set(DATA_DIR ''${CMAKE_INSTALL_DATAROOTDIR})' \ + --replace-fail 'RUNTIME DESTINATION ''${CMAKE_INSTALL_PREFIX}' 'RUNTIME DESTINATION ''${CMAKE_INSTALL_BINDIR}' \ + --replace-fail 'assets/logo.svg DESTINATION assets' 'assets/logo.svg DESTINATION ''${CMAKE_INSTALL_DATAROOTDIR}/icons/hicolor/scalable/apps RENAME deltatouch.svg' \ + --replace-fail "\''${DESKTOP_FILE_NAME} DESTINATION \''${DATA_DIR}" "\''${DESKTOP_FILE_NAME} DESTINATION \''${CMAKE_INSTALL_DATAROOTDIR}/applications" + + substituteInPlace plugins/DeltaHandler/CMakeLists.txt plugins/DTWebEngineProfile/CMakeLists.txt \ + --replace-fail 'set(QT_IMPORTS_DIR "/lib/''${ARCH_TRIPLET}")' 'set(QT_IMPORTS_DIR "${placeholder "out"}/${qt5.qtbase.qtQmlPrefix}")' + + # Fix import of library dependencies + substituteInPlace plugins/DeltaHandler/CMakeLists.txt \ + --replace-fail 'IMPORTED_LOCATION "''${CMAKE_CURRENT_BINARY_DIR}/libdeltachat.so"' 'IMPORTED_LOCATION "${lib.getLib libdeltachat}/lib/libdeltachat.so"' \ + --replace-fail 'IMPORTED_LOCATION "''${CMAKE_CURRENT_BINARY_DIR}/libquirc.so.1.2"' 'IMPORTED_LOCATION "${lib.getLib quirc}/lib/libquirc.so"' + + # Fix icon reference in desktop file + substituteInPlace deltatouch.desktop.in \ + --replace-fail 'Icon=assets/logo.svg' 'Icon=deltatouch' + ''; + + postInstall = '' + # Remove clickable metadata & helpers from out + rm $out/{manifest.json,share/push*} + ''; + + meta = with lib; { + changelog = "https://codeberg.org/lk108/deltatouch/src/commit/${finalAttrs.src.rev}/CHANGELOG"; + description = "Messaging app for Ubuntu Touch, powered by Delta Chat core"; + longDescription = '' + DeltaTouch is a messenger for Ubuntu Touch based on Delta Chat core. + Delta Chat works over email. + ''; + homepage = "https://codeberg.org/lk108/deltatouch"; + license = licenses.gpl3Plus; + maintainers = with maintainers; [ link2xt ]; + mainProgram = "deltatouch"; + platforms = platforms.linux; + }; +}) diff --git a/pkgs/by-name/el/elasticsearch-curator/package.nix b/pkgs/by-name/el/elasticsearch-curator/package.nix index 3e12c03cbece8..6a142aeb1ac5b 100644 --- a/pkgs/by-name/el/elasticsearch-curator/package.nix +++ b/pkgs/by-name/el/elasticsearch-curator/package.nix @@ -1,26 +1,25 @@ -{ lib -, elasticsearch-curator -, fetchFromGitHub -, nix-update-script -, python3 -, testers +{ + lib, + elasticsearch-curator, + fetchFromGitHub, + nix-update-script, + python3, + testers, }: python3.pkgs.buildPythonApplication rec { pname = "elasticsearch-curator"; - version = "8.0.12"; + version = "8.0.15"; format = "pyproject"; src = fetchFromGitHub { owner = "elastic"; repo = "curator"; rev = "refs/tags/v${version}"; - hash = "sha256-CU/8l5607eKodcdpMKu0Wdlg+K6YnFX6uoDju12NDR0="; + hash = "sha256-pW928jT9oL76RJuJgH7nhCvgWPzXixzqBKVYsaJy9xw="; }; - build-system = with python3.pkgs; [ - hatchling - ]; + build-system = with python3.pkgs; [ hatchling ]; dependencies = with python3.pkgs; [ certifi diff --git a/pkgs/by-name/me/mermaid-cli/package.nix b/pkgs/by-name/me/mermaid-cli/package.nix index a45930287a506..a299e69bc69e7 100644 --- a/pkgs/by-name/me/mermaid-cli/package.nix +++ b/pkgs/by-name/me/mermaid-cli/package.nix @@ -11,18 +11,18 @@ stdenv.mkDerivation rec { pname = "mermaid-cli"; - version = "10.4.0"; + version = "10.8.0"; src = fetchFromGitHub { owner = "mermaid-js"; repo = "mermaid-cli"; rev = version; - hash = "sha256-mzBN/Hg/03+jYyoAHvjx33HC46ZA6dtHmiSnaExCRR0="; + hash = "sha256-nCLLv8QXx9N4WiUFw3WB+Rpfd4H4oCFa1ac01al+ovY="; }; offlineCache = fetchYarnDeps { yarnLock = "${src}/yarn.lock"; - hash = "sha256-RQsRGzkuPgGVuEpF5lzv26XKMPLX2NrsjVkGMMkCbO4="; + hash = "sha256-thZxaa7S3vlS1Ws+G5dklun+ISCV908p1Ov7qb8fP3c="; }; nativeBuildInputs = [ diff --git a/pkgs/by-name/mo/movim/package.nix b/pkgs/by-name/mo/movim/package.nix index 600af837b1071..6380baf3d46fd 100644 --- a/pkgs/by-name/mo/movim/package.nix +++ b/pkgs/by-name/mo/movim/package.nix @@ -1,20 +1,51 @@ { lib +, fetchpatch , fetchFromGitHub +, dash , php , phpCfg ? null , withPgsql ? true # “strongly recommended” according to docs , withMysql ? false +, minifyStaticFiles ? false # default files are often not minified +, parallel +, esbuild +, lightningcss +, scour +, nixosTests }: +let + defaultMinifyOpts = { + script = { + enable = false; + target = "es2021"; + }; + style = { + enable = false; + browserslist = "defaults, Firefox ESR, last 20 Firefox major versions, last 20 Chrome major versions, last 3 Safari major versions, last 1 KaiOS version, and supports css-variables"; + }; + svg = { + enable = false; + }; + }; + + minify = lib.recursiveUpdate defaultMinifyOpts + (if lib.isBool minifyStaticFiles && minifyStaticFiles then + { script.enable = true; style.enable = true; svg.enable = true; } + else if lib.isAttrs minifyStaticFiles then + lib.filterAttrsRecursive (_: v: v != null) minifyStaticFiles + else + { }); +in php.buildComposerProject (finalAttrs: { pname = "movim"; - version = "0.23"; + version = "0.23.0.20240328"; src = fetchFromGitHub { owner = "movim"; repo = "movim"; - rev = "v${finalAttrs.version}"; - hash = "sha256-9MBe2IRYxvUuCc5m7ajvIlBU7YVm4A3RABlOOIjpKoM="; + rev = "c3a43cd7e3a1a3a6efd595470e6a85b2ec578cba"; + hash = "sha256-x0C4w3SRP3NMOhGSZOQALk6PNWUre4MvFW5cESr8Wvk="; }; php = php.buildEnv ({ @@ -28,16 +59,98 @@ php.buildComposerProject (finalAttrs: { extraConfig = phpCfg; }); + nativeBuildInputs = + lib.optional (lib.any (x: x.enable) (lib.attrValues minify)) parallel + ++ lib.optional minify.script.enable esbuild + ++ lib.optional minify.style.enable lightningcss + ++ lib.optional minify.svg.enable scour; + # no listed license # pinned commonmark composerStrictValidation = false; - vendorHash = "sha256-PBoJbVuF0Qy7nNlL4yx446ivlZpPYNIai78yC0wWkCM="; + vendorHash = "sha256-RFIi1I+gcagRgkDpgQeR1oGJeBGA7z9q3DCfW+ZDr2Y="; + + postPatch = '' + # Our modules are already wrapped, removes missing *.so warnings; + # replacing `$configuration` with actually-used flags. + substituteInPlace src/Movim/Daemon/Session.php \ + --replace-fail "exec php ' . \$configuration " "exec php -dopcache.enable=1 -dopcache.enable_cli=1 ' " + + # Point to PHP + PHP INI in the Nix store + substituteInPlace src/Movim/{Console/DaemonCommand.php,Daemon/Session.php} \ + --replace-fail "exec php " "exec ${lib.getExe finalAttrs.php} " + substituteInPlace src/Movim/Console/DaemonCommand.php \ + --replace-fail "<info>php vendor/bin/phinx migrate</info>" \ + "<info>${lib.getBin finalAttrs.php} vendor/bin/phinx migrate</info>" \ + --replace-fail "<info>php daemon.php setAdmin {jid}</info>" \ + "<info>${finalAttrs.meta.mainProgram} setAdmin {jid}</info>" + + # BUGFIX: Imagick API Changes for 7.x+ + # See additionally: https://github.com/movim/movim/pull/1122 + substituteInPlace src/Movim/Image.php \ + --replace-fail "Imagick::ALPHACHANNEL_REMOVE" "Imagick::ALPHACHANNEL_OFF" \ + --replace-fail "Imagick::ALPHACHANNEL_ACTIVATE" "Imagick::ALPHACHANNEL_ON" + ''; + + preBuild = lib.optionalString minify.script.enable '' + find ./public -type f -iname "*.js" \ + | parallel ${lib.escapeShellArgs [ + "--will-cite" + "-j $NIX_BUILD_CORES" + '' + tmp="$(mktemp)" + esbuild {} --minify --target=${lib.escapeShellArg minify.script.target} --outfile=$tmp + [[ "$(stat -c %s $tmp)" -lt "$(stat -c %s {})" ]] && mv $tmp {} + '' + ]} + '' + lib.optionalString minify.style.enable '' + export BROWSERLIST=${lib.escapeShellArg minify.style.browserslist} + find ./public -type f -iname "*.css" \ + | parallel ${lib.escapeShellArgs [ + "--will-cite" + "-j $NIX_BUILD_CORES" + '' + tmp="$(mktemp)" + lightningcss {} --minify --browserslist --output-file=$tmp + [[ "$(stat -c %s $tmp)" -lt "$(stat -c %s {})" ]] && mv $tmp {} + '' + ]} + '' + lib.optionalString minify.svg.enable '' + find ./public -type f -iname "*.svg" -a -not -path "*/emojis/*" \ + | parallel ${lib.escapeShellArgs [ + "--will-cite" + "-j $NIX_BUILD_CORES" + '' + tmp="$(mktemp)" + scour -i {} -o $tmp --disable-style-to-xml --enable-comment-stripping --enable-viewboxing --indent=tab + [[ "$(stat -c %s $tmp)" -lt "$(stat -c %s {})" ]] && mv $tmp {} + '' + ]} + ''; + + postInstall = '' + mkdir -p $out/bin + echo "#!${lib.getExe dash}" > $out/bin/movim + echo "${lib.getExe finalAttrs.php} $out/share/php/${finalAttrs.pname}/daemon.php \"\$@\"" >> $out/bin/movim + chmod +x $out/bin/movim + + mkdir -p $out/share/{bash-completion/completion,fish/vendor_completions.d,zsh/site-functions} + $out/bin/movim completion bash | sed "s/daemon.php/movim/g" > $out/share/bash-completion/completion/movim.bash + $out/bin/movim completion fish | sed "s/daemon.php/movim/g" > $out/share/fish/vendor_completions.d/movim.fish + $out/bin/movim completion zsh | sed "s/daemon.php/movim/g" > $out/share/zsh/site-functions/_movim + chmod +x $out/share/{bash-completion/completion/movim.bash,fish/vendor_completions.d/movim.fish,zsh/site-functions/_movim} + ''; + + passthru = { + tests = { inherit (nixosTests) movim; }; + }; meta = { description = "a federated blogging & chat platform that acts as a web front end for the XMPP protocol"; homepage = "https://movim.eu"; license = lib.licenses.agpl3Plus; maintainers = with lib.maintainers; [ toastal ]; + mainProgram = "movim"; }; }) diff --git a/pkgs/by-name/oe/oelint-adv/package.nix b/pkgs/by-name/oe/oelint-adv/package.nix index 69686695b05e8..06894e166efec 100644 --- a/pkgs/by-name/oe/oelint-adv/package.nix +++ b/pkgs/by-name/oe/oelint-adv/package.nix @@ -6,17 +6,18 @@ python3.pkgs.buildPythonApplication rec { pname = "oelint-adv"; - version = "4.4.5"; + version = "5.1.2"; format = "setuptools"; src = fetchPypi { inherit version; pname = "oelint_adv"; - hash = "sha256-NRTfWHtItwjZi3O26MzH8GtetCkj7egZa3OArs+Q2SY="; + hash = "sha256-7lrjytvcOnZZ8ezhWKng7OahqwsW95VkDt8B6NMriR0="; }; propagatedBuildInputs = with python3.pkgs; [ anytree + argcomplete colorama oelint-parser urllib3 diff --git a/pkgs/by-name/uu/uuu/package.nix b/pkgs/by-name/uu/uuu/package.nix index 235acc1c632f6..4166d99d34fb5 100755 --- a/pkgs/by-name/uu/uuu/package.nix +++ b/pkgs/by-name/uu/uuu/package.nix @@ -10,19 +10,20 @@ , bzip2 , libusb1 , openssl +, tinyxml-2 , zlib , zstd }: stdenv.mkDerivation (finalAttrs: { pname = "uuu"; - version = "1.5.141"; + version = "1.5.179"; src = fetchFromGitHub { owner = "nxp-imx"; repo = "mfgtools"; rev = "uuu_${finalAttrs.version}"; - hash = "sha256-N5L6k2oVXfnER7JRoX0JtzgEhb/vFMexu7hUKQhmcoE="; + hash = "sha256-W0jFwivjD19SQmXz2G7cIvWh1zkyN4AXh3bfqF302MA="; }; passthru.updateScript = nix-update-script { @@ -39,6 +40,7 @@ stdenv.mkDerivation (finalAttrs: { bzip2 libusb1 openssl + tinyxml-2 zlib zstd ]; diff --git a/pkgs/data/themes/yaru/default.nix b/pkgs/data/themes/yaru/default.nix index bedf4482f74af..4810bfd55e325 100644 --- a/pkgs/data/themes/yaru/default.nix +++ b/pkgs/data/themes/yaru/default.nix @@ -16,13 +16,13 @@ stdenv.mkDerivation rec { pname = "yaru"; - version = "24.04.0"; + version = "23.10.0"; src = fetchFromGitHub { owner = "ubuntu"; repo = "yaru"; rev = version; - hash = "sha256-KvpA86YL6toVklRPu4hP3j3w+Q0h/n6mZRZgk3HvMfc="; + hash = "sha256-+Szk77QeoM4PwusxKflTh83h16qz6Es6UwDXpbydJUE="; }; nativeBuildInputs = [ meson sassc pkg-config glib ninja python3 ]; diff --git a/pkgs/desktops/xfce/panel-plugins/xfce4-i3-workspaces-plugin/default.nix b/pkgs/desktops/xfce/panel-plugins/xfce4-i3-workspaces-plugin/default.nix index 9ceeddf267d39..5a6794bf79af2 100644 --- a/pkgs/desktops/xfce/panel-plugins/xfce4-i3-workspaces-plugin/default.nix +++ b/pkgs/desktops/xfce/panel-plugins/xfce4-i3-workspaces-plugin/default.nix @@ -1,39 +1,33 @@ { lib, stdenv, fetchFromGitHub, pkg-config, intltool, gtk3 -, libxfce4ui, libxfce4util, xfconf, xfce4-dev-tools, xfce4-panel +, libxfce4ui, libxfce4util, xfce4-dev-tools, xfce4-panel , i3ipc-glib }: stdenv.mkDerivation rec { pname = "xfce4-i3-workspaces-plugin"; - version = "1.4.1"; + version = "1.4.2"; src = fetchFromGitHub { owner = "denesb"; repo = "xfce4-i3-workspaces-plugin"; rev = version; - sha256 = "sha256-Ss3uUmNvBqiu7hUaSy98+YYrWs64LFGbV4DMAV+xkvA="; + sha256 = "sha256-CKpofupoJhe5IORJgij6gOGotB+dGkUDtTUdon8/JdE="; }; nativeBuildInputs = [ pkg-config intltool + xfce4-dev-tools ]; buildInputs = [ gtk3 - xfconf libxfce4ui libxfce4util - xfce4-dev-tools xfce4-panel i3ipc-glib ]; - preConfigure = '' - ./autogen.sh - patchShebangs . - ''; - enableParallelBuilding = true; meta = with lib; { diff --git a/pkgs/development/embedded/avrdude/default.nix b/pkgs/development/embedded/avrdude/default.nix index 3057e2be09364..924c502358216 100644 --- a/pkgs/development/embedded/avrdude/default.nix +++ b/pkgs/development/embedded/avrdude/default.nix @@ -1,5 +1,5 @@ { lib, stdenv, fetchFromGitHub, cmake, bison, flex, libusb-compat-0_1, libelf -, libftdi1, readline +, libftdi1, readline, libserialport # documentation building is broken on darwin , docSupport ? (!stdenv.isDarwin), texliveMedium, texinfo, texi2html, unixtools }: @@ -21,7 +21,7 @@ stdenv.mkDerivation rec { texi2html ]; - buildInputs = [ libusb-compat-0_1 libelf libftdi1 readline ]; + buildInputs = [ libusb-compat-0_1 libelf libftdi1 libserialport readline ]; cmakeFlags = lib.optionals docSupport [ "-DBUILD_DOC=ON" diff --git a/pkgs/development/libraries/webkitgtk/default.nix b/pkgs/development/libraries/webkitgtk/default.nix index 07fc616efacc7..ca368076d7716 100644 --- a/pkgs/development/libraries/webkitgtk/default.nix +++ b/pkgs/development/libraries/webkitgtk/default.nix @@ -1,5 +1,6 @@ { lib , stdenv +, buildPackages , runCommand , fetchurl , perl @@ -113,8 +114,6 @@ stdenv.mkDerivation (finalAttrs: { gi-docgen glib # for gdbus-codegen unifdef - ] ++ lib.optionals stdenv.isLinux [ - wayland # for wayland-scanner ]; buildInputs = [ @@ -190,6 +189,7 @@ stdenv.mkDerivation (finalAttrs: { # https://github.com/WebKit/WebKit/commit/a84036c6d1d66d723f217a4c29eee76f2039a353 "-DBWRAP_EXECUTABLE=${lib.getExe bubblewrap}" "-DDBUS_PROXY_EXECUTABLE=${lib.getExe xdg-dbus-proxy}" + "-DWAYLAND_SCANNER=${buildPackages.wayland-scanner}/bin/wayland-scanner" ] ++ lib.optionals stdenv.isDarwin [ "-DENABLE_GAMEPAD=OFF" "-DENABLE_GTKDOC=OFF" diff --git a/pkgs/development/python-modules/azure-eventhub/default.nix b/pkgs/development/python-modules/azure-eventhub/default.nix index 3f0adab003df1..91203ed642047 100644 --- a/pkgs/development/python-modules/azure-eventhub/default.nix +++ b/pkgs/development/python-modules/azure-eventhub/default.nix @@ -9,14 +9,14 @@ buildPythonPackage rec { pname = "azure-eventhub"; - version = "5.11.6"; + version = "5.11.7"; pyproject = true; disabled = pythonOlder "3.8"; src = fetchPypi { inherit pname version; - hash = "sha256-89Q1o/cnR64i4Jblypx2w1BTTyrZk5l9EvTO+ZMq58E="; + hash = "sha256-C0Ywon7jrAxEjD8jdSHV3K71qKGnJBQjUGwEY3oKRLA="; }; nativeBuildInputs = [ diff --git a/pkgs/development/python-modules/dirigera/default.nix b/pkgs/development/python-modules/dirigera/default.nix index 7e44515531201..705d03cbe6d8c 100644 --- a/pkgs/development/python-modules/dirigera/default.nix +++ b/pkgs/development/python-modules/dirigera/default.nix @@ -12,7 +12,7 @@ buildPythonPackage rec { pname = "dirigera"; - version = "1.1.0"; + version = "1.1.1"; pyproject = true; disabled = pythonOlder "3.7"; @@ -21,7 +21,7 @@ buildPythonPackage rec { owner = "Leggin"; repo = "dirigera"; rev = "refs/tags/v${version}"; - hash = "sha256-UhHW7lwTvXncP3TVbIhtLl7sB0H2eOLOqrswRZk5xzs="; + hash = "sha256-k5xChz3qfClWU131WH0CqaY8qrJXh85NQ0y1iPfnX5Y="; }; build-system = [ setuptools ]; diff --git a/pkgs/development/python-modules/elastic-apm/default.nix b/pkgs/development/python-modules/elastic-apm/default.nix index 61ad6705fe9b7..25ef39efea064 100644 --- a/pkgs/development/python-modules/elastic-apm/default.nix +++ b/pkgs/development/python-modules/elastic-apm/default.nix @@ -1,37 +1,39 @@ -{ lib -, stdenv -, aiohttp -, blinker -, buildPythonPackage -, certifi -, ecs-logging -, fetchFromGitHub -, httpx -, jinja2 -, jsonschema -, logbook -, mock -, pytest-asyncio -, pytest-bdd -, pytest-localserver -, pytest-mock -, pytest-random-order -, pytestCheckHook -, pythonOlder -, sanic -, sanic-testing -, setuptools -, starlette -, structlog -, tornado -, urllib3 -, webob -, wrapt +{ + lib, + stdenv, + aiohttp, + blinker, + buildPythonPackage, + certifi, + ecs-logging, + fetchFromGitHub, + httpx, + jinja2, + jsonschema, + logbook, + mock, + pytest-asyncio, + pytest-bdd, + pytest-localserver, + pytest-mock, + pytest-random-order, + pytestCheckHook, + pythonOlder, + pythonRelaxDepsHook, + sanic, + sanic-testing, + setuptools, + starlette, + structlog, + tornado, + urllib3, + webob, + wrapt, }: buildPythonPackage rec { pname = "elastic-apm"; - version = "6.21.3"; + version = "6.22.0"; pyproject = true; disabled = pythonOlder "3.8"; @@ -40,14 +42,16 @@ buildPythonPackage rec { owner = "elastic"; repo = "apm-agent-python"; rev = "refs/tags/v${version}"; - hash = "sha256-Ejix31cMyHOc/IGe4bRp/Nchm9Ps1cRYE8jIaIYlJjs="; + hash = "sha256-VuVx+QUiV4M/ebyv2uF/YZwfvcaPDJAEi55fXfoIttU="; }; - nativeBuildInputs = [ - setuptools - ]; + pythonRelaxDeps = [ "wrapt" ]; + + build-system = [ setuptools ]; + + nativeBuildInputs = [ pythonRelaxDepsHook ]; - propagatedBuildInputs = [ + dependencies = [ aiohttp blinker certifi @@ -76,21 +80,19 @@ buildPythonPackage rec { webob ]; - disabledTests = [ - "elasticapm_client" - ]; + disabledTests = [ "elasticapm_client" ]; - disabledTestPaths = [ - # Exclude tornado tests - "tests/contrib/asyncio/tornado/tornado_tests.py" - ] ++ lib.optionals stdenv.isDarwin [ - # Flaky tests on Darwin - "tests/utils/threading_tests.py" - ]; + disabledTestPaths = + [ + # Exclude tornado tests + "tests/contrib/asyncio/tornado/tornado_tests.py" + ] + ++ lib.optionals stdenv.isDarwin [ + # Flaky tests on Darwin + "tests/utils/threading_tests.py" + ]; - pythonImportsCheck = [ - "elasticapm" - ]; + pythonImportsCheck = [ "elasticapm" ]; meta = with lib; { description = "Python agent for the Elastic APM"; diff --git a/pkgs/development/python-modules/es-client/default.nix b/pkgs/development/python-modules/es-client/default.nix index 0a1b0bad5ad67..3204da1d5a977 100644 --- a/pkgs/development/python-modules/es-client/default.nix +++ b/pkgs/development/python-modules/es-client/default.nix @@ -1,26 +1,27 @@ -{ lib -, buildPythonPackage -, certifi -, click -, ecs-logging -, elastic-transport -, elasticsearch8 -, fetchFromGitHub -, hatchling -, mock -, pytest-asyncio -, pytestCheckHook -, pythonOlder -, pythonRelaxDepsHook -, pyyaml -, requests -, six -, voluptuous +{ + lib, + buildPythonPackage, + certifi, + click, + ecs-logging, + elastic-transport, + elasticsearch8, + fetchFromGitHub, + hatchling, + mock, + pytest-asyncio, + pytestCheckHook, + pythonOlder, + pythonRelaxDepsHook, + pyyaml, + requests, + six, + voluptuous, }: buildPythonPackage rec { pname = "es-client"; - version = "8.12.8"; + version = "8.13.1"; pyproject = true; disabled = pythonOlder "3.8"; @@ -29,17 +30,16 @@ buildPythonPackage rec { owner = "untergeek"; repo = "es_client"; rev = "refs/tags/v${version}"; - hash = "sha256-qv06zb3hIK/TeOZwtMXrV+n8mYSA/UKiyHvRyKEvZkQ="; + hash = "sha256-4v9SRWVG9p4kCob4C3by2JxNqX6L3yMHpbnMYEAM7A0="; }; pythonRelaxDeps = true; - nativeBuildInputs = [ - hatchling - pythonRelaxDepsHook - ]; + build-system = [ hatchling ]; + + nativeBuildInputs = [ pythonRelaxDepsHook ]; - propagatedBuildInputs = [ + dependencies = [ certifi click ecs-logging @@ -57,9 +57,7 @@ buildPythonPackage rec { requests ]; - pythonImportsCheck = [ - "es_client" - ]; + pythonImportsCheck = [ "es_client" ]; disabledTests = [ # Tests require network access diff --git a/pkgs/development/python-modules/fyta-cli/default.nix b/pkgs/development/python-modules/fyta-cli/default.nix index 1a1e188f4d5a0..7e0b2971be508 100644 --- a/pkgs/development/python-modules/fyta-cli/default.nix +++ b/pkgs/development/python-modules/fyta-cli/default.nix @@ -9,7 +9,7 @@ buildPythonPackage rec { pname = "fyta-cli"; - version = "0.3.5"; + version = "0.4.0"; pyproject = true; disabled = pythonOlder "3.8"; @@ -18,7 +18,7 @@ buildPythonPackage rec { owner = "dontinelli"; repo = "fyta_cli"; rev = "refs/tags/v${version}"; - hash = "sha256-mC/6qL6mPyk32Yo+m+Jlp6C86T6oTHNwH7lmmB2YeYE="; + hash = "sha256-ThxC+s0vkvFQw9FKMWO+cHJB1ci+USdxQa4PRqHrKLM="; }; build-system = [ hatchling ]; diff --git a/pkgs/development/python-modules/httpsig/default.nix b/pkgs/development/python-modules/httpsig/default.nix index f1529bf212da2..fe7ed11c2fffe 100644 --- a/pkgs/development/python-modules/httpsig/default.nix +++ b/pkgs/development/python-modules/httpsig/default.nix @@ -1,30 +1,38 @@ { lib , buildPythonPackage , fetchPypi +, setuptools , setuptools-scm , pycryptodome , requests , six +, pytestCheckHook }: buildPythonPackage rec { pname = "httpsig"; version = "1.3.0"; - format = "setuptools"; + pyproject = true; src = fetchPypi { inherit pname version; - sha256 = "1rkc3zwsq53rjsmc47335m4viljiwdbmw3y2zry4z70j8q1dbmki"; + hash = "sha256-cdbVAkYSnE98/sIPXlfjUdK4SS1jHMKqlnkUrPkfbOY="; }; - buildInputs = [ + build-system = [ + setuptools setuptools-scm ]; - propagatedBuildInputs = [ + dependencies = [ pycryptodome requests six + setuptools + ]; + + nativeCheckInputs = [ + pytestCheckHook ]; pythonImportsCheck = [ "httpsig" ]; diff --git a/pkgs/development/python-modules/ping3/default.nix b/pkgs/development/python-modules/ping3/default.nix index 2114e6813589c..52f780cfad934 100644 --- a/pkgs/development/python-modules/ping3/default.nix +++ b/pkgs/development/python-modules/ping3/default.nix @@ -9,14 +9,14 @@ buildPythonPackage rec { pname = "ping3"; - version = "4.0.7"; + version = "4.0.8"; pyproject = true; disabled = pythonOlder "3.7"; src = fetchPypi { inherit pname version; - hash = "sha256-uO2ObCZvizdGSrobagC6GDh116z5q5yIH9P8PcvpCi8="; + hash = "sha256-mrRg61fwBrcfl3ppPRVyFaq9a7y8bNZCi2lR6q4MKHU="; }; build-system = [ setuptools ]; diff --git a/pkgs/development/python-modules/pytest-bdd/default.nix b/pkgs/development/python-modules/pytest-bdd/default.nix index 3660dc709f31c..025938b942647 100644 --- a/pkgs/development/python-modules/pytest-bdd/default.nix +++ b/pkgs/development/python-modules/pytest-bdd/default.nix @@ -1,71 +1,56 @@ -{ lib -, buildPythonPackage -, fetchFromGitHub -, fetchpatch -, mako -, parse -, parse-type -, poetry-core -, pytest -, pytestCheckHook -, pythonOlder -, typing-extensions +{ + lib, + buildPythonPackage, + fetchFromGitHub, + mako, + parse, + parse-type, + poetry-core, + pytest, + pytestCheckHook, + pythonOlder, + typing-extensions, }: buildPythonPackage rec { pname = "pytest-bdd"; - version = "6.1.1"; - format = "pyproject"; + version = "7.1.2"; + pyproject = true; disabled = pythonOlder "3.7"; src = fetchFromGitHub { owner = "pytest-dev"; - repo = pname; + repo = "pytest-bdd"; rev = "refs/tags/${version}"; - hash = "sha256-+76jIgfDQPdIoesTr1+QUu8wmOnrdf4KT+TJr9F2Hqk="; + hash = "sha256-PC4VSsUU5qEFp/C/7OTgHINo8wmOo0w2d1Hpe0EnFzE="; }; - patches = [ - (fetchpatch { - name = "remove-setuptools.patch"; - url = "https://github.com/pytest-dev/pytest-bdd/commit/5d8eda3a30b47d3bd27849884a851adafca765cb.patch"; - hash = "sha256-G2WHaRKlQ9HINufh8wl7+ly7HfDGobMLzzlbwDwd+o8="; - }) - ]; - - nativeBuildInputs = [ - poetry-core - ]; + build-system = [ poetry-core ]; - buildInputs = [ - pytest - ]; + buildInputs = [ pytest ]; - propagatedBuildInputs = [ + dependencies = [ mako parse parse-type typing-extensions ]; - nativeCheckInputs = [ - pytestCheckHook - ]; + nativeCheckInputs = [ pytestCheckHook ]; preCheck = '' export PATH=$PATH:$out/bin ''; - pythonImportsCheck = [ - "pytest_bdd" - ]; + pythonImportsCheck = [ "pytest_bdd" ]; meta = with lib; { description = "BDD library for the pytest"; - mainProgram = "pytest-bdd"; homepage = "https://github.com/pytest-dev/pytest-bdd"; + changelog = "https://github.com/pytest-dev/pytest-bdd/blob/${version}/CHANGES.rst"; license = licenses.mit; maintainers = with maintainers; [ jm2dev ]; + mainProgram = "pytest-bdd"; }; } diff --git a/pkgs/development/python-modules/snakemake-interface-common/default.nix b/pkgs/development/python-modules/snakemake-interface-common/default.nix index 6ac47e4afedeb..15f5d663579fd 100644 --- a/pkgs/development/python-modules/snakemake-interface-common/default.nix +++ b/pkgs/development/python-modules/snakemake-interface-common/default.nix @@ -8,14 +8,14 @@ buildPythonPackage rec { pname = "snakemake-interface-common"; - version = "1.17.1"; + version = "1.17.2"; format = "pyproject"; src = fetchFromGitHub { owner = "snakemake"; repo = pname; rev = "refs/tags/v${version}"; - hash = "sha256-23PGKSBX7KMt0Q7sWiLIPfCkxr2HtBas7flYeNHABWM="; + hash = "sha256-N8mSS+gABAgXm01BcsMk89a3HsIsc3RHxCAi3GlxtRg="; }; nativeBuildInputs = [ diff --git a/pkgs/development/python-modules/yolink-api/default.nix b/pkgs/development/python-modules/yolink-api/default.nix index 67f77908e340e..c1b4703ea4d4a 100644 --- a/pkgs/development/python-modules/yolink-api/default.nix +++ b/pkgs/development/python-modules/yolink-api/default.nix @@ -12,7 +12,7 @@ buildPythonPackage rec { pname = "yolink-api"; - version = "0.4.2"; + version = "0.4.3"; pyproject = true; disabled = pythonOlder "3.7"; @@ -21,7 +21,7 @@ buildPythonPackage rec { owner = "YoSmart-Inc"; repo = "yolink-api"; rev = "refs/tags/v${version}"; - hash = "sha256-De3uMrLAz8LdX2pU5pn+6W6UvB+M9fSv80RSjgleo3M="; + hash = "sha256-cLuto2V5i3au1MRYYbgR2plw9YBpgIAxsG2fu4t37jk="; }; build-system = [ setuptools ]; diff --git a/pkgs/development/tools/build-managers/rebar3/default.nix b/pkgs/development/tools/build-managers/rebar3/default.nix index 0dd651a9d3f0c..ca64753cedbff 100644 --- a/pkgs/development/tools/build-managers/rebar3/default.nix +++ b/pkgs/development/tools/build-managers/rebar3/default.nix @@ -3,7 +3,7 @@ writeScript, common-updater-scripts, coreutils, git, gnused, nix, rebar3-nix }: let - version = "3.22.1"; + version = "3.23.0"; owner = "erlang"; deps = import ./rebar-deps.nix { inherit fetchFromGitHub fetchgit fetchHex; }; rebar3 = stdenv.mkDerivation rec { @@ -16,7 +16,7 @@ let inherit owner; repo = pname; rev = version; - sha256 = "bSsDNuwG3LLvBS7P/Ft0rpM/atwy36JonwP0fPRsEis="; + sha256 = "dLJ1ca7Tlx6Cfk/AyJ0HmAgH9+qRrto/m0GWWUeXNko="; }; buildInputs = [ erlang ]; diff --git a/pkgs/development/tools/coder/default.nix b/pkgs/development/tools/coder/default.nix index b12247a76d6f1..16594ee2e3c3e 100644 --- a/pkgs/development/tools/coder/default.nix +++ b/pkgs/development/tools/coder/default.nix @@ -1,90 +1,89 @@ { lib -, fetchFromGitHub +, fetchurl , installShellFiles -, makeWrapper -, buildGoModule -, fetchYarnDeps -, fixup_yarn_lock -, pkg-config -, nodejs -, yarn -, nodePackages -, python3 +, makeBinaryWrapper , terraform +, stdenvNoCC +, unzip }: -buildGoModule rec { +let + inherit (stdenvNoCC.hostPlatform) system; +in +stdenvNoCC.mkDerivation (finalAttrs: { pname = "coder"; - version = "0.17.1"; - - src = fetchFromGitHub { - owner = pname; - repo = pname; - rev = "v${version}"; - hash = "sha256-FHBaefwSGZXwn1jdU7zK8WhwjarknvyeUJTlhmk/hPM="; - }; - - offlineCache = fetchYarnDeps { - yarnLock = src + "/site/yarn.lock"; - hash = "sha256-nRmEXR9fjDxvpbnT+qpGeM0Cc/qW/kN53sKOXwZiBXY="; + version = "2.9.1"; + + src = fetchurl { + hash = { + x86_64-linux = "sha256-r4+u/s/dOn2GhyhEROu8i03QY3VA/bIyO/Yj7KSqicY="; + x86_64-darwin = "sha256-uShCmMvb5OcinqP0CmrlP9QAJkjfG3g1QuHE4JRDOjE="; + aarch64-linux = "sha256-tvpzfJ95YYfCY5V4iayjAmY5PDw+1uHUhY5F3pv/2Uk="; + aarch64-darwin = "sha256-sP9HnB2DzAU9IvL3+QPmIFLvRkGkoxSoa68uXGQrNkw="; + }.${system}; + + url = + let + systemName = { + x86_64-linux = "linux_amd64"; + aarch64-linux = "linux_arm64"; + x86_64-darwin = "darwin_amd64"; + aarch64-darwin = "darwin_arm64"; + }.${system}; + + ext = { + x86_64-linux = "tar.gz"; + aarch64-linux = "tar.gz"; + x86_64-darwin = "zip"; + aarch64-darwin = "zip"; + }.${system}; + in + "https://github.com/coder/coder/releases/download/v${finalAttrs.version}/coder_${finalAttrs.version}_${systemName}.${ext}"; }; - vendorHash = "sha256-+AvmJkZCFovE2+5Lg98tUvA7f2kBHUMzhl5IyrEGuy8="; - - tags = [ "embed" ]; - - ldflags = [ - "-s" - "-w" - "-X github.com/coder/coder/buildinfo.tag=${version}" + nativeBuildInputs = [ + installShellFiles + makeBinaryWrapper + unzip ]; - subPackages = [ "cmd/..." ]; + unpackPhase = '' + runHook preUnpack - preBuild = '' - export HOME=$TEMPDIR + case $src in + *.tar.gz) tar -xz -f "$src" ;; + *.zip) unzip "$src" ;; + esac - pushd site - yarn config --offline set yarn-offline-mirror ${offlineCache} - fixup_yarn_lock yarn.lock + runHook postUnpack + ''; - # node-gyp tries to download always the headers and fails: https://github.com/NixOS/nixpkgs/issues/195404 - # playwright tries to download Chrome and fails - yarn remove --offline jest-canvas-mock canvas @playwright/test playwright + installPhase = '' + runHook preInstall - export PATH=$PATH:$(pwd)/node_modules/.bin - NODE_ENV=production node node_modules/.bin/vite build + install -D -m755 coder $out/bin/coder - popd + runHook postInstall ''; - nativeBuildInputs = [ - fixup_yarn_lock - installShellFiles - makeWrapper - nodePackages.node-pre-gyp - nodejs - pkg-config - python3 - yarn - ]; - postInstall = '' installShellCompletion --cmd coder \ --bash <($out/bin/coder completion bash) \ --fish <($out/bin/coder completion fish) \ --zsh <($out/bin/coder completion zsh) - wrapProgram $out/bin/coder --prefix PATH : ${lib.makeBinPath [ terraform ]} + wrapProgram $out/bin/coder \ + --prefix PATH : ${lib.makeBinPath [ terraform ]} ''; # integration tests require network access doCheck = false; meta = { - description = "Provision software development environments via Terraform on Linux, macOS, Windows, X86, ARM, and of course, Kubernetes"; + description = "Provision remote development environments via Terraform"; homepage = "https://coder.com"; license = lib.licenses.agpl3Only; - maintainers = [ lib.maintainers.ghuntley lib.maintainers.urandom ]; + mainProgram = "coder"; + maintainers = with lib.maintainers; [ ghuntley urandom ]; }; -} +}) diff --git a/pkgs/development/tools/electron/info.json b/pkgs/development/tools/electron/info.json index 667d8fbfd98cb..67708aa5d43be 100644 --- a/pkgs/development/tools/electron/info.json +++ b/pkgs/development/tools/electron/info.json @@ -3,10 +3,10 @@ "deps": { "src/electron": { "fetcher": "fetchFromGitHub", - "hash": "sha256-fu2/PUgZZR8OWtD04X31RaLHkhF5QeHvtdg1UX3SoBw=", + "hash": "sha256-AHiOejVRSeJ14Xn+A6yjfICbERDPr/eCbBq+2qPjGDc=", "owner": "electron", "repo": "electron", - "rev": "v28.2.10" + "rev": "v28.3.0" }, "src": { "fetcher": "fetchFromGitiles", @@ -873,7 +873,7 @@ "rev": "78d3966b3c331292ea29ec38661b25df0a245948" } }, - "version": "28.2.10", + "version": "28.3.0", "modules": "119", "chrome": "120.0.6099.291", "node": "18.18.2", @@ -895,10 +895,10 @@ "deps": { "src/electron": { "fetcher": "fetchFromGitHub", - "hash": "sha256-/Bd91mSKGqsEThDZKnQCBSy/eWW+MnPDsPML2WafhtI=", + "hash": "sha256-vCM74wty0JN4PL9snwa4oFbNebA3cMZ8lorXz5DIVcE=", "owner": "electron", "repo": "electron", - "rev": "v27.3.9" + "rev": "v27.3.10" }, "src": { "fetcher": "fetchFromGitiles", @@ -1765,7 +1765,7 @@ "rev": "78d3966b3c331292ea29ec38661b25df0a245948" } }, - "version": "27.3.9", + "version": "27.3.10", "modules": "118", "chrome": "118.0.5993.159", "node": "18.17.1", @@ -1780,17 +1780,17 @@ } } }, - "electron_yarn_hash": "1yq854829a4q0yqyjyn2lq4l3amsqdhfd7fjcnc3mz8l2ci3n964", - "chromium_npm_hash": "sha256-5cjqpYB45nw2gop54VP+tL7/0w63nQGfQ4x6a6KS7XQ=" + "chromium_npm_hash": "sha256-5cjqpYB45nw2gop54VP+tL7/0w63nQGfQ4x6a6KS7XQ=", + "electron_yarn_hash": "1yq854829a4q0yqyjyn2lq4l3amsqdhfd7fjcnc3mz8l2ci3n964" }, "29": { "deps": { "src/electron": { "fetcher": "fetchFromGitHub", - "hash": "sha256-M/0dbmNELh9ZnH0FAtj0vItWhMwEd2vwrXx2JTqJGr0=", + "hash": "sha256-buW6hC7GIA59MTuyWg9/+EzQlFgJVN2IZrxlfisLemM=", "owner": "electron", "repo": "electron", - "rev": "v29.2.0" + "rev": "v29.3.0" }, "src": { "fetcher": "fetchFromGitiles", @@ -2670,7 +2670,7 @@ "rev": "955335c30a752e9ef7bff375baab5e0819b6c00d" } }, - "version": "29.2.0", + "version": "29.3.0", "modules": "121", "chrome": "122.0.6261.156", "node": "20.9.0", @@ -2685,7 +2685,7 @@ } } }, - "chromium_npm_hash": "sha256-9eFsK673j3pTDOcsU35RN4hagFygA/v/ahCqVVEV0Rs=", - "electron_yarn_hash": "0spwnax6g3050z2bjylzs67l7m551is86nizzy4hp0306v57xdpz" + "electron_yarn_hash": "0f868gk3d2cablpczav8a4vhk4nfirph45yzjz18mgzgday7w8hf", + "chromium_npm_hash": "sha256-9eFsK673j3pTDOcsU35RN4hagFygA/v/ahCqVVEV0Rs=" } } diff --git a/pkgs/misc/uboot/default.nix b/pkgs/misc/uboot/default.nix index d7a3ad13825c2..837070e656147 100644 --- a/pkgs/misc/uboot/default.nix +++ b/pkgs/misc/uboot/default.nix @@ -28,10 +28,10 @@ }: let - defaultVersion = "2024.01"; + defaultVersion = "2024.04"; defaultSrc = fetchurl { url = "https://ftp.denx.de/pub/u-boot/u-boot-${defaultVersion}.tar.bz2"; - hash = "sha256-uZYR8e0je/NUG9yENLaMlqbgWWcGH5kkQ8swqr6+9bM="; + hash = "sha256-GKhT/jn6160DqQzC1Cda6u1tppc13vrDSSuAUIhD3Uo="; }; # Dependencies for the tools need to be included as either native or cross, @@ -386,12 +386,6 @@ in { extraMeta.platforms = ["aarch64-linux"]; BL31 = "${armTrustedFirmwareRK3588}/bl31.elf"; ROCKCHIP_TPL = rkbin.TPL_RK3588; - - # FIXME: applied upstream, remove in 2024.04 - extraConfig = '' - CONFIG_ROCKCHIP_SPI_IMAGE=y - ''; - filesToInstall = [ "u-boot.itb" "idbloader.img" "u-boot-rockchip.bin" "u-boot-rockchip-spi.bin" ]; }; @@ -613,6 +607,14 @@ in { filesToInstall = ["u-boot-sunxi-with-spl.bin"]; }; + ubootTuringRK1 = buildUBoot { + defconfig = "turing-rk1-rk3588_defconfig"; + extraMeta.platforms = [ "aarch64-linux" ]; + BL31 = "${armTrustedFirmwareRK3588}/bl31.elf"; + ROCKCHIP_TPL = rkbin.TPL_RK3588; + filesToInstall = [ "u-boot.itb" "idbloader.img" "u-boot-rockchip.bin" ]; + }; + ubootUtilite = buildUBoot { defconfig = "cm_fx6_defconfig"; extraMeta.platforms = ["armv7l-linux"]; diff --git a/pkgs/servers/http/lighttpd/default.nix b/pkgs/servers/http/lighttpd/default.nix index 051f1c18e64e3..65bafdac11207 100644 --- a/pkgs/servers/http/lighttpd/default.nix +++ b/pkgs/servers/http/lighttpd/default.nix @@ -22,6 +22,8 @@ stdenv.mkDerivation rec { sha256 = "sha256-i3IcqTnTEq+qbvMdy9avtRYe04Wsgo5vzNTFt2vhidY="; }; + separateDebugInfo = true; + postPatch = '' patchShebangs tests ''; diff --git a/pkgs/tools/misc/fzf/default.nix b/pkgs/tools/misc/fzf/default.nix index 94ec13ead9e42..e2ae52985a504 100644 --- a/pkgs/tools/misc/fzf/default.nix +++ b/pkgs/tools/misc/fzf/default.nix @@ -1,6 +1,7 @@ { lib , buildGoModule , fetchFromGitHub +, runtimeShell , installShellFiles , bc , ncurses @@ -55,6 +56,23 @@ buildGoModule rec { install -D plugin/* -t $out/share/vim-plugins/${pname}/plugin mkdir -p $out/share/nvim ln -s $out/share/vim-plugins/${pname} $out/share/nvim/site + + # Install shell integrations + install -D shell/* -t $out/share/fzf/ + install -D shell/key-bindings.fish $out/share/fish/vendor_functions.d/fzf_key_bindings.fish + mkdir -p $out/share/fish/vendor_conf.d + cat << EOF > $out/share/fish/vendor_conf.d/load-fzf-key-bindings.fish + status is-interactive; or exit 0 + fzf_key_bindings + EOF + + cat <<SCRIPT > $out/bin/fzf-share + #!${runtimeShell} + # Run this script to find the fzf shared folder where all the shell + # integration scripts are living. + echo $out/share/fzf + SCRIPT + chmod +x $out/bin/fzf-share ''; passthru.tests.version = testers.testVersion { diff --git a/pkgs/top-level/aliases.nix b/pkgs/top-level/aliases.nix index 208ec9abb5c85..a4e66310e2ec0 100644 --- a/pkgs/top-level/aliases.nix +++ b/pkgs/top-level/aliases.nix @@ -74,6 +74,7 @@ mapAliases ({ angelfish = libsForQt5.kdeGear.angelfish; # Added 2021-10-06 ansible_2_12 = throw "Ansible 2.12 goes end of life in 2023/05 and can't be supported throughout the 23.05 release cycle"; # Added 2023-05-16 ansible_2_13 = throw "Ansible 2.13 goes end of life in 2023/11"; # Added 2023-12-30 + ansible_2_14 = throw "Ansible 2.14 goes end of life in 2024/05 and can't be supported throughout the 24.05 release cycle"; # Added 2024-04-11 apacheAnt_1_9 = throw "Ant 1.9 has been removed since it's not used in nixpkgs anymore"; # Added 2023-11-12 antimicroX = antimicrox; # Added 2021-10-31 appthreat-depscan = dep-scan; # Added 2024-04-10 diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index cdaa063bcdd3e..6532b935381e3 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -18020,13 +18020,6 @@ with pkgs; hash = "sha256-JfmxtaWvPAmGvTko7QhurduGdSf7XIOv7xoDz60080U="; }; })); - ansible_2_14 = python3Packages.toPythonApplication (python3Packages.ansible-core.overridePythonAttrs (oldAttrs: rec { - version = "2.14.13"; - src = oldAttrs.src.override { - inherit version; - hash = "sha256-ThuzNPDDImq0jFme/knNX+A/JdRVi8BsJ0reK6PiV2o="; - }; - })); ansible-builder = with python3Packages; toPythonApplication ansible-builder; @@ -28330,6 +28323,7 @@ with pkgs; ubootROCPCRK3399 ubootSheevaplug ubootSopine + ubootTuringRK1 ubootUtilite ubootWandboard ; |