Merge master into haskell-updates

This commit is contained in:
github-actions[bot] 2024-02-23 00:12:05 +00:00 committed by GitHub
commit c1d60ca8ac
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
239 changed files with 10652 additions and 3211 deletions

14
.github/CODEOWNERS vendored
View file

@ -271,13 +271,13 @@ pkgs/development/python-modules/buildcatrust/ @ajs124 @lukegb @mweinelt
/pkgs/applications/editors/vscode/extensions @jonringer
# PHP interpreter, packages, extensions, tests and documentation
/doc/languages-frameworks/php.section.md @aanderse @drupol @etu @globin @ma27 @talyz
/nixos/tests/php @aanderse @drupol @etu @globin @ma27 @talyz
/pkgs/build-support/php/build-pecl.nix @aanderse @drupol @etu @globin @ma27 @talyz
/pkgs/build-support/php @drupol @etu
/pkgs/development/interpreters/php @jtojnar @aanderse @drupol @etu @globin @ma27 @talyz
/pkgs/development/php-packages @aanderse @drupol @etu @globin @ma27 @talyz
/pkgs/top-level/php-packages.nix @jtojnar @aanderse @drupol @etu @globin @ma27 @talyz
/doc/languages-frameworks/php.section.md @aanderse @drupol @globin @ma27 @talyz
/nixos/tests/php @aanderse @drupol @globin @ma27 @talyz
/pkgs/build-support/php/build-pecl.nix @aanderse @drupol @globin @ma27 @talyz
/pkgs/build-support/php @drupol
/pkgs/development/interpreters/php @jtojnar @aanderse @drupol @globin @ma27 @talyz
/pkgs/development/php-packages @aanderse @drupol @globin @ma27 @talyz
/pkgs/top-level/php-packages.nix @jtojnar @aanderse @drupol @globin @ma27 @talyz
# Docker tools
/pkgs/build-support/docker @roberth

View file

