Merge master into staging-next

This commit is contained in:
github-actions[bot] 2023-01-15 18:01:21 +00:00 committed by GitHub
commit be2c4c1c59
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
88 changed files with 1272 additions and 4038 deletions

View file

@ -8,7 +8,7 @@ services.openssh.enable = true;
By default, root logins using a password are disallowed. They can be
disabled entirely by setting
[](#opt-services.openssh.permitRootLogin) to `"no"`.
[](#opt-services.openssh.settings.PermitRootLogin) to `"no"`.
You can declaratively specify authorised RSA/DSA public keys for a user
as follows:

View file

@ -9,7 +9,7 @@ services.openssh.enable = true;
<para>
By default, root logins using a password are disallowed. They can be
disabled entirely by setting
<xref linkend="opt-services.openssh.permitRootLogin" /> to
<xref linkend="opt-services.openssh.settings.PermitRootLogin" /> to
<literal>&quot;no&quot;</literal>.
</para>
<para>

View file

@ -10,7 +10,7 @@
In addition to numerous new and upgraded packages, this release
has the following highlights:
</para>
<itemizedlist spacing="compact">
<itemizedlist>
<listitem>
<para>
Cinnamon has been updated to 5.6, see
@ -18,6 +18,14 @@
pull request</link> for what is changed.
</para>
</listitem>
<listitem>
<para>
<literal>nixos-rebuild</literal> now supports an extra
<literal>--specialisation</literal> option that can be used to
change specialisation for <literal>switch</literal> and
<literal>test</literal> commands.
</para>
</listitem>
</itemizedlist>
</section>
<section xml:id="sec-release-23.05-new-services">
@ -99,6 +107,14 @@
<link xlink:href="options.html#opt-services.ulogd.enable">services.ulogd</link>.
</para>
</listitem>
<listitem>
<para>
<link xlink:href="https://photoprism.app/">photoprism</link>,
a AI-Powered Photos App for the Decentralized Web. Available
as
<link xlink:href="options.html#opt-services.photoprism.enable">services.photoprism</link>.
</para>
</listitem>
</itemizedlist>
</section>
<section xml:id="sec-release-23.05-incompatibilities">
@ -324,6 +340,24 @@
<link linkend="opt-services.usbmuxd.package">services.usbmuxd.package</link>
</para>
</listitem>
<listitem>
<para>
A few openssh options have been moved from extraConfig to the
new freeform option <literal>settings</literal> and renamed as
follow:
<literal>services.openssh.kbdInteractiveAuthentication</literal>
to
<literal>services.openssh.settings.KbdInteractiveAuthentication</literal>,
<literal>services.openssh.passwordAuthentication</literal> to
<literal>services.openssh.settings.PasswordAuthentication</literal>,
<literal>services.openssh.useDns</literal> to
<literal>services.openssh.settings.UseDns</literal>,
<literal>services.openssh.permitRootLogin</literal> to
<literal>services.openssh.settings.PermitRootLogin</literal>,
<literal>services.openssh.logLevel</literal> to
<literal>services.openssh.settings.LogLevel</literal>.
</para>
</listitem>
<listitem>
<para>
<literal>services.mastodon</literal> gained a tootctl wrapped

View file

@ -113,6 +113,18 @@
</group> <replaceable>name</replaceable>
</arg>
<arg>
<group choice='req'>
<arg choice='plain'>
<option>--specialisation</option>
</arg>
<arg choice='plain'>
<option>-c</option>
</arg>
</group> <replaceable>name</replaceable>
</arg>
<sbr />
<arg>
@ -204,6 +216,20 @@
<command>nixos-rebuild switch</command> or <command>nixos-rebuild
boot</command> remain available in the GRUB menu.
</para>
<para>
Note that if you are using specializations, running just
<command>nixos-rebuild switch</command> will switch you back to the
unspecialized, base system - in that case, you might want to use this
instead:
<screen>
<prompt>$ </prompt>nixos-rebuild switch --specialisation your-specialisation-name
</screen>
This command will build all specialisations and make them bootable just
like regular <command>nixos-rebuild switch</command> does - the only
thing different is that it will switch to given specialisation instead
of the base system; it can be also used to switch from the base system
into a specialised one, or to switch between specialisations.
</para>
</listitem>
</varlistentry>
@ -233,6 +259,16 @@
configuration resulting from the last call to <command>nixos-rebuild
switch</command> or <command>nixos-rebuild boot</command>).
</para>
<para>
Note that if you are using specialisations, running just
<command>nixos-rebuild test</command> will activate the unspecialised,
base system - in that case, you might want to use this instead:
<screen>
<prompt>$ </prompt>nixos-rebuild test --specialisation your-specialisation-name
</screen>
This command can be also used to switch from the base system into a
specialised one, or to switch between specialisations.
</para>
</listitem>
</varlistentry>
@ -499,6 +535,21 @@
</listitem>
</varlistentry>
<varlistentry>
<term>
<option>--specialisation</option>
</term>
<term>
<option>-c</option>
</term>
<listitem>
<para>
Activates given specialisation; when not specified, switching and testing
will activate the base, unspecialised system.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term>
<option>--build-host</option>

View file

@ -10,6 +10,8 @@ In addition to numerous new and upgraded packages, this release has the followin
- Cinnamon has been updated to 5.6, see [the pull request](https://github.com/NixOS/nixpkgs/pull/201328#issue-1449910204) for what is changed.
- `nixos-rebuild` now supports an extra `--specialisation` option that can be used to change specialisation for `switch` and `test` commands.
## New Services {#sec-release-23.05-new-services}
<!-- To avoid merge conflicts, consider adding your item at an arbitrary place in the list instead. -->
@ -34,6 +36,8 @@ In addition to numerous new and upgraded packages, this release has the followin
- [ulogd](https://www.netfilter.org/projects/ulogd/index.html), a userspace logging daemon for netfilter/iptables related logging. Available as [services.ulogd](options.html#opt-services.ulogd.enable).
- [photoprism](https://photoprism.app/), a AI-Powered Photos App for the Decentralized Web. Available as [services.photoprism](options.html#opt-services.photoprism.enable).
## Backward Incompatibilities {#sec-release-23.05-incompatibilities}
<!-- To avoid merge conflicts, consider adding your item at an arbitrary place in the list instead. -->
@ -85,6 +89,8 @@ In addition to numerous new and upgraded packages, this release has the followin
- The module `usbmuxd` now has the ability to change the package used by the daemon. In case you're experiencing issues with `usbmuxd` you can try an alternative program like `usbmuxd2`. Available as [services.usbmuxd.package](#opt-services.usbmuxd.package)
- A few openssh options have been moved from extraConfig to the new freeform option `settings` and renamed as follow: `services.openssh.kbdInteractiveAuthentication` to `services.openssh.settings.KbdInteractiveAuthentication`, `services.openssh.passwordAuthentication` to `services.openssh.settings.PasswordAuthentication`, `services.openssh.useDns` to `services.openssh.settings.UseDns`, `services.openssh.permitRootLogin` to `services.openssh.settings.PermitRootLogin`, `services.openssh.logLevel` to `services.openssh.settings.LogLevel`.
- `services.mastodon` gained a tootctl wrapped named `mastodon-tootctl` similar to `nextcloud-occ` which can be executed from any user and switches to the configured mastodon user with sudo and sources the environment variables.
- The `dnsmasq` service now takes configuration via the

View file

@ -52,7 +52,7 @@ let
buildMenuAdditionalParamsGrub2 = additional:
let
finalCfg = {
name = "NixOS ${config.system.nixos.label}${config.isoImage.appendToMenuLabel}";
name = "${config.system.nixos.distroName} ${config.system.nixos.label}${config.isoImage.appendToMenuLabel}";
params = "init=${config.system.build.toplevel}/init ${additional} ${toString config.boot.kernelParams}";
image = "/boot/${config.system.boot.loader.kernelFile}";
initrd = "/boot/initrd";
@ -109,35 +109,35 @@ let
DEFAULT boot
LABEL boot
MENU LABEL NixOS ${config.system.nixos.label}${config.isoImage.appendToMenuLabel}
MENU LABEL ${config.system.nixos.distroName} ${config.system.nixos.label}${config.isoImage.appendToMenuLabel}
LINUX /boot/${config.system.boot.loader.kernelFile}
APPEND init=${config.system.build.toplevel}/init ${toString config.boot.kernelParams}
INITRD /boot/${config.system.boot.loader.initrdFile}
# A variant to boot with 'nomodeset'
LABEL boot-nomodeset
MENU LABEL NixOS ${config.system.nixos.label}${config.isoImage.appendToMenuLabel} (nomodeset)
MENU LABEL ${config.system.nixos.distroName} ${config.system.nixos.label}${config.isoImage.appendToMenuLabel} (nomodeset)
LINUX /boot/${config.system.boot.loader.kernelFile}
APPEND init=${config.system.build.toplevel}/init ${toString config.boot.kernelParams} nomodeset
INITRD /boot/${config.system.boot.loader.initrdFile}
# A variant to boot with 'copytoram'
LABEL boot-copytoram
MENU LABEL NixOS ${config.system.nixos.label}${config.isoImage.appendToMenuLabel} (copytoram)
MENU LABEL ${config.system.nixos.distroName} ${config.system.nixos.label}${config.isoImage.appendToMenuLabel} (copytoram)
LINUX /boot/${config.system.boot.loader.kernelFile}
APPEND init=${config.system.build.toplevel}/init ${toString config.boot.kernelParams} copytoram
INITRD /boot/${config.system.boot.loader.initrdFile}
# A variant to boot with verbose logging to the console
LABEL boot-debug
MENU LABEL NixOS ${config.system.nixos.label}${config.isoImage.appendToMenuLabel} (debug)
MENU LABEL ${config.system.nixos.distroName} ${config.system.nixos.label}${config.isoImage.appendToMenuLabel} (debug)
LINUX /boot/${config.system.boot.loader.kernelFile}
APPEND init=${config.system.build.toplevel}/init ${toString config.boot.kernelParams} loglevel=7
INITRD /boot/${config.system.boot.loader.initrdFile}
# A variant to boot with a serial console enabled
LABEL boot-serial
MENU LABEL NixOS ${config.system.nixos.label}${config.isoImage.appendToMenuLabel} (serial console=ttyS0,115200n8)
MENU LABEL ${config.system.nixos.distroName} ${config.system.nixos.label}${config.isoImage.appendToMenuLabel} (serial console=ttyS0,115200n8)
LINUX /boot/${config.system.boot.loader.kernelFile}
APPEND init=${config.system.build.toplevel}/init ${toString config.boot.kernelParams} console=ttyS0,115200n8
INITRD /boot/${config.system.boot.loader.initrdFile}
@ -458,7 +458,7 @@ in
};
isoImage.isoBaseName = mkOption {
default = "nixos";
default = config.system.nixos.distroId;
description = lib.mdDoc ''
Prefix of the name of the generated ISO image file.
'';
@ -579,7 +579,7 @@ in
isoImage.syslinuxTheme = mkOption {
default = ''
MENU TITLE NixOS
MENU TITLE ${config.system.nixos.distroName}
MENU RESOLUTION 800 600
MENU CLEAR
MENU ROWS 6

View file

@ -16,18 +16,18 @@ let
) + "\n";
osReleaseContents = {
NAME = "NixOS";
ID = "nixos";
NAME = "${cfg.distroName}";
ID = "${cfg.distroId}";
VERSION = "${cfg.release} (${cfg.codeName})";
VERSION_CODENAME = toLower cfg.codeName;
VERSION_ID = cfg.release;
BUILD_ID = cfg.version;
PRETTY_NAME = "NixOS ${cfg.release} (${cfg.codeName})";
PRETTY_NAME = "${cfg.distroName} ${cfg.release} (${cfg.codeName})";
LOGO = "nix-snowflake";
HOME_URL = "https://nixos.org/";
DOCUMENTATION_URL = "https://nixos.org/learn.html";
SUPPORT_URL = "https://nixos.org/community.html";
BUG_REPORT_URL = "https://github.com/NixOS/nixpkgs/issues";
HOME_URL = lib.optionalString (cfg.distroId == "nixos") "https://nixos.org/";
DOCUMENTATION_URL = lib.optionalString (cfg.distroId == "nixos") "https://nixos.org/learn.html";
SUPPORT_URL = lib.optionalString (cfg.distroId == "nixos") "https://nixos.org/community.html";
BUG_REPORT_URL = lib.optionalString (cfg.distroId == "nixos") "https://github.com/NixOS/nixpkgs/issues";
} // lib.optionalAttrs (cfg.variant_id != null) {
VARIANT_ID = cfg.variant_id;
};
@ -89,6 +89,20 @@ in
description = lib.mdDoc "The NixOS release code name (e.g. `Emu`).";
};
nixos.distroId = mkOption {
internal = true;
type = types.str;
default = "nixos";
description = lib.mdDoc "The id of the operating system";
};
nixos.distroName = mkOption {
internal = true;
type = types.str;
default = "NixOS";
description = lib.mdDoc "The name of the operating system";
};
nixos.variant_id = mkOption {
type = types.nullOr (types.strMatching "^[a-z0-9._-]+$");
default = null;
@ -155,10 +169,10 @@ in
environment.etc = {
"lsb-release".text = attrsToText {
LSB_VERSION = "${cfg.release} (${cfg.codeName})";
DISTRIB_ID = "nixos";
DISTRIB_ID = "${cfg.distroId}";
DISTRIB_RELEASE = cfg.release;
DISTRIB_CODENAME = toLower cfg.codeName;
DISTRIB_DESCRIPTION = "NixOS ${cfg.release} (${cfg.codeName})";
DISTRIB_DESCRIPTION = "${cfg.distroName} ${cfg.release} (${cfg.codeName})";
};
"os-release".text = attrsToText osReleaseContents;

View file

@ -1165,6 +1165,7 @@
./services/web-apps/peertube.nix
./services/web-apps/pgpkeyserver-lite.nix
./services/web-apps/phylactery.nix
./services/web-apps/photoprism.nix
./services/web-apps/pict-rs.nix
./services/web-apps/plantuml-server.nix
./services/web-apps/plausible.nix

View file

@ -72,7 +72,7 @@ with lib;
# mounting the storage in a different system.
services.openssh = {
enable = true;
permitRootLogin = "yes";
settings.PermitRootLogin = "yes";
};
# Enable wpa_supplicant, but don't start it by default.

View file

@ -59,6 +59,10 @@ in
systemPackages = [ cfg.package ];
};
services.ntfy-sh.settings = {
auth-file = mkDefault "/var/lib/ntfy-sh/user.db";
};
systemd.services.ntfy-sh = {
description = "Push notifications server";
@ -68,6 +72,7 @@ in
serviceConfig = {
ExecStart = "${cfg.package}/bin/ntfy serve -c ${configuration}";
User = cfg.user;
StateDirectory = "ntfy-sh";
AmbientCapabilities = "CAP_NET_BIND_SERVICE";
PrivateTmp = true;

View file

@ -18,9 +18,10 @@ in
description = lib.mdDoc "Uptime Kuma package to use.";
};
appriseSupport = mkEnableOption (mdDoc "apprise support for notifications.");
settings = lib.mkOption {
type =
lib.types.submodule { freeformType = with lib.types; attrsOf str; };
type = lib.types.submodule { freeformType = with lib.types; attrsOf str; };
default = { };
example = {
PORT = "4000";
@ -47,6 +48,7 @@ in
after = [ "network.target" ];
wantedBy = [ "multi-user.target" ];
environment = cfg.settings;
path = lib.mkIf cfg.appriseSupport (with pkgs; [ apprise ]);
serviceConfig = {
Type = "simple";
StateDirectory = "uptime-kuma";

View file

@ -94,7 +94,8 @@ in
};
ssid = mkOption {
default = "nixos";
default = config.system.nixos.distroId;
defaultText = literalExpression "config.system.nixos.distroId";
example = "mySpecialSSID";
type = types.str;
description = lib.mdDoc "SSID to be used in IEEE 802.11 management frames.";

View file

@ -12,8 +12,23 @@ let
then cfgc.package
else pkgs.buildPackages.openssh;
# reports boolean as yes / no
mkValueStringSshd = v:
if isInt v then toString v
else if isString v then v
else if true == v then "yes"
else if false == v then "no"
else throw "unsupported type ${typeOf v}: ${(lib.generators.toPretty {}) v}";
# dont use the "=" operator
settingsFormat = (pkgs.formats.keyValue {
mkKeyValue = lib.generators.mkKeyValueDefault {
mkValueString = mkValueStringSshd;
} " ";});
configFile = settingsFormat.generate "config" cfg.settings;
sshconf = pkgs.runCommand "sshd.conf-validated" { nativeBuildInputs = [ validationPackage ]; } ''
cat >$out <<EOL
cat ${configFile} - >$out <<EOL
${cfg.extraConfig}
EOL
@ -24,6 +39,7 @@ let
cfg = config.services.openssh;
cfgc = config.programs.ssh;
nssModulesPath = config.system.nssModules.path;
userOptions = {
@ -82,6 +98,12 @@ in
(mkAliasOptionModuleMD [ "services" "sshd" "enable" ] [ "services" "openssh" "enable" ])
(mkAliasOptionModuleMD [ "services" "openssh" "knownHosts" ] [ "programs" "ssh" "knownHosts" ])
(mkRenamedOptionModule [ "services" "openssh" "challengeResponseAuthentication" ] [ "services" "openssh" "kbdInteractiveAuthentication" ])
(mkRenamedOptionModule [ "services" "openssh" "kbdInteractiveAuthentication" ] [ "services" "openssh" "settings" "KbdInteractiveAuthentication" ])
(mkRenamedOptionModule [ "services" "openssh" "passwordAuthentication" ] [ "services" "openssh" "settings" "PasswordAuthentication" ])
(mkRenamedOptionModule [ "services" "openssh" "useDns" ] [ "services" "openssh" "settings" "UseDns" ])
(mkRenamedOptionModule [ "services" "openssh" "permitRootLogin" ] [ "services" "openssh" "settings" "PermitRootLogin" ])
(mkRenamedOptionModule [ "services" "openssh" "logLevel" ] [ "services" "openssh" "settings" "LogLevel" ])
];
###### interface
@ -145,14 +167,6 @@ in
'';
};
permitRootLogin = mkOption {
default = "prohibit-password";
type = types.enum ["yes" "without-password" "prohibit-password" "forced-commands-only" "no"];
description = lib.mdDoc ''
Whether the root user can login using ssh.
'';
};
gatewayPorts = mkOption {
type = types.str;
default = "no";
@ -210,22 +224,6 @@ in
'';
};
passwordAuthentication = mkOption {
type = types.bool;
default = true;
description = lib.mdDoc ''
Specifies whether password authentication is allowed.
'';
};
kbdInteractiveAuthentication = mkOption {
type = types.bool;
default = true;
description = lib.mdDoc ''
Specifies whether keyboard-interactive authentication is allowed.
'';
};
hostKeys = mkOption {
type = types.listOf types.attrs;
default =
@ -346,26 +344,58 @@ in
'';
};
logLevel = mkOption {
type = types.enum [ "QUIET" "FATAL" "ERROR" "INFO" "VERBOSE" "DEBUG" "DEBUG1" "DEBUG2" "DEBUG3" ];
default = "INFO"; # upstream default
description = lib.mdDoc ''
Gives the verbosity level that is used when logging messages from sshd(8). The possible values are:
QUIET, FATAL, ERROR, INFO, VERBOSE, DEBUG, DEBUG1, DEBUG2, and DEBUG3. The default is INFO. DEBUG and DEBUG1
are equivalent. DEBUG2 and DEBUG3 each specify higher levels of debugging output. Logging with a DEBUG level
violates the privacy of users and is not recommended.
'';
};
useDns = mkOption {
type = types.bool;
default = false;
description = lib.mdDoc ''
Specifies whether sshd(8) should look up the remote host name, and to check that the resolved host name for
the remote IP address maps back to the very same IP address.
If this option is set to no (the default) then only addresses and not host names may be used in
~/.ssh/authorized_keys from and sshd_config Match Host directives.
'';
settings = mkOption {
description = lib.mdDoc "Verbatim contents of {file}`sshd_config`.";
example = literalExpression ''{
UseDns true;
}'';
type = types.submodule ({name, ...}: {
freeformType = settingsFormat.type;
options = {
LogLevel = mkOption {
type = types.enum [ "QUIET" "FATAL" "ERROR" "INFO" "VERBOSE" "DEBUG" "DEBUG1" "DEBUG2" "DEBUG3" ];
default = "INFO"; # upstream default
description = lib.mdDoc ''
Gives the verbosity level that is used when logging messages from sshd(8). Logging with a DEBUG level
violates the privacy of users and is not recommended.
'';
};
UseDns = mkOption {
type = types.bool;
# apply if cfg.useDns then "yes" else "no"
default = false;
description = lib.mdDoc ''
Specifies whether sshd(8) should look up the remote host name, and to check that the resolved host name for
the remote IP address maps back to the very same IP address.
If this option is set to no (the default) then only addresses and not host names may be used in
~/.ssh/authorized_keys from and sshd_config Match Host directives.
'';
};
PasswordAuthentication = mkOption {
type = types.bool;
default = true;
description = lib.mdDoc ''
Specifies whether password authentication is allowed.
'';
};
PermitRootLogin = mkOption {
default = "prohibit-password";
type = types.enum ["yes" "without-password" "prohibit-password" "forced-commands-only" "no"];
description = lib.mdDoc ''
Whether the root user can login using ssh.
'';
};
KbdInteractiveAuthentication = mkOption {
type = types.bool;
default = true;
description = lib.mdDoc ''
Specifies whether keyboard-interactive authentication is allowed.
'';
};
};
});
};
extraConfig = mkOption {
@ -496,7 +526,7 @@ in
security.pam.services.sshd =
{ startSession = true;
showMotd = true;
unixAuth = cfg.passwordAuthentication;
unixAuth = cfg.settings.PasswordAuthentication;
};
# These values are merged with the ones defined externally, see:
@ -530,10 +560,7 @@ in
Subsystem sftp ${cfg.sftpServerExecutable} ${concatStringsSep " " cfg.sftpFlags}
''}
PermitRootLogin ${cfg.permitRootLogin}
GatewayPorts ${cfg.gatewayPorts}
PasswordAuthentication ${if cfg.passwordAuthentication then "yes" else "no"}
KbdInteractiveAuthentication ${if cfg.kbdInteractiveAuthentication then "yes" else "no"}
PrintMotd no # handled by pam_motd
@ -550,11 +577,6 @@ in
KexAlgorithms ${concatStringsSep "," cfg.kexAlgorithms}
Ciphers ${concatStringsSep "," cfg.ciphers}
MACs ${concatStringsSep "," cfg.macs}
LogLevel ${cfg.logLevel}
UseDNS ${if cfg.useDns then "yes" else "no"}
'';
assertions = [{ assertion = if cfg.forwardX11 then cfgc.setXAuthLocation else true;

View file

@ -339,7 +339,7 @@ in
# Block SSH if there are too many failing connection attempts.
# Benefits from verbose sshd logging to observe failed login attempts,
# so we set that here unless the user overrode it.
services.openssh.logLevel = lib.mkDefault "VERBOSE";
services.openssh.settings.LogLevel = lib.mkDefault "VERBOSE";
services.fail2ban.jails.sshd = mkDefault ''
enabled = true
port = ${concatMapStringsSep "," (p: toString p) config.services.openssh.ports}

View file

@ -0,0 +1,155 @@
{ config, pkgs, lib, ... }:
let
cfg = config.services.photoprism;
env = {
PHOTOPRISM_ORIGINALS_PATH = cfg.originalsPath;
PHOTOPRISM_STORAGE_PATH = cfg.storagePath;
PHOTOPRISM_IMPORT_PATH = cfg.importPath;
PHOTOPRISM_HTTP_HOST = cfg.address;
PHOTOPRISM_HTTP_PORT = toString cfg.port;
} // (
lib.mapAttrs (_: toString) cfg.settings
);
manage =
let
setupEnv = lib.concatStringsSep "\n" (lib.mapAttrsToList (name: val: "export ${name}=${lib.escapeShellArg val}") env);
in
pkgs.writeShellScript "manage" ''
${setupEnv}
exec ${cfg.package}/bin/photoprism "$@"
'';
in
{
meta.maintainers = with lib.maintainers; [ stunkymonkey ];
options.services.photoprism = {
enable = lib.mkEnableOption (lib.mdDoc "Photoprism web server");
passwordFile = lib.mkOption {
type = lib.types.nullOr lib.types.path;
default = null;
description = lib.mdDoc ''
Admin password file.
'';
};
address = lib.mkOption {
type = lib.types.str;
default = "localhost";
description = lib.mdDoc ''
Web interface address.
'';
};
port = lib.mkOption {
type = lib.types.port;
default = 2342;
description = lib.mdDoc ''
Web interface port.
'';
};
originalsPath = lib.mkOption {
type = lib.types.path;
default = null;
example = "/data/photos";
description = lib.mdDoc ''
Storage path of your original media files (photos and videos).
'';
};
importPath = lib.mkOption {
type = lib.types.str;
default = "import";
description = lib.mdDoc ''
Relative or absolute to the `originalsPath` from where the files should be imported.
'';
};
storagePath = lib.mkOption {
type = lib.types.path;
default = "/var/lib/photoprism";
description = lib.mdDoc ''
Location for sidecar, cache, and database files.
'';
};
package = lib.mkPackageOptionMD pkgs "photoprism" { };
settings = lib.mkOption {
type = lib.types.attrsOf lib.types.str;
default = { };
description = lib.mdDoc ''
See [the getting-started guide](https://docs.photoprism.app/getting-started/config-options/) for available options.
'';
example = {
PHOTOPRISM_DEFAULT_LOCALE = "de";
PHOTOPRISM_ADMIN_USER = "root";
};
};
};
config = lib.mkIf cfg.enable {
systemd.services.photoprism = {
description = "Photoprism server";
serviceConfig = {
Restart = "on-failure";
User = "photoprism";
Group = "photoprism";
DynamicUser = true;
StateDirectory = "photoprism";
WorkingDirectory = "/var/lib/photoprism";
RuntimeDirectory = "photoprism";
LoadCredential = lib.optionalString (cfg.passwordFile != null)
"PHOTOPRISM_ADMIN_PASSWORD:${cfg.passwordFile}";
CapabilityBoundingSet = "";
LockPersonality = true;
PrivateDevices = true;
PrivateUsers = true;
ProtectClock = true;
ProtectControlGroups = true;
ProtectHome = true;
ProtectHostname = true;
ProtectKernelLogs = true;
ProtectKernelModules = true;
ProtectKernelTunables = true;
RestrictAddressFamilies = [ "AF_UNIX" "AF_INET" "AF_INET6" ];
RestrictNamespaces = true;
RestrictRealtime = true;
SystemCallArchitectures = "native";
SystemCallFilter = [ "@system-service" "~@privileged @setuid @keyring" ];
UMask = "0066";
} // lib.optionalAttrs (cfg.port < 1024) {
AmbientCapabilities = [ "CAP_NET_BIND_SERVICE" ];
CapabilityBoundingSet = [ "CAP_NET_BIND_SERVICE" ];
};
wantedBy = [ "multi-user.target" ];
environment = env;
# reminder: easier password configuration will come in https://github.com/photoprism/photoprism/pull/2302
preStart = ''
ln -sf ${manage} photoprism-manage
${lib.optionalString (cfg.passwordFile != null) ''
export PHOTOPRISM_ADMIN_PASSWORD=$(cat "$CREDENTIALS_DIRECTORY/PHOTOPRISM_ADMIN_PASSWORD")
''}
exec ${cfg.package}/bin/photoprism migrations run -f
'';
script = ''
${lib.optionalString (cfg.passwordFile != null) ''
export PHOTOPRISM_ADMIN_PASSWORD=$(cat "$CREDENTIALS_DIRECTORY/PHOTOPRISM_ADMIN_PASSWORD")
''}
exec ${cfg.package}/bin/photoprism start
'';
};
};
}

View file

@ -22,7 +22,7 @@ let
system = config.boot.kernelPackages.stdenv.hostPlatform.system;
kernel = "${config.boot.kernelPackages.kernel}/${config.system.boot.loader.kernelFile}";
kernelParams = config.boot.kernelParams;
label = "NixOS ${config.system.nixos.codeName} ${config.system.nixos.label} (Linux ${config.boot.kernelPackages.kernel.modDirVersion})";
label = "${config.system.nixos.distroName} ${config.system.nixos.codeName} ${config.system.nixos.label} (Linux ${config.boot.kernelPackages.kernel.modDirVersion})";
inherit (cfg) extensions;
} // lib.optionalAttrs config.boot.initrd.enable {

View file

@ -84,7 +84,7 @@ EOF
# This is a NixOS installation if it has /etc/NIXOS or a proper
# /etc/os-release.
if (!-f "/etc/NIXOS" && (read_file("/etc/os-release", err_mode => "quiet") // "") !~ /^ID="?nixos"?/msx) {
if (!-f "/etc/NIXOS" && (read_file("/etc/os-release", err_mode => "quiet") // "") !~ /^ID="?@distroId@"?/msx) {
die("This is not a NixOS installation!\n");
}

View file

@ -65,6 +65,7 @@ let
mkdir $out/bin
export localeArchive="${config.i18n.glibcLocales}/lib/locale/locale-archive"
export distroId=${config.system.nixos.distroId};
substituteAll ${./switch-to-configuration.pl} $out/bin/switch-to-configuration
chmod +x $out/bin/switch-to-configuration
${optionalString (pkgs.stdenv.hostPlatform == pkgs.stdenv.buildPlatform) ''

View file

@ -55,7 +55,7 @@ let
grubTargetEfi = if cfg.efiSupport && (cfg.version == 2) then f (grubEfi.grubTarget or "") else "";
bootPath = args.path;
storePath = config.boot.loader.grub.storePath;
bootloaderId = if args.efiBootloaderId == null then "NixOS${efiSysMountPoint'}" else args.efiBootloaderId;
bootloaderId = if args.efiBootloaderId == null then "${config.system.nixos.distroName}${efiSysMountPoint'}" else args.efiBootloaderId;
timeout = if config.boot.loader.timeout == null then -1 else config.boot.loader.timeout;
users = if cfg.users == {} || cfg.version != 1 then cfg.users else throw "GRUB version 1 does not support user accounts.";
theme = f cfg.theme;
@ -759,6 +759,7 @@ in
src = ./install-grub.pl;
utillinux = pkgs.util-linux;
btrfsprogs = pkgs.btrfs-progs;
inherit (config.system.nixos) distroName;
};
perl = pkgs.perl.withPackages (p: with p; [
FileSlurp FileCopyRecursive

View file

@ -511,7 +511,7 @@ sub addEntry {
# Add default entries.
$conf .= "$extraEntries\n" if $extraEntriesBeforeNixOS;
addEntry("NixOS - Default", $defaultConfig, $entryOptions);
addEntry("@distroName@ - Default", $defaultConfig, $entryOptions);
$conf .= "$extraEntries\n" unless $extraEntriesBeforeNixOS;
@ -536,7 +536,7 @@ foreach my $link (@links) {
my $linkname = basename($link);
$entryName = "($linkname - $date - $version)";
}
addEntry("NixOS - $entryName", $link);
addEntry("@distroName@ - $entryName", $link);
}
my $grubBootPath = $grubBoot->path;
@ -568,19 +568,19 @@ sub addProfile {
-e "$link/nixos-version"
? readFile("$link/nixos-version")
: basename((glob(dirname(Cwd::abs_path("$link/kernel")) . "/lib/modules/*"))[0]);
addEntry("NixOS - Configuration " . nrFromGen($link) . " ($date - $version)", $link, $subEntryOptions);
addEntry("@distroName@ - Configuration " . nrFromGen($link) . " ($date - $version)", $link, $subEntryOptions);
}
$conf .= "}\n" if $grubVersion == 2;
}
addProfile "/nix/var/nix/profiles/system", "NixOS - All configurations";
addProfile "/nix/var/nix/profiles/system", "@distroName@ - All configurations";
if ($grubVersion == 2) {
for my $profile (glob "/nix/var/nix/profiles/system-profiles/*") {
my $name = basename($profile);
next unless $name =~ /^\w+$/;
addProfile $profile, "NixOS - Profile '$name'";
addProfile $profile, "@distroName@ - Profile '$name'";
}
}

View file

@ -64,13 +64,13 @@ addEntry() {
mkdir -p /boot /sbin
addEntry "NixOS - Default" $defaultConfig ""
addEntry "@distroName@ - Default" $defaultConfig ""
# Add all generations of the system profile to the menu, in reverse
# (most recent to least recent) order.
for link in $((ls -d $defaultConfig/specialisation/* ) | sort -n); do
date=$(stat --printf="%y\n" $link | sed 's/\..*//')
addEntry "NixOS - variation" $link ""
addEntry "@distroName@ - variation" $link ""
done
for generation in $(
@ -85,7 +85,7 @@ for generation in $(
else
suffix="($date)"
fi
addEntry "NixOS - Configuration $generation $suffix" $link "$generation ($date)"
addEntry "@distroName@ - Configuration $generation $suffix" $link "$generation ($date)"
done
mv $tmpOther $targetOther

View file

@ -8,6 +8,7 @@ let
src = ./init-script-builder.sh;
isExecutable = true;
inherit (pkgs) bash;
inherit (config.nixos.system) distroName;
path = [pkgs.coreutils pkgs.gnused pkgs.gnugrep];
};

View file

@ -42,7 +42,7 @@ def system_dir(profile: Optional[str], generation: int, specialisation: Optional
else:
return d
BOOT_ENTRY = """title NixOS{profile}{specialisation}
BOOT_ENTRY = """title @distroName@{profile}{specialisation}
version Generation {generation} {description}
linux {kernel}
initrd {initrd}
@ -99,7 +99,7 @@ def describe_generation(generation_dir: str) -> str:
build_time = int(os.path.getctime(generation_dir))
build_date = datetime.datetime.fromtimestamp(build_time).strftime('%F')
description = "NixOS {}, Linux Kernel {}, Built on {}".format(
description = "@distroName@ {}, Linux Kernel {}, Built on {}".format(
nixos_version, kernel_version, build_date
)
@ -206,8 +206,8 @@ def get_profiles() -> List[str]:
return []
def main() -> None:
parser = argparse.ArgumentParser(description='Update NixOS-related systemd-boot files')
parser.add_argument('default_config', metavar='DEFAULT-CONFIG', help='The default NixOS config to boot')
parser = argparse.ArgumentParser(description='Update @distroName@-related systemd-boot files')
parser.add_argument('default_config', metavar='DEFAULT-CONFIG', help='The default @distroName@ config to boot')
args = parser.parse_args()
try:

View file

@ -30,6 +30,8 @@ let
inherit (efi) efiSysMountPoint canTouchEfiVariables;
inherit (config.system.nixos) distroName;
memtest86 = if cfg.memtest86.enable then pkgs.memtest86-efi else "";
netbootxyz = if cfg.netbootxyz.enable then pkgs.netbootxyz-efi else "";

View file

@ -73,7 +73,7 @@ trap 'fail' 0
# Print a greeting.
info
info "<<< NixOS Stage 1 >>>"
info "<<< @distroName@ Stage 1 >>>"
info
# Make several required directories.
@ -422,7 +422,7 @@ lustrateRoot () {
local root="$1"
echo
echo -e "\e[1;33m<<< NixOS is now lustrating the root filesystem (cruft goes to /old-root) >>>\e[0m"
echo -e "\e[1;33m<<< @distroName@ is now lustrating the root filesystem (cruft goes to /old-root) >>>\e[0m"
echo
mkdir -m 0755 -p "$root/old-root.tmp"

View file

@ -342,6 +342,8 @@ let
inherit (config.boot) resumeDevice;
inherit (config.system.nixos) distroName;
inherit (config.system.build) earlyMountScript;
inherit (config.boot.initrd) checkJournalingFS verbose

View file

@ -19,7 +19,7 @@ if [ "${IN_NIXOS_SYSTEMD_STAGE1:-}" != true ]; then
# Print a greeting.
echo
echo -e "\e[1;32m<<< NixOS Stage 2 >>>\e[0m"
echo -e "\e[1;32m<<< @distroName@ Stage 2 >>>\e[0m"
echo

View file

@ -11,6 +11,7 @@ let
shellDebug = "${pkgs.bashInteractive}/bin/bash";
shell = "${pkgs.bash}/bin/bash";
inherit (config.boot) readOnlyNixStore systemdExecutable extraSystemdUnitPaths;
inherit (config.system.nixos) distroName;
isExecutable = true;
inherit useHostResolvConf;
inherit (config.system.build) earlyMountScript;

View file

@ -434,7 +434,8 @@ in
options = {
networking.hostName = mkOption {
default = "nixos";
default = config.system.nixos.distroId;
defaultText = literalExpression "config.system.nixos.distroId";
# Only allow hostnames without the domain name part (i.e. no FQDNs, see
# e.g. "man 5 hostname") and require valid DNS labels (recommended
# syntax). Note: We also allow underscores for compatibility/legacy

View file

@ -85,7 +85,7 @@ in
# Allow root logins only using the SSH key that the user specified
# at instance creation time.
services.openssh.enable = true;
services.openssh.permitRootLogin = "prohibit-password";
services.openssh.settings.PermitRootLogin = "prohibit-password";
# Enable the serial console on ttyS0
systemd.services."serial-getty@ttyS0".enable = true;

View file

@ -30,10 +30,8 @@ with lib;
# Allow root logins only using the SSH key that the user specified
# at instance creation time, ping client connections to avoid timeouts
services.openssh.enable = true;
services.openssh.permitRootLogin = "prohibit-password";
services.openssh.extraConfig = ''
ClientAliveInterval 180
'';
services.openssh.settings.PermitRootLogin = "prohibit-password";
services.openssh.settings.ClientAliveInterval = 180;
# Force getting the hostname from Azure
networking.hostName = mkDefault "";

View file

@ -103,7 +103,7 @@ in
# Allow root logins only using the SSH key that the user specified
# at instance creation time.
services.openssh.enable = true;
services.openssh.permitRootLogin = "prohibit-password";
services.openssh.settings.PermitRootLogin = "prohibit-password";
# Force getting the hostname from Google Compute.
networking.hostName = mkDefault "";

View file

@ -21,7 +21,7 @@ with lib;
# Allow root logins
services.openssh = {
enable = true;
permitRootLogin = "prohibit-password";
settings.PermitRootLogin = "prohibit-password";
};
# Cloud-init configuration.

View file

@ -49,7 +49,7 @@ with lib;
};
services.openssh = {
enable = mkDefault true;
passwordAuthentication = mkDefault false;
settings.PasswordAuthentication = mkDefault false;
};
services.do-agent.enable = mkDefault true;
networking = {

View file

@ -29,8 +29,8 @@ with lib;
# Allow root logins only using SSH keys
# and disable password authentication in general
services.openssh.enable = true;
services.openssh.permitRootLogin = "prohibit-password";
services.openssh.passwordAuthentication = mkDefault false;
services.openssh.settings.PermitRootLogin = "prohibit-password";
services.openssh.settings.PasswordAuthentication = mkDefault false;
# enable OS Login. This also requires setting enable-oslogin=TRUE metadata on
# instance or project level

View file

@ -123,8 +123,8 @@ in
architecture = builtins.elemAt (builtins.match "^([a-z0-9_]+).+" (toString pkgs.system)) 0;
creation_date = 1;
properties = {
description = "NixOS ${config.system.nixos.codeName} ${config.system.nixos.label} ${pkgs.system}";
os = "nixos";
description = "${config.system.nixos.distroName} ${config.system.nixos.codeName} ${config.system.nixos.label} ${pkgs.system}";
os = "${config.system.nixos.distroId}";
release = "${config.system.nixos.codeName}";
};
templates = templates.properties;

View file

@ -59,8 +59,8 @@ in
# Allow root logins
services.openssh = {
enable = true;
permitRootLogin = "prohibit-password";
passwordAuthentication = mkDefault false;
settings.PermitRootLogin = "prohibit-password";
settings.PasswordAuthentication = mkDefault false;
};
users.users.root.initialPassword = "foobar";

View file

@ -41,7 +41,7 @@ in {
};
vmName = mkOption {
type = types.str;
default = "NixOS ${config.system.nixos.label} (${pkgs.stdenv.hostPlatform.system})";
default = "${config.system.nixos.distroName} ${config.system.nixos.label} (${pkgs.stdenv.hostPlatform.system})";
description = lib.mdDoc ''
The name of the VirtualBox appliance.
'';

View file

@ -436,7 +436,6 @@ in {
netdata = handleTest ./netdata.nix {};
networking.networkd = handleTest ./networking.nix { networkd = true; };
networking.scripted = handleTest ./networking.nix { networkd = false; };
specialisation = handleTest ./specialisation.nix {};
netbox = handleTest ./web-apps/netbox.nix {};
# TODO: put in networking.nix after the test becomes more complete
networkingProxy = handleTest ./networking-proxy.nix {};
@ -464,6 +463,7 @@ in {
nix-serve-ssh = handleTest ./nix-serve-ssh.nix {};
nixops = handleTest ./nixops/default.nix {};
nixos-generate-config = handleTest ./nixos-generate-config.nix {};
nixos-rebuild-specialisations = handleTest ./nixos-rebuild-specialisations.nix {};
nixpkgs = pkgs.callPackage ../modules/misc/nixpkgs/test.nix { inherit evalMinimalConfig; };
node-red = handleTest ./node-red.nix {};
nomad = handleTest ./nomad.nix {};
@ -513,6 +513,7 @@ in {
pgjwt = handleTest ./pgjwt.nix {};
pgmanage = handleTest ./pgmanage.nix {};
phosh = handleTest ./phosh.nix {};
photoprism = handleTest ./photoprism.nix {};
php = handleTest ./php {};
php80 = handleTest ./php { php = pkgs.php80; };
php81 = handleTest ./php { php = pkgs.php81; };

View file

@ -117,8 +117,10 @@ in {
server = { ... }: {
services.openssh = {
enable = true;
passwordAuthentication = false;
kbdInteractiveAuthentication = false;
settings = {
PasswordAuthentication = false;
KbdInteractiveAuthentication = false;
};
};
services.borgbackup.repos.repo1 = {

View file

@ -52,8 +52,10 @@ import ./make-test-python.nix ({ pkgs, ... }:
environment.systemPackages = with pkgs; [ btrfs-progs ];
services.openssh = {
enable = true;
passwordAuthentication = false;
kbdInteractiveAuthentication = false;
settings = {
KbdInteractiveAuthentication = false;
PasswordAuthentication = false;
};
};
services.btrbk = {
extraPackages = [ pkgs.lz4 ];

View file

@ -17,8 +17,8 @@ in {
};
services.openssh.enable = true;
services.openssh.kbdInteractiveAuthentication = false;
services.openssh.passwordAuthentication = false;
services.openssh.settings.KbdInteractiveAuthentication = false;
services.openssh.settings.PasswordAuthentication = false;
security.googleOsLogin.enable = true;

View file

@ -21,6 +21,8 @@ let
<nixpkgs/nixos/modules/testing/test-instrumentation.nix>
];
documentation.enable = false;
# To ensure that we can rebuild the grub configuration on the nixos-rebuild
system.extraDependencies = with pkgs; [ stdenvNoCC ];

View file

@ -0,0 +1,131 @@
import ./make-test-python.nix ({ pkgs, ... }: {
name = "nixos-rebuild-specialisations";
nodes = {
machine = { lib, pkgs, ... }: {
imports = [
../modules/profiles/installation-device.nix
../modules/profiles/base.nix
];
nix.settings = {
substituters = lib.mkForce [ ];
hashed-mirrors = null;
connect-timeout = 1;
};
system.extraDependencies = with pkgs; [
curl
desktop-file-utils
docbook5
docbook_xsl_ns
grub2
kmod.dev
libarchive
libarchive.dev
libxml2.bin
libxslt.bin
python3Minimal
shared-mime-info
stdenv
sudo
xorg.lndir
];
virtualisation = {
cores = 2;
memorySize = 2048;
};
};
};
testScript =
let
configFile = pkgs.writeText "configuration.nix" ''
{ lib, pkgs, ... }: {
imports = [
./hardware-configuration.nix
<nixpkgs/nixos/modules/testing/test-instrumentation.nix>
];
boot.loader.grub = {
enable = true;
device = "/dev/vda";
forceInstall = true;
};
documentation.enable = false;
environment.systemPackages = [
(pkgs.writeShellScriptBin "parent" "")
];
specialisation.foo = {
inheritParentConfig = true;
configuration = { ... }: {
environment.systemPackages = [
(pkgs.writeShellScriptBin "foo" "")
];
};
};
specialisation.bar = {
inheritParentConfig = true;
configuration = { ... }: {
environment.systemPackages = [
(pkgs.writeShellScriptBin "bar" "")
];
};
};
}
'';
in
''
machine.start()
machine.succeed("udevadm settle")
machine.wait_for_unit("multi-user.target")
machine.succeed("nixos-generate-config")
machine.copy_from_host(
"${configFile}",
"/etc/nixos/configuration.nix",
)
with subtest("Switch to the base system"):
machine.succeed("nixos-rebuild switch")
machine.succeed("parent")
machine.fail("foo")
machine.fail("bar")
with subtest("Switch from base system into a specialization"):
machine.succeed("nixos-rebuild switch --specialisation foo")
machine.succeed("parent")
machine.succeed("foo")
machine.fail("bar")
with subtest("Switch from specialization into another specialization"):
machine.succeed("nixos-rebuild switch -c bar")
machine.succeed("parent")
machine.fail("foo")
machine.succeed("bar")
with subtest("Switch from specialization into the base system"):
machine.succeed("nixos-rebuild switch")
machine.succeed("parent")
machine.fail("foo")
machine.fail("bar")
with subtest("Switch into specialization using `nixos-rebuild test`"):
machine.succeed("nixos-rebuild test --specialisation foo")
machine.succeed("parent")
machine.succeed("foo")
machine.fail("bar")
with subtest("Make sure nonsense command combinations are forbidden"):
machine.fail("nixos-rebuild boot --specialisation foo")
machine.fail("nixos-rebuild boot -c foo")
'';
})

View file

@ -12,6 +12,8 @@ import ./make-test-python.nix {
machine.wait_for_unit("multi-user.target")
machine.wait_for_open_port(80)
machine.succeed(f"curl -d '{msg}' localhost:80/test")
notif = json.loads(machine.succeed("curl -s localhost:80/test/json?poll=1"))

View file

@ -0,0 +1,23 @@
import ./make-test-python.nix ({ lib, pkgs, ... }: {
name = "photoprism";
meta.maintainers = with lib.maintainers; [ stunkymonkey ];
nodes.machine = { pkgs, ... }: {
services.photoprism = {
enable = true;
port = 8080;
originalsPath = "/media/photos/";
passwordFile = pkgs.writeText "password" "secret";
};
environment.extraInit = ''
mkdir -p /media/photos
'';
};
testScript = ''
machine.wait_for_unit("multi-user.target")
machine.wait_for_open_port(8080)
response = machine.succeed("curl -vvv -s -H 'Host: photoprism' http://127.0.0.1:8080/library/login")
assert '<title>PhotoPrism</title>' in response, "Login page didn't load successfully"
'';
})

View file

@ -18,8 +18,10 @@ let
# passwordless ssh server
services.openssh = {
enable = true;
permitRootLogin = "yes";
extraConfig = "PermitEmptyPasswords yes";
settings = {
PermitRootLogin = "yes";
PermitEmptyPasswords = true;
};
};
users = {

View file

@ -1,43 +0,0 @@
import ./make-test-python.nix {
name = "specialisation";
nodes = {
inheritconf = { pkgs, ... }: {
environment.systemPackages = [ pkgs.cowsay ];
specialisation.inheritconf.configuration = { pkgs, ... }: {
environment.systemPackages = [ pkgs.hello ];
};
};
noinheritconf = { pkgs, ... }: {
environment.systemPackages = [ pkgs.cowsay ];
specialisation.noinheritconf = {
inheritParentConfig = false;
configuration = { pkgs, ... }: {
environment.systemPackages = [ pkgs.hello ];
};
};
};
};
testScript = ''
inheritconf.wait_for_unit("default.target")
inheritconf.succeed("cowsay hey")
inheritconf.fail("hello")
with subtest("Nested clones do inherit from parent"):
inheritconf.succeed(
"/run/current-system/specialisation/inheritconf/bin/switch-to-configuration test"
)
inheritconf.succeed("cowsay hey")
inheritconf.succeed("hello")
noinheritconf.wait_for_unit("default.target")
noinheritconf.succeed("cowsay hey")
noinheritconf.fail("hello")
with subtest("Nested children do not inherit from parent"):
noinheritconf.succeed(
"/run/current-system/specialisation/noinheritconf/bin/switch-to-configuration test"
)
noinheritconf.fail("cowsay hey")
noinheritconf.succeed("hello")
'';
}

View file

@ -26,7 +26,7 @@ import ./make-test-python.nix ({ pkgs, lib, ... }: {
# So that we can ssh into the VM, see e.g.
# http://blog.patapon.info/nixos-local-vm/#accessing-the-vm-with-ssh
services.openssh.enable = true;
services.openssh.permitRootLogin = "yes";
services.openssh.settings.PermitRootLogin = "yes";
users.extraUsers.root.password = "";
users.mutableUsers = false;
};

View file

@ -5,16 +5,16 @@
buildGoModule rec {
pname = "dasel";
version = "2.0.2";
version = "2.1.0";
src = fetchFromGitHub {
owner = "TomWright";
repo = "dasel";
rev = "v${version}";
sha256 = "sha256-VdOXmhfgDzMyspoCFQl64obpQph14XZxR0Nas+crelA=";
sha256 = "sha256-7JGafJE9nwZ95bOWUyVw2uWA2LltE9HxolHGYU079to=";
};
vendorSha256 = "sha256-GO5Vg8zsXfjMBzRDC1/s/SYpviKUf59JB14vauKVFcE=";
vendorHash = "sha256-GO5Vg8zsXfjMBzRDC1/s/SYpviKUf59JB14vauKVFcE=";
ldflags = [
"-s" "-w" "-X github.com/tomwright/dasel/internal.Version=${version}"

View file

@ -32,9 +32,9 @@
}
},
"dev": {
"version": "110.0.5481.24",
"sha256": "1656qjbrrv276xxdlw0iv635sgm89r7nx32780zglm0lag3jx6ai",
"sha256bin64": "0pzd441qghdhibcnh1f2fldsx5ddjjwfrjv1nwi15pf3cabymz5g",
"version": "110.0.5481.30",
"sha256": "03r2mpnrw9p188lajf69lpd94rcgj5a9hs2nlf01f0czl6nij0bx",
"sha256bin64": "0wdvqq9h5vzmlwysnlw7wk4bzkmra7qp9k4p1c0phl05863ykasv",
"deps": {
"gn": {
"version": "2022-12-12",

View file

@ -21,11 +21,11 @@ let
vivaldiName = if isSnapshot then "vivaldi-snapshot" else "vivaldi";
in stdenv.mkDerivation rec {
pname = "vivaldi";
version = "5.6.2867.36";
version = "5.6.2867.58";
src = fetchurl {
url = "https://downloads.vivaldi.com/${branch}/vivaldi-${branch}_${version}-1_amd64.deb";
sha256 = "sha256-dTXppRn/bl+HYVzqyrKBXb2YAaw0lRJkwAeukalv3a4=d";
sha256 = "sha256-eRHQaKztf66o9FoCNSRyXS5Ht6d51GTilNO5DxItUCw=";
};
unpackPhase = ''

View file

@ -1,7 +1,7 @@
{ branch ? "stable", callPackage, fetchurl, lib, stdenv }:
let
versions = if stdenv.isLinux then {
stable = "0.0.22";
stable = "0.0.24";
ptb = "0.0.38";
canary = "0.0.145";
} else {
@ -14,7 +14,7 @@ let
x86_64-linux = {
stable = fetchurl {
url = "https://dl.discordapp.net/apps/linux/${version}/discord-${version}.tar.gz";
sha256 = "sha256-F1xzdx4Em6Ref7HTe9EH7whx49iFc0DFpaQKdFquq6c=";
sha256 = "sha256-SG+34ft0mTqtg9rFiI60N6JIONyqF8c8SlnRcn5a4Xc=";
};
ptb = fetchurl {
url = "https://dl-ptb.discordapp.net/apps/linux/${version}/discord-ptb-${version}.tar.gz";

View file

@ -81,12 +81,12 @@ let
in
python.pkgs.pythonPackages.buildPythonApplication rec {
pname = "paperless-ngx";
version = "1.10.2";
version = "1.11.3";
# Fetch the release tarball instead of a git ref because it contains the prebuilt frontend
src = fetchurl {
url = "https://github.com/paperless-ngx/paperless-ngx/releases/download/v${version}/${pname}-v${version}.tar.xz";
hash = "sha256-uOrRHHNqIYsDbzKcA7EsYZjadpLyAB4Ks+PU+BNsTWE=";
hash = "sha256-wGNkdczgV+UDd9ZO+BXMSWotpetE/+c/jJAAH+6SXps=";
};
format = "other";
@ -99,6 +99,7 @@ python.pkgs.pythonPackages.buildPythonApplication rec {
attrs
autobahn
automat
bleach
blessed
celery
certifi
@ -128,6 +129,7 @@ python.pkgs.pythonPackages.buildPythonApplication rec {
httptools
humanfriendly
hyperlink
imagehash
idna
imap-tools
img2pdf
@ -138,6 +140,7 @@ python.pkgs.pythonPackages.buildPythonApplication rec {
langdetect
lxml
msgpack
nltk
numpy
ocrmypdf
pathvalidate

View file

@ -2,32 +2,37 @@
, jre, binaryen
, llvmPackages
, symlinkJoin, makeWrapper, substituteAll
, mkYarnModules
, buildNpmPackage
, emscripten
}:
stdenv.mkDerivation rec {
pname = "emscripten";
version = "3.1.17";
version = "3.1.24";
llvmEnv = symlinkJoin {
name = "emscripten-llvm-${version}";
paths = with llvmPackages; [ clang-unwrapped clang-unwrapped.lib lld llvm ];
};
nodeModules = mkYarnModules {
nodeModules = buildNpmPackage {
name = "emscripten-node-modules-${version}";
inherit pname version;
# it is vitally important the the package.json has name and version fields
packageJSON = ./package.json;
yarnLock = ./yarn.lock;
yarnNix = ./yarn.nix;
inherit pname version src;
npmDepsHash = "sha256-ejuHR2BpAUStWjuvQuGE6ko4byF4GBl6FJBshxlknQk=";
dontBuild = true;
# Copy node_modules directly.
installPhase = ''
cp -r node_modules $out/
'';
};
src = fetchFromGitHub {
owner = "emscripten-core";
repo = "emscripten";
sha256 = "sha256-xOt9Znn5kCcieRHnXk794rMpgTzoR8pIKBXv/GeKcuw=";
sha256 = "sha256-1jW6ThxK6dThOO90l4Mc5yehVF3tI4HWipBWZAOztrk=";
rev = version;
};
@ -54,7 +59,7 @@ stdenv.mkDerivation rec {
sed -i "/^def check_sanity/a\\ return" tools/shared.py
# required for wasm2c
ln -s ${nodeModules}/node_modules .
ln -s ${nodeModules} node_modules
echo "EMSCRIPTEN_ROOT = '$out/share/emscripten'" > .emscripten
echo "LLVM_ROOT = '${llvmEnv}/bin'" >> .emscripten
@ -86,7 +91,7 @@ stdenv.mkDerivation rec {
mkdir -p $out/bin
for b in em++ em-config emar embuilder.py emcc emcmake emconfigure emmake emranlib emrun emscons emsize; do
makeWrapper $appdir/$b $out/bin/$b \
--set NODE_PATH ${nodeModules}/node_modules \
--set NODE_PATH ${nodeModules} \
--set EM_EXCLUSIVE_CACHE_ACCESS 1 \
--set PYTHON ${python3}/bin/python
done
@ -109,9 +114,9 @@ stdenv.mkDerivation rec {
popd
export PYTHON=${python3}/bin/python
export NODE_PATH=${nodeModules}/node_modules
export NODE_PATH=${nodeModules}
pushd $appdir
python tests/runner.py test_hello_world
python test/runner.py test_hello_world
popd
runHook postInstall
@ -128,7 +133,7 @@ stdenv.mkDerivation rec {
homepage = "https://github.com/emscripten-core/emscripten";
description = "An LLVM-to-JavaScript Compiler";
platforms = platforms.all;
maintainers = with maintainers; [ qknight matthewbauer ];
maintainers = with maintainers; [ qknight matthewbauer raitobezarius ];
license = licenses.ncsa;
};
}

View file

@ -1,21 +0,0 @@
{
"name": "emscripten",
"version": "3.1.17",
"private": true,
"devDependencies": {
"es-check": "^6.2.1",
"eslint": "^8.16.0",
"eslint-config-google": "^0.14.0",
"source-map": "0.7.3",
"ws": "^8.6.0"
},
"dependencies": {
"acorn": "^8.7.1",
"google-closure-compiler": "20220502.0.0",
"html-minifier-terser": "6.1.0",
"wasm2c": "1.0.0"
},
"scripts": {
"lint": "eslint ."
}
}

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

View file

@ -1 +1 @@
WGET_ARGS=( https://download.kde.org/stable/frameworks/5.101/ -A '*.tar.xz' )
WGET_ARGS=( https://download.kde.org/stable/frameworks/5.102/ -A '*.tar.xz' )

View file

@ -4,667 +4,667 @@
{
attica = {
version = "5.101.0";
version = "5.102.0";
src = fetchurl {
url = "${mirror}/stable/frameworks/5.101/attica-5.101.0.tar.xz";
sha256 = "076s378mija4x8dxq7j40qfhgjzpz3xw373bpiy5ig41c1lf7jvz";
name = "attica-5.101.0.tar.xz";
url = "${mirror}/stable/frameworks/5.102/attica-5.102.0.tar.xz";
sha256 = "1xph3l4if2vv2gdv9wjk0ls38g77jdzg3j81fyng8pvxsl32z1yv";
name = "attica-5.102.0.tar.xz";
};
};
baloo = {
version = "5.101.0";
version = "5.102.0";
src = fetchurl {
url = "${mirror}/stable/frameworks/5.101/baloo-5.101.0.tar.xz";
sha256 = "0g007apf53ql1my0nx25zlh8hg7mnzanhwppz7prmiynzk907b49";
name = "baloo-5.101.0.tar.xz";
url = "${mirror}/stable/frameworks/5.102/baloo-5.102.0.tar.xz";
sha256 = "0y6xc7dihzrcmpb75p8206832kz108l6irdzjv4m0pm0qdj3kb6x";
name = "baloo-5.102.0.tar.xz";
};
};
bluez-qt = {
version = "5.101.0";
version = "5.102.0";
src = fetchurl {
url = "${mirror}/stable/frameworks/5.101/bluez-qt-5.101.0.tar.xz";
sha256 = "00z2b8spn1m4wqgqlsiy2b58cbj57afrnqb5y4z7az9nchy3mphm";
name = "bluez-qt-5.101.0.tar.xz";
url = "${mirror}/stable/frameworks/5.102/bluez-qt-5.102.0.tar.xz";
sha256 = "0023nhlsniqkkzqjif22fk1hrlzpmigdnc8v4v5z0qf488b0pyf3";
name = "bluez-qt-5.102.0.tar.xz";
};
};
breeze-icons = {
version = "5.101.0";
version = "5.102.0";
src = fetchurl {
url = "${mirror}/stable/frameworks/5.101/breeze-icons-5.101.0.tar.xz";
sha256 = "1vqql123d9hdqrpa1f0mspbzpdk0wlgz4pdryc1d0q28l125jx7r";
name = "breeze-icons-5.101.0.tar.xz";
url = "${mirror}/stable/frameworks/5.102/breeze-icons-5.102.0.tar.xz";
sha256 = "1673fjh2q5388764rkkjs5v7jsswr71xdw582irwwz4zic5dkcrd";
name = "breeze-icons-5.102.0.tar.xz";
};
};
extra-cmake-modules = {
version = "5.101.0";
version = "5.102.0";
src = fetchurl {
url = "${mirror}/stable/frameworks/5.101/extra-cmake-modules-5.101.0.tar.xz";
sha256 = "1wn8kfdxmi89fd67m79vszfvmp8sgv4sz13c18wpsn6v209mck4c";
name = "extra-cmake-modules-5.101.0.tar.xz";
url = "${mirror}/stable/frameworks/5.102/extra-cmake-modules-5.102.0.tar.xz";
sha256 = "16vz555f5dmj0prpdr9sbla44gkdmzrlb1k51qmfwip0m2sswngj";
name = "extra-cmake-modules-5.102.0.tar.xz";
};
};
frameworkintegration = {
version = "5.101.0";
version = "5.102.0";
src = fetchurl {
url = "${mirror}/stable/frameworks/5.101/frameworkintegration-5.101.0.tar.xz";
sha256 = "0z5ldwzkpvdi3j18l826dm3mbjd3cmvjm8x3whwasydb81hvalkc";
name = "frameworkintegration-5.101.0.tar.xz";
url = "${mirror}/stable/frameworks/5.102/frameworkintegration-5.102.0.tar.xz";
sha256 = "00qr6n4h8fgm3vy64plj5762wyfanglh8r8qljvpk9jll74wm01d";
name = "frameworkintegration-5.102.0.tar.xz";
};
};
kactivities = {
version = "5.101.0";
version = "5.102.0";
src = fetchurl {
url = "${mirror}/stable/frameworks/5.101/kactivities-5.101.0.tar.xz";
sha256 = "1b41yyjljl47qwkqa3v1vkiq485d2xs3489apgdygkmd6m5v027p";
name = "kactivities-5.101.0.tar.xz";
url = "${mirror}/stable/frameworks/5.102/kactivities-5.102.0.tar.xz";
sha256 = "1kl1la4a4zagy7h1sf4l0wdwzg53v28z70sv73dwd6869dmmwygr";
name = "kactivities-5.102.0.tar.xz";
};
};
kactivities-stats = {
version = "5.101.0";
version = "5.102.0";
src = fetchurl {
url = "${mirror}/stable/frameworks/5.101/kactivities-stats-5.101.0.tar.xz";
sha256 = "119h2zz3gbyypkxsq9pq1gy8av9a4nyqax85lflfh51il2cq1cbp";
name = "kactivities-stats-5.101.0.tar.xz";
url = "${mirror}/stable/frameworks/5.102/kactivities-stats-5.102.0.tar.xz";
sha256 = "06v2qrd6g20028skh9dq2csw0nggf05qh8w8nz0zvx8q2q2fszhh";
name = "kactivities-stats-5.102.0.tar.xz";
};
};
kapidox = {
version = "5.101.0";
version = "5.102.0";
src = fetchurl {
url = "${mirror}/stable/frameworks/5.101/kapidox-5.101.0.tar.xz";
sha256 = "1y6z4bzawas3x825ln9yg5ks3zy39ymc9q404jyvn91s92dd0s5l";
name = "kapidox-5.101.0.tar.xz";
url = "${mirror}/stable/frameworks/5.102/kapidox-5.102.0.tar.xz";
sha256 = "0jalyq3nzms4j55kqxmqbjyvbrdw0k1142mjpds24xjb87wgj1rq";
name = "kapidox-5.102.0.tar.xz";
};
};
karchive = {
version = "5.101.0";
version = "5.102.0";
src = fetchurl {
url = "${mirror}/stable/frameworks/5.101/karchive-5.101.0.tar.xz";
sha256 = "1c59rwp93c2dybx52k5ww4rqssrbsj9g7snbl14gx8y43g3bdg2q";
name = "karchive-5.101.0.tar.xz";
url = "${mirror}/stable/frameworks/5.102/karchive-5.102.0.tar.xz";
sha256 = "0jnqrxpyfqwamq8gim270y5zg6l7inlplc50xdvig5dr0f4d1v20";
name = "karchive-5.102.0.tar.xz";
};
};
kauth = {
version = "5.101.0";
version = "5.102.0";
src = fetchurl {
url = "${mirror}/stable/frameworks/5.101/kauth-5.101.0.tar.xz";
sha256 = "153dfwkdwmdwh72r6b46nl13rg3lf7w8x5dapgcanrdjqgybkqyf";
name = "kauth-5.101.0.tar.xz";
url = "${mirror}/stable/frameworks/5.102/kauth-5.102.0.tar.xz";
sha256 = "093c1rzgw3rh8ka1q5hdxnn56mxzrrn7v3r3yinr6cy0xif0c4ld";
name = "kauth-5.102.0.tar.xz";
};
};
kbookmarks = {
version = "5.101.0";
version = "5.102.0";
src = fetchurl {
url = "${mirror}/stable/frameworks/5.101/kbookmarks-5.101.0.tar.xz";
sha256 = "0akh77rb1iqasbrzsy3509kic1k7c1046spxi6szfnlq6rx634ax";
name = "kbookmarks-5.101.0.tar.xz";
url = "${mirror}/stable/frameworks/5.102/kbookmarks-5.102.0.tar.xz";
sha256 = "1jg99z75bdkckahzia17ilbcfvnnamqg9ra0gx2lk1hlhzffi7ls";
name = "kbookmarks-5.102.0.tar.xz";
};
};
kcalendarcore = {
version = "5.101.0";
version = "5.102.0";
src = fetchurl {
url = "${mirror}/stable/frameworks/5.101/kcalendarcore-5.101.0.tar.xz";
sha256 = "170h3vqmjr9jl9vsfgh3y5lhqpyq5ap755wa8295s5fw4da8gjrs";
name = "kcalendarcore-5.101.0.tar.xz";
url = "${mirror}/stable/frameworks/5.102/kcalendarcore-5.102.0.tar.xz";
sha256 = "0s2m1d15py39nqagh1abprq6r099mdcci8sm28hp2c2cjwsr7xbk";
name = "kcalendarcore-5.102.0.tar.xz";
};
};
kcmutils = {
version = "5.101.0";
version = "5.102.0";
src = fetchurl {
url = "${mirror}/stable/frameworks/5.101/kcmutils-5.101.0.tar.xz";
sha256 = "0jy58fhxg2m4xh15dp84x6qava6gfhnbhkx19r6bsbkdc6jihkxb";
name = "kcmutils-5.101.0.tar.xz";
url = "${mirror}/stable/frameworks/5.102/kcmutils-5.102.0.tar.xz";
sha256 = "1fiszfpay1cnyqhfyhl4mpw9j8jmknfisxgwqvd61qfa622ryhxj";
name = "kcmutils-5.102.0.tar.xz";
};
};
kcodecs = {
version = "5.101.0";
version = "5.102.0";
src = fetchurl {
url = "${mirror}/stable/frameworks/5.101/kcodecs-5.101.0.tar.xz";
sha256 = "0fjj8rl0dhdg84gpvp7qfwmdyf047g9gg4v59magxyhw23r2ig4y";
name = "kcodecs-5.101.0.tar.xz";
url = "${mirror}/stable/frameworks/5.102/kcodecs-5.102.0.tar.xz";
sha256 = "15k3rlbjb2dji8n7bxb4d8nc7cs7618fhv8x5k50x6kbx867rx88";
name = "kcodecs-5.102.0.tar.xz";
};
};
kcompletion = {
version = "5.101.0";
version = "5.102.0";
src = fetchurl {
url = "${mirror}/stable/frameworks/5.101/kcompletion-5.101.0.tar.xz";
sha256 = "0c1zalk729b2pdmnc8b11068adjxh8mgszyn9s8rypr84fz6y3yq";
name = "kcompletion-5.101.0.tar.xz";
url = "${mirror}/stable/frameworks/5.102/kcompletion-5.102.0.tar.xz";
sha256 = "1jgr8an283l9d1zhl3cqpp66d90bscfv186jan01r8wan69awy2v";
name = "kcompletion-5.102.0.tar.xz";
};
};
kconfig = {
version = "5.101.0";
version = "5.102.0";
src = fetchurl {
url = "${mirror}/stable/frameworks/5.101/kconfig-5.101.0.tar.xz";
sha256 = "10skrdlg0qp8zdl9ldwgjp6gmdw0ghcd31gd9rgddrjnax47wx6a";
name = "kconfig-5.101.0.tar.xz";
url = "${mirror}/stable/frameworks/5.102/kconfig-5.102.0.tar.xz";
sha256 = "0cxc2gfank22yzflxdjr766xn4lr2ij9b5v23g9y1mwfsc2ng3pn";
name = "kconfig-5.102.0.tar.xz";
};
};
kconfigwidgets = {
version = "5.101.0";
version = "5.102.0";
src = fetchurl {
url = "${mirror}/stable/frameworks/5.101/kconfigwidgets-5.101.0.tar.xz";
sha256 = "1a3qhphi6hmzrdsalhkrax3g2sb63vr26fnvkxzkhf8spi4mlaq1";
name = "kconfigwidgets-5.101.0.tar.xz";
url = "${mirror}/stable/frameworks/5.102/kconfigwidgets-5.102.0.tar.xz";
sha256 = "19vs2ydlw76v44xyzhfgl70dw0qan2g5z3dq0hzljf5pkc8mhr6p";
name = "kconfigwidgets-5.102.0.tar.xz";
};
};
kcontacts = {
version = "5.101.0";
version = "5.102.0";
src = fetchurl {
url = "${mirror}/stable/frameworks/5.101/kcontacts-5.101.0.tar.xz";
sha256 = "1ynbf5q811mixg5rxrmn54ldgrwi4dv5mgdk1dljjg1wzhmrjk0x";
name = "kcontacts-5.101.0.tar.xz";
url = "${mirror}/stable/frameworks/5.102/kcontacts-5.102.0.tar.xz";
sha256 = "04xi28mk5i0l1jgvw0dbapjnk2c6j1y1fxldhhapg722kiw9566y";
name = "kcontacts-5.102.0.tar.xz";
};
};
kcoreaddons = {
version = "5.101.0";
version = "5.102.0";
src = fetchurl {
url = "${mirror}/stable/frameworks/5.101/kcoreaddons-5.101.0.tar.xz";
sha256 = "0ampf8cyy8r8pdm6xs872srak83k7i64nqdkpd9vvfvygz0lzdkp";
name = "kcoreaddons-5.101.0.tar.xz";
url = "${mirror}/stable/frameworks/5.102/kcoreaddons-5.102.0.tar.xz";
sha256 = "0j09lb6lbyv5hvvw57i0s5pmd24cywzv9ncrd1chnbk0jcczkqw2";
name = "kcoreaddons-5.102.0.tar.xz";
};
};
kcrash = {
version = "5.101.0";
version = "5.102.0";
src = fetchurl {
url = "${mirror}/stable/frameworks/5.101/kcrash-5.101.0.tar.xz";
sha256 = "0ylk1kdnhzh02990nnic1lbvby6kk4x9wvnfm20qd481vd8hklbd";
name = "kcrash-5.101.0.tar.xz";
url = "${mirror}/stable/frameworks/5.102/kcrash-5.102.0.tar.xz";
sha256 = "1i6jm2jgvqrm95dqdml0w0z9jc9j9n7h48y8zck7s3vaww1v7a67";
name = "kcrash-5.102.0.tar.xz";
};
};
kdav = {
version = "5.101.0";
version = "5.102.0";
src = fetchurl {
url = "${mirror}/stable/frameworks/5.101/kdav-5.101.0.tar.xz";
sha256 = "0gq105iw71yk2dggp7crhamiyrqwzgpdwbzdx8sbplhkm5lll21w";
name = "kdav-5.101.0.tar.xz";
url = "${mirror}/stable/frameworks/5.102/kdav-5.102.0.tar.xz";
sha256 = "0prr27mv7mhcynvkp9kzk7a1xiawilvafvzv3a6xdkr5w91741bf";
name = "kdav-5.102.0.tar.xz";
};
};
kdbusaddons = {
version = "5.101.0";
version = "5.102.0";
src = fetchurl {
url = "${mirror}/stable/frameworks/5.101/kdbusaddons-5.101.0.tar.xz";
sha256 = "0k0sng7dlafyyysf88bmb944i39rc5w9z1ksgdskzzir3chi4a8z";
name = "kdbusaddons-5.101.0.tar.xz";
url = "${mirror}/stable/frameworks/5.102/kdbusaddons-5.102.0.tar.xz";
sha256 = "1lqskn739bix5fp1s40gb7fch66pa9bmlwxzfg9lyqa5xmpfxfzi";
name = "kdbusaddons-5.102.0.tar.xz";
};
};
kdeclarative = {
version = "5.101.0";
version = "5.102.0";
src = fetchurl {
url = "${mirror}/stable/frameworks/5.101/kdeclarative-5.101.0.tar.xz";
sha256 = "0xp4mwad6b3rfyzjyq887jd70358lfd9m3njksbv6gf8z1d8y81a";
name = "kdeclarative-5.101.0.tar.xz";
url = "${mirror}/stable/frameworks/5.102/kdeclarative-5.102.0.tar.xz";
sha256 = "0xvwr1mjviwixbs2i8yh3b37ds4jcgvfrv2z366dld40shs65m0a";
name = "kdeclarative-5.102.0.tar.xz";
};
};
kded = {
version = "5.101.0";
version = "5.102.0";
src = fetchurl {
url = "${mirror}/stable/frameworks/5.101/kded-5.101.0.tar.xz";
sha256 = "1s9fpcmv90bpd15v4ci26976hp4kc3kd1dqasil3qpc1d0g87778";
name = "kded-5.101.0.tar.xz";
url = "${mirror}/stable/frameworks/5.102/kded-5.102.0.tar.xz";
sha256 = "0fjnb9wgpir91jwvl9dbnbvcf3c94l63vjs6ylvcd2w8lxasyxb7";
name = "kded-5.102.0.tar.xz";
};
};
kdelibs4support = {
version = "5.101.0";
version = "5.102.0";
src = fetchurl {
url = "${mirror}/stable/frameworks/5.101/portingAids/kdelibs4support-5.101.0.tar.xz";
sha256 = "1ajaxr00k4c9nk7psw2s33h9p63vdwd606lxnpgr271lwmhjmckm";
name = "kdelibs4support-5.101.0.tar.xz";
url = "${mirror}/stable/frameworks/5.102/portingAids/kdelibs4support-5.102.0.tar.xz";
sha256 = "0s823mcwg7l72aq55q8vh48pyp3apk3hm87jh9lc1ijg9frgcgk4";
name = "kdelibs4support-5.102.0.tar.xz";
};
};
kdesignerplugin = {
version = "5.101.0";
version = "5.102.0";
src = fetchurl {
url = "${mirror}/stable/frameworks/5.101/portingAids/kdesignerplugin-5.101.0.tar.xz";
sha256 = "11nrpqd5116apd6gy2xbhgnmnv6jrkismf4jjckskizkdnjvarvs";
name = "kdesignerplugin-5.101.0.tar.xz";
url = "${mirror}/stable/frameworks/5.102/portingAids/kdesignerplugin-5.102.0.tar.xz";
sha256 = "1nn2f0jln4qni2gaq0anchrv42fcf83m22ag9r3c4sy7vxr8irbc";
name = "kdesignerplugin-5.102.0.tar.xz";
};
};
kdesu = {
version = "5.101.0";
version = "5.102.0";
src = fetchurl {
url = "${mirror}/stable/frameworks/5.101/kdesu-5.101.0.tar.xz";
sha256 = "16g508642bx8wpj763sn5gph6h6xfcxmaqghb1lj2rvpgr5zzazi";
name = "kdesu-5.101.0.tar.xz";
url = "${mirror}/stable/frameworks/5.102/kdesu-5.102.0.tar.xz";
sha256 = "0ps88rvvzagpw4qp4nj86wknyhm9mmdlkhs0i7cywf53pdr37afh";
name = "kdesu-5.102.0.tar.xz";
};
};
kdewebkit = {
version = "5.101.0";
version = "5.102.0";
src = fetchurl {
url = "${mirror}/stable/frameworks/5.101/portingAids/kdewebkit-5.101.0.tar.xz";
sha256 = "1z54xbj6g77k9d6c6r4gza5nw2p8ql716hy4g266783cpa9grkk5";
name = "kdewebkit-5.101.0.tar.xz";
url = "${mirror}/stable/frameworks/5.102/portingAids/kdewebkit-5.102.0.tar.xz";
sha256 = "137j897admfp5d8g1x1g5x9h4nmsp6padi17nx4y350kriyhxkkv";
name = "kdewebkit-5.102.0.tar.xz";
};
};
kdnssd = {
version = "5.101.0";
version = "5.102.0";
src = fetchurl {
url = "${mirror}/stable/frameworks/5.101/kdnssd-5.101.0.tar.xz";
sha256 = "0jrzxp84h7i20bxj127m0vds2xjfcmb7c0rvgxrz3kc15ss9hmn6";
name = "kdnssd-5.101.0.tar.xz";
url = "${mirror}/stable/frameworks/5.102/kdnssd-5.102.0.tar.xz";
sha256 = "10awmh1j05hlg957ih7a1shapl6fgp1ma5b7qvbsp4fi5nh2k985";
name = "kdnssd-5.102.0.tar.xz";
};
};
kdoctools = {
version = "5.101.0";
version = "5.102.0";
src = fetchurl {
url = "${mirror}/stable/frameworks/5.101/kdoctools-5.101.0.tar.xz";
sha256 = "0izqbazcmqh6kwbd6c2fln8gz20kc03agb4fw45nx613s5nam031";
name = "kdoctools-5.101.0.tar.xz";
url = "${mirror}/stable/frameworks/5.102/kdoctools-5.102.0.tar.xz";
sha256 = "11g671mlva00fk7yfym5a73sfjdy0zkhh3a7h4zv0s763nnmkg13";
name = "kdoctools-5.102.0.tar.xz";
};
};
kemoticons = {
version = "5.101.0";
version = "5.102.0";
src = fetchurl {
url = "${mirror}/stable/frameworks/5.101/kemoticons-5.101.0.tar.xz";
sha256 = "0wkspxsp3mwp7as96cm9z5xzl30629prqdwal17d5y1zwn8xmbhw";
name = "kemoticons-5.101.0.tar.xz";
url = "${mirror}/stable/frameworks/5.102/kemoticons-5.102.0.tar.xz";
sha256 = "0arligy3i9qcqx9kapv692nz8dl1kimfv03392z3w3qqdwlpc9v5";
name = "kemoticons-5.102.0.tar.xz";
};
};
kfilemetadata = {
version = "5.101.0";
version = "5.102.0";
src = fetchurl {
url = "${mirror}/stable/frameworks/5.101/kfilemetadata-5.101.0.tar.xz";
sha256 = "12z8w9bsbngixs4a5hsbz8lg5ra1iqajvazhr3hq8hw1k2dyrn2k";
name = "kfilemetadata-5.101.0.tar.xz";
url = "${mirror}/stable/frameworks/5.102/kfilemetadata-5.102.0.tar.xz";
sha256 = "0kv33rqp3wshhmv2pdayggxlxal6ihjam2als3d9a5hm1h5kz2fc";
name = "kfilemetadata-5.102.0.tar.xz";
};
};
kglobalaccel = {
version = "5.101.0";
version = "5.102.0";
src = fetchurl {
url = "${mirror}/stable/frameworks/5.101/kglobalaccel-5.101.0.tar.xz";
sha256 = "0qk0gb2p668f2v10h9pdaf1klk1pl5rfbzd1klzyf5bbm0n240rj";
name = "kglobalaccel-5.101.0.tar.xz";
url = "${mirror}/stable/frameworks/5.102/kglobalaccel-5.102.0.tar.xz";
sha256 = "1l2mk7192wdb1qv62fqk9w1w6zbsmfr822gr5azg6nnzv4gdvadm";
name = "kglobalaccel-5.102.0.tar.xz";
};
};
kguiaddons = {
version = "5.101.0";
version = "5.102.0";
src = fetchurl {
url = "${mirror}/stable/frameworks/5.101/kguiaddons-5.101.0.tar.xz";
sha256 = "1dspqz3m6i5acpj7gnq97dl8gys343qiqn9sbvnv9drw7ccy954q";
name = "kguiaddons-5.101.0.tar.xz";
url = "${mirror}/stable/frameworks/5.102/kguiaddons-5.102.0.tar.xz";
sha256 = "1awgfnxmvghh70ldnpb1759wmy1i6rwsp3nggdj2ncdbdbgj04sv";
name = "kguiaddons-5.102.0.tar.xz";
};
};
kholidays = {
version = "5.101.0";
version = "5.102.0";
src = fetchurl {
url = "${mirror}/stable/frameworks/5.101/kholidays-5.101.0.tar.xz";
sha256 = "0wrl4qy08008mzn6dmvdi9jaj7zdiysws0h6d7j661ipaf02qwj4";
name = "kholidays-5.101.0.tar.xz";
url = "${mirror}/stable/frameworks/5.102/kholidays-5.102.0.tar.xz";
sha256 = "01rznsqxg7crljzy0lcal6r03qvfg8qrh0zigh26073rdn56g5d1";
name = "kholidays-5.102.0.tar.xz";
};
};
khtml = {
version = "5.101.0";
version = "5.102.0";
src = fetchurl {
url = "${mirror}/stable/frameworks/5.101/portingAids/khtml-5.101.0.tar.xz";
sha256 = "1xgwg8ml789pg1rgf9g3lr9xpfyh1wgiv57327kqxlpkrxxxl9l8";
name = "khtml-5.101.0.tar.xz";
url = "${mirror}/stable/frameworks/5.102/portingAids/khtml-5.102.0.tar.xz";
sha256 = "0az046m9n954cb70iqgx2isspbc0zb89fw97nhmw9szgfsliy8ab";
name = "khtml-5.102.0.tar.xz";
};
};
ki18n = {
version = "5.101.0";
version = "5.102.0";
src = fetchurl {
url = "${mirror}/stable/frameworks/5.101/ki18n-5.101.0.tar.xz";
sha256 = "0rggkwi99mmm1f4013qc07v0iqijq2qyx20rag07dm3rjaz305dz";
name = "ki18n-5.101.0.tar.xz";
url = "${mirror}/stable/frameworks/5.102/ki18n-5.102.0.tar.xz";
sha256 = "0iwz3jwaqlbja338gkq7sz7f8sw2rp37grkqpvx62274qflq1qww";
name = "ki18n-5.102.0.tar.xz";
};
};
kiconthemes = {
version = "5.101.0";
version = "5.102.0";
src = fetchurl {
url = "${mirror}/stable/frameworks/5.101/kiconthemes-5.101.0.tar.xz";
sha256 = "03ki3gl8fwvs6gmxlahpm4s9zc12ckv3yr9q9a7wz094759phmzq";
name = "kiconthemes-5.101.0.tar.xz";
url = "${mirror}/stable/frameworks/5.102/kiconthemes-5.102.0.tar.xz";
sha256 = "1q1fij7vn5b34k99cz4x58b5b8a04vrlkdckc8bxbbccpvy5xkyh";
name = "kiconthemes-5.102.0.tar.xz";
};
};
kidletime = {
version = "5.101.0";
version = "5.102.0";
src = fetchurl {
url = "${mirror}/stable/frameworks/5.101/kidletime-5.101.0.tar.xz";
sha256 = "10qjkwmqhxs1dzi5cm91j61i9m5prrwszg7i627v3sg0ck43vnnx";
name = "kidletime-5.101.0.tar.xz";
url = "${mirror}/stable/frameworks/5.102/kidletime-5.102.0.tar.xz";
sha256 = "159grvvw7zdp2hkiq20iz9zy8ilq6mfr3dmyq51pfq9741nd88qf";
name = "kidletime-5.102.0.tar.xz";
};
};
kimageformats = {
version = "5.101.0";
version = "5.102.0";
src = fetchurl {
url = "${mirror}/stable/frameworks/5.101/kimageformats-5.101.0.tar.xz";
sha256 = "0pv29i328g1x8ji36wzm6pkc0maqlh7wbv3dbq1pgygx85qv06df";
name = "kimageformats-5.101.0.tar.xz";
url = "${mirror}/stable/frameworks/5.102/kimageformats-5.102.0.tar.xz";
sha256 = "1d29dnjca0fgwi5ri6x4gqgsp8h4x5yidf7ifnpf7qyhwm22r2x6";
name = "kimageformats-5.102.0.tar.xz";
};
};
kinit = {
version = "5.101.0";
version = "5.102.0";
src = fetchurl {
url = "${mirror}/stable/frameworks/5.101/kinit-5.101.0.tar.xz";
sha256 = "1901fywkiiclyiwqi3pp9zwp188lllb77mms1zm51nw4ajldnhcf";
name = "kinit-5.101.0.tar.xz";
url = "${mirror}/stable/frameworks/5.102/kinit-5.102.0.tar.xz";
sha256 = "03pzsnis8lpsglry5iwkwfvn6fnn82rdxn6pac1cs0jhxwhg9fdc";
name = "kinit-5.102.0.tar.xz";
};
};
kio = {
version = "5.101.0";
version = "5.102.0";
src = fetchurl {
url = "${mirror}/stable/frameworks/5.101/kio-5.101.0.tar.xz";
sha256 = "0qycg75xmmzv363qxi9cpm42m6zlfa5caa47ll64hqmi2middr15";
name = "kio-5.101.0.tar.xz";
url = "${mirror}/stable/frameworks/5.102/kio-5.102.0.tar.xz";
sha256 = "0sviiq3axsxlf2nvxm0ccazbp7fw4dvky3dd87p82rng3v01g53a";
name = "kio-5.102.0.tar.xz";
};
};
kirigami2 = {
version = "5.101.0";
version = "5.102.0";
src = fetchurl {
url = "${mirror}/stable/frameworks/5.101/kirigami2-5.101.0.tar.xz";
sha256 = "1gcgaz0pspvdsxdhvl4sy3f95xgq51k8kd8c4x0k91pf52syw23n";
name = "kirigami2-5.101.0.tar.xz";
url = "${mirror}/stable/frameworks/5.102/kirigami2-5.102.0.tar.xz";
sha256 = "1ckmk0p0x5ymma3q5nkja3h6qz439qdxq0vchljg5yazxpiki08p";
name = "kirigami2-5.102.0.tar.xz";
};
};
kitemmodels = {
version = "5.101.0";
version = "5.102.0";
src = fetchurl {
url = "${mirror}/stable/frameworks/5.101/kitemmodels-5.101.0.tar.xz";
sha256 = "09plf2nc5frn5hq2r44fyqv5jg4ixg2y5bf5a3y5vj6hm1lf1bjs";
name = "kitemmodels-5.101.0.tar.xz";
url = "${mirror}/stable/frameworks/5.102/kitemmodels-5.102.0.tar.xz";
sha256 = "19iqg7lbln0h1fkssa2jj58c9j04lvwwbbzrq11ds1wzjvw77xsj";
name = "kitemmodels-5.102.0.tar.xz";
};
};
kitemviews = {
version = "5.101.0";
version = "5.102.0";
src = fetchurl {
url = "${mirror}/stable/frameworks/5.101/kitemviews-5.101.0.tar.xz";
sha256 = "1ccg87w0qw4j3wsdfpfip9axs5wvksbkvzzkrls19pidzzp5k8mc";
name = "kitemviews-5.101.0.tar.xz";
url = "${mirror}/stable/frameworks/5.102/kitemviews-5.102.0.tar.xz";
sha256 = "1c31qm059y7j0hskrbhm57qh6g2mm04qfjqbhili9qflp03fl69y";
name = "kitemviews-5.102.0.tar.xz";
};
};
kjobwidgets = {
version = "5.101.0";
version = "5.102.0";
src = fetchurl {
url = "${mirror}/stable/frameworks/5.101/kjobwidgets-5.101.0.tar.xz";
sha256 = "09lsrdcd4q79434q6i14h17p6wp6z5znbwgwl7g8ch5jpsw7bag1";
name = "kjobwidgets-5.101.0.tar.xz";
url = "${mirror}/stable/frameworks/5.102/kjobwidgets-5.102.0.tar.xz";
sha256 = "1r6xfi4hwfj9hn1hmgniyx17z3b1himh0fmc6bd45b89jzdvmqcl";
name = "kjobwidgets-5.102.0.tar.xz";
};
};
kjs = {
version = "5.101.0";
version = "5.102.0";
src = fetchurl {
url = "${mirror}/stable/frameworks/5.101/portingAids/kjs-5.101.0.tar.xz";
sha256 = "02ywcqvbipb98m39z22frs70dmzvsyfdymbn78y4vc8zg6lz9zpf";
name = "kjs-5.101.0.tar.xz";
url = "${mirror}/stable/frameworks/5.102/portingAids/kjs-5.102.0.tar.xz";
sha256 = "14w523kv5jfp4hzfbkawsf5pljahihj8jxkyjk5r707nrbnqzd3w";
name = "kjs-5.102.0.tar.xz";
};
};
kjsembed = {
version = "5.101.0";
version = "5.102.0";
src = fetchurl {
url = "${mirror}/stable/frameworks/5.101/portingAids/kjsembed-5.101.0.tar.xz";
sha256 = "00cc61shhcsxswsv62grw29askz4bds2a5zmiinr930s3grs6805";
name = "kjsembed-5.101.0.tar.xz";
url = "${mirror}/stable/frameworks/5.102/portingAids/kjsembed-5.102.0.tar.xz";
sha256 = "179gr69n0v39lbxi95w1ckk20505h4zqhxsqmy6fjs9vxc3zja5s";
name = "kjsembed-5.102.0.tar.xz";
};
};
kmediaplayer = {
version = "5.101.0";
version = "5.102.0";
src = fetchurl {
url = "${mirror}/stable/frameworks/5.101/portingAids/kmediaplayer-5.101.0.tar.xz";
sha256 = "08s1l2jy28djfzwk1lapcmsv1hq2fdx0ys6yj0xskhz9vcah4kh8";
name = "kmediaplayer-5.101.0.tar.xz";
url = "${mirror}/stable/frameworks/5.102/portingAids/kmediaplayer-5.102.0.tar.xz";
sha256 = "0kmy4x9bi29nnd8sixrcdk4bhffh880a2p6pdcfz6sqp1i7n8v6s";
name = "kmediaplayer-5.102.0.tar.xz";
};
};
knewstuff = {
version = "5.101.0";
version = "5.102.0";
src = fetchurl {
url = "${mirror}/stable/frameworks/5.101/knewstuff-5.101.0.tar.xz";
sha256 = "1xfgzz70kx9k90x0qxw6zhbgs405hfnmpcrzx4036vvnic5jn4g7";
name = "knewstuff-5.101.0.tar.xz";
url = "${mirror}/stable/frameworks/5.102/knewstuff-5.102.0.tar.xz";
sha256 = "127w4vfpinq7lm6ckszfisyw7mjzs9v6s2ga4xyd6y7lzyf33gz5";
name = "knewstuff-5.102.0.tar.xz";
};
};
knotifications = {
version = "5.101.0";
version = "5.102.0";
src = fetchurl {
url = "${mirror}/stable/frameworks/5.101/knotifications-5.101.0.tar.xz";
sha256 = "06sxzyf475q55gyfzan967fzhkgp0j0y0dkpxi1vw8idi3d6kjiq";
name = "knotifications-5.101.0.tar.xz";
url = "${mirror}/stable/frameworks/5.102/knotifications-5.102.0.tar.xz";
sha256 = "1y5sjzx9nyamalwl08y5krxajj0rvhhqgfdyavwkqbr30jpnmklk";
name = "knotifications-5.102.0.tar.xz";
};
};
knotifyconfig = {
version = "5.101.0";
version = "5.102.0";
src = fetchurl {
url = "${mirror}/stable/frameworks/5.101/knotifyconfig-5.101.0.tar.xz";
sha256 = "00gnhcjz8ghkp1wnw6whbgl1zkgn8ipiw631fiqv5fcaxva7l9aw";
name = "knotifyconfig-5.101.0.tar.xz";
url = "${mirror}/stable/frameworks/5.102/knotifyconfig-5.102.0.tar.xz";
sha256 = "05s8nzc7a01w3rxjb9jg7d98v4rd2dnncpmmv7ap209z10i09qh8";
name = "knotifyconfig-5.102.0.tar.xz";
};
};
kpackage = {
version = "5.101.0";
version = "5.102.0";
src = fetchurl {
url = "${mirror}/stable/frameworks/5.101/kpackage-5.101.0.tar.xz";
sha256 = "078zvifcgxdcll5c0wb147fhzvlcd7dkx1plrv8dqicgxdm5xnvc";
name = "kpackage-5.101.0.tar.xz";
url = "${mirror}/stable/frameworks/5.102/kpackage-5.102.0.tar.xz";
sha256 = "0mas3dq39lcij3nva0vmqrggm5b43grmmmszfjqd7hrmgpm93n43";
name = "kpackage-5.102.0.tar.xz";
};
};
kparts = {
version = "5.101.0";
version = "5.102.0";
src = fetchurl {
url = "${mirror}/stable/frameworks/5.101/kparts-5.101.0.tar.xz";
sha256 = "15sn8cr4qfrrgjcmcj91xjxrqxql2h943wv9y9v669qkkkvkgbns";
name = "kparts-5.101.0.tar.xz";
url = "${mirror}/stable/frameworks/5.102/kparts-5.102.0.tar.xz";
sha256 = "07vgc4fpwzkiylvlhniph7apggl563ma1hbnig9w1gkbwssyxjip";
name = "kparts-5.102.0.tar.xz";
};
};
kpeople = {
version = "5.101.0";
version = "5.102.0";
src = fetchurl {
url = "${mirror}/stable/frameworks/5.101/kpeople-5.101.0.tar.xz";
sha256 = "0wjskhnfkpqbyaam6pqszczb4g7kww5czw332jqac87y21il73fa";
name = "kpeople-5.101.0.tar.xz";
url = "${mirror}/stable/frameworks/5.102/kpeople-5.102.0.tar.xz";
sha256 = "1wi08waz3jv1bz6yf8hbnkyx3k80hdgnwvq0s3hsr3hsaal46dv2";
name = "kpeople-5.102.0.tar.xz";
};
};
kplotting = {
version = "5.101.0";
version = "5.102.0";
src = fetchurl {
url = "${mirror}/stable/frameworks/5.101/kplotting-5.101.0.tar.xz";
sha256 = "062hq67sr482c18d0l4wz3as22kqnwd75cfd58p1dpxfa4glvl7i";
name = "kplotting-5.101.0.tar.xz";
url = "${mirror}/stable/frameworks/5.102/kplotting-5.102.0.tar.xz";
sha256 = "1qq8m4wc9zz4s6l7myarryn2z7kj89rk51knjnq7kkibhbhwwsqy";
name = "kplotting-5.102.0.tar.xz";
};
};
kpty = {
version = "5.101.0";
version = "5.102.0";
src = fetchurl {
url = "${mirror}/stable/frameworks/5.101/kpty-5.101.0.tar.xz";
sha256 = "0q68c1da5lfjjswypyjq02n9hjbcmv0jjg28803cbxgk1lp2zvaf";
name = "kpty-5.101.0.tar.xz";
url = "${mirror}/stable/frameworks/5.102/kpty-5.102.0.tar.xz";
sha256 = "0f57fvljv7vmd89yyzbnj8lnafp495j3ial6dmh7wxfmbifw75gz";
name = "kpty-5.102.0.tar.xz";
};
};
kquickcharts = {
version = "5.101.0";
version = "5.102.0";
src = fetchurl {
url = "${mirror}/stable/frameworks/5.101/kquickcharts-5.101.0.tar.xz";
sha256 = "0fnpzsa5da9ivf8k5il2dc9v9c9gjv90mpras2bx701322a6rcgx";
name = "kquickcharts-5.101.0.tar.xz";
url = "${mirror}/stable/frameworks/5.102/kquickcharts-5.102.0.tar.xz";
sha256 = "0w4h3jz5ki38y54papms2j1z57b0vna7ac89diffbld04aigjr40";
name = "kquickcharts-5.102.0.tar.xz";
};
};
kross = {
version = "5.101.0";
version = "5.102.0";
src = fetchurl {
url = "${mirror}/stable/frameworks/5.101/portingAids/kross-5.101.0.tar.xz";
sha256 = "0ggcwzhpxg4ni1zfdw7r7zmdgbk45cydwfs16pqyl8038gdfgqny";
name = "kross-5.101.0.tar.xz";
url = "${mirror}/stable/frameworks/5.102/portingAids/kross-5.102.0.tar.xz";
sha256 = "0hdbz4ki5ccjpsi8m1x31v9k6c4kl63ak4pfnqllaxjlmpz6yyw3";
name = "kross-5.102.0.tar.xz";
};
};
krunner = {
version = "5.101.0";
version = "5.102.0";
src = fetchurl {
url = "${mirror}/stable/frameworks/5.101/krunner-5.101.0.tar.xz";
sha256 = "19jzhq27hnk17a70gnacgnqxc5m98q7sq4advm976xrlh8bcqpyj";
name = "krunner-5.101.0.tar.xz";
url = "${mirror}/stable/frameworks/5.102/krunner-5.102.0.tar.xz";
sha256 = "0gvbmb8j7pqah1lvjcykr6i00q8zhybnc6b7x0ajndlqll72qzff";
name = "krunner-5.102.0.tar.xz";
};
};
kservice = {
version = "5.101.0";
version = "5.102.0";
src = fetchurl {
url = "${mirror}/stable/frameworks/5.101/kservice-5.101.0.tar.xz";
sha256 = "1cn68y01vz2mkcqgsa17rg6pkcsadwn3nrgl348njqir4h08ffgw";
name = "kservice-5.101.0.tar.xz";
url = "${mirror}/stable/frameworks/5.102/kservice-5.102.0.tar.xz";
sha256 = "1plsv4bbmq7xq3y1cnqzvm85wjxp4ivlwnd4snis55ch2qpqcqvh";
name = "kservice-5.102.0.tar.xz";
};
};
ktexteditor = {
version = "5.101.0";
version = "5.102.0";
src = fetchurl {
url = "${mirror}/stable/frameworks/5.101/ktexteditor-5.101.0.tar.xz";
sha256 = "1i2xqn54j6944ccdpyb9gffgmjbwlbhqxmddsnqqwls1bw1x6z0h";
name = "ktexteditor-5.101.0.tar.xz";
url = "${mirror}/stable/frameworks/5.102/ktexteditor-5.102.0.tar.xz";
sha256 = "1kvki86rnkabrjbgkf7jbrj8lrn83nb4gw9j4h5jmyiam8ybkj2w";
name = "ktexteditor-5.102.0.tar.xz";
};
};
ktextwidgets = {
version = "5.101.0";
version = "5.102.0";
src = fetchurl {
url = "${mirror}/stable/frameworks/5.101/ktextwidgets-5.101.0.tar.xz";
sha256 = "0g64776cxyfvyfqmcfs0sa233vyii1ihccg0w3z97m9apm21d1z9";
name = "ktextwidgets-5.101.0.tar.xz";
url = "${mirror}/stable/frameworks/5.102/ktextwidgets-5.102.0.tar.xz";
sha256 = "1cipla0shfqpkx2gvvsxncsx4h9bc4zf078p1r9kf3v57pfdr0jc";
name = "ktextwidgets-5.102.0.tar.xz";
};
};
kunitconversion = {
version = "5.101.0";
version = "5.102.0";
src = fetchurl {
url = "${mirror}/stable/frameworks/5.101/kunitconversion-5.101.0.tar.xz";
sha256 = "0j4chsb3074nk3zz300r404mb2p4hnmwhlm88ixq9da9lm1c7ckv";
name = "kunitconversion-5.101.0.tar.xz";
url = "${mirror}/stable/frameworks/5.102/kunitconversion-5.102.0.tar.xz";
sha256 = "11wdgzw5rsd0zbi24c6qvyavlx3hrnifq89ajyx1dpfsm1n21md3";
name = "kunitconversion-5.102.0.tar.xz";
};
};
kwallet = {
version = "5.101.0";
version = "5.102.0";
src = fetchurl {
url = "${mirror}/stable/frameworks/5.101/kwallet-5.101.0.tar.xz";
sha256 = "0mslgayy7qkspkwj42s1x3c9x3zmp8n182vzijmkd0qb6px9f0fa";
name = "kwallet-5.101.0.tar.xz";
url = "${mirror}/stable/frameworks/5.102/kwallet-5.102.0.tar.xz";
sha256 = "10q9ckqybxdk14y7gy0fzaharz62axd965g17b0x18z9ln0g04d3";
name = "kwallet-5.102.0.tar.xz";
};
};
kwayland = {
version = "5.101.0";
version = "5.102.0";
src = fetchurl {
url = "${mirror}/stable/frameworks/5.101/kwayland-5.101.0.tar.xz";
sha256 = "0qzg5nsm8zhmzv4wssv91pahbn4c5vnq2a7hknzkalm1s9p8dh9r";
name = "kwayland-5.101.0.tar.xz";
url = "${mirror}/stable/frameworks/5.102/kwayland-5.102.0.tar.xz";
sha256 = "1k5109pjl4fdsiqw4dzg8pl8nw4y59gbgf8cn6w2wp1b42kz89l6";
name = "kwayland-5.102.0.tar.xz";
};
};
kwidgetsaddons = {
version = "5.101.0";
version = "5.102.0";
src = fetchurl {
url = "${mirror}/stable/frameworks/5.101/kwidgetsaddons-5.101.0.tar.xz";
sha256 = "08rq126lr6bfrq6k29nhpcpmigb5wnwp5w2bjvdjjhz90crkv4bq";
name = "kwidgetsaddons-5.101.0.tar.xz";
url = "${mirror}/stable/frameworks/5.102/kwidgetsaddons-5.102.0.tar.xz";
sha256 = "1lnnn8y2d72qpiq76mr9vk4037a6g59x1cjyvrpxymb3k0i9gmji";
name = "kwidgetsaddons-5.102.0.tar.xz";
};
};
kwindowsystem = {
version = "5.101.0";
version = "5.102.0";
src = fetchurl {
url = "${mirror}/stable/frameworks/5.101/kwindowsystem-5.101.0.tar.xz";
sha256 = "1f1f600n9dk9zxz77h81kr8q3sm8n59h9njp8lxfc2rj7rrrwszg";
name = "kwindowsystem-5.101.0.tar.xz";
url = "${mirror}/stable/frameworks/5.102/kwindowsystem-5.102.0.tar.xz";
sha256 = "1qb8mb9mgqwdbrd2g4r7x7f2qfmdm54i77r2157n7by9j6j9n36r";
name = "kwindowsystem-5.102.0.tar.xz";
};
};
kxmlgui = {
version = "5.101.0";
version = "5.102.0";
src = fetchurl {
url = "${mirror}/stable/frameworks/5.101/kxmlgui-5.101.0.tar.xz";
sha256 = "0ylwzlf27qy8ihz6q21kfr5aflsaknwapysfgfbsagji26i5kmfm";
name = "kxmlgui-5.101.0.tar.xz";
url = "${mirror}/stable/frameworks/5.102/kxmlgui-5.102.0.tar.xz";
sha256 = "06hk6j8hsc05cy6d8i3a6xjxxzwrvshjb3ij6ji1yvcbmfs2rrrp";
name = "kxmlgui-5.102.0.tar.xz";
};
};
kxmlrpcclient = {
version = "5.101.0";
version = "5.102.0";
src = fetchurl {
url = "${mirror}/stable/frameworks/5.101/portingAids/kxmlrpcclient-5.101.0.tar.xz";
sha256 = "12p8g6ac70h55nyvr4a0f54zll4v5hjb0ix838q61srq2ky4qhd2";
name = "kxmlrpcclient-5.101.0.tar.xz";
url = "${mirror}/stable/frameworks/5.102/portingAids/kxmlrpcclient-5.102.0.tar.xz";
sha256 = "06bjxi3k9q3n261rsc0qil5zzf4lxqfizd9b0jny8ygvvjs9han4";
name = "kxmlrpcclient-5.102.0.tar.xz";
};
};
modemmanager-qt = {
version = "5.101.0";
version = "5.102.0";
src = fetchurl {
url = "${mirror}/stable/frameworks/5.101/modemmanager-qt-5.101.0.tar.xz";
sha256 = "01mhfz3f5s003gng86dxnp03r4jfqqp0hbj7qmrqf1vgxi6wx4y8";
name = "modemmanager-qt-5.101.0.tar.xz";
url = "${mirror}/stable/frameworks/5.102/modemmanager-qt-5.102.0.tar.xz";
sha256 = "195p7xmc8fzywna6j9ppaajqav27prjkl8slwggnsyjbh5bb3a76";
name = "modemmanager-qt-5.102.0.tar.xz";
};
};
networkmanager-qt = {
version = "5.101.0";
version = "5.102.0";
src = fetchurl {
url = "${mirror}/stable/frameworks/5.101/networkmanager-qt-5.101.0.tar.xz";
sha256 = "0xpb49gqg0acc5447ygk70bz8g260l9qwyy1y4cdm6rra9ag9j8s";
name = "networkmanager-qt-5.101.0.tar.xz";
url = "${mirror}/stable/frameworks/5.102/networkmanager-qt-5.102.0.tar.xz";
sha256 = "12q7fkhpidyyxa4byb88vsrkahgr4l2x3s9zylknb60cy86qpp69";
name = "networkmanager-qt-5.102.0.tar.xz";
};
};
oxygen-icons5 = {
version = "5.101.0";
version = "5.102.0";
src = fetchurl {
url = "${mirror}/stable/frameworks/5.101/oxygen-icons5-5.101.0.tar.xz";
sha256 = "0bs1h95c8c5ppk4ik3l2j5mbikmqqv2xrrvw9kpn7sgmxn69n6kl";
name = "oxygen-icons5-5.101.0.tar.xz";
url = "${mirror}/stable/frameworks/5.102/oxygen-icons5-5.102.0.tar.xz";
sha256 = "05mwijl3day3vm8gs085cg3g04xi1x8ypwd87nc80jw7pz1m7mf4";
name = "oxygen-icons5-5.102.0.tar.xz";
};
};
plasma-framework = {
version = "5.101.0";
version = "5.102.0";
src = fetchurl {
url = "${mirror}/stable/frameworks/5.101/plasma-framework-5.101.0.tar.xz";
sha256 = "1ynpbra7wpbn0i1hqj9jwqm0z3r5cc83zlmgm9i2mw6mszgb9jba";
name = "plasma-framework-5.101.0.tar.xz";
url = "${mirror}/stable/frameworks/5.102/plasma-framework-5.102.0.tar.xz";
sha256 = "14al5i40bpjw73wk0by9ca88s26hbns7msa4kil6zinzh8pvbkfk";
name = "plasma-framework-5.102.0.tar.xz";
};
};
prison = {
version = "5.101.0";
version = "5.102.0";
src = fetchurl {
url = "${mirror}/stable/frameworks/5.101/prison-5.101.0.tar.xz";
sha256 = "1xndnmlfir2kj28zb0dbl789vw0zlm9a5gz0fhp5c94gs62cykxm";
name = "prison-5.101.0.tar.xz";
url = "${mirror}/stable/frameworks/5.102/prison-5.102.0.tar.xz";
sha256 = "1iw14s4hf2ap8qfrj7kf5xicsz78b4lwydg58ymv6z70jcl329nn";
name = "prison-5.102.0.tar.xz";
};
};
purpose = {
version = "5.101.0";
version = "5.102.0";
src = fetchurl {
url = "${mirror}/stable/frameworks/5.101/purpose-5.101.0.tar.xz";
sha256 = "05xiq805ppwsb3x16vslbcsm2bp3qn7390476p24lb4xz03sgbxk";
name = "purpose-5.101.0.tar.xz";
url = "${mirror}/stable/frameworks/5.102/purpose-5.102.0.tar.xz";
sha256 = "1a50nx7ldgx3gaqfh0k8lc6fx2ww7k07glg2qah5crwlwqxv70iw";
name = "purpose-5.102.0.tar.xz";
};
};
qqc2-desktop-style = {
version = "5.101.0";
version = "5.102.0";
src = fetchurl {
url = "${mirror}/stable/frameworks/5.101/qqc2-desktop-style-5.101.0.tar.xz";
sha256 = "01nzkaxrhv1bzxckbn844kd2rszv5ly08nhlj5c0lac6gs5fp751";
name = "qqc2-desktop-style-5.101.0.tar.xz";
url = "${mirror}/stable/frameworks/5.102/qqc2-desktop-style-5.102.0.tar.xz";
sha256 = "1c6mgfq4lznm69a5z6cycc17hlp5j96635rasksxgsnib7mvzwfq";
name = "qqc2-desktop-style-5.102.0.tar.xz";
};
};
solid = {
version = "5.101.0";
version = "5.102.0";
src = fetchurl {
url = "${mirror}/stable/frameworks/5.101/solid-5.101.0.tar.xz";
sha256 = "0yhs2jzhb366irm001kwxqxy6ifd2iqqlsdyz658a8g7bmfq4mvh";
name = "solid-5.101.0.tar.xz";
url = "${mirror}/stable/frameworks/5.102/solid-5.102.0.tar.xz";
sha256 = "0cmik9c9s3nhqd5imkj4m9510whsf55nmw85xjsrnlh0fk6d7qq6";
name = "solid-5.102.0.tar.xz";
};
};
sonnet = {
version = "5.101.0";
version = "5.102.0";
src = fetchurl {
url = "${mirror}/stable/frameworks/5.101/sonnet-5.101.0.tar.xz";
sha256 = "1l4fg110vhk4hn876yhv8wy3x913z8vpbs22cyjdkvlw4y5if0vb";
name = "sonnet-5.101.0.tar.xz";
url = "${mirror}/stable/frameworks/5.102/sonnet-5.102.0.tar.xz";
sha256 = "04dci8l0v3v3s8fgn39sk67dbz44ah8qj5yvl5zn1xpwcfvj3ahf";
name = "sonnet-5.102.0.tar.xz";
};
};
syndication = {
version = "5.101.0";
version = "5.102.0";
src = fetchurl {
url = "${mirror}/stable/frameworks/5.101/syndication-5.101.0.tar.xz";
sha256 = "1hg2hkfrp43s98sfk0d2cx6fp2vfs26c7mvs8qm9za0p7www61f0";
name = "syndication-5.101.0.tar.xz";
url = "${mirror}/stable/frameworks/5.102/syndication-5.102.0.tar.xz";
sha256 = "1w08fn43hr4mnff62kzay4rblxbg4p6fghcp5bnziaddl0jpr799";
name = "syndication-5.102.0.tar.xz";
};
};
syntax-highlighting = {
version = "5.101.0";
version = "5.102.0";
src = fetchurl {
url = "${mirror}/stable/frameworks/5.101/syntax-highlighting-5.101.0.tar.xz";
sha256 = "0fqx3zfb0sz5jq2j0kr2wc3dp3cvd99g8rmzh5pmkkkr7wixpk9i";
name = "syntax-highlighting-5.101.0.tar.xz";
url = "${mirror}/stable/frameworks/5.102/syntax-highlighting-5.102.0.tar.xz";
sha256 = "03zjf58y9n6fq3zhybp86fqh65vxk2i4pqrrv4lwm6wz9pj289rg";
name = "syntax-highlighting-5.102.0.tar.xz";
};
};
threadweaver = {
version = "5.101.0";
version = "5.102.0";
src = fetchurl {
url = "${mirror}/stable/frameworks/5.101/threadweaver-5.101.0.tar.xz";
sha256 = "1yzvcbzrgn97gy3ksyr42pp2r54vf1ddxmk7y9saj3sr532h7lag";
name = "threadweaver-5.101.0.tar.xz";
url = "${mirror}/stable/frameworks/5.102/threadweaver-5.102.0.tar.xz";
sha256 = "1jxn1mf7xz3j9lz69kgcrqam87fxzyxp250vzl9hrs26jvw7lagr";
name = "threadweaver-5.102.0.tar.xz";
};
};
}

View file

@ -65,7 +65,7 @@ stdenv.mkDerivation rec {
# https://gitlab.freedesktop.org/glvnd/libglvnd#libglvnd:
changelog = "https://gitlab.freedesktop.org/glvnd/libglvnd/-/tags/v${version}";
license = with licenses; [ mit bsd1 bsd3 gpl3Only asl20 ];
platforms = platforms.linux ++ platforms.darwin;
platforms = platforms.unix;
maintainers = with maintainers; [ primeos ];
};
}

View file

@ -2,13 +2,13 @@
stdenv.mkDerivation rec {
pname = "sqlitecpp";
version = "3.2.0";
version = "3.2.1";
src = fetchFromGitHub {
owner = "SRombauts";
repo = pname;
rev = version;
sha256 = "sha256-Z1c2lQZ0UltcIf9dTnumZPhke4uEmsjg/Ygppvx3kxY=";
sha256 = "sha256-uVvlW95UD1dhJfNuKgo7XvbdXrHl95OhaEpWfn0RH/E=";
};
nativeBuildInputs = [ cmake ];

View file

@ -1,7 +1,6 @@
{ lib
, buildPythonPackage
, fetchFromGitHub
, bokeh
, emcee
, matplotlib
, netcdf4
@ -19,6 +18,7 @@
, xarray
, xarray-einstats
, zarr
, ffmpeg
, h5py
, jaxlib
, torchvision
@ -56,9 +56,9 @@ buildPythonPackage rec {
];
checkInputs = [
bokeh
cloudpickle
emcee
ffmpeg
h5py
jax
jaxlib

View file

@ -2,6 +2,7 @@
, buildPythonPackage
, chainer
, fetchFromGitHub
, hatchling
, jupyter
, keras
#, mxnet
@ -17,7 +18,7 @@
buildPythonPackage rec {
pname = "einops";
version = "0.6.0";
format = "setuptools";
format = "pyproject";
disabled = pythonOlder "3.7";
@ -28,6 +29,8 @@ buildPythonPackage rec {
hash = "sha256-/bnp8IhDxp8EB/PoW5Dz+7rOru0/odOrts84aq4qyJw=";
};
nativeBuildInputs = [ hatchling ];
checkInputs = [
chainer
jupyter

View file

@ -0,0 +1,39 @@
{ lib
, buildPythonPackage
, fetchFromGitHub
, pytestCheckHook
, numpy
, six
, scipy
, pillow
, pywavelets
}:
buildPythonPackage rec {
pname = "imagehash";
version = "4.3.1";
src = fetchFromGitHub {
owner = "JohannesBuchner";
repo = "imagehash";
rev = "v${version}";
hash = "sha256-Tsq10TZqnzNTuO4goKjdylN4Eqy7DNbHLjr5n3+nidM=";
};
propagatedBuildInputs = [
numpy
six
scipy
pillow
pywavelets
];
checkInputs = [ pytestCheckHook ];
meta = with lib; {
description = "A Python Perceptual Image Hashing Module";
homepage = "https://github.com/JohannesBuchner/imagehash";
license = licenses.bsd2;
maintainers = with maintainers; [ e1mo ];
};
}

View file

@ -24,7 +24,7 @@ buildPythonPackage rec {
# Ninja is not detected by setuptools for some reason even though it's present:
postPatch = ''
substituteInPlace "setup.cfg" --replace "ninja" ""
substituteInPlace "setup.cfg" --replace " ninja" ""
'';
preBuild = ''

View file

@ -11,9 +11,9 @@
, nbconvert
, nbformat
, nest-asyncio
, notebook
, notebook-shim
, prometheus-client
, pytest-jupyter
, pytest-tornasync
, pytestCheckHook
, pythonOlder
@ -47,7 +47,6 @@ buildPythonPackage rec {
nbconvert
nbformat
nest-asyncio
notebook
notebook-shim
prometheus-client
pyzmq
@ -58,6 +57,7 @@ buildPythonPackage rec {
];
checkInputs = [
pytest-jupyter
pytest-tornasync
pytestCheckHook
];

View file

@ -1,6 +1,7 @@
{ lib
, buildPythonPackage
, fetchFromGitHub
, hatchling
, jupyter-server
, pytestCheckHook
, pytest-tornasync
@ -9,6 +10,7 @@
buildPythonPackage rec {
pname = "notebook-shim";
version = "0.2.2";
format = "pyproject";
src = fetchFromGitHub {
owner = "jupyter";
@ -17,6 +19,7 @@ buildPythonPackage rec {
sha256 = "sha256-/z4vXSBqeL2wSqJ0kFNgU0TSGUGByhxHNya8EO55+7s=";
};
nativeBuildInputs = [ hatchling ];
propagatedBuildInputs = [ jupyter-server ];
preCheck = ''

View file

@ -1,12 +1,10 @@
{ stdenv
, lib
, buildPythonPackage
, pythonOlder
, fetchPypi
, argon2-cffi
, nose
, nose_warnings_filters
, glibcLocales
, isPy3k
, mock
, jinja2
, tornado
@ -15,6 +13,7 @@
, jupyter-core
, jupyter-client
, nbformat
, nbclassic
, nbconvert
, ipykernel
, terminado
@ -28,7 +27,7 @@
buildPythonPackage rec {
pname = "notebook";
version = "6.5.2";
disabled = !isPy3k;
disabled = pythonOlder "3.7";
src = fetchPypi {
inherit pname version;
@ -37,20 +36,15 @@ buildPythonPackage rec {
LC_ALL = "en_US.utf8";
checkInputs = [ nose pytestCheckHook glibcLocales ]
++ (if isPy3k then [ nose_warnings_filters ] else [ mock ]);
checkInputs = [ pytestCheckHook glibcLocales ];
propagatedBuildInputs = [
jinja2 tornado ipython_genutils traitlets jupyter-core send2trash
jupyter-client nbformat nbconvert ipykernel terminado requests pexpect
jupyter-client nbformat nbclassic
nbconvert ipykernel terminado requests pexpect
prometheus-client argon2-cffi
];
# disable warning_filters
preCheck = lib.optionalString (!isPy3k) ''
echo "" > setup.cfg
'';
postPatch = ''
# Remove selenium tests
rm -rf notebook/tests/selenium

View file

@ -0,0 +1,69 @@
{ lib
, buildPythonPackage
, fetchFromGitHub
, pythonOlder
, pytestCheckHook
, beartype
, invoke
, mypy
, numpy
, pandas
, feedparser
, typeguard
}:
buildPythonPackage rec {
pname = "nptyping";
version = "2.4.1";
format = "setuptools";
disabled = pythonOlder "3.7";
src = fetchFromGitHub {
owner = "ramonhagenaars";
repo = pname;
rev = "refs/tags/v${version}";
hash = "sha256-jV2MVMP/tlYN3djoViemGaJyzREoOJJamwG97WFhIvc=";
};
propagatedBuildInputs = [
numpy
];
checkInputs = [
beartype
feedparser
invoke
mypy
pandas
pytestCheckHook
typeguard
];
disabledTests = [
# tries to download data
"test_pandas_stubs_fork_is_synchronized"
];
disabledTestPaths = [
# missing pyright import:
"tests/test_pyright.py"
# can't find mypy stubs for pandas:
"tests/test_mypy.py"
"tests/pandas_/test_mypy_dataframe.py"
# tries to build wheel of package, broken/unnecessary under Nix:
"tests/test_wheel.py"
];
pythonImportsCheck = [
"nptyping"
];
meta = with lib; {
description = "Type hints for numpy";
homepage = "https://github.com/ramonhagenaars/nptyping";
changelog = "https://github.com/ramonhagenaars/nptyping/blob/v${version}/HISTORY.md";
license = licenses.mit;
maintainers = with maintainers; [ bcdarwin ];
};
}

View file

@ -0,0 +1,28 @@
{ buildPythonPackage
, fetchPypi
, lib
, unittestCheckHook
}:
buildPythonPackage rec {
pname = "opencensus-context";
version = "0.1.3";
src = fetchPypi {
inherit pname version;
sha256 = "sha256-oDEIw8ENjIC7Xd9cih8DMWH6YZcqmRf5ubOhhRfwCIw=";
};
pythonNamespaces = [
"opencensus.common"
];
doCheck = false; # No tests in archive
meta = with lib; {
description = "OpenCensus Runtime Context";
homepage = "https://github.com/census-instrumentation/opencensus-python/tree/master/context/opencensus-context";
license = licenses.asl20;
maintainers = with maintainers; [ billhuang ];
};
}

View file

@ -1,24 +1,11 @@
{ buildPythonPackage
, fetchPypi
, lib
, python
, unittestCheckHook
, google-api-core
, opencensus-context
}:
let
opencensus-context = buildPythonPackage rec {
pname = "opencensus-context";
version = "0.1.3";
checkInputs = [ unittestCheckHook ];
src = fetchPypi {
inherit pname version;
sha256 = "sha256-oDEIw8ENjIC7Xd9cih8DMWH6YZcqmRf5ubOhhRfwCIw=";
};
};
in
buildPythonPackage rec {
pname = "opencensus";
version = "0.11.0";
@ -28,23 +15,20 @@ buildPythonPackage rec {
sha256 = "sha256-AmIWq6uJ2U2FBJLz3GWVAFXsT4QRX6bHvq/7pEo0bkI=";
};
buildInputs = [
# opencensus-context is embedded in opencensus
propagatedBuildInputs = [
google-api-core
opencensus-context
];
propagatedBuildInputs = [
google-api-core
pythonNamespaces = [
"opencensus.common"
];
postInstall = ''
ln -sf ${opencensus-context}/${python.sitePackages}/opencensus/common/runtime_context \
$out/${python.sitePackages}/opencensus/common/
'';
doCheck = false; # No tests in sdist
checkInputs = [ unittestCheckHook ];
pythonImportsCheck = [ "opencensus" ];
pythonImportsCheck = [
"opencensus.common"
];
meta = with lib; {
description = "A stats collection and distributed tracing framework";

View file

@ -2,12 +2,12 @@
, fftw, fftwFloat, fftwLongDouble, numpy, scipy, cython, dask }:
buildPythonPackage rec {
version = "0.13.0";
version = "0.13.1";
pname = "pyFFTW";
src = fetchPypi {
inherit pname version;
sha256 = "da85102405c0bd95d57eb19e99b01a0729d8406cb204c3900894b873784253da";
sha256 = "sha256-CRVekKDG0MHy0fNmgYCn3pX7n4P+9RN6ES+wWXjocyA=";
};
preConfigure = ''

View file

@ -1,8 +1,10 @@
{ lib
, buildPythonPackage
, fetchFromGitHub
, numpy
, pythonOlder
, numpy
, nptyping
, typing-extensions
}:
buildPythonPackage rec {
@ -21,6 +23,8 @@ buildPythonPackage rec {
propagatedBuildInputs = [
numpy
nptyping
typing-extensions
];
pythonImportsCheck = [

View file

@ -22,7 +22,7 @@ let
if stdenv.isDarwin then [ mesa_drivers.dev ] else [ ocl-icd ];
in buildPythonPackage rec {
pname = "pyopencl";
version = "2022.3";
version = "2022.3.1";
checkInputs = [ pytest ];
buildInputs = [ opencl-headers pybind11 ] ++ os-specific-buildInputs;
@ -40,7 +40,7 @@ in buildPythonPackage rec {
src = fetchPypi {
inherit pname version;
sha256 = "sha256-I21tqnSc7dunBpw9Q622tlHkDC1INSdb/uaDGc0DgI0=";
sha256 = "sha256-Sj2w/mG1zclSZ1Jt7r1xp+HXlWlNSw/idh8GMLzKNiE=";
};
# py.test is not needed during runtime, so remove it from `install_requires`

View file

@ -46,10 +46,6 @@ buildPythonPackage rec {
"xarray_einstats"
];
pytestFlagsArray = [
"src/xarray_einstats/tests/"
];
meta = with lib; {
description = "Stats, linear algebra and einops for xarray";
homepage = "https://github.com/arviz-devs/xarray-einstats";

View file

@ -2,11 +2,11 @@
buildGraalvmNativeImage rec {
pname = "clj-kondo";
version = "2022.12.10";
version = "2023.01.12";
src = fetchurl {
url = "https://github.com/clj-kondo/${pname}/releases/download/v${version}/${pname}-${version}-standalone.jar";
sha256 = "sha256-7o2VFPNhV+GLcUJCJWcHwcp1mCa1q9KG98nUP4/6MeU=";
sha256 = "sha256-ANxM87lCrUbsc6OYCoyZCPAoQ08z7Vwduloi0PSfZbo=";
};
extraNativeImageBuildArgs = [

View file

@ -7,16 +7,16 @@
rustPlatform.buildRustPackage rec {
pname = "ruff";
version = "0.0.220";
version = "0.0.221";
src = fetchFromGitHub {
owner = "charliermarsh";
repo = pname;
rev = "v${version}";
sha256 = "sha256-yOErc17Mm4eDrJkT7U+6CTGI67xM2u8XA+MwbxO9AUg=";
sha256 = "sha256-46pIudC1jUIOgqJ/5+Xcn01y4Qq1VBKyW36Dyzrz7uA=";
};
cargoSha256 = "sha256-3Ez7X6XmobFO4WslE0lhCcT/Qu4FCaMcDPvoADNlfjM=";
cargoSha256 = "sha256-OxzOZyzAXuK08BAzRIepPc7sllZtlynWvHjvJAHWG5Q=";
buildInputs = lib.optionals stdenv.isDarwin [
darwin.apple_sdk.frameworks.CoreServices

View file

@ -23,7 +23,8 @@ substituteAll {
# run some a simple installer tests to make sure nixos-rebuild still works for them
passthru.tests = {
simple-installer-test = nixosTests.installer.simple;
simple-installer = nixosTests.installer.simple;
specialisations = nixosTests.nixos-rebuild-specialisations;
};
meta = {

View file

@ -28,6 +28,7 @@ rollback=
upgrade=
upgrade_all=
profile=/nix/var/nix/profiles/system
specialisation=
buildHost=
targetHost=
remoteSudo=
@ -107,6 +108,14 @@ while [ "$#" -gt 0 ]; do
fi
shift 1
;;
--specialisation|-c)
if [ -z "$1" ]; then
log "$0: --specialisation requires an argument"
exit 1
fi
specialisation="$1"
shift 1
;;
--build-host|h)
buildHost="$1"
shift 1
@ -365,6 +374,10 @@ if [[ -n $flake ]]; then
fi
fi
if [[ ! -z "$specialisation" && ! "$action" = switch && ! "$action" = test ]]; then
log "error: --specialisation can only be used with switch and test"
exit 1
fi
tmpDir=$(mktemp -t -d nixos-rebuild.XXXXXX)
@ -559,7 +572,18 @@ fi
# If we're not just building, then make the new configuration the boot
# default and/or activate it now.
if [[ "$action" = switch || "$action" = boot || "$action" = test || "$action" = dry-activate ]]; then
if ! targetHostCmd "$pathToConfig/bin/switch-to-configuration" "$action"; then
if [[ -z "$specialisation" ]]; then
cmd="$pathToConfig/bin/switch-to-configuration"
else
cmd="$pathToConfig/specialisation/$specialisation/bin/switch-to-configuration"
if [[ ! -f "$cmd" ]]; then
log "error: specialisation not found: $specialisation"
exit 1
fi
fi
if ! targetHostCmd "$cmd" "$action"; then
log "warning: error(s) occurred while switching to the new configuration"
exit 1
fi

View file

@ -2,10 +2,10 @@
roundcubePlugin rec {
pname = "carddav";
version = "4.4.4";
version = "4.4.6";
src = fetchzip {
url = "https://github.com/mstilkerich/rcmcarddav/releases/download/v${version}/carddav-v${version}.tar.gz";
sha256 = "1l35z2k43q8cflhzmk43kifrskhcvygrsvbbzs2s8hhjhsz2b3aq";
sha256 = "10s4idf5kmkap47fn3i4jkr3mbipibdjcqds8p6p906nr45ngs57";
};
}

View file

@ -10,8 +10,12 @@ stdenv.mkDerivation rec {
};
installPhase = ''
runHook preInstall
mkdir -p $out/share/wordpress
cp -r . $out/share/wordpress
runHook postInstall
'';
passthru.tests = {

View file

@ -9,7 +9,7 @@
stdenv.mkDerivation rec {
pname = "xlogo";
version = "1.0.5";
version = "1.0.6";
src = fetchFromGitLab {
domain = "gitlab.freedesktop.org";
@ -17,7 +17,7 @@ stdenv.mkDerivation rec {
owner = "app";
repo = "xlogo";
rev = "refs/tags/xlogo-${version}";
hash = "sha256-AyNFzRZtbCKkGacBCaGZZkLRTAGq5TrA2OXGqwoKq24=";
hash = "sha256-S7Z2nGQt07YBHlbA1u/+rvDwtzT381e90jieoiun+E8=";
};
nativeBuildInputs = [ xorg-autoconf autoreconfHook pkg-config ];

View file

@ -0,0 +1,46 @@
{ stdenv, fetchFromGitHub, lib, elfutils, vendorCertFile ? null
, defaultLoader ? null }:
let
inherit (stdenv.targetPlatform) system;
throwSystem = throw "Unsupported system: ${system}";
target = {
x86_64-linux = "shimx64.efi";
aarch64-linux = "shimaa64.efi";
}.${system} or throwSystem;
in stdenv.mkDerivation rec {
pname = "shim";
version = "15.7";
src = fetchFromGitHub {
owner = "rhboot";
repo = pname;
rev = version;
hash = "sha256-CfUuq0anbXlCVo9r9NIb76oJzDqaPMIhL9cmXK1iqXo=";
fetchSubmodules = true;
};
buildInputs = [ elfutils ];
NIX_CFLAGS_COMPILE = [ "-I${toString elfutils.dev}/include" ];
makeFlags =
lib.optional (vendorCertFile != null) "VENDOR_CERT_FILE=${vendorCertFile}"
++ lib.optional (defaultLoader != null) "DEFAULT_LOADER=${defaultLoader}"
++ [ target ];
installPhase = ''
mkdir -p $out/share/shim
install -m 644 ${target} $out/share/shim/
'';
meta = with lib; {
description = "UEFI shim loader";
homepage = "https://github.com/rhboot/shim";
license = licenses.bsd1;
platforms = [ "x86_64-linux" "aarch64-linux" ];
maintainers = with maintainers; [ baloo raitobezarius ];
};
}

View file

@ -2,19 +2,19 @@
rustPlatform.buildRustPackage rec {
pname = "xcp";
version = "0.9.1";
version = "0.9.3";
src = fetchFromGitHub {
owner = "tarka";
repo = pname;
rev = "v${version}";
sha256 = "sha256-fzwlDYjNCWAnMrRSGvR+OwL+TEs4eRsjqF7uPjui3T0=";
sha256 = "sha256-Gn6qTfQjHuQUcfaZN48qCI7u8E7PtJAZlyrPqyjop5U=";
};
# no such file or directory errors
doCheck = false;
cargoSha256 = "sha256-c3jUG/ysTzV/67HmGgFSM0KWKlQKo6iqOCQT4E9QA9k=";
cargoHash = "sha256-3vz92fHjLUMWVBpq71hxqqU0WiHdLbOst9vr8zbo6/U=";
meta = with lib; {
description = "An extended cp(1)";

View file

@ -0,0 +1,46 @@
{ lib
, python3Packages
, fetchFromGitHub
}:
python3Packages.buildPythonApplication {
pname = "arubaotp-seed-extractor";
version = "unstable-22-12-2022";
src = fetchFromGitHub {
owner = "andry08";
repo = "ArubaOTP-seed-extractor";
rev = "534f78bb71594d5806fd2d7a8eade109b0e1d402";
hash = "sha256-1pv88OClskQOPtJaP7g0duXMe/X3M6Tk+ituZ9UxoIE=";
};
format = "other";
nativeBuildInputs = [
python3Packages.wrapPython
];
pythonPath = with python3Packages; [
pycryptodome
pyotp
qrcode
requests
];
installPhase = ''
libdir="$out/lib/${python3Packages.python.libPrefix}/site-packages/arubaotp-seed-extractor"
mkdir -p "$libdir"
cp scripts/* "$libdir"
chmod +x "$libdir/main.py"
wrapPythonProgramsIn "$libdir" "$pythonPath"
mkdir -p $out/bin
ln -s "$libdir/main.py" $out/bin/arubaotp-seed-extractor
'';
meta = with lib; {
homepage = "https://github.com/andry08/ArubaOTP-seed-extractor";
description = "Extract TOTP seed instead of using ArubaOTP app";
license = licenses.mit;
maintainers = with maintainers; [ fgaz ];
};
}

View file

@ -1321,6 +1321,8 @@ with pkgs;
arch-install-scripts = callPackage ../tools/misc/arch-install-scripts {};
arubaotp-seed-extractor = callPackage ../tools/security/arubaotp-seed-extractor { };
audible-cli = callPackage ../tools/misc/audible-cli { };
auditwheel = callPackage ../tools/package-management/auditwheel { };
@ -11661,6 +11663,8 @@ with pkgs;
shiv = with python3Packages; toPythonApplication shiv;
shim-unsigned = callPackage ../tools/misc/shim { };
shocco = callPackage ../tools/text/shocco { };
shopify-cli = callPackage ../development/web/shopify-cli { };

View file

@ -4525,6 +4525,8 @@ self: super: with self; {
imagecorruptions = callPackage ../development/python-modules/imagecorruptions { };
imagehash = callPackage ../development/python-modules/imagehash { };
imageio = callPackage ../development/python-modules/imageio { };
imageio-ffmpeg = callPackage ../development/python-modules/imageio-ffmpeg { };
@ -6415,6 +6417,8 @@ self: super: with self; {
nplusone = callPackage ../development/python-modules/nplusone { };
nptyping = callPackage ../development/python-modules/nptyping { };
npyscreen = callPackage ../development/python-modules/npyscreen { };
nsapi = callPackage ../development/python-modules/nsapi { };
@ -6585,6 +6589,8 @@ self: super: with self; {
opencensus = callPackage ../development/python-modules/opencensus { };
opencensus-context = callPackage ../development/python-modules/opencensus-context { };
opencv3 = toPythonModule (pkgs.opencv3.override {
enablePython = true;
pythonPackages = self;