nixpkgs mirror (for testing) github.com/NixOS/nixpkgs
nix

Merge staging-next into staging

authored by

github-actions[bot] and committed by
GitHub
26e826e1 405bff26

+1499 -921
+14 -1
maintainers/maintainer-list.nix
··· 1061 1061 githubId = 1342360; 1062 1062 name = "Andrew Morgan"; 1063 1063 }; 1064 + anpin = { 1065 + email = "pavel@anpin.fyi"; 1066 + github = "anpin"; 1067 + githubId = 6060545; 1068 + matrix = "@anpin:matrix.org"; 1069 + name = "Pavel Anpin"; 1070 + keys = [{ 1071 + fingerprint = "06E8 4FF6 0CCF 7AFD 5101 76C9 0FBC D3EE 6310 7407"; 1072 + }]; 1073 + }; 1064 1074 anpryl = { 1065 1075 email = "anpryl@gmail.com"; 1066 1076 github = "anpryl"; ··· 3314 3304 }]; 3315 3305 }; 3316 3306 cyntheticfox = { 3317 - email = "houstdav000@gmail.com"; 3307 + email = "cyntheticfox@gh0st.sh"; 3318 3308 github = "cyntheticfox"; 3319 3309 githubId = 17628961; 3310 + keys = [{ 3311 + fingerprint = "73C1 C5DF 51E7 BB92 85E9 A262 5960 278C E235 F821"; 3312 + }]; 3320 3313 matrix = "@houstdav000:gh0st.ems.host"; 3321 3314 name = "Cynthia Fox"; 3322 3315 };
+2
nixos/doc/manual/release-notes/rl-2305.section.md
··· 95 95 96 96 - [jellyseerr](https://github.com/Fallenbagel/jellyseerr), a web-based requests manager for Jellyfin, forked from Overseerr. Available as [services.jellyseerr](#opt-services.jellyseerr.enable). 97 97 98 + - [stargazer](https://sr.ht/~zethra/stargazer/), a fast and easy to use Gemini server. Available as [services.stargazer](#opt-services.stargazer.enable). 99 + 98 100 - [photoprism](https://photoprism.app/), a AI-Powered Photos App for the Decentralized Web. Available as [services.photoprism](options.html#opt-services.photoprism.enable). 99 101 100 102 - [peroxide](https://github.com/ljanyst/peroxide), a fork of the official [ProtonMail bridge](https://github.com/ProtonMail/proton-bridge) that aims to be similar to [Hydroxide](https://github.com/emersion/hydroxide). Available as [services.peroxide](#opt-services.peroxide.enable).
+1
nixos/modules/module-list.nix
··· 1243 1243 ./services/web-servers/nginx/gitweb.nix 1244 1244 ./services/web-servers/phpfpm/default.nix 1245 1245 ./services/web-servers/pomerium.nix 1246 + ./services/web-servers/stargazer.nix 1246 1247 ./services/web-servers/tomcat.nix 1247 1248 ./services/web-servers/traefik.nix 1248 1249 ./services/web-servers/trafficserver/default.nix
+198
nixos/modules/services/web-servers/stargazer.nix
··· 1 + { config, lib, pkgs, ... }: 2 + 3 + with lib; 4 + 5 + let 6 + cfg = config.services.stargazer; 7 + routesFormat = pkgs.formats.ini { }; 8 + globalFile = pkgs.writeText "global.ini" '' 9 + listen = ${concatStringsSep " " cfg.listen} 10 + connection-logging = ${boolToString cfg.connectionLogging} 11 + log-ip = ${boolToString cfg.ipLog} 12 + log-ip-partial = ${boolToString cfg.ipLogPartial} 13 + request-timeout = ${toString cfg.requestTimeout} 14 + response-timeout = ${toString cfg.responseTimeout} 15 + 16 + [:tls] 17 + store = ${toString cfg.store} 18 + organization = ${cfg.certOrg} 19 + gen-certs = ${boolToString cfg.genCerts} 20 + regen-certs = ${boolToString cfg.regenCerts} 21 + ${optionalString (cfg.certLifetime != "") "cert-lifetime = ${cfg.certLifetime}"} 22 + 23 + ''; 24 + routesFile = routesFormat.generate "router.ini" cfg.routes; 25 + configFile = pkgs.runCommand "config.ini" { } '' 26 + cat ${globalFile} ${routesFile} > $out 27 + ''; 28 + in 29 + { 30 + options.services.stargazer = { 31 + enable = mkEnableOption (lib.mdDoc "Stargazer Gemini server"); 32 + 33 + listen = lib.mkOption { 34 + type = types.listOf types.str; 35 + default = [ "0.0.0.0" ] ++ optional config.networking.enableIPv6 "[::0]"; 36 + defaultText = literalExpression ''[ "0.0.0.0" ] ++ lib.optional config.networking.enableIPv6 "[::0]"''; 37 + example = literalExpression ''[ "10.0.0.12" "[2002:a00:1::]" ]''; 38 + description = lib.mdDoc '' 39 + Address and port to listen on. 40 + ''; 41 + }; 42 + 43 + connectionLogging = lib.mkOption { 44 + type = types.bool; 45 + default = true; 46 + description = lib.mdDoc "Whether or not to log connections to stdout."; 47 + }; 48 + 49 + ipLog = lib.mkOption { 50 + type = types.bool; 51 + default = false; 52 + description = lib.mdDoc "Log client IP addresses in the connection log."; 53 + }; 54 + 55 + ipLogPartial = lib.mkOption { 56 + type = types.bool; 57 + default = false; 58 + description = lib.mdDoc "Log partial client IP addresses in the connection log."; 59 + }; 60 + 61 + requestTimeout = lib.mkOption { 62 + type = types.int; 63 + default = 5; 64 + description = lib.mdDoc '' 65 + Number of seconds to wait for the client to send a complete 66 + request. Set to 0 to disable. 67 + ''; 68 + }; 69 + 70 + responseTimeout = lib.mkOption { 71 + type = types.int; 72 + default = 0; 73 + description = lib.mdDoc '' 74 + Number of seconds to wait for the client to send a complete 75 + request and for stargazer to finish sending the response. 76 + Set to 0 to disable. 77 + ''; 78 + }; 79 + 80 + store = lib.mkOption { 81 + type = types.path; 82 + default = /var/lib/gemini/certs; 83 + description = lib.mdDoc '' 84 + Path to the certificate store on disk. This should be a 85 + persistent directory writable by Stargazer. 86 + ''; 87 + }; 88 + 89 + certOrg = lib.mkOption { 90 + type = types.str; 91 + default = "stargazer"; 92 + description = lib.mdDoc '' 93 + The name of the organization responsible for the X.509 94 + certificate's /O name. 95 + ''; 96 + }; 97 + 98 + genCerts = lib.mkOption { 99 + type = types.bool; 100 + default = true; 101 + description = lib.mdDoc '' 102 + Set to false to disable automatic certificate generation. 103 + Use if you want to provide your own certs. 104 + ''; 105 + }; 106 + 107 + regenCerts = lib.mkOption { 108 + type = types.bool; 109 + default = true; 110 + description = lib.mdDoc '' 111 + Set to false to turn off automatic regeneration of expired certificates. 112 + Use if you want to provide your own certs. 113 + ''; 114 + }; 115 + 116 + certLifetime = lib.mkOption { 117 + type = types.str; 118 + default = ""; 119 + description = lib.mdDoc '' 120 + How long certs generated by Stargazer should live for. 121 + Certs live forever by default. 122 + ''; 123 + example = literalExpression "\"1y\""; 124 + }; 125 + 126 + routes = lib.mkOption { 127 + type = routesFormat.type; 128 + default = { }; 129 + description = lib.mdDoc '' 130 + Routes that Stargazer should server. 131 + 132 + [Refer to upstream docs](https://git.sr.ht/~zethra/stargazer/tree/main/item/doc/stargazer.ini.5.txt) 133 + ''; 134 + example = literalExpression '' 135 + { 136 + "example.com" = { 137 + root = "/srv/gemini/example.com"; 138 + }; 139 + "example.com:/man" = { 140 + root = "/cgi-bin"; 141 + cgi = true; 142 + }; 143 + "other.org~(.*)" = { 144 + redirect = "gemini://example.com"; 145 + rewrite = "\1"; 146 + }; 147 + } 148 + ''; 149 + }; 150 + 151 + user = mkOption { 152 + type = types.str; 153 + default = "stargazer"; 154 + description = lib.mdDoc "User account under which stargazer runs."; 155 + }; 156 + 157 + group = mkOption { 158 + type = types.str; 159 + default = "stargazer"; 160 + description = lib.mdDoc "Group account under which stargazer runs."; 161 + }; 162 + }; 163 + 164 + config = mkIf cfg.enable { 165 + systemd.services.stargazer = { 166 + description = "Stargazer gemini server"; 167 + after = [ "network.target" ]; 168 + wantedBy = [ "multi-user.target" ]; 169 + serviceConfig = { 170 + ExecStart = "${pkgs.stargazer}/bin/stargazer ${configFile}"; 171 + Restart = "always"; 172 + # User and group 173 + User = cfg.user; 174 + Group = cfg.group; 175 + }; 176 + }; 177 + 178 + # Create default cert store 179 + system.activationScripts.makeStargazerCertDir = 180 + optionalAttrs (cfg.store == /var/lib/gemini/certs) '' 181 + mkdir -p /var/lib/gemini/certs 182 + chown -R ${cfg.user}:${cfg.group} /var/lib/gemini/certs 183 + ''; 184 + 185 + users.users = optionalAttrs (cfg.user == "stargazer") { 186 + stargazer = { 187 + group = cfg.group; 188 + isSystemUser = true; 189 + }; 190 + }; 191 + 192 + users.groups = optionalAttrs (cfg.group == "stargazer") { 193 + stargazer = { }; 194 + }; 195 + }; 196 + 197 + meta.maintainers = with lib.maintainers; [ gaykitty ]; 198 + }
+2
nixos/tests/all-tests.nix
··· 645 645 sslh = handleTest ./sslh.nix {}; 646 646 sssd = handleTestOn ["x86_64-linux"] ./sssd.nix {}; 647 647 sssd-ldap = handleTestOn ["x86_64-linux"] ./sssd-ldap.nix {}; 648 + stargazer = runTest ./web-servers/stargazer.nix; 648 649 starship = handleTest ./starship.nix {}; 649 650 step-ca = handleTestOn ["x86_64-linux"] ./step-ca.nix {}; 650 651 stratis = handleTest ./stratis {}; ··· 713 712 tiddlywiki = handleTest ./tiddlywiki.nix {}; 714 713 tigervnc = handleTest ./tigervnc.nix {}; 715 714 timescaledb = handleTest ./timescaledb.nix {}; 715 + promscale = handleTest ./promscale.nix {}; 716 716 timezone = handleTest ./timezone.nix {}; 717 717 tinc = handleTest ./tinc {}; 718 718 tinydns = handleTest ./tinydns.nix {};
+60
nixos/tests/promscale.nix
··· 1 + # mostly copied from ./timescaledb.nix which was copied from ./postgresql.nix 2 + # as it seemed unapproriate to test additional extensions for postgresql there. 3 + 4 + { system ? builtins.currentSystem 5 + , config ? { } 6 + , pkgs ? import ../.. { inherit system config; } 7 + }: 8 + 9 + with import ../lib/testing-python.nix { inherit system pkgs; }; 10 + with pkgs.lib; 11 + 12 + let 13 + postgresql-versions = import ../../pkgs/servers/sql/postgresql pkgs; 14 + test-sql = pkgs.writeText "postgresql-test" '' 15 + CREATE USER promscale SUPERUSER PASSWORD 'promscale'; 16 + CREATE DATABASE promscale OWNER promscale; 17 + ''; 18 + 19 + make-postgresql-test = postgresql-name: postgresql-package: makeTest { 20 + name = postgresql-name; 21 + meta = with pkgs.lib.maintainers; { 22 + maintainers = [ anpin ]; 23 + }; 24 + 25 + nodes.machine = { config, pkgs, ... }: 26 + { 27 + services.postgresql = { 28 + enable = true; 29 + package = postgresql-package; 30 + extraPlugins = with postgresql-package.pkgs; [ 31 + timescaledb 32 + promscale_extension 33 + ]; 34 + settings = { shared_preload_libraries = "timescaledb, promscale"; }; 35 + }; 36 + environment.systemPackages = with pkgs; [ promscale ]; 37 + }; 38 + 39 + testScript = '' 40 + machine.start() 41 + machine.wait_for_unit("postgresql") 42 + with subtest("Postgresql with extensions timescaledb and promscale is available just after unit start"): 43 + print(machine.succeed("sudo -u postgres psql -f ${test-sql}")) 44 + machine.succeed("sudo -u postgres psql promscale -c 'SHOW shared_preload_libraries;' | grep promscale") 45 + machine.succeed( 46 + "promscale --db.name promscale --db.password promscale --db.user promscale --db.ssl-mode allow --startup.install-extensions --startup.only" 47 + ) 48 + machine.succeed("sudo -u postgres psql promscale -c 'SELECT ps_trace.get_trace_retention_period();' | grep '(1 row)'") 49 + machine.shutdown() 50 + ''; 51 + }; 52 + #version 15 is not supported yet 53 + applicablePostgresqlVersions = filterAttrs (_: value: versionAtLeast value.version "12" && !(versionAtLeast value.version "15")) postgresql-versions; 54 + in 55 + mapAttrs' 56 + (name: package: { 57 + inherit name; 58 + value = make-postgresql-test name package; 59 + }) 60 + applicablePostgresqlVersions
+30
nixos/tests/web-servers/stargazer.nix
··· 1 + { pkgs, lib, ... }: 2 + { 3 + name = "stargazer"; 4 + meta = with lib.maintainers; { maintainers = [ gaykitty ]; }; 5 + 6 + nodes = { 7 + geminiserver = { pkgs, ... }: { 8 + services.stargazer = { 9 + enable = true; 10 + routes = { 11 + "localhost" = { 12 + root = toString (pkgs.writeTextDir "index.gmi" '' 13 + # Hello NixOS! 14 + ''); 15 + }; 16 + }; 17 + }; 18 + }; 19 + }; 20 + 21 + testScript = { nodes, ... }: '' 22 + geminiserver.wait_for_unit("stargazer") 23 + geminiserver.wait_for_open_port(1965) 24 + 25 + with subtest("check is serving over gemini"): 26 + response = geminiserver.succeed("${pkgs.gmni}/bin/gmni -j once -i -N gemini://localhost:1965") 27 + print(response) 28 + assert "Hello NixOS!" in response 29 + ''; 30 + }
+5 -3
pkgs/applications/audio/tauon/default.nix
··· 57 57 58 58 patchShebangs compile-phazor.sh 59 59 60 + substituteInPlace compile-phazor.sh --replace 'gcc' '${stdenv.cc.targetPrefix}cc' 61 + 60 62 substituteInPlace extra/tauonmb.desktop --replace 'Exec=/opt/tauon-music-box/tauonmb.sh' 'Exec=${placeholder "out"}/bin/tauon' 61 63 ''; 62 64 ··· 97 95 natsort 98 96 pillow 99 97 plexapi 100 - pulsectl 101 98 pycairo 102 99 pychromecast 103 100 pylast ··· 106 105 requests 107 106 send2trash 108 107 setproctitle 109 - ] ++ lib.optional withDiscordRPC pypresence; 108 + ] ++ lib.optional withDiscordRPC pypresence 109 + ++ lib.optional stdenv.isLinux pulsectl; 110 110 111 111 makeWrapperArgs = [ 112 112 "--prefix PATH : ${lib.makeBinPath [ffmpeg]}" ··· 136 134 changelog = "https://github.com/Taiko2k/TauonMusicBox/releases/tag/v${version}"; 137 135 license = licenses.gpl3; 138 136 maintainers = with maintainers; [ jansol ]; 139 - platforms = platforms.linux; 137 + platforms = platforms.linux ++ platforms.darwin; 140 138 }; 141 139 }
+5 -5
pkgs/applications/editors/standardnotes/src.json
··· 1 1 { 2 - "version": "3.150.45", 2 + "version": "3.151.3", 3 3 "appimage": { 4 4 "x86_64-linux": { 5 - "url": "https://github.com/standardnotes/app/releases/download/%40standardnotes/desktop%403.150.45/standard-notes-3.150.45-linux-x86_64.AppImage", 6 - "hash": "sha512-a1g+nOJJ1MSiCvguFAlAPhwyogAS6cwDD8Ou+P0lufLLG2HyLPdOEwVl8Nhqq4iaFFQoyY3FtKm+Sdpd3WJ72Q==" 5 + "url": "https://github.com/standardnotes/app/releases/download/%40standardnotes/desktop%403.151.3/standard-notes-3.151.3-linux-x86_64.AppImage", 6 + "hash": "sha512-Wk31nB9OjR8E3cPFfh4KpUqQxXsnerzDt5TgaExXW4OeWLftv3ejyf2ROWXAoqG/8K87OclbunCqS3b2g8hAjA==" 7 7 }, 8 8 "aarch64-linux": { 9 - "url": "https://github.com/standardnotes/app/releases/download/%40standardnotes/desktop%403.150.45/standard-notes-3.150.45-linux-arm64.AppImage", 10 - "hash": "sha512-ivnyuMhdBweRs+9Qkt4srm2JlMMxLFDbT0DBaeNCHVuyWM/13LRczIyto2tbPp9xC6DCJmGktjY3ZYsB3odftA==" 9 + "url": "https://github.com/standardnotes/app/releases/download/%40standardnotes/desktop%403.151.3/standard-notes-3.151.3-linux-arm64.AppImage", 10 + "hash": "sha512-nPTpEJs978wxZjG1pN15ETgUBdGBzl574QHCQNo2ShYvhi9Uf38jCaGQIsY0d779eT8kSHuMBXoAiE/flxfWMQ==" 11 11 } 12 12 } 13 13 }
+5 -5
pkgs/applications/misc/1password/default.nix
··· 12 12 if extension == "zip" then fetchzip args else fetchurl args; 13 13 14 14 pname = "1password-cli"; 15 - version = "2.16.1"; 15 + version = "2.17.0"; 16 16 sources = rec { 17 - aarch64-linux = fetch "linux_arm64" "sha256-8zKxd2yY8syGhgyPv06b+ag2bEfFfG19ZmQPrfi+Qh4=" "zip"; 18 - i686-linux = fetch "linux_386" "sha256-3OO0JMJMRqbmq/rD/VRKIMBdjYu66ebEFGNLKX9K6A8=" "zip"; 19 - x86_64-linux = fetch "linux_amd64" "sha256-ZCXfreBiFDc5YFd9YsMddEvzl22KwnnfSQsV6BmHqeA=" "zip"; 20 - aarch64-darwin = fetch "apple_universal" "sha256-vlsqvz+AgEhL7M8cJhxmjjZ6ocIVUdq7MC1EVZOExU8=" "pkg"; 17 + aarch64-linux = fetch "linux_arm64" "sha256-pnLAFCKhQKOIqp0qDv3DfAqF4fDXjFdw7Jl9WgDf7C0=" "zip"; 18 + i686-linux = fetch "linux_386" "sha256-o+pSWUOSzDKA5m+Riu3QOi9gQMyEmbIGcE/yUjKu9p8=" "zip"; 19 + x86_64-linux = fetch "linux_amd64" "sha256-aukQSeC+5p6ioTE6QlzEAM+9VOI34GfzzjaGt/N0klY=" "zip"; 20 + aarch64-darwin = fetch "apple_universal" "sha256-HSXbbeDWYrFTh9SsKwvNovprWRwaDr3rA6X6E1QJJos=" "pkg"; 21 21 x86_64-darwin = aarch64-darwin; 22 22 }; 23 23 platforms = builtins.attrNames sources;
+2 -2
pkgs/applications/misc/pgmodeler/default.nix
··· 11 11 12 12 stdenv.mkDerivation rec { 13 13 pname = "pgmodeler"; 14 - version = "1.0.2"; 14 + version = "1.0.3"; 15 15 16 16 src = fetchFromGitHub { 17 17 owner = "pgmodeler"; 18 18 repo = "pgmodeler"; 19 19 rev = "v${version}"; 20 - sha256 = "sha256-yvVgBfJLjEynsqxQisDfOM99C8/QM0F44RIHAmxh4uU="; 20 + sha256 = "sha256-ZlIz+7YyER0/wQEkEe8XHYHcLK4vu09v1zkDrIgR/Dc="; 21 21 }; 22 22 23 23 nativeBuildInputs = [ pkg-config qmake wrapQtAppsHook ];
+3 -3
pkgs/applications/misc/ttdl/default.nix
··· 5 5 6 6 rustPlatform.buildRustPackage rec { 7 7 pname = "ttdl"; 8 - version = "3.7.1"; 8 + version = "3.8.0"; 9 9 10 10 src = fetchFromGitHub { 11 11 owner = "VladimirMarkelov"; 12 12 repo = "ttdl"; 13 13 rev = "v${version}"; 14 - sha256 = "sha256-Bhi1d01VqeLmxsiyIG8HXD6AgabgsKgZoKYgnGNpk/8="; 14 + sha256 = "sha256-6QfUy1Y7qFOdBFmDFQyRr+GJZSdH+pbU3dEcAjsV1JM="; 15 15 }; 16 16 17 - cargoHash = "sha256-A/5DS7b7Dgj+GlCPu6fx0t14BfMm4XjkpcDjSpeDSnE="; 17 + cargoHash = "sha256-N+mVfgbL22fmynmz4/xFNxQh7l455cH2jyuczc4XsM4="; 18 18 19 19 meta = with lib; { 20 20 description = "A CLI tool to manage todo lists in todo.txt format";
+3 -3
pkgs/applications/networking/cluster/kubeshark/default.nix
··· 2 2 3 3 buildGoModule rec { 4 4 pname = "kubeshark"; 5 - version = "39.5"; 5 + version = "40.0"; 6 6 7 7 src = fetchFromGitHub { 8 8 owner = "kubeshark"; 9 9 repo = "kubeshark"; 10 10 rev = version; 11 - sha256 = "sha256-1SmIL4kA65VlsHw7YUTxklUtXTwMkb12SCpm3Ja24KA="; 11 + sha256 = "sha256-Tmk9xbAqEsJ8nffRX6qw3RKKoBbSO2gmVT5Ff4Cn9DA="; 12 12 }; 13 13 14 - vendorHash = "sha256-cMX9OYErnnnkvmXgau5xLBSv+wo0VTqgo/rYCBmXYZ4="; 14 + vendorHash = "sha256-ckIjmrXkn1AVBQRwM6+wdRwwYHytxKm3rKEe+csORdU="; 15 15 16 16 ldflags = let t = "github.com/kubeshark/kubeshark"; in [ 17 17 "-s" "-w"
+12 -12
pkgs/applications/networking/cluster/terraform-providers/providers.json
··· 318 318 "vendorHash": null 319 319 }, 320 320 "dns": { 321 - "hash": "sha256-Bzj1rLTzWJuqKEq5mz0UAbYMWMp4JoRhedfC2lORocE=", 321 + "hash": "sha256-feMN0Fpq8ct3l0u1Y8Zjgee4iC+e90CwAZmk5VQj2So=", 322 322 "homepage": "https://registry.terraform.io/providers/hashicorp/dns", 323 323 "owner": "hashicorp", 324 324 "repo": "terraform-provider-dns", 325 - "rev": "v3.3.1", 325 + "rev": "v3.3.2", 326 326 "spdx": "MPL-2.0", 327 - "vendorHash": "sha256-wx8BXlobu86Nk9D8o5loKhbO14ANI+shFQ2i7jswKgE=" 327 + "vendorHash": "sha256-SvyeMKuAJ4vu++7Fx0hutx3vQvgf1sh1PFSLPRqJPjw=" 328 328 }, 329 329 "dnsimple": { 330 330 "hash": "sha256-I5TUhq8OZqcLQs/jr8LB22Uc9s5M/WH9LRzV8EsgRnc=", ··· 363 363 "vendorHash": "sha256-rJev48aS0nd8DRWmUN4i0LgDYvfjdfoO67N6AiWeg+k=" 364 364 }, 365 365 "exoscale": { 366 - "hash": "sha256-XbuVvVOv8k7T/7smr73+lvhFMxKtJkaLN3WgvTWIkrA=", 366 + "hash": "sha256-u/2ePkENpx8Q7WcmtNxXR4GIsr2TnIHyOA8CnzTFTnk=", 367 367 "homepage": "https://registry.terraform.io/providers/exoscale/exoscale", 368 368 "owner": "exoscale", 369 369 "repo": "terraform-provider-exoscale", 370 - "rev": "v0.46.0", 370 + "rev": "v0.47.0", 371 371 "spdx": "MPL-2.0", 372 372 "vendorHash": null 373 373 }, ··· 437 437 "vendorHash": "sha256-SLFpH7isx4OM2X9bzWYYD4VlejlgckBovOxthg47OOQ=" 438 438 }, 439 439 "google": { 440 - "hash": "sha256-rF68NnqyEY4BWl+oLOxfTaQw5zEGs6Ue/L9DwzsJ46M=", 440 + "hash": "sha256-92abTfGWNFQMf8YjOxgKEncdqEdbfAt+3BU0fQaSnGk=", 441 441 "homepage": "https://registry.terraform.io/providers/hashicorp/google", 442 442 "owner": "hashicorp", 443 443 "proxyVendor": true, 444 444 "repo": "terraform-provider-google", 445 - "rev": "v4.62.1", 445 + "rev": "v4.63.0", 446 446 "spdx": "MPL-2.0", 447 447 "vendorHash": "sha256-Xm1P6P2tMLqjV9QFX6D7koBPzg4umTH6jCQesyt0A/A=" 448 448 }, 449 449 "google-beta": { 450 - "hash": "sha256-/wcNrCMaXjameyE3o09N+bPjL8r627BJy1vYy1u2iAI=", 450 + "hash": "sha256-OyaMoySQ7qd8fsxMcetZCUVvxi6nWwVJusNV61DASck=", 451 451 "homepage": "https://registry.terraform.io/providers/hashicorp/google-beta", 452 452 "owner": "hashicorp", 453 453 "proxyVendor": true, 454 454 "repo": "terraform-provider-google-beta", 455 - "rev": "v4.62.1", 455 + "rev": "v4.63.0", 456 456 "spdx": "MPL-2.0", 457 457 "vendorHash": "sha256-Xm1P6P2tMLqjV9QFX6D7koBPzg4umTH6jCQesyt0A/A=" 458 458 }, ··· 1089 1089 "vendorHash": "sha256-6UxBnQiogcizff5Rv4eadOeiG5JaXQphUWlfnqELvAI=" 1090 1090 }, 1091 1091 "talos": { 1092 - "hash": "sha256-/Ml+Vsh50U5CoVdnls69iTPoSPpgAtOpO2hWlcmbyKw=", 1092 + "hash": "sha256-bYDFtng6kASmBtQN+iewVOh6HPD57GDUuusiQSVfuBs=", 1093 1093 "homepage": "https://registry.terraform.io/providers/siderolabs/talos", 1094 1094 "owner": "siderolabs", 1095 1095 "repo": "terraform-provider-talos", 1096 - "rev": "v0.1.2", 1096 + "rev": "v0.2.0", 1097 1097 "spdx": "MPL-2.0", 1098 - "vendorHash": "sha256-GkmUKSnqkabwGCl22/90529BWb0oJaIJHYHlS/h3KNY=" 1098 + "vendorHash": "sha256-GNSKSlaFBj2P+z40U+0uwPSOuQBy+9vOVFfPe8p0A24=" 1099 1099 }, 1100 1100 "tencentcloud": { 1101 1101 "hash": "sha256-kIsH+kp+fnYsZatEJOH51lUdQs9cq/8FtpXHZIRzSM0=",
+1 -1
pkgs/applications/networking/instant-messengers/deltachat-desktop/default.nix
··· 25 25 src = fetchFromGitHub { 26 26 owner = "deltachat"; 27 27 repo = "deltachat-core-rust"; 28 - rev = version; 28 + rev = "v${version}"; 29 29 hash = "sha256-bvXZtgFZx94Sw9Tst620HAhi9kmG8PjtWnghdw2ZF84="; 30 30 }; 31 31 cargoDeps = rustPlatform.importCargoLock {
+2 -2
pkgs/applications/networking/instant-messengers/signalbackup-tools/default.nix
··· 2 2 3 3 (if stdenv.isDarwin then darwin.apple_sdk_11_0.clang14Stdenv else stdenv).mkDerivation rec { 4 4 pname = "signalbackup-tools"; 5 - version = "20230421-1"; 5 + version = "20230424-1"; 6 6 7 7 src = fetchFromGitHub { 8 8 owner = "bepaald"; 9 9 repo = pname; 10 10 rev = version; 11 - hash = "sha256-ZQFoajkD7vvz74TXVT7I4D0Qjknt5YxfHYpGi3i01Ns="; 11 + hash = "sha256-G3cAXpHixRVp+FOwyWS+3uuKGp5+7AGLE/1TlghAlFA="; 12 12 }; 13 13 14 14 postPatch = ''
+8 -13
pkgs/applications/science/physics/elmerfem/default.nix
··· 1 - { lib, stdenv, fetchFromGitHub, cmake, git, gfortran, mpi, blas, liblapack, pkg-config, libGL, libGLU, opencascade, libsForQt5, vtk_8_withQt5}: 1 + { lib, stdenv, fetchFromGitHub, cmake, git, gfortran, mpi, blas, liblapack, pkg-config, libGL, libGLU, opencascade, libsForQt5, tbb, vtkWithQt5 }: 2 2 3 3 stdenv.mkDerivation rec { 4 4 pname = "elmerfem"; 5 - version = "9.0"; 5 + version = "unstable-2023-02-03"; 6 6 7 7 src = fetchFromGitHub { 8 8 owner = "elmercsc"; 9 - repo = "elmerfem"; 10 - rev = "release-${version}"; 11 - sha256 = "VK7jvu4s5d7k0c39XqY9dEzg/vXtX5Yr/09VcuZVQ9A="; 9 + repo = pname; 10 + rev = "39c8784b6e4543a6bf560b5d597e0eec1eb06343"; 11 + hash = "sha256-yyxgFvlS+I4PouDL6eD4ZrXuONTDejCSYKq2AwQ0Iug="; 12 12 }; 13 13 14 14 hardeningDisable = [ "format" ]; ··· 29 29 libGL 30 30 libGLU 31 31 opencascade 32 - vtk_8_withQt5 32 + tbb 33 + vtkWithQt5 33 34 ]; 34 35 35 36 preConfigure = '' 36 37 patchShebangs ./ 37 38 ''; 38 - 39 - patches = [ 40 - ./patches/0001-fix-import-of-QPainterPath.patch 41 - ./patches/0002-fem-rename-loopvars-to-avoid-redefinition.patch 42 - ./patches/0003-ignore-qwt_compat.patch 43 - ]; 44 39 45 40 storepath = placeholder "out"; 46 41 ··· 53 58 ]; 54 59 55 60 meta = with lib; { 56 - homepage = "https://elmerfem.org/"; 61 + homepage = "https://elmerfem.org"; 57 62 description = "A finite element software for multiphysical problems"; 58 63 platforms = platforms.unix; 59 64 maintainers = with maintainers; [ wulfsta broke ];
-24
pkgs/applications/science/physics/elmerfem/patches/0001-fix-import-of-QPainterPath.patch
··· 1 - From 87885de957aa3f891fe963503c94685675c24f49 Mon Sep 17 00:00:00 2001 2 - From: grindhold <grindhold@gmx.net> 3 - Date: Wed, 27 Apr 2022 19:16:42 +0200 4 - Subject: [PATCH] fix import of QPainterPath 5 - 6 - --- 7 - ElmerGUI/Application/twod/renderarea.cpp | 1 + 8 - 1 file changed, 1 insertion(+) 9 - 10 - diff --git a/ElmerGUI/Application/twod/renderarea.cpp b/ElmerGUI/Application/twod/renderarea.cpp 11 - index 4c2515c5..65128ea9 100644 12 - --- a/ElmerGUI/Application/twod/renderarea.cpp 13 - +++ b/ElmerGUI/Application/twod/renderarea.cpp 14 - @@ -38,6 +38,7 @@ 15 - * * 16 - *****************************************************************************/ 17 - #include <QPainter> 18 - +#include <QPainterPath> 19 - #include <QMouseEvent> 20 - #include <QFile> 21 - #include <QTextStream> 22 - -- 23 - 2.33.3 24 -
-82
pkgs/applications/science/physics/elmerfem/patches/0002-fem-rename-loopvars-to-avoid-redefinition.patch
··· 1 - From 06634e5fd46a27dca11b87d4a38e9ead561de3d5 Mon Sep 17 00:00:00 2001 2 - From: grindhold <grindhold@gmx.net> 3 - Date: Thu, 28 Apr 2022 15:47:07 +0200 4 - Subject: [PATCH] fem: rename loopvars to avoid redefinition 5 - 6 - --- 7 - fem/src/modules/DCRComplexSolve.F90 | 28 ++++++++++++++-------------- 8 - 1 file changed, 14 insertions(+), 14 deletions(-) 9 - 10 - diff --git a/fem/src/modules/DCRComplexSolve.F90 b/fem/src/modules/DCRComplexSolve.F90 11 - index 469214ee..268591fd 100644 12 - --- a/fem/src/modules/DCRComplexSolve.F90 13 - +++ b/fem/src/modules/DCRComplexSolve.F90 14 - @@ -502,14 +502,14 @@ CONTAINS 15 - 16 - IF ( SIZE(Hwrk,1) == 1 ) THEN 17 - 18 - - DO i=1,MIN(3,SIZE(Hwrk,2)) 19 - - Tensor( i,1:n ) = Hwrk( 1,1,1:n ) 20 - + DO k=1,MIN(3,SIZE(Hwrk,2)) 21 - + Tensor( k,1:n ) = Hwrk( 1,1,1:n ) 22 - END DO 23 - 24 - ELSE 25 - 26 - - DO i=1,MIN(3,SIZE(Hwrk,1)) 27 - - Tensor( i,1:n ) = Hwrk( i,1,1:n ) 28 - + DO k=1,MIN(3,SIZE(Hwrk,1)) 29 - + Tensor( k,1:n ) = Hwrk( k,1,1:n ) 30 - END DO 31 - 32 - END IF 33 - @@ -1391,21 +1391,21 @@ contains 34 - 35 - IF ( SIZE(Hwrk,1) == 1 ) THEN 36 - 37 - - DO i=1,MIN(3,SIZE(Hwrk,2)) 38 - - Tensor( i,i,1:n ) = Hwrk( 1,1,1:n ) 39 - + DO k=1,MIN(3,SIZE(Hwrk,2)) 40 - + Tensor( k,k,1:n ) = Hwrk( 1,1,1:n ) 41 - END DO 42 - 43 - ELSE IF ( SIZE(Hwrk,2) == 1 ) THEN 44 - 45 - - DO i=1,MIN(3,SIZE(Hwrk,1)) 46 - - Tensor(i,i,1:n) = Hwrk(i,1,1:n) 47 - + DO k=1,MIN(3,SIZE(Hwrk,1)) 48 - + Tensor(k,k,1:n) = Hwrk(k,1,1:n) 49 - END DO 50 - 51 - ELSE 52 - 53 - - DO i=1,MIN(3,SIZE(Hwrk,1)) 54 - + DO k=1,MIN(3,SIZE(Hwrk,1)) 55 - DO j=1,MIN(3,SIZE(Hwrk,2)) 56 - - Tensor( i,j,1:n ) = Hwrk(i,j,1:n) 57 - + Tensor( k,j,1:n ) = Hwrk(k,j,1:n) 58 - END DO 59 - END DO 60 - 61 - @@ -1443,14 +1443,14 @@ contains 62 - 63 - IF ( SIZE(Hwrk,1) == 1 ) THEN 64 - 65 - - DO i=1,MIN(3,SIZE(Hwrk,2)) 66 - - Tensor( i,1:n ) = Hwrk( 1,1,1:n ) 67 - + DO k=1,MIN(3,SIZE(Hwrk,2)) 68 - + Tensor( k,1:n ) = Hwrk( 1,1,1:n ) 69 - END DO 70 - 71 - ELSE 72 - 73 - - DO i=1,MIN(3,SIZE(Hwrk,1)) 74 - - Tensor( i,1:n ) = Hwrk( i,1,1:n ) 75 - + DO k=1,MIN(3,SIZE(Hwrk,1)) 76 - + Tensor( k,1:n ) = Hwrk( k,1,1:n ) 77 - END DO 78 - 79 - END IF 80 - -- 81 - 2.33.3 82 -
-36
pkgs/applications/science/physics/elmerfem/patches/0003-ignore-qwt_compat.patch
··· 1 - From 26601fec36a4978e805aad40e6d0cbf268c653d2 Mon Sep 17 00:00:00 2001 2 - From: grindhold <grindhold@gmx.net> 3 - Date: Thu, 28 Apr 2022 17:13:06 +0200 4 - Subject: [PATCH] ignore qwt_compat 5 - 6 - --- 7 - ElmerGUI/Application/src/convergenceview.h | 6 +++--- 8 - 1 file changed, 3 insertions(+), 3 deletions(-) 9 - 10 - diff --git a/ElmerGUI/Application/src/convergenceview.h b/ElmerGUI/Application/src/convergenceview.h 11 - index 377b644b..64250149 100755 12 - --- a/ElmerGUI/Application/src/convergenceview.h 13 - +++ b/ElmerGUI/Application/src/convergenceview.h 14 - @@ -52,7 +52,7 @@ 15 - #include <qwt_plot_grid.h> 16 - #include <qwt_legend.h> 17 - /*#include <qwt_data.h> <-- deprecated in Qwt6, using qwt_compat.h instead*/ 18 - -#include <qwt_compat.h> 19 - +/*#include <qwt_compat.h>*/ 20 - #include <qwt_text.h> 21 - #include <qwt_scale_engine.h> 22 - 23 - @@ -76,8 +76,8 @@ public: 24 - 25 - private: 26 - int d_count; 27 - - QwtArray<double> d_x; 28 - - QwtArray<double> d_y; 29 - + QVector<double> d_x; 30 - + QVector<double> d_y; 31 - }; 32 - 33 - class Curve 34 - -- 35 - 2.33.3 36 -
+4 -1
pkgs/build-support/node/build-npm-package/default.nix
··· 12 12 # The output hash of the dependencies for this project. 13 13 # Can be calculated in advance with prefetch-npm-deps. 14 14 , npmDepsHash ? "" 15 + # Whether to force the usage of Git dependencies that have install scripts, but not a lockfile. 16 + # Use with care. 17 + , forceGitDeps ? false 15 18 # Whether to make the cache writable prior to installing dependencies. 16 19 # Don't set this unless npm tries to write to the cache directory, as it can slow down the build. 17 20 , makeCacheWritable ? false ··· 35 32 36 33 let 37 34 npmDeps = fetchNpmDeps { 38 - inherit src srcs sourceRoot prePatch patches postPatch; 35 + inherit forceGitDeps src srcs sourceRoot prePatch patches postPatch; 39 36 name = "${name}-npm-deps"; 40 37 hash = npmDepsHash; 41 38 };
+8 -3
pkgs/build-support/node/fetch-npm-deps/default.nix
··· 36 36 ''; 37 37 }; 38 38 39 - makeTest = { name, src, hash }: testers.invalidateFetcherByDrvHash fetchNpmDeps { 40 - inherit name hash; 39 + makeTest = { name, src, hash, forceGitDeps ? false }: testers.invalidateFetcherByDrvHash fetchNpmDeps { 40 + inherit name hash forceGitDeps; 41 41 42 42 src = makeTestSrc { inherit name src; }; 43 43 }; ··· 108 108 }; 109 109 110 110 hash = "sha256-+KA8/orSBJ4EhuSyQO8IKSxsN/FAsYU3lOzq+awuxNQ="; 111 + 112 + forceGitDeps = true; 111 113 }; 112 114 }; 113 115 ··· 123 121 fetchNpmDeps = 124 122 { name ? "npm-deps" 125 123 , hash ? "" 124 + , forceGitDeps ? false 126 125 , ... 127 126 } @ args: 128 127 let ··· 134 131 outputHash = ""; 135 132 outputHashAlgo = "sha256"; 136 133 }; 134 + 135 + forceGitDeps_ = lib.optionalAttrs forceGitDeps { FORCE_GIT_DEPS = true; }; 137 136 in 138 137 stdenvNoCC.mkDerivation (args // { 139 138 inherit name; ··· 166 161 dontInstall = true; 167 162 168 163 outputHashMode = "recursive"; 169 - } // hash_); 164 + } // hash_ // forceGitDeps_); 170 165 }
+1 -1
pkgs/build-support/node/fetch-npm-deps/src/cacache.rs
··· 72 72 &mut p, 73 73 &hash 74 74 .into_iter() 75 - .map(|x| format!("{:02x}", x)) 75 + .map(|n| format!("{n:02x}")) 76 76 .collect::<String>(), 77 77 ); 78 78
+75 -354
pkgs/build-support/node/fetch-npm-deps/src/main.rs
··· 1 1 #![warn(clippy::pedantic)] 2 2 3 3 use crate::cacache::Cache; 4 - use anyhow::{anyhow, Context}; 4 + use anyhow::anyhow; 5 5 use rayon::prelude::*; 6 - use serde::Deserialize; 7 6 use serde_json::{Map, Value}; 8 7 use std::{ 9 - collections::{HashMap, HashSet}, 10 - env, fmt, fs, io, 8 + env, fs, 11 9 path::Path, 12 - process::{self, Command, Stdio}, 10 + process::{self, Command}, 13 11 }; 14 12 use tempfile::tempdir; 15 - use url::Url; 16 13 17 14 mod cacache; 18 - #[cfg(test)] 19 - mod tests; 20 - 21 - #[derive(Deserialize)] 22 - struct PackageLock { 23 - #[serde(rename = "lockfileVersion")] 24 - version: u8, 25 - dependencies: Option<HashMap<String, OldPackage>>, 26 - packages: Option<HashMap<String, Package>>, 27 - } 28 - 29 - #[derive(Deserialize)] 30 - struct OldPackage { 31 - version: UrlOrString, 32 - #[serde(default)] 33 - bundled: bool, 34 - resolved: Option<UrlOrString>, 35 - integrity: Option<String>, 36 - dependencies: Option<HashMap<String, OldPackage>>, 37 - } 38 - 39 - #[derive(Debug, Deserialize, PartialEq, Eq)] 40 - struct Package { 41 - resolved: Option<UrlOrString>, 42 - integrity: Option<String>, 43 - } 44 - 45 - #[derive(Debug, Deserialize, PartialEq, Eq)] 46 - #[serde(untagged)] 47 - enum UrlOrString { 48 - Url(Url), 49 - String(String), 50 - } 51 - 52 - impl fmt::Display for UrlOrString { 53 - fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { 54 - match self { 55 - UrlOrString::Url(url) => url.fmt(f), 56 - UrlOrString::String(string) => string.fmt(f), 57 - } 58 - } 59 - } 60 - 61 - #[allow(clippy::case_sensitive_file_extension_comparisons)] 62 - fn to_new_packages( 63 - old_packages: HashMap<String, OldPackage>, 64 - initial_url: &Url, 65 - ) -> anyhow::Result<HashMap<String, Package>> { 66 - let mut new = HashMap::new(); 67 - 68 - for (name, mut package) in old_packages { 69 - // In some cases, a bundled dependency happens to have the same version as a non-bundled one, causing 70 - // the bundled one without a URL to override the entry for the non-bundled instance, which prevents the 71 - // dependency from being downloaded. 72 - if package.bundled { 73 - continue; 74 - } 75 - 76 - if let UrlOrString::Url(v) = &package.version { 77 - for (scheme, host) in [ 78 - ("github", "github.com"), 79 - ("bitbucket", "bitbucket.org"), 80 - ("gitlab", "gitlab.com"), 81 - ] { 82 - if v.scheme() == scheme { 83 - package.version = { 84 - let mut new_url = initial_url.clone(); 85 - 86 - new_url.set_host(Some(host))?; 87 - 88 - if v.path().ends_with(".git") { 89 - new_url.set_path(v.path()); 90 - } else { 91 - new_url.set_path(&format!("{}.git", v.path())); 92 - } 93 - 94 - new_url.set_fragment(v.fragment()); 95 - 96 - UrlOrString::Url(new_url) 97 - }; 98 - 99 - break; 100 - } 101 - } 102 - } 103 - 104 - new.insert( 105 - format!("{name}-{}", package.version), 106 - Package { 107 - resolved: if matches!(package.version, UrlOrString::Url(_)) { 108 - Some(package.version) 109 - } else { 110 - package.resolved 111 - }, 112 - integrity: package.integrity, 113 - }, 114 - ); 115 - 116 - if let Some(dependencies) = package.dependencies { 117 - new.extend(to_new_packages(dependencies, initial_url)?); 118 - } 119 - } 120 - 121 - Ok(new) 122 - } 123 - 124 - #[allow(clippy::case_sensitive_file_extension_comparisons)] 125 - fn get_hosted_git_url(url: &Url) -> Option<Url> { 126 - if ["git", "http", "git+ssh", "git+https", "ssh", "https"].contains(&url.scheme()) { 127 - let mut s = url.path_segments()?; 128 - 129 - match url.host_str()? { 130 - "github.com" => { 131 - let user = s.next()?; 132 - let mut project = s.next()?; 133 - let typ = s.next(); 134 - let mut commit = s.next(); 135 - 136 - if typ.is_none() { 137 - commit = url.fragment(); 138 - } else if typ.is_some() && typ != Some("tree") { 139 - return None; 140 - } 141 - 142 - if project.ends_with(".git") { 143 - project = project.strip_suffix(".git")?; 144 - } 145 - 146 - let commit = commit.unwrap(); 147 - 148 - Some( 149 - Url::parse(&format!( 150 - "https://codeload.github.com/{user}/{project}/tar.gz/{commit}" 151 - )) 152 - .ok()?, 153 - ) 154 - } 155 - "bitbucket.org" => { 156 - let user = s.next()?; 157 - let mut project = s.next()?; 158 - let aux = s.next(); 159 - 160 - if aux == Some("get") { 161 - return None; 162 - } 163 - 164 - if project.ends_with(".git") { 165 - project = project.strip_suffix(".git")?; 166 - } 167 - 168 - let commit = url.fragment()?; 169 - 170 - Some( 171 - Url::parse(&format!( 172 - "https://bitbucket.org/{user}/{project}/get/{commit}.tar.gz" 173 - )) 174 - .ok()?, 175 - ) 176 - } 177 - "gitlab.com" => { 178 - let path = &url.path()[1..]; 179 - 180 - if path.contains("/~/") || path.contains("/archive.tar.gz") { 181 - return None; 182 - } 183 - 184 - let user = s.next()?; 185 - let mut project = s.next()?; 186 - 187 - if project.ends_with(".git") { 188 - project = project.strip_suffix(".git")?; 189 - } 190 - 191 - let commit = url.fragment()?; 192 - 193 - Some( 194 - Url::parse(&format!( 195 - "https://gitlab.com/{user}/{project}/repository/archive.tar.gz?ref={commit}" 196 - )) 197 - .ok()?, 198 - ) 199 - } 200 - "git.sr.ht" => { 201 - let user = s.next()?; 202 - let mut project = s.next()?; 203 - let aux = s.next(); 204 - 205 - if aux == Some("archive") { 206 - return None; 207 - } 208 - 209 - if project.ends_with(".git") { 210 - project = project.strip_suffix(".git")?; 211 - } 212 - 213 - let commit = url.fragment()?; 214 - 215 - Some( 216 - Url::parse(&format!( 217 - "https://git.sr.ht/{user}/{project}/archive/{commit}.tar.gz" 218 - )) 219 - .ok()?, 220 - ) 221 - } 222 - _ => None, 223 - } 224 - } else { 225 - None 226 - } 227 - } 228 - 229 - fn get_ideal_hash(integrity: &str) -> anyhow::Result<&str> { 230 - let split: Vec<_> = integrity.split_ascii_whitespace().collect(); 231 - 232 - if split.len() == 1 { 233 - Ok(split[0]) 234 - } else { 235 - for hash in ["sha512-", "sha1-"] { 236 - if let Some(h) = split.iter().find(|s| s.starts_with(hash)) { 237 - return Ok(h); 238 - } 239 - } 240 - 241 - Err(anyhow!("not sure which hash to select out of {split:?}")) 242 - } 243 - } 244 - 245 - fn get_initial_url() -> anyhow::Result<Url> { 246 - Url::parse("git+ssh://git@a.b").context("initial url should be valid") 247 - } 15 + mod parse; 248 16 249 17 /// `fixup_lockfile` removes the `integrity` field from Git dependencies. 250 18 /// ··· 62 294 } 63 295 } 64 296 65 - #[allow(clippy::too_many_lines)] 66 297 fn main() -> anyhow::Result<()> { 67 298 let args = env::args().collect::<Vec<_>>(); 68 299 ··· 86 319 } 87 320 88 321 let lock_content = fs::read_to_string(&args[1])?; 89 - let lock: PackageLock = serde_json::from_str(&lock_content)?; 90 322 91 323 let out_tempdir; 92 324 ··· 97 331 (out_tempdir.path(), true) 98 332 }; 99 333 100 - let agent = ureq::agent(); 101 - 102 - eprintln!("lockfile version: {}", lock.version); 103 - 104 - let packages = match lock.version { 105 - 1 => { 106 - let initial_url = get_initial_url()?; 107 - 108 - lock.dependencies 109 - .map(|p| to_new_packages(p, &initial_url)) 110 - .transpose()? 111 - } 112 - 2 | 3 => lock.packages, 113 - _ => panic!( 114 - "We don't support lockfile version {}, please file an issue.", 115 - lock.version 116 - ), 117 - }; 118 - 119 - if packages.is_none() { 120 - return Ok(()); 121 - } 122 - 123 - let packages = { 124 - let mut seen = HashSet::new(); 125 - let mut new_packages = HashMap::new(); 126 - 127 - for (dep, package) in packages.unwrap().drain() { 128 - if let (false, Some(UrlOrString::Url(resolved))) = (dep.is_empty(), &package.resolved) { 129 - if !seen.contains(resolved) { 130 - seen.insert(resolved.clone()); 131 - new_packages.insert(dep, package); 132 - } 133 - } 134 - } 135 - 136 - new_packages 137 - }; 334 + let packages = parse::lockfile(&lock_content, env::var("FORCE_GIT_DEPS").is_ok())?; 138 335 139 336 let cache = Cache::new(out.join("_cacache")); 140 337 141 - packages 142 - .into_par_iter() 143 - .try_for_each(|(dep, mut package)| { 144 - eprintln!("{dep}"); 338 + packages.into_par_iter().try_for_each(|package| { 339 + eprintln!("{}", package.name); 145 340 146 - let mut resolved = match package.resolved { 147 - Some(UrlOrString::Url(url)) => url, 148 - _ => unreachable!(), 149 - }; 341 + let tarball = package.tarball()?; 342 + let integrity = package.integrity(); 150 343 151 - let mut hosted = false; 344 + cache 345 + .put( 346 + format!("make-fetch-happen:request-cache:{}", package.url), 347 + package.url, 348 + &tarball, 349 + integrity, 350 + ) 351 + .map_err(|e| anyhow!("couldn't insert cache entry for {}: {e:?}", package.name))?; 152 352 153 - if let Some(hosted_git_url) = get_hosted_git_url(&resolved) { 154 - resolved = hosted_git_url; 155 - package.integrity = None; 156 - hosted = true; 157 - } 158 - 159 - let mut data = Vec::new(); 160 - 161 - let mut body = agent.get(resolved.as_str()).call()?.into_reader(); 162 - 163 - if hosted { 164 - let workdir = tempdir()?; 165 - 166 - let tar_path = workdir.path().join("package"); 167 - 168 - fs::create_dir(&tar_path)?; 169 - 170 - let mut cmd = Command::new("tar") 171 - .args(["--extract", "--gzip", "--strip-components=1", "-C"]) 172 - .arg(&tar_path) 173 - .stdin(Stdio::piped()) 174 - .spawn()?; 175 - 176 - io::copy(&mut body, &mut cmd.stdin.take().unwrap())?; 177 - 178 - let exit = cmd.wait()?; 179 - 180 - if !exit.success() { 181 - return Err(anyhow!( 182 - "failed to extract tarball for {dep}: tar exited with status code {}", 183 - exit.code().unwrap() 184 - )); 185 - } 186 - 187 - data = Command::new("tar") 188 - .args([ 189 - "--sort=name", 190 - "--mtime=@0", 191 - "--owner=0", 192 - "--group=0", 193 - "--numeric-owner", 194 - "--format=gnu", 195 - "-I", 196 - "gzip -n -9", 197 - "--create", 198 - "-C", 199 - ]) 200 - .arg(workdir.path()) 201 - .arg("package") 202 - .output()? 203 - .stdout; 204 - } else { 205 - body.read_to_end(&mut data)?; 206 - } 207 - 208 - cache 209 - .put( 210 - format!("make-fetch-happen:request-cache:{resolved}"), 211 - resolved, 212 - &data, 213 - package 214 - .integrity 215 - .map(|i| Ok::<String, anyhow::Error>(get_ideal_hash(&i)?.to_string())) 216 - .transpose()?, 217 - ) 218 - .map_err(|e| anyhow!("couldn't insert cache entry for {dep}: {e:?}"))?; 219 - 220 - Ok::<_, anyhow::Error>(()) 221 - })?; 353 + Ok::<_, anyhow::Error>(()) 354 + })?; 222 355 223 356 fs::write(out.join("package-lock.json"), lock_content)?; 224 357 ··· 129 464 } 130 465 131 466 Ok(()) 467 + } 468 + 469 + #[cfg(test)] 470 + mod tests { 471 + use super::fixup_lockfile; 472 + use serde_json::json; 473 + 474 + #[test] 475 + fn lockfile_fixup() -> anyhow::Result<()> { 476 + let input = json!({ 477 + "lockfileVersion": 2, 478 + "name": "foo", 479 + "packages": { 480 + "": { 481 + 482 + }, 483 + "foo": { 484 + "resolved": "https://github.com/NixOS/nixpkgs", 485 + "integrity": "aaa" 486 + }, 487 + "bar": { 488 + "resolved": "git+ssh://git@github.com/NixOS/nixpkgs.git", 489 + "integrity": "bbb" 490 + } 491 + } 492 + }); 493 + 494 + let expected = json!({ 495 + "lockfileVersion": 2, 496 + "name": "foo", 497 + "packages": { 498 + "": { 499 + 500 + }, 501 + "foo": { 502 + "resolved": "https://github.com/NixOS/nixpkgs", 503 + "integrity": "aaa" 504 + }, 505 + "bar": { 506 + "resolved": "git+ssh://git@github.com/NixOS/nixpkgs.git", 507 + } 508 + } 509 + }); 510 + 511 + assert_eq!( 512 + fixup_lockfile(input.as_object().unwrap().clone())?, 513 + Some(expected.as_object().unwrap().clone()) 514 + ); 515 + 516 + assert_eq!( 517 + fixup_lockfile(json!({"lockfileVersion": 1}).as_object().unwrap().clone())?, 518 + None 519 + ); 520 + 521 + Ok(()) 522 + } 132 523 }
+191
pkgs/build-support/node/fetch-npm-deps/src/parse/lock.rs
··· 1 + use anyhow::{bail, Context}; 2 + use rayon::slice::ParallelSliceMut; 3 + use serde::Deserialize; 4 + use std::{collections::HashMap, fmt}; 5 + use url::Url; 6 + 7 + pub(super) fn packages(content: &str) -> anyhow::Result<Vec<Package>> { 8 + let lockfile: Lockfile = serde_json::from_str(content)?; 9 + 10 + let mut packages = match lockfile.version { 11 + 1 => { 12 + let initial_url = get_initial_url()?; 13 + 14 + lockfile 15 + .dependencies 16 + .map(|p| to_new_packages(p, &initial_url)) 17 + .transpose()? 18 + } 19 + 2 | 3 => lockfile.packages.map(|pkgs| { 20 + pkgs.into_iter() 21 + .filter(|(n, p)| !n.is_empty() && matches!(p.resolved, Some(UrlOrString::Url(_)))) 22 + .map(|(n, p)| Package { name: Some(n), ..p }) 23 + .collect() 24 + }), 25 + _ => bail!( 26 + "We don't support lockfile version {}, please file an issue.", 27 + lockfile.version 28 + ), 29 + } 30 + .expect("lockfile should have packages"); 31 + 32 + packages.par_sort_by(|x, y| { 33 + x.resolved 34 + .partial_cmp(&y.resolved) 35 + .expect("resolved should be comparable") 36 + }); 37 + 38 + packages.dedup_by(|x, y| x.resolved == y.resolved); 39 + 40 + Ok(packages) 41 + } 42 + 43 + #[derive(Deserialize)] 44 + struct Lockfile { 45 + #[serde(rename = "lockfileVersion")] 46 + version: u8, 47 + dependencies: Option<HashMap<String, OldPackage>>, 48 + packages: Option<HashMap<String, Package>>, 49 + } 50 + 51 + #[derive(Deserialize)] 52 + struct OldPackage { 53 + version: UrlOrString, 54 + #[serde(default)] 55 + bundled: bool, 56 + resolved: Option<UrlOrString>, 57 + integrity: Option<String>, 58 + dependencies: Option<HashMap<String, OldPackage>>, 59 + } 60 + 61 + #[derive(Debug, Deserialize, PartialEq, Eq)] 62 + pub(super) struct Package { 63 + #[serde(default)] 64 + pub(super) name: Option<String>, 65 + pub(super) resolved: Option<UrlOrString>, 66 + pub(super) integrity: Option<String>, 67 + } 68 + 69 + #[derive(Debug, Deserialize, PartialEq, Eq, PartialOrd, Ord)] 70 + #[serde(untagged)] 71 + pub(super) enum UrlOrString { 72 + Url(Url), 73 + String(String), 74 + } 75 + 76 + impl fmt::Display for UrlOrString { 77 + fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { 78 + match self { 79 + UrlOrString::Url(url) => url.fmt(f), 80 + UrlOrString::String(string) => string.fmt(f), 81 + } 82 + } 83 + } 84 + 85 + #[allow(clippy::case_sensitive_file_extension_comparisons)] 86 + fn to_new_packages( 87 + old_packages: HashMap<String, OldPackage>, 88 + initial_url: &Url, 89 + ) -> anyhow::Result<Vec<Package>> { 90 + let mut new = Vec::new(); 91 + 92 + for (name, mut package) in old_packages { 93 + // In some cases, a bundled dependency happens to have the same version as a non-bundled one, causing 94 + // the bundled one without a URL to override the entry for the non-bundled instance, which prevents the 95 + // dependency from being downloaded. 96 + if package.bundled { 97 + continue; 98 + } 99 + 100 + if let UrlOrString::Url(v) = &package.version { 101 + for (scheme, host) in [ 102 + ("github", "github.com"), 103 + ("bitbucket", "bitbucket.org"), 104 + ("gitlab", "gitlab.com"), 105 + ] { 106 + if v.scheme() == scheme { 107 + package.version = { 108 + let mut new_url = initial_url.clone(); 109 + 110 + new_url.set_host(Some(host))?; 111 + 112 + if v.path().ends_with(".git") { 113 + new_url.set_path(v.path()); 114 + } else { 115 + new_url.set_path(&format!("{}.git", v.path())); 116 + } 117 + 118 + new_url.set_fragment(v.fragment()); 119 + 120 + UrlOrString::Url(new_url) 121 + }; 122 + 123 + break; 124 + } 125 + } 126 + } 127 + 128 + new.push(Package { 129 + name: Some(name), 130 + resolved: if matches!(package.version, UrlOrString::Url(_)) { 131 + Some(package.version) 132 + } else { 133 + package.resolved 134 + }, 135 + integrity: package.integrity, 136 + }); 137 + 138 + if let Some(dependencies) = package.dependencies { 139 + new.append(&mut to_new_packages(dependencies, initial_url)?); 140 + } 141 + } 142 + 143 + Ok(new) 144 + } 145 + 146 + fn get_initial_url() -> anyhow::Result<Url> { 147 + Url::parse("git+ssh://git@a.b").context("initial url should be valid") 148 + } 149 + 150 + #[cfg(test)] 151 + mod tests { 152 + use super::{get_initial_url, to_new_packages, OldPackage, Package, UrlOrString}; 153 + use std::collections::HashMap; 154 + use url::Url; 155 + 156 + #[test] 157 + fn git_shorthand_v1() -> anyhow::Result<()> { 158 + let old = { 159 + let mut o = HashMap::new(); 160 + o.insert( 161 + String::from("sqlite3"), 162 + OldPackage { 163 + version: UrlOrString::Url( 164 + Url::parse( 165 + "github:mapbox/node-sqlite3#593c9d498be2510d286349134537e3bf89401c4a", 166 + ) 167 + .unwrap(), 168 + ), 169 + bundled: false, 170 + resolved: None, 171 + integrity: None, 172 + dependencies: None, 173 + }, 174 + ); 175 + o 176 + }; 177 + 178 + let initial_url = get_initial_url()?; 179 + 180 + let new = to_new_packages(old, &initial_url)?; 181 + 182 + assert_eq!(new.len(), 1, "new packages map should contain 1 value"); 183 + assert_eq!(new[0], Package { 184 + name: Some(String::from("sqlite3")), 185 + resolved: Some(UrlOrString::Url(Url::parse("git+ssh://git@github.com/mapbox/node-sqlite3.git#593c9d498be2510d286349134537e3bf89401c4a").unwrap())), 186 + integrity: None 187 + }); 188 + 189 + Ok(()) 190 + } 191 + }
+370
pkgs/build-support/node/fetch-npm-deps/src/parse/mod.rs
··· 1 + use anyhow::{anyhow, bail, Context}; 2 + use lock::UrlOrString; 3 + use rayon::prelude::*; 4 + use serde_json::{Map, Value}; 5 + use std::{ 6 + fs, io, 7 + process::{Command, Stdio}, 8 + }; 9 + use tempfile::{tempdir, TempDir}; 10 + use url::Url; 11 + 12 + mod lock; 13 + 14 + pub fn lockfile(content: &str, force_git_deps: bool) -> anyhow::Result<Vec<Package>> { 15 + let mut packages = lock::packages(content) 16 + .context("failed to extract packages from lockfile")? 17 + .into_par_iter() 18 + .map(|p| { 19 + let n = p.name.clone().unwrap(); 20 + 21 + Package::from_lock(p).with_context(|| format!("failed to parse data for {n}")) 22 + }) 23 + .collect::<anyhow::Result<Vec<_>>>()?; 24 + 25 + let mut new = Vec::new(); 26 + 27 + for pkg in packages 28 + .iter() 29 + .filter(|p| matches!(p.specifics, Specifics::Git { .. })) 30 + { 31 + let dir = match &pkg.specifics { 32 + Specifics::Git { workdir } => workdir, 33 + Specifics::Registry { .. } => unimplemented!(), 34 + }; 35 + 36 + let path = dir.path().join("package"); 37 + 38 + let lockfile_contents = fs::read_to_string(path.join("package-lock.json")); 39 + 40 + let package_json_path = path.join("package.json"); 41 + let mut package_json: Map<String, Value> = 42 + serde_json::from_str(&fs::read_to_string(package_json_path)?)?; 43 + 44 + if let Some(scripts) = package_json 45 + .get_mut("scripts") 46 + .and_then(Value::as_object_mut) 47 + { 48 + // https://github.com/npm/pacote/blob/272edc1bac06991fc5f95d06342334bbacfbaa4b/lib/git.js#L166-L172 49 + for typ in [ 50 + "postinstall", 51 + "build", 52 + "preinstall", 53 + "install", 54 + "prepack", 55 + "prepare", 56 + ] { 57 + if scripts.contains_key(typ) && lockfile_contents.is_err() && !force_git_deps { 58 + bail!("Git dependency {} contains install scripts, but has no lockfile, which is something that will probably break. Open an issue if you can't feasibly patch this dependency out, and we'll come up with a workaround.\nIf you'd like to attempt to try to use this dependency anyways, set `forceGitDeps = true`.", pkg.name); 59 + } 60 + } 61 + } 62 + 63 + if let Ok(lockfile_contents) = lockfile_contents { 64 + new.append(&mut lockfile(&lockfile_contents, force_git_deps)?); 65 + } 66 + } 67 + 68 + packages.append(&mut new); 69 + 70 + packages.par_sort_by(|x, y| { 71 + x.url 72 + .partial_cmp(&y.url) 73 + .expect("resolved should be comparable") 74 + }); 75 + 76 + packages.dedup_by(|x, y| x.url == y.url); 77 + 78 + Ok(packages) 79 + } 80 + 81 + #[derive(Debug)] 82 + pub struct Package { 83 + pub name: String, 84 + pub url: Url, 85 + specifics: Specifics, 86 + } 87 + 88 + #[derive(Debug)] 89 + enum Specifics { 90 + Registry { integrity: String }, 91 + Git { workdir: TempDir }, 92 + } 93 + 94 + impl Package { 95 + fn from_lock(pkg: lock::Package) -> anyhow::Result<Package> { 96 + let mut resolved = match pkg 97 + .resolved 98 + .expect("at this point, packages should have URLs") 99 + { 100 + UrlOrString::Url(u) => u, 101 + UrlOrString::String(_) => panic!("at this point, all packages should have URLs"), 102 + }; 103 + 104 + let specifics = match get_hosted_git_url(&resolved)? { 105 + Some(hosted) => { 106 + let mut body = ureq::get(hosted.as_str()).call()?.into_reader(); 107 + 108 + let workdir = tempdir()?; 109 + 110 + let tar_path = workdir.path().join("package"); 111 + 112 + fs::create_dir(&tar_path)?; 113 + 114 + let mut cmd = Command::new("tar") 115 + .args(["--extract", "--gzip", "--strip-components=1", "-C"]) 116 + .arg(&tar_path) 117 + .stdin(Stdio::piped()) 118 + .spawn()?; 119 + 120 + io::copy(&mut body, &mut cmd.stdin.take().unwrap())?; 121 + 122 + let exit = cmd.wait()?; 123 + 124 + if !exit.success() { 125 + bail!( 126 + "failed to extract tarball for {}: tar exited with status code {}", 127 + pkg.name.unwrap(), 128 + exit.code().unwrap() 129 + ); 130 + } 131 + 132 + resolved = hosted; 133 + 134 + Specifics::Git { workdir } 135 + } 136 + None => Specifics::Registry { 137 + integrity: get_ideal_hash( 138 + &pkg.integrity 139 + .expect("non-git dependencies should have assosciated integrity"), 140 + )? 141 + .to_string(), 142 + }, 143 + }; 144 + 145 + Ok(Package { 146 + name: pkg.name.unwrap(), 147 + url: resolved, 148 + specifics, 149 + }) 150 + } 151 + 152 + pub fn tarball(&self) -> anyhow::Result<Vec<u8>> { 153 + match &self.specifics { 154 + Specifics::Registry { .. } => { 155 + let mut body = Vec::new(); 156 + 157 + ureq::get(self.url.as_str()) 158 + .call()? 159 + .into_reader() 160 + .read_to_end(&mut body)?; 161 + 162 + Ok(body) 163 + } 164 + Specifics::Git { workdir } => Ok(Command::new("tar") 165 + .args([ 166 + "--sort=name", 167 + "--mtime=@0", 168 + "--owner=0", 169 + "--group=0", 170 + "--numeric-owner", 171 + "--format=gnu", 172 + "-I", 173 + "gzip -n -9", 174 + "--create", 175 + "-C", 176 + ]) 177 + .arg(workdir.path()) 178 + .arg("package") 179 + .output()? 180 + .stdout), 181 + } 182 + } 183 + 184 + pub fn integrity(&self) -> Option<String> { 185 + match &self.specifics { 186 + Specifics::Registry { integrity } => Some(integrity.clone()), 187 + Specifics::Git { .. } => None, 188 + } 189 + } 190 + } 191 + 192 + #[allow(clippy::case_sensitive_file_extension_comparisons)] 193 + fn get_hosted_git_url(url: &Url) -> anyhow::Result<Option<Url>> { 194 + if ["git", "git+ssh", "git+https", "ssh"].contains(&url.scheme()) { 195 + let mut s = url 196 + .path_segments() 197 + .ok_or_else(|| anyhow!("bad URL: {url}"))?; 198 + 199 + let mut get_url = || match url.host_str()? { 200 + "github.com" => { 201 + let user = s.next()?; 202 + let mut project = s.next()?; 203 + let typ = s.next(); 204 + let mut commit = s.next(); 205 + 206 + if typ.is_none() { 207 + commit = url.fragment(); 208 + } else if typ.is_some() && typ != Some("tree") { 209 + return None; 210 + } 211 + 212 + if project.ends_with(".git") { 213 + project = project.strip_suffix(".git")?; 214 + } 215 + 216 + let commit = commit.unwrap(); 217 + 218 + Some( 219 + Url::parse(&format!( 220 + "https://codeload.github.com/{user}/{project}/tar.gz/{commit}" 221 + )) 222 + .ok()?, 223 + ) 224 + } 225 + "bitbucket.org" => { 226 + let user = s.next()?; 227 + let mut project = s.next()?; 228 + let aux = s.next(); 229 + 230 + if aux == Some("get") { 231 + return None; 232 + } 233 + 234 + if project.ends_with(".git") { 235 + project = project.strip_suffix(".git")?; 236 + } 237 + 238 + let commit = url.fragment()?; 239 + 240 + Some( 241 + Url::parse(&format!( 242 + "https://bitbucket.org/{user}/{project}/get/{commit}.tar.gz" 243 + )) 244 + .ok()?, 245 + ) 246 + } 247 + "gitlab.com" => { 248 + /* let path = &url.path()[1..]; 249 + 250 + if path.contains("/~/") || path.contains("/archive.tar.gz") { 251 + return None; 252 + } 253 + 254 + let user = s.next()?; 255 + let mut project = s.next()?; 256 + 257 + if project.ends_with(".git") { 258 + project = project.strip_suffix(".git")?; 259 + } 260 + 261 + let commit = url.fragment()?; 262 + 263 + Some( 264 + Url::parse(&format!( 265 + "https://gitlab.com/{user}/{project}/repository/archive.tar.gz?ref={commit}" 266 + )) 267 + .ok()?, 268 + ) */ 269 + 270 + // lmao: https://github.com/npm/hosted-git-info/pull/109 271 + None 272 + } 273 + "git.sr.ht" => { 274 + let user = s.next()?; 275 + let mut project = s.next()?; 276 + let aux = s.next(); 277 + 278 + if aux == Some("archive") { 279 + return None; 280 + } 281 + 282 + if project.ends_with(".git") { 283 + project = project.strip_suffix(".git")?; 284 + } 285 + 286 + let commit = url.fragment()?; 287 + 288 + Some( 289 + Url::parse(&format!( 290 + "https://git.sr.ht/{user}/{project}/archive/{commit}.tar.gz" 291 + )) 292 + .ok()?, 293 + ) 294 + } 295 + _ => None, 296 + }; 297 + 298 + match get_url() { 299 + Some(u) => Ok(Some(u)), 300 + None => Err(anyhow!("This lockfile either contains a Git dependency with an unsupported host, or a malformed URL in the lockfile: {url}")) 301 + } 302 + } else { 303 + Ok(None) 304 + } 305 + } 306 + 307 + fn get_ideal_hash(integrity: &str) -> anyhow::Result<&str> { 308 + let split: Vec<_> = integrity.split_ascii_whitespace().collect(); 309 + 310 + if split.len() == 1 { 311 + Ok(split[0]) 312 + } else { 313 + for hash in ["sha512-", "sha1-"] { 314 + if let Some(h) = split.iter().find(|s| s.starts_with(hash)) { 315 + return Ok(h); 316 + } 317 + } 318 + 319 + Err(anyhow!("not sure which hash to select out of {split:?}")) 320 + } 321 + } 322 + 323 + #[cfg(test)] 324 + mod tests { 325 + use super::{get_hosted_git_url, get_ideal_hash}; 326 + use url::Url; 327 + 328 + #[test] 329 + fn hosted_git_urls() { 330 + for (input, expected) in [ 331 + ( 332 + "git+ssh://git@github.com/castlabs/electron-releases.git#fc5f78d046e8d7cdeb66345a2633c383ab41f525", 333 + Some("https://codeload.github.com/castlabs/electron-releases/tar.gz/fc5f78d046e8d7cdeb66345a2633c383ab41f525"), 334 + ), 335 + ( 336 + "git+ssh://bitbucket.org/foo/bar#branch", 337 + Some("https://bitbucket.org/foo/bar/get/branch.tar.gz") 338 + ), 339 + ( 340 + "git+ssh://git.sr.ht/~foo/bar#branch", 341 + Some("https://git.sr.ht/~foo/bar/archive/branch.tar.gz") 342 + ), 343 + ] { 344 + assert_eq!( 345 + get_hosted_git_url(&Url::parse(input).unwrap()).unwrap(), 346 + expected.map(|u| Url::parse(u).unwrap()) 347 + ); 348 + } 349 + 350 + assert!( 351 + get_hosted_git_url(&Url::parse("ssh://git@gitlab.com/foo/bar.git#fix/bug").unwrap()) 352 + .is_err(), 353 + "GitLab URLs should be marked as invalid (lol)" 354 + ); 355 + } 356 + 357 + #[test] 358 + fn ideal_hashes() { 359 + for (input, expected) in [ 360 + ("sha512-foo sha1-bar", Some("sha512-foo")), 361 + ("sha1-bar md5-foo", Some("sha1-bar")), 362 + ("sha1-bar", Some("sha1-bar")), 363 + ("sha512-foo", Some("sha512-foo")), 364 + ("foo-bar sha1-bar", Some("sha1-bar")), 365 + ("foo-bar baz-foo", None), 366 + ] { 367 + assert_eq!(get_ideal_hash(input).ok(), expected); 368 + } 369 + } 370 + }
-141
pkgs/build-support/node/fetch-npm-deps/src/tests.rs
··· 1 - use super::{ 2 - fixup_lockfile, get_hosted_git_url, get_ideal_hash, get_initial_url, to_new_packages, 3 - OldPackage, Package, UrlOrString, 4 - }; 5 - use serde_json::json; 6 - use std::collections::HashMap; 7 - use url::Url; 8 - 9 - #[test] 10 - fn hosted_git_urls() { 11 - for (input, expected) in [ 12 - ( 13 - "git+ssh://git@github.com/castlabs/electron-releases.git#fc5f78d046e8d7cdeb66345a2633c383ab41f525", 14 - Some("https://codeload.github.com/castlabs/electron-releases/tar.gz/fc5f78d046e8d7cdeb66345a2633c383ab41f525"), 15 - ), 16 - ( 17 - "https://user@github.com/foo/bar#fix/bug", 18 - Some("https://codeload.github.com/foo/bar/tar.gz/fix/bug") 19 - ), 20 - ( 21 - "https://github.com/eligrey/classList.js/archive/1.2.20180112.tar.gz", 22 - None 23 - ), 24 - ( 25 - "git+ssh://bitbucket.org/foo/bar#branch", 26 - Some("https://bitbucket.org/foo/bar/get/branch.tar.gz") 27 - ), 28 - ( 29 - "ssh://git@gitlab.com/foo/bar.git#fix/bug", 30 - Some("https://gitlab.com/foo/bar/repository/archive.tar.gz?ref=fix/bug") 31 - ), 32 - ( 33 - "git+ssh://git.sr.ht/~foo/bar#branch", 34 - Some("https://git.sr.ht/~foo/bar/archive/branch.tar.gz") 35 - ), 36 - ] { 37 - assert_eq!( 38 - get_hosted_git_url(&Url::parse(input).unwrap()), 39 - expected.map(|u| Url::parse(u).unwrap()) 40 - ); 41 - } 42 - } 43 - 44 - #[test] 45 - fn ideal_hashes() { 46 - for (input, expected) in [ 47 - ("sha512-foo sha1-bar", Some("sha512-foo")), 48 - ("sha1-bar md5-foo", Some("sha1-bar")), 49 - ("sha1-bar", Some("sha1-bar")), 50 - ("sha512-foo", Some("sha512-foo")), 51 - ("foo-bar sha1-bar", Some("sha1-bar")), 52 - ("foo-bar baz-foo", None), 53 - ] { 54 - assert_eq!(get_ideal_hash(input).ok(), expected); 55 - } 56 - } 57 - 58 - #[test] 59 - fn git_shorthand_v1() -> anyhow::Result<()> { 60 - let old = { 61 - let mut o = HashMap::new(); 62 - o.insert( 63 - String::from("sqlite3"), 64 - OldPackage { 65 - version: UrlOrString::Url( 66 - Url::parse( 67 - "github:mapbox/node-sqlite3#593c9d498be2510d286349134537e3bf89401c4a", 68 - ) 69 - .unwrap(), 70 - ), 71 - bundled: false, 72 - resolved: None, 73 - integrity: None, 74 - dependencies: None, 75 - }, 76 - ); 77 - o 78 - }; 79 - 80 - let initial_url = get_initial_url()?; 81 - 82 - let new = to_new_packages(old, &initial_url)?; 83 - 84 - assert_eq!(new.len(), 1, "new packages map should contain 1 value"); 85 - assert_eq!(new.into_values().next().unwrap(), Package { 86 - resolved: Some(UrlOrString::Url(Url::parse("git+ssh://git@github.com/mapbox/node-sqlite3.git#593c9d498be2510d286349134537e3bf89401c4a").unwrap())), 87 - integrity: None 88 - }); 89 - 90 - Ok(()) 91 - } 92 - 93 - #[test] 94 - fn lockfile_fixup() -> anyhow::Result<()> { 95 - let input = json!({ 96 - "lockfileVersion": 2, 97 - "name": "foo", 98 - "packages": { 99 - "": { 100 - 101 - }, 102 - "foo": { 103 - "resolved": "https://github.com/NixOS/nixpkgs", 104 - "integrity": "aaa" 105 - }, 106 - "bar": { 107 - "resolved": "git+ssh://git@github.com/NixOS/nixpkgs.git", 108 - "integrity": "bbb" 109 - } 110 - } 111 - }); 112 - 113 - let expected = json!({ 114 - "lockfileVersion": 2, 115 - "name": "foo", 116 - "packages": { 117 - "": { 118 - 119 - }, 120 - "foo": { 121 - "resolved": "https://github.com/NixOS/nixpkgs", 122 - "integrity": "aaa" 123 - }, 124 - "bar": { 125 - "resolved": "git+ssh://git@github.com/NixOS/nixpkgs.git", 126 - } 127 - } 128 - }); 129 - 130 - assert_eq!( 131 - fixup_lockfile(input.as_object().unwrap().clone())?, 132 - Some(expected.as_object().unwrap().clone()) 133 - ); 134 - 135 - assert_eq!( 136 - fixup_lockfile(json!({"lockfileVersion": 1}).as_object().unwrap().clone())?, 137 - None 138 - ); 139 - 140 - Ok(()) 141 - }
+1 -1
pkgs/data/fonts/iosevka/bin.nix
··· 11 11 (builtins.attrNames (builtins.removeAttrs variantHashes [ "iosevka" ])); 12 12 in stdenv.mkDerivation rec { 13 13 pname = "${name}-bin"; 14 - version = "22.0.2"; 14 + version = "22.1.0"; 15 15 16 16 src = fetchurl { 17 17 url = "https://github.com/be5invis/Iosevka/releases/download/v${version}/ttc-${name}-${version}.zip";
+92 -92
pkgs/data/fonts/iosevka/variants.nix
··· 1 1 # This file was autogenerated. DO NOT EDIT! 2 2 { 3 - iosevka = "0dj0fk40impvlnbgmpnhndhad841sbk7056nyaxagiz12qq6rrii"; 4 - iosevka-aile = "01r6gdl2s93mhsr7ipq8ir6sy7srpyn8w09yd06hqh26ps40ki2b"; 5 - iosevka-curly = "0d0wsb5fpknxix6qng6mzkfdj2abm8hq067bqvbqhrdwhvbl83x9"; 6 - iosevka-curly-slab = "1hh9ck2pbsjaj81hivq9b7wqxb03mr6hsargw6gic4qn6pkk4l3n"; 7 - iosevka-etoile = "0p85jw25pkhndcdi56l9yg1hm4rsdjvy713q89dygrn5678nw74w"; 8 - iosevka-slab = "11vf6w59pcs71liw0k0nrhaw61nbn4n68vrj1b4rymc7mdaxfp1i"; 9 - iosevka-ss01 = "0hiffyfhfwwy55i1rvr78mvlmgx3c4czfx0lf4vmq2c6c4bldbf7"; 10 - iosevka-ss02 = "1z796x3a7hv05wir06rcj8i1l99169a7wab9j3ibb819pdycs5v7"; 11 - iosevka-ss03 = "1jjmg538avphd3djdjy521q0lbn7ip97qpf479kgvcr1hhv606kl"; 12 - iosevka-ss04 = "09xfsnl5dqzind60wip38pr0j9db47prbcgndfh283jcaysh5c0b"; 13 - iosevka-ss05 = "1mj4q45ifxvgwrrrmlv46p9cliznc4z2vipdf6k8b05ad71n7gab"; 14 - iosevka-ss06 = "02hn8dajvn5x303fv5gfl95hhsvql4h8525hd9k3a93g9qj13ib8"; 15 - iosevka-ss07 = "1hki40chpp3bnz6ksbly8lpjiqywdhgkqpc2h25lksdg8hwd8mcb"; 16 - iosevka-ss08 = "16bpzbcq2i0flw48ch2dfxljgscrm2fxfrcb2112wjv8zvi593hd"; 17 - iosevka-ss09 = "0ajm1gn45zklijyijxvib0iy47q7jvgmp2kdgmsa5zwwvnh8fipb"; 18 - iosevka-ss10 = "1g1if97w5mzzvm8y141rsqby90pmvc4whxxrjvdpmv94yb2biryp"; 19 - iosevka-ss11 = "0icx5cflzk05h51i4i7p5wbdkrpnyfn9r89rsvrd22vxc038xhmg"; 20 - iosevka-ss12 = "1var71j3pfa2fakrmm0c5sgiznbnqnxsnnkmpcb2xpjy4q68xfq1"; 21 - iosevka-ss13 = "0mpidl1hickx60zmza94002721jfs169b5a1l6vxwi5x6vk5329v"; 22 - iosevka-ss14 = "15z0ipnx2spgsp68465x7c8fkvb4hjnyl8pmfj2izn6jmgsrlc4x"; 23 - iosevka-ss15 = "0fyw53nvv45z55x2cnm9kcdcbiw1nykycychkih2fwlydm67vj0d"; 24 - iosevka-ss16 = "18lja4xw63i013ndqhm7kr7ggpbwc5zsxam7xib258nfhyx548ff"; 25 - iosevka-ss17 = "1h2q2v93504539imbn0gbkxi9jw71hisl6px87hs3sh6lmm5kjfm"; 26 - iosevka-ss18 = "085j759av6pspqn3sajrc12w74m7h5y64vdi1spmgd97dnj1gz6q"; 27 - sgr-iosevka = "1ykc80hgc9pipqvqw4m3mqj37rhf6hskgds42kxqzxdn194072m1"; 28 - sgr-iosevka-aile = "0c1jhff87hg4hxwrrp1vxx8gq1bkl9q85py1fz7gb3xdbim54s3z"; 29 - sgr-iosevka-curly = "0zb3y46wbsjb847s31s56gjf9sj8ikp8qvsg1fm2m01idv6f21ig"; 30 - sgr-iosevka-curly-slab = "113wmkzaaqp1yw95ld2j4l1f7yw9miq4bv4zjf9jib4ss6yjq97v"; 31 - sgr-iosevka-etoile = "1pgsh5myw2ihnlk6qkxr7p46sg1402mqvqn7bi2ch8gd472gijck"; 32 - sgr-iosevka-fixed = "1jf1icg1mqv1059p9msvk64j09apcqc9alvzrrxdqblw9b2ckrkj"; 33 - sgr-iosevka-fixed-curly = "1p3m6i1cbphxqrwyj2n0d7zwx9f75nvdsdfyyh8wvap88xwm0ggf"; 34 - sgr-iosevka-fixed-curly-slab = "0lgvai6293ddxckr9yvymi704pymcyp3ks4yx3jn207f70mpdg41"; 35 - sgr-iosevka-fixed-slab = "17935bvl9yly24g95wi2g4faahnj98z3dkb1a6dkb4frjq1nif2m"; 36 - sgr-iosevka-fixed-ss01 = "0wqpm57zcis9h8pzwvyjw8gggrwfgzlc3zd9c3shh7mpzx6zcj88"; 37 - sgr-iosevka-fixed-ss02 = "00jlapqakmpjcdycvdlhlm46iyvr05b8qskl6m7fxqg46dvnzz9z"; 38 - sgr-iosevka-fixed-ss03 = "1qd9wybq9miazkqkpis61s07yak7pn2lfawws421ynfgbb5r7987"; 39 - sgr-iosevka-fixed-ss04 = "0dbrimliy072mqg1gys9cmbl0ac56iavjnl73d14mxc77ciavkkl"; 40 - sgr-iosevka-fixed-ss05 = "1xfhvbzi91gddql6q1byyi40s9n6ym517c2pf6zpirnk6a7415k6"; 41 - sgr-iosevka-fixed-ss06 = "0ibji574aifh7pqpdgnmgmp3k784swjdvly9292sd758mlh8j5sa"; 42 - sgr-iosevka-fixed-ss07 = "1ixx123q5w7pbp9sgm84bhmzi7zy0h1ki3plm891mfv64pkbg42w"; 43 - sgr-iosevka-fixed-ss08 = "00jwiwbgrj6yxqjdp4g8cbsq2jk5pz6h401mh7y6wp2j3y2xrrkb"; 44 - sgr-iosevka-fixed-ss09 = "0jikxfir5md9qp5j1lhk1l9vjx2m15ncy9nkvb50mm32b6y5x3ph"; 45 - sgr-iosevka-fixed-ss10 = "0ampkjvr8qyadfc0yvmyvac7gnm1xi441vz1pf8n2qniypy29bgj"; 46 - sgr-iosevka-fixed-ss11 = "1nchlqkilglymydj33jzgp9wfivja2x3p8app3g9rgcsncsgjyc8"; 47 - sgr-iosevka-fixed-ss12 = "1wpza8g4as1p4cd8g0lv20m2k57f22kazp2w7810k2wzv06613jq"; 48 - sgr-iosevka-fixed-ss13 = "0phh86fk0l37998vxakz0vsxwsj1lbbzls23q56x7hgynnh8nr3x"; 49 - sgr-iosevka-fixed-ss14 = "1x1hmfj692ify57lffg08pa2420fgx0amha1kdzyyxf87s3maqx8"; 50 - sgr-iosevka-fixed-ss15 = "0qbf0b92668pxhjx778nnm5mj2w65c02k3cwk4f4x8vwkagwq2jp"; 51 - sgr-iosevka-fixed-ss16 = "0wmlcckbyrr1sspqfp5r6rymy5myy53q02fl7agv1c7bwfx9iycr"; 52 - sgr-iosevka-fixed-ss17 = "1rrkyv919m86biydl8jivfyn7wf8cna5c3b8rwv80ihz131zgj6z"; 53 - sgr-iosevka-fixed-ss18 = "1s5gj3iyyfgkkxy23yzbibwrzw4s2x9xprc5hhzyh2r10zvib5cf"; 54 - sgr-iosevka-slab = "1313y3nma1pqxm73yksw1b4vkvbwnv434hvkpqk1gp232j3i6dw2"; 55 - sgr-iosevka-ss01 = "137lmgn490vyl2y7aa5pqa66rsdwrsd4z8nz22fsks3p1pzm3fc7"; 56 - sgr-iosevka-ss02 = "1rhc76hfm204l5bmp1jdi74f0ay34g9q2rzi7lz5jirjjinnvadj"; 57 - sgr-iosevka-ss03 = "1gpb5vcx624gi0jjrj8p7jpm6r2465gpbn3khq46f9557ril4m5y"; 58 - sgr-iosevka-ss04 = "0kf1pmq2ffiam4zllj6x1dzd738zi9a843fz6jkpjbf9fascad9z"; 59 - sgr-iosevka-ss05 = "1xibjsa438lwk4y4bf0r7gjqy5czp7j7fml08f492jb1dwz7vqhq"; 60 - sgr-iosevka-ss06 = "1mk6haqj77b7r8cazkhf0bzd5w9ln2s6chsr12pd6bzmvphvzrzi"; 61 - sgr-iosevka-ss07 = "087030ckif8w4mv7j9y4pirfia5g8dh385awpqc6fffls9l0l0zh"; 62 - sgr-iosevka-ss08 = "0gzgsl7li9i1hl0ffw81j4w2ps3wy4kq986fwcwhgk7n9cy9rg97"; 63 - sgr-iosevka-ss09 = "1hsdgsg5y40bxwjkhm2q7jmjcjffsyjwa741n7fkfaqrqwl6273g"; 64 - sgr-iosevka-ss10 = "0ayspdypq0n7j8nbx17lxzki84icy5bzk88xq6akp7g6n035vw37"; 65 - sgr-iosevka-ss11 = "0kf2a1765qrmd5ba3s3hw8hxgzbcqi9dwb754yid18kiipl3lp4l"; 66 - sgr-iosevka-ss12 = "02d8i8qizfd1akhp0857y5i60hq3y4dj2dg2aq9pf4ldydcvc16g"; 67 - sgr-iosevka-ss13 = "0aw77vcfmr868vyff01cqln09xb1f30lwcsg4mqg2ym2ibp0xv71"; 68 - sgr-iosevka-ss14 = "1s1y5hww1vlqavgp4rr36bdvdicx7azw0yyrgv401i5w1p5z0088"; 69 - sgr-iosevka-ss15 = "1wb8s43hjw36x99sh610ms5x04nb6pi9z7i0dcpch7x9g2kk9ydh"; 70 - sgr-iosevka-ss16 = "1fwgskyl6ys383sa6fkkmdpw61m0d5nxc2vrhw56wysfvrz2cfa8"; 71 - sgr-iosevka-ss17 = "1zvzwy90gkaiq9ij9030wssnrjrkx9xkddwghaa1s2p9bdyfnf8x"; 72 - sgr-iosevka-ss18 = "12ijnkr69hahk8ghgibz438ar3yfky4kzwb9r08y43zjvycf2qhg"; 73 - sgr-iosevka-term = "13dvkydib9gv7308i093zpxpr40cr3admq0c4gg6ki3ix7cml3ac"; 74 - sgr-iosevka-term-curly = "0991m6p3b4kiyw0rgvxswwn263i7if7nznbivyzdsj1dgp3b2pkr"; 75 - sgr-iosevka-term-curly-slab = "1qbhhd4w2nxga2j7llsn8w3qa66rfw4nqylsw6dknqfhf34ba2mq"; 76 - sgr-iosevka-term-slab = "0g0dy4nrgy1a3xdbc5nxyh7y8j7plkbk09bid8rq51rdsljzp1hg"; 77 - sgr-iosevka-term-ss01 = "1smlqzqvp8by7rz5g5nbywyg740v9fhyiy3khn9rx5szyj92pmrb"; 78 - sgr-iosevka-term-ss02 = "1caxixkzbjapdr3k1ki1wfvcgs74mng0h15y00msfga1pjbj41vw"; 79 - sgr-iosevka-term-ss03 = "1fsbzb57jx2qcdmixxpgpqm8x1rlvc5vzkgx2w9z83nrll3iba5n"; 80 - sgr-iosevka-term-ss04 = "0zmpgsb0x8d8pggliqyl79hnxv5ivir0d8z2bg5zy1cw5ryzz94w"; 81 - sgr-iosevka-term-ss05 = "17d8ak2xnmp0g37b5ly3qik38mmmblrdqgmixp4i91wldf66h58c"; 82 - sgr-iosevka-term-ss06 = "0vv5gga66c5rs2vl4ncid403yqx7nwjfkr4mr5krlpc6lhs7wzhk"; 83 - sgr-iosevka-term-ss07 = "0mjpm4x0gy4749fnha26xssm7aw72sh7rgf3jf46pmqz40ya829b"; 84 - sgr-iosevka-term-ss08 = "1hw3cjfr3wwmjvi84vdn32kpk6x9zyqi43ib9nva7db4if39vf7s"; 85 - sgr-iosevka-term-ss09 = "1049yb11dlxc7d97hw51mzssrc0ips2dll8wglinp0l23y1nhf2s"; 86 - sgr-iosevka-term-ss10 = "0nzgcr2rlcgzfidnpix1dxyqiz273xmhfipfkflz5plpqvscd0c1"; 87 - sgr-iosevka-term-ss11 = "135crs740qprnzk0mycp83vw9x1m8za6w51syvvx8h0vncsc8g6b"; 88 - sgr-iosevka-term-ss12 = "1a2qrp44i4gqqpn2ycmslnm2g92v79v4hsim2ssiia474s5qn41z"; 89 - sgr-iosevka-term-ss13 = "18dbgl28iykw1hqcmanvpkc8zk12547rgw8zisr4vwqck8an50vb"; 90 - sgr-iosevka-term-ss14 = "0474ricwyvcmk9baxmd3gq1p6zrgnj59p0bbrsfc142ixqgkc0pp"; 91 - sgr-iosevka-term-ss15 = "1g8pjbyxnhvx62g96zlfpbq2kdc329j0pcr8iib7isyhijh4ygcx"; 92 - sgr-iosevka-term-ss16 = "199jhbfh2zbmp07jzi2wm8a63zhmasf4a04bp9i13pqwxz9hic7i"; 93 - sgr-iosevka-term-ss17 = "1lyv2hpmyalrwbhcxjqw9lzil9dfhrf971vazg366wngwn027sp2"; 94 - sgr-iosevka-term-ss18 = "1wszzj13gv3kc488yg9bshrf98db86xi0958g9l2y9l137h4frbz"; 3 + iosevka = "1f0l3d6j936799szy243k58rk28qbrgvgi35g0w6bfsra25lycq2"; 4 + iosevka-aile = "0prhfpz0ib7cbpi1kznb6yrp0wqjnsh39hymzha6lm0pa7py1r36"; 5 + iosevka-curly = "0yzdm4ypfk60zvl54fhsmi9xs1bg08pac0srs9nggicp5zswixb3"; 6 + iosevka-curly-slab = "175d96yzrqdjg7ic88dacvs7hz8daskn1a9vrqks132rr6a26xvw"; 7 + iosevka-etoile = "1n5xcnq6vbks53vfaxkm1ykpfcsbw1q3zmkrlrwsdd0zdxjsy1fx"; 8 + iosevka-slab = "07z3r27px5hsnz9rac290f2xraavflxqnd2ppmjiwz1yg9ch80d9"; 9 + iosevka-ss01 = "1fd5pjyxrqna98nghsp6rxbaqhmxch89s3jdvqdmpwj87jb6dkcc"; 10 + iosevka-ss02 = "13i8cqdh8g3wv8686g09aazjly157wvzgf5a6n1az4kcax9cawi3"; 11 + iosevka-ss03 = "1l1dkk6321czqrd7if4wwmps9r6in88952i1hqgjqr3r797x4k8p"; 12 + iosevka-ss04 = "1798nzr27pv9dpmjgp9bbivg9dcnk3cz603k3n3igmp8rb4rhz5f"; 13 + iosevka-ss05 = "0csxpmh6ymkgfhzl5x370y4qdl92cjhas25782n8carg16bc854f"; 14 + iosevka-ss06 = "12kmb4g0f31jr0d2gr66xjcjjqsmbr5hs0ynqbcsdpk4x58lv4y7"; 15 + iosevka-ss07 = "1fwdiyzs5prggzld9zip2bqzhngljwsy33cdbfq9526qakbxi67g"; 16 + iosevka-ss08 = "0yha45vyl0kdl593f04m26sl92vhklr1afd7yhmlkmhhhqp6bs9n"; 17 + iosevka-ss09 = "0av1npxxky47239x64rbrv7q7gb2lrgyzkaw1mqhafg6yzjn9iq5"; 18 + iosevka-ss10 = "0w3j04sjkrsd91vl7gyxbjjm76xx64p7b5c97p04xsa09gaig7i9"; 19 + iosevka-ss11 = "1vv20s4kp3mhngdpxzxwa1hldahxm1cxybnf1hzgd79a1162blhx"; 20 + iosevka-ss12 = "1yh200azn914s8lyzv8ga68ixxrqhcxx1rywxm3cpmm8iisvjf4y"; 21 + iosevka-ss13 = "0yvnzz53x0np7w53r5989chs9fcv81mckbf41z519r8l30m31bbj"; 22 + iosevka-ss14 = "17cv02gbzn0v8c8apdh7dd5s3y2qb9cydr8g5rbczzpvywixxrwr"; 23 + iosevka-ss15 = "04iqvjx0nkzikar4ivi7zswqvpcd954khmjjx8vicq3x56wggj8z"; 24 + iosevka-ss16 = "1q3krbi3vh8ry35s24cja77a8430x4n8i4anf8v7rh45sns37fmj"; 25 + iosevka-ss17 = "0vyzhix547j7yq717ffns6pd5mgis5sbxl85c1qf3nhij8czqg6l"; 26 + iosevka-ss18 = "0qikq8p8kvxw9lmrgzlm1g26bz3lppbc8jcgl8417jz400npfqg9"; 27 + sgr-iosevka = "095nwxsgwj671m962ix8qva5himdva0iqv9b5lapgb7acidrj8m7"; 28 + sgr-iosevka-aile = "1fkl0v7rclia5lwfm7f3vc3gkgnd88gf00icm6qka1xylzk8z83l"; 29 + sgr-iosevka-curly = "0q7dakcldx7j2cvn8hz079j81y5ab6ziqz6jr51w1whzb46al7rq"; 30 + sgr-iosevka-curly-slab = "0pw3fbygsgdw0isnv18axh49yxyfjdav6xizrvg6x4y8hispx0xp"; 31 + sgr-iosevka-etoile = "1fs22ap272hkf1wfymhbvgdpsrnxwadp8z6lv2hv5wy8ibc0ccia"; 32 + sgr-iosevka-fixed = "0bgag04jidcdj0gmsppc2lhvawpvylxs645sgxjj8bljy6480s96"; 33 + sgr-iosevka-fixed-curly = "0hgablbcb0wrpdkxw78pyvyni7dh457nwb10acwjxy6lbsshd88z"; 34 + sgr-iosevka-fixed-curly-slab = "1nb3izaq3slaxypylz3l6r8xjg7yy0yan08nsw8zny5lp0kaiqw9"; 35 + sgr-iosevka-fixed-slab = "16cc32ysmvifx736alp8bmcb9sjs1426sv72qydy99dafw34xhmm"; 36 + sgr-iosevka-fixed-ss01 = "0vvjj3dsfj8a60pg1qf7hcm6livsjc40xr0sfc9z1hx3dwjqpvlh"; 37 + sgr-iosevka-fixed-ss02 = "1yy9hqfdb897wi3nl5ny5j5i56jggbppx4ddckfa62a4jxvfks58"; 38 + sgr-iosevka-fixed-ss03 = "0qhk1w3gsd3qriyk9k33sfq46h9hn5zy9zk9cpd429z0xdps49kc"; 39 + sgr-iosevka-fixed-ss04 = "02psmn72r1mkza8n7p4sgrag7iz5zylnw03hnq6fnc4bqnn29gph"; 40 + sgr-iosevka-fixed-ss05 = "1w3jjjr8vvzjihpai9mivkcm2wngag6iva120zsqgb2n2k1z31bp"; 41 + sgr-iosevka-fixed-ss06 = "1icabqjnnsj59m4lg3qk820kdsq7hhl3gngfm5x4br43h031cdc7"; 42 + sgr-iosevka-fixed-ss07 = "0j9l18w7xxdgnw728zyphb52a76rbhb8cv388yc94wldzcmsk1jb"; 43 + sgr-iosevka-fixed-ss08 = "0js9pf92pgd944dywya1yjdx99sz56ra0nwxs9n9g0zn1rj5czwv"; 44 + sgr-iosevka-fixed-ss09 = "06bnyhx5rhkqjiwkjy1rxx6mby16wkyb1r4l3lkln5v6v0sfixfp"; 45 + sgr-iosevka-fixed-ss10 = "13y3vvcrm2v78bmadk051zr3izl0hpcxmfag34cikapzmf9vzxn3"; 46 + sgr-iosevka-fixed-ss11 = "1rwjzdz2ab90rv5p8hh870x9knhilqh0iiwfkyx8kjp7s9shhncp"; 47 + sgr-iosevka-fixed-ss12 = "0fj2szv0g2dclf7yhi8xc9hkgz1mw7kpc62hcvs3044ciga9cxrv"; 48 + sgr-iosevka-fixed-ss13 = "1z6rpf9l6yadzqgrdcyi75vd8mh75b6dx7d9bh06n8sjr5amhav5"; 49 + sgr-iosevka-fixed-ss14 = "0cp58j9c7fkm0q0ym99rhg7ljvzympwks4wk7l8vhh0wp2hfw78h"; 50 + sgr-iosevka-fixed-ss15 = "1fzs0c12abrf81yy1254nfiaq5q2rgvnv1yhqh985jmwcr010n83"; 51 + sgr-iosevka-fixed-ss16 = "16wffgq3b9d290kkbb6xa6z9aphn2d1wzqsqfr4mrkbhpwchbh0i"; 52 + sgr-iosevka-fixed-ss17 = "030l59270vyjhik8cn2jphdvd6vphr9ac8kqzx3bdbf1wgsr4sir"; 53 + sgr-iosevka-fixed-ss18 = "06qym0ffxy6j9hagpd3vrf6j5bd83ch150wkqg9rkg1i26q71v36"; 54 + sgr-iosevka-slab = "0mbdgpxkb3s4a8x0dvnjwqg3za0hl73n3a5vrmy8p694bnx1mi7r"; 55 + sgr-iosevka-ss01 = "0ilr1jiqmjmjfv4py1q3pdn3j20nh8j99629gq9g1zb82x1c9g9l"; 56 + sgr-iosevka-ss02 = "0l4cbx4v8zffbbq1lklk8knn0w6j9gjdp1f780k6x0z0jz3dxvdw"; 57 + sgr-iosevka-ss03 = "0dpl84ybj2h6nv03yy4vrwwksx4zms1c8fgr238w1nbhd7lnlyrv"; 58 + sgr-iosevka-ss04 = "0xlyjxsz6zc3gljvw0rsfgyv9xg1kvgsy2ibd2950vlxk2c597jb"; 59 + sgr-iosevka-ss05 = "02vfkdjq01jxjcvcnxs8g2snmq2gg56448yk0l0gna9mi1hagsk3"; 60 + sgr-iosevka-ss06 = "0b75h0al34f6w0s94i5c88pzs4zjl2iinkwjx855a036mdcqkz1l"; 61 + sgr-iosevka-ss07 = "1grqjqn9gckpgrrch9xa05ljpwr1rdr4lczsn89irhjz102s0bik"; 62 + sgr-iosevka-ss08 = "1mzbaslpy7pscmyiiz0k7czw3kjjc9an7mdb4yh99bpxwaskiv3k"; 63 + sgr-iosevka-ss09 = "1d7r2cv1w9q5h1frvzylizwimp8r6bdpg3fckcrdrfxsl0xfdffc"; 64 + sgr-iosevka-ss10 = "1jr01z6s476aggnnki0q4x24z35jx03fl4fh1l44pf3rckz7c0m9"; 65 + sgr-iosevka-ss11 = "05kybk7wskrg2i58h9n31sj1g6m93dcbbxr38y9nfcxb02cdbxp3"; 66 + sgr-iosevka-ss12 = "0pzrn3b5qj2q7k7slwvvz31j566l8xbmgk6kv324r3r19xcmsx31"; 67 + sgr-iosevka-ss13 = "1cgn33g39pnjkh452r396cyw00iskrr73k2jghw2ywb8ard024gc"; 68 + sgr-iosevka-ss14 = "0q74z4p3ybhaha4z6myasxyidy464vmccqk0bji6ks6fdklh2l3m"; 69 + sgr-iosevka-ss15 = "13gcgv08pwsbnr51b67w5hb9x5vcz7ridxjzwcnjhavssq3qn02x"; 70 + sgr-iosevka-ss16 = "1lkxrvd328ww8xi2189333p40awk7bb4d5k0mpcibp1r2hqbhx3x"; 71 + sgr-iosevka-ss17 = "0q4j381k2nz88y2nszd90ynmqyzna5il7j5illhdjk9dyp936f1p"; 72 + sgr-iosevka-ss18 = "16hdbvx9pa5z03i3dv8x40x6d8nvgxn4vga8sgdgpd2d5k8ibcq5"; 73 + sgr-iosevka-term = "0a16brmr2xsm48bcd5rrsv1c7b4yhvnkrlqp14p0fawyfs05bk5v"; 74 + sgr-iosevka-term-curly = "0a53j231zd1nkirp3fg6m72455gmkn0ipvdqswkkipxp5llbxkhx"; 75 + sgr-iosevka-term-curly-slab = "1ypbffwg7pihq5ywy59y3f2d8dw8p5lzk2284336z3a7i8kzmhpq"; 76 + sgr-iosevka-term-slab = "0rcf9i8fibrvmhzmm192crl7jlv7bwda7b12865w4g719a8ksdsv"; 77 + sgr-iosevka-term-ss01 = "0h12vz7qkl6xflffiqjqqkd1ziqkg2pi1s8pk28ak706fv4k203n"; 78 + sgr-iosevka-term-ss02 = "19d3hqlwv7pi9xyh9amshirbj6ypg6ka5g6hz9dmmh0pmwhcvpjs"; 79 + sgr-iosevka-term-ss03 = "09b3ghyvrjx8dnh8i9ly3cmkbpl10gn1283q9bjamcc8niva6g36"; 80 + sgr-iosevka-term-ss04 = "0l27i49myv81x09bj8ii732zc6473psa58ls2zgvd7yz2bihi3ar"; 81 + sgr-iosevka-term-ss05 = "0421p4y94zxwvc7qyl4zgxld3jrx12wsjirmvfxvfndn0f4dwqyk"; 82 + sgr-iosevka-term-ss06 = "0dl62wnqfqrryp0hrj073yvvy225swv9kcldhygapi16mw97v30b"; 83 + sgr-iosevka-term-ss07 = "03sipvjji22g0gajj0vxkmsc81fd173bb816vjv56fh489g04hn3"; 84 + sgr-iosevka-term-ss08 = "0j0y2dzn6a8r0yg40kajzrhyvl5yf2b8hm7n9970h0gl3rrk5pxa"; 85 + sgr-iosevka-term-ss09 = "1y37cr436hwb1iqqsybg0w595kbn0373hm0zmwcsmsxb25166lcf"; 86 + sgr-iosevka-term-ss10 = "1ngyppn90nn8f59xkh63ifl077w0zldjxzxjw8skx2jhj2kis537"; 87 + sgr-iosevka-term-ss11 = "193snjki9wd6cjpd754g7pvhlyg3yizlcjhcw9x0zx60830xcbd3"; 88 + sgr-iosevka-term-ss12 = "000maksimlm3gapp8d3cwymkmkg4n0dcwxvlxwgi2a6f5rwgfm8n"; 89 + sgr-iosevka-term-ss13 = "09yfj7kxd0p2w1dd1n8hwr3j2plqiq7l17rhh0lys1clyw1jrph8"; 90 + sgr-iosevka-term-ss14 = "16fipp8pka2187mclsf24sxx7idcqh4nn4z63glrg6695g8r0vd0"; 91 + sgr-iosevka-term-ss15 = "0yaj5all8jljzyhd5qmgvmiwv7whx4f9zvxgv3l53xxww5i5yhiz"; 92 + sgr-iosevka-term-ss16 = "163g9mj2n8z21nr5yslnq8m4m7j4aq7q918zs8nd5hggjzhqpy9y"; 93 + sgr-iosevka-term-ss17 = "07zicd0f8bclwxfkvxy6x6bhccz3334wmgfxqpzx36sshyhvfihg"; 94 + sgr-iosevka-term-ss18 = "1qwxyyqv483p05mvkar9vb2m349is0qgdijri8ipran73w363fhc"; 95 95 }
+2 -2
pkgs/data/fonts/sarasa-gothic/default.nix
··· 2 2 3 3 stdenvNoCC.mkDerivation rec { 4 4 pname = "sarasa-gothic"; 5 - version = "0.40.5"; 5 + version = "0.40.6"; 6 6 7 7 src = fetchurl { 8 8 # Use the 'ttc' files here for a smaller closure size. 9 9 # (Using 'ttf' files gives a closure size about 15x larger, as of November 2021.) 10 10 url = "https://github.com/be5invis/Sarasa-Gothic/releases/download/v${version}/sarasa-gothic-ttc-${version}.7z"; 11 - hash = "sha256-bs3o8+LyCTCZvUYigUWfSmjFrzPg7nLzElZYxDEsQ9k="; 11 + hash = "sha256-AHslDiYBQXcxo8XVh1GMZDR8LJXvzJHl4hrisfhltEM="; 12 12 }; 13 13 14 14 sourceRoot = ".";
+3 -3
pkgs/development/interpreters/wasmtime/default.nix
··· 2 2 3 3 rustPlatform.buildRustPackage rec { 4 4 pname = "wasmtime"; 5 - version = "7.0.0"; 5 + version = "8.0.0"; 6 6 7 7 src = fetchFromGitHub { 8 8 owner = "bytecodealliance"; 9 9 repo = pname; 10 10 rev = "v${version}"; 11 - hash = "sha256-vbsjUJH6wHmSTwUV5tXrTUljPJNLTms8K6EyWi0mipA="; 11 + hash = "sha256-NSD0xWqxRVFiearYRZFIllizsRHPylWYNzcNoC6+Cpg="; 12 12 fetchSubmodules = true; 13 13 }; 14 14 15 - cargoHash = "sha256-eTm0FfWiNpEwj2egLrQGPA1lZ0K5GfVOeULsbNyf18Q="; 15 + cargoHash = "sha256-v0DLbYM9EoIcj0JEH+LWrMx14gLRfCLW8wYDFKdFNCs="; 16 16 17 17 cargoBuildFlags = [ 18 18 "--package wasmtime-cli"
+2 -2
pkgs/development/libraries/libwpe/fdo.nix
··· 16 16 17 17 stdenv.mkDerivation rec { 18 18 pname = "wpebackend-fdo"; 19 - version = "1.14.0"; 19 + version = "1.14.2"; 20 20 21 21 src = fetchurl { 22 22 url = "https://wpewebkit.org/releases/wpebackend-fdo-${version}.tar.xz"; 23 - sha256 = "51sMsscUVEhBboaWAT2Ig/Z1xmwR7XUOBoZe/sWAkVU="; 23 + sha256 = "k8l2aumGTurq7isKdPIsvKCN9CwaG9tVsIbyUo44DTg="; 24 24 }; 25 25 26 26 depsBuildBuild = [
+2 -2
pkgs/development/libraries/webkitgtk/default.nix
··· 71 71 72 72 stdenv.mkDerivation (finalAttrs: { 73 73 pname = "webkitgtk"; 74 - version = "2.40.0"; 74 + version = "2.40.1"; 75 75 name = "${finalAttrs.pname}-${finalAttrs.version}+abi=${if lib.versionAtLeast gtk3.version "4.0" then "6.0" else "4.${if lib.versions.major libsoup.version == "2" then "0" else "1"}"}"; 76 76 77 77 outputs = [ "out" "dev" "devdoc" ]; ··· 82 82 83 83 src = fetchurl { 84 84 url = "https://webkitgtk.org/releases/webkitgtk-${finalAttrs.version}.tar.xz"; 85 - hash = "sha256-pGB+ob+JZp6JscssY/quxRP5PeCbauYMxx1qiqt6s5M="; 85 + hash = "sha256-ZOUmmE+M0hYe8DrpSa+ZwAL/Mz1hXmOGtGAWSjwbfvY="; 86 86 }; 87 87 88 88 patches = lib.optionals stdenv.isLinux [
+74
pkgs/development/python-modules/accelerate/default.nix
··· 1 + { stdenv 2 + , lib 3 + , buildPythonPackage 4 + , fetchFromGitHub 5 + , pythonOlder 6 + , pytestCheckHook 7 + , setuptools 8 + , numpy 9 + , packaging 10 + , psutil 11 + , pyyaml 12 + , torch 13 + , evaluate 14 + , parameterized 15 + , transformers 16 + }: 17 + 18 + buildPythonPackage rec { 19 + pname = "accelerate"; 20 + version = "0.18.0"; 21 + format = "pyproject"; 22 + disabled = pythonOlder "3.7"; 23 + 24 + src = fetchFromGitHub { 25 + owner = "huggingface"; 26 + repo = pname; 27 + rev = "refs/tags/v${version}"; 28 + hash = "sha256-fCIvVbMaWAWzRfPc5/1CZq3gZ8kruuk9wBt8mzLHmyw="; 29 + }; 30 + 31 + nativeBuildInputs = [ setuptools ]; 32 + 33 + propagatedBuildInputs = [ 34 + numpy 35 + packaging 36 + psutil 37 + pyyaml 38 + torch 39 + ]; 40 + 41 + nativeCheckInputs = [ 42 + evaluate 43 + parameterized 44 + pytestCheckHook 45 + transformers 46 + ]; 47 + preCheck = '' 48 + export HOME=$(mktemp -d) 49 + export PATH=$out/bin:$PATH 50 + ''; 51 + pytestFlagsArray = [ "tests" ]; 52 + disabledTests = [ 53 + # try to download data: 54 + "FeatureExamplesTests" 55 + "test_infer_auto_device_map_on_t0pp" 56 + ] ++ lib.optionals (stdenv.isLinux && stdenv.isAarch64) [ 57 + # usual aarch64-linux RuntimeError: DataLoader worker (pid(s) <...>) exited unexpectedly 58 + "CheckpointTest" 59 + ]; 60 + # numerous instances of torch.multiprocessing.spawn.ProcessRaisedException: 61 + doCheck = !stdenv.isDarwin; 62 + pythonImportsCheck = [ 63 + "accelerate" 64 + ]; 65 + 66 + meta = with lib; { 67 + homepage = "https://huggingface.co/docs/accelerate"; 68 + description = "A simple way to train and use PyTorch models with multi-GPU, TPU, mixed-precision"; 69 + changelog = "https://github.com/huggingface/accelerate/releases/tag/v${version}"; 70 + license = licenses.asl20; 71 + maintainers = with maintainers; [ bcdarwin ]; 72 + mainProgram = "accelerate"; 73 + }; 74 + }
+8 -2
pkgs/development/python-modules/catboost/default.nix
··· 5 5 6 6 buildPythonPackage rec { 7 7 pname = "catboost"; 8 - version = "1.1.1"; 8 + # nixpkgs-update: no auto update 9 + version = "1.0.5"; 9 10 10 11 disabled = pythonOlder "3.4"; 11 12 ··· 14 13 owner = "catboost"; 15 14 repo = "catboost"; 16 15 rev = "refs/tags/v${version}"; 17 - hash = "sha256-bqnUHTTRan/spA5y4LRt/sIUYpP3pxzdN/4wHjzgZVY="; 16 + hash = "sha256-ILemeZUBI9jPb9G6F7QX/T1HaVhQ+g6y7YmsT6DFCJk"; 18 17 }; 19 18 20 19 nativeBuildInputs = [ clang_12 ]; ··· 41 40 # Tests use custom "ya" tool, not yet supported. 42 41 dontUseSetuptoolsCheck = true; 43 42 pythonImportsCheck = [ "catboost" ]; 43 + 44 + passthru = { 45 + # Do not update to catboost 1.1.x because the patch doesn't apply cleanly 46 + skipBulkUpdate = true; 47 + }; 44 48 45 49 meta = with lib; { 46 50 description = "High-performance library for gradient boosting on decision trees.";
+2 -2
pkgs/development/python-modules/docformatter/default.nix
··· 12 12 13 13 buildPythonPackage rec { 14 14 pname = "docformatter"; 15 - version = "1.6.2"; 15 + version = "1.6.3"; 16 16 17 17 disabled = pythonOlder "3.7"; 18 18 ··· 22 22 owner = "PyCQA"; 23 23 repo = pname; 24 24 rev = "refs/tags/v${version}"; 25 - hash = "sha256-fQm+eMA1p7uCVgQ3Hbm3UY1mhROsThtgkjRRPg3XcsI="; 25 + hash = "sha256-MyrLzEVuNsAZCnRXWDGK7jFAu8woZUSrN6ml1yiadF0="; 26 26 }; 27 27 28 28 patches = [
+2 -2
pkgs/development/python-modules/elmax-api/default.nix
··· 9 9 10 10 buildPythonPackage rec { 11 11 pname = "elmax-api"; 12 - version = "0.0.3"; 12 + version = "0.0.4"; 13 13 format = "setuptools"; 14 14 15 15 disabled = pythonOlder "3.8"; ··· 18 18 owner = "albertogeniola"; 19 19 repo = pname; 20 20 rev = "refs/tags/v${version}"; 21 - hash = "sha256-ZqPDnIiFzxS6nU19bfEgnqEsuz7oI+Z4ac6br6Gr4Vk="; 21 + hash = "sha256-+dR1ccRa4G91yFeSwjgdZ1lEXV/PIgnKN8e9tfy5fTU="; 22 22 }; 23 23 24 24 propagatedBuildInputs = [
+2 -2
pkgs/development/python-modules/gehomesdk/default.nix
··· 13 13 14 14 buildPythonPackage rec { 15 15 pname = "gehomesdk"; 16 - version = "0.5.8"; 16 + version = "0.5.9"; 17 17 format = "setuptools"; 18 18 19 19 disabled = pythonOlder "3.7"; 20 20 21 21 src = fetchPypi { 22 22 inherit pname version; 23 - hash = "sha256-x83CmOAZFaIDv4bzO01YZxVPVM/cwUpJtKdCWOxH/O4="; 23 + hash = "sha256-V8vwsLIO44q2ms/segTZ70DUVb7BNuxYZ8vX9KPNP4c="; 24 24 }; 25 25 26 26 propagatedBuildInputs = [
+2 -2
pkgs/development/python-modules/hahomematic/default.nix
··· 16 16 17 17 buildPythonPackage rec { 18 18 pname = "hahomematic"; 19 - version = "2023.4.0"; 19 + version = "2023.4.2"; 20 20 format = "pyproject"; 21 21 22 22 disabled = pythonOlder "3.9"; ··· 25 25 owner = "danielperna84"; 26 26 repo = pname; 27 27 rev = "refs/tags/${version}"; 28 - hash = "sha256-IR8Sx9rb6vPA/wIZVCwOl2bKxwWbogW4Xry14yxb2Ic="; 28 + hash = "sha256-cMrp0IewFezXpuXDnXDoDmEge/2NWRlhqkBmIwBjlrE="; 29 29 }; 30 30 31 31 nativeBuildInputs = [
+2
pkgs/development/python-modules/markdown-it-py/default.nix
··· 16 16 , sphinx-book-theme 17 17 , sphinx-copybutton 18 18 , sphinx-design 19 + , stdenv 19 20 , pytest-regressions 20 21 , pytestCheckHook 21 22 , pythonOlder ··· 53 52 preCheck = '' 54 53 rm -r benchmarking 55 54 ''; 55 + doCheck = !stdenv.isi686; 56 56 57 57 pythonImportsCheck = [ 58 58 "markdown_it"
+3 -2
pkgs/development/python-modules/mdit-py-plugins/default.nix
··· 10 10 11 11 buildPythonPackage rec { 12 12 pname = "mdit-py-plugins"; 13 - version = "0.3.4"; 13 + version = "0.3.5"; 14 14 format = "pyproject"; 15 15 16 16 disabled = pythonOlder "3.6"; ··· 19 19 owner = "executablebooks"; 20 20 repo = pname; 21 21 rev = "refs/tags/v${version}"; 22 - hash = "sha256-BvxqMSl8YXD84O6qjDI0VZgZpqL0UL0vYDMKxCc9qtI="; 22 + hash = "sha256-U6Qh/1GklW9ZXBXmjPLuxga0JS/Cyga1iorcMEA+WP8="; 23 23 }; 24 24 25 25 nativeBuildInputs = [ ··· 42 42 meta = with lib; { 43 43 description = "Collection of core plugins for markdown-it-py"; 44 44 homepage = "https://github.com/executablebooks/mdit-py-plugins"; 45 + changelog = "https://github.com/executablebooks/mdit-py-plugins/blob/v${version}/CHANGELOG.md"; 45 46 license = licenses.mit; 46 47 maintainers = with maintainers; [ AluisioASG ]; 47 48 };
+54
pkgs/development/python-modules/peft/default.nix
··· 1 + { lib 2 + , buildPythonPackage 3 + , fetchFromGitHub 4 + , pythonOlder 5 + , pytestCheckHook 6 + , setuptools 7 + , numpy 8 + , packaging 9 + , psutil 10 + , pyyaml 11 + , torch 12 + , transformers 13 + , accelerate 14 + }: 15 + 16 + buildPythonPackage rec { 17 + pname = "peft"; 18 + version = "0.2.0"; 19 + format = "pyproject"; 20 + 21 + disabled = pythonOlder "3.7"; 22 + 23 + src = fetchFromGitHub { 24 + owner = "huggingface"; 25 + repo = pname; 26 + rev = "refs/tags/v${version}"; 27 + hash = "sha256-NPpY29HMQe5KT0JdlLAXY9MVycDslbP2i38NSTirB3I="; 28 + }; 29 + 30 + nativeBuildInputs = [ setuptools ]; 31 + 32 + propagatedBuildInputs = [ 33 + numpy 34 + packaging 35 + psutil 36 + pyyaml 37 + torch 38 + transformers 39 + accelerate 40 + ]; 41 + 42 + doCheck = false; # tried to download pretrained model 43 + pythonImportsCheck = [ 44 + "peft" 45 + ]; 46 + 47 + meta = with lib; { 48 + homepage = "https://github.com/huggingface/peft"; 49 + description = "State-of-the art parameter-efficient fine tuning"; 50 + changelog = "https://github.com/huggingface/peft/releases/tag/v${version}"; 51 + license = licenses.asl20; 52 + maintainers = with maintainers; [ bcdarwin ]; 53 + }; 54 + }
+79
pkgs/development/python-modules/safetensors/default.nix
··· 1 + { stdenv 2 + , lib 3 + , buildPythonPackage 4 + , fetchFromGitHub 5 + , fetchpatch 6 + , h5py 7 + , numpy 8 + , pythonOlder 9 + , pytestCheckHook 10 + , rustPlatform 11 + , setuptools-rust 12 + , torch 13 + , libiconv 14 + }: 15 + 16 + buildPythonPackage rec { 17 + pname = "safetensors"; 18 + version = "0.3.0"; 19 + format = "pyproject"; 20 + 21 + disabled = pythonOlder "3.7"; 22 + 23 + src = fetchFromGitHub { 24 + owner = "huggingface"; 25 + repo = pname; 26 + rev = "refs/tags/v${version}"; 27 + hash = "sha256-Qpb5lTw1WEME9tWEGfxC8l8dK9mGMH2rz+O+xGCrUxw"; 28 + }; 29 + 30 + patches = [ 31 + # remove after next release 32 + (fetchpatch { 33 + name = "commit-cargo-lockfile"; 34 + relative = "bindings/python"; 35 + url = "https://github.com/huggingface/safetensors/commit/a7061b4235b59312010b2dd6f9597381428ee9a2.patch"; 36 + hash = "sha256-iH4vQOL2LU93kd0dSS8/JJxKGb+kDstqnExjYSSwi78"; 37 + }) 38 + ]; 39 + 40 + cargoDeps = rustPlatform.fetchCargoTarball { 41 + inherit src patches; 42 + sourceRoot = "source/bindings/python"; 43 + hash = "sha256-tC0XawmKWNGCaByHQfJEfmHM3m/qgTuIpcRaEFJC6dM"; 44 + }; 45 + 46 + sourceRoot = "source/bindings/python"; 47 + 48 + nativeBuildInputs = with rustPlatform; [ 49 + setuptools-rust 50 + rust.cargo 51 + rust.rustc 52 + cargoSetupHook 53 + ]; 54 + 55 + buildInputs = lib.optionals stdenv.isDarwin [ libiconv ]; 56 + 57 + nativeCheckInputs = [ 58 + h5py numpy pytestCheckHook torch 59 + ]; 60 + pytestFlagsArray = [ "tests" ]; 61 + # don't require PaddlePaddle (not in Nixpkgs), Flax, or Tensorflow (onerous) to run tests: 62 + disabledTestPaths = [ 63 + "tests/test_flax_comparison.py" 64 + "tests/test_paddle_comparison.py" 65 + "tests/test_tf_comparison.py" 66 + ]; 67 + 68 + pythonImportsCheck = [ 69 + "safetensors" 70 + ]; 71 + 72 + meta = with lib; { 73 + homepage = "https://github.com/huggingface/safetensors"; 74 + description = "Fast (zero-copy) and safe (unlike pickle) format for storing tensors"; 75 + changelog = "https://github.com/huggingface/safetensors/releases/tag/v${version}"; 76 + license = licenses.asl20; 77 + maintainers = with maintainers; [ bcdarwin ]; 78 + }; 79 + }
+4 -10
pkgs/development/python-modules/syncedlyrics/default.nix
··· 3 3 , buildPythonPackage 4 4 , fetchFromGitHub 5 5 , poetry-core 6 - , pytestCheckHook 7 6 , pythonOlder 8 7 , pythonRelaxDepsHook 9 8 , rapidfuzz ··· 11 12 12 13 buildPythonPackage rec { 13 14 pname = "syncedlyrics"; 14 - version = "0.4.0"; 15 + version = "0.5.0"; 15 16 format = "pyproject"; 16 17 17 18 disabled = pythonOlder "3.7"; ··· 20 21 owner = "rtcq"; 21 22 repo = pname; 22 23 rev = "refs/tags/v${version}"; 23 - hash = "sha256-dH9irIah9CdZ9Kv7bIymP1o5ifWEYCiSqegUpu8Y+Tg="; 24 + hash = "sha256-79dy1f5Pd/JGIpH/71E6IBg+AtR4zgHL4b/GRH1AFp0="; 24 25 }; 25 26 26 27 nativeBuildInputs = [ ··· 38 39 beautifulsoup4 39 40 ]; 40 41 41 - nativeCheckInputs = [ 42 - pytestCheckHook 43 - ]; 42 + # Tests require network access 43 + doCheck = false; 44 44 45 45 pythonImportsCheck = [ 46 46 "syncedlyrics" 47 - ]; 48 - 49 - pytestFlagsArray = [ 50 - "test.py::test_all_providers" 51 47 ]; 52 48 53 49 meta = with lib; {
+1 -1
pkgs/development/python-modules/ttp-templates/default.nix
··· 7 7 8 8 buildPythonPackage rec { 9 9 pname = "ttp-templates"; 10 - version = "0.3.4"; 10 + version = "0.3.5"; 11 11 format = "pyproject"; 12 12 13 13 disabled = pythonOlder "3.7";
+2 -2
pkgs/development/python-modules/yalexs/default.nix
··· 16 16 17 17 buildPythonPackage rec { 18 18 pname = "yalexs"; 19 - version = "1.3.0"; 19 + version = "1.3.2"; 20 20 format = "setuptools"; 21 21 22 22 disabled = pythonOlder "3.9"; ··· 25 25 owner = "bdraco"; 26 26 repo = pname; 27 27 rev = "refs/tags/v${version}"; 28 - hash = "sha256-5UmuQsA5pPzgP+uCkykWQBCPY437cxblGCiZxEYQzGg="; 28 + hash = "sha256-CqonGKcbAg0Edqw3WosK2vEJ0DxOMZNSNO5RkecECa0="; 29 29 }; 30 30 31 31 propagatedBuildInputs = [
+2 -2
pkgs/development/tools/build-managers/bear/default.nix
··· 16 16 17 17 stdenv.mkDerivation rec { 18 18 pname = "bear"; 19 - version = "3.1.1"; 19 + version = "3.1.2"; 20 20 21 21 src = fetchFromGitHub { 22 22 owner = "rizsotto"; 23 23 repo = pname; 24 24 rev = version; 25 - sha256 = "sha256-EiAGM2tfzHp2rTAsf+mrfQ7VfX0NTFakcLVpT/plqh8="; 25 + sha256 = "sha256-x46BS+By5Zj5xeYRD45eXRDCAOqwpkkivVyJPnhkAMc="; 26 26 }; 27 27 28 28 nativeBuildInputs = [ cmake pkg-config ];
+3 -3
pkgs/development/tools/goda/default.nix
··· 2 2 3 3 buildGoModule rec { 4 4 pname = "goda"; 5 - version = "0.5.6"; 5 + version = "0.5.7"; 6 6 7 7 src = fetchFromGitHub { 8 8 owner = "loov"; 9 9 repo = "goda"; 10 10 rev = "v${version}"; 11 - sha256 = "sha256-l9ehpDAqZqNV+07ENXJ2GJEY6bb6W37Ls6UqjE9DEWQ="; 11 + sha256 = "sha256-kilFb/2wXdzn/gXy9mBg0PZH8rd+MFIom4AGAZLgnBo="; 12 12 }; 13 13 14 - vendorSha256 = "sha256-BYYuB4ZlCWD8NILkf4qrgM4q72ZTy7Ze3ICUXdoI5Ms="; 14 + vendorSha256 = "sha256-FYjlOYB0L4l6gF8hYtJroV1qMQD0ZmKWXBarjyConRs="; 15 15 16 16 passthru.updateScript = nix-update-script { }; 17 17
+3 -3
pkgs/development/tools/jql/default.nix
··· 5 5 6 6 rustPlatform.buildRustPackage rec { 7 7 pname = "jql"; 8 - version = "6.0.5"; 8 + version = "6.0.6"; 9 9 10 10 src = fetchFromGitHub { 11 11 owner = "yamafaktory"; 12 12 repo = pname; 13 13 rev = "jql-v${version}"; 14 - hash = "sha256-MdIYU6/j+hpFBcaZ1IiW6ImeWD3mmYezGEpZBbWmRzs="; 14 + hash = "sha256-0Tg8vqlTngLfmp0HDxR5ymmLXw16J9pQJfOCOZrRreE="; 15 15 }; 16 16 17 - cargoHash = "sha256-vb7HyumsLYN9rZTD8KxzV+1SN5F2rLhuullYDwRt7wM="; 17 + cargoHash = "sha256-w51soAdIdNuJzQpvQZQZuxbxlClEWYdT/v0ZOnVvsTA="; 18 18 19 19 meta = with lib; { 20 20 description = "A JSON Query Language CLI tool built with Rust";
+1 -1
pkgs/development/tools/mongosh/source.json
··· 2 2 "version": "1.8.0", 3 3 "integrity": "sha512-9pHLqfYMWwP1L2t83TK5k6ho1faz+jFD9zXxnTtgnyu0c/uC39nx+tJT9AsxNZpY+GlhshDu1YcJm45f8l3gIw==", 4 4 "filename": "mongosh-1.8.0.tgz", 5 - "deps": "sha256-8v4E9wNv3+JCGm7mUEA+z+g/4X37ACwVsn+9Cv7N+4o=" 5 + "deps": "sha256-ewl5q6ZxlQN030AmObP42E5KpUisrdYHOsg8whUIUZA=" 6 6 }
+3 -3
pkgs/development/tools/okteto/default.nix
··· 2 2 3 3 buildGoModule rec { 4 4 pname = "okteto"; 5 - version = "2.14.3"; 5 + version = "2.15.0"; 6 6 7 7 src = fetchFromGitHub { 8 8 owner = "okteto"; 9 9 repo = "okteto"; 10 10 rev = version; 11 - hash = "sha256-E96IAAbWmFIQILUU3WLjX6NAXzwIkrbEgKUs4wrh8z4="; 11 + hash = "sha256-+fIVkkx4UVmHnAQT2nXmBARvUsemiD42LZI3kmt/nX4="; 12 12 }; 13 13 14 - vendorHash = "sha256-b2qxvP9spXEJVYOq7o0VG2WOxzUchwtLaY97/2IYoV4="; 14 + vendorHash = "sha256-dZ6gzW5R5na5qcHFQqQvKfYb0Bu0kVvVMOaRdtTgkhE="; 15 15 16 16 postPatch = '' 17 17 # Disable some tests that need file system & network access.
+3 -3
pkgs/development/tools/rust/cargo-careful/default.nix
··· 5 5 6 6 rustPlatform.buildRustPackage rec { 7 7 pname = "cargo-careful"; 8 - version = "0.3.2"; 8 + version = "0.3.3"; 9 9 10 10 src = fetchFromGitHub { 11 11 owner = "RalfJung"; 12 12 repo = "cargo-careful"; 13 13 rev = "v${version}"; 14 - hash = "sha256-+rj9f4uCNDWwX+0Dsr7dwoeQunvsniG61+W9ehs0KDY="; 14 + hash = "sha256-oYwbRww+NFPV9q26vfuTdxTBp0kzWdgWl6MAXhir2lc="; 15 15 }; 16 16 17 - cargoHash = "sha256-dxb+euJ5PCdDjfne+iUTgsdOSt2HLiItHrVwHx4588c="; 17 + cargoHash = "sha256-8b718qYPFFstjl2LQ23IoQDikF9YV1Ao+pDg2tiXxsc="; 18 18 19 19 meta = with lib; { 20 20 description = "A tool to execute Rust code carefully, with extra checking along the way";
+2 -2
pkgs/os-specific/darwin/sketchybar/default.nix
··· 10 10 11 11 stdenv.mkDerivation rec { 12 12 pname = "sketchybar"; 13 - version = "2.14.4"; 13 + version = "2.15.1"; 14 14 15 15 src = fetchFromGitHub { 16 16 owner = "FelixKratz"; 17 17 repo = "SketchyBar"; 18 18 rev = "v${version}"; 19 - hash = "sha256-snB1DII04OeoPbLzblfgdaM1hdXL62u/g/0CNLmqrxo="; 19 + hash = "sha256-0jCVDaFc7ZvA8apeHRoQvPhAlaGlBHzqUkS9or88PcM="; 20 20 }; 21 21 22 22 buildInputs = [ Carbon Cocoa CoreWLAN DisplayServices SkyLight ];
-17
pkgs/servers/monitoring/prometheus/promscale/0001-remove-jaeger-test-dep.patch
··· 1 - 2 - A Promscale test has a dependency on a package which was not intended to be 3 - vendored, so `go mod vendor` breaks. The dependency is not required to build 4 - Promscale, so it can be removed. 5 - 6 - diff --git a/pkg/tests/end_to_end_tests/trace_query_integration_test.go b/pkg/tests/end_to_end_tests/trace_query_integration_test.go 7 - index 84a0d08..efbe5e1 100644 8 - --- a/pkg/tests/end_to_end_tests/trace_query_integration_test.go 9 - +++ b/pkg/tests/end_to_end_tests/trace_query_integration_test.go 10 - @@ -24,7 +24,6 @@ import ( 11 - ingstr "github.com/timescale/promscale/pkg/pgmodel/ingestor" 12 - "github.com/timescale/promscale/pkg/pgxconn" 13 - 14 - - jaegerQueryApp "github.com/jaegertracing/jaeger/cmd/query/app" 15 - jaegerQueryService "github.com/jaegertracing/jaeger/cmd/query/app/querysvc" 16 - jaegerJSONModel "github.com/jaegertracing/jaeger/model/json" 17 - )
+9 -9
pkgs/servers/monitoring/prometheus/promscale/default.nix
··· 7 7 8 8 buildGoModule rec { 9 9 pname = "promscale"; 10 - version = "0.10.0"; 10 + version = "0.17.0"; 11 11 12 12 src = fetchFromGitHub { 13 13 owner = "timescale"; 14 14 repo = pname; 15 15 rev = version; 16 - sha256 = "sha256-KF+aD9vJYqNJkJftx27ZsxmOIXZ/2ciKwjwcTw0GBvY="; 16 + sha256 = "sha256-JizUI9XRzOEHF1kAblYQRYB11z9KWX7od3lPiRN+JNI="; 17 17 }; 18 18 19 - patches = [ 20 - ./0001-remove-jaeger-test-dep.patch 21 - ]; 22 - 23 - vendorSha256 = "sha256-/cjRM8CrOKnx0BcRu2+MLV28MYLOrG5x1DN24mRUJzQ="; 19 + vendorSha256 = "sha256-lnyKsipr/f9W9LWLb2lizKGLvIbS3XnSlOH1u1B87OY="; 24 20 25 21 ldflags = [ 26 22 "-s" ··· 24 28 "-X github.com/timescale/promscale/pkg/version.Version=${version}" 25 29 "-X github.com/timescale/promscale/pkg/version.CommitHash=${src.rev}" 26 30 ]; 27 - 31 + preBuild = '' 32 + # Without this build fails with 33 + # main module (github.com/timescale/promscale) does not contain package github.com/timescale/promscale/migration-tool/cmd/prom-migrator 34 + rm -r migration-tool 35 + ''; 28 36 checkPhase = '' 29 37 runHook preCheck 30 38 ··· 51 51 changelog = "https://github.com/timescale/promscale/blob/${version}/CHANGELOG.md"; 52 52 license = licenses.asl20; 53 53 platforms = platforms.unix; 54 - maintainers = with maintainers; [ _0x4A6F ]; 54 + maintainers = with maintainers; [ _0x4A6F anpin ]; 55 55 }; 56 56 }
+3 -3
pkgs/servers/simple-http-server/default.nix
··· 9 9 10 10 rustPlatform.buildRustPackage rec { 11 11 pname = "simple-http-server"; 12 - version = "0.6.6"; 12 + version = "0.6.7"; 13 13 14 14 src = fetchFromGitHub { 15 15 owner = "TheWaWaR"; 16 16 repo = pname; 17 17 rev = "v${version}"; 18 - sha256 = "sha256-b+z3rio+kg1Z0B4pqhTlCTtzXgAeCAhinSa9dkIwcaY="; 18 + sha256 = "sha256-Xi5tJIfK4zjckKERhxHuDqeyOB9Dxul/eFLKOtpgR/w="; 19 19 }; 20 20 21 - cargoSha256 = "sha256-teBqgQloI/13F7K/+EBKFcHWqcK1wJrNUu5LO8nwQbo="; 21 + cargoSha256 = "sha256-wv1hlBTQe1Mm67J2FqrrXSSlZkFPB0TzKc5VUMMfUIQ="; 22 22 23 23 nativeBuildInputs = [ pkg-config ]; 24 24
+60
pkgs/servers/sql/postgresql/ext/promscale_extension.nix
··· 1 + { lib 2 + , fetchFromGitHub 3 + , fetchpatch 4 + , buildPgxExtension 5 + , postgresql 6 + , stdenv 7 + , nixosTests 8 + }: 9 + 10 + buildPgxExtension rec { 11 + inherit postgresql; 12 + 13 + pname = "promscale_extension"; 14 + version = "0.8.0"; 15 + 16 + src = fetchFromGitHub { 17 + owner = "timescale"; 18 + repo = "promscale_extension"; 19 + rev = version; 20 + sha256 = "sha256-vyEfQMGguHrHYdBEEmbev29L2uCa/4xL9DpGIniUwfI="; 21 + }; 22 + 23 + cargoSha256 = "sha256-VK9DObkg4trcGUXxxISCd0zqU3vc1Qt6NxqpgKIARCQ="; 24 + 25 + cargoPatches = [ 26 + # there is a duplicate definition in the lock file which fails to build with buildRustPackage 27 + (fetchpatch { 28 + name = "cargo-vendor.patch"; 29 + url = "https://github.com/timescale/promscale_extension/commit/3048bd959430e9abc2c1d5c772ab6b4fc1dc6a95.patch"; 30 + hash = "sha256-xTk4Ml8GN06QlJdrvAdVK21r30ZR/S83y5A5jJPdOw4="; 31 + }) 32 + ]; 33 + 34 + preBuild = '' 35 + patchShebangs create-upgrade-symlinks.sh extract-extension-version.sh 36 + ## Hack to boostrap the build because some pgx commands require this file. It gets re-generated later. 37 + cp templates/promscale.control ./promscale.control 38 + ''; 39 + postInstall = '' 40 + ln -s $out/lib/promscale-${version}.so $out/lib/promscale.so 41 + ''; 42 + passthru.tests = { 43 + promscale = nixosTests.promscale; 44 + }; 45 + 46 + # tests take really long 47 + doCheck = false; 48 + 49 + meta = with lib; { 50 + description = "Promscale is an open source observability backend for metrics and traces powered by SQL"; 51 + homepage = "https://github.com/timescale/promscale_extension"; 52 + maintainers = with maintainers; [ anpin ]; 53 + platforms = postgresql.meta.platforms; 54 + license = licenses.unfree; 55 + 56 + # as it needs to be used with timescaledb, simply use the condition from there 57 + broken = versionOlder postgresql.version "12" 58 + || versionAtLeast postgresql.version "15"; 59 + }; 60 + }
+2
pkgs/servers/sql/postgresql/packages.nix
··· 71 71 72 72 pg_safeupdate = super.callPackage ./ext/pg_safeupdate.nix { }; 73 73 74 + promscale_extension = super.callPackage ./ext/promscale_extension.nix { }; 75 + 74 76 repmgr = super.callPackage ./ext/repmgr.nix { }; 75 77 76 78 rum = super.callPackage ./ext/rum.nix { };
+3 -3
pkgs/tools/backup/rustic-rs/default.nix
··· 2 2 3 3 rustPlatform.buildRustPackage rec { 4 4 pname = "rustic-rs"; 5 - version = "0.5.1"; 5 + version = "0.5.2"; 6 6 7 7 src = fetchFromGitHub { 8 8 owner = "rustic-rs"; 9 9 repo = "rustic"; 10 10 rev = "refs/tags/v${version}"; 11 - hash = "sha256-r1h21J+pR8HiFfSxBwTVhuPFtc7HP+XnI3Xtx4oRKzY="; 11 + hash = "sha256-DL6IpWUGZT5kqnJVFehjMZAmBp2shUZSA5KvJDa9FFY="; 12 12 }; 13 13 14 - cargoHash = "sha256-HiGBp79bxxZaupPo5s6cjXa4Q83O9i8VLzB9psjKSfo="; 14 + cargoHash = "sha256-K4bj0jE+PuOL2mEeVEI84On17Jyw7PKtNPQzDKMvY+c="; 15 15 16 16 nativeBuildInputs = [ installShellFiles ]; 17 17
+1
pkgs/tools/graphics/gmic-qt/default.nix
··· 108 108 license = licenses.gpl3Plus; 109 109 maintainers = [ maintainers.lilyinstarlight ]; 110 110 platforms = platforms.unix; 111 + mainProgram = "gmic_qt"; 111 112 }; 112 113 }
+7 -5
pkgs/tools/misc/boxxy/default.nix
··· 1 1 { lib 2 2 , rustPlatform 3 3 , fetchFromGitHub 4 - , stdenv 5 4 , pkg-config 6 5 , oniguruma 6 + , stdenv 7 7 }: 8 8 9 9 rustPlatform.buildRustPackage rec { 10 10 pname = "boxxy"; 11 - version = "0.6.4"; 11 + version = "0.7.0"; 12 12 13 13 src = fetchFromGitHub { 14 14 owner = "queer"; 15 15 repo = "boxxy"; 16 16 rev = "v${version}"; 17 - hash = "sha256-OUnvjn58jVMg4wYwoSMsqQvy5yveF+KeRjkjvB1W/Q4="; 17 + hash = "sha256-QbXR79jmTlrqFlg5ZpXJXO/YljcCrwGrucRwASA5aK0="; 18 18 }; 19 19 20 - cargoHash = "sha256-UhtxvEK3hknBdLS1eOlEPng+THoPuhYGIFhYz4LpF5E="; 20 + cargoHash = "sha256-Mc6UjO3/XGIz25tHQFjRT/xf3KMfr/miiZDIR9lHnGY="; 21 21 22 22 nativeBuildInputs = [ 23 23 pkg-config ··· 27 27 oniguruma 28 28 ]; 29 29 30 - RUSTONIG_SYSTEM_LIBONIG = true; 30 + env = { 31 + RUSTONIG_SYSTEM_LIBONIG = true; 32 + }; 31 33 32 34 meta = with lib; { 33 35 description = "Puts bad Linux applications in a box with only their files";
+3 -3
pkgs/tools/misc/gh-dash/default.nix
··· 7 7 8 8 buildGoModule rec { 9 9 pname = "gh-dash"; 10 - version = "3.7.6"; 10 + version = "3.7.7"; 11 11 12 12 src = fetchFromGitHub { 13 13 owner = "dlvhdr"; 14 14 repo = "gh-dash"; 15 15 rev = "v${version}"; 16 - hash = "sha256-EYDSfxFOnMuPDZaG1CYQtYLNe6afm/2YYlQPheAKXDg="; 16 + hash = "sha256-Ih9Vdt/ds8f37n7onWhvfrgMrE2iXQPwSTgxrui5TYY="; 17 17 }; 18 18 19 - vendorHash = "sha256-66GxD48fCWUWMyZ3GiivWNtz0mgI4JHMcvNwHGFTRfU="; 19 + vendorHash = "sha256-ZpX+0AyHFWOb75jlIS5/BqKpRkqNpE4SkOJ01CqO/0w="; 20 20 21 21 ldflags = [ 22 22 "-s"
+3 -3
pkgs/tools/security/cosign/default.nix
··· 13 13 }: 14 14 buildGoModule rec { 15 15 pname = "cosign"; 16 - version = "2.0.1"; 16 + version = "2.0.2"; 17 17 18 18 src = fetchFromGitHub { 19 19 owner = "sigstore"; 20 20 repo = pname; 21 21 rev = "v${version}"; 22 - hash = "sha256-x03I86WJT+dLToeGzIaPrLJK0G7siVZuJHjE1WjZao0="; 22 + hash = "sha256-jJHLCN9hEQy4ijFm6g2E9WvTT43kvPhdRW1aczvEcFs="; 23 23 }; 24 24 25 25 buildInputs = ··· 28 28 29 29 nativeBuildInputs = [ pkg-config installShellFiles ]; 30 30 31 - vendorHash = "sha256-eTyFIuq9G9/0t5ePZNsBpKJ/lcUU0ryqzg6i+nqbHc4="; 31 + vendorHash = "sha256-X5CY8U3IgxWD3zpb1f9R9Xk/25x1zxfYXkvXbelFBQc="; 32 32 33 33 subPackages = [ 34 34 "cmd/cosign"
+2 -2
pkgs/tools/security/exploitdb/default.nix
··· 6 6 7 7 stdenv.mkDerivation rec { 8 8 pname = "exploitdb"; 9 - version = "2023-04-22"; 9 + version = "2023-04-24"; 10 10 11 11 src = fetchFromGitLab { 12 12 owner = "exploit-database"; 13 13 repo = pname; 14 14 rev = "refs/tags/${version}"; 15 - hash = "sha256-HE8L7+/41GMxQeMeei4CEBSbr+CzNkew843dK34D48k="; 15 + hash = "sha256-RJYyFHTt7Cm6N+ZTD7D6GW/gKhwPhOMriV2+/lFWN10="; 16 16 }; 17 17 18 18 nativeBuildInputs = [
+1 -1
pkgs/tools/security/metasploit/Gemfile
··· 1 1 # frozen_string_literal: true 2 2 source "https://rubygems.org" 3 3 4 - gem "metasploit-framework", git: "https://github.com/rapid7/metasploit-framework", ref: "refs/tags/6.3.12" 4 + gem "metasploit-framework", git: "https://github.com/rapid7/metasploit-framework", ref: "refs/tags/6.3.13"
+12 -9
pkgs/tools/security/metasploit/Gemfile.lock
··· 1 1 GIT 2 2 remote: https://github.com/rapid7/metasploit-framework 3 - revision: a78862340cacb90e2d27b6f7ae670387081a0276 4 - ref: refs/tags/6.3.12 3 + revision: f58dd240e0c900976bc0609096b3b2e9965f70cb 4 + ref: refs/tags/6.3.13 5 5 specs: 6 - metasploit-framework (6.3.12) 6 + metasploit-framework (6.3.13) 7 7 actionpack (~> 7.0) 8 8 activerecord (~> 7.0) 9 9 activesupport (~> 7.0) ··· 12 12 aws-sdk-s3 13 13 bcrypt 14 14 bcrypt_pbkdf 15 + bootsnap 15 16 bson 16 17 chunky_png 17 18 dnsruby ··· 33 32 metasploit-concern 34 33 metasploit-credential 35 34 metasploit-model 36 - metasploit-payloads (= 2.0.123) 35 + metasploit-payloads (= 2.0.126) 37 36 metasploit_data_models 38 37 metasploit_payloads-mettle (= 1.0.20) 39 38 mqtt ··· 130 129 arel-helpers (2.14.0) 131 130 activerecord (>= 3.1.0, < 8) 132 131 aws-eventstream (1.2.0) 133 - aws-partitions (1.748.0) 132 + aws-partitions (1.752.0) 134 133 aws-sdk-core (3.171.0) 135 134 aws-eventstream (~> 1, >= 1.0.2) 136 135 aws-partitions (~> 1, >= 1.651.0) ··· 145 144 aws-sdk-kms (1.63.0) 146 145 aws-sdk-core (~> 3, >= 3.165.0) 147 146 aws-sigv4 (~> 1.1) 148 - aws-sdk-s3 (1.120.1) 147 + aws-sdk-s3 (1.121.0) 149 148 aws-sdk-core (~> 3, >= 3.165.0) 150 149 aws-sdk-kms (~> 1) 151 150 aws-sigv4 (~> 1.4) ··· 154 153 bcrypt (3.1.18) 155 154 bcrypt_pbkdf (1.1.0) 156 155 bindata (2.4.15) 156 + bootsnap (1.16.0) 157 + msgpack (~> 1.2) 157 158 bson (4.15.0) 158 159 builder (3.2.4) 159 160 chunky_png (1.4.0) ··· 241 238 activemodel (~> 7.0) 242 239 activesupport (~> 7.0) 243 240 railties (~> 7.0) 244 - metasploit-payloads (2.0.123) 241 + metasploit-payloads (2.0.126) 245 242 metasploit_data_models (6.0.2) 246 243 activerecord (~> 7.0) 247 244 activesupport (~> 7.0) ··· 291 288 hashery (~> 2.0) 292 289 ruby-rc4 293 290 ttfunk 294 - pg (1.4.6) 291 + pg (1.5.1) 295 292 public_suffix (5.0.1) 296 - puma (6.2.1) 293 + puma (6.2.2) 297 294 nio4r (~> 2.0) 298 295 racc (1.6.2) 299 296 rack (2.2.6.4)
+2 -2
pkgs/tools/security/metasploit/default.nix
··· 15 15 }; 16 16 in stdenv.mkDerivation rec { 17 17 pname = "metasploit-framework"; 18 - version = "6.3.12"; 18 + version = "6.3.13"; 19 19 20 20 src = fetchFromGitHub { 21 21 owner = "rapid7"; 22 22 repo = "metasploit-framework"; 23 23 rev = version; 24 - sha256 = "sha256-+ZWH/rOFm6jSEUT6SGnIJ8rBY2GvNc2tDxHH9+TAwiQ="; 24 + sha256 = "sha256-bmp5H7awE8ZaLrPt9UEXeK6haaLzejsIq8jk1bbnv/c="; 25 25 }; 26 26 27 27 nativeBuildInputs = [ makeWrapper ];
+23 -13
pkgs/tools/security/metasploit/gemset.nix
··· 104 104 platforms = []; 105 105 source = { 106 106 remotes = ["https://rubygems.org"]; 107 - sha256 = "12pi6xcvwaplzgy24vqiw2q9aaxs5r8gl92kv2gy6riqldgs10gi"; 107 + sha256 = "18ndv604p1p3gkyy0d958jx2wp74d100q6vbc6ak70a7bv93wqsg"; 108 108 type = "gem"; 109 109 }; 110 - version = "1.748.0"; 110 + version = "1.752.0"; 111 111 }; 112 112 aws-sdk-core = { 113 113 groups = ["default"]; ··· 154 154 platforms = []; 155 155 source = { 156 156 remotes = ["https://rubygems.org"]; 157 - sha256 = "1mapdzm97rv22pca1hvvshwsafa12gd2yv2fcy63dfjn5vjjq893"; 157 + sha256 = "1s5v3799pi7ik53gv7dl02am5pngv6x4azzwx9my09nll4q3lfk8"; 158 158 type = "gem"; 159 159 }; 160 - version = "1.120.1"; 160 + version = "1.121.0"; 161 161 }; 162 162 aws-sigv4 = { 163 163 groups = ["default"]; ··· 198 198 type = "gem"; 199 199 }; 200 200 version = "2.4.15"; 201 + }; 202 + bootsnap = { 203 + groups = ["default"]; 204 + platforms = []; 205 + source = { 206 + remotes = ["https://rubygems.org"]; 207 + sha256 = "1vcg52gwl64xhhal6kwk1pc01y1klzdlnv1awyk89kb91z010x7q"; 208 + type = "gem"; 209 + }; 210 + version = "1.16.0"; 201 211 }; 202 212 bson = { 203 213 groups = ["default"]; ··· 624 614 platforms = []; 625 615 source = { 626 616 fetchSubmodules = false; 627 - rev = "a78862340cacb90e2d27b6f7ae670387081a0276"; 628 - sha256 = "0962q3jggiqi1ynwsddgc5iw3ji7r1lliyj4279ai6w5ngz8g5gr"; 617 + rev = "f58dd240e0c900976bc0609096b3b2e9965f70cb"; 618 + sha256 = "1xxzwyvdbr68mc43nypkl9ls3bkq2x0zbvdk5rdcc4xhnqgpjskf"; 629 619 type = "git"; 630 620 url = "https://github.com/rapid7/metasploit-framework"; 631 621 }; 632 - version = "6.3.12"; 622 + version = "6.3.13"; 633 623 }; 634 624 metasploit-model = { 635 625 groups = ["default"]; ··· 646 636 platforms = []; 647 637 source = { 648 638 remotes = ["https://rubygems.org"]; 649 - sha256 = "0ay75vrp7cpxzl1cny3fikgyg4wsg1fz3qqfafrysz0wfmqlkpyp"; 639 + sha256 = "1dncaysx2llgcy5a4vgv93hbp3cmiqa36ch229vmshfr296vfqr8"; 650 640 type = "gem"; 651 641 }; 652 - version = "2.0.123"; 642 + version = "2.0.126"; 653 643 }; 654 644 metasploit_data_models = { 655 645 groups = ["default"]; ··· 927 917 platforms = []; 928 918 source = { 929 919 remotes = ["https://rubygems.org"]; 930 - sha256 = "07m6lxljabw9kyww5k5lgsxsznsm1v5l14r1la09gqka9b5kv3yr"; 920 + sha256 = "0ihx7icaib5hfr51s44aw63y7g8za3gkqk3diwp75hzkbgjj9hrc"; 931 921 type = "gem"; 932 922 }; 933 - version = "1.4.6"; 923 + version = "1.5.1"; 934 924 }; 935 925 public_suffix = { 936 926 groups = ["default"]; ··· 947 937 platforms = []; 948 938 source = { 949 939 remotes = ["https://rubygems.org"]; 950 - sha256 = "0qqd5lb3mamh53ssx0xavmspg4blhq6hd1kipksw20bq71xcklf5"; 940 + sha256 = "0yf4jmkyy8das7pj1xzwllfvzkhq2p6p534j61d9h4wz3nfyf0s5"; 951 941 type = "gem"; 952 942 }; 953 - version = "6.2.1"; 943 + version = "6.2.2"; 954 944 }; 955 945 racc = { 956 946 groups = ["default"];
+2 -2
pkgs/tools/virtualization/awsebcli/default.nix
··· 36 36 in 37 37 with localPython.pkgs; buildPythonApplication rec { 38 38 pname = "awsebcli"; 39 - version = "3.20.5"; 39 + version = "3.20.6"; 40 40 41 41 src = fetchPypi { 42 42 inherit pname version; 43 - hash = "sha256-EoSEanwGvP3RcemXrVy7iAGrY/vMC6LbwcrXj2OsF8Q="; 43 + hash = "sha256-9n6nObYoZlOKgQvSdNqHLRr+RlDoKfR3fgD7Xa9wPzM="; 44 44 }; 45 45 46 46
+4 -13
pkgs/top-level/aliases.nix
··· 782 782 keepnote = throw "keepnote has been removed from nixpkgs, as it is stuck on python2"; # Added 2022-01-01 783 783 kerberos = libkrb5; # moved from top-level 2021-03-14 784 784 kexectools = kexec-tools; # Added 2021-09-03 785 - kexpand = "kexpand awless has been dropped due to the lack of maintanence from upstream since 2017"; # Added 2022-06-01 785 + kexpand = throw "kexpand awless has been dropped due to the lack of maintanence from upstream since 2017"; # Added 2022-06-01 786 786 keybase-go = throw "'keybase-go' has been renamed to/replaced by 'keybase'"; # Converted to throw 2022-02-22 787 787 keysmith = libsForQt5.kdeGear.keysmith; # Added 2021-07-14 788 788 kgx = gnome-console; # Added 2022-02-19 ··· 814 814 letsencrypt = throw "'letsencrypt' has been renamed to/replaced by 'certbot'"; # Converted to throw 2022-02-22 815 815 libGL_driver = throw "'libGL_driver' has been renamed to/replaced by 'mesa.drivers'"; # Converted to throw 2022-02-22 816 816 libaudit = throw "'libaudit' has been renamed to/replaced by 'audit'"; # Converted to throw 2022-02-22 817 - libayatana-indicator-gtk2 = "'libayatana-indicator-gtk2' has been removed from nixpkgs, as gtk2 is deprecated"; # Added 2022-10-18 817 + libayatana-indicator-gtk2 = throw "'libayatana-indicator-gtk2' has been removed from nixpkgs, as gtk2 is deprecated"; # Added 2022-10-18 818 818 libayatana-indicator-gtk3 = libayatana-indicator; # Added 2022-10-18 819 - libayatana-appindicator-gtk2 = "'libayatana-appindicator-gtk2' has been removed from nixpkgs, as gtk2 is deprecated"; # Added 2022-10-18 819 + libayatana-appindicator-gtk2 = throw "'libayatana-appindicator-gtk2' has been removed from nixpkgs, as gtk2 is deprecated"; # Added 2022-10-18 820 820 libayatana-appindicator-gtk3 = libayatana-appindicator; # Added 2022-10-18 821 821 libbencodetools = bencodetools; # Added 2022-07-30 822 822 libbluedevil = throw "'libbluedevil' (Qt4) is unmaintained and unused since 'kde4.bluedevil's removal in 2017"; # Added 2022-06-14 ··· 1628 1628 torchPackages = throw "torchPackages has been removed, as the upstream project has been abandoned"; # Added 2020-03-28 1629 1629 trang = throw "'trang' has been renamed to/replaced by 'jing-trang'"; # Converted to throw 2022-02-22 1630 1630 transfig = fig2dev; # Added 2022-02-15 1631 - transmission-remote-cli = "transmission-remote-cli has been removed, as the upstream project has been abandoned. Please use tremc instead"; # Added 2020-10-14 1631 + transmission-remote-cli = throw "transmission-remote-cli has been removed, as the upstream project has been abandoned. Please use tremc instead"; # Added 2020-10-14 1632 1632 transmission_gtk = throw "'transmission_gtk' has been renamed to/replaced by 'transmission-gtk'"; # Converted to throw 2022-02-22 1633 1633 transmission_remote_gtk = throw "'transmission_remote_gtk' has been renamed to/replaced by 'transmission-remote-gtk'"; # Converted to throw 2022-02-22 1634 1634 transporter = throw "transporter has been removed. It was archived upstream, so it's considered abandoned"; ··· 1823 1823 zeromq3 = throw "zeromq3 has been deprecated by zeromq4"; 1824 1824 jzmq = throw "jzmq has been removed from nixpkgs, as it was unmaintained"; 1825 1825 1826 - avian = throw '' 1827 - The package doesn't compile anymore on NixOS and both development & 1828 - maintenance is abandoned by upstream. 1829 - ''; # Cleanup before 21.11, Added 2021-05-07 1830 1826 ant-dracula-theme = throw "ant-dracula-theme is now dracula-theme, and theme name is Dracula instead of Ant-Dracula"; 1831 1827 dina-font-pcf = dina-font; # Added 2020-02-09 1832 1828 dnscrypt-proxy = throw "dnscrypt-proxy has been removed. Please use dnscrypt-proxy2"; # Added 2020-02-02 ··· 1856 1860 Its new location is obs-studio-plugins.wlrobs. 1857 1861 ''; # Added 2021-06-01 1858 1862 1859 - oraclejdk8psu = throw "The *psu versions of oraclejdk are no longer provided by upstream"; # Cleanup before 20.09 1860 - oraclejre8psu = oraclejdk8psu; # Cleanup before 20.09 1861 - oraclejdk8psu_distro = oraclejdk8psu; # Cleanup before 20.09 1862 1863 posix_man_pages = man-pages-posix; # Added 2021-04-15 1863 - riot-desktop = throw "riot-desktop is now element-desktop!"; # Cleanup before 21.05 1864 - riot-web = throw "riot-web is now element-web"; # Cleanup before 21.05 1865 1864 sqldeveloper_18 = throw "sqldeveloper_18 is not maintained anymore!"; # Added 2020-02-04 1866 1865 todolist = throw "todolist is now ultralist"; # Added 2020-12-27 1867 1866 tor-browser-bundle = throw "tor-browser-bundle was removed because it was out of date and inadequately maintained. Please use tor-browser-bundle-bin instead"; # Added 2020-01-10
+6
pkgs/top-level/python-packages.nix
··· 22 22 23 23 accessible-pygments = callPackage ../development/python-modules/accessible-pygments { }; 24 24 25 + accelerate = callPackage ../development/python-modules/accelerate { }; 26 + 25 27 accuweather = callPackage ../development/python-modules/accuweather { }; 26 28 27 29 accupy = callPackage ../development/python-modules/accupy { }; ··· 7217 7215 7218 7216 pefile = callPackage ../development/python-modules/pefile { }; 7219 7217 7218 + peft = callPackage ../development/python-modules/peft { }; 7219 + 7220 7220 pelican = callPackage ../development/python-modules/pelican { 7221 7221 inherit (pkgs) glibcLocales git; 7222 7222 }; ··· 10546 10542 safe-pysha3 = callPackage ../development/python-modules/safe-pysha3 { }; 10547 10543 10548 10544 safeio = callPackage ../development/python-modules/safeio { }; 10545 + 10546 + safetensors = callPackage ../development/python-modules/safetensors { }; 10549 10547 10550 10548 safety = callPackage ../development/python-modules/safety { }; 10551 10549