diff --git a/nixos/doc/manual/from_md/release-notes/rl-2205.section.xml b/nixos/doc/manual/from_md/release-notes/rl-2205.section.xml index 8897febc2023..f0da210f6580 100644 --- a/nixos/doc/manual/from_md/release-notes/rl-2205.section.xml +++ b/nixos/doc/manual/from_md/release-notes/rl-2205.section.xml @@ -36,6 +36,13 @@ services.filebeat. + + + PowerDNS-Admin, + a web interface for the PowerDNS server. Available at + services.powerdns-admin. + +
diff --git a/nixos/doc/manual/release-notes/rl-2205.section.md b/nixos/doc/manual/release-notes/rl-2205.section.md index 211c64c02899..2c008a67dd72 100644 --- a/nixos/doc/manual/release-notes/rl-2205.section.md +++ b/nixos/doc/manual/release-notes/rl-2205.section.md @@ -12,6 +12,8 @@ In addition to numerous new and upgraded packages, this release has the followin - [filebeat](https://www.elastic.co/guide/en/beats/filebeat/current/filebeat-overview.html), a lightweight shipper for forwarding and centralizing log data. Available as [services.filebeat](#opt-services.filebeat.enable). +- [PowerDNS-Admin](https://github.com/ngoduykhanh/PowerDNS-Admin), a web interface for the PowerDNS server. Available at [services.powerdns-admin](options.html#opt-services.powerdns-admin.enable). + ## Backward Incompatibilities {#sec-release-22.05-incompatibilities} - `pkgs.ghc` now refers to `pkgs.targetPackages.haskellPackages.ghc`. diff --git a/nixos/modules/module-list.nix b/nixos/modules/module-list.nix index cb2dd530de15..30ad0db459ef 100644 --- a/nixos/modules/module-list.nix +++ b/nixos/modules/module-list.nix @@ -1026,6 +1026,7 @@ ./services/web-apps/plantuml-server.nix ./services/web-apps/plausible.nix ./services/web-apps/pgpkeyserver-lite.nix + ./services/web-apps/powerdns-admin.nix ./services/web-apps/matomo.nix ./services/web-apps/moinmoin.nix ./services/web-apps/openwebrx.nix diff --git a/nixos/modules/services/continuous-integration/github-runner.nix b/nixos/modules/services/continuous-integration/github-runner.nix index 59370f43fe75..afd85c972b56 100644 --- a/nixos/modules/services/continuous-integration/github-runner.nix +++ b/nixos/modules/services/continuous-integration/github-runner.nix @@ -10,6 +10,8 @@ let stateDir = "%S/${systemdDir}"; # %L: Log directory root (usually /var/log); see systemd.unit(5) logsDir = "%L/${systemdDir}"; + # Name of file stored in service state directory + currentConfigTokenFilename = ".current-token"; in { options.services.github-runner = { @@ -144,13 +146,11 @@ in ExecStart = "${cfg.package}/bin/runsvc.sh"; # Does the following, sequentially: - # - Copy the current and the previous `tokenFile` to the $RUNTIME_DIRECTORY - # and make it accessible to the service user to allow for a content - # comparison. - # - If the module configuration or the token has changed, clear the state directory. - # - Configure the runner. - # - Copy the configured `tokenFile` to the $STATE_DIRECTORY and make it - # inaccessible to the service user. + # - If the module configuration or the token has changed, purge the state directory, + # and create the current and the new token file with the contents of the configured + # token. While both files have the same content, only the later is accessible by + # the service user. + # - Configure the runner using the new token file. When finished, delete it. # - Set up the directory structure by creating the necessary symlinks. ExecStartPre = let @@ -173,37 +173,20 @@ in currentConfigPath = "$STATE_DIRECTORY/.nixos-current-config.json"; runnerRegistrationConfig = getAttrs [ "name" "tokenFile" "url" "runnerGroup" "extraLabels" ] cfg; newConfigPath = builtins.toFile "${svcName}-config.json" (builtins.toJSON runnerRegistrationConfig); - currentConfigTokenFilename = ".current-token"; newConfigTokenFilename = ".new-token"; runnerCredFiles = [ ".credentials" ".credentials_rsaparams" ".runner" ]; - ownConfigTokens = writeScript "own-config-tokens" '' - # Copy current and new token file to runtime dir and make it accessible to the service user - cp ${escapeShellArg cfg.tokenFile} "$RUNTIME_DIRECTORY/${newConfigTokenFilename}" - chmod 600 "$RUNTIME_DIRECTORY/${newConfigTokenFilename}" - chown "$USER" "$RUNTIME_DIRECTORY/${newConfigTokenFilename}" - - if [[ -e "$STATE_DIRECTORY/${currentConfigTokenFilename}" ]]; then - cp "$STATE_DIRECTORY/${currentConfigTokenFilename}" "$RUNTIME_DIRECTORY/${currentConfigTokenFilename}" - chmod 600 "$RUNTIME_DIRECTORY/${currentConfigTokenFilename}" - chown "$USER" "$RUNTIME_DIRECTORY/${currentConfigTokenFilename}" - fi - ''; - disownConfigTokens = writeScript "disown-config-tokens" '' - # Make the token inaccessible to the runner service user - chmod 600 "$STATE_DIRECTORY/${currentConfigTokenFilename}" - chown root:root "$STATE_DIRECTORY/${currentConfigTokenFilename}" - ''; unconfigureRunner = writeScript "unconfigure" '' differs= # Set `differs = 1` if current and new runner config differ or if `currentConfigPath` does not exist ${pkgs.diffutils}/bin/diff -q '${newConfigPath}' "${currentConfigPath}" >/dev/null 2>&1 || differs=1 # Also trigger a registration if the token content changed ${pkgs.diffutils}/bin/diff -q \ - "$RUNTIME_DIRECTORY"/{${currentConfigTokenFilename},${newConfigTokenFilename}} \ + "$STATE_DIRECTORY"/${currentConfigTokenFilename} \ + ${escapeShellArg cfg.tokenFile} \ >/dev/null 2>&1 || differs=1 if [[ -n "$differs" ]]; then @@ -211,13 +194,18 @@ in echo "The old runner will still appear in the GitHub Actions UI." \ "You have to remove it manually." find "$STATE_DIRECTORY/" -mindepth 1 -delete + + # Copy the configured token file to the state dir and allow the service user to read the file + install --mode=666 ${escapeShellArg cfg.tokenFile} "$STATE_DIRECTORY/${newConfigTokenFilename}" + # Also copy current file to allow for a diff on the next start + install --mode=600 ${escapeShellArg cfg.tokenFile} "$STATE_DIRECTORY/${currentConfigTokenFilename}" fi ''; configureRunner = writeScript "configure" '' - empty=$(ls -A "$STATE_DIRECTORY") - if [[ -z "$empty" ]]; then + if [[ -e "$STATE_DIRECTORY/${newConfigTokenFilename}" ]]; then echo "Configuring GitHub Actions Runner" - token=$(< "$RUNTIME_DIRECTORY"/${newConfigTokenFilename}) + + token=$(< "$STATE_DIRECTORY"/${newConfigTokenFilename}) RUNNER_ROOT="$STATE_DIRECTORY" ${cfg.package}/bin/config.sh \ --unattended \ --work "$RUNTIME_DIRECTORY" \ @@ -234,8 +222,7 @@ in rm -rf "$STATE_DIRECTORY/_diag/" # Cleanup token from config - rm -f "$RUNTIME_DIRECTORY"/${currentConfigTokenFilename} - mv "$RUNTIME_DIRECTORY"/${newConfigTokenFilename} "$STATE_DIRECTORY/${currentConfigTokenFilename}" + rm "$STATE_DIRECTORY/${newConfigTokenFilename}" # Symlink to new config ln -s '${newConfigPath}' "${currentConfigPath}" @@ -250,10 +237,8 @@ in ''; in map (x: "${x} ${escapeShellArgs [ stateDir runtimeDir logsDir ]}") [ - "+${ownConfigTokens}" # runs as root - unconfigureRunner + "+${unconfigureRunner}" # runs as root configureRunner - "+${disownConfigTokens}" # runs as root setupRuntimeDir ]; @@ -266,6 +251,13 @@ in StateDirectoryMode = "0700"; WorkingDirectory = runtimeDir; + InaccessiblePaths = [ + # Token file path given in the configuration + cfg.tokenFile + # Token file in the state directory + "${stateDir}/${currentConfigTokenFilename}" + ]; + # By default, use a dynamically allocated user DynamicUser = true; diff --git a/nixos/modules/services/web-apps/powerdns-admin.nix b/nixos/modules/services/web-apps/powerdns-admin.nix new file mode 100644 index 000000000000..ce99b606c318 --- /dev/null +++ b/nixos/modules/services/web-apps/powerdns-admin.nix @@ -0,0 +1,149 @@ +{ config, lib, pkgs, ... }: + +with lib; + +let + cfg = config.services.powerdns-admin; + + configText = '' + ${cfg.config} + '' + + optionalString (cfg.secretKeyFile != null) '' + with open('${cfg.secretKeyFile}') as file: + SECRET_KEY = file.read() + '' + + optionalString (cfg.saltFile != null) '' + with open('${cfg.saltFile}') as file: + SALT = file.read() + ''; +in +{ + options.services.powerdns-admin = { + enable = mkEnableOption "the PowerDNS web interface"; + + extraArgs = mkOption { + type = types.listOf types.str; + default = [ ]; + example = literalExpression '' + [ "-b" "127.0.0.1:8000" ] + ''; + description = '' + Extra arguments passed to powerdns-admin. + ''; + }; + + config = mkOption { + type = types.str; + default = ""; + example = '' + BIND_ADDRESS = '127.0.0.1' + PORT = 8000 + SQLALCHEMY_DATABASE_URI = 'postgresql://powerdnsadmin@/powerdnsadmin?host=/run/postgresql' + ''; + description = '' + Configuration python file. + See the example configuration + for options. + ''; + }; + + secretKeyFile = mkOption { + type = types.nullOr types.path; + example = "/etc/powerdns-admin/secret"; + description = '' + The secret used to create cookies. + This needs to be set, otherwise the default is used and everyone can forge valid login cookies. + Set this to null to ignore this setting and configure it through another way. + ''; + }; + + saltFile = mkOption { + type = types.nullOr types.path; + example = "/etc/powerdns-admin/salt"; + description = '' + The salt used for serialization. + This should be set, otherwise the default is used. + Set this to null to ignore this setting and configure it through another way. + ''; + }; + }; + + config = mkIf cfg.enable { + systemd.services.powerdns-admin = { + description = "PowerDNS web interface"; + wantedBy = [ "multi-user.target" ]; + after = [ "networking.target" ]; + + environment.FLASK_CONF = builtins.toFile "powerdns-admin-config.py" configText; + environment.PYTHONPATH = pkgs.powerdns-admin.pythonPath; + serviceConfig = { + ExecStart = "${pkgs.powerdns-admin}/bin/powerdns-admin --pid /run/powerdns-admin/pid ${escapeShellArgs cfg.extraArgs}"; + ExecStartPre = "${pkgs.coreutils}/bin/env FLASK_APP=${pkgs.powerdns-admin}/share/powerdnsadmin/__init__.py ${pkgs.python3Packages.flask}/bin/flask db upgrade -d ${pkgs.powerdns-admin}/share/migrations"; + ExecReload = "${pkgs.coreutils}/bin/kill -HUP $MAINPID"; + ExecStop = "${pkgs.coreutils}/bin/kill -TERM $MAINPID"; + PIDFile = "/run/powerdns-admin/pid"; + RuntimeDirectory = "powerdns-admin"; + User = "powerdnsadmin"; + Group = "powerdnsadmin"; + + AmbientCapabilities = "CAP_NET_BIND_SERVICE"; + BindReadOnlyPaths = [ + "/nix/store" + "-/etc/resolv.conf" + "-/etc/nsswitch.conf" + "-/etc/hosts" + "-/etc/localtime" + ] + ++ (optional (cfg.secretKeyFile != null) cfg.secretKeyFile) + ++ (optional (cfg.saltFile != null) cfg.saltFile); + CapabilityBoundingSet = "CAP_NET_BIND_SERVICE"; + # ProtectClock= adds DeviceAllow=char-rtc r + DeviceAllow = ""; + # Implies ProtectSystem=strict, which re-mounts all paths + #DynamicUser = true; + LockPersonality = true; + MemoryDenyWriteExecute = true; + NoNewPrivileges = true; + PrivateDevices = true; + PrivateMounts = true; + # Needs to start a server + #PrivateNetwork = true; + PrivateTmp = true; + PrivateUsers = true; + ProcSubset = "pid"; + ProtectClock = true; + ProtectHome = true; + ProtectHostname = true; + # Would re-mount paths ignored by temporary root + #ProtectSystem = "strict"; + ProtectControlGroups = true; + ProtectKernelLogs = true; + ProtectKernelModules = true; + ProtectKernelTunables = true; + ProtectProc = "invisible"; + RestrictAddressFamilies = [ "AF_INET" "AF_INET6" "AF_UNIX" ]; + RestrictNamespaces = true; + RestrictRealtime = true; + RestrictSUIDSGID = true; + SystemCallArchitectures = "native"; + # gunicorn needs setuid + SystemCallFilter = [ + "@system-service" + "~@privileged @resources @keyring" + # These got removed by the line above but are needed + "@setuid @chown" + ]; + TemporaryFileSystem = "/:ro"; + # Does not work well with the temporary root + #UMask = "0066"; + }; + }; + + users.groups.powerdnsadmin = { }; + users.users.powerdnsadmin = { + description = "PowerDNS web interface user"; + isSystemUser = true; + group = "powerdnsadmin"; + }; + }; +} diff --git a/nixos/tests/all-tests.nix b/nixos/tests/all-tests.nix index f86cc2544dab..5c8342f0bb7b 100644 --- a/nixos/tests/all-tests.nix +++ b/nixos/tests/all-tests.nix @@ -381,6 +381,7 @@ in postgresql = handleTest ./postgresql.nix {}; postgresql-wal-receiver = handleTest ./postgresql-wal-receiver.nix {}; powerdns = handleTest ./powerdns.nix {}; + powerdns-admin = handleTest ./powerdns-admin.nix {}; power-profiles-daemon = handleTest ./power-profiles-daemon.nix {}; pppd = handleTest ./pppd.nix {}; predictable-interface-names = handleTest ./predictable-interface-names.nix {}; diff --git a/nixos/tests/powerdns-admin.nix b/nixos/tests/powerdns-admin.nix new file mode 100644 index 000000000000..4d763c9c6f6e --- /dev/null +++ b/nixos/tests/powerdns-admin.nix @@ -0,0 +1,117 @@ +# Test powerdns-admin +{ system ? builtins.currentSystem +, config ? { } +, pkgs ? import ../.. { inherit system config; } +}: + +with import ../lib/testing-python.nix { inherit system pkgs; }; +with pkgs.lib; +let + defaultConfig = '' + BIND_ADDRESS = '127.0.0.1' + PORT = 8000 + ''; + + makeAppTest = name: configs: makeTest { + name = "powerdns-admin-${name}"; + meta = with pkgs.lib.maintainers; { + maintainers = [ Flakebi zhaofengli ]; + }; + + nodes.server = { pkgs, config, ... }: mkMerge ([ + { + services.powerdns-admin = { + enable = true; + secretKeyFile = "/etc/powerdns-admin/secret"; + saltFile = "/etc/powerdns-admin/salt"; + }; + # It's insecure to have secrets in the world-readable nix store, but this is just a test + environment.etc."powerdns-admin/secret".text = "secret key"; + environment.etc."powerdns-admin/salt".text = "salt"; + environment.systemPackages = [ + (pkgs.writeShellScriptBin "run-test" config.system.build.testScript) + ]; + } + ] ++ configs); + + testScript = '' + server.wait_for_unit("powerdns-admin.service") + server.wait_until_succeeds("run-test", timeout=10) + ''; + }; + + matrix = { + backend = { + mysql = { + services.powerdns-admin = { + config = '' + ${defaultConfig} + SQLALCHEMY_DATABASE_URI = 'mysql://powerdnsadmin@/powerdnsadmin?unix_socket=/run/mysqld/mysqld.sock' + ''; + }; + systemd.services.powerdns-admin = { + after = [ "mysql.service" ]; + serviceConfig.BindPaths = "/run/mysqld"; + }; + + services.mysql = { + enable = true; + package = pkgs.mariadb; + ensureDatabases = [ "powerdnsadmin" ]; + ensureUsers = [ + { + name = "powerdnsadmin"; + ensurePermissions = { + "powerdnsadmin.*" = "ALL PRIVILEGES"; + }; + } + ]; + }; + }; + postgresql = { + services.powerdns-admin = { + config = '' + ${defaultConfig} + SQLALCHEMY_DATABASE_URI = 'postgresql://powerdnsadmin@/powerdnsadmin?host=/run/postgresql' + ''; + }; + systemd.services.powerdns-admin = { + after = [ "postgresql.service" ]; + serviceConfig.BindPaths = "/run/postgresql"; + }; + + services.postgresql = { + enable = true; + ensureDatabases = [ "powerdnsadmin" ]; + ensureUsers = [ + { + name = "powerdnsadmin"; + ensurePermissions = { + "DATABASE powerdnsadmin" = "ALL PRIVILEGES"; + }; + } + ]; + }; + }; + }; + listen = { + tcp = { + services.powerdns-admin.extraArgs = [ "-b" "127.0.0.1:8000" ]; + system.build.testScript = '' + curl -sSf http://127.0.0.1:8000/ + ''; + }; + unix = { + services.powerdns-admin.extraArgs = [ "-b" "unix:/run/powerdns-admin/http.sock" ]; + system.build.testScript = '' + curl -sSf --unix-socket /run/powerdns-admin/http.sock http://somehost/ + ''; + }; + }; + }; +in +with matrix; { + postgresql = makeAppTest "postgresql" [ backend.postgresql listen.tcp ]; + mysql = makeAppTest "mysql" [ backend.mysql listen.tcp ]; + unix-listener = makeAppTest "unix-listener" [ backend.postgresql listen.unix ]; +} diff --git a/pkgs/applications/audio/bitwig-studio/bitwig-studio4.nix b/pkgs/applications/audio/bitwig-studio/bitwig-studio4.nix index a071b36abf0a..003608ea6020 100644 --- a/pkgs/applications/audio/bitwig-studio/bitwig-studio4.nix +++ b/pkgs/applications/audio/bitwig-studio/bitwig-studio4.nix @@ -6,11 +6,11 @@ stdenv.mkDerivation rec { pname = "bitwig-studio"; - version = "4.1.1"; + version = "4.1.2"; src = fetchurl { url = "https://downloads.bitwig.com/stable/${version}/${pname}-${version}.deb"; - sha256 = "sha256-bhd3Ij4y1r5pHrpQkbHuMTNl8Z3w0HsbCkr1C0CVFvQ="; + sha256 = "sha256-fXrpTOA6Uh4DgGU+3A7SV23Sb+Z2Ud4rCPmMk5I1MnA="; }; nativeBuildInputs = [ dpkg makeWrapper wrapGAppsHook ]; diff --git a/pkgs/applications/blockchains/polkadot/default.nix b/pkgs/applications/blockchains/polkadot/default.nix index 9b88861d0ea6..eddc2cd8a21e 100644 --- a/pkgs/applications/blockchains/polkadot/default.nix +++ b/pkgs/applications/blockchains/polkadot/default.nix @@ -7,16 +7,16 @@ }: rustPlatform.buildRustPackage rec { pname = "polkadot"; - version = "0.9.12-1"; + version = "0.9.14"; src = fetchFromGitHub { owner = "paritytech"; repo = "polkadot"; rev = "v${version}"; - sha256 = "sha256-+HATcxdIDQGDIQBF08yy/eKBcS10Hp7C0nZFVsYFNwQ="; + sha256 = "sha256-SCi+hpdMUTX1NLF1RUce0d/2G19sVfJ5IsmM1xcAUKo="; }; - cargoSha256 = "sha256-1qg4ZnSORRVI7eCVMrR7lY3tzo7KJt+dC2RBXqbKrig="; + cargoSha256 = "sha256-ZcIsbMI96qX0LLJXmkCRS9g40ccZOH/upPbAA7XEZIw="; nativeBuildInputs = [ clang ]; diff --git a/pkgs/applications/graphics/hdr-plus/default.nix b/pkgs/applications/graphics/hdr-plus/default.nix index 0d2f19660062..55411e92f7f9 100644 --- a/pkgs/applications/graphics/hdr-plus/default.nix +++ b/pkgs/applications/graphics/hdr-plus/default.nix @@ -1,31 +1,19 @@ -{ lib, stdenv, fetchFromGitHub, fetchpatch +{ lib, stdenv, fetchFromGitHub , cmake, halide , libpng, libjpeg, libtiff, libraw }: stdenv.mkDerivation rec { - pname = "hdr-plus-unstable"; - version = "2020-10-29"; + pname = "hdr-plus"; + version = "unstable-2021-12-10"; src = fetchFromGitHub { owner = "timothybrooks"; repo = "hdr-plus"; - rev = "132bd73ccd4eaef9830124605c93f06a98607cfa"; - sha256 = "1n49ggrppf336p7n510kapzh376791bysxj3f33m3bdzksq360ps"; + rev = "0ab70564493bdbcd5aca899b5885505d0c824435"; + sha256 = "sha256-QV8bGxkwFpbNzJG4kmrWwFQxUo2XzLPnoI1e32UmM6g="; }; - patches = [ - # PR #70, fixes incompatibility with Halide 10.0.0 - (fetchpatch { - url = "https://github.com/timothybrooks/hdr-plus/pull/70/commits/077e1a476279539c72e615210762dca27984c57b.patch"; - sha256 = "1sg2l1bqs2smpfpy4flwg86fzhcc4yf7zx998v1bfhim43yyrx59"; - }) - ]; - - postPatch = '' - sed -i '2a #include ' src/InputSource.h - ''; - nativeBuildInputs = [ cmake ]; buildInputs = [ halide libpng libjpeg libtiff libraw ]; diff --git a/pkgs/applications/misc/xastir/default.nix b/pkgs/applications/misc/xastir/default.nix index 63240e0402fe..294beb06c5bf 100644 --- a/pkgs/applications/misc/xastir/default.nix +++ b/pkgs/applications/misc/xastir/default.nix @@ -1,4 +1,4 @@ -{ lib, stdenv, fetchFromGitHub, autoreconfHook +{ lib, stdenv, fetchFromGitHub, autoreconfHook, pkg-config , curl, db, libgeotiff , libXpm, libXt, motif, pcre , perl, proj, rastermagick, shapelib @@ -6,17 +6,21 @@ stdenv.mkDerivation rec { pname = "xastir"; - version = "2.1.6"; + version = "2.1.8"; src = fetchFromGitHub { owner = pname; repo = pname; rev = "Release-${version}"; - sha256 = "0yrvwy6hlc73gzwrsrczflyymyz0k33hj991ajrd1vijq14m3n91"; + hash = "sha256-hRe0KO1lWOv3hNNDMS70t+X1rxuhNlNKykmo4LEU+U0="; }; - buildInputs = [ + nativeBuildInputs = [ autoreconfHook + pkg-config + ]; + + buildInputs = [ curl db libgeotiff libXpm libXt motif pcre perl proj rastermagick shapelib diff --git a/pkgs/applications/networking/browsers/firefox/packages.nix b/pkgs/applications/networking/browsers/firefox/packages.nix index 2d4d6d4a6bc2..9bda1485d077 100644 --- a/pkgs/applications/networking/browsers/firefox/packages.nix +++ b/pkgs/applications/networking/browsers/firefox/packages.nix @@ -7,10 +7,10 @@ in rec { firefox = common rec { pname = "firefox"; - version = "95.0"; + version = "95.0.1"; src = fetchurl { url = "mirror://mozilla/firefox/releases/${version}/source/firefox-${version}.source.tar.xz"; - sha512 = "350672a2cd99195c67dafc0e71c6eaf1e23e85a5fe92775697119a054f17c34a736035e23d7f2bb404b544f0f144efef3843cfc293596a6e61d1ea36efc3a724"; + sha512 = "54887c3adbf7202b835ae1ac928c3c95516ef11f9894456561dad500a1a61623f926b37f6e02fef0898e7ee0fd9147a71e5432634e6e0a2c2fecd08509799c37"; }; meta = { diff --git a/pkgs/applications/networking/cluster/pgo-client/default.nix b/pkgs/applications/networking/cluster/pgo-client/default.nix index 87bde3c2eddb..33dbb47d11c2 100644 --- a/pkgs/applications/networking/cluster/pgo-client/default.nix +++ b/pkgs/applications/networking/cluster/pgo-client/default.nix @@ -2,16 +2,16 @@ buildGoModule rec { pname = "pgo-client"; - version = "4.7.3"; + version = "4.7.4"; src = fetchFromGitHub { owner = "CrunchyData"; repo = "postgres-operator"; rev = "v${version}"; - sha256 = "sha256-nIflJLHhzEMq4RZUHjZYvBW+cxsi/gc9ZnMoGCesbrc="; + sha256 = "sha256-8L3eFMATCGIM6xxUM7mi/D3njHMFk7cgPLJotilAS5k="; }; - vendorSha256 = "sha256-m8b6Lh6it67A6cppdBDX4X0u7Kde4GQz9wln/TrHVwI="; + vendorSha256 = "sha256-4Vz7Lioj6iLU7dbz/B2BSAgfaCl2MyC8MM9yiyWLi2o="; subPackages = [ "cmd/pgo" ]; diff --git a/pkgs/applications/networking/mailreaders/thunderbird-bin/default.nix b/pkgs/applications/networking/mailreaders/thunderbird-bin/default.nix index 6d9f62e75ab3..c7d1222ef86d 100644 --- a/pkgs/applications/networking/mailreaders/thunderbird-bin/default.nix +++ b/pkgs/applications/networking/mailreaders/thunderbird-bin/default.nix @@ -183,11 +183,9 @@ stdenv.mkDerivation { meta = with lib; { description = "Mozilla Thunderbird, a full-featured email client (binary package)"; homepage = "http://www.mozilla.org/thunderbird/"; - license = { - free = false; - url = "http://www.mozilla.org/en-US/foundation/trademarks/policy/"; - }; + license = licenses.mpl20; maintainers = with lib.maintainers; [ ]; platforms = platforms.linux; + hydraPlatforms = [ ]; }; } diff --git a/pkgs/applications/networking/powerdns-admin/default.nix b/pkgs/applications/networking/powerdns-admin/default.nix index 9dba30e3d884..8cc2ec83cd50 100644 --- a/pkgs/applications/networking/powerdns-admin/default.nix +++ b/pkgs/applications/networking/powerdns-admin/default.nix @@ -1,4 +1,4 @@ -{ lib, stdenv, fetchFromGitHub, mkYarnPackage, writeText, python3 }: +{ lib, stdenv, fetchFromGitHub, mkYarnPackage, nixosTests, writeText, python3 }: let version = "0.2.3"; @@ -23,8 +23,8 @@ let pythonDeps = with python.pkgs; [ flask flask_assets flask_login flask_sqlalchemy flask_migrate flask-seasurf flask_mail flask-sslify - mysqlclient sqlalchemy - configobj bcrypt requests ldap pyotp qrcode dnspython + mysqlclient psycopg2 sqlalchemy + cffi configobj cryptography bcrypt requests ldap pyotp qrcode dnspython gunicorn python3-saml pyopenssl pytz cssmin jsmin authlib bravado-core lima pytimeparse pyyaml ]; @@ -91,6 +91,7 @@ in stdenv.mkDerivation rec { postPatch = '' rm -r powerdnsadmin/static powerdnsadmin/assets.py + sed -i "s/id:/'id':/" migrations/versions/787bdba9e147_init_db.py ''; installPhase = '' @@ -100,7 +101,7 @@ in stdenv.mkDerivation rec { wrapPythonPrograms mkdir -p $out/share $out/bin - cp -r powerdnsadmin $out/share/powerdnsadmin + cp -r migrations powerdnsadmin $out/share/ ln -s ${assets} $out/share/powerdnsadmin/static ln -s ${assetsPy} $out/share/powerdnsadmin/assets.py @@ -114,6 +115,12 @@ in stdenv.mkDerivation rec { runHook postInstall ''; + passthru = { + # PYTHONPATH of all dependencies used by the package + pythonPath = python3.pkgs.makePythonPath pythonDeps; + tests = nixosTests.powerdns-admin; + }; + meta = with lib; { description = "A PowerDNS web interface with advanced features"; homepage = "https://github.com/ngoduykhanh/PowerDNS-Admin"; diff --git a/pkgs/applications/networking/shellhub-agent/default.nix b/pkgs/applications/networking/shellhub-agent/default.nix index ae2dee21fb26..fba8c4b07faa 100644 --- a/pkgs/applications/networking/shellhub-agent/default.nix +++ b/pkgs/applications/networking/shellhub-agent/default.nix @@ -9,18 +9,18 @@ buildGoModule rec { pname = "shellhub-agent"; - version = "0.7.2"; + version = "0.8.1"; src = fetchFromGitHub { owner = "shellhub-io"; repo = "shellhub"; rev = "v${version}"; - sha256 = "02ka7acynkwkml2pavlv4j5vkm6x5aq5sfxgydv26qzs39f1wdgc"; + sha256 = "LafREMle3v/XLLsfS+sNSE4Q9AwX4v8Mg9/9RngbN40="; }; modRoot = "./agent"; - vendorSha256 = "18z3vwcwkyj6hcvl35qmj034237h9l18dvcbx1hxry7qdwv807c9"; + vendorSha256 = "sha256-3bHDDjfpXgmS6lpIOkpouTKTjHT1gMbUWnuskaOptUM="; ldflags = [ "-s" "-w" "-X main.AgentVersion=v${version}" ]; diff --git a/pkgs/build-support/vm/default.nix b/pkgs/build-support/vm/default.nix index 20df74d3666d..84222eca98bf 100644 --- a/pkgs/build-support/vm/default.nix +++ b/pkgs/build-support/vm/default.nix @@ -114,7 +114,7 @@ rec { echo "mounting Nix store..." mkdir -p /fs${storeDir} - mount -t 9p store /fs${storeDir} -o trans=virtio,version=9p2000.L,cache=loose + mount -t 9p store /fs${storeDir} -o trans=virtio,version=9p2000.L,cache=loose,msize=131072 mkdir -p /fs/tmp /fs/run /fs/var mount -t tmpfs -o "mode=1777" none /fs/tmp @@ -123,7 +123,7 @@ rec { echo "mounting host's temporary directory..." mkdir -p /fs/tmp/xchg - mount -t 9p xchg /fs/tmp/xchg -o trans=virtio,version=9p2000.L + mount -t 9p xchg /fs/tmp/xchg -o trans=virtio,version=9p2000.L,msize=131072 mkdir -p /fs/proc mount -t proc none /fs/proc diff --git a/pkgs/development/compilers/nextpnr/default.nix b/pkgs/development/compilers/nextpnr/default.nix index ed64d9e6a66d..16f0a8348d1c 100644 --- a/pkgs/development/compilers/nextpnr/default.nix +++ b/pkgs/development/compilers/nextpnr/default.nix @@ -14,15 +14,15 @@ let in stdenv.mkDerivation rec { pname = "nextpnr"; - version = "2021.11.24"; # tagged as 0.1, but we'll keep tracking HEAD + version = "2021.15.21"; srcs = [ (fetchFromGitHub { - owner = "YosysHQ"; - repo = "nextpnr"; - rev = "fd2d4a8f999947ece42f791e19ddc4c2d8b823f2"; - sha256 = "sha256-bGh3svJeVRJO0rTnSYoTndeQrTENx6j9t+GCGX4RX4k="; - name = "nextpnr"; + owner = "YosysHQ"; + repo = "nextpnr"; + rev = "d04cfd5f0f6da184f5b8a03f0ce18fbd1d98eca3"; + hash = "sha256-gm/+kwIZ/m10+KuCJoK45F56nKZD3tM0myHwbFKIKAs="; + name = "nextpnr"; }) (fetchFromGitHub { owner = "YosysHQ"; diff --git a/pkgs/development/compilers/yosys/default.nix b/pkgs/development/compilers/yosys/default.nix index 4101f06a3480..9c3d9179f7ba 100644 --- a/pkgs/development/compilers/yosys/default.nix +++ b/pkgs/development/compilers/yosys/default.nix @@ -34,13 +34,13 @@ stdenv.mkDerivation rec { pname = "yosys"; - version = "0.11+52"; + version = "0.12+36"; src = fetchFromGitHub { owner = "YosysHQ"; repo = "yosys"; - rev = "2be110cb0ba645f95f62ee01b6a6fa46a85d5b26"; - hash = "sha256-A1QKu6SbtpJJPF8/LA5SMUP3/+n5giM6rOYdc6vkl90="; + rev = "60c3ea367c942459a95e610ed98f277ce46c0142"; + hash = "sha256-NcfhNUmb3IDG08XgS+NGbRLI8sn4aQkOA7RF7wucDug="; }; enableParallelBuilding = true; diff --git a/pkgs/development/coq-modules/paco/default.nix b/pkgs/development/coq-modules/paco/default.nix index 0a8bb78eeb70..d01bfbed721b 100644 --- a/pkgs/development/coq-modules/paco/default.nix +++ b/pkgs/development/coq-modules/paco/default.nix @@ -5,9 +5,10 @@ with lib; mkCoqDerivation { owner = "snu-sf"; inherit version; defaultVersion = with versions; switch coq.coq-version [ - { case = range "8.6" "8.13"; out = "4.0.2"; } + { case = range "8.6" "8.13"; out = "4.1.1"; } { case = isEq "8.5"; out = "1.2.8"; } ] null; + release."4.1.1".sha256 = "1qap8cyv649lr1s11r7h5jzdjd4hsna8kph15qy5fw24h5nx6byy"; release."4.0.2".sha256 = "1q96bsxclqx84xn5vkid501jkwlc1p6fhb8szrlrp82zglj58b0b"; release."1.2.8".sha256 = "05fskx5x1qgaf9qv626m38y5izichzzqc7g2rglzrkygbskrrwsb"; releaseRev = v: "v${v}"; diff --git a/pkgs/development/embedded/fpga/trellis/default.nix b/pkgs/development/embedded/fpga/trellis/default.nix index 2289b6fb6398..32a4bcdac073 100644 --- a/pkgs/development/embedded/fpga/trellis/default.nix +++ b/pkgs/development/embedded/fpga/trellis/default.nix @@ -1,25 +1,28 @@ { lib, stdenv, fetchFromGitHub, python3, boost, cmake }: let - rev = "03e0070f263fbe31c247de61d259544722786210"; + rev = "2f06397673bbca3da11928d538b8ab7d01c944c6"; # git describe --tags - realVersion = "1.0-532-g${builtins.substring 0 7 rev}"; + realVersion = "1.0-534-g${builtins.substring 0 7 rev}"; in stdenv.mkDerivation rec { pname = "trellis"; - version = "2021-09-01"; + version = "2021-12-14"; srcs = [ (fetchFromGitHub { owner = "YosysHQ"; repo = "prjtrellis"; inherit rev; - sha256 = "joQMsjVj8d3M3IaqOkfVQ1I5qPDM8HHJiye+Ak8f3dg="; + hash = "sha256-m5CalAIbzY2bhOvpBbPBeLZeDp+itk1HlRsSmtiddaA="; name = "trellis"; }) (fetchFromGitHub { owner = "YosysHQ"; repo = "prjtrellis-db"; + # note: the upstream submodule points to revision 0ee729d20eaf, + # but that's just the tip of the branch that was merged into master. + # fdf4bf275a is the merge commit itself rev = "fdf4bf275a7402654bc643db537173e2fbc86103"; sha256 = "eDq2wU2pnfK9bOkEVZ07NQPv02Dc6iB+p5GTtVBiyQA="; name = "trellis-database"; diff --git a/pkgs/development/interpreters/alda/default.nix b/pkgs/development/interpreters/alda/default.nix index 96d4207dbe8f..ec46a5e3923d 100644 --- a/pkgs/development/interpreters/alda/default.nix +++ b/pkgs/development/interpreters/alda/default.nix @@ -1,20 +1,34 @@ -{ lib, stdenv, fetchurl, jre }: +{ lib, stdenv, fetchurl, makeWrapper, jre }: stdenv.mkDerivation rec { pname = "alda"; - version = "1.5.0"; + version = "2.0.6"; - src = fetchurl { - url = "https://github.com/alda-lang/alda/releases/download/${version}/alda"; - sha256 = "sha256-OHbOsgYN87ThU7EgjCgxADnOv32qIi+7XwDwcW0dmV0="; + src_alda = fetchurl { + url = "https://alda-releases.nyc3.digitaloceanspaces.com/${version}/client/linux-amd64/alda"; + sha256 = "1078hywl3gim5wfgxb0xwbk1dn80ls3i7y33n76qsdd4b0x0sn7i"; + }; + + src_player = fetchurl { + url = "https://alda-releases.nyc3.digitaloceanspaces.com/${version}/player/non-windows/alda-player"; + sha256 = "1g7k2qnh4vcw63604z7zbvhbpn7l1v3m9mx4j4vywfq6qar1r6ck"; }; dontUnpack = true; - installPhase = '' - install -Dm755 $src $out/bin/alda - sed -i -e '1 s!java!${jre}/bin/java!' $out/bin/alda - ''; + nativeBuildInputs = [ makeWrapper ]; + + installPhase = + let + binPath = lib.makeBinPath [ jre ]; + in + '' + install -D $src_alda $out/bin/alda + install -D $src_player $out/bin/alda-player + + wrapProgram $out/bin/alda --prefix PATH : $out/bin:${binPath} + wrapProgram $out/bin/alda-player --prefix PATH : $out/bin:${binPath} + ''; meta = with lib; { description = "A music programming language for musicians"; @@ -23,5 +37,4 @@ stdenv.mkDerivation rec { maintainers = [ maintainers.ericdallo ]; platforms = jre.meta.platforms; }; - } diff --git a/pkgs/development/libraries/assimp/default.nix b/pkgs/development/libraries/assimp/default.nix index a2cd3a2a4571..a98242f9c7c5 100644 --- a/pkgs/development/libraries/assimp/default.nix +++ b/pkgs/development/libraries/assimp/default.nix @@ -2,13 +2,14 @@ stdenv.mkDerivation rec { pname = "assimp"; - version = "5.0.1"; + version = "5.1.3"; + outputs = [ "out" "lib" "dev" ]; src = fetchFromGitHub{ owner = "assimp"; repo = "assimp"; rev = "v${version}"; - sha256 = "00vxzfcrs856qnyk806wqr67nmpjk06mjby0fqmyhm6i1jj2hg1w"; + hash = "sha256-GNSfaP8O5IsjGwtC3DFaV4OiMMUXIcmHmz+5TCT/HP8="; }; nativeBuildInputs = [ cmake ]; @@ -16,7 +17,7 @@ stdenv.mkDerivation rec { meta = with lib; { description = "A library to import various 3D model formats"; - homepage = "http://assimp.sourceforge.net/"; + homepage = "https://www.assimp.org/"; license = licenses.bsd3; maintainers = with maintainers; [ ehmry ]; platforms = platforms.linux ++ platforms.darwin; diff --git a/pkgs/development/libraries/draco/default.nix b/pkgs/development/libraries/draco/default.nix index ed65be9a2561..ecbd12521263 100644 --- a/pkgs/development/libraries/draco/default.nix +++ b/pkgs/development/libraries/draco/default.nix @@ -1,33 +1,35 @@ -{ lib, stdenv, fetchFromGitHub, cmake +{ lib +, stdenv +, fetchFromGitHub +, cmake +, python3 +, withAnimation ? true +, withTranscoder ? true }: +let + cmakeBool = b: if b then "ON" else "OFF"; +in stdenv.mkDerivation rec { - version = "1.4.3"; + version = "1.5.0"; pname = "draco"; src = fetchFromGitHub { owner = "google"; repo = "draco"; rev = version; - sha256 = "sha256-eSu6tkWbRHzJkWwPgljaScAuL0gRkp8PJUHWC8mUvOw="; + hash = "sha256-BoJg2lZBPVVm6Nc0XK8QSISpe+B8tpgRg9PFncN4+fY="; + fetchSubmodules = true; }; - nativeBuildInputs = [ cmake ]; + nativeBuildInputs = [ cmake python3 ]; cmakeFlags = [ - # Fake these since we are building from a tarball - "-Ddraco_git_hash=${version}" - "-Ddraco_git_desc=${version}" - - "-DBUILD_UNITY_PLUGIN=1" + "-DDRACO_ANIMATION_ENCODING=${cmakeBool withAnimation}" + "-DDRACO_TRANSCODER_SUPPORTED=${cmakeBool withTranscoder}" + "-DBUILD_SHARED_LIBS=${cmakeBool true}" ]; - # Upstream mistakenly installs to /nix/store/.../nix/store/.../*, work around that - postInstall = '' - mv $out/nix/store/*/* $out - rm -rf $out/nix - ''; - meta = with lib; { description = "Library for compressing and decompressing 3D geometric meshes and point clouds"; homepage = "https://google.github.io/draco/"; diff --git a/pkgs/development/libraries/libosmium/default.nix b/pkgs/development/libraries/libosmium/default.nix index 546d89449dea..917a64f40e94 100644 --- a/pkgs/development/libraries/libosmium/default.nix +++ b/pkgs/development/libraries/libosmium/default.nix @@ -1,19 +1,19 @@ -{ lib, stdenv, fetchFromGitHub, cmake, protozero, expat, zlib, bzip2, boost }: +{ lib, stdenv, fetchFromGitHub, cmake, protozero, expat, zlib, bzip2, boost, lz4 }: stdenv.mkDerivation rec { pname = "libosmium"; - version = "2.17.1"; + version = "2.17.2"; src = fetchFromGitHub { owner = "osmcode"; repo = "libosmium"; rev = "v${version}"; - sha256 = "sha256-riNcIC60gw9qxF8UmPjq03XuD3of0BxKbZpgwjMNh3c="; + sha256 = "sha256-+WeEK7rWoUPAiAsgd5qT2bwDf+5IlP4uuyh7+i2L/HU="; }; nativeBuildInputs = [ cmake ]; - buildInputs = [ protozero zlib bzip2 expat boost ]; + buildInputs = [ protozero zlib bzip2 expat boost lz4 ]; cmakeFlags = [ "-DINSTALL_GDALCPP:BOOL=ON" ]; diff --git a/pkgs/development/libraries/libvdpau/default.nix b/pkgs/development/libraries/libvdpau/default.nix index 75dcd337c38b..a83893b01a7f 100644 --- a/pkgs/development/libraries/libvdpau/default.nix +++ b/pkgs/development/libraries/libvdpau/default.nix @@ -23,7 +23,7 @@ stdenv.mkDerivation rec { NIX_LDFLAGS = lib.optionalString stdenv.isDarwin "-lX11"; meta = with lib; { - homepage = "https://people.freedesktop.org/~aplattner/vdpau/"; + homepage = "https://www.freedesktop.org/wiki/Software/VDPAU/"; description = "Library to use the Video Decode and Presentation API for Unix (VDPAU)"; license = licenses.mit; # expat version platforms = platforms.unix; diff --git a/pkgs/development/libraries/tkrzw/default.nix b/pkgs/development/libraries/tkrzw/default.nix index e8163c5282c7..84a026be20fb 100644 --- a/pkgs/development/libraries/tkrzw/default.nix +++ b/pkgs/development/libraries/tkrzw/default.nix @@ -2,12 +2,12 @@ stdenv.mkDerivation rec { pname = "tkrzw"; - version = "0.9.51"; + version = "1.0.21"; # TODO: defeat multi-output reference cycles src = fetchurl { url = "https://dbmx.net/tkrzw/pkg/tkrzw-${version}.tar.gz"; - hash = "sha256-UqF2cJ/r8OksAKyHw6B9UiBFIXgKeDmD2ZyJ+iPkY2w="; + hash = "sha256-1g3sIRXxYtD8XGVNpbn4HLTCi+xl2yfJklbUouMQcHs="; }; enableParallelBuilding = true; diff --git a/pkgs/development/nim-packages/python/default.nix b/pkgs/development/nim-packages/python/default.nix deleted file mode 100644 index 38002c15c939..000000000000 --- a/pkgs/development/nim-packages/python/default.nix +++ /dev/null @@ -1,25 +0,0 @@ -{ lib, buildNimPackage, fetchFromGitHub, python27 }: - -buildNimPackage rec { - pname = "python"; - version = "1.2"; - src = fetchFromGitHub { - owner = "nim-lang"; - repo = pname; - rev = "b7c3b2c447a69fdb0a974ba149062e52182fda08"; - hash = "sha256-Wl4on0rf4zbNxmwmq/ZkNiPIFCZY+1BdokPQoba2EVI="; - }; - postPatch = let pythonLib = "${python27}/lib/libpython2.7.so"; - in '' - substituteInPlace src/python.nim \ - --replace 'items(LibNames)' "[\"${pythonLib}\"]" \ - --replace 'dynlib: dllname' 'dynlib: "${pythonLib}"' - ''; - doCheck = true; - meta = with lib; - src.meta // { - description = "Nim wrapper for the Python 2 programming language"; - license = [ licenses.mit ]; - maintainers = [ maintainers.ehmry ]; - }; -} diff --git a/pkgs/development/nim-packages/spry/default.nix b/pkgs/development/nim-packages/spry/default.nix index 497431be1e86..ebb23de70144 100644 --- a/pkgs/development/nim-packages/spry/default.nix +++ b/pkgs/development/nim-packages/spry/default.nix @@ -1,4 +1,4 @@ -{ lib, buildNimPackage, fetchFromGitHub, python, rocksdb, snappy, spryvm, stew +{ lib, buildNimPackage, fetchFromGitHub, rocksdb, snappy, spryvm, stew , tempfile, ui }: buildNimPackage rec { @@ -10,8 +10,8 @@ buildNimPackage rec { rev = "098da7bb34a9113d5db5402fecfc76b1c3fa3b36"; hash = "sha256-PfWBrG2Z16tLgcN8JYpHaNMysBbbYX812Lkgk0ItMwE="; }; - buildInputs = [ python rocksdb snappy spryvm stew tempfile ui ]; - patches = [ ./nil.patch ]; + buildInputs = [ rocksdb snappy spryvm stew tempfile ui ]; + patches = [ ./nil.patch ./python.patch ]; doCheck = true; meta = with lib; src.meta // { diff --git a/pkgs/development/nim-packages/spry/python.patch b/pkgs/development/nim-packages/spry/python.patch new file mode 100644 index 000000000000..565e53c2ddcd --- /dev/null +++ b/pkgs/development/nim-packages/spry/python.patch @@ -0,0 +1,43 @@ +diff --git a/src/ispry.nim b/src/ispry.nim +index 23ad6c3..d2cfc89 100644 +--- a/src/ispry.nim ++++ b/src/ispry.nim +@@ -21,7 +21,7 @@ import spryvm/sprycore, spryvm/sprylib, spryvm/spryextend, spryvm/sprymath, + spryvm/spryos, spryvm/spryio, spryvm/sprymemfile, spryvm/sprythread, + spryvm/spryoo, spryvm/sprydebug, spryvm/sprycompress, spryvm/sprystring, + spryvm/sprymodules, spryvm/spryreflect, spryvm/spryblock, spryvm/sprynet, +- spryvm/sprysmtp, spryvm/spryjson, spryvm/sprysqlite, spryvm/sprypython, ++ spryvm/sprysmtp, spryvm/spryjson, spryvm/sprysqlite, + spryvm/spryrocksdb + + const Prompt = ">>> " +@@ -63,7 +63,6 @@ proc main() = + + spry.addMemfile() + spry.addThread() +- spry.addPython() + spry.addDebug() + spry.addCompress() + spry.addReflect() +diff --git a/src/spry.nim b/src/spry.nim +index 670a280..cda9027 100644 +--- a/src/spry.nim ++++ b/src/spry.nim +@@ -14,8 +14,7 @@ import spryvm/sprycore, spryvm/sprylib, spryvm/spryextend, spryvm/sprymath, + spryvm/spryos, spryvm/spryio, spryvm/sprymemfile, spryvm/sprythread, + spryvm/spryoo, spryvm/sprydebug, spryvm/sprycompress, spryvm/sprystring, + spryvm/sprymodules, spryvm/spryreflect, spryvm/spryui, spryvm/spryblock, spryvm/sprynet, +- spryvm/sprysmtp, spryvm/spryjson, spryvm/sprysqlite, spryvm/spryrocksdb, +- spryvm/sprypython ++ spryvm/sprysmtp, spryvm/spryjson, spryvm/sprysqlite, spryvm/spryrocksdb + + var spry = newInterpreter() + +@@ -34,7 +33,6 @@ spry.addOO() + + spry.addMemfile() + spry.addThread() +-spry.addPython() + spry.addDebug() + spry.addCompress() + spry.addReflect() diff --git a/pkgs/development/node-packages/default.nix b/pkgs/development/node-packages/default.nix index 7b8583b6db31..f7ff037df028 100644 --- a/pkgs/development/node-packages/default.nix +++ b/pkgs/development/node-packages/default.nix @@ -309,20 +309,13 @@ let prisma = super.prisma.override rec { nativeBuildInputs = [ pkgs.makeWrapper ]; - version = "3.5.0"; + + inherit (pkgs.prisma-engines) version; + src = fetchurl { url = "https://registry.npmjs.org/prisma/-/prisma-${version}.tgz"; - sha512 = "sha512-WEYQ+H98O0yigG+lI0gfh4iyBChvnM6QTXPDtY9eFraLXAmyb6tf/T2mUdrUAU1AEvHLVzQA5A+RpONZlQozBg=="; + sha512 = "sha512-6SqgHS/5Rq6HtHjsWsTxlj+ySamGyCLBUQfotc2lStOjPv52IQuDVpp58GieNqc9VnfuFyHUvTZw7aQB+G2fvQ=="; }; - dependencies = [ rec { - name = "_at_prisma_slash_engines"; - packageName = "@prisma/engines"; - version = "3.5.0-38.78a5df6def6943431f4c022e1428dbc3e833cf8e"; - src = fetchurl { - url = "https://registry.npmjs.org/@prisma/engines/-/engines-${version}.tgz"; - sha512 = "sha512-MqZUrxuLlIbjB3wu8LrRJOKcvR4k3dunKoI4Q2bPfAwLQY0XlpsLZ3TRVW1c32ooVk939p6iGNkaCUo63Et36g=="; - }; - }]; postInstall = with pkgs; '' wrapProgram "$out/bin/prisma" \ --set PRISMA_MIGRATION_ENGINE_BINARY ${prisma-engines}/bin/migration-engine \ diff --git a/pkgs/development/python-modules/bx-python/default.nix b/pkgs/development/python-modules/bx-python/default.nix index db5d0166f552..ba83cca9e4ec 100644 --- a/pkgs/development/python-modules/bx-python/default.nix +++ b/pkgs/development/python-modules/bx-python/default.nix @@ -3,14 +3,14 @@ buildPythonPackage rec { pname = "bx-python"; - version = "0.8.12"; + version = "0.8.13"; disabled = pythonOlder "3.6"; src = fetchFromGitHub { owner = "bxlab"; repo = "bx-python"; rev = "v${version}"; - sha256 = "sha256-bOoD2dY6Zf4HRMqZcGSot1owu/5VEkF6wpuMTzVUlFU="; + sha256 = "0r3z02mvaswijalr42ikpa7crvliijy0aigsvp5m0frp05n4irf5"; }; nativeBuildInputs = [ cython ]; diff --git a/pkgs/development/python-modules/cyclonedx-python-lib/default.nix b/pkgs/development/python-modules/cyclonedx-python-lib/default.nix index e4f007cf8393..75f9c29607da 100644 --- a/pkgs/development/python-modules/cyclonedx-python-lib/default.nix +++ b/pkgs/development/python-modules/cyclonedx-python-lib/default.nix @@ -16,7 +16,7 @@ buildPythonPackage rec { pname = "cyclonedx-python-lib"; - version = "0.12.2"; + version = "0.12.3"; format = "pyproject"; disabled = pythonOlder "3.6"; @@ -25,7 +25,7 @@ buildPythonPackage rec { owner = "CycloneDX"; repo = pname; rev = "v${version}"; - sha256 = "sha256-+NIC+dxajG5wffIFUC5MqRAiodh8ynO1fp1XTOxaR1g="; + sha256 = "1404wcwjglq025n8ncsrl2h64g1sly83cs9sc6jpiw1g5ay4a1vi"; }; nativeBuildInputs = [ diff --git a/pkgs/development/python-modules/trezor/default.nix b/pkgs/development/python-modules/trezor/default.nix index 137d67124458..78eb7eda0884 100644 --- a/pkgs/development/python-modules/trezor/default.nix +++ b/pkgs/development/python-modules/trezor/default.nix @@ -19,7 +19,7 @@ , shamir-mnemonic , typing-extensions , trezor-udev-rules -, pytest +, pytestCheckHook }: buildPythonPackage rec { @@ -54,16 +54,7 @@ buildPythonPackage rec { trezor-udev-rules ]; - checkInputs = [ - pytest - ]; - - # disable test_tx_api.py as it requires being online - checkPhase = '' - runHook preCheck - pytest --pyargs tests --ignore tests/test_tx_api.py - runHook postCheck - ''; + checkInputs = [ pytestCheckHook ]; postFixup = '' mkdir completions diff --git a/pkgs/development/quickemu/default.nix b/pkgs/development/quickemu/default.nix index f7807a9d1c9a..aa9906c77ecd 100644 --- a/pkgs/development/quickemu/default.nix +++ b/pkgs/development/quickemu/default.nix @@ -17,6 +17,9 @@ , xdg-user-dirs , xrandr , zsync +, OVMF +, quickemu +, testVersion }: let runtimePaths = [ @@ -40,15 +43,20 @@ in stdenv.mkDerivation rec { pname = "quickemu"; - version = "2.2.7"; + version = "3.11"; src = fetchFromGitHub { - owner = "wimpysworld"; - repo = pname; + owner = "quickemu-project"; + repo = "quickemu"; rev = version; - sha256 = "sha256-TNG1pCePsi12QQafhayhj+V5EXq+v7qmaW5v5X8ER6s="; + sha256 = "1xwf9vwbr57wmyxfcqzl1jnmfx3ffh7sfqf0zcdq41wqkm8s106n"; }; + patches = [ + ./efi_vars_ensure_writable.patch + ./input_overrides.patch + ]; + nativeBuildInputs = [ makeWrapper ]; installPhase = '' @@ -56,16 +64,21 @@ stdenv.mkDerivation rec { install -Dm755 -t "$out/bin" quickemu quickget macrecovery - for f in quickget macrecovery quickemu; do - wrapProgram $out/bin/$f --prefix PATH : "${lib.makeBinPath runtimePaths}" - done + for f in quickget macrecovery quickemu; do + wrapProgram $out/bin/$f \ + --prefix PATH : "${lib.makeBinPath runtimePaths}" \ + --set ENV_EFI_CODE "${OVMF.fd}/FV/OVMF_CODE.fd" \ + --set ENV_EFI_VARS "${OVMF.fd}/FV/OVMF_VARS.fd" + done runHook postInstall ''; + passthru.tests = testVersion { package = quickemu; }; + meta = with lib; { description = "Quickly create and run optimised Windows, macOS and Linux desktop virtual machines"; - homepage = "https://github.com/wimpysworld/quickemu"; + homepage = "https://github.com/quickemu-project/quickemu"; license = licenses.mit; maintainers = with maintainers; [ fedx-sudo ]; }; diff --git a/pkgs/development/quickemu/efi_vars_ensure_writable.patch b/pkgs/development/quickemu/efi_vars_ensure_writable.patch new file mode 100644 index 000000000000..e146d0ba7682 --- /dev/null +++ b/pkgs/development/quickemu/efi_vars_ensure_writable.patch @@ -0,0 +1,13 @@ +diff --git a/quickemu b/quickemu +index a9a60a5..1a932ac 100755 +--- a/quickemu ++++ b/quickemu +@@ -197,7 +197,7 @@ function efi_vars() { + + if [ ! -e "${VARS_OUT}" ]; then + if [ -e "${VARS_IN}" ]; then +- cp "${VARS_IN}" "${VARS_OUT}" ++ cp "${VARS_IN}" "${VARS_OUT}" && chmod +w "${VARS_OUT}" + else + echo "ERROR! ${VARS_IN} was not found. Please install edk2." + exit 1 diff --git a/pkgs/development/quickemu/input_overrides.patch b/pkgs/development/quickemu/input_overrides.patch new file mode 100644 index 000000000000..228624edcf1b --- /dev/null +++ b/pkgs/development/quickemu/input_overrides.patch @@ -0,0 +1,28 @@ +diff --git a/quickemu b/quickemu +index 1a932ac..ab2f752 100755 +--- a/quickemu ++++ b/quickemu +@@ -383,7 +383,10 @@ function vm_boot() { + # https://bugzilla.redhat.com/show_bug.cgi?id=1929357#c5 + case ${secureboot} in + on) +- if [ -e "/usr/share/OVMF/OVMF_CODE_4M.secboot.fd" ]; then ++ if [[ ${ENV_EFI_CODE_SECURE} && ${ENV_EFI_CODE_SECURE-x} ]] && [[ ${ENV_EFI_VARS_SECURE} && ${ENV_EFI_VARS_SECURE-x} ]]; then ++ EFI_CODE="${ENV_EFI_CODE_SECURE}" ++ efi_vars "${ENV_EFI_VARS_SECURE}" "${EFI_VARS}" ++ elif [ -e "/usr/share/OVMF/OVMF_CODE_4M.secboot.fd" ]; then + EFI_CODE="/usr/share/OVMF/OVMF_CODE_4M.secboot.fd" + efi_vars "/usr/share/OVMF/OVMF_VARS_4M.fd" "${EFI_VARS}" + elif [ -e "/usr/share/edk2/ovmf/OVMF_CODE.secboot.fd" ]; then +@@ -402,7 +405,10 @@ function vm_boot() { + fi + ;; + *) +- if [ -e "/usr/share/OVMF/OVMF_CODE_4M.fd" ]; then ++ if [[ ${ENV_EFI_CODE} && ${ENV_EFI_CODE-x} ]] && [[ ${ENV_EFI_VARS} && ${ENV_EFI_VARS-x} ]]; then ++ EFI_CODE="${ENV_EFI_CODE}" ++ efi_vars "${ENV_EFI_VARS}" "${EFI_VARS}" ++ elif [ -e "/usr/share/OVMF/OVMF_CODE_4M.fd" ]; then + EFI_CODE="/usr/share/OVMF/OVMF_CODE_4M.fd" + efi_vars "/usr/share/OVMF/OVMF_VARS_4M.fd" "${EFI_VARS}" + elif [ -e "/usr/share/edk2/ovmf/OVMF_CODE.fd" ]; then diff --git a/pkgs/development/tools/analysis/checkov/default.nix b/pkgs/development/tools/analysis/checkov/default.nix index 4e621abc533b..a43b450e7b75 100644 --- a/pkgs/development/tools/analysis/checkov/default.nix +++ b/pkgs/development/tools/analysis/checkov/default.nix @@ -46,13 +46,13 @@ with py.pkgs; buildPythonApplication rec { pname = "checkov"; - version = "2.0.664"; + version = "2.0.668"; src = fetchFromGitHub { owner = "bridgecrewio"; repo = pname; rev = version; - sha256 = "sha256-t7u47gkUtn9EwBWtz97GkiM8tyGCFk4S5UTQ+OosI2o="; + sha256 = "sha256-kCqhNxqI+9F9nQvZDOYjC2Bb5a1x4a9b9aqvDe/siP0="; }; nativeBuildInputs = with py.pkgs; [ diff --git a/pkgs/development/tools/continuous-integration/github-runner/default.nix b/pkgs/development/tools/continuous-integration/github-runner/default.nix index 97312c835f51..17a0cff31fef 100644 --- a/pkgs/development/tools/continuous-integration/github-runner/default.nix +++ b/pkgs/development/tools/continuous-integration/github-runner/default.nix @@ -14,6 +14,7 @@ , lttng-ust , makeWrapper , nodejs-12_x +, nodejs-16_x , openssl , stdenv , zlib @@ -37,13 +38,13 @@ let in stdenv.mkDerivation rec { pname = "github-runner"; - version = "2.284.0"; + version = "2.285.1"; src = fetchFromGitHub { owner = "actions"; repo = "runner"; rev = "v${version}"; - sha256 = "sha256-JR0OzbT5gGhO/dxb/eSjP/d/VxW/aLmTs/oPwN8b8Rc="; + hash = "sha256-SlKUuebsoZ9OgYuDTNOlY1KMg01LFSFazrLCctiFq3A="; }; nativeBuildInputs = [ @@ -142,6 +143,9 @@ stdenv.mkDerivation rec { disabledTests = [ # Self-updating is patched out, hence this test will fail "FullyQualifiedName!=GitHub.Runner.Common.Tests.Listener.RunnerL0.TestRunOnceHandleUpdateMessage" + ] ++ lib.optionals (stdenv.hostPlatform.system == "aarch64-linux") [ + # "JavaScript Actions in Alpine containers are only supported on x64 Linux runners. Detected Linux Arm64" + "FullyQualifiedName!=GitHub.Runner.Common.Tests.Worker.StepHostL0.DetermineNodeRuntimeVersionInAlpineContainerAsync" ] ++ map # Online tests (x: "FullyQualifiedName!=GitHub.Runner.Common.Tests.Worker.ActionManagerL0.PrepareActions_${x}") @@ -189,6 +193,7 @@ stdenv.mkDerivation rec { mkdir -p _layout/externals ln -s ${nodejs-12_x} _layout/externals/node12 + ln -s ${nodejs-16_x} _layout/externals/node16 # BUILDCONFIG needs to be "Debug" dotnet msbuild \ @@ -230,11 +235,12 @@ stdenv.mkDerivation rec { --replace './externals' "$out/externals" \ --replace './bin' "$out/lib" - # The upstream package includes Node 12 and expects it at the path - # externals/node12. As opposed to the official releases, we don't - # link the Alpine Node flavor. + # The upstream package includes Node {12,16} and expects it at the path + # externals/node{12,16}. As opposed to the official releases, we don't + # link the Alpine Node flavors. mkdir -p $out/externals ln -s ${nodejs-12_x} $out/externals/node12 + ln -s ${nodejs-16_x} $out/externals/node16 runHook postInstall ''; diff --git a/pkgs/development/tools/database/prisma-engines/default.nix b/pkgs/development/tools/database/prisma-engines/default.nix index b05b0c2e47f1..3cf9f18188ff 100644 --- a/pkgs/development/tools/database/prisma-engines/default.nix +++ b/pkgs/development/tools/database/prisma-engines/default.nix @@ -10,19 +10,19 @@ rustPlatform.buildRustPackage rec { pname = "prisma-engines"; - version = "3.5.0"; + version = "3.6.0"; src = fetchFromGitHub { owner = "prisma"; repo = "prisma-engines"; rev = version; - sha256 = "sha256-c4t7r9Os0nmQEBpNeZ+XdTPc/5X6Dyw0dd7J4pw5s88="; + sha256 = "sha256-opo4CM/ONZfVWhv/2r9Mfu8eNTgcG2hwvJmSrQ/OPDA="; }; # Use system openssl. OPENSSL_NO_VENDOR = 1; - cargoSha256 = "sha256-rjqFEY7GXXWzlw5E6Wg4KPz25BbvQPuLW5m8+3CbcRw="; + cargoSha256 = "sha256-Zrv5cI2uyGu4hOH8lKOrzA+U3ZLE+MEeD5fBxhI+eIk="; nativeBuildInputs = [ pkg-config ]; diff --git a/pkgs/development/tools/scalafmt/default.nix b/pkgs/development/tools/scalafmt/default.nix index bddcaf1cc8a4..0b4f2f405480 100644 --- a/pkgs/development/tools/scalafmt/default.nix +++ b/pkgs/development/tools/scalafmt/default.nix @@ -2,7 +2,7 @@ let baseName = "scalafmt"; - version = "3.0.8"; + version = "3.2.1"; deps = stdenv.mkDerivation { name = "${baseName}-deps-${version}"; buildCommand = '' @@ -13,7 +13,7 @@ let ''; outputHashMode = "recursive"; outputHashAlgo = "sha256"; - outputHash = "VBU6Jg6Sq3RBy0ym5YbjLjvcfx/85f6wNMmkGVV0W88="; + outputHash = "v1IODq88Wpjm7IxSKmD9Nub3r4XNP+jNT0A6ApX3Cas="; }; in stdenv.mkDerivation { diff --git a/pkgs/games/cataclysm-dda/stable.nix b/pkgs/games/cataclysm-dda/stable.nix index 1429cdbf180e..453f5ceacae1 100644 --- a/pkgs/games/cataclysm-dda/stable.nix +++ b/pkgs/games/cataclysm-dda/stable.nix @@ -10,17 +10,17 @@ let }; self = common.overrideAttrs (common: rec { - version = "0.F-2"; + version = "0.F-3"; src = fetchFromGitHub { owner = "CleverRaven"; repo = "Cataclysm-DDA"; rev = version; - sha256 = "sha256-8AZOrO/Wxui+LqAZo8hURktMTycecIgOONUJmE3M+vM="; + sha256 = "sha256-2su1uQaWl9WG41207dRvOTdVKcQsEz/y0uTi9JX52uI="; }; makeFlags = common.makeFlags ++ [ - # Makefile declares version as 0.F, even under 0.F-2 + # Makefile declares version as 0.F, with no minor release number "VERSION=${version}" ]; diff --git a/pkgs/games/quakespasm/vulkan.nix b/pkgs/games/quakespasm/vulkan.nix index a71f36f72376..2dc84155324d 100644 --- a/pkgs/games/quakespasm/vulkan.nix +++ b/pkgs/games/quakespasm/vulkan.nix @@ -2,13 +2,13 @@ stdenv.mkDerivation rec { pname = "vkquake"; - version = "1.11.0"; + version = "1.12.1"; src = fetchFromGitHub { owner = "Novum"; repo = "vkQuake"; rev = version; - sha256 = "sha256-FbHqpBiTJWeJPBHUBTOIuXRoLttmDIpip5wUvuVw8YI="; + sha256 = "sha256-D6JtYhR+bkYYm4yuipNrsonziDGiDWICEohy4Mgdr+0="; }; sourceRoot = "source/Quake"; diff --git a/pkgs/misc/cups/drivers/mfcj470dwcupswrapper/default.nix b/pkgs/misc/cups/drivers/mfcj470dwcupswrapper/default.nix index 2ff073591d05..dc54611d335a 100644 --- a/pkgs/misc/cups/drivers/mfcj470dwcupswrapper/default.nix +++ b/pkgs/misc/cups/drivers/mfcj470dwcupswrapper/default.nix @@ -21,8 +21,7 @@ stdenv.mkDerivation rec { --replace /etc "$out/etc" substituteInPlace $WRAPPER \ - --replace "\`cp " "\`cp -p " \ - --replace "\`mv " "\`cp -p " + --replace "cp " "cp -p " ''; buildPhase = '' @@ -33,11 +32,18 @@ stdenv.mkDerivation rec { installPhase = '' TARGETFOLDER=$out/opt/brother/Printers/mfcj470dw/cupswrapper/ - mkdir -p $out/opt/brother/Printers/mfcj470dw/cupswrapper/ + PPDFOLDER=$out/share/cups/model/ + FILTERFOLDER=$out/lib/cups/filter/ + + mkdir -p $TARGETFOLDER + mkdir -p $PPDFOLDER + mkdir -p $FILTERFOLDER cp brcupsconfpt1/brcupsconfpt1 $TARGETFOLDER - cp cupswrapper/cupswrappermfcj470dw $TARGETFOLDER/ - cp PPD/brother_mfcj470dw_printer_en.ppd $TARGETFOLDER/ + cp cupswrapper/cupswrappermfcj470dw $TARGETFOLDER + cp PPD/brother_mfcj470dw_printer_en.ppd $PPDFOLDER + + ln -s ${mfcj470dwlpr}/lib/cups/filter/brother_lpdwrapper_mfcj470dw $FILTERFOLDER/ ''; cleanPhase = '' diff --git a/pkgs/os-specific/linux/sgx/psw/default.nix b/pkgs/os-specific/linux/sgx/psw/default.nix index e449c99b0776..b418d5c18225 100644 --- a/pkgs/os-specific/linux/sgx/psw/default.nix +++ b/pkgs/os-specific/linux/sgx/psw/default.nix @@ -25,14 +25,14 @@ stdenv.mkDerivation rec { let ae.prebuilt = fetchurl { url = "https://download.01.org/intel-sgx/sgx-linux/${versionTag}/prebuilt_ae_${versionTag}.tar.gz"; - hash = "sha256-nGKZEpT2Mx0DLgqjv9qbZqBt1pQaSHcnA0K6nHma3sk"; + hash = "sha256-JriA9UGYFkAPuCtRizk8RMM1YOYGR/eO9ILnx47A40s="; }; dcap = rec { - version = "1.11"; + version = "1.12.1"; filename = "prebuilt_dcap_${version}.tar.gz"; prebuilt = fetchurl { url = "https://download.01.org/intel-sgx/sgx-dcap/${version}/linux/${filename}"; - hash = "sha256-ShGScS4yNLki04RNPxxLvqzGmy4U1L0gVETvfAo8w9M="; + hash = "sha256-V/XHva9Sq3P36xSW+Sd0G6Dnk4H0ANO1Ns/u+FI1eGI="; }; }; in diff --git a/pkgs/os-specific/linux/sgx/sdk/default.nix b/pkgs/os-specific/linux/sgx/sdk/default.nix index e08511272af3..18876f927e80 100644 --- a/pkgs/os-specific/linux/sgx/sdk/default.nix +++ b/pkgs/os-specific/linux/sgx/sdk/default.nix @@ -1,7 +1,8 @@ { lib , stdenv -, fetchzip , fetchFromGitHub +, fetchpatch +, fetchzip , callPackage , autoconf , automake @@ -25,40 +26,33 @@ }: stdenv.mkDerivation rec { pname = "sgx-sdk"; - version = "2.14.100.2"; - - versionTag = lib.concatStringsSep "." (lib.take 2 (lib.splitVersion version)); + # Version as given in se_version.h + version = "2.15.101.1"; + # Version as used in the Git tag + versionTag = "2.15.1"; src = fetchFromGitHub { owner = "intel"; repo = "linux-sgx"; rev = "sgx_${versionTag}"; - hash = "sha256-D/QZWBUe1gRbbjWnV10b7IPoM3utefAsOEKnQuasIrM="; + hash = "sha256-e11COTR5eDPMB81aPRKatvIkAOeX+OZgnvn2utiv78M="; fetchSubmodules = true; }; - postUnpack = - let - optlibName = "optimized_libs_${versionTag}.tar.gz"; - optimizedLibs = fetchzip { - url = "https://download.01.org/intel-sgx/sgx-linux/${versionTag}/${optlibName}"; - hash = "sha256-FjNhNV9+KDMvBYdWXZbua6qYOc3Z1/jtcF4j52TSxQY="; - stripRoot = false; - }; - sgxIPPCryptoHeader = "${optimizedLibs}/external/ippcp_internal/inc/sgx_ippcp.h"; - in - '' - # Make sure this is the right version of linux-sgx - grep -q '"${version}"' "$src/common/inc/internal/se_version.h" \ - || (echo "Could not find expected version ${version} in linux-sgx source" >&2 && exit 1) + postUnpack = '' + # Make sure this is the right version of linux-sgx + grep -q '"${version}"' "$src/common/inc/internal/se_version.h" \ + || (echo "Could not find expected version ${version} in linux-sgx source" >&2 && exit 1) + ''; - # Make sure we use the correct version to build IPP Crypto - grep -q 'optlib_name=${optlibName}' "$src/download_prebuilt.sh" \ - || (echo "Could not find expected optimized libs ${optlibName} in linux-sgx source" >&2 && exit 1) - - # Add missing sgx_ippcp.h: https://github.com/intel/linux-sgx/pull/752 - ln -s ${sgxIPPCryptoHeader} "$sourceRoot/external/ippcp_internal/inc/sgx_ippcp.h" - ''; + patches = [ + # Commit to add missing sgx_ippcp.h not yet part of this release + (fetchpatch { + name = "add-missing-sgx_ippcp-header.patch"; + url = "https://github.com/intel/linux-sgx/commit/51d1087b707a47e18588da7bae23e5f686d44be6.patch"; + sha256 = "sha256-RZC14H1oEuGp0zn8CySDPy1KNqP/POqb+KMYoQt2A7M="; + }) + ]; postPatch = '' # https://github.com/intel/linux-sgx/pull/730 @@ -121,7 +115,7 @@ stdenv.mkDerivation rec { pushd 'external/ippcp_internal' - install ${ipp-crypto-no_mitigation}/include/* inc/ + cp -r ${ipp-crypto-no_mitigation}/include/. inc/ install -D -m a+rw ${ipp-crypto-no_mitigation}/lib/intel64/libippcp.a \ lib/linux/intel64/no_mitigation/libippcp.a @@ -131,7 +125,7 @@ stdenv.mkDerivation rec { lib/linux/intel64/cve_2020_0551_cf/libippcp.a rm inc/ippcp.h - patch ${ipp-crypto-no_mitigation}/include/ippcp.h -i inc/ippcp20u3.patch -o inc/ippcp.h + patch ${ipp-crypto-no_mitigation}/include/ippcp.h -i inc/ippcp21u3.patch -o inc/ippcp.h install -D ${ipp-crypto-no_mitigation.src}/LICENSE license/LICENSE @@ -227,8 +221,7 @@ stdenv.mkDerivation rec { --replace '/opt/intel/sgxsdk' "$out" for file in $out/share/SampleCode/*/Makefile; do substituteInPlace $file \ - --replace '/opt/intel/sgxsdk' "$out" \ - --replace '$(SGX_SDK)/buildenv.mk' "$out/share/bin/buildenv.mk" + --replace '/opt/intel/sgxsdk' "$out" done header "Fixing BINUTILS_DIR in buildenv.mk" diff --git a/pkgs/os-specific/linux/sgx/sdk/ipp-crypto.nix b/pkgs/os-specific/linux/sgx/sdk/ipp-crypto.nix index ac5fd2ad1ccc..85fcfc9c554d 100644 --- a/pkgs/os-specific/linux/sgx/sdk/ipp-crypto.nix +++ b/pkgs/os-specific/linux/sgx/sdk/ipp-crypto.nix @@ -2,23 +2,35 @@ , stdenv , fetchFromGitHub , cmake -, python3 , nasm +, openssl +, python3 , extraCmakeFlags ? [ ] }: stdenv.mkDerivation rec { pname = "ipp-crypto"; - version = "2020_update3"; + version = "2021.3"; src = fetchFromGitHub { owner = "intel"; repo = "ipp-crypto"; - rev = "ipp-crypto_${version}"; - sha256 = "02vlda6mlhbd12ljzdf65klpx4kmx1ylch9w3yllsiya4hwqzy4b"; + rev = "ippcp_${version}"; + hash = "sha256-QEJXvQ//zhQqibFxXwPMdS1MHewgyb24LRmkycVSGrM="; }; + # Fix typo: https://github.com/intel/ipp-crypto/pull/33 + postPatch = '' + substituteInPlace sources/cmake/ippcp-gen-config.cmake \ + --replace 'ippcpo-config.cmake' 'ippcp-config.cmake' + ''; + cmakeFlags = [ "-DARCH=intel64" ] ++ extraCmakeFlags; - nativeBuildInputs = [ cmake python3 nasm ]; + nativeBuildInputs = [ + cmake + nasm + openssl + python3 + ]; } diff --git a/pkgs/os-specific/linux/sgx/sdk/samples.nix b/pkgs/os-specific/linux/sgx/sdk/samples.nix index 82dbc24568ef..21b31f824476 100644 --- a/pkgs/os-specific/linux/sgx/sdk/samples.nix +++ b/pkgs/os-specific/linux/sgx/sdk/samples.nix @@ -12,7 +12,11 @@ let buildInputs = [ sgx-sdk ]; - enableParallelBuilding = true; + + # The samples don't have proper support for parallel building + # causing them to fail randomly. + enableParallelBuilding = false; + buildFlags = [ "SGX_MODE=SIM" ]; @@ -44,6 +48,7 @@ in # Requires interaction doInstallCheck = false; }); + protobufSGXDemo = buildSample "ProtobufSGXDemo"; remoteAttestation = (buildSample "RemoteAttestation").overrideAttrs (oldAttrs: { dontFixup = true; installCheckPhase = '' @@ -52,6 +57,7 @@ in }); sampleEnclave = buildSample "SampleEnclave"; sampleEnclavePCL = buildSample "SampleEnclavePCL"; + sampleEnclaveGMIPP = buildSample "SampleEnclaveGMIPP"; sealUnseal = buildSample "SealUnseal"; switchless = buildSample "Switchless"; } diff --git a/pkgs/servers/http/apache-modules/mod_itk/default.nix b/pkgs/servers/http/apache-modules/mod_itk/default.nix new file mode 100644 index 000000000000..a36a030899a5 --- /dev/null +++ b/pkgs/servers/http/apache-modules/mod_itk/default.nix @@ -0,0 +1,39 @@ +{ lib +, stdenv +, fetchurl +, pkg-config +, mod_ca +, apr +, aprutil +, apacheHttpd +}: + +stdenv.mkDerivation rec { + pname = "mod_itk"; + version = "2.4.7-04"; + + src = fetchurl { + url = "http://mpm-itk.sesse.net/mpm-itk-${version}.tar.gz"; + sha256 = "sha256:1kzgd1332pgpxf489kr0vdwsaik0y8wp3q282d4wa5jlk7l877v0"; + }; + + nativeBuildInputs = [ pkg-config ]; + buildInputs = [ mod_ca apr aprutil apacheHttpd ]; + + installPhase = '' + runHook preInstall + + mkdir -p $out/modules + ${apacheHttpd.dev}/bin/apxs -S LIBEXECDIR=$out/modules -i mpm_itk.la + + runHook postInstall + ''; + + meta = with lib; { + description = "an MPM (Multi-Processing Module) for the Apache web server."; + maintainers = [ maintainers.zupo ]; + homepage = "http://mpm-itk.sesse.net/"; + license = licenses.asl20; + platforms = platforms.unix; + }; +} diff --git a/pkgs/servers/nitter/default.nix b/pkgs/servers/nitter/default.nix index 7abd3e865fcb..9d460e3140be 100644 --- a/pkgs/servers/nitter/default.nix +++ b/pkgs/servers/nitter/default.nix @@ -45,7 +45,6 @@ nimPackages.buildNimPackage rec { homepage = "https://github.com/zedeus/nitter"; maintainers = with maintainers; [ erdnaxe ]; license = licenses.agpl3Only; - platforms = [ "x86_64-linux" ]; mainProgram = "nitter"; }; } diff --git a/pkgs/servers/tailscale/default.nix b/pkgs/servers/tailscale/default.nix index 2a0165a9fe66..77361f3c35e8 100644 --- a/pkgs/servers/tailscale/default.nix +++ b/pkgs/servers/tailscale/default.nix @@ -2,13 +2,13 @@ buildGoModule rec { pname = "tailscale"; - version = "1.18.1"; + version = "1.18.2"; src = fetchFromGitHub { owner = "tailscale"; repo = "tailscale"; rev = "v${version}"; - sha256 = "sha256-DmgCuv10TiB4UYISthJ1UghuPdvRKYl0cU9VxDvFjMc="; + sha256 = "sha256-8leFG2gYXw+orN/2NfjTvgRqSZSdso7OHIgECEJrO9k="; }; nativeBuildInputs = lib.optionals stdenv.isLinux [ makeWrapper ]; diff --git a/pkgs/tools/misc/flameshot/default.nix b/pkgs/tools/misc/flameshot/default.nix index 6c4f71c507e7..1c0fd19ad2aa 100644 --- a/pkgs/tools/misc/flameshot/default.nix +++ b/pkgs/tools/misc/flameshot/default.nix @@ -21,7 +21,9 @@ mkDerivation rec { }; patches = [ - # Support for USE_LAUNCHER_ABSOLUTE_PATH. + # Use absolute install path for `Exec=` in the desktop file. + # This is required since KWin relies on absolute paths in `Exec=` to find a process' + # corresponding desktop file and check if it's allowed to take screenshot. # Should be removed when the next release comes out. (fetchpatch { url = "https://github.com/flameshot-org/flameshot/commit/1031980ed1e62d24d7f719998b7951d48801e3fa.patch"; @@ -44,9 +46,6 @@ mkDerivation rec { nativeBuildInputs = [ cmake qttools qtsvg ]; buildInputs = [ qtbase ]; - # Use relative path for the .desktop file. - cmakeFlags = [ "-DUSE_LAUNCHER_ABSOLUTE_PATH=OFF" ]; - meta = with lib; { description = "Powerful yet simple to use screenshot software"; homepage = "https://github.com/flameshot-org/flameshot"; diff --git a/pkgs/tools/networking/driftnet/default.nix b/pkgs/tools/networking/driftnet/default.nix index 042f29d3ca31..1f489b7fbc71 100644 --- a/pkgs/tools/networking/driftnet/default.nix +++ b/pkgs/tools/networking/driftnet/default.nix @@ -35,6 +35,8 @@ stdenv.mkDerivation rec { url = "https://github.com/deiv/driftnet/pull/33/commits/bef5f3509ab5710161e9e21ea960a997eada534f.patch"; sha256 = "1b7p9fkgp7dxv965l7q7y632s80h3nnrkaqnak2h0hakwv0i4pvm"; }) + # https://github.com/deiv/driftnet/issues/37 + ./libwebsockets-4.3.0.patch ]; enableParallelBuilding = true; @@ -59,6 +61,6 @@ stdenv.mkDerivation rec { homepage = "https://github.com/deiv/driftnet"; maintainers = with maintainers; [ offline ]; platforms = platforms.linux ++ platforms.darwin; - license = licenses.gpl2; + license = licenses.gpl2Plus; }; } diff --git a/pkgs/tools/networking/driftnet/fix-darwin-build.patch b/pkgs/tools/networking/driftnet/fix-darwin-build.patch deleted file mode 100644 index d1bde0f2e605..000000000000 --- a/pkgs/tools/networking/driftnet/fix-darwin-build.patch +++ /dev/null @@ -1,61 +0,0 @@ -diff --git a/src/compat/compat.h b/src/compat/compat.h -index 6add422..ea80406 100644 ---- a/src/compat/compat.h -+++ b/src/compat/compat.h -@@ -17,7 +17,7 @@ - #include - #endif - --#ifdef __FreeBSD__ -+#if defined(__FreeBSD__) || defined(__APPLE__) - #include - #endif - -diff --git a/src/network/layer2.c b/src/network/layer2.c -index 763f0ac..2497b72 100644 ---- a/src/network/layer2.c -+++ b/src/network/layer2.c -@@ -14,7 +14,7 @@ - - #include - --#ifdef __FreeBSD__ -+#if defined(__FreeBSD__) || defined(__APPLE__) - #include - #include - #else -@@ -29,7 +29,7 @@ - /* - * Freebsd and Cygwin doesn't define 'ethhdr' - */ --#if defined(__FreeBSD__) || defined(__CYGWIN__) -+#if defined(__FreeBSD__) || defined(__CYGWIN__) || defined(__APPLE__) - - #define ETH_ALEN 6 /* Octets in one ethernet addr */ - #define ETH_P_IP 0x0800 /* Internet Protocol packet */ -diff --git a/src/network/layer3.c b/src/network/layer3.c -index 7864126..aae2041 100644 ---- a/src/network/layer3.c -+++ b/src/network/layer3.c -@@ -15,7 +15,7 @@ - #include - #include - --#ifdef __FreeBSD__ -+#if defined(__FreeBSD__) || defined(__APPLE__) - #include - #include - #include -diff --git a/src/pid.c b/src/pid.c -index 621834e..94e7dcc 100644 ---- a/src/pid.c -+++ b/src/pid.c -@@ -14,7 +14,7 @@ - - #include "compat/compat.h" - --#ifdef __FreeBSD__ -+#if defined(__FreeBSD__) || defined(__APPLE__) - #include - #endif - #include diff --git a/pkgs/tools/networking/driftnet/libwebsockets-4.3.0.patch b/pkgs/tools/networking/driftnet/libwebsockets-4.3.0.patch new file mode 100644 index 000000000000..5e5cfd50af3e --- /dev/null +++ b/pkgs/tools/networking/driftnet/libwebsockets-4.3.0.patch @@ -0,0 +1,12 @@ +diff --git a/src/http_display/httpd.c b/src/http_display/httpd.c +index f4709ef..7921d23 100644 +--- a/src/http_display/httpd.c ++++ b/src/http_display/httpd.c +@@ -191,7 +191,6 @@ static void * http_server_dispatch(void *arg) + LWSMPRO_FILE, /* mount type is a directory in a filesystem */ + 1, /* strlen("/"), ie length of the mountpoint */ + NULL, +- { NULL, NULL } // sentinel + }; + + memset(&info, 0, sizeof info); diff --git a/pkgs/tools/security/swtpm/default.nix b/pkgs/tools/security/swtpm/default.nix index 7f2352c7282c..f05658f8a98e 100644 --- a/pkgs/tools/security/swtpm/default.nix +++ b/pkgs/tools/security/swtpm/default.nix @@ -1,6 +1,6 @@ { lib , stdenv -, fetchFromGitHub, fetchpatch +, fetchFromGitHub , autoreconfHook , pkg-config , libtasn1, openssl, fuse, glib, libseccomp, json-glib @@ -8,32 +8,32 @@ , unixtools, expect, socat , gnutls , perl + +# Tests +, python3, which }: stdenv.mkDerivation rec { pname = "swtpm"; - version = "0.6.1"; + version = "0.7.0"; src = fetchFromGitHub { owner = "stefanberger"; repo = "swtpm"; rev = "v${version}"; - sha256 = "sha256-iy8xjKnPLq1ntZa9x+KtLDznzu6m+1db3NPeGQESUVo="; + sha256 = "sha256-5MKQmZxTW8WofmTkV9kGeGN5RxsgVVMFZEF3rPDUO6Q="; }; - patches = [ - (fetchpatch { - url = "https://patch-diff.githubusercontent.com/raw/stefanberger/swtpm/pull/527.patch"; - sha256 = "sha256-cpKHP15a27ifmmswSgHoNzGPO6TY/ZuJIfM5xLOlqlU="; - }) - ]; - nativeBuildInputs = [ pkg-config unixtools.netstat expect socat perl # for pod2man autoreconfHook ]; + checkInputs = [ + python3 which + ]; + buildInputs = [ libtpms openssl libtasn1 libseccomp @@ -47,17 +47,20 @@ stdenv.mkDerivation rec { ]; postPatch = '' + patchShebangs tests/* + # Makefile tries to create the directory /var/lib/swtpm-localca, which fails substituteInPlace samples/Makefile.am \ --replace 'install-data-local:' 'do-not-execute:' # Use the correct path to the certtool binary # instead of relying on it being in the environment - substituteInPlace samples/swtpm_localca.c --replace \ + substituteInPlace src/swtpm_localca/swtpm_localca.c --replace \ '# define CERTTOOL_NAME "certtool"' \ '# define CERTTOOL_NAME "${gnutls}/bin/certtool"' ''; + doCheck = true; enableParallelBuilding = true; outputs = [ "out" "man" ]; diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 6e4b9ac724b4..31380e7d03a8 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -20716,6 +20716,8 @@ with pkgs; mod_wsgi2 = callPackage ../servers/http/apache-modules/mod_wsgi { python = python2; ncurses = null; }; mod_wsgi3 = callPackage ../servers/http/apache-modules/mod_wsgi { python = python3; }; + mod_itk = callPackage ../servers/http/apache-modules/mod_itk { }; + php = pkgs.php.override { inherit apacheHttpd; }; subversion = pkgs.subversion.override { httpServer = true; inherit apacheHttpd; }; @@ -29438,7 +29440,7 @@ with pkgs; }; xastir = callPackage ../applications/misc/xastir { - rastermagick = imagemagick; + rastermagick = imagemagick6; inherit (xorg) libXt; }; diff --git a/pkgs/top-level/nim-packages.nix b/pkgs/top-level/nim-packages.nix index 6c8c5ff7cc70..fa78e6ed9aa9 100644 --- a/pkgs/top-level/nim-packages.nix +++ b/pkgs/top-level/nim-packages.nix @@ -48,8 +48,6 @@ lib.makeScope newScope (self: pixie = callPackage ../development/nim-packages/pixie { }; - python = callPackage ../development/nim-packages/python { }; - redis = callPackage ../development/nim-packages/redis { }; redpool = callPackage ../development/nim-packages/redpool { };