Merge master into haskell-updates

This commit is contained in:
github-actions[bot]
2023-12-30 00:12:20 +00:00
committed by GitHub
163 changed files with 1629 additions and 910 deletions
+13
View File
@@ -17160,6 +17160,12 @@
fingerprint = "897E 6BE3 0345 B43D CADD 05B7 290F CF08 1AED B3EC";
}];
};
smrehman = {
name = "Syed Moiz Ur Rehman";
email = "smrehman@proton.me";
github = "syedmoizurrehman";
githubId = 17818950;
};
sna = {
email = "abouzahra.9@wright.edu";
github = "S-NA";
@@ -18988,6 +18994,13 @@
matrix = "@ty:tjll.net";
name = "Tyler Langlois";
};
tylervick = {
email = "nix@tylervick.com";
github = "tylervick";
githubId = 1395852;
name = "Tyler Vick";
matrix = "@tylervick:matrix.org";
};
tymscar = {
email = "oscar@tymscar.com";
github = "tymscar";
@@ -28,6 +28,8 @@ In addition to numerous new and upgraded packages, this release has the followin
- [rspamd-trainer](https://gitlab.com/onlime/rspamd-trainer), script triggered by a helper which reads mails from a specific mail inbox and feeds them into rspamd for spam/ham training.
- [ollama](https://ollama.ai), server for running large language models locally.
- [Anki Sync Server](https://docs.ankiweb.net/sync-server.html), the official sync server built into recent versions of Anki. Available as [services.anki-sync-server](#opt-services.anki-sync-server.enable).
The pre-existing [services.ankisyncd](#opt-services.ankisyncd.enable) has been marked deprecated and will be dropped after 24.05 due to lack of maintenance of the anki-sync-server softwares.
@@ -74,6 +76,17 @@ The pre-existing [services.ankisyncd](#opt-services.ankisyncd.enable) has been m
`CONFIG_FILE_NAME` includes `bpf_pinning`, `ematch_map`, `group`, `nl_protos`, `rt_dsfield`, `rt_protos`, `rt_realms`, `rt_scopes`, and `rt_tables`.
- The `systemd.oomd` module behavior is changed as:
- Raise ManagedOOMMemoryPressureLimit from 50% to 80%. This should make systemd-oomd kill things less often, and fix issues like [this](https://pagure.io/fedora-workstation/issue/358).
Reference: [commit](https://src.fedoraproject.org/rpms/systemd/c/806c95e1c70af18f81d499b24cd7acfa4c36ffd6?branch=806c95e1c70af18f81d499b24cd7acfa4c36ffd6)
- Remove swap policy. This helps prevent killing processes when user's swap is small.
- Expand the memory pressure policy to system.slice, user-.slice, and all user owned slices. Reference: [commit](https://src.fedoraproject.org/rpms/systemd/c/7665e1796f915dedbf8e014f0a78f4f576d609bb)
- `systemd.oomd.enableUserServices` is renamed to `systemd.oomd.enableUserSlices`.
## Other Notable Changes {#sec-release-24.05-notable-changes}
<!-- To avoid merge conflicts, consider adding your item at an arbitrary place in the list instead. -->
@@ -89,8 +102,23 @@ The pre-existing [services.ankisyncd](#opt-services.ankisyncd.enable) has been m
The `nimPackages` and `nim2Packages` sets have been removed.
See https://nixos.org/manual/nixpkgs/unstable#nim for more information.
- [Portunus](https://github.com/majewsky/portunus) has been updated to 2.0.
This version of Portunus supports strong password hashes, but the legacy hash SHA-256 is also still supported to ensure a smooth migration of existing user accounts.
After upgrading, follow the instructions on the [upstream release notes](https://github.com/majewsky/portunus/releases/tag/v2.0.0) to upgrade all user accounts to strong password hashes.
Support for weak password hashes will be removed in NixOS 24.11.
- `libass` now uses the native CoreText backend on Darwin, which may fix subtitle rendering issues with `mpv`, `ffmpeg`, etc.
- The following options of the Nextcloud module were moved into [`services.nextcloud.extraOptions`](#opt-services.nextcloud.extraOptions) and renamed to match the name from Nextcloud's `config.php`:
- `logLevel` -> [`loglevel`](#opt-services.nextcloud.extraOptions.loglevel),
- `logType` -> [`log_type`](#opt-services.nextcloud.extraOptions.log_type),
- `defaultPhoneRegion` -> [`default_phone_region`](#opt-services.nextcloud.extraOptions.default_phone_region),
- `overwriteProtocol` -> [`overwriteprotocol`](#opt-services.nextcloud.extraOptions.overwriteprotocol),
- `skeletonDirectory` -> [`skeletondirectory`](#opt-services.nextcloud.extraOptions.skeletondirectory),
- `globalProfiles` -> [`profile.enabled`](#opt-services.nextcloud.extraOptions._profile.enabled_),
- `extraTrustedDomains` -> [`trusted_domains`](#opt-services.nextcloud.extraOptions.trusted_domains) and
- `trustedProxies` -> [`trusted_proxies`](#opt-services.nextcloud.extraOptions.trusted_proxies).
- The Yama LSM is now enabled by default in the kernel, which prevents ptracing
non-child processes. This means you will not be able to attach gdb to an
existing process, but will need to start that process from gdb (so it is a
+55 -46
View File
@@ -226,18 +226,6 @@ in
"ldap.conf" = ldapConfig;
};
system.activationScripts = mkIf (!cfg.daemon.enable) {
ldap = stringAfter [ "etc" "groups" "users" ] ''
if test -f "${cfg.bind.passwordFile}" ; then
umask 0077
conf="$(mktemp)"
printf 'bindpw %s\n' "$(cat ${cfg.bind.passwordFile})" |
cat ${ldapConfig.source} - >"$conf"
mv -fT "$conf" /etc/ldap.conf
fi
'';
};
system.nssModules = mkIf cfg.nsswitch (singleton (
if cfg.daemon.enable then nss_pam_ldapd else nss_ldap
));
@@ -258,42 +246,63 @@ in
};
};
systemd.services = mkIf cfg.daemon.enable {
nslcd = {
wantedBy = [ "multi-user.target" ];
preStart = ''
umask 0077
conf="$(mktemp)"
{
cat ${nslcdConfig}
test -z '${cfg.bind.distinguishedName}' -o ! -f '${cfg.bind.passwordFile}' ||
printf 'bindpw %s\n' "$(cat '${cfg.bind.passwordFile}')"
test -z '${cfg.daemon.rootpwmoddn}' -o ! -f '${cfg.daemon.rootpwmodpwFile}' ||
printf 'rootpwmodpw %s\n' "$(cat '${cfg.daemon.rootpwmodpwFile}')"
} >"$conf"
mv -fT "$conf" /run/nslcd/nslcd.conf
'';
restartTriggers = [
nslcdConfig
cfg.bind.passwordFile
cfg.daemon.rootpwmodpwFile
];
serviceConfig = {
ExecStart = "${nslcdWrapped}/bin/nslcd";
Type = "forking";
Restart = "always";
User = "nslcd";
Group = "nslcd";
RuntimeDirectory = [ "nslcd" ];
PIDFile = "/run/nslcd/nslcd.pid";
AmbientCapabilities = "CAP_SYS_RESOURCE";
systemd.services = mkMerge [
(mkIf (!cfg.daemon.enable) {
ldap-password = {
wantedBy = [ "sysinit.target" ];
before = [ "sysinit.target" "shutdown.target" ];
conflicts = [ "shutdown.target" ];
unitConfig.DefaultDependencies = false;
serviceConfig.Type = "oneshot";
serviceConfig.RemainAfterExit = true;
script = ''
if test -f "${cfg.bind.passwordFile}" ; then
umask 0077
conf="$(mktemp)"
printf 'bindpw %s\n' "$(cat ${cfg.bind.passwordFile})" |
cat ${ldapConfig.source} - >"$conf"
mv -fT "$conf" /etc/ldap.conf
fi
'';
};
};
})
};
(mkIf cfg.daemon.enable {
nslcd = {
wantedBy = [ "multi-user.target" ];
preStart = ''
umask 0077
conf="$(mktemp)"
{
cat ${nslcdConfig}
test -z '${cfg.bind.distinguishedName}' -o ! -f '${cfg.bind.passwordFile}' ||
printf 'bindpw %s\n' "$(cat '${cfg.bind.passwordFile}')"
test -z '${cfg.daemon.rootpwmoddn}' -o ! -f '${cfg.daemon.rootpwmodpwFile}' ||
printf 'rootpwmodpw %s\n' "$(cat '${cfg.daemon.rootpwmodpwFile}')"
} >"$conf"
mv -fT "$conf" /run/nslcd/nslcd.conf
'';
restartTriggers = [
nslcdConfig
cfg.bind.passwordFile
cfg.daemon.rootpwmodpwFile
];
serviceConfig = {
ExecStart = "${nslcdWrapped}/bin/nslcd";
Type = "forking";
Restart = "always";
User = "nslcd";
Group = "nslcd";
RuntimeDirectory = [ "nslcd" ];
PIDFile = "/run/nslcd/nslcd.pid";
AmbientCapabilities = "CAP_SYS_RESOURCE";
};
};
})
];
};
-1
View File
@@ -12,7 +12,6 @@ let
mkDefault
mkIf
mkOption
stringAfter
types
;
+4 -3
View File
@@ -39,9 +39,10 @@ in
hardware.firmware = [ package.fw ];
system.activationScripts.setup-amdgpu-pro = ''
ln -sfn ${package}/opt/amdgpu{,-pro} /run
'';
systemd.tmpfiles.settings.amdgpu-pro = {
"/run/amdgpu"."L+".argument = "${package}/opt/amdgpu";
"/run/amdgpu-pro"."L+".argument = "${package}/opt/amdgpu-pro";
};
system.requiredKernelConfig = with config.lib.kernelConfig; [
(isYes "DEVICE_PRIVATE")
+2 -1
View File
@@ -231,7 +231,8 @@ in
# even if you've upgraded your system to a new NixOS release.
#
# This value does NOT affect the Nixpkgs version your packages and OS are pulled from,
# so changing it will NOT upgrade your system.
# so changing it will NOT upgrade your system - see https://nixos.org/manual/nixos/stable/#sec-upgrading for how
# to actually do that.
#
# This value being lower than the current NixOS release does NOT mean your system is
# out of date, out of support, or vulnerable.
+1
View File
@@ -723,6 +723,7 @@
./services/misc/nzbget.nix
./services/misc/nzbhydra2.nix
./services/misc/octoprint.nix
./services/misc/ollama.nix
./services/misc/ombi.nix
./services/misc/osrm.nix
./services/misc/owncast.nix
+1 -1
View File
@@ -18,7 +18,7 @@ in
settings = mkOption {
type = settingsFormat.type;
default = {};
default = { };
description = lib.mdDoc ''
System-wide configuration for GameMode (/etc/gamemode.ini).
See gamemoded(8) man page for available settings.
+24 -16
View File
@@ -181,25 +181,33 @@ in {
'';
};
system.activationScripts.ipa = stringAfter ["etc"] ''
# libcurl requires a hard copy of the certificate
if ! ${pkgs.diffutils}/bin/diff ${cfg.certificate} /etc/ipa/ca.crt > /dev/null 2>&1; then
rm -f /etc/ipa/ca.crt
cp ${cfg.certificate} /etc/ipa/ca.crt
fi
systemd.services."ipa-activation" = {
wantedBy = [ "sysinit.target" ];
before = [ "sysinit.target" "shutdown.target" ];
conflicts = [ "shutdown.target" ];
unitConfig.DefaultDependencies = false;
serviceConfig.Type = "oneshot";
serviceConfig.RemainAfterExit = true;
script = ''
# libcurl requires a hard copy of the certificate
if ! ${pkgs.diffutils}/bin/diff ${cfg.certificate} /etc/ipa/ca.crt > /dev/null 2>&1; then
rm -f /etc/ipa/ca.crt
cp ${cfg.certificate} /etc/ipa/ca.crt
fi
if [ ! -f /etc/krb5.keytab ]; then
cat <<EOF
if [ ! -f /etc/krb5.keytab ]; then
cat <<EOF
In order to complete FreeIPA integration, please join the domain by completing the following steps:
1. Authenticate as an IPA user authorized to join new hosts, e.g. kinit admin@${cfg.realm}
2. Join the domain and obtain the keytab file: ipa-join
3. Install the keytab file: sudo install -m 600 krb5.keytab /etc/
4. Restart sssd systemd service: sudo systemctl restart sssd
In order to complete FreeIPA integration, please join the domain by completing the following steps:
1. Authenticate as an IPA user authorized to join new hosts, e.g. kinit admin@${cfg.realm}
2. Join the domain and obtain the keytab file: ipa-join
3. Install the keytab file: sudo install -m 600 krb5.keytab /etc/
4. Restart sssd systemd service: sudo systemctl restart sssd
EOF
fi
'';
EOF
fi
'';
};
services.sssd.config = ''
[domain/${cfg.domain}]
@@ -280,6 +280,7 @@ in
wantedBy = [ "sysinit.target" ];
before = [ "sysinit.target" "shutdown.target" ];
conflicts = [ "shutdown.target" ];
after = [ "systemd-sysusers.service" ];
unitConfig.DefaultDependencies = false;
unitConfig.RequiresMountsFor = [ "/nix/store" "/run/wrappers" ];
serviceConfig.Type = "oneshot";
+9 -14
View File
@@ -143,20 +143,15 @@ let
};
# Paths listed in ReadWritePaths must exist before service is started
mkActivationScript = name: cfg:
mkTmpfiles = name: cfg:
let
install = "install -o ${cfg.user} -g ${cfg.group}";
in
nameValuePair "borgbackup-job-${name}" (stringAfter [ "users" ] (''
# Ensure that the home directory already exists
# We can't assert createHome == true because that's not the case for root
cd "${config.users.users.${cfg.user}.home}"
# Create each directory separately to prevent root owned parent dirs
${install} -d .config .config/borg
${install} -d .cache .cache/borg
'' + optionalString (isLocalPath cfg.repo && !cfg.removableDevice) ''
${install} -d ${escapeShellArg cfg.repo}
''));
settings = { inherit (cfg) user group; };
in lib.nameValuePair "borgbackup-job-${name}" ({
"${config.users.users."${cfg.user}".home}/.config/borg".d = settings;
"${config.users.users."${cfg.user}".home}/.cache/borg".d = settings;
} // optionalAttrs (isLocalPath cfg.repo && !cfg.removableDevice) {
"${cfg.repo}".d = settings;
});
mkPassAssertion = name: cfg: {
assertion = with cfg.encryption;
@@ -760,7 +755,7 @@ in {
++ mapAttrsToList mkSourceAssertions jobs
++ mapAttrsToList mkRemovableDeviceAssertions jobs;
system.activationScripts = mapAttrs' mkActivationScript jobs;
systemd.tmpfiles.settings = mapAttrs' mkTmpfiles jobs;
systemd.services =
# A job named "foo" is mapped to systemd.services.borgbackup-job-foo
+10 -4
View File
@@ -220,10 +220,16 @@ in
logcheck = {};
};
system.activationScripts.logcheck = ''
mkdir -m 700 -p /var/{lib,lock}/logcheck
chown ${cfg.user} /var/{lib,lock}/logcheck
'';
systemd.tmpfiles.settings.logcheck = {
"/var/lib/logcheck".d = {
mode = "700";
inherit (cfg) user;
};
"/var/lock/logcheck".d = {
mode = "700";
inherit (cfg) user;
};
};
services.cron.systemCronJobs =
let withTime = name: {timeArgs, ...}: timeArgs != null;
+42
View File
@@ -0,0 +1,42 @@
{ config, lib, pkgs, ... }: let
cfg = config.services.ollama;
in {
options = {
services.ollama = {
enable = lib.mkEnableOption (
lib.mdDoc "Server for local large language models"
);
package = lib.mkPackageOption pkgs "ollama" { };
};
};
config = lib.mkIf cfg.enable {
systemd = {
services.ollama = {
wantedBy = [ "multi-user.target" ];
description = "Server for local large language models";
after = [ "network.target" ];
environment = {
HOME = "%S/ollama";
OLLAMA_MODELS = "%S/ollama/models";
};
serviceConfig = {
ExecStart = "${lib.getExe cfg.package} serve";
WorkingDirectory = "/var/lib/ollama";
StateDirectory = [ "ollama" ];
DynamicUser = true;
};
};
};
environment.systemPackages = [ cfg.package ];
};
meta.maintainers = with lib.maintainers; [ onny ];
}
+3 -1
View File
@@ -102,7 +102,9 @@ in
ldap = {
package = mkOption {
type = types.package;
# needs openldap built with a libxcrypt that support crypt sha256 until https://github.com/majewsky/portunus/issues/2 is solved
# needs openldap built with a libxcrypt that support crypt sha256 until users have had time to migrate to newer hashes
# Ref: <https://github.com/majewsky/portunus/issues/2>
# TODO: remove in NixOS 24.11 (cf. same note on pkgs/servers/portunus/default.nix)
default = pkgs.openldap.override { libxcrypt = pkgs.libxcrypt-legacy; };
defaultText = lib.literalExpression "pkgs.openldap.override { libxcrypt = pkgs.libxcrypt-legacy; }";
description = lib.mdDoc "The OpenLDAP package to use.";
+18 -10
View File
@@ -137,16 +137,24 @@ in
message = "networking.enableIPv6 must be true for yggdrasil to work";
}];
system.activationScripts.yggdrasil = mkIf cfg.persistentKeys ''
if [ ! -e ${keysPath} ]
then
mkdir --mode=700 -p ${builtins.dirOf keysPath}
${binYggdrasil} -genconf -json \
| ${pkgs.jq}/bin/jq \
'to_entries|map(select(.key|endswith("Key")))|from_entries' \
> ${keysPath}
fi
'';
# This needs to be a separate service. The yggdrasil service fails if
# this is put into its preStart.
systemd.services.yggdrasil-persistent-keys = lib.mkIf cfg.persistentKeys {
wantedBy = [ "multi-user.target" ];
before = [ "yggdrasil.service" ];
serviceConfig.Type = "oneshot";
serviceConfig.RemainAfterExit = true;
script = ''
if [ ! -e ${keysPath} ]
then
mkdir --mode=700 -p ${builtins.dirOf keysPath}
${binYggdrasil} -genconf -json \
| ${pkgs.jq}/bin/jq \
'to_entries|map(select(.key|endswith("Key")))|from_entries' \
> ${keysPath}
fi
'';
};
systemd.services.yggdrasil = {
description = "Yggdrasil Network Service";
+10 -4
View File
@@ -45,19 +45,25 @@ in
systemd.services.munged = {
wantedBy = [ "multi-user.target" ];
after = [ "network.target" ];
wants = [
"network-online.target"
"time-sync.target"
];
after = [
"network-online.target"
"time-sync.target"
];
path = [ pkgs.munge pkgs.coreutils ];
serviceConfig = {
ExecStartPre = "+${pkgs.coreutils}/bin/chmod 0400 ${cfg.password}";
ExecStart = "${pkgs.munge}/bin/munged --syslog --key-file ${cfg.password}";
PIDFile = "/run/munge/munged.pid";
ExecReload = "${pkgs.coreutils}/bin/kill -HUP $MAINPID";
ExecStart = "${pkgs.munge}/bin/munged --foreground --key-file ${cfg.password}";
User = "munge";
Group = "munge";
StateDirectory = "munge";
StateDirectoryMode = "0711";
Restart = "on-failure";
RuntimeDirectory = "munge";
};
+1 -1
View File
@@ -51,7 +51,7 @@ to ensure that changes can be applied by changing the module's options.
In case the application serves multiple domains (those are checked with
[`$_SERVER['HTTP_HOST']`](https://www.php.net/manual/en/reserved.variables.server.php))
it's needed to add them to
[`services.nextcloud.config.extraTrustedDomains`](#opt-services.nextcloud.config.extraTrustedDomains).
[`services.nextcloud.extraOptions.trusted_domains`](#opt-services.nextcloud.extraOptions.trusted_domains).
Auto updates for Nextcloud apps can be enabled using
[`services.nextcloud.autoUpdateApps`](#opt-services.nextcloud.autoUpdateApps.enable).
+178 -144
View File
@@ -23,6 +23,43 @@ let
catch_workers_output = "yes";
};
appStores = {
# default apps bundled with pkgs.nextcloudXX, e.g. files, contacts
apps = {
enabled = true;
writable = false;
};
# apps installed via cfg.extraApps
nix-apps = {
enabled = cfg.extraApps != { };
linkTarget = pkgs.linkFarm "nix-apps"
(mapAttrsToList (name: path: { inherit name path; }) cfg.extraApps);
writable = false;
};
# apps installed via the app store.
store-apps = {
enabled = cfg.appstoreEnable == null || cfg.appstoreEnable;
linkTarget = "${cfg.home}/store-apps";
writable = true;
};
};
webroot = pkgs.runCommand
"${cfg.package.name or "nextcloud"}-with-apps"
{ }
''
mkdir $out
ln -sfv "${cfg.package}"/* "$out"
${concatStrings
(mapAttrsToList (name: store: optionalString (store.enabled && store?linkTarget) ''
if [ -e "$out"/${name} ]; then
echo "Didn't expect ${name} already in $out!"
exit 1
fi
ln -sfTv ${store.linkTarget} "$out"/${name}
'') appStores)}
'';
inherit (cfg) datadir;
phpPackage = cfg.phpPackage.buildEnv {
@@ -45,7 +82,7 @@ let
occ = pkgs.writeScriptBin "nextcloud-occ" ''
#! ${pkgs.runtimeShell}
cd ${cfg.package}
cd ${webroot}
sudo=exec
if [[ "$USER" != nextcloud ]]; then
sudo='exec /run/wrappers/bin/sudo -u nextcloud --preserve-env=NEXTCLOUD_CONFIG_DIR --preserve-env=OC_PASS'
@@ -94,6 +131,22 @@ in {
(mkRemovedOptionModule [ "services" "nextcloud" "disableImagemagick" ] ''
Use services.nextcloud.enableImagemagick instead.
'')
(mkRenamedOptionModule
[ "services" "nextcloud" "logLevel" ] [ "services" "nextcloud" "extraOptions" "loglevel" ])
(mkRenamedOptionModule
[ "services" "nextcloud" "logType" ] [ "services" "nextcloud" "extraOptions" "log_type" ])
(mkRenamedOptionModule
[ "services" "nextcloud" "config" "defaultPhoneRegion" ] [ "services" "nextcloud" "extraOptions" "default_phone_region" ])
(mkRenamedOptionModule
[ "services" "nextcloud" "config" "overwriteProtocol" ] [ "services" "nextcloud" "extraOptions" "overwriteprotocol" ])
(mkRenamedOptionModule
[ "services" "nextcloud" "skeletonDirectory" ] [ "services" "nextcloud" "extraOptions" "skeletondirectory" ])
(mkRenamedOptionModule
[ "services" "nextcloud" "config" "globalProfiles" ] [ "services" "nextcloud" "extraOptions" "profile.enabled" ])
(mkRenamedOptionModule
[ "services" "nextcloud" "config" "extraTrustedDomains" ] [ "services" "nextcloud" "extraOptions" "trusted_domains" ])
(mkRenamedOptionModule
[ "services" "nextcloud" "config" "trustedProxies" ] [ "services" "nextcloud" "extraOptions" "trusted_proxies" ])
];
options.services.nextcloud = {
@@ -157,32 +210,6 @@ in {
Set this to false to disable the installation of apps from the global appstore. App management is always enabled regardless of this setting.
'';
};
logLevel = mkOption {
type = types.ints.between 0 4;
default = 2;
description = lib.mdDoc ''
Log level value between 0 (DEBUG) and 4 (FATAL).
- 0 (debug): Log all activity.
- 1 (info): Log activity such as user logins and file activities, plus warnings, errors, and fatal errors.
- 2 (warn): Log successful operations, as well as warnings of potential problems, errors and fatal errors.
- 3 (error): Log failed operations and fatal errors.
- 4 (fatal): Log only fatal errors that cause the server to stop.
'';
};
logType = mkOption {
type = types.enum [ "errorlog" "file" "syslog" "systemd" ];
default = "syslog";
description = lib.mdDoc ''
Logging backend to use.
systemd requires the php-systemd package to be added to services.nextcloud.phpExtraExtensions.
See the [nextcloud documentation](https://docs.nextcloud.com/server/latest/admin_manual/configuration_server/logging_configuration.html) for details.
'';
};
https = mkOption {
type = types.bool;
default = false;
@@ -206,16 +233,6 @@ in {
'';
};
skeletonDirectory = mkOption {
default = "";
type = types.str;
description = lib.mdDoc ''
The directory where the skeleton files are located. These files will be
copied to the data directory of new users. Leave empty to not copy any
skeleton files.
'';
};
webfinger = mkOption {
type = types.bool;
default = false;
@@ -315,7 +332,6 @@ in {
};
config = {
dbtype = mkOption {
type = types.enum [ "sqlite" "pgsql" "mysql" ];
@@ -380,53 +396,6 @@ in {
setup of Nextcloud by the systemd service `nextcloud-setup.service`.
'';
};
extraTrustedDomains = mkOption {
type = types.listOf types.str;
default = [];
description = lib.mdDoc ''
Trusted domains from which the Nextcloud installation will be
accessible. You don't need to add
`services.nextcloud.hostname` here.
'';
};
trustedProxies = mkOption {
type = types.listOf types.str;
default = [];
description = lib.mdDoc ''
Trusted proxies to provide if the Nextcloud installation is being
proxied to secure against, e.g. spoofing.
'';
};
overwriteProtocol = mkOption {
type = types.nullOr (types.enum [ "http" "https" ]);
default = null;
example = "https";
description = lib.mdDoc ''
Force Nextcloud to always use HTTP or HTTPS i.e. for link generation.
Nextcloud uses the currently used protocol by default, but when
behind a reverse-proxy, it may use `http` for everything although
Nextcloud may be served via HTTPS.
'';
};
defaultPhoneRegion = mkOption {
default = null;
type = types.nullOr types.str;
example = "DE";
description = lib.mdDoc ''
An [ISO 3166-1](https://www.iso.org/iso-3166-country-codes.html)
country code which replaces automatic phone-number detection
without a country code.
As an example, with `DE` set as the default phone region,
the `+49` prefix can be omitted for phone numbers.
'';
};
objectstore = {
s3 = {
enable = mkEnableOption (lib.mdDoc ''
@@ -609,30 +578,109 @@ in {
The nextcloud-occ program preconfigured to target this Nextcloud instance.
'';
};
globalProfiles = mkEnableOption (lib.mdDoc "global profiles") // {
description = lib.mdDoc ''
Makes user-profiles globally available under `nextcloud.tld/u/user.name`.
Even though it's enabled by default in Nextcloud, it must be explicitly enabled
here because it has the side-effect that personal information is even accessible to
unauthenticated users by default.
By default, the following properties are set to Show to everyone
if this flag is enabled:
- About
- Full name
- Headline
- Organisation
- Profile picture
- Role
- Twitter
- Website
Only has an effect in Nextcloud 23 and later.
'';
};
extraOptions = mkOption {
type = jsonFormat.type;
type = types.submodule {
freeformType = jsonFormat.type;
options = {
loglevel = mkOption {
type = types.ints.between 0 4;
default = 2;
description = lib.mdDoc ''
Log level value between 0 (DEBUG) and 4 (FATAL).
- 0 (debug): Log all activity.
- 1 (info): Log activity such as user logins and file activities, plus warnings, errors, and fatal errors.
- 2 (warn): Log successful operations, as well as warnings of potential problems, errors and fatal errors.
- 3 (error): Log failed operations and fatal errors.
- 4 (fatal): Log only fatal errors that cause the server to stop.
'';
};
log_type = mkOption {
type = types.enum [ "errorlog" "file" "syslog" "systemd" ];
default = "syslog";
description = lib.mdDoc ''
Logging backend to use.
systemd requires the php-systemd package to be added to services.nextcloud.phpExtraExtensions.
See the [nextcloud documentation](https://docs.nextcloud.com/server/latest/admin_manual/configuration_server/logging_configuration.html) for details.
'';
};
skeletondirectory = mkOption {
default = "";
type = types.str;
description = lib.mdDoc ''
The directory where the skeleton files are located. These files will be
copied to the data directory of new users. Leave empty to not copy any
skeleton files.
'';
};
trusted_domains = mkOption {
type = types.listOf types.str;
default = [];
description = lib.mdDoc ''
Trusted domains, from which the nextcloud installation will be
accessible. You don't need to add
`services.nextcloud.hostname` here.
'';
};
trusted_proxies = mkOption {
type = types.listOf types.str;
default = [];
description = lib.mdDoc ''
Trusted proxies, to provide if the nextcloud installation is being
proxied to secure against e.g. spoofing.
'';
};
overwriteprotocol = mkOption {
type = types.enum [ "" "http" "https" ];
default = "";
example = "https";
description = lib.mdDoc ''
Force Nextcloud to always use HTTP or HTTPS i.e. for link generation.
Nextcloud uses the currently used protocol by default, but when
behind a reverse-proxy, it may use `http` for everything although
Nextcloud may be served via HTTPS.
'';
};
default_phone_region = mkOption {
default = "";
type = types.str;
example = "DE";
description = lib.mdDoc ''
An [ISO 3166-1](https://www.iso.org/iso-3166-country-codes.html)
country code which replaces automatic phone-number detection
without a country code.
As an example, with `DE` set as the default phone region,
the `+49` prefix can be omitted for phone numbers.
'';
};
"profile.enabled" = mkEnableOption (lib.mdDoc "global profiles") // {
description = lib.mdDoc ''
Makes user-profiles globally available under `nextcloud.tld/u/user.name`.
Even though it's enabled by default in Nextcloud, it must be explicitly enabled
here because it has the side-effect that personal information is even accessible to
unauthenticated users by default.
By default, the following properties are set to Show to everyone
if this flag is enabled:
- About
- Full name
- Headline
- Organisation
- Profile picture
- Role
- Twitter
- Website
Only has an effect in Nextcloud 23 and later.
'';
};
};
};
default = {};
description = lib.mdDoc ''
Extra options which should be appended to Nextcloud's config.php file.
@@ -766,11 +814,10 @@ in {
# When upgrading the Nextcloud package, Nextcloud can report errors such as
# "The files of the app [all apps in /var/lib/nextcloud/apps] were not replaced correctly"
# Restarting phpfpm on Nextcloud package update fixes these issues (but this is a workaround).
phpfpm-nextcloud.restartTriggers = [ cfg.package ];
phpfpm-nextcloud.restartTriggers = [ webroot ];
nextcloud-setup = let
c = cfg.config;
writePhpArray = a: "[${concatMapStringsSep "," (val: ''"${toString val}"'') a}]";
requiresReadSecretFunction = c.dbpassFile != null || c.objectstore.s3.enable;
objectstoreConfig = let s3 = c.objectstore.s3; in optionalString s3.enable ''
'objectstore' => [
@@ -800,6 +847,10 @@ in {
nextcloudGreaterOrEqualThan = req: versionAtLeast cfg.package.version req;
mkAppStoreConfig = name: { enabled, writable, ... }: optionalString enabled ''
[ 'path' => '${webroot}/${name}', 'url' => '/${name}', 'writable' => ${boolToString writable} ],
'';
overrideConfig = pkgs.writeText "nextcloud-config.php" ''
<?php
${optionalString requiresReadSecretFunction ''
@@ -828,17 +879,10 @@ in {
}
$CONFIG = [
'apps_paths' => [
${optionalString (cfg.extraApps != { }) "[ 'path' => '${cfg.home}/nix-apps', 'url' => '/nix-apps', 'writable' => false ],"}
[ 'path' => '${cfg.home}/apps', 'url' => '/apps', 'writable' => false ],
[ 'path' => '${cfg.home}/store-apps', 'url' => '/store-apps', 'writable' => true ],
${concatStrings (mapAttrsToList mkAppStoreConfig appStores)}
],
${optionalString (showAppStoreSetting) "'appstoreenabled' => ${renderedAppStoreSetting},"}
'datadirectory' => '${datadir}/data',
'skeletondirectory' => '${cfg.skeletonDirectory}',
${optionalString cfg.caching.apcu "'memcache.local' => '\\OC\\Memcache\\APCu',"}
'log_type' => '${cfg.logType}',
'loglevel' => '${builtins.toString cfg.logLevel}',
${optionalString (c.overwriteProtocol != null) "'overwriteprotocol' => '${c.overwriteProtocol}',"}
${optionalString (c.dbname != null) "'dbname' => '${c.dbname}',"}
${optionalString (c.dbhost != null) "'dbhost' => '${c.dbhost}',"}
${optionalString (c.dbport != null) "'dbport' => '${toString c.dbport}',"}
@@ -851,10 +895,6 @@ in {
''
}
'dbtype' => '${c.dbtype}',
'trusted_domains' => ${writePhpArray ([ cfg.hostName ] ++ c.extraTrustedDomains)},
'trusted_proxies' => ${writePhpArray (c.trustedProxies)},
${optionalString (c.defaultPhoneRegion != null) "'default_phone_region' => '${c.defaultPhoneRegion}',"}
${optionalString (nextcloudGreaterOrEqualThan "23") "'profile.enabled' => ${boolToString cfg.globalProfiles},"}
${objectstoreConfig}
];
@@ -907,7 +947,7 @@ in {
(i: v: ''
${occ}/bin/nextcloud-occ config:system:set trusted_domains \
${toString i} --value="${toString v}"
'') ([ cfg.hostName ] ++ cfg.config.extraTrustedDomains));
'') ([ cfg.hostName ] ++ cfg.extraOptions.trusted_domains));
in {
wantedBy = [ "multi-user.target" ];
@@ -935,17 +975,16 @@ in {
exit 1
fi
ln -sf ${cfg.package}/apps ${cfg.home}/
# Install extra apps
ln -sfT \
${pkgs.linkFarm "nix-apps"
(mapAttrsToList (name: path: { inherit name path; }) cfg.extraApps)} \
${cfg.home}/nix-apps
${concatMapStrings (name: ''
if [ -d "${cfg.home}"/${name} ]; then
echo "Cleaning up ${name}; these are now bundled in the webroot store-path!"
rm -r "${cfg.home}"/${name}
fi
'') [ "nix-apps" "apps" ]}
# create nextcloud directories.
# if the directories exist already with wrong permissions, we fix that
for dir in ${datadir}/config ${datadir}/data ${cfg.home}/store-apps ${cfg.home}/nix-apps; do
for dir in ${datadir}/config ${datadir}/data ${cfg.home}/store-apps; do
if [ ! -e $dir ]; then
install -o nextcloud -g nextcloud -d $dir
elif [ $(stat -c "%G" $dir) != "nextcloud" ]; then
@@ -982,7 +1021,7 @@ in {
environment.NEXTCLOUD_CONFIG_DIR = "${datadir}/config";
serviceConfig.Type = "oneshot";
serviceConfig.User = "nextcloud";
serviceConfig.ExecStart = "${phpPackage}/bin/php -f ${cfg.package}/cron.php";
serviceConfig.ExecStart = "${phpPackage}/bin/php -f ${webroot}/cron.php";
};
nextcloud-update-plugins = mkIf cfg.autoUpdateApps.enable {
after = [ "nextcloud-setup.service" ];
@@ -1043,22 +1082,25 @@ in {
user = "nextcloud";
};
services.nextcloud = lib.mkIf cfg.configureRedis {
caching.redis = true;
extraOptions = {
services.nextcloud = {
caching.redis = lib.mkIf cfg.configureRedis true;
extraOptions = mkMerge [({
datadirectory = lib.mkDefault "${datadir}/data";
trusted_domains = [ cfg.hostName ];
}) (lib.mkIf cfg.configureRedis {
"memcache.distributed" = ''\OC\Memcache\Redis'';
"memcache.locking" = ''\OC\Memcache\Redis'';
redis = {
host = config.services.redis.servers.nextcloud.unixSocket;
port = 0;
};
};
})];
};
services.nginx.enable = mkDefault true;
services.nginx.virtualHosts.${cfg.hostName} = {
root = cfg.package;
root = webroot;
locations = {
"= /robots.txt" = {
priority = 100;
@@ -1075,14 +1117,6 @@ in {
}
'';
};
"~ ^/store-apps" = {
priority = 201;
extraConfig = "root ${cfg.home};";
};
"~ ^/nix-apps" = {
priority = 201;
extraConfig = "root ${cfg.home};";
};
"^~ /.well-known" = {
priority = 210;
extraConfig = ''
+1 -1
View File
@@ -1,6 +1,6 @@
{ config, lib, pkgs, ... }:
let
inherit (lib) mkOption mkDefault types optionalString stringAfter;
inherit (lib) mkOption mkDefault types optionalString;
cfg = config.boot.binfmt;
+20 -7
View File
@@ -3,14 +3,18 @@
cfg = config.systemd.oomd;
in {
imports = [
(lib.mkRemovedOptionModule [ "systemd" "oomd" "enableUserServices" ] "Use systemd.oomd.enableUserSlices instead.")
];
options.systemd.oomd = {
enable = lib.mkEnableOption (lib.mdDoc "the `systemd-oomd` OOM killer") // { default = true; };
# Fedora enables the first and third option by default. See the 10-oomd-* files here:
# https://src.fedoraproject.org/rpms/systemd/tree/acb90c49c42276b06375a66c73673ac351025597
# https://src.fedoraproject.org/rpms/systemd/tree/806c95e1c70af18f81d499b24cd7acfa4c36ffd6
enableRootSlice = lib.mkEnableOption (lib.mdDoc "oomd on the root slice (`-.slice`)");
enableSystemSlice = lib.mkEnableOption (lib.mdDoc "oomd on the system slice (`system.slice`)");
enableUserServices = lib.mkEnableOption (lib.mdDoc "oomd on all user services (`user@.service`)");
enableUserSlices = lib.mkEnableOption (lib.mdDoc "oomd on all user slices (`user@.slice`) and all user owned slices");
extraConfig = lib.mkOption {
type = with lib.types; attrsOf (oneOf [ str int bool ]);
@@ -44,14 +48,23 @@ in {
users.groups.systemd-oom = { };
systemd.slices."-".sliceConfig = lib.mkIf cfg.enableRootSlice {
ManagedOOMSwap = "kill";
ManagedOOMMemoryPressure = "kill";
ManagedOOMMemoryPressureLimit = "80%";
};
systemd.slices."system".sliceConfig = lib.mkIf cfg.enableSystemSlice {
ManagedOOMSwap = "kill";
};
systemd.services."user@".serviceConfig = lib.mkIf cfg.enableUserServices {
ManagedOOMMemoryPressure = "kill";
ManagedOOMMemoryPressureLimit = "50%";
ManagedOOMMemoryPressureLimit = "80%";
};
systemd.slices."user-".sliceConfig = lib.mkIf cfg.enableUserSlices {
ManagedOOMMemoryPressure = "kill";
ManagedOOMMemoryPressureLimit = "80%";
};
systemd.user.units."slice" = lib.mkIf cfg.enableUserSlices {
text = ''
ManagedOOMMemoryPressure=kill
ManagedOOMMemoryPressureLimit=80%
'';
overrideStrategy = "asDropin";
};
};
}
+10 -3
View File
@@ -80,10 +80,17 @@ with lib;
ACTION=="add|change", SUBSYSTEM=="input", ATTR{name}=="${cfg.device}", ATTR{device/speed}="${toString cfg.speed}", ATTR{device/sensitivity}="${toString cfg.sensitivity}"
'';
system.activationScripts.trackpoint =
''
${config.systemd.package}/bin/udevadm trigger --attr-match=name="${cfg.device}"
systemd.services.trackpoint = {
wantedBy = [ "sysinit.target" ] ;
before = [ "sysinit.target" "shutdown.target" ];
conflicts = [ "shutdown.target" ];
unitConfig.DefaultDependencies = false;
serviceConfig.Type = "oneshot";
serviceConfig.RemainAfterExit = true;
serviceConfig.ExecStart = ''
${config.systemd.package}/bin/udevadm trigger --attr-match=name="${cfg.device}
'';
};
})
(mkIf (cfg.emulateWheel) {
+36 -27
View File
@@ -85,35 +85,44 @@ in
};
};
###### wrappers activation script
system.activationScripts.vmwareWrappers =
lib.stringAfter [ "specialfs" "users" ]
''
mkdir -p "${parentWrapperDir}"
chmod 755 "${parentWrapperDir}"
# We want to place the tmpdirs for the wrappers to the parent dir.
wrapperDir=$(mktemp --directory --tmpdir="${parentWrapperDir}" wrappers.XXXXXXXXXX)
chmod a+rx "$wrapperDir"
${lib.concatStringsSep "\n" (vmwareWrappers)}
if [ -L ${wrapperDir} ]; then
# Atomically replace the symlink
# See https://axialcorps.com/2013/07/03/atomically-replacing-files-and-directories/
old=$(readlink -f ${wrapperDir})
if [ -e "${wrapperDir}-tmp" ]; then
rm --force --recursive "${wrapperDir}-tmp"
fi
ln --symbolic --force --no-dereference "$wrapperDir" "${wrapperDir}-tmp"
mv --no-target-directory "${wrapperDir}-tmp" "${wrapperDir}"
rm --force --recursive "$old"
else
# For initial setup
ln --symbolic "$wrapperDir" "${wrapperDir}"
fi
'';
# Services
systemd.services."vmware-wrappers" = {
description = "Create VMVare Wrappers";
wantedBy = [ "multi-user.target" ];
before = [
"vmware-authdlauncher.service"
"vmware-networks-configuration.service"
"vmware-networks.service"
"vmware-usbarbitrator.service"
];
after = [ "systemd-sysusers.service" ];
serviceConfig.Type = "oneshot";
serviceConfig.RemainAfterExit = true;
script = ''
mkdir -p "${parentWrapperDir}"
chmod 755 "${parentWrapperDir}"
# We want to place the tmpdirs for the wrappers to the parent dir.
wrapperDir=$(mktemp --directory --tmpdir="${parentWrapperDir}" wrappers.XXXXXXXXXX)
chmod a+rx "$wrapperDir"
${lib.concatStringsSep "\n" (vmwareWrappers)}
if [ -L ${wrapperDir} ]; then
# Atomically replace the symlink
# See https://axialcorps.com/2013/07/03/atomically-replacing-files-and-directories/
old=$(readlink -f ${wrapperDir})
if [ -e "${wrapperDir}-tmp" ]; then
rm --force --recursive "${wrapperDir}-tmp"
fi
ln --symbolic --force --no-dereference "$wrapperDir" "${wrapperDir}-tmp"
mv --no-target-directory "${wrapperDir}-tmp" "${wrapperDir}"
rm --force --recursive "$old"
else
# For initial setup
ln --symbolic "$wrapperDir" "${wrapperDir}"
fi
'';
};
systemd.services."vmware-authdlauncher" = {
description = "VMware Authentication Daemon";
serviceConfig = {
+1 -1
View File
@@ -15,7 +15,7 @@
test-support.displayManager.auto.user = "alice";
virtualisation.anbox.enable = true;
boot.kernelPackages = pkgs.linuxPackages_5_15;
boot.kernelPackages = pkgs.linuxKernel.packages.linux_5_15;
virtualisation.memorySize = 2500;
};
+3 -3
View File
@@ -13,9 +13,9 @@ import ./make-test-python.nix ({ pkgs, lib, ... }:
'';
# ensure the directory to be monitored exists before incron is started
system.activationScripts.incronTest = ''
mkdir /test
'';
systemd.tmpfiles.settings.incron-test = {
"/test".d = { };
};
};
testScript = ''
+6 -4
View File
@@ -13,10 +13,12 @@ in {
# The only thing the client needs to do is download a file.
client = { ... }: {
services.davfs2.enable = true;
system.activationScripts.davfs2-secrets = ''
echo "http://nextcloud/remote.php/dav/files/${adminuser} ${adminuser} ${adminpass}" > /tmp/davfs2-secrets
chmod 600 /tmp/davfs2-secrets
'';
systemd.tmpfiles.settings.nextcloud = {
"/tmp/davfs2-secrets"."f+" = {
mode = "0600";
argument = "http://nextcloud/remote.php/dav/files/${adminuser} ${adminuser} ${adminpass}";
};
};
virtualisation.fileSystems = {
"/mnt/dav" = {
device = "http://nextcloud/remote.php/dav/files/${adminuser}";
@@ -32,7 +32,6 @@ in {
adminpassFile = toString (pkgs.writeText "admin-pass-file" ''
${adminpass}
'');
trustedProxies = [ "::1" ];
};
notify_push = {
enable = true;
@@ -42,6 +41,7 @@ in {
extraApps = {
inherit (pkgs."nextcloud${lib.versions.major config.services.nextcloud.package.version}Packages".apps) notify_push;
};
extraOptions.trusted_proxies = [ "::1" ];
};
services.redis.servers."nextcloud".enable = true;
+2 -2
View File
@@ -15,14 +15,14 @@
}:
stdenv.mkDerivation (finalAttrs: {
pname = "g4music";
version = "3.3";
version = "3.4-1";
src = fetchFromGitLab {
domain = "gitlab.gnome.org";
owner = "neithern";
repo = "g4music";
rev = "v${finalAttrs.version}";
hash = "sha256-sajA8+G1frQA0p+8RK84hvh2P36JaarmSZx/sxMoFqo=";
hash = "sha256-uklgxhyrnFQSUcttXvYQtm2BybRkdTK1IfaRpOp0sOE=";
};
nativeBuildInputs = [
+28 -16
View File
@@ -2,38 +2,49 @@
, lib
, fetchFromGitHub
, nix-update-script
, autoreconfHook
, perl
, pkg-config
, libsidplayfp
, alsaSupport ? stdenv.hostPlatform.isLinux
, alsa-lib
, autoreconfHook
, pulseSupport ? stdenv.hostPlatform.isLinux
, libpulseaudio
, libsidplayfp
, out123Support ? stdenv.hostPlatform.isDarwin
, mpg123
, perl
, pkg-config
}:
stdenv.mkDerivation rec {
stdenv.mkDerivation (finalAttrs: {
pname = "sidplayfp";
version = "2.5.0";
version = "2.5.1";
src = fetchFromGitHub {
owner = "libsidplayfp";
repo = "sidplayfp";
rev = "v${version}";
sha256 = "sha256-ECHtHJrkJ5Y0YvDNdMM3VB+s7I/8JCPZiwsPYLM/oig=";
rev = "v${finalAttrs.version}";
hash = "sha256-oV7ZPWgMEsNlsF2OoOvf7Ah5ZLcVkIDyC+PrPIJGyzQ=";
};
nativeBuildInputs = [ autoreconfHook perl pkg-config ];
strictDeps = true;
buildInputs = [ libsidplayfp ]
++ lib.optional alsaSupport alsa-lib
++ lib.optional pulseSupport libpulseaudio
++ lib.optional out123Support mpg123;
nativeBuildInputs = [
autoreconfHook
perl
pkg-config
];
configureFlags = lib.optionals out123Support [
"--with-out123"
buildInputs = [
libsidplayfp
] ++ lib.optionals alsaSupport [
alsa-lib
] ++ lib.optionals pulseSupport [
libpulseaudio
] ++ lib.optionals out123Support [
mpg123
];
configureFlags = [
(lib.strings.withFeature out123Support "out123")
];
enableParallelBuilding = true;
@@ -46,7 +57,8 @@ stdenv.mkDerivation rec {
description = "A SID player using libsidplayfp";
homepage = "https://github.com/libsidplayfp/sidplayfp";
license = with licenses; [ gpl2Plus ];
mainProgram = "sidplayfp";
maintainers = with maintainers; [ dezgeg OPNA2608 ];
platforms = platforms.all;
};
}
})
@@ -17,13 +17,13 @@
stdenv.mkDerivation rec {
pname = "timeshift";
version = "23.12.1";
version = "23.12.2";
src = fetchFromGitHub {
owner = "linuxmint";
repo = "timeshift";
rev = version;
sha256 = "uesedEXPfvI/mRs8BiNkv8B2vVxmtTSaIvlQIsajkVg=";
sha256 = "xeO1/YQGRTCCGMRPr6Dqb9+89lP24fPBDBJpvtcr2X0=";
};
patches = [
@@ -68,10 +68,6 @@ stdenv.mkDerivation rec {
enableParallelBuilding = true;
passthru.tests = {
smoke-test = nixosTests.bitcoind-knots;
};
meta = with lib; {
description = "A derivative of Bitcoin Core with a collection of improvements";
homepage = "https://bitcoinknots.org/";
@@ -710,8 +710,8 @@ let
mktplcRef = {
name = "ruff";
publisher = "charliermarsh";
version = "2023.40.0";
sha256 = "sha256-Ym76WtKvz18NgxH9o8O/Ozn+/AtqLvjJs8ffLhPOWkQ=";
version = "2023.60.0";
sha256 = "sha256-zxE4QcWt8M6djTbdIf0YNSpeF1w7vMK4/BW5ArCOYbE=";
};
meta = {
license = lib.licenses.mit;
@@ -19,7 +19,7 @@
python3.pkgs.buildPythonApplication rec {
pname = "komikku";
version = "1.32.0";
version = "1.33.0";
format = "other";
@@ -27,7 +27,7 @@ python3.pkgs.buildPythonApplication rec {
owner = "valos";
repo = "Komikku";
rev = "v${version}";
hash = "sha256-aF7EByUQ6CO+rXfGz4ivU18N5sh0X8nGgJT94dCuN8c=";
hash = "sha256-59RkynW02gxVPz48diC1Th+vtru+oHMeuArfdA2a1IU=";
};
nativeBuildInputs = [
+2 -2
View File
@@ -1,14 +1,14 @@
{ lib, stdenv, fetchFromGitHub, python3, installShellFiles }:
stdenv.mkDerivation rec {
version = "2.1";
version = "2.2";
pname = "ddgr";
src = fetchFromGitHub {
owner = "jarun";
repo = "ddgr";
rev = "v${version}";
sha256 = "sha256-D5FUhv1moQKzcLj/3VWJNs24jTXJir1dMpv59orPTtc=";
sha256 = "sha256-88cCQm3eViy0OwSyCTlnW7uuiFwz2/6Wz45QzxCgXxg=";
};
nativeBuildInputs = [ installShellFiles ];
@@ -29,13 +29,13 @@ let
};
in stdenv.mkDerivation rec {
pname = "organicmaps";
version = "2023.11.17-17";
version = "2023.12.20-4";
src = fetchFromGitHub {
owner = "organicmaps";
repo = "organicmaps";
rev = "${version}-android";
hash = "sha256-3oGcupO49+ZXyW+ii4T+wov4qweDnLO+VkXSAIh7qJ4=";
hash = "sha256-9yQMBP5Jta6P/FmYL6Ek3MzU1DKtVEwlwYAkNxC5pn4=";
fetchSubmodules = true;
};
@@ -21,5 +21,6 @@ buildGoModule rec {
changelog = "https://github.com/juruen/rmapi/blob/v${version}/CHANGELOG.md";
license = licenses.agpl3Only;
maintainers = [ maintainers.nickhu ];
mainProgram = "rmapi";
};
}
@@ -2,13 +2,13 @@
buildGoModule rec {
pname = "popeye";
version = "0.11.1";
version = "0.11.2";
src = fetchFromGitHub {
rev = "v${version}";
owner = "derailed";
repo = "popeye";
sha256 = "sha256-A1jUlEgjBoiN+NYwpyW/1eYzkCK3UuPID++fu+zGvzk=";
sha256 = "sha256-2mLbBvdUWGspTNeU3QJzR5NDI24njvRO2nss/Bo93W8=";
};
ldflags = [
@@ -17,7 +17,7 @@ buildGoModule rec {
"-X github.com/derailed/popeye/cmd.commit=${version}"
];
vendorHash = "sha256-MEsChBBn0mixgJ7pzRoqAqup75b/mVv6k3OMmzgyLC4=";
vendorHash = "sha256-Vt5QwggdasVk4j2huSIneBMemi3Q0R4MgZn2yNlOH5E=";
doInstallCheck = true;
installCheckPhase = ''
@@ -22,11 +22,11 @@
stdenv.mkDerivation rec {
pname = "evolution-ews";
version = "3.50.1";
version = "3.50.2";
src = fetchurl {
url = "mirror://gnome/sources/${pname}/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
sha256 = "577S3Z/AhFf3W6ufiWJV8w/TTHu8nIqV74fi4pEqCa0=";
sha256 = "gYgjez2TGnOrire1c5/0Pqoky8mtjnK4I5KZ9pizHmY=";
};
patches = [
@@ -1,8 +1,8 @@
diff --git a/src/EWS/calendar/e-cal-backend-ews-utils.c b/src/EWS/calendar/e-cal-backend-ews-utils.c
index 653a8fb..ad80283 100644
index b7c65ae..b334198 100644
--- a/src/EWS/calendar/e-cal-backend-ews-utils.c
+++ b/src/EWS/calendar/e-cal-backend-ews-utils.c
@@ -2406,7 +2406,19 @@ e_cal_backend_ews_get_configured_evolution_icaltimezone (void)
@@ -2425,7 +2425,19 @@ e_cal_backend_ews_get_configured_evolution_icaltimezone (void)
if (schema) {
GSettings *settings;
+2 -2
View File
@@ -17,14 +17,14 @@
stdenv.mkDerivation rec {
pname = "planner";
version = "0.14.91";
version = "0.14.92";
src = fetchFromGitLab {
domain = "gitlab.gnome.org";
owner = "World";
repo = "planner";
rev = version;
hash = "sha256-LxctZv/CKolJ1I4Hql20E+/+p+ZoJLR1eZe34HPMqvY=";
hash = "sha256-2LmNeyZURVtA52Vosyn44wT8zSaJn8tR+8sPM9atAwM=";
};
postPatch = ''
@@ -19,14 +19,14 @@
let
pname = "qownnotes";
appname = "QOwnNotes";
version = "23.12.3";
version = "23.12.5";
in
stdenv.mkDerivation {
inherit pname appname version;
src = fetchurl {
url = "https://github.com/pbek/QOwnNotes/releases/download/v${version}/qownnotes-${version}.tar.xz";
hash = "sha256-cQjO5LgGDU9ZHnvKniFMBzcxgWRFfS+PQ0OSe+NFv+c=";
hash = "sha256-nPlaKbtG6ncHI9I/qHUFRtc98lWkz7C/VXFX/JkXhDo=";
};
nativeBuildInputs = [
@@ -18,17 +18,19 @@
, indilib
, libnova
, qttools
, exiv2
, nlopt
}:
stdenv.mkDerivation rec {
stdenv.mkDerivation (finalAttrs: {
pname = "stellarium";
version = "23.3";
version = "23.4";
src = fetchFromGitHub {
owner = "Stellarium";
repo = "stellarium";
rev = "v${version}";
hash = "sha256-bYvGmYu9jMHk2IUICz2kCVh56Ymz8JHqurdWV+xEdJY=";
rev = "v${finalAttrs.version}";
hash = "sha256-rDqDs6sFaZQbqJcCRhY5w8sFM2mYHHvw0Ud2Niimg4Y=";
};
patches = [
@@ -66,12 +68,14 @@ stdenv.mkDerivation rec {
qxlsx
indilib
libnova
exiv2
nlopt
] ++ lib.optionals stdenv.isLinux [
qtwayland
];
preConfigure = ''
export SOURCE_DATE_EPOCH=$(date -d 20${lib.versions.major version}0101 +%s)
export SOURCE_DATE_EPOCH=$(date -d 20${lib.versions.major finalAttrs.version}0101 +%s)
'' + lib.optionalString stdenv.isDarwin ''
export LC_ALL=en_US.UTF-8
'';
@@ -89,11 +93,11 @@ stdenv.mkDerivation rec {
qtWrapperArgs+=("''${gappsWrapperArgs[@]}")
'';
meta = with lib; {
meta = {
description = "Free open-source planetarium";
homepage = "https://stellarium.org/";
license = licenses.gpl2Plus;
platforms = platforms.unix;
maintainers = with maintainers; [ kilianar ];
license = lib.licenses.gpl2Plus;
platforms = lib.platforms.unix;
maintainers = with lib.maintainers; [ kilianar ];
};
}
})
@@ -1,5 +1,5 @@
{ stdenv, lib, fetchurl, dpkg, makeWrapper , mono, gtk-sharp-3_0
, glib, libusb1 , zlib, gtk3-x11, callPackage
, glib, libusb1 , zlib, gtk3-x11, callPackage, writeTextDir
, scopes ? [
"picocv"
"ps2000"
@@ -114,7 +114,7 @@ in stdenv.mkDerivation rec {
# services.udev.packages = [ pkgs.picoscope.rules ];
# users.groups.pico = {};
# users.users.you.extraGroups = [ "pico" ];
passthru.rules = lib.writeTextDir "lib/udev/rules.d/95-pico.rules" ''
passthru.rules = writeTextDir "lib/udev/rules.d/95-pico.rules" ''
SUBSYSTEMS=="usb", ATTRS{idVendor}=="0ce9", MODE="664",GROUP="pico"
'';
+80 -66
View File
@@ -1,84 +1,98 @@
{ lib
, callPackage
, config
, newScope
, runCommand
}:
let
buildLua = callPackage ./buildLua.nix { };
unionOfDisjoints = lib.fold lib.attrsets.unionOfDisjoint {};
addTests = name: drv: let
inherit (drv) scriptName;
scriptPath = "share/mpv/scripts/${scriptName}";
fullScriptPath = "${drv}/${scriptPath}";
addTests = name: drv:
if ! lib.isDerivation drv then
drv
else let
inherit (drv) scriptName;
scriptPath = "share/mpv/scripts/${scriptName}";
fullScriptPath = "${drv}/${scriptPath}";
in drv.overrideAttrs (old: { passthru = (old.passthru or {}) // { tests = unionOfDisjoints [
(old.passthru.tests or {})
in drv.overrideAttrs (old: { passthru = (old.passthru or {}) // { tests = unionOfDisjoints [
(old.passthru.tests or {})
{
scriptName-is-valid = runCommand "mpvScripts.${name}.passthru.tests.scriptName-is-valid" {
meta.maintainers = with lib.maintainers; [ nicoo ];
preferLocalBuild = true;
} ''
if [ -e "${fullScriptPath}" ]; then
touch $out
else
echo "mpvScripts.\"${name}\" does not contain a script named \"${scriptName}\"" >&2
exit 1
fi
'';
}
{
scriptName-is-valid = runCommand "mpvScripts.${name}.passthru.tests.scriptName-is-valid" {
meta.maintainers = with lib.maintainers; [ nicoo ];
preferLocalBuild = true;
} ''
if [ -e "${fullScriptPath}" ]; then
touch $out
else
echo "mpvScripts.\"${name}\" does not contain a script named \"${scriptName}\"" >&2
exit 1
fi
'';
}
# can't check whether `fullScriptPath` is a directory, in pure-evaluation mode
(with lib; optionalAttrs (! any (s: hasSuffix s drv.passthru.scriptName) [ ".js" ".lua" ".so" ]) {
single-main-in-script-dir = runCommand "mpvScripts.${name}.passthru.tests.single-main-in-script-dir" {
meta.maintainers = with lib.maintainers; [ nicoo ];
preferLocalBuild = true;
} ''
die() {
echo "$@" >&2
exit 1
}
# can't check whether `fullScriptPath` is a directory, in pure-evaluation mode
(with lib; optionalAttrs (! any (s: hasSuffix s drv.passthru.scriptName) [ ".js" ".lua" ".so" ]) {
single-main-in-script-dir = runCommand "mpvScripts.${name}.passthru.tests.single-main-in-script-dir" {
meta.maintainers = with lib.maintainers; [ nicoo ];
preferLocalBuild = true;
} ''
die() {
echo "$@" >&2
exit 1
}
cd "${drv}/${scriptPath}" # so the glob expands to filenames only
mains=( main.* )
if [ "''${#mains[*]}" -eq 1 ]; then
touch $out
elif [ "''${#mains[*]}" -eq 0 ]; then
die "'${scriptPath}' contains no 'main.*' file"
else
die "'${scriptPath}' contains multiple 'main.*' files:" "''${mains[*]}"
fi
'';
})
]; }; });
cd "${drv}/${scriptPath}" # so the glob expands to filenames only
mains=( main.* )
if [ "''${#mains[*]}" -eq 1 ]; then
touch $out
elif [ "''${#mains[*]}" -eq 0 ]; then
die "'${scriptPath}' contains no 'main.*' file"
else
die "'${scriptPath}' contains multiple 'main.*' files:" "''${mains[*]}"
fi
'';
})
]; }; });
in
scope = self: let
inherit (self) callPackage;
in lib.mapAttrs addTests {
inherit (callPackage ./mpv.nix { })
acompressor autocrop autodeint autoload;
inherit (callPackage ./occivink.nix { })
blacklistExtensions seekTo;
lib.recurseIntoAttrs
(lib.mapAttrs addTests ({
chapterskip = callPackage ./chapterskip.nix { inherit buildLua; };
convert = callPackage ./convert.nix { inherit buildLua; };
cutter = callPackage ./cutter.nix { inherit buildLua; };
buildLua = callPackage ./buildLua.nix { };
chapterskip = callPackage ./chapterskip.nix { };
convert = callPackage ./convert.nix { };
cutter = callPackage ./cutter.nix { };
inhibit-gnome = callPackage ./inhibit-gnome.nix { };
mpris = callPackage ./mpris.nix { };
mpv-playlistmanager = callPackage ./mpv-playlistmanager.nix { inherit buildLua; };
mpv-webm = callPackage ./mpv-webm.nix { inherit buildLua; };
mpvacious = callPackage ./mpvacious.nix { inherit buildLua; };
quality-menu = callPackage ./quality-menu.nix { inherit buildLua; };
simple-mpv-webui = callPackage ./simple-mpv-webui.nix { inherit buildLua; };
mpv-playlistmanager = callPackage ./mpv-playlistmanager.nix { };
mpv-webm = callPackage ./mpv-webm.nix { };
mpvacious = callPackage ./mpvacious.nix { };
quality-menu = callPackage ./quality-menu.nix { };
simple-mpv-webui = callPackage ./simple-mpv-webui.nix { };
sponsorblock = callPackage ./sponsorblock.nix { };
sponsorblock-minimal = callPackage ./sponsorblock-minimal.nix { inherit buildLua; };
thumbfast = callPackage ./thumbfast.nix { inherit buildLua; };
thumbnail = callPackage ./thumbnail.nix { inherit buildLua; };
uosc = callPackage ./uosc.nix { inherit buildLua; };
visualizer = callPackage ./visualizer.nix { inherit buildLua; };
sponsorblock-minimal = callPackage ./sponsorblock-minimal.nix { };
thumbfast = callPackage ./thumbfast.nix { };
thumbnail = callPackage ./thumbnail.nix { };
uosc = callPackage ./uosc.nix { };
visualizer = callPackage ./visualizer.nix { };
vr-reversal = callPackage ./vr-reversal.nix { };
webtorrent-mpv-hook = callPackage ./webtorrent-mpv-hook.nix { };
}
// (callPackage ./mpv.nix { inherit buildLua; })
// (callPackage ./occivink.nix { inherit buildLua; })))
// lib.optionalAttrs config.allowAliases {
youtube-quality = throw "'youtube-quality' is no longer maintained, use 'quality-menu' instead"; # added 2023-07-14
}
};
aliases = {
youtube-quality = throw "'youtube-quality' is no longer maintained, use 'quality-menu' instead"; # added 2023-07-14
};
in
with lib; pipe scope [
(makeScope newScope)
(self:
assert builtins.intersectAttrs self aliases == {};
self // optionalAttrs config.allowAliases aliases)
recurseIntoAttrs
]
+2 -2
View File
@@ -40,8 +40,8 @@ import ./generic.nix { inherit lib stdenv emacs texinfo writeText gcc; } ({
src = fetchFromGitHub {
owner = "melpa";
repo = "package-build";
rev = "c48aa078c01b4f07b804270c4583a0a58ffea1c0";
sha256 = "sha256-MzPj375upIiYXdQR+wWXv3A1zMqbSrZlH0taLuxx/1M=";
rev = "c3c535e93d9dc92acd21ebc4b15016b5c3b90e7d";
sha256 = "17z0wbqdd6fspbj43yq8biff6wfggk74xgnaf1xx6ynsp1i74is5";
};
patches = [ ./package-build-dont-use-mtime.patch ];
+13 -13
View File
@@ -11,22 +11,22 @@
;; Allow installing package tarfiles larger than 10MB
(setq large-file-warning-threshold nil)
(defun melpa2nix-build-package-1 (rcp)
(let* ((default-directory (package-recipe--working-tree rcp)))
(defun melpa2nix-build-package-1 (rcp version commit)
(let ((source-dir (package-recipe--working-tree rcp)))
(unwind-protect
(let ((files (package-build-expand-files-spec rcp t)))
(unless files
(error "Unable to find files matching recipe patterns"))
(if (> (length files) 1)
(package-build--build-multi-file-package rcp files)
(package-build--build-single-file-package rcp files))))))
(cond
((= (length files) 1)
(package-build--build-single-file-package
rcp version commit files source-dir))
((> (length files) 1)
(package-build--build-multi-file-package
rcp version commit files source-dir))
(t (error "Unable to find files matching recipe patterns")))))))
(defun melpa2nix-build-package ()
(unless noninteractive
(error "`melpa2nix-build-package' is to be used only with -batch"))
(if (not noninteractive)
(error "`melpa2nix-build-package' is to be used only with -batch"))
(pcase command-line-args-left
(`(,package ,version ,commit)
(let ((recipe (package-recipe-lookup package)))
(setf (oref recipe commit) commit)
(setf (oref recipe version) version)
(melpa2nix-build-package-1 recipe)))))
(melpa2nix-build-package-1 (package-recipe-lookup package) version commit))))
@@ -1,21 +1,40 @@
diff --git a/package-build.el b/package-build.el
index 29cdb61..c19be1b 100644
index e572045..9eb0f82 100644
--- a/package-build.el
+++ b/package-build.el
@@ -923,7 +923,6 @@ DIRECTORY is a temporary directory that contains the directory
that is put in the tarball."
(let* ((name (oref rcp name))
(version (oref rcp version))
- (time (oref rcp time))
(tar (expand-file-name (concat name "-" version ".tar")
package-build-archive-dir))
(dir (concat name "-" version)))
@@ -939,7 +938,7 @@ that is put in the tarball."
;; prevent a reproducible tarball as described at
@@ -415,7 +415,7 @@ (defun package-build--write-pkg-file (desc dir)
(princ ";; Local Variables:\n;; no-byte-compile: t\n;; End:\n"
(current-buffer)))))
-(defun package-build--create-tar (name version directory mtime)
+(defun package-build--create-tar (name version directory)
"Create a tar file containing the contents of VERSION of package NAME.
DIRECTORY is a temporary directory that contains the directory
that is put in the tarball. MTIME is used as the modification
@@ -434,7 +434,7 @@ (defun package-build--create-tar (name version directory mtime)
;; prevent a reproducable tarball as described at
;; https://reproducible-builds.org/docs/archives.
"--sort=name"
- (format "--mtime=@%d" time)
- (format "--mtime=@%d" mtime)
+ "--mtime=@0"
"--owner=0" "--group=0" "--numeric-owner"
"--pax-option=exthdr.name=%d/PaxHeaders/%f,delete=atime,delete=ctime"))
(when (and package-build-verbose noninteractive)
@@ -848,12 +848,11 @@ (defun package-build--build-multi-file-package (rcp version commit files source-
(package-build--desc-from-library
name version commit files 'tar)
(error "%s[-pkg].el matching package name is missing"
- name))))
- (mtime (package-build--get-commit-time rcp commit)))
+ name)))))
(package-build--copy-package-files files source-dir target)
(package-build--write-pkg-file desc target)
(package-build--generate-info-files files source-dir target)
- (package-build--create-tar name version tmp-dir mtime)
+ (package-build--create-tar name version tmp-dir)
(package-build--write-pkg-readme name files source-dir)
(package-build--write-archive-entry desc))
(delete-directory tmp-dir t nil))))
--
2.37.2
+43
View File
@@ -0,0 +1,43 @@
{ lib
, fetchurl
, appimageTools
, makeWrapper
}:
let
pname = "caido";
version = "0.29.2";
src = fetchurl {
url = "https://storage.googleapis.com/caido-releases/v${version}/caido-desktop-linux-v${version}-e0f8102b.AppImage";
hash = "sha256-4PgQK52LAX1zacmoUK0muIhrvFDF7anQ6sx35I+ErVs=";
};
appimageContents = appimageTools.extractType2 { inherit pname src version; };
in appimageTools.wrapType2 {
inherit pname src version;
extraPkgs = pkgs: (appimageTools.defaultFhsEnvArgs.multiPkgs pkgs) ++ [ pkgs.libthai ];
extraInstallCommands = ''
mv $out/bin/${pname}-${version} $out/bin/${pname}
install -m 444 -D ${appimageContents}/caido.desktop -t $out/share/applications
substituteInPlace $out/share/applications/caido.desktop \
--replace 'Exec=AppRun' 'Exec=${pname}'
install -m 444 -D ${appimageContents}/caido.png \
$out/share/icons/hicolor/512x512/apps/caido.png
source "${makeWrapper}/nix-support/setup-hook"
wrapProgram $out/bin/${pname} \
--set WEBKIT_DISABLE_COMPOSITING_MODE 1
'';
meta = with lib; {
description = "A lightweight web security auditing toolkit";
homepage = "https://caido.io/";
changelog = "https://github.com/caido/caido/releases/tag/v${version}";
license = licenses.unfree;
maintainers = with maintainers; [ octodi ];
mainProgram = "caido";
sourceProvenance = with sourceTypes; [ binaryNativeCode ];
platforms = [ "x86_64-linux" ];
};
}
+3 -3
View File
@@ -6,16 +6,16 @@
buildGoModule rec {
pname = "git-releaser";
version = "0.1.1";
version = "0.1.2";
src = fetchFromGitHub {
owner = "git-releaser";
repo = "git-releaser";
rev = "refs/tags/v${version}";
hash = "sha256-owIXiLLnCkda9O0C0wW0nEuwXC4hipNpR9fdFqgbWts=";
hash = "sha256-rgnOXon68QMfVbyYhERy5z2pUlLCBwum7a/U9kdp5M0=";
};
vendorHash = "sha256-dTyHKSCEImySu6Tagqvh6jDvgDbOTL0fMUOjFBpp64k=";
vendorHash = "sha256-O6Rqdf6yZvW8aix51oIziip+WcVIiyDZZ2VOQfwP8Fs=";
ldflags = [ "-X main.version=${version}" ];
+2 -2
View File
@@ -41,13 +41,13 @@
stdenv.mkDerivation (finalAttrs: {
pname = "icewm";
version = "3.4.4";
version = "3.4.5";
src = fetchFromGitHub {
owner = "ice-wm";
repo = "icewm";
rev = finalAttrs.version;
hash = "sha256-bnoNkBsNJ/6CVmm5I/nwy6LGxYhxPXssjZ3TT7FdEz8=";
hash = "sha256-Auuu+hRYVziAF3hXH7XSOyNlDehEKg6QmSJicY+XQLk=";
};
nativeBuildInputs = [
+43
View File
@@ -0,0 +1,43 @@
{ lib
, fetchFromGitHub
, buildGoModule
, makeWrapper
, go
, buf
}:
buildGoModule rec {
pname = "ignite-cli";
version = "28.1.0";
src = fetchFromGitHub {
repo = "cli";
owner = "ignite";
rev = "v${version}";
hash = "sha256-/MsBVJ3aqlNfGtktjqDKGdibbZea/bdLuQbXnP3Ag0k=";
};
vendorHash = "sha256-VAXzwZ79TGvAoSRzjupL9XkXBn05tvaPCtRuxhls6XE=";
nativeBuildInputs = [ makeWrapper ];
# Many tests require access to either executables, state or networking
doCheck = false;
# Required for wrapProgram
allowGoReference = true;
# Required for commands like `ignite version`, `ignite network` and others
postFixup = ''
wrapProgram $out/bin/ignite --prefix PATH : ${lib.makeBinPath [ go buf ]}
'';
meta = with lib; {
homepage = "https://ignite.com/";
changelog = "https://github.com/ignite/cli/releases/tag/v${version}";
description = "All-in-one platform to build, launch, and maintain any crypto application on a sovereign and secured blockchain";
license = licenses.asl20;
maintainers = with maintainers; [ kashw2 ];
mainProgram = "ignite";
};
}
+56
View File
@@ -0,0 +1,56 @@
{ lib
, stdenv
, cmocka
, darwin
, fetchFromGitHub
, gtk3
, meson
, ninja
, pkg-config
}:
stdenv.mkDerivation rec {
pname = "libui-ng";
version = "unstable-2023-12-19";
src = fetchFromGitHub {
owner = "libui-ng";
repo = "libui-ng";
rev = "8de4a5c8336f82310df1c6dad51cb732113ea114";
hash = "sha256-ZMt2pEHwxXxLWtK8Rm7hky9Kxq5ZIB0olBLf1d9wVfc=";
};
postPatch = lib.optionalString (stdenv.isDarwin && stdenv.isx86_64) ''
substituteInPlace meson.build --replace "'-arch', 'arm64'" ""
'';
nativeBuildInputs = [
cmocka
meson
ninja
pkg-config
];
buildInputs =
if stdenv.isDarwin then [
darwin.libobjc
darwin.apple_sdk_11_0.Libsystem
darwin.apple_sdk_11_0.frameworks.Cocoa
darwin.apple_sdk_11_0.frameworks.AppKit
darwin.apple_sdk_11_0.frameworks.CoreFoundation
] else [
gtk3
];
mesonFlags = [
(lib.mesonBool "examples" (!stdenv.isDarwin))
];
meta = with lib; {
description = "A portable GUI library for C";
homepage = "https://github.com/libui-ng/libui-ng";
license = licenses.mit;
maintainers = with maintainers; [ marsam ];
platforms = platforms.all;
};
}
+3 -3
View File
@@ -17,7 +17,7 @@
, openclSupport ? false
, clblast
, openblasSupport ? true
, openblasSupport ? !rocmSupport
, openblas
, pkg-config
}:
@@ -42,13 +42,13 @@ let
in
stdenv.mkDerivation (finalAttrs: {
pname = "llama-cpp";
version = "1671";
version = "1710";
src = fetchFromGitHub {
owner = "ggerganov";
repo = "llama.cpp";
rev = "refs/tags/b${finalAttrs.version}";
hash = "sha256-OFRc3gHKQboVCsDlQVHwzEBurIsOMj/bVGYuCLilydE=";
hash = "sha256-fbzHjaL+qAE9HdtBVxboo8T2/KCdS5O1RkTQvDwD/xs=";
};
patches = [
+2 -2
View File
@@ -19,13 +19,13 @@
stdenv.mkDerivation rec {
pname = "pgmoneta";
version = "0.7.2";
version = "0.7.3";
src = fetchFromGitHub {
owner = "pgmoneta";
repo = "pgmoneta";
rev = version;
hash = "sha256-4jysBL6fwX2ns+N+ldhTCXZ7L/IuXjbAwou18Ur5+JU=";
hash = "sha256-sErdlHXMn97acVIxKapsnLkyOAgO7lOB0UQC5GkL4sQ=";
};
nativeBuildInputs = [
+3 -3
View File
@@ -15,16 +15,16 @@
rustPlatform.buildRustPackage rec {
pname = "satty";
version = "0.8.2";
version = "0.8.3";
src = fetchFromGitHub {
owner = "gabm";
repo = "Satty";
rev = "v${version}";
hash = "sha256-5FKEQUH43qx8w7s7lW8EDOWtWCUJTbWlXcMQazR8Thk=";
hash = "sha256-KCHKR6DP8scd9xdWi0bLw3wObrEi0tOsflXHa9f4Z5k=";
};
cargoHash = "sha256-FpCmzU2C+5+5eSB5Mno+lOFd4trHXmfp6e5oV+CvU1c=";
cargoHash = "sha256-pUBtUC+WOuiypLUpXCPR1pu0fRrMVTxg7FE2JSaszNw=";
nativeBuildInputs = [
copyDesktopItems
@@ -71,13 +71,13 @@ let
in
stdenv.mkDerivation rec {
pname = "cinnamon-common";
version = "6.0.2";
version = "6.0.3";
src = fetchFromGitHub {
owner = "linuxmint";
repo = "cinnamon";
rev = version;
hash = "sha256-/kjl/0Qdro6H3fMfs1dA0Zf/GT5Z4s6kK4vB+EBKw0g=";
hash = "sha256-8Y+WUnNQ4p/JeUR4q6Ti6HdoN5bghXs6XJsuWGY66S4=";
};
patches = [
@@ -28,13 +28,13 @@
stdenv.mkDerivation rec {
pname = "cinnamon-screensaver";
version = "6.0.1";
version = "6.0.2";
src = fetchFromGitHub {
owner = "linuxmint";
repo = pname;
rev = version;
hash = "sha256-jWUPn5+ynuLdb2GaqKph1M62Ky00sRP/vUXedEvBT7A=";
hash = "sha256-6Js670Z3/5BwAHvEJrXJkBZvEvx1NeT+eXOKaqKqFqI=";
};
nativeBuildInputs = [
@@ -9,13 +9,13 @@
stdenvNoCC.mkDerivation rec {
pname = "mint-y-icons";
version = "1.7.1";
version = "1.7.2";
src = fetchFromGitHub {
owner = "linuxmint";
repo = pname;
rev = version;
hash = "sha256-Uzayo1hmNwOMszTV8/KqOLxjERBC/L16hRpCWbK10Uc=";
hash = "sha256-8dwJyvM5sQNtUzhreBCgSWeElGlp/z3Dk7/xCeUSGKU=";
};
propagatedBuildInputs = [
+2 -2
View File
@@ -40,7 +40,7 @@
stdenv.mkDerivation rec {
pname = "muffin";
version = "6.0.0";
version = "6.0.1";
outputs = [ "out" "dev" "man" ];
@@ -48,7 +48,7 @@ stdenv.mkDerivation rec {
owner = "linuxmint";
repo = pname;
rev = version;
hash = "sha256-17B2C3SW9smTgLBBGJc9LwFpXoP9WidZEGgI2hbJTH8=";
hash = "sha256-yd23naaPIa6xrdf7ipOvVZKqkr7/CMxNqDZ3CQ2QH+Y=";
};
patches = [
+2 -2
View File
@@ -23,13 +23,13 @@
stdenv.mkDerivation rec {
pname = "nemo";
version = "6.0.1";
version = "6.0.2";
src = fetchFromGitHub {
owner = "linuxmint";
repo = pname;
rev = version;
sha256 = "sha256-3iGwpHuZrRBd35nAa3x1Lu/KDS1L42y5u8A4vM41b0Q=";
sha256 = "sha256-vSLFp0sgqGsZtcXdv82PVH0HcBbmcxrMySLFCBrLJpA=";
};
patches = [
@@ -36,13 +36,13 @@ let
in
stdenv.mkDerivation rec {
pname = "warpinator";
version = "1.8.1";
version = "1.8.2";
src = fetchFromGitHub {
owner = "linuxmint";
repo = pname;
rev = version;
hash = "sha256-dxbs2Qq1Ix04yIA587tntLJ3W/pnA0wTiQ4BB5GCTR0=";
hash = "sha256-wBln4YqjZ8aI3D4Arwa7UgDKxNPSlC5fRZtjanTHl4Q=";
};
nativeBuildInputs = [
+2 -2
View File
@@ -27,13 +27,13 @@
stdenv.mkDerivation rec {
pname = "xreader";
version = "4.0.0";
version = "4.0.1";
src = fetchFromGitHub {
owner = "linuxmint";
repo = pname;
rev = version;
sha256 = "sha256-TL8LlNQLGUevXlNcnS9HcdGh1TzC/0I/6reJpe6rahM=";
sha256 = "sha256-sADdslxDtI+zV8DLnczlzNtB9W+BhMP8vb5riSnPYaw=";
};
nativeBuildInputs = [
@@ -4,12 +4,12 @@
let
pname = "elixir-ls";
version = "0.17.10";
version = "0.18.1";
src = fetchFromGitHub {
owner = "elixir-lsp";
repo = "elixir-ls";
rev = "v${version}";
hash = "sha256-LUAYfR6MNNGLaqv8EBx0JQ8KYYD7jRvez3HJFnczV+Y=";
hash = "sha256-o5/H2FeDXzT/ZyWtLmRs+TWJQfmuDUnnR5Brvkifn6E=";
fetchSubmodules = true;
};
in
@@ -21,7 +21,7 @@ mixRelease {
mixFodDeps = fetchMixDeps {
pname = "mix-deps-${pname}";
inherit src version elixir;
hash = "sha256-MVGYENy6/xI/ph/X0DxquigCuLK1FAEIONzoQU7TXoM=";
hash = "sha256-q4VKtGxrRaAhtNIJFjNN7tF+HFgU/UX9sKq0BkOIiQI=";
};
# elixir-ls is an umbrella app
@@ -50,9 +50,9 @@ mixRelease {
--replace 'exec "''${dir}/launch.sh"' "exec $out/lib/launch.sh"
chmod +x $out/bin/elixir-ls
substitute release/debugger.sh $out/bin/elixir-debugger \
substitute release/debug_adapter.sh $out/bin/elixir-debug-adapter \
--replace 'exec "''${dir}/launch.sh"' "exec $out/lib/launch.sh"
chmod +x $out/bin/elixir-debugger
chmod +x $out/bin/elixir-debug-adapter
# prepare the launcher
substituteInPlace $out/lib/launch.sh \
--replace "ERL_LIBS=\"\$SCRIPTPATH:\$ERL_LIBS\"" \
@@ -2,11 +2,11 @@
stdenv.mkDerivation rec {
pname = "jasmin-compiler";
version = "2023.06.1";
version = "2023.06.2";
src = fetchurl {
url = "https://github.com/jasmin-lang/jasmin/releases/download/v${version}/jasmin-compiler-v${version}.tar.bz2";
hash = "sha256-3+eIR8wkBlcUQVDsugHo/rHNHbE2vpE9gutp55kRY4Y=";
hash = "sha256-I3+MP2Q7ENOdQdvvCqcyD+I8ImF6c+9HQDpY6QUWuY8=";
};
sourceRoot = "jasmin-compiler-v${version}/compiler";
+1 -1
View File
@@ -21,7 +21,7 @@ rustPlatform.buildRustPackage.override {
passthru = {
rustc = rustc;
inherit (rustc) tests;
inherit (rustc.unwrapped) tests;
};
# Upstream rustc still assumes that musl = static[1]. The fix for
@@ -2,13 +2,13 @@
buildGoModule rec {
pname = "joker";
version = "1.3.3";
version = "1.3.4";
src = fetchFromGitHub {
rev = "v${version}";
owner = "candid82";
repo = "joker";
sha256 = "sha256-TaNuw84VCC1s2I7rmTdVKTrpT/nTrb+45haEFWf6S7k=";
sha256 = "sha256-sueFfR5KVj6HXR+5XWowL0Zjbuu7K+p/+skcTaXlOMc=";
};
vendorHash = "sha256-rxWYNGFbFUKjy232DOhVlh341GV2VKLngJKM+DEd27o=";
@@ -2,6 +2,7 @@ self: dontUse: with self;
let
inherit (python) pythonOnBuildForHost;
inherit (pkgs) runCommand;
pythonInterpreter = pythonOnBuildForHost.interpreter;
pythonSitePackages = python.sitePackages;
pythonCheckInterpreter = python.interpreter;
@@ -67,7 +68,7 @@ in {
# Such conflicts don't happen within the standard nixpkgs python package
# set, but in downstream projects that build packages depending on other
# versions of this hook's dependencies.
passthru.tests = import ./pypa-build-hook-tests.nix {
passthru.tests = import ./pypa-build-hook-test.nix {
inherit pythonOnBuildForHost runCommand;
};
} ./pypa-build-hook.sh) {
@@ -7,13 +7,13 @@
stdenv.mkDerivation rec {
pname = "level-zero";
version = "1.15.1";
version = "1.15.8";
src = fetchFromGitHub {
owner = "oneapi-src";
repo = "level-zero";
rev = "refs/tags/v${version}";
hash = "sha256-jf1sKFfUmeNbLtmawKISmLQK2/95XvSg40se9IEKMT0=";
hash = "sha256-n1dcsI2sLeB68HpI5oQ5p3zdAcSvnSY+qpHL9vp6FOk=";
};
nativeBuildInputs = [ cmake addOpenGLRunpath ];
@@ -4,38 +4,55 @@
, fetchpatch
, makeFontsConf
, nix-update-script
, testers
, autoreconfHook
, pkg-config
, perl
, unittest-cpp
, xa
, libgcrypt
, libexsid
, docSupport ? true
, doxygen
, graphviz
, libexsid
, libgcrypt
, perl
, pkg-config
, unittest-cpp
, xa
}:
stdenv.mkDerivation rec {
stdenv.mkDerivation (finalAttrs: {
pname = "libsidplayfp";
version = "2.5.0";
version = "2.5.1";
src = fetchFromGitHub {
owner = "libsidplayfp";
repo = "libsidplayfp";
rev = "v${version}";
rev = "v${finalAttrs.version}";
fetchSubmodules = true;
sha256 = "sha256-KCp/8UjVl8e3+4s1FD4GvHP7AUAS+eIB7RWhmgm5GIA=";
hash = "sha256-1e1QDSJ8CjLU794saba2auCKko7p2ylrdI0JWhh8Kco=";
};
outputs = [
"out"
] ++ lib.optionals docSupport [
"doc"
];
patches = [
# Pull autoconf-2.72 compatibility fix:
# https://github.com/libsidplayfp/libsidplayfp/pull/103
# Remove when version > 2.5.1
(fetchpatch {
name = "autoconf-2.72";
url = "https://github.com/libsidplayfp/libsidplayfp/commit/b8fff55f6aaa005a3899b59e70cd8730f962641b.patch";
name = "0001-libsidplayfp-autoconf-2.72-compat.patch";
url = "https://github.com/libsidplayfp/libsidplayfp/commit/2b1b41beb5099d5697e3f8416d78f27634732a9e.patch";
hash = "sha256-5Hk202IuHUBow7HnnPr2/ieWFjKDuHLQjQ9mJUML9q8=";
})
# Fix --disable-tests logic
# https://github.com/libsidplayfp/libsidplayfp/pull/108
# Remove when version > 2.5.1
(fetchpatch {
name = "0002-libsidplayfp-Fix-autoconf-logic-for-tests-option.patch";
url = "https://github.com/libsidplayfp/libsidplayfp/commit/39dd2893b6186c4932d17b529bb62627b742b742.patch";
hash = "sha256-ErdfPvu8R81XxdHu2TaV87OpLFlRhJai51QcYUIkUZ4=";
})
];
postPatch = ''
@@ -44,30 +61,35 @@ stdenv.mkDerivation rec {
strictDeps = true;
nativeBuildInputs = [ autoreconfHook pkg-config perl xa ]
++ lib.optionals docSupport [ doxygen graphviz ];
nativeBuildInputs = [
autoreconfHook
perl
pkg-config
xa
] ++ lib.optionals docSupport [
doxygen
graphviz
];
buildInputs = [ libgcrypt libexsid ];
buildInputs = [
libexsid
libgcrypt
];
doCheck = stdenv.buildPlatform.canExecute stdenv.hostPlatform;
checkInputs = [ unittest-cpp ];
checkInputs = [
unittest-cpp
];
enableParallelBuilding = true;
installTargets = [ "install" ]
++ lib.optionals docSupport [ "doc" ];
outputs = [ "out" ]
++ lib.optionals docSupport [ "doc" ];
configureFlags = [
"--enable-hardsid"
"--with-gcrypt"
"--with-exsid"
]
++ lib.optional doCheck "--enable-tests";
(lib.strings.enableFeature true "hardsid")
(lib.strings.withFeature true "gcrypt")
(lib.strings.withFeature true "exsid")
(lib.strings.enableFeature finalAttrs.finalPackage.doCheck "tests")
];
# Make Doxygen happy with the setup, reduce log noise
FONTCONFIG_FILE = lib.optionalString docSupport (makeFontsConf { fontDirectories = [ ]; });
preBuild = ''
@@ -75,12 +97,21 @@ stdenv.mkDerivation rec {
export XDG_CACHE_HOME=$TMPDIR
'';
buildFlags = [
"all"
] ++ lib.optionals docSupport [
"doc"
];
doCheck = stdenv.buildPlatform.canExecute stdenv.hostPlatform;
postInstall = lib.optionalString docSupport ''
mkdir -p $doc/share/doc/libsidplayfp
mv docs/html $doc/share/doc/libsidplayfp/
'';
passthru = {
tests.pkg-config = testers.testMetaPkgConfig finalAttrs.finalPackage;
updateScript = nix-update-script { };
};
@@ -96,5 +127,9 @@ stdenv.mkDerivation rec {
license = with licenses; [ gpl2Plus ];
maintainers = with maintainers; [ ramkromberg OPNA2608 ];
platforms = platforms.all;
pkgConfigModules = [
"libsidplayfp"
"libstilview"
];
};
}
})
@@ -0,0 +1,13 @@
diff --git a/include/internal/common.h b/include/internal/common.h
index 15666f1..d91e25b 100644
--- a/include/internal/common.h
+++ b/include/internal/common.h
@@ -83,7 +83,7 @@ __owur static ossl_inline int ossl_assert_int(int expr, const char *exprstr,
# ifndef OPENSSL_SYS_VMS
# define X509_CERT_AREA OPENSSLDIR
# define X509_CERT_DIR OPENSSLDIR "/certs"
-# define X509_CERT_FILE OPENSSLDIR "/cert.pem"
+# define X509_CERT_FILE "/nix/var/nix/profiles/default/etc/ssl/certs/ca-bundle.crt"
# define X509_PRIVATE_DIR OPENSSLDIR "/private"
# define CTLOG_FILE OPENSSLDIR "/ct_log_list.cnf"
# else
@@ -0,0 +1,13 @@
diff --git a/include/internal/common.h b/include/internal/common.h
index 15666f1..d91e25b 100644
--- a/include/internal/common.h
+++ b/include/internal/common.h
@@ -83,7 +83,7 @@ __owur static ossl_inline int ossl_assert_int(int expr, const char *exprstr,
# ifndef OPENSSL_SYS_VMS
# define X509_CERT_AREA OPENSSLDIR
# define X509_CERT_DIR OPENSSLDIR "/certs"
-# define X509_CERT_FILE OPENSSLDIR "/cert.pem"
+# define X509_CERT_FILE "/etc/ssl/certs/ca-certificates.crt"
# define X509_PRIVATE_DIR OPENSSLDIR "/private"
# define CTLOG_FILE OPENSSLDIR "/ct_log_list.cnf"
# else
+12 -5
View File
@@ -234,6 +234,13 @@ let
});
in {
# intended version "policy":
# - 1.1 as long as some package exists, which does not build without it
# - latest 3.x LTS
# - latest 3.x non-LTS as preview/for development
#
# - other versions in between only when reasonable need is stated for some package
# - backport every security critical fix release e.g. 3.0.y -> 3.0.y+1 but no new version, e.g. 3.1 -> 3.2
# If you do upgrade here, please update in pkgs/top-level/release.nix
# the permitted insecure version to ensure it gets cached for our users
@@ -279,9 +286,9 @@ in {
};
};
openssl_3_1 = common {
version = "3.1.4";
hash = "sha256-hAr1Nmq5tSK95SWCa+PvD7Cvgcap69hMqmAP6hcx7uM=";
openssl_3_2 = common {
version = "3.2.0";
hash = "sha256-FMgm8Hx+QzcG+1xp+p4l2rlWhIRLTJYqLPG/GD60aQ4=";
patches = [
./3.0/nix-ssl-cert-file.patch
@@ -291,8 +298,8 @@ in {
./3.0/openssl-disable-kernel-detection.patch
(if stdenv.hostPlatform.isDarwin
then ./use-etc-ssl-certs-darwin.patch
else ./use-etc-ssl-certs.patch)
then ./3.2/use-etc-ssl-certs-darwin.patch
else ./3.2/use-etc-ssl-certs.patch)
];
withDocs = true;
@@ -3290,18 +3290,18 @@ buildLuarocksPackage {
toml-edit = callPackage({ buildLuarocksPackage, fetchgit, fetchurl, lua, luaOlder, luarocks-build-rust-mlua }:
buildLuarocksPackage {
pname = "toml-edit";
version = "0.1.4-1";
version = "0.1.5-1";
knownRockspec = (fetchurl {
url = "mirror://luarocks/toml-edit-0.1.4-1.rockspec";
sha256 = "05bcc1xafcspdf1rcka9bhg7b6z617b4jrcahs1r7grcp78w89vf";
url = "mirror://luarocks/toml-edit-0.1.5-1.rockspec";
sha256 = "1xgjh8x44kn24vc29si811zq2a7pr24zqj4w07pys5k6ccnv26qz";
}).outPath;
src = fetchgit ( removeAttrs (builtins.fromJSON ''{
"url": "https://github.com/vhyrro/toml-edit.lua",
"rev": "f6efdab4ca6fab276f172060971781dc42a94f2d",
"date": "2023-10-02T16:54:10+02:00",
"path": "/nix/store/p1368agmqg4jwb1qvf2iff3fdrq9vkdj-toml-edit.lua",
"sha256": "1aa8znjnmm84392gnl7w0hm069xfv7niym3i8my7kyk0vdgxja06",
"hash": "sha256-BijZX9tg+nl8RXFUH+3ZricDKgT8UPtEGgTVaqX9SKk=",
"rev": "34f072d8ff054b3124d9d2efc0263028d7425525",
"date": "2023-12-29T15:53:36+01:00",
"path": "/nix/store/z1gn59hz9ypk3icn3gmafaa19nzx7a1v-toml-edit.lua",
"sha256": "0jzzp4sd48haq1kmh2k85gkygfq39i10kvgjyqffcrv3frdihxvx",
"hash": "sha256-fXcYW3ZjZ+Yc9vLtCUJMA7vn5ytoClhnwAoi0jS5/0s=",
"fetchLFS": false,
"fetchSubmodules": true,
"deepClone": false,
+1 -1
View File
@@ -618,7 +618,7 @@ with prev;
cargoDeps = rustPlatform.fetchCargoTarball {
src = oa.src;
hash = "sha256-pLAisfnSDoAToQO/kdKTdic6vEug7/WFNtgOfj0bRAE=";
hash = "sha256-gvUqkLOa0WvAK4GcTkufr0lC2BOs2FQ2bgFpB0qa47k=";
};
nativeBuildInputs = oa.nativeBuildInputs ++ [ cargo rustPlatform.cargoSetupHook ];
+5 -2
View File
@@ -2,7 +2,7 @@
, stdenv
, cmake
, fetchFromGitHub
, static ? stdenv.hostPlatform.isStatic
, withFilters ? false
}:
let
@@ -18,16 +18,19 @@ let
inherit hash;
};
outputs = [ "out" "dev" ];
nativeBuildInputs = [ cmake ];
cmakeFlags = [
"-DBUILD_SHARED_LIBS=${if static then "OFF" else "ON"}"
"-DBUILD_SHARED_LIBS=ON"
"-DBUILD_BENCHMARKS=OFF"
"-DBUILD_FUZZERS=OFF"
"-DBUILD_GENERATORS=OFF"
"-DENABLE_COVERAGE=OFF"
"-DENABLE_FORMAT=OFF"
"-DENABLE_LINTING=OFF"
(lib.cmakeBool "BUILD_FILTERS" withFilters)
];
meta = with lib; {
@@ -11,6 +11,7 @@
, packaging
, psutil
, pyyaml
, safetensors
, torch
, evaluate
, parameterized
@@ -19,26 +20,18 @@
buildPythonPackage rec {
pname = "accelerate";
version = "0.24.1";
format = "pyproject";
version = "0.25.0";
pyproject = true;
disabled = pythonOlder "3.7";
src = fetchFromGitHub {
owner = "huggingface";
repo = pname;
rev = "refs/tags/v${version}";
hash = "sha256-DKyFb+4DUMhVUwr+sgF2IaJS9pEj2o2shGYwExfffWg=";
hash = "sha256-WIMOSfo9fGbevMkUHvFsA51SOiGkBO1cK388FudRDY0=";
};
patches = [
# https://github.com/huggingface/accelerate/pull/2121
(fetchpatch {
name = "fix-import-error-without-torch_distributed.patch";
url = "https://github.com/huggingface/accelerate/commit/42048092eabd67a407ea513a62f2acde97079fbc.patch";
hash = "sha256-9lvnU6z5ZEFc5RVw2bP0cGVyrwAp/pxX4ZgnmCN7qH8=";
})
];
nativeBuildInputs = [ setuptools ];
propagatedBuildInputs = [
@@ -46,6 +39,7 @@ buildPythonPackage rec {
packaging
psutil
pyyaml
safetensors
torch
];
@@ -83,9 +77,6 @@ buildPythonPackage rec {
] ++ lib.optionals (stdenv.isDarwin && stdenv.isx86_64) [
# RuntimeError: torch_shm_manager: execl failed: Permission denied
"CheckpointTest"
] ++ lib.optionals (pythonAtLeast "3.11") [
# python3.11 not yet supported for torch.compile
"test_dynamo_extract_model"
];
disabledTestPaths = lib.optionals (!(stdenv.isLinux && stdenv.isx86_64)) [
@@ -8,7 +8,7 @@
buildPythonPackage rec {
pname = "ailment";
version = "9.2.81";
version = "9.2.82";
pyproject = true;
disabled = pythonOlder "3.11";
@@ -17,7 +17,7 @@ buildPythonPackage rec {
owner = "angr";
repo = pname;
rev = "refs/tags/v${version}";
hash = "sha256-ovV6BlhED9Du/jKQzgBFSp+XPYVAkNONU5iOEd52e2s=";
hash = "sha256-jDejI5e2ASoQUMPS9Ajis14RF66HnbkoOK6+Xs8ydis=";
};
nativeBuildInputs = [
@@ -32,7 +32,7 @@
buildPythonPackage rec {
pname = "angr";
version = "9.2.81";
version = "9.2.82";
pyproject = true;
disabled = pythonOlder "3.11";
@@ -41,7 +41,7 @@ buildPythonPackage rec {
owner = "angr";
repo = "angr";
rev = "refs/tags/v${version}";
hash = "sha256-ckak602Uz8YqBDVmh3iDh9d9/SPNRZMil8PskUbrjLA=";
hash = "sha256-3DqR1p2VK9Xe2Yk+gZ81GM4Cn39TDrx1LSivu4xVDOI=";
};
propagatedBuildInputs = [
@@ -9,7 +9,7 @@
buildPythonPackage rec {
pname = "archinfo";
version = "9.2.81";
version = "9.2.82";
pyproject = true;
disabled = pythonOlder "3.8";
@@ -18,7 +18,7 @@ buildPythonPackage rec {
owner = "angr";
repo = pname;
rev = "refs/tags/v${version}";
hash = "sha256-e/13v2hm0yYoO2A/kz6ekvN1FP8XNqqypfZdHKGEItM=";
hash = "sha256-uK42wbP6zZFRR6JqHs3Ag5zsPT9JFyKviDRxLDa1QjY=";
};
nativeBuildInputs = [
@@ -31,7 +31,7 @@ buildPythonPackage rec {
cp39 = "sha256-BzMOVue7E1S1+5+XTcPELko81ujc9MbmqLhNsU7pqO0=";
cp310 = "sha256-eUD9pQu9GsbV8MPD1MiF3Ihr+zYioSOo6P15hYIwPYo=";
cp311 = "sha256-rAmkI3EIZPYiXrxFowfDC0Gf3kRw0uX0i6Kx6Zu+hNM=";
}.${pyShortVersion};
}.${pyShortVersion} or (throw "${pname} is missing hash for ${pyShortVersion}");
};
propagatedBuildInputs = [
@@ -8,13 +8,11 @@
, numba
, numpy
, pandas
, pytest
, setuptools
, cloudpickle
, pytestCheckHook
, scipy
, packaging
, typing-extensions
, pythonOlder
, xarray
, xarray-einstats
@@ -33,7 +31,7 @@
buildPythonPackage rec {
pname = "arviz";
version = "0.16.1";
version = "0.17.0";
pyproject = true;
disabled = pythonOlder "3.9";
@@ -42,7 +40,7 @@ buildPythonPackage rec {
owner = "arviz-devs";
repo = "arviz";
rev = "refs/tags/v${version}";
hash = "sha256-kixWGj0M0flTq5rXSiPB0nfZaGYRvvMBGAJpehdW8KY=";
hash = "sha256-DqVwbiNJHdRxK3Ppfa6sqPJzDqMaj1mtlAJHFq09u2Y=";
};
propagatedBuildInputs = [
@@ -86,6 +84,7 @@ buildPythonPackage rec {
disabledTests = [
# Tests require network access
"test_plot_ppc_transposed"
"test_plot_separation"
"test_plot_trace_legend"
"test_cov"
@@ -0,0 +1,48 @@
{ lib
, buildPythonPackage
, fetchFromGitHub
, pybind11
, pytestCheckHook
, pythonOlder
, setuptools
}:
buildPythonPackage rec {
pname = "binary2strings";
version = "0.1.13";
pyproject = true;
disabled = pythonOlder "3.7";
src = fetchFromGitHub {
owner = "glmcdona";
repo = "binary2strings";
rev = "refs/tags/v${version}";
hash = "sha256-3UPT0PdnPAhOu3J2vU5NxE3f4Nb1zwuX3hJiy87nLD0=";
};
nativeBuildInputs = [
pybind11
setuptools
];
nativeCheckInputs = [
pytestCheckHook
];
pythonImportsCheck = [
"binary2strings"
];
pytestFlagsArray = [
"tests/test.py"
];
meta = with lib; {
description = "Module to extract Ascii, Utf8, and Unicode strings from binary data";
homepage = "https://github.com/glmcdona/binary2strings";
changelog = "https://github.com/glmcdona/binary2strings/releases/tag/v${version}";
license = licenses.mit;
maintainers = with maintainers; [ fab ];
};
}
@@ -11,7 +11,7 @@
buildPythonPackage rec {
pname = "clarifai-grpc";
version = "9.11.2";
version = "9.11.4";
pyproject = true;
disabled = pythonOlder "3.8";
@@ -20,7 +20,7 @@ buildPythonPackage rec {
owner = "Clarifai";
repo = "clarifai-python-grpc";
rev = "refs/tags/${version}";
hash = "sha256-ImfZ5g/EhAqkP4CbA7AZHWHQ88KBVCwMVU/j0OQCilg=";
hash = "sha256-uCXtd9m2phIgP85syIPtoFIxM9dkBzFxxK6OOF0VWAA=";
};
nativeBuildInputs = [
@@ -13,7 +13,7 @@
buildPythonPackage rec {
pname = "claripy";
version = "9.2.81";
version = "9.2.82";
pyproject = true;
disabled = pythonOlder "3.11";
@@ -22,7 +22,7 @@ buildPythonPackage rec {
owner = "angr";
repo = "claripy";
rev = "refs/tags/v${version}";
hash = "sha256-6DqIeLoJzpONte4WHI5EeV3iDDh1lNhegrNiKIgSAbY=";
hash = "sha256-veJd3M2Jf6snXZsR4P0wQpC0rSbIFT92QgyFFI5Er4Y=";
};
nativeBuildInputs = [
@@ -16,14 +16,14 @@
let
# The binaries are following the argr projects release cycle
version = "9.2.81";
version = "9.2.82";
# Binary files from https://github.com/angr/binaries (only used for testing and only here)
binaries = fetchFromGitHub {
owner = "angr";
repo = "binaries";
rev = "refs/tags/v${version}";
hash = "sha256-42J6uBM5Ek1uv5gc4ZwtWpVgUdS3Sd4Y+ge2hkG8QTA=";
hash = "sha256-fUp0nS4ILU90uvROH3qNy3kYrpt7yHzbCG5TE/0BqKU=";
};
in
@@ -38,7 +38,7 @@ buildPythonPackage rec {
owner = "angr";
repo = "cle";
rev = "refs/tags/v${version}";
hash = "sha256-NS3yi5Ysu0s5PcqnLYOUYI0qpfOX4/E/UDmReX7aNGM=";
hash = "sha256-wzRHYgnZPLDgcf1IlXxY2a52mbeImejj/F8DUAuB1VU=";
};
nativeBuildInputs = [
@@ -21,7 +21,7 @@
buildPythonPackage rec {
pname = "cloudpathlib";
version = "0.16.0";
version = "0.17.0";
pyproject = true;
disabled = pythonOlder "3.7";
@@ -29,8 +29,8 @@ buildPythonPackage rec {
src = fetchFromGitHub {
owner = "drivendataorg";
repo = "cloudpathlib";
rev = "v${version}";
hash = "sha256-d4CbzPy3H5HQ4YmSRCRMEYaTpwB7F0Bznd26aKWiHTA=";
rev = "refs/tags/v${version}";
hash = "sha256-rj8v4EUMPdB5zmbP4VQli2H6GjDor3BHaA95GwoKS5E=";
};
nativeBuildInputs = [
@@ -6,34 +6,46 @@
, fetchPypi
, knack
, pythonRelaxDepsHook
, setuptools-scm }:
, setuptools-scm
}:
buildPythonPackage rec {
pname = "dvc-azure";
version = "2.22.1";
format = "setuptools";
version = "3.0.1";
pyproject = true;
src = fetchPypi {
inherit pname version;
hash = "sha256-v3VRCN1OoST5RlfUOP9Dpfmf3o9C/ckusmh91Ya2Cik=";
hash = "sha256-TB7yY5b2AWBFt8+AnxyKyP6hoXi6cdHVjtffapRVfHc=";
};
# Prevent circular dependency
pythonRemoveDeps = [ "dvc" ];
pythonRemoveDeps = [
"dvc"
];
nativeBuildInputs = [ setuptools-scm pythonRelaxDepsHook ];
nativeBuildInputs = [
setuptools-scm
pythonRelaxDepsHook
];
propagatedBuildInputs = [
adlfs azure-identity dvc-objects knack
adlfs
azure-identity
dvc-objects
knack
];
# Network access is needed for tests
doCheck = false;
pythonImportsCheck = [ "dvc_azure" ];
# Circular dependency
# pythonImportsCheck = [
# "dvc_azure"
# ];
meta = with lib; {
description = "azure plugin for dvc";
description = "Azure plugin for dvc";
homepage = "https://pypi.org/project/dvc-azure/${version}";
changelog = "https://github.com/iterative/dvc-azure/releases/tag/${version}";
license = licenses.asl20;
@@ -14,7 +14,7 @@
buildPythonPackage rec {
pname = "dvc-data";
version = "3.0.1";
version = "3.5.0";
pyproject = true;
disabled = pythonOlder "3.8";
@@ -23,7 +23,7 @@ buildPythonPackage rec {
owner = "iterative";
repo = "dvc-data";
rev = "refs/tags/${version}";
hash = "sha256-OySGTJFHBb+Ot5NUZsQZ4gJkbc6ojrSyDWDPp32q74E=";
hash = "sha256-vLSb+RIaebF+ili+6bvU8wplcpycPVRadUkhkLHdqi8=";
};
SETUPTOOLS_SCM_PRETEND_VERSION = version;
@@ -4,29 +4,41 @@
, fetchPypi
, gcsfs
, pythonRelaxDepsHook
, setuptools-scm }:
, setuptools-scm
}:
buildPythonPackage rec {
pname = "dvc-gs";
version = "2.22.1";
format = "setuptools";
version = "3.0.1";
pyproject = true;
src = fetchPypi {
inherit pname version;
hash = "sha256-IKDwdSfolZwv8TvHHicVV42PYeULhskv8csbkiJzLbk=";
hash = "sha256-5UMKKX+4GCNm98S8kQsasQTY5cwi9hGhm84FFl3/7NQ=";
};
# Prevent circular dependency
pythonRemoveDeps = [ "dvc" ];
pythonRemoveDeps = [
"dvc"
];
nativeBuildInputs = [ setuptools-scm pythonRelaxDepsHook ];
nativeBuildInputs = [
setuptools-scm
pythonRelaxDepsHook
];
propagatedBuildInputs = [ gcsfs dvc-objects ];
propagatedBuildInputs = [
gcsfs
dvc-objects
];
# Network access is needed for tests
doCheck = false;
pythonImportsCheck = [ "dvc_gs" ];
# Circular dependency
# pythonImportsCheck = [
# "dvc_gs"
# ];
meta = with lib; {
description = "gs plugin for dvc";
@@ -13,7 +13,7 @@
buildPythonPackage rec {
pname = "dvc-objects";
version = "2.0.1";
version = "3.0.0";
pyproject = true;
disabled = pythonOlder "3.8";
@@ -22,7 +22,7 @@ buildPythonPackage rec {
owner = "iterative";
repo = "dvc-objects";
rev = "refs/tags/${version}";
hash = "sha256-nxZN0Q9mRAZJUOoxfE58lXZVOrY0r05iROcuo+nV99A=";
hash = "sha256-hpiDbECVXbBkewJa+RwrgTQFEFAb3Ir2qs0ENYuJtwI=";
};
SETUPTOOLS_SCM_PRETEND_VERSION = version;
@@ -7,36 +7,48 @@
, flatten-dict
, pythonRelaxDepsHook
, s3fs
, setuptools-scm }:
, setuptools-scm
}:
buildPythonPackage rec {
pname = "dvc-s3";
version = "2.23.0";
format = "setuptools";
version = "3.0.1";
pyproject = true;
src = fetchPypi {
inherit pname version;
hash = "sha256-HyhZj1sN70o1CTNCiroGKjaMk7tBGqPG2PRsrnm1uVc=";
hash = "sha256-ax2Wsjfvu4hoF99eDPT2sbFhl30wuYtGdEonYCCkJMY=";
};
# Prevent circular dependency
pythonRemoveDeps = [ "dvc" ];
pythonRemoveDeps = [
"dvc"
];
# dvc-s3 uses boto3 directly, we add in propagatedBuildInputs
postPatch = ''
substituteInPlace setup.cfg --replace 'aiobotocore[boto3]' 'aiobotocore'
'';
nativeBuildInputs = [ setuptools-scm pythonRelaxDepsHook ];
nativeBuildInputs = [
setuptools-scm
pythonRelaxDepsHook
];
propagatedBuildInputs = [
aiobotocore boto3 dvc-objects flatten-dict s3fs
aiobotocore
boto3
dvc-objects
flatten-dict s3fs
];
# Network access is needed for tests
doCheck = false;
pythonImportsCheck = [ "dvc_s3" ];
# Circular dependency
# pythonImportsCheck = [
# "dvc_s3"
# ];
meta = with lib; {
description = "s3 plugin for dvc";
@@ -55,14 +55,14 @@
buildPythonPackage rec {
pname = "dvc";
version = "3.33.4";
version = "3.37.0";
format = "pyproject";
src = fetchFromGitHub {
owner = "iterative";
repo = pname;
rev = "refs/tags/${version}";
hash = "sha256-NWu12FVJDSSuxYGVWFNlbAEUINg05s64EJ6gIaErQ9E=";
hash = "sha256-mO6fhPUub09nWmiFSciwNhuS4VJAjQgIukc+lQWB7Qg=";
};
pythonRelaxDeps = [
@@ -14,7 +14,7 @@
buildPythonPackage rec {
pname = "dvclive";
version = "3.4.1";
version = "3.5.1";
format = "pyproject";
disabled = pythonOlder "3.8";
@@ -23,7 +23,7 @@ buildPythonPackage rec {
owner = "iterative";
repo = pname;
rev = "refs/tags/${version}";
hash = "sha256-apk1akdFLtps5fq28GUgLef2VEgZulj7vuhxsGpCqJE=";
hash = "sha256-QsA8HZ6wIWKvtQ+f3nyRKKZRNJS56eZ1sKw+KNHxfXc=";
};
SETUPTOOLS_SCM_PRETEND_VERSION = version;
@@ -2,7 +2,7 @@
buildPythonPackage rec {
pname = "gpxpy";
version = "1.5.0";
version = "1.6.2";
format = "setuptools";
disabled = pythonOlder "3.6";
@@ -10,7 +10,7 @@ buildPythonPackage rec {
owner = "tkrajina";
repo = pname;
rev = "v${version}";
hash = "sha256-Fkl2dte1WkPi2hBOdT23BMfNflR0j4GeNH86d46WNQk=";
hash = "sha256-s65k0u4LIwHX9RJMJIYMkNS4/Z0wstzqYVPAjydo2iI=";
};
propagatedBuildInputs = [ lxml ];
@@ -50,7 +50,7 @@ buildPythonPackage rec {
prePatch =
let
cmakeCommands = ''
include_directories(${h3}/include/h3)
include_directories(${lib.getDev h3}/include/h3)
link_directories(${h3}/lib)
'';
in ''
@@ -22,14 +22,14 @@
buildPythonPackage rec {
pname = "ipykernel";
version = "6.27.1";
version = "6.28.0";
pyproject = true;
disabled = pythonOlder "3.8";
src = fetchPypi {
inherit pname version;
hash = "sha256-fV1ZS2aQZUtNKZ7bpehy3Be7c5ao0GCcl8t7ihxgXeY=";
hash = "sha256-acEUA9Jt5p3wIiWRb5FrN+pLmvQX2gqMgn+EMo2I5fM=";
};
# debugpy is optional, see https://github.com/ipython/ipykernel/pull/767
@@ -68,6 +68,7 @@ buildPythonPackage rec {
meta = {
description = "IPython Kernel for Jupyter";
homepage = "https://ipython.org/";
changelog = "https://github.com/ipython/ipykernel/releases/tag/v${version}";
license = lib.licenses.bsd3;
maintainers = with lib.maintainers; [ fridh ] ++ lib.teams.jupyter.members;
};
@@ -12,7 +12,7 @@
buildPythonPackage rec {
pname = "langsmith";
version = "0.0.72";
version = "0.0.75";
format = "pyproject";
disabled = pythonOlder "3.8";
@@ -21,7 +21,7 @@ buildPythonPackage rec {
owner = "langchain-ai";
repo = "langsmith-sdk";
rev = "refs/tags/v${version}";
hash = "sha256-o7KERA+fYo69jR8LSsa901nE1r3GD38rYO7sj0QsOgM=";
hash = "sha256-BbDB3xP3OCRXxbOqFIzFNrpK5+wHbIZ/VlurNXrXpTw=";
};
sourceRoot = "${src.name}/python";
@@ -1,22 +1,27 @@
{ lib
, buildPythonPackage
, fetchFromGitHub
, setuptools
, pytestCheckHook
}:
buildPythonPackage rec {
pname = "ndms2-client";
version = "0.1.2";
version = "0.1.3";
format = "setuptools";
pyproject = true;
src = fetchFromGitHub {
owner = "foxel";
repo = "python_ndms2_client";
rev = version;
hash = "sha256-cM36xNLymg5Xph3bvbUGdAEmMABJ9y3/w/U8re6ZfB4=";
hash = "sha256-A19olC1rTHTy0xyeSP45fqvv9GUynQSrMgXBgW8ySOs=";
};
nativeBuildInputs = [
setuptools
];
nativeCheckInputs = [
pytestCheckHook
];
@@ -11,7 +11,7 @@
buildPythonPackage rec {
pname = "nsz";
version = "4.6.0";
version = "4.6.1";
format = "setuptools";
disabled = pythonOlder "3.7";
@@ -20,7 +20,7 @@ buildPythonPackage rec {
owner = "nicoboss";
repo = pname;
rev = "refs/tags/${version}";
hash = "sha256-2Df+xvfDHtZt3XW4ShKZFsjsFigW+3Avz8uStVtC1i4=";
hash = "sha256-ch4HzQFa95o3HMsi7R0LpPWmhN/Z9EYfrmCdUZLwPSE=";
};
propagatedBuildInputs = [
@@ -8,13 +8,13 @@
buildPythonPackage rec {
pname = "oelint-parser";
version = "2.12.1";
version = "2.12.3";
format = "setuptools";
src = fetchPypi {
inherit version;
pname = "oelint_parser";
hash = "sha256-So9Kyj4jMRiaBRQGXE88DSWgLEPqQkv8R/Sd8tyRvE0=";
hash = "sha256-fzHEy9/BxstPAYhVTG0o7Gn2D9UKuSZvI0X5ynZ+oEk=";
};
buildInputs = [ pip ];
@@ -0,0 +1,69 @@
{ stdenv
, lib
, buildPythonPackage
, fetchFromGitHub
, pythonOlder
, pytestCheckHook
, setuptools
, numpy
, pydicom
, pylibjpeg-libjpeg
}:
let
pylibjpeg-data = buildPythonPackage rec {
pname = "pylibjpeg-data";
version = "1.0.0dev0";
pyproject = true;
nativeBuildInputs = [ setuptools ];
src = fetchFromGitHub {
owner = "pydicom";
repo = "pylibjpeg-data";
rev = "2ab4b8a65b070656eca2582bd23197a3d01cdccd";
hash = "sha256-cFE1XjrqyGqwHCYGRucXK+q4k7ftUIbYwBw4WwIFtEc=";
};
doCheck = false;
};
in
buildPythonPackage rec {
pname = "pylibjpeg";
version = "1.4.0";
pyproject = true;
disabled = pythonOlder "3.7";
src = fetchFromGitHub {
owner = "pydicom";
repo = "pylibjpeg";
rev = "refs/tags/v${version}";
hash = "sha256-Px1DyYDkKAUdYo+ZxZ1w7TkPzWN++styiFl02iQOvyQ=";
};
nativeBuildInputs = [ setuptools ];
propagatedBuildInputs = [ numpy ];
nativeCheckInputs = [
pytestCheckHook
pydicom
pylibjpeg-data
pylibjpeg-libjpeg
];
pythonImportsCheck = [ "pylibjpeg" ];
meta = with lib; {
description = "Python framework for decoding JPEG images, with a focus on supporting Pydicom";
homepage = "https://github.com/pydicom/pylibjpeg";
changelog = "https://github.com/pydicom/pylibjpeg/releases/tag/v${version}";
license = licenses.mit;
maintainers = with maintainers; [ bcdarwin ];
# several test failures of form
# "pydicom.errors.InvalidDicomError: File is missing DICOM File Meta Information header or the 'DICM' prefix is missing from the header. ..."
broken = stdenv.isDarwin;
};
}

Some files were not shown because too many files have changed in this diff Show More