diff --git a/doc/languages-frameworks/python.section.md b/doc/languages-frameworks/python.section.md index 693ea016e0a..fe28f94c069 100644 --- a/doc/languages-frameworks/python.section.md +++ b/doc/languages-frameworks/python.section.md @@ -288,7 +288,7 @@ self: super: { ps: with ps; [ pyflakes pytest - python-language-server + black ] )) diff --git a/maintainers/maintainer-list.nix b/maintainers/maintainer-list.nix index 81631a4293f..8b760f0c1fe 100644 --- a/maintainers/maintainer-list.nix +++ b/maintainers/maintainer-list.nix @@ -972,6 +972,12 @@ githubId = 1118815; name = "Vikram Narayanan"; }; + armeenm = { + email = "mahdianarmeen@gmail.com"; + github = "armeenm"; + githubId = 29145250; + name = "Armeen Mahdian"; + }; armijnhemel = { email = "armijn@tjaldur.nl"; github = "armijnhemel"; @@ -13976,6 +13982,13 @@ githubId = 6191421; name = "Edward d'Albon"; }; + zebreus = { + matrix = "@lennart:cicen.net"; + email = "lennarteichhorn+nixpkgs@gmail.com"; + github = "Zebreus"; + githubId = 1557253; + name = "Lennart Eichhorn"; + }; zef = { email = "zef@zef.me"; name = "Zef Hemel"; 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 6da24e3a8a8..fcda25bf0f9 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 @@ -455,6 +455,12 @@ services.nifi. + + + kanidm, + an identity management server written in Rust. + +
diff --git a/nixos/doc/manual/release-notes/rl-2205.section.md b/nixos/doc/manual/release-notes/rl-2205.section.md index 90d22643701..24fbc537dca 100644 --- a/nixos/doc/manual/release-notes/rl-2205.section.md +++ b/nixos/doc/manual/release-notes/rl-2205.section.md @@ -135,6 +135,8 @@ In addition to numerous new and upgraded packages, this release has the followin - [nifi](https://nifi.apache.org), an easy to use, powerful, and reliable system to process and distribute data. Available as [services.nifi](options.html#opt-services.nifi.enable). +- [kanidm](https://kanidm.github.io/kanidm/stable/), an identity management server written in Rust. + ## Backward Incompatibilities {#sec-release-22.05-incompatibilities} diff --git a/nixos/maintainers/scripts/lxd/lxd-image.nix b/nixos/maintainers/scripts/lxd/lxd-image.nix index c76b9fcc7f7..6aa3f2f5584 100644 --- a/nixos/maintainers/scripts/lxd/lxd-image.nix +++ b/nixos/maintainers/scripts/lxd/lxd-image.nix @@ -27,7 +27,7 @@ with lib; networking.useDHCP = false; networking.interfaces.eth0.useDHCP = true; - # As this is intended as a stadalone image, undo some of the minimal profile stuff + # As this is intended as a standalone image, undo some of the minimal profile stuff documentation.enable = true; documentation.nixos.enable = true; environment.noXlibs = false; diff --git a/nixos/modules/module-list.nix b/nixos/modules/module-list.nix index 9d9f2e9057c..0ccf97234ff 100644 --- a/nixos/modules/module-list.nix +++ b/nixos/modules/module-list.nix @@ -975,6 +975,7 @@ ./services/security/hockeypuck.nix ./services/security/hologram-server.nix ./services/security/hologram-agent.nix + ./services/security/kanidm.nix ./services/security/munge.nix ./services/security/nginx-sso.nix ./services/security/oauth2_proxy.nix diff --git a/nixos/modules/services/home-automation/home-assistant.nix b/nixos/modules/services/home-automation/home-assistant.nix index 6022227f6ea..e255e5d2218 100644 --- a/nixos/modules/services/home-automation/home-assistant.nix +++ b/nixos/modules/services/home-automation/home-assistant.nix @@ -360,7 +360,14 @@ in { }; config = mkIf cfg.enable { - networking.firewall.allowedTCPPorts = mkIf cfg.openFirewall [ cfg.port ]; + assertions = [ + { + assertion = cfg.openFirewall -> !isNull cfg.config; + message = "openFirewall can only be used with a declarative config"; + } + ]; + + networking.firewall.allowedTCPPorts = mkIf cfg.openFirewall [ cfg.config.http.server_port ]; systemd.services.home-assistant = { description = "Home Assistant"; diff --git a/nixos/modules/services/misc/heisenbridge.nix b/nixos/modules/services/misc/heisenbridge.nix index 7ce8a23d9af..deefb061d8b 100644 --- a/nixos/modules/services/misc/heisenbridge.nix +++ b/nixos/modules/services/misc/heisenbridge.nix @@ -204,7 +204,7 @@ in NoNewPrivileges = true; LockPersonality = true; RestrictRealtime = true; - SystemCallFilter = ["@system-service" "~@priviledged" "@chown"]; + SystemCallFilter = ["@system-service" "~@privileged" "@chown"]; SystemCallArchitectures = "native"; RestrictAddressFamilies = "AF_INET AF_INET6"; }; diff --git a/nixos/modules/services/security/kanidm.nix b/nixos/modules/services/security/kanidm.nix new file mode 100644 index 00000000000..a7c51b9a877 --- /dev/null +++ b/nixos/modules/services/security/kanidm.nix @@ -0,0 +1,345 @@ +{ config, lib, options, pkgs, ... }: +let + cfg = config.services.kanidm; + settingsFormat = pkgs.formats.toml { }; + # Remove null values, so we can document optional values that don't end up in the generated TOML file. + filterConfig = lib.converge (lib.filterAttrsRecursive (_: v: v != null)); + serverConfigFile = settingsFormat.generate "server.toml" (filterConfig cfg.serverSettings); + clientConfigFile = settingsFormat.generate "kanidm-config.toml" (filterConfig cfg.clientSettings); + unixConfigFile = settingsFormat.generate "kanidm-unixd.toml" (filterConfig cfg.unixSettings); + + defaultServiceConfig = { + BindReadOnlyPaths = [ + "/nix/store" + "-/etc/resolv.conf" + "-/etc/nsswitch.conf" + "-/etc/hosts" + "-/etc/localtime" + ]; + CapabilityBoundingSet = ""; + # 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; + 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 = [ ]; + RestrictNamespaces = true; + RestrictRealtime = true; + RestrictSUIDSGID = true; + SystemCallArchitectures = "native"; + SystemCallFilter = [ "@system-service" "~@privileged @resources @setuid @keyring" ]; + # Does not work well with the temporary root + #UMask = "0066"; + }; + +in +{ + options.services.kanidm = { + enableClient = lib.mkEnableOption "the Kanidm client"; + enableServer = lib.mkEnableOption "the Kanidm server"; + enablePam = lib.mkEnableOption "the Kanidm PAM and NSS integration."; + + serverSettings = lib.mkOption { + type = lib.types.submodule { + freeformType = settingsFormat.type; + + options = { + bindaddress = lib.mkOption { + description = "Address/port combination the webserver binds to."; + example = "[::1]:8443"; + type = lib.types.str; + }; + # Should be optional but toml does not accept null + ldapbindaddress = lib.mkOption { + description = '' + Address and port the LDAP server is bound to. Setting this to null disables the LDAP interface. + ''; + example = "[::1]:636"; + default = null; + type = lib.types.nullOr lib.types.str; + }; + origin = lib.mkOption { + description = "The origin of your Kanidm instance. Must have https as protocol."; + example = "https://idm.example.org"; + type = lib.types.strMatching "^https://.*"; + }; + domain = lib.mkOption { + description = '' + The domain that Kanidm manages. Must be below or equal to the domain + specified in serverSettings.origin. + This can be left at null, only if your instance has the role ReadOnlyReplica. + While it is possible to change the domain later on, it requires extra steps! + Please consider the warnings and execute the steps described + in the documentation. + ''; + example = "example.org"; + default = null; + type = lib.types.nullOr lib.types.str; + }; + db_path = lib.mkOption { + description = "Path to Kanidm database."; + default = "/var/lib/kanidm/kanidm.db"; + readOnly = true; + type = lib.types.path; + }; + log_level = lib.mkOption { + description = "Log level of the server."; + default = "default"; + type = lib.types.enum [ "default" "verbose" "perfbasic" "perffull" ]; + }; + role = lib.mkOption { + description = "The role of this server. This affects the replication relationship and thereby available features."; + default = "WriteReplica"; + type = lib.types.enum [ "WriteReplica" "WriteReplicaNoUI" "ReadOnlyReplica" ]; + }; + }; + }; + default = { }; + description = '' + Settings for Kanidm, see + the documentation + and example configuration + for possible values. + ''; + }; + + clientSettings = lib.mkOption { + type = lib.types.submodule { + freeformType = settingsFormat.type; + + options.uri = lib.mkOption { + description = "Address of the Kanidm server."; + example = "http://127.0.0.1:8080"; + type = lib.types.str; + }; + }; + description = '' + Configure Kanidm clients, needed for the PAM daemon. See + the documentation + and example configuration + for possible values. + ''; + }; + + unixSettings = lib.mkOption { + type = lib.types.submodule { + freeformType = settingsFormat.type; + + options.pam_allowed_login_groups = lib.mkOption { + description = "Kanidm groups that are allowed to login using PAM."; + example = "my_pam_group"; + type = lib.types.listOf lib.types.str; + }; + }; + description = '' + Configure Kanidm unix daemon. + See the documentation + and example configuration + for possible values. + ''; + }; + }; + + config = lib.mkIf (cfg.enableClient || cfg.enableServer || cfg.enablePam) { + assertions = + [ + { + assertion = !cfg.enableServer || ((cfg.serverSettings.tls_chain or null) == null) || (!lib.isStorePath cfg.serverSettings.tls_chain); + message = '' + points to + a file in the Nix store. You should use a quoted absolute path to + prevent this. + ''; + } + { + assertion = !cfg.enableServer || ((cfg.serverSettings.tls_key or null) == null) || (!lib.isStorePath cfg.serverSettings.tls_key); + message = '' + points to + a file in the Nix store. You should use a quoted absolute path to + prevent this. + ''; + } + { + assertion = !cfg.enableClient || options.services.kanidm.clientSettings.isDefined; + message = '' + needs to be configured + if the client is enabled. + ''; + } + { + assertion = !cfg.enablePam || options.services.kanidm.clientSettings.isDefined; + message = '' + needs to be configured + for the PAM daemon to connect to the Kanidm server. + ''; + } + { + assertion = !cfg.enableServer || (cfg.serverSettings.domain == null + -> cfg.serverSettings.role == "WriteReplica" || cfg.serverSettings.role == "WriteReplicaNoUI"); + message = '' + can only be set if this instance + is not a ReadOnlyReplica. Otherwise the db would inherit it from + the instance it follows. + ''; + } + ]; + + environment.systemPackages = lib.mkIf cfg.enableClient [ pkgs.kanidm ]; + + systemd.services.kanidm = lib.mkIf cfg.enableServer { + description = "kanidm identity management daemon"; + wantedBy = [ "multi-user.target" ]; + after = [ "network.target" ]; + serviceConfig = defaultServiceConfig // { + StateDirectory = "kanidm"; + StateDirectoryMode = "0700"; + ExecStart = "${pkgs.kanidm}/bin/kanidmd server -c ${serverConfigFile}"; + User = "kanidm"; + Group = "kanidm"; + + AmbientCapabilities = [ "CAP_NET_BIND_SERVICE" ]; + CapabilityBoundingSet = [ "CAP_NET_BIND_SERVICE" ]; + # This would otherwise override the CAP_NET_BIND_SERVICE capability. + PrivateUsers = false; + # Port needs to be exposed to the host network + PrivateNetwork = false; + RestrictAddressFamilies = [ "AF_INET" "AF_INET6" ]; + TemporaryFileSystem = "/:ro"; + }; + environment.RUST_LOG = "info"; + }; + + systemd.services.kanidm-unixd = lib.mkIf cfg.enablePam { + description = "Kanidm PAM daemon"; + wantedBy = [ "multi-user.target" ]; + after = [ "network.target" ]; + restartTriggers = [ unixConfigFile clientConfigFile ]; + serviceConfig = defaultServiceConfig // { + CacheDirectory = "kanidm-unixd"; + CacheDirectoryMode = "0700"; + RuntimeDirectory = "kanidm-unixd"; + ExecStart = "${pkgs.kanidm}/bin/kanidm_unixd"; + User = "kanidm-unixd"; + Group = "kanidm-unixd"; + + BindReadOnlyPaths = [ + "/nix/store" + "-/etc/resolv.conf" + "-/etc/nsswitch.conf" + "-/etc/hosts" + "-/etc/localtime" + "-/etc/kanidm" + "-/etc/static/kanidm" + ]; + BindPaths = [ + # To create the socket + "/run/kanidm-unixd:/var/run/kanidm-unixd" + ]; + # Needs to connect to kanidmd + PrivateNetwork = false; + RestrictAddressFamilies = [ "AF_INET" "AF_INET6" "AF_UNIX" ]; + TemporaryFileSystem = "/:ro"; + }; + environment.RUST_LOG = "info"; + }; + + systemd.services.kanidm-unixd-tasks = lib.mkIf cfg.enablePam { + description = "Kanidm PAM home management daemon"; + wantedBy = [ "multi-user.target" ]; + after = [ "network.target" "kanidm-unixd.service" ]; + partOf = [ "kanidm-unixd.service" ]; + restartTriggers = [ unixConfigFile clientConfigFile ]; + serviceConfig = { + ExecStart = "${pkgs.kanidm}/bin/kanidm_unixd_tasks"; + + BindReadOnlyPaths = [ + "/nix/store" + "-/etc/resolv.conf" + "-/etc/nsswitch.conf" + "-/etc/hosts" + "-/etc/localtime" + "-/etc/kanidm" + "-/etc/static/kanidm" + ]; + BindPaths = [ + # To manage home directories + "/home" + # To connect to kanidm-unixd + "/run/kanidm-unixd:/var/run/kanidm-unixd" + ]; + # CAP_DAC_OVERRIDE is needed to ignore ownership of unixd socket + CapabilityBoundingSet = [ "CAP_CHOWN" "CAP_FOWNER" "CAP_DAC_OVERRIDE" "CAP_DAC_READ_SEARCH" ]; + IPAddressDeny = "any"; + # Need access to users + PrivateUsers = false; + # Need access to home directories + ProtectHome = false; + RestrictAddressFamilies = [ "AF_UNIX" ]; + TemporaryFileSystem = "/:ro"; + }; + environment.RUST_LOG = "info"; + }; + + # These paths are hardcoded + environment.etc = lib.mkMerge [ + (lib.mkIf options.services.kanidm.clientSettings.isDefined { + "kanidm/config".source = clientConfigFile; + }) + (lib.mkIf cfg.enablePam { + "kanidm/unixd".source = unixConfigFile; + }) + ]; + + system.nssModules = lib.mkIf cfg.enablePam [ pkgs.kanidm ]; + + system.nssDatabases.group = lib.optional cfg.enablePam "kanidm"; + system.nssDatabases.passwd = lib.optional cfg.enablePam "kanidm"; + + users.groups = lib.mkMerge [ + (lib.mkIf cfg.enableServer { + kanidm = { }; + }) + (lib.mkIf cfg.enablePam { + kanidm-unixd = { }; + }) + ]; + users.users = lib.mkMerge [ + (lib.mkIf cfg.enableServer { + kanidm = { + description = "Kanidm server"; + isSystemUser = true; + group = "kanidm"; + packages = with pkgs; [ kanidm ]; + }; + }) + (lib.mkIf cfg.enablePam { + kanidm-unixd = { + description = "Kanidm PAM daemon"; + isSystemUser = true; + group = "kanidm-unixd"; + }; + }) + ]; + }; + + meta.maintainers = with lib.maintainers; [ erictapen Flakebi ]; + meta.buildDocsInSandbox = false; +} diff --git a/nixos/modules/system/boot/plymouth.nix b/nixos/modules/system/boot/plymouth.nix index 78ae8e9d20b..8b57cae3c40 100644 --- a/nixos/modules/system/boot/plymouth.nix +++ b/nixos/modules/system/boot/plymouth.nix @@ -4,7 +4,10 @@ with lib; let - inherit (pkgs) plymouth nixos-icons; + inherit (pkgs) nixos-icons; + plymouth = pkgs.plymouth.override { + systemd = config.boot.initrd.systemd.package; + }; cfg = config.boot.plymouth; opt = options.boot.plymouth; @@ -143,7 +146,88 @@ in systemd.services.systemd-ask-password-plymouth.wantedBy = [ "multi-user.target" ]; systemd.paths.systemd-ask-password-plymouth.wantedBy = [ "multi-user.target" ]; - boot.initrd.extraUtilsCommands = '' + boot.initrd.systemd = { + extraBin.plymouth = "${plymouth}/bin/plymouth"; # for the recovery shell + storePaths = [ + "${lib.getBin config.boot.initrd.systemd.package}/bin/systemd-tty-ask-password-agent" + "${plymouth}/bin/plymouthd" + "${plymouth}/sbin/plymouthd" + ]; + packages = [ plymouth ]; # systemd units + contents = { + # Files + "/etc/plymouth/plymouthd.conf".source = configFile; + "/etc/plymouth/plymouthd.defaults".source = "${plymouth}/share/plymouth/plymouthd.defaults"; + "/etc/plymouth/logo.png".source = cfg.logo; + # Directories + "/etc/plymouth/plugins".source = pkgs.runCommand "plymouth-initrd-plugins" {} '' + # Check if the actual requested theme is here + if [[ ! -d ${themesEnv}/share/plymouth/themes/${cfg.theme} ]]; then + echo "The requested theme: ${cfg.theme} is not provided by any of the packages in boot.plymouth.themePackages" + exit 1 + fi + + moduleName="$(sed -n 's,ModuleName *= *,,p' ${themesEnv}/share/plymouth/themes/${cfg.theme}/${cfg.theme}.plymouth)" + + mkdir -p $out/renderers + # module might come from a theme + cp ${themesEnv}/lib/plymouth/{text,details,label,$moduleName}.so $out + cp ${plymouth}/lib/plymouth/renderers/{drm,frame-buffer}.so $out/renderers + ''; + "/etc/plymouth/themes".source = pkgs.runCommand "plymouth-initrd-themes" {} '' + # Check if the actual requested theme is here + if [[ ! -d ${themesEnv}/share/plymouth/themes/${cfg.theme} ]]; then + echo "The requested theme: ${cfg.theme} is not provided by any of the packages in boot.plymouth.themePackages" + exit 1 + fi + + mkdir $out + cp -r ${themesEnv}/share/plymouth/themes/${cfg.theme} $out + # Copy more themes if the theme depends on others + for theme in $(grep -hRo '/etc/plymouth/themes/.*$' ${themesEnv} | xargs -n1 basename); do + if [[ -d "${themesEnv}/theme" ]]; then + cp -r "${themesEnv}/theme" $out + fi + done + ''; + + # Fonts + "/etc/plymouth/fonts".source = pkgs.runCommand "plymouth-initrd-fonts" {} '' + mkdir -p $out + cp ${cfg.font} $out + ''; + "/etc/fonts/fonts.conf".text = '' + + + + /etc/plymouth/fonts + + ''; + }; + # Properly enable units. These are the units that arch copies + services = { + plymouth-halt.wantedBy = [ "halt.target" ]; + plymouth-kexec.wantedBy = [ "kexec.target" ]; + plymouth-poweroff.wantedBy = [ "poweroff.target" ]; + plymouth-quit-wait.wantedBy = [ "multi-user.target" ]; + plymouth-quit.wantedBy = [ "multi-user.target" ]; + plymouth-read-write.wantedBy = [ "sysinit.target" ]; + plymouth-reboot.wantedBy = [ "reboot.target" ]; + plymouth-start.wantedBy = [ "initrd-switch-root.target" "sysinit.target" ]; + plymouth-switch-root-initramfs.wantedBy = [ "halt.target" "kexec.target" "plymouth-switch-root-initramfs.service" "poweroff.target" "reboot.target" ]; + plymouth-switch-root.wantedBy = [ "initrd-switch-root.target" ]; + }; + }; + + # Insert required udev rules. We take stage 2 systemd because the udev + # rules are only generated when building with logind. + boot.initrd.services.udev.packages = [ (pkgs.runCommand "initrd-plymouth-udev-rules" {} '' + mkdir -p $out/etc/udev/rules.d + cp ${config.systemd.package.out}/lib/udev/rules.d/{70-uaccess,71-seat}.rules $out/etc/udev/rules.d + sed -i '/loginctl/d' $out/etc/udev/rules.d/71-seat.rules + '') ]; + + boot.initrd.extraUtilsCommands = lib.mkIf (!config.boot.initrd.systemd.enable) '' copy_bin_and_libs ${plymouth}/bin/plymouth copy_bin_and_libs ${plymouth}/bin/plymouthd @@ -198,18 +282,18 @@ in EOF ''; - boot.initrd.extraUtilsCommandsTest = '' + boot.initrd.extraUtilsCommandsTest = mkIf (!config.boot.initrd.enable) '' $out/bin/plymouthd --help >/dev/null $out/bin/plymouth --help >/dev/null ''; - boot.initrd.extraUdevRulesCommands = '' + boot.initrd.extraUdevRulesCommands = mkIf (!config.boot.initrd.enable) '' cp ${config.systemd.package}/lib/udev/rules.d/{70-uaccess,71-seat}.rules $out sed -i '/loginctl/d' $out/71-seat.rules ''; # We use `mkAfter` to ensure that LUKS password prompt would be shown earlier than the splash screen. - boot.initrd.preLVMCommands = mkAfter '' + boot.initrd.preLVMCommands = mkIf (!config.boot.initrd.enable) (mkAfter '' mkdir -p /etc/plymouth mkdir -p /run/plymouth ln -s ${configFile} /etc/plymouth/plymouthd.conf @@ -221,16 +305,16 @@ in plymouthd --mode=boot --pid-file=/run/plymouth/pid --attach-to-session plymouth show-splash - ''; + ''); - boot.initrd.postMountCommands = '' + boot.initrd.postMountCommands = mkIf (!config.boot.initrd.enable) '' plymouth update-root-fs --new-root-dir="$targetRoot" ''; # `mkBefore` to ensure that any custom prompts would be visible. - boot.initrd.preFailCommands = mkBefore '' + boot.initrd.preFailCommands = mkIf (!config.boot.initrd.enable) (mkBefore '' plymouth quit --wait - ''; + ''); }; diff --git a/nixos/modules/system/boot/systemd/nspawn.nix b/nixos/modules/system/boot/systemd/nspawn.nix index bf9995d03cc..da03c60db52 100644 --- a/nixos/modules/system/boot/systemd/nspawn.nix +++ b/nixos/modules/system/boot/systemd/nspawn.nix @@ -16,7 +16,7 @@ let "LimitNOFILE" "LimitAS" "LimitNPROC" "LimitMEMLOCK" "LimitLOCKS" "LimitSIGPENDING" "LimitMSGQUEUE" "LimitNICE" "LimitRTPRIO" "LimitRTTIME" "OOMScoreAdjust" "CPUAffinity" "Hostname" "ResolvConf" "Timezone" - "LinkJournal" + "LinkJournal" "Ephemeral" "AmbientCapability" ]) (assertValueOneOf "Boot" boolValues) (assertValueOneOf "ProcessTwo" boolValues) @@ -26,11 +26,13 @@ let checkFiles = checkUnitConfig "Files" [ (assertOnlyFields [ "ReadOnly" "Volatile" "Bind" "BindReadOnly" "TemporaryFileSystem" - "Overlay" "OverlayReadOnly" "PrivateUsersChown" + "Overlay" "OverlayReadOnly" "PrivateUsersChown" "BindUser" + "Inaccessible" "PrivateUserOwnership" ]) (assertValueOneOf "ReadOnly" boolValues) (assertValueOneOf "Volatile" (boolValues ++ [ "state" ])) (assertValueOneOf "PrivateUsersChown" boolValues) + (assertValueOneOf "PrivateUserOwnership" [ "off" "chown" "map" "auto" ]) ]; checkNetwork = checkUnitConfig "Network" [ diff --git a/nixos/modules/tasks/filesystems/zfs.nix b/nixos/modules/tasks/filesystems/zfs.nix index 5eca68798d5..c8bbfe9769b 100644 --- a/nixos/modules/tasks/filesystems/zfs.nix +++ b/nixos/modules/tasks/filesystems/zfs.nix @@ -58,6 +58,13 @@ let # latter case it makes one last attempt at importing, allowing the system to # (eventually) boot even with a degraded pool. importLib = {zpoolCmd, awkCmd, cfgZfs}: '' + for o in $(cat /proc/cmdline); do + case $o in + zfs_force|zfs_force=1|zfs_force=y) + ZFS_FORCE="-f" + ;; + esac + done poolReady() { pool="$1" state="$("${zpoolCmd}" import 2>/dev/null | "${awkCmd}" "/pool: $pool/ { found = 1 }; /state:/ { if (found == 1) { print \$2; exit } }; END { if (found == 0) { print \"MISSING\" } }")" @@ -78,6 +85,95 @@ let } ''; + getPoolFilesystems = pool: + filter (x: x.fsType == "zfs" && (fsToPool x) == pool) config.system.build.fileSystems; + + getPoolMounts = prefix: pool: + let + # Remove the "/" suffix because even though most mountpoints + # won't have it, the "/" mountpoint will, and we can't have the + # trailing slash in "/sysroot/" in stage 1. + mountPoint = fs: escapeSystemdPath (prefix + (lib.removeSuffix "/" fs.mountPoint)); + in + map (x: "${mountPoint x}.mount") (getPoolFilesystems pool); + + getKeyLocations = pool: + if isBool cfgZfs.requestEncryptionCredentials + then "${cfgZfs.package}/sbin/zfs list -rHo name,keylocation,keystatus ${pool}" + else "${cfgZfs.package}/sbin/zfs list -Ho name,keylocation,keystatus ${toString (filter (x: datasetToPool x == pool) cfgZfs.requestEncryptionCredentials)}"; + + createImportService = { pool, systemd, force, prefix ? "" }: + nameValuePair "zfs-import-${pool}" { + description = "Import ZFS pool \"${pool}\""; + # we need systemd-udev-settle to ensure devices are available + # In the future, hopefully someone will complete this: + # https://github.com/zfsonlinux/zfs/pull/4943 + requires = [ "systemd-udev-settle.service" ]; + after = [ + "systemd-udev-settle.service" + "systemd-modules-load.service" + "systemd-ask-password-console.service" + ]; + wantedBy = (getPoolMounts prefix pool) ++ [ "local-fs.target" ]; + before = (getPoolMounts prefix pool) ++ [ "local-fs.target" ]; + unitConfig = { + DefaultDependencies = "no"; + }; + serviceConfig = { + Type = "oneshot"; + RemainAfterExit = true; + }; + environment.ZFS_FORCE = optionalString force "-f"; + script = (importLib { + # See comments at importLib definition. + zpoolCmd = "${cfgZfs.package}/sbin/zpool"; + awkCmd = "${pkgs.gawk}/bin/awk"; + inherit cfgZfs; + }) + '' + poolImported "${pool}" && exit + echo -n "importing ZFS pool \"${pool}\"..." + # Loop across the import until it succeeds, because the devices needed may not be discovered yet. + for trial in `seq 1 60`; do + poolReady "${pool}" && poolImport "${pool}" && break + sleep 1 + done + poolImported "${pool}" || poolImport "${pool}" # Try one last time, e.g. to import a degraded pool. + if poolImported "${pool}"; then + ${optionalString (if isBool cfgZfs.requestEncryptionCredentials + then cfgZfs.requestEncryptionCredentials + else cfgZfs.requestEncryptionCredentials != []) '' + ${getKeyLocations pool} | while IFS=$'\t' read ds kl ks; do + { + if [[ "$ks" != unavailable ]]; then + continue + fi + case "$kl" in + none ) + ;; + prompt ) + tries=3 + success=false + while [[ $success != true ]] && [[ $tries -gt 0 ]]; do + ${systemd}/bin/systemd-ask-password "Enter key for $ds:" | ${cfgZfs.package}/sbin/zfs load-key "$ds" \ + && success=true \ + || tries=$((tries - 1)) + done + [[ $success = true ]] + ;; + * ) + ${cfgZfs.package}/sbin/zfs load-key "$ds" + ;; + esac + } < /dev/null # To protect while read ds kl in case anything reads stdin + done + ''} + echo "Successfully imported ${pool}" + else + exit 1 + fi + ''; + }; + zedConf = generators.toKeyValue { mkKeyValue = generators.mkKeyValueDefault { mkValueString = v: @@ -428,14 +524,6 @@ in ''; postDeviceCommands = concatStringsSep "\n" (['' ZFS_FORCE="${optionalString cfgZfs.forceImportRoot "-f"}" - - for o in $(cat /proc/cmdline); do - case $o in - zfs_force|zfs_force=1) - ZFS_FORCE="-f" - ;; - esac - done ''] ++ [(importLib { # See comments at importLib definition. zpoolCmd = "zpool"; @@ -464,6 +552,21 @@ in zfs load-key ${fs} '') cfgZfs.requestEncryptionCredentials} '') rootPools)); + + # Systemd in stage 1 + systemd = { + packages = [cfgZfs.package]; + services = listToAttrs (map (pool: createImportService { + inherit pool; + systemd = config.boot.initrd.systemd.package; + force = cfgZfs.forceImportRoot; + prefix = "/sysroot"; + }) rootPools); + extraBin = { + # zpool and zfs are already in thanks to fsPackages + awk = "${pkgs.gawk}/bin/awk"; + }; + }; }; systemd.shutdownRamfs.contents."/etc/systemd/system-shutdown/zpool".source = pkgs.writeShellScript "zpool-sync-shutdown" '' @@ -521,79 +624,11 @@ in systemd.packages = [ cfgZfs.package ]; systemd.services = let - getPoolFilesystems = pool: - filter (x: x.fsType == "zfs" && (fsToPool x) == pool) config.system.build.fileSystems; - - getPoolMounts = pool: - let - mountPoint = fs: escapeSystemdPath fs.mountPoint; - in - map (x: "${mountPoint x}.mount") (getPoolFilesystems pool); - - createImportService = pool: - nameValuePair "zfs-import-${pool}" { - description = "Import ZFS pool \"${pool}\""; - # we need systemd-udev-settle until https://github.com/zfsonlinux/zfs/pull/4943 is merged - requires = [ "systemd-udev-settle.service" ]; - after = [ - "systemd-udev-settle.service" - "systemd-modules-load.service" - "systemd-ask-password-console.service" - ]; - wantedBy = (getPoolMounts pool) ++ [ "local-fs.target" ]; - before = (getPoolMounts pool) ++ [ "local-fs.target" ]; - unitConfig = { - DefaultDependencies = "no"; - }; - serviceConfig = { - Type = "oneshot"; - RemainAfterExit = true; - }; - environment.ZFS_FORCE = optionalString cfgZfs.forceImportAll "-f"; - script = (importLib { - # See comments at importLib definition. - zpoolCmd = "${cfgZfs.package}/sbin/zpool"; - awkCmd = "${pkgs.gawk}/bin/awk"; - inherit cfgZfs; - }) + '' - poolImported "${pool}" && exit - echo -n "importing ZFS pool \"${pool}\"..." - # Loop across the import until it succeeds, because the devices needed may not be discovered yet. - for trial in `seq 1 60`; do - poolReady "${pool}" && poolImport "${pool}" && break - sleep 1 - done - poolImported "${pool}" || poolImport "${pool}" # Try one last time, e.g. to import a degraded pool. - if poolImported "${pool}"; then - ${optionalString (if isBool cfgZfs.requestEncryptionCredentials - then cfgZfs.requestEncryptionCredentials - else cfgZfs.requestEncryptionCredentials != []) '' - ${cfgZfs.package}/sbin/zfs list -rHo name,keylocation ${pool} | while IFS=$'\t' read ds kl; do - { - ${optionalString (!isBool cfgZfs.requestEncryptionCredentials) '' - if ! echo '${concatStringsSep "\n" cfgZfs.requestEncryptionCredentials}' | grep -qFx "$ds"; then - continue - fi - ''} - case "$kl" in - none ) - ;; - prompt ) - ${config.systemd.package}/bin/systemd-ask-password "Enter key for $ds:" | ${cfgZfs.package}/sbin/zfs load-key "$ds" - ;; - * ) - ${cfgZfs.package}/sbin/zfs load-key "$ds" - ;; - esac - } < /dev/null # To protect while read ds kl in case anything reads stdin - done - ''} - echo "Successfully imported ${pool}" - else - exit 1 - fi - ''; - }; + createImportService' = pool: createImportService { + inherit pool; + systemd = config.systemd.package; + force = cfgZfs.forceImportAll; + }; # This forces a sync of any ZFS pools prior to poweroff, even if they're set # to sync=disabled. @@ -619,7 +654,7 @@ in wantedBy = [ "zfs.target" ]; }; - in listToAttrs (map createImportService dataPools ++ + in listToAttrs (map createImportService' dataPools ++ map createSyncService allPools ++ map createZfsService [ "zfs-mount" "zfs-share" "zfs-zed" ]); diff --git a/nixos/tests/all-tests.nix b/nixos/tests/all-tests.nix index 923464a0c9a..0c085b64efa 100644 --- a/nixos/tests/all-tests.nix +++ b/nixos/tests/all-tests.nix @@ -253,6 +253,7 @@ in k3s-single-node = handleTest ./k3s-single-node.nix {}; k3s-single-node-docker = handleTest ./k3s-single-node-docker.nix {}; kafka = handleTest ./kafka.nix {}; + kanidm = handleTest ./kanidm.nix {}; kbd-setfont-decompress = handleTest ./kbd-setfont-decompress.nix {}; kbd-update-search-paths-patch = handleTest ./kbd-update-search-paths-patch.nix {}; kea = handleTest ./kea.nix {}; @@ -284,7 +285,6 @@ in loki = handleTest ./loki.nix {}; lvm2 = handleTest ./lvm2 {}; lxd = handleTest ./lxd.nix {}; - lxd-image = handleTest ./lxd-image.nix {}; lxd-nftables = handleTest ./lxd-nftables.nix {}; lxd-image-server = handleTest ./lxd-image-server.nix {}; #logstash = handleTest ./logstash.nix {}; diff --git a/nixos/tests/common/lxd/config.yaml b/nixos/tests/common/lxd/config.yaml new file mode 100644 index 00000000000..3bb667ed43f --- /dev/null +++ b/nixos/tests/common/lxd/config.yaml @@ -0,0 +1,24 @@ +storage_pools: + - name: default + driver: dir + config: + source: /var/lxd-pool + +networks: + - name: lxdbr0 + type: bridge + config: + ipv4.address: auto + ipv6.address: none + +profiles: + - name: default + devices: + eth0: + name: eth0 + network: lxdbr0 + type: nic + root: + path: / + pool: default + type: disk diff --git a/nixos/tests/installed-tests/default.nix b/nixos/tests/installed-tests/default.nix index fd16b481168..c6fb37cfe58 100644 --- a/nixos/tests/installed-tests/default.nix +++ b/nixos/tests/installed-tests/default.nix @@ -106,6 +106,5 @@ in malcontent = callInstalledTest ./malcontent.nix {}; ostree = callInstalledTest ./ostree.nix {}; pipewire = callInstalledTest ./pipewire.nix {}; - power-profiles-daemon = callInstalledTest ./power-profiles-daemon.nix {}; xdg-desktop-portal = callInstalledTest ./xdg-desktop-portal.nix {}; } diff --git a/nixos/tests/installed-tests/power-profiles-daemon.nix b/nixos/tests/installed-tests/power-profiles-daemon.nix deleted file mode 100644 index 43629a0155d..00000000000 --- a/nixos/tests/installed-tests/power-profiles-daemon.nix +++ /dev/null @@ -1,9 +0,0 @@ -{ pkgs, lib, makeInstalledTest, ... }: - -makeInstalledTest { - tested = pkgs.power-profiles-daemon; - - testConfig = { - services.power-profiles-daemon.enable = true; - }; -} diff --git a/nixos/tests/installer-systemd-stage-1.nix b/nixos/tests/installer-systemd-stage-1.nix index a8b418626e6..d02387ee80e 100644 --- a/nixos/tests/installer-systemd-stage-1.nix +++ b/nixos/tests/installer-systemd-stage-1.nix @@ -27,7 +27,7 @@ simpleUefiGrubSpecialisation simpleUefiSystemdBoot # swraid - # zfsroot + zfsroot ; } diff --git a/nixos/tests/kanidm.nix b/nixos/tests/kanidm.nix new file mode 100644 index 00000000000..d34f680f522 --- /dev/null +++ b/nixos/tests/kanidm.nix @@ -0,0 +1,75 @@ +import ./make-test-python.nix ({ pkgs, ... }: + let + certs = import ./common/acme/server/snakeoil-certs.nix; + serverDomain = certs.domain; + in + { + name = "kanidm"; + meta.maintainers = with pkgs.lib.maintainers; [ erictapen Flakebi ]; + + nodes.server = { config, pkgs, lib, ... }: { + services.kanidm = { + enableServer = true; + serverSettings = { + origin = "https://${serverDomain}"; + domain = serverDomain; + bindaddress = "[::1]:8443"; + ldapbindaddress = "[::1]:636"; + }; + }; + + services.nginx = { + enable = true; + recommendedProxySettings = true; + virtualHosts."${serverDomain}" = { + forceSSL = true; + sslCertificate = certs."${serverDomain}".cert; + sslCertificateKey = certs."${serverDomain}".key; + locations."/".proxyPass = "http://[::1]:8443"; + }; + }; + + security.pki.certificateFiles = [ certs.ca.cert ]; + + networking.hosts."::1" = [ serverDomain ]; + networking.firewall.allowedTCPPorts = [ 80 443 ]; + + users.users.kanidm.shell = pkgs.bashInteractive; + + environment.systemPackages = with pkgs; [ kanidm openldap ripgrep ]; + }; + + nodes.client = { pkgs, nodes, ... }: { + services.kanidm = { + enableClient = true; + clientSettings = { + uri = "https://${serverDomain}"; + }; + }; + + networking.hosts."${nodes.server.config.networking.primaryIPAddress}" = [ serverDomain ]; + + security.pki.certificateFiles = [ certs.ca.cert ]; + }; + + testScript = { nodes, ... }: + let + ldapBaseDN = builtins.concatStringsSep "," (map (s: "dc=" + s) (pkgs.lib.splitString "." serverDomain)); + + # We need access to the config file in the test script. + filteredConfig = pkgs.lib.converge + (pkgs.lib.filterAttrsRecursive (_: v: v != null)) + nodes.server.config.services.kanidm.serverSettings; + serverConfigFile = (pkgs.formats.toml { }).generate "server.toml" filteredConfig; + + in + '' + start_all() + server.wait_for_unit("kanidm.service") + server.wait_until_succeeds("curl -sf https://${serverDomain} | grep Kanidm") + server.wait_until_succeeds("ldapsearch -H ldap://[::1]:636 -b '${ldapBaseDN}' -x '(name=test)'") + client.wait_until_succeeds("kanidm login -D anonymous && kanidm self whoami | grep anonymous@${serverDomain}") + (rv, result) = server.execute("kanidmd recover_account -d quiet -c ${serverConfigFile} -n admin 2>&1 | rg -o '[A-Za-z0-9]{48}'") + assert rv == 0 + ''; + }) diff --git a/nixos/tests/lxd-image-server.nix b/nixos/tests/lxd-image-server.nix index fa40e33e74d..072f4570c2c 100644 --- a/nixos/tests/lxd-image-server.nix +++ b/nixos/tests/lxd-image-server.nix @@ -1,54 +1,21 @@ -import ./make-test-python.nix ({ pkgs, ...} : +import ./make-test-python.nix ({ pkgs, lib, ... } : let - # Since we don't have access to the internet during the tests, we have to - # pre-fetch lxd containers beforehand. - # - # I've chosen to import Alpine Linux, because its image is turbo-tiny and, - # generally, sufficient for our tests. - alpine-meta = pkgs.fetchurl { - url = "https://tarballs.nixos.org/alpine/3.12/lxd.tar.xz"; - hash = "sha256-1tcKaO9lOkvqfmG/7FMbfAEToAuFy2YMewS8ysBKuLA="; - }; - - alpine-rootfs = pkgs.fetchurl { - url = "https://tarballs.nixos.org/alpine/3.12/rootfs.tar.xz"; - hash = "sha256-Tba9sSoaiMtQLY45u7p5DMqXTSDgs/763L/SQp0bkCA="; + lxd-image = import ../release.nix { + configuration = { + # Building documentation makes the test unnecessarily take a longer time: + documentation.enable = lib.mkForce false; + }; }; - lxd-config = pkgs.writeText "config.yaml" '' - storage_pools: - - name: default - driver: dir - config: - source: /var/lxd-pool - - networks: - - name: lxdbr0 - type: bridge - config: - ipv4.address: auto - ipv6.address: none - - profiles: - - name: default - devices: - eth0: - name: eth0 - network: lxdbr0 - type: nic - root: - path: / - pool: default - type: disk - ''; - + lxd-image-metadata = lxd-image.lxdMeta.${pkgs.system}; + lxd-image-rootfs = lxd-image.lxdImage.${pkgs.system}; in { name = "lxd-image-server"; meta = with pkgs.lib.maintainers; { - maintainers = [ mkg20001 ]; + maintainers = [ mkg20001 patryk27 ]; }; nodes.machine = { lib, ... }: { @@ -100,20 +67,20 @@ in { # lxd expects the pool's directory to already exist machine.succeed("mkdir /var/lxd-pool") - machine.succeed( - "cat ${lxd-config} | lxd init --preseed" + "cat ${./common/lxd/config.yaml} | lxd init --preseed" ) machine.succeed( - "lxc image import ${alpine-meta} ${alpine-rootfs} --alias alpine" + "lxc image import ${lxd-image-metadata}/*/*.tar.xz ${lxd-image-rootfs}/*/*.tar.xz --alias nixos" ) - loc = "/var/www/simplestreams/images/iats/alpine/amd64/default/v1" + loc = "/var/www/simplestreams/images/iats/nixos/amd64/default/v1" with subtest("push image to server"): - machine.succeed("lxc launch alpine test") - machine.succeed("lxc stop test") + machine.succeed("lxc launch nixos test") + machine.sleep(5) + machine.succeed("lxc stop -f test") machine.succeed("lxc publish --public test --alias=testimg") machine.succeed("lxc image export testimg") machine.succeed("ls >&2") diff --git a/nixos/tests/lxd-image.nix b/nixos/tests/lxd-image.nix deleted file mode 100644 index 4930b55f190..00000000000 --- a/nixos/tests/lxd-image.nix +++ /dev/null @@ -1,89 +0,0 @@ -# This test ensures that the nixOS lxd images builds and functions properly -# It has been extracted from `lxd.nix` to seperate failures of just the image and the lxd software - -import ./make-test-python.nix ({ pkgs, ...} : let - release = import ../release.nix { - /* configuration = { - environment.systemPackages = with pkgs; [ stdenv ]; # inject stdenv so rebuild test works - }; */ - }; - - metadata = release.lxdMeta.${pkgs.system}; - image = release.lxdImage.${pkgs.system}; - - lxd-config = pkgs.writeText "config.yaml" '' - storage_pools: - - name: default - driver: dir - config: - source: /var/lxd-pool - - networks: - - name: lxdbr0 - type: bridge - config: - ipv4.address: auto - ipv6.address: none - - profiles: - - name: default - devices: - eth0: - name: eth0 - network: lxdbr0 - type: nic - root: - path: / - pool: default - type: disk - ''; -in { - name = "lxd-image"; - - meta = with pkgs.lib.maintainers; { - maintainers = [ mkg20001 ]; - }; - - nodes.machine = { lib, ... }: { - virtualisation = { - # disk full otherwise - diskSize = 2048; - - lxc.lxcfs.enable = true; - lxd.enable = true; - }; - }; - - testScript = '' - machine.wait_for_unit("sockets.target") - machine.wait_for_unit("lxd.service") - machine.wait_for_file("/var/lib/lxd/unix.socket") - - # It takes additional second for lxd to settle - machine.sleep(1) - - # lxd expects the pool's directory to already exist - machine.succeed("mkdir /var/lxd-pool") - - machine.succeed( - "cat ${lxd-config} | lxd init --preseed" - ) - - # TODO: test custom built container aswell - - with subtest("importing container works"): - machine.succeed("lxc image import ${metadata}/*/*.tar.xz ${image}/*/*.tar.xz --alias nixos") - - with subtest("launching container works"): - machine.succeed("lxc launch nixos machine -c security.nesting=true") - # make sure machine boots up properly - machine.sleep(5) - - with subtest("container shell works"): - machine.succeed("echo true | lxc exec machine /run/current-system/sw/bin/bash -") - machine.succeed("lxc exec machine /run/current-system/sw/bin/true") - - # with subtest("rebuilding works"): - # machine.succeed("lxc exec machine /run/current-system/sw/bin/nixos-rebuild switch") - ''; -}) diff --git a/nixos/tests/lxd.nix b/nixos/tests/lxd.nix index 162bbcc47e8..15d16564d64 100644 --- a/nixos/tests/lxd.nix +++ b/nixos/tests/lxd.nix @@ -1,79 +1,18 @@ -import ./make-test-python.nix ({ pkgs, ...} : +import ./make-test-python.nix ({ pkgs, lib, ... } : let - # Since we don't have access to the internet during the tests, we have to - # pre-fetch lxd containers beforehand. - # - # I've chosen to import Alpine Linux, because its image is turbo-tiny and, - # generally, sufficient for our tests. - alpine-meta-x86 = pkgs.fetchurl { - url = "https://tarballs.nixos.org/alpine/3.12/lxd.tar.xz"; - hash = "sha256-1tcKaO9lOkvqfmG/7FMbfAEToAuFy2YMewS8ysBKuLA="; - }; - alpine-meta-for = arch: pkgs.stdenv.mkDerivation { - name = "alpine-meta-${arch}"; - version = "3.12"; - unpackPhase = "true"; - buildPhase = '' - runHook preBuild - - tar xvf ${alpine-meta-x86} - sed -i 's/architecture: .*/architecture: ${arch}/' metadata.yaml - - runHook postBuild - ''; - installPhase = '' - runHook preInstall - - tar czRf $out * - - runHook postInstall - ''; - }; + lxd-image = import ../release.nix { + configuration = { + # Building documentation makes the test unnecessarily take a longer time: + documentation.enable = lib.mkForce false; - alpine-meta = { - x86_64-linux = alpine-meta-x86; - aarch64-linux = alpine-meta-for "aarch64"; - }.${pkgs.system} or (throw "Unsupported system: ${pkgs.system}"); - - alpine-rootfs = { - x86_64-linux = pkgs.fetchurl { - url = "https://tarballs.nixos.org/alpine/3.12/rootfs.tar.xz"; - hash = "sha256-Tba9sSoaiMtQLY45u7p5DMqXTSDgs/763L/SQp0bkCA="; - }; - aarch64-linux = pkgs.fetchurl { - url = "https://dl-cdn.alpinelinux.org/alpine/v3.15/releases/aarch64/alpine-minirootfs-3.15.4-aarch64.tar.gz"; - hash = "sha256-9kBz8Jwmo8XepJhTMt5zilCaHHpflnUH7y9+0To39Us="; + # Our tests require `grep` & friends: + environment.systemPackages = with pkgs; [ busybox ]; }; - }.${pkgs.system} or (throw "Unsupported system: ${pkgs.system}"); - - lxd-config = pkgs.writeText "config.yaml" '' - storage_pools: - - name: default - driver: dir - config: - source: /var/lxd-pool - - networks: - - name: lxdbr0 - type: bridge - config: - ipv4.address: auto - ipv6.address: none - - profiles: - - name: default - devices: - eth0: - name: eth0 - network: lxdbr0 - type: nic - root: - path: / - pool: default - type: disk - ''; + }; + lxd-image-metadata = lxd-image.lxdMeta.${pkgs.system}; + lxd-image-rootfs = lxd-image.lxdImage.${pkgs.system}; in { name = "lxd"; @@ -84,6 +23,8 @@ in { nodes.machine = { lib, ... }: { virtualisation = { + diskSize = 2048; + # Since we're testing `limits.cpu`, we've gotta have a known number of # cores to lean on cores = 2; @@ -108,61 +49,66 @@ in { machine.succeed("mkdir /var/lxd-pool") machine.succeed( - "cat ${lxd-config} | lxd init --preseed" + "cat ${./common/lxd/config.yaml} | lxd init --preseed" ) machine.succeed( - "lxc image import ${alpine-meta} ${alpine-rootfs} --alias alpine" + "lxc image import ${lxd-image-metadata}/*/*.tar.xz ${lxd-image-rootfs}/*/*.tar.xz --alias nixos" ) - with subtest("Containers can be launched and destroyed"): - machine.succeed("lxc launch alpine test") - machine.succeed("lxc exec test true") - machine.succeed("lxc delete -f test") + with subtest("Container can be managed"): + machine.succeed("lxc launch nixos container") + machine.sleep(5) + machine.succeed("echo true | lxc exec container /run/current-system/sw/bin/bash -") + machine.succeed("lxc exec container true") + machine.succeed("lxc delete -f container") - with subtest("Containers are being mounted with lxcfs inside"): - machine.succeed("lxc launch alpine test") + with subtest("Container is mounted with lxcfs inside"): + machine.succeed("lxc launch nixos container") + machine.sleep(5) ## ---------- ## ## limits.cpu ## - machine.succeed("lxc config set test limits.cpu 1") - machine.succeed("lxc restart test") + machine.succeed("lxc config set container limits.cpu 1") + machine.succeed("lxc restart container") + machine.sleep(5) - # Since Alpine doesn't have `nproc` pre-installed, we've gotta resort - # to the primal methods assert ( "1" - == machine.succeed("lxc exec test grep -- -c ^processor /proc/cpuinfo").strip() + == machine.succeed("lxc exec container grep -- -c ^processor /proc/cpuinfo").strip() ) - machine.succeed("lxc config set test limits.cpu 2") - machine.succeed("lxc restart test") + machine.succeed("lxc config set container limits.cpu 2") + machine.succeed("lxc restart container") + machine.sleep(5) assert ( "2" - == machine.succeed("lxc exec test grep -- -c ^processor /proc/cpuinfo").strip() + == machine.succeed("lxc exec container grep -- -c ^processor /proc/cpuinfo").strip() ) ## ------------- ## ## limits.memory ## - machine.succeed("lxc config set test limits.memory 64MB") - machine.succeed("lxc restart test") + machine.succeed("lxc config set container limits.memory 64MB") + machine.succeed("lxc restart container") + machine.sleep(5) assert ( "MemTotal: 62500 kB" - == machine.succeed("lxc exec test grep -- MemTotal /proc/meminfo").strip() + == machine.succeed("lxc exec container grep -- MemTotal /proc/meminfo").strip() ) - machine.succeed("lxc config set test limits.memory 128MB") - machine.succeed("lxc restart test") + machine.succeed("lxc config set container limits.memory 128MB") + machine.succeed("lxc restart container") + machine.sleep(5) assert ( "MemTotal: 125000 kB" - == machine.succeed("lxc exec test grep -- MemTotal /proc/meminfo").strip() + == machine.succeed("lxc exec container grep -- MemTotal /proc/meminfo").strip() ) - machine.succeed("lxc delete -f test") + machine.succeed("lxc delete -f container") ''; }) diff --git a/pkgs/applications/editors/emacs/elisp-packages/ement/default.nix b/pkgs/applications/editors/emacs/elisp-packages/ement/default.nix index ccbfe76719e..d6e8de3efad 100644 --- a/pkgs/applications/editors/emacs/elisp-packages/ement/default.nix +++ b/pkgs/applications/editors/emacs/elisp-packages/ement/default.nix @@ -13,13 +13,13 @@ trivialBuild { pname = "ement"; - version = "unstable-2022-04-22"; + version = "unstable-2022-05-05"; src = fetchFromGitHub { owner = "alphapapa"; repo = "ement.el"; - rev = "70da19e4c9210d362b1d6d9c17ab2c034a03250d"; - sha256 = "sha256-Pxul0WrtyH2XZzF0fOOitLc3x/kc+Qc11RDH0n+Hm04="; + rev = "84739451afa8355360966dfa788d469d9dc4a8e3"; + sha256 = "sha256-XdegBKZfoKbFaMM/l8249VD9KKC5/4gQIK6ggPcoOaE="; }; packageRequires = [ diff --git a/pkgs/applications/graphics/inkscape/default.nix b/pkgs/applications/graphics/inkscape/default.nix index d29d1d65346..75bfe5cff93 100644 --- a/pkgs/applications/graphics/inkscape/default.nix +++ b/pkgs/applications/graphics/inkscape/default.nix @@ -80,6 +80,13 @@ stdenv.mkDerivation rec { url = "https://gitlab.com/inkscape/inkscape/-/commit/a18c57ffff313fd08bc8a44f6b6bf0b01d7e9b75.patch"; sha256 = "UZb8ZTtfA5667uo5ZlVQ5vPowiSgd4ItAJ9U1BOsRQg="; }) + + # Fix build with poppler 22.04 + # https://gitlab.com/inkscape/inkscape/-/merge_requests/4266 + (fetchpatch { + url = "https://gitlab.com/inkscape/inkscape/-/commit/d989cdf1059c78bc3bb6414330242073768d640b.patch"; + sha256 = "2cJZdunbRgPIwhJgz1dQoQRw3ZYZ2Fp6c3hpVBV2PbE="; + }) ]; postPatch = '' diff --git a/pkgs/applications/misc/ausweisapp2/default.nix b/pkgs/applications/misc/ausweisapp2/default.nix index 9f3c1c82b5e..6f55e5dd17c 100644 --- a/pkgs/applications/misc/ausweisapp2/default.nix +++ b/pkgs/applications/misc/ausweisapp2/default.nix @@ -3,13 +3,13 @@ mkDerivation rec { pname = "AusweisApp2"; - version = "1.22.4"; + version = "1.22.5"; src = fetchFromGitHub { owner = "Governikus"; repo = "AusweisApp2"; rev = version; - sha256 = "sha256-Mms7Vibq1Rlb2XbxiV4o1UsjDRJcwG5ZZdPOWHjnW2A="; + sha256 = "sha256-EuHg8JrI6ZoyTXqD3v4cfk4/NovAj4fF2NY1V2ZF64c="; }; nativeBuildInputs = [ cmake pkg-config ]; diff --git a/pkgs/applications/misc/mediainfo-gui/default.nix b/pkgs/applications/misc/mediainfo-gui/default.nix index 0ce8d8c373d..fc2c2ad618d 100644 --- a/pkgs/applications/misc/mediainfo-gui/default.nix +++ b/pkgs/applications/misc/mediainfo-gui/default.nix @@ -1,17 +1,16 @@ -{ lib, stdenv, fetchurl, autoreconfHook, pkg-config, libzen, libmediainfo, wxGTK30-gtk3 +{ lib, stdenv, fetchurl, autoreconfHook, pkg-config, libmediainfo, wxGTK30-gtk3 , desktop-file-utils, libSM, imagemagick }: stdenv.mkDerivation rec { - version = "21.09"; + version = "22.03"; pname = "mediainfo-gui"; src = fetchurl { url = "https://mediaarea.net/download/source/mediainfo/${version}/mediainfo_${version}.tar.xz"; - sha256 = "0mqcqm8y2whnbdi2ry7jd755gfl5ccdqhwjh67hsyr7c0ajxk3vv"; + sha256 = "sha256-Yjb5Kh1XqBdLPzDqbd6Kq1ONj2IPcoIk2FE3MWmAK+Q="; }; nativeBuildInputs = [ autoreconfHook pkg-config ]; - buildInputs = [ libzen libmediainfo wxGTK30-gtk3 desktop-file-utils libSM - imagemagick ]; + buildInputs = [ libmediainfo wxGTK30-gtk3 desktop-file-utils libSM imagemagick ]; sourceRoot = "./MediaInfo/Project/GNU/GUI/"; diff --git a/pkgs/applications/misc/swaynotificationcenter/default.nix b/pkgs/applications/misc/swaynotificationcenter/default.nix index a93436362ad..c05778d6aae 100644 --- a/pkgs/applications/misc/swaynotificationcenter/default.nix +++ b/pkgs/applications/misc/swaynotificationcenter/default.nix @@ -4,6 +4,7 @@ , meson , ninja , pkg-config +, scdoc , vala , gtk3 , glib @@ -20,16 +21,16 @@ stdenv.mkDerivation rec { pname = "SwayNotificationCenter"; - version = "0.3"; + version = "0.5"; src = fetchFromGitHub { owner = "ErikReider"; repo = "SwayNotificationCenter"; rev = "v${version}"; - hash = "sha256-gXo/V2FHkHZBRmaimqJCzi0BqS4tP9IniIlubBmK5u0="; + hash = "sha256-Jjbr6GJ0MHlO+T/simPNYQnB5b7Cr85j4GRjRGa5B6s="; }; - nativeBuildInputs = [ gobject-introspection meson ninja pkg-config vala wrapGAppsHook ]; + nativeBuildInputs = [ gobject-introspection meson ninja pkg-config scdoc vala wrapGAppsHook ]; buildInputs = [ dbus dbus-glib gdk-pixbuf glib gtk-layer-shell gtk3 json-glib libhandy librsvg ]; diff --git a/pkgs/applications/misc/sweethome3d/default.nix b/pkgs/applications/misc/sweethome3d/default.nix index f2c8e6075d9..3ea247f4b08 100644 --- a/pkgs/applications/misc/sweethome3d/default.nix +++ b/pkgs/applications/misc/sweethome3d/default.nix @@ -10,6 +10,7 @@ , gtk3 , gsettings-desktop-schemas , p7zip +, autoPatchelfHook , libXxf86vm , unzip }: @@ -41,14 +42,17 @@ let }; postPatch = '' - patchelf --set-rpath ${libXxf86vm}/lib lib/java3d-1.6/linux/amd64/libnativewindow_awt.so - patchelf --set-rpath ${libXxf86vm}/lib lib/java3d-1.6/linux/amd64/libnativewindow_x11.so - patchelf --set-rpath ${libXxf86vm}/lib lib/java3d-1.6/linux/i586/libnativewindow_awt.so - patchelf --set-rpath ${libXxf86vm}/lib lib/java3d-1.6/linux/i586/libnativewindow_x11.so + addAutoPatchelfSearchPath ${jre8}/lib/openjdk/jre/lib/ + autoPatchelf lib + + # Nix cannot see the runtime references to the paths we just patched in + # once they've been compressed into the .jar. Scan for and remember them + # as plain text so they don't get overlooked. + find . -name '*.so' | xargs strings | { grep '/nix/store' || :; } >> ./.jar-paths ''; - nativeBuildInputs = [ makeWrapper unzip ]; - buildInputs = [ ant jdk8 p7zip gtk3 gsettings-desktop-schemas ]; + nativeBuildInputs = [ makeWrapper unzip autoPatchelfHook ]; + buildInputs = [ ant jdk8 p7zip gtk3 gsettings-desktop-schemas libXxf86vm ]; buildPhase = '' runHook preBuild @@ -80,6 +84,13 @@ let --prefix XDG_DATA_DIRS : "$XDG_ICON_DIRS:${gtk3.out}/share:${gsettings-desktop-schemas}/share:$out/share:$GSETTINGS_SCHEMAS_PATH" \ --add-flags "-Dsun.java2d.opengl=true -jar $out/share/java/${module}-${version}.jar -cp $out/share/java/Furniture.jar:$out/share/java/Textures.jar:$out/share/java/Help.jar -d${toString stdenv.hostPlatform.parsed.cpu.bits}" + + # remember the store paths found inside the .jar libraries. note that + # which file they are in does not matter in particular, just that some + # file somewhere lists them in plain-text + mkdir -p $out/nix-support + cp .jar-paths $out/nix-support/depends + runHook postInstall ''; diff --git a/pkgs/applications/networking/browsers/firefox/librewolf/src.json b/pkgs/applications/networking/browsers/firefox/librewolf/src.json index f46736d0672..8f36d68e7f2 100644 --- a/pkgs/applications/networking/browsers/firefox/librewolf/src.json +++ b/pkgs/applications/networking/browsers/firefox/librewolf/src.json @@ -1,8 +1,8 @@ { - "packageVersion": "100.0-1", + "packageVersion": "100.0-2", "source": { - "rev": "100.0-1", - "sha256": "1xczvsd39g821bh5n12vnn7sgi0x5dqj6vfizkavxj0a05jb4fla" + "rev": "100.0-2", + "sha256": "0pr7fb91zw5qlnfvaavzksd3c2xzgn1344mmfnz9yx2g42vcyi7d" }, "firefox": { "version": "100.0", diff --git a/pkgs/applications/networking/browsers/microsoft-edge/default.nix b/pkgs/applications/networking/browsers/microsoft-edge/default.nix index 6598ba27a87..4acdd563d66 100644 --- a/pkgs/applications/networking/browsers/microsoft-edge/default.nix +++ b/pkgs/applications/networking/browsers/microsoft-edge/default.nix @@ -1,20 +1,20 @@ { beta = import ./browser.nix { channel = "beta"; - version = "99.0.1150.16"; + version = "101.0.1210.19"; revision = "1"; - sha256 = "sha256:0qsgs889d6qwxz9qf42psmjqfhmrqgp07srq5r38npl5pncr137h"; + sha256 = "sha256:1kgc19ryw69xiqppz90d6sa45g99hzkh7x5yk9d3xlh1gc1xn54p"; }; dev = import ./browser.nix { channel = "dev"; - version = "100.0.1163.1"; + version = "102.0.1227.0"; revision = "1"; - sha256 = "sha256:153faqxyw5f5b6cqnvd71dl7941znkzci8dwbcgaxway0b6882jq"; + sha256 = "sha256:0dnyandri7yg7c9812pnsxqszxyqcssxf87yskjg2vw95hawf11x"; }; stable = import ./browser.nix { channel = "stable"; - version = "98.0.1108.56"; + version = "100.0.1185.44"; revision = "1"; - sha256 = "sha256:03jbj2s2fs60fzfgsmyb284q7nckji87qgb86mvl5g0hbl19aza7"; + sha256 = "sha256:0zv1zyijh620xz36a6nmhv7rbv4ln5f245hyh0w1sngynsl1rz89"; }; } diff --git a/pkgs/applications/networking/instant-messengers/psi-plus/default.nix b/pkgs/applications/networking/instant-messengers/psi-plus/default.nix index aeb20d6779e..fe3f90346f1 100644 --- a/pkgs/applications/networking/instant-messengers/psi-plus/default.nix +++ b/pkgs/applications/networking/instant-messengers/psi-plus/default.nix @@ -43,13 +43,13 @@ assert enablePsiMedia -> enablePlugins; mkDerivation rec { pname = "psi-plus"; - version = "1.5.1615"; + version = "1.5.1618"; src = fetchFromGitHub { owner = "psi-plus"; repo = "psi-plus-snapshots"; rev = version; - sha256 = "sha256-aD+JVGmBWHUav2bH9rXGtgqI+/5lJTMrYLRP7E65JxI="; + sha256 = "sha256-ueZYFOZFCPQrg9etZCrY5ZTn7PZMkcuwbXVPPbW9S/A="; }; cmakeFlags = [ diff --git a/pkgs/applications/networking/irc/weechat/scripts/weechat-otr/default.nix b/pkgs/applications/networking/irc/weechat/scripts/weechat-otr/default.nix index 987271e4ffa..fd5f376ad26 100644 --- a/pkgs/applications/networking/irc/weechat/scripts/weechat-otr/default.nix +++ b/pkgs/applications/networking/irc/weechat/scripts/weechat-otr/default.nix @@ -24,6 +24,9 @@ let buildInputs = [ gmp ]; + # Tests are relying on old Python 2 modules. + doCheck = false; + preConfigure = '' sed -i 's,/usr/include,/no-such-dir,' configure sed -i "s!,'/usr/include/'!!" setup.py @@ -66,5 +69,9 @@ in stdenv.mkDerivation rec { license = licenses.gpl3; maintainers = with maintainers; [ oxzi ]; description = "WeeChat script for Off-the-Record messaging"; + knownVulnerabilities = [ + "There is no upstream release since 2018-03." + "Utilizes deprecated and vulnerable pycrypto library with Debian patches from 2020-04." + ]; }; } diff --git a/pkgs/applications/networking/mailreaders/neomutt/default.nix b/pkgs/applications/networking/mailreaders/neomutt/default.nix index 43cd7183c51..2bcfd839e28 100644 --- a/pkgs/applications/networking/mailreaders/neomutt/default.nix +++ b/pkgs/applications/networking/mailreaders/neomutt/default.nix @@ -4,14 +4,14 @@ }: stdenv.mkDerivation rec { - version = "20220415"; + version = "20220429"; pname = "neomutt"; src = fetchFromGitHub { owner = "neomutt"; repo = "neomutt"; rev = version; - sha256 = "sha256-iVKDgVN7YFPEMP+OISS7jRG9Whs2QG60yH1r2kw3MUQ="; + sha256 = "sha256-LBY7WtmEMg/PcMS/Tc5XEYunIWjoI4IQfUJURKgy1YA="; }; buildInputs = [ diff --git a/pkgs/applications/networking/n8n/default.nix b/pkgs/applications/networking/n8n/default.nix index 72b4c772048..86403883631 100644 --- a/pkgs/applications/networking/n8n/default.nix +++ b/pkgs/applications/networking/n8n/default.nix @@ -1,9 +1,8 @@ -{ pkgs, nodejs-14_x, stdenv, lib }: +{ pkgs, nodejs-16_x, stdenv, lib }: let nodePackages = import ./node-composition.nix { inherit pkgs; - nodejs = nodejs-14_x; inherit (stdenv.hostPlatform) system; }; in @@ -12,6 +11,13 @@ nodePackages.n8n.override { node-pre-gyp ]; + dontNpmInstall = true; + + postInstall = '' + mkdir -p $out/bin + ln -s $out/lib/node_modules/n8n/bin/n8n $out/bin/n8n + ''; + passthru.updateScript = ./generate-dependencies.sh; meta = with lib; { diff --git a/pkgs/applications/networking/n8n/generate-dependencies.sh b/pkgs/applications/networking/n8n/generate-dependencies.sh index f7412bc5e5e..7c1b90a0403 100755 --- a/pkgs/applications/networking/n8n/generate-dependencies.sh +++ b/pkgs/applications/networking/n8n/generate-dependencies.sh @@ -13,7 +13,7 @@ cd "$(dirname $(readlink -f $0))" node2nix \ - --14 \ + --nodejs-16 \ --strip-optional-dependencies \ --node-env node-env.nix \ --input package.json \ diff --git a/pkgs/applications/networking/n8n/node-composition.nix b/pkgs/applications/networking/n8n/node-composition.nix index 53bdef1f986..ca76a98f5a6 100644 --- a/pkgs/applications/networking/n8n/node-composition.nix +++ b/pkgs/applications/networking/n8n/node-composition.nix @@ -1,8 +1,8 @@ -# This file has been generated by node2nix 1.9.0. Do not edit! +# This file has been generated by node2nix 1.11.1. Do not edit! {pkgs ? import { inherit system; - }, system ? builtins.currentSystem, nodejs ? pkgs."nodejs-12_x"}: + }, system ? builtins.currentSystem, nodejs ? pkgs."nodejs-16_x"}: let nodeEnv = import ./node-env.nix { diff --git a/pkgs/applications/networking/n8n/node-env.nix b/pkgs/applications/networking/n8n/node-env.nix index 5f055785791..2590dd267a4 100644 --- a/pkgs/applications/networking/n8n/node-env.nix +++ b/pkgs/applications/networking/n8n/node-env.nix @@ -98,7 +98,7 @@ let '' + (lib.concatMapStrings (dependency: '' - if [ ! -e "${dependency.name}" ]; then + if [ ! -e "${dependency.packageName}" ]; then ${composePackage dependency} fi '' @@ -257,8 +257,8 @@ let var packageLock = JSON.parse(fs.readFileSync("./package-lock.json")); if(![1, 2].includes(packageLock.lockfileVersion)) { - process.stderr.write("Sorry, I only understand lock file versions 1 and 2!\n"); - process.exit(1); + process.stderr.write("Sorry, I only understand lock file versions 1 and 2!\n"); + process.exit(1); } if(packageLock.dependencies !== undefined) { @@ -390,7 +390,7 @@ let buildNodePackage = { name , packageName - , version + , version ? null , dependencies ? [] , buildInputs ? [] , production ? true @@ -409,7 +409,7 @@ let extraArgs = removeAttrs args [ "name" "dependencies" "buildInputs" "dontStrip" "dontNpmInstall" "preRebuild" "unpackPhase" "buildPhase" "meta" ]; in stdenv.mkDerivation ({ - name = "${name}-${version}"; + name = "${name}${if version == null then "" else "-${version}"}"; buildInputs = [ tarWrapper python nodejs ] ++ lib.optional (stdenv.isLinux) utillinux ++ lib.optional (stdenv.isDarwin) libtool @@ -441,6 +441,14 @@ let if [ -d "$out/lib/node_modules/.bin" ] then ln -s $out/lib/node_modules/.bin $out/bin + + # Patch the shebang lines of all the executables + ls $out/bin/* | while read i + do + file="$(readlink -f "$i")" + chmod u+rwx "$file" + patchShebangs "$file" + done fi # Create symlinks to the deployed manual page folders, if applicable @@ -471,7 +479,7 @@ let buildNodeDependencies = { name , packageName - , version + , version ? null , src , dependencies ? [] , buildInputs ? [] @@ -489,7 +497,7 @@ let extraArgs = removeAttrs args [ "name" "dependencies" "buildInputs" ]; in stdenv.mkDerivation ({ - name = "node-dependencies-${name}-${version}"; + name = "node-dependencies-${name}${if version == null then "" else "-${version}"}"; buildInputs = [ tarWrapper python nodejs ] ++ lib.optional (stdenv.isLinux) utillinux @@ -519,6 +527,7 @@ let if [ -f ${src}/package-lock.json ] then cp ${src}/package-lock.json . + chmod 644 package-lock.json fi ''} @@ -541,7 +550,7 @@ let buildNodeShell = { name , packageName - , version + , version ? null , src , dependencies ? [] , buildInputs ? [] @@ -557,9 +566,10 @@ let let nodeDependencies = buildNodeDependencies args; + extraArgs = removeAttrs args [ "name" "dependencies" "buildInputs" "dontStrip" "dontNpmInstall" "unpackPhase" "buildPhase" ]; in - stdenv.mkDerivation { - name = "node-shell-${name}-${version}"; + stdenv.mkDerivation ({ + name = "node-shell-${name}${if version == null then "" else "-${version}"}"; buildInputs = [ python nodejs ] ++ lib.optional (stdenv.isLinux) utillinux ++ buildInputs; buildCommand = '' @@ -578,7 +588,7 @@ let export NODE_PATH=${nodeDependencies}/lib/node_modules export PATH="${nodeDependencies}/bin:$PATH" ''; - }; + } // extraArgs); in { buildNodeSourceDist = lib.makeOverridable buildNodeSourceDist; diff --git a/pkgs/applications/networking/n8n/node-packages.nix b/pkgs/applications/networking/n8n/node-packages.nix index c0a2b9a5fd9..0b6f39726a7 100644 --- a/pkgs/applications/networking/n8n/node-packages.nix +++ b/pkgs/applications/networking/n8n/node-packages.nix @@ -1,16 +1,16 @@ -# This file has been generated by node2nix 1.9.0. Do not edit! +# This file has been generated by node2nix 1.11.1. Do not edit! {nodeEnv, fetchurl, fetchgit, nix-gitignore, stdenv, lib, globalBuildInputs ? []}: let sources = { - "@azure/abort-controller-1.0.5" = { + "@azure/abort-controller-1.1.0" = { name = "_at_azure_slash_abort-controller"; packageName = "@azure/abort-controller"; - version = "1.0.5"; + version = "1.1.0"; src = fetchurl { - url = "https://registry.npmjs.org/@azure/abort-controller/-/abort-controller-1.0.5.tgz"; - sha512 = "G5sjKExiVsbFQo+4YY5MBPOSsh3EUv6XmqjgJaF/VCjckWLGGKPUPGfbCSn6Xal6gzGoPQMOQ+wCCGNCX9NAPg=="; + url = "https://registry.npmjs.org/@azure/abort-controller/-/abort-controller-1.1.0.tgz"; + sha512 = "TrRLIoSQVzfAJX9H1JeFjzAoDGcoK1IYX1UImfceTZpsyYfWr09Ss1aHW1y5TrrR3iq6RZLBwJ3E24uwPhwahw=="; }; }; "@azure/core-asynciterator-polyfill-1.0.2" = { @@ -31,13 +31,13 @@ let sha512 = "7CU6DmCHIZp5ZPiZ9r3J17lTKMmYsm/zGvNkjArQwPkrLlZ1TZ+EUYfGgh2X31OLMVAQCTJZW4cXHJi02EbJnA=="; }; }; - "@azure/core-http-2.2.4" = { + "@azure/core-http-2.2.5" = { name = "_at_azure_slash_core-http"; packageName = "@azure/core-http"; - version = "2.2.4"; + version = "2.2.5"; src = fetchurl { - url = "https://registry.npmjs.org/@azure/core-http/-/core-http-2.2.4.tgz"; - sha512 = "QmmJmexXKtPyc3/rsZR/YTLDvMatzbzAypJmLzvlfxgz/SkgnqV/D4f6F2LsK6tBj1qhyp8BoXiOebiej0zz3A=="; + url = "https://registry.npmjs.org/@azure/core-http/-/core-http-2.2.5.tgz"; + sha512 = "kctMqSQ6zfnlFpuYzfUKadeTyOQYbIQ+3Rj7dzVC3Dk1dOnHroTwR9hLYKX8/n85iJpkyaksaXpuh5L7GJRYuQ=="; }; }; "@azure/core-lro-2.2.4" = { @@ -976,13 +976,13 @@ let sha512 = "z4oo33lmnvvNRqfUe3YjDGGpqu/L2+wXBIhMtwq6oqZ+exOUAkQYM6zd2VWKF7AIlajOF8ZZuPFfryTG9iLC/w=="; }; }; - "aws-sdk-2.1125.0" = { + "aws-sdk-2.1129.0" = { name = "aws-sdk"; packageName = "aws-sdk"; - version = "2.1125.0"; + version = "2.1129.0"; src = fetchurl { - url = "https://registry.npmjs.org/aws-sdk/-/aws-sdk-2.1125.0.tgz"; - sha512 = "2syNkKDqDcDmB/chc61a5xx+KYzaarLs1/KshE0b1Opp2oSq2FARyUBbk59HgwKaDUB61uPF33ZG9sHiIVx2hQ=="; + url = "https://registry.npmjs.org/aws-sdk/-/aws-sdk-2.1129.0.tgz"; + sha512 = "gQZaByfW7zKCg1n/kA+xDdLhI/SauaokRTq+lztK1cCCdFkR5CShcKeK/qUgVxjy43mwB7CkeTh1WUr2NMb0jg=="; }; }; "aws-sign2-0.7.0" = { @@ -1858,13 +1858,13 @@ let sha512 = "Kb2wC0fvsWfQrgk8HU5lW6U/Lcs8+9aaYcy4ZFc6DDlo4nZ7n70dEgE5rtR0oG6ufKDUnrwfWL1mXR5ljDatrQ=="; }; }; - "core-js-3.22.3" = { + "core-js-3.22.4" = { name = "core-js"; packageName = "core-js"; - version = "3.22.3"; + version = "3.22.4"; src = fetchurl { - url = "https://registry.npmjs.org/core-js/-/core-js-3.22.3.tgz"; - sha512 = "1t+2a/d2lppW1gkLXx3pKPVGbBdxXAkqztvWb1EJ8oF8O2gIGiytzflNiFEehYwVK/t2ryUsGBoOFFvNx95mbg=="; + url = "https://registry.npmjs.org/core-js/-/core-js-3.22.4.tgz"; + sha512 = "1uLykR+iOfYja+6Jn/57743gc9n73EWiOnSJJ4ba3B4fOEYDBv25MagmEZBxTp5cWq4b/KPx/l77zgsp28ju4w=="; }; }; "core-util-is-1.0.2" = { @@ -2641,13 +2641,13 @@ let sha512 = "GRnmB5gPyJpAhTQdSZTSp9uaPSvl09KoYcMQtsB9rQoOmzs9dH6ffeccH+Z+cv6P68Hu5bC6JjRh4Ah/mHSNRw=="; }; }; - "follow-redirects-1.14.9" = { + "follow-redirects-1.15.0" = { name = "follow-redirects"; packageName = "follow-redirects"; - version = "1.14.9"; + version = "1.15.0"; src = fetchurl { - url = "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.14.9.tgz"; - sha512 = "MQDfihBQYMcyy5dhRDJUHcw7lb2Pv/TuE6xP1vyraLukNDHKbDxDNaOE3NbCAdKQApno+GPRyo1YAp89yCjK4w=="; + url = "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.0.tgz"; + sha512 = "aExlJShTV4qOUOL7yF1U5tvLCB0xQuudbf6toyYA0E/acBNw71mvjFTnLaRp50aQaYocMR0a/RMMBIHeZnGyjQ=="; }; }; "for-each-0.3.3" = { @@ -4522,13 +4522,13 @@ let sha512 = "qIcmHAtVJotgiYo3vVMLwC9qaU5ih5ti4+aPu2I1onD6WEu8GMNF38AzIAceYl6U8EhvDB+DOsF/SjYHfl26iw=="; }; }; - "n8n-editor-ui-0.142.0" = { + "n8n-editor-ui-0.142.1" = { name = "n8n-editor-ui"; packageName = "n8n-editor-ui"; - version = "0.142.0"; + version = "0.142.1"; src = fetchurl { - url = "https://registry.npmjs.org/n8n-editor-ui/-/n8n-editor-ui-0.142.0.tgz"; - sha512 = "aDXm64Y+tcLicd0z9pIxhSfqCb/JjsMIAOJ7DB35HKg7riOE7TGBHkWQ6F61XEjusJLl6ZGr15V+9EoCTu+02g=="; + url = "https://registry.npmjs.org/n8n-editor-ui/-/n8n-editor-ui-0.142.1.tgz"; + sha512 = "Me8fk76HeWUmTPnksH4kzG0bKOp1yLFjAC4F+EcEllIIf+x75kjN+gSH4uwgvspzGCVO88ZnppWoGQwvHQpXQw=="; }; }; "n8n-nodes-base-0.173.0" = { @@ -4567,13 +4567,13 @@ let sha512 = "wynEP02LmIbLpcYw8uBKpcfF6dmg2vcpKqxeH5UcoKEYdExslsdUA4ugFauuaeYdTB76ez6gJW8XAZ6CgkXYxA=="; }; }; - "nanoid-3.3.3" = { + "nanoid-3.3.4" = { name = "nanoid"; packageName = "nanoid"; - version = "3.3.3"; + version = "3.3.4"; src = fetchurl { - url = "https://registry.npmjs.org/nanoid/-/nanoid-3.3.3.tgz"; - sha512 = "p1sjXuopFs0xg+fPASzQ28agW1oHD7xDsd9Xkf3T15H3c/cifrFHVwrh74PdoklAPi+i7MdRsE47vm2r6JoB+w=="; + url = "https://registry.npmjs.org/nanoid/-/nanoid-3.3.4.tgz"; + sha512 = "MqBkQh/OHTS2egovRtLk45wEyNXwF+cokD+1YPf9u5VfJiRdAiRwB2froX5Co9Rh20xs4siNPm8naNotSD6RBw=="; }; }; "native-duplexpair-1.0.0" = { @@ -4693,13 +4693,13 @@ let sha512 = "KUdDsspqx89sD4UUyUKzdlUOper3hRkDVkrKh/89G+d9WKsU5ox51NWS4tB1XR5dPUdR4SP0E3molyEfOvSa3g=="; }; }; - "nodemailer-6.7.4" = { + "nodemailer-6.7.5" = { name = "nodemailer"; packageName = "nodemailer"; - version = "6.7.4"; + version = "6.7.5"; src = fetchurl { - url = "https://registry.npmjs.org/nodemailer/-/nodemailer-6.7.4.tgz"; - sha512 = "TBSS3qS8WG45ycUwEvEA/3UM1o3sLz9jUl4TPUKPz4ImWWM6UgRCb5pLO+HOouDKEj57yNLOrzQlO8+9IjWZoA=="; + url = "https://registry.npmjs.org/nodemailer/-/nodemailer-6.7.5.tgz"; + sha512 = "6VtMpwhsrixq1HDYSBBHvW0GwiWawE75dS3oal48VqRhUvKJNnKnJo2RI/bCVQubj1vgrgscMNW4DHaD6xtMCg=="; }; }; "nopt-5.0.0" = { @@ -6367,13 +6367,13 @@ let sha512 = "VE0SOVEHCk7Qc8ulkWw3ntAzXuqf7S2lvwQaDLRnUeIEaKNQJzV6BwmLKhOqT61aGhfUMrXeaBk+oDGCzvhcug=="; }; }; - "sqlite3-5.0.6" = { + "sqlite3-5.0.7" = { name = "sqlite3"; packageName = "sqlite3"; - version = "5.0.6"; + version = "5.0.7"; src = fetchurl { - url = "https://registry.npmjs.org/sqlite3/-/sqlite3-5.0.6.tgz"; - sha512 = "uT1dC6N3ReF+jchY01zvl1wVFFJ5xO86wSnCpK39uA/zmAHBDm6TiAq1v876QKv8JgiijxQ7/fb5C2LPm7ZAJA=="; + url = "https://registry.npmjs.org/sqlite3/-/sqlite3-5.0.7.tgz"; + sha512 = "9PUfvpol1/5SI3WZawFINwpRz6qhUeJJtFNG6rr0CvDWMXN75PJPv+3b0aVEOOx5rAZIPcXW2zVasH8foqw7Gg=="; }; }; "sqlstring-2.3.3" = { @@ -6493,22 +6493,22 @@ let sha512 = "wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g=="; }; }; - "string.prototype.trimend-1.0.4" = { + "string.prototype.trimend-1.0.5" = { name = "string.prototype.trimend"; packageName = "string.prototype.trimend"; - version = "1.0.4"; + version = "1.0.5"; src = fetchurl { - url = "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.4.tgz"; - sha512 = "y9xCjw1P23Awk8EvTpcyL2NIr1j7wJ39f+k6lvRnSMz+mz9CGz9NYPelDk42kOz6+ql8xjfK8oYzy3jAP5QU5A=="; + url = "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.5.tgz"; + sha512 = "I7RGvmjV4pJ7O3kdf+LXFpVfdNOxtCW/2C8f6jNiW4+PQchwxkCDzlk1/7p+Wl4bqFIZeF47qAHXLuHHWKAxog=="; }; }; - "string.prototype.trimstart-1.0.4" = { + "string.prototype.trimstart-1.0.5" = { name = "string.prototype.trimstart"; packageName = "string.prototype.trimstart"; - version = "1.0.4"; + version = "1.0.5"; src = fetchurl { - url = "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.4.tgz"; - sha512 = "jh6e984OBfvxS50tdY2nRZnoC5/mLFKOREQfw8t5yytkoUsJRNxvI/E39qu1sD0OtWI3OC0XgKSmcWwziwYuZw=="; + url = "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.5.tgz"; + sha512 = "THx16TJCGlsN0o6dl2o6ncWUsdgnLRSA23rRE5pyGBw/mLr3Ej/R2LaqCtgP8VNMGZsvMWnf9ooZPyY2bHvUFg=="; }; }; "string_decoder-0.10.31" = { @@ -7534,13 +7534,13 @@ in n8n = nodeEnv.buildNodePackage { name = "n8n"; packageName = "n8n"; - version = "0.175.0"; + version = "0.175.1"; src = fetchurl { - url = "https://registry.npmjs.org/n8n/-/n8n-0.175.0.tgz"; - sha512 = "FKIroWsEZNZ/HUdM6iQ8QY6WxYs4uQufodBoKpbcu6JJKF/ufYO4U8lpIM0nV2YCMaB+JAVvswim0SUDB6KF3A=="; + url = "https://registry.npmjs.org/n8n/-/n8n-0.175.1.tgz"; + sha512 = "rInwNB6wxOs79EvC2HFALyDhdDPJwLVT+z1LivxLRD9dZOrtlMD9wdDfESpHYS5ikND4T5JW32HaxGF9nnzlJA=="; }; dependencies = [ - (sources."@azure/abort-controller-1.0.5" // { + (sources."@azure/abort-controller-1.1.0" // { dependencies = [ sources."tslib-2.4.0" ]; @@ -7551,7 +7551,7 @@ in sources."tslib-2.4.0" ]; }) - (sources."@azure/core-http-2.2.4" // { + (sources."@azure/core-http-2.2.5" // { dependencies = [ sources."tough-cookie-4.0.0" sources."tslib-2.4.0" @@ -7725,7 +7725,7 @@ in ]; }) sources."avsc-5.7.4" - (sources."aws-sdk-2.1125.0" // { + (sources."aws-sdk-2.1129.0" // { dependencies = [ sources."buffer-4.9.2" sources."events-1.1.1" @@ -7902,7 +7902,7 @@ in sources."cookie-0.4.1" sources."cookie-parser-1.4.6" sources."cookie-signature-1.0.6" - sources."core-js-3.22.3" + sources."core-js-3.22.4" sources."core-util-is-1.0.2" sources."crc-32-1.2.2" sources."cron-1.7.2" @@ -8012,7 +8012,7 @@ in }) sources."flatted-3.2.5" sources."fn.name-1.1.0" - sources."follow-redirects-1.14.9" + sources."follow-redirects-1.15.0" sources."for-each-0.3.3" sources."forever-agent-0.6.1" sources."form-data-4.0.0" @@ -8282,7 +8282,7 @@ in sources."mz-2.7.0" sources."n8n-core-0.116.0" sources."n8n-design-system-0.19.0" - sources."n8n-editor-ui-0.142.0" + sources."n8n-editor-ui-0.142.1" (sources."n8n-nodes-base-0.173.0" // { dependencies = [ sources."iconv-lite-0.6.3" @@ -8296,7 +8296,7 @@ in ]; }) sources."nanoclone-0.2.1" - sources."nanoid-3.3.3" + sources."nanoid-3.3.4" sources."native-duplexpair-1.0.0" (sources."nearley-2.20.1" // { dependencies = [ @@ -8317,7 +8317,7 @@ in sources."node-html-parser-5.3.3" sources."node-ssh-12.0.4" sources."nodeify-1.0.1" - sources."nodemailer-6.7.4" + sources."nodemailer-6.7.5" sources."nopt-5.0.0" sources."normalize-path-3.0.0" sources."normalize-wheel-1.0.1" @@ -8577,7 +8577,7 @@ in ]; }) sources."sprintf-js-1.1.2" - sources."sqlite3-5.0.6" + sources."sqlite3-5.0.7" sources."sqlstring-2.3.3" sources."sse-channel-3.1.1" sources."ssf-0.11.2" @@ -8591,8 +8591,8 @@ in sources."stream-shift-1.0.1" sources."string-similarity-4.0.4" sources."string-width-4.2.3" - sources."string.prototype.trimend-1.0.4" - sources."string.prototype.trimstart-1.0.4" + sources."string.prototype.trimend-1.0.5" + sources."string.prototype.trimstart-1.0.5" sources."string_decoder-0.10.31" sources."strip-ansi-6.0.1" sources."strtok3-6.3.0" diff --git a/pkgs/applications/networking/newsreaders/liferea/default.nix b/pkgs/applications/networking/newsreaders/liferea/default.nix index f4e4c8279de..4d62cc4c828 100644 --- a/pkgs/applications/networking/newsreaders/liferea/default.nix +++ b/pkgs/applications/networking/newsreaders/liferea/default.nix @@ -23,11 +23,11 @@ stdenv.mkDerivation rec { pname = "liferea"; - version = "1.12.9"; + version = "1.13.8"; src = fetchurl { url = "https://github.com/lwindolf/${pname}/releases/download/v${version}/${pname}-${version}.tar.bz2"; - sha256 = "06ybr1wjlfir8iqjx6x0v1knd4b2hsy30qmkk4kssy6ky2ahc66q"; + sha256 = "0x2857nhn98hlzqxmxb2h2wcasr5jkhciih71wcnp0cja60aw20h"; }; nativeBuildInputs = [ diff --git a/pkgs/applications/office/libreoffice/default.nix b/pkgs/applications/office/libreoffice/default.nix index 5ebde5e10de..a67c9c2a70a 100644 --- a/pkgs/applications/office/libreoffice/default.nix +++ b/pkgs/applications/office/libreoffice/default.nix @@ -90,6 +90,9 @@ in (mkDrv rec { url = "https://github.com/archlinux/svntogit-packages/raw/f82958b9538f86e41b51f1ba7134968d2f3788d1/trunk/poppler-22.03.0.patch"; sha256 = "5h4qJmx6Q3Q3dHUlSi8JXBziN2mAswGVWk5aDTLTwls="; }) + + # Fix build with poppler 22.04 + ./poppler-22-04-0.patch ]; ### QT/KDE diff --git a/pkgs/applications/office/libreoffice/poppler-22-04-0.patch b/pkgs/applications/office/libreoffice/poppler-22-04-0.patch new file mode 100644 index 00000000000..c907bf1680b --- /dev/null +++ b/pkgs/applications/office/libreoffice/poppler-22-04-0.patch @@ -0,0 +1,100 @@ +Patch from OpenSUSE +https://build.opensuse.org/package/view_file/LibreOffice:Factory/libreoffice/poppler-22-04-0.patch?expand=1&rev=45e176f964509ebe3560d0dbf1ec8be9 +Index: libreoffice-7.3.3.1/sdext/source/pdfimport/xpdfwrapper/pdfioutdev_gpl.cxx +=================================================================== +--- libreoffice-7.3.3.1.orig/sdext/source/pdfimport/xpdfwrapper/pdfioutdev_gpl.cxx ++++ libreoffice-7.3.3.1/sdext/source/pdfimport/xpdfwrapper/pdfioutdev_gpl.cxx +@@ -474,12 +474,21 @@ int PDFOutDev::parseFont( long long nNew + { + // TODO(P3): Unfortunately, need to read stream twice, since + // we must write byte count to stdout before ++#if POPPLER_CHECK_VERSION(22, 04, 0) // readEmbFontFile signature changed ++ auto pBuf = gfxFont->readEmbFontFile( m_pDoc->getXRef()); ++ if ( pBuf ) ++ { ++ aNewFont.isEmbedded = true; ++ nSize = pBuf->size(); ++ } ++#else + char* pBuf = gfxFont->readEmbFontFile( m_pDoc->getXRef(), &nSize ); + if( pBuf ) + { + aNewFont.isEmbedded = true; + gfree(pBuf); + } ++#endif + } + + m_aFontMap[ nNewId ] = aNewFont; +@@ -492,21 +501,35 @@ void PDFOutDev::writeFontFile( GfxFont* + return; + + int nSize = 0; ++#if POPPLER_CHECK_VERSION(22, 04, 0) // readEmbFontFile signature changed ++ auto pBuf = gfxFont->readEmbFontFile( m_pDoc->getXRef()); ++ if ( !pBuf ) ++ return; ++ nSize = pBuf->size(); ++#else + char* pBuf = gfxFont->readEmbFontFile( m_pDoc->getXRef(), &nSize ); + if( !pBuf ) + return; ++#endif + + // ---sync point--- see SYNC STREAMS above + fflush(stdout); + ++#if POPPLER_CHECK_VERSION(22, 04, 0) // readEmbFontFile signature changed ++ if( fwrite(pBuf->data(), sizeof(unsigned char), nSize, g_binary_out) != static_cast(nSize) ) ++ { ++#else + if( fwrite(pBuf, sizeof(char), nSize, g_binary_out) != static_cast(nSize) ) + { + gfree(pBuf); ++#endif + exit(1); // error + } + // ---sync point--- see SYNC STREAMS above + fflush(g_binary_out); ++#if !POPPLER_CHECK_VERSION(22, 04, 0) // readEmbFontFile signature changed + gfree(pBuf); ++#endif + } + + #if POPPLER_CHECK_VERSION(0, 83, 0) +@@ -759,7 +782,11 @@ void PDFOutDev::updateFont(GfxState *sta + { + assert(state); + ++#if POPPLER_CHECK_VERSION(22, 04, 0) ++ std::shared_ptr gfxFont = state->getFont(); ++#else + GfxFont *gfxFont = state->getFont(); ++#endif + if( !gfxFont ) + return; + +@@ -776,7 +803,11 @@ void PDFOutDev::updateFont(GfxState *sta + m_aFontMap.find( fontID ); + if( it == m_aFontMap.end() ) + { ++#if POPPLER_CHECK_VERSION(22, 04, 0) ++ nEmbedSize = parseFont( fontID, gfxFont.get(), state ); ++#else + nEmbedSize = parseFont( fontID, gfxFont, state ); ++#endif + it = m_aFontMap.find( fontID ); + } + +@@ -806,7 +837,11 @@ void PDFOutDev::updateFont(GfxState *sta + + if (nEmbedSize) + { ++#if POPPLER_CHECK_VERSION(22, 04, 0) ++ writeFontFile(gfxFont.get()); ++#else + writeFontFile(gfxFont); ++#endif + } + } + diff --git a/pkgs/applications/office/portfolio/default.nix b/pkgs/applications/office/portfolio/default.nix index 5e154510940..653e72a163e 100644 --- a/pkgs/applications/office/portfolio/default.nix +++ b/pkgs/applications/office/portfolio/default.nix @@ -25,11 +25,11 @@ let in stdenv.mkDerivation rec { pname = "PortfolioPerformance"; - version = "0.57.1"; + version = "0.57.2"; src = fetchurl { url = "https://github.com/buchen/portfolio/releases/download/${version}/PortfolioPerformance-${version}-linux.gtk.x86_64.tar.gz"; - sha256 = "sha256-uEEFkHyApf+TObcu+Yo5vBOs2Erq0IXGhbjzlEe8NmI="; + sha256 = "sha256-ftLKlNzr46iL/V+P3J1wtoUByGHHl7wrh4xctU4JYkM="; }; nativeBuildInputs = [ diff --git a/pkgs/applications/office/qownnotes/default.nix b/pkgs/applications/office/qownnotes/default.nix index 8617d623356..3fd9c341069 100644 --- a/pkgs/applications/office/qownnotes/default.nix +++ b/pkgs/applications/office/qownnotes/default.nix @@ -5,13 +5,13 @@ mkDerivation rec { pname = "qownnotes"; - version = "22.4.1"; + version = "22.5.0"; src = fetchurl { url = "https://download.tuxfamily.org/${pname}/src/${pname}-${version}.tar.xz"; # Fetch the checksum of current version with curl: # curl https://download.tuxfamily.org/qownnotes/src/qownnotes-.tar.xz.sha256 - sha256 = "b9ce77ecd5bb48bd6534068b0582dfaa3b828f800b19ddec80387a84e00766da"; + sha256 = "52a81401a4a03c77e28f37f56c3ebdc6696ff43c75cc9330d10ba7e801f48ccd"; }; nativeBuildInputs = [ qmake qttools ]; diff --git a/pkgs/applications/office/scribus/unstable.nix b/pkgs/applications/office/scribus/unstable.nix index 754c9ba03d4..d3f706bbf05 100644 --- a/pkgs/applications/office/scribus/unstable.nix +++ b/pkgs/applications/office/scribus/unstable.nix @@ -84,6 +84,11 @@ mkDerivation rec { url = "https://github.com/scribusproject/scribus/commit/48263954a7dee0be815b00f417ae365ab26cdd85.patch"; sha256 = "1WE9kALFw79bQH88NUafXaZ1Y/vJEKTIWxlk5c+opsQ="; }) + # For Poppler 22.04 + (fetchpatch { + url = "https://github.com/scribusproject/scribus/commit/f2237b8f0b5cf7690e864a22ef7a63a6d769fa36.patch"; + sha256 = "FXpLoX/a2Jy3GcfzrUUyVUfEAp5wAy2UfzfVA5lhwJw="; + }) ]; nativeBuildInputs = [ diff --git a/pkgs/applications/office/timeular/default.nix b/pkgs/applications/office/timeular/default.nix index 477ae48b5f4..50298247d5a 100644 --- a/pkgs/applications/office/timeular/default.nix +++ b/pkgs/applications/office/timeular/default.nix @@ -7,13 +7,13 @@ }: let - version = "3.9.1"; + version = "4.7.1"; pname = "timeular"; name = "${pname}-${version}"; src = fetchurl { url = "https://s3.amazonaws.com/timeular-desktop-packages/linux/production/Timeular-${version}.AppImage"; - sha256 = "103hy443p697jdkz6li8s1n6kg1r55jmiw2vbjz12kskf7njg4y4"; + sha256 = "sha256:0k8ywbdb41imq10ya9y27zks67a6drjb1h0hn8ycd7a6z6703rjz"; }; appimageContents = appimageTools.extractType2 { @@ -35,7 +35,7 @@ in appimageTools.wrapType2 rec { install -m 444 -D ${appimageContents}/timeular.desktop $out/share/applications/timeular.desktop install -m 444 -D ${appimageContents}/timeular.png $out/share/icons/hicolor/512x512/apps/timeular.png substituteInPlace $out/share/applications/timeular.desktop \ - --replace 'Exec=AppRun' 'Exec=${pname}' + --replace "Exec=AppRun --no-sandbox %U" "Exec=$out/bin/${pname}" ''; meta = with lib; { diff --git a/pkgs/applications/science/electronics/verilator/default.nix b/pkgs/applications/science/electronics/verilator/default.nix index 13876430822..05d7d0388f0 100644 --- a/pkgs/applications/science/electronics/verilator/default.nix +++ b/pkgs/applications/science/electronics/verilator/default.nix @@ -4,13 +4,13 @@ stdenv.mkDerivation rec { pname = "verilator"; - version = "4.220"; + version = "4.222"; src = fetchFromGitHub { owner = pname; repo = pname; rev = "v${version}"; - sha256 = "sha256-Y0j6j8kPCONlegFoWl46LXtfoiLhzMsHCVv+kLe7UyE="; + sha256 = "sha256-AvjcStbiXDdhJnaSJJ5Mp6zscvaxhb+A2J+0gpm2rFI="; }; enableParallelBuilding = true; diff --git a/pkgs/applications/version-management/got/default.nix b/pkgs/applications/version-management/got/default.nix index 9e444fb3b39..f38bb042c43 100644 --- a/pkgs/applications/version-management/got/default.nix +++ b/pkgs/applications/version-management/got/default.nix @@ -1,17 +1,17 @@ -{ lib, stdenv, fetchurl, pkg-config, openssl, libuuid, libmd, zlib, ncurses }: +{ lib, stdenv, fetchurl, pkg-config, openssl, libbsd, libuuid, libmd, zlib, ncurses }: stdenv.mkDerivation rec { pname = "got"; - version = "0.68.1"; + version = "0.69"; src = fetchurl { url = "https://gameoftrees.org/releases/portable/got-portable-${version}.tar.gz"; - sha256 = "122wignzrhsw00mfnh7mxcxvjyp9rk73yxzfyvmg7f5kmb0hng35"; + sha256 = "1cnl0yk866wzjwgas587kvb08njq7db71b5xqsdrwd1varp010vm"; }; nativeBuildInputs = [ pkg-config ]; - buildInputs = [ openssl libuuid libmd zlib ncurses ]; + buildInputs = [ openssl libbsd libuuid libmd zlib ncurses ]; doInstallCheck = true; diff --git a/pkgs/applications/version-management/meld/default.nix b/pkgs/applications/version-management/meld/default.nix index 462744641e3..f8f58cdcaba 100644 --- a/pkgs/applications/version-management/meld/default.nix +++ b/pkgs/applications/version-management/meld/default.nix @@ -36,6 +36,13 @@ python3.pkgs.buildPythonApplication rec { url = "https://gitlab.gnome.org/GNOME/meld/-/commit/cc7746c141d976a4779cf868774fae1fe7627a6d.patch"; sha256 = "sha256-4uJZyF00Z6svzrOebByZV1hutCZRkIQYC4rUxQr5fdQ="; }) + + # Fix view not rendering with adwaita-icon-theme 42 due to removed icons. + # https://gitlab.gnome.org/GNOME/meld/-/merge_requests/83 + (fetchpatch { + url = "https://gitlab.gnome.org/GNOME/meld/-/commit/f850cdf3eaf0f08abea003d5fae118a5e92a3d61.patch"; + sha256 = "PaK8Rpv79UwMUligm9pIY16JW/dm7eVXntAwTV4hnbE="; + }) ]; nativeBuildInputs = [ diff --git a/pkgs/applications/version-management/p4v/default.nix b/pkgs/applications/version-management/p4v/default.nix index 476df99d232..2e0e01e5c98 100644 --- a/pkgs/applications/version-management/p4v/default.nix +++ b/pkgs/applications/version-management/p4v/default.nix @@ -1,12 +1,38 @@ -{ stdenv, fetchurl, lib, qtbase, qtmultimedia, qtscript, qtsensors, qtwebengine, qtwebkit, openssl, xkeyboard_config, patchelfUnstable, wrapQtAppsHook }: +{ stdenv +, fetchurl +, lib +, qtbase +, qtwebengine +, qtdeclarative +, qtwebchannel +, syntax-highlighting +, openssl +, xkeyboard_config +, patchelfUnstable +, wrapQtAppsHook +, writeText +}: +let + # This abomination exists because p4v calls CRYPTO_set_mem_functions and + # expects it to succeed. The function will fail if CRYPTO_malloc has already + # been called, which happens at init time via qtwebengine -> ... -> libssh. I + # suspect it was meant to work with a version of Qt where openssl is + # statically linked or some other library is used. + crypto-hack = writeText "crypto-hack.c" '' + #include + int CRYPTO_set_mem_functions( + void *(*m)(size_t, const char *, int), + void *(*r)(void *, size_t, const char *, int), + void (*f)(void *, const char *, int)) { return 1; } + ''; -stdenv.mkDerivation rec { +in stdenv.mkDerivation rec { pname = "p4v"; - version = "2020.1.1966006"; + version = "2021.3.2186916"; src = fetchurl { - url = "https://cdist2.perforce.com/perforce/r20.1/bin.linux26x86_64/p4v.tgz"; - sha256 = "0zc70d7jgdrd2jli338n1h05hgb7jmmv8hvq205wh78vvllrlv10"; + url = "http://web.archive.org/web/20211118024745/https://cdist2.perforce.com/perforce/r21.3/bin.linux26x86_64/p4v.tgz"; + sha256 = "1zldg21xq4srww9pcfbv3p8320ghjnh333pz5r70z1gwbq4vf3jq"; }; dontBuild = true; @@ -15,11 +41,10 @@ stdenv.mkDerivation rec { ldLibraryPath = lib.makeLibraryPath [ stdenv.cc.cc.lib qtbase - qtmultimedia - qtscript - qtsensors qtwebengine - qtwebkit + qtdeclarative + qtwebchannel + syntax-highlighting openssl ]; @@ -29,14 +54,17 @@ stdenv.mkDerivation rec { cp -r bin $out mkdir -p $out/lib cp -r lib/P4VResources $out/lib + $CC -fPIC -shared -o $out/lib/libcrypto-hack.so ${crypto-hack} for f in $out/bin/*.bin ; do patchelf --set-rpath $ldLibraryPath --set-interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" $f # combining this with above breaks rpath (patchelf bug?) - patchelf --add-needed libstdc++.so $f \ + patchelf --add-needed libstdc++.so \ + --add-needed $out/lib/libcrypto-hack.so \ --clear-symbol-version _ZNSt20bad_array_new_lengthD1Ev \ --clear-symbol-version _ZTVSt20bad_array_new_length \ --clear-symbol-version _ZTISt20bad_array_new_length \ + --clear-symbol-version _ZdlPvm \ $f wrapQtApp $f \ --suffix QT_XKB_CONFIG_ROOT : ${xkeyboard_config}/share/X11/xkb diff --git a/pkgs/build-support/rust/build-rust-crate/default.nix b/pkgs/build-support/rust/build-rust-crate/default.nix index eea1e3baeec..e122871f8f5 100644 --- a/pkgs/build-support/rust/build-rust-crate/default.nix +++ b/pkgs/build-support/rust/build-rust-crate/default.nix @@ -346,6 +346,9 @@ crate_: lib.makeOverridable outputs = if buildTests then [ "out" ] else [ "out" "lib" ]; outputDev = if buildTests then [ "out" ] else [ "lib" ]; + meta = { + mainProgram = crateName; + }; } // extraDerivationAttrs ) ) diff --git a/pkgs/desktops/plasma-5/fetch.sh b/pkgs/desktops/plasma-5/fetch.sh index c7b7599c319..77129d34307 100644 --- a/pkgs/desktops/plasma-5/fetch.sh +++ b/pkgs/desktops/plasma-5/fetch.sh @@ -1 +1 @@ -WGET_ARGS=( https://download.kde.org/stable/plasma/5.24.4/ -A '*.tar.xz' ) +WGET_ARGS=( https://download.kde.org/stable/plasma/5.24.5/ -A '*.tar.xz' ) diff --git a/pkgs/desktops/plasma-5/srcs.nix b/pkgs/desktops/plasma-5/srcs.nix index fc9e97c7f68..d4369a90735 100644 --- a/pkgs/desktops/plasma-5/srcs.nix +++ b/pkgs/desktops/plasma-5/srcs.nix @@ -4,427 +4,427 @@ { bluedevil = { - version = "5.24.4"; + version = "5.24.5"; src = fetchurl { - url = "${mirror}/stable/plasma/5.24.4/bluedevil-5.24.4.tar.xz"; - sha256 = "1mph04r6l9bxml1brwifbnk6lkjxkzxx75b3g3myzijjv6f8wxw3"; - name = "bluedevil-5.24.4.tar.xz"; + url = "${mirror}/stable/plasma/5.24.5/bluedevil-5.24.5.tar.xz"; + sha256 = "1yhynfpgm2cwvimh63hihg5dm0hzjp20364bvjyyh108830rjsf9"; + name = "bluedevil-5.24.5.tar.xz"; }; }; breeze = { - version = "5.24.4"; + version = "5.24.5"; src = fetchurl { - url = "${mirror}/stable/plasma/5.24.4/breeze-5.24.4.tar.xz"; - sha256 = "01cqji6figwb95drcq9vrqlkv7xmpn2csbi2mvixbcdawqhywsg3"; - name = "breeze-5.24.4.tar.xz"; + url = "${mirror}/stable/plasma/5.24.5/breeze-5.24.5.tar.xz"; + sha256 = "18zhm9my0vhwiq95v3p48z8s5m4a5c7kw8n144ykqlm51nssc9c5"; + name = "breeze-5.24.5.tar.xz"; }; }; breeze-grub = { - version = "5.24.4"; + version = "5.24.5"; src = fetchurl { - url = "${mirror}/stable/plasma/5.24.4/breeze-grub-5.24.4.tar.xz"; - sha256 = "1p154g2x1g00iam2gkv7pml1r0b91b21s8fgrfrqg5pj45ysp5bc"; - name = "breeze-grub-5.24.4.tar.xz"; + url = "${mirror}/stable/plasma/5.24.5/breeze-grub-5.24.5.tar.xz"; + sha256 = "02lcv23l3zr0g6nggmrxz4pgq852fir9yramhaxmcg634pxiacni"; + name = "breeze-grub-5.24.5.tar.xz"; }; }; breeze-gtk = { - version = "5.24.4"; + version = "5.24.5"; src = fetchurl { - url = "${mirror}/stable/plasma/5.24.4/breeze-gtk-5.24.4.tar.xz"; - sha256 = "0s51azc2xmh7agbqlm9rn39c5qh6rfwyc2dq4sfv6vspm1883zmj"; - name = "breeze-gtk-5.24.4.tar.xz"; + url = "${mirror}/stable/plasma/5.24.5/breeze-gtk-5.24.5.tar.xz"; + sha256 = "0c25z69lyjczm05jraqk2f09sipkhpsz5zirwzqdq3apip06qw93"; + name = "breeze-gtk-5.24.5.tar.xz"; }; }; breeze-plymouth = { - version = "5.24.4"; + version = "5.24.5"; src = fetchurl { - url = "${mirror}/stable/plasma/5.24.4/breeze-plymouth-5.24.4.tar.xz"; - sha256 = "038pglghl40nyq6lzydijy3wnr5agvfzddjxrf6lc9m6qapqd37v"; - name = "breeze-plymouth-5.24.4.tar.xz"; + url = "${mirror}/stable/plasma/5.24.5/breeze-plymouth-5.24.5.tar.xz"; + sha256 = "044sbffr4sqvgkfbraa4rvlsih7zz9b300hipp33mwhpzyjjcpdc"; + name = "breeze-plymouth-5.24.5.tar.xz"; }; }; discover = { - version = "5.24.4"; + version = "5.24.5"; src = fetchurl { - url = "${mirror}/stable/plasma/5.24.4/discover-5.24.4.tar.xz"; - sha256 = "0smhys51chvjh2ij4mk03cfnq09n8cq22iag1ld9j2125l5iwa99"; - name = "discover-5.24.4.tar.xz"; + url = "${mirror}/stable/plasma/5.24.5/discover-5.24.5.tar.xz"; + sha256 = "18a8z9ifyyjmmc620dsh491vb1q3q9bxd8gfjf5k87mgwmg1wmwk"; + name = "discover-5.24.5.tar.xz"; }; }; drkonqi = { - version = "5.24.4"; + version = "5.24.5"; src = fetchurl { - url = "${mirror}/stable/plasma/5.24.4/drkonqi-5.24.4.tar.xz"; - sha256 = "1yn7yj8nwnxm1s0si2353wl17jv7c7l5dc7833ndl56phv2999x0"; - name = "drkonqi-5.24.4.tar.xz"; + url = "${mirror}/stable/plasma/5.24.5/drkonqi-5.24.5.tar.xz"; + sha256 = "1ps1p8pvp51rswynbv337qr3qj2z7r7kd9qpxgcrha9pql01h5gy"; + name = "drkonqi-5.24.5.tar.xz"; }; }; kactivitymanagerd = { - version = "5.24.4"; + version = "5.24.5"; src = fetchurl { - url = "${mirror}/stable/plasma/5.24.4/kactivitymanagerd-5.24.4.tar.xz"; - sha256 = "0aamfgc4bdrysq7ps134pf5v4bgiwrsxffi0nb6d8zazswgkfa41"; - name = "kactivitymanagerd-5.24.4.tar.xz"; + url = "${mirror}/stable/plasma/5.24.5/kactivitymanagerd-5.24.5.tar.xz"; + sha256 = "0j6d50cjry4j3vzxb6hd4w95y2h3l0yfhyrhl693njr64aq7d4pa"; + name = "kactivitymanagerd-5.24.5.tar.xz"; }; }; kde-cli-tools = { - version = "5.24.4"; + version = "5.24.5"; src = fetchurl { - url = "${mirror}/stable/plasma/5.24.4/kde-cli-tools-5.24.4.tar.xz"; - sha256 = "1w2rhz32xaqhmq5lyvfmjrbssqf9f35k5fk02f05fz79yk9wir7z"; - name = "kde-cli-tools-5.24.4.tar.xz"; + url = "${mirror}/stable/plasma/5.24.5/kde-cli-tools-5.24.5.tar.xz"; + sha256 = "0afksrxd6mq9rcvh3g8y05kl0la4wmn1yksif8p1bcxpd4sdvw77"; + name = "kde-cli-tools-5.24.5.tar.xz"; }; }; kde-gtk-config = { - version = "5.24.4"; + version = "5.24.5"; src = fetchurl { - url = "${mirror}/stable/plasma/5.24.4/kde-gtk-config-5.24.4.tar.xz"; - sha256 = "02spbx2rniiyvzj4qb6lgzj0f83k4vq53fk4i1m45438z7aslymi"; - name = "kde-gtk-config-5.24.4.tar.xz"; + url = "${mirror}/stable/plasma/5.24.5/kde-gtk-config-5.24.5.tar.xz"; + sha256 = "0sg8kqlkklvjhj69z5wzhvi0hddxa192j4vc4wc9hmfl1wirr8cq"; + name = "kde-gtk-config-5.24.5.tar.xz"; }; }; kdecoration = { - version = "5.24.4"; + version = "5.24.5"; src = fetchurl { - url = "${mirror}/stable/plasma/5.24.4/kdecoration-5.24.4.tar.xz"; - sha256 = "05ccyb314mxf0d4ivj71l9lh13s3fqr7f4d2rmg6qshsql39569c"; - name = "kdecoration-5.24.4.tar.xz"; + url = "${mirror}/stable/plasma/5.24.5/kdecoration-5.24.5.tar.xz"; + sha256 = "1hjjl6k09zi8n9nblbcm69c3br6d4dhzaw55xyygglaz6kb8fc17"; + name = "kdecoration-5.24.5.tar.xz"; }; }; kdeplasma-addons = { - version = "5.24.4"; + version = "5.24.5"; src = fetchurl { - url = "${mirror}/stable/plasma/5.24.4/kdeplasma-addons-5.24.4.tar.xz"; - sha256 = "03b8d3kdzwpyqrqkmpswryksrhav3mwcnbyzdc3g2kpk2qnx68fp"; - name = "kdeplasma-addons-5.24.4.tar.xz"; + url = "${mirror}/stable/plasma/5.24.5/kdeplasma-addons-5.24.5.tar.xz"; + sha256 = "03p8wmsb5nl7j6kwl6j8nwlf6v7snh933jyglgp2vnclqp1jpd9x"; + name = "kdeplasma-addons-5.24.5.tar.xz"; }; }; kgamma5 = { - version = "5.24.4"; + version = "5.24.5"; src = fetchurl { - url = "${mirror}/stable/plasma/5.24.4/kgamma5-5.24.4.tar.xz"; - sha256 = "0z1zrw5id455idjbaqracs1vcwgs93an7w27ggfqs6i8nabrivbk"; - name = "kgamma5-5.24.4.tar.xz"; + url = "${mirror}/stable/plasma/5.24.5/kgamma5-5.24.5.tar.xz"; + sha256 = "1i7i3dc5qfb3v9hz9w9hszr8jbbdbfq0b59a4bh1p6xakxx8k1l0"; + name = "kgamma5-5.24.5.tar.xz"; }; }; khotkeys = { - version = "5.24.4"; + version = "5.24.5"; src = fetchurl { - url = "${mirror}/stable/plasma/5.24.4/khotkeys-5.24.4.tar.xz"; - sha256 = "033dgz8wbsw2nj133hnmygz1izmcpxdn80jbjbm66nhbbyq7bb2s"; - name = "khotkeys-5.24.4.tar.xz"; + url = "${mirror}/stable/plasma/5.24.5/khotkeys-5.24.5.tar.xz"; + sha256 = "06m7yrs75arwdfrkpkn9b5kiz2xlrsxlpsjr18j1pjhxras0f8vs"; + name = "khotkeys-5.24.5.tar.xz"; }; }; kinfocenter = { - version = "5.24.4"; + version = "5.24.5"; src = fetchurl { - url = "${mirror}/stable/plasma/5.24.4/kinfocenter-5.24.4.tar.xz"; - sha256 = "0f5q6ajyd794p1z9j3il8sajlqkdcnf06xq4612qxdp49nb88nyw"; - name = "kinfocenter-5.24.4.tar.xz"; + url = "${mirror}/stable/plasma/5.24.5/kinfocenter-5.24.5.tar.xz"; + sha256 = "0c2bq7m8c9r17s8qalp4cdz1qimzwnvh9wrba4rqcmxwbv043ln1"; + name = "kinfocenter-5.24.5.tar.xz"; }; }; kmenuedit = { - version = "5.24.4"; + version = "5.24.5"; src = fetchurl { - url = "${mirror}/stable/plasma/5.24.4/kmenuedit-5.24.4.tar.xz"; - sha256 = "0ril8jxqkaavc4bkpksnyxn3bww7b81gnp9bnb17acrr2nd7wyhl"; - name = "kmenuedit-5.24.4.tar.xz"; + url = "${mirror}/stable/plasma/5.24.5/kmenuedit-5.24.5.tar.xz"; + sha256 = "02il6bhayjni0jsx1d1cnmxv5yc7r0d02s2v6cs87fbdrnl7d9vq"; + name = "kmenuedit-5.24.5.tar.xz"; }; }; kscreen = { - version = "5.24.4"; + version = "5.24.5"; src = fetchurl { - url = "${mirror}/stable/plasma/5.24.4/kscreen-5.24.4.tar.xz"; - sha256 = "0shvhymdfxw1gz49y1s79zik9kkg5qh0mqdj6dx0s6r3w6vysj1h"; - name = "kscreen-5.24.4.tar.xz"; + url = "${mirror}/stable/plasma/5.24.5/kscreen-5.24.5.tar.xz"; + sha256 = "1g5mlc78giq8zrpyq6d2jhqgyj6yh2nhbqv6wjm9cdbq4nnm3hyr"; + name = "kscreen-5.24.5.tar.xz"; }; }; kscreenlocker = { - version = "5.24.4"; + version = "5.24.5"; src = fetchurl { - url = "${mirror}/stable/plasma/5.24.4/kscreenlocker-5.24.4.tar.xz"; - sha256 = "1xzc80awsapsg65kk21ssp7y0jb374k1w2bb7gvzj8j40rrn48pv"; - name = "kscreenlocker-5.24.4.tar.xz"; + url = "${mirror}/stable/plasma/5.24.5/kscreenlocker-5.24.5.tar.xz"; + sha256 = "13prkdwxd200ps4cy6rf2n4g9ll6fp1f93dk1njr9ilzbj2a2w1j"; + name = "kscreenlocker-5.24.5.tar.xz"; }; }; ksshaskpass = { - version = "5.24.4"; + version = "5.24.5"; src = fetchurl { - url = "${mirror}/stable/plasma/5.24.4/ksshaskpass-5.24.4.tar.xz"; - sha256 = "1pa41w793dbi3rv6mm1a4xp46n80qwdpdlwhi6z4x76hjvqx9i9l"; - name = "ksshaskpass-5.24.4.tar.xz"; + url = "${mirror}/stable/plasma/5.24.5/ksshaskpass-5.24.5.tar.xz"; + sha256 = "1jw3hfnlplqsss1h49p5f3722qc22ln22sahs5ypsxszmqihpqiz"; + name = "ksshaskpass-5.24.5.tar.xz"; }; }; ksystemstats = { - version = "5.24.4"; + version = "5.24.5"; src = fetchurl { - url = "${mirror}/stable/plasma/5.24.4/ksystemstats-5.24.4.tar.xz"; - sha256 = "1pa7xrw5ij32bm66pn72zkzz8y70fq71n4kigm9ixc1s2glkbiwd"; - name = "ksystemstats-5.24.4.tar.xz"; + url = "${mirror}/stable/plasma/5.24.5/ksystemstats-5.24.5.tar.xz"; + sha256 = "1xsrlwm1hhagwjyjm240bfmri24z88v95m9pz95dpbcllkwdib0b"; + name = "ksystemstats-5.24.5.tar.xz"; }; }; kwallet-pam = { - version = "5.24.4"; + version = "5.24.5"; src = fetchurl { - url = "${mirror}/stable/plasma/5.24.4/kwallet-pam-5.24.4.tar.xz"; - sha256 = "0s6z7ds42a7kba25jd7pzylw7d2mc27xgymmdrpkg2afqanf3m4r"; - name = "kwallet-pam-5.24.4.tar.xz"; + url = "${mirror}/stable/plasma/5.24.5/kwallet-pam-5.24.5.tar.xz"; + sha256 = "1smclklxcfbxxxi3lgw2p6wmvj50fg40323j1b8p5z731ywdk3i3"; + name = "kwallet-pam-5.24.5.tar.xz"; }; }; kwayland-integration = { - version = "5.24.4"; + version = "5.24.5"; src = fetchurl { - url = "${mirror}/stable/plasma/5.24.4/kwayland-integration-5.24.4.tar.xz"; - sha256 = "1cnfb81yv6m37m2kyk523skqbk5in1kpbpxq60ivjri91sm4pryj"; - name = "kwayland-integration-5.24.4.tar.xz"; + url = "${mirror}/stable/plasma/5.24.5/kwayland-integration-5.24.5.tar.xz"; + sha256 = "1v12631xdjdp2wkjvyls8g0sv18amy7g4mddrh45pybhpc3rcsl0"; + name = "kwayland-integration-5.24.5.tar.xz"; }; }; kwayland-server = { - version = "5.24.4"; + version = "5.24.5"; src = fetchurl { - url = "${mirror}/stable/plasma/5.24.4/kwayland-server-5.24.4.tar.xz"; - sha256 = "1279nqhy1qyz84dkn23rvzak8bg71hbrp09jlhv9mkjdb3bhnyfi"; - name = "kwayland-server-5.24.4.tar.xz"; + url = "${mirror}/stable/plasma/5.24.5/kwayland-server-5.24.5.tar.xz"; + sha256 = "0ydj6p489psqblqd88lk04q62qn1spa1m0zdjq8d32a4g4lvxnid"; + name = "kwayland-server-5.24.5.tar.xz"; }; }; kwin = { - version = "5.24.4"; + version = "5.24.5"; src = fetchurl { - url = "${mirror}/stable/plasma/5.24.4/kwin-5.24.4.tar.xz"; - sha256 = "1qwcd6iw6yvpchiwmvq5nwsr465jmrmscf286mjrc65im4hj6572"; - name = "kwin-5.24.4.tar.xz"; + url = "${mirror}/stable/plasma/5.24.5/kwin-5.24.5.tar.xz"; + sha256 = "10mgbs1mbhjzbwx07q77wdzhj11yc156j75fbvy8mszb9hjiappk"; + name = "kwin-5.24.5.tar.xz"; }; }; kwrited = { - version = "5.24.4"; + version = "5.24.5"; src = fetchurl { - url = "${mirror}/stable/plasma/5.24.4/kwrited-5.24.4.tar.xz"; - sha256 = "0j86ih4g762a94cyzilcbigh7iv04a80bqrlxm02fbqhffv01mv2"; - name = "kwrited-5.24.4.tar.xz"; + url = "${mirror}/stable/plasma/5.24.5/kwrited-5.24.5.tar.xz"; + sha256 = "0gfjvj8wnfgb3s2daz7xpg9flc8xv6hk12z6ckbchq71w4gs6132"; + name = "kwrited-5.24.5.tar.xz"; }; }; layer-shell-qt = { - version = "5.24.4"; + version = "5.24.5"; src = fetchurl { - url = "${mirror}/stable/plasma/5.24.4/layer-shell-qt-5.24.4.tar.xz"; - sha256 = "03qyf6pvk36ig6ilimq02q19frdlsmrkbng2iz3d59k15zdrz5x0"; - name = "layer-shell-qt-5.24.4.tar.xz"; + url = "${mirror}/stable/plasma/5.24.5/layer-shell-qt-5.24.5.tar.xz"; + sha256 = "0ydjfxrkmpi052gfhkccsp9m5az3z6qiggb5wx6cjz39q06614gm"; + name = "layer-shell-qt-5.24.5.tar.xz"; }; }; libkscreen = { - version = "5.24.4"; + version = "5.24.5"; src = fetchurl { - url = "${mirror}/stable/plasma/5.24.4/libkscreen-5.24.4.tar.xz"; - sha256 = "1xv7vml5lxj1lnansisfbfym35h265ggwsyjplz76aibj5nyqv81"; - name = "libkscreen-5.24.4.tar.xz"; + url = "${mirror}/stable/plasma/5.24.5/libkscreen-5.24.5.tar.xz"; + sha256 = "1jbgq1ddl0q5y8cx4m7k5q38gl0kxv929wxr3hn3vr906fpiiwbz"; + name = "libkscreen-5.24.5.tar.xz"; }; }; libksysguard = { - version = "5.24.4"; + version = "5.24.5"; src = fetchurl { - url = "${mirror}/stable/plasma/5.24.4/libksysguard-5.24.4.tar.xz"; - sha256 = "00i4l2kc02wymmiqh7wam8dp4h9hvn8nsxfv258waq7pnxzjmnkn"; - name = "libksysguard-5.24.4.tar.xz"; + url = "${mirror}/stable/plasma/5.24.5/libksysguard-5.24.5.tar.xz"; + sha256 = "1v21xckvwx6xkiqihv3pc2ps5mmc4ahp5vadxm3lrh0pdqxb6v5h"; + name = "libksysguard-5.24.5.tar.xz"; }; }; milou = { - version = "5.24.4"; + version = "5.24.5"; src = fetchurl { - url = "${mirror}/stable/plasma/5.24.4/milou-5.24.4.tar.xz"; - sha256 = "0z7kmygvjzj30llwg8gpibjja2gzc09nh9pxrpy78pa1jxnas29i"; - name = "milou-5.24.4.tar.xz"; + url = "${mirror}/stable/plasma/5.24.5/milou-5.24.5.tar.xz"; + sha256 = "1rh5zy1x427cv07zmikmh0rmviz7vcvnz2pyravyfzaxay5lwnf1"; + name = "milou-5.24.5.tar.xz"; }; }; oxygen = { - version = "5.24.4"; + version = "5.24.5"; src = fetchurl { - url = "${mirror}/stable/plasma/5.24.4/oxygen-5.24.4.tar.xz"; - sha256 = "1d3sz2qc1cz9x6g04r0scvw9fmrazfn5v3iav4cn7wdkz8x06kc0"; - name = "oxygen-5.24.4.tar.xz"; + url = "${mirror}/stable/plasma/5.24.5/oxygen-5.24.5.tar.xz"; + sha256 = "1gh06wwm6gdjpsbjlxnrrlgsfd5w7lb0pddcml9l2w0dvlgfyn1v"; + name = "oxygen-5.24.5.tar.xz"; }; }; plasma-browser-integration = { - version = "5.24.4"; + version = "5.24.5"; src = fetchurl { - url = "${mirror}/stable/plasma/5.24.4/plasma-browser-integration-5.24.4.tar.xz"; - sha256 = "1havd775d4x2y36nkba2k6vdf839dspk10mxccnk2wkhdxmzfyk7"; - name = "plasma-browser-integration-5.24.4.tar.xz"; + url = "${mirror}/stable/plasma/5.24.5/plasma-browser-integration-5.24.5.tar.xz"; + sha256 = "1xybyn6vsahr5j0g57bsfxmz78w35ibzavcax1inrdlnb7sblrqv"; + name = "plasma-browser-integration-5.24.5.tar.xz"; }; }; plasma-desktop = { - version = "5.24.4"; + version = "5.24.5"; src = fetchurl { - url = "${mirror}/stable/plasma/5.24.4/plasma-desktop-5.24.4.tar.xz"; - sha256 = "09fhqz2sp4caabr1li1shjd8l052vp4d10ci7pwsqj8f61331qmh"; - name = "plasma-desktop-5.24.4.tar.xz"; + url = "${mirror}/stable/plasma/5.24.5/plasma-desktop-5.24.5.tar.xz"; + sha256 = "0iic01iwg4bkp8sfp4mbm5lvbj98wjcyi0k79jfr1sx78dn7jn5g"; + name = "plasma-desktop-5.24.5.tar.xz"; }; }; plasma-disks = { - version = "5.24.4"; + version = "5.24.5"; src = fetchurl { - url = "${mirror}/stable/plasma/5.24.4/plasma-disks-5.24.4.tar.xz"; - sha256 = "1mi5fp3305kjw41zhbccxyg666gcmmrvckipjhnnnfwd3gl372ng"; - name = "plasma-disks-5.24.4.tar.xz"; + url = "${mirror}/stable/plasma/5.24.5/plasma-disks-5.24.5.tar.xz"; + sha256 = "1x3lm5cnwa51i8kcmp7pq29fpa9za3ypsmmldf2jbisawjnrb50k"; + name = "plasma-disks-5.24.5.tar.xz"; }; }; plasma-firewall = { - version = "5.24.4"; + version = "5.24.5"; src = fetchurl { - url = "${mirror}/stable/plasma/5.24.4/plasma-firewall-5.24.4.tar.xz"; - sha256 = "0f9g5m2ddbp2axfxqc4d92fzg6r4z1l56i6nsry6nlz6cqky3fm2"; - name = "plasma-firewall-5.24.4.tar.xz"; + url = "${mirror}/stable/plasma/5.24.5/plasma-firewall-5.24.5.tar.xz"; + sha256 = "0mk9plb1rwng77qy55c7y7ga4fkafan89bf4vqsc4i9nfn49d944"; + name = "plasma-firewall-5.24.5.tar.xz"; }; }; plasma-integration = { - version = "5.24.4"; + version = "5.24.5"; src = fetchurl { - url = "${mirror}/stable/plasma/5.24.4/plasma-integration-5.24.4.tar.xz"; - sha256 = "1d2d7cmhdhmdzs91vpc2p3fg413daqhqilp8d2qbpsks5hyrkm3k"; - name = "plasma-integration-5.24.4.tar.xz"; + url = "${mirror}/stable/plasma/5.24.5/plasma-integration-5.24.5.tar.xz"; + sha256 = "0ynzx99jn4fqzbrv9mav0sw06rzf7mm1rv17g17vsxijwbhr0i6d"; + name = "plasma-integration-5.24.5.tar.xz"; }; }; plasma-mobile = { - version = "5.24.4"; + version = "5.24.5"; src = fetchurl { - url = "${mirror}/stable/plasma/5.24.4/plasma-mobile-5.24.4.tar.xz"; - sha256 = "1hgcnb4flw224j57fxkhaiwapymq6ccjwqj8s6jgqzc3ax0py0vr"; - name = "plasma-mobile-5.24.4.tar.xz"; + url = "${mirror}/stable/plasma/5.24.5/plasma-mobile-5.24.5.tar.xz"; + sha256 = "0400rwx4pbz4kfy06f2vxchlf9vr6dx71wsi6vir3vdmvl43yazd"; + name = "plasma-mobile-5.24.5.tar.xz"; }; }; plasma-nano = { - version = "5.24.4"; + version = "5.24.5"; src = fetchurl { - url = "${mirror}/stable/plasma/5.24.4/plasma-nano-5.24.4.tar.xz"; - sha256 = "1fdq4r5zlkf3qb0a47zv3apgnqs4gqqfj8pdlcmzkyn9xykzs9vw"; - name = "plasma-nano-5.24.4.tar.xz"; + url = "${mirror}/stable/plasma/5.24.5/plasma-nano-5.24.5.tar.xz"; + sha256 = "0zxvqzg1p6ci6581bh4nhsq2p6pq66pmvs93zlj89ml4am176213"; + name = "plasma-nano-5.24.5.tar.xz"; }; }; plasma-nm = { - version = "5.24.4"; + version = "5.24.5"; src = fetchurl { - url = "${mirror}/stable/plasma/5.24.4/plasma-nm-5.24.4.tar.xz"; - sha256 = "0bzc48vdrnd6n9qcm8ms7wrjm2yl7h9dik32arwdxx56vb7jhv08"; - name = "plasma-nm-5.24.4.tar.xz"; + url = "${mirror}/stable/plasma/5.24.5/plasma-nm-5.24.5.tar.xz"; + sha256 = "0adl5wfrz16hc7j64830cx1ga0bh9zd8bff95a30zdiggp7jc45f"; + name = "plasma-nm-5.24.5.tar.xz"; }; }; plasma-pa = { - version = "5.24.4"; + version = "5.24.5"; src = fetchurl { - url = "${mirror}/stable/plasma/5.24.4/plasma-pa-5.24.4.tar.xz"; - sha256 = "09fkaq2zzicgr214zi2wf7cirffm7mwh55bivvafblp1wlavkrgz"; - name = "plasma-pa-5.24.4.tar.xz"; + url = "${mirror}/stable/plasma/5.24.5/plasma-pa-5.24.5.tar.xz"; + sha256 = "1lgq2lydl65bh01043ji7kkignrb5lfcvbhy0g4g7lw778whv3q6"; + name = "plasma-pa-5.24.5.tar.xz"; }; }; plasma-sdk = { - version = "5.24.4"; + version = "5.24.5"; src = fetchurl { - url = "${mirror}/stable/plasma/5.24.4/plasma-sdk-5.24.4.tar.xz"; - sha256 = "1zkggp9a1yz5mwwvndizwlan6wlb2fy8n940ljnhldccl91mgwzc"; - name = "plasma-sdk-5.24.4.tar.xz"; + url = "${mirror}/stable/plasma/5.24.5/plasma-sdk-5.24.5.tar.xz"; + sha256 = "0d35sckjvi77b3475pfh1ixdsdx0m7b0hbsx5rbjgj4b05cdpm0w"; + name = "plasma-sdk-5.24.5.tar.xz"; }; }; plasma-systemmonitor = { - version = "5.24.4"; + version = "5.24.5"; src = fetchurl { - url = "${mirror}/stable/plasma/5.24.4/plasma-systemmonitor-5.24.4.tar.xz"; - sha256 = "0jcsmmg0asf2npl3f1nbzazz3i8m9b34q55088k8jjakwwxqbwhz"; - name = "plasma-systemmonitor-5.24.4.tar.xz"; + url = "${mirror}/stable/plasma/5.24.5/plasma-systemmonitor-5.24.5.tar.xz"; + sha256 = "1vx0w5kmnp3chhydas7ijy8h1xf6dggd1ryhbr3k9qz2qihxfsqm"; + name = "plasma-systemmonitor-5.24.5.tar.xz"; }; }; plasma-tests = { - version = "5.24.4"; + version = "5.24.5"; src = fetchurl { - url = "${mirror}/stable/plasma/5.24.4/plasma-tests-5.24.4.tar.xz"; - sha256 = "1ms298h9wghj9gpi7laf1dsd7s3yiycy44k4s5v4id8vfarnbs27"; - name = "plasma-tests-5.24.4.tar.xz"; + url = "${mirror}/stable/plasma/5.24.5/plasma-tests-5.24.5.tar.xz"; + sha256 = "1aqmmix0ds9vg4cjj8dagaya10ainhcciixamdylz1p7vgzpsrkx"; + name = "plasma-tests-5.24.5.tar.xz"; }; }; plasma-thunderbolt = { - version = "5.24.4"; + version = "5.24.5"; src = fetchurl { - url = "${mirror}/stable/plasma/5.24.4/plasma-thunderbolt-5.24.4.tar.xz"; - sha256 = "1cqabdsg8v8b00ppbabrg2gih16lf79lr5i8mqvjnc73npacvzhy"; - name = "plasma-thunderbolt-5.24.4.tar.xz"; + url = "${mirror}/stable/plasma/5.24.5/plasma-thunderbolt-5.24.5.tar.xz"; + sha256 = "1q0r9l2b06qkbyxa25lvqdwz0rgcjvp48gwkw0xhhaf6fyaai1cl"; + name = "plasma-thunderbolt-5.24.5.tar.xz"; }; }; plasma-vault = { - version = "5.24.4"; + version = "5.24.5"; src = fetchurl { - url = "${mirror}/stable/plasma/5.24.4/plasma-vault-5.24.4.tar.xz"; - sha256 = "0rj9z2c52mya2fjm4bimqz5z3lj2qg764zri6bqwrgwgsjwc4s81"; - name = "plasma-vault-5.24.4.tar.xz"; + url = "${mirror}/stable/plasma/5.24.5/plasma-vault-5.24.5.tar.xz"; + sha256 = "16cyzyfzwqwqsg7hhg576acvxvbd12b7mznvicrrqnyf4wvw68l1"; + name = "plasma-vault-5.24.5.tar.xz"; }; }; plasma-workspace = { - version = "5.24.4"; + version = "5.24.5"; src = fetchurl { - url = "${mirror}/stable/plasma/5.24.4/plasma-workspace-5.24.4.tar.xz"; - sha256 = "0w7cnawnpcg5zk9bycjcnc8yfz21whrhd9h2z7hizgfnj2q403jv"; - name = "plasma-workspace-5.24.4.tar.xz"; + url = "${mirror}/stable/plasma/5.24.5/plasma-workspace-5.24.5.tar.xz"; + sha256 = "1xk4424az7sgb0kyysr1s2x756vj4km50xxzkn1s1kxyw28jd4dr"; + name = "plasma-workspace-5.24.5.tar.xz"; }; }; plasma-workspace-wallpapers = { - version = "5.24.4"; + version = "5.24.5"; src = fetchurl { - url = "${mirror}/stable/plasma/5.24.4/plasma-workspace-wallpapers-5.24.4.tar.xz"; - sha256 = "0hpg7nn5wsn56my48jk225x1qb70sgf3hf8q5swwqc1xc6xzcg14"; - name = "plasma-workspace-wallpapers-5.24.4.tar.xz"; + url = "${mirror}/stable/plasma/5.24.5/plasma-workspace-wallpapers-5.24.5.tar.xz"; + sha256 = "0aabmd4zswmzdy958y1yq0yp1v9i8kzl959d6r4pwi0lmhr6g6qi"; + name = "plasma-workspace-wallpapers-5.24.5.tar.xz"; }; }; plymouth-kcm = { - version = "5.24.4"; + version = "5.24.5"; src = fetchurl { - url = "${mirror}/stable/plasma/5.24.4/plymouth-kcm-5.24.4.tar.xz"; - sha256 = "0s5h25vyk5yzipwj91rb62xzgi6aafpwikh7ibpmmh2wn71x3amr"; - name = "plymouth-kcm-5.24.4.tar.xz"; + url = "${mirror}/stable/plasma/5.24.5/plymouth-kcm-5.24.5.tar.xz"; + sha256 = "04m4129hxgq4g9v8gvi8q0hzhqzd866j3j1ffxs5vfd27r155wcr"; + name = "plymouth-kcm-5.24.5.tar.xz"; }; }; polkit-kde-agent = { - version = "1-5.24.4"; + version = "1-5.24.5"; src = fetchurl { - url = "${mirror}/stable/plasma/5.24.4/polkit-kde-agent-1-5.24.4.tar.xz"; - sha256 = "1bc5ss6v4d7kwk1chhvpis5srs8lfypims46wgxjncyhjg2lcllm"; - name = "polkit-kde-agent-1-5.24.4.tar.xz"; + url = "${mirror}/stable/plasma/5.24.5/polkit-kde-agent-1-5.24.5.tar.xz"; + sha256 = "0w78c59nm71xnd5prm035z94r5bzlqr0fyri43a8vrfyyb21r9l9"; + name = "polkit-kde-agent-1-5.24.5.tar.xz"; }; }; powerdevil = { - version = "5.24.4"; + version = "5.24.5"; src = fetchurl { - url = "${mirror}/stable/plasma/5.24.4/powerdevil-5.24.4.tar.xz"; - sha256 = "0sjlx5fhfdld1i352adi2bhyd29ja9lbmzhfxgnvmpfl6q7c0w7g"; - name = "powerdevil-5.24.4.tar.xz"; + url = "${mirror}/stable/plasma/5.24.5/powerdevil-5.24.5.tar.xz"; + sha256 = "1wr3rk318j93rnyh24icl4yxdj40zasymlddc71ram80fswa2k4n"; + name = "powerdevil-5.24.5.tar.xz"; }; }; qqc2-breeze-style = { - version = "5.24.4"; + version = "5.24.5"; src = fetchurl { - url = "${mirror}/stable/plasma/5.24.4/qqc2-breeze-style-5.24.4.tar.xz"; - sha256 = "1d0cgsxvnm0zza7n5hz47n28yrr35hp0vniggifncm0ag8sn0kmd"; - name = "qqc2-breeze-style-5.24.4.tar.xz"; + url = "${mirror}/stable/plasma/5.24.5/qqc2-breeze-style-5.24.5.tar.xz"; + sha256 = "1m0xnx46zkv1dlwkgns1ibgsl934jbcfz35jlm4p8l6n1y2jcjyg"; + name = "qqc2-breeze-style-5.24.5.tar.xz"; }; }; sddm-kcm = { - version = "5.24.4"; + version = "5.24.5"; src = fetchurl { - url = "${mirror}/stable/plasma/5.24.4/sddm-kcm-5.24.4.tar.xz"; - sha256 = "0pfqp5das7pxpmh111i2dlfqm6xzzd99bcb32bbmd9v6w2wlgwxy"; - name = "sddm-kcm-5.24.4.tar.xz"; + url = "${mirror}/stable/plasma/5.24.5/sddm-kcm-5.24.5.tar.xz"; + sha256 = "15z5hfpczi73vqjfj9z2ai2r4187fyrvfnikcfb18g2bdh1n54ng"; + name = "sddm-kcm-5.24.5.tar.xz"; }; }; systemsettings = { - version = "5.24.4"; + version = "5.24.5"; src = fetchurl { - url = "${mirror}/stable/plasma/5.24.4/systemsettings-5.24.4.tar.xz"; - sha256 = "0cqm7s89jvzqz1fw32284ppnm3dc69yvc8bqqgw5jdbbjnc1z4k9"; - name = "systemsettings-5.24.4.tar.xz"; + url = "${mirror}/stable/plasma/5.24.5/systemsettings-5.24.5.tar.xz"; + sha256 = "1rg9zx7fhrg91nlarv0cz384agbik47sccj7hhshnxnq1czvawjv"; + name = "systemsettings-5.24.5.tar.xz"; }; }; xdg-desktop-portal-kde = { - version = "5.24.4"; + version = "5.24.5"; src = fetchurl { - url = "${mirror}/stable/plasma/5.24.4/xdg-desktop-portal-kde-5.24.4.tar.xz"; - sha256 = "07nwb6ff8rnlk2play9gar52d8d44b8y412hnx9a9d4b50b4js0i"; - name = "xdg-desktop-portal-kde-5.24.4.tar.xz"; + url = "${mirror}/stable/plasma/5.24.5/xdg-desktop-portal-kde-5.24.5.tar.xz"; + sha256 = "1zn6wln8pccj1x3labms7xippn6xgv4aamwpmzk2rvwss9jwz75m"; + name = "xdg-desktop-portal-kde-5.24.5.tar.xz"; }; }; } diff --git a/pkgs/development/compilers/hip/default.nix b/pkgs/development/compilers/hip/default.nix index 2153a30cb16..f073eca91d5 100644 --- a/pkgs/development/compilers/hip/default.nix +++ b/pkgs/development/compilers/hip/default.nix @@ -31,13 +31,13 @@ let hip = stdenv.mkDerivation rec { pname = "hip"; - version = "5.0.2"; + version = "5.1.1"; src = fetchFromGitHub { owner = "ROCm-Developer-Tools"; repo = "HIP"; rev = "rocm-${version}"; - hash = "sha256-w023vBLJaiFbRdvz9UfZLPasRjk3VqM9zwctCIJ5hGU="; + hash = "sha256-/kIZrbzq1u1pIs1jlmRYZNUGteqVQTI4TlXsHsVIUKE="; }; # - fix bash paths @@ -102,13 +102,13 @@ let in stdenv.mkDerivation rec { pname = "hip"; - version = "5.0.2"; + version = "5.1.1"; src = fetchFromGitHub { owner = "ROCm-Developer-Tools"; repo = "hipamd"; rev = "rocm-${version}"; - hash = "sha256-hhTwKG0wDpbIBI8S61AhdNldX+STO8C66xi2EzmJSBs="; + hash = "sha256-TuCMRJb6G/bhD8hG6Ot7MIkgBoShjVboeXrlGh9eYpQ="; }; nativeBuildInputs = [ cmake python3 makeWrapper perl ]; diff --git a/pkgs/development/compilers/intel-graphics-compiler/default.nix b/pkgs/development/compilers/intel-graphics-compiler/default.nix index 176affd047c..75318351de7 100644 --- a/pkgs/development/compilers/intel-graphics-compiler/default.nix +++ b/pkgs/development/compilers/intel-graphics-compiler/default.nix @@ -9,6 +9,8 @@ , lld_11 , opencl-clang , python3 +, spirv-tools +, spirv-headers , spirv-llvm-translator , buildWithPatches ? true @@ -18,8 +20,8 @@ let vc_intrinsics_src = fetchFromGitHub { owner = "intel"; repo = "vc-intrinsics"; - rev = "e5ad7e02aa4aa21a3cd7b3e5d1f3ec9b95f58872"; - sha256 = "Vg1mngwpIQ3Tik0GgRXPG22lE4sLEAEFch492G2aIXs="; + rev = "v0.3.0"; + sha256 = "sha256-1Rm4TCERTOcPGWJF+yNoKeB9x3jfqnh7Vlv+0Xpmjbk="; }; llvmPkgs = llvmPackages_11 // { inherit spirv-llvm-translator; @@ -31,18 +33,18 @@ in stdenv.mkDerivation rec { pname = "intel-graphics-compiler"; - version = "1.0.8744"; + version = "1.0.11061"; src = fetchFromGitHub { owner = "intel"; repo = "intel-graphics-compiler"; rev = "igc-${version}"; - sha256 = "G5+dYD8uZDPkRyn1sgXsRngdq4NJndiCJCYTRXyUgTA="; + sha256 = "sha256-qS/+GTqHtp3T6ggPKrCDsrTb7XvVOUaNbMzGU51jTu4="; }; nativeBuildInputs = [ clang cmake bison flex python3 ]; - buildInputs = [ clang opencl-clang spirv-llvm-translator llvm lld_11 ]; + buildInputs = [ spirv-headers spirv-tools clang opencl-clang spirv-llvm-translator llvm lld_11 ]; strictDeps = true; @@ -52,6 +54,21 @@ stdenv.mkDerivation rec { # https://github.com/intel/intel-graphics-compiler/issues/98 doCheck = false; + patchPhase = '' + substituteInPlace ./external/SPIRV-Tools/CMakeLists.txt \ + --replace '$'''{SPIRV-Tools_DIR}../../..' \ + '${spirv-tools}' \ + --replace 'SPIRV-Headers_INCLUDE_DIR "/usr/include"' \ + 'SPIRV-Headers_INCLUDE_DIR "${spirv-headers}/include"' \ + --replace 'set_target_properties(SPIRV-Tools' \ + 'set_target_properties(SPIRV-Tools-shared' \ + --replace 'IGC_BUILD__PROJ__SPIRV-Tools SPIRV-Tools' \ + 'IGC_BUILD__PROJ__SPIRV-Tools SPIRV-Tools-shared' + substituteInPlace ./IGC/AdaptorOCL/igc-opencl.pc.in \ + --replace '/@CMAKE_INSTALL_INCLUDEDIR@' "/include" \ + --replace '/@CMAKE_INSTALL_LIBDIR@' "/lib" + ''; + # Handholding the braindead build script # cmake requires an absolute path prebuilds = runCommandLocal "igc-cclang-prebuilds" { } '' @@ -64,7 +81,9 @@ stdenv.mkDerivation rec { ''; cmakeFlags = [ + "-Wno-dev" "-DVC_INTRINSICS_SRC=${vc_intrinsics_src}" + "-DIGC_OPTION__SPIRV_TOOLS_MODE=Prebuilds" "-DINSTALL_SPIRVDLL=0" "-DCCLANG_BUILD_PREBUILDS=ON" "-DCCLANG_BUILD_PREBUILDS_DIR=${prebuilds}" diff --git a/pkgs/development/compilers/llvm/rocm/default.nix b/pkgs/development/compilers/llvm/rocm/default.nix index 18fd44612f1..e700e1a08b2 100644 --- a/pkgs/development/compilers/llvm/rocm/default.nix +++ b/pkgs/development/compilers/llvm/rocm/default.nix @@ -1,12 +1,12 @@ { stdenv, lib, buildPackages, fetchFromGitHub, callPackage, wrapCCWith, overrideCC }: let - version = "5.0.2"; + version = "5.1.1"; src = fetchFromGitHub { owner = "RadeonOpenCompute"; repo = "llvm-project"; rev = "rocm-${version}"; - hash = "sha256-wPzwbeQUFE6RAytrz5lBa6UUPoVL0UeMyY3qa4M6W6M="; + hash = "sha256-5SGIWiyfHvfwIUc4bhdWrlhBfK5ssA7tm5r3zKdr3kg="; }; in rec { clang = wrapCCWith rec { @@ -52,12 +52,10 @@ in rec { }; lld = callPackage ./lld.nix { - inherit llvm version; - src = "${src}/lld"; + inherit llvm src version; }; llvm = callPackage ./llvm { - inherit version; - src = "${src}/llvm"; + inherit src version; }; } diff --git a/pkgs/development/compilers/llvm/rocm/lld.nix b/pkgs/development/compilers/llvm/rocm/lld.nix index 2e3e1ca13d4..272e430c1fc 100644 --- a/pkgs/development/compilers/llvm/rocm/lld.nix +++ b/pkgs/development/compilers/llvm/rocm/lld.nix @@ -3,6 +3,7 @@ , cmake , libxml2 , llvm +, ninja , version , src @@ -11,15 +12,17 @@ stdenv.mkDerivation rec { inherit version src; + sourceRoot = "${src.name}/lld"; + pname = "lld"; - nativeBuildInputs = [ cmake ]; + nativeBuildInputs = [ cmake ninja ]; buildInputs = [ libxml2 llvm ]; outputs = [ "out" "dev" ]; - cmakeFlags = [ "-DLLVM_MAIN_SRC_DIR=${llvm.src}" ]; + cmakeFlags = [ "-DLLVM_MAIN_SRC_DIR=${src}/llvm" ]; postInstall = '' moveToOutput include "$dev" diff --git a/pkgs/development/compilers/llvm/rocm/llvm/default.nix b/pkgs/development/compilers/llvm/rocm/llvm/default.nix index 722ca1a762a..80a387b3650 100644 --- a/pkgs/development/compilers/llvm/rocm/llvm/default.nix +++ b/pkgs/development/compilers/llvm/rocm/llvm/default.nix @@ -28,6 +28,8 @@ in stdenv.mkDerivation rec { pname = "rocm-llvm"; + sourceRoot = "${src.name}/llvm"; + outputs = [ "out" "python" ] ++ lib.optional enableSharedLibraries "lib"; diff --git a/pkgs/development/compilers/open-watcom/v2.nix b/pkgs/development/compilers/open-watcom/v2.nix index 77606d8a511..c55ef1f97cc 100644 --- a/pkgs/development/compilers/open-watcom/v2.nix +++ b/pkgs/development/compilers/open-watcom/v2.nix @@ -12,14 +12,14 @@ stdenv.mkDerivation rec { pname = "open-watcom-v2"; - version = "unstable-2022-04-29"; + version = "unstable-2022-05-03"; name = "${pname}-unwrapped-${version}"; src = fetchFromGitHub { owner = "open-watcom"; repo = "open-watcom-v2"; - rev = "520d9d7025b46b926123257b029b3dbce9a96065"; - sha256 = "aACkkTzOH8F82GPyySjtb7CGozR8OjgzqZVRiNTiS10="; + rev = "a927247a40e69261e7d8891b6f002c91450e01f2"; + sha256 = "/CuPNCEoSjxwYL07b07XqnaAeFZGS8NjXBuj+gFCsOA="; }; postPatch = '' diff --git a/pkgs/development/compilers/spirv-llvm-translator/default.nix b/pkgs/development/compilers/spirv-llvm-translator/default.nix index 0dff7f0e1b0..abcc93c62d5 100644 --- a/pkgs/development/compilers/spirv-llvm-translator/default.nix +++ b/pkgs/development/compilers/spirv-llvm-translator/default.nix @@ -4,29 +4,42 @@ , pkg-config , lit , llvm_11 +, spirv-headers +, spirv-tools }: stdenv.mkDerivation rec { pname = "SPIRV-LLVM-Translator"; - version = "unstable-2021-06-13"; + version = "unstable-2022-05-04"; src = fetchFromGitHub { owner = "KhronosGroup"; repo = "SPIRV-LLVM-Translator"; - rev = "c67e6f26a7285aa753598ef792593ac4a545adf9"; - sha256 = "sha256-1s3lVNTQDl+pUvbzSMsp3cOUSm6I4DzqJxnLMeeE3F4="; + rev = "99420daab98998a7e36858befac9c5ed109d4920"; + sha256 = "sha256-/vUyL6Wh8hykoGz1QmT1F7lfGDEmG4U3iqmqrJxizOg="; }; nativeBuildInputs = [ pkg-config cmake llvm_11.dev ]; - buildInputs = [ llvm_11 ]; + buildInputs = [ spirv-headers spirv-tools llvm_11 ]; checkInputs = [ lit ]; + makeFlags = [ "llvm-spirv" ]; + cmakeFlags = [ "-DLLVM_INCLUDE_TESTS=ON" + "-DLLVM_DIR=${llvm_11.dev}" + "-DBUILD_SHARED_LIBS=YES" + "-DLLVM_SPIRV_BUILD_EXTERNAL=YES" ]; + prePatch = '' + substituteInPlace ./test/CMakeLists.txt \ + --replace 'SPIRV-Tools' 'SPIRV-Tools-shared' + ''; + + # FIXME: CMake tries to run "/llvm-lit" which of course doesn't exist doCheck = false; diff --git a/pkgs/development/libraries/libffi/3.3.nix b/pkgs/development/libraries/libffi/3.3.nix new file mode 100644 index 00000000000..a1e2ff8c588 --- /dev/null +++ b/pkgs/development/libraries/libffi/3.3.nix @@ -0,0 +1,64 @@ +{ lib, stdenv, fetchurl, fetchpatch +, autoreconfHook + +, doCheck ? true # test suite depends on dejagnu which cannot be used during bootstrapping +, dejagnu +}: + +stdenv.mkDerivation rec { + pname = "libffi"; + version = "3.3"; + + src = fetchurl { + url = "https://github.com/libffi/libffi/releases/download/v${version}/${pname}-${version}.tar.gz"; + hash = "sha256-cvunkicD3fp6Ao1ROsFahcjVTI1n9V+lpIAohdxlIFY="; + }; + + patches = []; + + outputs = [ "out" "dev" "man" "info" ]; + + configureFlags = [ + "--with-gcc-arch=generic" # no detection of -march= or -mtune= + "--enable-pax_emutramp" + + # Causes issues in downstream packages which misuse ffi_closure_alloc + # Reenable once these issues are fixed and merged: + # https://gitlab.haskell.org/ghc/ghc/-/merge_requests/6155 + # https://gitlab.gnome.org/GNOME/gobject-introspection/-/merge_requests/283 + "--disable-exec-static-tramp" + ]; + + preCheck = '' + # The tests use -O0 which is not compatible with -D_FORTIFY_SOURCE. + NIX_HARDENING_ENABLE=''${NIX_HARDENING_ENABLE/fortify/} + ''; + + dontStrip = stdenv.hostPlatform != stdenv.buildPlatform; # Don't run the native `strip' when cross-compiling. + + inherit doCheck; + + checkInputs = [ dejagnu ]; + + meta = with lib; { + description = "A foreign function call interface library"; + longDescription = '' + The libffi library provides a portable, high level programming + interface to various calling conventions. This allows a + programmer to call any function specified by a call interface + description at run-time. + + FFI stands for Foreign Function Interface. A foreign function + interface is the popular name for the interface that allows code + written in one language to call code written in another + language. The libffi library really only provides the lowest, + machine dependent layer of a fully featured foreign function + interface. A layer must exist above libffi that handles type + conversions for values passed between the two languages. + ''; + homepage = "http://sourceware.org/libffi/"; + license = licenses.mit; + maintainers = with maintainers; [ armeenm ]; + platforms = platforms.all; + }; +} diff --git a/pkgs/development/libraries/libgit2/default.nix b/pkgs/development/libraries/libgit2/default.nix index dc12e643cb7..10f3ceaac26 100644 --- a/pkgs/development/libraries/libgit2/default.nix +++ b/pkgs/development/libraries/libgit2/default.nix @@ -1,7 +1,6 @@ { lib , stdenv , fetchFromGitHub -, fetchpatch , cmake , pkg-config , python3 @@ -16,23 +15,16 @@ stdenv.mkDerivation rec { pname = "libgit2"; - version = "1.4.0"; + version = "1.4.3"; # also check the following packages for updates: python3.pkgs.pygit2 and libgit2-glib src = fetchFromGitHub { owner = "libgit2"; repo = "libgit2"; rev = "v${version}"; - sha256 = "sha256-21t7fD/5O+HIHUDEv8MqloDmAIm9sSpJYqreCD3Co2k="; + sha256 = "sha256-WnRzH5uMVEStA5ns4GNgMD5YoLQoats9aPLfnz9RoQs="; }; - patches = [ - (fetchpatch { - url = "https://github.com/libgit2/libgit2/commit/8bc9eda779b2e2602fc74944aba5d39198e0642f.patch"; - sha256 = "sha256-r2i4+WsrxIpSwH0g/AikBdAajBncXb1zz0uOQB0h1Jk="; - }) - ]; - cmakeFlags = [ "-DTHREADSAFE=ON" "-DUSE_HTTP_PARSER=system" @@ -48,11 +40,11 @@ stdenv.mkDerivation rec { doCheck = false; # hangs. or very expensive? - meta = { + meta = with lib; { description = "Linkable library implementation of Git that you can use in your application"; homepage = "https://libgit2.org/"; - license = lib.licenses.gpl2Plus; - platforms = lib.platforms.all; - maintainers = with lib.maintainers; [ ]; + license = licenses.gpl2Plus; + platforms = platforms.all; + maintainers = with maintainers; [ SuperSandro2000 ]; }; } diff --git a/pkgs/development/libraries/libmediainfo/default.nix b/pkgs/development/libraries/libmediainfo/default.nix index 2a74c79afaf..3a0ced3d980 100644 --- a/pkgs/development/libraries/libmediainfo/default.nix +++ b/pkgs/development/libraries/libmediainfo/default.nix @@ -1,23 +1,16 @@ -{ lib, stdenv, fetchurl, autoreconfHook, pkg-config, libzen, zlib, fetchpatch }: +{ lib, stdenv, fetchurl, autoreconfHook, pkg-config, libzen, zlib }: stdenv.mkDerivation rec { - version = "21.09"; + version = "22.03"; pname = "libmediainfo"; src = fetchurl { url = "https://mediaarea.net/download/source/libmediainfo/${version}/libmediainfo_${version}.tar.xz"; - sha256 = "09pinxqw3z3hxrafn67clw1cb1z9aqfy6gkiavginfm0yr299gk9"; + sha256 = "sha256-/FC6u2KOnPumVSiNrgbVw0Kw1+aUGjLWT7uxEySMgLk="; }; nativeBuildInputs = [ autoreconfHook pkg-config ]; - buildInputs = [ libzen zlib ]; - - patches = [ - # fixes pkgsMusl.libmediainfo build - (fetchpatch { - url = "https://git.alpinelinux.org/aports/plain/community/libmediainfo/fix-include-signal.patch?id=b8d666a3d33575c184308e1176f4de9e519af577"; - sha256 = "sha256-b3HoIwy/hKSh8jUakwVJpnPmYw5KUwZXgLW7IPMY4/c="; - }) - ]; + buildInputs = [ zlib ]; + propagatedBuildInputs = [ libzen ]; postPatch = "cd Project/GNU/Library"; diff --git a/pkgs/development/libraries/libwebsockets/default.nix b/pkgs/development/libraries/libwebsockets/default.nix index e0ee94faf0d..82f5614458f 100644 --- a/pkgs/development/libraries/libwebsockets/default.nix +++ b/pkgs/development/libraries/libwebsockets/default.nix @@ -32,13 +32,12 @@ let "-DLWS_WITH_PLUGINS=ON" "-DLWS_WITH_IPV6=ON" "-DLWS_WITH_SOCKS5=ON" + "-DDISABLE_WERROR=ON" # Required since v4.2.0 "-DLWS_BUILD_HASH=no_hash" ] ++ lib.optional (stdenv.hostPlatform != stdenv.buildPlatform) "-DLWS_WITHOUT_TESTAPPS=ON" ++ lib.optional withExternalPoll "-DLWS_WITH_EXTERNAL_POLL=ON"; - NIX_CFLAGS_COMPILE = lib.optionalString stdenv.cc.isGNU "-Wno-error=unused-but-set-variable"; - postInstall = '' rm -r ${placeholder "out"}/share/libwebsockets-test-server ''; @@ -63,21 +62,6 @@ let }; in { - libwebsockets_3_1 = generic { - sha256 = "1w1wz6snf3cmcpa3f4dci2nz9za2f5rrylxl109id7bcb36xhbdl"; - version = "3.1.0"; - }; - - libwebsockets_3_2 = generic { - version = "3.2.2"; - sha256 = "0m1kn4p167jv63zvwhsvmdn8azx3q7fkk8qc0fclwyps2scz6dna"; - }; - - libwebsockets_4_2 = generic { - version = "4.2.1"; - sha256 = "sha256-C+WGfNF4tAgbp/7aRraBgjNOe4I5ihm+8CGelXzfxbU="; - }; - libwebsockets_4_3 = generic { version = "4.3.1"; sha256 = "sha256-lB3JHh058cQc5rycLnHk3JAOgtku0nRCixN5U6lPKq8="; diff --git a/pkgs/development/libraries/lmdb/bin-ext.patch b/pkgs/development/libraries/lmdb/bin-ext.patch new file mode 100644 index 00000000000..2d5af99772c --- /dev/null +++ b/pkgs/development/libraries/lmdb/bin-ext.patch @@ -0,0 +1,21 @@ +diff --git a/libraries/liblmdb/Makefile b/libraries/liblmdb/Makefile +index 612484e..2e6b562 100644 +--- a/libraries/liblmdb/Makefile ++++ b/libraries/liblmdb/Makefile +@@ -27,6 +27,7 @@ CFLAGS = $(THREADS) $(OPT) $(W) $(XCFLAGS) + LDLIBS = + SOLIBS = + SOEXT = .so ++BINEXT = + prefix = /usr/local + exec_prefix = $(prefix) + bindir = $(exec_prefix)/bin +@@ -49,7 +50,7 @@ install: $(ILIBS) $(IPROGS) $(IHDRS) + mkdir -p $(DESTDIR)$(libdir) + mkdir -p $(DESTDIR)$(includedir) + mkdir -p $(DESTDIR)$(mandir)/man1 +- for f in $(IPROGS); do cp $$f $(DESTDIR)$(bindir); done ++ for f in $(IPROGS); do cp $$f$(BINEXT) $(DESTDIR)$(bindir); done + for f in $(ILIBS); do cp $$f $(DESTDIR)$(libdir); done + for f in $(IHDRS); do cp $$f $(DESTDIR)$(includedir); done + for f in $(IDOCS); do cp $$f $(DESTDIR)$(mandir)/man1; done diff --git a/pkgs/development/libraries/lmdb/default.nix b/pkgs/development/libraries/lmdb/default.nix index 0a3515db262..a8b5da5b56d 100644 --- a/pkgs/development/libraries/lmdb/default.nix +++ b/pkgs/development/libraries/lmdb/default.nix @@ -1,4 +1,4 @@ -{ lib, stdenv, fetchFromGitLab }: +{ lib, stdenv, fetchFromGitLab, windows }: stdenv.mkDerivation rec { pname = "lmdb"; @@ -14,17 +14,20 @@ stdenv.mkDerivation rec { postUnpack = "sourceRoot=\${sourceRoot}/libraries/liblmdb"; - patches = [ ./hardcoded-compiler.patch ]; + patches = [ ./hardcoded-compiler.patch ./bin-ext.patch ]; patchFlags = [ "-p3" ]; outputs = [ "bin" "out" "dev" ]; + buildInputs = lib.optional stdenv.hostPlatform.isWindows windows.pthreads; + makeFlags = [ "prefix=$(out)" "CC=${stdenv.cc.targetPrefix}cc" "AR=${stdenv.cc.targetPrefix}ar" ] - ++ lib.optional stdenv.isDarwin "LDFLAGS=-Wl,-install_name,$(out)/lib/liblmdb.so"; + ++ lib.optional stdenv.isDarwin "LDFLAGS=-Wl,-install_name,$(out)/lib/liblmdb.so" + ++ lib.optionals stdenv.hostPlatform.isWindows [ "SOEXT=.dll" "BINEXT=.exe" ]; doCheck = true; checkTarget = "test"; diff --git a/pkgs/development/libraries/lucene++/default.nix b/pkgs/development/libraries/lucene++/default.nix index ef55541ed77..96be84ee2a7 100644 --- a/pkgs/development/libraries/lucene++/default.nix +++ b/pkgs/development/libraries/lucene++/default.nix @@ -14,13 +14,13 @@ stdenv.mkDerivation rec { nativeBuildInputs = [ cmake ]; buildInputs = [ boost gtest zlib ]; - doCheck = true; - postPatch = '' - substituteInPlace src/test/CMakeLists.txt \ - --replace "add_subdirectory(gtest)" "" + substituteInPlace src/test/CMakeLists.txt \ + --replace "add_subdirectory(gtest)" "" ''; + doCheck = true; + checkPhase = '' runHook preCheck LD_LIBRARY_PATH=$PWD/src/contrib:$PWD/src/core \ @@ -30,6 +30,7 @@ stdenv.mkDerivation rec { postInstall = '' mv $out/include/pkgconfig $out/lib/ + cp $src/src/contrib/include/*h $out/include/lucene++/ ''; meta = { diff --git a/pkgs/development/libraries/opencl-clang/default.nix b/pkgs/development/libraries/opencl-clang/default.nix index 243dfa44d5b..f4897331c93 100644 --- a/pkgs/development/libraries/opencl-clang/default.nix +++ b/pkgs/development/libraries/opencl-clang/default.nix @@ -67,15 +67,15 @@ let in stdenv.mkDerivation rec { pname = "opencl-clang"; - version = "unstable-2021-06-22"; + version = "unstable-2022-03-16"; inherit passthru; src = fetchFromGitHub { owner = "intel"; repo = "opencl-clang"; - rev = "fd68f64b33e67d58f6c36b9e25c31c1178a1962a"; - sha256 = "sha256-q1YPBb/LY67iEuQx1fMUQD/I7OsNfobW3yNfJxLXx3E="; + rev = "bbdd1587f577397a105c900be114b56755d1f7dc"; + sha256 = "sha256-qEZoQ6h4XAvSnJ7/gLXBb1qrzeYa6Jp6nij9VFo8MwQ="; }; patches = [ diff --git a/pkgs/development/libraries/poppler/default.nix b/pkgs/development/libraries/poppler/default.nix index 5547e492a65..3e22483eb07 100644 --- a/pkgs/development/libraries/poppler/default.nix +++ b/pkgs/development/libraries/poppler/default.nix @@ -35,13 +35,13 @@ let in stdenv.mkDerivation rec { pname = "poppler-${suffix}"; - version = "22.03.0"; # beware: updates often break cups-filters build, check texlive and scribusUnstable too! + version = "22.04.0"; # beware: updates often break cups-filters build, check texlive and scribusUnstable too! outputs = [ "out" "dev" ]; src = fetchurl { url = "https://poppler.freedesktop.org/poppler-${version}.tar.xz"; - sha256 = "sha256-cox4upTXWlX2tjVdT72qb0mTTZYWvljl5nmpz9CYDh4="; + sha256 = "sha256-gT+0uQ572mPfUyBcVIYCuucoiHpg9ASKrk29mxkn3v8="; }; nativeBuildInputs = [ diff --git a/pkgs/development/libraries/presage/default.nix b/pkgs/development/libraries/presage/default.nix index df15e73f73c..5f03a425dcc 100644 --- a/pkgs/development/libraries/presage/default.nix +++ b/pkgs/development/libraries/presage/default.nix @@ -30,6 +30,12 @@ stdenv.mkDerivation rec { sha256 = "0243nx1ygggmsly7057vndb4pkjxg9rpay5gyqqrq9jjzjzh63dj"; }) ./fixed-cppunit-detection.patch + # fix gcc11 build + (fetchpatch { + name = "presage-0.9.1-gcc11.patch"; + url = "https://build.opensuse.org/public/source/openSUSE:Factory/presage/presage-0.9.1-gcc11.patch?rev=3f8b4b19c99276296d6ea595cc6c431f"; + sha256 = "sha256-pLrIFXvJHRvv4x9gBIfal4Y68lByDE3XE2NZNiAXe9k="; + }) ]; nativeBuildInputs = [ diff --git a/pkgs/development/libraries/rocclr/default.nix b/pkgs/development/libraries/rocclr/default.nix index fb847b83fe9..8afb0d04418 100644 --- a/pkgs/development/libraries/rocclr/default.nix +++ b/pkgs/development/libraries/rocclr/default.nix @@ -1,5 +1,6 @@ { lib, stdenv , fetchFromGitHub +, fetchpatch , writeScript , rocm-comgr }: @@ -15,6 +16,16 @@ stdenv.mkDerivation rec { hash = "sha256-SFWEGKffhuiTE7ICbkElVV5cldXu4Xbwvjb6LiNmijA="; }; + patches = [ + # Enable support for gfx8 again + # See the upstream issue: https://github.com/RadeonOpenCompute/ROCm/issues/1659 + # And the arch patch: https://github.com/rocm-arch/rocm-arch/pull/742 + (fetchpatch { + url = "https://raw.githubusercontent.com/John-Gee/rocm-arch/d6812d308fee3caf2b6bb01b4d19fe03a6a0e3bd/rocm-opencl-runtime/enable-gfx800.patch"; + hash = "sha256-59jFDIIsTTZcNns9RyMVWPRUggn/bSlAGrky4quu8B4="; + }) + ]; + prePatch = '' substituteInPlace device/comgrctx.cpp \ --replace "libamd_comgr.so" "${rocm-comgr}/lib/libamd_comgr.so" diff --git a/pkgs/development/libraries/rocm-opencl-runtime/default.nix b/pkgs/development/libraries/rocm-opencl-runtime/default.nix index 9c19638d3f4..26bf783f448 100644 --- a/pkgs/development/libraries/rocm-opencl-runtime/default.nix +++ b/pkgs/development/libraries/rocm-opencl-runtime/default.nix @@ -24,13 +24,13 @@ stdenv.mkDerivation rec { pname = "rocm-opencl-runtime"; - version = "5.0.2"; + version = "5.1.1"; src = fetchFromGitHub { owner = "RadeonOpenCompute"; repo = "ROCm-OpenCL-Runtime"; rev = "rocm-${version}"; - hash = "sha256-ovYwElZGRKySH1mWFIISxuNNxCjaqoe9oCvqYZGdfq0="; + hash = "sha256-O7q3uTjspO/rZ2+8+g7pRfBXsCRaEr4DZxEqABHbOeY="; }; nativeBuildInputs = [ cmake rocm-cmake ]; @@ -55,6 +55,7 @@ stdenv.mkDerivation rec { cmakeFlags = [ "-DAMD_OPENCL_PATH=${src}" "-DROCCLR_PATH=${rocclr}" + "-DCPACK_PACKAGING_INSTALL_PREFIX=/opt/rocm/opencl" ]; dontStrip = true; diff --git a/pkgs/development/libraries/rocm-runtime/default.nix b/pkgs/development/libraries/rocm-runtime/default.nix index d16966d2130..9eb9218adda 100644 --- a/pkgs/development/libraries/rocm-runtime/default.nix +++ b/pkgs/development/libraries/rocm-runtime/default.nix @@ -14,13 +14,13 @@ stdenv.mkDerivation rec { pname = "rocm-runtime"; - version = "5.1.0"; + version = "5.1.1"; src = fetchFromGitHub { owner = "RadeonOpenCompute"; repo = "ROCR-Runtime"; rev = "rocm-${version}"; - hash = "sha256-MGm7YmnoFNk7VsxsbsUgSD9Y5r1OBm6Ycg3wXNme8EI="; + hash = "sha256-IP5ylfUXOFkw9+Frfh+tNaZ83ozAbOK9kO2AzFVzzWk="; }; sourceRoot = "source/src"; diff --git a/pkgs/development/libraries/umockdev/default.nix b/pkgs/development/libraries/umockdev/default.nix index fbf5a71bb4b..a389d204a83 100644 --- a/pkgs/development/libraries/umockdev/default.nix +++ b/pkgs/development/libraries/umockdev/default.nix @@ -19,15 +19,21 @@ stdenv.mkDerivation rec { pname = "umockdev"; - version = "0.17.8"; + version = "0.17.9"; outputs = [ "bin" "out" "dev" "devdoc" ]; src = fetchurl { url = "https://github.com/martinpitt/umockdev/releases/download/${version}/${pname}-${version}.tar.xz"; - sha256 = "sha256-s3zeWJxw5ohUtsv4NZGKcdP8khEYzIXycbBrAzdnVoU="; + sha256 = "sha256-FEmWjJVmKKckC30zULGI/mZ3VNtirnweZq2gKh/Y5VE="; }; + patches = [ + # Hardcode absolute paths to libraries so that consumers + # do not need to set LD_LIBRARY_PATH themselves. + ./hardcode-paths.patch + ]; + nativeBuildInputs = [ docbook-xsl-nons gobject-introspection @@ -57,6 +63,21 @@ stdenv.mkDerivation rec { doCheck = true; + postPatch = '' + # Substitute the path to this derivation in the patch we apply. + substituteInPlace src/umockdev-wrapper \ + --subst-var-by 'LIBDIR' "''${!outputLib}/lib" + ''; + + preCheck = '' + # Our patch makes the path to the `LD_PRELOAD`ed library absolute. + # When running tests, the library is not yet installed, though, + # so we need to replace the absolute path with a local one during build. + # We are using a symlink that will be overridden during installation. + mkdir -p "$out/lib" + ln -s "$PWD/libumockdev-preload.so.0" "$out/lib/libumockdev-preload.so.0" + ''; + meta = with lib; { description = "Mock hardware devices for creating unit tests"; license = licenses.lgpl21Plus; diff --git a/pkgs/development/libraries/umockdev/hardcode-paths.patch b/pkgs/development/libraries/umockdev/hardcode-paths.patch new file mode 100644 index 00000000000..91f1e928ec6 --- /dev/null +++ b/pkgs/development/libraries/umockdev/hardcode-paths.patch @@ -0,0 +1,69 @@ +diff --git a/meson.build b/meson.build +index 2ed9027..1f6bbf2 100644 +--- a/meson.build ++++ b/meson.build +@@ -38,6 +38,7 @@ g_ir_compiler = find_program('g-ir-compiler', required: false) + + conf.set('PACKAGE_NAME', meson.project_name()) + conf.set_quoted('VERSION', meson.project_version()) ++conf.set_quoted('LIBDIR', get_option('prefix') / get_option('libdir')) + + # glibc versions somewhere between 2.28 and 2.34 + if cc.has_function('__fxstatat', prefix: '#include ') +@@ -148,7 +149,7 @@ hacked_gir = custom_target('UMockdev-1.0 hacked gir', + + if g_ir_compiler.found() + umockdev_typelib = custom_target('UMockdev-1.0 typelib', +- command: [g_ir_compiler, '--output', '@OUTPUT@', '-l', 'libumockdev.so.0', '@INPUT@'], ++ command: [g_ir_compiler, '--output', '@OUTPUT@', '-l', get_option('prefix') / get_option('libdir') / 'libumockdev.so.0', '@INPUT@'], + input: hacked_gir, + output: 'UMockdev-1.0.typelib', + install: true, +diff --git a/src/config.vapi b/src/config.vapi +index 5269dd0..a2ec46d 100644 +--- a/src/config.vapi ++++ b/src/config.vapi +@@ -2,5 +2,6 @@ + namespace Config { + public const string PACKAGE_NAME; + public const string VERSION; ++ public const string LIBDIR; + } + +diff --git a/src/umockdev-record.vala b/src/umockdev-record.vala +index 8434d32..68c7f8e 100644 +--- a/src/umockdev-record.vala ++++ b/src/umockdev-record.vala +@@ -435,7 +435,7 @@ main (string[] args) + preload = ""; + else + preload = preload + ":"; +- Environment.set_variable("LD_PRELOAD", preload + "libumockdev-preload.so.0", true); ++ Environment.set_variable("LD_PRELOAD", preload + Config.LIBDIR + "/libumockdev-preload.so.0", true); + + try { + root_dir = DirUtils.make_tmp("umockdev.XXXXXX"); +diff --git a/src/umockdev-run.vala b/src/umockdev-run.vala +index 9a1ba10..6df2522 100644 +--- a/src/umockdev-run.vala ++++ b/src/umockdev-run.vala +@@ -95,7 +95,7 @@ main (string[] args) + preload = ""; + else + preload = preload + ":"; +- Environment.set_variable ("LD_PRELOAD", preload + "libumockdev-preload.so.0", true); ++ Environment.set_variable ("LD_PRELOAD", preload + Config.LIBDIR + "/libumockdev-preload.so.0", true); + + var testbed = new UMockdev.Testbed (); + +diff --git a/src/umockdev-wrapper b/src/umockdev-wrapper +index 6ce4dcd..706c49a 100755 +--- a/src/umockdev-wrapper ++++ b/src/umockdev-wrapper +@@ -1,5 +1,5 @@ + #!/bin/sh + # Wrapper program to preload the libumockdev library, so that test programs can + # set $UMOCKDEV_DIR for redirecting sysfs and other queries to a test bed. +-exec env LD_PRELOAD=libumockdev-preload.so.0:$LD_PRELOAD "$@" ++exec env LD_PRELOAD=@LIBDIR@/libumockdev-preload.so.0:$LD_PRELOAD "$@" + diff --git a/pkgs/development/libraries/wolfssl/default.nix b/pkgs/development/libraries/wolfssl/default.nix index 2fc57b87ab3..0ae563f8b19 100644 --- a/pkgs/development/libraries/wolfssl/default.nix +++ b/pkgs/development/libraries/wolfssl/default.nix @@ -7,13 +7,13 @@ stdenv.mkDerivation rec { pname = "wolfssl"; - version = "5.2.0"; + version = "5.3.0"; src = fetchFromGitHub { owner = "wolfSSL"; repo = "wolfssl"; rev = "v${version}-stable"; - sha256 = "1xdhbhn31q7waw7w158hz9n0vj76zlfn5njq7hncf73ks38drj6k"; + sha256 = "sha256-KteArWAgDohlqEYaNfzLPuBn6uy5ABA8vV/LRCVIPGA="; }; postPatch = '' diff --git a/pkgs/development/python-modules/aioairzone/default.nix b/pkgs/development/python-modules/aioairzone/default.nix index fc62525915e..4865812023b 100644 --- a/pkgs/development/python-modules/aioairzone/default.nix +++ b/pkgs/development/python-modules/aioairzone/default.nix @@ -7,7 +7,7 @@ buildPythonPackage rec { pname = "aioairzone"; - version = "0.3.4"; + version = "0.4.2"; format = "setuptools"; disabled = pythonOlder "3.8"; @@ -16,7 +16,7 @@ buildPythonPackage rec { owner = "Noltari"; repo = pname; rev = "refs/tags/${version}"; - hash = "sha256-ENdgaG30Fll5HQOTcghkmqOAiMYEY1aHRIel4Bd25Pk="; + hash = "sha256-SPxSIcsDjsT7dZQs1CoU7DstQTxYN1c0qAB+XQjVXlo="; }; propagatedBuildInputs = [ diff --git a/pkgs/development/python-modules/aiolimiter/default.nix b/pkgs/development/python-modules/aiolimiter/default.nix new file mode 100644 index 00000000000..9f8f81e2fca --- /dev/null +++ b/pkgs/development/python-modules/aiolimiter/default.nix @@ -0,0 +1,65 @@ +{ lib +, buildPythonPackage +, fetchFromGitHub +, fetchpatch +, poetry-core +, importlib-metadata +, pytest-asyncio +, pytestCheckHook +, pythonOlder +, toml +}: + +buildPythonPackage rec { + pname = "aiolimiter"; + version = "1.0.0"; + format = "pyproject"; + + disabled = pythonOlder "3.7"; + + src = fetchFromGitHub { + owner = "mjpieters"; + repo = pname; + rev = "v${version}"; + sha256 = "sha256-4wByVZoOLhrXFx9oK19GBmRcjGoJolQ3Gwx9vQV/n8s="; + }; + + nativeBuildInputs = [ + poetry-core + ]; + + propagatedBuildInputs = lib.optionals (pythonOlder "3.8") [ + importlib-metadata + ]; + + checkInputs = [ + pytest-asyncio + pytestCheckHook + toml + ]; + + patches = [ + # Switch to poetry-core, https://github.com/mjpieters/aiolimiter/pull/77 + (fetchpatch { + name = "switch-to-peotry-core.patch"; + url = "https://github.com/mjpieters/aiolimiter/commit/84a85eff42621b0daff8fcf6bb485db313faae0b.patch"; + sha256 = "sha256-xUfJwLvMF2Xt/V1bKBFn/fjn1uyw7bGNo9RpWxtyr50="; + }) + ]; + + postPatch = '' + substituteInPlace tox.ini \ + --replace " --cov=aiolimiter --cov-config=tox.ini --cov-report term-missing" "" + ''; + + pythonImportsCheck = [ + "aiolimiter" + ]; + + meta = with lib; { + description = "Implementation of a rate limiter for asyncio"; + homepage = "https://github.com/mjpieters/aiolimiter"; + license = with licenses; [ mit ]; + maintainers = with maintainers; [ fab ]; + }; +} diff --git a/pkgs/development/python-modules/aioslimproto/default.nix b/pkgs/development/python-modules/aioslimproto/default.nix index 50f8ed56404..2990659556c 100644 --- a/pkgs/development/python-modules/aioslimproto/default.nix +++ b/pkgs/development/python-modules/aioslimproto/default.nix @@ -7,7 +7,7 @@ buildPythonPackage rec { pname = "aioslimproto"; - version = "2.0.0"; + version = "2.0.1"; format = "setuptools"; disabled = pythonOlder "3.9"; @@ -16,13 +16,18 @@ buildPythonPackage rec { owner = "home-assistant-libs"; repo = pname; rev = version; - hash = "sha256-7xFbxWay2aPCBkf3pBUGshROtssbi//PxxsI8ELeS+c="; + hash = "sha256-xa0LZGq0di4lnJGVMbb1Un0Ebd4vXRlbkxbatJ9GwB0="; }; checkInputs = [ pytestCheckHook ]; + disabledTests = [ + # AssertionError: assert ['mixer', 'volume', '50'] == ['volume', '50'] + "test_msg_instantiation" + ]; + pythonImportsCheck = [ "aioslimproto" ]; diff --git a/pkgs/development/python-modules/androidtv/default.nix b/pkgs/development/python-modules/androidtv/default.nix index f116cef3dc7..2f7afc11375 100644 --- a/pkgs/development/python-modules/androidtv/default.nix +++ b/pkgs/development/python-modules/androidtv/default.nix @@ -11,7 +11,7 @@ buildPythonPackage rec { pname = "androidtv"; - version = "0.0.66"; + version = "0.0.67"; format = "setuptools"; disabled = pythonOlder "3.7"; @@ -20,7 +20,7 @@ buildPythonPackage rec { owner = "JeffLIrion"; repo = "python-androidtv"; rev = "v${version}"; - hash = "sha256-gSbckVjM49nVfzpk9sfynJDx15+zQ/KgaI7oxEkXQpo="; + hash = "sha256-MAlKD2PDQJQaKPiMQDu1CMvn4xnxb8FmeYqzcW4hso0="; }; propagatedBuildInputs = [ diff --git a/pkgs/development/python-modules/ansible/default.nix b/pkgs/development/python-modules/ansible/default.nix index 0e6f26700bc..2e44fa4e243 100644 --- a/pkgs/development/python-modules/ansible/default.nix +++ b/pkgs/development/python-modules/ansible/default.nix @@ -20,7 +20,7 @@ let pname = "ansible"; - version = "5.7.0"; + version = "5.7.1"; in buildPythonPackage { inherit pname version; @@ -30,7 +30,7 @@ buildPythonPackage { src = fetchPypi { inherit pname version; - sha256 = "sha256-6AwOdN4XdK2ufAIzskf/crj72LXxBwd9tdC38DcNa4Y="; + sha256 = "sha256-kKCaNFENGU1jVWiVoiWonkqLdIua4hW1XlF6N94GOmE="; }; postPatch = '' @@ -78,6 +78,7 @@ buildPythonPackage { meta = with lib; { description = "Radically simple IT automation"; homepage = "https://www.ansible.com"; + changelog = "https://github.com/ansible-community/ansible-build-data/blob/${version}/${lib.versions.major version}/CHANGELOG-v${lib.versions.major version}.rst"; license = licenses.gpl3Plus; maintainers = with maintainers; [ hexa ]; }; diff --git a/pkgs/development/python-modules/async-upnp-client/default.nix b/pkgs/development/python-modules/async-upnp-client/default.nix index f2fc5b855c1..c80c2646b7d 100644 --- a/pkgs/development/python-modules/async-upnp-client/default.nix +++ b/pkgs/development/python-modules/async-upnp-client/default.nix @@ -14,7 +14,7 @@ buildPythonPackage rec { pname = "async-upnp-client"; - version = "0.28.0"; + version = "0.29.0"; format = "setuptools"; disabled = pythonOlder "3.7"; @@ -23,7 +23,7 @@ buildPythonPackage rec { owner = "StevenLooman"; repo = "async_upnp_client"; rev = version; - sha256 = "sha256-ZyYIZLIlLQV3Yj4a+M5vZVaTe9lEsrWhBe/g9wzM1TY="; + sha256 = "sha256-IzT48ABfk/v8VZJRJEMU/Rsi6mJG4IvtF7HNRv6TLeA="; }; propagatedBuildInputs = [ diff --git a/pkgs/development/python-modules/awkward/default.nix b/pkgs/development/python-modules/awkward/default.nix index 2b3b1e4ce8c..9698b445eb8 100644 --- a/pkgs/development/python-modules/awkward/default.nix +++ b/pkgs/development/python-modules/awkward/default.nix @@ -30,7 +30,7 @@ buildPythonPackage rec { meta = with lib; { description = "Manipulate JSON-like data with NumPy-like idioms"; - homepage = "https://github.com/scikit-hep/awkward-1.0"; + homepage = "https://github.com/scikit-hep/awkward"; license = licenses.bsd3; maintainers = with maintainers; [ veprbl ]; }; diff --git a/pkgs/development/python-modules/azure-mgmt-msi/default.nix b/pkgs/development/python-modules/azure-mgmt-msi/default.nix index 1f1a2dde376..985c9828974 100644 --- a/pkgs/development/python-modules/azure-mgmt-msi/default.nix +++ b/pkgs/development/python-modules/azure-mgmt-msi/default.nix @@ -1,16 +1,20 @@ { lib , buildPythonPackage +, pythonOlder , fetchPypi , msrest -, msrestazure , azure-common -, azure-mgmt-nspkg +, azure-mgmt-core }: buildPythonPackage rec { pname = "azure-mgmt-msi"; version = "6.0.0"; + disabled = pythonOlder "3.6"; + + format = "setuptools"; + src = fetchPypi { inherit pname version; extension = "zip"; @@ -19,9 +23,8 @@ buildPythonPackage rec { propagatedBuildInputs = [ msrest - msrestazure azure-common - azure-mgmt-nspkg + azure-mgmt-core ]; pythonNamespaces = [ "azure.mgmt" ]; @@ -29,9 +32,11 @@ buildPythonPackage rec { # has no tests doCheck = false; + pythonImportsCheck = [ "azure.mgmt.msi" ]; + meta = with lib; { description = "This is the Microsoft Azure MSI Management Client Library"; - homepage = "https://github.com/Azure/azure-sdk-for-python"; + homepage = "https://github.com/Azure/azure-sdk-for-python/tree/main/sdk/resources/azure-mgmt-msi"; license = licenses.mit; maintainers = with maintainers; [ maxwilson ]; }; diff --git a/pkgs/development/python-modules/azure-mgmt-resource/default.nix b/pkgs/development/python-modules/azure-mgmt-resource/default.nix index 761472b631f..8ac4330b45a 100644 --- a/pkgs/development/python-modules/azure-mgmt-resource/default.nix +++ b/pkgs/development/python-modules/azure-mgmt-resource/default.nix @@ -8,14 +8,14 @@ buildPythonPackage rec { - version = "21.0.0"; + version = "21.1.0"; pname = "azure-mgmt-resource"; disabled = !isPy3k; src = fetchPypi { inherit pname version; extension = "zip"; - sha256 = "sha256-y9J/UhxwtA/YO/Y88XsStbwD5ecNwrbnpxtevYuQDQM="; + sha256 = "sha256-UpZa3jHNBZ/qKxUT1l/mFgRuQz3g5YPc9cnJvr8+vWk="; }; propagatedBuildInputs = [ diff --git a/pkgs/development/python-modules/backports-zoneinfo/default.nix b/pkgs/development/python-modules/backports-zoneinfo/default.nix index d2b6d06c4cd..5fa4c632316 100644 --- a/pkgs/development/python-modules/backports-zoneinfo/default.nix +++ b/pkgs/development/python-modules/backports-zoneinfo/default.nix @@ -7,6 +7,7 @@ , tzdata , hypothesis , pytestCheckHook +, fetchpatch }: buildPythonPackage rec { @@ -22,7 +23,25 @@ buildPythonPackage rec { sha256 = "sha256-00xdDOVdDanfsjQTd3yjMN2RFGel4cWRrAA3CvSnl24="; }; + # Make sure test data update patch applies + prePatch = '' + substituteInPlace tests/data/zoneinfo_data.json --replace \"2020a\" \"2021a\" + ''; + patches = [ + # Update test suite's test data to zoneinfo 2022a + # https://github.com/pganssle/zoneinfo/pull/115 + (fetchpatch { + name = "backports-zoneinfo-2022a-update-test-data1.patch"; + url = "https://github.com/pganssle/zoneinfo/pull/115/commits/837e2a0f9f1a1332e4233f83e3648fa564a9ec9e.patch"; + sha256 = "196knwa212mr0b7zsh8papzr3f5mii87gcjjjx1r9zzvmk3g3ri0"; + }) + (fetchpatch { + name = "backports-zoneinfo-2022a-update-test-data2.patch"; + url = "https://github.com/pganssle/zoneinfo/pull/115/commits/9fd330265b177916d6182249439bb40d5691eb58.patch"; + sha256 = "1zxa5bkwi8hbnh4c0qv72wv6vdp5jlxqizfjsc05ymzvwa99cf75"; + }) + (substituteAll { name = "zoneinfo-path"; src = ./zoneinfo.patch; diff --git a/pkgs/development/python-modules/bond-api/default.nix b/pkgs/development/python-modules/bond-api/default.nix index a685c01fbc0..555caa6033c 100644 --- a/pkgs/development/python-modules/bond-api/default.nix +++ b/pkgs/development/python-modules/bond-api/default.nix @@ -10,7 +10,7 @@ buildPythonPackage rec { pname = "bond-api"; - version = "0.1.16"; + version = "0.1.17"; format = "setuptools"; disabled = pythonOlder "3.7"; @@ -19,7 +19,7 @@ buildPythonPackage rec { owner = "prystupa"; repo = "bond-api"; rev = "v${version}"; - sha256 = "1nqf090b14nd7an2n776mb37yskddfnihmas2fy56pxclwvwqr9n"; + hash = "sha256-fuVYyDy3fG+XobFe2GCzMWRWPk8VDPLU4RHJzcF5MLg="; }; propagatedBuildInputs = [ diff --git a/pkgs/development/python-modules/databricks-connect/default.nix b/pkgs/development/python-modules/databricks-connect/default.nix index 3475001a58b..1782598efd8 100644 --- a/pkgs/development/python-modules/databricks-connect/default.nix +++ b/pkgs/development/python-modules/databricks-connect/default.nix @@ -9,14 +9,14 @@ buildPythonPackage rec { pname = "databricks-connect"; - version = "9.1.14"; + version = "9.1.15"; format = "setuptools"; disabled = pythonOlder "3.7"; src = fetchPypi { inherit pname version; - sha256 = "sha256-l+mTqiQPuPJfGbEVSILpCTlxAka0GeCgIXjMG4Vs82o="; + sha256 = "sha256-qXS/hgF2qKUtTfo9UZ5KBa9N0PHJqKA8SC/vgE46LmA="; }; sourceRoot = "."; diff --git a/pkgs/development/python-modules/gcal-sync/default.nix b/pkgs/development/python-modules/gcal-sync/default.nix new file mode 100644 index 00000000000..101a3ef53d6 --- /dev/null +++ b/pkgs/development/python-modules/gcal-sync/default.nix @@ -0,0 +1,46 @@ +{ lib +, buildPythonPackage +, pythonOlder +, fetchFromGitHub +, aiohttp +, pydantic +, freezegun +, pytest-aiohttp +, pytest-asyncio +, pytestCheckHook +}: + +buildPythonPackage rec { + pname = "gcal-sync"; + version = "0.7.1"; + + disabled = pythonOlder "3.9"; + + src = fetchFromGitHub { + owner = "allenporter"; + repo = "gcal_sync"; + rev = version; + hash = "sha256-NOB74P+5i63FEeHJsPXRdRgY6iyIUEn7BogbVKm8P5M="; + }; + + propagatedBuildInputs = [ + aiohttp + pydantic + ]; + + checkInputs = [ + freezegun + pytest-aiohttp + pytest-asyncio + pytestCheckHook + ]; + + pythonImportsCheck = [ "gcal_sync" ]; + + meta = { + description = "Python library for syncing Google Calendar to local storage"; + homepage = "https://github.com/allenporter/gcal_sync"; + license = lib.licenses.asl20; + maintainers = with lib.maintainers; [ dotlambda ]; + }; +} diff --git a/pkgs/development/python-modules/globus-sdk/default.nix b/pkgs/development/python-modules/globus-sdk/default.nix index 88a2c49e052..68209275426 100644 --- a/pkgs/development/python-modules/globus-sdk/default.nix +++ b/pkgs/development/python-modules/globus-sdk/default.nix @@ -13,7 +13,7 @@ buildPythonPackage rec { pname = "globus-sdk"; - version = "3.7.0"; + version = "3.8.0"; format = "setuptools"; disabled = pythonOlder "3.6"; @@ -22,7 +22,7 @@ buildPythonPackage rec { owner = "globus"; repo = "globus-sdk-python"; rev = "refs/tags/${version}"; - hash = "sha256-Us3SCkrBPL3v9YCOQ7ceF3neCUZkJTrchYsvCRSX84Y="; + hash = "sha256-JaAiAAf0zIJDXXl3zb4UE9XpmjZ8KQiEcZJm1ps+efA="; }; propagatedBuildInputs = [ diff --git a/pkgs/development/python-modules/impacket/default.nix b/pkgs/development/python-modules/impacket/default.nix index 6b6f7e452b2..cc957ac156a 100644 --- a/pkgs/development/python-modules/impacket/default.nix +++ b/pkgs/development/python-modules/impacket/default.nix @@ -14,14 +14,14 @@ buildPythonPackage rec { pname = "impacket"; - version = "0.9.24"; + version = "0.10.0"; format = "setuptools"; disabled = pythonOlder "3.7"; src = fetchPypi { inherit pname version; - hash = "sha256-GNVX04f0kU+vpzmBO5FyvD+L2cA26Tv1iajg67cwS7o="; + hash = "sha256-uOsCCiy7RxRmac/jHGS7Ln1kmdBJxJPWQYuXFvXHRYM="; }; propagatedBuildInputs = [ diff --git a/pkgs/development/python-modules/insteon-frontend-home-assistant/default.nix b/pkgs/development/python-modules/insteon-frontend-home-assistant/default.nix new file mode 100644 index 00000000000..646ffec6552 --- /dev/null +++ b/pkgs/development/python-modules/insteon-frontend-home-assistant/default.nix @@ -0,0 +1,26 @@ +{ lib +, buildPythonPackage +, fetchPypi +}: + +buildPythonPackage rec { + pname = "insteon-frontend-home-assistant"; + version = "0.1.0"; + + src = fetchPypi { + inherit pname version; + sha256 = "70ee413cae8717416f5add1be7647158d8ff4303942dafccac0792ef44336cdf"; + }; + + # upstream has no tests + doCheck = false; + + pythonImportsCheck = [ "insteon_frontend" ]; + + meta = { + description = "The Insteon frontend for Home Assistant"; + homepage = "https://github.com/teharris1/insteon-panel"; + license = lib.licenses.mit; + maintainers = with lib.maintainers; [ dotlambda ]; + }; +} diff --git a/pkgs/development/python-modules/intbitset/default.nix b/pkgs/development/python-modules/intbitset/default.nix index 9cedf7c4d28..f6459c13e70 100644 --- a/pkgs/development/python-modules/intbitset/default.nix +++ b/pkgs/development/python-modules/intbitset/default.nix @@ -2,6 +2,7 @@ , fetchPypi , buildPythonPackage , pytestCheckHook +, pythonOlder }: buildPythonPackage rec { @@ -9,9 +10,11 @@ buildPythonPackage rec { version = "3.0.1"; format = "setuptools"; + disabled = pythonOlder "3.7"; + src = fetchPypi { inherit pname version; - sha256 = "sha256-8ebQPGcpkioiPFGEnfZbnpFuYlrvuRF4Tn+azUwgfVM="; + hash = "sha256-8ebQPGcpkioiPFGEnfZbnpFuYlrvuRF4Tn+azUwgfVM="; }; checkInputs = [ @@ -25,7 +28,7 @@ buildPythonPackage rec { meta = with lib; { description = "C-based extension implementing fast integer bit sets"; homepage = "https://github.com/inveniosoftware/intbitset"; - license = licenses.lgpl3Only; + license = licenses.lgpl3Plus; maintainers = teams.determinatesystems.members; }; } diff --git a/pkgs/development/python-modules/ipywidgets/default.nix b/pkgs/development/python-modules/ipywidgets/default.nix index b33ec2759b5..8894fbaf21f 100644 --- a/pkgs/development/python-modules/ipywidgets/default.nix +++ b/pkgs/development/python-modules/ipywidgets/default.nix @@ -1,43 +1,35 @@ -{ lib -, buildPythonPackage +{ buildPythonPackage , fetchPypi -, python -, nose -, pytest -, mock -, ipython , ipykernel +, ipython , jupyterlab-widgets +, lib +, nbformat +, pytestCheckHook , traitlets -, notebook , widgetsnbextension }: buildPythonPackage rec { pname = "ipywidgets"; version = "7.7.0"; + format = "setuptools"; src = fetchPypi { inherit pname version; - sha256 = "sha256-q0pVloVaiLg3YZIcdocH1l5YRwaBObwXKd3+g0cDVCo="; + hash = "sha256-q0pVloVaiLg3YZIcdocH1l5YRwaBObwXKd3+g0cDVCo="; }; - # Tests are not distributed - # doCheck = false; - - buildInputs = [ nose pytest mock ]; propagatedBuildInputs = [ ipython ipykernel jupyterlab-widgets traitlets - notebook + nbformat widgetsnbextension ]; - checkPhase = '' - ${python.interpreter} -m unittest discover - ''; + checkInputs = [ pytestCheckHook ]; meta = { description = "IPython HTML widgets for Jupyter"; diff --git a/pkgs/development/python-modules/meater-python/default.nix b/pkgs/development/python-modules/meater-python/default.nix new file mode 100644 index 00000000000..219af570dfe --- /dev/null +++ b/pkgs/development/python-modules/meater-python/default.nix @@ -0,0 +1,37 @@ +{ lib +, aiohttp +, buildPythonPackage +, fetchPypi +, pythonOlder +}: + +buildPythonPackage rec { + pname = "meater-python"; + version = "0.0.8"; + format = "setuptools"; + + disabled = pythonOlder "3.7"; + + src = fetchPypi { + inherit pname version; + hash = "sha256-86XJmKOc2MCyU9v0UAZsPCUL/kAXywOlQOIHaykNF1o="; + }; + + propagatedBuildInputs = [ + aiohttp + ]; + + # Module has no tests + doCheck = false; + + pythonImportsCheck = [ + "meater" + ]; + + meta = with lib; { + description = "Library for the Apption Labs Meater cooking probe"; + homepage = "https://github.com/Sotolotl/meater-python"; + license = licenses.asl20; + maintainers = with maintainers; [ fab ]; + }; +} diff --git a/pkgs/development/python-modules/nbclient/default.nix b/pkgs/development/python-modules/nbclient/default.nix index 9c96f71c281..6579185861f 100644 --- a/pkgs/development/python-modules/nbclient/default.nix +++ b/pkgs/development/python-modules/nbclient/default.nix @@ -1,9 +1,19 @@ -{ lib, buildPythonPackage, fetchPypi, pythonOlder, - async_generator, traitlets, nbformat, nest-asyncio, jupyter-client, - pytest, xmltodict, nbconvert, ipywidgets +{ lib +, buildPythonPackage +, fetchPypi +, pythonOlder +, async_generator +, traitlets +, nbformat +, nest-asyncio +, jupyter-client +, pytestCheckHook +, xmltodict +, nbconvert +, ipywidgets }: -buildPythonPackage rec { +let nbclient = buildPythonPackage rec { pname = "nbclient"; version = "0.6.2"; format = "setuptools"; @@ -15,14 +25,26 @@ buildPythonPackage rec { hash = "sha256-i0dVPxztB3zXxFN/1dcB1G92gfJLKCdeXMHTR+fJtGs="; }; - doCheck = false; # Avoid infinite recursion - checkInputs = [ pytest xmltodict nbconvert ipywidgets ]; propagatedBuildInputs = [ async_generator traitlets nbformat nest-asyncio jupyter-client ]; + # circular dependencies if enabled by default + doCheck = false; + + checkInputs = [ pytestCheckHook xmltodict nbconvert ipywidgets ]; + + preCheck = '' + export HOME=$(mktemp -d) + ''; + + passthru.tests = { + check = nbclient.overridePythonAttrs (_: { doCheck = true; }); + }; + meta = with lib; { homepage = "https://github.com/jupyter/nbclient"; description = "A client library for executing notebooks"; license = licenses.bsd3; maintainers = [ maintainers.erictapen ]; }; -} +}; +in nbclient diff --git a/pkgs/development/python-modules/nettigo-air-monitor/default.nix b/pkgs/development/python-modules/nettigo-air-monitor/default.nix index 6f85a797c37..9fbb336c386 100644 --- a/pkgs/development/python-modules/nettigo-air-monitor/default.nix +++ b/pkgs/development/python-modules/nettigo-air-monitor/default.nix @@ -12,7 +12,7 @@ buildPythonPackage rec { pname = "nettigo-air-monitor"; - version = "1.2.2"; + version = "1.2.3"; format = "setuptools"; disabled = pythonOlder "3.8"; @@ -21,7 +21,7 @@ buildPythonPackage rec { owner = "bieniu"; repo = pname; rev = version; - sha256 = "sha256-gHgFEDUji43vTBZp5FLK90H+D44sfH2AuCc7Gu2T1pg="; + sha256 = "sha256-aCDw3JwX8LVrJp3jYvuYQ3ycRHjSnWU0n1LdTjV08VA="; }; propagatedBuildInputs = [ diff --git a/pkgs/development/python-modules/notify-events/default.nix b/pkgs/development/python-modules/notify-events/default.nix new file mode 100644 index 00000000000..97d888ae23c --- /dev/null +++ b/pkgs/development/python-modules/notify-events/default.nix @@ -0,0 +1,34 @@ +{ lib +, buildPythonPackage +, fetchPypi +, requests +}: + +buildPythonPackage rec { + pname = "notify-events"; + version = "1.1.3"; + + format = "setuptools"; + + src = fetchPypi { + pname = "notify_events"; + inherit version; + sha256 = "e63ba935c3300ff7f48cba115f7cb4474906e83c2e9b60b95a0881eb949701e7"; + }; + + propagatedBuildInputs = [ + requests + ]; + + # upstream has no tests + doCheck = false; + + pythonImportsCheck = [ "notify_events" ]; + + meta = { + description = "Python client for Notify.Events"; + homepage = "https://github.com/notify-events/python"; + license = lib.licenses.mit; + maintainers = with lib.maintainers; [ dotlambda ]; + }; +} diff --git a/pkgs/development/python-modules/paramiko/default.nix b/pkgs/development/python-modules/paramiko/default.nix index c5680c5c8a3..421d53b5a88 100644 --- a/pkgs/development/python-modules/paramiko/default.nix +++ b/pkgs/development/python-modules/paramiko/default.nix @@ -14,14 +14,23 @@ buildPythonPackage rec { pname = "paramiko"; - version = "2.10.3"; + version = "2.10.4"; format = "setuptools"; src = fetchPypi { inherit pname version; - sha256 = "sha256-3bGXeFOu+CgEs11yoOWXskT6MmxATDUL0AxbAdv+5xo="; + sha256 = "sha256-PS5lC2gSzm0WCr/3AdbvRDTsl5NLE+lc8a09pw/7XFg="; }; + patches = [ + # Fix usage of dsa keys + # https://github.com/paramiko/paramiko/pull/1606/ + (fetchpatch { + url = "https://github.com/paramiko/paramiko/commit/18e38b99f515056071fb27b9c1a4f472005c324a.patch"; + sha256 = "sha256-bPDghPeLo3NiOg+JwD5CJRRLv2VEqmSx1rOF2Tf8ZDA="; + }) + ]; + propagatedBuildInputs = [ bcrypt cryptography @@ -51,15 +60,6 @@ buildPythonPackage rec { "paramiko" ]; - patches = [ - # Fix usage of dsa keys - # https://github.com/paramiko/paramiko/pull/1606/ - (fetchpatch { - url = "https://github.com/paramiko/paramiko/commit/18e38b99f515056071fb27b9c1a4f472005c324a.patch"; - sha256 = "sha256-bPDghPeLo3NiOg+JwD5CJRRLv2VEqmSx1rOF2Tf8ZDA="; - }) - ]; - __darwinAllowLocalNetworking = true; meta = with lib; { @@ -72,6 +72,6 @@ buildPythonPackage rec { between python scripts. All major ciphers and hash methods are supported. SFTP client and server mode are both supported too. ''; - maintainers = with maintainers; [ ]; + maintainers = with maintainers; [ SuperSandro2000 ]; }; } diff --git a/pkgs/development/python-modules/plugwise/default.nix b/pkgs/development/python-modules/plugwise/default.nix index 18d4fec6c16..396583b9ee4 100644 --- a/pkgs/development/python-modules/plugwise/default.nix +++ b/pkgs/development/python-modules/plugwise/default.nix @@ -13,27 +13,25 @@ , pytest-asyncio , pytestCheckHook , python-dateutil +, pythonOlder , pytz , semver }: buildPythonPackage rec { pname = "plugwise"; - version = "0.17.8"; + version = "0.18.0"; format = "setuptools"; + disabled = pythonOlder "3.7"; + src = fetchFromGitHub { owner = pname; repo = "python-plugwise"; rev = "refs/tags/v${version}"; - sha256 = "sha256-ZNlkdubB6E5ak+EaXsEBGa1xpm5ms4Rp3DG/M4/+WOg="; + sha256 = "sha256-kpEs5LvUz61Wm2IUI6sNXx2R+vtuHq1Y6aaj+zLrr+Q="; }; - postPatch = '' - substituteInPlace setup.py \ - --replace "aiohttp==3.8.0" "aiohttp>=3.8.0" - ''; - propagatedBuildInputs = [ aiohttp async-timeout @@ -54,16 +52,14 @@ buildPythonPackage rec { pytestCheckHook ]; - pythonImportsCheck = [ "plugwise" ]; + pythonImportsCheck = [ + "plugwise" + ]; __darwinAllowLocalNetworking = true; meta = with lib; { description = "Python module for Plugwise Smiles, Stretch and USB stick"; - longDescription = '' - XKNX is an asynchronous Python library for reading and writing KNX/IP - packets. It provides support for KNX/IP routing and tunneling devices. - ''; homepage = "https://github.com/plugwise/python-plugwise"; license = with licenses; [ mit ]; maintainers = with maintainers; [ fab ]; diff --git a/pkgs/development/python-modules/pyahocorasick/default.nix b/pkgs/development/python-modules/pyahocorasick/default.nix index 56e5636622b..336e637edef 100644 --- a/pkgs/development/python-modules/pyahocorasick/default.nix +++ b/pkgs/development/python-modules/pyahocorasick/default.nix @@ -3,31 +3,34 @@ , fetchFromGitHub , fetchpatch , pytestCheckHook +, pythonOlder }: buildPythonPackage rec { pname = "pyahocorasick"; - version = "1.4.1"; + version = "1.4.4"; + format = "setuptools"; + + disabled = pythonOlder "3.7"; src = fetchFromGitHub { owner = "WojciechMula"; repo = pname; rev = version; - sha256 = "13x3718if28l50474xrz1b9709kvnvdg3nzm6y8bh7mc9a4zyss5"; + hash = "sha256-X6ifwOwf7GAaNUxInKhR3NX6hKhvFMkvfbK6XpH8CBo="; }; - patches = [ - # Use proper temporary directory on Hydra - (fetchpatch { - url = "https://github.com/WojciechMula/pyahocorasick/commit/b6549e06f3cced7ffdf4d1b587cd7de12041f495.patch"; - sha256 = "sha256-v3J/0aIPOnBhLlJ18r/l7O0MckqLOCtcmqIS9ZegaSI="; - }) + checkInputs = [ + pytestCheckHook ]; - checkInputs = [ pytestCheckHook ]; + pytestFlagsArray = [ + "unittests.py" + ]; - pytestFlagsArray = [ "unittests.py" ]; - pythonImportsCheck = [ "ahocorasick" ]; + pythonImportsCheck = [ + "ahocorasick" + ]; meta = with lib; { description = "Python module implementing Aho-Corasick algorithm"; diff --git a/pkgs/development/python-modules/pychromecast/default.nix b/pkgs/development/python-modules/pychromecast/default.nix index 32462707cb6..27e464f6e5f 100644 --- a/pkgs/development/python-modules/pychromecast/default.nix +++ b/pkgs/development/python-modules/pychromecast/default.nix @@ -10,7 +10,7 @@ buildPythonPackage rec { pname = "pychromecast"; - version = "11.0.0"; + version = "12.0.0"; format = "setuptools"; disabled = !isPy3k; @@ -18,7 +18,7 @@ buildPythonPackage rec { src = fetchPypi { pname = "PyChromecast"; inherit version; - sha256 = "sha256-FRcjsXgRAFK2c7h2WhIMhdFurowi11V13O6+K+HrHvY="; + sha256 = "sha256-asvEJix8/3glVhenll/rlTwSZdX0LRPMX4uCSURohJ4="; }; propagatedBuildInputs = [ diff --git a/pkgs/development/python-modules/pydeconz/default.nix b/pkgs/development/python-modules/pydeconz/default.nix index 8d37521f326..8523fd96f64 100644 --- a/pkgs/development/python-modules/pydeconz/default.nix +++ b/pkgs/development/python-modules/pydeconz/default.nix @@ -1,6 +1,7 @@ { lib , aiohttp , aioresponses +, async-timeout , buildPythonPackage , fetchFromGitHub , pytest-aiohttp @@ -10,20 +11,21 @@ buildPythonPackage rec { pname = "pydeconz"; - version = "87"; + version = "91"; format = "setuptools"; - disabled = pythonOlder "3.7"; + disabled = pythonOlder "3.9"; src = fetchFromGitHub { owner = "Kane610"; repo = "deconz"; - rev = "v${version}"; - sha256 = "sha256-scNTHbUL8TOhkUJyib4cgL8A4gZ73asmFLi8aGw3sX8="; + rev = "refs/tags/v${version}"; + hash = "sha256-JoQapWQZPjP9TD6gnIGE23hzBt22kAWDKreTzq3GBWQ="; }; propagatedBuildInputs = [ aiohttp + async-timeout ]; checkInputs = [ diff --git a/pkgs/development/python-modules/pyevilgenius/default.nix b/pkgs/development/python-modules/pyevilgenius/default.nix index 28bb1a2c4c0..b59f2ad4fe9 100644 --- a/pkgs/development/python-modules/pyevilgenius/default.nix +++ b/pkgs/development/python-modules/pyevilgenius/default.nix @@ -8,7 +8,7 @@ buildPythonPackage rec { pname = "pyevilgenius"; - version = "1.0.0"; + version = "2.0.0"; format = "setuptools"; disabled = pythonOlder "3.8"; @@ -17,7 +17,7 @@ buildPythonPackage rec { owner = "home-assistant-libs"; repo = pname; rev = version; - sha256 = "06xnl93sqklg7gx0z50vm79xwww0yyw05c1yynajc9aijfi8cmi3"; + sha256 = "sha256-wjC32oq/lW3Z4XB+4SILRKIOuCgBKk1gruOo4uc/4/o="; }; propagatedBuildInputs = [ diff --git a/pkgs/development/python-modules/pyinfra/default.nix b/pkgs/development/python-modules/pyinfra/default.nix index d85a1733224..41e3c95a041 100644 --- a/pkgs/development/python-modules/pyinfra/default.nix +++ b/pkgs/development/python-modules/pyinfra/default.nix @@ -1,30 +1,33 @@ { lib , buildPythonPackage -, fetchPypi -, pythonOlder -, gevent , click , colorama , configparser , distro +, fetchFromGitHub +, gevent , jinja2 , paramiko +, pytestCheckHook , python-dateutil +, pythonOlder , pywinrm +, pyyaml , setuptools -, six }: buildPythonPackage rec { pname = "pyinfra"; - version = "2.0.2"; + version = "2.1"; format = "setuptools"; disabled = pythonOlder "3.7"; - src = fetchPypi { - inherit pname version; - sha256 = "sha256-AW2pOyLqyugTSM7PE4oR9ZwD1liNpdD636QA3ElafG0="; + src = fetchFromGitHub { + owner = "Fizzadar"; + repo = pname; + rev = "v${version}"; + hash = "sha256-frjPxSATvXgeACT4kThoiPu04Ez8bs8FIPdf5PVuiSg="; }; propagatedBuildInputs = [ @@ -37,16 +40,23 @@ buildPythonPackage rec { paramiko python-dateutil pywinrm + pyyaml setuptools - six ]; - doCheck = false; + checkInputs = [ + pytestCheckHook + ]; pythonImportsCheck = [ "pyinfra" ]; + disabledTests = [ + # Test requires SSH binary + "test_load_ssh_config" + ]; + meta = with lib; { description = "Python-based infrastructure automation"; longDescription = '' diff --git a/pkgs/development/python-modules/pyinsteon/default.nix b/pkgs/development/python-modules/pyinsteon/default.nix index 0dc1c5be49c..ed28f1c7522 100644 --- a/pkgs/development/python-modules/pyinsteon/default.nix +++ b/pkgs/development/python-modules/pyinsteon/default.nix @@ -16,7 +16,7 @@ buildPythonPackage rec { pname = "pyinsteon"; - version = "1.0.16"; + version = "1.1.0"; format = "setuptools"; disabled = pythonOlder "3.6"; @@ -24,8 +24,8 @@ buildPythonPackage rec { src = fetchFromGitHub { owner = pname; repo = pname; - rev = version; - hash = "sha256-V0niLQAplN/uZ0YeN6g8uax3U/d0LUT4aXxe3ENXIHc="; + rev = "refs/tags/${version}"; + hash = "sha256-YoDCvYpbw06MXx371SNarrtQ0t4xlhwm1CBbl524P7c="; }; propagatedBuildInputs = [ diff --git a/pkgs/development/python-modules/pylsp-mypy/default.nix b/pkgs/development/python-modules/pylsp-mypy/default.nix index a4725c4781c..c8551270797 100644 --- a/pkgs/development/python-modules/pylsp-mypy/default.nix +++ b/pkgs/development/python-modules/pylsp-mypy/default.nix @@ -22,6 +22,7 @@ buildPythonPackage rec { disabledTests = [ "test_multiple_workspaces" + "test_option_overrides_dmypy" ]; checkInputs = [ pytestCheckHook mock ]; diff --git a/pkgs/development/python-modules/pynws/default.nix b/pkgs/development/python-modules/pynws/default.nix index df258cad930..eb19d273459 100644 --- a/pkgs/development/python-modules/pynws/default.nix +++ b/pkgs/development/python-modules/pynws/default.nix @@ -13,14 +13,14 @@ buildPythonPackage rec { pname = "pynws"; - version = "1.3.2"; + version = "1.4.1"; disabled = pythonOlder "3.6"; src = fetchFromGitHub { owner = "MatthewFlamm"; repo = pname; rev = "v${version}"; - sha256 = "0d2x3vlm444aar4wbdg48xzpgwng5m7i2d7h1z0pb6c514747sd1"; + sha256 = "sha256-hAUD92wlQZ0BZ++e/KdIOgTzavmUkrH3esDhI3mbl5Y="; }; propagatedBuildInputs = [ diff --git a/pkgs/development/python-modules/pyrainbird/default.nix b/pkgs/development/python-modules/pyrainbird/default.nix new file mode 100644 index 00000000000..74f0ed630a2 --- /dev/null +++ b/pkgs/development/python-modules/pyrainbird/default.nix @@ -0,0 +1,58 @@ +{ lib +, buildPythonPackage +, fetchFromGitHub +, parameterized +, pycryptodome +, pytestCheckHook +, pythonOlder +, pyyaml +, requests +, responses +, setuptools +}: + +buildPythonPackage rec { + pname = "pyrainbird"; + version = "0.4.3"; + format = "setuptools"; + + disabled = pythonOlder "3.7"; + + src = fetchFromGitHub { + owner = "jbarrancos"; + repo = pname; + rev = version; + hash = "sha256-uRHknWvoPKPu3B5MbSEUlWqBKwAbNMwsgXuf6PZxhkU="; + }; + + propagatedBuildInputs = [ + pycryptodome + pyyaml + requests + setuptools + ]; + + checkInputs = [ + pytestCheckHook + parameterized + responses + ]; + + postPatch = '' + substituteInPlace requirements.txt \ + --replace "datetime" "" + substituteInPlace pytest.ini \ + --replace "--cov=pyrainbird --cov-report=term-missing --pep8 --flakes --mccabe" "" + ''; + + pythonImportsCheck = [ + "pyrainbird" + ]; + + meta = with lib; { + description = "Module to interact with Rainbird controllers"; + homepage = "https://github.com/jbarrancos/pyrainbird/"; + license = with licenses; [ mit ]; + maintainers = with maintainers; [ fab ]; + }; +} diff --git a/pkgs/development/python-modules/python-engineio/default.nix b/pkgs/development/python-modules/python-engineio/default.nix index da929638757..9ddbc92125f 100644 --- a/pkgs/development/python-modules/python-engineio/default.nix +++ b/pkgs/development/python-modules/python-engineio/default.nix @@ -16,7 +16,7 @@ buildPythonPackage rec { pname = "python-engineio"; - version = "4.3.1"; + version = "4.3.2"; format = "setuptools"; disabled = pythonOlder "3.6"; @@ -25,7 +25,7 @@ buildPythonPackage rec { owner = "miguelgrinberg"; repo = "python-engineio"; rev = "v${version}"; - sha256 = "sha256-8595zivZmff0agFiQd5Qyd/T3BDxYcsb4RjA5AWXVNM="; + sha256 = "sha256-RXIFfd4eeRLaDPe6+8jhIN2TI1yz/uDfnvWT95euaIo="; }; checkInputs = [ diff --git a/pkgs/development/python-modules/python-lsp-black/default.nix b/pkgs/development/python-modules/python-lsp-black/default.nix index dbd51166a22..ee66ea262c6 100644 --- a/pkgs/development/python-modules/python-lsp-black/default.nix +++ b/pkgs/development/python-modules/python-lsp-black/default.nix @@ -1,27 +1,28 @@ { lib -, black +, pythonOlder , buildPythonPackage , fetchFromGitHub , pytestCheckHook +, black , python-lsp-server -, pythonOlder +, toml }: buildPythonPackage rec { pname = "python-lsp-black"; - version = "1.1.0"; + version = "1.2.1"; disabled = pythonOlder "3.6"; src = fetchFromGitHub { owner = "python-lsp"; repo = "python-lsp-black"; rev = "v${version}"; - sha256 = "sha256-WIQf1oz3b1PLIcXfQsu4hQ58nfp7l3J7zkcWNT6RbUY="; + sha256 = "sha256-qNA6Bj1VI0YEtRuvcMQZGWakQNNrJ2PqhozrLmQHPAg="; }; checkInputs = [ pytestCheckHook ]; - propagatedBuildInputs = [ black python-lsp-server ]; + propagatedBuildInputs = [ black python-lsp-server toml ]; meta = with lib; { homepage = "https://github.com/python-lsp/python-lsp-black"; diff --git a/pkgs/development/python-modules/python-lsp-server/default.nix b/pkgs/development/python-modules/python-lsp-server/default.nix index 31352435165..aeb2d756779 100644 --- a/pkgs/development/python-modules/python-lsp-server/default.nix +++ b/pkgs/development/python-modules/python-lsp-server/default.nix @@ -20,6 +20,7 @@ , pythonOlder , rope , setuptools +, setuptools-scm , stdenv , ujson , yapf @@ -36,7 +37,8 @@ buildPythonPackage rec { pname = "python-lsp-server"; - version = "1.3.3"; + version = "1.4.1"; + format = "pyproject"; disabled = pythonOlder "3.7"; @@ -44,13 +46,18 @@ buildPythonPackage rec { owner = "python-lsp"; repo = pname; rev = "v${version}"; - sha256 = "sha256-F8f9NAjPWkm01D/KwFH0oA6nQ3EF4ZVCCckZTL4A35Y="; + sha256 = "sha256-rEfjxHw2NIVIa8RepxLPiXkRFhcGWLzm6w43n60zkFE="; }; postPatch = '' substituteInPlace setup.cfg \ --replace "--cov-report html --cov-report term --junitxml=pytest.xml" "" \ - --replace "--cov pylsp --cov test" "" + --replace "--cov pylsp --cov test" "" \ + --replace "mccabe>=0.6.0,<0.7.0" "mccabe" + ''; + + preBuild = '' + export SETUPTOOLS_SCM_PRETEND_VERSION=${version} ''; propagatedBuildInputs = [ @@ -58,6 +65,7 @@ buildPythonPackage rec { pluggy python-lsp-jsonrpc setuptools + setuptools-scm ujson ] ++ lib.optional withAutopep8 autopep8 ++ lib.optional withFlake8 flake8 @@ -79,10 +87,7 @@ buildPythonPackage rec { # pyqt5 is broken on aarch64-darwin ++ lib.optionals (!stdenv.isDarwin || !stdenv.isAarch64) [ pyqt5 ]; - disabledTests = [ - # pytlint output changed - "test_lint_free_pylint" - ] ++ lib.optional (!withPycodestyle) "test_workspace_loads_pycodestyle_config" + disabledTests = lib.optional (!withPycodestyle) "test_workspace_loads_pycodestyle_config" # pyqt5 is broken on aarch64-darwin ++ lib.optional (stdenv.isDarwin && stdenv.isAarch64) "test_pyqt_completion"; diff --git a/pkgs/development/python-modules/python-socketio/default.nix b/pkgs/development/python-modules/python-socketio/default.nix index e41942317f9..2e35def2710 100644 --- a/pkgs/development/python-modules/python-socketio/default.nix +++ b/pkgs/development/python-modules/python-socketio/default.nix @@ -14,7 +14,7 @@ buildPythonPackage rec { pname = "python-socketio"; - version = "5.5.2"; + version = "5.6.0"; format = "setuptools"; disabled = pythonOlder "3.6"; @@ -23,7 +23,7 @@ buildPythonPackage rec { owner = "miguelgrinberg"; repo = "python-socketio"; rev = "v${version}"; - sha256 = "sha256-ZTjh9gtnJwFG2qWH6FBrvLHKsEuTjkcKL6j6Mdos6zo="; + sha256 = "sha256-zsTSz2RHtr4LqqPCkvHcaAw7RvfkHTNDm83OS+SgMUU="; }; propagatedBuildInputs = [ diff --git a/pkgs/development/python-modules/pytomorrowio/default.nix b/pkgs/development/python-modules/pytomorrowio/default.nix index 2c695fc7e05..abc90f2a6c7 100644 --- a/pkgs/development/python-modules/pytomorrowio/default.nix +++ b/pkgs/development/python-modules/pytomorrowio/default.nix @@ -3,19 +3,20 @@ , pythonOlder , fetchPypi , aiohttp +, pytest-aiohttp , pytest-asyncio , pytestCheckHook }: buildPythonPackage rec { pname = "pytomorrowio"; - version = "0.2.1"; + version = "0.3.3"; disabled = pythonOlder "3.7"; src = fetchPypi { inherit pname version; - sha256 = "aabb41436fb5834b687d73b334d95be07a18d5943d27a1fd06271b749558ba0e"; + sha256 = "0d4f81dc90aefa26da18b927473cb7b08b093f7732301983ef5f0b1ca1181c62"; }; propagatedBuildInputs = [ @@ -23,6 +24,7 @@ buildPythonPackage rec { ]; checkInputs = [ + pytest-aiohttp pytest-asyncio pytestCheckHook ]; diff --git a/pkgs/development/python-modules/pyvesync/default.nix b/pkgs/development/python-modules/pyvesync/default.nix index 45404c107fb..f1421e8c980 100644 --- a/pkgs/development/python-modules/pyvesync/default.nix +++ b/pkgs/development/python-modules/pyvesync/default.nix @@ -7,14 +7,14 @@ buildPythonPackage rec { pname = "pyvesync"; - version = "2.0.2"; + version = "2.0.3"; format = "setuptools"; disabled = pythonOlder "3.6"; src = fetchPypi { inherit pname version; - sha256 = "sha256-SsSzwuJvDbQ1AzF+q5bjOnFaR6M2UFixtlmk6sgjKOg="; + sha256 = "sha256-/hPDCqTeqEzxfqv8B5wdDzmzzNuXYqOVHX32N/J6nmU="; }; propagatedBuildInputs = [ diff --git a/pkgs/development/python-modules/qnapstats/default.nix b/pkgs/development/python-modules/qnapstats/default.nix new file mode 100644 index 00000000000..2eeb4e81d28 --- /dev/null +++ b/pkgs/development/python-modules/qnapstats/default.nix @@ -0,0 +1,48 @@ +{ lib +, buildPythonPackage +, fetchFromGitHub +, requests +, xmltodict +, responses +, python +}: + +buildPythonPackage rec { + pname = "qnapstats"; + version = "0.4.0"; + + format = "setuptools"; + + src = fetchFromGitHub { + owner = "colinodell"; + repo = "python-qnapstats"; + rev = version; + hash = "sha256-Tzi2QG1Xw12fLVfV49SPJKdz5VdJ4hQMuCHH8gxcOBE="; + }; + + propagatedBuildInputs = [ + requests + xmltodict + ]; + + checkInputs = [ + responses + ]; + + checkPhase = '' + runHook preCheck + + ${python.interpreter} tests/test-models.py + + runHook postCheck + ''; + + pythonImportsCheck = [ "qnapstats" ]; + + meta = { + description = "Python API for obtaining QNAP NAS system stats"; + homepage = "https://github.com/colinodell/python-qnapstats"; + license = lib.licenses.mit; + maintainers = with lib.maintainers; [ dotlambda ]; + }; +} diff --git a/pkgs/development/python-modules/qstylizer/default.nix b/pkgs/development/python-modules/qstylizer/default.nix new file mode 100644 index 00000000000..768e5f7d007 --- /dev/null +++ b/pkgs/development/python-modules/qstylizer/default.nix @@ -0,0 +1,47 @@ +{ lib +, buildPythonPackage +, pythonOlder +, fetchFromGitHub +, inflection +, pbr +, tinycss2 +, pytestCheckHook +, pytest-mock +}: + +buildPythonPackage rec { + pname = "qstylizer"; + version = "0.2.1"; + + src = fetchFromGitHub { + owner = "blambright"; + repo = pname; + rev = version; + sha256 = "sha256-iEMxBpS9gOPubd9O8zpVmR5B7+UZJFkPuOtikO1a9v0="; + }; + + nativeBuildInputs = [ + pbr + ]; + + propagatedBuildInputs = [ + inflection + tinycss2 + ]; + + checkInputs = [ + pytestCheckHook + pytest-mock + ]; + + preBuild = '' + export PBR_VERSION=${version} + ''; + + meta = with lib; { + description = "Qt stylesheet generation utility for PyQt/PySide "; + homepage = "https://github.com/blambright/qstylizer"; + license = licenses.mit; + maintainers = with maintainers; [ drewrisinger ]; + }; +} diff --git a/pkgs/development/python-modules/raincloudy/default.nix b/pkgs/development/python-modules/raincloudy/default.nix new file mode 100644 index 00000000000..860f9461e44 --- /dev/null +++ b/pkgs/development/python-modules/raincloudy/default.nix @@ -0,0 +1,61 @@ +{ lib +, beautifulsoup4 +, buildPythonPackage +, fetchFromGitHub +, html5lib +, pytestCheckHook +, pythonOlder +, requests +, requests-mock +, urllib3 +}: + +buildPythonPackage rec { + pname = "raincloudy"; + version = "1.1.1"; + format = "setuptools"; + + disabled = pythonOlder "3.7"; + + src = fetchFromGitHub { + owner = "vanstinator"; + repo = pname; + rev = version; + hash = "sha256-c6tux0DZY56a4BpuiMXtaqm8+JKNDiyMxrFUju3cp2Y="; + }; + + propagatedBuildInputs = [ + requests + beautifulsoup4 + urllib3 + html5lib + ]; + + checkInputs = [ + pytestCheckHook + requests-mock + ]; + + postPatch = '' + # https://github.com/vanstinator/raincloudy/pull/60 + substituteInPlace setup.py \ + --replace "bs4" "beautifulsoup4" \ + --replace "html5lib==1.0.1" "html5lib" + ''; + + pythonImportsCheck = [ + "raincloudy" + ]; + + disabledTests = [ + # Test requires network access + "test_attributes" + ]; + + meta = with lib; { + description = "Module to interact with Melnor RainCloud Smart Garden Watering Irrigation Timer"; + homepage = "https://github.com/vanstinator/raincloudy"; + license = with licenses; [ asl20 ]; + maintainers = with maintainers; [ fab ]; + }; +} diff --git a/pkgs/development/python-modules/scancode-toolkit/default.nix b/pkgs/development/python-modules/scancode-toolkit/default.nix index a5fdf3d547e..2c12019e9ac 100644 --- a/pkgs/development/python-modules/scancode-toolkit/default.nix +++ b/pkgs/development/python-modules/scancode-toolkit/default.nix @@ -64,7 +64,7 @@ buildPythonPackage rec { src = fetchPypi { inherit pname version; - sha256 = "sha256-UYQf+cBi2FmyZxIbQJo7vLjPuoePIMC8FugvoG1Ebj0="; + hash = "sha256-UYQf+cBi2FmyZxIbQJo7vLjPuoePIMC8FugvoG1Ebj0="; }; dontConfigure = true; @@ -134,7 +134,8 @@ buildPythonPackage rec { --replace "pdfminer.six >= 20200101" "pdfminer.six" \ --replace "pluggy >= 0.12.0, < 1.0" "pluggy" \ --replace "pygmars >= 0.7.0" "pygmars" \ - --replace "license_expression >= 21.6.14" "license_expression" + --replace "license_expression >= 21.6.14" "license_expression" \ + --replace "intbitset >= 2.3.0, < 3.0" "intbitset" ''; # Importing scancode needs a writeable home, and preCheck happens in between diff --git a/pkgs/development/python-modules/setupmeta/default.nix b/pkgs/development/python-modules/setupmeta/default.nix index d24c8263e9a..298a2a8915d 100644 --- a/pkgs/development/python-modules/setupmeta/default.nix +++ b/pkgs/development/python-modules/setupmeta/default.nix @@ -12,7 +12,7 @@ buildPythonPackage rec { pname = "setupmeta"; - version = "3.3.0"; + version = "3.3.1"; format = "setuptools"; disabled = pythonOlder "3.6"; @@ -21,7 +21,7 @@ buildPythonPackage rec { owner = "codrsquad"; repo = pname; rev = "v${version}"; - sha256 = "21hABRiY8CTKkpFjePgBAtjs4/G5eFS3aPNMCBC41CY="; + sha256 = "sha256-3QUI3AjouuGa9sWXH97GSvpimVsws3q5Xgq6lls/wBU="; }; preBuild = '' diff --git a/pkgs/development/python-modules/simplisafe-python/default.nix b/pkgs/development/python-modules/simplisafe-python/default.nix index ec3cf592786..cb3446156bf 100644 --- a/pkgs/development/python-modules/simplisafe-python/default.nix +++ b/pkgs/development/python-modules/simplisafe-python/default.nix @@ -3,6 +3,7 @@ , aresponses , asynctest , backoff +, beautifulsoup4 , buildPythonPackage , docutils , fetchFromGitHub @@ -19,7 +20,7 @@ buildPythonPackage rec { pname = "simplisafe-python"; - version = "2022.03.3"; + version = "2022.05.0"; format = "pyproject"; disabled = pythonOlder "3.8"; @@ -28,7 +29,7 @@ buildPythonPackage rec { owner = "bachya"; repo = pname; rev = version; - sha256 = "sha256-19+p39uZO9pSDzH6YkS9ZDVA4zyl9oJ325yTQ5+SQcw="; + sha256 = "sha256-NXEhjj8L7MPAdQwjqe6u+L9vi/mIIA8TxDpM5q4uUrU="; }; nativeBuildInputs = [ @@ -38,6 +39,7 @@ buildPythonPackage rec { propagatedBuildInputs = [ aiohttp backoff + beautifulsoup4 docutils pytz voluptuous @@ -62,6 +64,8 @@ buildPythonPackage rec { # simplipy/api.py:253: InvalidCredentialsError "test_request_error_failed_retry" "test_update_error" + # ClientConnectorError: Cannot connect to host auth.simplisafe.com:443 ssl:default [Temporary failure in name resolution] + "test_client_async_from_refresh_token_unknown_error" ]; disabledTestPaths = [ diff --git a/pkgs/development/python-modules/spyder-kernels/default.nix b/pkgs/development/python-modules/spyder-kernels/default.nix index 95d54e40447..2d4328ba3e1 100644 --- a/pkgs/development/python-modules/spyder-kernels/default.nix +++ b/pkgs/development/python-modules/spyder-kernels/default.nix @@ -18,6 +18,10 @@ buildPythonPackage rec { pyzmq ]; + postPatch = '' + substituteInPlace setup.py --replace "ipython>=7.31.1,<8" "ipython" + ''; + # No tests doCheck = false; diff --git a/pkgs/development/python-modules/spyder/default.nix b/pkgs/development/python-modules/spyder/default.nix index c117cb4990f..eaca9e6c7f4 100644 --- a/pkgs/development/python-modules/spyder/default.nix +++ b/pkgs/development/python-modules/spyder/default.nix @@ -1,16 +1,54 @@ -{ lib, buildPythonPackage, fetchPypi, isPy27, makeDesktopItem, intervaltree, - jedi, pycodestyle, psutil, rope, numpy, scipy, matplotlib, pylint, - keyring, numpydoc, qtconsole, qtawesome, nbconvert, mccabe, pyopengl, - cloudpickle, pygments, spyder-kernels, qtpy, pyzmq, chardet, qdarkstyle, - watchdog, python-language-server, pyqtwebengine, atomicwrites, pyxdg, - diff-match-patch, three-merge, pyls-black, pyls-spyder, flake8, textdistance +{ lib +, buildPythonPackage +, fetchPypi +, pythonOlder +, makeDesktopItem +, atomicwrites +, chardet +, cloudpickle +, cookiecutter +, diff-match-patch +, flake8 +, intervaltree +, jedi +, jellyfish +, keyring +, matplotlib +, mccabe +, nbconvert +, numpy +, numpydoc +, psutil +, pygments +, pylint +, pyls-spyder +, pyopengl +, pyqtwebengine +, python-lsp-black +, python-lsp-server +, pyxdg +, pyzmq +, pycodestyle +, qdarkstyle +, qstylizer +, qtawesome +, qtconsole +, qtpy +, rope +, Rtree +, scipy +, spyder-kernels +, textdistance +, three-merge +, watchdog +, pytestCheckHook }: buildPythonPackage rec { pname = "spyder"; version = "5.3.0"; - disabled = isPy27; + disabled = pythonOlder "3.7"; src = fetchPypi { inherit pname version; @@ -20,11 +58,44 @@ buildPythonPackage rec { nativeBuildInputs = [ pyqtwebengine.wrapQtAppsHook ]; propagatedBuildInputs = [ - intervaltree jedi pycodestyle psutil rope numpy scipy matplotlib pylint keyring - numpydoc qtconsole qtawesome nbconvert mccabe pyopengl cloudpickle spyder-kernels - pygments qtpy pyzmq chardet pyqtwebengine qdarkstyle watchdog python-language-server - atomicwrites pyxdg diff-match-patch three-merge pyls-black pyls-spyder - flake8 textdistance + atomicwrites + chardet + cloudpickle + cookiecutter + diff-match-patch + flake8 + intervaltree + jedi + jellyfish + keyring + matplotlib + mccabe + nbconvert + numpy + numpydoc + psutil + pygments + pylint + pyls-spyder + pyopengl + pyqtwebengine + python-lsp-black + python-lsp-server + pyxdg + pyzmq + pycodestyle + qdarkstyle + qstylizer + qtawesome + qtconsole + qtpy + rope + Rtree + scipy + spyder-kernels + textdistance + three-merge + watchdog ]; # There is no test for spyder @@ -44,13 +115,8 @@ buildPythonPackage rec { # remove dependency on pyqtwebengine # this is still part of the pyqt 5.11 version we have in nixpkgs sed -i /pyqtwebengine/d setup.py - # The major version bump in watchdog is due to changes in supported - # platforms, not API break. - # https://github.com/gorakhargosh/watchdog/issues/761#issuecomment-777001518 substituteInPlace setup.py \ - --replace "pyqt5<5.13" "pyqt5" \ - --replace "parso==0.7.0" "parso" \ - --replace "watchdog>=0.10.3,<2.0.0" "watchdog>=0.10.3,<3.0.0" + --replace "ipython>=7.31.1,<8.0.0" "ipython" ''; postInstall = '' diff --git a/pkgs/development/python-modules/sqlite-utils/default.nix b/pkgs/development/python-modules/sqlite-utils/default.nix index b3621802a09..d7f07eea073 100644 --- a/pkgs/development/python-modules/sqlite-utils/default.nix +++ b/pkgs/development/python-modules/sqlite-utils/default.nix @@ -14,16 +14,21 @@ buildPythonPackage rec { pname = "sqlite-utils"; - version = "3.26"; + version = "3.26.1"; format = "setuptools"; disabled = pythonOlder "3.6"; src = fetchPypi { inherit pname version; - hash = "sha256-G2Fy9PEYtq0dIWhsgV4HZa5y+wLxcI3CYSgDL6ijkdo="; + hash = "sha256-GK/036zijOSi9IWZSFifXrexY8dyo6cfwWyaF06x82c="; }; + postPatch = '' + substituteInPlace setup.py \ + --replace "click-default-group-wheel" "click-default-group" + ''; + propagatedBuildInputs = [ click click-default-group @@ -45,6 +50,6 @@ buildPythonPackage rec { description = "Python CLI utility and library for manipulating SQLite databases"; homepage = "https://github.com/simonw/sqlite-utils"; license = licenses.asl20; - maintainers = with maintainers; [ meatcar ]; + maintainers = with maintainers; [ meatcar techknowlogick ]; }; } diff --git a/pkgs/development/python-modules/total-connect-client/default.nix b/pkgs/development/python-modules/total-connect-client/default.nix index 7846525f65f..24d2093a59d 100644 --- a/pkgs/development/python-modules/total-connect-client/default.nix +++ b/pkgs/development/python-modules/total-connect-client/default.nix @@ -8,7 +8,7 @@ buildPythonPackage rec { pname = "total-connect-client"; - version = "2022.2.1"; + version = "2022.3"; format = "setuptools"; disabled = pythonOlder "3.7"; @@ -17,7 +17,7 @@ buildPythonPackage rec { owner = "craigjmidwinter"; repo = "total-connect-client"; rev = version; - hash = "sha256-1/uqOxaJqrT+E+0ikNZX9AfIRRbpBSjh2nINrqGWxbY="; + hash = "sha256-KfJFU85yQmBZn4f0ljnaiy/DjHMOuNi+Q7nb8yCpKVk="; }; propagatedBuildInputs = [ diff --git a/pkgs/development/python-modules/voluptuous/default.nix b/pkgs/development/python-modules/voluptuous/default.nix index d2e221d6e39..4212de031be 100644 --- a/pkgs/development/python-modules/voluptuous/default.nix +++ b/pkgs/development/python-modules/voluptuous/default.nix @@ -1,27 +1,31 @@ { lib , buildPythonPackage -, fetchPypi -, nose +, fetchFromGitHub +, pytestCheckHook }: buildPythonPackage rec { pname = "voluptuous"; - version = "0.13.0"; + version = "0.13.1"; - src = fetchPypi { - inherit pname version; - sha256 = "sha256-yuakUmtDS2QoFrNKAOEYbVpfXgyUirlNKpGOAeWHQGY="; + src = fetchFromGitHub { + owner = "alecthomas"; + repo = pname; + rev = version; + hash = "sha256-cz3Bd+/yPh+VOHxzi/W+gbDh/H5Nl/n4jvxDOirmAVk="; }; checkInputs = [ - nose + pytestCheckHook ]; - checkPhase = '' - nosetests - ''; + pythonImportsCheck = [ + "voluptuous" + ]; - pythonImportsCheck = [ "voluptuous" ]; + pytestFlagsArray = [ + "voluptuous/tests/" + ]; meta = with lib; { description = "Python data validation library"; diff --git a/pkgs/development/python-modules/wandb/default.nix b/pkgs/development/python-modules/wandb/default.nix index ef1e1d1198f..615b4e64aa4 100644 --- a/pkgs/development/python-modules/wandb/default.nix +++ b/pkgs/development/python-modules/wandb/default.nix @@ -12,7 +12,7 @@ , jsonref , jsonschema , matplotlib -, nbconvert +, nbclient , nbformat , pandas , pathtools @@ -88,9 +88,7 @@ buildPythonPackage rec { jsonref jsonschema matplotlib - # Oddly enough, nbclient does not provide the `nbclient` module. Rather it's - # available in nbconvert. See https://github.com/NixOS/nixpkgs/issues/171493#issuecomment-1116960488. - nbconvert + nbclient nbformat pandas pydantic diff --git a/pkgs/development/python-modules/zigpy/default.nix b/pkgs/development/python-modules/zigpy/default.nix index a10e9ae65c7..da0ae7872da 100644 --- a/pkgs/development/python-modules/zigpy/default.nix +++ b/pkgs/development/python-modules/zigpy/default.nix @@ -4,6 +4,7 @@ , asynctest , buildPythonPackage , crccheck +, cryptography , fetchFromGitHub , pycryptodome , pytest-aiohttp @@ -15,7 +16,7 @@ buildPythonPackage rec { pname = "zigpy"; - version = "0.44.2"; + version = "0.45.1"; format = "setuptools"; disabled = pythonOlder "3.7"; @@ -24,13 +25,14 @@ buildPythonPackage rec { owner = "zigpy"; repo = "zigpy"; rev = version; - sha256 = "sha256-E6SeuVu5UdWL5Tx39UQymNhABltR+qVHANYWuCh+h6I="; + sha256 = "sha256-85Bi8qjbUKLXFW7VGOxzelMa1gY9giGeQRmOeoZ1idE="; }; propagatedBuildInputs = [ aiohttp aiosqlite crccheck + cryptography pycryptodome voluptuous ]; diff --git a/pkgs/development/python-modules/zwave-js-server-python/default.nix b/pkgs/development/python-modules/zwave-js-server-python/default.nix index 028e30f4cb7..d0f938c6a8b 100644 --- a/pkgs/development/python-modules/zwave-js-server-python/default.nix +++ b/pkgs/development/python-modules/zwave-js-server-python/default.nix @@ -10,7 +10,7 @@ buildPythonPackage rec { pname = "zwave-js-server-python"; - version = "0.35.3"; + version = "0.36.1"; format = "setuptools"; disabled = pythonOlder "3.8"; @@ -19,7 +19,7 @@ buildPythonPackage rec { owner = "home-assistant-libs"; repo = pname; rev = version; - sha256 = "sha256-vM5GEqq32VdC5UjGVlnrN8/LRcCHHkJFzEbaA2Snte8="; + sha256 = "sha256-XVFOx0f5lBh5i7q8XEb4qd0Lu09jEEYKyJUJBqXwirc="; }; propagatedBuildInputs = [ diff --git a/pkgs/development/tools/analysis/hopper/default.nix b/pkgs/development/tools/analysis/hopper/default.nix index b169877f5c1..d7b519b04c3 100644 --- a/pkgs/development/tools/analysis/hopper/default.nix +++ b/pkgs/development/tools/analysis/hopper/default.nix @@ -3,36 +3,35 @@ , lib , autoPatchelfHook , wrapQtAppsHook -, libbsd -, python27 , gmpxx -, ncurses5 , gnustep -, libffi +, libbsd +, libffi_3_3 +, ncurses6 }: + stdenv.mkDerivation rec { pname = "hopper"; - version = "4.5.29"; - rev = "v${lib.versions.major version}"; + version = "5.5.3"; + rev = "v4"; src = fetchurl { - url = "https://d2ap6ypl1xbe4k.cloudfront.net/Hopper-${rev}-${version}-Linux.pkg.tar.xz"; - sha256 = "1v1pff5fiv41khvrnlpdks2vddjnvziyn14qqj6v26snyhwi86zh"; + url = "https://d2ap6ypl1xbe4k.cloudfront.net/Hopper-${rev}-${version}-Linux-demo.pkg.tar.xz"; + hash = "sha256-xq9ZVg1leHm/tq6LYyQLa8p5dDwBd64Jt92uMoE0z58="; }; sourceRoot = "."; nativeBuildInputs = [ - wrapQtAppsHook autoPatchelfHook + wrapQtAppsHook ]; buildInputs = [ - libbsd - python27 - gmpxx - ncurses5 gnustep.libobjc + libbsd + libffi_3_3 + ncurses6 ]; installPhase = '' @@ -54,9 +53,6 @@ stdenv.mkDerivation rec { $sourceRoot/opt/hopper-${rev}/lib/libpthread_workqueue.so* \ $out/lib - # we already ship libffi.so.7 - ln -s ${lib.getLib libffi}/lib/libffi.so $out/lib/libffi.so.6 - cp -r $sourceRoot/usr/share $out runHook postInstall diff --git a/pkgs/development/tools/continuous-integration/github-runner/default.nix b/pkgs/development/tools/continuous-integration/github-runner/default.nix index aae87fb976d..abd77dd1f4a 100644 --- a/pkgs/development/tools/continuous-integration/github-runner/default.nix +++ b/pkgs/development/tools/continuous-integration/github-runner/default.nix @@ -46,13 +46,13 @@ let in stdenv.mkDerivation rec { pname = "github-runner"; - version = "2.290.1"; + version = "2.291.1"; src = fetchFromGitHub { owner = "actions"; repo = "runner"; rev = "v${version}"; - hash = "sha256-YUV66yiUdS2/ORZS7a7coqyzoXM/tnK0egEeXWLPNl0="; + hash = "sha256-0Eijq2vXY+Y2g3bhEhIGnFxTCLXpw7k3iXpgj3x8nL4="; }; nativeBuildInputs = [ diff --git a/pkgs/development/tools/flip-link/default.nix b/pkgs/development/tools/flip-link/default.nix index 6e752379a73..d42e282289a 100644 --- a/pkgs/development/tools/flip-link/default.nix +++ b/pkgs/development/tools/flip-link/default.nix @@ -2,23 +2,31 @@ rustPlatform.buildRustPackage rec { pname = "flip-link"; - version = "0.1.4"; + version = "0.1.6"; src = fetchFromGitHub { owner = "knurling-rs"; repo = pname; rev = "v${version}"; - sha256 = "sha256-LE0cWS6sOb9/VvGloezNnePHGldnpfNTdCFUv3F/nwE="; + sha256 = "sha256-Sf2HlAfPlg8Er2g17AnRmUkvRhTw5AVPuL2B92hFvpA="; }; - cargoSha256 = "sha256-8WBMF5stMB4JXvYwa5yHVFV+3utDuMFJNTZ4fZFDftw="; + cargoSha256 = "sha256-2VgsO2hUIvSPNQhR13+bGTxXa6xZXcK0amfiWv2EIxk="; buildInputs = lib.optional stdenv.isDarwin libiconv; + checkFlags = [ + # requires embedded toolchains + "--skip should_link_example_firmware::case_1_normal" + "--skip should_link_example_firmware::case_2_custom_linkerscript" + "--skip should_verify_memory_layout" + ]; + meta = with lib; { description = "Adds zero-cost stack overflow protection to your embedded programs"; homepage = "https://github.com/knurling-rs/flip-link"; - license = with licenses; [ asl20 mit ]; - maintainers = [ maintainers.FlorianFranzen ]; + changelog = "https://github.com/knurling-rs/flip-link/blob/v${version}/CHANGELOG.md"; + license = with licenses; [ asl20 /* or */ mit ]; + maintainers = with maintainers; [ FlorianFranzen newam ]; }; } diff --git a/pkgs/development/tools/protoc-gen-twirp_php/default.nix b/pkgs/development/tools/protoc-gen-twirp_php/default.nix index df5afac2dbb..a54c860f295 100644 --- a/pkgs/development/tools/protoc-gen-twirp_php/default.nix +++ b/pkgs/development/tools/protoc-gen-twirp_php/default.nix @@ -2,19 +2,23 @@ buildGoModule rec { pname = "protoc-gen-twirp_php"; - version = "0.8.0"; + version = "0.8.1"; # fetchFromGitHub currently not possible, because go.mod and go.sum are export-ignored src = fetchgit { url = "https://github.com/twirphp/twirp.git"; rev = "v${version}"; - sha256 = "sha256-TaHfyYoWsA/g5xZFxIMNwE1w6Dd9Cq5bp1gpQudYLs0="; + sha256 = "sha256-5PACgKqc8rWqaA6Syj5NyxHm3827yd67tm0mwVSMnWQ="; }; vendorSha256 = "sha256-qQFlBviRISEnPBt0q5391RqUrPTI/QDxg3MNfwWE8MI="; subPackages = [ "protoc-gen-twirp_php" ]; + ldflags = [ + "-X main.version=${version}" + ]; + meta = with lib; { description = "PHP port of Twitch's Twirp RPC framework"; homepage = "https://github.com/twirphp/twirp"; diff --git a/pkgs/games/crossfire/crossfire-arch.nix b/pkgs/games/crossfire/crossfire-arch.nix index ff9e0f9dea6..c09f474e70c 100644 --- a/pkgs/games/crossfire/crossfire-arch.nix +++ b/pkgs/games/crossfire/crossfire-arch.nix @@ -3,12 +3,12 @@ stdenv.mkDerivation rec { pname = "crossfire-arch"; - version = "r${toString rev}"; + version = rev; src = fetchsvn { url = "http://svn.code.sf.net/p/crossfire/code/arch/trunk/"; - sha256 = sha256; - rev = rev; + inherit sha256; + rev = "r${rev}"; }; installPhase = '' diff --git a/pkgs/games/crossfire/crossfire-client.nix b/pkgs/games/crossfire/crossfire-client.nix index 799ae4ab6ee..0d335b4f529 100644 --- a/pkgs/games/crossfire/crossfire-client.nix +++ b/pkgs/games/crossfire/crossfire-client.nix @@ -7,12 +7,12 @@ stdenv.mkDerivation rec { pname = "crossfire-client"; - version = "r${toString rev}"; + version = rev; src = fetchsvn { url = "http://svn.code.sf.net/p/crossfire/code/client/trunk/"; - sha256 = sha256; - rev = rev; + inherit sha256; + rev = "r${rev}"; }; nativeBuildInputs = [ cmake pkg-config perl vala ]; diff --git a/pkgs/games/crossfire/crossfire-maps.nix b/pkgs/games/crossfire/crossfire-maps.nix index 0521b038d36..cb514a90d16 100644 --- a/pkgs/games/crossfire/crossfire-maps.nix +++ b/pkgs/games/crossfire/crossfire-maps.nix @@ -3,12 +3,12 @@ stdenv.mkDerivation rec { pname = "crossfire-maps"; - version = "r${toString rev}"; + version = rev; src = fetchsvn { url = "http://svn.code.sf.net/p/crossfire/code/maps/trunk/"; - sha256 = sha256; - rev = rev; + inherit sha256; + rev = "r${rev}"; }; installPhase = '' diff --git a/pkgs/games/crossfire/crossfire-server.nix b/pkgs/games/crossfire/crossfire-server.nix index 9259e8e52fa..f99e08a5a46 100644 --- a/pkgs/games/crossfire/crossfire-server.nix +++ b/pkgs/games/crossfire/crossfire-server.nix @@ -4,12 +4,12 @@ stdenv.mkDerivation rec { pname = "crossfire-server"; - version = "r${toString rev}"; + version = rev; src = fetchsvn { url = "http://svn.code.sf.net/p/crossfire/code/server/trunk/"; - sha256 = sha256; - rev = rev; + inherit sha256; + rev = "r${rev}"; }; nativeBuildInputs = [ autoconf automake libtool flex perl check pkg-config python3 ]; diff --git a/pkgs/games/crossfire/default.nix b/pkgs/games/crossfire/default.nix index bc74c00bcce..7d0716df3d9 100644 --- a/pkgs/games/crossfire/default.nix +++ b/pkgs/games/crossfire/default.nix @@ -3,26 +3,26 @@ rec { crossfire-client = callPackage ./crossfire-client.nix { version = "1.75.0"; - rev = 21760; + rev = "21760"; sha256 = "0b42sak8hj60nywfswkps777asy9p8r9wsn7pmj2nqbd29ng1p9d"; }; crossfire-server = callPackage ./crossfire-server.nix { version = "latest"; - rev = 22111; + rev = "22111"; sha256 = "04fjif6zv642n2zlw27cgzkak2kknwrxqzg42bvzl7q901bsr9l7"; maps = crossfire-maps; arch = crossfire-arch; }; crossfire-arch = callPackage ./crossfire-arch.nix { version = "latest"; - rev = 22111; + rev = "22111"; sha256 = "0l4rp3idvbhknpxxs0w4i4nqfg01wblzm4v4j375xwxxbf00j0ms"; }; crossfire-maps = callPackage ./crossfire-maps.nix { version = "latest"; - rev = 22111; + rev = "22111"; sha256 = "1dwfc84acjvbjgjakkb8z8pdlksbsn90j0z8z8rq37lqx0kx1sap"; }; } diff --git a/pkgs/os-specific/linux/bolt/default.nix b/pkgs/os-specific/linux/bolt/default.nix index dd9436d9b0e..d424f89fdfb 100644 --- a/pkgs/os-specific/linux/bolt/default.nix +++ b/pkgs/os-specific/linux/bolt/default.nix @@ -13,7 +13,7 @@ , libxml2 , libxslt , docbook_xml_dtd_45 -, docbook_xsl +, docbook-xsl-nons , glib , systemd , polkit @@ -21,39 +21,33 @@ stdenv.mkDerivation rec { pname = "bolt"; - version = "0.9.1"; + version = "0.9.2"; src = fetchFromGitLab { domain = "gitlab.freedesktop.org"; owner = "bolt"; repo = "bolt"; rev = version; - sha256 = "1phgp8fs0dlj74kbkqlvfniwc32daz47b3pvsxlfxqzyrp77xrfm"; + sha256 = "eXjj7oD5HOW/AG2uxDa0tSleKmbouFd2fwlL2HHFiMA="; }; patches = [ # meson install tries to create /var/lib/boltd ./0001-skip-mkdir.patch - # https://github.com/NixOS/nixpkgs/issues/104429 + # Test does not work on ZFS with atime disabled. # Upstream issue: https://gitlab.freedesktop.org/bolt/bolt/-/issues/167 (fetchpatch { - name = "disable-atime-tests.diff"; - url = "https://gitlab.freedesktop.org/roberth/bolt/-/commit/1f672a7de2ebc4dd51590bb90f3b873a8ac0f4e6.diff"; - sha256 = "134f5s6kjqs6612pwq5pm1miy58crn1kxbyyqhzjnzmf9m57fnc8"; - }) - - # Fix tests with newer umockdev - (fetchpatch { - url = "https://gitlab.freedesktop.org/bolt/bolt/-/commit/130e09d1c7ff02c09e4ad1c9c36e9940b68e58d8.patch"; - sha256 = "HycuM7z4VvtBuZZLU68tBxGT1YjaqJRS4sKyoTGHZEk="; + url = "https://gitlab.freedesktop.org/bolt/bolt/-/commit/c2f1d5c40ad71b20507e02faa11037b395fac2f8.diff"; + revert = true; + sha256 = "6w7ll65W/CydrWAVi/qgzhrQeDv1PWWShulLxoglF+I="; }) ]; nativeBuildInputs = [ asciidoc docbook_xml_dtd_45 - docbook_xsl + docbook-xsl-nons libxml2 libxslt meson diff --git a/pkgs/os-specific/linux/intel-compute-runtime/default.nix b/pkgs/os-specific/linux/intel-compute-runtime/default.nix index 1d1d5667fe9..5c3154bf39d 100644 --- a/pkgs/os-specific/linux/intel-compute-runtime/default.nix +++ b/pkgs/os-specific/linux/intel-compute-runtime/default.nix @@ -11,13 +11,13 @@ stdenv.mkDerivation rec { pname = "intel-compute-runtime"; - version = "21.42.21270"; + version = "22.17.23034"; src = fetchFromGitHub { owner = "intel"; repo = "compute-runtime"; rev = version; - sha256 = "N9MsDcsL8kBWxfZjhukcxZiSJnXxqMgWF0etOhf2/AE="; + sha256 = "sha256-ae6kPiVQe3+hcqXVu2ncCaVQAoMKoDHifrkKpt6uWX8="; }; nativeBuildInputs = [ cmake pkg-config ]; diff --git a/pkgs/os-specific/linux/iwd/default.nix b/pkgs/os-specific/linux/iwd/default.nix index bc5811942a5..424a1d1a50e 100644 --- a/pkgs/os-specific/linux/iwd/default.nix +++ b/pkgs/os-specific/linux/iwd/default.nix @@ -12,12 +12,12 @@ stdenv.mkDerivation rec { pname = "iwd"; - version = "1.26"; + version = "1.27"; src = fetchgit { url = "https://git.kernel.org/pub/scm/network/wireless/iwd.git"; rev = version; - sha256 = "sha256-+BciYfb9++u9Ux4AdvPFFIFVq8j+TVoTLKqxzmn5p3o="; + sha256 = "sha256-gN9+9Cc6zjZBXDhcHBH5wyucO5/vL7bKSLWM5laFqaA="; }; outputs = [ "out" "man" "doc" ] diff --git a/pkgs/os-specific/linux/power-profiles-daemon/default.nix b/pkgs/os-specific/linux/power-profiles-daemon/default.nix index 9f96eb2576d..253c3caf6aa 100644 --- a/pkgs/os-specific/linux/power-profiles-daemon/default.nix +++ b/pkgs/os-specific/linux/power-profiles-daemon/default.nix @@ -8,6 +8,7 @@ , libgudev , glib , polkit +, dbus , gobject-introspection , gettext , gtk-doc @@ -29,34 +30,21 @@ let dbus-python python-dbusmock ]; - testTypelibPath = lib.makeSearchPathOutput "lib" "lib/girepository-1.0" [ umockdev ]; in stdenv.mkDerivation rec { pname = "power-profiles-daemon"; - version = "0.10.1"; + version = "0.11.1"; - outputs = [ "out" "devdoc" "installedTests" ]; + outputs = [ "out" "devdoc" ]; src = fetchFromGitLab { domain = "gitlab.freedesktop.org"; owner = "hadess"; repo = "power-profiles-daemon"; rev = version; - sha256 = "sha256-sQWiCHc0kEELdmPq9Qdk7OKDUgbM5R44639feC7gjJc="; + sha256 = "sha256-qU9A9U2R3UioC7bo8Pc0IIsHIjghb6gsG4pTAg6tp9E="; }; - patches = [ - # Enable installed tests. - # https://gitlab.freedesktop.org/hadess/power-profiles-daemon/-/merge_requests/92 - (fetchpatch { - url = "https://gitlab.freedesktop.org/hadess/power-profiles-daemon/-/commit/3c64d9e1732eb6425e33013c452f1c4aa7a26f7e.patch"; - sha256 = "din5VuZZwARNDInHtl44yJK8pLmlxr5eoD4iMT4a8HA="; - }) - - # Install installed tests to separate output. - ./installed-tests-path.patch - ]; - nativeBuildInputs = [ pkg-config meson @@ -70,9 +58,6 @@ stdenv.mkDerivation rec { gobject-introspection wrapGAppsNoGuiHook python3.pkgs.wrapPython - - # For finding tests. - (python3.withPackages testPythonPkgs) ]; buildInputs = [ @@ -91,31 +76,28 @@ stdenv.mkDerivation rec { python3.pkgs.pygobject3 ]; + checkInputs = [ + umockdev + dbus + (python3.withPackages testPythonPkgs) + ]; + mesonFlags = [ - "-Dinstalled_test_prefix=${placeholder "installedTests"}" "-Dsystemdsystemunitdir=${placeholder "out"}/lib/systemd/system" "-Dgtk_doc=true" ]; + doCheck = true; + PKG_CONFIG_POLKIT_GOBJECT_1_POLICYDIR = "${placeholder "out"}/share/polkit-1/actions"; # Avoid double wrapping dontWrapGApps = true; postPatch = '' - patchShebangs tests/unittest_inspector.py - ''; - - preConfigure = '' - # For finding tests. - GI_TYPELIB_PATH_original=$GI_TYPELIB_PATH - addToSearchPath GI_TYPELIB_PATH "${testTypelibPath}" - ''; - - postConfigure = '' - # Restore the original value to prevent the program from depending on umockdev. - export GI_TYPELIB_PATH=$GI_TYPELIB_PATH_original - unset GI_TYPELIB_PATH_original + patchShebangs --build \ + tests/integration-test.py \ + tests/unittest_inspector.py ''; preInstall = '' @@ -128,33 +110,22 @@ stdenv.mkDerivation rec { export PKEXEC_UID=-1 ''; + postCheck = '' + # Do not contaminate the wrapper with test dependencies. + unset GI_TYPELIB_PATH + unset XDG_DATA_DIRS + ''; + postFixup = '' # Avoid double wrapping makeWrapperArgs+=("''${gappsWrapperArgs[@]}") # Make Python libraries available wrapPythonProgramsIn "$out/bin" "$pythonPath" - - # Make Python libraries available for installed tests - makeWrapperArgs+=( - --prefix GI_TYPELIB_PATH : "${testTypelibPath}" - --prefix PATH : "${lib.makeBinPath [ umockdev ]}" - # Vala does not use absolute paths in typelibs - # https://github.com/NixOS/nixpkgs/issues/47226 - # Also umockdev binaries use relative paths for LD_PRELOAD. - --prefix LD_LIBRARY_PATH : "${lib.makeLibraryPath [ umockdev ]}" - # dbusmock calls its templates using exec so our regular patching of Python scripts - # to add package directories to site will not carry over. - # https://github.com/martinpitt/python-dbusmock/blob/2254e69279a02fb3027b500ed7288b77c7a80f2a/dbusmock/mockobject.py#L51 - # https://github.com/martinpitt/python-dbusmock/blob/2254e69279a02fb3027b500ed7288b77c7a80f2a/dbusmock/__main__.py#L60-L62 - --prefix PYTHONPATH : "${lib.makeSearchPath python3.sitePackages (testPythonPkgs python3.pkgs)}" - ) - wrapPythonProgramsIn "$installedTests/libexec/installed-tests" "$pythonPath ${lib.concatStringsSep " " (testPythonPkgs python3.pkgs)}" ''; passthru = { tests = { nixos = nixosTests.power-profiles-daemon; - installed-tests = nixosTests.installed-tests.power-profiles-daemon; }; }; diff --git a/pkgs/os-specific/linux/power-profiles-daemon/installed-tests-path.patch b/pkgs/os-specific/linux/power-profiles-daemon/installed-tests-path.patch deleted file mode 100644 index 63059f3ac73..00000000000 --- a/pkgs/os-specific/linux/power-profiles-daemon/installed-tests-path.patch +++ /dev/null @@ -1,37 +0,0 @@ -diff --git a/meson_options.txt b/meson_options.txt -index 7e89619..76497db 100644 ---- a/meson_options.txt -+++ b/meson_options.txt -@@ -1,3 +1,4 @@ -+option('installed_test_prefix', type: 'string', description: 'Prefix for installed tests') - option('systemdsystemunitdir', - description: 'systemd unit directory', - type: 'string', -diff --git a/tests/meson.build b/tests/meson.build -index b306a7f..7670e1b 100644 ---- a/tests/meson.build -+++ b/tests/meson.build -@@ -2,8 +2,8 @@ envs = environment() - envs.set ('top_builddir', meson.build_root()) - envs.set ('top_srcdir', meson.source_root()) - --installed_test_bindir = libexecdir / 'installed-tests' / meson.project_name() --installed_test_datadir = datadir / 'installed-tests' / meson.project_name() -+installed_test_bindir = get_option('installed_test_prefix') / 'libexec' / 'installed-tests' / meson.project_name() -+installed_test_datadir = get_option('installed_test_prefix') / 'share' / 'installed-tests' / meson.project_name() - - python3 = find_program('python3') - unittest_inspector = find_program('unittest_inspector.py') -diff --git a/tests/integration-test.py b/tests/integration-test.py -index 22dc42c..0f92b76 100755 ---- a/tests/integration-test.py -+++ b/tests/integration-test.py -@@ -67,7 +67,7 @@ class Tests(dbusmock.DBusTestCase): - print('Testing binaries from JHBuild (%s)' % cls.daemon_path) - else: - cls.daemon_path = None -- with open('/usr/lib/systemd/system/power-profiles-daemon.service') as f: -+ with open('/run/current-system/sw/lib/systemd/system/power-profiles-daemon.service') as f: - for line in f: - if line.startswith('ExecStart='): - cls.daemon_path = line.split('=', 1)[1].strip() diff --git a/pkgs/servers/home-assistant/component-packages.nix b/pkgs/servers/home-assistant/component-packages.nix index 963f81c1daf..1a7cd964ef5 100644 --- a/pkgs/servers/home-assistant/component-packages.nix +++ b/pkgs/servers/home-assistant/component-packages.nix @@ -2,7 +2,7 @@ # Do not edit! { - version = "2022.4.7"; + version = "2022.5.0"; components = { "abode" = ps: with ps; [ abodepy @@ -157,10 +157,6 @@ ]; "arest" = ps: with ps; [ ]; - "arlo" = ps: with ps; [ - ha-ffmpeg - pyarlo - ]; "arris_tg2492lg" = ps: with ps; [ arris-tg2492lg ]; @@ -554,8 +550,6 @@ "digital_ocean" = ps: with ps; [ digital-ocean ]; - "digitalloggers" = ps: with ps; [ - ]; # missing inputs: dlipower "directv" = ps: with ps; [ directv ]; @@ -993,8 +987,7 @@ ]; "google" = ps: with ps; [ aiohttp-cors - google-api-python-client - httplib2 + gcal-sync oauth2client ]; "google_assistant" = ps: with ps; [ @@ -1248,9 +1241,15 @@ ]; "insteon" = ps: with ps; [ aiohttp-cors + fnvhash + home-assistant-frontend + insteon-frontend-home-assistant + lru-dict + pillow pyinsteon pyserial pyudev + sqlalchemy ]; "integration" = ps: with ps; [ ]; @@ -1391,8 +1390,10 @@ life360 ]; "lifx" = ps: with ps; [ + aiohttp-cors aiolifx aiolifx-effects + ifaddr ]; "lifx_cloud" = ps: with ps; [ ]; @@ -1514,6 +1515,9 @@ "mazda" = ps: with ps; [ pymazda ]; + "meater" = ps: with ps; [ + meater-python + ]; "media_extractor" = ps: with ps; [ aiohttp-cors youtube-dl-light @@ -1787,7 +1791,8 @@ "notify" = ps: with ps; [ ]; "notify_events" = ps: with ps; [ - ]; # missing inputs: notify-events + notify-events + ]; "notion" = ps: with ps; [ aionotion ]; @@ -2087,7 +2092,11 @@ georss-qld-bushfire-alert-client ]; "qnap" = ps: with ps; [ - ]; # missing inputs: qnapstats + qnapstats + ]; + "qnap_qsw" = ps: with ps; [ + aioqsw + ]; "qrcode" = ps: with ps; [ pillow pyzbar @@ -2115,9 +2124,11 @@ radiotherm ]; "rainbird" = ps: with ps; [ - ]; # missing inputs: pyrainbird + pyrainbird + ]; "raincloud" = ps: with ps; [ - ]; # missing inputs: raincloudy + raincloudy + ]; "rainforest_eagle" = ps: with ps; [ aioeagle ueagle @@ -2309,6 +2320,10 @@ "sentry" = ps: with ps; [ sentry-sdk ]; + "senz" = ps: with ps; [ + aiohttp-cors + aiosenz + ]; "serial" = ps: with ps; [ pyserial-asyncio ]; @@ -2382,6 +2397,10 @@ ]; "slide" = ps: with ps; [ ]; # missing inputs: goslide-api + "slimproto" = ps: with ps; [ + aiohttp-cors + aioslimproto + ]; "sma" = ps: with ps; [ pysma ]; @@ -2420,7 +2439,7 @@ paho-mqtt ]; "snmp" = ps: with ps; [ - pysnmp + pysnmplib ]; "solaredge" = ps: with ps; [ solaredge @@ -2747,6 +2766,9 @@ pytradfri ] ++ pytradfri.extras-require.async; + "trafikverket_ferry" = ps: with ps; [ + pytrafikverket + ]; "trafikverket_train" = ps: with ps; [ pytrafikverket ]; @@ -2828,11 +2850,10 @@ ]; "update" = ps: with ps; [ ]; - "updater" = ps: with ps; [ - ]; "upnp" = ps: with ps; [ aiohttp-cors async-upnp-client + getmac ifaddr zeroconf ]; @@ -3168,7 +3189,6 @@ "apprise" "aprs" "arcam_fmj" - "arlo" "aseko_pool_live" "asuswrt" "atag" @@ -3436,6 +3456,7 @@ "manual_mqtt" "maxcube" "mazda" + "meater" "media_player" "media_source" "melcloud" @@ -3486,6 +3507,7 @@ "nina" "no_ip" "notify" + "notify_events" "notion" "nsw_rural_fire_service_feed" "nuki" @@ -3540,6 +3562,7 @@ "pvpc_hourly_pricing" "python_script" "qld_bushfire" + "qnap_qsw" "rachio" "radarr" "radio_browser" @@ -3582,6 +3605,7 @@ "sensibo" "sensor" "sentry" + "senz" "seventeentrack" "shell_command" "shelly" @@ -3595,6 +3619,7 @@ "siren" "slack" "sleepiq" + "slimproto" "sma" "smappee" "smart_meter_texas" @@ -3648,6 +3673,7 @@ "tailscale" "tankerkoenig" "tasmota" + "tautulli" "tcp" "telegram" "telegram_bot" @@ -3671,6 +3697,7 @@ "trace" "tractive" "tradfri" + "trafikverket_ferry" "trafikverket_train" "trafikverket_weatherstation" "transmission" @@ -3689,7 +3716,6 @@ "upb" "upcloud" "update" - "updater" "upnp" "uptime" "uptimerobot" diff --git a/pkgs/servers/home-assistant/default.nix b/pkgs/servers/home-assistant/default.nix index b29f48310d0..b7d0faca0c1 100644 --- a/pkgs/servers/home-assistant/default.nix +++ b/pkgs/servers/home-assistant/default.nix @@ -30,7 +30,6 @@ let defaultOverrides = [ # Override the version of some packages pinned in Home Assistant's setup.py and requirements_all.txt (mkOverride "python-slugify" "4.0.1" "sha256-aaUXdm4AwSaOW7/A0BCgqFCN4LGNMK1aH/NX+K5yQnA=") - (mkOverride "voluptuous" "0.12.2" "sha256-TbGsUHnbkkmCDUnIkctGYKb4yuNQSRIQq850H6v1ZRM=") # pytest-aiohttp>0.3.0 breaks home-assistant tests (self: super: { @@ -47,9 +46,21 @@ let aiohomekit = super.aiohomekit.overridePythonAttrs (oldAttrs: { doCheck = false; # requires aiohttp>=1.0.0 }); + gcal-sync = super.gcal-sync.overridePythonAttrs (oldAttrs: { + doCheck = false; # requires aiohttp>=1.0.0 + }); hass-nabucasa = super.hass-nabucasa.overridePythonAttrs (oldAttrs: { doCheck = false; # requires aiohttp>=1.0.0 }); + pydeconz = super.pydeconz.overridePythonAttrs (oldAttrs: { + doCheck = false; # requires pytest-aiohttp>=1.0.0 + }); + pynws = super.pynws.overridePythonAttrs (oldAttrs: { + doCheck = false; # requires pytest-aiohttp>=1.0.0 + }); + pytomorrowio = super.pytomorrowio.overridePythonAttrs (oldAttrs: { + doCheck = false; # requires pytest-aiohttp>=1.0.0 + }); rtsp-to-webrtc = super.rtsp-to-webrtc.overridePythonAttrs (oldAttrs: { doCheck = false; # requires pytest-aiohttp>=1.0.0 }); @@ -110,7 +121,7 @@ let src = fetchFromGitHub { owner = "ManneW"; repo = "vilfo-api-client-python"; - rev = "v$version}"; + rev = "v${version}"; sha256 = "1gy5gpsg99rcm1cc3m30232za00r9i46sp74zpd12p3vzz1wyyqf"; }; }); @@ -168,7 +179,7 @@ let extraPackagesFile = writeText "home-assistant-packages" (lib.concatMapStringsSep "\n" (pkg: pkg.pname) extraBuildInputs); # Don't forget to run parse-requirements.py after updating - hassVersion = "2022.4.7"; + hassVersion = "2022.5.0"; in python.pkgs.buildPythonApplication rec { pname = "homeassistant"; @@ -186,7 +197,7 @@ in python.pkgs.buildPythonApplication rec { owner = "home-assistant"; repo = "core"; rev = version; - hash = "sha256-1m3t+AeHyuEyu3gT8P37A+L28mBdNKGmycU6eNOyb4M="; + hash = "sha256-xlotye/8oeCs/ntNV4osGjcl7fo05ke7nFLQeee/USY="; }; # leave this in, so users don't have to constantly update their downstream patch handling diff --git a/pkgs/servers/home-assistant/frontend.nix b/pkgs/servers/home-assistant/frontend.nix index fb708313072..98fe3a04e2b 100644 --- a/pkgs/servers/home-assistant/frontend.nix +++ b/pkgs/servers/home-assistant/frontend.nix @@ -4,7 +4,7 @@ buildPythonPackage rec { # the frontend version corresponding to a specific home-assistant version can be found here # https://github.com/home-assistant/home-assistant/blob/master/homeassistant/components/frontend/manifest.json pname = "home-assistant-frontend"; - version = "20220405.0"; + version = "20220504.0"; format = "wheel"; src = fetchPypi { @@ -12,7 +12,7 @@ buildPythonPackage rec { pname = "home_assistant_frontend"; dist = "py3"; python = "py3"; - sha256 = "sha256-M024uJJVhVSoGhJTc7d8NKItw0sAOGFuCsZNUe//vBg="; + sha256 = "sha256-CYhUId5SGfPX9beAZH0ZemwciVDxchbDcTvQcRhJwog="; }; # there is nothing to strip in this package diff --git a/pkgs/servers/irc/inspircd/default.nix b/pkgs/servers/irc/inspircd/default.nix index f3138915be0..6480e242510 100644 --- a/pkgs/servers/irc/inspircd/default.nix +++ b/pkgs/servers/irc/inspircd/default.nix @@ -142,13 +142,13 @@ in stdenv.mkDerivation rec { pname = "inspircd"; - version = "3.12.0"; + version = "3.13.0"; src = fetchFromGitHub { owner = pname; repo = pname; rev = "v${version}"; - sha256 = "sha256-3c7PFIZy/TGf68XdaSC25Amr8Zfb0O+za4ermIzQjnY="; + sha256 = "1d5mnj86x4bk6iygns0cc15w315wrzmqxcq0sc4n75xsg6wwp1zl"; }; outputs = [ "bin" "lib" "man" "doc" "out" ]; diff --git a/pkgs/servers/kanidm/default.nix b/pkgs/servers/kanidm/default.nix new file mode 100644 index 00000000000..f160886fb64 --- /dev/null +++ b/pkgs/servers/kanidm/default.nix @@ -0,0 +1,89 @@ +{ stdenv +, lib +, formats +, nixosTests +, rustPlatform +, fetchFromGitHub +, installShellFiles +, pkg-config +, udev +, openssl +, sqlite +, pam +}: + +let + arch = if stdenv.isx86_64 then "x86_64" else "generic"; +in +rustPlatform.buildRustPackage rec { + pname = "kanidm"; + version = "1.1.0-alpha.8"; + + src = fetchFromGitHub { + owner = pname; + repo = pname; + rev = "v${version}"; + sha256 = "sha256-zMtbE6Y9wXFPBqhmiTMJ3m6bLVZl+c6lRY39DWDlJNo="; + }; + + cargoSha256 = "sha256:1l7xqp457zfd9gfjp6f4lzgadfp6112jbip4irazw4084qwj0z6x"; + + KANIDM_BUILD_PROFILE = "release_nixos_${arch}"; + + postPatch = + let + format = (formats.toml { }).generate "${KANIDM_BUILD_PROFILE}.toml"; + profile = { + web_ui_pkg_path = "@web_ui_pkg_path@"; + cpu_flags = if stdenv.isx86_64 then "x86_64_v1" else "none"; + }; + in + '' + cp ${format profile} profiles/${KANIDM_BUILD_PROFILE}.toml + substituteInPlace profiles/${KANIDM_BUILD_PROFILE}.toml \ + --replace '@web_ui_pkg_path@' "$out/ui" + ''; + + nativeBuildInputs = [ + pkg-config + installShellFiles + ]; + + buildInputs = [ + udev + openssl + sqlite + pam + ]; + + # Failing tests, probably due to network issues + checkFlags = [ + "--skip default_entries" + "--skip oauth2_openid_basic_flow" + "--skip test_server" + "--skip test_cache" + ]; + + preFixup = '' + installShellCompletion --bash $releaseDir/build/completions/*.bash + installShellCompletion --zsh $releaseDir/build/completions/_* + + # PAM and NSS need fix library names + mv $out/lib/libnss_kanidm.so $out/lib/libnss_kanidm.so.2 + mv $out/lib/libpam_kanidm.so $out/lib/pam_kanidm.so + + # We don't compile the wasm-part form source, as there isn't a rustc for + # wasm32-unknown-unknown in nixpkgs yet. + cp -r kanidmd_web_ui/pkg $out/ui + ''; + + passthru.tests = { inherit (nixosTests) kanidm; }; + + meta = with lib; { + description = "A simple, secure and fast identity management platform"; + homepage = "https://github.com/kanidm/kanidm"; + license = licenses.mpl20; + platforms = platforms.linux; + maintainers = with maintainers; [ erictapen Flakebi ]; + }; +} diff --git a/pkgs/servers/web-apps/wiki-js/default.nix b/pkgs/servers/web-apps/wiki-js/default.nix index c0f94b1bca7..496bf02bb03 100644 --- a/pkgs/servers/web-apps/wiki-js/default.nix +++ b/pkgs/servers/web-apps/wiki-js/default.nix @@ -2,11 +2,11 @@ stdenv.mkDerivation rec { pname = "wiki-js"; - version = "2.5.277"; + version = "2.5.279"; src = fetchurl { url = "https://github.com/Requarks/wiki/releases/download/v${version}/${pname}.tar.gz"; - sha256 = "sha256-YLw0DR4dbPfNY56lNybEQFXFEVPZ99sQkwDl6gtz40E="; + sha256 = "sha256-4QYNKvAEeRSJS9lO30bI/SnM9rLmuvRMR/LsGT77wvY="; }; sourceRoot = "."; diff --git a/pkgs/tools/X11/opentabletdriver/default.nix b/pkgs/tools/X11/opentabletdriver/default.nix index a8ba509c78c..3b631c22d15 100644 --- a/pkgs/tools/X11/opentabletdriver/default.nix +++ b/pkgs/tools/X11/opentabletdriver/default.nix @@ -19,13 +19,13 @@ buildDotnetModule rec { pname = "OpenTabletDriver"; - version = "0.6.0.3"; + version = "0.6.0.4"; src = fetchFromGitHub { owner = "OpenTabletDriver"; repo = "OpenTabletDriver"; rev = "v${version}"; - sha256 = "sha256-/Tow25ycQEK8HN1IaB12ZXCXEsuKItD+aYLF/IX8Eos="; + sha256 = "sha256-VvxW8Ck+XC4nXSUyDhcbGoeSr5uSAZ66jtZNoADuVR8="; }; debPkg = fetchurl { diff --git a/pkgs/tools/X11/opentabletdriver/deps.nix b/pkgs/tools/X11/opentabletdriver/deps.nix index 8ead5fc8a11..f0b52529500 100644 --- a/pkgs/tools/X11/opentabletdriver/deps.nix +++ b/pkgs/tools/X11/opentabletdriver/deps.nix @@ -20,6 +20,7 @@ (fetchNuGet { pname = "Microsoft.CSharp"; version = "4.4.1"; sha256 = "0z6d1i6xcf0c00z6rs75rgw4ncs9q2m8amasf6mmbf40fm02ry7g"; }) (fetchNuGet { pname = "Microsoft.Extensions.DependencyInjection"; version = "6.0.0-rc.1.21451.13"; sha256 = "0r6945jq7c2f1wjifq514zvngicndjqfnsjya6hqw0yzah0jr56c"; }) (fetchNuGet { pname = "Microsoft.Extensions.DependencyInjection.Abstractions"; version = "6.0.0-rc.1.21451.13"; sha256 = "11dg16x6g0gssb143qpghxz1s41himvhr7yhjwxs9hacx4ij2dm1"; }) + (fetchNuGet { pname = "Microsoft.NET.Test.Sdk"; version = "16.9.4"; sha256 = "1jdx05zmrqj1s7xfgn3wgy10qb5cl1n1jcj5kz43zvkw1amc7ra4"; }) (fetchNuGet { pname = "Microsoft.NETCore.App.Ref"; version = "5.0.0"; sha256 = "1p62khf9zk23lh91lvz7plv3g1nzmm3b5szqrcm6mb8w3sjk03wi"; }) (fetchNuGet { pname = "Microsoft.NETCore.Platforms"; version = "1.0.1"; sha256 = "01al6cfxp68dscl15z7rxfw9zvhm64dncsw09a1vmdkacsa2v6lr"; }) (fetchNuGet { pname = "Microsoft.NETCore.Platforms"; version = "1.1.0"; sha256 = "08vh1r12g6ykjygq5d3vq09zylgb84l63k49jc4v8faw9g93iqqm"; }) @@ -27,7 +28,6 @@ (fetchNuGet { pname = "Microsoft.NETCore.Platforms"; version = "3.0.0"; sha256 = "1bk8r4r3ihmi6322jmcag14jmw11mjqys202azqjzglcx59pxh51"; }) (fetchNuGet { pname = "Microsoft.NETCore.Targets"; version = "1.0.1"; sha256 = "0ppdkwy6s9p7x9jix3v4402wb171cdiibq7js7i13nxpdky7074p"; }) (fetchNuGet { pname = "Microsoft.NETCore.Targets"; version = "1.1.0"; sha256 = "193xwf33fbm0ni3idxzbr5fdq3i2dlfgihsac9jj7whj0gd902nh"; }) - (fetchNuGet { pname = "Microsoft.NET.Test.Sdk"; version = "16.9.4"; sha256 = "1jdx05zmrqj1s7xfgn3wgy10qb5cl1n1jcj5kz43zvkw1amc7ra4"; }) (fetchNuGet { pname = "Microsoft.TestPlatform.ObjectModel"; version = "16.9.4"; sha256 = "1jizkbrnm4pv60zch29ki7gj8m7j5whk141x9cwx4kwsd6cfzwi6"; }) (fetchNuGet { pname = "Microsoft.TestPlatform.TestHost"; version = "16.9.4"; sha256 = "14110qzmypr72ywvx3npq7mf4n0gvdr4536v91z1xbapms65am6x"; }) (fetchNuGet { pname = "Microsoft.VisualStudio.Threading"; version = "16.7.56"; sha256 = "13x0xrsjxd86clf9cjjwmpzlyp8pkrf13riya7igs8zy93zw2qap"; }) diff --git a/pkgs/tools/admin/azure-cli/python-packages.nix b/pkgs/tools/admin/azure-cli/python-packages.nix index f746941a953..b65b4a8fbbb 100644 --- a/pkgs/tools/admin/azure-cli/python-packages.nix +++ b/pkgs/tools/admin/azure-cli/python-packages.nix @@ -226,8 +226,19 @@ let azure-mgmt-media = overrideAzureMgmtPackage super.azure-mgmt-media "7.0.0" "zip" "sha256-tF6CpZTtkc1ap6XNXQHwOLesPPEiM+e6K+qqNHeQDo4="; - azure-mgmt-msi = overrideAzureMgmtPackage super.azure-mgmt-msi "0.2.0" "zip" - "0rvik03njz940x2hvqg6iiq8k0d88gyygsr86w8s0sa12sdbq8l6"; + azure-mgmt-msi = super.azure-mgmt-msi.overridePythonAttrs (old: rec { + version = "0.2.0"; + src = old.src.override { + inherit version; + sha256 = "0rvik03njz940x2hvqg6iiq8k0d88gyygsr86w8s0sa12sdbq8l6"; + }; + propagatedBuildInputs = with self; [ + msrest + msrestazure + azure-common + azure-mgmt-nspkg + ]; + }); azure-mgmt-privatedns = overrideAzureMgmtPackage super.azure-mgmt-privatedns "1.0.0" "zip" "b60f16e43f7b291582c5f57bae1b083096d8303e9d9958e2c29227a55cc27c45"; diff --git a/pkgs/tools/admin/google-cloud-sdk/data.nix b/pkgs/tools/admin/google-cloud-sdk/data.nix index af2f1ee352a..359427d32a0 100644 --- a/pkgs/tools/admin/google-cloud-sdk/data.nix +++ b/pkgs/tools/admin/google-cloud-sdk/data.nix @@ -1,32 +1,32 @@ # DO NOT EDIT! This file is generated automatically by update.sh { }: { - version = "381.0.0"; + version = "384.0.1"; googleCloudSdkPkgs = { x86_64-linux = { - url = "https://dl.google.com/dl/cloudsdk/channels/rapid/downloads/google-cloud-sdk-381.0.0-linux-x86_64.tar.gz"; - sha256 = "1m5npilxagnl8zdx2i5vgcgalbcsnd4zvi0f2y5ic3dlfgibmlxb"; + url = "https://dl.google.com/dl/cloudsdk/channels/rapid/downloads/google-cloud-sdk-384.0.1-linux-x86_64.tar.gz"; + sha256 = "1pa6dzizn7sjahghiwz98n906ssbq4aa9kg1f3akdsmmabh95pd7"; }; x86_64-darwin = { - url = "https://dl.google.com/dl/cloudsdk/channels/rapid/downloads/google-cloud-sdk-381.0.0-darwin-x86_64.tar.gz"; - sha256 = "0vdbm2pl2wbyrdlf5dxs0djs6dn7kv17qvl8jxca8ylz2k296a0x"; + url = "https://dl.google.com/dl/cloudsdk/channels/rapid/downloads/google-cloud-sdk-384.0.1-darwin-x86_64.tar.gz"; + sha256 = "0pis92ldxxzvsamkck54d5d86ss13wipji29x082750c54gwm6w3"; }; aarch64-linux = { - url = "https://dl.google.com/dl/cloudsdk/channels/rapid/downloads/google-cloud-sdk-381.0.0-linux-arm.tar.gz"; - sha256 = "03mkhp7kvakv8bzpj9yk9anj8y5k7iina876f7dcsbm9fiwl4g9w"; + url = "https://dl.google.com/dl/cloudsdk/channels/rapid/downloads/google-cloud-sdk-384.0.1-linux-arm.tar.gz"; + sha256 = "1ssxb126hjyylgjbybl7ksiqnwf2hz6y0x1s5rjicaqpw5yv0sqy"; }; aarch64-darwin = { - url = "https://dl.google.com/dl/cloudsdk/channels/rapid/downloads/google-cloud-sdk-381.0.0-darwin-arm.tar.gz"; - sha256 = "1dsfn7rdmg1m7d9cfirl6xsdwzbzh6v62xp6nd9b17s05d4sh0kl"; + url = "https://dl.google.com/dl/cloudsdk/channels/rapid/downloads/google-cloud-sdk-384.0.1-darwin-arm.tar.gz"; + sha256 = "1qxhl7c1ii44drls2mpmm03n2j7274dxcsf5inrhyjgs94yl5h7b"; }; i686-linux = { - url = "https://dl.google.com/dl/cloudsdk/channels/rapid/downloads/google-cloud-sdk-381.0.0-linux-x86.tar.gz"; - sha256 = "0y95lvky62f7pfz4g3476ci239p5c8q9p9l2xh59x38xaa69gnvb"; + url = "https://dl.google.com/dl/cloudsdk/channels/rapid/downloads/google-cloud-sdk-384.0.1-linux-x86.tar.gz"; + sha256 = "1gghl16bdc9vgd2p834vd2i6av81q15czi7arpnmgg9n5dl3i2c8"; }; }; } diff --git a/pkgs/tools/admin/google-cloud-sdk/update.sh b/pkgs/tools/admin/google-cloud-sdk/update.sh index b26950087a1..6402e3f32df 100755 --- a/pkgs/tools/admin/google-cloud-sdk/update.sh +++ b/pkgs/tools/admin/google-cloud-sdk/update.sh @@ -5,7 +5,7 @@ BASE_URL="https://dl.google.com/dl/cloudsdk/channels/rapid/downloads/google-clou # Version of Google Cloud SDK from # https://cloud.google.com/sdk/docs/release-notes -VERSION="381.0.0" +VERSION="384.0.1" function genMainSrc() { local url="${BASE_URL}-${VERSION}-${1}-${2}.tar.gz" diff --git a/pkgs/tools/admin/lxd/default.nix b/pkgs/tools/admin/lxd/default.nix index 48cb73be831..0b32c23f65a 100644 --- a/pkgs/tools/admin/lxd/default.nix +++ b/pkgs/tools/admin/lxd/default.nix @@ -48,6 +48,7 @@ buildGo118Package rec { ''; passthru.tests.lxd = nixosTests.lxd; + passthru.tests.lxd-nftables = nixosTests.lxd-nftables; nativeBuildInputs = [ installShellFiles pkg-config makeWrapper ]; buildInputs = [ lxc acl libcap dqlite.dev raft-canonical.dev diff --git a/pkgs/tools/audio/headset-charge-indicator/default.nix b/pkgs/tools/audio/headset-charge-indicator/default.nix new file mode 100644 index 00000000000..2e4f6318519 --- /dev/null +++ b/pkgs/tools/audio/headset-charge-indicator/default.nix @@ -0,0 +1,63 @@ +{ lib, stdenv, fetchFromGitHub, headsetcontrol, wrapGAppsHook, python3, gtk3 +, gobject-introspection, libayatana-appindicator-gtk3 }: + +stdenv.mkDerivation rec { + # The last versioned release is 1.0.0.0 from 2020, since then there were updates but no versioned release. + # This is not marked unstable because upstream encourages installation from source. + pname = "headset-charge-indicator"; + version = "2021-08-15"; + + src = fetchFromGitHub { + owner = "centic9"; + repo = "headset-charge-indicator"; + rev = "6e20f81a4d6118c7385b831044c468af83103193"; + sha256 = "sha256-eaAbqeFY+B3CcKJywC3vaRsWZNQENTbALc7L7uW0W6U="; + }; + + nativeBuildInputs = [ wrapGAppsHook ]; + + buildInputs = [ + (python3.withPackages (ps: with ps; [ pygobject3 ])) + headsetcontrol + gtk3 + gobject-introspection + libayatana-appindicator-gtk3 + ]; + + installPhase = '' + mkdir -p $out/bin + cp $src/headset-charge-indicator.py $out/bin/headset-charge-indicator.py + chmod +x $out/bin/headset-charge-indicator.py + + substituteInPlace \ + $out/bin/headset-charge-indicator.py \ + --replace "default='headsetcontrol'" "default='${headsetcontrol}/bin/headsetcontrol'" + + cat << EOF > ${pname}.desktop + [Desktop Entry] + Name=Wireless headset app-indicator + Categories=Application;System + Exec=$out/bin/headset-charge-indicator.py + Terminal=false + Type=Application + X-GNOME-AutoRestart=true + X-GNOME-Autostart-enabled=true + EOF + + mkdir -p $out/share/applications + mkdir -p $out/etc/xdg/autostart + cp ${pname}.desktop $out/share/applications/${pname}.desktop + cp ${pname}.desktop $out/etc/xdg/autostart/${pname}.desktop + ''; + + meta = with lib; { + homepage = "https://github.com/centic9/headset-charge-indicator"; + description = + "A app-indicator for GNOME desktops for controlling some features of various wireless headsets"; + longDescription = + "A simple app-indicator for GNOME desktops to display the battery charge of some wireless headsets which also allows to control some functions like LEDs, sidetone and others."; + platforms = platforms.linux; + maintainers = with maintainers; [ zebreus ]; + license = licenses.bsd2; + }; +} diff --git a/pkgs/tools/filesystems/xfsprogs/default.nix b/pkgs/tools/filesystems/xfsprogs/default.nix index e81414a2595..c44157a2f02 100644 --- a/pkgs/tools/filesystems/xfsprogs/default.nix +++ b/pkgs/tools/filesystems/xfsprogs/default.nix @@ -4,11 +4,11 @@ stdenv.mkDerivation rec { pname = "xfsprogs"; - version = "5.15.0"; + version = "5.16.0"; src = fetchurl { url = "mirror://kernel/linux/utils/fs/xfs/xfsprogs/${pname}-${version}.tar.xz"; - sha256 = "0mjdwxr2hhqkfa8xg0v74v3n27sjvlwm90jqnmx0587b60wbzlhk"; + hash = "sha256-eLjImZmb1pBEHLU9fAKrZxKUlAMZxpT/fILiPo5Gu58="; }; outputs = [ "bin" "dev" "out" "doc" ]; diff --git a/pkgs/tools/graphics/grim/default.nix b/pkgs/tools/graphics/grim/default.nix index 43824e16904..4ca4cd9a034 100644 --- a/pkgs/tools/graphics/grim/default.nix +++ b/pkgs/tools/graphics/grim/default.nix @@ -1,11 +1,11 @@ -{ lib, stdenv, fetchFromGitHub, pixman, libpng, libjpeg, meson, ninja, wayland, pkg-config, scdoc, wayland-protocols }: +{ lib, stdenv, fetchFromSourcehut, pixman, libpng, libjpeg, meson, ninja, wayland, pkg-config, scdoc, wayland-protocols }: stdenv.mkDerivation rec { pname = "grim"; version = "1.4.0"; - src = fetchFromGitHub { - owner = "emersion"; + src = fetchFromSourcehut { + owner = "~emersion"; repo = pname; rev = "v${version}"; sha256 = "sha256-lwJn1Lysv1qLauqmrduUlzdoKUrUM5uBjv+dWSsrM6w="; diff --git a/pkgs/tools/inputmethods/input-remapper/default.nix b/pkgs/tools/inputmethods/input-remapper/default.nix index 1ac061034d7..0a1ce3108f2 100644 --- a/pkgs/tools/inputmethods/input-remapper/default.nix +++ b/pkgs/tools/inputmethods/input-remapper/default.nix @@ -34,9 +34,9 @@ # https://discourse.nixos.org/t/avoid-rec-expresions-in-nixpkgs/8293/7 # The names are prefixed with input_remapper to avoid potential # collisions with package names -, input_remapper_version ? "unstable-2022-02-09" -, input_remapper_src_rev ? "55227e0b5a28d21d7333c6c8ea1c691e56fd35c4" -, input_remapper_src_hash ? "sha256-kzGlEaYN/JfAgbI0aMLr5mwObYOL43X7QU/ihDEBQFg=" +, input_remapper_version ? "1.4.2" +, input_remapper_src_rev ? "af20f87a1298153e765b840a2164ba63b9ef937a" +, input_remapper_src_hash ? "sha256-eG4Fx1z74Bq1HrfmzOuULQLziGdWnHLax8y2dymjWsI=" }: let diff --git a/pkgs/tools/misc/bsp-layout/default.nix b/pkgs/tools/misc/bsp-layout/default.nix index 065c21e3f78..bad5b4d9a89 100644 --- a/pkgs/tools/misc/bsp-layout/default.nix +++ b/pkgs/tools/misc/bsp-layout/default.nix @@ -1,4 +1,11 @@ -{ stdenv, fetchFromGitHub, lib, bspwm, makeWrapper, git, bc }: +{ lib +, stdenv +, fetchFromGitHub +, makeWrapper +, git +, bc +, bspwm +}: stdenv.mkDerivation rec { pname = "bsp-layout"; @@ -17,14 +24,22 @@ stdenv.mkDerivation rec { makeFlags = [ "PREFIX=$(out)" ]; postInstall = '' - substituteInPlace $out/bin/bsp-layout --replace 'bc ' '${bc}/bin/bc ' + substituteInPlace $out/lib/bsp-layout/layout.sh --replace 'bc ' '${bc}/bin/bc ' + for layout in tall rtall wide rwide + do + substituteInPlace "$out/lib/bsp-layout/layouts/$layout.sh" --replace 'bc ' '${bc}/bin/bc ' + done ''; meta = with lib; { description = "Manage layouts in bspwm"; + longDescription = '' + bsp-layout is a dynamic layout manager for bspwm, written in bash. + It provides layout options to fit most workflows. + ''; homepage = "https://github.com/phenax/bsp-layout"; license = licenses.mit; - maintainers = with maintainers; [ devins2518 ]; + maintainers = with maintainers; [ devins2518 totoroot ]; platforms = platforms.linux; }; } diff --git a/pkgs/tools/misc/calamares/default.nix b/pkgs/tools/misc/calamares/default.nix index 8afb103e9d4..e23471fc96d 100644 --- a/pkgs/tools/misc/calamares/default.nix +++ b/pkgs/tools/misc/calamares/default.nix @@ -7,12 +7,12 @@ mkDerivation rec { pname = "calamares"; - version = "3.2.56"; + version = "3.2.57"; # release including submodule src = fetchurl { url = "https://github.com/calamares/calamares/releases/download/v${version}/${pname}-${version}.tar.gz"; - sha256 = "e1402d7693659b85c5e553481a7252d91350c3f33ffea413488d7712d3281e03"; + sha256 = "ef7f564ec2cd8baaf94a44982ce1db88c1192696617f21538d0b8472a63b4c2b"; }; patches = lib.optionals nixos-extensions [ @@ -28,9 +28,6 @@ mkDerivation rec { ./nonroot.patch # Adds unfree qml to packagechooserq ./unfreeq.patch - # Adds config to change name of packagechooserq - # Upstreamed in PR: https://github.com/calamares/calamares/pull/1932 - ./packagechooserq.patch # Modifies finished module to add some NixOS resources # Modifies packagechooser module to change the UI ./uimod.patch diff --git a/pkgs/tools/misc/calamares/packagechooserq.patch b/pkgs/tools/misc/calamares/packagechooserq.patch deleted file mode 100644 index 90a7b22de8b..00000000000 --- a/pkgs/tools/misc/calamares/packagechooserq.patch +++ /dev/null @@ -1,136 +0,0 @@ -diff --git a/src/modules/packagechooser/Config.cpp b/src/modules/packagechooser/Config.cpp -index 491fe5c25..667621597 100644 ---- a/src/modules/packagechooser/Config.cpp -+++ b/src/modules/packagechooser/Config.cpp -@@ -237,6 +237,12 @@ Config::setPackageChoice( const QString& packageChoice ) - emit packageChoiceChanged( m_packageChoice.value_or( QString() ) ); - } - -+QString -+Config::prettyName() const -+{ -+ return m_stepName ? m_stepName->get() : tr( "Packages" ); -+} -+ - QString - Config::prettyStatus() const - { -@@ -343,4 +349,14 @@ Config::setConfigurationMap( const QVariantMap& configurationMap ) - cWarning() << "Single-selection QML module must use 'Legacy' method."; - } - } -+ -+ bool labels_ok = false; -+ auto labels = CalamaresUtils::getSubMap( configurationMap, "labels", labels_ok ); -+ if ( labels_ok ) -+ { -+ if ( labels.contains( "step" ) ) -+ { -+ m_stepName = new CalamaresUtils::Locale::TranslatedString( labels, "step" ); -+ } -+ } - } -diff --git a/src/modules/packagechooser/Config.h b/src/modules/packagechooser/Config.h -index b04b1c30b..d1b783a8d 100644 ---- a/src/modules/packagechooser/Config.h -+++ b/src/modules/packagechooser/Config.h -@@ -98,6 +98,7 @@ public: - QString packageChoice() const { return m_packageChoice.value_or( QString() ); } - void setPackageChoice( const QString& packageChoice ); - -+ QString prettyName() const; - QString prettyStatus() const; - - signals: -@@ -120,6 +121,7 @@ private: - * Reading the property will return an empty QString. - */ - std::optional< QString > m_packageChoice; -+ CalamaresUtils::Locale::TranslatedString* m_stepName; // As it appears in the sidebar - }; - - -diff --git a/src/modules/packagechooser/PackageChooserViewStep.cpp b/src/modules/packagechooser/PackageChooserViewStep.cpp -index 9057004de..8eacf82ec 100644 ---- a/src/modules/packagechooser/PackageChooserViewStep.cpp -+++ b/src/modules/packagechooser/PackageChooserViewStep.cpp -@@ -29,7 +29,6 @@ PackageChooserViewStep::PackageChooserViewStep( QObject* parent ) - : Calamares::ViewStep( parent ) - , m_config( new Config( this ) ) - , m_widget( nullptr ) -- , m_stepName( nullptr ) - { - emit nextStatusChanged( false ); - } -@@ -41,14 +40,12 @@ PackageChooserViewStep::~PackageChooserViewStep() - { - m_widget->deleteLater(); - } -- delete m_stepName; - } - -- - QString - PackageChooserViewStep::prettyName() const - { -- return m_stepName ? m_stepName->get() : tr( "Packages" ); -+ return m_config->prettyName(); - } - - -@@ -139,16 +136,6 @@ PackageChooserViewStep::setConfigurationMap( const QVariantMap& configurationMap - m_config->setDefaultId( moduleInstanceKey() ); - m_config->setConfigurationMap( configurationMap ); - -- bool labels_ok = false; -- auto labels = CalamaresUtils::getSubMap( configurationMap, "labels", labels_ok ); -- if ( labels_ok ) -- { -- if ( labels.contains( "step" ) ) -- { -- m_stepName = new CalamaresUtils::Locale::TranslatedString( labels, "step" ); -- } -- } -- - if ( m_widget ) - { - hookupModel(); -diff --git a/src/modules/packagechooser/PackageChooserViewStep.h b/src/modules/packagechooser/PackageChooserViewStep.h -index 7561f2bd7..76b35aed8 100644 ---- a/src/modules/packagechooser/PackageChooserViewStep.h -+++ b/src/modules/packagechooser/PackageChooserViewStep.h -@@ -50,7 +50,6 @@ private: - - Config* m_config; - PackageChooserPage* m_widget; -- CalamaresUtils::Locale::TranslatedString* m_stepName; // As it appears in the sidebar - }; - - CALAMARES_PLUGIN_FACTORY_DECLARATION( PackageChooserViewStepFactory ) -diff --git a/src/modules/packagechooserq/PackageChooserQmlViewStep.cpp b/src/modules/packagechooserq/PackageChooserQmlViewStep.cpp -index 543c9771d..7c4d5fda7 100644 ---- a/src/modules/packagechooserq/PackageChooserQmlViewStep.cpp -+++ b/src/modules/packagechooserq/PackageChooserQmlViewStep.cpp -@@ -29,7 +29,7 @@ PackageChooserQmlViewStep::PackageChooserQmlViewStep( QObject* parent ) - QString - PackageChooserQmlViewStep::prettyName() const - { -- return tr( "Packages" ); -+ return m_config->prettyName(); - } - - QString -@@ -83,4 +83,13 @@ PackageChooserQmlViewStep::setConfigurationMap( const QVariantMap& configuration - m_config->setDefaultId( moduleInstanceKey() ); - m_config->setConfigurationMap( configurationMap ); - Calamares::QmlViewStep::setConfigurationMap( configurationMap ); // call parent implementation last -+ /*bool labels_ok = false; -+ auto labels = CalamaresUtils::getSubMap( configurationMap, "labels", labels_ok ); -+ if ( labels_ok ) -+ { -+ if ( labels.contains( "step" ) ) -+ { -+ m_stepName = new CalamaresUtils::Locale::TranslatedString( labels, "step" ); -+ } -+ }*/ - } diff --git a/pkgs/tools/misc/melody/default.nix b/pkgs/tools/misc/melody/default.nix index a02994f33a0..f483b699266 100644 --- a/pkgs/tools/misc/melody/default.nix +++ b/pkgs/tools/misc/melody/default.nix @@ -2,15 +2,15 @@ rustPlatform.buildRustPackage rec { pname = "melody"; - version = "0.13.10"; + version = "0.18.0"; src = fetchCrate { pname = "melody_cli"; inherit version; - sha256 = "05slrh5dqbpsvimdr0rlhj04kf1qzwij3zlardvbmvhvfccf4188"; + sha256 = "1shd5m9sj9ybjzq26ipggfbc22lyzkdzq2kirgfvdk16m5r3jy2v"; }; - cargoSha256 = "0qh1byysbc6pl3cvx2vdpl8crx5id59hhrwqzk5g7091spm8wf79"; + cargoSha256 = "0wz696zz7gm36dy3lxxwsiriqxk0nisdwybvknn9a38rvzd6jjbm"; meta = with lib; { description = "Language that compiles to regular expressions"; diff --git a/pkgs/tools/misc/usbimager/default.nix b/pkgs/tools/misc/usbimager/default.nix new file mode 100644 index 00000000000..1aac4c5c802 --- /dev/null +++ b/pkgs/tools/misc/usbimager/default.nix @@ -0,0 +1,47 @@ +{ lib, stdenv, fetchFromGitLab, pkg-config +, withLibui ? true, gtk3 +, withUdisks ? stdenv.isLinux, udisks, glib +, libX11 }: + +stdenv.mkDerivation rec { + pname = "usbimager"; + version = "1.0.8"; + + src = fetchFromGitLab { + owner = "bztsrc"; + repo = pname; + rev = version; + sha256 = "1j0g1anmdwc3pap3m4kfzqjfkn7q0vpmqniii2kcz7svs5h3ybga"; + }; + + sourceRoot = "source/src/"; + + nativeBuildInputs = [ pkg-config ]; + buildInputs = lib.optionals withUdisks [ udisks glib ] + ++ lib.optional (!withLibui) libX11 + ++ lib.optional withLibui gtk3; + # libui is bundled with the source of usbimager as a compiled static libary + + postPatch = '' + sed -i \ + -e 's|install -m 2755 -g disk|install |g' \ + -e 's|-I/usr/include/gio-unix-2.0|-I${glib.dev}/include/gio-unix-2.0|g' \ + -e 's|install -m 2755 -g $(GRP)|install |g' Makefile + ''; + + dontConfigure = true; + + makeFlags = [ "PREFIX=$(out)" ] + ++ lib.optional withLibui "USE_LIBUI=yes" + ++ lib.optional withUdisks "USE_UDISKS2=yes"; + + meta = with lib; { + description = "A very minimal GUI app that can write compressed disk images to USB drives"; + homepage = "https://gitlab.com/bztsrc/usbimager"; + license = licenses.mit; + maintainers = with maintainers; [ vdot0x23 ]; + # windows and darwin could work, but untested + # feel free add them if you have a machine to test + platforms = with platforms; linux; + }; +} diff --git a/pkgs/tools/security/ecdsautils/default.nix b/pkgs/tools/security/ecdsautils/default.nix index 6bdac96811a..0a43260eb83 100644 --- a/pkgs/tools/security/ecdsautils/default.nix +++ b/pkgs/tools/security/ecdsautils/default.nix @@ -1,14 +1,17 @@ { lib, stdenv, pkgs }: -stdenv.mkDerivation { - version = "0.4.0"; +let pname = "ecdsautils"; + version = "0.4.1"; +in +stdenv.mkDerivation { + inherit pname version; src = pkgs.fetchFromGitHub { owner = "freifunk-gluon"; - repo = "ecdsautils"; - rev = "07538893fb6c2a9539678c45f9dbbf1e4f222b46"; - sha256 = "18sr8x3qiw8s9l5pfi7r9i3ayplz4jqdml75ga9y933vj7vs0k4d"; + repo = pname; + rev = "v${version}"; + sha256 = "sha256-dv0guQTmot5UO1GkMgzvD6uJFyum5kV89LI3xWS1DZA="; }; nativeBuildInputs = with pkgs; [ cmake pkg-config doxygen ]; @@ -16,7 +19,7 @@ stdenv.mkDerivation { meta = with lib; { description = "Tiny collection of programs used for ECDSA (keygen, sign, verify)"; - homepage = "https://github.com/tcatm/ecdsautils/"; + homepage = "https://github.com/freifunk-gluon/ecdsautils/"; license = with licenses; [ mit bsd2 ]; maintainers = with maintainers; [ ]; platforms = platforms.unix; diff --git a/pkgs/tools/text/sift/default.nix b/pkgs/tools/text/sift/default.nix index dc025f17a78..f282c28f8fe 100644 --- a/pkgs/tools/text/sift/default.nix +++ b/pkgs/tools/text/sift/default.nix @@ -1,4 +1,4 @@ -{ lib, buildGoPackage, fetchFromGitHub }: +{ lib, buildGoPackage, fetchFromGitHub, installShellFiles }: buildGoPackage rec { pname = "sift"; @@ -7,6 +7,8 @@ buildGoPackage rec { goPackagePath = "github.com/svent/sift"; + nativeBuildInputs = [ installShellFiles ]; + src = fetchFromGitHub { inherit rev; owner = "svent"; @@ -14,12 +16,16 @@ buildGoPackage rec { sha256 = "0bgy0jf84z1c3msvb60ffj4axayfchdkf0xjnsbx9kad1v10g7i1"; }; + postInstall = '' + installShellCompletion --cmd sift --bash go/src/github.com/svent/sift/sift-completion.bash + ''; + goDeps = ./deps.nix; meta = with lib; { description = "A fast and powerful alternative to grep"; homepage = "https://sift-tool.org"; - maintainers = [ maintainers.carlsverre ]; + maintainers = with maintainers; [ carlsverre viraptor ]; license = licenses.gpl3; }; } diff --git a/pkgs/tools/virtualization/lxd-image-server/default.nix b/pkgs/tools/virtualization/lxd-image-server/default.nix index 3a1d32247a4..aeb6ac33693 100644 --- a/pkgs/tools/virtualization/lxd-image-server/default.nix +++ b/pkgs/tools/virtualization/lxd-image-server/default.nix @@ -3,6 +3,7 @@ , rsync , python3 , fetchFromGitHub +, nixosTests }: python3.pkgs.buildPythonApplication rec { @@ -37,6 +38,8 @@ python3.pkgs.buildPythonApplication rec { doCheck = false; + passthru.tests.lxd-image-server = nixosTests.lxd-image-server; + meta = with lib; { description = "Creates and manages a simplestreams lxd image server on top of nginx"; homepage = "https://github.com/Avature/lxd-image-server"; diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 9b4b5760373..8172605a210 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -1153,6 +1153,8 @@ with pkgs; headsetcontrol = callPackage ../tools/audio/headsetcontrol { }; + headset-charge-indicator = callPackage ../tools/audio/headset-charge-indicator { }; + httm = callPackage ../tools/filesystems/httm { }; ksnip = libsForQt5.callPackage ../tools/misc/ksnip { }; @@ -4709,6 +4711,8 @@ with pkgs; usbview = callPackage ../tools/misc/usbview { }; + usbimager = callPackage ../tools/misc/usbimager { }; + uwuify = callPackage ../tools/misc/uwuify { }; anthy = callPackage ../tools/inputmethods/anthy { }; @@ -8053,9 +8057,6 @@ with pkgs; librest_1_0 = callPackage ../development/libraries/librest/1.0.nix { }; inherit (callPackages ../development/libraries/libwebsockets { }) - libwebsockets_3_1 - libwebsockets_3_2 - libwebsockets_4_2 libwebsockets_4_3; libwebsockets = libwebsockets_4_3; @@ -9499,7 +9500,9 @@ with pkgs; proxify = callPackage ../tools/networking/proxify { }; - proxysql = callPackage ../servers/sql/proxysql { }; + proxysql = callPackage ../servers/sql/proxysql { + stdenv = if stdenv.targetPlatform.isx86_64 then gcc10Stdenv else stdenv; + }; prs = callPackage ../tools/security/prs { }; @@ -18594,6 +18597,7 @@ with pkgs; libffcall = callPackage ../development/libraries/libffcall { }; libffi = callPackage ../development/libraries/libffi { }; + libffi_3_3 = callPackage ../development/libraries/libffi/3.3.nix { }; libffiBoot = libffi.override { doCheck = false; }; @@ -21843,6 +21847,8 @@ with pkgs; jitsi-videobridge = callPackage ../servers/jitsi-videobridge { }; + kanidm = callPackage ../servers/kanidm { }; + kapowbang = callPackage ../servers/kapowbang { }; keycloak = callPackage ../servers/keycloak { }; @@ -28371,8 +28377,7 @@ with pkgs; ostinato = libsForQt5.callPackage ../applications/networking/ostinato { }; p4 = callPackage ../applications/version-management/p4 { }; - # Broken with Qt5.15 because qtwebkit is broken with it - p4v = libsForQt514.callPackage ../applications/version-management/p4v { }; + p4v = libsForQt515.callPackage ../applications/version-management/p4v { }; partio = callPackage ../development/libraries/partio {}; diff --git a/pkgs/top-level/python-packages.nix b/pkgs/top-level/python-packages.nix index 69ad72c7460..d89523fbce6 100644 --- a/pkgs/top-level/python-packages.nix +++ b/pkgs/top-level/python-packages.nix @@ -344,6 +344,8 @@ in { aiolifx-effects = callPackage ../development/python-modules/aiolifx-effects { }; + aiolimiter = callPackage ../development/python-modules/aiolimiter { }; + aiolip = callPackage ../development/python-modules/aiolip { }; aiolyric = callPackage ../development/python-modules/aiolyric { }; @@ -3268,6 +3270,8 @@ in { gbulb = callPackage ../development/python-modules/gbulb { }; + gcal-sync = callPackage ../development/python-modules/gcal-sync { }; + gcovr = callPackage ../development/python-modules/gcovr { }; gcsfs = callPackage ../development/python-modules/gcsfs { }; @@ -4148,6 +4152,8 @@ in { installer = callPackage ../development/python-modules/installer { }; + insteon-frontend-home-assistant = callPackage ../development/python-modules/insteon-frontend-home-assistant { }; + intake = callPackage ../development/python-modules/intake { }; intake-parquet = callPackage ../development/python-modules/intake-parquet { }; @@ -5163,6 +5169,8 @@ in { measurement = callPackage ../development/python-modules/measurement { }; + meater-python = callPackage ../development/python-modules/meater-python { }; + mecab-python3 = callPackage ../development/python-modules/mecab-python3 { }; mechanicalsoup = callPackage ../development/python-modules/mechanicalsoup { }; @@ -5732,6 +5740,8 @@ in { notifications-python-client = callPackage ../development/python-modules/notifications-python-client { }; + notify-events = callPackage ../development/python-modules/notify-events { }; + notify-py = callPackage ../development/python-modules/notify-py { }; notify2 = callPackage ../development/python-modules/notify2 { }; @@ -7695,6 +7705,8 @@ in { py-radix = callPackage ../development/python-modules/py-radix { }; + pyrainbird = callPackage ../development/python-modules/pyrainbird { }; + pyramid_beaker = callPackage ../development/python-modules/pyramid_beaker { }; pyramid = callPackage ../development/python-modules/pyramid { }; @@ -8752,6 +8764,8 @@ in { qnap-qsw = callPackage ../development/python-modules/qnap-qsw{ }; + qnapstats = callPackage ../development/python-modules/qnapstats { }; + qrcode = callPackage ../development/python-modules/qrcode { }; qreactor = callPackage ../development/python-modules/qreactor { }; @@ -8764,6 +8778,8 @@ in { qscintilla = self.qscintilla-qt5; + qstylizer = callPackage ../development/python-modules/qstylizer { }; + qt5reactor = callPackage ../development/python-modules/qt5reactor { }; qtawesome = callPackage ../development/python-modules/qtawesome { }; @@ -8815,6 +8831,8 @@ in { rainbowstream = callPackage ../development/python-modules/rainbowstream { }; + raincloudy = callPackage ../development/python-modules/raincloudy { }; + ramlfications = callPackage ../development/python-modules/ramlfications { }; random2 = callPackage ../development/python-modules/random2 { }; diff --git a/pkgs/top-level/release-lib.nix b/pkgs/top-level/release-lib.nix index ceae00baec9..e066d191ef2 100644 --- a/pkgs/top-level/release-lib.nix +++ b/pkgs/top-level/release-lib.nix @@ -103,7 +103,7 @@ rec { forAllSystems = genAttrs supportedSystems; - # Generate attributes for all sytems matching at least one of the given + # Generate attributes for all systems matching at least one of the given # patterns forMatchingSystems = metaPatterns: genAttrs (supportedMatches metaPatterns);