diff --git a/.github/PULL_REQUEST_TEMPLATE.md b/.github/PULL_REQUEST_TEMPLATE.md index 027ac76df466..1c4d7aa0668e 100644 --- a/.github/PULL_REQUEST_TEMPLATE.md +++ b/.github/PULL_REQUEST_TEMPLATE.md @@ -23,7 +23,7 @@ Reviewing guidelines: https://nixos.org/manual/nixpkgs/unstable/#chap-reviewing- - [ ] Tested via one or more NixOS test(s) if existing and applicable for the change (look inside [nixos/tests](https://github.com/NixOS/nixpkgs/blob/master/nixos/tests)) - [ ] Tested compilation of all pkgs that depend on this change using `nix-shell -p nixpkgs-review --run "nixpkgs-review wip"` - [ ] Tested execution of all binary files (usually in `./result/bin/`) -- [21.11 Release Notes](./CONTRIBUTING.md#generating-2111-release-notes) +- [21.11 Release Notes](https://github.com/NixOS/nixpkgs/blob/master/.github/CONTRIBUTING.md#generating-2111-release-notes) - [ ] (Package updates) Added a release notes entry if the change is major or breaking - [ ] (Module updates) Added a release notes entry if the change is significant - [ ] (Module addition) Added a release notes entry if adding a new NixOS module diff --git a/doc/contributing/coding-conventions.chapter.md b/doc/contributing/coding-conventions.chapter.md index 6516172adde9..1eaa06a659d5 100644 --- a/doc/contributing/coding-conventions.chapter.md +++ b/doc/contributing/coding-conventions.chapter.md @@ -183,9 +183,6 @@ - Arguments should be listed in the order they are used, with the exception of `lib`, which always goes first. -- The top-level `lib` must be used in the master and 21.05 branch over its alias `stdenv.lib` as it now causes evaluation errors when aliases are disabled which is the case for ofborg. - `lib` is unrelated to `stdenv`, and so `stdenv.lib` should only be used as a convenience alias when developing locally to avoid having to modify the function inputs just to test something out. - ## Package naming {#sec-package-naming} The key words _must_, _must not_, _required_, _shall_, _shall not_, _should_, _should not_, _recommended_, _may_, and _optional_ in this section are to be interpreted as described in [RFC 2119](https://tools.ietf.org/html/rfc2119). Only _emphasized_ words are to be interpreted in this way. diff --git a/doc/contributing/contributing-to-documentation.chapter.md b/doc/contributing/contributing-to-documentation.chapter.md index 642beba74d61..7fd4b93f0d2b 100644 --- a/doc/contributing/contributing-to-documentation.chapter.md +++ b/doc/contributing/contributing-to-documentation.chapter.md @@ -7,7 +7,7 @@ You can quickly check your edits with `make`: ```ShellSession $ cd /path/to/nixpkgs/doc $ nix-shell -[nix-shell]$ make $makeFlags +[nix-shell]$ make ``` If you experience problems, run `make debug` to help understand the docbook errors. diff --git a/doc/default.nix b/doc/default.nix index 25389fa2da7e..ac382ec8519c 100644 --- a/doc/default.nix +++ b/doc/default.nix @@ -17,10 +17,6 @@ in pkgs.stdenv.mkDerivation { src = lib.cleanSource ./.; - makeFlags = [ - "PANDOC_LUA_FILTERS_DIR=${pkgs.pandoc-lua-filters}/share/pandoc/filters" - ]; - postPatch = '' ln -s ${doc-support} ./doc-support/result ''; @@ -37,4 +33,7 @@ in pkgs.stdenv.mkDerivation { echo "doc manual $dest manual.html" >> $out/nix-support/hydra-build-products echo "doc manual $dest nixpkgs-manual.epub" >> $out/nix-support/hydra-build-products ''; + + # Environment variables + PANDOC_LUA_FILTERS_DIR = "${pkgs.pandoc-lua-filters}/share/pandoc/filters"; } diff --git a/lib/licenses.nix b/lib/licenses.nix index d79ac9004396..9baaba022bf5 100644 --- a/lib/licenses.nix +++ b/lib/licenses.nix @@ -734,6 +734,12 @@ lib.mapAttrs (n: v: v // { shortName = n; }) ({ free = false; }; + stk = { + shortName = "stk"; + fullName = "Synthesis Tool Kit 4.3"; + url = https://github.com/thestk/stk/blob/master/LICENSE; + }; + tcltk = spdx { spdxId = "TCL"; fullName = "TCL/TK License"; diff --git a/maintainers/maintainer-list.nix b/maintainers/maintainer-list.nix index 6572d6b9914e..2448ad3f93da 100644 --- a/maintainers/maintainer-list.nix +++ b/maintainers/maintainer-list.nix @@ -300,6 +300,12 @@ githubId = 335271; name = "James Alexander Feldman-Crough"; }; + afontain = { + email = "antoine.fontaine@epfl.ch"; + github = "necessarily-equal"; + githubId = 59283660; + name = "Antoine Fontaine"; + }; aforemny = { email = "aforemny@posteo.de"; github = "aforemny"; @@ -7255,6 +7261,16 @@ githubId = 10180857; name = "Anmol Sethi"; }; + nicbk = { + email = "nicolas@nicbk.com"; + github = "nicbk"; + githubId = 77309427; + name = "Nicolás Kennedy"; + keys = [{ + longkeyid = "rsa4096/0xC061089EFEBF7A35"; + fingerprint = "7BC1 77D9 C222 B1DC FB2F 0484 C061 089E FEBF 7A35"; + }]; + }; nichtsfrei = { email = "philipp.eder@posteo.net"; github = "nichtsfrei"; @@ -8425,6 +8441,12 @@ githubId = 1891350; name = "Michael Raskin"; }; + ratsclub = { + email = "victor@freire.dev.br"; + github = "ratsclub"; + githubId = 25647735; + name = "Victor Freire"; + }; ravloony = { email = "ravloony@gmail.com"; name = "Tom Macdonald"; @@ -8637,6 +8659,12 @@ githubId = 449990; name = "Cedric Cellier"; }; + rkitover = { + email = "rkitover@gmail.com"; + github = "rkitover"; + githubId = 77611; + name = "Rafael Kitover"; + }; rkoe = { email = "rk@simple-is-better.org"; github = "rkoe"; diff --git a/nixos/doc/manual/development/writing-nixos-tests.xml b/nixos/doc/manual/development/writing-nixos-tests.xml index 32321deeddf9..e372c66410de 100644 --- a/nixos/doc/manual/development/writing-nixos-tests.xml +++ b/nixos/doc/manual/development/writing-nixos-tests.xml @@ -274,8 +274,29 @@ start_all() - Execute a shell command, raising an exception if the exit status is not - zero, otherwise returning the standard output. + Execute a shell command, raising an exception if the exit status + is not zero, otherwise returning the standard output. Commands + are run with set -euo pipefail set: + + + + If several commands are separated by ; + and one fails, the command as a whole will fail. + + + + + For pipelines, the last non-zero exit status will be + returned (if there is one, zero will be returned + otherwise). + + + + + Dereferencing unset variables fail the command. + + + diff --git a/nixos/doc/manual/release-notes/rl-2105.xml b/nixos/doc/manual/release-notes/rl-2105.xml index 54abbb6e38e4..bdc2386f24c8 100644 --- a/nixos/doc/manual/release-notes/rl-2105.xml +++ b/nixos/doc/manual/release-notes/rl-2105.xml @@ -181,6 +181,15 @@ GNOME desktop environment was upgraded to 40, see the release notes for 40.0 and 3.38. The gnome3 attribute set has been renamed to gnome and so have been the NixOS options. + + + Enabling wireless networking now requires specifying at least one network + interface using . + This is to avoid a race condition with the card initialisation (see + issue + #101963 for more information). + + If you are using to assign diff --git a/nixos/lib/test-driver/test-driver.py b/nixos/lib/test-driver/test-driver.py index e0e8b0fb71f4..ab739ce3222f 100644 --- a/nixos/lib/test-driver/test-driver.py +++ b/nixos/lib/test-driver/test-driver.py @@ -441,7 +441,7 @@ class Machine: def execute(self, command: str) -> Tuple[int, str]: self.connect() - out_command = "( {} ); echo '|!=EOF' $?\n".format(command) + out_command = "( set -euo pipefail; {} ); echo '|!=EOF' $?\n".format(command) self.shell.send(out_command.encode()) output = "" diff --git a/nixos/modules/i18n/input-method/fcitx5.nix b/nixos/modules/i18n/input-method/fcitx5.nix index 44962d202fe1..eecbe32fea49 100644 --- a/nixos/modules/i18n/input-method/fcitx5.nix +++ b/nixos/modules/i18n/input-method/fcitx5.nix @@ -6,28 +6,33 @@ let im = config.i18n.inputMethod; cfg = im.fcitx5; fcitx5Package = pkgs.fcitx5-with-addons.override { inherit (cfg) addons; }; -in - { - options = { - i18n.inputMethod.fcitx5 = { - addons = mkOption { - type = with types; listOf package; - default = []; - example = with pkgs; [ fcitx5-rime ]; - description = '' - Enabled Fcitx5 addons. - ''; - }; +in { + options = { + i18n.inputMethod.fcitx5 = { + addons = mkOption { + type = with types; listOf package; + default = []; + example = with pkgs; [ fcitx5-rime ]; + description = '' + Enabled Fcitx5 addons. + ''; }; }; + }; - config = mkIf (im.enabled == "fcitx5") { - i18n.inputMethod.package = fcitx5Package; + config = mkIf (im.enabled == "fcitx5") { + i18n.inputMethod.package = fcitx5Package; - environment.variables = { - GTK_IM_MODULE = "fcitx"; - QT_IM_MODULE = "fcitx"; - XMODIFIERS = "@im=fcitx"; - }; + environment.variables = { + GTK_IM_MODULE = "fcitx"; + QT_IM_MODULE = "fcitx"; + XMODIFIERS = "@im=fcitx"; }; - } + + systemd.user.services.fcitx5-daemon = { + enable = true; + script = "${fcitx5Package}/bin/fcitx5"; + wantedBy = [ "graphical-session.target" ]; + }; + }; +} diff --git a/nixos/modules/module-list.nix b/nixos/modules/module-list.nix index 42f0471c4cff..fc04997bd2ee 100644 --- a/nixos/modules/module-list.nix +++ b/nixos/modules/module-list.nix @@ -139,6 +139,7 @@ ./programs/flexoptix-app.nix ./programs/freetds.nix ./programs/fuse.nix + ./programs/gamemode.nix ./programs/geary.nix ./programs/gnome-disks.nix ./programs/gnome-documents.nix @@ -553,6 +554,7 @@ ./services/misc/siproxd.nix ./services/misc/snapper.nix ./services/misc/sonarr.nix + ./services/misc/sourcehut ./services/misc/spice-vdagentd.nix ./services/misc/ssm-agent.nix ./services/misc/sssd.nix diff --git a/nixos/modules/programs/gamemode.nix b/nixos/modules/programs/gamemode.nix new file mode 100644 index 000000000000..03949bf98df6 --- /dev/null +++ b/nixos/modules/programs/gamemode.nix @@ -0,0 +1,96 @@ +{ config, lib, pkgs, ... }: + +with lib; + +let + cfg = config.programs.gamemode; + settingsFormat = pkgs.formats.ini { }; + configFile = settingsFormat.generate "gamemode.ini" cfg.settings; +in +{ + options = { + programs.gamemode = { + enable = mkEnableOption "GameMode to optimise system performance on demand"; + + enableRenice = mkEnableOption "CAP_SYS_NICE on gamemoded to support lowering process niceness" // { + default = true; + }; + + settings = mkOption { + type = settingsFormat.type; + default = {}; + description = '' + System-wide configuration for GameMode (/etc/gamemode.ini). + See gamemoded(8) man page for available settings. + ''; + example = literalExample '' + { + general = { + renice = 10; + }; + + # Warning: GPU optimisations have the potential to damage hardware + gpu = { + apply_gpu_optimisations = "accept-responsibility"; + gpu_device = 0; + amd_performance_level = "high"; + }; + + custom = { + start = "''${pkgs.libnotify}/bin/notify-send 'GameMode started'"; + end = "''${pkgs.libnotify}/bin/notify-send 'GameMode ended'"; + }; + } + ''; + }; + }; + }; + + config = mkIf cfg.enable { + environment = { + systemPackages = [ pkgs.gamemode ]; + etc."gamemode.ini".source = configFile; + }; + + security = { + polkit.enable = true; + wrappers = mkIf cfg.enableRenice { + gamemoded = { + source = "${pkgs.gamemode}/bin/gamemoded"; + capabilities = "cap_sys_nice+ep"; + }; + }; + }; + + systemd = { + packages = [ pkgs.gamemode ]; + user.services.gamemoded = { + # The upstream service already defines this, but doesn't get applied. + # See https://github.com/NixOS/nixpkgs/issues/81138 + wantedBy = [ "default.target" ]; + + # Use pkexec from the security wrappers to allow users to + # run libexec/cpugovctl & libexec/gpuclockctl as root with + # the the actions defined in share/polkit-1/actions. + # + # This uses a link farm to make sure other wrapped executables + # aren't included in PATH. + environment.PATH = mkForce (pkgs.linkFarm "pkexec" [ + { + name = "pkexec"; + path = "${config.security.wrapperDir}/pkexec"; + } + ]); + + serviceConfig.ExecStart = mkIf cfg.enableRenice [ + "" # Tell systemd to clear the existing ExecStart list, to prevent appending to it. + "${config.security.wrapperDir}/gamemoded" + ]; + }; + }; + }; + + meta = { + maintainers = with maintainers; [ kira-bruneau ]; + }; +} diff --git a/nixos/modules/services/backup/mysql-backup.nix b/nixos/modules/services/backup/mysql-backup.nix index 506ded5e9e8c..9fca21002733 100644 --- a/nixos/modules/services/backup/mysql-backup.nix +++ b/nixos/modules/services/backup/mysql-backup.nix @@ -4,7 +4,7 @@ with lib; let - inherit (pkgs) mysql gzip; + inherit (pkgs) mariadb gzip; cfg = config.services.mysqlBackup; defaultUser = "mysqlbackup"; @@ -20,7 +20,7 @@ let ''; backupDatabaseScript = db: '' dest="${cfg.location}/${db}.gz" - if ${mysql}/bin/mysqldump ${if cfg.singleTransaction then "--single-transaction" else ""} ${db} | ${gzip}/bin/gzip -c > $dest.tmp; then + if ${mariadb}/bin/mysqldump ${if cfg.singleTransaction then "--single-transaction" else ""} ${db} | ${gzip}/bin/gzip -c > $dest.tmp; then mv $dest.tmp $dest echo "Backed up to $dest" else diff --git a/nixos/modules/services/cluster/k3s/default.nix b/nixos/modules/services/cluster/k3s/default.nix index 5ab0286a38a8..300c182406ce 100644 --- a/nixos/modules/services/cluster/k3s/default.nix +++ b/nixos/modules/services/cluster/k3s/default.nix @@ -81,11 +81,14 @@ in # supporting it, or their bundled containerd systemd.enableUnifiedCgroupHierarchy = false; + environment.systemPackages = [ config.services.k3s.package ]; + systemd.services.k3s = { description = "k3s service"; after = [ "network.service" "firewall.service" ] ++ (optional cfg.docker "docker.service"); wants = [ "network.service" "firewall.service" ]; wantedBy = [ "multi-user.target" ]; + path = optional config.boot.zfs.enabled config.boot.zfs.package; serviceConfig = { # See: https://github.com/rancher/k3s/blob/dddbd16305284ae4bd14c0aade892412310d7edc/install.sh#L197 Type = if cfg.role == "agent" then "exec" else "notify"; diff --git a/nixos/modules/services/databases/mysql.nix b/nixos/modules/services/databases/mysql.nix index cf105daeb04e..2d8d613ed88e 100644 --- a/nixos/modules/services/databases/mysql.nix +++ b/nixos/modules/services/databases/mysql.nix @@ -34,7 +34,7 @@ in package = mkOption { type = types.package; - example = literalExample "pkgs.mysql"; + example = literalExample "pkgs.mariadb"; description = " Which MySQL derivation to use. MariaDB packages are supported too. "; diff --git a/nixos/modules/services/mail/roundcube.nix b/nixos/modules/services/mail/roundcube.nix index ee7aa7e22fb9..f9b63000473c 100644 --- a/nixos/modules/services/mail/roundcube.nix +++ b/nixos/modules/services/mail/roundcube.nix @@ -7,7 +7,7 @@ let fpm = config.services.phpfpm.pools.roundcube; localDB = cfg.database.host == "localhost"; user = cfg.database.username; - phpWithPspell = pkgs.php.withExtensions ({ enabled, all }: [ all.pspell ] ++ enabled); + phpWithPspell = pkgs.php74.withExtensions ({ enabled, all }: [ all.pspell ] ++ enabled); in { options.services.roundcube = { diff --git a/nixos/modules/services/misc/sourcehut/builds.nix b/nixos/modules/services/misc/sourcehut/builds.nix new file mode 100644 index 000000000000..e228665784e0 --- /dev/null +++ b/nixos/modules/services/misc/sourcehut/builds.nix @@ -0,0 +1,220 @@ +{ config, lib, pkgs, ... }: + +with lib; +let + cfg = config.services.sourcehut; + scfg = cfg.builds; + rcfg = config.services.redis; + iniKey = "builds.sr.ht"; + + drv = pkgs.sourcehut.buildsrht; +in +{ + options.services.sourcehut.builds = { + user = mkOption { + type = types.str; + default = "buildsrht"; + description = '' + User for builds.sr.ht. + ''; + }; + + port = mkOption { + type = types.port; + default = 5002; + description = '' + Port on which the "builds" module should listen. + ''; + }; + + database = mkOption { + type = types.str; + default = "builds.sr.ht"; + description = '' + PostgreSQL database name for builds.sr.ht. + ''; + }; + + statePath = mkOption { + type = types.path; + default = "${cfg.statePath}/buildsrht"; + description = '' + State path for builds.sr.ht. + ''; + }; + + enableWorker = mkOption { + type = types.bool; + default = false; + description = '' + Run workers for builds.sr.ht. + Perform manually on machine: `cd ${scfg.statePath}/images; docker build -t qemu -f qemu/Dockerfile .` + ''; + }; + + images = mkOption { + type = types.attrsOf (types.attrsOf (types.attrsOf types.package)); + default = { }; + example = lib.literalExample ''(let + # Pinning unstable to allow usage with flakes and limit rebuilds. + pkgs_unstable = builtins.fetchGit { + url = "https://github.com/NixOS/nixpkgs"; + rev = "ff96a0fa5635770390b184ae74debea75c3fd534"; + ref = "nixos-unstable"; + }; + image_from_nixpkgs = pkgs_unstable: (import ("${pkgs.sourcehut.buildsrht}/lib/images/nixos/image.nix") { + pkgs = (import pkgs_unstable {}); + }); + in + { + nixos.unstable.x86_64 = image_from_nixpkgs pkgs_unstable; + } + )''; + description = '' + Images for builds.sr.ht. Each package should be distro.release.arch and point to a /nix/store/package/root.img.qcow2. + ''; + }; + + }; + + config = with scfg; let + image_dirs = lib.lists.flatten ( + lib.attrsets.mapAttrsToList + (distro: revs: + lib.attrsets.mapAttrsToList + (rev: archs: + lib.attrsets.mapAttrsToList + (arch: image: + pkgs.runCommandNoCC "buildsrht-images" { } '' + mkdir -p $out/${distro}/${rev}/${arch} + ln -s ${image}/*.qcow2 $out/${distro}/${rev}/${arch}/root.img.qcow2 + '') + archs) + revs) + scfg.images); + image_dir_pre = pkgs.symlinkJoin { + name = "builds.sr.ht-worker-images-pre"; + paths = image_dirs ++ [ + "${pkgs.sourcehut.buildsrht}/lib/images" + ]; + }; + image_dir = pkgs.runCommandNoCC "builds.sr.ht-worker-images" { } '' + mkdir -p $out/images + cp -Lr ${image_dir_pre}/* $out/images + ''; + in + lib.mkIf (cfg.enable && elem "builds" cfg.services) { + users = { + users = { + "${user}" = { + isSystemUser = true; + group = user; + extraGroups = lib.optionals cfg.builds.enableWorker [ "docker" ]; + description = "builds.sr.ht user"; + }; + }; + + groups = { + "${user}" = { }; + }; + }; + + services.postgresql = { + authentication = '' + local ${database} ${user} trust + ''; + ensureDatabases = [ database ]; + ensureUsers = [ + { + name = user; + ensurePermissions = { "DATABASE \"${database}\"" = "ALL PRIVILEGES"; }; + } + ]; + }; + + systemd = { + tmpfiles.rules = [ + "d ${statePath} 0755 ${user} ${user} -" + ] ++ (lib.optionals cfg.builds.enableWorker + [ "d ${statePath}/logs 0775 ${user} ${user} - -" ] + ); + + services = { + buildsrht = import ./service.nix { inherit config pkgs lib; } scfg drv iniKey + { + after = [ "postgresql.service" "network.target" ]; + requires = [ "postgresql.service" ]; + wantedBy = [ "multi-user.target" ]; + + description = "builds.sr.ht website service"; + + serviceConfig.ExecStart = "${cfg.python}/bin/gunicorn ${drv.pname}.app:app -b ${cfg.address}:${toString port}"; + + # Hack to bypass this hack: https://git.sr.ht/~sircmpwn/core.sr.ht/tree/master/item/srht-update-profiles#L6 + } // { preStart = " "; }; + + buildsrht-worker = { + enable = scfg.enableWorker; + after = [ "postgresql.service" "network.target" ]; + requires = [ "postgresql.service" ]; + wantedBy = [ "multi-user.target" ]; + partOf = [ "buildsrht.service" ]; + description = "builds.sr.ht worker service"; + path = [ pkgs.openssh pkgs.docker ]; + serviceConfig = { + Type = "simple"; + User = user; + Group = "nginx"; + Restart = "always"; + }; + serviceConfig.ExecStart = "${pkgs.sourcehut.buildsrht}/bin/builds.sr.ht-worker"; + }; + }; + }; + + services.sourcehut.settings = { + # URL builds.sr.ht is being served at (protocol://domain) + "builds.sr.ht".origin = mkDefault "http://builds.${cfg.originBase}"; + # Address and port to bind the debug server to + "builds.sr.ht".debug-host = mkDefault "0.0.0.0"; + "builds.sr.ht".debug-port = mkDefault port; + # Configures the SQLAlchemy connection string for the database. + "builds.sr.ht".connection-string = mkDefault "postgresql:///${database}?user=${user}&host=/var/run/postgresql"; + # Set to "yes" to automatically run migrations on package upgrade. + "builds.sr.ht".migrate-on-upgrade = mkDefault "yes"; + # builds.sr.ht's OAuth client ID and secret for meta.sr.ht + # Register your client at meta.example.org/oauth + "builds.sr.ht".oauth-client-id = mkDefault null; + "builds.sr.ht".oauth-client-secret = mkDefault null; + # The redis connection used for the celery worker + "builds.sr.ht".redis = mkDefault "redis://${rcfg.bind}:${toString rcfg.port}/3"; + # The shell used for ssh + "builds.sr.ht".shell = mkDefault "runner-shell"; + # Register the builds.sr.ht dispatcher + "git.sr.ht::dispatch".${builtins.unsafeDiscardStringContext "${pkgs.sourcehut.buildsrht}/bin/buildsrht-keys"} = mkDefault "${user}:${user}"; + + # Location for build logs, images, and control command + } // lib.attrsets.optionalAttrs scfg.enableWorker { + # Default worker stores logs that are accessible via this address:port + "builds.sr.ht::worker".name = mkDefault "127.0.0.1:5020"; + "builds.sr.ht::worker".buildlogs = mkDefault "${scfg.statePath}/logs"; + "builds.sr.ht::worker".images = mkDefault "${image_dir}/images"; + "builds.sr.ht::worker".controlcmd = mkDefault "${image_dir}/images/control"; + "builds.sr.ht::worker".timeout = mkDefault "3m"; + }; + + services.nginx.virtualHosts."logs.${cfg.originBase}" = + if scfg.enableWorker then { + listen = with builtins; let address = split ":" cfg.settings."builds.sr.ht::worker".name; + in [{ addr = elemAt address 0; port = lib.toInt (elemAt address 2); }]; + locations."/logs".root = "${scfg.statePath}"; + } else { }; + + services.nginx.virtualHosts."builds.${cfg.originBase}" = { + forceSSL = true; + locations."/".proxyPass = "http://${cfg.address}:${toString port}"; + locations."/query".proxyPass = "http://${cfg.address}:${toString (port + 100)}"; + locations."/static".root = "${pkgs.sourcehut.buildsrht}/${pkgs.sourcehut.python.sitePackages}/buildsrht"; + }; + }; +} diff --git a/nixos/modules/services/misc/sourcehut/default.nix b/nixos/modules/services/misc/sourcehut/default.nix new file mode 100644 index 000000000000..9c812d6b043c --- /dev/null +++ b/nixos/modules/services/misc/sourcehut/default.nix @@ -0,0 +1,198 @@ +{ config, pkgs, lib, ... }: + +with lib; +let + cfg = config.services.sourcehut; + cfgIni = cfg.settings; + settingsFormat = pkgs.formats.ini { }; + + # Specialized python containing all the modules + python = pkgs.sourcehut.python.withPackages (ps: with ps; [ + gunicorn + # Sourcehut services + srht + buildsrht + dispatchsrht + gitsrht + hgsrht + hubsrht + listssrht + mansrht + metasrht + pastesrht + todosrht + ]); +in +{ + imports = + [ + ./git.nix + ./hg.nix + ./hub.nix + ./todo.nix + ./man.nix + ./meta.nix + ./paste.nix + ./builds.nix + ./lists.nix + ./dispatch.nix + (mkRemovedOptionModule [ "services" "sourcehut" "nginx" "enable" ] '' + The sourcehut module supports `nginx` as a local reverse-proxy by default and doesn't + support other reverse-proxies officially. + + However it's possible to use an alternative reverse-proxy by + + * disabling nginx + * adjusting the relevant settings for server addresses and ports directly + + Further details about this can be found in the `Sourcehut`-section of the NixOS-manual. + '') + ]; + + options.services.sourcehut = { + enable = mkOption { + type = types.bool; + default = false; + description = '' + Enable sourcehut - git hosting, continuous integration, mailing list, ticket tracking, + task dispatching, wiki and account management services + ''; + }; + + services = mkOption { + type = types.nonEmptyListOf (types.enum [ "builds" "dispatch" "git" "hub" "hg" "lists" "man" "meta" "paste" "todo" ]); + default = [ "man" "meta" "paste" ]; + example = [ "builds" "dispatch" "git" "hub" "hg" "lists" "man" "meta" "paste" "todo" ]; + description = '' + Services to enable on the sourcehut network. + ''; + }; + + originBase = mkOption { + type = types.str; + default = with config.networking; hostName + lib.optionalString (domain != null) ".${domain}"; + description = '' + Host name used by reverse-proxy and for default settings. Will host services at git."''${originBase}". For example: git.sr.ht + ''; + }; + + address = mkOption { + type = types.str; + default = "127.0.0.1"; + description = '' + Address to bind to. + ''; + }; + + python = mkOption { + internal = true; + type = types.package; + default = python; + description = '' + The python package to use. It should contain references to the *srht modules and also + gunicorn. + ''; + }; + + statePath = mkOption { + type = types.path; + default = "/var/lib/sourcehut"; + description = '' + Root state path for the sourcehut network. If left as the default value + this directory will automatically be created before the sourcehut server + starts, otherwise the sysadmin is responsible for ensuring the + directory exists with appropriate ownership and permissions. + ''; + }; + + settings = mkOption { + type = lib.types.submodule { + freeformType = settingsFormat.type; + }; + default = { }; + description = '' + The configuration for the sourcehut network. + ''; + }; + }; + + config = mkIf cfg.enable { + assertions = + [ + { + assertion = with cfgIni.webhooks; private-key != null && stringLength private-key == 44; + message = "The webhook's private key must be defined and of a 44 byte length."; + } + + { + assertion = hasAttrByPath [ "meta.sr.ht" "origin" ] cfgIni && cfgIni."meta.sr.ht".origin != null; + message = "meta.sr.ht's origin must be defined."; + } + ]; + + virtualisation.docker.enable = true; + environment.etc."sr.ht/config.ini".source = + settingsFormat.generate "sourcehut-config.ini" (mapAttrsRecursive + ( + path: v: if v == null then "" else v + ) + cfg.settings); + + environment.systemPackages = [ pkgs.sourcehut.coresrht ]; + + # PostgreSQL server + services.postgresql.enable = mkOverride 999 true; + # Mail server + services.postfix.enable = mkOverride 999 true; + # Cron daemon + services.cron.enable = mkOverride 999 true; + # Redis server + services.redis.enable = mkOverride 999 true; + services.redis.bind = mkOverride 999 "127.0.0.1"; + + services.sourcehut.settings = { + # The name of your network of sr.ht-based sites + "sr.ht".site-name = mkDefault "sourcehut"; + # The top-level info page for your site + "sr.ht".site-info = mkDefault "https://sourcehut.org"; + # {{ site-name }}, {{ site-blurb }} + "sr.ht".site-blurb = mkDefault "the hacker's forge"; + # If this != production, we add a banner to each page + "sr.ht".environment = mkDefault "development"; + # Contact information for the site owners + "sr.ht".owner-name = mkDefault "Drew DeVault"; + "sr.ht".owner-email = mkDefault "sir@cmpwn.com"; + # The source code for your fork of sr.ht + "sr.ht".source-url = mkDefault "https://git.sr.ht/~sircmpwn/srht"; + # A secret key to encrypt session cookies with + "sr.ht".secret-key = mkDefault null; + "sr.ht".global-domain = mkDefault null; + + # Outgoing SMTP settings + mail.smtp-host = mkDefault null; + mail.smtp-port = mkDefault null; + mail.smtp-user = mkDefault null; + mail.smtp-password = mkDefault null; + mail.smtp-from = mkDefault null; + # Application exceptions are emailed to this address + mail.error-to = mkDefault null; + mail.error-from = mkDefault null; + # Your PGP key information (DO NOT mix up pub and priv here) + # You must remove the password from your secret key, if present. + # You can do this with gpg --edit-key [key-id], then use the passwd + # command and do not enter a new password. + mail.pgp-privkey = mkDefault null; + mail.pgp-pubkey = mkDefault null; + mail.pgp-key-id = mkDefault null; + + # base64-encoded Ed25519 key for signing webhook payloads. This should be + # consistent for all *.sr.ht sites, as we'll use this key to verify signatures + # from other sites in your network. + # + # Use the srht-webhook-keygen command to generate a key. + webhooks.private-key = mkDefault null; + }; + }; + meta.doc = ./sourcehut.xml; + meta.maintainers = with maintainers; [ tomberek ]; +} diff --git a/nixos/modules/services/misc/sourcehut/dispatch.nix b/nixos/modules/services/misc/sourcehut/dispatch.nix new file mode 100644 index 000000000000..a9db17bebe8e --- /dev/null +++ b/nixos/modules/services/misc/sourcehut/dispatch.nix @@ -0,0 +1,125 @@ +{ config, lib, pkgs, ... }: + +with lib; +let + cfg = config.services.sourcehut; + cfgIni = cfg.settings; + scfg = cfg.dispatch; + iniKey = "dispatch.sr.ht"; + + drv = pkgs.sourcehut.dispatchsrht; +in +{ + options.services.sourcehut.dispatch = { + user = mkOption { + type = types.str; + default = "dispatchsrht"; + description = '' + User for dispatch.sr.ht. + ''; + }; + + port = mkOption { + type = types.port; + default = 5005; + description = '' + Port on which the "dispatch" module should listen. + ''; + }; + + database = mkOption { + type = types.str; + default = "dispatch.sr.ht"; + description = '' + PostgreSQL database name for dispatch.sr.ht. + ''; + }; + + statePath = mkOption { + type = types.path; + default = "${cfg.statePath}/dispatchsrht"; + description = '' + State path for dispatch.sr.ht. + ''; + }; + }; + + config = with scfg; lib.mkIf (cfg.enable && elem "dispatch" cfg.services) { + + users = { + users = { + "${user}" = { + isSystemUser = true; + group = user; + description = "dispatch.sr.ht user"; + }; + }; + + groups = { + "${user}" = { }; + }; + }; + + services.postgresql = { + authentication = '' + local ${database} ${user} trust + ''; + ensureDatabases = [ database ]; + ensureUsers = [ + { + name = user; + ensurePermissions = { "DATABASE \"${database}\"" = "ALL PRIVILEGES"; }; + } + ]; + }; + + systemd = { + tmpfiles.rules = [ + "d ${statePath} 0750 ${user} ${user} -" + ]; + + services.dispatchsrht = import ./service.nix { inherit config pkgs lib; } scfg drv iniKey { + after = [ "postgresql.service" "network.target" ]; + requires = [ "postgresql.service" ]; + wantedBy = [ "multi-user.target" ]; + + description = "dispatch.sr.ht website service"; + + serviceConfig.ExecStart = "${cfg.python}/bin/gunicorn ${drv.pname}.app:app -b ${cfg.address}:${toString port}"; + }; + }; + + services.sourcehut.settings = { + # URL dispatch.sr.ht is being served at (protocol://domain) + "dispatch.sr.ht".origin = mkDefault "http://dispatch.${cfg.originBase}"; + # Address and port to bind the debug server to + "dispatch.sr.ht".debug-host = mkDefault "0.0.0.0"; + "dispatch.sr.ht".debug-port = mkDefault port; + # Configures the SQLAlchemy connection string for the database. + "dispatch.sr.ht".connection-string = mkDefault "postgresql:///${database}?user=${user}&host=/var/run/postgresql"; + # Set to "yes" to automatically run migrations on package upgrade. + "dispatch.sr.ht".migrate-on-upgrade = mkDefault "yes"; + # dispatch.sr.ht's OAuth client ID and secret for meta.sr.ht + # Register your client at meta.example.org/oauth + "dispatch.sr.ht".oauth-client-id = mkDefault null; + "dispatch.sr.ht".oauth-client-secret = mkDefault null; + + # Github Integration + "dispatch.sr.ht::github".oauth-client-id = mkDefault null; + "dispatch.sr.ht::github".oauth-client-secret = mkDefault null; + + # Gitlab Integration + "dispatch.sr.ht::gitlab".enabled = mkDefault null; + "dispatch.sr.ht::gitlab".canonical-upstream = mkDefault "gitlab.com"; + "dispatch.sr.ht::gitlab".repo-cache = mkDefault "./repo-cache"; + # "dispatch.sr.ht::gitlab"."gitlab.com" = mkDefault "GitLab:application id:secret"; + }; + + services.nginx.virtualHosts."dispatch.${cfg.originBase}" = { + forceSSL = true; + locations."/".proxyPass = "http://${cfg.address}:${toString port}"; + locations."/query".proxyPass = "http://${cfg.address}:${toString (port + 100)}"; + locations."/static".root = "${pkgs.sourcehut.dispatchsrht}/${pkgs.sourcehut.python.sitePackages}/dispatchsrht"; + }; + }; +} diff --git a/nixos/modules/services/misc/sourcehut/git.nix b/nixos/modules/services/misc/sourcehut/git.nix new file mode 100644 index 000000000000..99b9aec06123 --- /dev/null +++ b/nixos/modules/services/misc/sourcehut/git.nix @@ -0,0 +1,214 @@ +{ config, lib, pkgs, ... }: + +with lib; +let + cfg = config.services.sourcehut; + scfg = cfg.git; + iniKey = "git.sr.ht"; + + rcfg = config.services.redis; + drv = pkgs.sourcehut.gitsrht; +in +{ + options.services.sourcehut.git = { + user = mkOption { + type = types.str; + visible = false; + internal = true; + readOnly = true; + default = "git"; + description = '' + User for git.sr.ht. + ''; + }; + + port = mkOption { + type = types.port; + default = 5001; + description = '' + Port on which the "git" module should listen. + ''; + }; + + database = mkOption { + type = types.str; + default = "git.sr.ht"; + description = '' + PostgreSQL database name for git.sr.ht. + ''; + }; + + statePath = mkOption { + type = types.path; + default = "${cfg.statePath}/gitsrht"; + description = '' + State path for git.sr.ht. + ''; + }; + + package = mkOption { + type = types.package; + default = pkgs.git; + example = literalExample "pkgs.gitFull"; + description = '' + Git package for git.sr.ht. This can help silence collisions. + ''; + }; + }; + + config = with scfg; lib.mkIf (cfg.enable && elem "git" cfg.services) { + # sshd refuses to run with `Unsafe AuthorizedKeysCommand ... bad ownership or modes for directory /nix/store` + environment.etc."ssh/gitsrht-dispatch" = { + mode = "0755"; + text = '' + #! ${pkgs.stdenv.shell} + ${cfg.python}/bin/gitsrht-dispatch "$@" + ''; + }; + + # Needs this in the $PATH when sshing into the server + environment.systemPackages = [ cfg.git.package ]; + + users = { + users = { + "${user}" = { + isSystemUser = true; + group = user; + # https://stackoverflow.com/questions/22314298/git-push-results-in-fatal-protocol-error-bad-line-length-character-this + # Probably could use gitsrht-shell if output is restricted to just parameters... + shell = pkgs.bash; + description = "git.sr.ht user"; + }; + }; + + groups = { + "${user}" = { }; + }; + }; + + services = { + cron.systemCronJobs = [ "*/20 * * * * ${cfg.python}/bin/gitsrht-periodic" ]; + fcgiwrap.enable = true; + + openssh.authorizedKeysCommand = ''/etc/ssh/gitsrht-dispatch "%u" "%h" "%t" "%k"''; + openssh.authorizedKeysCommandUser = "root"; + openssh.extraConfig = '' + PermitUserEnvironment SRHT_* + ''; + + postgresql = { + authentication = '' + local ${database} ${user} trust + ''; + ensureDatabases = [ database ]; + ensureUsers = [ + { + name = user; + ensurePermissions = { "DATABASE \"${database}\"" = "ALL PRIVILEGES"; }; + } + ]; + }; + }; + + systemd = { + tmpfiles.rules = [ + # /var/log is owned by root + "f /var/log/git-srht-shell 0644 ${user} ${user} -" + + "d ${statePath} 0750 ${user} ${user} -" + "d ${cfg.settings."${iniKey}".repos} 2755 ${user} ${user} -" + ]; + + services = { + gitsrht = import ./service.nix { inherit config pkgs lib; } scfg drv iniKey { + after = [ "redis.service" "postgresql.service" "network.target" ]; + requires = [ "redis.service" "postgresql.service" ]; + wantedBy = [ "multi-user.target" ]; + + # Needs internally to create repos at the very least + path = [ pkgs.git ]; + description = "git.sr.ht website service"; + + serviceConfig.ExecStart = "${cfg.python}/bin/gunicorn ${drv.pname}.app:app -b ${cfg.address}:${toString port}"; + }; + + gitsrht-webhooks = { + after = [ "postgresql.service" "network.target" ]; + requires = [ "postgresql.service" ]; + wantedBy = [ "multi-user.target" ]; + + description = "git.sr.ht webhooks service"; + serviceConfig = { + Type = "simple"; + User = user; + Restart = "always"; + }; + + serviceConfig.ExecStart = "${cfg.python}/bin/celery -A ${drv.pname}.webhooks worker --loglevel=info"; + }; + }; + }; + + services.sourcehut.settings = { + # URL git.sr.ht is being served at (protocol://domain) + "git.sr.ht".origin = mkDefault "http://git.${cfg.originBase}"; + # Address and port to bind the debug server to + "git.sr.ht".debug-host = mkDefault "0.0.0.0"; + "git.sr.ht".debug-port = mkDefault port; + # Configures the SQLAlchemy connection string for the database. + "git.sr.ht".connection-string = mkDefault "postgresql:///${database}?user=${user}&host=/var/run/postgresql"; + # Set to "yes" to automatically run migrations on package upgrade. + "git.sr.ht".migrate-on-upgrade = mkDefault "yes"; + # The redis connection used for the webhooks worker + "git.sr.ht".webhooks = mkDefault "redis://${rcfg.bind}:${toString rcfg.port}/1"; + + # A post-update script which is installed in every git repo. + "git.sr.ht".post-update-script = mkDefault "${pkgs.sourcehut.gitsrht}/bin/gitsrht-update-hook"; + + # git.sr.ht's OAuth client ID and secret for meta.sr.ht + # Register your client at meta.example.org/oauth + "git.sr.ht".oauth-client-id = mkDefault null; + "git.sr.ht".oauth-client-secret = mkDefault null; + # Path to git repositories on disk + "git.sr.ht".repos = mkDefault "/var/lib/git"; + + "git.sr.ht".outgoing-domain = mkDefault "http://git.${cfg.originBase}"; + + # The authorized keys hook uses this to dispatch to various handlers + # The format is a program to exec into as the key, and the user to match as the + # value. When someone tries to log in as this user, this program is executed + # and is expected to omit an AuthorizedKeys file. + # + # Discard of the string context is in order to allow derivation-derived strings. + # This is safe if the relevant package is installed which will be the case if the setting is utilized. + "git.sr.ht::dispatch".${builtins.unsafeDiscardStringContext "${pkgs.sourcehut.gitsrht}/bin/gitsrht-keys"} = mkDefault "${user}:${user}"; + }; + + services.nginx.virtualHosts."git.${cfg.originBase}" = { + forceSSL = true; + locations."/".proxyPass = "http://${cfg.address}:${toString port}"; + locations."/query".proxyPass = "http://${cfg.address}:${toString (port + 100)}"; + locations."/static".root = "${pkgs.sourcehut.gitsrht}/${pkgs.sourcehut.python.sitePackages}/gitsrht"; + extraConfig = '' + location = /authorize { + proxy_pass http://${cfg.address}:${toString port}; + proxy_pass_request_body off; + proxy_set_header Content-Length ""; + proxy_set_header X-Original-URI $request_uri; + } + location ~ ^/([^/]+)/([^/]+)/(HEAD|info/refs|objects/info/.*|git-upload-pack).*$ { + auth_request /authorize; + root /var/lib/git; + fastcgi_pass unix:/run/fcgiwrap.sock; + fastcgi_param SCRIPT_FILENAME ${pkgs.git}/bin/git-http-backend; + fastcgi_param PATH_INFO $uri; + fastcgi_param GIT_PROJECT_ROOT $document_root; + fastcgi_read_timeout 500s; + include ${pkgs.nginx}/conf/fastcgi_params; + gzip off; + } + ''; + + }; + }; +} diff --git a/nixos/modules/services/misc/sourcehut/hg.nix b/nixos/modules/services/misc/sourcehut/hg.nix new file mode 100644 index 000000000000..5cd36bb04550 --- /dev/null +++ b/nixos/modules/services/misc/sourcehut/hg.nix @@ -0,0 +1,173 @@ +{ config, lib, pkgs, ... }: + +with lib; +let + cfg = config.services.sourcehut; + scfg = cfg.hg; + iniKey = "hg.sr.ht"; + + rcfg = config.services.redis; + drv = pkgs.sourcehut.hgsrht; +in +{ + options.services.sourcehut.hg = { + user = mkOption { + type = types.str; + internal = true; + readOnly = true; + default = "hg"; + description = '' + User for hg.sr.ht. + ''; + }; + + port = mkOption { + type = types.port; + default = 5010; + description = '' + Port on which the "hg" module should listen. + ''; + }; + + database = mkOption { + type = types.str; + default = "hg.sr.ht"; + description = '' + PostgreSQL database name for hg.sr.ht. + ''; + }; + + statePath = mkOption { + type = types.path; + default = "${cfg.statePath}/hgsrht"; + description = '' + State path for hg.sr.ht. + ''; + }; + + cloneBundles = mkOption { + type = types.bool; + default = false; + description = '' + Generate clonebundles (which require more disk space but dramatically speed up cloning large repositories). + ''; + }; + }; + + config = with scfg; lib.mkIf (cfg.enable && elem "hg" cfg.services) { + # In case it ever comes into being + environment.etc."ssh/hgsrht-dispatch" = { + mode = "0755"; + text = '' + #! ${pkgs.stdenv.shell} + ${cfg.python}/bin/gitsrht-dispatch $@ + ''; + }; + + environment.systemPackages = [ pkgs.mercurial ]; + + users = { + users = { + "${user}" = { + isSystemUser = true; + group = user; + # Assuming hg.sr.ht needs this too + shell = pkgs.bash; + description = "hg.sr.ht user"; + }; + }; + + groups = { + "${user}" = { }; + }; + }; + + services = { + cron.systemCronJobs = [ "*/20 * * * * ${cfg.python}/bin/hgsrht-periodic" ] + ++ optional cloneBundles "0 * * * * ${cfg.python}/bin/hgsrht-clonebundles"; + + openssh.authorizedKeysCommand = ''/etc/ssh/hgsrht-dispatch "%u" "%h" "%t" "%k"''; + openssh.authorizedKeysCommandUser = "root"; + openssh.extraConfig = '' + PermitUserEnvironment SRHT_* + ''; + + postgresql = { + authentication = '' + local ${database} ${user} trust + ''; + ensureDatabases = [ database ]; + ensureUsers = [ + { + name = user; + ensurePermissions = { "DATABASE \"${database}\"" = "ALL PRIVILEGES"; }; + } + ]; + }; + }; + + systemd = { + tmpfiles.rules = [ + # /var/log is owned by root + "f /var/log/hg-srht-shell 0644 ${user} ${user} -" + + "d ${statePath} 0750 ${user} ${user} -" + "d ${cfg.settings."${iniKey}".repos} 2755 ${user} ${user} -" + ]; + + services.hgsrht = import ./service.nix { inherit config pkgs lib; } scfg drv iniKey { + after = [ "redis.service" "postgresql.service" "network.target" ]; + requires = [ "redis.service" "postgresql.service" ]; + wantedBy = [ "multi-user.target" ]; + + path = [ pkgs.mercurial ]; + description = "hg.sr.ht website service"; + + serviceConfig.ExecStart = "${cfg.python}/bin/gunicorn ${drv.pname}.app:app -b ${cfg.address}:${toString port}"; + }; + }; + + services.sourcehut.settings = { + # URL hg.sr.ht is being served at (protocol://domain) + "hg.sr.ht".origin = mkDefault "http://hg.${cfg.originBase}"; + # Address and port to bind the debug server to + "hg.sr.ht".debug-host = mkDefault "0.0.0.0"; + "hg.sr.ht".debug-port = mkDefault port; + # Configures the SQLAlchemy connection string for the database. + "hg.sr.ht".connection-string = mkDefault "postgresql:///${database}?user=${user}&host=/var/run/postgresql"; + # The redis connection used for the webhooks worker + "hg.sr.ht".webhooks = mkDefault "redis://${rcfg.bind}:${toString rcfg.port}/1"; + # A post-update script which is installed in every mercurial repo. + "hg.sr.ht".changegroup-script = mkDefault "${cfg.python}/bin/hgsrht-hook-changegroup"; + # hg.sr.ht's OAuth client ID and secret for meta.sr.ht + # Register your client at meta.example.org/oauth + "hg.sr.ht".oauth-client-id = mkDefault null; + "hg.sr.ht".oauth-client-secret = mkDefault null; + # Path to mercurial repositories on disk + "hg.sr.ht".repos = mkDefault "/var/lib/hg"; + # Path to the srht mercurial extension + # (defaults to where the hgsrht code is) + # "hg.sr.ht".srhtext = mkDefault null; + # .hg/store size (in MB) past which the nightly job generates clone bundles. + # "hg.sr.ht".clone_bundle_threshold = mkDefault 50; + # Path to hg-ssh (if not in $PATH) + # "hg.sr.ht".hg_ssh = mkDefault /path/to/hg-ssh; + + # The authorized keys hook uses this to dispatch to various handlers + # The format is a program to exec into as the key, and the user to match as the + # value. When someone tries to log in as this user, this program is executed + # and is expected to omit an AuthorizedKeys file. + # + # Uncomment the relevant lines to enable the various sr.ht dispatchers. + "hg.sr.ht::dispatch"."/run/current-system/sw/bin/hgsrht-keys" = mkDefault "${user}:${user}"; + }; + + # TODO: requires testing and addition of hg-specific requirements + services.nginx.virtualHosts."hg.${cfg.originBase}" = { + forceSSL = true; + locations."/".proxyPass = "http://${cfg.address}:${toString port}"; + locations."/query".proxyPass = "http://${cfg.address}:${toString (port + 100)}"; + locations."/static".root = "${pkgs.sourcehut.hgsrht}/${pkgs.sourcehut.python.sitePackages}/hgsrht"; + }; + }; +} diff --git a/nixos/modules/services/misc/sourcehut/hub.nix b/nixos/modules/services/misc/sourcehut/hub.nix new file mode 100644 index 000000000000..be3ea21011c7 --- /dev/null +++ b/nixos/modules/services/misc/sourcehut/hub.nix @@ -0,0 +1,118 @@ +{ config, lib, pkgs, ... }: + +with lib; +let + cfg = config.services.sourcehut; + cfgIni = cfg.settings; + scfg = cfg.hub; + iniKey = "hub.sr.ht"; + + drv = pkgs.sourcehut.hubsrht; +in +{ + options.services.sourcehut.hub = { + user = mkOption { + type = types.str; + default = "hubsrht"; + description = '' + User for hub.sr.ht. + ''; + }; + + port = mkOption { + type = types.port; + default = 5014; + description = '' + Port on which the "hub" module should listen. + ''; + }; + + database = mkOption { + type = types.str; + default = "hub.sr.ht"; + description = '' + PostgreSQL database name for hub.sr.ht. + ''; + }; + + statePath = mkOption { + type = types.path; + default = "${cfg.statePath}/hubsrht"; + description = '' + State path for hub.sr.ht. + ''; + }; + }; + + config = with scfg; lib.mkIf (cfg.enable && elem "hub" cfg.services) { + users = { + users = { + "${user}" = { + isSystemUser = true; + group = user; + description = "hub.sr.ht user"; + }; + }; + + groups = { + "${user}" = { }; + }; + }; + + services.postgresql = { + authentication = '' + local ${database} ${user} trust + ''; + ensureDatabases = [ database ]; + ensureUsers = [ + { + name = user; + ensurePermissions = { "DATABASE \"${database}\"" = "ALL PRIVILEGES"; }; + } + ]; + }; + + systemd = { + tmpfiles.rules = [ + "d ${statePath} 0750 ${user} ${user} -" + ]; + + services.hubsrht = import ./service.nix { inherit config pkgs lib; } scfg drv iniKey { + after = [ "postgresql.service" "network.target" ]; + requires = [ "postgresql.service" ]; + wantedBy = [ "multi-user.target" ]; + + description = "hub.sr.ht website service"; + + serviceConfig.ExecStart = "${cfg.python}/bin/gunicorn ${drv.pname}.app:app -b ${cfg.address}:${toString port}"; + }; + }; + + services.sourcehut.settings = { + # URL hub.sr.ht is being served at (protocol://domain) + "hub.sr.ht".origin = mkDefault "http://hub.${cfg.originBase}"; + # Address and port to bind the debug server to + "hub.sr.ht".debug-host = mkDefault "0.0.0.0"; + "hub.sr.ht".debug-port = mkDefault port; + # Configures the SQLAlchemy connection string for the database. + "hub.sr.ht".connection-string = mkDefault "postgresql:///${database}?user=${user}&host=/var/run/postgresql"; + # Set to "yes" to automatically run migrations on package upgrade. + "hub.sr.ht".migrate-on-upgrade = mkDefault "yes"; + # hub.sr.ht's OAuth client ID and secret for meta.sr.ht + # Register your client at meta.example.org/oauth + "hub.sr.ht".oauth-client-id = mkDefault null; + "hub.sr.ht".oauth-client-secret = mkDefault null; + }; + + services.nginx.virtualHosts."${cfg.originBase}" = { + forceSSL = true; + locations."/".proxyPass = "http://${cfg.address}:${toString port}"; + locations."/query".proxyPass = "http://${cfg.address}:${toString (port + 100)}"; + locations."/static".root = "${pkgs.sourcehut.hubsrht}/${pkgs.sourcehut.python.sitePackages}/hubsrht"; + }; + services.nginx.virtualHosts."hub.${cfg.originBase}" = { + globalRedirect = "${cfg.originBase}"; + forceSSL = true; + }; + }; +} diff --git a/nixos/modules/services/misc/sourcehut/lists.nix b/nixos/modules/services/misc/sourcehut/lists.nix new file mode 100644 index 000000000000..7b1fe9fd4630 --- /dev/null +++ b/nixos/modules/services/misc/sourcehut/lists.nix @@ -0,0 +1,185 @@ +# Email setup is fairly involved, useful references: +# https://drewdevault.com/2018/08/05/Local-mail-server.html + +{ config, lib, pkgs, ... }: + +with lib; +let + cfg = config.services.sourcehut; + cfgIni = cfg.settings; + scfg = cfg.lists; + iniKey = "lists.sr.ht"; + + rcfg = config.services.redis; + drv = pkgs.sourcehut.listssrht; +in +{ + options.services.sourcehut.lists = { + user = mkOption { + type = types.str; + default = "listssrht"; + description = '' + User for lists.sr.ht. + ''; + }; + + port = mkOption { + type = types.port; + default = 5006; + description = '' + Port on which the "lists" module should listen. + ''; + }; + + database = mkOption { + type = types.str; + default = "lists.sr.ht"; + description = '' + PostgreSQL database name for lists.sr.ht. + ''; + }; + + statePath = mkOption { + type = types.path; + default = "${cfg.statePath}/listssrht"; + description = '' + State path for lists.sr.ht. + ''; + }; + }; + + config = with scfg; lib.mkIf (cfg.enable && elem "lists" cfg.services) { + users = { + users = { + "${user}" = { + isSystemUser = true; + group = user; + extraGroups = [ "postfix" ]; + description = "lists.sr.ht user"; + }; + }; + groups = { + "${user}" = { }; + }; + }; + + services.postgresql = { + authentication = '' + local ${database} ${user} trust + ''; + ensureDatabases = [ database ]; + ensureUsers = [ + { + name = user; + ensurePermissions = { "DATABASE \"${database}\"" = "ALL PRIVILEGES"; }; + } + ]; + }; + + systemd = { + tmpfiles.rules = [ + "d ${statePath} 0750 ${user} ${user} -" + ]; + + services = { + listssrht = import ./service.nix { inherit config pkgs lib; } scfg drv iniKey { + after = [ "postgresql.service" "network.target" ]; + requires = [ "postgresql.service" ]; + wantedBy = [ "multi-user.target" ]; + + description = "lists.sr.ht website service"; + + serviceConfig.ExecStart = "${cfg.python}/bin/gunicorn ${drv.pname}.app:app -b ${cfg.address}:${toString port}"; + }; + + listssrht-process = { + after = [ "postgresql.service" "network.target" ]; + requires = [ "postgresql.service" ]; + wantedBy = [ "multi-user.target" ]; + + description = "lists.sr.ht process service"; + serviceConfig = { + Type = "simple"; + User = user; + Restart = "always"; + ExecStart = "${cfg.python}/bin/celery -A ${drv.pname}.process worker --loglevel=info"; + }; + }; + + listssrht-lmtp = { + after = [ "postgresql.service" "network.target" ]; + requires = [ "postgresql.service" ]; + wantedBy = [ "multi-user.target" ]; + + description = "lists.sr.ht process service"; + serviceConfig = { + Type = "simple"; + User = user; + Restart = "always"; + ExecStart = "${cfg.python}/bin/listssrht-lmtp"; + }; + }; + + + listssrht-webhooks = { + after = [ "postgresql.service" "network.target" ]; + requires = [ "postgresql.service" ]; + wantedBy = [ "multi-user.target" ]; + + description = "lists.sr.ht webhooks service"; + serviceConfig = { + Type = "simple"; + User = user; + Restart = "always"; + ExecStart = "${cfg.python}/bin/celery -A ${drv.pname}.webhooks worker --loglevel=info"; + }; + }; + }; + }; + + services.sourcehut.settings = { + # URL lists.sr.ht is being served at (protocol://domain) + "lists.sr.ht".origin = mkDefault "http://lists.${cfg.originBase}"; + # Address and port to bind the debug server to + "lists.sr.ht".debug-host = mkDefault "0.0.0.0"; + "lists.sr.ht".debug-port = mkDefault port; + # Configures the SQLAlchemy connection string for the database. + "lists.sr.ht".connection-string = mkDefault "postgresql:///${database}?user=${user}&host=/var/run/postgresql"; + # Set to "yes" to automatically run migrations on package upgrade. + "lists.sr.ht".migrate-on-upgrade = mkDefault "yes"; + # lists.sr.ht's OAuth client ID and secret for meta.sr.ht + # Register your client at meta.example.org/oauth + "lists.sr.ht".oauth-client-id = mkDefault null; + "lists.sr.ht".oauth-client-secret = mkDefault null; + # Outgoing email for notifications generated by users + "lists.sr.ht".notify-from = mkDefault "CHANGEME@example.org"; + # The redis connection used for the webhooks worker + "lists.sr.ht".webhooks = mkDefault "redis://${rcfg.bind}:${toString rcfg.port}/2"; + # The redis connection used for the celery worker + "lists.sr.ht".redis = mkDefault "redis://${rcfg.bind}:${toString rcfg.port}/4"; + # Network-key + "lists.sr.ht".network-key = mkDefault null; + # Allow creation + "lists.sr.ht".allow-new-lists = mkDefault "no"; + # Posting Domain + "lists.sr.ht".posting-domain = mkDefault "lists.${cfg.originBase}"; + + # Path for the lmtp daemon's unix socket. Direct incoming mail to this socket. + # Alternatively, specify IP:PORT and an SMTP server will be run instead. + "lists.sr.ht::worker".sock = mkDefault "/tmp/lists.sr.ht-lmtp.sock"; + # The lmtp daemon will make the unix socket group-read/write for users in this + # group. + "lists.sr.ht::worker".sock-group = mkDefault "postfix"; + "lists.sr.ht::worker".reject-url = mkDefault "https://man.sr.ht/lists.sr.ht/etiquette.md"; + "lists.sr.ht::worker".reject-mimetypes = mkDefault "text/html"; + + }; + + services.nginx.virtualHosts."lists.${cfg.originBase}" = { + forceSSL = true; + locations."/".proxyPass = "http://${cfg.address}:${toString port}"; + locations."/query".proxyPass = "http://${cfg.address}:${toString (port + 100)}"; + locations."/static".root = "${pkgs.sourcehut.listssrht}/${pkgs.sourcehut.python.sitePackages}/listssrht"; + }; + }; +} diff --git a/nixos/modules/services/misc/sourcehut/man.nix b/nixos/modules/services/misc/sourcehut/man.nix new file mode 100644 index 000000000000..7693396d187c --- /dev/null +++ b/nixos/modules/services/misc/sourcehut/man.nix @@ -0,0 +1,122 @@ +{ config, lib, pkgs, ... }: + +with lib; +let + cfg = config.services.sourcehut; + cfgIni = cfg.settings; + scfg = cfg.man; + iniKey = "man.sr.ht"; + + drv = pkgs.sourcehut.mansrht; +in +{ + options.services.sourcehut.man = { + user = mkOption { + type = types.str; + default = "mansrht"; + description = '' + User for man.sr.ht. + ''; + }; + + port = mkOption { + type = types.port; + default = 5004; + description = '' + Port on which the "man" module should listen. + ''; + }; + + database = mkOption { + type = types.str; + default = "man.sr.ht"; + description = '' + PostgreSQL database name for man.sr.ht. + ''; + }; + + statePath = mkOption { + type = types.path; + default = "${cfg.statePath}/mansrht"; + description = '' + State path for man.sr.ht. + ''; + }; + }; + + config = with scfg; lib.mkIf (cfg.enable && elem "man" cfg.services) { + assertions = + [ + { + assertion = hasAttrByPath [ "git.sr.ht" "oauth-client-id" ] cfgIni; + message = "man.sr.ht needs access to git.sr.ht."; + } + ]; + + users = { + users = { + "${user}" = { + isSystemUser = true; + group = user; + description = "man.sr.ht user"; + }; + }; + + groups = { + "${user}" = { }; + }; + }; + + services.postgresql = { + authentication = '' + local ${database} ${user} trust + ''; + ensureDatabases = [ database ]; + ensureUsers = [ + { + name = user; + ensurePermissions = { "DATABASE \"${database}\"" = "ALL PRIVILEGES"; }; + } + ]; + }; + + systemd = { + tmpfiles.rules = [ + "d ${statePath} 0750 ${user} ${user} -" + ]; + + services.mansrht = import ./service.nix { inherit config pkgs lib; } scfg drv iniKey { + after = [ "postgresql.service" "network.target" ]; + requires = [ "postgresql.service" ]; + wantedBy = [ "multi-user.target" ]; + + description = "man.sr.ht website service"; + + serviceConfig.ExecStart = "${cfg.python}/bin/gunicorn ${drv.pname}.app:app -b ${cfg.address}:${toString port}"; + }; + }; + + services.sourcehut.settings = { + # URL man.sr.ht is being served at (protocol://domain) + "man.sr.ht".origin = mkDefault "http://man.${cfg.originBase}"; + # Address and port to bind the debug server to + "man.sr.ht".debug-host = mkDefault "0.0.0.0"; + "man.sr.ht".debug-port = mkDefault port; + # Configures the SQLAlchemy connection string for the database. + "man.sr.ht".connection-string = mkDefault "postgresql:///${database}?user=${user}&host=/var/run/postgresql"; + # Set to "yes" to automatically run migrations on package upgrade. + "man.sr.ht".migrate-on-upgrade = mkDefault "yes"; + # man.sr.ht's OAuth client ID and secret for meta.sr.ht + # Register your client at meta.example.org/oauth + "man.sr.ht".oauth-client-id = mkDefault null; + "man.sr.ht".oauth-client-secret = mkDefault null; + }; + + services.nginx.virtualHosts."man.${cfg.originBase}" = { + forceSSL = true; + locations."/".proxyPass = "http://${cfg.address}:${toString port}"; + locations."/query".proxyPass = "http://${cfg.address}:${toString (port + 100)}"; + locations."/static".root = "${pkgs.sourcehut.mansrht}/${pkgs.sourcehut.python.sitePackages}/mansrht"; + }; + }; +} diff --git a/nixos/modules/services/misc/sourcehut/meta.nix b/nixos/modules/services/misc/sourcehut/meta.nix new file mode 100644 index 000000000000..56127a824eb4 --- /dev/null +++ b/nixos/modules/services/misc/sourcehut/meta.nix @@ -0,0 +1,211 @@ +{ config, lib, pkgs, ... }: + +with lib; +let + cfg = config.services.sourcehut; + cfgIni = cfg.settings; + scfg = cfg.meta; + iniKey = "meta.sr.ht"; + + rcfg = config.services.redis; + drv = pkgs.sourcehut.metasrht; +in +{ + options.services.sourcehut.meta = { + user = mkOption { + type = types.str; + default = "metasrht"; + description = '' + User for meta.sr.ht. + ''; + }; + + port = mkOption { + type = types.port; + default = 5000; + description = '' + Port on which the "meta" module should listen. + ''; + }; + + database = mkOption { + type = types.str; + default = "meta.sr.ht"; + description = '' + PostgreSQL database name for meta.sr.ht. + ''; + }; + + statePath = mkOption { + type = types.path; + default = "${cfg.statePath}/metasrht"; + description = '' + State path for meta.sr.ht. + ''; + }; + }; + + config = with scfg; lib.mkIf (cfg.enable && elem "meta" cfg.services) { + assertions = + [ + { + assertion = with cfgIni."meta.sr.ht::billing"; enabled == "yes" -> (stripe-public-key != null && stripe-secret-key != null); + message = "If meta.sr.ht::billing is enabled, the keys should be defined."; + } + ]; + + users = { + users = { + ${user} = { + isSystemUser = true; + group = user; + description = "meta.sr.ht user"; + }; + }; + + groups = { + "${user}" = { }; + }; + }; + + services.cron.systemCronJobs = [ "0 0 * * * ${cfg.python}/bin/metasrht-daily" ]; + services.postgresql = { + authentication = '' + local ${database} ${user} trust + ''; + ensureDatabases = [ database ]; + ensureUsers = [ + { + name = user; + ensurePermissions = { "DATABASE \"${database}\"" = "ALL PRIVILEGES"; }; + } + ]; + }; + + systemd = { + tmpfiles.rules = [ + "d ${statePath} 0750 ${user} ${user} -" + ]; + + services = { + metasrht = import ./service.nix { inherit config pkgs lib; } scfg drv iniKey { + after = [ "postgresql.service" "network.target" ]; + requires = [ "postgresql.service" ]; + wantedBy = [ "multi-user.target" ]; + + description = "meta.sr.ht website service"; + + preStart = '' + # Configure client(s) as "preauthorized" + ${concatMapStringsSep "\n\n" + (attr: '' + if ! test -e "${statePath}/${attr}.oauth" || [ "$(cat ${statePath}/${attr}.oauth)" != "${cfgIni."${attr}".oauth-client-id}" ]; then + # Configure ${attr}'s OAuth client as "preauthorized" + psql ${database} \ + -c "UPDATE oauthclient SET preauthorized = true WHERE client_id = '${cfgIni."${attr}".oauth-client-id}'" + + printf "%s" "${cfgIni."${attr}".oauth-client-id}" > "${statePath}/${attr}.oauth" + fi + '') + (builtins.attrNames (filterAttrs + (k: v: !(hasInfix "::" k) && builtins.hasAttr "oauth-client-id" v && v.oauth-client-id != null) + cfg.settings))} + ''; + + serviceConfig.ExecStart = "${cfg.python}/bin/gunicorn ${drv.pname}.app:app -b ${cfg.address}:${toString port}"; + }; + + metasrht-api = import ./service.nix { inherit config pkgs lib; } scfg drv iniKey { + after = [ "postgresql.service" "network.target" ]; + requires = [ "postgresql.service" ]; + wantedBy = [ "multi-user.target" ]; + + description = "meta.sr.ht api service"; + + preStart = '' + # Configure client(s) as "preauthorized" + ${concatMapStringsSep "\n\n" + (attr: '' + if ! test -e "${statePath}/${attr}.oauth" || [ "$(cat ${statePath}/${attr}.oauth)" != "${cfgIni."${attr}".oauth-client-id}" ]; then + # Configure ${attr}'s OAuth client as "preauthorized" + psql ${database} \ + -c "UPDATE oauthclient SET preauthorized = true WHERE client_id = '${cfgIni."${attr}".oauth-client-id}'" + + printf "%s" "${cfgIni."${attr}".oauth-client-id}" > "${statePath}/${attr}.oauth" + fi + '') + (builtins.attrNames (filterAttrs + (k: v: !(hasInfix "::" k) && builtins.hasAttr "oauth-client-id" v && v.oauth-client-id != null) + cfg.settings))} + ''; + + serviceConfig.ExecStart = "${pkgs.sourcehut.metasrht}/bin/metasrht-api -b :${toString (port + 100)}"; + }; + + metasrht-webhooks = { + after = [ "postgresql.service" "network.target" ]; + requires = [ "postgresql.service" ]; + wantedBy = [ "multi-user.target" ]; + + description = "meta.sr.ht webhooks service"; + serviceConfig = { + Type = "simple"; + User = user; + Restart = "always"; + ExecStart = "${cfg.python}/bin/celery -A ${drv.pname}.webhooks worker --loglevel=info"; + }; + + }; + }; + }; + + services.sourcehut.settings = { + # URL meta.sr.ht is being served at (protocol://domain) + "meta.sr.ht".origin = mkDefault "https://meta.${cfg.originBase}"; + # Address and port to bind the debug server to + "meta.sr.ht".debug-host = mkDefault "0.0.0.0"; + "meta.sr.ht".debug-port = mkDefault port; + # Configures the SQLAlchemy connection string for the database. + "meta.sr.ht".connection-string = mkDefault "postgresql:///${database}?user=${user}&host=/var/run/postgresql"; + # Set to "yes" to automatically run migrations on package upgrade. + "meta.sr.ht".migrate-on-upgrade = mkDefault "yes"; + # If "yes", the user will be sent the stock sourcehut welcome emails after + # signup (requires cron to be configured properly). These are specific to the + # sr.ht instance so you probably want to patch these before enabling this. + "meta.sr.ht".welcome-emails = mkDefault "no"; + + # The redis connection used for the webhooks worker + "meta.sr.ht".webhooks = mkDefault "redis://${rcfg.bind}:${toString rcfg.port}/6"; + + # If "no", public registration will not be permitted. + "meta.sr.ht::settings".registration = mkDefault "no"; + # Where to redirect new users upon registration + "meta.sr.ht::settings".onboarding-redirect = mkDefault "https://meta.${cfg.originBase}"; + # How many invites each user is issued upon registration (only applicable if + # open registration is disabled) + "meta.sr.ht::settings".user-invites = mkDefault 5; + + # Origin URL for API, 100 more than web + "meta.sr.ht".api-origin = mkDefault "http://localhost:5100"; + + # You can add aliases for the client IDs of commonly used OAuth clients here. + # + # Example: + "meta.sr.ht::aliases" = mkDefault { }; + # "meta.sr.ht::aliases"."git.sr.ht" = 12345; + + # "yes" to enable the billing system + "meta.sr.ht::billing".enabled = mkDefault "no"; + # Get your keys at https://dashboard.stripe.com/account/apikeys + "meta.sr.ht::billing".stripe-public-key = mkDefault null; + "meta.sr.ht::billing".stripe-secret-key = mkDefault null; + }; + + services.nginx.virtualHosts."meta.${cfg.originBase}" = { + forceSSL = true; + locations."/".proxyPass = "http://${cfg.address}:${toString port}"; + locations."/query".proxyPass = "http://${cfg.address}:${toString (port + 100)}"; + locations."/static".root = "${pkgs.sourcehut.metasrht}/${pkgs.sourcehut.python.sitePackages}/metasrht"; + }; + }; +} diff --git a/nixos/modules/services/misc/sourcehut/paste.nix b/nixos/modules/services/misc/sourcehut/paste.nix new file mode 100644 index 000000000000..b2d5151969ea --- /dev/null +++ b/nixos/modules/services/misc/sourcehut/paste.nix @@ -0,0 +1,133 @@ +{ config, lib, pkgs, ... }: + +with lib; +let + cfg = config.services.sourcehut; + cfgIni = cfg.settings; + scfg = cfg.paste; + iniKey = "paste.sr.ht"; + + rcfg = config.services.redis; + drv = pkgs.sourcehut.pastesrht; +in +{ + options.services.sourcehut.paste = { + user = mkOption { + type = types.str; + default = "pastesrht"; + description = '' + User for paste.sr.ht. + ''; + }; + + port = mkOption { + type = types.port; + default = 5011; + description = '' + Port on which the "paste" module should listen. + ''; + }; + + database = mkOption { + type = types.str; + default = "paste.sr.ht"; + description = '' + PostgreSQL database name for paste.sr.ht. + ''; + }; + + statePath = mkOption { + type = types.path; + default = "${cfg.statePath}/pastesrht"; + description = '' + State path for pastesrht.sr.ht. + ''; + }; + }; + + config = with scfg; lib.mkIf (cfg.enable && elem "paste" cfg.services) { + users = { + users = { + "${user}" = { + isSystemUser = true; + group = user; + description = "paste.sr.ht user"; + }; + }; + + groups = { + "${user}" = { }; + }; + }; + + services.postgresql = { + authentication = '' + local ${database} ${user} trust + ''; + ensureDatabases = [ database ]; + ensureUsers = [ + { + name = user; + ensurePermissions = { "DATABASE \"${database}\"" = "ALL PRIVILEGES"; }; + } + ]; + }; + + systemd = { + tmpfiles.rules = [ + "d ${statePath} 0750 ${user} ${user} -" + ]; + + services = { + pastesrht = import ./service.nix { inherit config pkgs lib; } scfg drv iniKey { + after = [ "postgresql.service" "network.target" ]; + requires = [ "postgresql.service" ]; + wantedBy = [ "multi-user.target" ]; + + description = "paste.sr.ht website service"; + + serviceConfig.ExecStart = "${cfg.python}/bin/gunicorn ${drv.pname}.app:app -b ${cfg.address}:${toString port}"; + }; + + pastesrht-webhooks = { + after = [ "postgresql.service" "network.target" ]; + requires = [ "postgresql.service" ]; + wantedBy = [ "multi-user.target" ]; + + description = "paste.sr.ht webhooks service"; + serviceConfig = { + Type = "simple"; + User = user; + Restart = "always"; + ExecStart = "${cfg.python}/bin/celery -A ${drv.pname}.webhooks worker --loglevel=info"; + }; + + }; + }; + }; + + services.sourcehut.settings = { + # URL paste.sr.ht is being served at (protocol://domain) + "paste.sr.ht".origin = mkDefault "http://paste.${cfg.originBase}"; + # Address and port to bind the debug server to + "paste.sr.ht".debug-host = mkDefault "0.0.0.0"; + "paste.sr.ht".debug-port = mkDefault port; + # Configures the SQLAlchemy connection string for the database. + "paste.sr.ht".connection-string = mkDefault "postgresql:///${database}?user=${user}&host=/var/run/postgresql"; + # Set to "yes" to automatically run migrations on package upgrade. + "paste.sr.ht".migrate-on-upgrade = mkDefault "yes"; + # paste.sr.ht's OAuth client ID and secret for meta.sr.ht + # Register your client at meta.example.org/oauth + "paste.sr.ht".oauth-client-id = mkDefault null; + "paste.sr.ht".oauth-client-secret = mkDefault null; + "paste.sr.ht".webhooks = mkDefault "redis://${rcfg.bind}:${toString rcfg.port}/5"; + }; + + services.nginx.virtualHosts."paste.${cfg.originBase}" = { + forceSSL = true; + locations."/".proxyPass = "http://${cfg.address}:${toString port}"; + locations."/query".proxyPass = "http://${cfg.address}:${toString (port + 100)}"; + locations."/static".root = "${pkgs.sourcehut.pastesrht}/${pkgs.sourcehut.python.sitePackages}/pastesrht"; + }; + }; +} diff --git a/nixos/modules/services/misc/sourcehut/service.nix b/nixos/modules/services/misc/sourcehut/service.nix new file mode 100644 index 000000000000..65b4ad020f9a --- /dev/null +++ b/nixos/modules/services/misc/sourcehut/service.nix @@ -0,0 +1,66 @@ +{ config, pkgs, lib }: +serviceCfg: serviceDrv: iniKey: attrs: +let + cfg = config.services.sourcehut; + cfgIni = cfg.settings."${iniKey}"; + pgSuperUser = config.services.postgresql.superUser; + + setupDB = pkgs.writeScript "${serviceDrv.pname}-gen-db" '' + #! ${cfg.python}/bin/python + from ${serviceDrv.pname}.app import db + db.create() + ''; +in +with serviceCfg; with lib; recursiveUpdate +{ + environment.HOME = statePath; + path = [ config.services.postgresql.package ] ++ (attrs.path or [ ]); + restartTriggers = [ config.environment.etc."sr.ht/config.ini".source ]; + serviceConfig = { + Type = "simple"; + User = user; + Group = user; + Restart = "always"; + WorkingDirectory = statePath; + } // (if (cfg.statePath == "/var/lib/sourcehut/${serviceDrv.pname}") then { + StateDirectory = [ "sourcehut/${serviceDrv.pname}" ]; + } else {}) + ; + + preStart = '' + if ! test -e ${statePath}/db; then + # Setup the initial database + ${setupDB} + + # Set the initial state of the database for future database upgrades + if test -e ${cfg.python}/bin/${serviceDrv.pname}-migrate; then + # Run alembic stamp head once to tell alembic the schema is up-to-date + ${cfg.python}/bin/${serviceDrv.pname}-migrate stamp head + fi + + printf "%s" "${serviceDrv.version}" > ${statePath}/db + fi + + # Update copy of each users' profile to the latest + # See https://lists.sr.ht/~sircmpwn/sr.ht-admins/<20190302181207.GA13778%40cirno.my.domain> + if ! test -e ${statePath}/webhook; then + # Update ${iniKey}'s users' profile copy to the latest + ${cfg.python}/bin/srht-update-profiles ${iniKey} + + touch ${statePath}/webhook + fi + + ${optionalString (builtins.hasAttr "migrate-on-upgrade" cfgIni && cfgIni.migrate-on-upgrade == "yes") '' + if [ "$(cat ${statePath}/db)" != "${serviceDrv.version}" ]; then + # Manage schema migrations using alembic + ${cfg.python}/bin/${serviceDrv.pname}-migrate -a upgrade head + + # Mark down current package version + printf "%s" "${serviceDrv.version}" > ${statePath}/db + fi + ''} + + ${attrs.preStart or ""} + ''; +} + (builtins.removeAttrs attrs [ "path" "preStart" ]) diff --git a/nixos/modules/services/misc/sourcehut/sourcehut.xml b/nixos/modules/services/misc/sourcehut/sourcehut.xml new file mode 100644 index 000000000000..ab9a8c6cb4be --- /dev/null +++ b/nixos/modules/services/misc/sourcehut/sourcehut.xml @@ -0,0 +1,115 @@ + + Sourcehut + + Sourcehut is an open-source, + self-hostable software development platform. The server setup can be automated using + services.sourcehut. + + +
+ Basic usage + + Sourcehut is a Python and Go based set of applications. + services.sourcehut + by default will use + services.nginx, + services.redis, + services.cron, + and + services.postgresql. + + + + A very basic configuration may look like this: + +{ pkgs, ... }: +let + fqdn = + let + join = hostName: domain: hostName + optionalString (domain != null) ".${domain}"; + in join config.networking.hostName config.networking.domain; +in { + + networking = { + hostName = "srht"; + domain = "tld"; + firewall.allowedTCPPorts = [ 22 80 443 ]; + }; + + services.sourcehut = { + enable = true; + originBase = fqdn; + services = [ "meta" "man" "git" ]; + settings = { + "sr.ht" = { + environment = "production"; + global-domain = fqdn; + origin = "https://${fqdn}"; + # Produce keys with srht-keygen from sourcehut.coresrht. + network-key = "SECRET"; + service-key = "SECRET"; + }; + webhooks.private-key= "SECRET"; + }; + }; + + security.acme.certs."${fqdn}".extraDomainNames = [ + "meta.${fqdn}" + "man.${fqdn}" + "git.${fqdn}" + ]; + + services.nginx = { + enable = true; + # only recommendedProxySettings are strictly required, but the rest make sense as well. + recommendedTlsSettings = true; + recommendedOptimisation = true; + recommendedGzipSettings = true; + recommendedProxySettings = true; + + # Settings to setup what certificates are used for which endpoint. + virtualHosts = { + "${fqdn}".enableACME = true; + "meta.${fqdn}".useACMEHost = fqdn: + "man.${fqdn}".useACMEHost = fqdn: + "git.${fqdn}".useACMEHost = fqdn: + }; + }; +} + + + + + The hostName option is used internally to configure the nginx + reverse-proxy. The settings attribute set is + used by the configuration generator and the result is placed in /etc/sr.ht/config.ini. + +
+ +
+ Configuration + + + All configuration parameters are also stored in + /etc/sr.ht/config.ini which is generated by + the module and linked from the store to ensure that all values from config.ini + can be modified by the module. + + +
+ +
+ Using an alternative webserver as reverse-proxy (e.g. <literal>httpd</literal>) + + By default, nginx is used as reverse-proxy for sourcehut. + However, it's possible to use e.g. httpd by explicitly disabling + nginx using and fixing the + settings. + +
+ +
diff --git a/nixos/modules/services/misc/sourcehut/todo.nix b/nixos/modules/services/misc/sourcehut/todo.nix new file mode 100644 index 000000000000..aec773b06692 --- /dev/null +++ b/nixos/modules/services/misc/sourcehut/todo.nix @@ -0,0 +1,161 @@ +{ config, lib, pkgs, ... }: + +with lib; +let + cfg = config.services.sourcehut; + cfgIni = cfg.settings; + scfg = cfg.todo; + iniKey = "todo.sr.ht"; + + rcfg = config.services.redis; + drv = pkgs.sourcehut.todosrht; +in +{ + options.services.sourcehut.todo = { + user = mkOption { + type = types.str; + default = "todosrht"; + description = '' + User for todo.sr.ht. + ''; + }; + + port = mkOption { + type = types.port; + default = 5003; + description = '' + Port on which the "todo" module should listen. + ''; + }; + + database = mkOption { + type = types.str; + default = "todo.sr.ht"; + description = '' + PostgreSQL database name for todo.sr.ht. + ''; + }; + + statePath = mkOption { + type = types.path; + default = "${cfg.statePath}/todosrht"; + description = '' + State path for todo.sr.ht. + ''; + }; + }; + + config = with scfg; lib.mkIf (cfg.enable && elem "todo" cfg.services) { + users = { + users = { + "${user}" = { + isSystemUser = true; + group = user; + extraGroups = [ "postfix" ]; + description = "todo.sr.ht user"; + }; + }; + groups = { + "${user}" = { }; + }; + }; + + services.postgresql = { + authentication = '' + local ${database} ${user} trust + ''; + ensureDatabases = [ database ]; + ensureUsers = [ + { + name = user; + ensurePermissions = { "DATABASE \"${database}\"" = "ALL PRIVILEGES"; }; + } + ]; + }; + + systemd = { + tmpfiles.rules = [ + "d ${statePath} 0750 ${user} ${user} -" + ]; + + services = { + todosrht = import ./service.nix { inherit config pkgs lib; } scfg drv iniKey { + after = [ "postgresql.service" "network.target" ]; + requires = [ "postgresql.service" ]; + wantedBy = [ "multi-user.target" ]; + + description = "todo.sr.ht website service"; + + serviceConfig.ExecStart = "${cfg.python}/bin/gunicorn ${drv.pname}.app:app -b ${cfg.address}:${toString port}"; + }; + + todosrht-lmtp = { + after = [ "postgresql.service" "network.target" ]; + bindsTo = [ "postgresql.service" ]; + wantedBy = [ "multi-user.target" ]; + + description = "todo.sr.ht process service"; + serviceConfig = { + Type = "simple"; + User = user; + Restart = "always"; + ExecStart = "${cfg.python}/bin/todosrht-lmtp"; + }; + }; + + todosrht-webhooks = { + after = [ "postgresql.service" "network.target" ]; + requires = [ "postgresql.service" ]; + wantedBy = [ "multi-user.target" ]; + + description = "todo.sr.ht webhooks service"; + serviceConfig = { + Type = "simple"; + User = user; + Restart = "always"; + ExecStart = "${cfg.python}/bin/celery -A ${drv.pname}.webhooks worker --loglevel=info"; + }; + + }; + }; + }; + + services.sourcehut.settings = { + # URL todo.sr.ht is being served at (protocol://domain) + "todo.sr.ht".origin = mkDefault "http://todo.${cfg.originBase}"; + # Address and port to bind the debug server to + "todo.sr.ht".debug-host = mkDefault "0.0.0.0"; + "todo.sr.ht".debug-port = mkDefault port; + # Configures the SQLAlchemy connection string for the database. + "todo.sr.ht".connection-string = mkDefault "postgresql:///${database}?user=${user}&host=/var/run/postgresql"; + # Set to "yes" to automatically run migrations on package upgrade. + "todo.sr.ht".migrate-on-upgrade = mkDefault "yes"; + # todo.sr.ht's OAuth client ID and secret for meta.sr.ht + # Register your client at meta.example.org/oauth + "todo.sr.ht".oauth-client-id = mkDefault null; + "todo.sr.ht".oauth-client-secret = mkDefault null; + # Outgoing email for notifications generated by users + "todo.sr.ht".notify-from = mkDefault "CHANGEME@example.org"; + # The redis connection used for the webhooks worker + "todo.sr.ht".webhooks = mkDefault "redis://${rcfg.bind}:${toString rcfg.port}/1"; + # Network-key + "todo.sr.ht".network-key = mkDefault null; + + # Path for the lmtp daemon's unix socket. Direct incoming mail to this socket. + # Alternatively, specify IP:PORT and an SMTP server will be run instead. + "todo.sr.ht::mail".sock = mkDefault "/tmp/todo.sr.ht-lmtp.sock"; + # The lmtp daemon will make the unix socket group-read/write for users in this + # group. + "todo.sr.ht::mail".sock-group = mkDefault "postfix"; + + "todo.sr.ht::mail".posting-domain = mkDefault "todo.${cfg.originBase}"; + }; + + services.nginx.virtualHosts."todo.${cfg.originBase}" = { + forceSSL = true; + locations."/".proxyPass = "http://${cfg.address}:${toString port}"; + locations."/query".proxyPass = "http://${cfg.address}:${toString (port + 100)}"; + locations."/static".root = "${pkgs.sourcehut.todosrht}/${pkgs.sourcehut.python.sitePackages}/todosrht"; + }; + }; +} diff --git a/nixos/modules/services/monitoring/prometheus/exporters.nix b/nixos/modules/services/monitoring/prometheus/exporters.nix index 9fcfe7b52e08..212ba06ef757 100644 --- a/nixos/modules/services/monitoring/prometheus/exporters.nix +++ b/nixos/modules/services/monitoring/prometheus/exporters.nix @@ -51,6 +51,7 @@ let "pihole" "postfix" "postgres" + "process" "py-air-control" "redis" "rspamd" diff --git a/nixos/modules/services/monitoring/prometheus/exporters/process.nix b/nixos/modules/services/monitoring/prometheus/exporters/process.nix new file mode 100644 index 000000000000..e3b3d18367fd --- /dev/null +++ b/nixos/modules/services/monitoring/prometheus/exporters/process.nix @@ -0,0 +1,48 @@ +{ config, lib, pkgs, options }: + +with lib; + +let + cfg = config.services.prometheus.exporters.process; + configFile = pkgs.writeText "process-exporter.yaml" (builtins.toJSON cfg.settings); +in +{ + port = 9256; + extraOpts = { + settings.process_names = mkOption { + type = types.listOf types.anything; + default = {}; + example = literalExample '' + { + process_names = [ + # Remove nix store path from process name + { name = "{{.Matches.Wrapped}} {{ .Matches.Args }}"; cmdline = [ "^/nix/store[^ ]*/(?P[^ /]*) (?P.*)" ]; } + ]; + } + ''; + description = '' + All settings expressed as an Nix attrset. + + Check the official documentation for the corresponding YAML + settings that can all be used here: + ''; + }; + }; + serviceOpts = { + serviceConfig = { + DynamicUser = false; + ExecStart = '' + ${pkgs.prometheus-process-exporter}/bin/process-exporter \ + --web.listen-address ${cfg.listenAddress}:${toString cfg.port} \ + --config.path ${configFile} \ + ${concatStringsSep " \\\n " cfg.extraFlags} + ''; + NoNewPrivileges = true; + ProtectHome = true; + ProtectSystem = true; + ProtectKernelTunables = true; + ProtectKernelModules = true; + ProtectControlGroups = true; + }; + }; +} diff --git a/nixos/modules/services/networking/wpa_supplicant.nix b/nixos/modules/services/networking/wpa_supplicant.nix index 8a0685c3d96b..d9308b37064a 100644 --- a/nixos/modules/services/networking/wpa_supplicant.nix +++ b/nixos/modules/services/networking/wpa_supplicant.nix @@ -40,8 +40,7 @@ in { default = []; example = [ "wlan0" "wlan1" ]; description = '' - The interfaces wpa_supplicant will use. If empty, it will - automatically use all wireless interfaces. + The interfaces wpa_supplicant will use. ''; }; @@ -220,7 +219,14 @@ in { }; config = mkIf cfg.enable { - assertions = flip mapAttrsToList cfg.networks (name: cfg: { + assertions = [ + { assertion = cfg.interfaces != []; + message = '' + No network interfaces for wpa_supplicant have been configured. + Please, specify at least one using networking.wireless.interfaces. + ''; + } + ] ++ flip mapAttrsToList cfg.networks (name: cfg: { assertion = with cfg; count (x: x != null) [ psk pskRaw auth ] <= 1; message = ''options networking.wireless."${name}".{psk,pskRaw,auth} are mutually exclusive''; }); @@ -255,20 +261,7 @@ in { then echo >&2 "<3>/etc/wpa_supplicant.conf present but ignored. Generated ${configFile} is used instead." fi iface_args="-s -u -D${cfg.driver} ${configStr}" - ${if ifaces == [] then '' - for i in $(cd /sys/class/net && echo *); do - DEVTYPE= - UEVENT_PATH=/sys/class/net/$i/uevent - if [ -e "$UEVENT_PATH" ]; then - source "$UEVENT_PATH" - if [ "$DEVTYPE" = "wlan" -o -e /sys/class/net/$i/wireless ]; then - args+="''${args:+ -N} -i$i $iface_args" - fi - fi - done - '' else '' - args="${concatMapStringsSep " -N " (i: "-i${i} $iface_args") ifaces}" - ''} + args="${concatMapStringsSep " -N " (i: "-i${i} $iface_args") ifaces}" exec wpa_supplicant $args ''; }; diff --git a/nixos/modules/services/video/epgstation/default.nix b/nixos/modules/services/video/epgstation/default.nix index 8d6d431fa55a..b13393c8983a 100644 --- a/nixos/modules/services/video/epgstation/default.nix +++ b/nixos/modules/services/video/epgstation/default.nix @@ -27,7 +27,7 @@ let # NOTE: Use password authentication, since mysqljs does not yet support auth_socket if [ ! -e /var/lib/epgstation/db-created ]; then - ${pkgs.mysql}/bin/mysql -e \ + ${pkgs.mariadb}/bin/mysql -e \ "GRANT ALL ON \`${cfg.database.name}\`.* TO '${username}'@'localhost' IDENTIFIED by '$DB_PASSWORD';" touch /var/lib/epgstation/db-created fi @@ -224,7 +224,7 @@ in services.mysql = { enable = mkDefault true; - package = mkDefault pkgs.mysql; + package = mkDefault pkgs.mariadb; ensureDatabases = [ cfg.database.name ]; # FIXME: enable once mysqljs supports auth_socket # ensureUsers = [ { diff --git a/nixos/modules/services/web-apps/keycloak.nix b/nixos/modules/services/web-apps/keycloak.nix index f0b9e60116dd..dc66c2966564 100644 --- a/nixos/modules/services/web-apps/keycloak.nix +++ b/nixos/modules/services/web-apps/keycloak.nix @@ -728,7 +728,7 @@ in services.postgresql.enable = lib.mkDefault createLocalPostgreSQL; services.mysql.enable = lib.mkDefault createLocalMySQL; - services.mysql.package = lib.mkIf createLocalMySQL pkgs.mysql; + services.mysql.package = lib.mkIf createLocalMySQL pkgs.mariadb; }; meta.doc = ./keycloak.xml; diff --git a/nixos/modules/services/web-apps/tt-rss.nix b/nixos/modules/services/web-apps/tt-rss.nix index 6a29f10d1195..b78487cc9281 100644 --- a/nixos/modules/services/web-apps/tt-rss.nix +++ b/nixos/modules/services/web-apps/tt-rss.nix @@ -644,7 +644,7 @@ let services.mysql = mkIf mysqlLocal { enable = true; - package = mkDefault pkgs.mysql; + package = mkDefault pkgs.mariadb; ensureDatabases = [ cfg.database.name ]; ensureUsers = [ { diff --git a/nixos/modules/virtualisation/openvswitch.nix b/nixos/modules/virtualisation/openvswitch.nix index c6a3ceddc3e0..ccf32641df62 100644 --- a/nixos/modules/virtualisation/openvswitch.nix +++ b/nixos/modules/virtualisation/openvswitch.nix @@ -66,9 +66,7 @@ in { }; in (mkMerge [{ - - environment.systemPackages = [ cfg.package pkgs.ipsecTools ]; - + environment.systemPackages = [ cfg.package ]; boot.kernelModules = [ "tun" "openvswitch" ]; boot.extraModulePackages = [ cfg.package ]; @@ -146,6 +144,8 @@ in { } (mkIf (cfg.ipsec && (versionOlder cfg.package.version "2.6.0")) { + environment.systemPackages = [ pkgs.ipsecTools ]; + services.racoon.enable = true; services.racoon.configPath = "${runDir}/ipsec/etc/racoon/racoon.conf"; diff --git a/nixos/tests/bitwarden.nix b/nixos/tests/bitwarden.nix index 3813a1f70f96..f64cf171f01f 100644 --- a/nixos/tests/bitwarden.nix +++ b/nixos/tests/bitwarden.nix @@ -42,7 +42,7 @@ let GRANT ALL ON `bitwarden`.* TO 'bitwardenuser'@'localhost'; FLUSH PRIVILEGES; ''; - package = pkgs.mysql; + package = pkgs.mariadb; }; services.bitwarden_rs.config.databaseUrl = "mysql://bitwardenuser:${dbPassword}@localhost/bitwarden"; diff --git a/nixos/tests/calibre-web.nix b/nixos/tests/calibre-web.nix index 4f73b3311124..0af997317fcd 100644 --- a/nixos/tests/calibre-web.nix +++ b/nixos/tests/calibre-web.nix @@ -36,7 +36,7 @@ import ./make-test-python.nix ( default.wait_for_unit("calibre-web.service") default.wait_for_open_port(${toString defaultPort}) default.succeed( - "curl --fail 'http://localhost:${toString defaultPort}/basicconfig' | grep -q 'Basic Configuration'" + "curl --fail 'http://localhost:${toString defaultPort}/basicconfig' | grep 'Basic Configuration'" ) customized.succeed( @@ -46,7 +46,7 @@ import ./make-test-python.nix ( customized.wait_for_unit("calibre-web.service") customized.wait_for_open_port(${toString port}) customized.succeed( - "curl --fail -H X-User:admin 'http://localhost:${toString port}' | grep -q test-book" + "curl --fail -H X-User:admin 'http://localhost:${toString port}' | grep test-book" ) ''; } diff --git a/nixos/tests/docker-tools.nix b/nixos/tests/docker-tools.nix index 831ef2fb77ad..4c3c26980aa2 100644 --- a/nixos/tests/docker-tools.nix +++ b/nixos/tests/docker-tools.nix @@ -23,15 +23,15 @@ import ./make-test-python.nix ({ pkgs, ... }: { with subtest("includeStorePath"): with subtest("assumption"): docker.succeed("${examples.helloOnRoot} | docker load") - docker.succeed("set -euo pipefail; docker run --rm hello | grep -i hello") + docker.succeed("docker run --rm hello | grep -i hello") docker.succeed("docker image rm hello:latest") with subtest("includeStorePath = false; breaks example"): docker.succeed("${examples.helloOnRootNoStore} | docker load") - docker.fail("set -euo pipefail; docker run --rm hello | grep -i hello") + docker.fail("docker run --rm hello | grep -i hello") docker.succeed("docker image rm hello:latest") with subtest("includeStorePath = false; works with mounted store"): docker.succeed("${examples.helloOnRootNoStore} | docker load") - docker.succeed("set -euo pipefail; docker run --rm --volume ${builtins.storeDir}:${builtins.storeDir}:ro hello | grep -i hello") + docker.succeed("docker run --rm --volume ${builtins.storeDir}:${builtins.storeDir}:ro hello | grep -i hello") docker.succeed("docker image rm hello:latest") with subtest("Ensure Docker images use a stable date by default"): diff --git a/nixos/tests/doh-proxy-rust.nix b/nixos/tests/doh-proxy-rust.nix index ca150cafab50..23f8616849c3 100644 --- a/nixos/tests/doh-proxy-rust.nix +++ b/nixos/tests/doh-proxy-rust.nix @@ -38,6 +38,6 @@ import ./make-test-python.nix ({ lib, pkgs, ... }: { machine.wait_for_unit("doh-proxy-rust.service") machine.wait_for_open_port(53) machine.wait_for_open_port(3000) - machine.succeed(f"curl --fail '{url}?dns={query}' | grep -qF {bin_ip}") + machine.succeed(f"curl --fail '{url}?dns={query}' | grep -F {bin_ip}") ''; }) diff --git a/nixos/tests/elk.nix b/nixos/tests/elk.nix index fee350de65b5..71d39a647a5a 100644 --- a/nixos/tests/elk.nix +++ b/nixos/tests/elk.nix @@ -178,7 +178,7 @@ let one.systemctl("stop logstash") one.systemctl("start elasticsearch-curator") one.wait_until_succeeds( - '! curl --silent --show-error "${esUrl}/_cat/indices" | grep logstash | grep -q ^' + '! curl --silent --show-error "${esUrl}/_cat/indices" | grep logstash | grep ^' ) ''; }) {}; diff --git a/nixos/tests/gitlab.nix b/nixos/tests/gitlab.nix index af2ab12bf4bd..696ebabb5806 100644 --- a/nixos/tests/gitlab.nix +++ b/nixos/tests/gitlab.nix @@ -102,7 +102,7 @@ import ./make-test-python.nix ({ pkgs, lib, ...} : with lib; { # `doSetup` is is true. test = doSetup: '' gitlab.succeed( - "curl -isSf http://gitlab | grep -i location | grep -q http://gitlab/users/sign_in" + "curl -isSf http://gitlab | grep -i location | grep http://gitlab/users/sign_in" ) gitlab.succeed( "${pkgs.sudo}/bin/sudo -u gitlab -H gitlab-rake gitlab:check 1>&2" diff --git a/nixos/tests/gocd-agent.nix b/nixos/tests/gocd-agent.nix index 75edf43ee295..686d0b971d30 100644 --- a/nixos/tests/gocd-agent.nix +++ b/nixos/tests/gocd-agent.nix @@ -42,7 +42,7 @@ import ./make-test-python.nix ({ pkgs, ...} : { "curl ${serverUrl} -H '${header}' | ${pkgs.jq}/bin/jq -e ._embedded.agents[0].uuid" ) agent.succeed( - "curl ${serverUrl} -H '${header}' | ${pkgs.jq}/bin/jq -e ._embedded.agents[0].agent_state | grep -q Idle" + "curl ${serverUrl} -H '${header}' | ${pkgs.jq}/bin/jq -e ._embedded.agents[0].agent_state | grep Idle" ) ''; }) diff --git a/nixos/tests/grafana.nix b/nixos/tests/grafana.nix index 4ba091b893f4..174d664d8772 100644 --- a/nixos/tests/grafana.nix +++ b/nixos/tests/grafana.nix @@ -74,7 +74,7 @@ in { declarativePlugins.wait_for_unit("grafana.service") declarativePlugins.wait_for_open_port(3000) declarativePlugins.succeed( - "curl -sSfN -u testadmin:snakeoilpwd http://127.0.0.1:3000/api/plugins | grep -q grafana-clock-panel" + "curl -sSfN -u testadmin:snakeoilpwd http://127.0.0.1:3000/api/plugins | grep grafana-clock-panel" ) declarativePlugins.shutdown() @@ -82,7 +82,7 @@ in { sqlite.wait_for_unit("grafana.service") sqlite.wait_for_open_port(3000) sqlite.succeed( - "curl -sSfN -u testadmin:snakeoilpwd http://127.0.0.1:3000/api/org/users | grep -q testadmin\@localhost" + "curl -sSfN -u testadmin:snakeoilpwd http://127.0.0.1:3000/api/org/users | grep testadmin\@localhost" ) sqlite.shutdown() @@ -92,7 +92,7 @@ in { postgresql.wait_for_open_port(3000) postgresql.wait_for_open_port(5432) postgresql.succeed( - "curl -sSfN -u testadmin:snakeoilpwd http://127.0.0.1:3000/api/org/users | grep -q testadmin\@localhost" + "curl -sSfN -u testadmin:snakeoilpwd http://127.0.0.1:3000/api/org/users | grep testadmin\@localhost" ) postgresql.shutdown() @@ -102,7 +102,7 @@ in { mysql.wait_for_open_port(3000) mysql.wait_for_open_port(3306) mysql.succeed( - "curl -sSfN -u testadmin:snakeoilpwd http://127.0.0.1:3000/api/org/users | grep -q testadmin\@localhost" + "curl -sSfN -u testadmin:snakeoilpwd http://127.0.0.1:3000/api/org/users | grep testadmin\@localhost" ) mysql.shutdown() ''; diff --git a/nixos/tests/matomo.nix b/nixos/tests/matomo.nix index 2bea237c8bdd..f6b0845749cd 100644 --- a/nixos/tests/matomo.nix +++ b/nixos/tests/matomo.nix @@ -18,7 +18,7 @@ let }; services.mysql = { enable = true; - package = pkgs.mysql; + package = pkgs.mariadb; }; services.nginx.enable = true; }; diff --git a/nixos/tests/miniflux.nix b/nixos/tests/miniflux.nix index 797a2787d1aa..9a25a9e77cc9 100644 --- a/nixos/tests/miniflux.nix +++ b/nixos/tests/miniflux.nix @@ -48,23 +48,23 @@ with lib; default.wait_for_unit("miniflux.service") default.wait_for_open_port(${toString defaultPort}) - default.succeed("curl --fail 'http://localhost:${toString defaultPort}/healthcheck' | grep -q OK") + default.succeed("curl --fail 'http://localhost:${toString defaultPort}/healthcheck' | grep OK") default.succeed( - "curl 'http://localhost:${toString defaultPort}/v1/me' -u '${defaultUsername}:${defaultPassword}' -H Content-Type:application/json | grep -q '\"is_admin\":true'" + "curl 'http://localhost:${toString defaultPort}/v1/me' -u '${defaultUsername}:${defaultPassword}' -H Content-Type:application/json | grep '\"is_admin\":true'" ) withoutSudo.wait_for_unit("miniflux.service") withoutSudo.wait_for_open_port(${toString defaultPort}) - withoutSudo.succeed("curl --fail 'http://localhost:${toString defaultPort}/healthcheck' | grep -q OK") + withoutSudo.succeed("curl --fail 'http://localhost:${toString defaultPort}/healthcheck' | grep OK") withoutSudo.succeed( - "curl 'http://localhost:${toString defaultPort}/v1/me' -u '${defaultUsername}:${defaultPassword}' -H Content-Type:application/json | grep -q '\"is_admin\":true'" + "curl 'http://localhost:${toString defaultPort}/v1/me' -u '${defaultUsername}:${defaultPassword}' -H Content-Type:application/json | grep '\"is_admin\":true'" ) customized.wait_for_unit("miniflux.service") customized.wait_for_open_port(${toString port}) - customized.succeed("curl --fail 'http://localhost:${toString port}/healthcheck' | grep -q OK") + customized.succeed("curl --fail 'http://localhost:${toString port}/healthcheck' | grep OK") customized.succeed( - "curl 'http://localhost:${toString port}/v1/me' -u '${username}:${password}' -H Content-Type:application/json | grep -q '\"is_admin\":true'" + "curl 'http://localhost:${toString port}/v1/me' -u '${username}:${password}' -H Content-Type:application/json | grep '\"is_admin\":true'" ) ''; }) diff --git a/nixos/tests/mysql/mysql-autobackup.nix b/nixos/tests/mysql/mysql-autobackup.nix index 65576e52a537..b0ec7daaf054 100644 --- a/nixos/tests/mysql/mysql-autobackup.nix +++ b/nixos/tests/mysql/mysql-autobackup.nix @@ -8,7 +8,7 @@ import ./../make-test-python.nix ({ pkgs, lib, ... }: { pkgs, ... }: { services.mysql.enable = true; - services.mysql.package = pkgs.mysql; + services.mysql.package = pkgs.mariadb; services.mysql.initialDatabases = [ { name = "testdb"; schema = ./testdb.sql; } ]; services.automysqlbackup.enable = true; diff --git a/nixos/tests/mysql/mysql-backup.nix b/nixos/tests/mysql/mysql-backup.nix index d428fb6c16e6..269fddc66e1d 100644 --- a/nixos/tests/mysql/mysql-backup.nix +++ b/nixos/tests/mysql/mysql-backup.nix @@ -10,7 +10,7 @@ import ./../make-test-python.nix ({ pkgs, ... } : { services.mysql = { enable = true; initialDatabases = [ { name = "testdb"; schema = ./testdb.sql; } ]; - package = pkgs.mysql; + package = pkgs.mariadb; }; services.mysqlBackup = { diff --git a/nixos/tests/mysql/mysql-replication.nix b/nixos/tests/mysql/mysql-replication.nix index ad84c801ea10..a52372ca47ce 100644 --- a/nixos/tests/mysql/mysql-replication.nix +++ b/nixos/tests/mysql/mysql-replication.nix @@ -17,7 +17,7 @@ in { services.mysql.enable = true; - services.mysql.package = pkgs.mysql; + services.mysql.package = pkgs.mariadb; services.mysql.replication.role = "master"; services.mysql.replication.slaveHost = "%"; services.mysql.replication.masterUser = replicateUser; @@ -31,7 +31,7 @@ in { services.mysql.enable = true; - services.mysql.package = pkgs.mysql; + services.mysql.package = pkgs.mariadb; services.mysql.replication.role = "slave"; services.mysql.replication.serverId = 2; services.mysql.replication.masterHost = nodes.master.config.networking.hostName; @@ -44,7 +44,7 @@ in { services.mysql.enable = true; - services.mysql.package = pkgs.mysql; + services.mysql.package = pkgs.mariadb; services.mysql.replication.role = "slave"; services.mysql.replication.serverId = 3; services.mysql.replication.masterHost = nodes.master.config.networking.hostName; diff --git a/nixos/tests/nginx-variants.nix b/nixos/tests/nginx-variants.nix index ca4655391bc5..a535030663bd 100644 --- a/nixos/tests/nginx-variants.nix +++ b/nixos/tests/nginx-variants.nix @@ -29,5 +29,5 @@ builtins.listToAttrs ( }; } ) - [ "nginxStable" "nginxUnstable" "nginxShibboleth" "openresty" "tengine" ] + [ "nginxStable" "nginxMainline" "nginxShibboleth" "openresty" "tengine" ] ) diff --git a/nixos/tests/nginx.nix b/nixos/tests/nginx.nix index 5686afcd043e..d9d073822a14 100644 --- a/nixos/tests/nginx.nix +++ b/nixos/tests/nginx.nix @@ -56,11 +56,11 @@ import ./make-test-python.nix ({ pkgs, ... }: { }; specialisation.reloadRestartSystem.configuration = { - services.nginx.package = pkgs.nginxUnstable; + services.nginx.package = pkgs.nginxMainline; }; specialisation.reloadWithErrorsSystem.configuration = { - services.nginx.package = pkgs.nginxUnstable; + services.nginx.package = pkgs.nginxMainline; services.nginx.virtualHosts."!@$$(#*%".locations."~@#*$*!)".proxyPass = ";;;"; }; }; diff --git a/nixos/tests/pomerium.nix b/nixos/tests/pomerium.nix index 531b6212711f..7af828326448 100644 --- a/nixos/tests/pomerium.nix +++ b/nixos/tests/pomerium.nix @@ -88,15 +88,15 @@ import ./make-test-python.nix ({ pkgs, lib, ... }: { with subtest("no authentication required"): pomerium.succeed( - "curl --resolve my.website:80:127.0.0.1 http://my.website | grep -q 'hello world'" + "curl --resolve my.website:80:127.0.0.1 http://my.website | grep 'hello world'" ) with subtest("login required"): pomerium.succeed( - "curl -I --resolve login.required:80:127.0.0.1 http://login.required | grep -q pom-auth" + "curl -I --resolve login.required:80:127.0.0.1 http://login.required | grep pom-auth" ) pomerium.succeed( - "curl -L --resolve login.required:80:127.0.0.1 http://login.required | grep -q 'hello I am login page'" + "curl -L --resolve login.required:80:127.0.0.1 http://login.required | grep 'hello I am login page'" ) ''; }) diff --git a/nixos/tests/prometheus-exporters.nix b/nixos/tests/prometheus-exporters.nix index e3bfff218adb..17b71e82ed21 100644 --- a/nixos/tests/prometheus-exporters.nix +++ b/nixos/tests/prometheus-exporters.nix @@ -71,7 +71,7 @@ let wait_for_open_port(3551) wait_for_unit("prometheus-apcupsd-exporter.service") wait_for_open_port(9162) - succeed("curl -sSf http://localhost:9162/metrics | grep -q 'apcupsd_info'") + succeed("curl -sSf http://localhost:9162/metrics | grep 'apcupsd_info'") ''; }; @@ -85,7 +85,7 @@ let wait_for_unit("prometheus-artifactory-exporter.service") wait_for_open_port(9531) succeed( - "curl -sSf http://localhost:9531/metrics | grep -q 'artifactory_up'" + "curl -sSf http://localhost:9531/metrics | grep 'artifactory_up'" ) ''; }; @@ -106,7 +106,7 @@ let wait_for_unit("prometheus-bind-exporter.service") wait_for_open_port(9119) succeed( - "curl -sSf http://localhost:9119/metrics | grep -q 'bind_query_recursions_total 0'" + "curl -sSf http://localhost:9119/metrics | grep 'bind_query_recursions_total 0'" ) ''; }; @@ -135,7 +135,7 @@ let wait_for_unit("prometheus-bird-exporter.service") wait_for_open_port(9324) wait_until_succeeds( - "curl -sSf http://localhost:9324/metrics | grep -q 'MyObviousTestString'" + "curl -sSf http://localhost:9324/metrics | grep 'MyObviousTestString'" ) ''; }; @@ -154,7 +154,7 @@ let wait_for_unit("prometheus-bitcoin-exporter.service") wait_for_unit("bitcoind-default.service") wait_for_open_port(9332) - succeed("curl -sSf http://localhost:9332/metrics | grep -q '^bitcoin_blocks '") + succeed("curl -sSf http://localhost:9332/metrics | grep '^bitcoin_blocks '") ''; }; @@ -172,7 +172,7 @@ let wait_for_unit("prometheus-blackbox-exporter.service") wait_for_open_port(9115) succeed( - "curl -sSf 'http://localhost:9115/probe?target=localhost&module=icmp_v6' | grep -q 'probe_success 1'" + "curl -sSf 'http://localhost:9115/probe?target=localhost&module=icmp_v6' | grep 'probe_success 1'" ) ''; }; @@ -204,7 +204,7 @@ let "curl -sSfH 'Content-Type: application/json' -X POST --data @/tmp/data.json localhost:9103/collectd" ) succeed( - "curl -sSf localhost:9103/metrics | grep -q 'collectd_testplugin_gauge{instance=\"testhost\"} 23'" + "curl -sSf localhost:9103/metrics | grep 'collectd_testplugin_gauge{instance=\"testhost\"} 23'" ) ''; }; @@ -220,7 +220,7 @@ let exporterTest = '' wait_for_unit("prometheus-dnsmasq-exporter.service") wait_for_open_port(9153) - succeed("curl -sSf http://localhost:9153/metrics | grep -q 'dnsmasq_leases 0'") + succeed("curl -sSf http://localhost:9153/metrics | grep 'dnsmasq_leases 0'") ''; }; @@ -235,7 +235,7 @@ let wait_for_unit("prometheus-domain-exporter.service") wait_for_open_port(9222) succeed( - "curl -sSf 'http://localhost:9222/probe?target=nixos.org' | grep -q 'domain_probe_success 0'" + "curl -sSf 'http://localhost:9222/probe?target=nixos.org' | grep 'domain_probe_success 0'" ) ''; }; @@ -254,7 +254,7 @@ let wait_for_unit("prometheus-dovecot-exporter.service") wait_for_open_port(9166) succeed( - "curl -sSf http://localhost:9166/metrics | grep -q 'dovecot_up{scope=\"global\"} 1'" + "curl -sSf http://localhost:9166/metrics | grep 'dovecot_up{scope=\"global\"} 1'" ) ''; }; @@ -268,7 +268,7 @@ let wait_for_unit("prometheus-fritzbox-exporter.service") wait_for_open_port(9133) succeed( - "curl -sSf http://localhost:9133/metrics | grep -q 'fritzbox_exporter_collect_errors 0'" + "curl -sSf http://localhost:9133/metrics | grep 'fritzbox_exporter_collect_errors 0'" ) ''; }; @@ -290,9 +290,9 @@ let wait_for_unit("prometheus-jitsi-exporter.service") wait_for_open_port(9700) wait_until_succeeds( - 'journalctl -eu prometheus-jitsi-exporter.service -o cat | grep -q "key=participants"' + 'journalctl -eu prometheus-jitsi-exporter.service -o cat | grep "key=participants"' ) - succeed("curl -sSf 'localhost:9700/metrics' | grep -q 'jitsi_participants 0'") + succeed("curl -sSf 'localhost:9700/metrics' | grep 'jitsi_participants 0'") ''; }; @@ -321,7 +321,7 @@ let wait_for_unit("prometheus-json-exporter.service") wait_for_open_port(7979) succeed( - "curl -sSf 'localhost:7979/probe?target=http://localhost' | grep -q 'json_test_metric 1'" + "curl -sSf 'localhost:7979/probe?target=http://localhost' | grep 'json_test_metric 1'" ) ''; }; @@ -426,7 +426,7 @@ let wait_for_unit("knot.service") wait_for_unit("prometheus-knot-exporter.service") wait_for_open_port(9433) - succeed("curl -sSf 'localhost:9433' | grep -q 'knot_server_zone_count 1.0'") + succeed("curl -sSf 'localhost:9433' | grep 'knot_server_zone_count 1.0'") ''; }; @@ -441,10 +441,10 @@ let wait_for_unit("prometheus-keylight-exporter.service") wait_for_open_port(9288) succeed( - "curl -sS --write-out '%{http_code}' -o /dev/null http://localhost:9288/metrics | grep -q '400'" + "curl -sS --write-out '%{http_code}' -o /dev/null http://localhost:9288/metrics | grep '400'" ) succeed( - "curl -sS --write-out '%{http_code}' -o /dev/null http://localhost:9288/metrics?target=nosuchdevice | grep -q '500'" + "curl -sS --write-out '%{http_code}' -o /dev/null http://localhost:9288/metrics?target=nosuchdevice | grep '500'" ) ''; }; @@ -489,7 +489,7 @@ let wait_for_open_port(10009) wait_for_unit("prometheus-lnd-exporter.service") wait_for_open_port(9092) - succeed("curl -sSf localhost:9092/metrics | grep -q '^promhttp_metric_handler'") + succeed("curl -sSf localhost:9092/metrics | grep '^promhttp_metric_handler'") ''; }; @@ -531,7 +531,7 @@ let wait_for_unit("prometheus-mail-exporter.service") wait_for_open_port(9225) wait_until_succeeds( - "curl -sSf http://localhost:9225/metrics | grep -q 'mail_deliver_success{configname=\"testserver\"} 1'" + "curl -sSf http://localhost:9225/metrics | grep 'mail_deliver_success{configname=\"testserver\"} 1'" ) ''; }; @@ -571,7 +571,7 @@ let wait_for_unit("prometheus-mikrotik-exporter.service") wait_for_open_port(9436) succeed( - "curl -sSf http://localhost:9436/metrics | grep -q 'mikrotik_scrape_collector_success{device=\"router\"} 0'" + "curl -sSf http://localhost:9436/metrics | grep 'mikrotik_scrape_collector_success{device=\"router\"} 0'" ) ''; }; @@ -596,7 +596,7 @@ let wait_for_unit("prometheus-modemmanager-exporter.service") wait_for_open_port(9539) succeed( - "curl -sSf http://localhost:9539/metrics | grep -q 'modemmanager_info'" + "curl -sSf http://localhost:9539/metrics | grep 'modemmanager_info'" ) ''; }; @@ -634,7 +634,7 @@ let wait_for_unit("nginx.service") wait_for_unit("prometheus-nextcloud-exporter.service") wait_for_open_port(9205) - succeed("curl -sSf http://localhost:9205/metrics | grep -q 'nextcloud_up 1'") + succeed("curl -sSf http://localhost:9205/metrics | grep 'nextcloud_up 1'") ''; }; @@ -653,7 +653,7 @@ let wait_for_unit("nginx.service") wait_for_unit("prometheus-nginx-exporter.service") wait_for_open_port(9113) - succeed("curl -sSf http://localhost:9113/metrics | grep -q 'nginx_up 1'") + succeed("curl -sSf http://localhost:9113/metrics | grep 'nginx_up 1'") ''; }; @@ -708,12 +708,12 @@ let succeed("curl http://localhost") execute("sleep 1") succeed( - "curl -sSf http://localhost:9117/metrics | grep 'filelogger_http_response_count_total' | grep -q 1" + "curl -sSf http://localhost:9117/metrics | grep 'filelogger_http_response_count_total' | grep 1" ) succeed("curl http://localhost:81") execute("sleep 1") succeed( - "curl -sSf http://localhost:9117/metrics | grep 'syslogger_http_response_count_total' | grep -q 1" + "curl -sSf http://localhost:9117/metrics | grep 'syslogger_http_response_count_total' | grep 1" ) ''; }; @@ -726,7 +726,7 @@ let wait_for_unit("prometheus-node-exporter.service") wait_for_open_port(9100) succeed( - "curl -sSf http://localhost:9100/metrics | grep -q 'node_exporter_build_info{.\\+} 1'" + "curl -sSf http://localhost:9100/metrics | grep 'node_exporter_build_info{.\\+} 1'" ) ''; }; @@ -786,7 +786,7 @@ let wait_for_open_port(389) wait_for_open_port(9330) wait_until_succeeds( - "curl -sSf http://localhost:9330/metrics | grep -q 'openldap_scrape{result=\"ok\"} 1'" + "curl -sSf http://localhost:9330/metrics | grep 'openldap_scrape{result=\"ok\"} 1'" ) ''; }; @@ -812,7 +812,7 @@ let exporterTest = '' wait_for_unit("openvpn-test.service") wait_for_unit("prometheus-openvpn-exporter.service") - succeed("curl -sSf http://localhost:9176/metrics | grep -q 'openvpn_up{.*} 1'") + succeed("curl -sSf http://localhost:9176/metrics | grep 'openvpn_up{.*} 1'") ''; }; @@ -828,9 +828,9 @@ let wait_for_file("/var/lib/postfix/queue/public/showq") wait_for_open_port(9154) succeed( - "curl -sSf http://localhost:9154/metrics | grep -q 'postfix_smtpd_connects_total 0'" + "curl -sSf http://localhost:9154/metrics | grep 'postfix_smtpd_connects_total 0'" ) - succeed("curl -sSf http://localhost:9154/metrics | grep -q 'postfix_up{.*} 1'") + succeed("curl -sSf http://localhost:9154/metrics | grep 'postfix_up{.*} 1'") ''; }; @@ -847,20 +847,39 @@ let wait_for_open_port(9187) wait_for_unit("postgresql.service") succeed( - "curl -sSf http://localhost:9187/metrics | grep -q 'pg_exporter_last_scrape_error 0'" + "curl -sSf http://localhost:9187/metrics | grep 'pg_exporter_last_scrape_error 0'" ) - succeed("curl -sSf http://localhost:9187/metrics | grep -q 'pg_up 1'") + succeed("curl -sSf http://localhost:9187/metrics | grep 'pg_up 1'") systemctl("stop postgresql.service") succeed( - "curl -sSf http://localhost:9187/metrics | grep -qv 'pg_exporter_last_scrape_error 0'" + "curl -sSf http://localhost:9187/metrics | grep -v 'pg_exporter_last_scrape_error 0'" ) - succeed("curl -sSf http://localhost:9187/metrics | grep -q 'pg_up 0'") + succeed("curl -sSf http://localhost:9187/metrics | grep 'pg_up 0'") systemctl("start postgresql.service") wait_for_unit("postgresql.service") succeed( - "curl -sSf http://localhost:9187/metrics | grep -q 'pg_exporter_last_scrape_error 0'" + "curl -sSf http://localhost:9187/metrics | grep 'pg_exporter_last_scrape_error 0'" + ) + succeed("curl -sSf http://localhost:9187/metrics | grep 'pg_up 1'") + ''; + }; + + process = { + exporterConfig = { + enable = true; + settings.process_names = [ + # Remove nix store path from process name + { name = "{{.Matches.Wrapped}} {{ .Matches.Args }}"; cmdline = [ "^/nix/store[^ ]*/(?P[^ /]*) (?P.*)" ]; } + ]; + }; + exporterTest = '' + wait_for_unit("prometheus-process-exporter.service") + wait_for_open_port(9256) + wait_until_succeeds( + "curl -sSf localhost:9256/metrics | grep -q '{}'".format( + 'namedprocess_namegroup_cpu_seconds_total{groupname="process-exporter ' + ) ) - succeed("curl -sSf http://localhost:9187/metrics | grep -q 'pg_up 1'") ''; }; @@ -874,7 +893,7 @@ let wait_for_unit("prometheus-py-air-control-exporter.service") wait_for_open_port(9896) succeed( - "curl -sSf http://localhost:9896/metrics | grep -q 'py_air_control_sampling_error_total'" + "curl -sSf http://localhost:9896/metrics | grep 'py_air_control_sampling_error_total'" ) ''; }; @@ -889,7 +908,7 @@ let wait_for_unit("prometheus-redis-exporter.service") wait_for_open_port(6379) wait_for_open_port(9121) - wait_until_succeeds("curl -sSf localhost:9121/metrics | grep -q 'redis_up 1'") + wait_until_succeeds("curl -sSf localhost:9121/metrics | grep 'redis_up 1'") ''; }; @@ -907,7 +926,7 @@ let wait_for_open_port(11334) wait_for_open_port(7980) wait_until_succeeds( - "curl -sSf 'localhost:7980/probe?target=http://localhost:11334/stat' | grep -q 'rspamd_scanned{host=\"rspamd\"} 0'" + "curl -sSf 'localhost:7980/probe?target=http://localhost:11334/stat' | grep 'rspamd_scanned{host=\"rspamd\"} 0'" ) ''; }; @@ -938,7 +957,7 @@ let wait_for_unit("prometheus-rtl_433-exporter.service") wait_for_open_port(9550) wait_until_succeeds( - "curl -sSf localhost:9550/metrics | grep -q '{}'".format( + "curl -sSf localhost:9550/metrics | grep '{}'".format( 'rtl_433_temperature_celsius{channel="3",id="55",location="",model="zopieux"} 18' ) ) @@ -954,12 +973,12 @@ let wait_for_unit("prometheus-smokeping-exporter.service") wait_for_open_port(9374) wait_until_succeeds( - "curl -sSf localhost:9374/metrics | grep '{}' | grep -qv ' 0$'".format( + "curl -sSf localhost:9374/metrics | grep '{}' | grep -v ' 0$'".format( 'smokeping_requests_total{host="127.0.0.1",ip="127.0.0.1"} ' ) ) wait_until_succeeds( - "curl -sSf localhost:9374/metrics | grep -q '{}'".format( + "curl -sSf localhost:9374/metrics | grep '{}'".format( 'smokeping_response_ttl{host="127.0.0.1",ip="127.0.0.1"}' ) ) @@ -977,7 +996,7 @@ let exporterTest = '' wait_for_unit("prometheus-snmp-exporter.service") wait_for_open_port(9116) - succeed("curl -sSf localhost:9116/metrics | grep -q 'snmp_request_errors_total 0'") + succeed("curl -sSf localhost:9116/metrics | grep 'snmp_request_errors_total 0'") ''; }; @@ -1021,7 +1040,7 @@ let exporterTest = '' wait_for_unit("prometheus-sql-exporter.service") wait_for_open_port(9237) - succeed("curl http://localhost:9237/metrics | grep -c 'sql_points{' | grep -q 2") + succeed("curl http://localhost:9237/metrics | grep -c 'sql_points{' | grep 2") ''; }; @@ -1044,7 +1063,7 @@ let wait_for_open_port(80) wait_for_unit("prometheus-surfboard-exporter.service") wait_for_open_port(9239) - succeed("curl -sSf localhost:9239/metrics | grep -q 'surfboard_up 1'") + succeed("curl -sSf localhost:9239/metrics | grep 'surfboard_up 1'") ''; }; @@ -1057,7 +1076,7 @@ let wait_for_unit("prometheus-systemd-exporter.service") wait_for_open_port(9558) succeed( - "curl -sSf localhost:9558/metrics | grep -q '{}'".format( + "curl -sSf localhost:9558/metrics | grep '{}'".format( 'systemd_unit_state{name="basic.target",state="active",type="target"} 1' ) ) @@ -1079,7 +1098,7 @@ let wait_for_open_port(9051) wait_for_unit("prometheus-tor-exporter.service") wait_for_open_port(9130) - succeed("curl -sSf localhost:9130/metrics | grep -q 'tor_version{.\\+} 1'") + succeed("curl -sSf localhost:9130/metrics | grep 'tor_version{.\\+} 1'") ''; }; @@ -1091,7 +1110,7 @@ let wait_for_unit("prometheus-unifi-poller-exporter.service") wait_for_open_port(9130) succeed( - "curl -sSf localhost:9130/metrics | grep -q 'unifipoller_build_info{.\\+} 1'" + "curl -sSf localhost:9130/metrics | grep 'unifipoller_build_info{.\\+} 1'" ) ''; }; @@ -1115,7 +1134,7 @@ let wait_for_unit("unbound.service") wait_for_unit("prometheus-unbound-exporter.service") wait_for_open_port(9167) - succeed("curl -sSf localhost:9167/metrics | grep -q 'unbound_up 1'") + succeed("curl -sSf localhost:9167/metrics | grep 'unbound_up 1'") ''; }; @@ -1144,7 +1163,7 @@ let wait_for_unit("prometheus-varnish-exporter.service") wait_for_open_port(6081) wait_for_open_port(9131) - succeed("curl -sSf http://localhost:9131/metrics | grep -q 'varnish_up 1'") + succeed("curl -sSf http://localhost:9131/metrics | grep 'varnish_up 1'") ''; }; diff --git a/nixos/tests/rss2email.nix b/nixos/tests/rss2email.nix index d62207a417b8..f32326feb50f 100644 --- a/nixos/tests/rss2email.nix +++ b/nixos/tests/rss2email.nix @@ -1,5 +1,5 @@ import ./make-test-python.nix { - name = "opensmtpd"; + name = "rss2email"; nodes = { server = { pkgs, ... }: { diff --git a/nixos/tests/shiori.nix b/nixos/tests/shiori.nix index a5771262c6f2..418bee43c939 100644 --- a/nixos/tests/shiori.nix +++ b/nixos/tests/shiori.nix @@ -28,7 +28,7 @@ import ./make-test-python.nix ({ pkgs, lib, ...}: machine.wait_for_unit("shiori.service") machine.wait_for_open_port(8080) machine.succeed("curl --fail http://localhost:8080/") - machine.succeed("curl --fail --location http://localhost:8080/ | grep -qi shiori") + machine.succeed("curl --fail --location http://localhost:8080/ | grep -i shiori") with subtest("login"): auth_json = machine.succeed( diff --git a/nixos/tests/sogo.nix b/nixos/tests/sogo.nix index 3f600b4cd555..acdad8d0f473 100644 --- a/nixos/tests/sogo.nix +++ b/nixos/tests/sogo.nix @@ -10,7 +10,7 @@ import ./make-test-python.nix ({ pkgs, ... }: { services.mysql = { enable = true; - package = pkgs.mysql; + package = pkgs.mariadb; ensureDatabases = [ "sogo" ]; ensureUsers = [{ name = "sogo"; diff --git a/nixos/tests/sourcehut.nix b/nixos/tests/sourcehut.nix new file mode 100644 index 000000000000..b56a14ebf85e --- /dev/null +++ b/nixos/tests/sourcehut.nix @@ -0,0 +1,29 @@ +import ./make-test-python.nix ({ pkgs, ... }: + +{ + name = "sourcehut"; + + meta.maintainers = [ pkgs.lib.maintainers.tomberek ]; + + machine = { config, pkgs, ... }: { + virtualisation.memorySize = 2048; + networking.firewall.allowedTCPPorts = [ 80 ]; + + services.sourcehut = { + enable = true; + services = [ "meta" ]; + originBase = "sourcehut"; + settings."sr.ht".service-key = "8888888888888888888888888888888888888888888888888888888888888888"; + settings."sr.ht".network-key = "0000000000000000000000000000000000000000000="; + settings.webhooks.private-key = "0000000000000000000000000000000000000000000="; + }; + }; + + testScript = '' + start_all() + machine.wait_for_unit("multi-user.target") + machine.wait_for_unit("metasrht.service") + machine.wait_for_open_port(5000) + machine.succeed("curl -sL http://localhost:5000 | grep meta.sourcehut") + ''; +}) diff --git a/nixos/tests/wiki-js.nix b/nixos/tests/wiki-js.nix index 9aa87d15366b..783887d2dcaa 100644 --- a/nixos/tests/wiki-js.nix +++ b/nixos/tests/wiki-js.nix @@ -119,7 +119,7 @@ import ./make-test-python.nix ({ pkgs, lib, ...} : { with subtest("Setup"): result = machine.succeed( - "set -o pipefail; curl -sSf localhost:3000/finalize -X POST -d " + "curl -sSf localhost:3000/finalize -X POST -d " + "@${payloads.finalize} -H 'Content-Type: application/json' " + "| jq .ok | xargs echo" ) @@ -132,7 +132,7 @@ import ./make-test-python.nix ({ pkgs, lib, ...} : { with subtest("Base functionality"): auth = machine.succeed( - "set -o pipefail; curl -sSf localhost:3000/graphql -X POST " + "curl -sSf localhost:3000/graphql -X POST " + "-d @${payloads.login} -H 'Content-Type: application/json' " + "| jq '.[0].data.authentication.login.jwt' | xargs echo" ).strip() @@ -140,7 +140,7 @@ import ./make-test-python.nix ({ pkgs, lib, ...} : { assert auth create = machine.succeed( - "set -o pipefail; curl -sSf localhost:3000/graphql -X POST " + "curl -sSf localhost:3000/graphql -X POST " + "-d @${payloads.content} -H 'Content-Type: application/json' " + f"-H 'Authorization: Bearer {auth}' " + "| jq '.[0].data.pages.create.responseResult.succeeded'|xargs echo" diff --git a/nixos/tests/xandikos.nix b/nixos/tests/xandikos.nix index 48c770a3d168..69d78ee21e76 100644 --- a/nixos/tests/xandikos.nix +++ b/nixos/tests/xandikos.nix @@ -44,7 +44,7 @@ import ./make-test-python.nix ( xandikos_default.wait_for_open_port(8080) xandikos_default.succeed("curl --fail http://localhost:8080/") xandikos_default.succeed( - "curl -s --fail --location http://localhost:8080/ | grep -qi Xandikos" + "curl -s --fail --location http://localhost:8080/ | grep -i Xandikos" ) xandikos_client.wait_for_unit("network.target") xandikos_client.fail("curl --fail http://xandikos_default:8080/") @@ -55,15 +55,15 @@ import ./make-test-python.nix ( xandikos_proxy.wait_for_open_port(8080) xandikos_proxy.succeed("curl --fail http://localhost:8080/") xandikos_proxy.succeed( - "curl -s --fail --location http://localhost:8080/ | grep -qi Xandikos" + "curl -s --fail --location http://localhost:8080/ | grep -i Xandikos" ) xandikos_client.wait_for_unit("network.target") xandikos_client.fail("curl --fail http://xandikos_proxy:8080/") xandikos_client.succeed( - "curl -s --fail -u xandikos:snakeOilPassword -H 'Host: xandikos.local' http://xandikos_proxy/xandikos/ | grep -qi Xandikos" + "curl -s --fail -u xandikos:snakeOilPassword -H 'Host: xandikos.local' http://xandikos_proxy/xandikos/ | grep -i Xandikos" ) xandikos_client.succeed( - "curl -s --fail -u xandikos:snakeOilPassword -H 'Host: xandikos.local' http://xandikos_proxy/xandikos/user/ | grep -qi Xandikos" + "curl -s --fail -u xandikos:snakeOilPassword -H 'Host: xandikos.local' http://xandikos_proxy/xandikos/user/ | grep -i Xandikos" ) ''; } diff --git a/pkgs/applications/audio/bjumblr/default.nix b/pkgs/applications/audio/bjumblr/default.nix index 608839fc16ac..ce81415cd5db 100644 --- a/pkgs/applications/audio/bjumblr/default.nix +++ b/pkgs/applications/audio/bjumblr/default.nix @@ -1,12 +1,12 @@ { lib, stdenv, fetchFromGitHub, libX11, cairo, lv2, pkg-config, libsndfile }: stdenv.mkDerivation rec { - pname = "BJumblr"; + pname = "bjumblr"; version = "1.6.6"; src = fetchFromGitHub { owner = "sjaehn"; - repo = pname; + repo = "BJumblr"; rev = version; sha256 = "1nbxi54023vck3qgmr385cjzinmdnvz62ywb6bcksmc3shl080mg"; }; diff --git a/pkgs/applications/audio/boops/default.nix b/pkgs/applications/audio/boops/default.nix new file mode 100644 index 000000000000..b1b91aaf9de0 --- /dev/null +++ b/pkgs/applications/audio/boops/default.nix @@ -0,0 +1,28 @@ +{ stdenv, lib, fetchFromGitHub, xorg, cairo, lv2, libsndfile, pkg-config }: + +stdenv.mkDerivation rec { + pname = "boops"; + version = "1.6.0"; + + src = fetchFromGitHub { + owner = "sjaehn"; + repo = "BOops"; + rev = version; + sha256 = "sha256-7eNvt8PxIZCp83Y5XX5fBolBon4j+HPtu8wrgG8Miok="; + }; + + nativeBuildInputs = [ pkg-config ]; + buildInputs = [ + xorg.libX11 cairo lv2 libsndfile + ]; + + installFlags = [ "PREFIX=$(out)" ]; + + meta = with lib; { + homepage = "https://github.com/sjaehn/BOops"; + description = "Sound glitch effect sequencer LV2 plugin"; + maintainers = [ maintainers.magnetophon ]; + platforms = platforms.linux; + license = licenses.gpl3Plus; + }; +} diff --git a/pkgs/applications/audio/bsequencer/default.nix b/pkgs/applications/audio/bsequencer/default.nix index 58b48a581ae1..8fb646855952 100644 --- a/pkgs/applications/audio/bsequencer/default.nix +++ b/pkgs/applications/audio/bsequencer/default.nix @@ -1,12 +1,12 @@ { lib, stdenv, fetchFromGitHub, xorg, cairo, lv2, pkg-config }: stdenv.mkDerivation rec { - pname = "BSEQuencer"; + pname = "bsequencer"; version = "1.8.8"; src = fetchFromGitHub { owner = "sjaehn"; - repo = pname; + repo = "BSEQuencer"; rev = version; sha256 = "sha256-OArIMf0XP9CKDdb3H4s8jMzVRjoLFQDPmTS9rS2KW3w="; }; diff --git a/pkgs/applications/audio/bshapr/default.nix b/pkgs/applications/audio/bshapr/default.nix index de8566709c1a..e1a83537a6a0 100644 --- a/pkgs/applications/audio/bshapr/default.nix +++ b/pkgs/applications/audio/bshapr/default.nix @@ -1,12 +1,12 @@ { lib, stdenv, fetchFromGitHub, xorg, cairo, lv2, pkg-config }: stdenv.mkDerivation rec { - pname = "BShapr"; + pname = "bshapr"; version = "0.12"; src = fetchFromGitHub { owner = "sjaehn"; - repo = pname; + repo = "BShapr"; rev = "v${version}"; sha256 = "sha256-2DySlD5ZTxeQ2U++Dr67bek5oVbAiOHCxM6S5rTTZN0="; }; diff --git a/pkgs/applications/audio/bslizr/default.nix b/pkgs/applications/audio/bslizr/default.nix index 01dd736dc59c..743f1080854a 100644 --- a/pkgs/applications/audio/bslizr/default.nix +++ b/pkgs/applications/audio/bslizr/default.nix @@ -1,12 +1,12 @@ { lib, stdenv, fetchFromGitHub, xorg, cairo, lv2, pkg-config }: stdenv.mkDerivation rec { - pname = "BSlizr"; + pname = "bslizr"; version = "1.2.14"; src = fetchFromGitHub { owner = "sjaehn"; - repo = pname; + repo = "BSlizr"; rev = version; sha256 = "sha256-dut3I68tJWQH+X6acKROqb5HywufeBQ4/HkXFKsA3hY="; }; diff --git a/pkgs/applications/audio/diopser/default.nix b/pkgs/applications/audio/diopser/default.nix new file mode 100644 index 000000000000..0c97d64945ba --- /dev/null +++ b/pkgs/applications/audio/diopser/default.nix @@ -0,0 +1,76 @@ +{ lib, stdenv, fetchFromGitHub, cmake, pkg-config +, libjack2, alsaLib, freetype, libX11, libXrandr, libXinerama, libXext, libXcursor +}: + +let + + # Derived from subprojects/function2.wrap + function2 = rec { + version = "4.1.0"; + src = fetchFromGitHub { + owner = "Naios"; + repo = "function2"; + rev = version; + hash = "sha256-JceZU8ZvtYhFheh8BjMvjjZty4hcYxHEK+IIo5X4eSk="; + }; + }; + + juce = rec { + version = "unstable-2021-04-07"; + src = fetchFromGitHub { + owner = "juce-framework"; + repo = "JUCE"; + rev = "1a5fb5992a1a4e28e998708ed8dce2cc864a30d7"; + sha256= "1ri7w4sz3sy5xilibg53ls9526fx7jwbv8rc54ccrqfhxqyin308"; + }; + }; + + +in stdenv.mkDerivation rec { + pname = "diopser"; + version = "unstable-2021-5-13"; + + src = fetchFromGitHub { + owner = "robbert-vdh"; + repo = pname; + fetchSubmodules = true; + rev = "d5fdc92f1caf5a828e071dac99e106e58f06d84d"; + sha256 = "06y1h895yxh44gp4vxzrna59lf7nlfw7aacd3kk4l1g56jhy9pdx"; + }; + + postUnpack = '' + ( + cd "$sourceRoot" + cp -R --no-preserve=mode,ownership ${function2.src} function2 + cp -R --no-preserve=mode,ownership ${juce.src} JUCE + sed -i 's@CPMAddPackage("gh:juce-framework/JUCE.*@add_subdirectory(JUCE)@g' CMakeLists.txt + sed -i 's@CPMAddPackage("gh:Naios/function2.*@add_subdirectory(function2)@g' CMakeLists.txt + patchShebangs . + ) + ''; + + installPhase = '' + mkdir -p $out/lib/vst3 + cp -r Diopser_artefacts/Release/VST3/Diopser.vst3 $out/lib/vst3 + ''; + + nativeBuildInputs = [ cmake pkg-config ]; + + buildInputs = [ + libjack2 alsaLib freetype libX11 libXrandr libXinerama libXext + libXcursor + ]; + + cmakeFlags = [ + "-DCMAKE_AR=${stdenv.cc.cc}/bin/gcc-ar" + "-DCMAKE_RANLIB=${stdenv.cc.cc}/bin/gcc-ranlib" + ]; + + meta = with lib; { + description = "A totally original phase rotation plugin"; + homepage = "https://github.com/robbert-vdh/diopser"; + license = licenses.gpl3Plus; + maintainers = with maintainers; [ magnetophon ]; + platforms = platforms.all; + }; +} diff --git a/pkgs/applications/audio/faust/faust2.nix b/pkgs/applications/audio/faust/faust2.nix index 051caf120fa2..995618af4ce5 100644 --- a/pkgs/applications/audio/faust/faust2.nix +++ b/pkgs/applications/audio/faust/faust2.nix @@ -20,13 +20,13 @@ with lib.strings; let - version = "unstable-2020-08-27"; + version = "2.30.5"; src = fetchFromGitHub { owner = "grame-cncm"; repo = "faust"; - rev = "c10f316fa90f338e248787ebf55e3795c3a0d70e"; - sha256 = "068pm04ddafbsj2r8akdpqyzb0m8mp9ql0rgi83hcqs4ndr8v7sb"; + rev = version; + sha256 = "0cs52w4rwaj5d8pjak4cxsg02sxvx4y07592nc3ck81clqjmszmm"; fetchSubmodules = true; }; diff --git a/pkgs/applications/audio/faust/faustlive.nix b/pkgs/applications/audio/faust/faustlive.nix index 20afb6fd7617..2b4602f78cfd 100644 --- a/pkgs/applications/audio/faust/faustlive.nix +++ b/pkgs/applications/audio/faust/faustlive.nix @@ -1,22 +1,24 @@ { lib, stdenv, fetchFromGitHub -, llvm, qt48Full, qrencode, libmicrohttpd_0_9_70, libjack2, alsaLib, faust, curl -, bc, coreutils, which, libsndfile, pkg-config +, llvm_10, qt5, qrencode, libmicrohttpd, libjack2, alsaLib, faust, curl +, bc, coreutils, which, libsndfile, pkg-config, libxcb }: stdenv.mkDerivation rec { pname = "faustlive"; - version = "unstable-dev-2020-08-03"; + version = "2.5.5"; src = fetchFromGitHub { owner = "grame-cncm"; repo = "faustlive"; - rev = "c16565dc1b616ac0aad7c303c1997fa9e57177ab"; - sha256 = "1ys661lp1xwz21vy12kwkg248jvjq1z9w433knkh0ldyy2igvmd5"; + rev = version; + sha256 = "0qbn05nq170ckycwalkk5fppklc4g457mapr7p7ryrhc1hwzffm9"; fetchSubmodules = true; }; + nativeBuildInputs = [ pkg-config qt5.wrapQtAppsHook ]; + buildInputs = [ - llvm qt48Full qrencode libmicrohttpd_0_9_70 libjack2 alsaLib faust curl - bc coreutils which libsndfile pkg-config + llvm_10 qt5.qtbase qrencode libmicrohttpd libjack2 alsaLib faust curl + bc coreutils which libsndfile libxcb ]; makeFlags = [ "PREFIX=$(out)" ]; @@ -39,5 +41,6 @@ stdenv.mkDerivation rec { ''; homepage = "https://faust.grame.fr/"; license = licenses.gpl3; + maintainers = with maintainers; [ magnetophon ]; }; } diff --git a/pkgs/applications/audio/faustPhysicalModeling/default.nix b/pkgs/applications/audio/faustPhysicalModeling/default.nix new file mode 100644 index 000000000000..f55cee957c77 --- /dev/null +++ b/pkgs/applications/audio/faustPhysicalModeling/default.nix @@ -0,0 +1,39 @@ +{ stdenv, lib, fetchFromGitHub, faust2jaqt, faust2lv2 }: +stdenv.mkDerivation rec { + pname = "faustPhysicalModeling"; + version = "2.20.2"; + + src = fetchFromGitHub { + owner = "grame-cncm"; + repo = "faust"; + rev = version; + sha256 = "1mm93ba26b7q69hvabzalg30dh8pl858nj4m2bb57pznnp09lq9a"; + }; + + buildInputs = [ faust2jaqt faust2lv2 ]; + + buildPhase = '' + cd examples/physicalModeling + + for f in *MIDI.dsp; do + faust2jaqt -time -vec -double -midi -nvoices 16 -t 99999 $f + faust2lv2 -time -vec -double -gui -nvoices 16 -t 99999 $f + done + ''; + + installPhase = '' + mkdir -p $out/lib/lv2 $out/bin + mv *.lv2/ $out/lib/lv2 + for f in $(find . -executable -type f); do + cp $f $out/bin/ + done + ''; + + meta = with lib; { + description = "The physical models included with faust compiled as jack standalone and lv2 instruments"; + homepage = "https://github.com/grame-cncm/faust/tree/master-dev/examples/physicalModeling"; + license = licenses.mit; + platforms = platforms.linux; + maintainers = with maintainers; [ magnetophon ]; + }; +} diff --git a/pkgs/applications/audio/faustStk/default.nix b/pkgs/applications/audio/faustStk/default.nix new file mode 100644 index 000000000000..85ebb1d9a021 --- /dev/null +++ b/pkgs/applications/audio/faustStk/default.nix @@ -0,0 +1,39 @@ +{ stdenv, lib, fetchFromGitHub, faust2jaqt, faust2lv2 }: + +stdenv.mkDerivation rec { + pname = "faustPhhysicalModeling"; + version = "2.20.2"; + + src = fetchFromGitHub { + owner = "grame-cncm"; + repo = "faust"; + rev = version; + sha256 = "1mm93ba26b7q69hvabzalg30dh8pl858nj4m2bb57pznnp09lq9a"; + }; + + buildInputs = [ faust2jaqt faust2lv2 ]; + + buildPhase = '' + cd examples/physicalModeling/faust-stk + + for f in *.dsp; do + faust2jaqt -time -vec -midi -nvoices 8 -t 99999 $f + faust2lv2 -time -vec -double -gui -nvoices 32 -t 99999 $f + done + ''; + + installPhase = '' + mkdir -p $out/lib/lv2 $out/bin + mv *.lv2/ $out/lib/lv2 + for f in $(find . -executable -type f); do + cp $f $out/bin/ + done + ''; + meta = with lib; { + description = "The physical modeling instruments included with faust, compiled as jack standalone and lv2 instruments"; + homepage = "https://ccrma.stanford.edu/~rmichon/faustSTK/"; + license = licenses.stk; + platforms = platforms.linux; + maintainers = with maintainers; [ magnetophon ]; + }; +} diff --git a/pkgs/applications/audio/gwc/default.nix b/pkgs/applications/audio/gwc/default.nix index d6e7c0807a37..175d5e4cb51e 100644 --- a/pkgs/applications/audio/gwc/default.nix +++ b/pkgs/applications/audio/gwc/default.nix @@ -12,13 +12,13 @@ stdenv.mkDerivation rec { pname = "gwc"; - version = "0.22-04"; + version = "0.22-05"; src = fetchFromGitHub { owner = "AlisterH"; repo = pname; rev = version; - sha256 = "0xvfra32dchnnyf9kj5s5xmqhln8jdrc9f0040hjr2dsb58y206p"; + sha256 = "sha256-FHKu5qAyRyMxXdWYTCeAc6Q4J+NOaU1SGgoTbe0PiFE="; }; nativeBuildInputs = [ diff --git a/pkgs/applications/audio/helvum/default.nix b/pkgs/applications/audio/helvum/default.nix index 1c2acb36f00d..1ecf9c56e861 100644 --- a/pkgs/applications/audio/helvum/default.nix +++ b/pkgs/applications/audio/helvum/default.nix @@ -1,5 +1,7 @@ { lib , fetchFromGitLab +, makeDesktopItem +, copyDesktopItems , rustPlatform , pkg-config , clang @@ -23,11 +25,19 @@ rustPlatform.buildRustPackage rec { cargoSha256 = "sha256-uNTSU06Fz/ud04K40e98rb7o/uAht0DsiJOXeHX72vw="; - nativeBuildInputs = [ clang pkg-config ]; + nativeBuildInputs = [ clang copyDesktopItems pkg-config ]; buildInputs = [ glib gtk4 pipewire ]; LIBCLANG_PATH = "${libclang.lib}/lib"; + desktopItems = makeDesktopItem { + name = "Helvum"; + exec = pname; + desktopName = "Helvum"; + genericName = "Helvum"; + categories = "AudioVideo;"; + }; + meta = with lib; { description = "A GTK patchbay for pipewire"; homepage = "https://gitlab.freedesktop.org/ryuukyu/helvum"; diff --git a/pkgs/applications/audio/songrec/default.nix b/pkgs/applications/audio/songrec/default.nix new file mode 100644 index 000000000000..81bd3c67d7dd --- /dev/null +++ b/pkgs/applications/audio/songrec/default.nix @@ -0,0 +1,35 @@ +{ lib +, rustPlatform +, fetchFromGitHub +, gtk3 +, openssl +, alsaLib +, pkg-config +, ffmpeg +}: + +rustPlatform.buildRustPackage rec { + pname = "songrec"; + version = "0.1.8"; + + src = fetchFromGitHub { + owner = "marin-m"; + repo = pname; + rev = version; + sha256 = "sha256-6siGLegNgvLdP7engwpKmhzWYqBXcMsfaXhJJ1tIqJg="; + }; + + cargoSha256 = "sha256-H4qJYcFjip71EVTGw50goj0HjKN9fmjQZqQDhaSKlaQ="; + + nativeBuildInputs = [ pkg-config ]; + + buildInputs = [ alsaLib gtk3 openssl ffmpeg ]; + + meta = with lib; { + description = "An open-source Shazam client for Linux, written in Rust"; + homepage = "https://github.com/marin-m/SongRec"; + license = licenses.gpl3Only; + platforms = platforms.linux; + maintainers = with maintainers; [ tcbravo ]; + }; +} diff --git a/pkgs/applications/audio/stochas/default.nix b/pkgs/applications/audio/stochas/default.nix index 0c50cda8e6c0..aa4b4acf5145 100644 --- a/pkgs/applications/audio/stochas/default.nix +++ b/pkgs/applications/audio/stochas/default.nix @@ -2,13 +2,13 @@ stdenv.mkDerivation rec { pname = "stochas"; - version = "1.3.4"; + version = "1.3.5"; src = fetchFromGitHub { owner = "surge-synthesizer"; repo = pname; rev = "v${version}"; - sha256 = "0b26mbj727dnygavz4kihnhmnnvwsr9l145w6kydq7bd7nwiw7lq"; + sha256 = "1z8q53qfigw6wwbvpca92b9pf9d0mv3nyb0fmszz5ikj3pcybi7m"; fetchSubmodules = true; }; diff --git a/pkgs/applications/audio/uhhyou.lv2/default.nix b/pkgs/applications/audio/uhhyou.lv2/default.nix index 9c748929d625..eb590c22bbfc 100644 --- a/pkgs/applications/audio/uhhyou.lv2/default.nix +++ b/pkgs/applications/audio/uhhyou.lv2/default.nix @@ -14,14 +14,14 @@ stdenv.mkDerivation rec { # this is what upstream calls the package, see: # https://github.com/ryukau/LV2Plugins#uhhyou-plugins-lv2 pname = "uhhyou.lv2"; - version = "unstable-2020-07-31"; + version = "unstable-2021-02-08"; src = fetchFromGitHub { owner = "ryukau"; repo = "LV2Plugins"; - rev = "6189be67acaeb95452f8adab73a731d94a7b6f47"; + rev = "df67460fc344f94db4306d4ee21e4207e657bbee"; fetchSubmodules = true; - sha256 = "049gigx2s89z8vf17gscs00c150lmcdwya311nbrwa18fz4bx242"; + sha256 = "1a23av35cw26zgq93yzmmw35084hsj29cb7sb04j2silv5qisila"; }; nativeBuildInputs = [ pkg-config python3 ]; @@ -31,8 +31,7 @@ stdenv.mkDerivation rec { makeFlags = [ "PREFIX=$(out)" ]; prePatch = '' - patchShebangs generate-ttl.sh - cp patch/NanoVG.cpp lib/DPF/dgl/src/NanoVG.cpp + patchShebangs generate-ttl.sh patch.sh patch/apply.sh ''; enableParallelBuilding = true; @@ -41,6 +40,7 @@ stdenv.mkDerivation rec { description = "Audio plugins for Linux"; longDescription = '' Plugin List: + - CollidingCombSynth - CubicPadSynth - EnvelopedSine - EsPhaser diff --git a/pkgs/applications/blockchains/charge-lnd/default.nix b/pkgs/applications/blockchains/charge-lnd/default.nix new file mode 100644 index 000000000000..3707b0741b6f --- /dev/null +++ b/pkgs/applications/blockchains/charge-lnd/default.nix @@ -0,0 +1,39 @@ +{ lib, fetchFromGitHub, python3Packages }: + +python3Packages.buildPythonApplication rec { + pname = "charge-lnd"; + version = "0.1.2"; + + src = fetchFromGitHub { + owner = "accumulator"; + repo = pname; + rev = "v${version}"; + sha256 = "1m1ic69aj2vlnjlp4ckan8n67r01nfysvq4w6nny32wjkr0zvphr"; + }; + + propagatedBuildInputs = with python3Packages; [ + aiorpcx + colorama + googleapis-common-protos + grpcio + protobuf + six + termcolor + ]; + + postInstall = '' + install README.md charge.config.example -Dt $out/share/doc/charge-lnd + ''; + + doInstallCheck = true; + installCheckPhase = '' + $out/bin/charge-lnd --help > /dev/null + ''; + + meta = with lib; { + description = "Simple policy-based fee manager for lightning network daemon"; + homepage = "https://github.com/accumulator/charge-lnd"; + license = licenses.gpl2Plus; + maintainers = with maintainers; [ mmilata ]; + }; +} diff --git a/pkgs/applications/editors/emacs/elisp-packages/apheleia/default.nix b/pkgs/applications/editors/emacs/elisp-packages/apheleia/default.nix new file mode 100644 index 000000000000..658a18c05867 --- /dev/null +++ b/pkgs/applications/editors/emacs/elisp-packages/apheleia/default.nix @@ -0,0 +1,36 @@ +{ stdenv, fetchFromGitHub, emacs, lib }: + +stdenv.mkDerivation { + pname = "apheleia"; + version = "2021-05-23"; + + src = fetchFromGitHub { + owner = "raxod502"; + repo = "apheleia"; + rev = "f865c165dac606187a66b2b25a57d5099b452120"; + sha256 = "sha256-n37jJsNOGhSjUtQysG3NVIjjayhbOa52iTXBc8SyKXE="; + }; + + buildInputs = [ emacs ]; + + buildPhase = '' + runHook preBuild + emacs -L . --batch -f batch-byte-compile *.el + runHook postBuild + ''; + + installPhase = '' + runHook preInstall + install -d $out/share/emacs/site-lisp + install *.el *.elc $out/share/emacs/site-lisp + runHook postInstall + ''; + + meta = { + description = "Reformat buffer stably"; + homepage = "https://github.com/raxod502/apheleia"; + license = lib.licenses.mit; + maintainers = with lib.maintainers; [ leungbk ]; + platforms = emacs.meta.platforms; + }; +} diff --git a/pkgs/applications/editors/emacs/elisp-packages/evil-markdown/default.nix b/pkgs/applications/editors/emacs/elisp-packages/evil-markdown/default.nix new file mode 100644 index 000000000000..74fc1a179219 --- /dev/null +++ b/pkgs/applications/editors/emacs/elisp-packages/evil-markdown/default.nix @@ -0,0 +1,46 @@ +{ stdenv, fetchFromGitHub, emacs, emacsPackages, lib }: + +let + runtimeDeps = with emacsPackages; [ + evil + markdown-mode + ]; +in +stdenv.mkDerivation { + pname = "evil-markdown"; + version = "2020-06-01"; + + src = fetchFromGitHub { + owner = "Somelauw"; + repo = "evil-markdown"; + rev = "064fe9b4767470472356d20bdd08e2f30ebbc9ac"; + sha256 = "sha256-Kt2wxG1XCFowavVWtj0urM/yURKegonpZcxTy/+CrJY="; + }; + + buildInputs = [ + emacs + ] ++ runtimeDeps; + + propagatedUserEnvPkgs = runtimeDeps; + + buildPhase = '' + runHook preBuild + emacs -L . --batch -f batch-byte-compile *.el + runHook postBuild + ''; + + installPhase = '' + runHook preInstall + install -d $out/share/emacs/site-lisp + install *.el *.elc $out/share/emacs/site-lisp + runHook postInstall + ''; + + meta = { + description = "Vim-like keybindings for markdown-mode"; + homepage = "https://github.com/Somelauw/evil-markdown"; + license = lib.licenses.gpl3Plus; + maintainers = with lib.maintainers; [ leungbk ]; + platforms = emacs.meta.platforms; + }; +} diff --git a/pkgs/applications/editors/emacs/elisp-packages/git-undo/default.nix b/pkgs/applications/editors/emacs/elisp-packages/git-undo/default.nix new file mode 100644 index 000000000000..1b4da6340dc2 --- /dev/null +++ b/pkgs/applications/editors/emacs/elisp-packages/git-undo/default.nix @@ -0,0 +1,36 @@ +{ stdenv, fetchFromGitHub, emacs, lib }: + +stdenv.mkDerivation { + pname = "git-undo"; + version = "2019-10-13"; + + src = fetchFromGitHub { + owner = "jwiegley"; + repo = "git-undo-el"; + rev = "cf31e38e7889e6ade7d2d2b9f8719fd44f52feb5"; + sha256 = "sha256-cVkK9EF6qQyVV3uVqnBEjF8e9nEx/8ixnM8PvxqCyYE="; + }; + + buildInputs = [ emacs ]; + + buildPhase = '' + runHook preBuild + emacs -L . --batch -f batch-byte-compile *.el + runHook postBuild + ''; + + installPhase = '' + runHook preInstall + install -d $out/share/emacs/site-lisp + install *.el *.elc $out/share/emacs/site-lisp + runHook postInstall + ''; + + meta = { + description = "Revert region to most recent Git-historical version"; + homepage = "https://github.com/jwiegley/git-undo-el"; + license = lib.licenses.gpl2Plus; + maintainers = with lib.maintainers; [ leungbk ]; + platforms = emacs.meta.platforms; + }; +} diff --git a/pkgs/applications/editors/emacs/elisp-packages/isearch-plus/default.nix b/pkgs/applications/editors/emacs/elisp-packages/isearch-plus/default.nix new file mode 100644 index 000000000000..64cfbde98b77 --- /dev/null +++ b/pkgs/applications/editors/emacs/elisp-packages/isearch-plus/default.nix @@ -0,0 +1,36 @@ +{ stdenv, fetchFromGitHub, emacs, lib }: + +stdenv.mkDerivation { + pname = "isearch-plus"; + version = "2021-01-01"; + + src = fetchFromGitHub { + owner = "emacsmirror"; + repo = "isearch-plus"; + rev = "376a8f9f8a9666d7e61d125abcdb645847cb8619"; + sha256 = "sha256-Kd5vpu+mI1tJPcsu7EpnnBcPVdVAijkAeTz+bLB3WlQ="; + }; + + buildInputs = [ emacs ]; + + buildPhase = '' + runHook preBuild + emacs -L . --batch -f batch-byte-compile *.el + runHook postBuild + ''; + + installPhase = '' + runHook preInstall + install -d $out/share/emacs/site-lisp + install *.el *.elc $out/share/emacs/site-lisp + runHook postInstall + ''; + + meta = { + description = "Extensions to isearch"; + homepage = "https://www.emacswiki.org/emacs/download/isearch%2b.el"; + license = lib.licenses.gpl2Plus; + maintainers = with lib.maintainers; [ leungbk ]; + platforms = emacs.meta.platforms; + }; +} diff --git a/pkgs/applications/editors/emacs/elisp-packages/isearch-prop/default.nix b/pkgs/applications/editors/emacs/elisp-packages/isearch-prop/default.nix new file mode 100644 index 000000000000..0db28255f70c --- /dev/null +++ b/pkgs/applications/editors/emacs/elisp-packages/isearch-prop/default.nix @@ -0,0 +1,36 @@ +{ stdenv, fetchFromGitHub, emacs, lib }: + +stdenv.mkDerivation { + pname = "isearch-prop"; + version = "2019-05-01"; + + src = fetchFromGitHub { + owner = "emacsmirror"; + repo = "isearch-prop"; + rev = "4a2765f835dd115d472142da05215c4c748809f4"; + sha256 = "sha256-A1Kt4nm7iRV9J5yaLupwiNL5g7ddZvQs79dggmqZ7Rk="; + }; + + buildInputs = [ emacs ]; + + buildPhase = '' + runHook preBuild + emacs -L . --batch -f batch-byte-compile *.el + runHook postBuild + ''; + + installPhase = '' + runHook preInstall + install -d $out/share/emacs/site-lisp + install *.el *.elc $out/share/emacs/site-lisp + runHook postInstall + ''; + + meta = { + description = "Search text- or overlay-property contexts"; + homepage = "https://www.emacswiki.org/emacs/download/isearch-prop.el"; + license = lib.licenses.gpl3Plus; + maintainers = with lib.maintainers; [ leungbk ]; + platforms = emacs.meta.platforms; + }; +} diff --git a/pkgs/applications/editors/emacs/elisp-packages/manual-packages.nix b/pkgs/applications/editors/emacs/elisp-packages/manual-packages.nix index 80cc7578b4fb..f862a1ae8a54 100644 --- a/pkgs/applications/editors/emacs/elisp-packages/manual-packages.nix +++ b/pkgs/applications/editors/emacs/elisp-packages/manual-packages.nix @@ -65,11 +65,15 @@ }; }; + apheleia = callPackage ./apheleia {}; + emacspeak = callPackage ./emacspeak {}; ess-R-object-popup = callPackage ./ess-R-object-popup { }; + evil-markdown = callPackage ./evil-markdown { }; + font-lock-plus = callPackage ./font-lock-plus { }; ghc-mod = melpaBuild { @@ -88,6 +92,8 @@ }; }; + git-undo = callPackage ./git-undo { }; + haskell-unicode-input-method = melpaBuild { pname = "emacs-haskell-unicode-input-method"; version = "20110905.2307"; @@ -111,6 +117,10 @@ helm-words = callPackage ./helm-words { }; + isearch-plus = callPackage ./isearch-plus { }; + + isearch-prop = callPackage ./isearch-prop { }; + jam-mode = callPackage ./jam-mode { }; llvm-mode = trivialBuild { @@ -177,6 +187,8 @@ }; + mu4e-patch = callPackage ./mu4e-patch { }; + org-mac-link = callPackage ./org-mac-link { }; @@ -206,6 +218,8 @@ tramp = callPackage ./tramp { }; + youtube-dl = callPackage ./youtube-dl { }; + zeitgeist = callPackage ./zeitgeist { }; # From old emacsPackages (pre emacsPackagesNg) diff --git a/pkgs/applications/editors/emacs/elisp-packages/mu4e-patch/default.nix b/pkgs/applications/editors/emacs/elisp-packages/mu4e-patch/default.nix new file mode 100644 index 000000000000..4a436339ebc4 --- /dev/null +++ b/pkgs/applications/editors/emacs/elisp-packages/mu4e-patch/default.nix @@ -0,0 +1,38 @@ +{ stdenv, fetchFromGitHub, emacs, lib }: + +stdenv.mkDerivation { + pname = "mu4e-patch"; + version = "2019-05-09"; + + src = fetchFromGitHub { + owner = "seanfarley"; + repo = "mu4e-patch"; + rev = "522da46c1653b1cacc79cde91d6534da7ae9517d"; + sha256 = "sha256-1lV4dDuCdyCUXi/In2DzYJPEHuAc9Jfbz2ZecNZwn4I="; + }; + + buildInputs = [ + emacs + ]; + + buildPhase = '' + runHook preBuild + emacs -L . --batch -f batch-byte-compile *.el + runHook postBuild + ''; + + installPhase = '' + runHook preInstall + install -d $out/share/emacs/site-lisp + install *.el *.elc $out/share/emacs/site-lisp + runHook postInstall + ''; + + meta = { + description = "Colorize patch emails in mu4e"; + homepage = "https://github.com/seanfarley/mu4e-patch"; + license = lib.licenses.gpl3Plus; + maintainers = with lib.maintainers; [ leungbk ]; + platforms = emacs.meta.platforms; + }; +} diff --git a/pkgs/applications/editors/emacs/elisp-packages/youtube-dl/default.nix b/pkgs/applications/editors/emacs/elisp-packages/youtube-dl/default.nix new file mode 100644 index 000000000000..c99693463a64 --- /dev/null +++ b/pkgs/applications/editors/emacs/elisp-packages/youtube-dl/default.nix @@ -0,0 +1,36 @@ +{ stdenv, fetchFromGitHub, emacs, lib }: + +stdenv.mkDerivation { + pname = "youtube-dl"; + version = "2018-10-12"; + + src = fetchFromGitHub { + owner = "skeeto"; + repo = "youtube-dl-emacs"; + rev = "af877b5bc4f01c04fccfa7d47a2c328926f20ef4"; + sha256 = "sha256-Etl95rcoRACDPjcTPQqYK2L+w8OZbOrTrRT0JadMdH4="; + }; + + buildInputs = [ emacs ]; + + buildPhase = '' + runHook preBuild + emacs -L . --batch -f batch-byte-compile *.el + runHook postBuild + ''; + + installPhase = '' + runHook preInstall + install -d $out/share/emacs/site-lisp + install *.el *.elc $out/share/emacs/site-lisp + runHook postInstall + ''; + + meta = { + description = "Emacs frontend to the youtube-dl utility"; + homepage = "https://github.com/skeeto/youtube-dl-emacs"; + license = lib.licenses.unlicense; + maintainers = with lib.maintainers; [ leungbk ]; + platforms = emacs.meta.platforms; + }; +} diff --git a/pkgs/applications/misc/avell-unofficial-control-center/default.nix b/pkgs/applications/misc/avell-unofficial-control-center/default.nix new file mode 100644 index 000000000000..45d4f69075d2 --- /dev/null +++ b/pkgs/applications/misc/avell-unofficial-control-center/default.nix @@ -0,0 +1,26 @@ +{ lib, fetchFromGitHub, python3Packages }: + +python3Packages.buildPythonApplication rec { + pname = "avell-unofficial-control-center"; + version = "1.0.4"; + + src = fetchFromGitHub { + owner = "rodgomesc"; + repo = "avell-unofficial-control-center"; + # https://github.com/rodgomesc/avell-unofficial-control-center/issues/58 + rev = "e32e243e31223682a95a719bc58141990eef35e6"; + sha256 = "1qz1kv7p09nxffndzz9jlkzpfx26ppz66f8603zyamjq9dqdmdin"; + }; + + # No tests included + doCheck = false; + + propagatedBuildInputs = with python3Packages; [ pyusb elevate ]; + + meta = with lib; { + homepage = "https://github.com/rodgomesc/avell-unofficial-control-center"; + description = "Software for controlling RGB keyboard lights on some gaming laptops that use ITE Device(8291) Rev 0.03"; + license = licenses.mit; + maintainers = with maintainers; [ rkitover ]; + }; +} diff --git a/pkgs/applications/misc/clifm/default.nix b/pkgs/applications/misc/clifm/default.nix new file mode 100644 index 000000000000..7fc130700aa9 --- /dev/null +++ b/pkgs/applications/misc/clifm/default.nix @@ -0,0 +1,34 @@ +{ stdenv, lib, fetchFromGitHub, libcap, acl, file, readline }: + +stdenv.mkDerivation rec { + pname = "clifm"; + version = "1.1"; + + src = fetchFromGitHub { + owner = "leo-arch"; + repo = pname; + rev = "v${version}"; + sha256 = "0mf9lrq0l532vyf4ycsikrw8imn4gkavyn3cr42nhjsr1drygrp8"; + }; + + buildInputs = [ libcap acl file readline ]; + + makeFlags = [ + "INSTALLPREFIX=${placeholder "out"}/bin" + "DESKTOPPREFIX=${placeholder "out"}/share" + ]; + + preInstall = '' + mkdir -p $out/bin $out/share + ''; + + enableParallelBuilding = true; + + meta = with lib; { + homepage = "https://github.com/leo-arch/clifm"; + description = "CliFM is a CLI-based, shell-like, and non-curses terminal file manager written in C: simple, fast, extensible, and lightweight as hell"; + license = licenses.gpl2Plus; + maintainers = with maintainers; [ vonfry ]; + platforms = platforms.unix; + }; +} diff --git a/pkgs/applications/misc/logseq/default.nix b/pkgs/applications/misc/logseq/default.nix index e8e69cd787b2..1900b92e3bbe 100644 --- a/pkgs/applications/misc/logseq/default.nix +++ b/pkgs/applications/misc/logseq/default.nix @@ -2,11 +2,11 @@ stdenv.mkDerivation rec { pname = "logseq"; - version = "0.0.16"; + version = "0.1.3"; src = fetchurl { url = "https://github.com/logseq/logseq/releases/download/${version}/logseq-linux-x64-${version}.AppImage"; - sha256 = "dmgwFHJRy5qE71naRJKX0HCrVG0qQBOIM9TvCh4j/lY="; + sha256 = "1akg3xjbh01nb7l06qpvz3xsjj64kf042xjnapn60jlgg5y34vbm"; name = "${pname}-${version}.AppImage"; }; diff --git a/pkgs/applications/misc/moonlight-qt/default.nix b/pkgs/applications/misc/moonlight-qt/default.nix index 2393fe09b37d..ad9baec8f992 100644 --- a/pkgs/applications/misc/moonlight-qt/default.nix +++ b/pkgs/applications/misc/moonlight-qt/default.nix @@ -15,6 +15,7 @@ , openssl , libopus , ffmpeg +, wayland }: stdenv.mkDerivation rec { @@ -47,6 +48,7 @@ stdenv.mkDerivation rec { openssl libopus ffmpeg + wayland ]; meta = with lib; { diff --git a/pkgs/applications/misc/nimbo/default.nix b/pkgs/applications/misc/nimbo/default.nix index 1bc45bc6aee0..802a9f9a32c1 100644 --- a/pkgs/applications/misc/nimbo/default.nix +++ b/pkgs/applications/misc/nimbo/default.nix @@ -1,5 +1,6 @@ -{ lib, setuptools, boto3, requests, click, pyyaml, pydantic, buildPythonApplication -, pythonOlder, fetchFromGitHub, awscli }: +{ lib, setuptools, boto3, requests, click, pyyaml, pydantic +, buildPythonApplication, pythonOlder, installShellFiles, fetchFromGitHub +, awscli }: buildPythonApplication rec { pname = "nimbo"; @@ -12,13 +13,20 @@ buildPythonApplication rec { rev = "v${version}"; sha256 = "1fs28s9ynfxrb4rzba6cmik0kl0q0vkpb4zdappsq62jqf960k24"; }; - + nativeBuildInputs = [ installShellFiles ]; propagatedBuildInputs = [ setuptools boto3 awscli requests click pyyaml pydantic ]; # nimbo tests require an AWS instance doCheck = false; pythonImportsCheck = [ "nimbo" ]; + postInstall = '' + installShellCompletion --cmd nimbo \ + --zsh <(_NIMBO_COMPLETE=source_zsh $out/bin/nimbo) \ + --bash <(_NIMBO_COMPLETE=source_bash $out/bin/nimbo) \ + --fish <(_NIMBO_COMPLETE=source_fish $out/bin/nimbo) + ''; + meta = with lib; { description = "Run machine learning jobs on AWS with a single command"; homepage = "https://github.com/nimbo-sh/nimbo"; diff --git a/pkgs/applications/misc/openrgb/default.nix b/pkgs/applications/misc/openrgb/default.nix index 728a2048bc3d..eeff215679ad 100644 --- a/pkgs/applications/misc/openrgb/default.nix +++ b/pkgs/applications/misc/openrgb/default.nix @@ -1,4 +1,4 @@ -{ lib, mkDerivation, fetchFromGitLab, qmake, libusb1, hidapi, pkg-config }: +{ lib, mkDerivation, fetchFromGitLab, qmake, libusb1, hidapi, pkg-config, coreutils }: mkDerivation rec { pname = "openrgb"; @@ -15,11 +15,18 @@ mkDerivation rec { buildInputs = [ libusb1 hidapi ]; installPhase = '' + runHook preInstall + mkdir -p $out/bin cp openrgb $out/bin + substituteInPlace 60-openrgb.rules \ + --replace /bin/chmod "${coreutils}/bin/chmod" + mkdir -p $out/etc/udev/rules.d cp 60-openrgb.rules $out/etc/udev/rules.d + + runHook postInstall ''; doInstallCheck = true; @@ -27,13 +34,11 @@ mkDerivation rec { HOME=$TMPDIR $out/bin/openrgb --help > /dev/null ''; - enableParallelBuilding = true; - meta = with lib; { description = "Open source RGB lighting control"; homepage = "https://gitlab.com/CalcProgrammer1/OpenRGB"; maintainers = with maintainers; [ jonringer ]; - license = licenses.gpl2; + license = licenses.gpl2Plus; platforms = platforms.linux; }; } diff --git a/pkgs/applications/misc/sfm/default.nix b/pkgs/applications/misc/sfm/default.nix new file mode 100644 index 000000000000..3bbcc939d2fb --- /dev/null +++ b/pkgs/applications/misc/sfm/default.nix @@ -0,0 +1,27 @@ +{ lib, stdenv, fetchFromGitHub, conf ? null }: + +stdenv.mkDerivation rec { + pname = "sfm"; + version = "0.1"; + + src = fetchFromGitHub { + owner = "afify"; + repo = pname; + rev = "v${version}"; + hash = "sha256-i4WzYaJKityIt+LPWCbd6UsPBaYoaS397l5BInOXQQA="; + }; + + configFile = lib.optionalString (conf!=null) (lib.writeText "config.def.h" conf); + + postPatch = lib.optionalString (conf!=null) "cp ${configFile} config.def.h"; + + installFlags = [ "PREFIX=$(out)" ]; + + meta = with lib; { + description = "Simple file manager"; + homepage = "https://github.com/afify/sfm"; + license = licenses.isc; + platforms = platforms.unix; + maintainers = with maintainers; [ sikmir ]; + }; +} diff --git a/pkgs/applications/networking/gns3/server.nix b/pkgs/applications/networking/gns3/server.nix index b0d215c47bb4..47bf0eb106bf 100644 --- a/pkgs/applications/networking/gns3/server.nix +++ b/pkgs/applications/networking/gns3/server.nix @@ -24,7 +24,8 @@ in python.pkgs.buildPythonPackage { postPatch = '' substituteInPlace requirements.txt \ - --replace "aiohttp==3.6.2" "aiohttp>=3.6.2" + --replace "aiohttp==3.6.2" "aiohttp>=3.6.2" \ + --replace "py-cpuinfo==7.0.0" "py-cpuinfo>=8.0.0" ''; propagatedBuildInputs = with python.pkgs; [ diff --git a/pkgs/applications/networking/instant-messengers/discord/base.nix b/pkgs/applications/networking/instant-messengers/discord/base.nix index a61ab254348b..110d3ffb00ee 100644 --- a/pkgs/applications/networking/instant-messengers/discord/base.nix +++ b/pkgs/applications/networking/instant-messengers/discord/base.nix @@ -3,7 +3,7 @@ , alsaLib, at-spi2-atk, at-spi2-core, atk, cairo, cups, dbus, expat, fontconfig , freetype, gdk-pixbuf, glib, gtk3, libcxx, libdrm, libnotify, libpulseaudio, libuuid , libX11, libXScrnSaver, libXcomposite, libXcursor, libXdamage, libXext -, libXfixes, libXi, libXrandr, libXrender, libXtst, libxcb +, libXfixes, libXi, libXrandr, libXrender, libXtst, libxcb, libxshmfence , mesa, nspr, nss, pango, systemd, libappindicator-gtk3, libdbusmenu }: @@ -23,6 +23,7 @@ in stdenv.mkDerivation rec { libXScrnSaver libXtst libxcb + libxshmfence mesa nss wrapGAppsHook diff --git a/pkgs/applications/networking/instant-messengers/discord/default.nix b/pkgs/applications/networking/instant-messengers/discord/default.nix index 0d75b3747922..e486cd9de62a 100644 --- a/pkgs/applications/networking/instant-messengers/discord/default.nix +++ b/pkgs/applications/networking/instant-messengers/discord/default.nix @@ -27,10 +27,10 @@ in { pname = "discord-canary"; binaryName = "DiscordCanary"; desktopName = "Discord Canary"; - version = "0.0.123"; + version = "0.0.124"; src = fetchurl { url = "https://dl-canary.discordapp.net/apps/linux/${version}/discord-canary-${version}.tar.gz"; - sha256 = "0bijwfsd9s4awqkgxd9c2cxh7y5r06vix98qjp0dkv63r6jig8ch"; + sha256 = "060ypr9rn5yl8iwh4v3ax1v6501yaq72sx50q47sm0wyxn7gpv91"; }; }; }.${branch} diff --git a/pkgs/applications/networking/instant-messengers/ferdi/default.nix b/pkgs/applications/networking/instant-messengers/ferdi/default.nix index c57b58eea0d8..5d3b251089cf 100644 --- a/pkgs/applications/networking/instant-messengers/ferdi/default.nix +++ b/pkgs/applications/networking/instant-messengers/ferdi/default.nix @@ -1,18 +1,33 @@ -{ lib, mkFranzDerivation, fetchurl }: +{ lib, mkFranzDerivation, fetchurl, xorg, xdg-utils, buildEnv, writeShellScriptBin }: -mkFranzDerivation rec { +let + mkFranzDerivation' = mkFranzDerivation.override { + xdg-utils = buildEnv { + name = "xdg-utils-for-ferdi"; + paths = [ + xdg-utils + (lib.hiPrio (writeShellScriptBin "xdg-open" '' + unset GDK_BACKEND + exec ${xdg-utils}/bin/xdg-open "$@" + '')) + ]; + }; + }; +in +mkFranzDerivation' rec { pname = "ferdi"; name = "Ferdi"; - version = "5.6.0-beta.5"; + version = "5.6.0-beta.6"; src = fetchurl { url = "https://github.com/getferdi/ferdi/releases/download/v${version}/ferdi_${version}_amd64.deb"; - sha256 = "sha256-fDUzYir53OQ3O4o9eG70sGD+FJ0/4SDNsTfh97WFRnQ="; + sha256 = "sha256-Q1HSAEVcaxFyOq7oWqa6AJJpsBKRxbsKb9ydyK/gH/A="; }; + extraBuildInputs = [ xorg.libxshmfence ]; meta = with lib; { description = "Combine your favorite messaging services into one application"; homepage = "https://getferdi.com/"; license = licenses.asl20; - maintainers = [ maintainers.davidtwco ]; + maintainers = with maintainers; [ davidtwco ma27 ]; platforms = [ "x86_64-linux" ]; hydraPlatforms = [ ]; }; diff --git a/pkgs/applications/networking/instant-messengers/franz/generic.nix b/pkgs/applications/networking/instant-messengers/franz/generic.nix index 08afad8b56fa..6fac3657c7cb 100644 --- a/pkgs/applications/networking/instant-messengers/franz/generic.nix +++ b/pkgs/applications/networking/instant-messengers/franz/generic.nix @@ -28,7 +28,8 @@ # Helper function for building a derivation for Franz and forks. -{ pname, name, version, src, meta }: +{ pname, name, version, src, meta, extraBuildInputs ? [] }: + stdenv.mkDerivation rec { inherit pname version src meta; @@ -36,7 +37,7 @@ stdenv.mkDerivation rec { dontPatchELF = true; nativeBuildInputs = [ autoPatchelfHook makeWrapper wrapGAppsHook dpkg ]; - buildInputs = (with xorg; [ + buildInputs = extraBuildInputs ++ (with xorg; [ libXi libXcursor libXdamage diff --git a/pkgs/applications/networking/instant-messengers/matrix-commander/default.nix b/pkgs/applications/networking/instant-messengers/matrix-commander/default.nix index 71f98bc08a6e..2ebf762c418b 100644 --- a/pkgs/applications/networking/instant-messengers/matrix-commander/default.nix +++ b/pkgs/applications/networking/instant-messengers/matrix-commander/default.nix @@ -2,13 +2,13 @@ stdenv.mkDerivation { pname = "matrix-commander"; - version = "unstable-2021-04-18"; + version = "unstable-2021-05-26"; src = fetchFromGitHub { owner = "8go"; repo = "matrix-commander"; - rev = "3e89a5f4c98dd191880ae371cc63eb9282d7d91f"; - sha256 = "08nwwszp1kv5b7bgf6mmfn42slxkyhy98x18xbn4pglc4bj32iql"; + rev = "06b4738bc74ee86fb3ac88c04b8230abf82e7421"; + sha256 = "1skpq3xfnz11m298qnsw68xv391p5qg47flagzsk86pnzi841vc1"; }; buildInputs = [ @@ -35,7 +35,7 @@ stdenv.mkDerivation { meta = with lib; { description = "Simple but convenient CLI-based Matrix client app for sending and receiving"; homepage = "https://github.com/8go/matrix-commander"; - license = licenses.gpl3Only; + license = licenses.gpl3Plus; platforms = platforms.linux; maintainers = [ maintainers.seb314 ]; }; diff --git a/pkgs/applications/networking/instant-messengers/rambox/default.nix b/pkgs/applications/networking/instant-messengers/rambox/default.nix index cbec6babec3b..8782a4bc5beb 100644 --- a/pkgs/applications/networking/instant-messengers/rambox/default.nix +++ b/pkgs/applications/networking/instant-messengers/rambox/default.nix @@ -21,8 +21,11 @@ in mkRambox rec { description = "Free and Open Source messaging and emailing app that combines common web applications into one"; homepage = "https://rambox.pro"; license = licenses.mit; - maintainers = with maintainers; [ ma27 ]; + maintainers = with maintainers; [ ]; platforms = ["i686-linux" "x86_64-linux"]; hydraPlatforms = []; + knownVulnerabilities = [ + "Electron 7.2.4 is EOL and contains at least the following vulnerabilities: CVE-2020-6458, CVE-2020-6460 and more (https://www.electronjs.org/releases/stable?version=7). Consider using an alternative such as `ferdi'." + ]; }; } diff --git a/pkgs/applications/networking/instant-messengers/signal-desktop/default.nix b/pkgs/applications/networking/instant-messengers/signal-desktop/default.nix index 1c40c02243d9..a512e3a004d0 100644 --- a/pkgs/applications/networking/instant-messengers/signal-desktop/default.nix +++ b/pkgs/applications/networking/instant-messengers/signal-desktop/default.nix @@ -28,7 +28,7 @@ let else ""); in stdenv.mkDerivation rec { pname = "signal-desktop"; - version = "5.3.0"; # Please backport all updates to the stable channel. + version = "5.4.0"; # Please backport all updates to the stable channel. # All releases have a limited lifetime and "expire" 90 days after the release. # When releases "expire" the application becomes unusable until an update is # applied. The expiration date for the current release can be extracted with: @@ -38,7 +38,7 @@ in stdenv.mkDerivation rec { src = fetchurl { url = "https://updates.signal.org/desktop/apt/pool/main/s/signal-desktop/signal-desktop_${version}_amd64.deb"; - sha256 = "15lclxw3njih90zlh2n90v8ljg0wnglw5w8jrpa7rbd789yagvq7"; + sha256 = "046xy033ars70ay5ryj39i5053py00xj92ajdg212pamq415z1zb"; }; nativeBuildInputs = [ diff --git a/pkgs/applications/networking/instant-messengers/viber/default.nix b/pkgs/applications/networking/instant-messengers/viber/default.nix index 0224edc652fa..7496063c58ee 100644 --- a/pkgs/applications/networking/instant-messengers/viber/default.nix +++ b/pkgs/applications/networking/instant-messengers/viber/default.nix @@ -9,7 +9,8 @@ stdenv.mkDerivation { version = "13.3.1.22"; src = fetchurl { - url = "https://download.cdn.viber.com/cdn/desktop/Linux/viber.deb"; + # Official link: https://download.cdn.viber.com/cdn/desktop/Linux/viber.deb + url = "http://web.archive.org/web/20210602004133/https://download.cdn.viber.com/cdn/desktop/Linux/viber.deb"; sha256 = "0rs26x0lycavybn6k1hbb5kzms0zzcmxlrmi4g8k7vyafj6s8dqh"; }; diff --git a/pkgs/applications/networking/irc/senpai/default.nix b/pkgs/applications/networking/irc/senpai/default.nix new file mode 100644 index 000000000000..81a984c84cd9 --- /dev/null +++ b/pkgs/applications/networking/irc/senpai/default.nix @@ -0,0 +1,37 @@ +{ lib, buildGoModule, fetchFromSourcehut, installShellFiles, scdoc }: + +buildGoModule rec { + pname = "senpai"; + version = "unstable-2021-05-27"; + + src = fetchFromSourcehut { + owner = "~taiite"; + repo = "senpai"; + rev = "6be718329175c6d11e359f1a366ab6ab22b101d2"; + sha256 = "sha256-hW6DHJlDBYEqK8zj5PvGKU54sbeXjx1tdqwKXPXlKHc="; + }; + + vendorSha256 = "sha256-OLi5y1hrYK6+l5WB1SX85QU4y3KjFyGaEzgbE6lnW2k="; + + subPackages = [ + "cmd/senpai" + ]; + + nativeBuildInputs = [ + scdoc + installShellFiles + ]; + + postInstall = '' + scdoc < doc/senpai.1.scd > doc/senpai.1 + scdoc < doc/senpai.5.scd > doc/senpai.5 + installManPage doc/senpai.* + ''; + + meta = with lib; { + description = "Your everyday IRC student"; + homepage = "https://ellidri.org/senpai"; + license = licenses.isc; + maintainers = with maintainers; [ malvo ]; + }; +} diff --git a/pkgs/applications/networking/p2p/retroshare/default.nix b/pkgs/applications/networking/p2p/retroshare/default.nix new file mode 100644 index 000000000000..e69155d4c2f4 --- /dev/null +++ b/pkgs/applications/networking/p2p/retroshare/default.nix @@ -0,0 +1,53 @@ +{ lib, mkDerivation, fetchFromGitHub, qmake, cmake, pkg-config, miniupnpc, bzip2 +, speex, libmicrohttpd, libxml2, libxslt, sqlcipher, rapidjson, libXScrnSaver +, qtbase, qtx11extras, qtmultimedia, libgnome-keyring3 +}: + +mkDerivation rec { + pname = "retroshare"; + version = "0.6.6"; + + src = fetchFromGitHub { + owner = "RetroShare"; + repo = "RetroShare"; + rev = "v${version}"; + sha256 = "1hsymbhsfgycj39mdkrdp2hgq8irmvxa4a6jx2gg339m1fgf2xmh"; + fetchSubmodules = true; + }; + + patches = [ + # The build normally tries to get git sub-modules during build + # but we already have them checked out + ./no-submodules.patch + ]; + + nativeBuildInputs = [ pkg-config qmake cmake ]; + buildInputs = [ + speex miniupnpc qtmultimedia qtx11extras qtbase libgnome-keyring3 + bzip2 libXScrnSaver libxml2 libxslt sqlcipher libmicrohttpd rapidjson + ]; + + qmakeFlags = [ + # Upnp library autodetection doesn't work + "RS_UPNP_LIB=miniupnpc" + + # These values are normally found from the .git folder + "RS_MAJOR_VERSION=${lib.versions.major version}" + "RS_MINOR_VERSION=${lib.versions.minor version}" + "RS_MINI_VERSION=${lib.versions.patch version}" + "RS_EXTRA_VERSION=" + ]; + + postInstall = '' + # BT DHT bootstrap + cp libbitdht/src/bitdht/bdboot.txt $out/share/retroshare + ''; + + meta = with lib; { + description = "Decentralized peer to peer chat application."; + homepage = "http://retroshare.sourceforge.net/"; + license = licenses.gpl2Plus; + platforms = platforms.linux; + maintainers = with maintainers; [ StijnDW ]; + }; +} diff --git a/pkgs/applications/networking/p2p/retroshare/no-submodules.patch b/pkgs/applications/networking/p2p/retroshare/no-submodules.patch new file mode 100644 index 000000000000..d47268003090 --- /dev/null +++ b/pkgs/applications/networking/p2p/retroshare/no-submodules.patch @@ -0,0 +1,62 @@ +diff --git a/libretroshare/src/libretroshare.pro b/libretroshare/src/libretroshare.pro +index 84d18944e..71aeb67d2 100644 +--- a/libretroshare/src/libretroshare.pro ++++ b/libretroshare/src/libretroshare.pro +@@ -870,20 +870,14 @@ rs_jsonapi { + genrestbedlib.variable_out = PRE_TARGETDEPS + win32-g++:isEmpty(QMAKE_SH) { + genrestbedlib.commands = \ +- cd /D $$shell_path($${RS_SRC_PATH}) && git submodule update --init supportlibs/restbed || cd . $$escape_expand(\\n\\t) \ +- cd /D $$shell_path($${RESTBED_SRC_PATH}) && git submodule update --init dependency/asio || cd . $$escape_expand(\\n\\t) \ +- cd /D $$shell_path($${RESTBED_SRC_PATH}) && git submodule update --init dependency/catch || cd . $$escape_expand(\\n\\t )\ +- cd /D $$shell_path($${RESTBED_SRC_PATH}) && git submodule update --init dependency/kashmir || cd . $$escape_expand(\\n\\t) \ ++ cd /D $$shell_path($${RS_SRC_PATH}) && cd . $$escape_expand(\\n\\t) \ ++ cd /D $$shell_path($${RESTBED_SRC_PATH}) && cd . $$escape_expand(\\n\\t) \ ++ cd /D $$shell_path($${RESTBED_SRC_PATH}) && cd . $$escape_expand(\\n\\t )\ ++ cd /D $$shell_path($${RESTBED_SRC_PATH}) && cd . $$escape_expand(\\n\\t) \ + $(CHK_DIR_EXISTS) $$shell_path($$UDP_DISCOVERY_BUILD_PATH) $(MKDIR) $$shell_path($${UDP_DISCOVERY_BUILD_PATH}) $$escape_expand(\\n\\t) + } else { + genrestbedlib.commands = \ +- cd $${RS_SRC_PATH} && ( \ +- git submodule update --init supportlibs/restbed ; \ +- cd $${RESTBED_SRC_PATH} ; \ +- git submodule update --init dependency/asio ; \ +- git submodule update --init dependency/catch ; \ +- git submodule update --init dependency/kashmir ; \ +- true ) && \ ++ cd $${RS_SRC_PATH} && \ + mkdir -p $${RESTBED_BUILD_PATH} && + } + genrestbedlib.commands += \ +@@ -991,14 +985,9 @@ rs_broadcast_discovery { + udpdiscoverycpplib.variable_out = PRE_TARGETDEPS + win32-g++:isEmpty(QMAKE_SH) { + udpdiscoverycpplib.commands = \ +- cd /D $$shell_path($${RS_SRC_PATH}) && git submodule update --init supportlibs/udp-discovery-cpp || cd . $$escape_expand(\\n\\t) \ + $(CHK_DIR_EXISTS) $$shell_path($$UDP_DISCOVERY_BUILD_PATH) $(MKDIR) $$shell_path($${UDP_DISCOVERY_BUILD_PATH}) $$escape_expand(\\n\\t) + } else { +- udpdiscoverycpplib.commands = \ +- cd $${RS_SRC_PATH} && ( \ +- git submodule update --init supportlibs/udp-discovery-cpp || \ +- true ) && \ +- mkdir -p $${UDP_DISCOVERY_BUILD_PATH} && ++ udpdiscoverycpplib.commands = mkdir -p $${UDP_DISCOVERY_BUILD_PATH} && + } + udpdiscoverycpplib.commands += \ + cd $$shell_path($${UDP_DISCOVERY_BUILD_PATH}) && \ +diff --git a/retroshare-gui/src/retroshare-gui.pro b/retroshare-gui/src/retroshare-gui.pro +index 654efd170..06cba9ba3 100644 +--- a/retroshare-gui/src/retroshare-gui.pro ++++ b/retroshare-gui/src/retroshare-gui.pro +@@ -66,10 +66,7 @@ rs_gui_cmark { + gencmarklib.CONFIG += target_predeps combine + gencmarklib.variable_out = PRE_TARGETDEPS + gencmarklib.commands = \ +- cd $${RS_SRC_PATH} && ( \ +- git submodule update --init supportlibs/cmark ; \ +- cd $${CMARK_SRC_PATH} ; \ +- true ) && \ ++ cd $${RS_SRC_PATH} && \ + mkdir -p $${CMARK_BUILD_PATH} && cd $${CMARK_BUILD_PATH} && \ + cmake \ + -DCMAKE_CXX_COMPILER=$$QMAKE_CXX \ diff --git a/pkgs/applications/networking/seaweedfs/default.nix b/pkgs/applications/networking/seaweedfs/default.nix index 86a3e48ae8ff..522cef2b8a79 100644 --- a/pkgs/applications/networking/seaweedfs/default.nix +++ b/pkgs/applications/networking/seaweedfs/default.nix @@ -7,16 +7,16 @@ buildGoModule rec { pname = "seaweedfs"; - version = "2.36"; + version = "2.50"; src = fetchFromGitHub { owner = "chrislusf"; repo = "seaweedfs"; rev = version; - sha256 = "sha256-BVn+mV5SjyODcT+O8LXfGA42/Si5+GrdkjP0tAPiuTM="; + sha256 = "sha256-ai8/XryFw/7GYuWAmLkqHzK97QgTBPyE6m3dflck94w="; }; - vendorSha256 = "sha256-qdgnoh+53o3idCfpkEFGK88aUVb2F6oHlSRZncs2hyY="; + vendorSha256 = "sha256-gJQDcACMWZWS4CgS2NDALoBzxu7Hh4ZW3f0gUFUALCM="; subPackages = [ "weed" ]; @@ -26,7 +26,7 @@ buildGoModule rec { meta = with lib; { description = "Simple and highly scalable distributed file system"; homepage = "https://github.com/chrislusf/seaweedfs"; - maintainers = [ maintainers.raboof ]; + maintainers = with maintainers; [ cmacrae raboof ]; license = licenses.asl20; }; } diff --git a/pkgs/applications/networking/sniffers/wireshark/default.nix b/pkgs/applications/networking/sniffers/wireshark/default.nix index c5a38fd25001..4fe5272bc078 100644 --- a/pkgs/applications/networking/sniffers/wireshark/default.nix +++ b/pkgs/applications/networking/sniffers/wireshark/default.nix @@ -10,7 +10,7 @@ assert withQt -> qt5 != null; with lib; let - version = "3.4.5"; + version = "3.4.6"; variant = if withQt then "qt" else "cli"; in stdenv.mkDerivation { @@ -20,7 +20,7 @@ in stdenv.mkDerivation { src = fetchurl { url = "https://www.wireshark.org/download/src/all-versions/wireshark-${version}.tar.xz"; - sha256 = "sha256-3hqv0QCh4SB8hQ0YDpfdkauNoPXra+7FRfclzbFF0zM="; + sha256 = "0a26kcj3n1a2kw1f3fc6s1x3rw3f3bj2cq6rp7k0kc4ciwh7i9hj"; }; cmakeFlags = [ @@ -93,6 +93,7 @@ in stdenv.mkDerivation { meta = with lib; { homepage = "https://www.wireshark.org/"; + changelog = "https://www.wireshark.org/docs/relnotes/wireshark-${version}.html"; description = "Powerful network protocol analyzer"; license = licenses.gpl2Plus; diff --git a/pkgs/applications/office/trilium/0001-Use-console-logger-instead-of-rolling-files.patch b/pkgs/applications/office/trilium/0001-Use-console-logger-instead-of-rolling-files.patch index 21b6b1c579cd..5bda63b58451 100644 --- a/pkgs/applications/office/trilium/0001-Use-console-logger-instead-of-rolling-files.patch +++ b/pkgs/applications/office/trilium/0001-Use-console-logger-instead-of-rolling-files.patch @@ -1,5 +1,5 @@ diff --git a/src/services/log.js b/src/services/log.js -index b4c39e99..4c249154 100644 +index 1345ce39..a9770516 100644 --- a/src/services/log.js +++ b/src/services/log.js @@ -1,14 +1,5 @@ @@ -17,7 +17,7 @@ index b4c39e99..4c249154 100644 const SECOND = 1000; const MINUTE = 60 * SECOND; const HOUR = 60 * MINUTE; -@@ -16,41 +7,7 @@ const DAY = 24 * HOUR; +@@ -16,45 +7,7 @@ const DAY = 24 * HOUR; const NEW_LINE = process.platform === "win32" ? '\r\n' : '\n'; @@ -46,16 +46,19 @@ index b4c39e99..4c249154 100644 -function checkDate(millisSinceMidnight) { - if (millisSinceMidnight >= DAY) { - initLogFile(); +- +- millisSinceMidnight =- DAY; - } +- +- return millisSinceMidnight; -} - function log(str) { -- const millisSinceMidnight = Date.now() - todaysMidnight.getTime(); +- let millisSinceMidnight = Date.now() - todaysMidnight.getTime(); - -- checkDate(millisSinceMidnight); +- millisSinceMidnight = checkDate(millisSinceMidnight); - - logFile.write(formatTime(millisSinceMidnight) + ' ' + str + NEW_LINE); - console.log(str); } - diff --git a/pkgs/applications/office/trilium/default.nix b/pkgs/applications/office/trilium/default.nix index 51a12ea40dbf..d6b7e08b4be9 100644 --- a/pkgs/applications/office/trilium/default.nix +++ b/pkgs/applications/office/trilium/default.nix @@ -19,16 +19,16 @@ let maintainers = with maintainers; [ fliegendewurst ]; }; - version = "0.47.3"; + version = "0.47.4"; desktopSource = { url = "https://github.com/zadam/trilium/releases/download/v${version}/trilium-linux-x64-${version}.tar.xz"; - sha256 = "05l8yiqbqh2yr4cfbivpmj5q3jyzqz86wni36wcjlcg3rccms0hc"; + sha256 = "0hvp6rpvgda12ficzqkj7kllgmpzc8n4rvpgv0zi6fa5alkr944x"; }; serverSource = { url = "https://github.com/zadam/trilium/releases/download/v${version}/trilium-linux-x64-server-${version}.tar.xz"; - sha256 = "03nsvalaa0rch9i1kh6p5ynnsdmidm5zrw42klj70bamviklzsnh"; + sha256 = "01bbg7ssszrq27zk7xzil2mawk1659h1hw68yvk8lbgc4n9phkqk"; }; in { diff --git a/pkgs/applications/science/electronics/dsview/default.nix b/pkgs/applications/science/electronics/dsview/default.nix index ab16866fe01c..eb8246a584d3 100644 --- a/pkgs/applications/science/electronics/dsview/default.nix +++ b/pkgs/applications/science/electronics/dsview/default.nix @@ -25,6 +25,17 @@ mkDerivation rec { # Using local file instead of content of commit #33e3d896a47 because # sourceRoot make it unappliable ./qt515.patch + + # Change from upstream master that removes extern-C scopes which + # cause failures with modern glib. This can likely be removed if + # there is an upstream release >1.12 + (fetchpatch { + name = "fix-extern-c.patch"; + url = "https://github.com/DreamSourceLab/DSView/commit/33cc733abe19872bf5ed08540a94b798d0d4ecf4.patch"; + sha256 = "sha256-TLfLQa3sdyNHTpMMvId/V6uUuOFihOZMFJOj9frnDoY="; + stripLen = 2; + extraPrefix = ""; + }) ]; nativeBuildInputs = [ cmake pkg-config ]; diff --git a/pkgs/applications/science/electronics/verilator/default.nix b/pkgs/applications/science/electronics/verilator/default.nix index 5871ad01d91c..5377a7b3d118 100644 --- a/pkgs/applications/science/electronics/verilator/default.nix +++ b/pkgs/applications/science/electronics/verilator/default.nix @@ -4,11 +4,11 @@ stdenv.mkDerivation rec { pname = "verilator"; - version = "4.110"; + version = "4.202"; src = fetchurl { - url = "https://www.veripool.org/ftp/${pname}-${version}.tgz"; - sha256 = "sha256-Rxb+AFhmGinWtZyvjnRxsu3b3tbtRO3njcHGUJTs/sw="; + url = "https://www.veripool.org/ftp/${pname}-${version}.tgz"; + sha256 = "0ydn4304pminzq8zc1hsrb2fjrfqnb6akr45ky43jd29c4jgznnq"; }; enableParallelBuilding = true; @@ -29,7 +29,7 @@ stdenv.mkDerivation rec { meta = with lib; { description = "Fast and robust (System)Verilog simulator/compiler"; homepage = "https://www.veripool.org/wiki/verilator"; - license = licenses.lgpl3; + license = with licenses; [ lgpl3Only artistic2 ]; platforms = platforms.unix; maintainers = with maintainers; [ thoughtpolice ]; }; diff --git a/pkgs/applications/science/logic/acgtk/default.nix b/pkgs/applications/science/logic/acgtk/default.nix index 1cf08741206c..1de21e09f806 100644 --- a/pkgs/applications/science/logic/acgtk/default.nix +++ b/pkgs/applications/science/logic/acgtk/default.nix @@ -11,7 +11,7 @@ stdenv.mkDerivation { }; buildInputs = [ dune_2 ] ++ (with ocamlPackages; [ - ocaml findlib ansiterminal cairo2 cmdliner fmt logs menhir mtime yojson + ocaml findlib ansiterminal cairo2 cmdliner fmt logs menhir menhirLib mtime yojson ]); buildPhase = "dune build --profile=release"; diff --git a/pkgs/applications/science/logic/why3/default.nix b/pkgs/applications/science/logic/why3/default.nix index deb40c742847..c56e5445f0be 100644 --- a/pkgs/applications/science/logic/why3/default.nix +++ b/pkgs/applications/science/logic/why3/default.nix @@ -11,7 +11,7 @@ stdenv.mkDerivation { }; buildInputs = with ocamlPackages; [ - ocaml findlib ocamlgraph zarith menhir + ocaml findlib ocamlgraph zarith menhir menhirLib # Compressed Sessions # Emacs compilation of why3.el emacs diff --git a/pkgs/applications/science/misc/graphia/default.nix b/pkgs/applications/science/misc/graphia/default.nix new file mode 100644 index 000000000000..4b45a3c06fe1 --- /dev/null +++ b/pkgs/applications/science/misc/graphia/default.nix @@ -0,0 +1,33 @@ +{ stdenv, lib, cmake, fetchFromGitHub +, wrapQtAppsHook, qtbase, qtquickcontrols2, qtgraphicaleffects +}: + +stdenv.mkDerivation rec { + pname = "graphia"; + version = "2.2"; + + src = fetchFromGitHub { + owner = "graphia-app"; + repo = "graphia"; + rev = version; + sha256 = "sha256:05givvvg743sawqy2vhljkfgn5v1s907sflsnsv11ddx6x51na1w"; + }; + + nativeBuildInputs = [ + cmake + wrapQtAppsHook + ]; + buildInputs = [ + qtbase + qtquickcontrols2 + qtgraphicaleffects + ]; + + meta = with lib; { + description = "A visualisation tool for the creation and analysis of graphs."; + homepage = "https://graphia.app"; + license = licenses.gpl3Only; + maintainers = [ maintainers.bgamari ]; + platforms = platforms.all; + }; +} diff --git a/pkgs/applications/terminal-emulators/wezterm/default.nix b/pkgs/applications/terminal-emulators/wezterm/default.nix index b6d7dd763ed0..d214d6fabc3d 100644 --- a/pkgs/applications/terminal-emulators/wezterm/default.nix +++ b/pkgs/applications/terminal-emulators/wezterm/default.nix @@ -2,6 +2,7 @@ , rustPlatform , lib , fetchFromGitHub +, ncurses , pkg-config , fontconfig , python3 @@ -68,6 +69,8 @@ rustPlatform.buildRustPackage rec { fetchSubmodules = true; }; + outputs = [ "out" "terminfo" ]; + postPatch = '' echo ${version} > .tag ''; @@ -78,10 +81,17 @@ rustPlatform.buildRustPackage rec { pkg-config python3 perl + ncurses ]; buildInputs = runtimeDeps; + postInstall = '' + mkdir -p $terminfo/share/terminfo/w $out/nix-support + tic -x -o $terminfo/share/terminfo termwiz/data/wezterm.terminfo + echo "$terminfo" >> $out/nix-support/propagated-user-env-packages + ''; + preFixup = lib.optionalString stdenv.isLinux '' for artifact in wezterm wezterm-gui wezterm-mux-server strip-ansi-escapes; do patchelf --set-rpath "${lib.makeLibraryPath runtimeDeps}" $out/bin/$artifact diff --git a/pkgs/applications/version-management/git-and-tools/tig/default.nix b/pkgs/applications/version-management/git-and-tools/tig/default.nix index 753a3443c315..fd57eb22186f 100644 --- a/pkgs/applications/version-management/git-and-tools/tig/default.nix +++ b/pkgs/applications/version-management/git-and-tools/tig/default.nix @@ -4,13 +4,13 @@ stdenv.mkDerivation rec { pname = "tig"; - version = "2.5.3"; + version = "2.5.4"; src = fetchFromGitHub { owner = "jonas"; repo = pname; rev = "${pname}-${version}"; - sha256 = "sha256-BXs7aKUYiU5L2OjhhmJ+dkHvNcrnw5qREwOTB6npLnw="; + sha256 = "sha256-dZqqUydZ4q/mDEjtojpMGfzAmW3yCNDvT9oCEmhq1hg="; }; nativeBuildInputs = [ makeWrapper autoreconfHook asciidoc xmlto docbook_xsl docbook_xml_dtd_45 findXMLCatalogs pkg-config ]; diff --git a/pkgs/applications/version-management/sourcehut/default.nix b/pkgs/applications/version-management/sourcehut/default.nix index 43d783e1934d..401a1437b7d9 100644 --- a/pkgs/applications/version-management/sourcehut/default.nix +++ b/pkgs/applications/version-management/sourcehut/default.nix @@ -31,6 +31,7 @@ let in with python.pkgs; recurseIntoAttrs { inherit python; + coresrht = toPythonApplication srht; buildsrht = toPythonApplication buildsrht; dispatchsrht = toPythonApplication dispatchsrht; gitsrht = toPythonApplication gitsrht; diff --git a/pkgs/applications/video/lightworks/default.nix b/pkgs/applications/video/lightworks/default.nix index 9d940cd29b41..81b5be75f3bc 100644 --- a/pkgs/applications/video/lightworks/default.nix +++ b/pkgs/applications/video/lightworks/default.nix @@ -1,6 +1,6 @@ { lib, stdenv, fetchurl, dpkg, makeWrapper, buildFHSUserEnv , gtk3, gdk-pixbuf, cairo, libjpeg_original, glib, pango, libGLU -, libGL, nvidia_cg_toolkit, zlib, openssl, libuuid , alsaLib, udev +, libGL, nvidia_cg_toolkit, zlib, openssl, libuuid , alsaLib, udev, libjack2 }: let fullPath = lib.makeLibraryPath [ @@ -18,6 +18,7 @@ let openssl libuuid alsaLib + libjack2 udev ]; diff --git a/pkgs/applications/video/mpv/scripts/youtube-quality.nix b/pkgs/applications/video/mpv/scripts/youtube-quality.nix new file mode 100644 index 000000000000..3c55a36d0a79 --- /dev/null +++ b/pkgs/applications/video/mpv/scripts/youtube-quality.nix @@ -0,0 +1,39 @@ +{ lib +, stdenvNoCC +, fetchFromGitHub +, oscSupport ? false +}: + +stdenvNoCC.mkDerivation rec { + pname = "mpv-playlistmanager"; + version = "unstable-2020-02-11"; + + src = fetchFromGitHub { + owner = "jgreco"; + repo = "mpv-youtube-quality"; + rev = "1f8c31457459ffc28cd1c3f3c2235a53efad7148"; + sha256 = "voNP8tCwCv8QnAZOPC9gqHRV/7jgCAE63VKBd/1s5ic="; + }; + + dontBuild = true; + + installPhase = '' + runHook preInstall + mkdir -p $out/share/mpv/scripts + cp youtube-quality.lua $out/share/mpv/scripts + '' + lib.optionalString oscSupport '' + cp youtube-quality-osc.lua $out/share/mpv/scripts + '' + '' + runHook postInstall + ''; + + passthru.scriptName = "youtube-quality.lua"; + + meta = with lib; { + description = "A userscript for MPV that allows you to change youtube video quality (ytdl-format) on the fly"; + homepage = "https://github.com/jgreco/mpv-youtube-quality"; + license = licenses.unfree; + platforms = platforms.all; + maintainers = with maintainers; [ lunik1 ]; + }; +} diff --git a/pkgs/build-support/build-fhs-userenv/chrootenv/chrootenv.c b/pkgs/build-support/build-fhs-userenv/chrootenv/chrootenv.c index a438b80e1829..27e70e3fe5c4 100644 --- a/pkgs/build-support/build-fhs-userenv/chrootenv/chrootenv.c +++ b/pkgs/build-support/build-fhs-userenv/chrootenv/chrootenv.c @@ -43,7 +43,6 @@ const gchar *create_tmpdir() { void pivot_host(const gchar *guest) { g_autofree gchar *point = g_build_filename(guest, "host", NULL); fail_if(g_mkdir(point, 0755)); - fail_if(mount(0, "/", 0, MS_PRIVATE | MS_REC, 0)); fail_if(pivot_root(guest, point)); } @@ -122,6 +121,9 @@ int main(gint argc, gchar **argv) { fail("unshare", unshare_errno); } + // hide all mounts we do from the parent + fail_if(mount(0, "/", 0, MS_PRIVATE | MS_REC, 0)); + if (uid != 0) { spit("/proc/self/setgroups", "deny"); spit("/proc/self/uid_map", "%d %d 1", uid, uid); diff --git a/pkgs/build-support/make-desktopitem/default.nix b/pkgs/build-support/make-desktopitem/default.nix index 329286bd3628..1491a3ad9119 100644 --- a/pkgs/build-support/make-desktopitem/default.nix +++ b/pkgs/build-support/make-desktopitem/default.nix @@ -12,6 +12,8 @@ , mimeType ? null , categories ? null , startupNotify ? null +, noDisplay ? null +, prefersNonDefaultGPU ? null , extraDesktopEntries ? { } # Extra key-value pairs to add to the [Desktop Entry] section. This may override other values , extraEntries ? "" # Extra configuration. Will be appended to the end of the file and may thus contain extra sections , fileValidation ? true # whether to validate resulting desktop file. @@ -35,6 +37,8 @@ let "MimeType" = nullableToString mimeType; "Categories" = nullableToString categories; "StartupNotify" = nullableToString startupNotify; + "NoDisplay" = nullableToString noDisplay; + "PrefersNonDefaultGPU" = nullableToString prefersNonDefaultGPU; } // extraDesktopEntries; # Map all entries to a list of lines diff --git a/pkgs/data/fonts/edwin/default.nix b/pkgs/data/fonts/edwin/default.nix new file mode 100644 index 000000000000..4b1688dbc55e --- /dev/null +++ b/pkgs/data/fonts/edwin/default.nix @@ -0,0 +1,29 @@ +{ lib, fetchurl }: + +let + version = "0.52"; +in fetchurl { + name = "edwin-${version}"; + + url = "https://github.com/MuseScoreFonts/Edwin/archive/refs/tags/v${version}.tar.gz"; + + downloadToTemp = true; + + recursiveHash = true; + + sha256 = "sha256-e0ADK72ECl+QMvLWtFJfeHBmuEwzr9M+Kqvkd5Z2mmo="; + + postFetch = '' + tar xzf $downloadedFile + mkdir -p $out/share/fonts/opentype + install Edwin-${version}/*.otf $out/share/fonts/opentype + ''; + + meta = with lib; { + description = "A text font for musical scores"; + homepage = "https://github.com/MuseScoreFonts/Edwin"; + license = licenses.ofl; + platforms = platforms.all; + maintainers = with maintainers; [ fortuneteller2k ]; + }; +} diff --git a/pkgs/desktops/gnome/apps/gnome-boxes/default.nix b/pkgs/desktops/gnome/apps/gnome-boxes/default.nix index 605275be7ded..8d0e86b1a93b 100644 --- a/pkgs/desktops/gnome/apps/gnome-boxes/default.nix +++ b/pkgs/desktops/gnome/apps/gnome-boxes/default.nix @@ -49,15 +49,16 @@ , webkitgtk , vte , glib-networking +, qemu-utils }: stdenv.mkDerivation rec { pname = "gnome-boxes"; - version = "40.1"; + version = "40.2"; src = fetchurl { url = "mirror://gnome/sources/${pname}/${lib.versions.major version}/${pname}-${version}.tar.xz"; - sha256 = "seKPLH+3a/T7uGLQ1S6BG5TL6f8W8GdAiWRWhpCILvg="; + sha256 = "hzN1mi2GpWNnWWpTSQRjO4HKqlxFpWNtsulZDHFK6Nk="; }; doCheck = true; @@ -120,7 +121,7 @@ stdenv.mkDerivation rec { ]; preFixup = '' - gappsWrapperArgs+=(--prefix PATH : "${lib.makeBinPath [ mtools cdrkit libcdio ]}") + gappsWrapperArgs+=(--prefix PATH : "${lib.makeBinPath [ mtools cdrkit libcdio qemu-utils ]}") ''; postPatch = '' diff --git a/pkgs/desktops/gnome/apps/gnome-calendar/default.nix b/pkgs/desktops/gnome/apps/gnome-calendar/default.nix index 9c0b1f659768..da2e37e51fc4 100644 --- a/pkgs/desktops/gnome/apps/gnome-calendar/default.nix +++ b/pkgs/desktops/gnome/apps/gnome-calendar/default.nix @@ -24,11 +24,11 @@ stdenv.mkDerivation rec { pname = "gnome-calendar"; - version = "40.1"; + version = "40.2"; src = fetchurl { url = "mirror://gnome/sources/${pname}/${lib.versions.major version}/${pname}-${version}.tar.xz"; - sha256 = "2M30n57uHDo8aZHDL4VjxKfE2w23ymPOUcyRjkM7M6U="; + sha256 = "njcB/UoOWJgA0iUgN3BkTzHVI0ZV9UqDqF/wVW3X6jM="; }; patches = [ diff --git a/pkgs/desktops/gnome/apps/gnome-maps/default.nix b/pkgs/desktops/gnome/apps/gnome-maps/default.nix index 2818215a4ff9..0a07428b1b22 100644 --- a/pkgs/desktops/gnome/apps/gnome-maps/default.nix +++ b/pkgs/desktops/gnome/apps/gnome-maps/default.nix @@ -29,11 +29,11 @@ stdenv.mkDerivation rec { pname = "gnome-maps"; - version = "40.1"; + version = "40.2"; src = fetchurl { url = "mirror://gnome/sources/${pname}/${lib.versions.major version}/${pname}-${version}.tar.xz"; - sha256 = "sha256-mAXUwFs6NpV0bTdisoFr/+bZ19VuF7y7nZ1B3C0CYxo="; + sha256 = "sha256-g+gVAFTQxLWmPJoJvyx9+YmuaQ7Kwb5r97ExKqpjm9Q="; }; doCheck = true; diff --git a/pkgs/desktops/gnome/core/epiphany/default.nix b/pkgs/desktops/gnome/core/epiphany/default.nix index f286d384c4e8..0b4191b2266c 100644 --- a/pkgs/desktops/gnome/core/epiphany/default.nix +++ b/pkgs/desktops/gnome/core/epiphany/default.nix @@ -37,11 +37,11 @@ stdenv.mkDerivation rec { pname = "epiphany"; - version = "40.1"; + version = "40.2"; src = fetchurl { url = "mirror://gnome/sources/${pname}/${lib.versions.major version}/${pname}-${version}.tar.xz"; - sha256 = "1l0sb1xg16g4wg3z99xb0w2kbyczbn7q4mphs3w4lxq22xml4sk9"; + sha256 = "dRGeIgZWV89w7ytgPU9zg1VzvQNPHmGMD2YkeP1saDU="; }; nativeBuildInputs = [ diff --git a/pkgs/desktops/gnome/core/evolution-data-server/default.nix b/pkgs/desktops/gnome/core/evolution-data-server/default.nix index 0ed3565d7f03..8781a2aa7fde 100644 --- a/pkgs/desktops/gnome/core/evolution-data-server/default.nix +++ b/pkgs/desktops/gnome/core/evolution-data-server/default.nix @@ -6,13 +6,13 @@ stdenv.mkDerivation rec { pname = "evolution-data-server"; - version = "3.40.1"; + version = "3.40.2"; outputs = [ "out" "dev" ]; src = fetchurl { url = "mirror://gnome/sources/evolution-data-server/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz"; - sha256 = "08iykha7zhk21b3axsp3v1jfwda612v0m8rz8zlzppm5i8s5ziza"; + sha256 = "7IKVFjnzKlzs6AqLC5qj9mt9MY4+4sHDUjTy4r3opBg="; }; patches = [ diff --git a/pkgs/desktops/gnome/core/gnome-software/default.nix b/pkgs/desktops/gnome/core/gnome-software/default.nix index 64cd214e8090..226b251ec46a 100644 --- a/pkgs/desktops/gnome/core/gnome-software/default.nix +++ b/pkgs/desktops/gnome/core/gnome-software/default.nix @@ -43,11 +43,11 @@ in stdenv.mkDerivation rec { pname = "gnome-software"; - version = "40.1"; + version = "40.2"; src = fetchurl { url = "mirror://gnome/sources/gnome-software/${lib.versions.major version}/${pname}-${version}.tar.xz"; - sha256 = "16q2902swxsjdxb1nj335sv1bb76rvq4w6dn4yszkwf3s0fd86in"; + sha256 = "y9HdKguvw/U93kIAPEpKA3RsuNZNxdJ+uNvmc27nJ5Y="; }; patches = [ diff --git a/pkgs/development/beam-modules/rebar3-release.nix b/pkgs/development/beam-modules/rebar3-release.nix index e8e2aecc460c..d2c9da6414fa 100644 --- a/pkgs/development/beam-modules/rebar3-release.nix +++ b/pkgs/development/beam-modules/rebar3-release.nix @@ -80,11 +80,22 @@ let dir=${if releaseType == "escript" then "bin" else "rel"} - mkdir -p "$out/$dir" + mkdir -p "$out/$dir" "$out/bin" cp -R --preserve=mode "_build/${profile}/$dir" "$out" + ${lib.optionalString (releaseType == "release") + "find $out/rel/*/bin -type f -executable -exec ln -s -t $out/bin {} \\;"} runHook postInstall ''; + postInstall = '' + for dir in $out/rel/*/erts-*; do + echo "ERTS found in $dir - removing references to erlang to reduce closure size" + for f in $dir/bin/{erl,start}; do + substituteInPlace "$f" --replace "${erlang}/lib/erlang" "''${dir/\/erts-*/}" + done + done + ''; + meta = { inherit (erlang.meta) platforms; } // meta; diff --git a/pkgs/development/compilers/compcert/default.nix b/pkgs/development/compilers/compcert/default.nix index 4e550bac9a6a..beafd6414f43 100644 --- a/pkgs/development/compilers/compcert/default.nix +++ b/pkgs/development/compilers/compcert/default.nix @@ -5,7 +5,7 @@ }: let - ocaml-pkgs = with ocamlPackages; [ ocaml findlib menhir ]; + ocaml-pkgs = with ocamlPackages; [ ocaml findlib menhir menhirLib ]; ccomp-platform = if stdenv.isDarwin then "x86_64-macosx" else "x86_64-linux"; inherit (coqPackages) coq flocq; inherit (lib) optional optionalString; diff --git a/pkgs/development/compilers/cudatoolkit/common.nix b/pkgs/development/compilers/cudatoolkit/common.nix index c18eb9d534a2..747de25142e5 100644 --- a/pkgs/development/compilers/cudatoolkit/common.nix +++ b/pkgs/development/compilers/cudatoolkit/common.nix @@ -147,6 +147,10 @@ stdenv.mkDerivation rec { mkdir -p $out/nix-support echo "cmakeFlags+=' -DCUDA_TOOLKIT_ROOT_DIR=$out'" >> $out/nix-support/setup-hook + # Set the host compiler to be used by nvcc for CMake-based projects: + # https://cmake.org/cmake/help/latest/module/FindCUDA.html#input-variables + echo "cmakeFlags+=' -DCUDA_HOST_COMPILER=${gcc}/bin'" >> $out/nix-support/setup-hook + # Move some libraries to the lib output so that programs that # depend on them don't pull in this entire monstrosity. mkdir -p $lib/lib diff --git a/pkgs/development/compilers/fstar/default.nix b/pkgs/development/compilers/fstar/default.nix index 73bf001f7520..7abdf132b51e 100644 --- a/pkgs/development/compilers/fstar/default.nix +++ b/pkgs/development/compilers/fstar/default.nix @@ -14,7 +14,7 @@ stdenv.mkDerivation rec { nativeBuildInputs = [ makeWrapper installShellFiles ]; buildInputs = with ocamlPackages; [ - z3 ocaml findlib batteries menhir stdint + z3 ocaml findlib batteries menhir menhirLib stdint zarith camlp4 yojson pprint ulex ocaml-migrate-parsetree process ppx_deriving ppx_deriving_yojson ocamlbuild ]; diff --git a/pkgs/development/compilers/go/1.14.nix b/pkgs/development/compilers/go/1.14.nix index 92c1cbdfc18b..e8a90ac0b8df 100644 --- a/pkgs/development/compilers/go/1.14.nix +++ b/pkgs/development/compilers/go/1.14.nix @@ -1,6 +1,20 @@ -{ lib, stdenv, fetchurl, tzdata, iana-etc, runCommand -, perl, which, pkg-config, patch, procps, pcre, cacert, Security, Foundation -, mailcap, runtimeShell +{ lib +, stdenv +, fetchurl +, tzdata +, iana-etc +, runCommand +, perl +, which +, pkg-config +, patch +, procps +, pcre +, cacert +, Security +, Foundation +, mailcap +, runtimeShell , buildPackages , pkgsBuildTarget , fetchpatch @@ -8,14 +22,9 @@ }: let - - inherit (lib) optionals optionalString; - - version = "1.14.15"; - go_bootstrap = buildPackages.callPackage ./bootstrap.nix { }; - goBootstrap = runCommand "go-bootstrap" {} '' + goBootstrap = runCommand "go-bootstrap" { } '' mkdir $out cp -rf ${go_bootstrap}/* $out/ chmod -R u+w $out @@ -41,7 +50,7 @@ in stdenv.mkDerivation rec { pname = "go"; - inherit version; + version = "1.14.15"; src = fetchurl { url = "https://dl.google.com/go/go${version}.src.tar.gz"; @@ -51,10 +60,10 @@ stdenv.mkDerivation rec { # perl is used for testing go vet nativeBuildInputs = [ perl which pkg-config patch procps ]; buildInputs = [ cacert pcre ] - ++ optionals stdenv.isLinux [ stdenv.cc.libc.out ] - ++ optionals (stdenv.hostPlatform.libc == "glibc") [ stdenv.cc.libc.static ]; + ++ lib.optionals stdenv.isLinux [ stdenv.cc.libc.out ] + ++ lib.optionals (stdenv.hostPlatform.libc == "glibc") [ stdenv.cc.libc.static ]; - depsTargetTargetPropagated = optionals stdenv.isDarwin [ Security Foundation ]; + depsTargetTargetPropagated = lib.optionals stdenv.isDarwin [ Security Foundation ]; hardeningDisable = [ "all" ]; @@ -106,14 +115,14 @@ stdenv.mkDerivation rec { # Disable cgo lookup tests not works, they depend on resolver rm src/net/cgo_unix_test.go - '' + optionalString stdenv.isLinux '' + '' + lib.optionalString stdenv.isLinux '' # prepend the nix path to the zoneinfo files but also leave the original value for static binaries # that run outside a nix server sed -i 's,\"/usr/share/zoneinfo/,"${tzdata}/share/zoneinfo/\"\,\n\t&,' src/time/zoneinfo_unix.go - '' + optionalString stdenv.isAarch32 '' + '' + lib.optionalString stdenv.isAarch32 '' echo '#!${runtimeShell}' > misc/cgo/testplugin/test.bash - '' + optionalString stdenv.isDarwin '' + '' + lib.optionalString stdenv.isDarwin '' substituteInPlace src/race.bash --replace \ "sysctl machdep.cpu.extfeatures | grep -qv EM64T" true sed -i 's,strings.Contains(.*sysctl.*,true {,' src/cmd/dist/util.go @@ -183,16 +192,18 @@ stdenv.mkDerivation rec { # {CC,CXX}_FOR_TARGET must be only set for cross compilation case as go expect those # to be different from CC/CXX - CC_FOR_TARGET = if (stdenv.buildPlatform != stdenv.targetPlatform) then + CC_FOR_TARGET = + if (stdenv.buildPlatform != stdenv.targetPlatform) then "${targetCC}/bin/${targetCC.targetPrefix}cc" else null; - CXX_FOR_TARGET = if (stdenv.buildPlatform != stdenv.targetPlatform) then + CXX_FOR_TARGET = + if (stdenv.buildPlatform != stdenv.targetPlatform) then "${targetCC}/bin/${targetCC.targetPrefix}c++" else null; - GOARM = toString (lib.intersectLists [(stdenv.hostPlatform.parsed.cpu.version or "")] ["5" "6" "7"]); + GOARM = toString (lib.intersectLists [ (stdenv.hostPlatform.parsed.cpu.version or "") ] [ "5" "6" "7" ]); GO386 = 387; # from Arch: don't assume sse2 on i686 CGO_ENABLED = 1; # Hopefully avoids test timeouts on Hydra @@ -202,7 +213,7 @@ stdenv.mkDerivation rec { # Some tests assume things like home directories and users exists GO_BUILDER_NAME = "nix"; - GOROOT_BOOTSTRAP="${goBootstrap}/share/go"; + GOROOT_BOOTSTRAP = "${goBootstrap}/share/go"; postConfigure = '' export GOCACHE=$TMPDIR/go-cache @@ -211,7 +222,7 @@ stdenv.mkDerivation rec { export PATH=$(pwd)/bin:$PATH - ${optionalString (stdenv.buildPlatform != stdenv.targetPlatform) '' + ${lib.optionalString (stdenv.buildPlatform != stdenv.targetPlatform) '' # Independent from host/target, CC should produce code for the building system. # We only set it when cross-compiling. export CC=${buildPackages.stdenv.cc}/bin/cc @@ -239,12 +250,12 @@ stdenv.mkDerivation rec { '' + (if (stdenv.buildPlatform != stdenv.hostPlatform) then '' mv bin/*_*/* bin rmdir bin/*_* - ${optionalString (!(GOHOSTARCH == GOARCH && GOOS == GOHOSTOS)) '' + ${lib.optionalString (!(GOHOSTARCH == GOARCH && GOOS == GOHOSTOS)) '' rm -rf pkg/${GOHOSTOS}_${GOHOSTARCH} pkg/tool/${GOHOSTOS}_${GOHOSTARCH} ''} '' else if (stdenv.hostPlatform != stdenv.targetPlatform) then '' rm -rf bin/*_* - ${optionalString (!(GOHOSTARCH == GOARCH && GOOS == GOHOSTOS)) '' + ${lib.optionalString (!(GOHOSTARCH == GOARCH && GOOS == GOHOSTOS)) '' rm -rf pkg/${GOOS}_${GOARCH} pkg/tool/${GOOS}_${GOARCH} ''} '' else ""); diff --git a/pkgs/development/compilers/go/1.15.nix b/pkgs/development/compilers/go/1.15.nix index 58cd616728c3..0a9b0ba9b278 100644 --- a/pkgs/development/compilers/go/1.15.nix +++ b/pkgs/development/compilers/go/1.15.nix @@ -1,6 +1,20 @@ -{ lib, stdenv, fetchurl, tzdata, iana-etc, runCommand -, perl, which, pkg-config, patch, procps, pcre, cacert, Security, Foundation -, mailcap, runtimeShell +{ lib +, stdenv +, fetchurl +, tzdata +, iana-etc +, runCommand +, perl +, which +, pkg-config +, patch +, procps +, pcre +, cacert +, Security +, Foundation +, mailcap +, runtimeShell , buildPackages , pkgsBuildTarget , fetchpatch @@ -8,14 +22,9 @@ }: let - - inherit (lib) optionals optionalString; - - version = "1.15.13"; - go_bootstrap = buildPackages.callPackage ./bootstrap.nix { }; - goBootstrap = runCommand "go-bootstrap" {} '' + goBootstrap = runCommand "go-bootstrap" { } '' mkdir $out cp -rf ${go_bootstrap}/* $out/ chmod -R u+w $out @@ -41,7 +50,7 @@ in stdenv.mkDerivation rec { pname = "go"; - inherit version; + version = "1.15.13"; src = fetchurl { url = "https://dl.google.com/go/go${version}.src.tar.gz"; @@ -51,10 +60,10 @@ stdenv.mkDerivation rec { # perl is used for testing go vet nativeBuildInputs = [ perl which pkg-config patch procps ]; buildInputs = [ cacert pcre ] - ++ optionals stdenv.isLinux [ stdenv.cc.libc.out ] - ++ optionals (stdenv.hostPlatform.libc == "glibc") [ stdenv.cc.libc.static ]; + ++ lib.optionals stdenv.isLinux [ stdenv.cc.libc.out ] + ++ lib.optionals (stdenv.hostPlatform.libc == "glibc") [ stdenv.cc.libc.static ]; - depsTargetTargetPropagated = optionals stdenv.isDarwin [ Security Foundation ]; + depsTargetTargetPropagated = lib.optionals stdenv.isDarwin [ Security Foundation ]; hardeningDisable = [ "all" ]; @@ -114,14 +123,14 @@ stdenv.mkDerivation rec { # Disable cgo lookup tests not works, they depend on resolver rm src/net/cgo_unix_test.go - '' + optionalString stdenv.isLinux '' + '' + lib.optionalString stdenv.isLinux '' # prepend the nix path to the zoneinfo files but also leave the original value for static binaries # that run outside a nix server sed -i 's,\"/usr/share/zoneinfo/,"${tzdata}/share/zoneinfo/\"\,\n\t&,' src/time/zoneinfo_unix.go - '' + optionalString stdenv.isAarch32 '' + '' + lib.optionalString stdenv.isAarch32 '' echo '#!${runtimeShell}' > misc/cgo/testplugin/test.bash - '' + optionalString stdenv.isDarwin '' + '' + lib.optionalString stdenv.isDarwin '' substituteInPlace src/race.bash --replace \ "sysctl machdep.cpu.extfeatures | grep -qv EM64T" true sed -i 's,strings.Contains(.*sysctl.*,true {,' src/cmd/dist/util.go @@ -186,16 +195,18 @@ stdenv.mkDerivation rec { # {CC,CXX}_FOR_TARGET must be only set for cross compilation case as go expect those # to be different from CC/CXX - CC_FOR_TARGET = if (stdenv.buildPlatform != stdenv.targetPlatform) then + CC_FOR_TARGET = + if (stdenv.buildPlatform != stdenv.targetPlatform) then "${targetCC}/bin/${targetCC.targetPrefix}cc" else null; - CXX_FOR_TARGET = if (stdenv.buildPlatform != stdenv.targetPlatform) then + CXX_FOR_TARGET = + if (stdenv.buildPlatform != stdenv.targetPlatform) then "${targetCC}/bin/${targetCC.targetPrefix}c++" else null; - GOARM = toString (lib.intersectLists [(stdenv.hostPlatform.parsed.cpu.version or "")] ["5" "6" "7"]); + GOARM = toString (lib.intersectLists [ (stdenv.hostPlatform.parsed.cpu.version or "") ] [ "5" "6" "7" ]); GO386 = 387; # from Arch: don't assume sse2 on i686 CGO_ENABLED = 1; # Hopefully avoids test timeouts on Hydra @@ -205,7 +216,7 @@ stdenv.mkDerivation rec { # Some tests assume things like home directories and users exists GO_BUILDER_NAME = "nix"; - GOROOT_BOOTSTRAP="${goBootstrap}/share/go"; + GOROOT_BOOTSTRAP = "${goBootstrap}/share/go"; postConfigure = '' export GOCACHE=$TMPDIR/go-cache @@ -214,7 +225,7 @@ stdenv.mkDerivation rec { export PATH=$(pwd)/bin:$PATH - ${optionalString (stdenv.buildPlatform != stdenv.targetPlatform) '' + ${lib.optionalString (stdenv.buildPlatform != stdenv.targetPlatform) '' # Independent from host/target, CC should produce code for the building system. # We only set it when cross-compiling. export CC=${buildPackages.stdenv.cc}/bin/cc @@ -242,12 +253,12 @@ stdenv.mkDerivation rec { '' + (if (stdenv.buildPlatform != stdenv.hostPlatform) then '' mv bin/*_*/* bin rmdir bin/*_* - ${optionalString (!(GOHOSTARCH == GOARCH && GOOS == GOHOSTOS)) '' + ${lib.optionalString (!(GOHOSTARCH == GOARCH && GOOS == GOHOSTOS)) '' rm -rf pkg/${GOHOSTOS}_${GOHOSTARCH} pkg/tool/${GOHOSTOS}_${GOHOSTARCH} ''} '' else if (stdenv.hostPlatform != stdenv.targetPlatform) then '' rm -rf bin/*_* - ${optionalString (!(GOHOSTARCH == GOARCH && GOOS == GOHOSTOS)) '' + ${lib.optionalString (!(GOHOSTARCH == GOARCH && GOOS == GOHOSTOS)) '' rm -rf pkg/${GOOS}_${GOARCH} pkg/tool/${GOOS}_${GOARCH} ''} '' else ""); diff --git a/pkgs/development/compilers/go/1.16.nix b/pkgs/development/compilers/go/1.16.nix index 93c9fa5c7788..26cfb898ecf0 100644 --- a/pkgs/development/compilers/go/1.16.nix +++ b/pkgs/development/compilers/go/1.16.nix @@ -1,21 +1,30 @@ -{ lib, stdenv, fetchurl, tzdata, iana-etc, runCommand -, perl, which, pkg-config, patch, procps, pcre, cacert, Security, Foundation, xcbuild -, mailcap, runtimeShell +{ lib +, stdenv +, fetchurl +, tzdata +, iana-etc +, runCommand +, perl +, which +, pkg-config +, patch +, procps +, pcre +, cacert +, Security +, Foundation +, xcbuild +, mailcap +, runtimeShell , buildPackages , pkgsBuildTarget -, fetchpatch , callPackage }: let - - inherit (lib) optionals optionalString; - - version = "1.16.5"; - go_bootstrap = buildPackages.callPackage ./bootstrap.nix { }; - goBootstrap = runCommand "go-bootstrap" {} '' + goBootstrap = runCommand "go-bootstrap" { } '' mkdir $out cp -rf ${go_bootstrap}/* $out/ chmod -R u+w $out @@ -41,7 +50,7 @@ in stdenv.mkDerivation rec { pname = "go"; - inherit version; + version = "1.16.5"; src = fetchurl { url = "https://dl.google.com/go/go${version}.src.tar.gz"; @@ -51,12 +60,12 @@ stdenv.mkDerivation rec { # perl is used for testing go vet nativeBuildInputs = [ perl which pkg-config patch procps ]; buildInputs = [ cacert pcre ] - ++ optionals stdenv.isLinux [ stdenv.cc.libc.out ] - ++ optionals (stdenv.hostPlatform.libc == "glibc") [ stdenv.cc.libc.static ]; + ++ lib.optionals stdenv.isLinux [ stdenv.cc.libc.out ] + ++ lib.optionals (stdenv.hostPlatform.libc == "glibc") [ stdenv.cc.libc.static ]; - propagatedBuildInputs = optionals stdenv.isDarwin [ xcbuild ]; + propagatedBuildInputs = lib.optionals stdenv.isDarwin [ xcbuild ]; - depsTargetTargetPropagated = optionals stdenv.isDarwin [ Security Foundation ]; + depsTargetTargetPropagated = lib.optionals stdenv.isDarwin [ Security Foundation ]; hardeningDisable = [ "all" ]; @@ -116,14 +125,14 @@ stdenv.mkDerivation rec { # Disable cgo lookup tests not works, they depend on resolver rm src/net/cgo_unix_test.go - '' + optionalString stdenv.isLinux '' + '' + lib.optionalString stdenv.isLinux '' # prepend the nix path to the zoneinfo files but also leave the original value for static binaries # that run outside a nix server sed -i 's,\"/usr/share/zoneinfo/,"${tzdata}/share/zoneinfo/\"\,\n\t&,' src/time/zoneinfo_unix.go - '' + optionalString stdenv.isAarch32 '' + '' + lib.optionalString stdenv.isAarch32 '' echo '#!${runtimeShell}' > misc/cgo/testplugin/test.bash - '' + optionalString stdenv.isDarwin '' + '' + lib.optionalString stdenv.isDarwin '' substituteInPlace src/race.bash --replace \ "sysctl machdep.cpu.extfeatures | grep -qv EM64T" true sed -i 's,strings.Contains(.*sysctl.*,true {,' src/cmd/dist/util.go @@ -181,16 +190,18 @@ stdenv.mkDerivation rec { # {CC,CXX}_FOR_TARGET must be only set for cross compilation case as go expect those # to be different from CC/CXX - CC_FOR_TARGET = if (stdenv.buildPlatform != stdenv.targetPlatform) then + CC_FOR_TARGET = + if (stdenv.buildPlatform != stdenv.targetPlatform) then "${targetCC}/bin/${targetCC.targetPrefix}cc" else null; - CXX_FOR_TARGET = if (stdenv.buildPlatform != stdenv.targetPlatform) then + CXX_FOR_TARGET = + if (stdenv.buildPlatform != stdenv.targetPlatform) then "${targetCC}/bin/${targetCC.targetPrefix}c++" else null; - GOARM = toString (lib.intersectLists [(stdenv.hostPlatform.parsed.cpu.version or "")] ["5" "6" "7"]); + GOARM = toString (lib.intersectLists [ (stdenv.hostPlatform.parsed.cpu.version or "") ] [ "5" "6" "7" ]); GO386 = "softfloat"; # from Arch: don't assume sse2 on i686 CGO_ENABLED = 1; # Hopefully avoids test timeouts on Hydra @@ -200,7 +211,7 @@ stdenv.mkDerivation rec { # Some tests assume things like home directories and users exists GO_BUILDER_NAME = "nix"; - GOROOT_BOOTSTRAP="${goBootstrap}/share/go"; + GOROOT_BOOTSTRAP = "${goBootstrap}/share/go"; postConfigure = '' export GOCACHE=$TMPDIR/go-cache @@ -209,7 +220,7 @@ stdenv.mkDerivation rec { export PATH=$(pwd)/bin:$PATH - ${optionalString (stdenv.buildPlatform != stdenv.targetPlatform) '' + ${lib.optionalString (stdenv.buildPlatform != stdenv.targetPlatform) '' # Independent from host/target, CC should produce code for the building system. # We only set it when cross-compiling. export CC=${buildPackages.stdenv.cc}/bin/cc @@ -237,12 +248,12 @@ stdenv.mkDerivation rec { '' + (if (stdenv.buildPlatform != stdenv.hostPlatform) then '' mv bin/*_*/* bin rmdir bin/*_* - ${optionalString (!(GOHOSTARCH == GOARCH && GOOS == GOHOSTOS)) '' + ${lib.optionalString (!(GOHOSTARCH == GOARCH && GOOS == GOHOSTOS)) '' rm -rf pkg/${GOHOSTOS}_${GOHOSTARCH} pkg/tool/${GOHOSTOS}_${GOHOSTARCH} ''} '' else if (stdenv.hostPlatform != stdenv.targetPlatform) then '' rm -rf bin/*_* - ${optionalString (!(GOHOSTARCH == GOARCH && GOOS == GOHOSTOS)) '' + ${lib.optionalString (!(GOHOSTARCH == GOARCH && GOOS == GOHOSTOS)) '' rm -rf pkg/${GOOS}_${GOARCH} pkg/tool/${GOOS}_${GOARCH} ''} '' else ""); diff --git a/pkgs/development/compilers/go/2-dev.nix b/pkgs/development/compilers/go/2-dev.nix index 4b541e8990e2..8fd0e2e6630c 100644 --- a/pkgs/development/compilers/go/2-dev.nix +++ b/pkgs/development/compilers/go/2-dev.nix @@ -1,19 +1,29 @@ -{ pkgs, lib, stdenv, fetchurl, fetchgit, tzdata, iana-etc, runCommand -, perl, which, pkg-config, patch, procps, pcre, cacert, Security, Foundation -, mailcap, runtimeShell +{ lib +, stdenv +, fetchgit +, tzdata +, iana-etc +, runCommand +, perl +, which +, pkg-config +, patch +, procps +, pcre +, cacert +, Security +, Foundation +, mailcap +, runtimeShell , buildPackages , pkgsBuildTarget -, fetchpatch , callPackage }: let - - inherit (lib) optionals optionalString; - go_bootstrap = buildPackages.callPackage ./bootstrap.nix { }; - goBootstrap = runCommand "go-bootstrap" {} '' + goBootstrap = runCommand "go-bootstrap" { } '' mkdir $out cp -rf ${go_bootstrap}/* $out/ chmod -R u+w $out @@ -42,7 +52,7 @@ stdenv.mkDerivation rec { version = "2021-04-13"; src = fetchgit { - url = https://go.googlesource.com/go; + url = "https://go.googlesource.com/go"; rev = "9cd52cf2a93a958e8e001aea36886e7846c91f2f"; sha256 = "sha256:0hybm93y4i4j7bs86y7h73nc1wqnspkq75if7n1032zf9bs8sm96"; }; @@ -50,10 +60,10 @@ stdenv.mkDerivation rec { # perl is used for testing go vet nativeBuildInputs = [ perl which pkg-config patch procps ]; buildInputs = [ cacert pcre ] - ++ optionals stdenv.isLinux [ stdenv.cc.libc.out ] - ++ optionals (stdenv.hostPlatform.libc == "glibc") [ stdenv.cc.libc.static ]; + ++ lib.optionals stdenv.isLinux [ stdenv.cc.libc.out ] + ++ lib.optionals (stdenv.hostPlatform.libc == "glibc") [ stdenv.cc.libc.static ]; - depsTargetTargetPropagated = optionals stdenv.isDarwin [ Security Foundation ]; + depsTargetTargetPropagated = lib.optionals stdenv.isDarwin [ Security Foundation ]; hardeningDisable = [ "all" ]; @@ -114,14 +124,14 @@ stdenv.mkDerivation rec { # Disable cgo lookup tests not works, they depend on resolver rm src/net/cgo_unix_test.go - '' + optionalString stdenv.isLinux '' + '' + lib.optionalString stdenv.isLinux '' # prepend the nix path to the zoneinfo files but also leave the original value for static binaries # that run outside a nix server sed -i 's,\"/usr/share/zoneinfo/,"${tzdata}/share/zoneinfo/\"\,\n\t&,' src/time/zoneinfo_unix.go - '' + optionalString stdenv.isAarch32 '' + '' + lib.optionalString stdenv.isAarch32 '' echo '#!${runtimeShell}' > misc/cgo/testplugin/test.bash - '' + optionalString stdenv.isDarwin '' + '' + lib.optionalString stdenv.isDarwin '' substituteInPlace src/race.bash --replace \ "sysctl machdep.cpu.extfeatures | grep -qv EM64T" true sed -i 's,strings.Contains(.*sysctl.*,true {,' src/cmd/dist/util.go @@ -178,16 +188,18 @@ stdenv.mkDerivation rec { # {CC,CXX}_FOR_TARGET must be only set for cross compilation case as go expect those # to be different from CC/CXX - CC_FOR_TARGET = if (stdenv.buildPlatform != stdenv.targetPlatform) then + CC_FOR_TARGET = + if (stdenv.buildPlatform != stdenv.targetPlatform) then "${targetCC}/bin/${targetCC.targetPrefix}cc" else null; - CXX_FOR_TARGET = if (stdenv.buildPlatform != stdenv.targetPlatform) then + CXX_FOR_TARGET = + if (stdenv.buildPlatform != stdenv.targetPlatform) then "${targetCC}/bin/${targetCC.targetPrefix}c++" else null; - GOARM = toString (lib.intersectLists [(stdenv.hostPlatform.parsed.cpu.version or "")] ["5" "6" "7"]); + GOARM = toString (lib.intersectLists [ (stdenv.hostPlatform.parsed.cpu.version or "") ] [ "5" "6" "7" ]); GO386 = "softfloat"; # from Arch: don't assume sse2 on i686 CGO_ENABLED = 1; # Hopefully avoids test timeouts on Hydra @@ -197,7 +209,7 @@ stdenv.mkDerivation rec { # Some tests assume things like home directories and users exists GO_BUILDER_NAME = "nix"; - GOROOT_BOOTSTRAP="${goBootstrap}/share/go"; + GOROOT_BOOTSTRAP = "${goBootstrap}/share/go"; postConfigure = '' export GOCACHE=$TMPDIR/go-cache @@ -206,7 +218,7 @@ stdenv.mkDerivation rec { export PATH=$(pwd)/bin:$PATH - ${optionalString (stdenv.buildPlatform != stdenv.targetPlatform) '' + ${lib.optionalString (stdenv.buildPlatform != stdenv.targetPlatform) '' # Independent from host/target, CC should produce code for the building system. # We only set it when cross-compiling. export CC=${buildPackages.stdenv.cc}/bin/cc @@ -234,12 +246,12 @@ stdenv.mkDerivation rec { '' + (if (stdenv.buildPlatform != stdenv.hostPlatform) then '' mv bin/*_*/* bin rmdir bin/*_* - ${optionalString (!(GOHOSTARCH == GOARCH && GOOS == GOHOSTOS)) '' + ${lib.optionalString (!(GOHOSTARCH == GOARCH && GOOS == GOHOSTOS)) '' rm -rf pkg/${GOHOSTOS}_${GOHOSTARCH} pkg/tool/${GOHOSTOS}_${GOHOSTARCH} ''} '' else if (stdenv.hostPlatform != stdenv.targetPlatform) then '' rm -rf bin/*_* - ${optionalString (!(GOHOSTARCH == GOARCH && GOOS == GOHOSTOS)) '' + ${lib.optionalString (!(GOHOSTARCH == GOARCH && GOOS == GOHOSTOS)) '' rm -rf pkg/${GOOS}_${GOARCH} pkg/tool/${GOOS}_${GOARCH} ''} '' else ""); diff --git a/pkgs/development/compilers/llvm/12/compiler-rt/darwin-targetconditionals.patch b/pkgs/development/compilers/llvm/12/compiler-rt/darwin-targetconditionals.patch new file mode 100644 index 000000000000..425dc2af01e7 --- /dev/null +++ b/pkgs/development/compilers/llvm/12/compiler-rt/darwin-targetconditionals.patch @@ -0,0 +1,71 @@ +diff --git a/lib/sanitizer_common/sanitizer_mac.cpp b/lib/sanitizer_common/sanitizer_mac.cpp +--- a/lib/sanitizer_common/sanitizer_mac.cpp ++++ b/lib/sanitizer_common/sanitizer_mac.cpp +@@ -613,9 +613,15 @@ HandleSignalMode GetHandleSignalMode(int signum) { + // Offset example: + // XNU 17 -- macOS 10.13 -- iOS 11 -- tvOS 11 -- watchOS 4 + constexpr u16 GetOSMajorKernelOffset() { +- if (TARGET_OS_OSX) return 4; +- if (TARGET_OS_IOS || TARGET_OS_TV) return 6; +- if (TARGET_OS_WATCH) return 13; ++#if TARGET_OS_OSX ++ return 4; ++#endif ++#if TARGET_OS_IOS || TARGET_OS_TV ++ return 6; ++#endif ++#if TARGET_OS_WATCH ++ return 13; ++#endif + } + + using VersStr = char[64]; +@@ -627,13 +633,13 @@ static uptr ApproximateOSVersionViaKernelVersion(VersStr vers) { + u16 os_major = kernel_major - offset; + + const char *format = "%d.0"; +- if (TARGET_OS_OSX) { +- if (os_major >= 16) { // macOS 11+ +- os_major -= 5; +- } else { // macOS 10.15 and below +- format = "10.%d"; +- } ++#if TARGET_OS_OSX ++ if (os_major >= 16) { // macOS 11+ ++ os_major -= 5; ++ } else { // macOS 10.15 and below ++ format = "10.%d"; + } ++#endif + return internal_snprintf(vers, sizeof(VersStr), format, os_major); + } + +@@ -681,15 +687,14 @@ void ParseVersion(const char *vers, u16 *major, u16 *minor) { + // Aligned versions example: + // macOS 10.15 -- iOS 13 -- tvOS 13 -- watchOS 6 + static void MapToMacos(u16 *major, u16 *minor) { +- if (TARGET_OS_OSX) +- return; +- +- if (TARGET_OS_IOS || TARGET_OS_TV) ++#if !TARGET_OS_OSX ++#if TARGET_OS_IOS || TARGET_OS_TV + *major += 2; +- else if (TARGET_OS_WATCH) ++#elif TARGET_OS_WATCH + *major += 9; +- else ++#else + UNREACHABLE("unsupported platform"); ++#endif + + if (*major >= 16) { // macOS 11+ + *major -= 5; +@@ -697,6 +702,7 @@ static void MapToMacos(u16 *major, u16 *minor) { + *minor = *major; + *major = 10; + } ++#endif + } + + static MacosVersion GetMacosAlignedVersionInternal() { diff --git a/pkgs/development/compilers/llvm/12/compiler-rt/default.nix b/pkgs/development/compilers/llvm/12/compiler-rt/default.nix index 895af8f2f020..cde1317ca35d 100644 --- a/pkgs/development/compilers/llvm/12/compiler-rt/default.nix +++ b/pkgs/development/compilers/llvm/12/compiler-rt/default.nix @@ -59,6 +59,8 @@ stdenv.mkDerivation { # extra `/`. ./normalize-var.patch ]# ++ lib.optional stdenv.hostPlatform.isMusl ./sanitizers-nongnu.patch + # Prevent a compilation error on darwin + ++ lib.optional stdenv.hostPlatform.isDarwin ./darwin-targetconditionals.patch ++ lib.optional stdenv.hostPlatform.isAarch32 ./armv7l.patch; # TSAN requires XPC on Darwin, which we have no public/free source files for. We can depend on the Apple frameworks diff --git a/pkgs/development/compilers/llvm/git/default.nix b/pkgs/development/compilers/llvm/git/default.nix index eb068f6d4722..38de0f70cf2e 100644 --- a/pkgs/development/compilers/llvm/git/default.nix +++ b/pkgs/development/compilers/llvm/git/default.nix @@ -21,13 +21,14 @@ let release_version = "12.0.0"; candidate = ""; # empty or "rcN" dash-candidate = lib.optionalString (candidate != "") "-${candidate}"; + rev = ""; # When using a Git commit version = "${release_version}${dash-candidate}"; # differentiating these (variables) is important for RCs targetConfig = stdenv.targetPlatform.config; src = fetchFromGitHub { owner = "llvm"; repo = "llvm-project"; - rev = "llvmorg-${version}"; + rev = if rev != "" then rev else "llvmorg-${version}"; sha256 = "07jz8pywc2qqa1srdnqg5p2y4lx3ki1inpigarzgxc3j20r4gb58"; }; diff --git a/pkgs/development/compilers/llvm/update-git.py b/pkgs/development/compilers/llvm/update-git.py new file mode 100755 index 000000000000..119a050e4701 --- /dev/null +++ b/pkgs/development/compilers/llvm/update-git.py @@ -0,0 +1,70 @@ +#! /usr/bin/env nix-shell +#! nix-shell -i python3 -p python3 nix + +import csv +import fileinput +import json +import os +import re +import subprocess + +from codecs import iterdecode +from datetime import datetime +from urllib.request import urlopen, Request + + +def get_latest_chromium_build(): + HISTORY_URL = 'https://omahaproxy.appspot.com/history?os=linux' + print(f'GET {HISTORY_URL}') + with urlopen(HISTORY_URL) as resp: + builds = csv.DictReader(iterdecode(resp, 'utf-8')) + for build in builds: + if build['channel'] != 'dev': + continue + return build + + +def get_file_revision(revision, file_path): + """Fetches the requested Git revision of the given Chromium file.""" + url = f'https://raw.githubusercontent.com/chromium/chromium/{revision}/{file_path}' + with urlopen(url) as http_response: + return http_response.read().decode() + + +def get_commit(ref): + url = f'https://api.github.com/repos/llvm/llvm-project/commits/{ref}' + headers = {'Accept': 'application/vnd.github.v3+json'} + request = Request(url, headers=headers) + with urlopen(request) as http_response: + return json.loads(http_response.read().decode()) + + +def nix_prefetch_url(url, algo='sha256'): + """Prefetches the content of the given URL.""" + print(f'nix-prefetch-url {url}') + out = subprocess.check_output(['nix-prefetch-url', '--type', algo, '--unpack', url]) + return out.decode('utf-8').rstrip() + + +chromium_build = get_latest_chromium_build() +chromium_version = chromium_build['version'] +print(f'chromiumDev version: {chromium_version}') +print('Getting LLVM commit...') +clang_update_script = get_file_revision(chromium_version, 'tools/clang/scripts/update.py') +clang_revision = re.search(r"^CLANG_REVISION = '(.+)'$", clang_update_script, re.MULTILINE).group(1) +clang_commit_short = re.search(r"llvmorg-[0-9]+-init-[0-9]+-g([0-9a-f]{8})", clang_revision).group(1) +release_version = re.search(r"^RELEASE_VERSION = '(.+)'$", clang_update_script, re.MULTILINE).group(1) +commit = get_commit(clang_commit_short) +date = datetime.fromisoformat(commit['commit']['committer']['date'].rstrip('Z')).date().isoformat() +version = f'unstable-{date}' +print('Prefetching source tarball...') +hash = nix_prefetch_url(f'https://github.com/llvm/llvm-project/archive/{commit["sha"]}.tar.gz') +print('Updating default.nix...') +default_nix = os.path.join(os.path.dirname(os.path.abspath(__file__)), 'git/default.nix') +with fileinput.FileInput(default_nix, inplace=True) as f: + for line in f: + result = re.sub(r'^ release_version = ".+";', f' release_version = "{release_version}";', line) + result = re.sub(r'^ version = ".+";', f' version = "{version}";', line) + result = re.sub(r'^ rev = ".*";', f' rev = "{commit["sha"]}";', result) + result = re.sub(r'^ sha256 = ".+";', f' sha256 = "{hash}";', result) + print(result, end='') diff --git a/pkgs/development/compilers/mezzo/default.nix b/pkgs/development/compilers/mezzo/default.nix index 4c535be4d494..1710fb986ead 100644 --- a/pkgs/development/compilers/mezzo/default.nix +++ b/pkgs/development/compilers/mezzo/default.nix @@ -1,4 +1,4 @@ -{ lib, stdenv, fetchFromGitHub, ocaml, findlib, ocamlbuild, menhir, yojson, ulex, pprint, fix, functory }: +{ lib, stdenv, fetchFromGitHub, ocaml, findlib, ocamlbuild, menhir, menhirLib, yojson, ulex, pprint, fix, functory }: if lib.versionAtLeast ocaml.version "4.06" then throw "mezzo is not available for OCaml ${ocaml.version}" @@ -21,7 +21,7 @@ stdenv.mkDerivation { sha256 = "0yck5r6di0935s3iy2mm9538jkf77ssr789qb06ms7sivd7g3ip6"; }; - buildInputs = [ ocaml findlib ocamlbuild yojson menhir ulex pprint fix functory ]; + buildInputs = [ ocaml findlib ocamlbuild yojson menhir menhirLib ulex pprint fix functory ]; # Sets warning 3 as non-fatal prePatch = lib.optionalString (check-ocaml-version "4.02") '' diff --git a/pkgs/development/compilers/passerine/default.nix b/pkgs/development/compilers/passerine/default.nix new file mode 100644 index 000000000000..e9427f892e64 --- /dev/null +++ b/pkgs/development/compilers/passerine/default.nix @@ -0,0 +1,22 @@ +{ lib, fetchFromGitHub, rustPlatform }: + +rustPlatform.buildRustPackage rec { + pname = "passerine"; + version = "0.9.2"; + + src = fetchFromGitHub { + owner = "vrtbl"; + repo = "passerine"; + rev = "dd8a6f5efc5dcb03d45b102f61cc8a50d46e8e98"; + sha256 = "sha256-/QzqKLkxAVqvTY4Uft1qk7nJat6nozykB/4X1YGqu/I="; + }; + + cargoSha256 = "sha256-8WiiDLIJ/abXELF8S+4s+BPA/Lr/rpKmC1NWPCLzQWA="; + + meta = with lib; { + description = "A small extensible programming language designed for concise expression with little code"; + homepage = "https://github.com/vrtbl/passerine"; + license = licenses.mit; + maintainers = with maintainers; [ siraben ]; + }; +} diff --git a/pkgs/development/compilers/ponyc/default.nix b/pkgs/development/compilers/ponyc/default.nix index 9fc8188daa10..36a83d47d6fd 100644 --- a/pkgs/development/compilers/ponyc/default.nix +++ b/pkgs/development/compilers/ponyc/default.nix @@ -3,13 +3,13 @@ stdenv.mkDerivation (rec { pname = "ponyc"; - version = "0.38.3"; + version = "0.41.1"; src = fetchFromGitHub { owner = "ponylang"; repo = pname; rev = version; - sha256 = "14kivmyphi7gbd7mgd4cnsiwl4cl7wih8kwzh7n79s2s4c5hj4ak"; + sha256 = "02wx070cy1193xzv58vh79yzwgpqiayqlwd3i285698fppbcg69a"; # Due to a bug in LLVM 9.x, ponyc has to include its own vendored patched # LLVM. (The submodule is a specific tag in the LLVM source tree). @@ -23,34 +23,33 @@ stdenv.mkDerivation (rec { fetchSubmodules = true; }; - ponygbenchmark = fetchurl { - url = "https://github.com/google/benchmark/archive/v1.5.0.tar.gz"; - sha256 = "06i2cr4rj126m1zfz0x1rbxv1mw1l7a11mzal5kqk56cdrdicsiw"; - name = "v1.5.0.tar.gz"; + ponygbenchmark = fetchFromGitHub { + owner = "google"; + repo = "benchmark"; + rev = "v1.5.2"; + sha256 = "13rxagpzw6bal6ajlmrxlh9kgfvcixn6j734b2bvfqz7lch8n0pa"; }; nativeBuildInputs = [ cmake makeWrapper which ]; buildInputs = [ libxml2 z3 ]; - propagatedBuildInputs = [ cc ]; # Sandbox disallows network access, so disabling problematic networking tests patches = [ ./disable-tests.patch + ./fix-libstdcpp-path.patch (substituteAll { src = ./make-safe-for-sandbox.patch; googletest = fetchurl { url = "https://github.com/google/googletest/archive/release-1.8.1.tar.gz"; sha256 = "17147961i01fl099ygxjx4asvjanwdd446nwbq9v8156h98zxwcv"; - name = "release-1.8.1.tar.gz"; }; }) ]; postUnpack = '' mkdir -p source/build/build_libs/gbenchmark-prefix/src - tar -C source/build/build_libs/gbenchmark-prefix/src -zxvf "$ponygbenchmark" - mv source/build/build_libs/gbenchmark-prefix/src/benchmark-1.5.0 \ - source/build/build_libs/gbenchmark-prefix/src/benchmark + cp -r "$ponygbenchmark"/ source/build/build_libs/gbenchmark-prefix/src/benchmark + chmod -R u+w source/build/build_libs/gbenchmark-prefix/src/benchmark ''; dontConfigure = true; @@ -61,7 +60,6 @@ stdenv.mkDerivation (rec { patch -d lib/llvm/src/ -p1 < lib/llvm/patches/2020-09-01-is-trivially-copyable.diff patch -d lib/llvm/src/ -p1 < lib/llvm/patches/2020-01-07-01-c-exports.diff patch -d lib/llvm/src/ -p1 < lib/llvm/patches/2019-12-23-01-jit-eh-frames.diff - substituteInPlace packages/process/_test.pony \ --replace '"/bin/' '"${coreutils}/bin/' \ --replace '=/bin' "${coreutils}/bin" @@ -91,7 +89,6 @@ stdenv.mkDerivation (rec { + lib.optionalString stdenv.isDarwin "bits=64 " + lib.optionalString (stdenv.isDarwin && (!lto)) "lto=no " + '' install - wrapProgram $out/bin/ponyc \ --prefix PATH ":" "${stdenv.cc}/bin" \ --set-default CC "$CC" \ diff --git a/pkgs/development/compilers/ponyc/fix-libstdcpp-path.patch b/pkgs/development/compilers/ponyc/fix-libstdcpp-path.patch new file mode 100644 index 000000000000..63b0fa699129 --- /dev/null +++ b/pkgs/development/compilers/ponyc/fix-libstdcpp-path.patch @@ -0,0 +1,14 @@ +diff --git a/src/libponyc/CMakeLists.txt b/src/libponyc/CMakeLists.txt +index bf2c385e..11d0d619 100644 +--- a/src/libponyc/CMakeLists.txt ++++ b/src/libponyc/CMakeLists.txt +@@ -136,7 +136,7 @@ elseif(${CMAKE_HOST_SYSTEM_NAME} MATCHES "DragonFly") + else() + # add a rule to generate the standalone library if needed + add_custom_command(OUTPUT libponyc-standalone.a +- COMMAND cp `find /usr/lib/ -name 'libstdc++.a' -print -quit` libstdcpp.a ++ COMMAND cp `${CMAKE_CXX_COMPILER} --print-file-name='libstdc++.a'` libstdcpp.a + COMMAND echo "create libponyc-standalone.a" > standalone.mri + COMMAND echo "addlib ${PROJECT_SOURCE_DIR}/../../build/libs/lib/libblake2.a" >> standalone.mri + COMMAND echo "addlib libstdcpp.a" >> standalone.mri + diff --git a/pkgs/development/compilers/ponyc/make-safe-for-sandbox.patch b/pkgs/development/compilers/ponyc/make-safe-for-sandbox.patch index b07763a475d2..49addcbc616e 100644 --- a/pkgs/development/compilers/ponyc/make-safe-for-sandbox.patch +++ b/pkgs/development/compilers/ponyc/make-safe-for-sandbox.patch @@ -1,10 +1,10 @@ ---- a/lib/CMakeLists.txt 2020-09-27 02:39:12.862940179 +0000 -+++ b/lib/CMakeLists.txt 2020-09-27 02:39:16.451957865 +0000 +--- a/lib/CMakeLists.txt 2021-05-27 15:58:36.819331229 -0400 ++++ b/lib/CMakeLists.txt 2021-05-27 16:00:19.768268649 -0400 @@ -10,12 +10,12 @@ endif() ExternalProject_Add(gbenchmark -- URL https://github.com/google/benchmark/archive/v1.5.0.tar.gz +- URL https://github.com/google/benchmark/archive/v1.5.2.tar.gz + SOURCE_DIR gbenchmark-prefix/src/benchmark CMAKE_ARGS -DCMAKE_BUILD_TYPE=${PONYC_LIBS_BUILD_TYPE} -DCMAKE_INSTALL_PREFIX=${CMAKE_INSTALL_PREFIX} -DBENCHMARK_ENABLE_GTEST_TESTS=OFF -DCMAKE_CXX_FLAGS=-fpic --no-warn-unused-cli ) @@ -30,12 +30,12 @@ - option(GIT_SUBMODULE "Check submodules during build" ON) - if(GIT_SUBMODULE) - message(STATUS "Updating submodules...") -- execute_process(COMMAND ${GIT_EXECUTABLE} submodule update --init --recursive +- execute_process(COMMAND ${GIT_EXECUTABLE} submodule update --init --recursive --depth 1 - WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} - RESULT_VARIABLE git_submod_result) - #message("git_submod_result ${git_submod_result}") - if(NOT git_submod_result EQUAL "0") -- message(FATAL_ERROR "git submodule update --init --recursive failed with ${git_submod_result}, please checkout submodules") +- message(FATAL_ERROR "git submodule update --init --recursive --depth 1 failed with ${git_submod_result}, please checkout submodules") - endif() - - # we check to make sure the submodule hash matches diff --git a/pkgs/development/compilers/purescript/purescript/default.nix b/pkgs/development/compilers/purescript/purescript/default.nix index fbe96ca179d7..568407c3614e 100644 --- a/pkgs/development/compilers/purescript/purescript/default.nix +++ b/pkgs/development/compilers/purescript/purescript/default.nix @@ -18,19 +18,19 @@ let in stdenv.mkDerivation rec { pname = "purescript"; - version = "0.14.0"; + version = "0.14.2"; src = if stdenv.isDarwin then fetchurl { url = "https://github.com/${pname}/${pname}/releases/download/v${version}/macos.tar.gz"; - sha256 = "0dfnn5ar7zgvgvxcvw5f6vwpkgkwa017y07s7mvdv44zf4hzsj3s"; + sha256 = "1ga2hn9br71dyzn3p9jvjiksvnq21p6i5hp1z1j5fpz9la28nqzf"; } else fetchurl { url = "https://github.com/${pname}/${pname}/releases/download/v${version}/linux64.tar.gz"; - sha256 = "1l3i7mxlzb2dkq6ff37rvnaarikxzxj0fg9i2kk26s8pz7vpqgjh"; + sha256 = "1kv7dm1nw85lw3brrclkj7xc9p021jx3n8wgp2fg3572s86ypskw"; }; @@ -62,5 +62,6 @@ in stdenv.mkDerivation rec { maintainers = with maintainers; [ justinwoo mbbx6spp cdepillabout ]; platforms = [ "x86_64-linux" "x86_64-darwin" ]; mainProgram = "purs"; + changelog = "https://github.com/purescript/purescript/releases/tag/v${version}"; }; } diff --git a/pkgs/development/compilers/reason/default.nix b/pkgs/development/compilers/reason/default.nix index 2293c83cc02c..a65748d06422 100644 --- a/pkgs/development/compilers/reason/default.nix +++ b/pkgs/development/compilers/reason/default.nix @@ -1,5 +1,5 @@ { lib, stdenv, makeWrapper, fetchFromGitHub, ocaml, findlib, dune_2 -, fix, menhir, merlin-extend, ppx_tools_versioned, utop, cppo +, fix, menhir, menhirLib, menhirSdk, merlin-extend, ppx_tools_versioned, utop, cppo }: stdenv.mkDerivation rec { @@ -13,11 +13,11 @@ stdenv.mkDerivation rec { sha256 = "0m6ldrci1a4j0qv1cbwh770zni3al8qxsphl353rv19f6rblplhs"; }; - nativeBuildInputs = [ makeWrapper ]; + nativeBuildInputs = [ makeWrapper menhir ]; - propagatedBuildInputs = [ menhir merlin-extend ppx_tools_versioned ]; + propagatedBuildInputs = [ menhirLib merlin-extend ppx_tools_versioned ]; - buildInputs = [ ocaml findlib dune_2 cppo fix utop menhir ]; + buildInputs = [ ocaml findlib dune_2 cppo fix utop menhir menhirSdk ]; buildFlags = [ "build" ]; # do not "make tests" before reason lib is installed diff --git a/pkgs/development/interpreters/erlang/R21.nix b/pkgs/development/interpreters/erlang/R21.nix index 3959c13e57bc..7706bd69fbf5 100644 --- a/pkgs/development/interpreters/erlang/R21.nix +++ b/pkgs/development/interpreters/erlang/R21.nix @@ -1,6 +1,6 @@ { mkDerivation }: mkDerivation { - version = "21.3.8.23"; - sha256 = "sha256-zIEXn2HuXeRKHfXmm0AAv9rEqqc4gIgaYek0hSUK5YU="; + version = "21.3.8.24"; + sha256 = "sha256-FNs+M4KFFKzfb4EG513HtyQ9eRRtxSPMpYq0bmRgY3g="; } diff --git a/pkgs/development/interpreters/evcxr/default.nix b/pkgs/development/interpreters/evcxr/default.nix index a6e995c9bcc4..7dabff3d2e5e 100644 --- a/pkgs/development/interpreters/evcxr/default.nix +++ b/pkgs/development/interpreters/evcxr/default.nix @@ -3,16 +3,16 @@ rustPlatform.buildRustPackage rec { pname = "evcxr"; - version = "0.9.0"; + version = "0.10.0"; src = fetchFromGitHub { owner = "google"; repo = "evcxr"; rev = "v${version}"; - sha256 = "sha256-89+RZrG/QUo3JY9N5eTiMigUnlUP+wZWRW8PSnCcsrY="; + sha256 = "sha256-EPxWLPw+V5eIm+eL8m8Xw14adgshthJSDRyWohsJH88="; }; - cargoSha256 = "sha256-gZLSTWS5cLfJvk4/tv8FG2I2vH3PKljWbJDOflNDmTQ="; + cargoSha256 = "sha256-5jGrv0YRVMo2X9p/WPgjYV3z193hl2+NiFTZr3v0Iik="; RUST_SRC_PATH = "${rustPlatform.rustLibSrc}"; diff --git a/pkgs/development/libraries/aws-c-common/default.nix b/pkgs/development/libraries/aws-c-common/default.nix index 580eaec2ebe7..9913631e8548 100644 --- a/pkgs/development/libraries/aws-c-common/default.nix +++ b/pkgs/development/libraries/aws-c-common/default.nix @@ -6,13 +6,13 @@ stdenv.mkDerivation rec { pname = "aws-c-common"; - version = "0.5.5"; + version = "0.5.11"; src = fetchFromGitHub { owner = "awslabs"; repo = pname; rev = "v${version}"; - sha256 = "sha256-rGv+fa+UF/f6mY8CmZpkjP98CAcAQCTjL3OI7HsUHcU="; + sha256 = "sha256-4CYbL+ICabKvpfjlALJ0wRbuwgy+JKJnKqYbQFsHQsI="; }; nativeBuildInputs = [ cmake ]; @@ -22,9 +22,6 @@ stdenv.mkDerivation rec { "-DCMAKE_SKIP_BUILD_RPATH=OFF" # for tests ]; - NIX_CFLAGS_COMPILE = lib.optionalString stdenv.isDarwin - "-Wno-nullability-extension -Wno-typedef-redefinition"; - doCheck = true; meta = with lib; { diff --git a/pkgs/development/libraries/box2d/default.nix b/pkgs/development/libraries/box2d/default.nix index 47a1c0917f07..1b6ede9b3101 100644 --- a/pkgs/development/libraries/box2d/default.nix +++ b/pkgs/development/libraries/box2d/default.nix @@ -6,11 +6,11 @@ stdenv.mkDerivation rec { version = "2.3.1"; src = fetchurl { - url = "https://github.com/erincatto/Box2D/archive/v${version}.tar.gz"; - sha256 = "0llpcifl8zbjbpxdwz87drd01m3lwnv82xb4av6kca1xn4w2gmkm"; + url = "https://github.com/erincatto/box2d/archive/v${version}.tar.gz"; + sha256 = "0p03ngsmyz0r5kbpiaq10ns4fxwkjvvawi8k6pfall46b93wizsq"; }; - sourceRoot = "Box2D-${version}/Box2D"; + sourceRoot = "box2d-${version}/Box2D"; nativeBuildInputs = [ cmake unzip pkg-config ]; buildInputs = [ libGLU libGL freeglut libX11 xorgproto libXi ]; diff --git a/pkgs/development/libraries/cpp-utilities/default.nix b/pkgs/development/libraries/cpp-utilities/default.nix index 14e2c8878fd9..de7bf560d3ea 100644 --- a/pkgs/development/libraries/cpp-utilities/default.nix +++ b/pkgs/development/libraries/cpp-utilities/default.nix @@ -7,13 +7,13 @@ stdenv.mkDerivation rec { pname = "cpp-utilities"; - version = "5.10.3"; + version = "5.10.4"; src = fetchFromGitHub { owner = "Martchus"; repo = pname; rev = "v${version}"; - sha256 = "sha256-bEdDRvm5W12wJnW4xC+AcRLevZ0H7C625eknKzNrLLU="; + sha256 = "sha256-pZh/NbTzQR2kjMeauv1HcRn0hDBaCNRbaZ3+1qs5rxU="; }; nativeBuildInputs = [ cmake ]; diff --git a/pkgs/development/libraries/gupnp/default.nix b/pkgs/development/libraries/gupnp/default.nix index bd8151d603e9..c91d25123f61 100644 --- a/pkgs/development/libraries/gupnp/default.nix +++ b/pkgs/development/libraries/gupnp/default.nix @@ -1,5 +1,6 @@ { lib, stdenv , fetchurl +, fetchpatch , meson , ninja , pkg-config @@ -28,6 +29,14 @@ stdenv.mkDerivation rec { sha256 = "sha256-96AwfqUfXkTRuDL0k92QRURKOk4hHvhd/Zql3W6up9E="; }; + patches = [ + (fetchpatch { + name = "CVE-2021-33516.patch"; + url = "https://gitlab.gnome.org/GNOME/gupnp/-/commit/ca6ec9dcb26fd7a2a630eb6a68118659b589afac.patch"; + sha256 = "sha256-G7e/xNQB7Kp2fPzqVeD/cH3h1co9hZXh55QOUBnAnvU="; + }) + ]; + nativeBuildInputs = [ meson ninja diff --git a/pkgs/development/libraries/libimobiledevice/default.nix b/pkgs/development/libraries/libimobiledevice/default.nix index b805be1257bd..94fce176127c 100644 --- a/pkgs/development/libraries/libimobiledevice/default.nix +++ b/pkgs/development/libraries/libimobiledevice/default.nix @@ -1,25 +1,36 @@ -{ lib, stdenv, fetchFromGitHub, automake, autoconf, libtool, pkg-config, gnutls -, libgcrypt, libtasn1, glib, libplist, libusbmuxd }: +{ lib +, stdenv +, fetchFromGitHub +, autoreconfHook +, libtool +, pkg-config +, gnutls +, libgcrypt +, libtasn1 +, glib +, libplist +, libusbmuxd +}: stdenv.mkDerivation rec { pname = "libimobiledevice"; - version = "1.3.0"; + version = "unstable-2021-06-02"; src = fetchFromGitHub { owner = pname; repo = pname; - rev = version; - sha256 = "1jkq3hpg4n5a6s1k618ib0s80pwf00nlfcby7xckysq8mnd2pp39"; + rev = "ca324155f8b33babf907704828c7903608db0aa2"; + sha256 = "sha256-Q7THwld1+elMJQ14kRnlIJDohFt7MW7JeyIUGC0k52I="; }; outputs = [ "out" "dev" ]; nativeBuildInputs = [ - autoconf - automake + autoreconfHook libtool pkg-config ]; + propagatedBuildInputs = [ glib gnutls @@ -29,12 +40,7 @@ stdenv.mkDerivation rec { libusbmuxd ]; - preConfigure = "NOCONFIGURE=1 ./autogen.sh"; - - configureFlags = [ - "--disable-openssl" - "--without-cython" - ]; + configureFlags = [ "--disable-openssl" "--without-cython" ]; meta = with lib; { homepage = "https://github.com/libimobiledevice/libimobiledevice"; diff --git a/pkgs/development/libraries/libunwind/default.nix b/pkgs/development/libraries/libunwind/default.nix index b2b5db2309c1..bda7f72a5576 100644 --- a/pkgs/development/libraries/libunwind/default.nix +++ b/pkgs/development/libraries/libunwind/default.nix @@ -38,8 +38,7 @@ stdenv.mkDerivation rec { description = "A portable and efficient API to determine the call-chain of a program"; maintainers = with maintainers; [ orivej ]; platforms = platforms.linux; + badPlatforms = [ "riscv32-linux" "riscv64-linux" ]; license = licenses.mit; }; - - passthru.supportsHost = !stdenv.hostPlatform.isRiscV; } diff --git a/pkgs/development/libraries/mvapich/default.nix b/pkgs/development/libraries/mvapich/default.nix new file mode 100644 index 000000000000..71c6ce38f952 --- /dev/null +++ b/pkgs/development/libraries/mvapich/default.nix @@ -0,0 +1,73 @@ +{ lib, stdenv, fetchurl, pkg-config, bison, numactl, libxml2 +, perl, gfortran, slurm, openssh, hwloc, zlib, makeWrapper +# InfiniBand dependencies +, opensm, rdma-core +# OmniPath dependencies +, libpsm2, libfabric +# Compile with slurm as a process manager +, useSlurm ? false +# Network type for MVAPICH2 +, network ? "ethernet" +} : + +assert builtins.elem network [ "ethernet" "infiniband" "omnipath" ]; + +stdenv.mkDerivation rec { + pname = "mvapich"; + version = "2.3.6"; + + src = fetchurl { + url = "http://mvapich.cse.ohio-state.edu/download/mvapich/mv2/mvapich2-${version}.tar.gz"; + sha256 = "0jd28vy9ivl3rcpkxmhw73b6krzm0pd9jps8asw92wa00lm2z9mk"; + }; + + nativeBuildInputs = [ pkg-config bison makeWrapper ]; + propagatedBuildInputs = [ numactl rdma-core zlib opensm ]; + buildInputs = with lib; [ + numactl + libxml2 + perl + gfortran + openssh + hwloc + ] ++ optionals (network == "infiniband") [ rdma-core opensm ] + ++ optionals (network == "omnipath") [ libpsm2 libfabric ] + ++ optional useSlurm slurm; + + configureFlags = with lib; [ + "--with-pm=hydra" + "--enable-fortran=all" + "--enable-cxx" + "--enable-threads=multiple" + "--enable-hybrid" + "--enable-shared" + ] ++ optional useSlurm "--with-pm=slurm" + ++ optional (network == "ethernet") "--with-device=ch3:sock" + ++ optionals (network == "infiniband") [ "--with-device=ch3:mrail" "--with-rdma=gen2" ] + ++ optionals (network == "omnipath") ["--with-device=ch3:psm" "--with-psm2=${libpsm2}"]; + + doCheck = true; + + preFixup = '' + # /tmp/nix-build... ends up in the RPATH, fix it manually + for entry in $out/bin/mpichversion $out/bin/mpivars; do + echo "fix rpath: $entry" + patchelf --set-rpath "$out/lib" $entry + done + + # Ensure the default compilers are the ones mvapich was built with + substituteInPlace $out/bin/mpicc --replace 'CC="gcc"' 'CC=${stdenv.cc}/bin/gcc' + substituteInPlace $out/bin/mpicxx --replace 'CXX="g++"' 'CC=${stdenv.cc}/bin/g++' + substituteInPlace $out/bin/mpifort --replace 'FC="gfortran"' 'CC=${gfortran}/bin/gfortran' + ''; + + enableParallelBuilding = true; + + meta = with lib; { + description = "MPI-3.1 implementation optimized for Infiband transport"; + homepage = "https://mvapich.cse.ohio-state.edu"; + license = licenses.bsd3; + maintainers = [ maintainers.markuskowa ]; + platforms = platforms.linux; + }; +} diff --git a/pkgs/development/libraries/sundials/default.nix b/pkgs/development/libraries/sundials/default.nix index 3536ebd586e4..f04b22abe8c6 100644 --- a/pkgs/development/libraries/sundials/default.nix +++ b/pkgs/development/libraries/sundials/default.nix @@ -17,8 +17,8 @@ stdenv.mkDerivation rec { outputs = [ "out" "examples" ]; src = fetchurl { - url = "https://computation.llnl.gov/projects/${pname}/download/${pname}-${version}.tar.gz"; - sha256 = "jW3QlP7Mu41uzEE0DsFqZfq6yC7UQVAj9tfBwjkOovM="; + url = "https://github.com/LLNL/sundials/releases/download/v${version}/sundials-${version}.tar.gz"; + hash = "sha256-SNp7qoFS3bIq7RsC2C0du0+/6iKs9nY0ARqgMDoQCkM="; }; nativeBuildInputs = [ cmake ]; diff --git a/pkgs/development/libraries/xtensor/default.nix b/pkgs/development/libraries/xtensor/default.nix new file mode 100644 index 000000000000..fe978998d637 --- /dev/null +++ b/pkgs/development/libraries/xtensor/default.nix @@ -0,0 +1,36 @@ +{ lib +, stdenv +, fetchFromGitHub +, cmake +, gtest +, xsimd +, xtl +}: +stdenv.mkDerivation rec { + pname = "xtensor"; + version = "0.23.10"; + + src = fetchFromGitHub { + owner = "xtensor-stack"; + repo = "xtensor"; + rev = version; + sha256 = "1ayrhyh9x33b87ic01b4jzxc8x27yxpxzya5x54ikazvz8p71n14"; + }; + + nativeBuildInputs = [ cmake ]; + propagatedBuildInputs = [ xtl xsimd ]; + + cmakeFlags = [ "-DBUILD_TESTS=ON" ]; + + doCheck = true; + checkInputs = [ gtest ]; + checkTarget = "xtest"; + + meta = with lib; { + description = "Multi-dimensional arrays with broadcasting and lazy computing."; + homepage = "https://github.com/xtensor-stack/xtensor"; + license = licenses.bsd3; + maintainers = with maintainers; [ cpcloud ]; + platforms = platforms.all; + }; +} diff --git a/pkgs/development/lua-modules/overrides.nix b/pkgs/development/lua-modules/overrides.nix index eec969f99caf..288f4fc078ba 100644 --- a/pkgs/development/lua-modules/overrides.nix +++ b/pkgs/development/lua-modules/overrides.nix @@ -173,7 +173,7 @@ with super; MYSQL_LIBDIR="${pkgs.libmysqlclient}/lib/mysql"; }; buildInputs = [ - pkgs.mysql.client + pkgs.mariadb.client pkgs.libmysqlclient ]; }); diff --git a/pkgs/development/ocaml-modules/cooltt/default.nix b/pkgs/development/ocaml-modules/cooltt/default.nix new file mode 100644 index 000000000000..2ece4543c2a7 --- /dev/null +++ b/pkgs/development/ocaml-modules/cooltt/default.nix @@ -0,0 +1,47 @@ +{ lib +, fetchFromGitHub +, buildDunePackage +, cmdliner +, menhir +, menhirLib +, ppx_deriving +, ppxlib +, uuseg +, uutf +}: + +buildDunePackage { + pname = "cooltt"; + version = "unstable-2021-05-25"; + + minimumOCamlVersion = "4.10"; + + useDune2 = true; + + src = fetchFromGitHub { + owner = "RedPRL"; + repo = "cooltt"; + rev = "8ac06cbf7e05417d777f3ac6a471fe3576249f79"; + sha256 = "sha256-JBLNJaRuP/gwlg8RS3cpOpzxChOVKfmFulf5HKhhHh4="; + }; + + nativeBuildInputs = [ + cmdliner + menhir + ppxlib + ]; + + propagatedBuildInputs = [ + menhirLib + ppx_deriving + uuseg + uutf + ]; + + meta = with lib; { + homepage = "https://github.com/RedPRL/cooltt"; + description = "A cool implementation of normalization by evaluation (nbe) & elaboration for Cartesian cubical type theory"; + license = licenses.asl20; + maintainers = with maintainers; [ fortuneteller2k ]; + }; +} diff --git a/pkgs/development/ocaml-modules/dolmen/default.nix b/pkgs/development/ocaml-modules/dolmen/default.nix index a1a73bfe2188..815e1acd72ac 100644 --- a/pkgs/development/ocaml-modules/dolmen/default.nix +++ b/pkgs/development/ocaml-modules/dolmen/default.nix @@ -1,4 +1,4 @@ -{ stdenv, lib, fetchFromGitHub, ocaml, findlib, ocamlbuild, menhir }: +{ stdenv, lib, fetchFromGitHub, ocaml, findlib, ocamlbuild, menhir, menhirLib }: stdenv.mkDerivation rec { name = "ocaml${ocaml.version}-dolmen-${version}"; @@ -10,8 +10,8 @@ stdenv.mkDerivation rec { sha256 = "1b9mf8p6mic0n76acx8x82hhgm2n40sdv0jri95im65l52223saf"; }; - buildInputs = [ ocaml findlib ocamlbuild ]; - propagatedBuildInputs = [ menhir ]; + buildInputs = [ ocaml findlib ocamlbuild menhir ]; + propagatedBuildInputs = [ menhirLib ]; makeFlags = [ "-C" "src" ]; diff --git a/pkgs/development/ocaml-modules/earlybird/default.nix b/pkgs/development/ocaml-modules/earlybird/default.nix index 07e9b5a35461..a6a3648bec65 100644 --- a/pkgs/development/ocaml-modules/earlybird/default.nix +++ b/pkgs/development/ocaml-modules/earlybird/default.nix @@ -1,5 +1,5 @@ { lib, fetchurl, ocaml, buildDunePackage -, cmdliner, dap, fmt, iter, logs, lru, lwt_ppx, lwt_react, menhir, path_glob, ppx_deriving_yojson +, cmdliner, dap, fmt, iter, logs, lru, lwt_ppx, lwt_react, menhir, menhirLib, path_glob, ppx_deriving_yojson }: if lib.versionAtLeast ocaml.version "4.13" @@ -19,7 +19,7 @@ buildDunePackage rec { sha256 = "1pwzhcr3pw24ra4j4d23vz71h0psz4xkyp7b12l2wl1slxzjbrxa"; }; - buildInputs = [ cmdliner dap fmt iter logs lru lwt_ppx lwt_react menhir path_glob ppx_deriving_yojson ]; + buildInputs = [ cmdliner dap fmt iter logs lru lwt_ppx lwt_react menhir menhirLib path_glob ppx_deriving_yojson ]; meta = { homepage = "https://github.com/hackwaly/ocamlearlybird"; diff --git a/pkgs/development/ocaml-modules/menhir/default.nix b/pkgs/development/ocaml-modules/menhir/default.nix index cbb759205e03..686cf9820580 100644 --- a/pkgs/development/ocaml-modules/menhir/default.nix +++ b/pkgs/development/ocaml-modules/menhir/default.nix @@ -1,15 +1,15 @@ -{ lib, stdenv, fetchurl, ocaml, findlib, ocamlbuild -, version ? if lib.versionAtLeast (lib.getVersion ocaml) "4.02" then "20190626" else "20140422" -}@args: +{ lib, fetchFromGitLab, buildDunePackage +, menhirLib, menhirSdk +}: -let - src = fetchurl ( - if version == "20140422" then { url = "http://cristal.inria.fr/~fpottier/menhir/menhir-20140422.tar.gz"; sha256 = "1ki1f2id6a14h9xpv2k8yb6px7dyw8cvwh39csyzj4qpzx7wia0d"; } - else if version == "20170712" then { url = "http://gallium.inria.fr/~fpottier/menhir/menhir-20170712.tar.gz"; sha256 = "006hq3bwj81j67f2k9cgzj5wr4hai8j36925p5n3sd2j01ljsj6a"; } - else if version == "20181113" then { url = "https://gitlab.inria.fr/fpottier/menhir/repository/20181113/archive.tar.gz"; sha256 = "0hl611l0gyl7b2bm7m0sk7vjz14m0i7znrnjq3gw58pylj934dx4"; } - else if version == "20190626" then { url = "https://gitlab.inria.fr/fpottier/menhir/repository/20190626/archive.tar.gz"; sha256 = "0nigjnskg89knyi2zj1w211mb1pvkrwfqpz9a0qbw80k3hm8gg0h"; } - else throw ("menhir: unknown version " ++ version) - ); -in +buildDunePackage rec { + pname = "menhir"; -import ./generic.nix (args // { inherit version src; }) + inherit (menhirLib) version src useDune2; + + buildInputs = [ menhirLib menhirSdk ]; + + meta = menhirSdk.meta // { + description = "A LR(1) parser generator for OCaml"; + }; +} diff --git a/pkgs/development/ocaml-modules/menhir/generic.nix b/pkgs/development/ocaml-modules/menhir/generic.nix deleted file mode 100644 index a917d634a19c..000000000000 --- a/pkgs/development/ocaml-modules/menhir/generic.nix +++ /dev/null @@ -1,43 +0,0 @@ -{ version, src, lib, stdenv, ocaml, findlib, ocamlbuild, ... }: - -stdenv.mkDerivation { - pname = "menhir"; - inherit version; - - inherit src; - - buildInputs = [ ocaml findlib ocamlbuild ]; - - createFindlibDestdir = true; - - preBuild = '' - # fix makefiles. - RM=$(type -p rm) - CHMOD=$(type -p chmod) - for f in src/Makefile demos/OMakefile* demos/Makefile* - do - substituteInPlace $f \ - --replace /bin/rm $RM \ - --replace /bin/chmod $CHMOD - done - - export PREFIX=$out - ''; - - meta = with lib; { - homepage = "http://pauillac.inria.fr/~fpottier/menhir/"; - description = "A LR(1) parser generator for OCaml"; - longDescription = '' - Menhir is a LR(1) parser generator for the Objective Caml programming - language. That is, Menhir compiles LR(1) grammar specifications down - to OCaml code. Menhir was designed and implemented by François Pottier - and Yann Régis-Gianas. - ''; - license = with licenses; [ - (if versionAtLeast version "20170418" then gpl2 else qpl) /* generator */ - lgpl2 /* library */ - ]; - platforms = ocaml.meta.platforms or []; - maintainers = with maintainers; [ maggesi ]; - }; -} diff --git a/pkgs/development/ocaml-modules/menhir/lib.nix b/pkgs/development/ocaml-modules/menhir/lib.nix new file mode 100644 index 000000000000..3f6660f23ee9 --- /dev/null +++ b/pkgs/development/ocaml-modules/menhir/lib.nix @@ -0,0 +1,29 @@ +{ lib, fetchFromGitLab, buildDunePackage }: + +buildDunePackage rec { + pname = "menhirLib"; + version = "20210419"; + + src = fetchFromGitLab { + domain = "gitlab.inria.fr"; + owner = "fpottier"; + repo = "menhir"; + rev = version; + sha256 = "0jcbr7s3iwfr7xxfybs3h407g76yfp5yq5r9i0wg2ahvvbqh03ky"; + }; + + useDune2 = true; + + meta = with lib; { + homepage = "http://pauillac.inria.fr/~fpottier/menhir/"; + description = "Runtime support library for parsers generated by Menhir"; + longDescription = '' + Menhir is a LR(1) parser generator for the Objective Caml programming + language. That is, Menhir compiles LR(1) grammar specifications down + to OCaml code. Menhir was designed and implemented by François Pottier + and Yann Régis-Gianas. + ''; + license = with licenses; [ lgpl2Only ]; + maintainers = with maintainers; [ vbgl ]; + }; +} diff --git a/pkgs/development/ocaml-modules/menhir/sdk.nix b/pkgs/development/ocaml-modules/menhir/sdk.nix new file mode 100644 index 000000000000..0e60849494cc --- /dev/null +++ b/pkgs/development/ocaml-modules/menhir/sdk.nix @@ -0,0 +1,15 @@ +{ lib, fetchFromGitLab, buildDunePackage +, menhirLib +}: + +buildDunePackage rec { + pname = "menhirSdk"; + + inherit (menhirLib) version src useDune2; + + meta = menhirLib.meta // { + description = "Compile-time library for auxiliary tools related to Menhir"; + license = with lib.licenses; [ gpl2Only ]; + }; +} + diff --git a/pkgs/development/ocaml-modules/mustache/default.nix b/pkgs/development/ocaml-modules/mustache/default.nix index 005e26926d1a..b16dfd484814 100644 --- a/pkgs/development/ocaml-modules/mustache/default.nix +++ b/pkgs/development/ocaml-modules/mustache/default.nix @@ -1,4 +1,4 @@ -{ lib, buildDunePackage, fetchFromGitHub, ezjsonm, menhir, ounit }: +{ lib, buildDunePackage, fetchFromGitHub, ezjsonm, menhir, menhirLib, ounit }: buildDunePackage rec { pname = "mustache"; @@ -11,8 +11,8 @@ buildDunePackage rec { sha256 = "19v8rk8d8lkfm2rmhdawfgadji6wa267ir5dprh4w9l1sfj8a1py"; }; - buildInputs = [ ezjsonm ]; - propagatedBuildInputs = [ menhir ]; + buildInputs = [ ezjsonm menhir ]; + propagatedBuildInputs = [ menhirLib ]; doCheck = true; checkInputs = [ ounit ]; diff --git a/pkgs/development/ocaml-modules/stdcompat/default.nix b/pkgs/development/ocaml-modules/stdcompat/default.nix new file mode 100644 index 000000000000..df5c1a58b17b --- /dev/null +++ b/pkgs/development/ocaml-modules/stdcompat/default.nix @@ -0,0 +1,24 @@ +{ stdenv, lib, fetchurl +, ocaml, findlib +}: + +stdenv.mkDerivation rec { + pname = "ocaml${ocaml.version}-stdcompat"; + version = "15"; + + src = fetchurl { + url = "https://github.com/thierry-martinez/stdcompat/releases/download/v${version}/stdcompat-${version}.tar.gz"; + sha256 = "1xcwb529m4lg9cbnxa9m3x2nnl9nxzz1x5lxpvdfflg4zxl6yx2y"; + }; + + buildInputs = [ ocaml findlib ]; + + configureFlags = "--libdir=$(OCAMLFIND_DESTDIR)"; + + meta = { + homepage = "https://github.com/thierry-martinez/stdcompat"; + license = lib.licenses.bsd2; + maintainers = [ lib.maintainers.vbgl ]; + inherit (ocaml.meta) platforms; + }; +} diff --git a/pkgs/development/php-packages/deployer/default.nix b/pkgs/development/php-packages/deployer/default.nix index 2e24a98b0bfb..7679fb5ea51b 100644 --- a/pkgs/development/php-packages/deployer/default.nix +++ b/pkgs/development/php-packages/deployer/default.nix @@ -1,4 +1,4 @@ -{ mkDerivation, fetchurl, makeWrapper, lib, php }: +{ mkDerivation, fetchurl, makeWrapper, installShellFiles, lib, php }: mkDerivation rec { pname = "deployer"; @@ -11,12 +11,17 @@ mkDerivation rec { dontUnpack = true; - nativeBuildInputs = [ makeWrapper ]; + nativeBuildInputs = [ makeWrapper installShellFiles ]; installPhase = '' mkdir -p $out/bin install -D $src $out/libexec/deployer/deployer.phar makeWrapper ${php}/bin/php $out/bin/dep --add-flags "$out/libexec/deployer/deployer.phar" + + # fish support currently broken: https://github.com/deployphp/deployer/issues/2527 + installShellCompletion --cmd dep \ + --bash <($out/bin/dep autocomplete --install) \ + --zsh <($out/bin/dep autocomplete --install) ''; meta = with lib; { diff --git a/pkgs/development/python-modules/aio-georss-client/default.nix b/pkgs/development/python-modules/aio-georss-client/default.nix new file mode 100644 index 000000000000..1ac37e8b602a --- /dev/null +++ b/pkgs/development/python-modules/aio-georss-client/default.nix @@ -0,0 +1,51 @@ +{ lib +, aiohttp +, aresponses +, asynctest +, buildPythonPackage +, dateparser +, fetchFromGitHub +, haversine +, pytest-asyncio +, pytestCheckHook +, pythonOlder +, requests +, xmltodict +}: + +buildPythonPackage rec { + pname = "aio-georss-client"; + version = "0.7"; + disabled = pythonOlder "3.7"; + + src = fetchFromGitHub { + owner = "exxamalte"; + repo = "python-aio-georss-client"; + rev = "v${version}"; + sha256 = "1nhw2sf92dbizxdcil1wdmbaa3hbmsiriy8jfzpqxsliw5dc0kmh"; + }; + + propagatedBuildInputs = [ + aiohttp + haversine + xmltodict + requests + dateparser + ]; + + checkInputs = [ + aresponses + asynctest + pytest-asyncio + pytestCheckHook + ]; + + pythonImportsCheck = [ "aio_georss_client" ]; + + meta = with lib; { + description = "Python library for accessing GeoRSS feeds"; + homepage = "https://github.com/exxamalte/python-aio-georss-client"; + license = with licenses; [ asl20 ]; + maintainers = with maintainers; [ fab ]; + }; +} diff --git a/pkgs/development/python-modules/aio-georss-gdacs/default.nix b/pkgs/development/python-modules/aio-georss-gdacs/default.nix new file mode 100644 index 000000000000..75894aa0e7a7 --- /dev/null +++ b/pkgs/development/python-modules/aio-georss-gdacs/default.nix @@ -0,0 +1,43 @@ +{ lib +, aio-georss-client +, aresponses +, buildPythonPackage +, dateparser +, fetchFromGitHub +, pytest-asyncio +, pytestCheckHook +, pythonOlder +}: + +buildPythonPackage rec { + pname = "aio-georss-gdacs"; + version = "0.4"; + disabled = pythonOlder "3.7"; + + src = fetchFromGitHub { + owner = "exxamalte"; + repo = "python-aio-georss-gdacs"; + rev = "v${version}"; + sha256 = "0rcrhdpgj84hfifx9rzxz15ajzsk069iknb28gicw1cm1qv4vfxm"; + }; + + propagatedBuildInputs = [ + aio-georss-client + dateparser + ]; + + checkInputs = [ + aresponses + pytest-asyncio + pytestCheckHook + ]; + + pythonImportsCheck = [ "aio_georss_gdacs" ]; + + meta = with lib; { + description = "Python library for accessing GeoRSS feeds"; + homepage = "https://github.com/exxamalte/python-aio-georss-gdacs"; + license = with licenses; [ asl20 ]; + maintainers = with maintainers; [ fab ]; + }; +} diff --git a/pkgs/development/python-modules/aiokafka/default.nix b/pkgs/development/python-modules/aiokafka/default.nix index ba32976b96b1..61ff78a3428e 100644 --- a/pkgs/development/python-modules/aiokafka/default.nix +++ b/pkgs/development/python-modules/aiokafka/default.nix @@ -1,7 +1,8 @@ { lib , buildPythonPackage , fetchFromGitHub -, isPy27 +, pythonOlder +, dataclasses , kafka-python , cython , zlib @@ -9,15 +10,14 @@ buildPythonPackage rec { pname = "aiokafka"; - version = "0.7.0"; - - disabled = isPy27; + version = "0.7.1"; + disabled = pythonOlder "3.6"; src = fetchFromGitHub { owner = "aio-libs"; - repo = "aiokafka"; + repo = pname; rev = "v${version}"; - sha256 = "16pcgv38syqy6sj3w7zx95zgynpd642n3i95dpiw0ivhpqrxxhrf"; + sha256 = "sha256-D89ppIUliJJMDuCySrZUyN6Rlm01gFskz6ayHmqploc="; }; nativeBuildInputs = [ @@ -30,16 +30,15 @@ buildPythonPackage rec { propagatedBuildInputs = [ kafka-python + ] ++ lib.optionals (pythonOlder "3.7") [ + dataclasses ]; - postPatch = '' - substituteInPlace setup.py \ - --replace "kafka-python==1.4.6" "kafka-python" - ''; - # checks require running kafka server doCheck = false; + pythonImportsCheck = [ "aiokafka" ]; + meta = with lib; { description = "Kafka integration with asyncio"; homepage = "https://aiokafka.readthedocs.org"; diff --git a/pkgs/development/python-modules/aiomultiprocess/default.nix b/pkgs/development/python-modules/aiomultiprocess/default.nix index 7b84996a1c91..6403f396eaac 100644 --- a/pkgs/development/python-modules/aiomultiprocess/default.nix +++ b/pkgs/development/python-modules/aiomultiprocess/default.nix @@ -24,6 +24,14 @@ buildPythonPackage rec { checkInputs = [ pytestCheckHook ]; pytestFlagsArray = [ "aiomultiprocess/tests/*.py" ]; + + disabledTests = [ + # tests are flaky and make the whole test suite time out + "test_pool_worker_exceptions" + "test_pool_worker_max_tasks" + "test_pool_worker_stop" + ]; + pythonImportsCheck = [ "aiomultiprocess" ]; meta = with lib; { diff --git a/pkgs/development/python-modules/aioswitcher/default.nix b/pkgs/development/python-modules/aioswitcher/default.nix index 1ab0db664f54..2535253dc2a3 100644 --- a/pkgs/development/python-modules/aioswitcher/default.nix +++ b/pkgs/development/python-modules/aioswitcher/default.nix @@ -12,14 +12,14 @@ buildPythonPackage rec { pname = "aioswitcher"; - version = "1.2.3"; + version = "1.2.5"; format = "pyproject"; src = fetchFromGitHub { owner = "TomerFi"; repo = pname; rev = version; - sha256 = "sha256-Qp5iVk71JxhPVrytWuXkzpqPNPmMQubO0t9sgeQfO8c="; + sha256 = "sha256-eiWmB2DVNAYHPHfnVwv0+4A/wYLgtAa1ReGsmwiIvAk="; }; nativeBuildInputs = [ diff --git a/pkgs/development/python-modules/angrop/default.nix b/pkgs/development/python-modules/angrop/default.nix index 0af812d49321..997cd6c401a8 100644 --- a/pkgs/development/python-modules/angrop/default.nix +++ b/pkgs/development/python-modules/angrop/default.nix @@ -25,13 +25,6 @@ buildPythonPackage rec { tqdm ]; - postPatch = '' - # https://github.com/angr/angrop/issues/35 - substituteInPlace setup.py \ - --replace "packages=['angrop']," "packages=find_packages()," \ - --replace "from distutils.core import setup" "from setuptools import find_packages, setup" - ''; - # Tests have additional requirements, e.g., angr binaries # cle is executing the tests with the angr binaries already and is a requirement of angr doCheck = false; diff --git a/pkgs/development/python-modules/clldutils/default.nix b/pkgs/development/python-modules/clldutils/default.nix index 2271337dc986..318354786b56 100644 --- a/pkgs/development/python-modules/clldutils/default.nix +++ b/pkgs/development/python-modules/clldutils/default.nix @@ -15,14 +15,14 @@ buildPythonPackage rec { pname = "clldutils"; - version = "3.8.0"; + version = "3.9.0"; disabled = isPy27; src = fetchFromGitHub { owner = "clld"; repo = pname; rev = "v${version}"; - sha256 = "18sjcqzprf96s7bkn5zm3lh83hxfxj56nycxyldrwz7ndgkgxxx2"; + sha256 = "07ljq7v1zvaxyl6xn4a2p4097lgd5j9bz71lf05y5bz8k024mxbr"; }; patchPhase = '' @@ -48,6 +48,6 @@ buildPythonPackage rec { description = "CSV on the Web"; homepage = "https://github.com/cldf/csvw"; license = licenses.asl20; - maintainers = with maintainers; [ hexa ]; + maintainers = with maintainers; [ ]; }; } diff --git a/pkgs/development/python-modules/elevate/default.nix b/pkgs/development/python-modules/elevate/default.nix new file mode 100644 index 000000000000..cfb1dbf068dc --- /dev/null +++ b/pkgs/development/python-modules/elevate/default.nix @@ -0,0 +1,35 @@ +{ lib, fetchPypi, buildPythonPackage, fetchpatch, setuptools-scm }: + +buildPythonPackage rec { + pname = "elevate"; + version = "0.1.3"; + + src = fetchPypi { + inherit pname version; + sha256 = "53ad19fa1de301fb1de3f8768fb3a5894215716fd96a475690c4d0ff3b1de209"; + }; + + patches = [ + (fetchpatch { + # This is for not calling shell wrappers through Python, which fails. + url = "https://github.com/rkitover/elevate/commit/148b2bf698203ea39c9fe5d635ecd03cd94051af.patch"; + sha256 = "1ky3z1jxl1g28wbwbx8qq8jgx8sa8pr8s3fdcpdhdx1blw28cv61"; + }) + ]; + + nativeBuildInputs = [ + setuptools-scm + ]; + + # No tests included + doCheck = false; + + pythonImportsCheck = [ "elevate" ]; + + meta = with lib; { + description = "Python module for re-launching the current process as super-user"; + homepage = "https://github.com/barneygale/elevate"; + license = licenses.mit; + maintainers = with maintainers; [ rkitover ]; + }; +} diff --git a/pkgs/development/python-modules/georss-client/default.nix b/pkgs/development/python-modules/georss-client/default.nix new file mode 100644 index 000000000000..e142942f9394 --- /dev/null +++ b/pkgs/development/python-modules/georss-client/default.nix @@ -0,0 +1,43 @@ +{ lib +, buildPythonPackage +, dateparser +, fetchFromGitHub +, haversine +, pytestCheckHook +, pythonOlder +, requests +, xmltodict +}: + +buildPythonPackage rec { + pname = "georss-client"; + version = "0.13"; + disabled = pythonOlder "3.7"; + + src = fetchFromGitHub { + owner = "exxamalte"; + repo = "python-georss-client"; + rev = "v${version}"; + sha256 = "1pvx2qb8gs2f7bb8xxq689ydxirsl3bcgsbi5qv5klc4c051dj8i"; + }; + + propagatedBuildInputs = [ + haversine + xmltodict + requests + dateparser + ]; + + checkInputs = [ + pytestCheckHook + ]; + + pythonImportsCheck = [ "georss_client" ]; + + meta = with lib; { + description = "Python library for accessing GeoRSS feeds"; + homepage = "https://github.com/exxamalte/python-georss-client"; + license = with licenses; [ asl20 ]; + maintainers = with maintainers; [ fab ]; + }; +} diff --git a/pkgs/development/python-modules/georss-generic-client/default.nix b/pkgs/development/python-modules/georss-generic-client/default.nix new file mode 100644 index 000000000000..e01d7fa789f7 --- /dev/null +++ b/pkgs/development/python-modules/georss-generic-client/default.nix @@ -0,0 +1,37 @@ +{ lib +, buildPythonPackage +, fetchFromGitHub +, georss-client +, pytestCheckHook +, pythonOlder +}: + +buildPythonPackage rec { + pname = "georss-generic-client"; + version = "0.4"; + disabled = pythonOlder "3.7"; + + src = fetchFromGitHub { + owner = "exxamalte"; + repo = "python-georss-generic-client"; + rev = "v${version}"; + sha256 = "0i4shx6fvwibx0hlfmd0dyq2n5lkrqwmlm0l476fdb9bw5lkaiy0"; + }; + + propagatedBuildInputs = [ + georss-client + ]; + + checkInputs = [ + pytestCheckHook + ]; + + pythonImportsCheck = [ "georss_generic_client" ]; + + meta = with lib; { + description = "Python library for accessing generic GeoRSS feeds"; + homepage = "https://github.com/exxamalte/python-georss-generic-client"; + license = with licenses; [ asl20 ]; + maintainers = with maintainers; [ fab ]; + }; +} diff --git a/pkgs/development/python-modules/georss-ign-sismologia-client/default.nix b/pkgs/development/python-modules/georss-ign-sismologia-client/default.nix new file mode 100644 index 000000000000..4ce833668474 --- /dev/null +++ b/pkgs/development/python-modules/georss-ign-sismologia-client/default.nix @@ -0,0 +1,37 @@ +{ lib +, buildPythonPackage +, fetchFromGitHub +, georss-client +, pytestCheckHook +, pythonOlder +}: + +buildPythonPackage rec { + pname = "georss-ign-sismologia-client"; + version = "0.2"; + disabled = pythonOlder "3.7"; + + src = fetchFromGitHub { + owner = "exxamalte"; + repo = "python-georss-ign-sismologia-client"; + rev = "v${version}"; + sha256 = "1xylgvbdrpl3wxa6qqc8jma4c9520rld0pv28y3b6b0m07ab6ijl"; + }; + + propagatedBuildInputs = [ + georss-client + ]; + + checkInputs = [ + pytestCheckHook + ]; + + pythonImportsCheck = [ "georss_ign_sismologia_client" ]; + + meta = with lib; { + description = "Python library for accessing the IGN Sismologia GeoRSS feed"; + homepage = "https://github.com/exxamalte/python-georss-ign-sismologia-client"; + license = with licenses; [ asl20 ]; + maintainers = with maintainers; [ fab ]; + }; +} diff --git a/pkgs/development/python-modules/georss-ingv-centro-nazionale-terremoti-client/default.nix b/pkgs/development/python-modules/georss-ingv-centro-nazionale-terremoti-client/default.nix new file mode 100644 index 000000000000..a4b317407ea2 --- /dev/null +++ b/pkgs/development/python-modules/georss-ingv-centro-nazionale-terremoti-client/default.nix @@ -0,0 +1,37 @@ +{ lib +, buildPythonPackage +, fetchFromGitHub +, georss-client +, pytestCheckHook +, pythonOlder +}: + +buildPythonPackage rec { + pname = "georss-ingv-centro-nazionale-terremoti-client"; + version = "0.4"; + disabled = pythonOlder "3.7"; + + src = fetchFromGitHub { + owner = "exxamalte"; + repo = "python-georss-ingv-centro-nazionale-terremoti-client"; + rev = "v${version}"; + sha256 = "06qhxczznckb208bnfly0q5099scq1yj5rk67a6fqczpsmzcln6x"; + }; + + propagatedBuildInputs = [ + georss-client + ]; + + checkInputs = [ + pytestCheckHook + ]; + + pythonImportsCheck = [ "georss_ingv_centro_nazionale_terremoti_client" ]; + + meta = with lib; { + description = "Python library for accessing the INGV Centro Nazionale Terremoti GeoRSS feed"; + homepage = "https://github.com/exxamalte/python-georss-ingv-centro-nazionale-terremoti-client"; + license = with licenses; [ asl20 ]; + maintainers = with maintainers; [ fab ]; + }; +} diff --git a/pkgs/development/python-modules/georss-nrcan-earthquakes-client/default.nix b/pkgs/development/python-modules/georss-nrcan-earthquakes-client/default.nix new file mode 100644 index 000000000000..fc482e220c9b --- /dev/null +++ b/pkgs/development/python-modules/georss-nrcan-earthquakes-client/default.nix @@ -0,0 +1,37 @@ +{ lib +, buildPythonPackage +, fetchFromGitHub +, georss-client +, pytestCheckHook +, pythonOlder +}: + +buildPythonPackage rec { + pname = "georss-nrcan-earthquakes-client"; + version = "0.2"; + disabled = pythonOlder "3.7"; + + src = fetchFromGitHub { + owner = "exxamalte"; + repo = "python-georss-nrcan-earthquakes-client"; + rev = "v${version}"; + sha256 = "0d5cdvi35wj30yvql1sr5n4vz0g4ydrslhql3bya1b7pndfs0h3y"; + }; + + propagatedBuildInputs = [ + georss-client + ]; + + checkInputs = [ + pytestCheckHook + ]; + + pythonImportsCheck = [ "georss_nrcan_earthquakes_client" ]; + + meta = with lib; { + description = "Python library for accessing Natural Resources Canada Earthquakes feed"; + homepage = "https://github.com/exxamalte/python-georss-nrcan-earthquakes-client"; + license = with licenses; [ asl20 ]; + maintainers = with maintainers; [ fab ]; + }; +} diff --git a/pkgs/development/python-modules/georss-qld-bushfire-alert-client/default.nix b/pkgs/development/python-modules/georss-qld-bushfire-alert-client/default.nix new file mode 100644 index 000000000000..f95e0a4702bf --- /dev/null +++ b/pkgs/development/python-modules/georss-qld-bushfire-alert-client/default.nix @@ -0,0 +1,37 @@ +{ lib +, buildPythonPackage +, fetchFromGitHub +, georss-client +, pytestCheckHook +, pythonOlder +}: + +buildPythonPackage rec { + pname = "georss-qld-bushfire-alert-client"; + version = "0.4"; + disabled = pythonOlder "3.7"; + + src = fetchFromGitHub { + owner = "exxamalte"; + repo = "python-georss-qld-bushfire-alert-client"; + rev = "v${version}"; + sha256 = "14k7q0ynray1fj0lhxvgxpbdh4pmsqqk9gzmv38p9i7ijx8h1sc8"; + }; + + propagatedBuildInputs = [ + georss-client + ]; + + checkInputs = [ + pytestCheckHook + ]; + + pythonImportsCheck = [ "georss_qld_bushfire_alert_client" ]; + + meta = with lib; { + description = "Python library for accessing Queensland Bushfire Alert feed"; + homepage = "https://github.com/exxamalte/python-georss-qld-bushfire-alert-client"; + license = with licenses; [ asl20 ]; + maintainers = with maintainers; [ fab ]; + }; +} diff --git a/pkgs/development/python-modules/georss-tfs-incidents-client/default.nix b/pkgs/development/python-modules/georss-tfs-incidents-client/default.nix new file mode 100644 index 000000000000..27d43d900fd6 --- /dev/null +++ b/pkgs/development/python-modules/georss-tfs-incidents-client/default.nix @@ -0,0 +1,37 @@ +{ lib +, buildPythonPackage +, fetchFromGitHub +, georss-client +, pytestCheckHook +, pythonOlder +}: + +buildPythonPackage rec { + pname = "georss-tfs-incidents-client"; + version = "0.2"; + disabled = pythonOlder "3.7"; + + src = fetchFromGitHub { + owner = "exxamalte"; + repo = "python-georss-tfs-incidents-client"; + rev = "v${version}"; + sha256 = "10qscn7kncb7h0b8mjykkf5kmm3ga9l8gss4acb888iaigcjgavf"; + }; + + propagatedBuildInputs = [ + georss-client + ]; + + checkInputs = [ + pytestCheckHook + ]; + + pythonImportsCheck = [ "georss_tfs_incidents_client" ]; + + meta = with lib; { + description = "Python library for accessing Tasmania Fire Service Incidents feed"; + homepage = "https://github.com/exxamalte/python-georss-tfs-incidents-client"; + license = with licenses; [ asl20 ]; + maintainers = with maintainers; [ fab ]; + }; +} diff --git a/pkgs/development/python-modules/georss-wa-dfes-client/default.nix b/pkgs/development/python-modules/georss-wa-dfes-client/default.nix new file mode 100644 index 000000000000..1f478151bb3e --- /dev/null +++ b/pkgs/development/python-modules/georss-wa-dfes-client/default.nix @@ -0,0 +1,37 @@ +{ lib +, buildPythonPackage +, fetchFromGitHub +, georss-client +, pytestCheckHook +, pythonOlder +}: + +buildPythonPackage rec { + pname = "georss-wa-dfes-client"; + version = "0.2"; + disabled = pythonOlder "3.7"; + + src = fetchFromGitHub { + owner = "exxamalte"; + repo = "python-georss-wa-dfes-client"; + rev = "v${version}"; + sha256 = "0zfjq6yyrss61vwgdrykwkikb009q63kg9ab6ryb2509wiwwfwvk"; + }; + + propagatedBuildInputs = [ + georss-client + ]; + + checkInputs = [ + pytestCheckHook + ]; + + pythonImportsCheck = [ "georss_wa_dfes_client" ]; + + meta = with lib; { + description = "Python library for accessing WA Department of Fire and Emergency Services (DFES) feed"; + homepage = "https://github.com/exxamalte/python-georss-wa-dfes-client"; + license = with licenses; [ asl20 ]; + maintainers = with maintainers; [ fab ]; + }; +} diff --git a/pkgs/development/python-modules/haversine/default.nix b/pkgs/development/python-modules/haversine/default.nix index 7f5e462d1b3c..9d12be3aa198 100644 --- a/pkgs/development/python-modules/haversine/default.nix +++ b/pkgs/development/python-modules/haversine/default.nix @@ -7,13 +7,13 @@ buildPythonPackage rec { pname = "haversine"; - version = "2.3.0"; + version = "2.3.1"; src = fetchFromGitHub { owner = "mapado"; repo = pname; rev = "v${version}"; - sha256 = "1c3yf9162b2b7l1lsw3ffd1linnc542qvljpgwxp6y5arrmljqnv"; + sha256 = "sha256-1PXPsZd/4pN42TU0lhXWsmyX7uGP1n/xna2cVZPczB4="; }; checkInputs = [ diff --git a/pkgs/development/python-modules/icmplib/default.nix b/pkgs/development/python-modules/icmplib/default.nix index 2718b6340540..fdbf45edaaeb 100644 --- a/pkgs/development/python-modules/icmplib/default.nix +++ b/pkgs/development/python-modules/icmplib/default.nix @@ -4,24 +4,22 @@ , pbr , pythonOlder , requests -, six }: buildPythonPackage rec { pname = "icmplib"; - version = "2.1.1"; - disabled = pythonOlder "3.6"; + version = "3.0.0"; + disabled = pythonOlder "3.7"; src = fetchFromGitHub { owner = "ValentinBELYN"; repo = pname; rev = "v${version}"; - sha256 = "06xx9854yzxa7x1mjfzbhhw5rfzgjnw269j5k0rshyqh3qvw1nwv"; + sha256 = "sha256-i5cmL8kOrehldOwX2RfVAfL4HdzJ+9S3BojJI2raUSA="; }; propagatedBuildInputs = [ pbr - six requests ]; diff --git a/pkgs/development/python-modules/influxdb-client/default.nix b/pkgs/development/python-modules/influxdb-client/default.nix index 82153f4b3d9b..38f6f58910db 100644 --- a/pkgs/development/python-modules/influxdb-client/default.nix +++ b/pkgs/development/python-modules/influxdb-client/default.nix @@ -14,22 +14,16 @@ buildPythonPackage rec { pname = "influxdb-client"; - version = "1.15.0"; - - disabled = pythonOlder "3.6"; # requires python version >=3.6 + version = "1.17.0"; + disabled = pythonOlder "3.6"; src = fetchFromGitHub { owner = "influxdata"; repo = "influxdb-client-python"; rev = "v${version}"; - sha256 = "1b2xh78v965rgafyj7cdbjm2p96d74f7ifsqllc7242n9wv3k53q"; + sha256 = "1xxg8z9zambbhr7nmxhmvmiwkd4578zxr6rl2vhdh2w77idsw29z"; }; - # makes test not reproducible - postPatch = '' - sed -i -e '/randomize/d' test-requirements.txt - ''; - propagatedBuildInputs = [ rx certifi @@ -44,6 +38,8 @@ buildPythonPackage rec { # requires influxdb server doCheck = false; + pythonImportsCheck = [ "influxdb_client" ]; + meta = with lib; { description = "InfluxDB 2.0 Python client library"; homepage = "https://github.com/influxdata/influxdb-client-python"; diff --git a/pkgs/development/python-modules/motioneye-client/default.nix b/pkgs/development/python-modules/motioneye-client/default.nix index 44de5318787f..a769128fd861 100644 --- a/pkgs/development/python-modules/motioneye-client/default.nix +++ b/pkgs/development/python-modules/motioneye-client/default.nix @@ -11,7 +11,7 @@ buildPythonPackage rec { pname = "motioneye-client"; - version = "0.3.8"; + version = "0.3.9"; format = "pyproject"; disabled = pythonOlder "3.8"; @@ -19,7 +19,7 @@ buildPythonPackage rec { owner = "dermotduffy"; repo = pname; rev = "v${version}"; - sha256 = "sha256-vTTjH4LhUcbh+/838wR0vnvml2y78Ro8SGwSZ6aApdQ="; + sha256 = "sha256-pLdAxBipmr+HUr9NSupm7h/68PK95r3zY/qZTBs1m54="; }; nativeBuildInputs = [ diff --git a/pkgs/development/python-modules/pglast/default.nix b/pkgs/development/python-modules/pglast/default.nix index 3240b0809922..6a0f8940788c 100644 --- a/pkgs/development/python-modules/pglast/default.nix +++ b/pkgs/development/python-modules/pglast/default.nix @@ -1,29 +1,33 @@ { lib , buildPythonPackage -, fetchPypi +, fetchFromGitHub , isPy3k -, pythonOlder , setuptools -, aenum -, pytest , pytestcov +, pytest }: buildPythonPackage rec { pname = "pglast"; - version = "1.17"; + version = "3.0"; - src = fetchPypi { - inherit pname version; - sha256 = "2979b38ca5f72cfa0a5db78af2f62d04db6a7647ee7f03eac7a67f9e86e3f5f9"; + # PyPI tarball does not include all the required files + src = fetchFromGitHub { + owner = "lelit"; + repo = pname; + rev = "v${version}"; + fetchSubmodules = true; + sha256 = "0yi24wj19rzw5dvppm8g3hnfskyzbrqw14q8x9f2q5zi8g6xnnrd"; }; disabled = !isPy3k; - propagatedBuildInputs = [ setuptools ] ++ lib.optionals (pythonOlder "3.6") [ aenum ]; + propagatedBuildInputs = [ setuptools ]; checkInputs = [ pytest pytestcov ]; + pythonImportsCheck = [ "pglast" ]; + checkPhase = '' pytest ''; @@ -31,6 +35,7 @@ buildPythonPackage rec { meta = with lib; { homepage = "https://github.com/lelit/pglast"; description = "PostgreSQL Languages AST and statements prettifier"; + changelog = "https://github.com/lelit/pglast/raw/v${version}/CHANGES.rst"; license = licenses.gpl3Plus; maintainers = [ maintainers.marsam ]; }; diff --git a/pkgs/development/python-modules/pyls-black/default.nix b/pkgs/development/python-modules/pyls-black/default.nix index 7c8652b0a5e3..d10e4930ac0c 100644 --- a/pkgs/development/python-modules/pyls-black/default.nix +++ b/pkgs/development/python-modules/pyls-black/default.nix @@ -1,34 +1,27 @@ -{ lib, buildPythonPackage, fetchFromGitHub, fetchpatch -, black, toml, pytest, python-language-server, isPy3k +{ lib +, buildPythonPackage +, fetchFromGitHub +, black +, toml +, pytestCheckHook +, python-language-server +, isPy3k }: buildPythonPackage rec { pname = "pyls-black"; - version = "0.4.6"; + version = "0.4.7"; src = fetchFromGitHub { owner = "rupert"; repo = "pyls-black"; rev = "v${version}"; - sha256 = "0cjf0mjn156qp0x6md6mncs31hdpzfim769c2lixaczhyzwywqnj"; + sha256 = "0bkhfnlik89j3yamr20br4wm8975f20v33wabi2nyxvj10whr5dj"; }; - # Fix test failure with black 21.4b0+ - # Remove if https://github.com/rupert/pyls-black/pull/39 merged. - patches = [ - (fetchpatch { - url = "https://github.com/rupert/pyls-black/commit/728207b540d9c25eb0d1cd96419ebfda2e257f63.patch"; - sha256 = "0i3w5myhjl5lq1lpkizagnmk6m8fkn3igfyv5f2qcrn5n7f119ak"; - }) - ]; - disabled = !isPy3k; - checkPhase = '' - pytest - ''; - - checkInputs = [ pytest ]; + checkInputs = [ pytestCheckHook ]; propagatedBuildInputs = [ black toml python-language-server ]; diff --git a/pkgs/development/python-modules/sanic/default.nix b/pkgs/development/python-modules/sanic/default.nix index 8c18380c3bad..5f610f6feab0 100644 --- a/pkgs/development/python-modules/sanic/default.nix +++ b/pkgs/development/python-modules/sanic/default.nix @@ -42,6 +42,8 @@ buildPythonPackage rec { "test_zero_downtime" # flaky "test_keep_alive_client_timeout" + "test_check_timeouts_request_timeout" + "test_check_timeouts_response_timeout" "test_reloader_live" ]; diff --git a/pkgs/development/python-modules/sphinxcontrib-excel-table/default.nix b/pkgs/development/python-modules/sphinxcontrib-excel-table/default.nix new file mode 100644 index 000000000000..e48b24c3644f --- /dev/null +++ b/pkgs/development/python-modules/sphinxcontrib-excel-table/default.nix @@ -0,0 +1,30 @@ +{ lib +, buildPythonPackage +, fetchPypi +, sphinx +, openpyxl +}: + +buildPythonPackage rec { + pname = "sphinxcontrib-excel-table"; + version = "1.0.8"; + + src = fetchPypi { + inherit pname version; + hash = "sha256:1q79byn3k3ribvwqafbpixwabjhymk46ns8ym0hxcn8vhf5nljzd"; + }; + + propagatedBuildInputs = [ sphinx openpyxl ]; + + pythonImportsCheck = [ "sphinxcontrib.excel_table" ]; + + # No tests present upstream + doCheck = false; + + meta = with lib; { + description = "Sphinx excel-table extension"; + homepage = "https://github.com/hackerain/sphinxcontrib-excel-table"; + maintainers = with maintainers; [ raboof ]; + license = licenses.asl20; + }; +} diff --git a/pkgs/development/python-modules/subliminal/default.nix b/pkgs/development/python-modules/subliminal/default.nix index 77ddb125a94b..cedbb7bcf786 100644 --- a/pkgs/development/python-modules/subliminal/default.nix +++ b/pkgs/development/python-modules/subliminal/default.nix @@ -1,7 +1,6 @@ { lib , fetchPypi , buildPythonPackage -, isPy3k , guessit , babelfish , enzyme @@ -16,7 +15,6 @@ , appdirs , rarfile , pytz -, futures , sympy , vcrpy , pytest @@ -38,7 +36,7 @@ buildPythonPackage rec { guessit babelfish enzyme beautifulsoup4 requests click dogpile_cache stevedore chardet pysrt six appdirs rarfile pytz - ] ++ lib.optional (!isPy3k) futures; + ]; checkInputs = [ sympy vcrpy pytest pytest-flakes @@ -47,6 +45,7 @@ buildPythonPackage rec { # https://github.com/Diaoul/subliminal/pull/963 doCheck = false; + pythonImportsCheck = [ "subliminal" ]; meta = with lib; { homepage = "https://github.com/Diaoul/subliminal"; diff --git a/pkgs/development/python-modules/userpath/default.nix b/pkgs/development/python-modules/userpath/default.nix index 237293370aac..d619cba0649d 100644 --- a/pkgs/development/python-modules/userpath/default.nix +++ b/pkgs/development/python-modules/userpath/default.nix @@ -6,11 +6,11 @@ buildPythonPackage rec { pname = "userpath"; - version = "1.5.0"; + version = "1.6.0"; src = fetchPypi { inherit pname version; - sha256="0fj2lj9vcns5sxv72v3ggrszcl7j1jd9a6ycnsl00218nycliy31"; + sha256="1xpgdmdvhmmmdlivsqlzx1xvyj0gcnfp0j2ba5izmv3q2k5abfdj"; }; propagatedBuildInputs = [ click ]; diff --git a/pkgs/development/python-modules/zipstream/default.nix b/pkgs/development/python-modules/zipstream/default.nix index ec885c6df0f4..00c291a1c510 100644 --- a/pkgs/development/python-modules/zipstream/default.nix +++ b/pkgs/development/python-modules/zipstream/default.nix @@ -15,6 +15,6 @@ buildPythonPackage rec { description = "A zip archive generator"; homepage = "https://github.com/allanlei/python-zipstream"; license = lib.licenses.gpl3Plus; - maintainers = with lib.maintainers; [ primeos ]; + maintainers = with lib.maintainers; [ ]; }; } diff --git a/pkgs/development/r-modules/default.nix b/pkgs/development/r-modules/default.nix index f16a6d0bb4aa..254dfbb1788b 100644 --- a/pkgs/development/r-modules/default.nix +++ b/pkgs/development/r-modules/default.nix @@ -375,6 +375,7 @@ let affyio = [ pkgs.zlib.dev ]; VariantAnnotation = [ pkgs.zlib.dev pkgs.curl.dev ]; snpStats = [ pkgs.zlib.dev ]; + hdf5r = [ pkgs.hdf5.dev ]; }; packagesWithBuildInputs = { diff --git a/pkgs/development/tools/analysis/frama-c/default.nix b/pkgs/development/tools/analysis/frama-c/default.nix index 394bd6558fbf..a10d015e9ff1 100644 --- a/pkgs/development/tools/analysis/frama-c/default.nix +++ b/pkgs/development/tools/analysis/frama-c/default.nix @@ -11,7 +11,7 @@ let biniou camlzip easy-format - menhir + menhirLib mlgmpidl num ocamlgraph @@ -37,7 +37,7 @@ stdenv.mkDerivation rec { nativeBuildInputs = [ autoconf wrapGAppsHook ]; buildInputs = with ocamlPackages; [ - ncurses ocaml findlib ltl2ba ocamlgraph yojson menhir camlzip + ncurses ocaml findlib ltl2ba ocamlgraph yojson menhirLib camlzip lablgtk coq graphviz zarith apron why3 mlgmpidl doxygen gdk-pixbuf ]; diff --git a/pkgs/development/tools/analysis/tflint/default.nix b/pkgs/development/tools/analysis/tflint/default.nix index 7a9206af0938..137b3c2c1a1a 100644 --- a/pkgs/development/tools/analysis/tflint/default.nix +++ b/pkgs/development/tools/analysis/tflint/default.nix @@ -2,16 +2,16 @@ buildGoModule rec { pname = "tflint"; - version = "0.28.1"; + version = "0.29.0"; src = fetchFromGitHub { owner = "terraform-linters"; repo = pname; rev = "v${version}"; - sha256 = "0bx6y1y6cfqz77m23w4ab1j2i7s83kv301razv9rkkyxpnpb16hi"; + sha256 = "1ciwr2bwbxnw8366wvgl5ga3y2qj46i0h3yp3av1x9n2r8rddrlh"; }; - vendorSha256 = "0rfbjhi78qcaghn9xw658xcxl2x4ln4gnnyi9hsf3wz4cbybird7"; + vendorSha256 = "0k8v49sr0jmljfl4fa5pnvzd5k3pg865h201114l6cs257sdkczk"; doCheck = false; @@ -20,7 +20,7 @@ buildGoModule rec { meta = with lib; { description = "Terraform linter focused on possible errors, best practices, and so on"; homepage = "https://github.com/terraform-linters/tflint"; - changelog = "https://github.com/terraform-linters/tflint/blob/v${version}/CHANGELOG.md"; + changelog = "https://github.com/terraform-linters/tflint/raw/v${version}/CHANGELOG.md"; license = licenses.mpl20; maintainers = [ maintainers.marsam ]; }; diff --git a/pkgs/development/tools/earthly/default.nix b/pkgs/development/tools/earthly/default.nix index 588716b9f30c..f73de077acbb 100644 --- a/pkgs/development/tools/earthly/default.nix +++ b/pkgs/development/tools/earthly/default.nix @@ -13,6 +13,19 @@ buildGoModule rec { vendorSha256 = "sha256-q3dDV0eop2NxXHFrlppWsZrO2Hz1q5xhs1DnB6PvG9g="; + buildFlagsArray = '' + -ldflags= + -s -w + -X main.Version=v${version} + -X main.DefaultBuildkitdImage=earthly/buildkitd:v${version} + -extldflags -static + ''; + + BUILDTAGS = "dfrunmount dfrunsecurity dfsecrets dfssh dfrunnetwork"; + preBuild = '' + makeFlagsArray+=(BUILD_TAGS="${BUILDTAGS}") + ''; + postInstall = '' mv $out/bin/debugger $out/bin/earthly-debugger mv $out/bin/shellrepeater $out/bin/earthly-shellrepeater diff --git a/pkgs/development/tools/esbuild/default.nix b/pkgs/development/tools/esbuild/default.nix index f0f8c156dbdf..2aa67483337c 100644 --- a/pkgs/development/tools/esbuild/default.nix +++ b/pkgs/development/tools/esbuild/default.nix @@ -2,13 +2,13 @@ buildGoModule rec { pname = "esbuild"; - version = "0.12.5"; + version = "0.12.6"; src = fetchFromGitHub { owner = "evanw"; repo = "esbuild"; rev = "v${version}"; - sha256 = "sha256-9EVlmdolr189vdnuA01UUrcrmZ9W0FtvCcJuuSX1nLs="; + sha256 = "sha256-ncRHsYxG4XVT7TUJv+VgXMsLmQ52+/dXUlgMy8QnzNc="; }; vendorSha256 = "sha256-2ABWPqhK2Cf4ipQH7XvRrd+ZscJhYPc3SV2cGT0apdg="; diff --git a/pkgs/development/tools/f2c/default.nix b/pkgs/development/tools/f2c/default.nix new file mode 100644 index 000000000000..f235296308fc --- /dev/null +++ b/pkgs/development/tools/f2c/default.nix @@ -0,0 +1,32 @@ +{ lib, stdenv, fetchurl }: + +stdenv.mkDerivation { + pname = "f2c"; + version = "20200916"; + + src = fetchurl { + url = "https://www.netlib.org/f2c/src.tgz"; + sha256 = "0d8xfbv6dk4dz95qds7sd44b5hvara07f2g2c5g4xiwim9b7916l"; + }; + + makeFlags = [ "-f" "makefile.u" ]; + + installPhase = '' + runHook preInstall + + mkdir -p $out/bin $out/share/man/man1 + install -m755 f2c $out/bin + install -m755 xsum $out/bin + install f2c.1t $out/share/man/man1 + + runHook postInstall + ''; + + meta = with lib; { + description = "Convert Fortran 77 source code to C"; + homepage = "https://www.netlib.org/f2c/"; + license = licenses.mit; + maintainers = [ maintainers.markuskowa ]; + platforms = platforms.unix; + }; +} diff --git a/pkgs/development/tools/go-toml/default.nix b/pkgs/development/tools/go-toml/default.nix index 355f468237c4..fee8d94f754b 100644 --- a/pkgs/development/tools/go-toml/default.nix +++ b/pkgs/development/tools/go-toml/default.nix @@ -2,13 +2,13 @@ buildGoPackage rec { pname = "go-toml"; - version = "1.9.1"; + version = "1.9.2"; src = fetchFromGitHub { owner = "pelletier"; repo = pname; rev = "v${version}"; - sha256 = "sha256-O3gfQon8ktObLVED4A5sCSOw8K1NIXP3a5AsLq3Svb4="; + sha256 = "sha256-x740f6I+szhq4mEsed4bsXcC8PvzF6PKFJNJ9SKMGIE="; }; goPackagePath = "github.com/pelletier/go-toml"; diff --git a/pkgs/development/tools/lazygit/default.nix b/pkgs/development/tools/lazygit/default.nix index 7038b7c1eb03..af33938c1a6f 100644 --- a/pkgs/development/tools/lazygit/default.nix +++ b/pkgs/development/tools/lazygit/default.nix @@ -2,13 +2,13 @@ buildGoModule rec { pname = "lazygit"; - version = "0.28.1"; + version = "0.28.2"; src = fetchFromGitHub { owner = "jesseduffield"; repo = pname; rev = "v${version}"; - sha256 = "sha256-tan8ksSyMIeDL7oRAWd3Qtz/sKbhAAfY7IknfwjyvgQ="; + sha256 = "sha256-s5Ou0FhL9+2/xm7lKMG/3ya5P8idI0cgtJ28cV37pJQ="; }; vendorSha256 = null; diff --git a/pkgs/development/tools/misc/coccinelle/default.nix b/pkgs/development/tools/misc/coccinelle/default.nix index 40a22f18203b..8534f1e2d85a 100644 --- a/pkgs/development/tools/misc/coccinelle/default.nix +++ b/pkgs/development/tools/misc/coccinelle/default.nix @@ -2,36 +2,20 @@ stdenv.mkDerivation rec { pname = "coccinelle"; - version = "1.0.6"; + version = "1.1.0"; src = fetchurl { - url = "http://coccinelle.lip6.fr/distrib/${pname}-${version}.tgz"; - sha256 = "02g9hmwkvfl838zz690yra5jzrqjg6y6ffxkrfcsx790bhkfsll4"; + url = "https://coccinelle.gitlabpages.inria.fr/website/distrib/${pname}-${version}.tar.gz"; + sha256 = "0k0x4qnxzj8fymkp6y9irggcah070hj7hxq8l6ddj8ccpmjbhnsb"; }; buildInputs = with ocamlPackages; [ ocaml findlib menhir - ocaml_pcre pycaml + ocaml_pcre parmap stdcompat python ncurses pkg-config ]; - doCheck = !stdenv.isDarwin; - - # The build system builds two versions of spgen: - # 'spgen' with ocamlc -custom (bytecode specially linked) - # and 'spgen.opt' using ocamlopt. - # I'm not sure of the intentions here, but the way - # the 'spgen' binary is produced results in an - # invalid/incorrect interpreter path (/lib/ld-linux*). - # We could patch it, but without knowing why it's - # finding the wrong path it seems safer to use - # the .opt version that is built correctly. - # All that said, our fix here is simple: remove 'spgen'. - # The bin/spgen entrypoint is really a bash script - # and will use spgen.opt if 'spgen' doesn't exist. - postInstall = '' - rm $out/lib/coccinelle/spgen/spgen - ''; + doCheck = false; meta = { description = "Program to apply semantic patches to C code"; diff --git a/pkgs/development/tools/misc/strace/default.nix b/pkgs/development/tools/misc/strace/default.nix index 756f1b947ede..4da1a2cba09b 100644 --- a/pkgs/development/tools/misc/strace/default.nix +++ b/pkgs/development/tools/misc/strace/default.nix @@ -1,9 +1,5 @@ { lib, stdenv, fetchurl, perl, libunwind, buildPackages }: -# libunwind does not have the supportsHost attribute on darwin, thus -# when this package is evaluated it causes an evaluation error -assert stdenv.isLinux; - stdenv.mkDerivation rec { pname = "strace"; version = "5.12"; @@ -16,7 +12,9 @@ stdenv.mkDerivation rec { depsBuildBuild = [ buildPackages.stdenv.cc ]; nativeBuildInputs = [ perl ]; - buildInputs = [ perl.out ] ++ lib.optional libunwind.supportsHost libunwind; # support -k + # On RISC-V platforms, LLVM's libunwind implementation is unsupported by strace. + # The build will silently fall back and -k will not work on RISC-V. + buildInputs = [ perl.out libunwind ]; # support -k postPatch = "patchShebangs --host strace-graph"; diff --git a/pkgs/development/tools/ocaml/js_of_ocaml/compiler.nix b/pkgs/development/tools/ocaml/js_of_ocaml/compiler.nix index 12306d2a305a..6965d5fa0abb 100644 --- a/pkgs/development/tools/ocaml/js_of_ocaml/compiler.nix +++ b/pkgs/development/tools/ocaml/js_of_ocaml/compiler.nix @@ -1,6 +1,6 @@ { lib, fetchurl, buildDunePackage , ocaml, cmdliner, cppo, yojson, ppxlib -, menhir +, menhir, menhirLib }: buildDunePackage rec { @@ -14,7 +14,7 @@ buildDunePackage rec { }; nativeBuildInputs = [ cppo menhir ]; - buildInputs = [ cmdliner ]; + buildInputs = [ cmdliner menhirLib ]; configurePlatforms = []; propagatedBuildInputs = [ yojson ppxlib ]; diff --git a/pkgs/development/tools/ocaml/merlin/4.x.nix b/pkgs/development/tools/ocaml/merlin/4.x.nix index 77595169565f..76ef33f7947d 100644 --- a/pkgs/development/tools/ocaml/merlin/4.x.nix +++ b/pkgs/development/tools/ocaml/merlin/4.x.nix @@ -10,6 +10,8 @@ , dot-merlin-reader , jq , menhir +, menhirLib +, menhirSdk }: let @@ -66,6 +68,8 @@ buildDunePackage { checkInputs = [ jq menhir + menhirLib + menhirSdk ]; meta = with lib; { diff --git a/pkgs/development/tools/ocaml/ocamlformat/generic.nix b/pkgs/development/tools/ocaml/ocamlformat/generic.nix index eb38b60f9b15..6f3ce218713e 100644 --- a/pkgs/development/tools/ocaml/ocamlformat/generic.nix +++ b/pkgs/development/tools/ocaml/ocamlformat/generic.nix @@ -58,6 +58,8 @@ buildDunePackage { uutf fix menhir + menhirLib + menhirSdk dune-build-info ocaml-version # Changed since 0.16.0: @@ -75,6 +77,8 @@ buildDunePackage { uutf fix menhir + menhirLib + menhirSdk dune-build-info ocaml-version # Changed since 0.16.0: @@ -93,6 +97,8 @@ buildDunePackage { uutf fix menhir + menhirLib + menhirSdk (ppxlib.override { version = "0.18.0"; }) dune-build-info # lib.versionAtLeast version "0.16.0" ocaml-version # lib.versionAtLeast version "0.16.0" @@ -110,6 +116,8 @@ buildDunePackage { uutf fix menhir + menhirLib + menhirSdk ] else [ base cmdliner diff --git a/pkgs/development/tools/parsing/tree-sitter/grammar.nix b/pkgs/development/tools/parsing/tree-sitter/grammar.nix index 5ca381e6d2ff..93e1cb3804fb 100644 --- a/pkgs/development/tools/parsing/tree-sitter/grammar.nix +++ b/pkgs/development/tools/parsing/tree-sitter/grammar.nix @@ -1,5 +1,7 @@ { stdenv , tree-sitter +, libcxx +, lib }: # Build a parser grammar and put the resulting shared object in `$out/parser` @@ -27,6 +29,7 @@ stdenv.mkDerivation { "${source}/${location}" ; + NIX_CFLAGS_COMPILE = lib.optionalString stdenv.isDarwin "-I${lib.getDev libcxx}/include/c++/v1"; buildInputs = [ tree-sitter ]; dontUnpack = true; diff --git a/pkgs/games/fheroes2/default.nix b/pkgs/games/fheroes2/default.nix new file mode 100644 index 000000000000..b9802bd81b5f --- /dev/null +++ b/pkgs/games/fheroes2/default.nix @@ -0,0 +1,45 @@ +{ stdenv, lib, fetchFromGitHub +, gettext, libpng, SDL2, SDL2_image, SDL2_mixer, SDL2_ttf, zlib +}: + +stdenv.mkDerivation rec { + pname = "fheroes2"; + version = "0.9.4"; + + src = fetchFromGitHub { + owner = "ihhub"; + repo = "fheroes2"; + rev = version; + sha256 = "sha256-z+88tVsf4uyMFzNfZDKXo0cYqBCYn1ehX+A+e+aIfSg="; + }; + + buildInputs = [ gettext libpng SDL2 SDL2_image SDL2_mixer SDL2_ttf zlib ]; + + makeFlags = [ + "FHEROES2_STRICT_COMPILATION=1" + "RELEASE=1" + ]; + + enableParallelBuilding = true; + + installPhase = '' + runHook preInstall + + install -Dm755 $PWD/src/dist/fheroes2 $out/bin/fheroes2 + + runHook postInstall + ''; + + meta = with lib; { + homepage = "https://github.com/ihhub/fheroes2"; + description = "Free implementation of Heroes of Might and Magic II game engine"; + longDescription = '' + In order to play this game, an original game data is required. + Please refer to README of the project for instructions. + On linux, the data can be placed in ~/.local/share/fheroes2 folder. + ''; + license = licenses.gpl2Plus; + maintainers = [ maintainers.karolchmist ]; + platforms = platforms.linux; + }; +} diff --git a/pkgs/games/lunar-client/default.nix b/pkgs/games/lunar-client/default.nix index 8ca8c3f85529..df361c69b049 100644 --- a/pkgs/games/lunar-client/default.nix +++ b/pkgs/games/lunar-client/default.nix @@ -2,7 +2,7 @@ let name = "lunar-client"; - version = "2.6.0"; + version = "2.7.3"; desktopItem = makeDesktopItem { name = "Lunar Client"; @@ -21,7 +21,7 @@ let src = fetchurl { url = "https://launcherupdates.lunarclientcdn.com/Lunar%20Client-${version}.AppImage"; name = "lunar-client.AppImage"; - sha256 = "1pmblnnvs5jv5v7y5nnxr3liw9xfp5h6l44x7pln8kr9zg85dzma"; + sha256 = "0ihi937rrj677y9b377b4hhp9wsarbqwrdrd6k3lhzx3jyh2fynf"; }; in appimageTools.wrapType1 rec { inherit name src; diff --git a/pkgs/games/stockfish/default.nix b/pkgs/games/stockfish/default.nix index ef9c7fbe4d64..b09dc523d1ac 100644 --- a/pkgs/games/stockfish/default.nix +++ b/pkgs/games/stockfish/default.nix @@ -12,13 +12,13 @@ let if stdenv.isi686 then "x86-32" else if stdenv.isAarch64 then "armv8" else "unknown"; - version = "12"; + version = "13"; - nnueFile = "nn-82215d0fd0df.nnue"; + nnueFile = "nn-62ef826d1a6d.nnue"; nnue = fetchurl { name = nnueFile; url = "https://tests.stockfishchess.org/api/nn/${nnueFile}"; - sha256 = "1r4yqrh4di05syyhl84hqcz84djpbd605b27zhbxwg6zs07ms8c2"; + sha256 = "0qsy9rr4zgxrpgwhwbi96z01a2560am2b00q2klbj4bd39nq5vv2"; }; in @@ -28,7 +28,7 @@ stdenv.mkDerivation { src = fetchurl { url = "https://github.com/official-stockfish/Stockfish/archive/sf_${version}.tar.gz"; - sha256 = "16980aicm5i6i9252239q4f9bcxg1gnqkv6nphrmpz4drg8i3v6i"; + sha256 = "0qhxp2w543psanzhzn8jhfafx8aip57v9nsvafbwa5xynchlgl8m"; }; # This addresses a linker issue with Darwin diff --git a/pkgs/games/torus-trooper/default.nix b/pkgs/games/torus-trooper/default.nix new file mode 100644 index 000000000000..441cffbdf04d --- /dev/null +++ b/pkgs/games/torus-trooper/default.nix @@ -0,0 +1,104 @@ +{ lib +, stdenv +, fetchpatch +, fetchurl +, unzip +, gdc +, SDL +, SDL_mixer +, bulletml +}: + +let +debianPatch = patchname: hash: fetchpatch { + name = "${patchname}.patch"; + url = "https://sources.debian.org/data/main/t/torus-trooper/0.22.dfsg1-12/debian/patches/${patchname}.patch"; + sha256 = hash; +}; + +in stdenv.mkDerivation { + pname = "torus-trooper"; + version = "0.22"; + + src = fetchurl { + url = "http://abagames.sakura.ne.jp/windows/tt0_22.zip"; + sha256 = "1yhki1fdp3fi4y2iq12vca69f6k38dqjaw9z4lwcxky5kbgb7jvg"; + }; + + patches = [ + (debianPatch + "imports" + "0mifw0mj66zljpq6iqnh0rhkgs2sky8rz0p32k98vxfnsb39ibsf") + (debianPatch + "fixes" + "05f93zq2v14lymq748c9g646ckbh9mqpr5rrahb63s90x8hlcqil") + (debianPatch + "directories" + "0y5xvf26v9fk0rx6ncrxx4czckhjbi891hp3pixlmv568pg9cihd") + (debianPatch + "windowed" + "1d8ghj4shvpb0s8l16kscz4l7rz1fxmfdpddy1ikz3678pw1sc8p") + (debianPatch + "dotfile" + "17yirmnjhbd1clzhmdd2mfdhbxkyinaahd6v3yz5kzbcylvjz2r2") + (debianPatch + "window-resizing" + "1n64gbhabl6vis7s294wxlj2k8s3ypxljpdg71icwz1m9jjx59df") + (debianPatch + "save-score-444372" + "1skny6s3hjxkh8w4fq86vp51j7z40fvn80b8myl4i1zzlwag3x17") + (debianPatch + "level-select-444948" + "008248s55188plggg2kg01nimjgc7w0sqd3c22sl6lzd1fjsflv8") + (debianPatch + "avoid-segfault-when-sdl-fails" + "1yp758gi4i15gqk6wiqp815rqcmlyqx62ir1sw20hn6zb3j97bmc") + (debianPatch + "dlang_v2" + "1lxsbckhvl8a8j43pw2dyl5nlavvdbgxb5zlb2450a0vml55nswd") + (debianPatch + "lowest-level-position-602808" + "19r48wirc9zssjmv57drn2fd0f56dcgyqqaz3j49cvv6yd74qf20") + (debianPatch + "libbulletml0v5-segfault" + "0pad2daz60hswkhkdpssxaqc9p9ca0sw1nraqzr453x0zdwwq0hn") + (debianPatch + "std.math.fabs" + "18xnnqlj20bxv2h9fa8dn4rmxwi3k6y3g50kwvh8i8p3b4hgag3r") + (debianPatch + "gdc-8" + "10z702y75c48hjcnvv8m7f3ka52cj3r3jqafdbby85nb0p2lbssx") + ]; + + postPatch = '' + for f in src/abagames/tt/barrage.d src/abagames/util/sdl/sound.d src/abagames/util/sdl/texture.d; do + substituteInPlace $f \ + --replace "/usr/" "$out/" + done + ''; + + nativeBuildInputs = [ + unzip + gdc + ]; + + buildInputs = [ + SDL + SDL_mixer + bulletml + ]; + + installPhase = '' + install -Dm755 torus-trooper $out/bin/torus-trooper + mkdir -p $out/share/games/torus-trooper + cp -r barrage sounds images $out/share/games/torus-trooper/ + ''; + + meta = with lib; { + homepage = "http://www.asahi-net.or.jp/~cs8k-cyu/windows/tt_e.html"; + description = "Fast-paced abstract scrolling shooter game"; + license = licenses.bsd2; + maintainers = with maintainers; [ fgaz ]; + platforms = platforms.all; + }; +} diff --git a/pkgs/games/tumiki-fighters/default.nix b/pkgs/games/tumiki-fighters/default.nix new file mode 100644 index 000000000000..2f3cf869f8db --- /dev/null +++ b/pkgs/games/tumiki-fighters/default.nix @@ -0,0 +1,97 @@ +{ lib +, stdenv +, fetchpatch +, fetchurl +, unzip +, gdc +, SDL +, SDL_mixer +, bulletml +}: + +let +debianPatch = patchname: hash: fetchpatch { + name = "${patchname}.patch"; + url = "https://sources.debian.org/data/main/t/tumiki-fighters/0.2.dfsg1-9/debian/patches/${patchname}.patch"; + sha256 = hash; +}; + +in stdenv.mkDerivation { + pname = "tumiki-fighters"; + version = "0.21"; + + src = fetchurl { + url = "http://abagames.sakura.ne.jp/windows/tf0_21.zip"; + sha256 = "0djykfc1r8ysapklm621h89ana1c4qzc1m5nr9bqw4iccnmvwk3p"; + }; + + patches = [ + (debianPatch + "imports" + "1l3kc67b43gdi139cpz5cka1nkn0pjp9mrgrrxlmr0liwx2aryhn") + (debianPatch + "fixes" + "1iy1a5vii6yz9zdlk2bcj6gkj4y25hn9y2fczz15jpqd9r2zm603") + (debianPatch + "directories" + "0kmv0s7jgr693fzrkjsmz4dnicc4w7njanxm2la3cf4vmgdyipmm") + (debianPatch + "windowed" + "1wp74l0bi8wq85pcxnmkwrlfmlf09im95n27pxgz082lhwf2ksy1") + (debianPatch + "dotfile" + "0d8x519bclh41j992qn6ijzfcrgacb79px6zjd1awypkwyc0j2p6") + (debianPatch + "makefile" + "11xf2b31kjyps53jfryv82dv0g6q0smc9xgp8imrbr93mzi51vf0") + (debianPatch + "window-resizing" + "1dm79d0yisa8zs5fr89y3wq2kzd3khcaxs0la8lhncvkqbd4smx8") + (debianPatch + "dlang_v2" + "1isnvbl3bjnpyphji8k3fl0yd1z4869h0lai143vpwgj6518lpg4") + (debianPatch + "gdc-8" + "1md0zwmv50jnak5g9d93bglv9v4z41blinjii6kv3vmgjnajapzj") + ]; + + postPatch = '' + for f in \ + src/abagames/tf/barragemanager.d \ + src/abagames/util/sdl/sound.d \ + src/abagames/util/sdl/texture.d \ + src/abagames/tf/enemyspec.d \ + src/abagames/tf/field.d \ + src/abagames/tf/stagemanager.d \ + src/abagames/tf/tumikiset.d + do + substituteInPlace $f \ + --replace "/usr/" "$out/" + done + ''; + + nativeBuildInputs = [ + unzip + gdc + ]; + + buildInputs = [ + SDL + SDL_mixer + bulletml + ]; + + installPhase = '' + install -Dm755 tumiki-fighters $out/bin/tumiki-fighters + mkdir -p $out/share/games/tumiki-fighters + cp -r barrage sounds enemy field stage tumiki $out/share/games/tumiki-fighters/ + ''; + + meta = with lib; { + homepage = "http://www.asahi-net.or.jp/~cs8k-cyu/windows/tf_e.html"; + description = "Sticky 2D shooter"; + license = licenses.bsd2; + maintainers = with maintainers; [ fgaz ]; + platforms = platforms.all; + }; +} diff --git a/pkgs/games/unvanquished/default.nix b/pkgs/games/unvanquished/default.nix new file mode 100644 index 000000000000..35db4625db90 --- /dev/null +++ b/pkgs/games/unvanquished/default.nix @@ -0,0 +1,191 @@ +{ lib, stdenv, fetchzip, fetchurl, fetchFromGitHub, buildFHSUserEnv +, runCommandNoCC, makeDesktopItem, copyDesktopItems, gcc, cmake, gmp +, libGL, zlib, ncurses, geoip, lua5, nettle, curl, SDL2, freetype, glew +, openal, libopus, opusfile, libogg, libvorbis, libjpeg, libwebp, libpng +, cacert, aria2 # to download assets +}: + +let + version = "0.52.0"; + binary-deps-version = "5"; + + src = fetchFromGitHub { + owner = "Unvanquished"; + repo = "Unvanquished"; + rev = "v${version}"; + fetchSubmodules = true; + sha256 = "1acda1559q6zwmhg3x00nai88hy83i5hcfli2bqfab7slr95lm27"; + }; + + unvanquished-binary-deps = stdenv.mkDerivation rec { + # DISCLAIMER: this is selected binary crap from the NaCl SDK + name = "unvanquished-binary-deps"; + version = binary-deps-version; + src = fetchzip { + url = "https://dl.unvanquished.net/deps/linux64-${version}.tar.bz2"; + sha256 = "08bpyavbh5lmyprvqqi59gnm8s1fjmlk9f1785wlv7f52d9f9z1p"; + }; + dontPatchELF = true; + preFixup = '' + # We are not using the autoPatchelfHook, because it would make + # nacl_bootstrap_helper unable to load nacl_loader: + # "nacl_loader: ELF file has unreasonable e_phnum=13" + interpreter="$(< "$NIX_CC/nix-support/dynamic-linker")" + for f in pnacl/bin/*; do + if [ -f "$f" && -x "$f" ]; then + echo "Patching $f" + patchelf --set-interpreter "$interpreter" "$f" + fi + done + ''; + preCheck = "pnacl/bin/clang -v"; # check it links correctly + installPhase = '' + runHook preInstall + + mkdir -p $out + cp -R ./* $out/ + + runHook postInstall + ''; + }; + + libstdcpp-preload-for-unvanquished-nacl = stdenv.mkDerivation { + name = "libstdcpp-preload-for-unvanquished-nacl"; + buildCommand = '' + mkdir $out/etc -p + echo ${gcc.cc.lib}/lib/libstdc++.so.6 > $out/etc/ld-nix.so.preload + ''; + propagatedBuildInputs = [ gcc.cc.lib ]; + }; + + fhsEnv = buildFHSUserEnv { + name = "unvanquished-fhs-wrapper"; + targetPkgs = pkgs: [ libstdcpp-preload-for-unvanquished-nacl ]; + }; + + wrapBinary = binary: wrappername: '' + cat > $out/lib/${binary}-wrapper <<-EOT + #!/bin/sh + exec $out/lib/${binary} -pakpath ${unvanquished-assets} "\$@" + EOT + chmod +x $out/lib/${binary}-wrapper + + cat > $out/bin/${wrappername} <<-EOT + #!/bin/sh + exec ${fhsEnv}/bin/unvanquished-fhs-wrapper $out/lib/${binary}-wrapper "\$@" + EOT + chmod +x $out/bin/${wrappername} + ''; + + + unvanquished-assets = stdenv.mkDerivation { + pname = "unvanquished-assets"; + inherit version src; + + outputHash = "sha256:1fy85cjnjk9rrqkhgx5701inff2yv14hnxglzx3209c553gn31n7"; + outputHashMode = "recursive"; + nativeBuildInputs = [ aria2 cacert ]; + buildCommand = "bash $src/download-paks $out"; + }; + +# this really is the daemon game engine, the game itself is in the assets +in stdenv.mkDerivation rec { + pname = "unvanquished"; + inherit version src binary-deps-version; + + preConfigure = '' + mkdir daemon/external_deps/linux64-${binary-deps-version}/ + cp -r ${unvanquished-binary-deps}/* daemon/external_deps/linux64-${binary-deps-version}/ + chmod +w -R daemon/external_deps/linux64-${binary-deps-version}/ + ''; + + nativeBuildInputs = [ cmake unvanquished-binary-deps copyDesktopItems ]; + buildInputs = [ + gmp + libGL + zlib + ncurses + geoip + lua5 + nettle + curl + SDL2 + freetype + glew + openal + libopus + opusfile + libogg + libvorbis + libjpeg + libwebp + libpng + ]; + + cmakeFlags = [ + "-DBUILD_CGAME=NO" + "-DBUILD_SGAME=NO" + "-DUSE_HARDENING=TRUE" + "-DUSE_LTO=TRUE" + ]; + + desktopItems = [ + (makeDesktopItem { + name = "net.unvanquished.Unvanquished.desktop"; + desktopName = "Unvanquished"; + comment = "FPS/RTS Game - Aliens vs. Humans"; + icon = "unvanquished"; + terminal = false; + exec = "unvanquished"; + categories = "Game;ActionGame;StrategyGame;"; + # May or may not work + prefersNonDefaultGPU = true; + fileValidation = false; # it doesn't like PrefersNonDefaultGPU + # yes, PrefersNonDefaultGPU is standard: + # https://specifications.freedesktop.org/desktop-entry-spec/desktop-entry-spec-latest.html + }) + (makeDesktopItem { + name = "net.unvanquished.UnvanquishedProtocolHandler.desktop"; + desktopName = "Unvanquished (protocol handler)"; + noDisplay = true; + terminal = false; + exec = "unvanquished -connect %u"; + mimeType = "x-scheme-handler/unv"; + # May or may not work + prefersNonDefaultGPU = true; + fileValidation = false; # it doesn't like PrefersNonDefaultGPU + }) + ]; + + installPhase = '' + runHook preInstall + + for f in daemon daemon-tty daemonded nacl_loader nacl_helper_bootstrap; do + install -Dm0755 -t $out/lib/ $f + done + install -Dm0644 -t $out/lib/ irt_core-x86_64.nexe + + mkdir $out/bin/ + ${wrapBinary "daemon" "unvanquished"} + ${wrapBinary "daemon-tty" "unvanquished-tty"} + ${wrapBinary "daemonded" "unvanquished-server"} + + for d in ${src}/dist/icons/*; do + install -Dm0644 -t $out/share/icons/hicolor/$(basename $d)/apps/ $d/unvanquished.png + done + + runHook postInstall + ''; + meta = { + platforms = [ "x86_64-linux" ]; + homepage = "https://unvanquished.net/"; + downloadPage = "https://unvanquished.net/download/"; + description = "A fast paced, first person strategy game"; + maintainers = with lib.maintainers; [ afontain ]; + # don't replace the following lib.licenses.zlib with just "zlib", + # or you would end up with the package instead + license = with lib.licenses; [ + mit gpl3Only lib.licenses.zlib cc-by-sa-25 + ]; + }; +} diff --git a/pkgs/misc/screensavers/betterlockscreen/default.nix b/pkgs/misc/screensavers/betterlockscreen/default.nix index 127344193d84..facac2717c4c 100644 --- a/pkgs/misc/screensavers/betterlockscreen/default.nix +++ b/pkgs/misc/screensavers/betterlockscreen/default.nix @@ -5,13 +5,13 @@ stdenv.mkDerivation rec { pname = "betterlockscreen"; - version = "3.1.1"; + version = "3.2.0"; src = fetchFromGitHub { owner = "pavanjadhaw"; repo = "betterlockscreen"; rev = version; - sha256 = "sha256-TA4YSd/elFuLU1ZMu+dqIOt6hK9pnzgoJudaMpIwh+U="; + sha256 = "sha256-UOMCTHtw1C+MiJL6AQ+8gqmmbqrs1QTzEi1Ar03PyMs="; }; nativeBuildInputs = [ makeWrapper ]; diff --git a/pkgs/misc/vim-plugins/generated.nix b/pkgs/misc/vim-plugins/generated.nix index 13b078f5f1e4..842b2600bd69 100644 --- a/pkgs/misc/vim-plugins/generated.nix +++ b/pkgs/misc/vim-plugins/generated.nix @@ -69,8 +69,8 @@ final: prev: src = fetchFromGitHub { owner = "dense-analysis"; repo = "ale"; - rev = "a02a4f2811f810877f3c3859cca963f9578ff94a"; - sha256 = "0c96zhz8ia1yfgv58jrib49kp250kilv2awr2jgnriqznkl9l4h9"; + rev = "1b08791228f5aca4545a3fba6699b29a003028fe"; + sha256 = "07fmvg4hcri98zxnyjab2inzaapqc2w08rzdkspcgrhibqvp53jk"; }; meta.homepage = "https://github.com/dense-analysis/ale/"; }; @@ -89,24 +89,24 @@ final: prev: aniseed = buildVimPluginFrom2Nix { pname = "aniseed"; - version = "2021-05-15"; + version = "2021-05-31"; src = fetchFromGitHub { owner = "Olical"; repo = "aniseed"; - rev = "d1c07000f95825579f00e24077e65387fc1db0d6"; - sha256 = "1n1vs0n596mg82kmhmscfy983di6h86mhangs6rk3zdyhzyjax5b"; + rev = "4ca3d418eebc0da452b7defc18970c83f7de5070"; + sha256 = "0ax3hfwppbkm7haxvsllac6r4zk2ys9rrj7sj4p3ayl1w8v3n8nq"; }; meta.homepage = "https://github.com/Olical/aniseed/"; }; ansible-vim = buildVimPluginFrom2Nix { pname = "ansible-vim"; - version = "2021-05-24"; + version = "2021-06-01"; src = fetchFromGitHub { owner = "pearofducks"; repo = "ansible-vim"; - rev = "f351f0d36e1c8990d8bb1eb2f1d8c25e76ff99bb"; - sha256 = "1hsyk5zc0nmh0hv0c803giimgmx1nahs1zm4gw61bkq2dkjfb4dn"; + rev = "804099202b72ffd4bf4ea4ce24d8d7bac8b9ae2d"; + sha256 = "0p93g0zi8j6bf5zh0ng9vdl9f76dan524g22jpb8c0xmm6ywns5l"; }; meta.homepage = "https://github.com/pearofducks/ansible-vim/"; }; @@ -185,12 +185,12 @@ final: prev: aurora = buildVimPluginFrom2Nix { pname = "aurora"; - version = "2021-05-10"; + version = "2021-06-03"; src = fetchFromGitHub { owner = "ray-x"; repo = "aurora"; - rev = "bf185b9c5aaaad7cfd20f29f92d3b77164f8f1e7"; - sha256 = "17ir0daw3rsfgprgvrskip2r19g15z05spdk14dz105nrgv4hh4y"; + rev = "8d5601629f123e9553688a6705a1490ee8be9a1c"; + sha256 = "0i2nyk46yvr59hxwc99iaa0zdy0xcnaa1z1q93xf85i2pdyjg99b"; }; meta.homepage = "https://github.com/ray-x/aurora/"; }; @@ -221,12 +221,12 @@ final: prev: auto-session = buildVimPluginFrom2Nix { pname = "auto-session"; - version = "2021-05-26"; + version = "2021-06-01"; src = fetchFromGitHub { owner = "rmagatti"; repo = "auto-session"; - rev = "c051b0d86395c3c4c9db5ddc1b116d43b5dce6c6"; - sha256 = "1006rnpprqh3xsmlas07ay4z743g2zd7z7pqwa4n1bb97y9k89ly"; + rev = "80ddcf26eca11cf4d48a52ffec094fe5a4711f32"; + sha256 = "0kh6a5hm0ppsbfpp7yhr2k4v36mj203q59wy15sgajx08ww0jj3m"; }; meta.homepage = "https://github.com/rmagatti/auto-session/"; }; @@ -269,12 +269,12 @@ final: prev: barbar-nvim = buildVimPluginFrom2Nix { pname = "barbar-nvim"; - version = "2021-05-23"; + version = "2021-06-03"; src = fetchFromGitHub { owner = "romgrk"; repo = "barbar.nvim"; - rev = "fc90a9bceba1ccacf8a5331bb7c508baac7d5110"; - sha256 = "0lwky1zbv4a4ng0bzbpz5v3b7lnk6xzj4sfzm6x5qyhagpw4812v"; + rev = "23b6f64c9523522dd185482c856de492476a760c"; + sha256 = "1ijm4w4nqa037vjpjgjizhzrnpj10hwjc93lhzq29qs3cx85df1q"; }; meta.homepage = "https://github.com/romgrk/barbar.nvim/"; }; @@ -413,12 +413,12 @@ final: prev: chadtree = buildVimPluginFrom2Nix { pname = "chadtree"; - version = "2021-05-27"; + version = "2021-06-05"; src = fetchFromGitHub { owner = "ms-jpq"; repo = "chadtree"; - rev = "77f56c4938b512b20c2da76a54a362dffc5bc7d4"; - sha256 = "1hyadig7f0mjj3vwz6pxyzwa155knbqd9dcpk64p215wagc08nfm"; + rev = "a33387ffed163f922d93f142a908adfda521a224"; + sha256 = "1gs06vs1bgjr76hg1pdkxsd81c12fnaqg8r1lfvwcvph1nzqj7d9"; }; meta.homepage = "https://github.com/ms-jpq/chadtree/"; }; @@ -449,12 +449,12 @@ final: prev: ci_dark = buildVimPluginFrom2Nix { pname = "ci_dark"; - version = "2021-04-24"; + version = "2021-06-04"; src = fetchFromGitHub { owner = "yunlingz"; repo = "ci_dark"; - rev = "4c314000b5a21a1b9f52442a0c80e4b3fd4f0a1f"; - sha256 = "1wxsgaixdmb8v87kavvyyiyqlkn7ck5g39hkq4j19747jnb6lvqf"; + rev = "d50cd0c60ecdaffb779d2acb7ce2bb94df1ed867"; + sha256 = "0pqpvqas1z173c2ngka787d9gp49ai3x85haingkxvir3bf0nbqm"; }; meta.homepage = "https://github.com/yunlingz/ci_dark/"; }; @@ -509,12 +509,12 @@ final: prev: coc-fzf = buildVimPluginFrom2Nix { pname = "coc-fzf"; - version = "2021-04-24"; + version = "2021-05-29"; src = fetchFromGitHub { owner = "antoinemadec"; repo = "coc-fzf"; - rev = "70f0691e14c8e55290e554591c0a2661dea530fa"; - sha256 = "1m3kwgng7xi8xycc0dcx0wr9i7q0anx9lpax0r4p2a26vaqam539"; + rev = "1be2273dc37c07b98b7a1b2b67fd57c80feb85a9"; + sha256 = "06w052x13idb8wfvyasg36hakffxnzfs7paj3wk83qa2m1kiz1n4"; }; meta.homepage = "https://github.com/antoinemadec/coc-fzf/"; }; @@ -557,12 +557,12 @@ final: prev: coc-nvim = buildVimPluginFrom2Nix { pname = "coc-nvim"; - version = "2021-05-24"; + version = "2021-06-04"; src = fetchFromGitHub { owner = "neoclide"; repo = "coc.nvim"; - rev = "1a74bf3c57fec8442f837b3baad0d6fb75d1b97a"; - sha256 = "105jcl74k006dsslplp40yizfdjrj3p7qr23c53dgs2wlbzqc3kj"; + rev = "06d950e547e8fa1a775399ae5eeb70603084b109"; + sha256 = "1fj8v8zm0w04fyxf12ck4lc3gwq6bxh5shmwc24j0sar3ki0i4rz"; }; meta.homepage = "https://github.com/neoclide/coc.nvim/"; }; @@ -652,6 +652,18 @@ final: prev: meta.homepage = "https://github.com/tami5/compe-conjure/"; }; + compe-latex-symbols = buildVimPluginFrom2Nix { + pname = "compe-latex-symbols"; + version = "2021-05-14"; + src = fetchFromGitHub { + owner = "GoldsteinE"; + repo = "compe-latex-symbols"; + rev = "70f58e53e142e3c59fe0f673dd54ce690ae57367"; + sha256 = "0p4xss3zyp6002hsa6dx989zhp672mc30b57w5cjhcgbknw0iy1l"; + }; + meta.homepage = "https://github.com/GoldsteinE/compe-latex-symbols/"; + }; + compe-tabnine = buildVimPluginFrom2Nix { pname = "compe-tabnine"; version = "2021-05-09"; @@ -664,6 +676,30 @@ final: prev: meta.homepage = "https://github.com/tzachar/compe-tabnine/"; }; + compe-tmux = buildVimPluginFrom2Nix { + pname = "compe-tmux"; + version = "2021-05-31"; + src = fetchFromGitHub { + owner = "andersevenrud"; + repo = "compe-tmux"; + rev = "b199db008d07caf7f1d488ac3f171910416528a4"; + sha256 = "1qiir95bz046ppp6pp8k6m00jrjcy2yp098s72lwfnsls6pqsgpf"; + }; + meta.homepage = "https://github.com/andersevenrud/compe-tmux/"; + }; + + compe-zsh = buildVimPluginFrom2Nix { + pname = "compe-zsh"; + version = "2021-04-03"; + src = fetchFromGitHub { + owner = "tamago324"; + repo = "compe-zsh"; + rev = "1a46a0ee661242f6a015b2abead34b606bb97171"; + sha256 = "0m8fmsx4bwmgqgjpwpldckp68hpx6qfschwdg275xsxkzw8pdnbk"; + }; + meta.homepage = "https://github.com/tamago324/compe-zsh/"; + }; + completion-buffers = buildVimPluginFrom2Nix { pname = "completion-buffers"; version = "2021-01-17"; @@ -678,12 +714,12 @@ final: prev: completion-nvim = buildVimPluginFrom2Nix { pname = "completion-nvim"; - version = "2021-04-08"; + version = "2021-06-01"; src = fetchFromGitHub { owner = "nvim-lua"; repo = "completion-nvim"; - rev = "8bca7aca91c947031a8f14b038459e35e1755d90"; - sha256 = "02zqc75p9ggrz6fyiwvzpnzipfd1s5xfr7fli2yypb4kp72mrbaf"; + rev = "c8db953a8e9f4bc8183e31831297cf84d6f521b8"; + sha256 = "0p35msrh7g100ayl0g8285q43v20n6hlv1grdb0rmw8sil0j881a"; }; meta.homepage = "https://github.com/nvim-lua/completion-nvim/"; }; @@ -738,24 +774,24 @@ final: prev: conjure = buildVimPluginFrom2Nix { pname = "conjure"; - version = "2021-05-15"; + version = "2021-05-31"; src = fetchFromGitHub { owner = "Olical"; repo = "conjure"; - rev = "5d3b1afe96d11f059016d0b556f2797b54af916e"; - sha256 = "0f4ms7c3bffak9dpx0c5wgq2asbg7xavr70cwsmxf0fifpacahhs"; + rev = "31820e386ce7a32488ad6b19033c17a8f05c36bf"; + sha256 = "1p35blgnd99kggwyiag6drx3v6zqx50ypxnfvvij102ws50144fk"; }; meta.homepage = "https://github.com/Olical/conjure/"; }; context_filetype-vim = buildVimPluginFrom2Nix { pname = "context_filetype-vim"; - version = "2021-05-13"; + version = "2021-06-05"; src = fetchFromGitHub { owner = "Shougo"; repo = "context_filetype.vim"; - rev = "7f8c2f1340d450951462778b412e3b18038b4e82"; - sha256 = "1zb4d5lk1gygyjqlkkjv46d0cgd2mddhgj7srlh0rcnlw3myswnr"; + rev = "eca5b28dca1bace3b5694eb20b3ab244f65180e0"; + sha256 = "0n0av5x6js5ld4xnlq5nh18cdwhvrljdsx17gq2sf54q342hlwp0"; }; meta.homepage = "https://github.com/Shougo/context_filetype.vim/"; }; @@ -774,12 +810,12 @@ final: prev: Coqtail = buildVimPluginFrom2Nix { pname = "Coqtail"; - version = "2021-05-11"; + version = "2021-06-01"; src = fetchFromGitHub { owner = "whonore"; repo = "Coqtail"; - rev = "2cababf4c1b6cc2e460bbbd63e69ed5d9fc2ee34"; - sha256 = "086gqc76ki8jwhhk4ihawjciwjsrq9k13bgwlnjhsp2rhm0vslb7"; + rev = "5f92ee08b9c0018df244de47dc6e2ed4ba232a64"; + sha256 = "16xfkblsn149v9rgqjcimaw380xv6l8gimfaj368gh9h2icaz9qc"; }; meta.homepage = "https://github.com/whonore/Coqtail/"; }; @@ -930,12 +966,12 @@ final: prev: defx-nvim = buildVimPluginFrom2Nix { pname = "defx-nvim"; - version = "2021-05-05"; + version = "2021-06-05"; src = fetchFromGitHub { owner = "Shougo"; repo = "defx.nvim"; - rev = "e1842ae0020ef53c7ed8f96ab1c51378c3323476"; - sha256 = "1r01lfdk07cybhf957zzkpl6qxiwfladk72qfc525ah2bqcrhik5"; + rev = "27890150286f62d9c2fcb624f6f3bd1fd45c7f3c"; + sha256 = "0fvwdjqiqwhaxwkrnzfai0ay4sksr4ma4akhzqnfqd0blbhc4x2i"; }; meta.homepage = "https://github.com/Shougo/defx.nvim/"; }; @@ -978,24 +1014,24 @@ final: prev: denite-nvim = buildVimPluginFrom2Nix { pname = "denite-nvim"; - version = "2021-05-17"; + version = "2021-06-05"; src = fetchFromGitHub { owner = "Shougo"; repo = "denite.nvim"; - rev = "fb8174a07c3a19091bfdbfc9439a15466d1649fa"; - sha256 = "041c8hhq76ih0s730zyfx16svfbzqfqyy6pl686aqikixldcz41l"; + rev = "70ca378f399be626020e2994f9604eae35c232a6"; + sha256 = "0njjwa2ixqm792chvkq91fb7dadaf05kws727w1q9r5sp8k000sr"; }; meta.homepage = "https://github.com/Shougo/denite.nvim/"; }; deol-nvim = buildVimPluginFrom2Nix { pname = "deol-nvim"; - version = "2021-05-09"; + version = "2021-06-05"; src = fetchFromGitHub { owner = "Shougo"; repo = "deol.nvim"; - rev = "ca02aa3b59fd3a6674ff6ce471267d1f716a2995"; - sha256 = "15r7wvcchybjp96jw9klr93sdz89qnrw033942kd0q2q19fkbxdj"; + rev = "5d4ca0cab361962a58db6f4a3ad06b00348b743d"; + sha256 = "04ja8ps0vmvg5aggr6lr4qb4pv46hi86x8zw8mwrzav04z8fhxcw"; }; meta.homepage = "https://github.com/Shougo/deol.nvim/"; }; @@ -1220,12 +1256,12 @@ final: prev: deoplete-nvim = buildVimPluginFrom2Nix { pname = "deoplete-nvim"; - version = "2021-05-24"; + version = "2021-06-05"; src = fetchFromGitHub { owner = "Shougo"; repo = "deoplete.nvim"; - rev = "35e27c325ecf0afa28ca42bbda4793eb7ca5f383"; - sha256 = "0an2282ykdsb5v25dhd9r2f2s13pcma0i219nvfaf0qdprip57id"; + rev = "e9bd32d18430ee2c95b154d90533affc3ca6f62b"; + sha256 = "0g5ssg6363552fx7y74hl5wbmpmdz6z7y98jwa5y3dkq3xqh6ykn"; }; meta.homepage = "https://github.com/Shougo/deoplete.nvim/"; }; @@ -1268,12 +1304,12 @@ final: prev: diffview-nvim = buildVimPluginFrom2Nix { pname = "diffview-nvim"; - version = "2021-05-21"; + version = "2021-06-03"; src = fetchFromGitHub { owner = "sindrets"; repo = "diffview.nvim"; - rev = "991d633b162dd3dd03f50d1fde19366ab5943cb2"; - sha256 = "1n24ahzzbf66r6pjklca7ivydaxr8q03w4ib32bh8vmbk6b4x85g"; + rev = "e174aa0a1e8a65fd9699f190c67fd197c2afa09f"; + sha256 = "0skzir27vzg5h8w0c7hj2p2i0540m768i1vbgqwpgz7y7wkgpbcm"; }; meta.homepage = "https://github.com/sindrets/diffview.nvim/"; }; @@ -1304,24 +1340,24 @@ final: prev: dracula-vim = buildVimPluginFrom2Nix { pname = "dracula-vim"; - version = "2021-05-19"; + version = "2021-06-04"; src = fetchFromGitHub { owner = "dracula"; repo = "vim"; - rev = "c0337ceef66f87640ad02fa4e190a370a6ea6a7b"; - sha256 = "1007nq0av5lw1jix0dpw6ryvym7kyzq8088fa7baavdxbs0wyr0s"; + rev = "869f70a7603b77cdb2f63983dd286f3f61b7a966"; + sha256 = "031c000nr2raw0v6bdnisczjz20y5iw0yapj8wih0nc703dirhih"; }; meta.homepage = "https://github.com/dracula/vim/"; }; echodoc-vim = buildVimPluginFrom2Nix { pname = "echodoc-vim"; - version = "2021-05-11"; + version = "2021-06-05"; src = fetchFromGitHub { owner = "Shougo"; repo = "echodoc.vim"; - rev = "7dc1d45d7ffd275c06bf207795cf071ae6c9f1a4"; - sha256 = "1hxywy423ikfkmcyqm467j741mn0ar4c5k7li0liniygjwpiaxjm"; + rev = "d02232ff17517f9bc048f0d4a668ef00d57b5f6c"; + sha256 = "17m9nph5xk1dcd5l89asp2fw6jd97hsmr78ni67id23v9mjyqslk"; }; meta.homepage = "https://github.com/Shougo/echodoc.vim/"; }; @@ -1571,12 +1607,12 @@ final: prev: friendly-snippets = buildVimPluginFrom2Nix { pname = "friendly-snippets"; - version = "2021-05-22"; + version = "2021-05-28"; src = fetchFromGitHub { owner = "rafamadriz"; repo = "friendly-snippets"; - rev = "01a175fb02be0097fbaea20af354e37b0586a5a3"; - sha256 = "03pxfiz2y5n8v1pych1g98k0kziajhwacx2agrr9c4wwf4rv467j"; + rev = "496ccb632e1dd66ab4561304faa431125c0bf0de"; + sha256 = "1rbgji9x0bf8l7kqph77nfnpipy4d1863ml3wx75404q43nld7w8"; }; meta.homepage = "https://github.com/rafamadriz/friendly-snippets/"; }; @@ -1763,12 +1799,12 @@ final: prev: gitsigns-nvim = buildVimPluginFrom2Nix { pname = "gitsigns-nvim"; - version = "2021-05-27"; + version = "2021-06-02"; src = fetchFromGitHub { owner = "lewis6991"; repo = "gitsigns.nvim"; - rev = "f4a4fbe04dd829317b7918367b061b54408049d5"; - sha256 = "15ma584q9s60nbi8nxg3cj10m3a1ly00y2xzxdnpy9ik4n04s911"; + rev = "4e3e2626af9573758a4e8c0d463ff3b733d40644"; + sha256 = "01cr2a6xqzazyapkdlqjbxswsm9y7hnwl3bs7wcp23dwlpdvxc89"; }; meta.homepage = "https://github.com/lewis6991/gitsigns.nvim/"; }; @@ -1787,12 +1823,12 @@ final: prev: glow-nvim = buildVimPluginFrom2Nix { pname = "glow-nvim"; - version = "2021-05-26"; + version = "2021-05-29"; src = fetchFromGitHub { owner = "npxbr"; repo = "glow.nvim"; - rev = "69bc59ab0bb1214234bbf06dbeb6233b21ff2fc5"; - sha256 = "0jqdalmaisj3gjlqa6kfh83va7a1gd7akggmr66vnccvfxfcdc54"; + rev = "d7f5eb0af3f2a51c2f493fec066015dc29184a4e"; + sha256 = "1180g55d6adj9jzx9dxld3345hw80vjjj3r8n7snba1m3c8jd5xm"; }; meta.homepage = "https://github.com/npxbr/glow.nvim/"; }; @@ -1871,12 +1907,12 @@ final: prev: gruvbox-nvim = buildVimPluginFrom2Nix { pname = "gruvbox-nvim"; - version = "2021-05-12"; + version = "2021-06-05"; src = fetchFromGitHub { owner = "npxbr"; repo = "gruvbox.nvim"; - rev = "86bc293204a6c13f1650378c39bf248bd5a5a22f"; - sha256 = "0if2ad8s9r3pwdsqlkl6y82r0a0z86c6vlkdp28m18sxv848psx5"; + rev = "ad076d46c76b884d7b555067d3434b3666c3b80b"; + sha256 = "0m4ks6gxh3clg4vg1rxyvhjjkmmwipb9s38zwbaidfqwifldjriy"; }; meta.homepage = "https://github.com/npxbr/gruvbox.nvim/"; }; @@ -1979,12 +2015,12 @@ final: prev: hop-nvim = buildVimPluginFrom2Nix { pname = "hop-nvim"; - version = "2021-05-08"; + version = "2021-06-02"; src = fetchFromGitHub { owner = "phaazon"; repo = "hop.nvim"; - rev = "3655626906859f572b8c4ce9dd9d69e2e1e43b81"; - sha256 = "1qjg77zkgfvw9y0g9ab0fg52lx223h60r4jmrqnv89i9b0bfmz6f"; + rev = "56727073356756a86c4b1be95d7c565e4ab1f11e"; + sha256 = "00ch6mhcxvqk7kshmi6rfm0n1wna47v5kcxjxwhndm79liq3h91b"; }; meta.homepage = "https://github.com/phaazon/hop.nvim/"; }; @@ -2352,36 +2388,36 @@ final: prev: LeaderF = buildVimPluginFrom2Nix { pname = "LeaderF"; - version = "2021-05-27"; + version = "2021-06-03"; src = fetchFromGitHub { owner = "Yggdroot"; repo = "LeaderF"; - rev = "78bc54d4244854c399447bf9ebd0c8af5f455dc1"; - sha256 = "1wiyqf4h00lf029533byynh6ijz6a4y8al2061wfxp6690hbl488"; + rev = "3849b6440299215e5168d569713d2a5540dfbf2b"; + sha256 = "17if75p3x4lkqncl296f3jdq0rcc69b0mgj0dbz6cl851bmqvy40"; }; meta.homepage = "https://github.com/Yggdroot/LeaderF/"; }; lean-vim = buildVimPluginFrom2Nix { pname = "lean-vim"; - version = "2021-01-02"; + version = "2021-06-04"; src = fetchFromGitHub { owner = "leanprover"; repo = "lean.vim"; - rev = "313fd1e09e7a14352f87d44c82005b6e6316c9bc"; - sha256 = "0f6jq0hliy4jignjc1d30bsvfkb4xl4nzj900hphbc7l2aw7scqr"; + rev = "fdf448398335434f4b5c45aff5f4ee64a3d090fa"; + sha256 = "0wi7837yy4x89w6gw72qkaxbb0vdm3hlxnkjplg2g4ibpayxx3s4"; }; meta.homepage = "https://github.com/leanprover/lean.vim/"; }; lens-vim = buildVimPluginFrom2Nix { pname = "lens-vim"; - version = "2020-04-24"; + version = "2021-05-30"; src = fetchFromGitHub { owner = "camspiers"; repo = "lens.vim"; - rev = "868b195be3cc3000d1d3f875ee0a52a11972e5b9"; - sha256 = "0qpx84k52pz29rx6q0zh3qq4g3a1gyvyfcipx3kaw4lxlld6agd5"; + rev = "099c3502d001f7081edf113de57e8b1cfd121c55"; + sha256 = "1h25isrw96qhfacf37h3anscnrisdxsz6vv7826hpb17r0ygb5ms"; }; meta.homepage = "https://github.com/camspiers/lens.vim/"; }; @@ -2472,12 +2508,12 @@ final: prev: lightline-vim = buildVimPluginFrom2Nix { pname = "lightline-vim"; - version = "2021-05-27"; + version = "2021-05-30"; src = fetchFromGitHub { owner = "itchyny"; repo = "lightline.vim"; - rev = "d5cea5b04841aedd6e3e46c736f2724be03a43e9"; - sha256 = "0yixqn80dh0av0kshz0dw8gbd52096bgdg7gj74rir8hh48bsngx"; + rev = "b06d921023cf6536bcbee5754071d122296e8942"; + sha256 = "1dsqssxgbglq6al6di9grxl24rgwidgd6jrc8d4gk6v6ymgzckl8"; }; meta.homepage = "https://github.com/itchyny/lightline.vim/"; }; @@ -2544,12 +2580,12 @@ final: prev: lsp_signature-nvim = buildVimPluginFrom2Nix { pname = "lsp_signature-nvim"; - version = "2021-05-24"; + version = "2021-06-03"; src = fetchFromGitHub { owner = "ray-x"; repo = "lsp_signature.nvim"; - rev = "1ebfa3e9c9168d7ee9201abdcc86c07a8f9b89db"; - sha256 = "17wqqhi9fslv3b7f79cx33bgvahx9mfl9f04vpm9417b0dc77359"; + rev = "5aca93b10b571a8dfafd2c9e850239dfa2094a6f"; + sha256 = "1k8k7zq03jnvh4328i0s0d87g9s5y2yc94wnpg059clmp1cizcq4"; }; meta.homepage = "https://github.com/ray-x/lsp_signature.nvim/"; }; @@ -2592,12 +2628,12 @@ final: prev: lush-nvim = buildVimPluginFrom2Nix { pname = "lush-nvim"; - version = "2021-05-26"; + version = "2021-06-01"; src = fetchFromGitHub { owner = "rktjmp"; repo = "lush.nvim"; - rev = "b39af94cb4154a3f0887e94d0a4d5f4ae8f92656"; - sha256 = "015q2lkihhb8cgbxxc4f7d4w7sqc67wyaavjany3pj0528rrv97d"; + rev = "684c06d4879a38e50a247ce23b32beaacc75c4d1"; + sha256 = "1khws788sww2dw4s3nqyigyxi7099kqh60dabs66hj9byb84irql"; }; meta.homepage = "https://github.com/rktjmp/lush.nvim/"; }; @@ -2676,24 +2712,24 @@ final: prev: minimap-vim = buildVimPluginFrom2Nix { pname = "minimap-vim"; - version = "2021-04-13"; + version = "2021-06-03"; src = fetchFromGitHub { owner = "wfxr"; repo = "minimap.vim"; - rev = "6afcca86b2274b43de9d39e3c1235f4b0f659129"; - sha256 = "08wabfqhj697qy92jrf6mzbhjbybyil45fsvhn6q3ffl161gvsak"; + rev = "b2c27ca4b25dedef968f3e746533bb973b148c34"; + sha256 = "0wx1hk7ml4r49gdfqnww1002c5aw4dgndlrhwy8fhyvg8117902r"; }; meta.homepage = "https://github.com/wfxr/minimap.vim/"; }; mkdx = buildVimPluginFrom2Nix { pname = "mkdx"; - version = "2021-05-21"; + version = "2021-05-28"; src = fetchFromGitHub { owner = "SidOfc"; repo = "mkdx"; - rev = "b45099a18e88cd61c93a073e2b15cc6025e4774e"; - sha256 = "0yawlfnghbkr3bcqqcf3znsdjjbh13a46dhkn4sj108adc9c4y56"; + rev = "e129e3c7d92477563aeb068628ee0ccdd46ed36e"; + sha256 = "0q0cyigkszw0qsdvg9dxs293sf8hbmwwy6qxlknmrfiy5xyn6ik5"; }; meta.homepage = "https://github.com/SidOfc/mkdx/"; }; @@ -3000,12 +3036,12 @@ final: prev: neogit = buildVimPluginFrom2Nix { pname = "neogit"; - version = "2021-05-17"; + version = "2021-06-03"; src = fetchFromGitHub { owner = "TimUntersberger"; repo = "neogit"; - rev = "4095c328558bfa5c28bbb7b53e921219c45a450f"; - sha256 = "0cw7hfnrw4r25zcvr38sf6i8vjzhd4ndkj7mybyh6ykwjc646pmq"; + rev = "f0a22c4609e6f090afdcb147242a2e96ac763f4a"; + sha256 = "09y03krzg2wl0mlgvc3shvdbvjr8ga69amknbfzvnmplmqyji0g5"; }; meta.homepage = "https://github.com/TimUntersberger/neogit/"; }; @@ -3024,12 +3060,12 @@ final: prev: neomake = buildVimPluginFrom2Nix { pname = "neomake"; - version = "2021-05-24"; + version = "2021-06-02"; src = fetchFromGitHub { owner = "neomake"; repo = "neomake"; - rev = "df653c87bb04753755995579218c3b8bc1639383"; - sha256 = "1kn23xknakxx5r7n92cpzrvng0nh8gnf1kmr63d1gzsk6a3yh5aw"; + rev = "3663e065b4f3d0c4a1144b668129ef43e0d8ff10"; + sha256 = "0l87p48lyx78a9ayqygpba76z04ld64w747m0mrdlgci0x8jnqb7"; }; meta.homepage = "https://github.com/neomake/neomake/"; }; @@ -3060,12 +3096,12 @@ final: prev: neosnippet-vim = buildVimPluginFrom2Nix { pname = "neosnippet-vim"; - version = "2020-09-10"; + version = "2021-06-05"; src = fetchFromGitHub { owner = "Shougo"; repo = "neosnippet.vim"; - rev = "30b6b53b7a86b84371714b4a0f092d5d303c4a35"; - sha256 = "0q06a0wq2aqgkjc5jndccffibr85hf33w2igcah3x6dl203p4ips"; + rev = "5d65a8fde5c3f4dfc0dc1a13639515948d8a28a5"; + sha256 = "1iaapjpx91kcz9h2gp7vzgj7lnjs86g0iqkg3vgr04kj9lsvj3j7"; }; meta.homepage = "https://github.com/Shougo/neosnippet.vim/"; }; @@ -3096,12 +3132,12 @@ final: prev: neovim-fuzzy = buildVimPluginFrom2Nix { pname = "neovim-fuzzy"; - version = "2020-09-16"; + version = "2021-04-24"; src = fetchFromGitHub { owner = "cloudhead"; repo = "neovim-fuzzy"; - rev = "78f4d79f703aff49c9bcee5d527234c2f64425d5"; - sha256 = "1dq79jabyyyphgigqac9jf7hhadfh336fm8hklh1d64xlzyrfp6s"; + rev = "46f908aedef6af039c5134056ad008fe7aae1cbc"; + sha256 = "0mszwcvj61y9jqxc0vgghjl1x0xxvy7mqspmv3ikd8sglg54gz2d"; }; meta.homepage = "https://github.com/cloudhead/neovim-fuzzy/"; }; @@ -3132,12 +3168,12 @@ final: prev: nerdcommenter = buildVimPluginFrom2Nix { pname = "nerdcommenter"; - version = "2021-04-30"; + version = "2021-05-29"; src = fetchFromGitHub { owner = "preservim"; repo = "nerdcommenter"; - rev = "ab475e1325ad6eaec15a3113f201a4e4a3ee2811"; - sha256 = "00zmrgb8f2i0i00xbqnidxln6bkz740q09cj7kysk5142z27435q"; + rev = "a5d1663185bee20bfb120c9ab212144444514982"; + sha256 = "03799774h9f7k52gwjnhjjm2w9s6ip5zdrpljinwp6lfavxd4w8a"; }; meta.homepage = "https://github.com/preservim/nerdcommenter/"; }; @@ -3156,12 +3192,12 @@ final: prev: nerdtree-git-plugin = buildVimPluginFrom2Nix { pname = "nerdtree-git-plugin"; - version = "2021-05-17"; + version = "2021-06-04"; src = fetchFromGitHub { owner = "Xuyuanp"; repo = "nerdtree-git-plugin"; - rev = "4524fb465b11881409482636ae716b4965011550"; - sha256 = "0cvb33drkv3rrgbniw9bz8xkxyr4cf0lyay9waw3lczpl2wmfwbm"; + rev = "bca0ed63883d028e6afc7f11a78c56fcaf34d363"; + sha256 = "1j5llx2l36hgr10mjjdrp8xdv9mhmc6panpjgdxzdg5ncwn4ndzm"; }; meta.homepage = "https://github.com/Xuyuanp/nerdtree-git-plugin/"; }; @@ -3216,12 +3252,12 @@ final: prev: nnn-vim = buildVimPluginFrom2Nix { pname = "nnn-vim"; - version = "2021-05-21"; + version = "2021-05-30"; src = fetchFromGitHub { owner = "mcchrish"; repo = "nnn.vim"; - rev = "065bf84b0b86266b267adfc2584e67eabef49815"; - sha256 = "1v2jckl4gaai77rqnv1hwv4bb0d6vyk7hy63nlyy3fcnc1z1ic8v"; + rev = "fb80ed60c642b1f3666125c3051bd2da34453eeb"; + sha256 = "1p87dc296icb2kpyzlflpzbaq5z2yg106mpsxxzmwzn949smsk7l"; }; meta.homepage = "https://github.com/mcchrish/nnn.vim/"; }; @@ -3240,12 +3276,12 @@ final: prev: nord-nvim = buildVimPluginFrom2Nix { pname = "nord-nvim"; - version = "2021-05-22"; + version = "2021-06-02"; src = fetchFromGitHub { owner = "shaunsingh"; repo = "nord.nvim"; - rev = "6860c64a3002f6dbcf36c0baf7bda8c34c5083c8"; - sha256 = "0a036xgsklqv2zwlcpyhdrip8mvgqhyb4vcsp7gwp5241917bia3"; + rev = "6965333869ca172a18606c93d6f6c1275fb9aabb"; + sha256 = "0nljk4ncxz5syf0wr29j3bdxdw5bjpjn879ls1r910hicn4lg468"; }; meta.homepage = "https://github.com/shaunsingh/nord.nvim/"; }; @@ -3264,12 +3300,12 @@ final: prev: nvcode-color-schemes-vim = buildVimPluginFrom2Nix { pname = "nvcode-color-schemes-vim"; - version = "2021-04-29"; + version = "2021-06-02"; src = fetchFromGitHub { owner = "ChristianChiarulli"; repo = "nvcode-color-schemes.vim"; - rev = "940f2eb232091f970e45232e9c96e5aac7d670de"; - sha256 = "1sxi0dhbqg6fg23n8m069z6issyng18hbq9v7rxnzw90mqp0y5zb"; + rev = "7c85366c9d457ed0e3c3532ee312307476afbbdc"; + sha256 = "02hxjwi8g07zhx6xagma5m3sa0j4ljg79377zfn2vy4snnib452p"; }; meta.homepage = "https://github.com/ChristianChiarulli/nvcode-color-schemes.vim/"; }; @@ -3288,12 +3324,12 @@ final: prev: nvim-autopairs = buildVimPluginFrom2Nix { pname = "nvim-autopairs"; - version = "2021-05-26"; + version = "2021-06-05"; src = fetchFromGitHub { owner = "windwp"; repo = "nvim-autopairs"; - rev = "b5816204bd2f92f1c64dff132fbd67a1530c1751"; - sha256 = "1w0cw7pp7szqsgq734j4zv8c7jcjblpmfa6iw1r0bpi2jgplb5ha"; + rev = "b09ab7495e55f09293500aacf460d176f942504d"; + sha256 = "05w7bjn1iy1qa3ni12vm9p28y4bsz4kkfgmcs44152qmcqj13wp1"; }; meta.homepage = "https://github.com/windwp/nvim-autopairs/"; }; @@ -3312,24 +3348,24 @@ final: prev: nvim-bqf = buildVimPluginFrom2Nix { pname = "nvim-bqf"; - version = "2021-05-21"; + version = "2021-06-02"; src = fetchFromGitHub { owner = "kevinhwang91"; repo = "nvim-bqf"; - rev = "3754935f6c6b9eaae203fe9d4620e2d3e1a8f0ef"; - sha256 = "16rf7i540mahmlb9mdk5g02ax1v5wkh3fyiy9if8zirf47ywcczd"; + rev = "554ae68f404492c8d37381545b9a785fda30c26e"; + sha256 = "0z6xb6wsq5kjcnyiqbp2ik97yl2kb9hxy0rfccfswh5pgmfv2z1i"; }; meta.homepage = "https://github.com/kevinhwang91/nvim-bqf/"; }; nvim-bufferline-lua = buildVimPluginFrom2Nix { pname = "nvim-bufferline-lua"; - version = "2021-05-26"; + version = "2021-06-01"; src = fetchFromGitHub { owner = "akinsho"; repo = "nvim-bufferline.lua"; - rev = "026c12d7e4f85c570acf8be4c69c282acbe18953"; - sha256 = "0l4y15rzhjjgqkdryj399xgnmz1c3ga8li9j8m4qf98isbmqhsws"; + rev = "883cd1b0d8029c97bb6c3358b8e55c040b0c7bcb"; + sha256 = "06mcl11jx56wym2jfinpbklpfn55d6j35yy80dv9dy8072mb5f9f"; }; meta.homepage = "https://github.com/akinsho/nvim-bufferline.lua/"; }; @@ -3360,12 +3396,12 @@ final: prev: nvim-compe = buildVimPluginFrom2Nix { pname = "nvim-compe"; - version = "2021-05-27"; + version = "2021-06-02"; src = fetchFromGitHub { owner = "hrsh7th"; repo = "nvim-compe"; - rev = "c7cd3bf1380ce3c6ef2a55537ace40c3a3897c50"; - sha256 = "0pqka3wi169l8d58hlixhyi9yng62p1ic6fnl2vgbydi72xd1ngd"; + rev = "310488302c6532646adfe8228e40187a80b36ac5"; + sha256 = "1anfrybaliyaxgi8iv55hncnac8xgizqw9b9047lw2grkybmrdn4"; }; meta.homepage = "https://github.com/hrsh7th/nvim-compe/"; }; @@ -3384,24 +3420,24 @@ final: prev: nvim-dap = buildVimPluginFrom2Nix { pname = "nvim-dap"; - version = "2021-05-21"; + version = "2021-06-03"; src = fetchFromGitHub { owner = "mfussenegger"; repo = "nvim-dap"; - rev = "260d13945348966f695c46e4c711001066f47300"; - sha256 = "02nkr4wz63r973myyvvfs5wmdichcxaj0iika0z4j7mh59nqzvha"; + rev = "826a1931fdf1b3b67a0b456aa3abc1b72185a7a7"; + sha256 = "0g8x9vk9qv16zlbvx3h8w2vhnqyycssn5v4y8sdhsnhyjljsjygz"; }; meta.homepage = "https://github.com/mfussenegger/nvim-dap/"; }; nvim-dap-ui = buildVimPluginFrom2Nix { pname = "nvim-dap-ui"; - version = "2021-05-27"; + version = "2021-05-31"; src = fetchFromGitHub { owner = "rcarriga"; repo = "nvim-dap-ui"; - rev = "bb291ba853759f455e421892a955d67cc8e88173"; - sha256 = "0wlfh0mgdhlnvwl7m7bdzj7kks9f5hnm2k3awnyl8a14rjl00i0i"; + rev = "055b143fdd23fee1d86247a8ec7c43c84a2a896b"; + sha256 = "0v9mxpr5m01w948ddh598k1vzaiyq2zl6fkykbpzkijhk8qvjnv9"; }; meta.homepage = "https://github.com/rcarriga/nvim-dap-ui/"; }; @@ -3420,36 +3456,36 @@ final: prev: nvim-gdb = buildVimPluginFrom2Nix { pname = "nvim-gdb"; - version = "2021-05-24"; + version = "2021-05-30"; src = fetchFromGitHub { owner = "sakhnik"; repo = "nvim-gdb"; - rev = "9a6e8268878352b9ea3087ab745b894531e5e335"; - sha256 = "1mbjsab96r99hzjh78dsk7cwmn59mgzkr0y6mm6i81g0zz9d9cya"; + rev = "60994408e6684fb776bcfb80c456cbdf8bc6eb93"; + sha256 = "044bgiyhi4db5avajry9v168gz55xn6yzr83j610k95hh2aam08a"; }; meta.homepage = "https://github.com/sakhnik/nvim-gdb/"; }; nvim-highlite = buildVimPluginFrom2Nix { pname = "nvim-highlite"; - version = "2021-04-01"; + version = "2021-05-29"; src = fetchFromGitHub { owner = "Iron-E"; repo = "nvim-highlite"; - rev = "ff28f2dde464a9e105c7dc041127eb60059d955a"; - sha256 = "089019br0f3massc2sz3l0r8cjc33i5qqwbm4k7cz50x71g89wrq"; + rev = "9c15a789df5af1d3c83c0d680154ca226253eb26"; + sha256 = "0dz3bbyrwgxvsdmix2h6xbgj7wv9zbj08wgy46sjhzdhaxdfjx4z"; }; meta.homepage = "https://github.com/Iron-E/nvim-highlite/"; }; nvim-hlslens = buildVimPluginFrom2Nix { pname = "nvim-hlslens"; - version = "2021-05-26"; + version = "2021-06-04"; src = fetchFromGitHub { owner = "kevinhwang91"; repo = "nvim-hlslens"; - rev = "1ec700d81aae9369ee16b5dfb421153377c4bdee"; - sha256 = "08vi23gaccm0whswg8jsb5pvbcdci51w61m7x079yfarablz1h6c"; + rev = "d5ba4abab33808dbf653cc8270d82561f96b220b"; + sha256 = "0qyb6fjjcgjifkgvcy475gxplbvdvzd51z7xv2m7gshy6m4vlzk6"; }; meta.homepage = "https://github.com/kevinhwang91/nvim-hlslens/"; }; @@ -3468,12 +3504,12 @@ final: prev: nvim-jdtls = buildVimPluginFrom2Nix { pname = "nvim-jdtls"; - version = "2021-05-25"; + version = "2021-06-03"; src = fetchFromGitHub { owner = "mfussenegger"; repo = "nvim-jdtls"; - rev = "f39758c426c9409ff35ef730b324bc8cd267a5ef"; - sha256 = "11md1s3yqyzr4w5ii6d2dqh9njjc6sglpfgh18mgnx8y6fk23r58"; + rev = "8bd4eac08c637961b10ac01c124fb5091484c265"; + sha256 = "0jjsq718m0c1f45k9b68z0inlhy5nas48ff5yd0v29qlcv01w3wf"; }; meta.homepage = "https://github.com/mfussenegger/nvim-jdtls/"; }; @@ -3492,12 +3528,12 @@ final: prev: nvim-lspconfig = buildVimPluginFrom2Nix { pname = "nvim-lspconfig"; - version = "2021-05-25"; + version = "2021-06-03"; src = fetchFromGitHub { owner = "neovim"; repo = "nvim-lspconfig"; - rev = "6a25eb0d3fc77cd1b9ff11446dc52d50bc482155"; - sha256 = "0chb6d3v2n5wka4fgw49rzxqd1vwl7mwwb5z13hvylxbad098n1l"; + rev = "62c04242031ed65a8d29ebefaaf645e8e3375748"; + sha256 = "1g1s85dzz7lr3ky90m27m8f3s06xm4c87z96vwzaaajb28927774"; }; meta.homepage = "https://github.com/neovim/nvim-lspconfig/"; }; @@ -3564,36 +3600,36 @@ final: prev: nvim-toggleterm-lua = buildVimPluginFrom2Nix { pname = "nvim-toggleterm-lua"; - version = "2021-05-26"; + version = "2021-06-01"; src = fetchFromGitHub { owner = "akinsho"; repo = "nvim-toggleterm.lua"; - rev = "9215c1955c30b08779bcf1043964a49a9aaf0da8"; - sha256 = "1w1bxinkn1walx4svjcjwci2h6vwn2jyiyrykvzcr55gnm5dr5kd"; + rev = "53134b08a5a5e66f343c4e431966a0a19ce2d162"; + sha256 = "00gxkl87f8gawil9bdxa5s15yswc1ac4y9c5vx3kmhv6g5ipcrrn"; }; meta.homepage = "https://github.com/akinsho/nvim-toggleterm.lua/"; }; nvim-tree-lua = buildVimPluginFrom2Nix { pname = "nvim-tree-lua"; - version = "2021-05-27"; + version = "2021-06-05"; src = fetchFromGitHub { owner = "kyazdani42"; repo = "nvim-tree.lua"; - rev = "23935ff0036e26dbfe14e6aee96a7653ee704336"; - sha256 = "07pvxjijp1k932i1pzw0szd5dqxrh2g4br70z0h149252hya4fkf"; + rev = "f56ac7884c9b12343d66a2bacf90097af3c58cf6"; + sha256 = "0v2aznndmc5bsipqbj4q40qqmv384z6k5xh17yfcp7a6iak5zzjq"; }; meta.homepage = "https://github.com/kyazdani42/nvim-tree.lua/"; }; nvim-treesitter = buildVimPluginFrom2Nix { pname = "nvim-treesitter"; - version = "2021-05-26"; + version = "2021-06-04"; src = fetchFromGitHub { owner = "nvim-treesitter"; repo = "nvim-treesitter"; - rev = "6c2ff319b311fed0160875b878811431399889cf"; - sha256 = "0vl782k8p5l2gm3y247a70ksrdn863gsv1z47frfnpq30ayxz0mx"; + rev = "b5d603a876fe8c89e96a9cac2dac2dd375479dac"; + sha256 = "1x2cn0v7yyqlwz8g4vqxh0vai372946a1akbg50pldq24jxm8j0q"; }; meta.homepage = "https://github.com/nvim-treesitter/nvim-treesitter/"; }; @@ -3636,24 +3672,24 @@ final: prev: nvim-treesitter-textobjects = buildVimPluginFrom2Nix { pname = "nvim-treesitter-textobjects"; - version = "2021-05-11"; + version = "2021-06-02"; src = fetchFromGitHub { owner = "nvim-treesitter"; repo = "nvim-treesitter-textobjects"; - rev = "4f1ace57fbeed1f4e5613ea8c9b414ff0833eade"; - sha256 = "1in2q3igq74m900rkchdcgfcy3h60663b58xn2ydlbjsbzhc7vrn"; + rev = "cadb8110817884fff506043497c0f2b92026aacb"; + sha256 = "01f1913r1q1x1qwp6l6xrqxfc9lffngnc8js5n37r7naszc9r7w8"; }; meta.homepage = "https://github.com/nvim-treesitter/nvim-treesitter-textobjects/"; }; nvim-ts-rainbow = buildVimPluginFrom2Nix { pname = "nvim-ts-rainbow"; - version = "2021-05-26"; + version = "2021-06-04"; src = fetchFromGitHub { owner = "p00f"; repo = "nvim-ts-rainbow"; - rev = "de234084fb82ff40ac593410409c77a542456415"; - sha256 = "1nw53jxdll34xml9064cl65p33cnv2pg9bbg4697wqdhs7rm4z27"; + rev = "0fffdcb37cf7d43bc138c89eb002957819c748af"; + sha256 = "0xd79f7a7zyqj6yzkjanli8r4wjhy17gsp1wl7p7vws6axrbgvjl"; }; meta.homepage = "https://github.com/p00f/nvim-ts-rainbow/"; }; @@ -3732,24 +3768,24 @@ final: prev: one-nvim = buildVimPluginFrom2Nix { pname = "one-nvim"; - version = "2021-05-05"; + version = "2021-06-02"; src = fetchFromGitHub { owner = "Th3Whit3Wolf"; repo = "one-nvim"; - rev = "75e845eacc23f544b8990b5b6d10d8edf58cacfe"; - sha256 = "0zwz2kak0hk0kam0klh3ydynlw814g56vrqdn679ca6xqwzcihy3"; + rev = "d6e62bc7cdfae97d1ffc4f508a43955664ad5b73"; + sha256 = "0bna2kpvaxvwglgmdgp1g93bcygvnc1c25w4isawlgmsclzz9cc6"; }; meta.homepage = "https://github.com/Th3Whit3Wolf/one-nvim/"; }; onedark-vim = buildVimPluginFrom2Nix { pname = "onedark-vim"; - version = "2021-05-24"; + version = "2021-06-02"; src = fetchFromGitHub { owner = "joshdick"; repo = "onedark.vim"; - rev = "ff7b30ebd2faed7bf2de599ec9f340cffb29a4a4"; - sha256 = "0irzprhgx5l6il45zw0ivg6fp38h73cd9x10mkn74jxa0djghp76"; + rev = "f209c5b6741e6cf847bf4a77e19f2fbf6ffc5290"; + sha256 = "146ypfx9rxcfp031a4zhzns637bjsf0bznplgyfmz3zjarj85422"; }; meta.homepage = "https://github.com/joshdick/onedark.vim/"; }; @@ -3792,12 +3828,12 @@ final: prev: packer-nvim = buildVimPluginFrom2Nix { pname = "packer-nvim"; - version = "2021-05-27"; + version = "2021-06-03"; src = fetchFromGitHub { owner = "wbthomason"; repo = "packer.nvim"; - rev = "a41f6abb3fd0479aab1957c7891531b933154a5f"; - sha256 = "0khylm6w46gs8j4czvfbgdbh5gdidvlgv4hm2vjglv2dblzm2vdn"; + rev = "3715ce44c0aae69471511bd93789ccf578c9684c"; + sha256 = "1xcfmv7dn975hqa1izn4h80vpn3yksm8ali6nbxv62sij6m9na48"; }; meta.homepage = "https://github.com/wbthomason/packer.nvim/"; }; @@ -3888,24 +3924,24 @@ final: prev: playground = buildVimPluginFrom2Nix { pname = "playground"; - version = "2021-05-07"; + version = "2021-05-28"; src = fetchFromGitHub { owner = "nvim-treesitter"; repo = "playground"; - rev = "79f71e2bd73978dfc7d228042d5e90c8545df623"; - sha256 = "1yrf0bdfn7xqmkzzwkzcf2hbcyaf21va3nd7fr5c9f4cvin3p0vr"; + rev = "1e02dece0daa4bef6a24c7a8b6edd48169885b18"; + sha256 = "182nkdzcviz3ap3vphcks4gzw99d4jsmxxlkmb42m0gzd54k1hwq"; }; meta.homepage = "https://github.com/nvim-treesitter/playground/"; }; plenary-nvim = buildVimPluginFrom2Nix { pname = "plenary-nvim"; - version = "2021-05-08"; + version = "2021-06-02"; src = fetchFromGitHub { owner = "nvim-lua"; repo = "plenary.nvim"; - rev = "3f993308024697186c02d51df1330bf07c12535a"; - sha256 = "0riw3wy94qhbdvx32nmlc1s85n3ykg64n45p7i7mii0cd17mqm27"; + rev = "3834d42236c155bb4240fb4008ea6e62c4a21dae"; + sha256 = "1y9aqpb6j36873kcp8dbv5mm04qccjicrs0z0z9cy53s8sgfx558"; }; meta.homepage = "https://github.com/nvim-lua/plenary.nvim/"; }; @@ -3973,12 +4009,12 @@ final: prev: psc-ide-vim = buildVimPluginFrom2Nix { pname = "psc-ide-vim"; - version = "2019-09-17"; + version = "2021-05-31"; src = fetchFromGitHub { owner = "frigoeu"; repo = "psc-ide-vim"; - rev = "5fb4e329e5c0c7d80f0356ab4028eee9c8bd3465"; - sha256 = "0gzbxsq6wh8d9z9vyrff4hdpc66yg9y8hnxq4kjrz9qrccc75c1f"; + rev = "20ff325813ab114d70573a6768565a36aba796b9"; + sha256 = "1s79rz8rjp9bqw4yn97wbmzkc6jav4nixvnky22vbma2d0ckkcm0"; }; meta.homepage = "https://github.com/frigoeu/psc-ide-vim/"; }; @@ -4129,12 +4165,12 @@ final: prev: registers-nvim = buildVimPluginFrom2Nix { pname = "registers-nvim"; - version = "2021-05-27"; + version = "2021-05-28"; src = fetchFromGitHub { owner = "tversteeg"; repo = "registers.nvim"; - rev = "016d969788bf01dae310570868c4d1e04ab42e31"; - sha256 = "1sifwa97laaijssqnn6b691zckkybaprpschvm983k5awcswy4jd"; + rev = "34bbf868da6ef0225739e7977a4063872cd2b1e8"; + sha256 = "0ghy760dc07xwjaf5ci2di8qfq0qip8jyrp7x0rsl820ryy7rggy"; }; meta.homepage = "https://github.com/tversteeg/registers.nvim/"; }; @@ -4225,12 +4261,12 @@ final: prev: rust-tools-nvim = buildVimPluginFrom2Nix { pname = "rust-tools-nvim"; - version = "2021-05-16"; + version = "2021-06-03"; src = fetchFromGitHub { owner = "simrat39"; repo = "rust-tools.nvim"; - rev = "6f92ba636c06069592c64f85888b452da7e81cfd"; - sha256 = "1ng259hs6l6q17hc3y2iyd7v9xm6mkfg0jbpwgrbk4pf2clpn2aa"; + rev = "177507f1443be150250ce90c18f5f6fb8d798543"; + sha256 = "0wj6pccjbcvj42i4516y6wjrssyl3p060454yjxhgqnnnzxc2dh4"; }; meta.homepage = "https://github.com/simrat39/rust-tools.nvim/"; }; @@ -4273,12 +4309,12 @@ final: prev: scrollbar-nvim = buildVimPluginFrom2Nix { pname = "scrollbar-nvim"; - version = "2020-09-28"; + version = "2021-06-04"; src = fetchFromGitHub { owner = "Xuyuanp"; repo = "scrollbar.nvim"; - rev = "72a4174a47a89b7f89401fc66de0df95580fa48c"; - sha256 = "10kk74pmbzc4v70n8vwb2zk0ayr147xy9zk2sbr78zwqf12gas9y"; + rev = "c338467dd6ef141fa8ce3172097a1f5be6c43779"; + sha256 = "1wvzdrj8gckhh6x4szipjjb6mg0v3ix5cq5dy83lfb28psyznshw"; }; meta.homepage = "https://github.com/Xuyuanp/scrollbar.nvim/"; }; @@ -4441,12 +4477,12 @@ final: prev: sonokai = buildVimPluginFrom2Nix { pname = "sonokai"; - version = "2021-05-22"; + version = "2021-06-01"; src = fetchFromGitHub { owner = "sainnhe"; repo = "sonokai"; - rev = "53e874723f4564a12ca0af30541dca4a9d315556"; - sha256 = "1wbwpawmlc25wdnmhidrj9k591zqc2srszh20xv60p0dg2aylmx5"; + rev = "9dd432b1bce0bd448faf22375fcf6311ff0d4226"; + sha256 = "0asqmnyizcyg5drfhbm52l654q3s5ibvbnd8n45kbcn3cnaqb148"; }; meta.homepage = "https://github.com/sainnhe/sonokai/"; }; @@ -4574,24 +4610,24 @@ final: prev: srcery-vim = buildVimPluginFrom2Nix { pname = "srcery-vim"; - version = "2021-05-25"; + version = "2021-06-01"; src = fetchFromGitHub { owner = "srcery-colors"; repo = "srcery-vim"; - rev = "44eadc74ff42ced89e85300d69f8297ffe11589e"; - sha256 = "1k090cy50z6rsh26z6bqw81h60jl7pnjjdfkv8wmzncy7zna86bs"; + rev = "93711180123b9ba6958bfc682d305ef0a1056fa5"; + sha256 = "1i3hhihlvh5mkn1vl9f1baiz712h8lwp1hfi5arsb36picsmgbfd"; }; meta.homepage = "https://github.com/srcery-colors/srcery-vim/"; }; stan-vim = buildVimPluginFrom2Nix { pname = "stan-vim"; - version = "2021-05-26"; + version = "2021-05-28"; src = fetchFromGitHub { owner = "eigenfoo"; repo = "stan-vim"; - rev = "0216d8eb8fba6c25a960fe940ca419e570789314"; - sha256 = "0xmkpnrn97y7fny90d57zrklyyhmh7q4ppp1dqdb9q74vikhsch5"; + rev = "2adaa984e531e1876f053cacb07d8d181d70fbd1"; + sha256 = "1a826cfmwyn4kfyrj6164425gf2wbjs85cdkhzkqsrj0i924hjqz"; }; meta.homepage = "https://github.com/eigenfoo/stan-vim/"; }; @@ -4658,12 +4694,12 @@ final: prev: swift-vim = buildVimPluginFrom2Nix { pname = "swift-vim"; - version = "2021-05-05"; + version = "2021-05-30"; src = fetchFromGitHub { owner = "keith"; repo = "swift.vim"; - rev = "74af6626f63e331b60524d20dd69c9c5d03dc90c"; - sha256 = "0cizij9lv93yg8fxnh04vfpywaxywprmkcsvwginbi20hz155q4g"; + rev = "7ef452b47f14a2bfed26324793777cf12d2a8d78"; + sha256 = "0s12iv8vmqp8yr8fg7a6yf73kgq84i9zy18fhgb0jcc6cwwwz3iq"; }; meta.homepage = "https://github.com/keith/swift.vim/"; }; @@ -4851,12 +4887,12 @@ final: prev: telescope-nvim = buildVimPluginFrom2Nix { pname = "telescope-nvim"; - version = "2021-05-27"; + version = "2021-06-03"; src = fetchFromGitHub { owner = "nvim-telescope"; repo = "telescope.nvim"; - rev = "904f84942384f988271cd40cc4b195263fe0763a"; - sha256 = "1dgzp5n6kaphhdm87k5vdbq3srj5dcp1rhnzd72d7n16x0xnki8h"; + rev = "2697bcfaf0fac861e08c3a55d9334ec6d823029f"; + sha256 = "0q9kq64y3yrazcks476yplkrhx59z82ij5wj1w8qakidy2i008z1"; }; meta.homepage = "https://github.com/nvim-telescope/telescope.nvim/"; }; @@ -5008,12 +5044,12 @@ final: prev: trouble-nvim = buildVimPluginFrom2Nix { pname = "trouble-nvim"; - version = "2021-05-26"; + version = "2021-06-04"; src = fetchFromGitHub { owner = "folke"; repo = "trouble.nvim"; - rev = "cf87622d661190157dfa7e28a19ee87bb205219b"; - sha256 = "082sd2x6v8ybyy1pa5jm2mm386c1mn23h9p3nd7fmip2cw9snhd0"; + rev = "a7dca6204316b9be7c95d056088c67371151c8ab"; + sha256 = "0b2wha4qmn9gb5fmj57ymhn3jrajq71yk48m8gddr1hx244adknh"; }; meta.homepage = "https://github.com/folke/trouble.nvim/"; }; @@ -5068,12 +5104,12 @@ final: prev: undotree = buildVimPluginFrom2Nix { pname = "undotree"; - version = "2021-05-16"; + version = "2021-05-28"; src = fetchFromGitHub { owner = "mbbill"; repo = "undotree"; - rev = "271c56586196b8e42cdcadc8037aa5d3051071c4"; - sha256 = "1sjsv4zzmkkj3l56gbb5f0ad0g6clh1wc76q4d6qsaqv4qg4nsal"; + rev = "1cc3b9069e4356efd4ce1c3c4bdbb227fb54e1e5"; + sha256 = "0m8wc66ml2h6lsbwq452w8y9s95a4kwp4lfdw94pi4q3h5qhvkxj"; }; meta.homepage = "https://github.com/mbbill/undotree/"; }; @@ -5404,12 +5440,12 @@ final: prev: vim-airline = buildVimPluginFrom2Nix { pname = "vim-airline"; - version = "2021-05-27"; + version = "2021-06-04"; src = fetchFromGitHub { owner = "vim-airline"; repo = "vim-airline"; - rev = "a8b3c254d0e5c43be24298ce16cd01f740fe8d42"; - sha256 = "1rbdmwah7zxjah5c3rx71h1d6skda0y6pyz7ysasyjj1dnb2kcsi"; + rev = "82b1b2e87677b468a3b6140372839654d8c346e7"; + sha256 = "0vvaj84q72z5b473f4823laxdvqb1qqj83n05ixavzpjq2qnlmhq"; }; meta.homepage = "https://github.com/vim-airline/vim-airline/"; }; @@ -5440,12 +5476,12 @@ final: prev: vim-android = buildVimPluginFrom2Nix { pname = "vim-android"; - version = "2021-05-27"; + version = "2021-05-28"; src = fetchFromGitHub { owner = "hsanson"; repo = "vim-android"; - rev = "ae364eb950f6409de820ceb94619a51b724433dc"; - sha256 = "1b8h4qyvsmap8c2arvp2v1cjax5mskkn382s44ppr0s2dwhcg02b"; + rev = "520e29d4dd2c4418e246bc28a3383fefdf501cd2"; + sha256 = "13kdbp6542k2g2vnzvfrijyc3qmkfysn4wyrsq95bai4pqaipraf"; }; meta.homepage = "https://github.com/hsanson/vim-android/"; }; @@ -5680,12 +5716,12 @@ final: prev: vim-clap = buildVimPluginFrom2Nix { pname = "vim-clap"; - version = "2021-05-24"; + version = "2021-06-04"; src = fetchFromGitHub { owner = "liuchengxu"; repo = "vim-clap"; - rev = "ff32ca1e08d3c934aadf21106b1ee623e5544912"; - sha256 = "0gkbav7icvcy411yaiav8vc4g1q6yk5gixbcwlaxib5c70zmvxlh"; + rev = "c743b1171194f85469a64556a1f54882cb73cc17"; + sha256 = "0ws8rvvmszcspwvzns7i82l458sa2mhi0013li8c61g1g2wbpphn"; }; meta.homepage = "https://github.com/liuchengxu/vim-clap/"; }; @@ -5896,12 +5932,12 @@ final: prev: vim-css-color = buildVimPluginFrom2Nix { pname = "vim-css-color"; - version = "2021-05-20"; + version = "2021-05-30"; src = fetchFromGitHub { owner = "ap"; repo = "vim-css-color"; - rev = "47bbd29fedc2c34747ba5ae3a1cdbd62fcf19267"; - sha256 = "0d6qj36qdshw630g86yh5afbq7azaijypnj6ja4y6ryy8cx11q7c"; + rev = "7337c35588e9027b516f80f03c3b9621a271e168"; + sha256 = "05np2fr8q8r8n5mlspjywibl7hx54liy77wxvjya7n2p085n49ks"; }; meta.homepage = "https://github.com/ap/vim-css-color/"; }; @@ -5944,16 +5980,28 @@ final: prev: vim-dadbod = buildVimPluginFrom2Nix { pname = "vim-dadbod"; - version = "2021-05-19"; + version = "2021-06-02"; src = fetchFromGitHub { owner = "tpope"; repo = "vim-dadbod"; - rev = "5198650e81e4f187ab77e1f65bea193d923bc4a1"; - sha256 = "1pl6m3bqginqfsaa5kqvhang5g24lvh9wlsbbdvan9jyslqqdpq7"; + rev = "9e4fdb8ab029c0436728a96e1c92677737c2e784"; + sha256 = "1rmiza1km214mvlrdaqycv5hk8ki35giab11b9ggwcigbh743h01"; }; meta.homepage = "https://github.com/tpope/vim-dadbod/"; }; + vim-dadbod-completion = buildVimPluginFrom2Nix { + pname = "vim-dadbod-completion"; + version = "2021-05-12"; + src = fetchFromGitHub { + owner = "kristijanhusak"; + repo = "vim-dadbod-completion"; + rev = "a3f8ea8e666f4bebe12739d8854a4bd31544dfbb"; + sha256 = "04m7drx86r8zqq7rq29wa9zq5ckzf5bqxzyhdc5hqn82jxcvxmpz"; + }; + meta.homepage = "https://github.com/kristijanhusak/vim-dadbod-completion/"; + }; + vim-dasht = buildVimPluginFrom2Nix { pname = "vim-dasht"; version = "2020-07-11"; @@ -6016,12 +6064,12 @@ final: prev: vim-dirdiff = buildVimPluginFrom2Nix { pname = "vim-dirdiff"; - version = "2020-11-03"; + version = "2021-06-03"; src = fetchFromGitHub { owner = "will133"; repo = "vim-dirdiff"; - rev = "0191693f0d3dfc624c61ac95ec951183a50b3b32"; - sha256 = "0har8iri09nkjsvag4wgsynb9fxan2g8nlvlvd5zsalbnmlmdh9j"; + rev = "84bc8999fde4b3c2d8b228b560278ab30c7ea4c9"; + sha256 = "06qjfz94hqsmg43dpj347cvc72p16xp76zq216js35yphv6sgx65"; }; meta.homepage = "https://github.com/will133/vim-dirdiff/"; }; @@ -6436,12 +6484,12 @@ final: prev: vim-fugitive = buildVimPluginFrom2Nix { pname = "vim-fugitive"; - version = "2021-05-27"; + version = "2021-06-03"; src = fetchFromGitHub { owner = "tpope"; repo = "vim-fugitive"; - rev = "6ae064c5aa1cc24c78abc8d12ec236e99dc01316"; - sha256 = "017dm18dazg3svqyir1pncvnhczxcsnjdq85aypsrggf1mhd9m1a"; + rev = "f7f1413ed9b69eb80c8af07d38ebcc889ed64d96"; + sha256 = "16az604z245bw64dhkgmszifg1ajnf0i9binllixwaifnh6vfnhh"; }; meta.homepage = "https://github.com/tpope/vim-fugitive/"; }; @@ -6508,12 +6556,12 @@ final: prev: vim-gitgutter = buildVimPluginFrom2Nix { pname = "vim-gitgutter"; - version = "2021-05-24"; + version = "2021-06-03"; src = fetchFromGitHub { owner = "airblade"; repo = "vim-gitgutter"; - rev = "10998f303cd85405e51380f6dc406dd756c105e8"; - sha256 = "0520sqya9i2ry5yfryqi1q7h6yg2vgqw1qa042f1b2r8ddgvxibk"; + rev = "68a8cb300c75eb1cd2173b2aac70515e99904ef3"; + sha256 = "0s4c1vb2z3manl2i768f48i2pww2d4dj41plx4mvvi7sczlma30n"; }; meta.homepage = "https://github.com/airblade/vim-gitgutter/"; }; @@ -6556,12 +6604,12 @@ final: prev: vim-go = buildVimPluginFrom2Nix { pname = "vim-go"; - version = "2021-05-27"; + version = "2021-06-04"; src = fetchFromGitHub { owner = "fatih"; repo = "vim-go"; - rev = "696c4a4ef79fc1fb8f090353cf404df95614ce46"; - sha256 = "1z811b62f5pafv3zmqjjcvmphikml8hzspdb7nvkyrr561awzwab"; + rev = "edd8c160e54c2861a617777192a48d0a64704192"; + sha256 = "1xdggzasvv3x1h61yqp2rl30r6kppf6aqdjqsrpzihz809w5zgry"; }; meta.homepage = "https://github.com/fatih/vim-go/"; }; @@ -6604,12 +6652,12 @@ final: prev: vim-gruvbox8 = buildVimPluginFrom2Nix { pname = "vim-gruvbox8"; - version = "2021-05-03"; + version = "2021-05-28"; src = fetchFromGitHub { owner = "lifepillar"; repo = "vim-gruvbox8"; - rev = "68253ac63780918b02669ec15ac5bc3aa36e4641"; - sha256 = "0k355wqh8x8c35qvll494v98gbvvly96w79d94srzarvj4h9as55"; + rev = "66d58b569fdbe0ec389acb66eb4a585f3110e43e"; + sha256 = "0bggkq2p109vc67s0idplrf4sy4j12smwkx2wvsc626bzflzc2fb"; }; meta.homepage = "https://github.com/lifepillar/vim-gruvbox8/"; }; @@ -6688,12 +6736,12 @@ final: prev: vim-hcl = buildVimPluginFrom2Nix { pname = "vim-hcl"; - version = "2021-03-17"; + version = "2021-06-03"; src = fetchFromGitHub { owner = "jvirtanen"; repo = "vim-hcl"; - rev = "d50f93204b606b4ff40a9522be0e8dbf6055b815"; - sha256 = "0sdaldmdrgha5ij02flsqrc77ijjifdvl8b6pdw24xrpd9j5cwhs"; + rev = "6289d1a1424229a8f6523f4ef9441dbf2468250b"; + sha256 = "0x33bdvacmj82m838frr40r16mc0cvb2p9alkr2gw30ls2ym3zdy"; }; meta.homepage = "https://github.com/jvirtanen/vim-hcl/"; }; @@ -6797,12 +6845,12 @@ final: prev: vim-html-template-literals = buildVimPluginFrom2Nix { pname = "vim-html-template-literals"; - version = "2020-09-02"; + version = "2021-06-03"; src = fetchFromGitHub { owner = "jonsmithers"; repo = "vim-html-template-literals"; - rev = "602dba70bdcfc2e280e0c0503e74a8a92519db49"; - sha256 = "0x0sbmcig3r058sg78bfj8dv0lwlgdcwvw9kxviynyhk2qkg9zl9"; + rev = "e6f3f8ffaae9c2f9deea2bbb596b64468041616c"; + sha256 = "1lrkby9m60ccgm35y1z82llgzjd5vmdwfscy7byjd5ycnkhyangi"; }; meta.homepage = "https://github.com/jonsmithers/vim-html-template-literals/"; }; @@ -6857,12 +6905,12 @@ final: prev: vim-illuminate = buildVimPluginFrom2Nix { pname = "vim-illuminate"; - version = "2021-05-18"; + version = "2021-06-03"; src = fetchFromGitHub { owner = "RRethy"; repo = "vim-illuminate"; - rev = "20707bb5ac23536041d34f327649844e631d52bd"; - sha256 = "1gm0rfhhzmb1hv4dzys4w0si9ppaanxn0v68rpjc9yn8ahws426b"; + rev = "daa49da1e7a6d8c8dcbd3a40f91046d1505fd645"; + sha256 = "1qvnij7z48g1m6n2qz5lbgbiwwaqnb626sz6qvhkd5jh556pmfah"; }; meta.homepage = "https://github.com/RRethy/vim-illuminate/"; }; @@ -7254,12 +7302,12 @@ final: prev: vim-lsp = buildVimPluginFrom2Nix { pname = "vim-lsp"; - version = "2021-05-03"; + version = "2021-06-02"; src = fetchFromGitHub { owner = "prabirshrestha"; repo = "vim-lsp"; - rev = "1f98a0656620bfc03dcb8bad87aa76a6304b3b73"; - sha256 = "177l1xbd1039mmxwk2ggbjawvnpqp362w0mnqvqs2655ib4zdbq3"; + rev = "ddd5abb5b6491117c4b7ef4149e47945926eecd8"; + sha256 = "0xv687xzwqhwpmxr65sm3ln74y8mxww1q3fqj57va06ilxzac56c"; }; meta.homepage = "https://github.com/prabirshrestha/vim-lsp/"; }; @@ -7290,12 +7338,12 @@ final: prev: vim-maktaba = buildVimPluginFrom2Nix { pname = "vim-maktaba"; - version = "2021-05-20"; + version = "2021-05-29"; src = fetchFromGitHub { owner = "google"; repo = "vim-maktaba"; - rev = "b7106d83d38116984859eaecabeb8e1d5e21ae55"; - sha256 = "14xds4wfrm2ir7ljv195lxm9zkkxnwbmflzihpj6vai788za5ikc"; + rev = "2b5565881b31ed4e7ac32b4903827ec9c164216d"; + sha256 = "13nzkqhyz8jydrwprw06jqcx3w37xv0qdq0809gx748kfvh1dznw"; }; meta.homepage = "https://github.com/google/vim-maktaba/"; }; @@ -7363,12 +7411,12 @@ final: prev: vim-matchup = buildVimPluginFrom2Nix { pname = "vim-matchup"; - version = "2021-05-20"; + version = "2021-06-02"; src = fetchFromGitHub { owner = "andymass"; repo = "vim-matchup"; - rev = "42e8ef032ae44c6336a7194408de5e9492aa2a07"; - sha256 = "1h1bpylrriq35m4bn4w9ikxq413ack27h35jcmhp1mb1lg5b32y9"; + rev = "fd9f3c09b04725c8042149bfe3fd080b6f6962cb"; + sha256 = "08cqh4b01jl0iqd1nj2sw2jcwxp48m9rdh50sdnfjgdvynnpagik"; }; meta.homepage = "https://github.com/andymass/vim-matchup/"; }; @@ -7555,12 +7603,12 @@ final: prev: vim-nix = buildVimPluginFrom2Nix { pname = "vim-nix"; - version = "2020-11-16"; + version = "2021-05-28"; src = fetchFromGitHub { owner = "LnL7"; repo = "vim-nix"; - rev = "7542a2bf66d72cb86fc80529867accbc787f744b"; - sha256 = "1kgziwckdjg3sb1z4anwsn1c72hny60vhimxpb6424bylk1qy22j"; + rev = "63b47b39c8d481ebca3092822ca8972e08df769b"; + sha256 = "08n9cgphv2m96kk5w996lwlqak011x5xm410hajmc91vy5fws361"; }; meta.homepage = "https://github.com/LnL7/vim-nix/"; }; @@ -7891,12 +7939,12 @@ final: prev: vim-polyglot = buildVimPluginFrom2Nix { pname = "vim-polyglot"; - version = "2021-04-14"; + version = "2021-06-04"; src = fetchFromGitHub { owner = "sheerun"; repo = "vim-polyglot"; - rev = "730dcb02caab60a6ae5d8b4bdc16d290041061ec"; - sha256 = "1pgqw008xy3fn821zxfiwc9xpd0v33wxmk4yf9avm5jgqbkwn1ld"; + rev = "c312d30231f136d2fbb32a2cfea554af5066e6b0"; + sha256 = "1apd860v2xfi3fjgl15j7mgn6nczx10vj324w1vf1ic5nyy4b594"; }; meta.homepage = "https://github.com/sheerun/vim-polyglot/"; }; @@ -8095,12 +8143,12 @@ final: prev: vim-rails = buildVimPluginFrom2Nix { pname = "vim-rails"; - version = "2021-05-25"; + version = "2021-06-01"; src = fetchFromGitHub { owner = "tpope"; repo = "vim-rails"; - rev = "d556429fad4bf24d431be9f75322fd0d1a82bae2"; - sha256 = "0k1ffyy145nhmr9ad56vc10yy3jliyj8aahs0pm30fgi9q7qz7iy"; + rev = "3b3796352a6f1a68e54e5f7ae5e0c1b9103fab0e"; + sha256 = "1f0xns0h55szamms17wi06k1ninvygsc4yw82hr29kfq94hvn57l"; }; meta.homepage = "https://github.com/tpope/vim-rails/"; }; @@ -8407,12 +8455,12 @@ final: prev: vim-snipmate = buildVimPluginFrom2Nix { pname = "vim-snipmate"; - version = "2021-01-22"; + version = "2021-06-04"; src = fetchFromGitHub { owner = "garbas"; repo = "vim-snipmate"; - rev = "cbec960ab558b20281c0634b9b1a45fb16aaf638"; - sha256 = "1k35rh5gq8lv67qx3l31xvl4iz7rlpybls7pwhsbmz4m598w03bm"; + rev = "ed3c5426a20bf1c06d7980946ada34fd9f93320e"; + sha256 = "0bxaalza02sgm045cj4vciy3qhmj7pj1rp9bdwm5837ldq8paj1h"; }; meta.homepage = "https://github.com/garbas/vim-snipmate/"; }; @@ -8503,12 +8551,12 @@ final: prev: vim-startuptime = buildVimPluginFrom2Nix { pname = "vim-startuptime"; - version = "2021-05-04"; + version = "2021-05-29"; src = fetchFromGitHub { owner = "dstein64"; repo = "vim-startuptime"; - rev = "c622725676c179950ea4a789915efc6d53f142c3"; - sha256 = "168bdcbb13mdd40b0xq9i9chgsg6jr8h4f1jpzf05br5fxp09snk"; + rev = "7a97baae32bedbf6f62d5a573777e4d1652787d1"; + sha256 = "1sphykwbjd35kwsibm9wcxbs2iwjkzkg7madqvlxzi7sqh4vkc7y"; }; meta.homepage = "https://github.com/dstein64/vim-startuptime/"; }; @@ -8599,12 +8647,12 @@ final: prev: vim-table-mode = buildVimPluginFrom2Nix { pname = "vim-table-mode"; - version = "2021-05-05"; + version = "2021-05-29"; src = fetchFromGitHub { owner = "dhruvasagar"; repo = "vim-table-mode"; - rev = "5150f1ec06f51b087a11c71b498a4c4497e71e2c"; - sha256 = "1nwcc7didjyd2iw23qhxrg0rr66z93midabkwjdnlw8mzgha7lb7"; + rev = "35e9fbf64c06fddc41651e65b92200f902d8ae0b"; + sha256 = "16p68x4669y4qpg91hmi4gc3f8qc8bzbr8v6w3nc75vm48s64z6k"; }; meta.homepage = "https://github.com/dhruvasagar/vim-table-mode/"; }; @@ -8792,12 +8840,12 @@ final: prev: vim-tmux-navigator = buildVimPluginFrom2Nix { pname = "vim-tmux-navigator"; - version = "2020-11-12"; + version = "2021-05-29"; src = fetchFromGitHub { owner = "christoomey"; repo = "vim-tmux-navigator"; - rev = "6a1e58c3ca3bc7acca36c90521b3dfae83b2a602"; - sha256 = "17219h69vd6b994qrywg1rpx80y1rmycbfsmf9wb6c693sx721sn"; + rev = "0cabb1ef01af0986b7bf6fb7acf631debdbbb470"; + sha256 = "0xxc5wpyfqv7f7sfy6xncy7ipj0cvshw28s12ld3jfgyimjllr62"; }; meta.homepage = "https://github.com/christoomey/vim-tmux-navigator/"; }; @@ -8828,12 +8876,12 @@ final: prev: vim-tpipeline = buildVimPluginFrom2Nix { pname = "vim-tpipeline"; - version = "2021-04-28"; + version = "2021-06-03"; src = fetchFromGitHub { owner = "vimpostor"; repo = "vim-tpipeline"; - rev = "01d4073e7f1319f223c0d5bfd1abe1e292238252"; - sha256 = "1nfwiizd8nk4pqz1jsw9nq5ngmavjdb3jra2xb5kzgjl2fbzvjda"; + rev = "683cf4f2e16149c477a8f5c96b7429932a68d801"; + sha256 = "0gr5k4bzzzvn00plimpkjiavya04jvcgg322k8yblzmm01r6vcr2"; }; meta.homepage = "https://github.com/vimpostor/vim-tpipeline/"; }; @@ -8888,12 +8936,12 @@ final: prev: vim-ultest = buildVimPluginFrom2Nix { pname = "vim-ultest"; - version = "2021-05-27"; + version = "2021-06-04"; src = fetchFromGitHub { owner = "rcarriga"; repo = "vim-ultest"; - rev = "2de66cbec0694da8f29a99e5c3167c7b9c4a7aff"; - sha256 = "0zxici08m9mk8ia1vr4pm0lgw2fg7p1v1dny89nd0x1r1xfwy4w2"; + rev = "17e372f83238d5d85f6574c59d5d210a898e8623"; + sha256 = "084mn6zxc2x8gp938fpi5ylwqy2pgvn046xbsmyq8md36vqb6m7g"; }; meta.homepage = "https://github.com/rcarriga/vim-ultest/"; }; @@ -8948,12 +8996,12 @@ final: prev: vim-visual-multi = buildVimPluginFrom2Nix { pname = "vim-visual-multi"; - version = "2021-05-27"; + version = "2021-06-01"; src = fetchFromGitHub { owner = "mg979"; repo = "vim-visual-multi"; - rev = "8041a909fc3f740e9d110dd2e95980ff4645785b"; - sha256 = "17zf839g8sr3i9amwvxx008m89m9hz3f34pbc90mpl5ksy4isdqv"; + rev = "2b9d104c57aeb612d7f00e1d071d712ed8671949"; + sha256 = "17f92pka2flwnhx8yg7skbp8kyhbb6gmvm0mni2jm7w3iq68nbmw"; }; meta.homepage = "https://github.com/mg979/vim-visual-multi/"; }; @@ -8972,12 +9020,12 @@ final: prev: vim-vsnip = buildVimPluginFrom2Nix { pname = "vim-vsnip"; - version = "2021-04-21"; + version = "2021-06-01"; src = fetchFromGitHub { owner = "hrsh7th"; repo = "vim-vsnip"; - rev = "395d200728b467e141615f53afe564adc26985b9"; - sha256 = "1g0fhdqr6qmqmhvm3amv22fqb1aacmvd0swmk38w25zzcbl4b4gy"; + rev = "552403842b992efde3816a89b20055f7d66d9a0d"; + sha256 = "1pkkysv2mnbzm2bi33l1xccdb6sh06dgyg83dg0dgd0gmp94l7ya"; }; meta.homepage = "https://github.com/hrsh7th/vim-vsnip/"; }; @@ -9056,12 +9104,12 @@ final: prev: vim-wordmotion = buildVimPluginFrom2Nix { pname = "vim-wordmotion"; - version = "2021-04-25"; + version = "2021-06-04"; src = fetchFromGitHub { owner = "chaoren"; repo = "vim-wordmotion"; - rev = "f6a2064444f39ba52161b16ac1429ee87c1af76d"; - sha256 = "0y69jkgh9pf4b0c4pxgqvf43gq8amz9qwhq1cg38zriy2m4kxi7h"; + rev = "dca1a1827513497def6362411d093ae6b3cff7f8"; + sha256 = "1ij2j35bskk20wyiwjg1krqr9fi5fk043gfpxihhlbxd7yxlbpq1"; }; meta.homepage = "https://github.com/chaoren/vim-wordmotion/"; }; @@ -9104,12 +9152,12 @@ final: prev: vim-xtabline = buildVimPluginFrom2Nix { pname = "vim-xtabline"; - version = "2021-01-31"; + version = "2021-05-29"; src = fetchFromGitHub { owner = "mg979"; repo = "vim-xtabline"; - rev = "654675222adde47c9d72caa400e35c7e680fe5a1"; - sha256 = "1f7d4vmr7n5v7h5a1bjcvxaqygrdi33y0vdx4yjfdswi835yd45h"; + rev = "ad80aa67958a31a254d8994c7a517c1123256721"; + sha256 = "07pd7wzyvch400i6kv0ld3bx2x90ycdjaapwc7aaqkwikk2slq3h"; }; meta.homepage = "https://github.com/mg979/vim-xtabline/"; }; @@ -9309,12 +9357,12 @@ final: prev: vimtex = buildVimPluginFrom2Nix { pname = "vimtex"; - version = "2021-05-25"; + version = "2021-06-01"; src = fetchFromGitHub { owner = "lervag"; repo = "vimtex"; - rev = "8d3cbfff3d44e8af93948d3c7785130f54bc2386"; - sha256 = "0gwj70fxbpmwnrd78ralqq2nzk8gwqv6bd267kf64z9rxkwdhrs0"; + rev = "b0d430b80504e847584664d83e879399647cd38f"; + sha256 = "0k44iv5fig0601bc1vglgbphiw0h6gq8379zsk1ca3fgzyi2ic0p"; }; meta.homepage = "https://github.com/lervag/vimtex/"; }; @@ -9357,12 +9405,12 @@ final: prev: vista-vim = buildVimPluginFrom2Nix { pname = "vista-vim"; - version = "2021-04-27"; + version = "2021-05-28"; src = fetchFromGitHub { owner = "liuchengxu"; repo = "vista.vim"; - rev = "3d4e2a80658467af02a6347e3dae8810e6a5f02f"; - sha256 = "05hh9hk5qcn8gd4k3zm8qz077wxamp4rja486nwm9y5p6723vqn9"; + rev = "19cad968d2cd759e7f9de1d662ec680bd93ebebc"; + sha256 = "0r01b6mml6qgyybi6i59bflgqi03w0fnl0wfgwac96ixs2wdvl1l"; }; meta.homepage = "https://github.com/liuchengxu/vista.vim/"; }; @@ -9393,24 +9441,24 @@ final: prev: webapi-vim = buildVimPluginFrom2Nix { pname = "webapi-vim"; - version = "2020-12-02"; + version = "2021-06-04"; src = fetchFromGitHub { owner = "mattn"; repo = "webapi-vim"; - rev = "6f5ffb6f547cda1b6cbc26a06f12d81e6283bd82"; - sha256 = "1144jk4dfqb8pzblqksc1wjgbraxy6pdgr4q567wzcf93bviv81l"; + rev = "b09cbd3a27157a5baf0468403b392f577adefe45"; + sha256 = "17vlzg5dm5phirwyk8xkqnrkplybd8d5rj9kdx7rgla3h7rqn4wg"; }; meta.homepage = "https://github.com/mattn/webapi-vim/"; }; which-key-nvim = buildVimPluginFrom2Nix { pname = "which-key-nvim"; - version = "2021-05-26"; + version = "2021-06-04"; src = fetchFromGitHub { owner = "folke"; repo = "which-key.nvim"; - rev = "db851981595fc360e9b6196a7c3995611aceac3b"; - sha256 = "0y3mq6vrpmpxa8f42cxxf1209ardb3qraf44vgxwdaqqgphm7zk9"; + rev = "9ea98e59ddeeafc9181815dd714bea513b298e33"; + sha256 = "0zhlbbd969p4bg5vrifsi5sgqi2wbp8zxlak3l7zk67akpbb395n"; }; meta.homepage = "https://github.com/folke/which-key.nvim/"; }; @@ -9513,12 +9561,12 @@ final: prev: yats-vim = buildVimPluginFrom2Nix { pname = "yats-vim"; - version = "2021-02-15"; + version = "2021-05-29"; src = fetchFromGitHub { owner = "HerringtonDarkholme"; repo = "yats.vim"; - rev = "11112853180a933574f431cf78cd5a462ee3f473"; - sha256 = "0bnq02dbsqwsizhlldb2pj92gjybr5aaa7a5m786xvb7ljvd82vi"; + rev = "7c5e526f1aac81e4913be72a5a891e8de38925bd"; + sha256 = "1p3rgw1fx6ficzyk7ba9s22aj9xjsf50ipkx4bdmp4a2zskacqcp"; fetchSubmodules = true; }; meta.homepage = "https://github.com/HerringtonDarkholme/yats.vim/"; diff --git a/pkgs/misc/vim-plugins/vim-plugin-names b/pkgs/misc/vim-plugins/vim-plugin-names index 677ebffb8f99..9d150c93c7cd 100644 --- a/pkgs/misc/vim-plugins/vim-plugin-names +++ b/pkgs/misc/vim-plugins/vim-plugin-names @@ -13,6 +13,7 @@ alvan/vim-closetag alx741/vim-hindent alx741/vim-stylishask amiorin/ctrlp-z +andersevenrud/compe-tmux@main andrep/vimacs andreshazard/vim-logreview AndrewRadev/sideways.vim@main @@ -164,6 +165,7 @@ glepnir/zephyr-nvim@main glts/vim-textobj-comment godlygeek/csapprox godlygeek/tabular +GoldsteinE/compe-latex-symbols google/vim-codefmt google/vim-jsonnet google/vim-maktaba @@ -298,6 +300,7 @@ kristijanhusak/defx-git kristijanhusak/defx-icons kristijanhusak/deoplete-phpactor kristijanhusak/vim-carbon-now-sh +kristijanhusak/vim-dadbod-completion kristijanhusak/vim-dirvish-git kristijanhusak/vim-hybrid-material kshenoy/vim-signature @@ -619,6 +622,7 @@ t9md/vim-choosewin t9md/vim-smalls TaDaa/vimade takac/vim-hardtime +tamago324/compe-zsh tami5/compe-conjure tami5/lispdocs.nvim tami5/sql.nvim diff --git a/pkgs/os-specific/linux/mwprocapture/default.nix b/pkgs/os-specific/linux/mwprocapture/default.nix index c21cf2bb6482..e97dcad43db0 100644 --- a/pkgs/os-specific/linux/mwprocapture/default.nix +++ b/pkgs/os-specific/linux/mwprocapture/default.nix @@ -2,9 +2,6 @@ with lib; -# The Magewell Pro Capture drivers are not supported for kernels older than 3.2 -assert versionAtLeast kernel.version "3.2.0"; - let bits = if stdenv.is64bit then "64" @@ -14,15 +11,15 @@ let in stdenv.mkDerivation rec { - name = "mwprocapture-1.2.${version}-${kernel.version}"; - version = "4177"; + name = "mwprocapture-1.3.0.${version}-${kernel.version}"; + version = "4236"; src = fetchurl { - url = "http://www.magewell.com/files/drivers/ProCaptureForLinux_${version}.tar.gz"; - sha256 = "1nf51w9yixpvr767k49sfdb9n9rv5qc72f5yki1mkghbmabw7vys"; + url = "https://www.magewell.com/files/drivers/ProCaptureForLinux_${version}.tar.gz"; + sha256 = "1mfgj84km276sq5i8dny1vqp2ycqpvgplrmpbqwnk230d0w3qs74"; }; - nativeBuildInputs = [ kernel.moduleBuildDependencies ]; + nativeBuildInputs = kernel.moduleBuildDependencies; preConfigure = '' @@ -63,5 +60,6 @@ stdenv.mkDerivation rec { license = licenses.unfreeRedistributable; maintainers = with maintainers; [ MP2E ]; platforms = platforms.linux; + broken = kernel.kernelOlder "3.2.0"; }; } diff --git a/pkgs/os-specific/linux/pam_u2f/default.nix b/pkgs/os-specific/linux/pam_u2f/default.nix index 760af73fecd2..30a55f2b9c00 100644 --- a/pkgs/os-specific/linux/pam_u2f/default.nix +++ b/pkgs/os-specific/linux/pam_u2f/default.nix @@ -2,11 +2,11 @@ stdenv.mkDerivation rec { pname = "pam_u2f"; - version = "1.1.0"; + version = "1.1.1"; src = fetchurl { url = "https://developers.yubico.com/pam-u2f/Releases/${pname}-${version}.tar.gz"; - sha256 = "01fwbrfnjkv93vvqm54jywdcxa1p7d4r32azicwnx75nxfbbzhqd"; + sha256 = "12p3pkrp32vzpg7707cgx8zgvgj8iqwhy39sm761k7plqi027mmp"; }; nativeBuildInputs = [ pkg-config ]; @@ -16,6 +16,14 @@ stdenv.mkDerivation rec { configureFlagsArray+=("--with-pam-dir=$out/lib/security") ''; + # a no-op makefile to prevent building the fuzz targets + postConfigure = '' + cat > fuzz/Makefile < 5.2.2) activerecord (~> 5.2.2) activesupport (~> 5.2.2) @@ -125,22 +125,22 @@ GEM arel-helpers (2.12.0) activerecord (>= 3.1.0, < 7) aws-eventstream (1.1.1) - aws-partitions (1.464.0) - aws-sdk-core (3.114.0) + aws-partitions (1.465.0) + aws-sdk-core (3.114.1) aws-eventstream (~> 1, >= 1.0.2) aws-partitions (~> 1, >= 1.239.0) aws-sigv4 (~> 1.1) jmespath (~> 1.0) - aws-sdk-ec2 (1.239.0) + aws-sdk-ec2 (1.240.0) aws-sdk-core (~> 3, >= 3.112.0) aws-sigv4 (~> 1.1) - aws-sdk-iam (1.54.0) + aws-sdk-iam (1.55.0) aws-sdk-core (~> 3, >= 3.112.0) aws-sigv4 (~> 1.1) aws-sdk-kms (1.43.0) aws-sdk-core (~> 3, >= 3.112.0) aws-sigv4 (~> 1.1) - aws-sdk-s3 (1.95.1) + aws-sdk-s3 (1.96.0) aws-sdk-core (~> 3, >= 3.112.0) aws-sdk-kms (~> 1) aws-sigv4 (~> 1.1) @@ -149,7 +149,7 @@ GEM bcrypt (3.1.16) bcrypt_pbkdf (1.1.0) bindata (2.4.10) - bson (4.12.0) + bson (4.12.1) builder (3.2.4) concurrent-ruby (1.0.5) cookiejar (0.3.3) @@ -239,7 +239,7 @@ GEM webrick metasploit_payloads-mettle (1.0.9) method_source (1.0.0) - mini_portile2 (2.5.1) + mini_portile2 (2.5.3) minitest (5.14.4) mqtt (0.5.0) msgpack (1.4.2) @@ -252,7 +252,7 @@ GEM network_interface (0.0.2) nexpose (7.3.0) nio4r (2.5.7) - nokogiri (1.11.6) + nokogiri (1.11.7) mini_portile2 (~> 2.5.0) racc (~> 1.4) octokit (4.21.0) @@ -352,7 +352,7 @@ GEM ruby-macho (2.5.1) ruby-rc4 (0.1.5) ruby2_keywords (0.0.4) - ruby_smb (2.0.9) + ruby_smb (2.0.10) bindata openssl-ccm openssl-cmac diff --git a/pkgs/tools/security/metasploit/default.nix b/pkgs/tools/security/metasploit/default.nix index 06a012eae289..fe435a5be452 100644 --- a/pkgs/tools/security/metasploit/default.nix +++ b/pkgs/tools/security/metasploit/default.nix @@ -8,13 +8,13 @@ let }; in stdenv.mkDerivation rec { pname = "metasploit-framework"; - version = "6.0.46"; + version = "6.0.47"; src = fetchFromGitHub { owner = "rapid7"; repo = "metasploit-framework"; rev = version; - sha256 = "sha256-NZksDvlcSts1u66yhJ4BpZu5lvzp5eQxV4MscU7wQ/8="; + sha256 = "sha256-lK8FtHc4VLvp6bEYAw7cqHgbjQP2RS5+XxtjaVMiVWg="; }; nativeBuildInputs = [ makeWrapper ]; diff --git a/pkgs/tools/security/metasploit/gemset.nix b/pkgs/tools/security/metasploit/gemset.nix index 8c1ab823265a..0f6b54632e46 100644 --- a/pkgs/tools/security/metasploit/gemset.nix +++ b/pkgs/tools/security/metasploit/gemset.nix @@ -114,40 +114,40 @@ platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "0mh8kpwwlc0s5k8yjjn6bvrrv0sqxnwpqsjsfljkjszbv1vcwksc"; + sha256 = "0fs3fy6k4wmzh0z6c4rl313f5px81pj0viqxj1prksza4j7iymmi"; type = "gem"; }; - version = "1.464.0"; + version = "1.465.0"; }; aws-sdk-core = { groups = ["default"]; platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "09asbdcg96l165kq4hrks0hsk4hwr16h1qx22az4m7ld0ylvz3jc"; + sha256 = "09ksnsj7jqb339fy4nh6v8zn9gy77vbyjpsiv33r35q82ivi32z2"; type = "gem"; }; - version = "3.114.0"; + version = "3.114.1"; }; aws-sdk-ec2 = { groups = ["default"]; platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "0995qsi717fdvv2wkpbm0iaz666q370q1a37vn3bn6g66v20m6cy"; + sha256 = "0wqrvs49nzr2n9ilbjz61ac61d4d8wwpmzfaawhhq7l4hmwm4pdr"; type = "gem"; }; - version = "1.239.0"; + version = "1.240.0"; }; aws-sdk-iam = { groups = ["default"]; platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "0mfs2vsiml42xskgslp4iissna5fmjacpvi6sbmlr1b5jh390f3m"; + sha256 = "03vs5wf96qpjl309vnrnr4d8hy4l8bvnflgc806bm9n130cyvs9m"; type = "gem"; }; - version = "1.54.0"; + version = "1.55.0"; }; aws-sdk-kms = { groups = ["default"]; @@ -164,10 +164,10 @@ platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "0mm96blh0515lymkwamcnv5jih36v0yykcqx4fr0wwvwmyh637zv"; + sha256 = "1g46v19n6pxa60x7fih2y9zc18q23kdjkb1p2qr33zmi6cz76cc4"; type = "gem"; }; - version = "1.95.1"; + version = "1.96.0"; }; aws-sigv4 = { groups = ["default"]; @@ -214,10 +214,10 @@ platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "0gny4n34gwfc6x04x7vli5my6cdl90n4i0wsxm758q81hfmkqxd7"; + sha256 = "0pnr0b7phdzhkw9xqhmqnw5673ndi13ks3dqwqmbxq6v0rsxiapc"; type = "gem"; }; - version = "4.12.0"; + version = "4.12.1"; }; builder = { groups = ["default"]; @@ -574,12 +574,12 @@ platforms = []; source = { fetchSubmodules = false; - rev = "7be6da5afc39bb736c0fb5c6c6ba245e98c0efe0"; - sha256 = "1zs3y1772b43awqy9rg9zjbbk6x506g89cmfpcsxnjjwz472r69m"; + rev = "6416bc1a2867938dd39705a3daef25bc5dedfd16"; + sha256 = "0s2m499njqqvbxz2wign0f6iny58vh70665ix7lvnm1qfys0bbwl"; type = "git"; url = "https://github.com/rapid7/metasploit-framework"; }; - version = "6.0.46"; + version = "6.0.47"; }; metasploit-model = { groups = ["default"]; @@ -636,10 +636,10 @@ platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "0xg1x4708a4pn2wk8qs2d8kfzzdyv9kjjachg2f1phsx62ap2rx2"; + sha256 = "1ad0mli9rc0f17zw4ibp24dbj1y39zkykijsjmnzl4gwpg5s0j6k"; type = "gem"; }; - version = "2.5.1"; + version = "2.5.3"; }; minitest = { groups = ["default"]; @@ -756,10 +756,10 @@ platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "1z4x366icbl9w13pk50vxx5kywlksvhxqxrpv8f5xpjxfl3jl64z"; + sha256 = "1vrn31385ix5k9b0yalnlzv360isv6dincbcvi8psllnwz4sjxj9"; type = "gem"; }; - version = "1.11.6"; + version = "1.11.7"; }; octokit = { groups = ["default"]; @@ -1226,10 +1226,10 @@ platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "0nvvy2kq26r313ybj5sjr9mpwc1sy535kmmbi8r80kvqfkmd43nv"; + sha256 = "1h8p6ksfr9xhpj9p38b4mjj76zm4d0dg06hhp00ii9hh7vy6mryd"; type = "gem"; }; - version = "2.0.9"; + version = "2.0.10"; }; rubyntlm = { groups = ["default"]; diff --git a/pkgs/tools/security/oath-toolkit/default.nix b/pkgs/tools/security/oath-toolkit/default.nix index b1a493f30913..a925d07cb7c8 100644 --- a/pkgs/tools/security/oath-toolkit/default.nix +++ b/pkgs/tools/security/oath-toolkit/default.nix @@ -7,15 +7,17 @@ let in stdenv.mkDerivation rec { pname = "oath-toolkit"; - version = "2.6.6"; + version = "2.6.7"; src = fetchurl { url = "mirror://savannah/${pname}/${pname}-${version}.tar.gz"; - sha256 = "0v4lrgip08b8xlivsfn3mwql3nv8hmcpzrn6pi3xp88vqwav6s7x"; + sha256 = "1aa620k05lsw3l3slkp2mzma40q3p9wginspn9zk8digiz7dzv9n"; }; buildInputs = [ securityDependency ]; + passthru.updateScript = ./update.sh; + meta = with lib; { description = "Components for building one-time password authentication systems"; homepage = "https://www.nongnu.org/oath-toolkit/"; diff --git a/pkgs/tools/security/oath-toolkit/update.sh b/pkgs/tools/security/oath-toolkit/update.sh new file mode 100755 index 000000000000..3502a541fa8c --- /dev/null +++ b/pkgs/tools/security/oath-toolkit/update.sh @@ -0,0 +1,50 @@ +#!/usr/bin/env nix-shell +#!nix-shell -i bash -p curl git gnugrep nix + +set -euo pipefail + +nixfile='default.nix' +release_url='https://download.savannah.nongnu.org/releases/oath-toolkit/' +attr='oathToolkit' +command='oathtool --version' + +color() { + printf '%s: \033[%sm%s\033[39m\n' "$0" "$1" "$2" >&2 || true +} + +color 32 "downloading $release_url..." +if ! release_page=$(curl -Lf "$release_url"); then + color 31 "cannot download release page" + exit 1 +fi + +tarball_name=$(printf '%s\n' "$release_page" \ + | grep -Po '(?<=href=").*?\.tar\.gz(?=")' \ + | sort -n | tail -n1) +tarball_version="${tarball_name%.tar.*}" +tarball_version="${tarball_version##*-}" +tarball_url="mirror://savannah${release_url#https://*/releases}$tarball_name" + +color 32 "nix-prefetch-url $tarball_url..." +if ! tarball_sha256=$(nix-prefetch-url --type sha256 "$tarball_url"); then + color 31 "cannot prefetch $tarball_url" + exit 1 +fi + +old_version=$(grep -Pom1 '(?<=version = ").*?(?=";)' "$nixfile") + +version=$(printf 'version = "%s";\n' "$tarball_version") +sha256=$(printf 'sha256 = "%s";\n' "$tarball_sha256") +sed -e "s,version = .*,$version," -e "s,sha256 = .*,$sha256," -i "$nixfile" + +if git diff --exit-code "$nixfile" > /dev/stderr; then + printf '\n' >&2 || true + color 32 "$tarball_version is up to date" +else + color 32 "running '$command' with nix-shell..." + nix-shell -p "callPackage ./$nixfile {}" --run "$command" + msg="$attr: $old_version -> $tarball_version" + printf '\n' >&2 || true + color 31 "$msg" + git commit -m "$msg" "$nixfile" +fi diff --git a/pkgs/tools/security/qdigidoc/default.nix b/pkgs/tools/security/qdigidoc/default.nix index 8ba6937c4486..86dc3dfff335 100644 --- a/pkgs/tools/security/qdigidoc/default.nix +++ b/pkgs/tools/security/qdigidoc/default.nix @@ -3,20 +3,23 @@ mkDerivation rec { pname = "qdigidoc"; - version = "4.2.3"; + version = "4.2.8"; src = fetchgit { url = "https://github.com/open-eid/DigiDoc4-Client"; rev = "v${version}"; - sha256 = "1hj49vvg8vrayr9kpz73fafa7k298hmiamkyd8c3ipy6s51xh6q4"; + sha256 = "02k2s6l79ssvrksa0midm7bq856llrmq0n40yxwm3j011nvc8vsm"; fetchSubmodules = true; }; tsl = fetchurl { url = "https://ec.europa.eu/information_society/policy/esignature/trusted-list/tl-mp.xml"; - sha256 = "0llr2fj8vd097hcr1d0xmzdy4jydv0b5j5qlksbjffs22rqgal14"; + sha256 = "0klz9blrp0jjhlr9k1i266afp44pqmii1x0y8prk0417ia3fxpli"; }; + # Adds explicit imports for QPainterPath, fixed in upstream (https://github.com/open-eid/DigiDoc4-Client/pull/914) + patches = [ ./qt5.15.patch ]; + nativeBuildInputs = [ cmake darkhttpd gettext makeWrapper pkg-config ]; postPatch = '' diff --git a/pkgs/tools/security/qdigidoc/qt5.15.patch b/pkgs/tools/security/qdigidoc/qt5.15.patch new file mode 100644 index 000000000000..6f390702348b --- /dev/null +++ b/pkgs/tools/security/qdigidoc/qt5.15.patch @@ -0,0 +1,39 @@ +From 1aa314f5433b9b3e89a1c05b5c465fb477435e23 Mon Sep 17 00:00:00 2001 +From: Dmitri Smirnov +Date: Mon, 8 Mar 2021 14:15:27 +0100 +Subject: [PATCH] =?UTF-8?q?Added=20explicit=20imports=20for=20QPainterPath?= + =?UTF-8?q?=20to=20fix=20builds=20with=20Qt=20=E2=89=A5=205.15?= +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +Signed-off-by: Dmitri Smirnov +--- + client/widgets/CheckBox.cpp | 1 + + client/widgets/MainAction.cpp | 1 + + 2 files changed, 2 insertions(+) + +diff --git a/client/widgets/CheckBox.cpp b/client/widgets/CheckBox.cpp +index a03b56e5d..725d585b7 100644 +--- a/client/widgets/CheckBox.cpp ++++ b/client/widgets/CheckBox.cpp +@@ -22,6 +22,7 @@ + #include + #include + #include ++#include + #include + + CheckBox::CheckBox(QWidget *parent) +diff --git a/client/widgets/MainAction.cpp b/client/widgets/MainAction.cpp +index 4cf4bb1cf..a46c193e3 100644 +--- a/client/widgets/MainAction.cpp ++++ b/client/widgets/MainAction.cpp +@@ -24,6 +24,7 @@ + + #include + #include ++#include + #include + + using namespace ria::qdigidoc4; diff --git a/pkgs/tools/text/replace/default.nix b/pkgs/tools/text/replace/default.nix index 117fb737aa06..a0873d1c8d2b 100644 --- a/pkgs/tools/text/replace/default.nix +++ b/pkgs/tools/text/replace/default.nix @@ -1,11 +1,12 @@ { lib, stdenv, fetchurl }: -stdenv.mkDerivation { - name = "replace-2.24"; +stdenv.mkDerivation rec { + pname = "replace"; + version = "2.24"; src = fetchurl { - url = "ftp://hpux.connect.org.uk/hpux/Users/replace-2.24/replace-2.24-src-11.11.tar.gz"; - sha256 = "1c2nkxx83vmlh1v3ib6r2xqh121gdb1rharwsimcb2h0xwc558dm"; + url = "http://hpux.connect.org.uk/ftp/hpux/Users/replace-${version}/replace-${version}-src-11.31.tar.gz"; + sha256 = "18hkwhaz25s6209n5mpx9hmkyznlzygqj488p2l7nvp9zrlxb9sf"; }; outputs = [ "out" "man" ]; diff --git a/pkgs/tools/typesetting/satysfi/default.nix b/pkgs/tools/typesetting/satysfi/default.nix index 73370eb011e4..d18c7fc270e3 100644 --- a/pkgs/tools/typesetting/satysfi/default.nix +++ b/pkgs/tools/typesetting/satysfi/default.nix @@ -53,7 +53,7 @@ in nativeBuildInputs = [ ruby dune_2 ]; buildInputs = [ camlpdf otfm yojson-with-position ] ++ (with ocamlPackages; [ - ocaml findlib menhir + ocaml findlib menhir menhirLib batteries camlimages core_kernel ppx_deriving uutf omd cppo re ]); diff --git a/pkgs/tools/wayland/wlrctl/default.nix b/pkgs/tools/wayland/wlrctl/default.nix new file mode 100644 index 000000000000..7cb54d381b0b --- /dev/null +++ b/pkgs/tools/wayland/wlrctl/default.nix @@ -0,0 +1,26 @@ +{ lib, stdenv, fetchFromSourcehut, meson, pkg-config, scdoc, ninja, libxkbcommon, wayland }: + +stdenv.mkDerivation rec { + pname = "wlrctl"; + version = "0.2.1"; + + src = fetchFromSourcehut { + owner = "~brocellous"; + repo = "wlrctl"; + rev = "v${version}"; + sha256 = "039cxc82k7x473n6d65jray90rj35qmfdmr390zy0c7ic7vn4b78"; + }; + + nativeBuildInputs = [ meson pkg-config scdoc ninja ]; + buildInputs = [ libxkbcommon wayland ]; + + NIX_CFLAGS_COMPILE = "-Wno-error=type-limits"; + + meta = with lib; { + description = "Command line utility for miscellaneous wlroots Wayland extensions"; + homepage = "https://git.sr.ht/~brocellous/wlrctl"; + license = licenses.mit; + maintainers = with maintainers; [ puffnfresh artturin ]; + platforms = platforms.unix; + }; +} diff --git a/pkgs/top-level/aliases.nix b/pkgs/top-level/aliases.nix index cd4ad8b1a7a2..89553642a2da 100644 --- a/pkgs/top-level/aliases.nix +++ b/pkgs/top-level/aliases.nix @@ -654,7 +654,6 @@ mapAliases ({ rdiff_backup = rdiff-backup; # added 2014-11-23 rdmd = dtools; # added 2017-08-19 readline80 = throw "readline-8.0 is no longer supported in nixpkgs, please use 'readline' for main supported version or 'readline81' for most recent version"; # added 2021-04-22 - retroshare = throw "retroshare was removed because it was broken"; # added 2021-05-17 rhc = throw "rhc was deprecated on 2019-04-09: abandoned by upstream."; rng_tools = rng-tools; # added 2018-10-24 robomongo = robo3t; #added 2017-09-28 diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 188de7897ef5..c537b0545a37 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -241,6 +241,8 @@ in chrysalis = callPackage ../applications/misc/chrysalis { }; + clifm = callPackage ../applications/misc/clifm { }; + clj-kondo = callPackage ../development/tools/clj-kondo { }; cmark = callPackage ../development/libraries/cmark { }; @@ -409,6 +411,8 @@ in ebook2cw = callPackage ../applications/radio/ebook2cw { }; + edwin = callPackage ../data/fonts/edwin { }; + etBook = callPackage ../data/fonts/et-book { }; fetchutils = callPackage ../tools/misc/fetchutils { }; @@ -854,6 +858,10 @@ in amidst = callPackage ../tools/games/amidst { }; + gamemode = callPackage ../tools/games/gamemode { + libgamemode32 = pkgsi686Linux.gamemode.lib; + }; + gfshare = callPackage ../tools/security/gfshare { }; gobgp = callPackage ../tools/networking/gobgp { }; @@ -868,6 +876,8 @@ in tnat64 = callPackage ../tools/networking/tnat64 { }; + veikk-linux-driver-gui = libsForQt5.callPackage ../tools/misc/veikk-linux-driver-gui { }; + xcd = callPackage ../tools/misc/xcd { }; xtrt = callPackage ../tools/archivers/xtrt { }; @@ -933,7 +943,7 @@ in }; logseq = callPackage ../applications/misc/logseq { - electron = electron_11; + electron = electron_12; }; lxterminal = callPackage ../applications/terminal-emulators/lxterminal { }; @@ -1417,6 +1427,8 @@ in dfmt = callPackage ../tools/text/dfmt { }; + diopser = callPackage ../applications/audio/diopser { }; + diskonaut = callPackage ../tools/misc/diskonaut { }; diskus = callPackage ../tools/misc/diskus { @@ -1900,6 +1912,8 @@ in blur-effect = callPackage ../tools/graphics/blur-effect { }; + bootiso = callPackage ../tools/cd-dvd/bootiso { }; + butane = callPackage ../development/tools/butane { }; charles = charles4; @@ -2268,6 +2282,8 @@ in wlr-randr = callPackage ../tools/wayland/wlr-randr { }; + wlrctl = callPackage ../tools/wayland/wlrctl { }; + wlsunset = callPackage ../tools/wayland/wlsunset { }; wob = callPackage ../tools/wayland/wob { }; @@ -7262,6 +7278,8 @@ in nnn = callPackage ../applications/misc/nnn { }; + sfm = callPackage ../applications/misc/sfm { }; + shfm = callPackage ../applications/misc/shfm { }; noise-repellent = callPackage ../applications/audio/noise-repellent { }; @@ -8502,6 +8520,8 @@ in sdl-jstest = callPackage ../tools/misc/sdl-jstest { }; + senpai = callPackage ../applications/networking/irc/senpai { }; + skim = callPackage ../tools/misc/skim { }; seaweedfs = callPackage ../applications/networking/seaweedfs { }; @@ -9384,6 +9404,8 @@ in untrunc-anthwlock = callPackage ../tools/video/untrunc-anthwlock { }; + unvanquished = callPackage ../games/unvanquished { }; + up = callPackage ../tools/misc/up { }; upterm = callPackage ../tools/misc/upterm { }; @@ -11645,13 +11667,15 @@ in open-watcom-bin = callPackage ../development/compilers/open-watcom-bin { }; + passerine = callPackage ../development/compilers/passerine { }; + pforth = callPackage ../development/compilers/pforth {}; picat = callPackage ../development/compilers/picat { }; ponyc = callPackage ../development/compilers/ponyc { # Upstream pony has dropped support for versions compiled with gcc. - stdenv = clangStdenv; + stdenv = llvmPackages_9.stdenv; }; pony-corral = callPackage ../development/compilers/ponyc/pony-corral.nix { }; @@ -13074,9 +13098,7 @@ in # Does not actually depend on Qt 5 inherit (plasma5Packages) extra-cmake-modules; - coccinelle = callPackage ../development/tools/misc/coccinelle { - ocamlPackages = ocaml-ng.ocamlPackages_4_05; - }; + coccinelle = callPackage ../development/tools/misc/coccinelle { }; cpptest = callPackage ../development/libraries/cpptest { }; @@ -14862,6 +14884,8 @@ in inherit fontconfig fontDirectories; }; + f2c = callPackage ../development/tools/f2c { }; + freealut = callPackage ../development/libraries/freealut { }; freeglut = callPackage ../development/libraries/freeglut { }; @@ -14978,6 +15002,8 @@ in ghcid = haskellPackages.ghcid.bin; + graphia = libsForQt5.callPackage ../applications/science/misc/graphia { }; + icon-lang = callPackage ../development/interpreters/icon-lang { }; libgit2 = callPackage ../development/libraries/git2 { @@ -16825,8 +16851,9 @@ in libutempter = callPackage ../development/libraries/libutempter { }; - libunwind = if stdenv.isDarwin - then darwin.libunwind + libunwind = + if stdenv.isDarwin then darwin.libunwind + else if stdenv.hostPlatform.isRiscV then llvmPackages_latest.libunwind else callPackage ../development/libraries/libunwind { }; libuv = callPackage ../development/libraries/libuv { @@ -17165,6 +17192,8 @@ in mutest = callPackage ../development/libraries/mutest { }; + mvapich = callPackage ../development/libraries/mvapich { }; + mygpoclient = pythonPackages.mygpoclient; mygui = callPackage ../development/libraries/mygui { @@ -18599,6 +18628,8 @@ in xsimd = callPackage ../development/libraries/xsimd { }; + xtensor = callPackage ../development/libraries/xtensor { }; + xtl = callPackage ../development/libraries/xtl { }; xvidcore = callPackage ../development/libraries/xvidcore { }; @@ -22915,6 +22946,8 @@ in bookworm = callPackage ../applications/office/bookworm { }; + boops = callPackage ../applications/audio/boops { }; + CHOWTapeModel = callPackage ../applications/audio/CHOWTapeModel { }; chromium = callPackage ../applications/networking/browsers/chromium (config.chromium or {}); @@ -25323,6 +25356,7 @@ in simple-mpv-webui = callPackage ../applications/video/mpv/scripts/simple-mpv-webui.nix {}; sponsorblock = callPackage ../applications/video/mpv/scripts/sponsorblock.nix {}; thumbnail = callPackage ../applications/video/mpv/scripts/thumbnail.nix { }; + youtube-quality = callPackage ../applications/video/mpv/scripts/youtube-quality.nix { }; }; mrpeach = callPackage ../applications/audio/pd-plugins/mrpeach { }; @@ -25523,6 +25557,8 @@ in softmaker-office = callPackage ../applications/office/softmaker/softmaker_office.nix {}; + songrec = callPackage ../applications/audio/songrec {}; + spacegun = callPackage ../applications/networking/cluster/spacegun {}; stride = callPackage ../applications/networking/instant-messengers/stride { }; @@ -26299,6 +26335,8 @@ in remotebox = callPackage ../applications/virtualization/remotebox { }; + retroshare = libsForQt5.callPackage ../applications/networking/p2p/retroshare { }; + rgp = libsForQt5.callPackage ../development/tools/rgp { }; ricochet = libsForQt5.callPackage ../applications/networking/instant-messengers/ricochet { }; @@ -27965,6 +28003,8 @@ in btcpayserver = callPackage ../applications/blockchains/btcpayserver { }; + charge-lnd = callPackage ../applications/blockchains/charge-lnd { }; + cryptop = python3.pkgs.callPackage ../applications/blockchains/cryptop { }; dashpay = callPackage ../applications/blockchains/dashpay.nix { }; @@ -28325,6 +28365,8 @@ in fava = callPackage ../applications/office/fava {}; + fheroes2 = callPackage ../games/fheroes2 {}; + fish-fillets-ng = callPackage ../games/fish-fillets-ng {}; flightgear = libsForQt5.callPackage ../games/flightgear { }; @@ -28914,12 +28956,16 @@ in toppler = callPackage ../games/toppler { }; + torus-trooper = callPackage ../games/torus-trooper { }; + trackballs = callPackage ../games/trackballs { }; tremulous = callPackage ../games/tremulous { }; tts = callPackage ../tools/audio/tts { }; + tumiki-fighters = callPackage ../games/tumiki-fighters { }; + tuxpaint = callPackage ../games/tuxpaint { }; tuxtype = callPackage ../games/tuxtype { }; @@ -30220,6 +30266,8 @@ in autotiling = python3Packages.callPackage ../misc/autotiling { }; + avell-unofficial-control-center = python3Packages.callPackage ../applications/misc/avell-unofficial-control-center { }; + beep = callPackage ../misc/beep { }; bees = callPackage ../tools/filesystems/bees { }; @@ -30304,6 +30352,8 @@ in darling-dmg = callPackage ../tools/filesystems/darling-dmg { }; + depotdownloader = callPackage ../tools/misc/depotdownloader { }; + desmume = callPackage ../misc/emulators/desmume { inherit (pkgs.gnome2) gtkglext libglade; }; dbacl = callPackage ../tools/misc/dbacl { }; @@ -30372,6 +30422,10 @@ in faustlive = callPackage ../applications/audio/faust/faustlive.nix { }; + faustPhysicalModeling = callPackage ../applications/audio/faustPhysicalModeling { }; + + faustStk = callPackage ../applications/audio/faustStk { }; + fceux = callPackage ../misc/emulators/fceux { }; flockit = callPackage ../tools/backup/flockit { }; @@ -31741,6 +31795,8 @@ in zenstates = callPackage ../os-specific/linux/zenstates {}; + ryzenadj = callPackage ../os-specific/linux/ryzenadj {}; + vpsfree-client = callPackage ../tools/virtualization/vpsfree-client {}; gpio-utils = callPackage ../os-specific/linux/kernel/gpio-utils.nix { }; diff --git a/pkgs/top-level/dotnet-packages.nix b/pkgs/top-level/dotnet-packages.nix index 53af113eb307..b26dd1b1e59d 100644 --- a/pkgs/top-level/dotnet-packages.nix +++ b/pkgs/top-level/dotnet-packages.nix @@ -33,10 +33,17 @@ let self = dotnetPackages // overrides; dotnetPackages = with self; { Fantomas = fetchNuGet { baseName = "Fantomas"; - version = "1.6.0"; - sha256 = "1b9rd3i76b5xzv0j62dvfr1ksdwvb59vxw6jhzpi018axjn6757q"; + version = "4.4.0"; + sha256 = "cYz0ewJdK9nRlMKmigk3IENfOXvJRhXJfLXshaqgZ6o="; outputFiles = [ "lib/*" ]; dllFiles = [ "Fantomas*.dll" ]; + + meta = with lib; { + description = "FSharp source code formatter"; + homepage = "https://github.com/fsprojects/fantomas"; + license = licenses.asl20; + maintainers = [ maintainers.ratsclub ]; + }; }; FSharpCompilerCodeDom = fetchNuGet { @@ -74,6 +81,20 @@ let self = dotnetPackages // overrides; dotnetPackages = with self; { outputFiles = [ "*" ]; }; + FSharpData = fetchNuGet { + baseName = "FSharp.Data"; + version = "4.1.1"; + sha256 = "0ytjiQi8vQQU51JYexnC13Bi7NqVmLRzM75SOZ+hhQU="; + outputFiles = [ "lib/*" ]; + + meta = with lib; { + description = "F# Data: Library for Data Access"; + homepage = "https://fsprojects.github.io/FSharp.Data/"; + license = licenses.asl20; + maintainers = [ maintainers.ratsclub ]; + }; + }; + FSharpData225 = fetchNuGet { baseName = "FSharp.Data"; version = "2.2.5"; @@ -609,50 +630,6 @@ let self = dotnetPackages // overrides; dotnetPackages = with self; { }; }; - FSharpData = buildDotnetPackage rec { - baseName = "FSharp.Data"; - version = "2.2.3"; - - src = fetchFromGitHub { - owner = "fsharp"; - repo = baseName; - rev = version; - sha256 = "1h3v9rc8k0khp61cv5n01larqbxd3xcx3q52sw5zf9l0661vw7qr"; - }; - - buildInputs = [ fsharp ]; - - fileProvidedTypes = fetchurl { - name = "ProvidedTypes.fs"; - url = "https://raw.githubusercontent.com/fsprojects/FSharp.TypeProviders.StarterPack/877014bfa6244ac382642e113d7cd6c9bc27bc6d/src/ProvidedTypes.fs"; - sha256 = "1lb056v1xld1rfx6a8p8i2jz8i6qa2r2823n5izsf1qg1qgf2980"; - }; - - fileDebugProvidedTypes = fetchurl { - name = "DebugProvidedTypes.fs"; - url = "https://raw.githubusercontent.com/fsprojects/FSharp.TypeProviders.StarterPack/877014bfa6244ac382642e113d7cd6c9bc27bc6d/src/DebugProvidedTypes.fs"; - sha256 = "1whyrf2jv6fs7kgysn2086v15ggjsd54g1xfs398mp46m0nxp91f"; - }; - - preConfigure = '' - # Copy single-files-in-git-repos - mkdir -p "paket-files/fsprojects/FSharp.TypeProviders.StarterPack/src" - cp -v "${fileProvidedTypes}" "paket-files/fsprojects/FSharp.TypeProviders.StarterPack/src/ProvidedTypes.fs" - cp -v "${fileDebugProvidedTypes}" "paket-files/fsprojects/FSharp.TypeProviders.StarterPack/src/DebugProvidedTypes.fs" - ''; - - xBuildFiles = [ "src/FSharp.Data.fsproj" "src/FSharp.Data.DesignTime.fsproj" ]; - outputFiles = [ "bin/*.dll" "bin/*.xml" ]; - - meta = { - description = "F# Data: Library for Data Access"; - homepage = "https://fsharp.github.io/FSharp.Data/"; - license = lib.licenses.asl20; - maintainers = with lib.maintainers; [ obadz ]; - platforms = with lib.platforms; linux; - }; - }; - # FSharpxExtras = buildDotnetPackage rec { # baseName = "FSharpx.Extras"; # version = "1.8.41"; @@ -970,4 +947,18 @@ let self = dotnetPackages // overrides; dotnetPackages = with self; { }; }; + YamlDotNet = fetchNuGet { + baseName = "YamlDotNet"; + version = "11.1.1"; + sha256 = "rwZ/QyDVrN3wGrEYKY3QY5Xqo2Tp3FkR6dh4QrC+QS0="; + outputFiles = [ "lib/*" ]; + + meta = with lib; { + description = "YamlDotNet is a .NET library for YAML"; + homepage = "https://github.com/aaubry/YamlDotNet"; + license = licenses.mit; + maintainers = [ maintainers.ratsclub ]; + }; + }; + }; in self diff --git a/pkgs/top-level/ocaml-packages.nix b/pkgs/top-level/ocaml-packages.nix index fe8eee65d0c3..92894bf7a3bb 100644 --- a/pkgs/top-level/ocaml-packages.nix +++ b/pkgs/top-level/ocaml-packages.nix @@ -191,6 +191,8 @@ let containers-data = callPackage ../development/ocaml-modules/containers/data.nix { }; + cooltt = callPackage ../development/ocaml-modules/cooltt { }; + cow = callPackage ../development/ocaml-modules/cow { }; cpdf = callPackage ../development/ocaml-modules/cpdf { }; @@ -643,6 +645,10 @@ let menhir = callPackage ../development/ocaml-modules/menhir { }; + menhirLib = callPackage ../development/ocaml-modules/menhir/lib.nix { }; + + menhirSdk = callPackage ../development/ocaml-modules/menhir/sdk.nix { }; + merlin = if lib.versionAtLeast ocaml.version "4.11" then callPackage ../development/tools/ocaml/merlin/4.x.nix { } @@ -1169,6 +1175,8 @@ let ssl = callPackage ../development/ocaml-modules/ssl { }; + stdcompat = callPackage ../development/ocaml-modules/stdcompat { }; + stdlib-shims = callPackage ../development/ocaml-modules/stdlib-shims { }; stog = callPackage ../applications/misc/stog { }; diff --git a/pkgs/top-level/python-packages.nix b/pkgs/top-level/python-packages.nix index d39487bf1ec7..35935450e2a9 100644 --- a/pkgs/top-level/python-packages.nix +++ b/pkgs/top-level/python-packages.nix @@ -223,6 +223,10 @@ in { agent-py = callPackage ../development/python-modules/agent-py { }; + aio-georss-client = callPackage ../development/python-modules/aio-georss-client { }; + + aio-georss-gdacs = callPackage ../development/python-modules/aio-georss-gdacs { }; + aioambient = callPackage ../development/python-modules/aioambient { }; ailment = callPackage ../development/python-modules/ailment { }; @@ -2195,6 +2199,8 @@ in { elementpath = callPackage ../development/python-modules/elementpath { }; + elevate = callPackage ../development/python-modules/elevate { }; + eliot = callPackage ../development/python-modules/eliot { }; elmax = callPackage ../development/python-modules/elmax { }; @@ -2740,6 +2746,22 @@ in { geopy = callPackage ../development/python-modules/geopy { }; + georss-client = callPackage ../development/python-modules/georss-client { }; + + georss-generic-client = callPackage ../development/python-modules/georss-generic-client { }; + + georss-ign-sismologia-client = callPackage ../development/python-modules/georss-ign-sismologia-client { }; + + georss-ingv-centro-nazionale-terremoti-client = callPackage ../development/python-modules/georss-ingv-centro-nazionale-terremoti-client { }; + + georss-nrcan-earthquakes-client = callPackage ../development/python-modules/georss-nrcan-earthquakes-client { }; + + georss-qld-bushfire-alert-client = callPackage ../development/python-modules/georss-qld-bushfire-alert-client { }; + + georss-tfs-incidents-client = callPackage ../development/python-modules/georss-tfs-incidents-client { }; + + georss-wa-dfes-client = callPackage ../development/python-modules/georss-wa-dfes-client { }; + getmac = callPackage ../development/python-modules/getmac { }; getkey = callPackage ../development/python-modules/getkey { }; @@ -7892,6 +7914,8 @@ in { sphinxcontrib-devhelp = callPackage ../development/python-modules/sphinxcontrib-devhelp { }; + sphinxcontrib-excel-table = callPackage ../development/python-modules/sphinxcontrib-excel-table { }; + sphinxcontrib-fulltoc = callPackage ../development/python-modules/sphinxcontrib-fulltoc { }; sphinxcontrib-htmlhelp = callPackage ../development/python-modules/sphinxcontrib-htmlhelp { }; @@ -8074,6 +8098,8 @@ in { subdownloader = callPackage ../development/python-modules/subdownloader { }; + subliminal = callPackage ../development/python-modules/subliminal { }; + subunit = callPackage ../development/python-modules/subunit { inherit (pkgs) subunit cppunit check; };