@ -80,6 +80,10 @@ stdenv.mkDerivation {
The main difference between `fetchurl` and `fetchzip` is in how they store the contents. `fetchurl` will store the unaltered contents of the URL within the Nix store. `fetchzip` on the other hand, will decompress the archive for you, making files and directories directly accessible in the future. `fetchzip` can only be used with archives. Despite the name, `fetchzip` is not limited to .zip files and can also be used with any tarball.
Additional parameters to `fetchurl`:
- `downloadToTemp`: Defaults to `false`. If `true`, saves the source to `$downloadedFile`, to be used in conjunction with `postFetch`
- `postFetch`: Shell code executed after the file has been fetched successfully. Use it for postprocessing, to check or transform the file.
## `fetchpatch` {#fetchpatch}
`fetchpatch` works very similarly to `fetchurl` with the same arguments expected. It expects patch files as a source and performs normalization on them before computing the checksum. For example, it will remove comments or other unstable parts that are sometimes added by version control systems and can change over time.

View file

@ -1256,7 +1256,78 @@ let
(opt.highestPrio or defaultOverridePriority)
(f opt.value);
doRename = { from, to, visible, warn, use, withPriority ? true, condition ? true }:
/*
Return a module that help declares an option that has been renamed.
When a value is defined for the old option, it is forwarded to the `to` option.
*/
doRename = {
# List of strings representing the attribute path of the old option.
from,
# List of strings representing the attribute path of the new option.
to,
# Boolean, whether the old option is to be included in documentation.
visible,
# Whether to warn when a value is defined for the old option.
# NOTE: This requires the NixOS assertions module to be imported, so
# - this generally does not work in submodules
# - this may or may not work outside NixOS
warn,
# A function that is applied to the option value, to form the value
# of the old `from` option.
#
# For example, the identity function can be passed, to return the option value unchanged.
# ```nix
# use = x: x;
# ```
#
# To add a warning, you can pass the partially applied `warn` function.
# ```nix
# use = lib.warn "Obsolete option `${opt.old}' is used. Use `${opt.to}' instead.";
# ```
use,
# Legacy option, enabled by default: whether to preserve the priority of definitions in `old`.
withPriority ? true,
# A boolean that defines the `mkIf` condition for `to`.
# If the condition evaluates to `true`, and the `to` path points into an
# `attrsOf (submodule ...)`, then `doRename` would cause an empty module to
# be created, even if the `from` option is undefined.
# By setting this to an expression that may return `false`, you can inhibit
# this undesired behavior.
#
# Example:
#
# ```nix
# { config, lib, ... }:
# let
# inherit (lib) mkOption mkEnableOption types doRename;
# in
# {
# options = {
#
# # Old service
# services.foo.enable = mkEnableOption "foo";
#
# # New multi-instance service
# services.foos = mkOption {
# type = types.attrsOf (types.submodule …);
# };
# };
# imports = [
# (doRename {
# from = [ "services" "foo" "bar" ];
# to = [ "services" "foos" "" "bar" ];
# visible = true;
# warn = false;
# use = x: x;
# withPriority = true;
# # Only define services.foos."" if needed. (It's not just about `bar`)
# condition = config.services.foo.enable;
# })
# ];
# }
# ```
condition ? true
}:
{ config, options, ... }:
let
fromOpt = getAttrFromPath from options;

View file

@ -4590,6 +4590,12 @@
githubId = 47436522;
name = "deliciouslytyped";
};
delliott = {
name = "Darragh Elliott";
github = "delliottxyz";
githubId = 150736012;
email = "me+git@delliott.xyz";
};
delroth = {
email = "delroth@gmail.com";
github = "delroth";
@ -5931,7 +5937,7 @@
};
etu = {
email = "elis@hirwing.se";
matrix = "@etu:semi.social";
matrix = "@etu:failar.nu";
github = "etu";
githubId = 461970;
name = "Elis Hirwing";
@ -6707,6 +6713,16 @@
githubId = 29337229;
name = "mtths";
};
fx-chun = {
email = "faye@lolc.at";
matrix = "@faye:lolc.at";
github = "fx-chun";
githubId = 40049608;
name = "Faye Chun";
keys = [{
fingerprint = "ACB8 DB1F E88D A908 6332 BDB1 5A71 B010 2FD7 3FC0";
}];
};
fxfactorial = {
email = "edgar.factorial@gmail.com";
github = "fxfactorial";
@ -13926,13 +13942,6 @@
githubId = 47303199;
name = "Simon Gutgesell";
};
noneucat = {
email = "andy@lolc.at";
matrix = "@noneucat:lolc.at";
github = "noneucat";
githubId = 40049608;
name = "Andy Chun";
};
noodlez1232 = {
email = "contact@nathanielbarragan.xyz";
matrix = "@noodlez1232:matrix.org";
@ -15814,6 +15823,12 @@
github = "rafaelrc7";
githubId = 5376043;
};
rafameou = {
email = "rafaelmazz22@gmail.com";
name = "Rafael Mazzutti";
github = "rafameou";
githubId = 26395874;
};
ragge = {
email = "r.dahlen@gmail.com";
github = "ragnard";

View file

@ -775,7 +775,6 @@ with lib.maintainers; {
members = [
aanderse
drupol
etu
ma27
talyz
];

View file

@ -25,6 +25,10 @@ In addition to numerous new and upgraded packages, this release has the followin
- A new option `systemd.sysusers.enable` was added. If enabled, users and
groups are created with systemd-sysusers instead of with a custom perl script.
- A new option `virtualisation.containers.cdi` was added. It contains `static` and `dynamic` attributes (corresponding to `/etc/cdi` and `/run/cdi` respectively) to configure the Container Device Interface (CDI).
- `virtualisation.docker.enableNvidia` and `virtualisation.podman.enableNvidia` options are deprecated. `virtualisation.containers.cdi.dynamic.nvidia.enable` should be used instead. This option will expose GPUs on containers with the `--device` CLI option. This is supported by Docker 25, Podman 3.2.0 and Singularity 4. Any container runtime that supports the CDI specification will take advantage of this feature.
- A new option `system.etc.overlay.enable` was added. If enabled, `/etc` is
mounted via an overlayfs instead of being created by a custom perl script.
@ -81,6 +85,8 @@ The pre-existing [services.ankisyncd](#opt-services.ankisyncd.enable) has been m
- [RustDesk](https://rustdesk.com), a full-featured open source remote control alternative for self-hosting and security with minimal configuration. Alternative to TeamViewer.
- [Scrutiny](https://github.com/AnalogJ/scrutiny), a S.M.A.R.T monitoring tool for hard disks with a web frontend.
- [systemd-lock-handler](https://git.sr.ht/~whynothugo/systemd-lock-handler/), a bridge between logind D-Bus events and systemd targets. Available as [services.systemd-lock-handler.enable](#opt-services.systemd-lock-handler.enable).
## Backward Incompatibilities {#sec-release-24.05-incompatibilities}

View file

@ -546,6 +546,7 @@
./services/hardware/kanata.nix
./services/hardware/lcd.nix
./services/hardware/lirc.nix
./services/hardware/nvidia-container-toolkit-cdi-generator
./services/hardware/nvidia-optimus.nix
./services/hardware/openrgb.nix
./services/hardware/pcscd.nix
@ -840,6 +841,7 @@
./services/monitoring/riemann.nix
./services/monitoring/rustdesk-server.nix
./services/monitoring/scollector.nix
./services/monitoring/scrutiny.nix
./services/monitoring/smartd.nix
./services/monitoring/snmpd.nix
./services/monitoring/statsd.nix

View file

@ -0,0 +1,39 @@
{ config, lib, pkgs }: let
mountOptions = { options = ["ro" "nosuid" "nodev" "bind"]; };
mounts = [
{ hostPath = "${lib.getBin config.hardware.nvidia.package}/bin/nvidia-cuda-mps-control";
containerPath = "/usr/bin/nvidia-cuda-mps-control"; }
{ hostPath = "${lib.getBin config.hardware.nvidia.package}/bin/nvidia-cuda-mps-server";
containerPath = "/usr/bin/nvidia-cuda-mps-server"; }
{ hostPath = "${lib.getBin config.hardware.nvidia.package}/bin/nvidia-debugdump";
containerPath = "/usr/bin/nvidia-debugdump"; }
{ hostPath = "${lib.getBin config.hardware.nvidia.package}/bin/nvidia-powerd";
containerPath = "/usr/bin/nvidia-powerd"; }
{ hostPath = "${lib.getBin config.hardware.nvidia.package}/bin/nvidia-smi";
containerPath = "/usr/bin/nvidia-smi"; }
{ hostPath = "${pkgs.nvidia-container-toolkit}/bin/nvidia-ctk";
containerPath = "/usr/bin/nvidia-ctk"; }
{ hostPath = "${pkgs.glibc}/lib";
containerPath = "${pkgs.glibc}/lib"; }
{ hostPath = "${pkgs.glibc}/lib64";
containerPath = "${pkgs.glibc}/lib64"; }
];
jqAddMountExpression = ".containerEdits.mounts[.containerEdits.mounts | length] |= . +";
mountsToJq = lib.concatMap
(mount:
["${pkgs.jq}/bin/jq '${jqAddMountExpression} ${builtins.toJSON (mount // mountOptions)}'"])
mounts;
in ''
#! ${pkgs.runtimeShell}
function cdiGenerate {
${pkgs.nvidia-container-toolkit}/bin/nvidia-ctk cdi generate \
--format json \
--ldconfig-path ${pkgs.glibc.bin}/bin/ldconfig \
--library-search-path ${config.hardware.nvidia.package}/lib \
--nvidia-ctk-path ${pkgs.nvidia-container-toolkit}/bin/nvidia-ctk
}
cdiGenerate | \
${lib.concatStringsSep " | " mountsToJq} > $RUNTIME_DIRECTORY/nvidia-container-toolkit.json
''

View file

@ -0,0 +1,38 @@
{ config, lib, pkgs, ... }:
{
options = {
hardware.nvidia-container-toolkit-cdi-generator.enable = lib.mkOption {
default = false;
internal = true;
visible = false;
type = lib.types.bool;
description = lib.mdDoc ''
Enable dynamic CDI configuration for NVidia devices by running
nvidia-container-toolkit on boot.
'';
};
};
config = {
systemd.services.nvidia-container-toolkit-cdi-generator = lib.mkIf config.hardware.nvidia-container-toolkit-cdi-generator.enable {
description = "Container Device Interface (CDI) for Nvidia generator";
wantedBy = [ "multi-user.target" ];
after = [ "systemd-udev-settle.service" ];
serviceConfig = {
RuntimeDirectory = "cdi";
RemainAfterExit = true;
ExecStart = let
script = (pkgs.writeScriptBin "nvidia-cdi-generator"
(import ./cdi-generate.nix { inherit config lib pkgs; })); in (lib.getExe script);
Type = "oneshot";
};
};
};
}

View file

@ -1,41 +1,54 @@
{ config, lib, pkgs, options }:
{ config
, lib
, pkgs
, options
}:
with lib;
let
inherit (lib)
escapeShellArgs
mkOption
optionals
types
;
let cfg = config.services.prometheus.exporters.fastly;
cfg = config.services.prometheus.exporters.fastly;
in
{
port = 9118;
extraOpts = {
debug = mkEnableOption (lib.mdDoc "Debug logging mode for fastly-exporter");
extraOpts = with types; {
configFile = mkOption {
type = types.nullOr types.path;
type = nullOr path;
default = null;
description = lib.mdDoc ''
example = "./fastly-exporter-config.txt";
description = ''
Path to a fastly-exporter configuration file.
Example one can be generated with `fastly-exporter --config-file-example`.
'';
example = "./fastly-exporter-config.txt";
};
tokenPath = mkOption {
type = types.nullOr types.path;
apply = final: if final == null then null else toString final;
description = lib.mdDoc ''
type = path;
description = ''
A run-time path to the token file, which is supposed to be provisioned
outside of Nix store.
'';
};
};
serviceOpts = {
script = ''
${optionalString (cfg.tokenPath != null)
"export FASTLY_API_TOKEN=$(cat ${toString cfg.tokenPath})"}
${pkgs.prometheus-fastly-exporter}/bin/fastly-exporter \
-listen http://${cfg.listenAddress}:${toString cfg.port}
${optionalString cfg.debug "-debug true"} \
${optionalString (cfg.configFile != null) "-config-file ${cfg.configFile}"}
serviceConfig = {
LoadCredential = "fastly-api-token:${cfg.tokenPath}";
};
script = let
call = escapeShellArgs ([
"${pkgs.prometheus-fastly-exporter}/bin/fastly-exporter"
"-listen" "${cfg.listenAddress}:${toString cfg.port}"
] ++ optionals (cfg.configFile != null) [
"--config-file" cfg.configFile
] ++ cfg.extraFlags);
in ''
export FASTLY_API_TOKEN="$(cat $CREDENTIALS_DIRECTORY/fastly-api-token)"
${call}
'';
};
}

View file

@ -0,0 +1,221 @@
{ config, lib, pkgs, ... }:
let
cfg = config.services.scrutiny;
# Define the settings format used for this program
settingsFormat = pkgs.formats.yaml { };
in
{
options = {
services.scrutiny = {
enable = lib.mkEnableOption "Enables the scrutiny web application.";
package = lib.mkPackageOptionMD pkgs "scrutiny" { };
openFirewall = lib.mkOption {
type = lib.types.bool;
default = false;
description = "Open the default ports in the firewall for Scrutiny.";
};
influxdb.enable = lib.mkOption {
type = lib.types.bool;
default = true;
description = lib.mdDoc ''
Enables InfluxDB on the host system using the `services.influxdb2` NixOS module
with default options.
If you already have InfluxDB configured, or wish to connect to an external InfluxDB
instance, disable this option.
'';
};
settings = lib.mkOption {
description = lib.mdDoc ''
Scrutiny settings to be rendered into the configuration file.
See https://github.com/AnalogJ/scrutiny/blob/master/example.scrutiny.yaml.
'';
default = { };
type = lib.types.submodule {
freeformType = settingsFormat.type;
options.web.listen.port = lib.mkOption {
type = lib.types.port;
default = 8080;
description = lib.mdDoc "Port for web application to listen on.";
};
options.web.listen.host = lib.mkOption {
type = lib.types.str;
default = "0.0.0.0";
description = lib.mdDoc "Interface address for web application to bind to.";
};
options.web.listen.basepath = lib.mkOption {
type = lib.types.str;
default = "";
example = "/scrutiny";
description = lib.mdDoc ''
If Scrutiny will be behind a path prefixed reverse proxy, you can override this
value to serve Scrutiny on a subpath.
'';
};
options.log.level = lib.mkOption {
type = lib.types.enum [ "INFO" "DEBUG" ];
default = "INFO";
description = lib.mdDoc "Log level for Scrutiny.";
};
options.web.influxdb.scheme = lib.mkOption {
type = lib.types.str;
default = "http";
description = lib.mdDoc "URL scheme to use when connecting to InfluxDB.";
};
options.web.influxdb.host = lib.mkOption {
type = lib.types.str;
default = "0.0.0.0";
description = lib.mdDoc "IP or hostname of the InfluxDB instance.";
};
options.web.influxdb.port = lib.mkOption {
type = lib.types.port;
default = 8086;
description = lib.mdDoc "The port of the InfluxDB instance.";
};
options.web.influxdb.tls.insecure_skip_verify = lib.mkOption {
type = lib.types.bool;
default = false;
description = lib.mdDoc "Skip TLS verification when connecting to InfluxDB.";
};
options.web.influxdb.token = lib.mkOption {
type = lib.types.nullOr lib.types.str;
default = null;
description = lib.mdDoc "Authentication token for connecting to InfluxDB.";
};
options.web.influxdb.org = lib.mkOption {
type = lib.types.nullOr lib.types.str;
default = null;
description = lib.mdDoc "InfluxDB organisation under which to store data.";
};
options.web.influxdb.bucket = lib.mkOption {
type = lib.types.nullOr lib.types.str;
default = null;
description = lib.mdDoc "InfluxDB bucket in which to store data.";
};
};
};
collector = {
enable = lib.mkEnableOption "Enables the scrutiny metrics collector.";
package = lib.mkPackageOptionMD pkgs "scrutiny-collector" { };
schedule = lib.mkOption {
type = lib.types.str;
default = "*:0/15";
description = lib.mdDoc ''
How often to run the collector in systemd calendar format.
'';
};
settings = lib.mkOption {
description = lib.mdDoc ''
Collector settings to be rendered into the collector configuration file.
See https://github.com/AnalogJ/scrutiny/blob/master/example.collector.yaml.
'';
default = { };
type = lib.types.submodule {
freeformType = settingsFormat.type;
options.host.id = lib.mkOption {
type = lib.types.nullOr lib.types.str;
default = null;
description = lib.mdDoc "Host ID for identifying/labelling groups of disks";
};
options.api.endpoint = lib.mkOption {
type = lib.types.str;
default = "http://localhost:8080";
description = lib.mdDoc "Scrutiny app API endpoint for sending metrics to.";
};
options.log.level = lib.mkOption {
type = lib.types.enum [ "INFO" "DEBUG" ];
default = "INFO";
description = lib.mdDoc "Log level for Scrutiny collector.";
};
};
};
};
};
};
config = lib.mkIf (cfg.enable || cfg.collector.enable) {
services.influxdb2.enable = cfg.influxdb.enable;
networking.firewall = lib.mkIf cfg.openFirewall {
allowedTCPPorts = [ cfg.settings.web.listen.port ];
};
services.smartd = lib.mkIf cfg.collector.enable {
enable = true;
extraOptions = [
"-A /var/log/smartd/"
"--interval=600"
];
};
systemd = {
services = {
scrutiny = lib.mkIf cfg.enable {
description = "Hard Drive S.M.A.R.T Monitoring, Historical Trends & Real World Failure Thresholds";
wantedBy = [ "multi-user.target" ];
after = [ "network.target" ];
environment = {
SCRUTINY_VERSION = "1";
SCRUTINY_WEB_DATABASE_LOCATION = "/var/lib/scrutiny/scrutiny.db";
SCRUTINY_WEB_SRC_FRONTEND_PATH = "${cfg.package}/share/scrutiny";
};
serviceConfig = {
DynamicUser = true;
ExecStart = "${lib.getExe cfg.package} start --config ${settingsFormat.generate "scrutiny.yaml" cfg.settings}";
Restart = "always";
StateDirectory = "scrutiny";
StateDirectoryMode = "0750";
};
};
scrutiny-collector = lib.mkIf cfg.collector.enable {
description = "Scrutiny Collector Service";
environment = {
COLLECTOR_VERSION = "1";
COLLECTOR_API_ENDPOINT = cfg.collector.settings.api.endpoint;
};
serviceConfig = {
Type = "oneshot";
ExecStart = "${lib.getExe cfg.collector.package} run --config ${settingsFormat.generate "scrutiny-collector.yaml" cfg.collector.settings}";
};
};
};
timers = lib.mkIf cfg.collector.enable {
scrutiny-collector = {
timerConfig = {
OnCalendar = cfg.collector.schedule;
Persistent = true;
Unit = "scrutiny-collector.service";
};
};
};
};
};
meta.maintainers = [ lib.maintainers.jnsgruk ];
}

View file

@ -238,7 +238,9 @@ in
# this should not run because /etc is mounted via a systemd mount unit
# instead. To a large extent this mimics what composefs does. Because
# it's relatively simple, however, we avoid the composefs dependency.
if [[ ! $IN_NIXOS_SYSTEMD_STAGE1 ]]; then
# Since this script is not idempotent, it should not run when etc hasn't
# changed.
if [[ ! $IN_NIXOS_SYSTEMD_STAGE1 ]] && [[ "${config.system.build.etc}/etc" != "$(readlink -f /run/current-system/etc)" ]]; then
echo "remounting /etc..."
tmpMetadataMount=$(mktemp --directory)

View file

@ -28,6 +28,43 @@ in
description = lib.mdDoc "Enable the OCI seccomp BPF hook";
};
cdi = {
dynamic.nvidia.enable = mkOption {
type = types.bool;
default = false;
description = lib.mdDoc ''
Enable dynamic CDI configuration for NVidia devices by running nvidia-container-toolkit on boot.
'';
};
static = mkOption {
type = types.attrs;
default = { };
description = lib.mdDoc ''
Declarative CDI specification. Each key of the attribute set
will be mapped to a file in /etc/cdi. It is required for every
key to be provided in JSON format.
'';
example = {
some-vendor = builtins.fromJSON ''
{
"cdiVersion": "0.5.0",
"kind": "some-vendor.com/foo",
"devices": [],
"containerEdits": []
}
'';
some-other-vendor = {
cdiVersion = "0.5.0";
kind = "some-other-vendor.com/bar";
devices = [];
containerEdits = [];
};
};
};
};
containersConf.settings = mkOption {
type = toml.type;
default = { };
@ -113,6 +150,8 @@ in
config = lib.mkIf cfg.enable {
hardware.nvidia-container-toolkit-cdi-generator.enable = lib.mkIf cfg.cdi.dynamic.nvidia.enable true;
virtualisation.containers.containersConf.cniPlugins = [ pkgs.cni-plugins ];
virtualisation.containers.containersConf.settings = {
@ -124,19 +163,28 @@ in
};
};
environment.etc."containers/containers.conf".source =
toml.generate "containers.conf" cfg.containersConf.settings;
environment.etc = let
cdiStaticConfigurationFiles = (lib.attrsets.mapAttrs'
(name: value:
lib.attrsets.nameValuePair "cdi/${name}.json"
{ text = builtins.toJSON value; })
cfg.cdi.static);
in {
"containers/containers.conf".source =
toml.generate "containers.conf" cfg.containersConf.settings;
environment.etc."containers/storage.conf".source =
toml.generate "storage.conf" cfg.storage.settings;
"containers/storage.conf".source =
toml.generate "storage.conf" cfg.storage.settings;
environment.etc."containers/registries.conf".source = toml.generate "registries.conf" {
registries = lib.mapAttrs (n: v: { registries = v; }) cfg.registries;
};
"containers/registries.conf".source = toml.generate "registries.conf" {
registries = lib.mapAttrs (n: v: { registries = v; }) cfg.registries;
};
"containers/policy.json".source =
if cfg.policy != { } then pkgs.writeText "policy.json" (builtins.toJSON cfg.policy)
else "${pkgs.skopeo.policy}/default-policy.json";
} // cdiStaticConfigurationFiles;
environment.etc."containers/policy.json".source =
if cfg.policy != { } then pkgs.writeText "policy.json" (builtins.toJSON cfg.policy)
else "${pkgs.skopeo.policy}/default-policy.json";
};
}

View file

@ -72,6 +72,8 @@ in
type = types.bool;
default = false;
description = lib.mdDoc ''
**Deprecated**, please use virtualisation.containers.cdi.dynamic.nvidia.enable instead.
Enable nvidia-docker wrapper, supporting NVIDIA GPUs inside docker containers.
'';
};
@ -185,6 +187,16 @@ in
users.groups.docker.gid = config.ids.gids.docker;
systemd.packages = [ cfg.package ];
# Docker 25.0.0 supports CDI by default
# (https://docs.docker.com/engine/release-notes/25.0/#new). Encourage
# moving to CDI as opposed to having deprecated runtime
# wrappers.
warnings = lib.optionals (cfg.enableNvidia && (lib.strings.versionAtLeast cfg.package.version "25")) [
''
You have set virtualisation.docker.enableNvidia. This option is deprecated, please set virtualisation.containers.cdi.dynamic.nvidia.enable instead.
''
];
systemd.services.docker = {
wantedBy = optional cfg.enableOnBoot "multi-user.target";
after = [ "network.target" "docker.socket" ];

View file

@ -14,7 +14,9 @@
options = { };
config = {
config = let
initScript = if config.boot.initrd.systemd.enable then "prepare-root" else "init";
in {
boot.isContainer = true;
boot.postBootCommands =
''
@ -41,7 +43,7 @@
contents = [
{
source = config.system.build.toplevel + "/init";
source = config.system.build.toplevel + "/${initScript}";
target = "/sbin/init";
}
# Technically this is not required for lxc, but having also make this configuration work with systemd-nspawn.
@ -65,7 +67,7 @@
pseudoFiles = [
"/sbin d 0755 0 0"
"/sbin/init s 0555 0 0 ${config.system.build.toplevel}/init"
"/sbin/init s 0555 0 0 ${config.system.build.toplevel}/${initScript}"
"/dev d 0755 0 0"
"/proc d 0555 0 0"
"/sys d 0555 0 0"
@ -74,7 +76,7 @@
system.build.installBootLoader = pkgs.writeScript "install-lxd-sbin-init.sh" ''
#!${pkgs.runtimeShell}
${pkgs.coreutils}/bin/ln -fs "$1/init" /sbin/init
${pkgs.coreutils}/bin/ln -fs "$1/${initScript}" /sbin/init
'';
# networkd depends on this, but systemd module disables this for containers
@ -83,7 +85,7 @@
systemd.packages = [ pkgs.distrobuilder.generator ];
system.activationScripts.installInitScript = lib.mkForce ''
ln -fs $systemConfig/init /sbin/init
ln -fs $systemConfig/${initScript} /sbin/init
'';
};
}

View file

@ -82,6 +82,8 @@ in
type = types.bool;
default = false;
description = lib.mdDoc ''
**Deprecated**, please use virtualisation.containers.cdi.dynamic.nvidia.enable instead.
Enable use of NVidia GPUs from within podman containers.
'';
};
@ -166,6 +168,12 @@ in
inherit (networkConfig) dns_enabled network_interface;
in
lib.mkIf cfg.enable {
warnings = lib.optionals cfg.enableNvidia [
''
You have set virtualisation.podman.enableNvidia. This option is deprecated, please set virtualisation.containers.cdi.dynamic.nvidia.enable instead.
''
];
environment.systemPackages = [ cfg.package ]
++ lib.optional cfg.dockerCompat dockerCompat;

View file

@ -20,11 +20,17 @@
};
testScript = ''
machine.succeed("findmnt --kernel --type overlay /etc")
machine.fail("stat /etc/newgen")
with subtest("/etc is mounted as an overlay"):
machine.succeed("findmnt --kernel --type overlay /etc")
machine.succeed("/run/current-system/specialisation/new-generation/bin/switch-to-configuration switch")
with subtest("switching to the same generation"):
machine.succeed("/run/current-system/bin/switch-to-configuration test")
assert machine.succeed("cat /etc/newgen") == "newgen"
with subtest("switching to a new generation"):
machine.fail("stat /etc/newgen")
machine.succeed("/run/current-system/specialisation/new-generation/bin/switch-to-configuration switch")
assert machine.succeed("cat /etc/newgen") == "newgen"
'';
}

View file

@ -18,13 +18,19 @@
};
testScript = ''
machine.succeed("findmnt --kernel --type overlay /etc")
machine.fail("stat /etc/newgen")
machine.succeed("echo -n 'mutable' > /etc/mutable")
with subtest("/etc is mounted as an overlay"):
machine.succeed("findmnt --kernel --type overlay /etc")
machine.succeed("/run/current-system/specialisation/new-generation/bin/switch-to-configuration switch")
with subtest("switching to the same generation"):
machine.succeed("/run/current-system/bin/switch-to-configuration test")
assert machine.succeed("cat /etc/newgen") == "newgen"
assert machine.succeed("cat /etc/mutable") == "mutable"
with subtest("switching to a new generation"):
machine.fail("stat /etc/newgen")
machine.succeed("echo -n 'mutable' > /etc/mutable")
machine.succeed("/run/current-system/specialisation/new-generation/bin/switch-to-configuration switch")
assert machine.succeed("cat /etc/newgen") == "newgen"
assert machine.succeed("cat /etc/mutable") == "mutable"
'';
}

View file

@ -539,6 +539,7 @@ in {
mongodb = handleTest ./mongodb.nix {};
moodle = handleTest ./moodle.nix {};
moonraker = handleTest ./moonraker.nix {};
morph-browser = handleTest ./morph-browser.nix { };
morty = handleTest ./morty.nix {};
mosquitto = handleTest ./mosquitto.nix {};
moosefs = handleTest ./moosefs.nix {};
@ -771,6 +772,7 @@ in {
sanoid = handleTest ./sanoid.nix {};
scaphandre = handleTest ./scaphandre.nix {};
schleuder = handleTest ./schleuder.nix {};
scrutiny = handleTest ./scrutiny.nix {};
sddm = handleTest ./sddm.nix {};
seafile = handleTest ./seafile.nix {};
searx = handleTest ./searx.nix {};

View file

@ -1,11 +1,11 @@
import ../make-test-python.nix ({ pkgs, lib, ... } :
import ../make-test-python.nix ({ pkgs, lib, extra ? {}, ... } :
let
releases = import ../../release.nix {
configuration = {
# Building documentation makes the test unnecessarily take a longer time:
documentation.enable = lib.mkForce false;
};
} // extra;
};
container-image-metadata = releases.lxdContainerMeta.${pkgs.stdenv.hostPlatform.system};

View file

@ -5,7 +5,11 @@
handleTestOn,
}:
{
container = import ./container.nix { inherit system pkgs; };
container-old-init = import ./container.nix { inherit system pkgs; };
container-new-init = import ./container.nix { inherit system pkgs; extra = {
# Enable new systemd init
boot.initrd.systemd.enable = true;
}; };
lxd-to-incus = import ./lxd-to-incus.nix { inherit system pkgs; };
preseed = import ./preseed.nix { inherit system pkgs; };
socket-activated = import ./socket-activated.nix { inherit system pkgs; };

View file

@ -0,0 +1,53 @@
import ./make-test-python.nix ({ pkgs, lib, ... }: {
name = "morph-browser-standalone";
meta.maintainers = lib.teams.lomiri.members;
nodes.machine = { config, pkgs, ... }: {
imports = [
./common/x11.nix
];
services.xserver.enable = true;
environment = {
systemPackages = with pkgs.lomiri; [
suru-icon-theme
morph-browser
];
variables = {
UITK_ICON_THEME = "suru";
};
};
i18n.supportedLocales = [ "all" ];
fonts.packages = with pkgs; [
# Intended font & helps with OCR
ubuntu_font_family
];
};
enableOCR = true;
testScript =
''
machine.wait_for_x()
with subtest("morph browser launches"):
machine.execute("morph-browser >&2 &")
machine.wait_for_text(r"Web Browser|New|sites|Bookmarks")
machine.screenshot("morph_open")
with subtest("morph browser displays HTML"):
machine.send_chars("file://${pkgs.valgrind.doc}/share/doc/valgrind/html/index.html\n")
machine.wait_for_text("Valgrind Documentation")
machine.screenshot("morph_htmlcontent")
machine.succeed("pkill -f morph-browser")
with subtest("morph browser localisation works"):
machine.execute("env LANG=de_DE.UTF-8 morph-browser >&2 &")
machine.wait_for_text(r"Web-Browser|Neuer|Seiten|Lesezeichen")
machine.screenshot("morph_localised")
'';
})

View file

@ -84,7 +84,7 @@ in {
"${withRcloneEnv} ${copySharedFile}"
)
client.wait_for_unit("multi-user.target")
client.execute("${pkgs.nextcloud-notify_push.passthru.test_client}/bin/test_client http://nextcloud ${adminuser} ${adminpass} >&2 &")
client.execute("${pkgs.lib.getExe pkgs.nextcloud-notify_push.passthru.test_client} http://nextcloud ${adminuser} ${adminpass} >&2 &")
client.succeed(
"${withRcloneEnv} ${diffSharedFile}"
)

70
nixos/tests/scrutiny.nix Normal file
View file

@ -0,0 +1,70 @@
import ./make-test-python.nix ({ lib, ... }:
{
name = "scrutiny";
meta.maintainers = with lib.maintainers; [ jnsgruk ];
nodes = {
machine = { self, pkgs, lib, ... }: {
services = {
scrutiny.enable = true;
scrutiny.collector.enable = true;
};
environment.systemPackages =
let
seleniumScript = pkgs.writers.writePython3Bin "selenium-script"
{
libraries = with pkgs.python3Packages; [ selenium ];
} ''
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.firefox.options import Options
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
options = Options()
options.add_argument("--headless")
service = webdriver.FirefoxService(executable_path="${lib.getExe pkgs.geckodriver}") # noqa: E501
driver = webdriver.Firefox(options=options, service=service)
driver.implicitly_wait(10)
driver.get("http://localhost:8080/web/dashboard")
wait = WebDriverWait(driver, 10).until(
EC.text_to_be_present_in_element(
(By.TAG_NAME, "body"), "Drive health at a glance")
)
body_text = driver.find_element(By.TAG_NAME, "body").text
assert "Temperature history for each device" in body_text
driver.close()
'';
in
with pkgs; [ curl firefox-unwrapped geckodriver seleniumScript ];
};
};
# This is the test code that will check if our service is running correctly:
testScript = ''
start_all()
# Wait for InfluxDB to be available
machine.wait_for_unit("influxdb2")
machine.wait_for_open_port(8086)
# Wait for Scrutiny to be available
machine.wait_for_unit("scrutiny")
machine.wait_for_open_port(8080)
# Ensure the API responds as we expect
output = machine.succeed("curl localhost:8080/api/health")
assert output == '{"success":true}'
# Start the collector service to send some metrics
collect = machine.succeed("systemctl start scrutiny-collector.service")
# Ensure the application is actually rendered by the Javascript
machine.succeed("PYTHONUNBUFFERED=1 selenium-script")
'';
})

View file

@ -5,12 +5,12 @@
python3.pkgs.buildPythonPackage rec {
pname = "ledfx";
version = "2.0.93";
version = "2.0.94";
pyproject = true;
src = fetchPypi {
inherit pname version;
hash = "sha256-A34GY7uhkHcrofjeFzK3l/Uzr+aoQQ5JERK+HUhoosM=";
hash = "sha256-l498NXt3Ib9QLTWoJcpngAwkbY6JqLbVLKhTWQye7Fs=";
};
pythonRelaxDeps = true;

View file

@ -53,6 +53,6 @@ stdenv.mkDerivation rec {
homepage = "https://mimic.mycroft.ai/";
license = lib.licenses.free;
platforms = lib.platforms.linux;
maintainers = [ lib.maintainers.noneucat ];
maintainers = [ lib.maintainers.fx-chun ];
};
}

View file

@ -60,7 +60,7 @@ pythonPackages.buildPythonApplication rec {
pyyaml
];
setupPyGlobalFlags = [ "build" "--disable-autoupdate" ];
setupPyGlobalFlags = [ "build" "--disable-autoupdate" "--localedir=$out/share/locale" ];
preCheck = ''
export HOME=$(mktemp -d)

View file

@ -3,22 +3,27 @@
, autoreconfHook
, pkg-config
, openssl
, unstableGitUpdater
}:
stdenv.mkDerivation rec {
pname = "btcdeb";
version = "unstable-2022-04-03";
version = "0.3.20-unstable-2024-02-06";
src = fetchFromGitHub {
owner = "bitcoin-core";
repo = "btcdeb";
rev = "3ba1ec7f4d37f7d2ff0544403465004c6e12036e";
hash = "sha256-l/PGXXX288mnoSFZ32t2Xd13dC6JCU5wDHoDxb+fcp0=";
rev = "b9288fc3371eb1d9be0cae2549be25de66659be8";
hash = "sha256-IieLNMA3m6g2Kn7g3iewmUL9c+meMR4hrrwVYqNZoh8=";
};
nativeBuildInputs = [ pkg-config autoreconfHook ];
buildInputs = [ openssl ];
enableParallelBuilding = true;
passthru.updateScript = unstableGitUpdater {};
meta = with lib; {
description = "Bitcoin Script Debugger";
homepage = "https://github.com/bitcoin-core/btcdeb";

View file

@ -8,7 +8,7 @@
let
pname = "trezor-suite";
version = "24.1.2";
version = "24.2.2";
name = "${pname}-${version}";
suffix = {
@ -19,8 +19,8 @@ let
src = fetchurl {
url = "https://github.com/trezor/${pname}/releases/download/v${version}/Trezor-Suite-${version}-${suffix}.AppImage";
hash = { # curl -Lfs https://github.com/trezor/trezor-suite/releases/latest/download/latest-linux{-arm64,}.yml | grep ^sha512 | sed 's/: /-/'
aarch64-linux = "sha512-/D3mwyF00YWgDVq0GNDyegc8mLF63cxCOe/vnpGyLz9/Oj5aBl3oG32cj+c8e11+eHYigkKb72nFz5zBoPx8Bw==";
x86_64-linux = "sha512-ehIIOksVzKLGYs6GNZ8w5XvellFRb9sHVORS7MOXmwbbikjgkNX/nlfjwmUKOysxI4PwPzIbqtuX2GYyC9lXHw==";
aarch64-linux = "sha512-8ws6umKaHGJQNRp6JV+X4W347bQeO1XSLRgJcLU2A+3qH8U7o/6G9rbTMhRlFNsDtIfyqWjn5W5FcXmZCk7kFw==";
x86_64-linux = "sha512-s1MwQeEYmOM+OxdqryP3FaZEMxOk5c9nHvxZerSe+jXQMkQLhy0ivXCIz2KXoxUxxEiVgwu/uemv19FLy+q0MQ==";
}.${stdenv.hostPlatform.system} or (throw "Unsupported system: ${stdenv.hostPlatform.system}");
};

View file

@ -7968,12 +7968,12 @@ final: prev:
nvim-tree-lua = buildVimPlugin {
pname = "nvim-tree.lua";
version = "2024-02-12";
version = "2024-02-20";
src = fetchFromGitHub {
owner = "nvim-tree";
repo = "nvim-tree.lua";
rev = "863cf832ceb0b2377c913b7696dd7d64f4978941";
sha256 = "1pcfv6skwxifyzh94a8rjzz3gffflxlf5c2zvs851adc1lkhbwrp";
rev = "030defdb6522f5f716d8201d20ca1a2baa57ca66";
sha256 = "sha256-eWqm1Vk3KQspImy/k2aMXFmsXkVQkMjrVidUVmEJzek=";
};
meta.homepage = "https://github.com/nvim-tree/nvim-tree.lua/";
};

View file

@ -1321,6 +1321,23 @@ let
};
};
earthly.earthfile-syntax-highlighting = buildVscodeMarketplaceExtension {
mktplcRef = {
name = "earthfile-syntax-highlighting";
publisher = "earthly";
version = "0.0.16";
sha256 = "c54d6fd4d2f503a1031be92ff118b5eb1b997907511734e730e08b1a90a6960f";
};
meta = {
changelog = "https://marketplace.visualstudio.com/items/earthly.earthfile-syntax-highlighting/changelog";
description = "Syntax highlighting for Earthly build Earthfiles.";
downloadPage = "https://marketplace.visualstudio.com/items?itemName=earthly.earthfile-syntax-highlighting";
homepage = "https://github.com/earthly/earthfile-grammar";
license = lib.licenses.mpl20;
maintainers = [ lib.maintainers.DataHearth ];
};
};
ecmel.vscode-html-css = buildVscodeMarketplaceExtension {
mktplcRef = {
name = "vscode-html-css";
@ -1383,8 +1400,8 @@ let
mktplcRef = {
name = "elixir-ls";
publisher = "JakeBecker";
version = "0.19.0";
sha256 = "sha256-31eenBOVUEY3MFaVmAjZsypr7U0d6IfVR3ZJfDqi3OY=";
version = "0.20.0";
sha256 = "sha256-p+YNBRzzA/EezBMxI5Rmdb8SdJgFV7QwuLVi1mcJV+E=";
};
meta = {
changelog = "https://marketplace.visualstudio.com/items/JakeBecker.elixir-ls/changelog";

View file

@ -17,10 +17,11 @@
, libGLU
, wayland
# "libnsgif" is disabled until https://todo.sr.ht/~exec64/imv/55 is solved
, withBackends ? [ "freeimage" "libtiff" "libjpeg" "libpng" "librsvg" "libheif" ]
, withBackends ? [ "libjxl" "libtiff" "libjpeg" "libpng" "librsvg" "libheif" ]
, freeimage
, libtiff
, libjpeg_turbo
, libjxl
, libpng
, librsvg
, netsurf
@ -41,7 +42,7 @@ let
};
backends = {
inherit freeimage libtiff libpng librsvg libheif;
inherit freeimage libtiff libpng librsvg libheif libjxl;
libjpeg = libjpeg_turbo;
inherit (netsurf) libnsgif;
};
@ -63,14 +64,14 @@ assert builtins.all
stdenv.mkDerivation rec {
pname = "imv";
version = "4.4.0";
version = "4.5.0";
outputs = [ "out" "man" ];
src = fetchFromSourcehut {
owner = "~exec64";
repo = "imv";
rev = "v${version}";
sha256 = "sha256-LLEEbriHzZhAOQivqHqdr6g7lh4uj++ytlme8AfRjf4=";
sha256 = "sha256-aJ2EXgsS0WUTxMqC1Q+uOWLG8BeuwAyXPmJB/9/NCCU=";
};
mesonFlags = [

View file

@ -1,72 +1,72 @@
{ lib
, atk
, buildPythonApplication
, fetchFromGitHub
, gdk-pixbuf
, gobject-introspection
, gst-plugins-good
, brotlicffi
, gst-python
, gtk3
, kiss-headers
, libhandy
, librsvg
, logbook
, networkmanager
, pango
, pillow
, poetry-core
, pygobject3
, pytestCheckHook
, python
, python-zbar
, pythonRelaxDepsHook
, requests
, single-version
, gobject-introspection
, gst-plugins-good
, gtk3
, libhandy
, librsvg
, networkmanager
, setuptools
, python
, pytestCheckHook
, wrapGAppsHook
}:
buildPythonApplication rec {
pname = "cobang";
version = "0.10.1";
format = "pyproject";
version = "0.10.5";
pyproject = true;
src = fetchFromGitHub {
owner = "hongquan";
repo = "CoBang";
rev = "refs/tags/v${version}";
hash = "sha256-yNDnBTBmwcP3g51UkkLNyF4eHYjblwxPxS2lMwbFKUM=";
hash = "sha256-CfT/farNOJiWIioFBPx2q7bAFAE4khcojdZ7AsYaU6o=";
};
pythonRelaxDeps = [
"logbook"
"Pillow"
];
postPatch = ''
# Fixes "Multiple top-level packages discovered in a flat-layout"
sed -i '$ a\[tool.setuptools]' pyproject.toml
sed -i '$ a\packages = ["cobang"]' pyproject.toml
'';
nativeBuildInputs = [
# Needed to recognize gobject namespaces
gobject-introspection
pythonRelaxDepsHook
wrapGAppsHook
setuptools
];
buildInputs = [
atk
gdk-pixbuf
# Requires v4l2src
gst-plugins-good
# For gobject namespaces
libhandy
networkmanager
pango
];
propagatedBuildInputs = [
gst-python
brotlicffi
kiss-headers
logbook
pillow
poetry-core
pygobject3
python-zbar
requests
single-version
# Unlisted dependencies
pygobject3
python-zbar
# Needed as a gobject namespace and to fix 'Caps' object is not subscriptable
gst-python
];
nativeCheckInputs = [
@ -82,9 +82,8 @@ buildPythonApplication rec {
# Icons and applications
install -Dm 644 $out/${python.sitePackages}/data/vn.hoabinh.quan.CoBang.svg -t $out/share/pixmaps/
install -Dm 644 $out/${python.sitePackages}/data/vn.hoabinh.quan.CoBang.desktop -t $out/share/applications/
substituteInPlace $out/share/applications/vn.hoabinh.quan.CoBang.desktop \
--replace "Exec=" "Exec=$out/bin/"
install -Dm 644 $out/${python.sitePackages}/data/vn.hoabinh.quan.CoBang.desktop.in -t $out/share/applications/
mv $out/${python.sitePackages}/data/vn.hoabinh.quan.CoBang.desktop{.in,}
'';
preFixup = ''
@ -99,6 +98,7 @@ buildPythonApplication rec {
homepage = "https://github.com/hongquan/CoBang";
license = licenses.gpl3Only;
maintainers = with maintainers; [ wolfangaukang ];
mainProgram = "cobang";
platforms = [ "x86_64-linux" ];
};
}

View file

@ -16,13 +16,13 @@
python3Packages.buildPythonApplication rec {
pname = "nwg-panel";
version = "0.9.23";
version = "0.9.24";
src = fetchFromGitHub {
owner = "nwg-piotr";
repo = "nwg-panel";
rev = "v${version}";
hash = "sha256-NCMGqKRcwqy4e3gF9y2oykiAoL8X3IZbcGzq6N3CAMU=";
rev = "refs/tags/v${version}";
hash = "sha256-qd2fnGdpHXX35ZtNGe59GnmhYGn6VJibc0KEr60VIJM=";
};
# No tests

View file

@ -50,7 +50,7 @@ stdenv.mkDerivation rec {
homepage = "https://osmcode.org/osmium-tool/";
changelog = "https://github.com/osmcode/osmium-tool/blob/v${version}/CHANGELOG.md";
license = with licenses; [ gpl3Plus mit bsd3 ];
maintainers = with maintainers; [ das-g ];
maintainers = with maintainers; teams.geospatial.members ++ [ das-g ];
mainProgram = "osmium";
};
}

View file

@ -125,7 +125,7 @@ stdenv.mkDerivation rec {
sourceProvenance = with lib.sourceTypes; [ binaryNativeCode ];
license = lib.licenses.gpl3Only;
platforms = lib.platforms.linux;
maintainers = [ lib.maintainers.noneucat ];
maintainers = [ ];
};
}

View file

@ -33,11 +33,11 @@
firefox-beta = buildMozillaMach rec {
pname = "firefox-beta";
version = "123.0b9";
version = "124.0b2";
applicationName = "Mozilla Firefox Beta";
src = fetchurl {
url = "mirror://mozilla/firefox/releases/${version}/source/firefox-${version}.source.tar.xz";
sha512 = "87c564bf30e93a544fe65cf5eb0d46e2e992558df36d2808eee990772648c193ab051120a3400dacd6973dde8afbec9bea0f3b0b4adc923a5fea6f4005b46210";
sha512 = "a98bedcf2bb6e58a20b4ab49d53db0899ed7c6589b20266522521c3db5c583807be1d536a580a1b42dd5783c0d81d95c4f42be6a157fb08a588447ca4fa21dde";
};
meta = {
@ -62,13 +62,13 @@
firefox-devedition = buildMozillaMach rec {
pname = "firefox-devedition";
version = "123.0b9";
version = "124.0b2";
applicationName = "Mozilla Firefox Developer Edition";
requireSigning = false;
branding = "browser/branding/aurora";
src = fetchurl {
url = "mirror://mozilla/devedition/releases/${version}/source/firefox-${version}.source.tar.xz";
sha512 = "63b3e99fab51a219c537baef4f613c1efd174d8c567d7e77007b901d0800b88cfe872b56293473e5406aef15a5c6ab35b9ddf9966a447c001ca16e92469d984f";
sha512 = "a65a522130d95ef5ffd4ee351c79a64517abdd60a80a74e66b147f6b179613240ab2abd6eb9cd939dfe31dd5b971773e882eb234a358e9546ab0272d8ed94145";
};
meta = {

View file

@ -7,26 +7,26 @@
((buildMozillaMach rec {
pname = "floorp";
packageVersion = "11.9.0";
packageVersion = "11.10.2";
applicationName = "Floorp";
binaryName = "floorp";
branding = "browser/branding/official";
# Must match the contents of `browser/config/version.txt` in the source tree
version = "115.7.0";
version = "115.8.0";
src = fetchFromGitHub {
owner = "Floorp-Projects";
repo = "Floorp";
fetchSubmodules = true;
rev = "v${packageVersion}";
hash = "sha256-Mk/5bkaSLQYFFGhCSjVho8CUilZSYDGarnIt4Wg9/6g=";
hash = "sha256-fjLYR59AZaR6S1zcAT+DNpdsCdrW+3NdkRQBoVNdwYw=";
};
extraConfigureFlags = [
"--with-app-name=${pname}"
"--with-app-basename=${applicationName}"
"--with-branding=browser/branding/official"
"--with-distribution-id=app.floorp.Floorp"
"--with-distribution-id=one.ablaze.floorp"
"--with-unsigned-addon-scopes=app,system"
"--allow-addon-sideload"
];
@ -41,12 +41,19 @@
# not in `badPlatforms` because cross-compilation on 64-bit machine might work.
maxSilent = 14400; # 4h, double the default of 7200s (c.f. #129212, #129115)
license = lib.licenses.mpl20;
mainProgram = "floorp";
};
tests = [ nixosTests.floorp ];
}).override {
# Upstream build configuration can be found at
# .github/workflows/src/linux/shared/mozconfig_linux_base
privacySupport = true;
webrtcSupport = true;
enableOfficialBranding = false;
googleAPISupport = true;
mlsAPISupport = true;
}).overrideAttrs (prev: {
MOZ_DATA_REPORTING = "";
MOZ_REQUIRE_SIGNING = "";
MOZ_TELEMETRY_REPORTING = "";
})

View file

@ -2,13 +2,13 @@
buildGoModule rec {
pname = "kubernetes-helm";
version = "3.14.1";
version = "3.14.2";
src = fetchFromGitHub {
owner = "helm";
repo = "helm";
rev = "v${version}";
sha256 = "sha256-J7hREQMPN1RrnPmOyK2XgfvbAH2dl2H5TopnH8fF1V8=";
sha256 = "sha256-7Cd5lxPSXXCvYLLh334qnDmd9zbF1LMxTNoZEBpzHS4=";
};
vendorHash = "sha256-pYB9J7Zf6MApGpFL7HzqIDcC/vERiVE4z8SsipIeJ7c=";

View file

@ -1,24 +1,17 @@
{ lib, buildGoModule, fetchFromGitHub, fetchpatch, installShellFiles, testers, kompose, git }:
{ lib, buildGoModule, fetchFromGitHub, installShellFiles, testers, kompose, git }:
buildGoModule rec {
pname = "kompose";
version = "1.26.1";
version = "1.32.0";
src = fetchFromGitHub {
owner = "kubernetes";
repo = "kompose";
rev = "v${version}";
sha256 = "sha256-NfzqGG5ZwPpmjhvcvXN1AA+kfZG/oujbAEtXkm1mzeU=";
hash = "sha256-W9KAjyMp8fbnZunH5hwj0uctNYxEN/vbEDGaFJpv5hM=";
};
vendorHash = "sha256-/i4R50heqf0v2F2GTZCKGq10+xKKr+zPkqWKa+afue8=";
patches = [
(fetchpatch {
url = "https://github.com/kubernetes/kompose/commit/0964a7ccd16504b6e5ef49a07978c87cca803d46.patch";
hash = "sha256-NMHLxx7Ae6Z+pacj538ivxIby7rNz3IbfDPbeLA0sMc=";
})
];
vendorHash = "sha256-nY0d3r3faowHa7ylqDkUrX6MrGW3g1jYjm1MLFW/jK8=";
nativeBuildInputs = [ installShellFiles git ];

View file

@ -32,18 +32,19 @@ GEM
rake
google-cloud-env (2.1.1)
faraday (>= 1.0, < 3.a)
googleauth (1.9.2)
googleauth (1.11.0)
faraday (>= 1.0, < 3.a)
google-cloud-env (~> 2.1)
jwt (>= 1.4, < 3.0)
multi_json (~> 1.11)
os (>= 0.9, < 2.0)
signet (>= 0.16, < 2.a)
http (5.1.1)
http (5.2.0)
addressable (~> 2.8)
base64 (~> 0.1)
http-cookie (~> 1.0)
http-form_data (~> 2.2)
llhttp-ffi (~> 0.4.0)
llhttp-ffi (~> 0.5.0)
http-accept (1.7.0)
http-cookie (1.0.5)
domain_name (~> 0.5)
@ -53,7 +54,7 @@ GEM
jsonpath (1.1.5)
multi_json
jwt (2.7.1)
krane (3.4.2)
krane (3.5.0)
activesupport (>= 5.0)
colorize (~> 0.8)
concurrent-ruby (~> 1.1)
@ -69,13 +70,13 @@ GEM
jsonpath (~> 1.0)
recursive-open-struct (~> 1.1, >= 1.1.1)
rest-client (~> 2.0)
llhttp-ffi (0.4.0)
llhttp-ffi (0.5.0)
ffi-compiler (~> 1.0)
rake (~> 13.0)
mime-types (3.5.2)
mime-types-data (~> 3.2015)
mime-types-data (3.2023.1205)
minitest (5.21.2)
mime-types-data (3.2024.0206)
minitest (5.22.2)
multi_json (1.15.0)
mutex_m (0.2.0)
net-http (0.4.1)
@ -91,7 +92,7 @@ GEM
mime-types (>= 1.16, < 4.0)
netrc (~> 0.8)
ruby2_keywords (0.0.5)
signet (0.18.0)
signet (0.19.0)
addressable (~> 2.8)
faraday (>= 0.17.5, < 3.a)
jwt (>= 1.5, < 3.0)

View file

@ -162,21 +162,21 @@
platforms = [];
source = {
remotes = ["https://rubygems.org"];
sha256 = "1qpvsvcag90nw2fjws12m96hsicpmcv04v35j9aiik9rmxxvlk9h";
sha256 = "15knmk2fcyqxdpppc3wb5lc6xapbx5hax4lma0iclc2p55aa2kkl";
type = "gem";
};
version = "1.9.2";
version = "1.11.0";
};
http = {
dependencies = ["addressable" "http-cookie" "http-form_data" "llhttp-ffi"];
dependencies = ["addressable" "base64" "http-cookie" "http-form_data" "llhttp-ffi"];
groups = ["default"];
platforms = [];
source = {
remotes = ["https://rubygems.org"];
sha256 = "1bzb8p31kzv6q5p4z5xq88mnqk414rrw0y5rkhpnvpl29x5c3bpw";
sha256 = "05b1khh7wxga9jviy9yi8z1nckxbm3svlzv40y0zvq3nag3d77mr";
type = "gem";
};
version = "5.1.1";
version = "5.2.0";
};
http-accept = {
groups = ["default"];
@ -247,10 +247,10 @@
platforms = [];
source = {
remotes = ["https://rubygems.org"];
sha256 = "0lgl5x8b0wwih6h609sglp5zfdg8ymbmh8yv4vp1lcxvf885riyz";
sha256 = "1j4vrb55akvpg08vfwvfawf9qbjv9dyiw32g57va89yq371qjasp";
type = "gem";
};
version = "3.4.2";
version = "3.5.0";
};
kubeclient = {
dependencies = ["http" "jsonpath" "recursive-open-struct" "rest-client"];
@ -269,10 +269,10 @@
platforms = [];
source = {
remotes = ["https://rubygems.org"];
sha256 = "00dh6zmqdj59rhcya0l4b9aaxq6n8xizfbil93k0g06gndyk5xz5";
sha256 = "1yph78m8w8l6i9833fc7shy5krk4mnqjc7ys0bg9kgxw8jnl0vs9";
type = "gem";
};
version = "0.4.0";
version = "0.5.0";
};
mime-types = {
dependencies = ["mime-types-data"];
@ -290,20 +290,20 @@
platforms = [];
source = {
remotes = ["https://rubygems.org"];
sha256 = "08ja4k3yjczzz7n6rp1f3qvz4v45bc6fy04clnvdxbq3kfr7jk4c";
sha256 = "0zpn5brxdf5akh7ij511bkrd30fxd7697shmxxszahqj9m62zvn5";
type = "gem";
};
version = "3.2023.1205";
version = "3.2024.0206";
};
minitest = {
groups = ["default"];
platforms = [];
source = {
remotes = ["https://rubygems.org"];
sha256 = "1hmszq7p4zp2ha3qjv1axam602rgnqhlz5zfzil7yk4nvfwcv1bn";
sha256 = "0667vf0zglacry87nkcl3ns8421aydvz71vfa3g3yjhiq8zh19f5";
type = "gem";
};
version = "5.21.2";
version = "5.22.2";
};
multi_json = {
groups = ["default"];
@ -413,10 +413,10 @@
platforms = [];
source = {
remotes = ["https://rubygems.org"];
sha256 = "0fzakk5y7zzii76zlkynpp1c764mzkkfg4mpj18f5pf2xp1aikb6";
sha256 = "0cfxa11wy1nv9slmnzjczkdgld0gqizajsb03rliy53zylwkjzsk";
type = "gem";
};
version = "0.18.0";
version = "0.19.0";
};
statsd-instrument = {
groups = ["default"];

View file

@ -6,16 +6,16 @@
buildGoModule rec {
pname = "kubecfg";
version = "0.34.2";
version = "0.34.3";
src = fetchFromGitHub {
owner = "kubecfg";
repo = "kubecfg";
rev = "v${version}";
hash = "sha256-+qQ/80wXSKvPg2nRuvkYZe0+fwnxKsegR0IjsxBKDNQ=";
hash = "sha256-zy7SuJ5ChR09CvZ362z6ZDRd/eIyqg06fpv+JP7C4T0=";
};
vendorHash = "sha256-X+EvvrAnqMw/jpVdF/UJq9zFH+1NLFLYOu5RsxykynY=";
vendorHash = "sha256-TDXZy2I1sxMmtHiE5l9wgW1kJolFYsV5Otv3xfoErWM=";
ldflags = [
"-s"

View file

@ -2,13 +2,13 @@
buildGoModule rec {
pname = "temporal";
version = "1.22.4";
version = "1.22.5";
src = fetchFromGitHub {
owner = "temporalio";
repo = "temporal";
rev = "v${version}";
hash = "sha256-M/2Zm9B2VeA2BKcF7A7R1Y7T61VZiU2uKGwxGgdy4Sg=";
hash = "sha256-PHdRyYOhNoJ6NpSKNbCF2hddZeY5mIF34HQP05n/sy0=";
};
vendorHash = "sha256-Aum5OsdJ69MkP8tXXGWa6IdouX6F4xKjD/ndAqShMhw=";

View file

@ -167,8 +167,8 @@ rec {
mkTerraform = attrs: pluggable (generic attrs);
terraform_1 = mkTerraform {
version = "1.7.3";
hash = "sha256-/NnpmZLCEoSwJYsHmMxQ8HRxzsyCm91oc6T+mcsaNv0=";
version = "1.7.4";
hash = "sha256-LF8lFDZtDowHqa0z/TCVKznxn15Msha/af8p/w0bI1k=";
vendorHash = "sha256-DI4YTjdFFvfby8ExEY3KoK4J9YKK5LPpMbelzFMDVVs=";
patches = [ ./provider-path-0_15.patch ];
passthru = {

View file

@ -3,16 +3,16 @@
buildGoModule rec {
pname = "discordo";
version = "unstable-2024-02-16";
version = "unstable-2024-02-21";
src = fetchFromGitHub {
owner = "ayn2op";
repo = pname;
rev = "7476d8b391f23fa576f8f34eef3829c6212c6331";
hash = "sha256-x1/CXHqfiT0HgIPsiRluifPOJUrulN+fih0aOrj3us0=";
rev = "3486f6ced9db8eb865641632e50daa2550a55ef8";
hash = "sha256-iSc9WiX0xu9X1GCSPEnf99OpTaKVlNN7sGp+f1S89SM=";
};
vendorHash = "sha256-PW0PPMlNB5aa81tsYWUk9mWfSyafI5A0OxqJTCe0OdI=";
vendorHash = "sha256-89WJZuqUnYGT2eTWcfxdouwc2kZ15Lt38EyLP/DLSWI=";
CGO_ENABLED = 0;

View file

@ -6,7 +6,7 @@
python3.pkgs.buildPythonApplication rec {
pname = "flexget";
version = "3.11.18";
version = "3.11.19";
pyproject = true;
# Fetch from GitHub in order to use `requirements.in`
@ -14,7 +14,7 @@ python3.pkgs.buildPythonApplication rec {
owner = "Flexget";
repo = "Flexget";
rev = "refs/tags/v${version}";
hash = "sha256-ykHBGZS/1cRBdMuZ6tz+3QY5cOBxt+Z2Dp3lKuTKj7w=";
hash = "sha256-XqZPhjuk3f9EbDTu+iX2U6uOXTn3rFdYjQNx5Prte88=";
};
postPatch = ''

View file

@ -3,7 +3,7 @@ let
versions =
if stdenv.isLinux then {
stable = "0.0.43";
ptb = "0.0.67";
ptb = "0.0.69";
canary = "0.0.278";
development = "0.0.13";
} else {
@ -21,7 +21,7 @@ let
};
ptb = fetchurl {
url = "https://dl-ptb.discordapp.net/apps/linux/${version}/discord-ptb-${version}.tar.gz";
hash = "sha256-LySb261stSdUWMfCZ6Ca/MZMhnJ+CEEKmm38cuD1k1s=";
hash = "sha256-xAfKqWopvrosogQ43feMJlM3mMx+vbdhNe7jo6cpkW0=";
};
canary = fetchurl {
url = "https://dl-canary.discordapp.net/apps/linux/${version}/discord-canary-${version}.tar.gz";

View file

@ -2,7 +2,7 @@
callPackage ./generic.nix {} rec {
pname = "signal-desktop";
dir = "Signal";
version = "6.47.1";
version = "6.48.0";
url = "https://updates.signal.org/desktop/apt/pool/s/signal-desktop/signal-desktop_${version}_amd64.deb";
hash = "sha256-WRdn3T18xhWvlELtwlOs/ZoPuEt/yQgs7JP/1MGN5Ps=";
hash = "sha256-hQhMl3ArIZK+0u90uIw0mERv9z4aL1Nny9Qx/Cvsfl4=";
}

View file

@ -44,13 +44,13 @@ rec {
thunderbird-115 = (buildMozillaMach rec {
pname = "thunderbird";
version = "115.7.0";
version = "115.8.0";
application = "comm/mail";
applicationName = "Mozilla Thunderbird";
binaryName = pname;
src = fetchurl {
url = "mirror://mozilla/thunderbird/releases/${version}/source/thunderbird-${version}.source.tar.xz";
sha512 = "de9edb81cf5da494101bf927a5b963ccdec0cc9bff87ebd72d896c6e25102c1113b326f67302a81abd237048aa1e6150c4a97fe4b1892bc80030cbab9099e2d8";
sha512 = "a0bdd34bebda4973f714422293f10a5a96c2b12f097c68d76fa37c48943fdbfb32dd2e504faa0b88fd699118b1903e18c3bb54cb32cd5e2ff60c09966b23e79c";
};
extraPatches = [
# The file to be patched is different from firefox's `no-buildconfig-ffx90.patch`.

View file

@ -1,61 +1,37 @@
{ stdenv, lib, fetchurl, makeDesktopItem, copyDesktopItems, makeWrapper,
electron, libsecret }:
{ lib
, appimageTools
, fetchurl
}:
stdenv.mkDerivation rec {
appimageTools.wrapType2 rec {
pname = "tutanota-desktop";
version = "3.119.3";
version = "3.122.5";
src = fetchurl {
url = "https://github.com/tutao/tutanota/releases/download/tutanota-desktop-release-${version}/${pname}-${version}-unpacked-linux.tar.gz";
name = "tutanota-desktop-${version}.tar.gz";
hash = "sha256-TdjvU12nh1sTfGTdBn+7dbEunaF38YjDvceEns4iRbA=";
url = "https://github.com/tutao/tutanota/releases/download/tutanota-desktop-release-${version}/tutanota-desktop-linux.AppImage";
hash = "sha256-3M53Re6FbxEXHBl5KBLDjZg0uTIv8JIT0DlawNRPXBc=";
};
nativeBuildInputs = [
copyDesktopItems
makeWrapper
];
extraPkgs = pkgs: (appimageTools.defaultFhsEnvArgs.multiPkgs pkgs) ++ [ pkgs.libsecret ];
dontConfigure = true;
dontBuild = true;
extraInstallCommands =
let appimageContents = appimageTools.extract { inherit pname version src; };
in ''
mv $out/bin/${pname}-${version} $out/bin/${pname}
desktopItems = makeDesktopItem {
name = pname;
exec = "tutanota-desktop";
icon = "tutanota-desktop";
comment = meta.description;
desktopName = "Tutanota Desktop";
genericName = "Email Reader";
};
install -Dm 444 ${appimageContents}/tutanota-desktop.desktop -t $out/share/applications
install -Dm 444 ${appimageContents}/tutanota-desktop.png -t $out/share/pixmaps
installPhase = ''
runHook preInstall
mkdir -p $out/bin $out/opt/tutanota-desktop $out/share/tutanota-desktop
cp -r ./ $out/opt/tutanota-desktop
mv $out/opt/tutanota-desktop/{locales,resources} $out/share/tutanota-desktop
for icon_size in 64 512; do
icon=resources/icons/icon/$icon_size.png
path=$out/share/icons/hicolor/$icon_size'x'$icon_size/apps/tutanota-desktop.png
install -Dm644 $icon $path
done
makeWrapper ${electron}/bin/electron \
$out/bin/tutanota-desktop \
--add-flags $out/share/tutanota-desktop/resources/app.asar \
--run "mkdir -p /tmp/tutanota" \
--prefix LD_LIBRARY_PATH : ${lib.makeLibraryPath [ libsecret stdenv.cc.cc.lib ]}
runHook postInstall
'';
substituteInPlace $out/share/applications/tutanota-desktop.desktop \
--replace 'Exec=AppRun' 'Exec=${pname}'
'';
meta = with lib; {
description = "Tutanota official desktop client";
homepage = "https://tutanota.com/";
description = "Tuta official desktop client";
homepage = "https://tuta.com/";
changelog = "https://github.com/tutao/tutanota/releases/tag/tutanota-desktop-release-${version}";
license = licenses.gpl3Only;
sourceProvenance = with sourceTypes; [ binaryNativeCode ];
maintainers = with maintainers; [ wolfangaukang ];
mainProgram = "tutanota-desktop";
platforms = [ "x86_64-linux" ];

View file

@ -6,13 +6,13 @@
buildNpmPackage rec {
pname = "flood-for-transmission";
version = "2024-01-24T16-52-06";
version = "2024-02-10T19-10-27";
src = fetchFromGitHub {
owner = "johman10";
repo = pname;
rev = version;
hash = "sha256-ZV/Gk9DlYkMh8j034YGvMVN7MeOJgFARyOr9Atrs3j4=";
hash = "sha256-JhUBtjHWtfFwjOScDu+WtjE42yhWYPA6KD+kJsltbsY=";
};
npmDepsHash = "sha256-VHWM0vxFKucrmoJiwYpjw7QqhBQw9rPPQVIIevp6Wn0=";

View file

@ -2,16 +2,16 @@
buildGoModule rec {
pname = "protonmail-bridge";
version = "3.8.2";
version = "3.9.1";
src = fetchFromGitHub {
owner = "ProtonMail";
repo = "proton-bridge";
rev = "v${version}";
hash = "sha256-I42f7cV5QsUIPkcc6YDTboS4/LrObHAE3w9S48jsaKM=";
hash = "sha256-osQIx67KWEraVlB+J6HmC44uDTF1HKUytBS6eilp4jI=";
};
vendorHash = "sha256-6xofWf5WFE1wuCwx8iOMcC3gxDzZB3uw3WErLWluBM8=";
vendorHash = "sha256-5XU/qyYdk8nufyQbyjkjUEWzt+RTVYzsdyKU77qrgHc=";
nativeBuildInputs = [ pkg-config ];

View file

@ -19,10 +19,17 @@ stdenv.mkDerivation rec {
sha256 = "sha256-VaUr63v7mzhh4VBghH7a7qrqOYwl6vucmmKzTi9yAjY=";
}) ];
env.NIX_CFLAGS_COMPILE = toString [
# Needed with GCC 12
"-Wno-error=deprecated-declarations"
];
postPatch = ''
# Disable -Werror to avoid build failure on fresh toolchains like
# gcc-13.
substituteInPlace lib/date/CMakeLists.txt --replace-fail ' -Werror ' ' '
substituteInPlace lib/ranger/CMakeLists.txt --replace-fail ' -Werror ' ' '
substituteInPlace lib/tandem/CMakeLists.txt --replace-fail ' -Werror ' ' '
substituteInPlace src/CMakeLists.txt --replace-fail ' -Werror ' ' '
# Fix gcc-13 build due to missing <cstdint> header.
sed -e '1i #include <cstdint>' -i src/core/tools/vargen/utils/assembler.hpp
'';
postInstall = ''
mkdir $out/bin

View file

@ -6,31 +6,20 @@
python3.pkgs.buildPythonApplication rec {
pname = "strictdoc";
version = "0.0.40";
format = "pyproject";
pyproject = true;
src = fetchFromGitHub {
owner = "strictdoc-project";
repo = pname;
repo = "strictdoc";
rev = "refs/tags/${version}";
hash = "sha256-kZ8qVhroSPSGAcgUFZb1vRI6JoFyjeg/0qYosbRnwyc=";
};
postPatch = ''
substituteInPlace pyproject.toml \
--replace '"textx >= 3.0.0, == 3.*"' '"textx"' \
--replace '"docutils >= 0.16, == 0.*"' '"docutils"' \
--replace '"pygments >= 2.10.0, == 2.*"' '"pygments"' \
--replace '"lxml >= 4.6.2, == 4.*"' '"lxml"' \
--replace '"beautifulsoup4 >= 4.12.0, == 4.*"' '"beautifulsoup4"' \
--replace '"python-datauri >= 0.2.9, == 0.*"' '"python-datauri"' \
--replace '"XlsxWriter >= 1.3.7, == 1.*"' '"XlsxWriter"' \
--replace '"xlrd >= 2.0.1, == 2.*"' '"xlrd"' \
--replace '"reqif >= 0.0.33, == 0.*"' '"reqif"' \
--replace '"pybtex >= 0.23.0, == 0.*"' '"pybtex"'
'';
pythonRelaxDeps = true;
nativeBuildInputs = with python3.pkgs; [
hatchling
pythonRelaxDepsHook
];
propagatedBuildInputs = with python3.pkgs; [
@ -46,16 +35,20 @@ python3.pkgs.buildPythonApplication rec {
pygments
python-multipart
reqif
selenium
setuptools
spdx-tools
textx
toml
uvicorn
webdriver-manager
websockets
xlrd
xlsxwriter
] ++ uvicorn.optional-dependencies.standard;
nativeCheckInputs = with python3.pkgs; [
httpx
pytestCheckHook
];

View file

@ -6,13 +6,13 @@
stdenv.mkDerivation rec {
pname = "primesieve";
version = "11.2";
version = "12.0";
src = fetchFromGitHub {
owner = "kimwalisch";
repo = "primesieve";
rev = "v${version}";
hash = "sha256-HtVuUS4dmTC7KosyBhqZ0QRstvon9WMxYf9Ocs1XIrs=";
hash = "sha256-xmOq18falvT8PKhJPwWm/aeOMf7I3ywR+h5OkTM3G6s=";
};
nativeBuildInputs = [ cmake ];

View file

@ -19,6 +19,10 @@
, cpuAcceleration ? null
}:
# CUDA is only implemented for single precission
assert enableCuda -> singlePrec;
let
inherit (cudaPackages.cudaFlags) cudaCapabilities dropDot;
@ -75,6 +79,7 @@ in stdenv.mkDerivation rec {
lapack
] ++ lib.optional enableMpi mpi
++ lib.optionals enableCuda [
cudaPackages.cuda_cccl
cudaPackages.cuda_cudart
cudaPackages.libcufft
cudaPackages.cuda_profiler_api

View file

@ -39,14 +39,14 @@ let
in
buildGoModule rec {
pname = "forgejo";
version = "1.21.5-0";
version = "1.21.6-0";
src = fetchFromGitea {
domain = "codeberg.org";
owner = "forgejo";
repo = "forgejo";
rev = "v${version}";
hash = "sha256-SmNmMlO9bEccrk0oWm7VnBaIRGJgTQ5hOSIn6DRiYqk=";
hash = "sha256-YvLdqNo/zGutPnRVkcxCTcX7Xua0FXUs3veQ2NBgaAA=";
};
vendorHash = "sha256-5BznZiPZCwFEl74JVf7ujFtzsTyG6AcKvQG0LdaMKe4=";

View file

@ -214,6 +214,8 @@ in stdenv.mkDerivation {
mkdir -p $out/share/icons/hicolor/$size/apps
ln -s $libexec/icons/$size/*.png $out/share/icons/hicolor/$size/apps
done
# Translation
ln -sv $libexec/nls "$out/share/virtualbox"
''}
cp -rv out/linux.*/${buildType}/bin/src "$modsrc"

View file

@ -209,6 +209,7 @@ rec {
xorg.libxshmfence # for apple-music-electron
at-spi2-core
pciutils # for FreeCAD
pipewire # immersed-vr wayland support
];
};
}

View file

@ -251,7 +251,7 @@ let
in runCommandLocal "${name}-fhs" {
passthru = {
inherit args baseTargetPaths targetPaths baseMultiPaths multiPaths ldconfig;
inherit args baseTargetPaths targetPaths baseMultiPaths ldconfig;
};
} ''
mkdir -p $out

View file

@ -13,10 +13,10 @@ let
}.${system} or throwSystem;
hash = {
x86_64-linux = "sha256-lMlJezLLyN3OMtom/opbihUsrkCuWDGXB8j+o53JMBE=";
aarch64-linux = "sha256-Ccej0Amq/Yo2F2C21rC0E9rzwE4grvyP+q+QajEg1MA=";
x86_64-darwin = "sha256-DFGiYI1hc0GN+A63OWdcCHnwkDQKZ+fhrNozWtlebJs=";
aarch64-darwin = "sha256-iuGmmaCc0YbLUO6G8Uyy/DvNgmfV+TzU4j0VPyACQb4=";
x86_64-linux = "sha256-3B1TEToovw4C8rLsJv0Y3OPg8ZjMZ3Y29IzIs9Wm6II=";
aarch64-linux = "sha256-kD0yMHoJejKpK1cX/OPQLjPB8cXBp/aXy66YDxXINRw=";
x86_64-darwin = "sha256-DxyxR1t4UrqTn/ORrDiOryWCQ1L0DWXmlh2Hnm7kMS4=";
aarch64-darwin = "sha256-Ckbg/bZxeMpt2xtrLhJXo9DJTLluuWPVdGRRwiO1ZY8=";
}.${system} or throwSystem;
bin = "$out/bin/codeium_language_server";
@ -24,7 +24,7 @@ let
in
stdenv.mkDerivation (finalAttrs: {
pname = "codeium";
version = "1.6.38";
version = "1.6.39";
src = fetchurl {
name = "${finalAttrs.pname}-${finalAttrs.version}.gz";
url = "https://github.com/Exafunction/codeium/releases/download/language-server-v${finalAttrs.version}/language_server_${plat}.gz";

View file

@ -19,15 +19,15 @@
let
pname = "czkawka";
version = "6.1.0";
version = "7.0.0";
src = fetchFromGitHub {
owner = "qarmin";
repo = "czkawka";
rev = version;
hash = "sha256-uKmiBNwuu3Eduf0v3p2VYYNf6mgxJTBUsYs+tKZQZys=";
hash = "sha256-SOWtLmehh1F8SoDQ+9d7Fyosgzya5ZztCv8IcJZ4J94=";
};
cargoHash = "sha256-iBO99kpITVl7ySlXPkEg2YecS1lonVx9CbKt9WI180s=";
cargoHash = "sha256-GOX7V6NLEMP06nMeRZINwcWCaHwK6T3nkRKl4e25DPg=";
in
rustPlatform.buildRustPackage {
inherit pname version src cargoHash;

View file

@ -5,24 +5,24 @@
python3.pkgs.buildPythonApplication rec {
pname = "das";
version = "0.3.8";
format = "pyproject";
version = "1.0.3";
pyproject = true;
src = fetchFromGitHub {
owner = "snovvcrash";
repo = "DivideAndScan";
rev = "refs/tags/v${version}";
hash = "sha256-a9gnEBTvZshw42M/GrpCgjZh6FOzL45aZqGRyeHO0ec=";
hash = "sha256-WZmWpcBqxsNH96nVWwoepFhsvdxZpYKmAjNd7ghIJMA=";
};
postPatch = ''
substituteInPlace pyproject.toml \
--replace 'networkx = "^2.8.4"' 'networkx = "*"' \
--replace 'pandas = "^1.4.2"' 'pandas = "*"'
--replace 'netaddr = "^0.8.0"' 'netaddr = "*"'
'';
nativeBuildInputs = with python3.pkgs; [
poetry-core
nativeBuildInputs = [
python3.pkgs.poetry-core
];
propagatedBuildInputs = with python3.pkgs; [
@ -47,5 +47,6 @@ python3.pkgs.buildPythonApplication rec {
homepage = "https://github.com/snovvcrash/DivideAndScan";
license = licenses.bsd2;
maintainers = with maintainers; [ fab ];
mainProgram = "das";
};
}

View file

@ -0,0 +1,37 @@
{
lib,
buildGoModule,
fetchFromGitHub,
}:
buildGoModule rec {
pname = "ddns-updater";
version = "2.6.0";
src = fetchFromGitHub {
owner = "qdm12";
repo = "ddns-updater";
rev = "v${version}";
hash = "sha256-NU6KXVjggsXVCKImGqbB1AXcph+ycRfkk5S4JNq0cHg=";
};
vendorHash = "sha256-Ibrv0m3Tz/5JbkHYmiJ9Ijo37fjHc7TP100K7ZTwO8I=";
ldflags = [
"-s"
"-w"
];
subPackages = [ "cmd/updater" ];
postInstall = ''
mv $out/bin/updater $out/bin/ddns-updater
'';
meta = with lib; {
description = "Container to update DNS records periodically with WebUI for many DNS providers";
homepage = "https://github.com/qdm12/ddns-updater";
license = licenses.mit;
maintainers = with maintainers; [ delliott ];
mainProgram = "ddns-updater";
};
}

View file

@ -3,7 +3,7 @@
, fetchFromGitHub
}:
let
version = "1.8.0";
version = "1.8.1";
in
python3.pkgs.buildPythonApplication {
pname = "fangfrisch";
@ -14,7 +14,7 @@ python3.pkgs.buildPythonApplication {
owner = "rseichter";
repo = "fangfrisch";
rev = "refs/tags/${version}";
hash = "sha256-lZDChg7og98LY20IaafVGM487F/anrVIBB39dp2r2g0=";
hash = "sha256-j5IUAMDXndLttQZQV3SZXdDka8bKDcwbotY2Nop3izc=";
};
nativeBuildInputs = [

View file

@ -11,11 +11,11 @@
stdenv.mkDerivation (finalAttrs: {
pname = "gpt4all-chat";
version = "2.7.0";
version = "2.7.1";
src = fetchFromGitHub {
fetchSubmodules = true;
hash = "sha256-l9Do58Cld9n89J+px8RPjyioIa0Bo3qGSQe7QEGcZr8=";
hash = "sha256-PXOnhSU8YaV0fcLAptSVjsUP2Za23GFUxyOkL0T6z0o=";
owner = "nomic-ai";
repo = "gpt4all";
rev = "v${finalAttrs.version}";

View file

@ -0,0 +1,71 @@
{ lib
, stdenv
, fetchurl
, appimageTools
, undmg
, nix-update-script
}:
let
pname = "hoppscotch";
version = "23.12.5";
src = fetchurl {
aarch64-darwin = {
url = "https://github.com/hoppscotch/releases/releases/download/v${version}-1/Hoppscotch_mac_aarch64.dmg";
hash = "sha256-WUJW38vQ7o5KEmCxhVnJ03/f5tPOTYcczrEcmt6NSCY=";
};
x86_64-darwin = {
url = "https://github.com/hoppscotch/releases/releases/download/v${version}-1/Hoppscotch_mac_x64.dmg";
hash = "sha256-bQFD+9IoelinWYUndzbVvPNaRde6ACPvw9ifX9mYdno=";
};
x86_64-linux = {
url = "https://github.com/hoppscotch/releases/releases/download/v${version}-1/Hoppscotch_linux_x64.AppImage";
hash = "sha256-MYQ7SRm+CUPIXROZxejbbZ0/wH+U5DQO4YGbE/HQAj8=";
};
}.${stdenv.system} or (throw "Unsupported system: ${stdenv.system}");
meta = {
description = "Open source API development ecosystem";
homepage = "https://hoppscotch.com";
changelog = "https://github.com/hoppscotch/hoppscotch/releases/tag/${version}";
platforms = [ "aarch64-darwin" "x86_64-darwin" "x86_64-linux" ];
license = lib.licenses.mit;
maintainers = with lib.maintainers; [ DataHearth ];
};
in
if stdenv.isDarwin then stdenv.mkDerivation
{
inherit pname version src meta;
sourceRoot = ".";
nativeBuildInputs = [ undmg ];
installPhase = ''
runHook preInstall
mkdir -p "$out/Applications"
mv Hoppscotch.app $out/Applications/
runHook postInstall
'';
}
else appimageTools.wrapType2 {
inherit pname version src meta;
extraPkgs = pkgs:
appimageTools.defaultFhsEnvArgs.multiPkgs pkgs;
extraInstallCommands =
let
appimageContents = appimageTools.extractType2 { inherit pname version src; };
in
''
mv $out/bin/${pname}-${version} $out/bin/${pname}
# Install .desktop files
install -Dm444 ${appimageContents}/hoppscotch.desktop -t $out/share/applications
install -Dm444 ${appimageContents}/hoppscotch.png -t $out/share/pixmaps
'';
}

View file

@ -0,0 +1,45 @@
{ lib
, stdenv
, fetchFromGitHub
, pkg-config
, cmake
, wayland
, wayland-protocols
, hyprlang
, sdbus-cpp
, systemd
}:
stdenv.mkDerivation (finalAttrs: {
pname = "hypridle";
version = "0.1.0";
src = fetchFromGitHub {
owner = "hyprwm";
repo = "hypridle";
rev = "v${finalAttrs.version}";
hash = "sha256-0x5R6v82nKBualYf+TxAduMsvG80EZAl7gofTIYtpf4=";
};
nativeBuildInputs = [
cmake
pkg-config
];
buildInputs = [
hyprlang
sdbus-cpp
systemd
wayland
wayland-protocols
];
meta = {
description = "Hyprland's idle daemon";
homepage = "https://github.com/hyprwm/hypridle";
license = lib.licenses.bsd3;
maintainers = with lib.maintainers; [ iogamaster ];
mainProgram = "hypridle";
platforms = [ "aarch64-linux" "x86_64-linux" ];
};
})

View file

@ -4,15 +4,16 @@
fetchFromGitHub,
cmake,
}:
stdenv.mkDerivation (finalAttrs: {
pname = "hyprlang";
version = "0.3.2";
version = "0.4.0";
src = fetchFromGitHub {
owner = "hyprwm";
repo = "hyprlang";
rev = "v${finalAttrs.version}";
hash = "sha256-9TT3xk++LI5/SPYgjYX34xZ4ebR93c1uerIq+SE/ues=";
hash = "sha256-nW3Zrhh9RJcMTvOcXAaKADnJM/g6tDf3121lJtTHnYo=";
};
nativeBuildInputs = [cmake];
@ -26,5 +27,6 @@ stdenv.mkDerivation (finalAttrs: {
description = "The official implementation library for the hypr config language";
license = licenses.gpl3Plus;
platforms = platforms.linux;
maintainers = with maintainers; [ iogamaster fufexan ];
};
})

View file

@ -38,7 +38,31 @@ stdenv.mkDerivation {
unpackCmd = "cp -r $curSrc \${curSrc##*-}";
postPatch = lib.optionalString stdenv.isDarwin ''
postPatch = ''
substituteInPlace gluegen/src/java/com/jogamp/common/util/IOUtil.java \
--replace-fail '#!/bin/true' '#!${coreutils}/bin/true'
''
# set timestamp of files in jar to a fixed point in time
+ ''
xmlstarlet ed --inplace \
--append //jar --type attr -n modificationtime --value 1980-01-01T00:00Z \
gluegen/make/{build.xml,gluegen-cpptasks-base.xml} \
jogl/make/{build.xml,build-nativewindow.xml,build-jogl.xml}
''
# prevent looking for native libraries in /usr/lib
+ ''
substituteInPlace jogl/make/build-*.xml \
--replace-warn 'dir="''${TARGET_PLATFORM_USRLIBS}"' ""
''
# force way to do disfunctional "ant -Dsetup.addNativeBroadcom=false" and disable dependency on raspberrypi drivers
# if arm/aarch64 support will be added, this block might be commented out on those platforms
# on x86 compiling with default "setup.addNativeBroadcom=true" leads to unsatisfied import "vc_dispmanx_resource_delete" in libnewt.so
+ ''
xmlstarlet ed --inplace \
--delete '//*[@if="setup.addNativeBroadcom"]' \
jogl/make/build-newt.xml
''
+ lib.optionalString stdenv.isDarwin ''
sed -i '/if="use.macos/d' gluegen/make/gluegen-cpptasks-base.xml
rm -r jogl/oculusvr-sdk
'';
@ -67,46 +91,35 @@ stdenv.mkDerivation {
darwin.apple_sdk_11_0.frameworks.Cocoa
];
# Workaround build failure on -fno-common toolchains:
# ld: ../obj/Bindingtest1p1Impl_JNI.o:(.bss+0x8): multiple definition of
# `unsigned_size_t_1'; ../obj/TK_Surface_JNI.o:(.bss+0x8): first defined here
NIX_CFLAGS_COMPILE = "-fcommon"; # copied from 2.3.2, is this still needed?
env = {
SOURCE_LEVEL = "1.8";
TARGET_LEVEL = "1.8";
TARGET_RT_JAR = "null.jar";
# error: incompatible pointer to integer conversion returning 'GLhandleARB' (aka 'void *') from a function with result type 'jlong' (aka 'long long')
NIX_CFLAGS_COMPILE = lib.optionalString stdenv.cc.isClang "-Wno-int-conversion";
};
buildPhase = ''
( cd gluegen/make
substituteInPlace ../src/java/com/jogamp/common/util/IOUtil.java --replace '#!/bin/true' '#!${coreutils}/bin/true'
runHook preBuild
# set timestamp of files in jar to a fixed point in time
xmlstarlet ed --inplace \
--append //jar --type attr -n modificationtime --value 1980-01-01T00:00Z \
build.xml gluegen-cpptasks-base.xml
for f in gluegen jogl; do
pushd $f/make
ant
popd
done
ant -Dtarget.sourcelevel=8 -Dtarget.targetlevel=8 -Dtarget.rt.jar='null.jar' )
( cd jogl/make
# prevent looking for native libraries in /usr/lib
substituteInPlace build-*.xml \
--replace 'dir="''${TARGET_PLATFORM_USRLIBS}"' ""
# force way to do disfunctional "ant -Dsetup.addNativeBroadcom=false" and disable dependency on raspberrypi drivers
# if arm/aarch64 support will be added, this block might be commented out on those platforms
# on x86 compiling with default "setup.addNativeBroadcom=true" leads to unsatisfied import "vc_dispmanx_resource_delete" in libnewt.so
xmlstarlet ed --inplace --delete '//*[@if="setup.addNativeBroadcom"]' build-newt.xml
# set timestamp of files in jar to a fixed point in time
xmlstarlet ed --inplace \
--append //jar --type attr -n modificationtime --value 1980-01-01T00:00Z \
build.xml build-nativewindow.xml build-jogl.xml
ant -Dtarget.sourcelevel=8 -Dtarget.targetlevel=8 -Dtarget.rt.jar='null.jar' )
runHook postBuild
'';
installPhase = ''
runHook preInstall
mkdir -p $out/share/java
cp -v $NIX_BUILD_TOP/gluegen/build/gluegen-rt{,-natives-linux-*}.jar $out/share/java/
cp -v $NIX_BUILD_TOP/jogl/build/jar/jogl-all{,-natives-linux-*}.jar $out/share/java/
cp -v $NIX_BUILD_TOP/jogl/build/nativewindow/nativewindow{,-awt,-natives-linux-*,-os-drm,-os-x11}.jar $out/share/java/
runHook postInstall
'';
meta = with lib; {

View file

@ -1,23 +1,39 @@
{ lib
, stdenv
, fetchurl
, libopcodes
, libiberty
, stdenv
, libbfd
, zlib
}:
stdenv.mkDerivation (finalAttrs: {
pname = "lightning";
version = "2.2.2";
version = "2.2.3";
src = fetchurl {
url = "mirror://gnu/lightning/${finalAttrs.pname}-${finalAttrs.version}.tar.gz";
hash = "sha256-CsqCQt6tF9YhF7z8sHjmqeqFbMgXQoE8noOUvM5zs+I=";
url = "mirror://gnu/lightning/lightning-${finalAttrs.version}.tar.gz";
hash = "sha256-wEXHozoAr/v+sRBm+lAsA5kuR0piupWXeq0G28FMaCk=";
};
nativeCheckInputs = [ libopcodes ];
outputs = [ "out" "dev" "info" ];
buildInputs = [
libopcodes
libbfd
libiberty
zlib
];
strictDeps = true;
configureFlags = [
(lib.enableFeature true "disassembler")
];
doCheck = true;
meta = with lib; {
meta = {
homepage = "https://www.gnu.org/software/lightning/";
description = "Run-time code generation library";
longDescription = ''
@ -26,9 +42,9 @@ stdenv.mkDerivation (finalAttrs: {
it abstracts over the target CPU, as it exposes to the clients a
standardized RISC instruction set inspired by the MIPS and SPARC chips.
'';
maintainers = with maintainers; [ AndersonTorres ];
license = licenses.lgpl3Plus;
platforms = platforms.unix;
maintainers = with lib.maintainers; [ AndersonTorres ];
license = with lib.licenses; [ lgpl3Plus ];
platforms = lib.platforms.unix;
broken = stdenv.isDarwin; # failing tests
};
})

View file

@ -31,13 +31,13 @@ let
in
effectiveStdenv.mkDerivation (finalAttrs: {
pname = "llama-cpp";
version = "2167";
version = "2212";
src = fetchFromGitHub {
owner = "ggerganov";
repo = "llama.cpp";
rev = "refs/tags/b${finalAttrs.version}";
hash = "sha256-b6q4yqhEO2UMmaUy06+3zDVXwwkYgRRb55PP57D7UVQ=";
hash = "sha256-lB+/iA0b5JmIgpmQ0/M32Q52Y0VVOCoeiBpLe4owYsc=";
};
postPatch = ''

View file

@ -2,223 +2,219 @@
"depends": [
{
"method": "fetchzip",
"packages": [
"asynctools"
],
"path": "/nix/store/51nf7pb5cwg2n441ka6w6g6c4hdjsdj4-source",
"rev": "bb01d965a2ad0f08eaff6a53874f028ddbab4909",
"sha256": "0v4n7maskd07qsx8rsr9v0bs7nzbncmvxsn7j9jsk9azcy803v49",
"srcDir": "",
"url": "https://github.com/nickysn/asynctools/archive/bb01d965a2ad0f08eaff6a53874f028ddbab4909.tar.gz"
},
{
"method": "fetchzip",
"packages": [
"asynctools"
],
"path": "/nix/store/86w001hvppm2xfmqzb3733rnd5s1dmc2-source",
"rev": "non-blocking",
"sha256": "1iyr2k3vrbqfwm70w9bsyhis799lm9rin8j5pkjxgrpshm1znpbd",
"srcDir": "",
"url": "https://github.com/yyoncho/asynctools/archive/non-blocking.tar.gz"
},
{
"method": "fetchzip",
"packages": [
"bearssl"
],
"path": "/nix/store/drj65wylnxdbv4jqhymf7biiyjfb75v8-source",
"rev": "9372f27a25d0718d3527afad6cc936f6a853f86e",
"sha256": "152zbyqx12fmmjl4wn6kqqk1jzp1ywm4xvjd28ll9037f1pyd5ic",
"srcDir": "",
"url": "https://github.com/status-im/nim-bearssl/archive/9372f27a25d0718d3527afad6cc936f6a853f86e.tar.gz"
},
{
"method": "fetchzip",
"packages": [
"chronicles"
],
"path": "/nix/store/ffz78k6z9wf8vj2kv1jdj5dq2rxf61j7-source",
"rev": "2a2681b60289aaf7895b7056f22616081eb1a882",
"sha256": "0n8awgrmn9f6vd7ibv1jlyxk61lrs7hc51fghilrw6g6xq5w9rxq",
"srcDir": "",
"url": "https://github.com/status-im/nim-chronicles/archive/2a2681b60289aaf7895b7056f22616081eb1a882.tar.gz"
},
{
"method": "fetchzip",
"packages": [
"chronos"
],
"path": "/nix/store/l4zs1l1yw4yhf1f8q7r5x5z2szjygr6d-source",
"rev": "ba143e029f35fd9b4cd3d89d007cc834d0d5ba3c",
"sha256": "1lv3l9c4ifqzlfgpwpvpq2z3994zz1nirg8f59xrnfb7zgbv8l3i",
"srcDir": "",
"url": "https://github.com/status-im/nim-chronos/archive/ba143e029f35fd9b4cd3d89d007cc834d0d5ba3c.tar.gz"
"url": "https://github.com/status-im/nim-chronos/archive/ba143e029f35fd9b4cd3d89d007cc834d0d5ba3c.tar.gz",
"subDir": "",
"packages": [
"chronos"
]
},
{
"method": "fetchzip",
"packages": [
"faststreams"
],
"path": "/nix/store/4nj341ypj07hjvxv0462wpnywhkj02b5-source",
"rev": "422971502bd641703bf78a27cb20429e77fcfb8b",
"sha256": "0snzh904f8f3wn33liy6817q9ccx8mvsl88blhr49qh69mzbgnba",
"srcDir": "",
"url": "https://github.com/status-im/nim-faststreams/archive/422971502bd641703bf78a27cb20429e77fcfb8b.tar.gz"
},
{
"method": "fetchzip",
"packages": [
"httputils"
],
"path": "/nix/store/jmgpadmdabybhij1srd81xfr873zgfmm-source",
"rev": "5065d2cf18dcb9812e25cc0e2c50eb357bde04cf",
"sha256": "069fw3h9cjn0hab9vhfri8ibld7yihb8ggyg1nv5vxz6i3x026m5",
"srcDir": "",
"url": "https://github.com/status-im/nim-http-utils/archive/5065d2cf18dcb9812e25cc0e2c50eb357bde04cf.tar.gz"
},
{
"method": "fetchzip",
"packages": [
"json_rpc"
],
"path": "/nix/store/szg3jxcg0bf6zv224nyisqhnibkd2pxw-source",
"rev": "c8a5cbe26917e6716b1597dae2d08166f3ce789a",
"sha256": "1l1y4psbcd5w68j1zz172rlwsk7jxbwlr14r2kwnkj7xc7lfwlnx",
"srcDir": "",
"url": "https://github.com/yyoncho/nim-json-rpc/archive/c8a5cbe26917e6716b1597dae2d08166f3ce789a.tar.gz"
},
{
"method": "fetchzip",
"packages": [
"json_serialization"
],
"path": "/nix/store/h0xl7qnw7bh513rb24k1n805x3n1rimw-source",
"rev": "d9394dc7286064902d825bbc1203d03d7218633a",
"sha256": "102m7jaxjip24a6hrnk0nvfb0vmdx5zq4m9i4xyzq8m782xyqp94",
"srcDir": "",
"url": "https://github.com/status-im/nim-json-serialization/archive/d9394dc7286064902d825bbc1203d03d7218633a.tar.gz"
},
{
"method": "fetchzip",
"packages": [
"news"
],
"path": "/nix/store/siwfngb840kcdjdviy5rhlpvdpkw14sk-source",
"rev": "8bfd753649aa7e870ec45e93f1453d3bfcf66733",
"sha256": "0hvs4kfr4aais7ixvh9d7na2r2zjnvaw3m3rpklafn9qld2wpaav",
"srcDir": "src",
"url": "https://github.com/status-im/news/archive/8bfd753649aa7e870ec45e93f1453d3bfcf66733.tar.gz"
},
{
"method": "fetchzip",
"packages": [
"news"
],
"path": "/nix/store/siwfngb840kcdjdviy5rhlpvdpkw14sk-source",
"rev": "status",
"sha256": "0hvs4kfr4aais7ixvh9d7na2r2zjnvaw3m3rpklafn9qld2wpaav",
"srcDir": "src",
"url": "https://github.com/status-im/news/archive/status.tar.gz"
},
{
"method": "fetchzip",
"packages": [
"nimcrypto"
],
"path": "/nix/store/dnj20qh97ylf57nka9wbxs735wbw7yxv-source",
"rev": "4014ef939b51e02053c2e16dd3481d47bc9267dd",
"sha256": "1kgqr2lqaffglc1fgbanwcvhkqcbbd20d5b6w4lf0nksfl9c357a",
"srcDir": "",
"url": "https://github.com/cheatfate/nimcrypto/archive/4014ef939b51e02053c2e16dd3481d47bc9267dd.tar.gz"
},
{
"method": "fetchzip",
"packages": [
"serialization"
],
"path": "/nix/store/ss096qz8svm5my0mjhk3imyrc2nm2x0y-source",
"rev": "4d541ec43454809904fc4c3c0a7436410ad597d2",
"sha256": "1a5x0fsxxkqpambz9q637dz0jrzv9q1jb3cya12k6106vc65lyf8",
"srcDir": "",
"url": "https://github.com/status-im/nim-serialization/archive/4d541ec43454809904fc4c3c0a7436410ad597d2.tar.gz"
},
{
"method": "fetchzip",
"packages": [
"stew"
],
"path": "/nix/store/90rwcr71bq13cid74v4aazikv2s924r1-source",
"rev": "d9400ddea08341a65102cffdb693d3a7131efef4",
"sha256": "0gkmh63izhp0bxyfmwfvyp81bxnzwnc3r7nxr5a05xpl8crk85w2",
"srcDir": "",
"url": "https://github.com/status-im/nim-stew/archive/d9400ddea08341a65102cffdb693d3a7131efef4.tar.gz"
},
{
"method": "fetchzip",
"packages": [
"stint"
],
"path": "/nix/store/q42j4w2f70qfihcrpzgl3fspxihfsadb-source",
"rev": "c0ae9e10a9238883d18226fa28a5435c4d305e45",
"sha256": "0dxhjg5nf4sc4ga2zrxqcmr1v3ki9irkl603x0y3pz5sd8jdi731",
"srcDir": "",
"url": "https://github.com/status-im/nim-stint/archive/c0ae9e10a9238883d18226fa28a5435c4d305e45.tar.gz"
"url": "https://github.com/status-im/nim-stint/archive/c0ae9e10a9238883d18226fa28a5435c4d305e45.tar.gz",
"subDir": "",
"packages": [
"stint"
]
},
{
"method": "fetchzip",
"packages": [
"testutils"
],
"path": "/nix/store/hn5r1ywl4qzzjl9zj62w5m6f8bqkjn8q-source",
"rev": "dfc4c1b39f9ded9baf6365014de2b4bfb4dafc34",
"sha256": "0fi59m8yvayzlh1ajbl98ddy43i3ikjqh3s5px16y0s3cidg4fai",
"path": "/nix/store/jmgpadmdabybhij1srd81xfr873zgfmm-source",
"rev": "5065d2cf18dcb9812e25cc0e2c50eb357bde04cf",
"sha256": "069fw3h9cjn0hab9vhfri8ibld7yihb8ggyg1nv5vxz6i3x026m5",
"srcDir": "",
"url": "https://github.com/status-im/nim-testutils/archive/dfc4c1b39f9ded9baf6365014de2b4bfb4dafc34.tar.gz"
"url": "https://github.com/status-im/nim-http-utils/archive/5065d2cf18dcb9812e25cc0e2c50eb357bde04cf.tar.gz",
"subDir": "",
"packages": [
"httputils"
]
},
{
"method": "fetchzip",
"packages": [
"unittest2"
],
"path": "/nix/store/wdj38hf9hdyb1skgb6v0z00kxkdmnq04-source",
"rev": "b178f47527074964f76c395ad0dfc81cf118f379",
"sha256": "1ir20z9m4wmm0bs2dd2qiq75w0x3skv0yj7sqp6bqfh98ni44xdc",
"srcDir": "",
"url": "https://github.com/status-im/nim-unittest2/archive/b178f47527074964f76c395ad0dfc81cf118f379.tar.gz"
"url": "https://github.com/status-im/nim-unittest2/archive/b178f47527074964f76c395ad0dfc81cf118f379.tar.gz",
"subDir": "",
"packages": [
"unittest2"
]
},
{
"method": "fetchzip",
"packages": [
"websock"
],
"path": "/nix/store/yad26q3iv3r2lw9xs655kyx3hvflxi1p-source",
"rev": "2c3ae3137f3c9cb48134285bd4a47186fa51f0e8",
"sha256": "09pkxzsnahljkqyp540v1wwiqcnbkz5ji5bz9q9cwn3axpmqc3v7",
"srcDir": "",
"url": "https://github.com/status-im/nim-websock/archive/2c3ae3137f3c9cb48134285bd4a47186fa51f0e8.tar.gz"
"url": "https://github.com/status-im/nim-websock/archive/2c3ae3137f3c9cb48134285bd4a47186fa51f0e8.tar.gz",
"subDir": "",
"packages": [
"websock"
]
},
{
"method": "fetchzip",
"path": "/nix/store/siwfngb840kcdjdviy5rhlpvdpkw14sk-source",
"rev": "8bfd753649aa7e870ec45e93f1453d3bfcf66733",
"sha256": "0hvs4kfr4aais7ixvh9d7na2r2zjnvaw3m3rpklafn9qld2wpaav",
"srcDir": "src",
"url": "https://github.com/status-im/news/archive/8bfd753649aa7e870ec45e93f1453d3bfcf66733.tar.gz",
"subDir": "",
"packages": [
"with"
],
"news"
]
},
{
"method": "fetchzip",
"path": "/nix/store/ss096qz8svm5my0mjhk3imyrc2nm2x0y-source",
"rev": "4d541ec43454809904fc4c3c0a7436410ad597d2",
"sha256": "1a5x0fsxxkqpambz9q637dz0jrzv9q1jb3cya12k6106vc65lyf8",
"srcDir": "",
"url": "https://github.com/status-im/nim-serialization/archive/4d541ec43454809904fc4c3c0a7436410ad597d2.tar.gz",
"subDir": "",
"packages": [
"serialization"
]
},
{
"method": "fetchzip",
"path": "/nix/store/90rwcr71bq13cid74v4aazikv2s924r1-source",
"rev": "d9400ddea08341a65102cffdb693d3a7131efef4",
"sha256": "0gkmh63izhp0bxyfmwfvyp81bxnzwnc3r7nxr5a05xpl8crk85w2",
"srcDir": "",
"url": "https://github.com/status-im/nim-stew/archive/d9400ddea08341a65102cffdb693d3a7131efef4.tar.gz",
"subDir": "",
"packages": [
"stew"
]
},
{
"method": "fetchzip",
"path": "/nix/store/4nj341ypj07hjvxv0462wpnywhkj02b5-source",
"rev": "422971502bd641703bf78a27cb20429e77fcfb8b",
"sha256": "0snzh904f8f3wn33liy6817q9ccx8mvsl88blhr49qh69mzbgnba",
"srcDir": "",
"url": "https://github.com/status-im/nim-faststreams/archive/422971502bd641703bf78a27cb20429e77fcfb8b.tar.gz",
"subDir": "",
"packages": [
"faststreams"
]
},
{
"method": "fetchzip",
"path": "/nix/store/qkwz2w5haw8px691c6gkklvxxp38j9d3-source",
"rev": "2f95909c767605e06670dc70f5cffd6b9284f192",
"sha256": "1qdq9wpm6xahqczmvdn3a7yvvrw5x42ylvzmbybdwjzd8vmgg0zv",
"srcDir": "",
"url": "https://github.com/zevv/with/archive/2f95909c767605e06670dc70f5cffd6b9284f192.tar.gz"
"url": "https://github.com/zevv/with/archive/2f95909c767605e06670dc70f5cffd6b9284f192.tar.gz",
"subDir": "",
"packages": [
"with"
]
},
{
"method": "fetchzip",
"path": "/nix/store/hn5r1ywl4qzzjl9zj62w5m6f8bqkjn8q-source",
"rev": "dfc4c1b39f9ded9baf6365014de2b4bfb4dafc34",
"sha256": "0fi59m8yvayzlh1ajbl98ddy43i3ikjqh3s5px16y0s3cidg4fai",
"srcDir": "",
"url": "https://github.com/status-im/nim-testutils/archive/dfc4c1b39f9ded9baf6365014de2b4bfb4dafc34.tar.gz",
"subDir": "",
"packages": [
"zlib"
],
"testutils"
]
},
{
"method": "fetchzip",
"path": "/nix/store/szg3jxcg0bf6zv224nyisqhnibkd2pxw-source",
"rev": "c8a5cbe26917e6716b1597dae2d08166f3ce789a",
"sha256": "1l1y4psbcd5w68j1zz172rlwsk7jxbwlr14r2kwnkj7xc7lfwlnx",
"srcDir": "",
"url": "https://github.com/yyoncho/nim-json-rpc/archive/c8a5cbe26917e6716b1597dae2d08166f3ce789a.tar.gz",
"subDir": "",
"packages": [
"json_rpc"
]
},
{
"method": "fetchzip",
"path": "/nix/store/dnj20qh97ylf57nka9wbxs735wbw7yxv-source",
"rev": "4014ef939b51e02053c2e16dd3481d47bc9267dd",
"sha256": "1kgqr2lqaffglc1fgbanwcvhkqcbbd20d5b6w4lf0nksfl9c357a",
"srcDir": "",
"url": "https://github.com/cheatfate/nimcrypto/archive/4014ef939b51e02053c2e16dd3481d47bc9267dd.tar.gz",
"subDir": "",
"packages": [
"nimcrypto"
]
},
{
"method": "fetchzip",
"path": "/nix/store/drj65wylnxdbv4jqhymf7biiyjfb75v8-source",
"rev": "9372f27a25d0718d3527afad6cc936f6a853f86e",
"sha256": "152zbyqx12fmmjl4wn6kqqk1jzp1ywm4xvjd28ll9037f1pyd5ic",
"srcDir": "",
"url": "https://github.com/status-im/nim-bearssl/archive/9372f27a25d0718d3527afad6cc936f6a853f86e.tar.gz",
"subDir": "",
"packages": [
"bearssl"
]
},
{
"method": "fetchzip",
"path": "/nix/store/h0xl7qnw7bh513rb24k1n805x3n1rimw-source",
"rev": "d9394dc7286064902d825bbc1203d03d7218633a",
"sha256": "102m7jaxjip24a6hrnk0nvfb0vmdx5zq4m9i4xyzq8m782xyqp94",
"srcDir": "",
"url": "https://github.com/status-im/nim-json-serialization/archive/d9394dc7286064902d825bbc1203d03d7218633a.tar.gz",
"subDir": "",
"packages": [
"json_serialization"
]
},
{
"method": "fetchzip",
"path": "/nix/store/ffz78k6z9wf8vj2kv1jdj5dq2rxf61j7-source",
"rev": "2a2681b60289aaf7895b7056f22616081eb1a882",
"sha256": "0n8awgrmn9f6vd7ibv1jlyxk61lrs7hc51fghilrw6g6xq5w9rxq",
"srcDir": "",
"url": "https://github.com/status-im/nim-chronicles/archive/2a2681b60289aaf7895b7056f22616081eb1a882.tar.gz",
"subDir": "",
"packages": [
"chronicles"
]
},
{
"method": "fetchzip",
"path": "/nix/store/51nf7pb5cwg2n441ka6w6g6c4hdjsdj4-source",
"rev": "bb01d965a2ad0f08eaff6a53874f028ddbab4909",
"sha256": "0v4n7maskd07qsx8rsr9v0bs7nzbncmvxsn7j9jsk9azcy803v49",
"srcDir": "",
"url": "https://github.com/nickysn/asynctools/archive/bb01d965a2ad0f08eaff6a53874f028ddbab4909.tar.gz",
"subDir": "",
"packages": [
"asynctools"
]
},
{
"method": "fetchzip",
"path": "/nix/store/br78rad2jnl6zka2q89qi6pkfiyn10fv-source",
"rev": "f34ca261efd90f118dc1647beefd2f7a69b05d93",
"sha256": "1k8y7m1ry1z8jm8hj8pa3vlqprshaa59cdwq2a4acrfw9ks5w482",
"srcDir": "",
"url": "https://github.com/status-im/nim-zlib/archive/f34ca261efd90f118dc1647beefd2f7a69b05d93.tar.gz"
"url": "https://github.com/status-im/nim-zlib/archive/f34ca261efd90f118dc1647beefd2f7a69b05d93.tar.gz",
"subDir": "",
"packages": [
"zlib"
]
}
]
}

View file

@ -7,11 +7,7 @@ buildNimPackage (final: prev: {
pname = "nimlangserver";
version = "1.2.0";
# lock.json was generated by converting
# nimble.lock into requires "<gitUrl>#revSha" in a dummy.nimble
# for all packages and then running nim_lk on said dummy package
# default nim_lk output fails because it attempts
# to use branches that will not work instead of HEAD for packages
# lock.json generated with github.com/daylinmorgan/nnl
lockFile = ./lock.json;
src = fetchFromGitHub {
@ -27,6 +23,7 @@ buildNimPackage (final: prev: {
final.src.meta
// {
description = "The Nim language server implementation (based on nimsuggest)";
homepage = "https://github.com/nim-lang/langserver";
license = licenses.mit;
mainProgram = "nimlangserver";
maintainers = with maintainers; [daylinmorgan];

View file

@ -6,8 +6,8 @@
, linkFarm
, writeShellScript
, formats
, containerRuntimePath
, configTemplate
, containerRuntimePath ? null
, configTemplate ? null
, configTemplatePath ? null
, libnvidia-container
, cudaPackages
@ -91,7 +91,7 @@ buildGoModule rec {
makeWrapper
];
preConfigure = ''
preConfigure = lib.optionalString (containerRuntimePath != null) ''
# Ensure the runc symlink isn't broken:
if ! readlink --quiet --canonicalize-existing "${isolatedContainerRuntimePath}/runc" ; then
echo "${isolatedContainerRuntimePath}/runc: broken symlink" >&2
@ -109,7 +109,7 @@ buildGoModule rec {
in
[ "-skip" "${builtins.concatStringsSep "|" skippedTests}" ];
postInstall = ''
postInstall = lib.optionalString (containerRuntimePath != null) ''
mkdir -p $out/etc/nvidia-container-runtime
# nvidia-container-runtime invokes docker-runc or runc if that isn't

View file

@ -29,7 +29,7 @@ lib.makeScope newScope (
ldconfig = "@@glibcbin@/bin/ldconfig";
};
};
nvidia-container-toolkit-docker = self.callPackage ./. {
nvidia-container-toolkit-docker = self.callPackage ./package.nix {
containerRuntimePath = "${docker}/libexec/docker/docker";
configTemplate = self.dockerConfig;
};
@ -65,7 +65,8 @@ lib.makeScope newScope (
];
inherit (self.nvidia-docker-unwrapped) meta;
};
nvidia-docker-unwrapped = self.callPackage ../nvidia-docker { };
nvidia-docker-unwrapped =
self.callPackage ./nvidia-docker.nix { };
nvidia-podman = symlinkJoin {
name = "nvidia-podman";

View file

@ -0,0 +1,41 @@
{
lib
, python3
, fetchFromGitHub
}:
python3.pkgs.buildPythonApplication rec {
pname = "osc-cli";
version = "1.11.0";
pyproject = true;
src = fetchFromGitHub {
owner = "outscale";
repo = "osc-cli";
rev = "v${version}";
hash = "sha256-7WXy+1NHwFvYmyi5xGfWpq/mbVGJ3WkgP5WQd5pvcC0=";
};
nativeBuildInputs = [
python3.pkgs.setuptools
];
propagatedBuildInputs = with python3.pkgs; [
defusedxml
fire
requests
typing-extensions
xmltodict
];
# Skipping tests as they require working access and secret keys
doCheck = false;
meta = with lib; {
description = "Official Outscale CLI providing connectors to Outscale API";
homepage = "https://github.com/outscale/osc-cli";
license = licenses.bsd3;
maintainers = with maintainers; [ nicolas-goudry ];
mainProgram = "osc-cli";
};
}

View file

@ -2,13 +2,13 @@
buildGoModule rec {
pname = "plumber";
version = "2.5.3";
version = "2.5.4";
src = fetchFromGitHub {
owner = "streamdal";
repo = pname;
rev = "v${version}";
hash = "sha256-0uQYNOmG84kJo6fBZNv4/ua8uVzg2OWOWVFdGIcbm5U=";
hash = "sha256-6nPH+HQtpFJ4MAtblFWjaQjDSKtpIxW9tGt2o1ICtos=";
};
vendorHash = null;

View file

@ -0,0 +1,40 @@
{ lib
, fetchFromGitHub
, jre
, makeWrapper
, maven
}:
let
pname = "s3proxy";
version = "2.1.0";
in
maven.buildMavenPackage {
inherit pname version;
mvnHash = "sha256-85mE/pZ0DXkzOKvTAqBXGatAt8gc4VPRCxmEyIlyVGI=";
src = fetchFromGitHub {
owner = "gaul";
repo = pname;
rev = "s3proxy-${version}";
hash = "sha256-GhZPvo8wlXInHwg8rSmpwMMkZVw5SMpnZyKqFUYLbrE=";
};
nativeBuildInputs = [ makeWrapper ];
installPhase = ''
install -D --mode=644 --target-directory=$out/share/s3proxy target/s3proxy-${version}-jar-with-dependencies.jar
makeWrapper ${jre}/bin/java $out/bin/s3proxy \
--add-flags "-jar $out/share/s3proxy/s3proxy-${version}-jar-with-dependencies.jar"
'';
meta = with lib; {
description = "Access other storage backends via the S3 API";
homepage = "https://github.com/gaul/s3proxy";
changelog = "https://github.com/gaul/s3proxy/releases/tag/s3proxy-${version}";
license = licenses.asl20;
maintainers = with maintainers; [ camelpunch ];
};
}

View file

@ -0,0 +1,53 @@
{ buildGoModule
, fetchFromGitHub
, makeWrapper
, smartmontools
, nixosTests
, lib
}:
let
version = "0.7.2";
in
buildGoModule rec {
inherit version;
pname = "scrutiny-collector";
src = fetchFromGitHub {
owner = "AnalogJ";
repo = "scrutiny";
rev = "refs/tags/v${version}";
hash = "sha256-UYKi+WTsasUaE6irzMAHr66k7wXyec8FXc8AWjEk0qs=";
};
subPackages = "collector/cmd/collector-metrics";
vendorHash = "sha256-SiQw6pq0Fyy8Ia39S/Vgp9Mlfog2drtVn43g+GXiQuI=";
buildInputs = [ makeWrapper ];
CGO_ENABLED = 0;
ldflags = [ "-extldflags=-static" ];
tags = [ "static" ];
installPhase = ''
runHook preInstall
mkdir -p $out/bin
cp $GOPATH/bin/collector-metrics $out/bin/scrutiny-collector-metrics
wrapProgram $out/bin/scrutiny-collector-metrics \
--prefix PATH : ${lib.makeBinPath [ smartmontools ]}
runHook postInstall
'';
passthru.tests.scrutiny-collector = nixosTests.scrutiny;
meta = {
description = "Hard disk metrics collector for Scrutiny.";
homepage = "https://github.com/AnalogJ/scrutiny";
license = lib.licenses.mit;
maintainers = with lib.maintainers; [ jnsgruk ];
mainProgram = "scrutiny-collector-metrics";
platforms = lib.platforms.linux;
};
}

View file

@ -0,0 +1,68 @@
{ buildNpmPackage
, buildGoModule
, fetchFromGitHub
, nixosTests
, lib
}:
let
pname = "scrutiny";
version = "0.7.2";
src = fetchFromGitHub {
owner = "AnalogJ";
repo = "scrutiny";
rev = "refs/tags/v${version}";
hash = "sha256-UYKi+WTsasUaE6irzMAHr66k7wXyec8FXc8AWjEk0qs=";
};
frontend = buildNpmPackage {
inherit version;
pname = "${pname}-webapp";
src = "${src}/webapp/frontend";
npmDepsHash = "sha256-M8P41LPg7oJ/C9abDuNM5Mn+OO0zK56CKi2BwLxv8oQ=";
buildPhase = ''
runHook preBuild
mkdir dist
npm run build:prod --offline -- --output-path=dist
runHook postBuild
'';
installPhase = ''
runHook preInstall
mkdir $out
cp -r dist/* $out
runHook postInstall
'';
};
in
buildGoModule rec {
inherit pname src version;
subPackages = "webapp/backend/cmd/scrutiny";
vendorHash = "sha256-SiQw6pq0Fyy8Ia39S/Vgp9Mlfog2drtVn43g+GXiQuI=";
CGO_ENABLED = 0;
ldflags = [ "-extldflags=-static" ];
tags = [ "static" ];
postInstall = ''
mkdir -p $out/share/scrutiny
cp -r ${frontend}/* $out/share/scrutiny
'';
passthru.tests.scrutiny = nixosTests.scrutiny;
meta = {
description = "Hard Drive S.M.A.R.T Monitoring, Historical Trends & Real World Failure Thresholds.";
homepage = "https://github.com/AnalogJ/scrutiny";
license = lib.licenses.mit;
maintainers = with lib.maintainers; [ jnsgruk ];
mainProgram = "scrutiny";
platforms = lib.platforms.linux;
};
}

View file

@ -9,18 +9,18 @@
buildGoModule rec {
pname = "shopware-cli";
version = "0.4.23";
version = "0.4.24";
src = fetchFromGitHub {
repo = "shopware-cli";
owner = "FriendsOfShopware";
rev = version;
hash = "sha256-miuZsrIPvdYdEu9qc/qRxcNxfPLxCHxokywhLgplehY=";
hash = "sha256-eHMPiQJDpTyFfNAJHLMOzW1hb2V8NPoyc7/xsjNujkc=";
};
nativeBuildInputs = [ installShellFiles makeWrapper ];
nativeCheckInputs = [ git dart-sass ];
vendorHash = "sha256-JgeyIj4YfnHZm2u+Gy3taX+WoFwe3jfqkVOO63adzgU=";
vendorHash = "sha256-1oyNynkKrIrg7HmLFawhz0jbgBGFPoX+ZgFL3/scoEE=";
postInstall = ''
export HOME="$(mktemp -d)"

View file

@ -0,0 +1,30 @@
{ fetchFromGitHub
, lib
, rustPlatform
}:
rustPlatform.buildRustPackage {
name = "uefisettings";
version = "unstable-2024-02-20";
src = fetchFromGitHub {
owner = "linuxboot";
repo = "uefisettings";
rev = "eae8b8b622b7ac3c572eeb3b3513ed623e272fcc";
hash = "sha256-zLgrxYBj5bEMZRw5sKWqKuV3jQOJ6dnzbzpoqE0OhKs=";
};
cargoHash = "sha256-FCQ/1E6SZyVOOAlpqyaDWEZx0y0Wk3Caosvr48VamAA=";
# Tests expect filesystem access to directories like /proc
doCheck = false;
meta = with lib; {
description = "CLI tool to read/get/extract and write/change/modify BIOS/UEFI settings.";
homepage = "https://github.com/linuxboot/uefisettings";
license = with licenses; [ bsd3 ];
mainProgram = "uefisettings";
maintainers = with maintainers; [ surfaceflinger ];
platforms = platforms.linux;
};
}

View file

@ -0,0 +1,46 @@
{ clang
, lib
, libclang
, fetchFromGitHub
, pipewire
, pkg-config
, rustPlatform
, wayland
, wayland-protocols
}:
rustPlatform.buildRustPackage rec {
pname = "wayland-pipewire-idle-inhibit";
version = "0.4.5";
src = fetchFromGitHub {
owner = "rafaelrc7";
repo = "wayland-pipewire-idle-inhibit";
rev = "v${version}";
sha256 = "sha256-VOP1VOeXOyjn+AJfSHzVNT0l+rgm63ev9p4uTfMfYY0=";
};
cargoSha256 = "sha256-7XuDZ57+F8Ot5oNO9/BXjFljNmoMgNgURfmPEIy2PHo=";
nativeBuildInputs = [
clang
pkg-config
];
buildInputs = [
pipewire
wayland
wayland-protocols
];
LIBCLANG_PATH = "${libclang.lib}/lib";
meta = with lib; {
description = "Suspends automatic idling of Wayland compositors when media is being played through Pipewire.";
homepage = "https://github.com/rafaelrc7/wayland-pipewire-idle-inhibit/";
license = licenses.gpl3Only;
platforms = platforms.linux;
maintainers = with maintainers; [ rafameou ];
mainProgram = "wayland-pipewire-idle-inhibit";
};
}

View file

@ -2,11 +2,11 @@
stdenv.mkDerivation rec {
pname = "wiremock";
version = "3.4.0";
version = "3.4.1";
src = fetchurl {
url = "mirror://maven/org/wiremock/wiremock-standalone/${version}/wiremock-standalone-${version}.jar";
hash = "sha256-YD7bx8AAZZ7sj49Vt2dc3berLCmd8/eC6NDBbST0jYc=";
hash = "sha256-SqyPd6eHDzNFn7vzIPOW3l/KtpaiiLC6uMIKqL3GN3s=";
};
dontUnpack = true;

View file

@ -0,0 +1,139 @@
{ stdenv
, lib
, fetchFromGitLab
, fetchpatch
, gitUpdater
, nixosTests
, cmake
, content-hub
, gettext
, libapparmor
, lomiri-action-api
, lomiri-ui-extras
, lomiri-ui-toolkit
, pkg-config
, qqc2-suru-style
, qtbase
, qtdeclarative
, qtquickcontrols2
, qtsystems
, qtwebengine
, wrapQtAppsHook
, xvfb-run
}:
let
listToQtVar = suffix: lib.makeSearchPathOutput "bin" suffix;
in
stdenv.mkDerivation (finalAttrs: {
pname = "morph-browser";
version = "1.1.0";
src = fetchFromGitLab {
owner = "ubports";
repo = "development/core/morph-browser";
rev = finalAttrs.version;
hash = "sha256-C5iXv8VS8Mm1ryxK7Vi5tVmiM01OSIFiTyH0vP9B/xA=";
};
patches = [
# Remove when https://gitlab.com/ubports/development/core/morph-browser/-/merge_requests/575 merged & in release
(fetchpatch {
name = "0001-morph-browser-tst_SessionUtilsTests-Set-permissions-on-temporary-xdg-runtime-directory.patch";
url = "https://gitlab.com/ubports/development/core/morph-browser/-/commit/e90206105b8b287fbd6e45ac37ca1cd259981928.patch";
hash = "sha256-5htFn+OGVVBn3mJQaZcF5yt0mT+2QRlKyKFesEhklfA=";
})
# Remove when https://gitlab.com/ubports/development/core/morph-browser/-/merge_requests/576 merged & in release
(fetchpatch {
name = "0002-morph-browser-Call-i18n-bindtextdomain-with-buildtime-determined-locale-path.patch";
url = "https://gitlab.com/ubports/development/core/morph-browser/-/commit/0527a1e01fb27c62f5e0011274f73bad400e9691.patch";
hash = "sha256-zx/pP72uNqAi8TZR4bKeONuqcJyK/vGtPglTA+5R5no=";
})
];
postPatch = ''
substituteInPlace src/{Morph,Ubuntu}/CMakeLists.txt \
--replace '/usr/lib/''${CMAKE_LIBRARY_ARCHITECTURE}/qt5/qml' "\''${CMAKE_INSTALL_PREFIX}/${qtbase.qtQmlPrefix}"
# Don't use absolute paths in desktop file
substituteInPlace src/app/webbrowser/morph-browser.desktop.in.in \
--replace 'Icon=@CMAKE_INSTALL_FULL_DATADIR@/morph-browser/morph-browser.svg' 'Icon=morph-browser' \
--replace 'X-Lomiri-Splash-Image=@CMAKE_INSTALL_FULL_DATADIR@/morph-browser/morph-browser-splash.svg' 'X-Lomiri-Splash-Image=lomiri-app-launch/splash/morph-browser.svg'
'' + lib.optionalString (!finalAttrs.doCheck) ''
substituteInPlace CMakeLists.txt \
--replace 'add_subdirectory(tests)' ""
'';
strictDeps = true;
nativeBuildInputs = [
cmake
gettext
pkg-config
wrapQtAppsHook
];
buildInputs = [
libapparmor
qtbase
qtdeclarative
qtwebengine
# QML
content-hub
lomiri-action-api
lomiri-ui-extras
lomiri-ui-toolkit
qqc2-suru-style
qtquickcontrols2
qtsystems
];
nativeCheckInputs = [
xvfb-run
];
cmakeFlags = [
(lib.cmakeFeature "CMAKE_CTEST_ARGUMENTS" (lib.concatStringsSep ";" [
# Exclude tests
"-E" (lib.strings.escapeShellArg "(${lib.concatStringsSep "|" [
# Don't care about linter failures
"^flake8"
# Runs into ShapeMaterial codepath in lomiri-ui-toolkit which needs OpenGL, see LUITK for details
"^tst_QmlTests"
]})")
]))
];
doCheck = stdenv.buildPlatform.canExecute stdenv.hostPlatform;
preCheck = ''
export HOME=$TMPDIR
export QT_PLUGIN_PATH=${listToQtVar qtbase.qtPluginPrefix [ qtbase ]}
export QML2_IMPORT_PATH=${listToQtVar qtbase.qtQmlPrefix ([ lomiri-ui-toolkit qtwebengine qtdeclarative qtquickcontrols2 qtsystems ] ++ lomiri-ui-toolkit.propagatedBuildInputs)}
'';
postInstall = ''
mkdir -p $out/share/{icons/hicolor/scalable/apps,lomiri-app-launch/splash}
ln -s $out/share/{morph-browser,icons/hicolor/scalable/apps}/morph-browser.svg
ln -s $out/share/{morph-browser/morph-browser-splash.svg,lomiri-app-launch/splash/morph-browser.svg}
'';
passthru = {
updateScript = gitUpdater { };
tests.standalone = nixosTests.morph-browser;
};
meta = with lib; {
description = "Lightweight web browser tailored for Ubuntu Touch";
homepage = "https://gitlab.com/ubports/development/core/morph-browser";
changelog = "https://gitlab.com/ubports/development/core/morph-browser/-/blob/${finalAttrs.version}/ChangeLog";
license = with licenses; [ gpl3Only cc-by-sa-30 ];
mainProgram = "morph-browser";
maintainers = teams.lomiri.members;
platforms = platforms.linux;
};
})

View file

@ -9,6 +9,7 @@ let
in {
#### Core Apps
lomiri-terminal-app = callPackage ./applications/lomiri-terminal-app { };
morph-browser = callPackage ./applications/morph-browser { };
#### Data
lomiri-schemas = callPackage ./data/lomiri-schemas { };

View file

@ -144,6 +144,10 @@ in let
inherit llvm_meta;
};
mlir = callPackage ./mlir {
inherit llvm_meta;
};
lldb = callPackage ../common/lldb.nix {
src = callPackage ({ runCommand }: runCommand "lldb-src-${version}" {} ''
mkdir -p "$out"

View file

@ -0,0 +1,71 @@
{ lib, stdenv, llvm_meta
, buildLlvmTools
, monorepoSrc, runCommand
, cmake
, ninja
, libxml2
, libllvm
, version
, doCheck ? (!stdenv.isx86_32 /* TODO: why */) && (!stdenv.hostPlatform.isMusl)
}:
stdenv.mkDerivation rec {
pname = "mlir";
inherit version doCheck;
# Blank llvm dir just so relative path works
src = runCommand "${pname}-src-${version}" {} ''
mkdir -p "$out"
cp -r ${monorepoSrc}/cmake "$out"
cp -r ${monorepoSrc}/${pname} "$out"
cp -r ${monorepoSrc}/third-party "$out/third-party"
mkdir -p "$out/llvm"
'';
sourceRoot = "${src.name}/${pname}";
patches = [
./gnu-install-dirs.patch
];
nativeBuildInputs = [ cmake ninja ];
buildInputs = [ libllvm libxml2 ];
ninjaFlags = [ "-v " ];
cmakeFlags = [
"-DLLVM_BUILD_TOOLS=ON"
# Install headers as well
"-DLLVM_INSTALL_TOOLCHAIN_ONLY=OFF"
"-DMLIR_TOOLS_INSTALL_DIR=${placeholder "out"}/bin/"
"-DLLVM_ENABLE_IDE=OFF"
"-DLLD_INSTALL_PACKAGE_DIR=${placeholder "out"}/lib/cmake/mlir"
"-DLLVM_BUILD_TESTS=${if doCheck then "ON" else "OFF"}"
"-DLLVM_ENABLE_FFI=ON"
"-DLLVM_HOST_TRIPLE=${stdenv.hostPlatform.config}"
"-DLLVM_DEFAULT_TARGET_TRIPLE=${stdenv.hostPlatform.config}"
"-DLLVM_ENABLE_DUMP=ON"
] ++ lib.optionals stdenv.hostPlatform.isStatic [
# Disables building of shared libs, -fPIC is still injected by cc-wrapper
"-DLLVM_ENABLE_PIC=OFF"
"-DLLVM_BUILD_STATIC=ON"
"-DLLVM_LINK_LLVM_DYLIB=off"
] ++ lib.optionals ((stdenv.hostPlatform != stdenv.buildPlatform) && !(stdenv.buildPlatform.canExecute stdenv.hostPlatform)) [
"-DLLVM_TABLEGEN_EXE=${buildLlvmTools.llvm}/bin/llvm-tblgen"
"-DMLIR_TABLEGEN_EXE=${buildLlvmTools.mlir}/bin/mlir-tblgen"
];
outputs = [ "out" "dev" ];
meta = llvm_meta // {
homepage = "https://mlir.llvm.org/";
description = "Multi-Level IR Compiler Framework";
longDescription = ''
The MLIR project is a novel approach to building reusable and extensible
compiler infrastructure. MLIR aims to address software fragmentation,
improve compilation for heterogeneous hardware, significantly reduce
the cost of building domain specific compilers, and aid in connecting
existing compilers together.
'';
};
}

View file

@ -0,0 +1,15 @@
diff --git a/CMakeLists.txt b/CMakeLists.txt
index c91e9cd93dc8..23b6032a46b7 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -32,8 +32,8 @@ if(MLIR_STANDALONE_BUILD)
endif()
set(CMAKE_LIBRARY_OUTPUT_DIRECTORY
- "${CMAKE_CURRENT_BINARY_DIR}/lib${LLVM_LIBDIR_SUFFIX}")
- set(CMAKE_RUNTIME_OUTPUT_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}/bin")
+ "${CMAKE_INSTALL_LIBDIR}/${LLVM_LIBDIR_SUFFIX}")
+ set(CMAKE_RUNTIME_OUTPUT_DIRECTORY "${CMAKE_INSTALL_BINDIR}")
set(LLVM_LIT_ARGS "-sv" CACHE STRING "Default options for lit")
endif()

View file

@ -116,7 +116,7 @@ stdenv.mkDerivation {
--replace "#include <stdlib.h>" ""
substituteInPlace lib/builtins/clear_cache.c \
--replace "#include <assert.h>" ""
substituteInPlace lib/builtins/cpu_model.c \
substituteInPlace lib/builtins/cpu_model${lib.optionalString (lib.versionAtLeast version "18") "/x86"}.c \
--replace "#include <assert.h>" ""
'';

View file

@ -17,12 +17,7 @@
else pkgs.bintools
, darwin
# LLVM release information; specify one of these but not both:
, gitRelease ? {
version = "18.0.0";
rev = "2fd7657b6609454af7adb75765d164ec7d1bb80b";
rev-version = "18.0.0-unstable-2023-12-13";
sha256 = "sha256-/sMQzzFid0tAnreOIV9SUm2H6QbEGhpNcizl3LDPM5s=";
}
, gitRelease ? null
# i.e.:
# {
# version = /* i.e. "15.0.0" */;
@ -30,7 +25,7 @@
# rev-version = /* human readable version; i.e. "unstable-2022-26-07" */;
# sha256 = /* checksum for this release, can omit if specifying your own `monorepoSrc` */;
# }
, officialRelease ? null
, officialRelease ? { version = "18.1.0-rc3"; sha256 = "sha256-qRzY2kTLeRxXQCSuVP592Awafm5wjVeFY60d6082mSc="; }
# i.e.:
# {
# version = /* i.e. "15.0.0" */;

View file

@ -45,17 +45,6 @@ stdenv.mkDerivation rec {
chmod -R u+w .
'';
patches = [
# fix for https://github.com/NixOS/nixpkgs/issues/269548
# https://github.com/llvm/llvm-project/pull/77218
(fetchpatch {
name = "darwin-system-libcxxabi-link-flags.patch";
url = "https://github.com/llvm/llvm-project/commit/c5b89b29ee6e3c444a355fd1cf733ce7ab2e316a.patch";
hash = "sha256-LNoPg1KCoP8RWxU/AzHR52f4Dww24I9BGQJedMhFxyQ=";
relative = "libcxx";
})
];
postPatch = ''
cd ../runtimes
'';
@ -82,7 +71,9 @@ stdenv.mkDerivation rec {
"-DLIBCXX_CXX_ABI=${if headersOnly then "none" else libcxx_cxx_abi_opt}"
] ++ lib.optional (!headersOnly && cxxabi.libName == "c++abi") "-DLIBCXX_CXX_ABI_INCLUDE_PATHS=${cxxabi.dev}/include/c++/v1"
++ lib.optional (stdenv.hostPlatform.isMusl || stdenv.hostPlatform.isWasi) "-DLIBCXX_HAS_MUSL_LIBC=1"
++ lib.optionals (stdenv.hostPlatform.useLLVM or false) [
++ lib.optionals (lib.versionAtLeast version "18" && !(stdenv.hostPlatform.useLLVM or false) && stdenv.hostPlatform.libc == "glibc" && !stdenv.hostPlatform.isStatic) [
"-DLIBCXX_ADDITIONAL_LIBRARIES=gcc_s"
] ++ lib.optionals (stdenv.hostPlatform.useLLVM or false) [
"-DLIBCXX_USE_COMPILER_RT=ON"
# There's precedent for this in llvm-project/libcxx/cmake/caches.
# In a monorepo build you might do the following in the libcxxabi build:

View file

@ -44,6 +44,20 @@ stdenv.mkDerivation rec {
sha256 = "1xyjd56m4pfwq8p3xh6i8lhkk9kq15jaml7qbhxdf87z4jjkk63a";
stripLen = 1;
})
] ++ lib.optionals (lib.versionAtLeast version "18") [
# Allow building libcxxabi alone when using LLVM unwinder
(fetchpatch {
url = "https://github.com/llvm/llvm-project/commit/77610dd10454e87bb387040d2b51100a17ac5755.patch";
stripLen = 1;
revert = true;
hash = "sha256-Jogx/cvTJ6fdyprTD1QzMIeRWcBlZZMWE/y9joOtVH0=";
})
(fetchpatch {
url = "https://github.com/llvm/llvm-project/commit/48e5b5ea92674ded69b998cf35724d9012c0f57d.patch";
stripLen = 1;
revert = true;
hash = "sha256-7VeBFjG7CnEMWn0hpBvyNOyhRfz50PnD3zyQNDhNChk=";
})
];
postPatch = ''
@ -63,6 +77,8 @@ stdenv.mkDerivation rec {
# CMake however checks for this anyways; this flag tells it not to. See:
# https://github.com/llvm/llvm-project/blob/4bd3f3759259548e159aeba5c76efb9a0864e6fa/llvm/runtimes/CMakeLists.txt#L243
"-DCMAKE_CXX_COMPILER_WORKS=ON"
] ++ lib.optionals (lib.versionAtLeast version "18" && !(stdenv.hostPlatform.useLLVM or false && !stdenv.hostPlatform.isWasm)) [
"-DLIBCXXABI_USE_LLVM_UNWINDER=OFF"
] ++ lib.optionals (stdenv.hostPlatform.useLLVM or false && !stdenv.hostPlatform.isWasm) [
"-DLLVM_ENABLE_LIBCXX=ON"
"-DLIBCXXABI_USE_LLVM_UNWINDER=ON"

View file

@ -6,14 +6,14 @@ diff --git a/tools/polly/cmake/polly_macros.cmake b/tools/polly/cmake/polly_macr
index 518a09b45a42..bd9d6f5542ad 100644
--- a/tools/polly/cmake/polly_macros.cmake
+++ b/tools/polly/cmake/polly_macros.cmake
@@ -44,8 +44,8 @@ macro(add_polly_library name)
if (NOT LLVM_INSTALL_TOOLCHAIN_ONLY OR ${name} STREQUAL "LLVMPolly")
@@ -45,8 +45,8 @@ macro(add_polly_library name)
install(TARGETS ${name}
COMPONENT ${name}
EXPORT LLVMExports
- LIBRARY DESTINATION lib${LLVM_LIBDIR_SUFFIX}
- ARCHIVE DESTINATION lib${LLVM_LIBDIR_SUFFIX})
+ LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}${LLVM_LIBDIR_SUFFIX}
+ LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}${LLVM_LIBDIR_SUFFIX}
+ ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}${LLVM_LIBDIR_SUFFIX})
add_llvm_install_targets(install-${name}
COMPONENT ${name})
endif()
set_property(GLOBAL APPEND PROPERTY LLVM_EXPORTS ${name})
endmacro(add_polly_library)

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