lol

Merge staging-next into staging

authored by

github-actions[bot] and committed by
GitHub
c4b3ddbb f3ce7c3e

+770 -217
+2
nixos/modules/module-list.nix
··· 634 634 ./services/network-filesystems/glusterfs.nix 635 635 ./services/network-filesystems/kbfs.nix 636 636 ./services/network-filesystems/ipfs.nix 637 + ./services/network-filesystems/litestream/default.nix 637 638 ./services/network-filesystems/netatalk.nix 638 639 ./services/network-filesystems/nfsd.nix 639 640 ./services/network-filesystems/openafs/client.nix ··· 961 962 ./services/web-apps/moodle.nix 962 963 ./services/web-apps/nextcloud.nix 963 964 ./services/web-apps/nexus.nix 965 + ./services/web-apps/node-red.nix 964 966 ./services/web-apps/plantuml-server.nix 965 967 ./services/web-apps/plausible.nix 966 968 ./services/web-apps/pgpkeyserver-lite.nix
+100
nixos/modules/services/network-filesystems/litestream/default.nix
··· 1 + { config, lib, pkgs, ... }: 2 + 3 + with lib; 4 + 5 + let 6 + cfg = config.services.litestream; 7 + settingsFormat = pkgs.formats.yaml {}; 8 + in 9 + { 10 + options.services.litestream = { 11 + enable = mkEnableOption "litestream"; 12 + 13 + package = mkOption { 14 + description = "Package to use."; 15 + default = pkgs.litestream; 16 + defaultText = "pkgs.litestream"; 17 + type = types.package; 18 + }; 19 + 20 + settings = mkOption { 21 + description = '' 22 + See the <link xlink:href="https://litestream.io/reference/config/">documentation</link>. 23 + ''; 24 + type = settingsFormat.type; 25 + example = { 26 + dbs = [ 27 + { 28 + path = "/var/lib/db1"; 29 + replicas = [ 30 + { 31 + url = "s3://mybkt.litestream.io/db1"; 32 + } 33 + ]; 34 + } 35 + ]; 36 + }; 37 + }; 38 + 39 + environmentFile = mkOption { 40 + type = types.nullOr types.path; 41 + default = null; 42 + example = "/run/secrets/litestream"; 43 + description = '' 44 + Environment file as defined in <citerefentry> 45 + <refentrytitle>systemd.exec</refentrytitle><manvolnum>5</manvolnum> 46 + </citerefentry>. 47 + 48 + Secrets may be passed to the service without adding them to the 49 + world-readable Nix store, by specifying placeholder variables as 50 + the option value in Nix and setting these variables accordingly in the 51 + environment file. 52 + 53 + By default, Litestream will perform environment variable expansion 54 + within the config file before reading it. Any references to ''$VAR or 55 + ''${VAR} formatted variables will be replaced with their environment 56 + variable values. If no value is set then it will be replaced with an 57 + empty string. 58 + 59 + <programlisting> 60 + # Content of the environment file 61 + LITESTREAM_ACCESS_KEY_ID=AKIAxxxxxxxxxxxxxxxx 62 + LITESTREAM_SECRET_ACCESS_KEY=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx/xxxxxxxxx 63 + </programlisting> 64 + 65 + Note that this file needs to be available on the host on which 66 + this exporter is running. 67 + ''; 68 + }; 69 + }; 70 + 71 + config = mkIf cfg.enable { 72 + environment.systemPackages = [ cfg.package ]; 73 + environment.etc = { 74 + "litestream.yml" = { 75 + source = settingsFormat.generate "litestream-config.yaml" cfg.settings; 76 + }; 77 + }; 78 + 79 + systemd.services.litestream = { 80 + description = "Litestream"; 81 + wantedBy = [ "multi-user.target" ]; 82 + after = [ "networking.target" ]; 83 + serviceConfig = { 84 + EnvironmentFile = mkIf (cfg.environmentFile != null) cfg.environmentFile; 85 + ExecStart = "${cfg.package}/bin/litestream replicate"; 86 + Restart = "always"; 87 + User = "litestream"; 88 + Group = "litestream"; 89 + }; 90 + }; 91 + 92 + users.users.litestream = { 93 + description = "Litestream user"; 94 + group = "litestream"; 95 + isSystemUser = true; 96 + }; 97 + users.groups.litestream = {}; 98 + }; 99 + meta.doc = ./litestream.xml; 100 + }
+65
nixos/modules/services/network-filesystems/litestream/litestream.xml
··· 1 + <chapter xmlns="http://docbook.org/ns/docbook" 2 + xmlns:xlink="http://www.w3.org/1999/xlink" 3 + xmlns:xi="http://www.w3.org/2001/XInclude" 4 + version="5.0" 5 + xml:id="module-services-litestream"> 6 + <title>Litestream</title> 7 + <para> 8 + <link xlink:href="https://litestream.io/">Litestream</link> is a standalone streaming 9 + replication tool for SQLite. 10 + </para> 11 + 12 + <section xml:id="module-services-litestream-configuration"> 13 + <title>Configuration</title> 14 + 15 + <para> 16 + Litestream service is managed by a dedicated user named <literal>litestream</literal> 17 + which needs permission to the database file. Here's an example config which gives 18 + required permissions to access <link linkend="opt-services.grafana.database.path"> 19 + grafana database</link>: 20 + <programlisting> 21 + { pkgs, ... }: 22 + { 23 + users.users.litestream.extraGroups = [ "grafana" ]; 24 + 25 + systemd.services.grafana.serviceConfig.ExecStartPost = "+" + pkgs.writeShellScript "grant-grafana-permissions" '' 26 + timeout=10 27 + 28 + while [ ! -f /var/lib/grafana/data/grafana.db ]; 29 + do 30 + if [ "$timeout" == 0 ]; then 31 + echo "ERROR: Timeout while waiting for /var/lib/grafana/data/grafana.db." 32 + exit 1 33 + fi 34 + 35 + sleep 1 36 + 37 + ((timeout--)) 38 + done 39 + 40 + find /var/lib/grafana -type d -exec chmod -v 775 {} \; 41 + find /var/lib/grafana -type f -exec chmod -v 660 {} \; 42 + ''; 43 + 44 + services.litestream = { 45 + enable = true; 46 + 47 + environmentFile = "/run/secrets/litestream"; 48 + 49 + settings = { 50 + dbs = [ 51 + { 52 + path = "/var/lib/grafana/data/grafana.db"; 53 + replicas = [{ 54 + url = "s3://mybkt.litestream.io/grafana"; 55 + }]; 56 + } 57 + ]; 58 + }; 59 + }; 60 + } 61 + </programlisting> 62 + </para> 63 + </section> 64 + 65 + </chapter>
+148
nixos/modules/services/web-apps/node-red.nix
··· 1 + { config, lib, pkgs, ... }: 2 + 3 + with lib; 4 + 5 + let 6 + cfg = config.services.node-red; 7 + defaultUser = "node-red"; 8 + finalPackage = if cfg.withNpmAndGcc then node-red_withNpmAndGcc else cfg.package; 9 + node-red_withNpmAndGcc = pkgs.runCommandNoCC "node-red" { 10 + nativeBuildInputs = [ pkgs.makeWrapper ]; 11 + } 12 + '' 13 + mkdir -p $out/bin 14 + makeWrapper ${pkgs.nodePackages.node-red}/bin/node-red $out/bin/node-red \ 15 + --set PATH '${lib.makeBinPath [ pkgs.nodePackages.npm pkgs.gcc ]}:$PATH' \ 16 + ''; 17 + in 18 + { 19 + options.services.node-red = { 20 + enable = mkEnableOption "the Node-RED service"; 21 + 22 + package = mkOption { 23 + default = pkgs.nodePackages.node-red; 24 + defaultText = "pkgs.nodePackages.node-red"; 25 + type = types.package; 26 + description = "Node-RED package to use."; 27 + }; 28 + 29 + openFirewall = mkOption { 30 + type = types.bool; 31 + default = false; 32 + description = '' 33 + Open ports in the firewall for the server. 34 + ''; 35 + }; 36 + 37 + withNpmAndGcc = mkOption { 38 + type = types.bool; 39 + default = false; 40 + description = '' 41 + Give Node-RED access to NPM and GCC at runtime, so 'Nodes' can be 42 + downloaded and managed imperatively via the 'Palette Manager'. 43 + ''; 44 + }; 45 + 46 + configFile = mkOption { 47 + type = types.path; 48 + default = "${cfg.package}/lib/node_modules/node-red/settings.js"; 49 + defaultText = "\${cfg.package}/lib/node_modules/node-red/settings.js"; 50 + description = '' 51 + Path to the JavaScript configuration file. 52 + See <link 53 + xlink:href="https://github.com/node-red/node-red/blob/master/packages/node_modules/node-red/settings.js"/> 54 + for a configuration example. 55 + ''; 56 + }; 57 + 58 + port = mkOption { 59 + type = types.port; 60 + default = 1880; 61 + description = "Listening port."; 62 + }; 63 + 64 + user = mkOption { 65 + type = types.str; 66 + default = defaultUser; 67 + description = '' 68 + User under which Node-RED runs.If left as the default value this user 69 + will automatically be created on system activation, otherwise the 70 + sysadmin is responsible for ensuring the user exists. 71 + ''; 72 + }; 73 + 74 + group = mkOption { 75 + type = types.str; 76 + default = defaultUser; 77 + description = '' 78 + Group under which Node-RED runs.If left as the default value this group 79 + will automatically be created on system activation, otherwise the 80 + sysadmin is responsible for ensuring the group exists. 81 + ''; 82 + }; 83 + 84 + userDir = mkOption { 85 + type = types.path; 86 + default = "/var/lib/node-red"; 87 + description = '' 88 + The directory to store all user data, such as flow and credential files and all library data. If left 89 + as the default value this directory will automatically be created before the node-red service starts, 90 + otherwise the sysadmin is responsible for ensuring the directory exists with appropriate ownership 91 + and permissions. 92 + ''; 93 + }; 94 + 95 + safe = mkOption { 96 + type = types.bool; 97 + default = false; 98 + description = "Whether to launch Node-RED in --safe mode."; 99 + }; 100 + 101 + define = mkOption { 102 + type = types.attrs; 103 + default = {}; 104 + description = "List of settings.js overrides to pass via -D to Node-RED."; 105 + example = literalExample '' 106 + { 107 + "logging.console.level" = "trace"; 108 + } 109 + ''; 110 + }; 111 + }; 112 + 113 + config = mkIf cfg.enable { 114 + users.users = optionalAttrs (cfg.user == defaultUser) { 115 + ${defaultUser} = { 116 + isSystemUser = true; 117 + }; 118 + }; 119 + 120 + users.groups = optionalAttrs (cfg.group == defaultUser) { 121 + ${defaultUser} = { }; 122 + }; 123 + 124 + networking.firewall = mkIf cfg.openFirewall { 125 + allowedTCPPorts = [ cfg.port ]; 126 + }; 127 + 128 + systemd.services.node-red = { 129 + description = "Node-RED Service"; 130 + wantedBy = [ "multi-user.target" ]; 131 + after = [ "networking.target" ]; 132 + environment = { 133 + HOME = cfg.userDir; 134 + }; 135 + serviceConfig = mkMerge [ 136 + { 137 + User = cfg.user; 138 + Group = cfg.group; 139 + ExecStart = "${finalPackage}/bin/node-red ${pkgs.lib.optionalString cfg.safe "--safe"} --settings ${cfg.configFile} --port ${toString cfg.port} --userDir ${cfg.userDir} ${concatStringsSep " " (mapAttrsToList (name: value: "-D ${name}=${value}") cfg.define)}"; 140 + PrivateTmp = true; 141 + Restart = "always"; 142 + WorkingDirectory = cfg.userDir; 143 + } 144 + (mkIf (cfg.userDir == "/var/lib/node-red") { StateDirectory = "node-red"; }) 145 + ]; 146 + }; 147 + }; 148 + }
+3
nixos/tests/all-tests.nix
··· 227 227 libreswan = handleTest ./libreswan.nix {}; 228 228 lightdm = handleTest ./lightdm.nix {}; 229 229 limesurvey = handleTest ./limesurvey.nix {}; 230 + litestream = handleTest ./litestream.nix {}; 230 231 locate = handleTest ./locate.nix {}; 231 232 login = handleTest ./login.nix {}; 232 233 loki = handleTest ./loki.nix {}; ··· 259 260 morty = handleTest ./morty.nix {}; 260 261 mosquitto = handleTest ./mosquitto.nix {}; 261 262 mpd = handleTest ./mpd.nix {}; 263 + mpv = handleTest ./mpv.nix {}; 262 264 mumble = handleTest ./mumble.nix {}; 263 265 musescore = handleTest ./musescore.nix {}; 264 266 munin = handleTest ./munin.nix {}; ··· 301 303 nix-serve = handleTest ./nix-ssh-serve.nix {}; 302 304 nix-ssh-serve = handleTest ./nix-ssh-serve.nix {}; 303 305 nixos-generate-config = handleTest ./nixos-generate-config.nix {}; 306 + node-red = handleTest ./node-red.nix {}; 304 307 nomad = handleTest ./nomad.nix {}; 305 308 novacomd = handleTestOn ["x86_64-linux"] ./novacomd.nix {}; 306 309 nsd = handleTest ./nsd.nix {};
+93
nixos/tests/litestream.nix
··· 1 + import ./make-test-python.nix ({ pkgs, ...} : { 2 + name = "litestream"; 3 + meta = with pkgs.lib.maintainers; { 4 + maintainers = [ jwygoda ]; 5 + }; 6 + 7 + machine = 8 + { pkgs, ... }: 9 + { services.litestream = { 10 + enable = true; 11 + settings = { 12 + dbs = [ 13 + { 14 + path = "/var/lib/grafana/data/grafana.db"; 15 + replicas = [{ 16 + url = "sftp://foo:bar@127.0.0.1:22/home/foo/grafana"; 17 + }]; 18 + } 19 + ]; 20 + }; 21 + }; 22 + systemd.services.grafana.serviceConfig.ExecStartPost = "+" + pkgs.writeShellScript "grant-grafana-permissions" '' 23 + timeout=10 24 + 25 + while [ ! -f /var/lib/grafana/data/grafana.db ]; 26 + do 27 + if [ "$timeout" == 0 ]; then 28 + echo "ERROR: Timeout while waiting for /var/lib/grafana/data/grafana.db." 29 + exit 1 30 + fi 31 + 32 + sleep 1 33 + 34 + ((timeout--)) 35 + done 36 + 37 + find /var/lib/grafana -type d -exec chmod -v 775 {} \; 38 + find /var/lib/grafana -type f -exec chmod -v 660 {} \; 39 + ''; 40 + services.openssh = { 41 + enable = true; 42 + allowSFTP = true; 43 + listenAddresses = [ { addr = "127.0.0.1"; port = 22; } ]; 44 + }; 45 + services.grafana = { 46 + enable = true; 47 + security = { 48 + adminUser = "admin"; 49 + adminPassword = "admin"; 50 + }; 51 + addr = "localhost"; 52 + port = 3000; 53 + extraOptions = { 54 + DATABASE_URL = "sqlite3:///var/lib/grafana/data/grafana.db?cache=private&mode=rwc&_journal_mode=WAL"; 55 + }; 56 + }; 57 + users.users.foo = { 58 + isNormalUser = true; 59 + password = "bar"; 60 + }; 61 + users.users.litestream.extraGroups = [ "grafana" ]; 62 + }; 63 + 64 + testScript = '' 65 + start_all() 66 + machine.wait_until_succeeds("test -d /home/foo/grafana") 67 + machine.wait_for_open_port(3000) 68 + machine.succeed(""" 69 + curl -sSfN -X PUT -H "Content-Type: application/json" -d '{ 70 + "oldPassword": "admin", 71 + "newPassword": "newpass", 72 + "confirmNew": "newpass" 73 + }' http://admin:admin@127.0.0.1:3000/api/user/password 74 + """) 75 + # https://litestream.io/guides/systemd/#simulating-a-disaster 76 + machine.systemctl("stop litestream.service") 77 + machine.succeed( 78 + "rm -f /var/lib/grafana/data/grafana.db " 79 + "/var/lib/grafana/data/grafana.db-shm " 80 + "/var/lib/grafana/data/grafana.db-wal" 81 + ) 82 + machine.succeed( 83 + "litestream restore /var/lib/grafana/data/grafana.db " 84 + "&& chown grafana:grafana /var/lib/grafana/data/grafana.db " 85 + "&& chmod 660 /var/lib/grafana/data/grafana.db" 86 + ) 87 + machine.systemctl("restart grafana.service") 88 + machine.wait_for_open_port(3000) 89 + machine.succeed( 90 + "curl -sSfN -u admin:newpass http://127.0.0.1:3000/api/org/users | grep admin\@localhost" 91 + ) 92 + ''; 93 + })
+28
nixos/tests/mpv.nix
··· 1 + import ./make-test-python.nix ({ lib, ... }: 2 + 3 + with lib; 4 + 5 + let 6 + port = toString 4321; 7 + in 8 + { 9 + name = "mpv"; 10 + meta.maintainers = with maintainers; [ zopieux ]; 11 + 12 + nodes.machine = 13 + { pkgs, ... }: 14 + { 15 + environment.systemPackages = [ 16 + pkgs.curl 17 + (pkgs.mpv-with-scripts.override { 18 + scripts = [ pkgs.mpvScripts.simple-mpv-webui ]; 19 + }) 20 + ]; 21 + }; 22 + 23 + testScript = '' 24 + machine.execute("set -m; mpv --script-opts=webui-port=${port} --idle=yes &") 25 + machine.wait_for_open_port(${port}) 26 + assert "<title>simple-mpv-webui" in machine.succeed("curl -s localhost:${port}") 27 + ''; 28 + })
+31
nixos/tests/node-red.nix
··· 1 + import ./make-test-python.nix ({ pkgs, ... }: { 2 + name = "nodered"; 3 + meta = with pkgs.lib.maintainers; { 4 + maintainers = [ matthewcroughan ]; 5 + }; 6 + 7 + nodes = { 8 + client = { config, pkgs, ... }: { 9 + environment.systemPackages = [ pkgs.curl ]; 10 + }; 11 + nodered = { config, pkgs, ... }: { 12 + services.node-red = { 13 + enable = true; 14 + openFirewall = true; 15 + }; 16 + }; 17 + }; 18 + 19 + testScript = '' 20 + start_all() 21 + nodered.wait_for_unit("node-red.service") 22 + nodered.wait_for_open_port("1880") 23 + 24 + client.wait_for_unit("multi-user.target") 25 + 26 + with subtest("Check that the Node-RED webserver can be reached."): 27 + assert "<title>Node-RED</title>" in client.succeed( 28 + "curl -sSf http:/nodered:1880/ | grep title" 29 + ) 30 + ''; 31 + })
+8 -12
pkgs/applications/misc/calibre/default.nix
··· 22 22 , libmtp 23 23 , xdg-utils 24 24 , removeReferencesTo 25 + , libstemmer 25 26 }: 26 27 27 28 mkDerivation rec { 28 29 pname = "calibre"; 29 - version = "5.17.0"; 30 + version = "5.24.0"; 30 31 31 32 src = fetchurl { 32 33 url = "https://download.calibre-ebook.com/${version}/${pname}-${version}.tar.xz"; 33 - hash = "sha256-rdiBL3Y3q/0wFfWGE4jGkWakgV8hA9HjDcKXso6tVrs="; 34 + hash = "sha256:18dr577nv7ijw3ar6mrk2xrc54mlrqkaj5jrc6s5sirl0710fdfg"; 34 35 }; 35 36 36 37 patches = [ ··· 65 66 libjpeg 66 67 libmtp 67 68 libpng 69 + libstemmer 68 70 libusb1 69 71 podofo 70 72 poppler_utils ··· 73 75 xdg-utils 74 76 ] ++ ( 75 77 with python3Packages; [ 76 - apsw 78 + (apsw.overrideAttrs (oldAttrs: rec { 79 + setupPyBuildFlags = [ "--enable=load_extension" ]; 80 + })) 77 81 beautifulsoup4 78 82 cchardet 79 83 css-parser ··· 95 99 python 96 100 regex 97 101 sip 98 - (zeroconf.overrideAttrs (oldAttrs: rec { 99 - version = "0.31.0"; 100 - src = fetchFromGitHub { 101 - owner = "jstasiak"; 102 - repo = "python-zeroconf"; 103 - rev = version; 104 - sha256 = "158dqay74zvnz6kmpvip4ml0kw59nf2aaajwgaamx0zc8ci1p5pj"; 105 - }; 106 - })) 102 + zeroconf 107 103 # the following are distributed with calibre, but we use upstream instead 108 104 odfpy 109 105 ] ++ lib.optional (unrarSupport) unrardll
+3 -3
pkgs/applications/misc/freeplane/default.nix
··· 2 2 3 3 let 4 4 pname = "freeplane"; 5 - version = "1.8.11"; 5 + version = "1.9.5"; 6 6 7 7 src = fetchFromGitHub { 8 8 owner = pname; 9 9 repo = pname; 10 10 rev = "release-${version}"; 11 - sha256 = "07xjx9pf62dvy8lx6vnbwwcn1zqy89cmdmwy792k7gb12wz81nnc"; 11 + sha256 = "qfhhmF3mePxcL4U8izkEmWaiaOLi4slsaymVnDoO3sY="; 12 12 }; 13 13 14 14 deps = stdenv.mkDerivation { ··· 31 31 32 32 outputHashAlgo = "sha256"; 33 33 outputHashMode = "recursive"; 34 - outputHash = "0r7f6713m0whh5hlk1id7z9j5v9494r41sivn9fzl63q70kzz92g"; 34 + outputHash = "xphTzaSXTGpP7vI/t4oIiv1ZpbekG2dFRzyl3ub6qnA="; 35 35 }; 36 36 37 37 # Point to our local deps repo
+2 -2
pkgs/applications/misc/yambar/default.nix
··· 24 24 25 25 stdenv.mkDerivation rec { 26 26 pname = "yambar"; 27 - version = "1.6.1"; 27 + version = "1.6.2"; 28 28 29 29 src = fetchgit { 30 30 url = "https://codeberg.org/dnkl/yambar.git"; 31 31 rev = version; 32 - sha256 = "p47tFsEWsYNe6IVV65xGG211u6Vm2biRf4pmUDylBOQ="; 32 + sha256 = "sha256-oUNkaWrYIcsK2u+aeRg6DHmH4M1VZ0leNSM0lV9Yy1Y="; 33 33 }; 34 34 35 35 nativeBuildInputs = [ pkg-config meson ninja scdoc ];
+2 -2
pkgs/applications/networking/instant-messengers/zulip/default.nix
··· 5 5 6 6 let 7 7 pname = "zulip"; 8 - version = "5.8.0"; 8 + version = "5.8.1"; 9 9 name = "${pname}-${version}"; 10 10 11 11 src = fetchurl { 12 12 url = "https://github.com/zulip/zulip-desktop/releases/download/v${version}/Zulip-${version}-x86_64.AppImage"; 13 - sha256 = "0z8lp56j6qvm57sfqdyqrqzj9add3drh1z4zsckg45jfw6yn3jdv"; 13 + sha256 = "02m18y5j6jmmlygv8ycwaaq6n7mvj97ljhd3l9pvii0adwcvrpfz"; 14 14 name="${pname}-${version}.AppImage"; 15 15 }; 16 16
+2 -2
pkgs/applications/science/robotics/mavproxy/default.nix
··· 3 3 4 4 buildPythonApplication rec { 5 5 pname = "MAVProxy"; 6 - version = "1.8.39"; 6 + version = "1.8.40"; 7 7 8 8 src = fetchPypi { 9 9 inherit pname version; 10 - sha256 = "sha256-1RXuAiz9i5ZnLtDGQ+o3DNgWJ2FDJGIoelmlDmEzrts="; 10 + sha256 = "cad317e2e879f1f7cb59af078788aaf0d09cd761ecd91ad091adf7ac6cc1bcdb"; 11 11 }; 12 12 13 13 postPatch = ''
+3 -3
pkgs/applications/video/mpv/scripts/simple-mpv-webui.nix
··· 2 2 , fetchFromGitHub }: 3 3 stdenvNoCC.mkDerivation rec { 4 4 pname = "simple-mpv-ui"; 5 - version = "1.0.0"; 5 + version = "2.1.0"; 6 6 7 7 src = fetchFromGitHub { 8 8 owner = "open-dynaMIX"; 9 9 repo = "simple-mpv-webui"; 10 10 rev = "v${version}"; 11 - sha256 = "1glrnnl1slcl0ri0zs4j64lc9aa52p9ffh6av0d81fk95nm98917"; 11 + sha256 = "1z0y8sdv5mbxznxqh43w5592ym688vkvqg7w26p8cinrhf09pbw8"; 12 12 }; 13 13 14 14 dontBuild = true; ··· 21 21 meta = with lib; { 22 22 description = "A web based user interface with controls for the mpv mediaplayer"; 23 23 homepage = "https://github.com/open-dynaMIX/simple-mpv-webui"; 24 - maintainers = [ maintainers.cript0nauta ]; 24 + maintainers = with maintainers; [ cript0nauta zopieux ]; 25 25 longDescription = '' 26 26 You can access the webui when accessing http://127.0.0.1:8080 or 27 27 http://[::1]:8080 in your webbrowser. By default it listens on
+3 -3
pkgs/desktops/arcan/arcan.nix
··· 52 52 in 53 53 stdenv.mkDerivation rec { 54 54 pname = "arcan"; 55 - version = "0.6.1pre1+unstable=2021-07-10"; 55 + version = "0.6.1pre1+unstable=2021-07-30"; 56 56 57 57 src = fetchFromGitHub { 58 58 owner = "letoram"; 59 59 repo = "arcan"; 60 - rev = "25da999e6e03688c71c7df3852314c01ed610e0d"; 61 - hash = "sha256-+ZF6mD/Z0N/5QCjXe80z4L6JOE33+Yv4ZlwKvlG/c44="; 60 + rev = "885b2f0c9e031fd157af21302af2027ecbe3fe1f"; 61 + hash = "sha256-tj5kPa5OWCGt7LTzo4ZYV1UjBpOrjQHER/K+ZfL3h+8="; 62 62 }; 63 63 64 64 postUnpack = ''
+3 -2
pkgs/desktops/arcan/wrapper.nix
··· 20 20 --set ARCAN_BINPATH "${placeholder "out"}/bin/arcan_frameserver" \ 21 21 --set ARCAN_LIBPATH "${placeholder "out"}/lib/" \ 22 22 --set ARCAN_RESOURCEPATH "${placeholder "out"}/share/arcan/resources/" \ 23 - --set ARCAN_SCRIPTPATH "${placeholder "out"}/share/arcan/scripts/" \ 24 - --set ARCAN_STATEBASEPATH "\$HOME/.arcan/resources/savestates/" 23 + --set ARCAN_SCRIPTPATH "${placeholder "out"}/share/arcan/scripts/" 25 24 done 26 25 ''; 27 26 } 28 27 # TODO: set ARCAN_FONTPATH to a set of fonts that can be provided in a parameter 28 + # TODO: set ARCAN_STATEBASEPATH to $HOME/.arcan/resources/savestates/ - possibly 29 + # via a suitable script
+2 -2
pkgs/development/libraries/gensio/default.nix
··· 8 8 9 9 stdenv.mkDerivation rec { 10 10 pname = "gensio"; 11 - version = "2.2.7"; 11 + version = "2.2.8"; 12 12 13 13 src = fetchFromGitHub { 14 14 owner = "cminyard"; 15 15 repo = pname; 16 16 rev = "v${version}"; 17 - sha256 = "sha256-2wxsPHrQ9GgyUE4p6zYuR1mPU2OyjtgiPnMApEscR2g="; 17 + sha256 = "sha256-6+hYytLMg5E1KTBPWSteVu2VjF0APkcoOiigqzrBI+U="; 18 18 }; 19 19 20 20 passthru = {
+13 -10
pkgs/development/libraries/libcanberra/default.nix
··· 1 1 { stdenv, lib, fetchurl, fetchpatch, pkg-config, libtool 2 - , gtk ? null 2 + , gtk2-x11, gtk3-x11 , gtkSupport ? null 3 3 , libpulseaudio, gst_all_1, libvorbis, libcap 4 - , CoreServices 4 + , Carbon, CoreServices 5 5 , withAlsa ? stdenv.isLinux, alsa-lib }: 6 6 7 7 stdenv.mkDerivation rec { 8 - name = "libcanberra-0.30"; 8 + pname = "libcanberra"; 9 + version = "0.30"; 9 10 10 11 src = fetchurl { 11 - url = "http://0pointer.de/lennart/projects/libcanberra/${name}.tar.xz"; 12 + url = "http://0pointer.de/lennart/projects/libcanberra/${pname}-${version}.tar.xz"; 12 13 sha256 = "0wps39h8rx2b00vyvkia5j40fkak3dpipp1kzilqla0cgvk73dn2"; 13 14 }; 14 15 15 16 nativeBuildInputs = [ pkg-config libtool ]; 16 17 buildInputs = [ 17 - libpulseaudio libvorbis gtk 18 + libpulseaudio libvorbis 18 19 ] ++ (with gst_all_1; [ gstreamer gst-plugins-base ]) 19 - ++ lib.optional stdenv.isDarwin CoreServices 20 + ++ lib.optional (gtkSupport == "gtk2") gtk2-x11 21 + ++ lib.optional (gtkSupport == "gtk3") gtk3-x11 22 + ++ lib.optionals stdenv.isDarwin [Carbon CoreServices] 20 23 ++ lib.optional stdenv.isLinux libcap 21 24 ++ lib.optional withAlsa alsa-lib; 22 25 ··· 30 33 }) 31 34 ]; 32 35 33 - postPatch = (lib.optional stdenv.isDarwin) '' 36 + postPatch = lib.optionalString stdenv.isDarwin '' 34 37 patch -p0 < ${fetchpatch { 35 38 url = "https://raw.githubusercontent.com/macports/macports-ports/master/audio/libcanberra/files/patch-configure.diff"; 36 39 sha256 = "1f7h7ifpqvbfhqygn1b7klvwi80zmpv3538vbmq7ql7bkf1q8h31"; ··· 43 46 done 44 47 ''; 45 48 46 - passthru = { 47 - gtkModule = "/lib/gtk-2.0/"; 49 + passthru = lib.optionalAttrs (gtkSupport != null) { 50 + gtkModule = if gtkSupport == "gtk2" then "/lib/gtk-2.0" else "/lib/gtk-3.0/"; 48 51 }; 49 52 50 53 meta = with lib; { ··· 62 65 platforms = platforms.unix; 63 66 # canberra-gtk-module.c:28:10: fatal error: 'gdk/gdkx.h' file not found 64 67 # #include <gdk/gdkx.h> 65 - broken = stdenv.isDarwin; 68 + broken = stdenv.isDarwin && (gtkSupport == "gtk3"); 66 69 }; 67 70 }
+9 -4
pkgs/development/libraries/zchunk/default.nix
··· 11 11 12 12 stdenv.mkDerivation rec { 13 13 pname = "zchunk"; 14 - version = "1.1.11"; 15 - 16 - outputs = [ "out" "lib" "dev" ]; 14 + version = "1.1.16"; 17 15 18 16 src = fetchFromGitHub { 19 17 owner = "zchunk"; 20 18 repo = pname; 21 19 rev = version; 22 - hash = "sha256-r+qWJOUnTyPJjM9eW44Q2DMKxx4HloyfNrQ6xWDO9vQ="; 20 + hash = "sha256-+8FkivLTZXdu0+1wu+7T98y6rQzIHbG9l15Abrbln1o="; 23 21 }; 24 22 25 23 nativeBuildInputs = [ ··· 32 30 curl 33 31 zstd 34 32 ] ++ lib.optional stdenv.isDarwin argp-standalone; 33 + 34 + 35 + outputs = [ 36 + "out" 37 + "lib" 38 + "dev" 39 + ]; 35 40 36 41 meta = with lib; { 37 42 homepage = "https://github.com/zchunk/zchunk";
+14 -6
pkgs/development/ocaml-modules/opam-repository/download-tool.patch
··· 2 2 index c2954c1d..528fc621 100644 3 3 --- a/src/repository/opamRepositoryConfig.ml 4 4 +++ b/src/repository/opamRepositoryConfig.ml 5 - @@ -27,23 +27,7 @@ type 'a options_fun = 5 + @@ -27,31 +27,7 @@ type 'a options_fun = 6 6 'a 7 7 8 8 let default = { 9 9 - download_tool = lazy ( 10 + - let os = OpamStd.Sys.os () in 10 11 - try 12 + - let curl = "curl", `Curl in 11 13 - let tools = 12 - - if OpamStd.Sys.(os () = Darwin) 13 - - then ["wget", `Default; "curl", `Curl] 14 - - else ["curl", `Curl; "wget", `Default] 14 + - match os with 15 + - | Darwin -> ["wget", `Default; curl] 16 + - | FreeBSD -> ["fetch", `Default ; curl] 17 + - | OpenBSD -> ["ftp", `Default; curl] 18 + - | _ -> [curl; "wget", `Default] 15 19 - in 16 20 - let cmd, kind = 17 21 - List.find (fun (c,_) -> OpamSystem.resolve_command c <> None) tools ··· 20 24 - with Not_found -> 21 25 - OpamConsole.error_and_exit `Configuration_error 22 26 - "Could not find a suitable download command. Please make sure you \ 23 - - have either \"curl\" or \"wget\" installed, or specify a custom \ 24 - - command through variable OPAMFETCH." 27 + - have %s installed, or specify a custom command through variable \ 28 + - OPAMFETCH." 29 + - (match os with 30 + - | FreeBSD -> "fetch" 31 + - | OpenBSD -> "ftp" 32 + - | _ -> "either \"curl\" or \"wget\"") 25 33 - ); 26 34 + download_tool = lazy ([ CIdent SUBSTITUTE_NIXOS_CURL_PATH, None ], `Curl); 27 35 validation_hook = None;
+2 -8
pkgs/development/python-modules/aioambient/default.nix
··· 16 16 17 17 buildPythonPackage rec { 18 18 pname = "aioambient"; 19 - version = "1.2.4"; 19 + version = "1.2.5"; 20 20 format = "pyproject"; 21 21 disabled = pythonOlder "3.6"; 22 22 ··· 24 24 owner = "bachya"; 25 25 repo = pname; 26 26 rev = version; 27 - sha256 = "sha256-uqvM5F0rpw+xeCXYl4lGMt3r0ugPsUmSvujmTJ9HABk="; 27 + sha256 = "1v8xr69y9cajyrdfz8wdksz1hclh5cvgxppf9lpygwfj4q70wh88"; 28 28 }; 29 29 30 30 nativeBuildInputs = [ ··· 45 45 pytest-asyncio 46 46 pytestCheckHook 47 47 ]; 48 - 49 - postPatch = '' 50 - # https://github.com/bachya/aioambient/pull/84 51 - substituteInPlace pyproject.toml \ 52 - --replace 'websockets = "^8.1"' 'websockets = ">=8.1,<10.0"' 53 - ''; 54 48 55 49 # Ignore the examples directory as the files are prefixed with test_ 56 50 disabledTestPaths = [ "examples/" ];
+18 -5
pkgs/development/python-modules/bitstring/default.nix
··· 1 - { lib, buildPythonPackage, fetchPypi }: 1 + { lib 2 + , buildPythonPackage 3 + , fetchFromGitHub 4 + , python 5 + }: 2 6 3 7 buildPythonPackage rec { 4 8 pname = "bitstring"; 5 - version = "3.1.7"; 9 + version = "3.1.9"; 6 10 7 - src = fetchPypi { 8 - inherit pname version; 9 - sha256 = "0jl6192dwrlm5ybkbh7ywmyaymrc3cmz9y07nm7qdli9n9rfpwzx"; 11 + src = fetchFromGitHub { 12 + owner = "scott-griffiths"; 13 + repo = pname; 14 + rev = "bitstring-${version}"; 15 + sha256 = "0y2kcq58psvl038r6dhahhlhp1wjgr5zsms45wyz1naq6ri8x9qa"; 10 16 }; 17 + 18 + checkPhase = '' 19 + cd test 20 + ${python.interpreter} -m unittest discover 21 + ''; 22 + 23 + pythonImportsCheck = [ "bitstring" ]; 11 24 12 25 meta = with lib; { 13 26 description = "Module for binary data manipulation";
+2 -2
pkgs/development/python-modules/emoji/default.nix
··· 6 6 7 7 buildPythonPackage rec { 8 8 pname = "emoji"; 9 - version = "1.4.0"; 9 + version = "1.4.1"; 10 10 11 11 src = fetchFromGitHub { 12 12 owner = "carpedm20"; 13 13 repo = pname; 14 14 rev = "v.${version}"; 15 - sha256 = "0xksxdld20sh3c2s6pry1fm2br9xq8ypdq5pf971fpg5pk2f4iy9"; 15 + sha256 = "0gakvh8hfmfdjyp46bl18b2zm3grm3k5shiqrpzqlipbaxb7ifrk"; 16 16 }; 17 17 18 18 checkInputs = [
+2 -2
pkgs/development/python-modules/motioneye-client/default.nix
··· 11 11 12 12 buildPythonPackage rec { 13 13 pname = "motioneye-client"; 14 - version = "0.3.10"; 14 + version = "0.3.11"; 15 15 format = "pyproject"; 16 16 disabled = pythonOlder "3.8"; 17 17 ··· 19 19 owner = "dermotduffy"; 20 20 repo = pname; 21 21 rev = "v${version}"; 22 - sha256 = "0ilh9wfzggnbfz068vkz66g64ar6isl3m2vcp7jf2zbaj0bqsjax"; 22 + sha256 = "0f34ig8njyn7dzy8272m0b1nlnnhir58ar3vx4zps10i0dc32hb2"; 23 23 }; 24 24 25 25 nativeBuildInputs = [
+28 -7
pkgs/development/python-modules/nbxmpp/default.nix
··· 1 - { lib, buildPythonPackage, pythonOlder, fetchFromGitLab 2 - , gobject-introspection, idna, libsoup, precis-i18n, pygobject3, pyopenssl 1 + { lib 2 + , buildPythonPackage 3 + , pythonOlder 4 + , fetchFromGitLab 5 + , gobject-introspection 6 + , idna 7 + , libsoup 8 + , precis-i18n 9 + , pygobject3 10 + , pyopenssl 11 + , pytestCheckHook 3 12 }: 4 13 5 14 buildPythonPackage rec { 6 15 pname = "nbxmpp"; 7 - version = "2.0.2"; 16 + version = "2.0.3"; 8 17 9 18 disabled = pythonOlder "3.7"; 10 19 11 - # Tests aren't included in PyPI tarball. 12 20 src = fetchFromGitLab { 13 21 domain = "dev.gajim.org"; 14 22 owner = "gajim"; 15 23 repo = "python-nbxmpp"; 16 24 rev = "nbxmpp-${version}"; 17 - sha256 = "0z27mxgfk7hvpx0xdrd8g9441rywv74yk7s83zjnc2mc7xvpwhf4"; 25 + sha256 = "0gzyd25sja7n49f1ihyg6gch1b0r409r0p3qpwn8w8xy7jgn6ysc"; 18 26 }; 19 27 20 - buildInputs = [ precis-i18n ]; 21 - propagatedBuildInputs = [ gobject-introspection idna libsoup pygobject3 pyopenssl ]; 28 + buildInputs = [ 29 + precis-i18n 30 + ]; 31 + 32 + propagatedBuildInputs = [ 33 + gobject-introspection 34 + idna 35 + libsoup 36 + pygobject3 37 + pyopenssl 38 + ]; 39 + 40 + checkInputs = [ 41 + pytestCheckHook 42 + ]; 22 43 23 44 pythonImportsCheck = [ "nbxmpp" ]; 24 45
+4 -2
pkgs/development/python-modules/neo/default.nix
··· 4 4 , nose 5 5 , numpy 6 6 , quantities 7 + , pythonOlder 7 8 }: 8 9 9 10 buildPythonPackage rec { 10 11 pname = "neo"; 11 - version = "0.9.0"; 12 + version = "0.10.0"; 13 + disabled = pythonOlder "3.6"; 12 14 13 15 src = fetchPypi { 14 16 inherit pname version; 15 - sha256 = "6e31c88d7c52174fa2512df589b2b5003e9471fde27fca9f315f4770ba3bd3cb"; 17 + sha256 = "0lw3r9p1ky1cswhrs9radc0vq1qfzbrk7qd00f34g96g30zab4g5"; 16 18 }; 17 19 18 20 propagatedBuildInputs = [ numpy quantities ];
+2 -7
pkgs/development/python-modules/pg8000/default.nix
··· 8 8 9 9 buildPythonPackage rec { 10 10 pname = "pg8000"; 11 - version = "1.20.0"; 11 + version = "1.21.0"; 12 12 disabled = pythonOlder "3.6"; 13 13 14 14 src = fetchPypi { 15 15 inherit pname version; 16 - sha256 = "sha256-SQ7CKpJgHwRUs+1MjU7N3DD2bA4/eD8OzFgQN3SajFU="; 16 + sha256 = "1msj0vk14fbsis8yfk0my1ygpcli9jz3ivwdi9k6ii5i6330i4f9"; 17 17 }; 18 18 19 19 propagatedBuildInputs = [ 20 20 passlib 21 21 scramp 22 22 ]; 23 - 24 - postPatch = '' 25 - substituteInPlace setup.py \ 26 - --replace "scramp==1.4.0" "scramp>=1.4.0" 27 - ''; 28 23 29 24 # Tests require a running PostgreSQL instance 30 25 doCheck = false;
+2 -2
pkgs/development/python-modules/phonenumbers/default.nix
··· 6 6 7 7 buildPythonPackage rec { 8 8 pname = "phonenumbers"; 9 - version = "8.12.26"; 9 + version = "8.12.28"; 10 10 11 11 src = fetchPypi { 12 12 inherit pname version; 13 - sha256 = "sha256-Zbq269vg7FGWx0YmlJdI21M30jiVqrwe+PXXKEeHmYo="; 13 + sha256 = "1g86bf791lr9ggrfgllah9liwa3bx917h9ffrdb01kjwdna4zsj2"; 14 14 }; 15 15 16 16 checkInputs = [
+10 -16
pkgs/development/python-modules/pipdate/default.nix
··· 2 2 , buildPythonPackage 3 3 , fetchPypi 4 4 , pythonOlder 5 - , isPy27 6 5 , appdirs 7 6 , importlib-metadata 8 7 , requests 9 - , pytest 8 + , rich 9 + , setuptools 10 10 , wheel 11 11 }: 12 12 13 13 buildPythonPackage rec { 14 14 pname = "pipdate"; 15 - version = "0.5.2"; 15 + version = "0.5.5"; 16 16 format = "pyproject"; 17 - disabled = isPy27; # abandoned 17 + disabled = pythonOlder "3.6"; 18 18 19 19 src = fetchPypi { 20 20 inherit pname version; 21 - sha256 = "507065231f2d50b6319d483432cba82aadad78be21b7a2969b5881ed8dee9ab4"; 21 + sha256 = "03hr9i691cpg9q2xc1xr4lpd90xs8rba0xjh6qmc1vg7lgcdgbaa"; 22 22 }; 23 23 24 24 nativeBuildInputs = [ wheel ]; ··· 26 26 propagatedBuildInputs = [ 27 27 appdirs 28 28 requests 29 + rich 30 + setuptools 29 31 ] ++ lib.optionals (pythonOlder "3.8") [ 30 32 importlib-metadata 31 33 ]; 32 34 33 - checkInputs = [ 34 - pytest 35 - ]; 36 - 37 - checkPhase = '' 38 - HOME=$(mktemp -d) pytest test/test_pipdate.py 39 - ''; 40 - 41 - # tests require network access 35 + # Tests require network access and pythonImportsCheck requires configuration file 42 36 doCheck = false; 43 37 44 38 meta = with lib; { 45 39 description = "pip update helpers"; 46 40 homepage = "https://github.com/nschloe/pipdate"; 47 - license = licenses.mit; 48 - maintainers = [ maintainers.costrouc ]; 41 + license = licenses.gpl3Plus; 42 + maintainers = with maintainers; [ costrouc ]; 49 43 }; 50 44 }
+6 -5
pkgs/development/python-modules/plexapi/default.nix
··· 4 4 , requests 5 5 , tqdm 6 6 , websocket-client 7 - , isPy27 7 + , pythonOlder 8 8 }: 9 9 10 10 buildPythonPackage rec { 11 - pname = "PlexAPI"; 12 - version = "4.6.1"; 13 - disabled = isPy27; 11 + pname = "plexapi"; 12 + version = "4.7.0"; 13 + disabled = pythonOlder "3.5"; 14 14 15 15 src = fetchFromGitHub { 16 16 owner = "pkkid"; 17 17 repo = "python-plexapi"; 18 18 rev = version; 19 - sha256 = "sha256-WL5UBsvAdtfOCkVX9NI0Z2fJ2CAO+NwD8wvkvkJ2uww="; 19 + sha256 = "1gh36ln9ki69rs7ml9syqq956i996rdi145qffjwb3736zylrzkp"; 20 20 }; 21 21 22 22 propagatedBuildInputs = [ ··· 27 27 28 28 # Tests require a running Plex instance 29 29 doCheck = false; 30 + 30 31 pythonImportsCheck = [ "plexapi" ]; 31 32 32 33 meta = with lib; {
+2 -4
pkgs/development/python-modules/pypck/default.nix
··· 2 2 , buildPythonPackage 3 3 , fetchFromGitHub 4 4 , pytest-asyncio 5 - , pytest-cov 6 5 , pytest-timeout 7 6 , pytestCheckHook 8 7 , pythonOlder ··· 11 10 12 11 buildPythonPackage rec { 13 12 pname = "pypck"; 14 - version = "0.7.10"; 13 + version = "0.7.11"; 15 14 disabled = pythonOlder "3.8"; 16 15 17 16 src = fetchFromGitHub { 18 17 owner = "alengwenus"; 19 18 repo = pname; 20 19 rev = version; 21 - sha256 = "sha256-B2imewEONewj1Y+Q316reIBZB/b9WQAu67x9cLMkRTU="; 20 + sha256 = "1jj0y487qcxrprx4x2rs6r7rqsf5m9khk0xhigbvnbyvh8rsd2jr"; 22 21 }; 23 22 24 23 checkInputs = [ 25 24 pytest-asyncio 26 - pytest-cov 27 25 pytest-timeout 28 26 pytestCheckHook 29 27 ];
+2 -2
pkgs/development/python-modules/pysma/default.nix
··· 9 9 10 10 buildPythonPackage rec { 11 11 pname = "pysma"; 12 - version = "0.6.4"; 12 + version = "0.6.5"; 13 13 14 14 src = fetchPypi { 15 15 inherit pname version; 16 - sha256 = "sha256-hnvbQOilsoHn1qc/pKJ2Eq1VwJi+HbGlAAJwiME1Pgc="; 16 + sha256 = "0kabwx8mi2kkbxxg7abnxwggxvidjrzgp5yidiyll5iba0ghhgnw"; 17 17 }; 18 18 19 19 propagatedBuildInputs = [
+2 -2
pkgs/development/python-modules/sentry-sdk/default.nix
··· 29 29 30 30 buildPythonPackage rec { 31 31 pname = "sentry-sdk"; 32 - version = "1.3.0"; 32 + version = "1.3.1"; 33 33 34 34 src = fetchPypi { 35 35 inherit pname version; 36 - sha256 = "sha256-UhCnEt1X2I0iXB/D/jo2Jv7kk2N7zVTiBIJs8EuNdpw="; 36 + sha256 = "0v72zzghlk6kvjg7fg4c4mfr1kasnwlpjzk1wyqd864nz9293sgb"; 37 37 }; 38 38 39 39 checkInputs = [ blinker botocore chalice django flask tornado bottle rq falcon sqlalchemy werkzeug trytond
+7 -1
pkgs/development/python-modules/tensorflow/default.nix
··· 1 1 { stdenv, bazel_3, buildBazelPackage, isPy3k, lib, fetchFromGitHub, symlinkJoin 2 - , addOpenGLRunpath 2 + , addOpenGLRunpath, fetchpatch 3 3 # Python deps 4 4 , buildPythonPackage, pythonOlder, pythonAtLeast, python 5 5 # Python libraries ··· 114 114 }; 115 115 116 116 patches = [ 117 + # included from 2.6.0 onwards 118 + (fetchpatch { 119 + name = "fix-numpy-1.20-notimplementederror.patch"; 120 + url = "https://github.com/tensorflow/tensorflow/commit/b258941525f496763d4277045b6513c815720e3a.patch"; 121 + sha256 = "19f9bzrcfsynk11s2hqvscin5c65zf7r6g3nb10jnimw79vafiry"; 122 + }) 117 123 # Relax too strict Python packages versions dependencies. 118 124 ./relax-dependencies.patch 119 125 # Add missing `io_bazel_rules_docker` dependency.
+2 -2
pkgs/development/tools/database/liquibase/default.nix
··· 10 10 11 11 stdenv.mkDerivation rec { 12 12 pname = "liquibase"; 13 - version = "4.4.1"; 13 + version = "4.4.2"; 14 14 15 15 src = fetchurl { 16 16 url = "https://github.com/liquibase/liquibase/releases/download/v${version}/${pname}-${version}.tar.gz"; 17 - sha256 = "sha256-2Y/eRIkskuk+7GC/br178XzWTnP4iXSFfa5ybLjvqDA="; 17 + sha256 = "sha256-qOKMyqf3KX7pWjslVgcPiGlTiwvMZLvm7DiatmSLd1U="; 18 18 }; 19 19 20 20 nativeBuildInputs = [ makeWrapper ];
+13 -13
pkgs/development/tools/ocaml/dune-release/default.nix
··· 1 1 { lib, buildDunePackage, fetchurl, makeWrapper 2 2 , curly, fmt, bos, cmdliner, re, rresult, logs 3 - , odoc, opam-format, opam-core, opam-state, yojson 3 + , odoc, opam-format, opam-core, opam-state, yojson, astring 4 4 , opam, git, findlib, mercurial, bzip2, gnutar, coreutils 5 5 , alcotest, mdx 6 6 }: ··· 10 10 let runtimeInputs = [ opam findlib git mercurial bzip2 gnutar coreutils ]; 11 11 in buildDunePackage rec { 12 12 pname = "dune-release"; 13 - version = "1.4.0"; 13 + version = "1.5.0"; 14 14 15 15 minimumOCamlVersion = "4.06"; 16 16 17 17 src = fetchurl { 18 18 url = "https://github.com/ocamllabs/${pname}/releases/download/${version}/${pname}-${version}.tbz"; 19 - sha256 = "1frinv1rsrm30q6jclicsswpshkdwwdgxx7sp6q9w4c2p211n1ln"; 19 + sha256 = "1lyfaczskdbqnhmpiy6wga9437frds3m8prfk2rhwyb96h69y3pv"; 20 20 }; 21 21 22 22 nativeBuildInputs = [ makeWrapper ]; 23 23 buildInputs = [ curly fmt cmdliner re opam-format opam-state opam-core 24 - rresult logs odoc bos yojson ]; 24 + rresult logs odoc bos yojson astring ]; 25 25 checkInputs = [ alcotest mdx ] ++ runtimeInputs; 26 26 doCheck = true; 27 27 ··· 32 32 # to have a fixed path to the binary in nix store 33 33 sed -i '/must_exist (Cmd\.v "curl"/d' lib/github.ml 34 34 35 - # fix problems with git invocations in tests 36 - for f in tests/bin/{delegate_info,errors,tag,no_doc,x-commit-hash}/run.t; do 37 - # set bogus user info in git so git commit doesn't fail 38 - sed -i '/git init/ a \ $ git config user.name test; git config user.email "pseudo@pseudo.invalid"' "$f" 39 - # surpress hint to set default branch name 40 - substituteInPlace "$f" --replace "git init" "git init -b main" 41 - done 35 + # ignore weird yes error message 36 + sed -i 's/yes |/yes 2>\/dev\/null |/' \ 37 + tests/bin/no_doc/run.t \ 38 + tests/bin/draft/run.t \ 39 + tests/bin/url-file/run.t 40 + ''; 42 41 43 - # ignore weird yes error message 44 - sed -i 's/yes |/yes 2>\/dev\/null |/' tests/bin/no_doc/run.t 42 + preCheck = '' 43 + # it fails when it tries to reference "./make_check_deterministic.exe" 44 + rm -fr tests/bin/check 45 45 ''; 46 46 47 47 # tool specific env vars have been deprecated, use PATH
+59 -44
pkgs/development/tools/ocaml/opam/default.nix
··· 6 6 7 7 let 8 8 srcs = { 9 - cmdliner = fetchurl { 10 - url = "http://erratique.ch/software/cmdliner/releases/cmdliner-1.0.2.tbz"; 11 - sha256 = "18jqphjiifljlh9jg8zpl6310p3iwyaqphdkmf89acyaix0s4kj1"; 9 + "0install-solver" = fetchurl { 10 + url = "https://github.com/0install/0install/releases/download/v2.17/0install-v2.17.tbz"; 11 + sha256 = "08q95mzmf9pyyqs68ff52422f834hi313cxmypwrxmxsabcfa10p"; 12 12 }; 13 - cppo = fetchurl { 14 - url = "https://github.com/ocaml-community/cppo/releases/download/v1.6.6/cppo-v1.6.6.tbz"; 15 - sha256 = "185q0x54id7pfc6rkbjscav8sjkrg78fz65rgfw7b4bqlyb2j9z7"; 13 + "cmdliner" = fetchurl { 14 + url = "http://erratique.ch/software/cmdliner/releases/cmdliner-1.0.4.tbz"; 15 + sha256 = "1h04q0zkasd0mw64ggh4y58lgzkhg6yhzy60lab8k8zq9ba96ajw"; 16 16 }; 17 - cudf = fetchurl { 17 + "cppo" = fetchurl { 18 + url = "https://github.com/ocaml-community/cppo/releases/download/v1.6.7/cppo-v1.6.7.tbz"; 19 + sha256 = "17ajdzrnmnyfig3s6hinb56mcmhywbssxhsq32dz0v90dhz3wmfv"; 20 + }; 21 + "cudf" = fetchurl { 18 22 url = "https://gforge.inria.fr/frs/download.php/36602/cudf-0.9.tar.gz"; 19 23 sha256 = "0771lwljqwwn3cryl0plny5a5dyyrj4z6bw66ha5n8yfbpcy8clr"; 20 24 }; 21 - dose3 = fetchurl { 25 + "dose3" = fetchurl { 22 26 url = "https://gforge.inria.fr/frs/download.php/file/36063/dose3-5.0.1.tar.gz"; 23 27 sha256 = "00yvyfm4j423zqndvgc1ycnmiffaa2l9ab40cyg23pf51qmzk2jm"; 24 28 }; 25 - dune-local = fetchurl { 26 - url = "https://github.com/ocaml/dune/releases/download/1.6.3/dune-1.6.3.tbz"; 27 - sha256 = "0dmf0wbfmgdy5plz1bjiisc2hjgblvxsnrqjmw2c8y45v1h23mdz"; 29 + "dune-local" = fetchurl { 30 + url = "https://github.com/ocaml/dune/releases/download/2.9.0/dune-2.9.0.tbz"; 31 + sha256 = "07m476kgagpd6kzm3jq30yfxqspr2hychah0xfqs14z82zxpq8dv"; 28 32 }; 29 - extlib = fetchurl { 33 + "extlib" = fetchurl { 30 34 url = "https://ygrek.org/p/release/ocaml-extlib/extlib-1.7.7.tar.gz"; 31 35 sha256 = "1sxmzc1mx3kg62j8kbk0dxkx8mkf1rn70h542cjzrziflznap0s1"; 32 36 }; 33 - mccs = fetchurl { 34 - url = "https://github.com/AltGr/ocaml-mccs/archive/1.1+11.tar.gz"; 35 - sha256 = "0mswapf37rav8nvvbjc4c7c7wnl6qwgd3c5v0nfifmr910qygz72"; 37 + "mccs" = fetchurl { 38 + url = "https://github.com/AltGr/ocaml-mccs/archive/1.1+13.tar.gz"; 39 + sha256 = "05nnji9h8mss3hzjr5faid2v3xfr7rcv2ywmpcxxp28y6h2kv9gv"; 36 40 }; 37 - ocamlgraph = fetchurl { 38 - url = "http://ocamlgraph.lri.fr/download/ocamlgraph-1.8.8.tar.gz"; 39 - sha256 = "0m9g16wrrr86gw4fz2fazrh8nkqms0n863w7ndcvrmyafgxvxsnr"; 41 + "ocamlgraph" = fetchurl { 42 + url = "https://github.com/backtracking/ocamlgraph/releases/download/2.0.0/ocamlgraph-2.0.0.tbz"; 43 + sha256 = "029692bvdz3hxpva9a2jg5w5381fkcw55ysdi8424lyyjxvjdzi0"; 40 44 }; 41 - opam-file-format = fetchurl { 42 - url = "https://github.com/ocaml/opam-file-format/archive/2.0.0.tar.gz"; 43 - sha256 = "0cjw69r7iilidi7b6arr92kjnjspchvwnmwr1b1gyaxqxpr2s98m"; 45 + "opam-0install-cudf" = fetchurl { 46 + url = "https://github.com/ocaml-opam/opam-0install-solver/releases/download/v0.4.2/opam-0install-cudf-v0.4.2.tbz"; 47 + sha256 = "10wma4hh9l8hk49rl8nql6ixsvlz3163gcxspay5fwrpbg51fmxr"; 48 + }; 49 + "opam-file-format" = fetchurl { 50 + url = "https://github.com/ocaml/opam-file-format/archive/2.1.3.tar.gz"; 51 + sha256 = "1bqyrlsvmjf4gqzmzbiyja9m1ph30ic9i18x23p5ziymyylw2sfg"; 44 52 }; 45 - re = fetchurl { 53 + "re" = fetchurl { 46 54 url = "https://github.com/ocaml/ocaml-re/releases/download/1.9.0/re-1.9.0.tbz"; 47 55 sha256 = "1gas4ky49zgxph3870nffzkr6y41kkpqp4nj38pz1gh49zcf12aj"; 48 56 }; 49 - result = fetchurl { 50 - url = "https://github.com/janestreet/result/archive/1.4.tar.gz"; 51 - sha256 = "1cjlncnzkwc6zr4v8dgy8nin490blbyxzwwp0qh0cla7s3q2jw0n"; 57 + "result" = fetchurl { 58 + url = "https://github.com/janestreet/result/releases/download/1.5/result-1.5.tbz"; 59 + sha256 = "0cpfp35fdwnv3p30a06wd0py3805qxmq3jmcynjc3x2qhlimwfkw"; 52 60 }; 53 - seq = fetchurl { 54 - url = "https://github.com/c-cube/seq/archive/0.1.tar.gz"; 55 - sha256 = "02lb2d9i12bxrz2ba5wygk2bycan316skqlyri0597q7j9210g8r"; 61 + "seq" = fetchurl { 62 + url = "https://github.com/c-cube/seq/archive/0.2.2.tar.gz"; 63 + sha256 = "1ck15v3pg8bacdg6d6iyp2jc3kgrzxk5jsgzx3287x2ycb897j53"; 64 + }; 65 + "stdlib-shims" = fetchurl { 66 + url = "https://github.com/ocaml/stdlib-shims/releases/download/0.3.0/stdlib-shims-0.3.0.tbz"; 67 + sha256 = "0jnqsv6pqp5b5g7lcjwgd75zqqvcwcl5a32zi03zg1kvj79p5gxs"; 56 68 }; 57 69 opam = fetchurl { 58 - url = "https://github.com/ocaml/opam/archive/2.0.8.zip"; 59 - sha256 = "1h55jh4nnx1fcn7v7ss3fgxrn6ixkgnq7pvg5njz8c9xq4njwbc1"; 70 + url = "https://github.com/ocaml/opam/archive/2.1.0.zip"; 71 + sha256 = "063df5gsvp4yrbqbnd8k7a1f04cf12prc5wh4f1200acs3jwjxwb"; 60 72 }; 61 73 }; 62 74 in stdenv.mkDerivation { 63 75 pname = "opam"; 64 - version = "2.0.8"; 76 + version = "2.1.0"; 65 77 66 78 nativeBuildInputs = [ makeWrapper unzip ]; 67 79 buildInputs = [ curl ncurses ocaml getconf ] ++ lib.optional stdenv.isLinux bubblewrap; ··· 69 81 src = srcs.opam; 70 82 71 83 postUnpack = '' 72 - ln -sv ${srcs.cmdliner} $sourceRoot/src_ext/cmdliner.tbz 73 - ln -sv ${srcs.cppo} $sourceRoot/src_ext/cppo.tbz 74 - ln -sv ${srcs.cudf} $sourceRoot/src_ext/cudf.tar.gz 75 - ln -sv ${srcs.dose3} $sourceRoot/src_ext/dose3.tar.gz 76 - ln -sv ${srcs.dune-local} $sourceRoot/src_ext/dune-local.tbz 77 - ln -sv ${srcs.extlib} $sourceRoot/src_ext/extlib.tar.gz 78 - ln -sv ${srcs.mccs} $sourceRoot/src_ext/mccs.tar.gz 79 - ln -sv ${srcs.ocamlgraph} $sourceRoot/src_ext/ocamlgraph.tar.gz 80 - ln -sv ${srcs.opam-file-format} $sourceRoot/src_ext/opam-file-format.tar.gz 81 - ln -sv ${srcs.re} $sourceRoot/src_ext/re.tbz 82 - ln -sv ${srcs.result} $sourceRoot/src_ext/result.tar.gz 83 - ln -sv ${srcs.seq} $sourceRoot/src_ext/seq.tar.gz 84 + ln -sv ${srcs."0install-solver"} $sourceRoot/src_ext/0install-solver.tbz 85 + ln -sv ${srcs."cmdliner"} $sourceRoot/src_ext/cmdliner.tbz 86 + ln -sv ${srcs."cppo"} $sourceRoot/src_ext/cppo.tbz 87 + ln -sv ${srcs."cudf"} $sourceRoot/src_ext/cudf.tar.gz 88 + ln -sv ${srcs."dose3"} $sourceRoot/src_ext/dose3.tar.gz 89 + ln -sv ${srcs."dune-local"} $sourceRoot/src_ext/dune-local.tbz 90 + ln -sv ${srcs."extlib"} $sourceRoot/src_ext/extlib.tar.gz 91 + ln -sv ${srcs."mccs"} $sourceRoot/src_ext/mccs.tar.gz 92 + ln -sv ${srcs."ocamlgraph"} $sourceRoot/src_ext/ocamlgraph.tbz 93 + ln -sv ${srcs."opam-0install-cudf"} $sourceRoot/src_ext/opam-0install-cudf.tbz 94 + ln -sv ${srcs."opam-file-format"} $sourceRoot/src_ext/opam-file-format.tar.gz 95 + ln -sv ${srcs."re"} $sourceRoot/src_ext/re.tbz 96 + ln -sv ${srcs."result"} $sourceRoot/src_ext/result.tbz 97 + ln -sv ${srcs."seq"} $sourceRoot/src_ext/seq.tar.gz 98 + ln -sv ${srcs."stdlib-shims"} $sourceRoot/src_ext/stdlib-shims.tbz 84 99 ''; 85 100 86 101 patches = [ ./opam-shebangs.patch ]; ··· 118 133 platforms = platforms.all; 119 134 }; 120 135 } 121 - # Generated by: ./opam.nix.pl -v 2.0.8 -p opam-shebangs.patch 136 + # Generated by: ./opam.nix.pl -v 2.1.0 -p opam-shebangs.patch
+4 -1
pkgs/development/tools/ocaml/opam/opam-shebangs.patch
··· 2 2 index eca13a7c..1fd66f43 100644 3 3 --- a/src/client/opamInitDefaults.ml 4 4 +++ b/src/client/opamInitDefaults.ml 5 - @@ -35,11 +35,15 @@ let eval_variables = [ 5 + @@ -35,14 +35,18 @@ let eval_variables = [ 6 6 let os_filter os = 7 7 FOp (FIdent ([], OpamVariable.of_string "os", None), `Eq, FString os) 8 8 ··· 13 13 let macos_filter = os_filter "macos" 14 14 let openbsd_filter = os_filter "openbsd" 15 15 let freebsd_filter = os_filter "freebsd" 16 + let not_open_free_bsd_filter = 17 + FNot (FOr (openbsd_filter, freebsd_filter)) 18 + let win32_filter = os_filter "win32" 16 19 let sandbox_filter = FOr (linux_filter, macos_filter) 17 20 +let nixos_filter = os_distribution_filter "nixos" 18 21
+4 -4
pkgs/development/tools/ocaml/opam/opam.nix.pl
··· 51 51 system "echo \Q$md5s{$src}\E' *'\Q$store_path\E | md5sum -c 1>&2"; 52 52 die "md5 check failed for $urls{$src}\n" if $?; 53 53 print <<"EOF"; 54 - $src = fetchurl { 54 + "$src" = fetchurl { 55 55 url = "$urls{$src}"; 56 56 sha256 = "$sha256"; 57 57 }; ··· 68 68 pname = "opam"; 69 69 version = "$OPAM_RELEASE"; 70 70 71 - nativeBuildInputs = [ unzip ]; 72 - buildInputs = [ curl ncurses ocaml makeWrapper getconf ] ++ lib.optional stdenv.isLinux bubblewrap; 71 + nativeBuildInputs = [ makeWrapper unzip ]; 72 + buildInputs = [ curl ncurses ocaml getconf ] ++ lib.optional stdenv.isLinux bubblewrap; 73 73 74 74 src = srcs.opam; 75 75 ··· 79 79 my($ext) = $urls{$src} =~ /(\.(?:t(?:ar\.|)|)(?:gz|bz2?))$/ 80 80 or die "could not find extension for $urls{$src}\n"; 81 81 print <<"EOF"; 82 - ln -sv \${srcs.$src} \$sourceRoot/src_ext/$src$ext 82 + ln -sv \${srcs."$src"} \$sourceRoot/src_ext/$src$ext 83 83 EOF 84 84 } 85 85 print <<'EOF';
+2 -2
pkgs/games/dwarf-fortress/twbt/default.nix
··· 52 52 }; 53 53 "0.47.05" = { 54 54 twbtRelease = "6.xx"; 55 - dfhackRelease = "0.47.05-beta1"; 56 - sha256 = "sha256-Y6G0qBMHvotp/oyiqANlzXZVklL270dhskd135PnE9Q="; 55 + dfhackRelease = "0.47.05-r1"; 56 + sha256 = "1nqhaf7271bm9rq9dmilhhk9q7v3841d0rv4y3fid40vfi4gpi3p"; 57 57 prerelease = true; 58 58 }; 59 59 };
+33 -16
pkgs/tools/cd-dvd/unetbootin/default.nix
··· 1 - { lib, stdenv, fetchFromGitHub, makeWrapper, qt4, util-linux, coreutils, which, qmake4Hook 2 - , p7zip, mtools, syslinux }: 1 + { lib 2 + , stdenv 3 + , coreutils 4 + , fetchFromGitHub 5 + , libsForQt5 6 + , mtools 7 + , p7zip 8 + , qt5 9 + , syslinux 10 + , util-linux 11 + , which 12 + }: 3 13 4 14 stdenv.mkDerivation rec { 5 15 pname = "unetbootin"; 6 - version = "681"; 16 + version = "702"; 7 17 8 18 src = fetchFromGitHub { 9 - owner = "unetbootin"; 10 - repo = "unetbootin"; 11 - rev = version; 12 - sha256 = "0ppqb7ywh4cpcjr5nw6f65dx4s8kx09gnhihnby3zjhxdf4l99fm"; 19 + owner = pname; 20 + repo = pname; 21 + rev = version; 22 + sha256 = "sha256-psX15XicPXAsd36BhuvK0G3GQS8hV/hazzO0HByCqV4="; 13 23 }; 14 24 15 25 setSourceRoot = '' 16 26 sourceRoot=$(echo */src/unetbootin) 17 27 ''; 18 28 19 - buildInputs = [ qt4 ]; 20 - nativeBuildInputs = [ makeWrapper qmake4Hook ]; 29 + buildInputs = [ 30 + qt5.qtbase 31 + qt5.qttools 32 + libsForQt5.qmake 33 + ]; 34 + 35 + nativeBuildInputs = [ qt5.wrapQtAppsHook ]; 36 + 21 37 enableParallelBuilding = true; 22 38 23 39 # Lots of nice hard-coded paths... ··· 50 66 install -Dm644 -t $out/share/unetbootin unetbootin_*.qm 51 67 install -Dm644 -t $out/share/applications unetbootin.desktop 52 68 53 - wrapProgram $out/bin/unetbootin \ 54 - --prefix PATH : ${lib.makeBinPath [ mtools p7zip which ]} \ 55 - --set QT_X11_NO_MITSHM 1 56 - 57 69 runHook postInstall 58 70 ''; 59 71 72 + qtWrapperArgs = [ 73 + "--prefix PATH : ${lib.makeBinPath [ mtools p7zip which ]}" 74 + "--set QT_X11_NO_MITSHM 1" 75 + ]; 76 + 60 77 meta = with lib; { 61 - homepage = "http://unetbootin.sourceforge.net/"; 62 78 description = "A tool to create bootable live USB drives from ISO images"; 63 - license = licenses.gpl2Plus; 64 - platforms = platforms.linux; 79 + homepage = "http://unetbootin.github.io/"; 80 + license = licenses.gpl2Plus; 65 81 maintainers = with maintainers; [ ebzzry ]; 82 + platforms = platforms.linux; 66 83 }; 67 84 }
+3 -3
pkgs/tools/misc/vial/default.nix
··· 1 1 { lib, fetchurl, appimageTools }: 2 2 let 3 3 name = "vial-${version}"; 4 - version = "0.4"; 4 + version = "0.4.1"; 5 5 pname = "Vial"; 6 6 7 7 src = fetchurl { 8 8 url = "https://github.com/vial-kb/vial-gui/releases/download/v${version}/${pname}-v${version}-x86_64.AppImage"; 9 - sha256 = "sha256-4EDEVSqjQ6Ybqx4BoNwE4pT5yFLYM05FBHc5deQU9f8="; 9 + sha256 = "sha256-aN0wvgahWPNSXP/JmV1JWaEnARIOTyRdz1ko6eC7Y5s="; 10 10 }; 11 11 12 12 appimageContents = appimageTools.extractType2 { inherit name src; }; ··· 26 26 meta = with lib; { 27 27 description = "An Open-source cross-platform (Windows, Linux and Mac) GUI and a QMK fork for configuring your keyboard in real time"; 28 28 homepage = "https://get.vial.today"; 29 - license = licenses.gpl2Only; 29 + license = licenses.gpl2Plus; 30 30 maintainers = with maintainers; [ kranzes ]; 31 31 platforms = [ "x86_64-linux" ]; 32 32 };
+13 -3
pkgs/tools/networking/ghostunnel/default.nix
··· 7 7 8 8 buildGoModule rec { 9 9 pname = "ghostunnel"; 10 - version = "1.5.3"; 10 + version = "1.6.0"; 11 11 12 12 src = fetchFromGitHub { 13 13 owner = "ghostunnel"; 14 14 repo = "ghostunnel"; 15 15 rev = "v${version}"; 16 - sha256 = "15rmd89j7sfpznzznss899smizbyshprsrvsdmrbhb617myd9fpy"; 16 + sha256 = "sha256-EE8gCm/gOp3lmCx1q4PahulipLoBZnEatNAVUXzHIVw="; 17 17 }; 18 18 19 - vendorSha256 = "1i95fx4a0fh6id6iy6afbva4pazr7ym6sbwi9r7la6gxzyncd023"; 19 + vendorSha256 = "sha256-XgmvqB1PCfL2gSDqwqauSixk8vlINHRmX6U0h9EXXdU="; 20 + 21 + deleteVendor = true; 22 + 23 + # The certstore directory isn't recognized as a subpackage, but is when moved 24 + # into the vendor directory. 25 + postUnpack = '' 26 + mkdir -p $sourceRoot/vendor/ghostunnel 27 + mv $sourceRoot/certstore $sourceRoot/vendor/ghostunnel/ 28 + ''; 20 29 21 30 meta = with lib; { 22 31 description = "A simple TLS proxy with mutual authentication support for securing non-TLS backend applications"; ··· 26 35 }; 27 36 28 37 passthru.tests.nixos = nixosTests.ghostunnel; 38 + passthru.tests.podman = nixosTests.podman-tls-ghostunnel; 29 39 }
+11 -10
pkgs/tools/text/rst2html5/default.nix
··· 1 1 { lib, python3Packages }: 2 2 3 - let 3 + python3Packages.buildPythonPackage rec { 4 4 pname = "rst2html5"; 5 - version = "1.10.6"; 6 - format = "wheel"; 7 - in python3Packages.buildPythonPackage { 8 - inherit pname version format; 5 + version = "2.0"; 9 6 10 7 src = python3Packages.fetchPypi { 11 - inherit pname version format; 12 - sha256 = "sha256-jmToDFLQODqgTycBp2J8LyoJ1Zxho9w1VdhFMzvDFkg="; 8 + inherit pname version; 9 + hash = "sha256-Ejjja/fm6wXTf9YtjCYZsNDB8X5oAtyPoUIsYFDuZfc="; 13 10 }; 14 11 15 - propagatedBuildInputs = with python3Packages; 16 - [ docutils genshi pygments beautifulsoup4 ]; 12 + buildInputs = with python3Packages; [ 13 + beautifulsoup4 14 + docutils 15 + genshi 16 + pygments 17 + ]; 17 18 18 19 meta = with lib;{ 19 - homepage = "https://pypi.org/project/rst2html5/"; 20 + homepage = "https://rst2html5.readthedocs.io/en/latest/"; 20 21 description = "Converts ReSTructuredText to (X)HTML5"; 21 22 license = licenses.mit; 22 23 maintainers = with maintainers; [ AndersonTorres ];
+3 -3
pkgs/top-level/all-packages.nix
··· 16295 16295 libcacard = callPackage ../development/libraries/libcacard { }; 16296 16296 16297 16297 libcanberra = callPackage ../development/libraries/libcanberra { 16298 - inherit (darwin.apple_sdk.frameworks) CoreServices; 16298 + inherit (darwin.apple_sdk.frameworks) Carbon CoreServices; 16299 16299 }; 16300 16300 libcanberra-gtk2 = pkgs.libcanberra.override { 16301 - gtk = gtk2-x11; 16301 + gtkSupport = "gtk2"; 16302 16302 }; 16303 16303 libcanberra-gtk3 = pkgs.libcanberra.override { 16304 - gtk = gtk3-x11; 16304 + gtkSupport = "gtk3"; 16305 16305 }; 16306 16306 16307 16307 libcanberra_kde = if (config.kde_runtime.libcanberraWithoutGTK or true)