mirror of
https://github.com/NixOS/nixpkgs.git
synced 2025-02-02 18:23:44 +00:00
Merge master into staging-next
This commit is contained in:
commit
e7140b6733
@ -1099,6 +1099,11 @@ lib.mapAttrs mkLicense ({
|
||||
url = "https://qwt.sourceforge.io/qwtlicense.html";
|
||||
};
|
||||
|
||||
radiance = {
|
||||
fullName = "The Radiance Software License, Version 2.0";
|
||||
url = "https://github.com/LBNL-ETA/Radiance/blob/master/License.txt";
|
||||
};
|
||||
|
||||
ruby = {
|
||||
spdxId = "Ruby";
|
||||
fullName = "Ruby License";
|
||||
|
@ -4780,6 +4780,12 @@
|
||||
githubId = 41747605;
|
||||
keys = [ { fingerprint = "6130 3BBA D7D1 BF74 EFA4 4E3B E7FE 2087 E438 0E64"; } ];
|
||||
};
|
||||
definfo = {
|
||||
name = "Adrien SUN";
|
||||
email = "hjsdbb1@gmail.com";
|
||||
github = "definfo";
|
||||
githubId = 66514911;
|
||||
};
|
||||
deifactor = {
|
||||
name = "Ash Zahlen";
|
||||
email = "ext0l@riseup.net";
|
||||
@ -8415,6 +8421,13 @@
|
||||
githubId = 6109326;
|
||||
name = "David Hummel";
|
||||
};
|
||||
husky = {
|
||||
email = "husky@husky.sh";
|
||||
github = "huskyistaken";
|
||||
githubId = 20684258;
|
||||
name = "Luna Perego";
|
||||
keys = [ { fingerprint = "09E4 B981 9B93 5B0C 0B91 1274 0578 7332 9217 08FF"; } ];
|
||||
};
|
||||
huyngo = {
|
||||
email = "huyngo@disroot.org";
|
||||
github = "Huy-Ngo";
|
||||
|
@ -107,7 +107,7 @@
|
||||
The option `services.fgciwrap` now takes an attribute set of the
|
||||
configuration of each individual instance.
|
||||
This requires migrating any previous configuration keys from
|
||||
`services.fcgiwrap.*` to `services.fcgiwrap.some-instance.*`.
|
||||
`services.fcgiwrap.*` to `services.fcgiwrap.instances.some-instance.*`.
|
||||
The ownership and mode of the UNIX sockets created by this service are now
|
||||
configurable and private by default.
|
||||
Processes also now run as a dynamically allocated user by default instead of
|
||||
@ -259,6 +259,8 @@
|
||||
- `ffmpeg_5` has been removed. Please use the unversioned `ffmpeg`,
|
||||
pin a newer version, or if necessary pin `ffmpeg_4` for compatibility.
|
||||
|
||||
- The `xdg.portal.gtkUsePortal` option has been removed, as it had been deprecated for over 2 years. Using the `GTK_USE_PORTAL` environment variable in this manner is not intended nor encouraged by the GTK developers, but can still be done manually via `environment.sessionVariables`.
|
||||
|
||||
## Other Notable Changes {#sec-release-24.11-notable-changes}
|
||||
|
||||
<!-- To avoid merge conflicts, consider adding your item at an arbitrary place in the list instead. -->
|
||||
|
@ -6,6 +6,7 @@ let
|
||||
mkIf
|
||||
mkOption
|
||||
mkRenamedOptionModule
|
||||
mkRemovedOptionModule
|
||||
teams
|
||||
types;
|
||||
|
||||
@ -17,18 +18,7 @@ in
|
||||
{
|
||||
imports = [
|
||||
(mkRenamedOptionModule [ "services" "flatpak" "extraPortals" ] [ "xdg" "portal" "extraPortals" ])
|
||||
|
||||
({ config, lib, options, ... }:
|
||||
let
|
||||
from = [ "xdg" "portal" "gtkUsePortal" ];
|
||||
fromOpt = lib.getAttrFromPath from options;
|
||||
in
|
||||
{
|
||||
warnings = lib.mkIf config.xdg.portal.gtkUsePortal [
|
||||
"The option `${lib.showOption from}' defined in ${lib.showFiles fromOpt.files} has been deprecated. Setting the variable globally with `environment.sessionVariables' NixOS option can have unforeseen side-effects."
|
||||
];
|
||||
}
|
||||
)
|
||||
(mkRemovedOptionModule [ "xdg" "portal" "gtkUsePortal" ] "This option has been removed due to being unsupported and discouraged by the GTK developers.")
|
||||
];
|
||||
|
||||
meta = {
|
||||
@ -54,18 +44,6 @@ in
|
||||
'';
|
||||
};
|
||||
|
||||
gtkUsePortal = mkOption {
|
||||
type = types.bool;
|
||||
visible = false;
|
||||
default = false;
|
||||
description = ''
|
||||
Sets environment variable `GTK_USE_PORTAL` to `1`.
|
||||
This will force GTK-based programs ran outside Flatpak to respect and use XDG Desktop Portals
|
||||
for features like file chooser but it is an unsupported hack that can easily break things.
|
||||
Defaults to `false` to respect its opt-in nature.
|
||||
'';
|
||||
};
|
||||
|
||||
xdgOpenUsePortal = mkOption {
|
||||
type = types.bool;
|
||||
default = false;
|
||||
@ -154,7 +132,6 @@ in
|
||||
];
|
||||
|
||||
sessionVariables = {
|
||||
GTK_USE_PORTAL = mkIf cfg.gtkUsePortal "1";
|
||||
NIXOS_XDG_OPEN_USE_PORTAL = mkIf cfg.xdgOpenUsePortal "1";
|
||||
NIX_XDG_DESKTOP_PORTAL_DIR = "/run/current-system/sw/share/xdg-desktop-portal/portals";
|
||||
};
|
||||
|
@ -43,7 +43,6 @@ in {
|
||||
rtl8192su-firmware
|
||||
rt5677-firmware
|
||||
rtl8761b-firmware
|
||||
rtw88-firmware
|
||||
zd1211fw
|
||||
alsa-firmware
|
||||
sof-firmware
|
||||
|
@ -22,6 +22,7 @@ in {
|
||||
libusermetrics
|
||||
lomiri
|
||||
lomiri-calculator-app
|
||||
lomiri-camera-app
|
||||
lomiri-clock-app
|
||||
lomiri-download-manager
|
||||
lomiri-filemanager-app
|
||||
|
@ -202,10 +202,11 @@ in {
|
||||
];
|
||||
|
||||
services = {
|
||||
fcgiwrap.zoneminder = lib.mkIf useNginx {
|
||||
fcgiwrap.instances.zoneminder = lib.mkIf useNginx {
|
||||
process.prefork = cfg.cameras;
|
||||
process.user = user;
|
||||
process.group = group;
|
||||
socket = { inherit (config.services.nginx) user group; };
|
||||
};
|
||||
|
||||
mysql = lib.mkIf cfg.database.createLocally {
|
||||
@ -255,7 +256,7 @@ in {
|
||||
fastcgi_param HTTP_PROXY "";
|
||||
fastcgi_intercept_errors on;
|
||||
|
||||
fastcgi_pass unix:${config.services.fcgiwrap.zoneminder.socket.address};
|
||||
fastcgi_pass unix:${config.services.fcgiwrap.instances.zoneminder.socket.address};
|
||||
}
|
||||
|
||||
location /cache/ {
|
||||
|
@ -2,20 +2,23 @@
|
||||
|
||||
let
|
||||
cfg = config.services.prometheus.exporters.smartctl;
|
||||
|
||||
inherit (lib) mkOption types literalExpression;
|
||||
|
||||
args = lib.escapeShellArgs ([
|
||||
"--web.listen-address=${cfg.listenAddress}:${toString cfg.port}"
|
||||
"--smartctl.path=${pkgs.smartmontools}/bin/smartctl"
|
||||
"--smartctl.interval=${cfg.maxInterval}"
|
||||
] ++ map (device: "--smartctl.device=${device}") cfg.devices
|
||||
++ cfg.extraFlags);
|
||||
in {
|
||||
|
||||
in
|
||||
{
|
||||
port = 9633;
|
||||
|
||||
extraOpts = {
|
||||
devices = mkOption {
|
||||
type = types.listOf types.str;
|
||||
default = [];
|
||||
default = [ ];
|
||||
example = literalExpression ''
|
||||
[ "/dev/sda", "/dev/nvme0n1" ];
|
||||
'';
|
||||
@ -24,6 +27,7 @@ in {
|
||||
all disks if none given.
|
||||
'';
|
||||
};
|
||||
|
||||
maxInterval = mkOption {
|
||||
type = types.str;
|
||||
default = "60s";
|
||||
@ -50,9 +54,7 @@ in {
|
||||
"block-sd rw"
|
||||
"char-nvme rw"
|
||||
];
|
||||
ExecStart = ''
|
||||
${pkgs.prometheus-smartctl-exporter}/bin/smartctl_exporter ${args}
|
||||
'';
|
||||
ExecStart = "${pkgs.prometheus-smartctl-exporter}/bin/smartctl_exporter ${args}";
|
||||
PrivateDevices = lib.mkForce false;
|
||||
ProtectProc = "invisible";
|
||||
ProcSubset = "pid";
|
||||
|
@ -32,7 +32,7 @@ let
|
||||
fastcgi_split_path_info ^(${regexLocation cfg})(/.+)$;
|
||||
fastcgi_param PATH_INFO $fastcgi_path_info;
|
||||
''
|
||||
}fastcgi_pass unix:${config.services.fcgiwrap."cgit-${name}".socket.address};
|
||||
}fastcgi_pass unix:${config.services.fcgiwrap.instances."cgit-${name}".socket.address};
|
||||
'';
|
||||
|
||||
cgitrcLine = name: value: "${name}=${
|
||||
@ -171,7 +171,7 @@ in
|
||||
groups.${cfg.group} = { };
|
||||
}));
|
||||
|
||||
services.fcgiwrap = flip mapAttrs' cfgs (name: cfg:
|
||||
services.fcgiwrap.instances = flip mapAttrs' cfgs (name: cfg:
|
||||
nameValuePair "cgit-${name}" {
|
||||
process = { inherit (cfg) user group; };
|
||||
socket = { inherit (config.services.nginx) user group; };
|
||||
|
@ -12,6 +12,8 @@ in
|
||||
services.nar-serve = {
|
||||
enable = mkEnableOption "serving NAR file contents via HTTP";
|
||||
|
||||
package = mkPackageOption pkgs "nar-serve" { };
|
||||
|
||||
port = mkOption {
|
||||
type = types.port;
|
||||
default = 8383;
|
||||
@ -32,6 +34,17 @@ in
|
||||
- gs:// for binary caches stored in Google Cloud Storage
|
||||
'';
|
||||
};
|
||||
|
||||
domain = mkOption {
|
||||
type = types.str;
|
||||
default = "";
|
||||
description = ''
|
||||
When set, enables the feature of serving <nar-hash>.<domain>
|
||||
on top of <domain>/nix/store/<nar-hash>-<pname>.
|
||||
|
||||
Useful to preview static websites where paths are absolute.
|
||||
'';
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
@ -47,7 +60,7 @@ in
|
||||
serviceConfig = {
|
||||
Restart = "always";
|
||||
RestartSec = "5s";
|
||||
ExecStart = "${pkgs.nar-serve}/bin/nar-serve";
|
||||
ExecStart = lib.getExe cfg.package;
|
||||
DynamicUser = true;
|
||||
};
|
||||
};
|
||||
|
@ -337,7 +337,7 @@ in
|
||||
};
|
||||
|
||||
# use nginx to serve the smokeping web service
|
||||
services.fcgiwrap.smokeping = mkIf cfg.webService {
|
||||
services.fcgiwrap.instances.smokeping = mkIf cfg.webService {
|
||||
process.user = cfg.user;
|
||||
process.group = cfg.user;
|
||||
socket = { inherit (config.services.nginx) user group; };
|
||||
@ -353,7 +353,7 @@ in
|
||||
locations."/smokeping.fcgi" = {
|
||||
extraConfig = ''
|
||||
include ${config.services.nginx.package}/conf/fastcgi_params;
|
||||
fastcgi_pass unix:${config.services.fcgiwrap.smokeping.socket.address};
|
||||
fastcgi_pass unix:${config.services.fcgiwrap.instances.smokeping.socket.address};
|
||||
fastcgi_param SCRIPT_FILENAME ${smokepingHome}/smokeping.fcgi;
|
||||
fastcgi_param DOCUMENT_ROOT ${smokepingHome};
|
||||
'';
|
||||
|
@ -1,49 +1,90 @@
|
||||
{ pkgs, lib, config, ... }:
|
||||
|
||||
with lib;
|
||||
{
|
||||
pkgs,
|
||||
lib,
|
||||
config,
|
||||
...
|
||||
}:
|
||||
|
||||
let
|
||||
cfg = config.services.gotify;
|
||||
in {
|
||||
options = {
|
||||
services.gotify = {
|
||||
enable = mkEnableOption "Gotify webserver";
|
||||
in
|
||||
{
|
||||
imports = [
|
||||
(lib.mkRenamedOptionModule
|
||||
[
|
||||
"services"
|
||||
"gotify"
|
||||
"port"
|
||||
]
|
||||
[
|
||||
"services"
|
||||
"gotify"
|
||||
"environment"
|
||||
"GOTIFY_SERVER_PORT"
|
||||
]
|
||||
)
|
||||
];
|
||||
|
||||
port = mkOption {
|
||||
type = types.port;
|
||||
description = ''
|
||||
Port the server listens to.
|
||||
'';
|
||||
};
|
||||
options.services.gotify = {
|
||||
enable = lib.mkEnableOption "Gotify webserver";
|
||||
|
||||
stateDirectoryName = mkOption {
|
||||
type = types.str;
|
||||
default = "gotify-server";
|
||||
description = ''
|
||||
The name of the directory below {file}`/var/lib` where
|
||||
gotify stores its runtime data.
|
||||
'';
|
||||
package = lib.mkPackageOption pkgs "gotify-server" { };
|
||||
|
||||
environment = lib.mkOption {
|
||||
type = lib.types.attrsOf (
|
||||
lib.types.oneOf [
|
||||
lib.types.str
|
||||
lib.types.int
|
||||
]
|
||||
);
|
||||
default = { };
|
||||
example = {
|
||||
GOTIFY_SERVER_PORT = 8080;
|
||||
GOTIFY_DATABASE_DIALECT = "sqlite3";
|
||||
};
|
||||
description = ''
|
||||
Config environment variables for the gotify-server.
|
||||
See https://gotify.net/docs/config for more details.
|
||||
'';
|
||||
};
|
||||
|
||||
environmentFiles = lib.mkOption {
|
||||
type = lib.types.listOf lib.types.path;
|
||||
default = [ ];
|
||||
description = ''
|
||||
Files containing additional config environment variables for gotify-server.
|
||||
Secrets should be set in environmentFiles instead of environment.
|
||||
'';
|
||||
};
|
||||
|
||||
stateDirectoryName = lib.mkOption {
|
||||
type = lib.types.str;
|
||||
default = "gotify-server";
|
||||
description = ''
|
||||
The name of the directory below {file}`/var/lib` where
|
||||
gotify stores its runtime data.
|
||||
'';
|
||||
};
|
||||
};
|
||||
|
||||
config = mkIf cfg.enable {
|
||||
config = lib.mkIf cfg.enable {
|
||||
systemd.services.gotify-server = {
|
||||
wantedBy = [ "multi-user.target" ];
|
||||
after = [ "network.target" ];
|
||||
description = "Simple server for sending and receiving messages";
|
||||
|
||||
environment = {
|
||||
GOTIFY_SERVER_PORT = toString cfg.port;
|
||||
};
|
||||
environment = lib.mapAttrs (_: toString) cfg.environment;
|
||||
|
||||
serviceConfig = {
|
||||
WorkingDirectory = "/var/lib/${cfg.stateDirectoryName}";
|
||||
StateDirectory = cfg.stateDirectoryName;
|
||||
EnvironmentFile = cfg.environmentFiles;
|
||||
Restart = "always";
|
||||
DynamicUser = "yes";
|
||||
ExecStart = "${pkgs.gotify-server}/bin/server";
|
||||
DynamicUser = true;
|
||||
ExecStart = lib.getExe cfg.package;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
meta.maintainers = with lib.maintainers; [ DCsunset ];
|
||||
}
|
||||
|
@ -3,12 +3,26 @@
|
||||
with lib;
|
||||
|
||||
let
|
||||
forEachInstance = f: flip mapAttrs' config.services.fcgiwrap (name: cfg:
|
||||
nameValuePair "fcgiwrap-${name}" (f cfg)
|
||||
forEachInstance = f: flip mapAttrs' config.services.fcgiwrap.instances (
|
||||
name: cfg: nameValuePair "fcgiwrap-${name}" (f cfg)
|
||||
);
|
||||
|
||||
in {
|
||||
options.services.fcgiwrap = mkOption {
|
||||
imports = forEach [
|
||||
"enable"
|
||||
"user"
|
||||
"group"
|
||||
"socketType"
|
||||
"socketAddress"
|
||||
"preforkProcesses"
|
||||
] (attr: mkRemovedOptionModule [ "services" "fcgiwrap" attr ] ''
|
||||
The global shared fcgiwrap instance is no longer supported due to
|
||||
security issues.
|
||||
Isolated instances should instead be configured through
|
||||
`services.fcgiwrap.instances.*'.
|
||||
'');
|
||||
|
||||
options.services.fcgiwrap.instances = mkOption {
|
||||
description = "Configuration for fcgiwrap instances.";
|
||||
default = { };
|
||||
type = types.attrsOf (types.submodule ({ config, ... }: { options = {
|
||||
@ -54,7 +68,6 @@ in {
|
||||
default = null;
|
||||
description = ''
|
||||
User to be set as owner of the UNIX socket.
|
||||
Defaults to the process running user.
|
||||
'';
|
||||
};
|
||||
|
||||
@ -63,7 +76,6 @@ in {
|
||||
default = null;
|
||||
description = ''
|
||||
Group to be set as owner of the UNIX socket.
|
||||
Defaults to the process running group.
|
||||
'';
|
||||
};
|
||||
|
||||
@ -83,6 +95,14 @@ in {
|
||||
|
||||
config = {
|
||||
assertions = concatLists (mapAttrsToList (name: cfg: [
|
||||
{
|
||||
assertion = cfg.socket.type == "unix" -> cfg.socket.user != null;
|
||||
message = "Socket owner is required for the UNIX socket type.";
|
||||
}
|
||||
{
|
||||
assertion = cfg.socket.type == "unix" -> cfg.socket.group != null;
|
||||
message = "Socket owner is required for the UNIX socket type.";
|
||||
}
|
||||
{
|
||||
assertion = cfg.socket.user != null -> cfg.socket.type == "unix";
|
||||
message = "Socket owner can only be set for the UNIX socket type.";
|
||||
@ -95,7 +115,7 @@ in {
|
||||
assertion = cfg.socket.mode != null -> cfg.socket.type == "unix";
|
||||
message = "Socket mode can only be set for the UNIX socket type.";
|
||||
}
|
||||
]) config.services.fcgiwrap);
|
||||
]) config.services.fcgiwrap.instances);
|
||||
|
||||
systemd.services = forEachInstance (cfg: {
|
||||
after = [ "nss-user-lookup.target" ];
|
||||
|
@ -538,6 +538,7 @@ in {
|
||||
#logstash = handleTest ./logstash.nix {};
|
||||
lomiri = handleTest ./lomiri.nix {};
|
||||
lomiri-calculator-app = runTest ./lomiri-calculator-app.nix;
|
||||
lomiri-camera-app = runTest ./lomiri-camera-app.nix;
|
||||
lomiri-clock-app = runTest ./lomiri-clock-app.nix;
|
||||
lomiri-filemanager-app = runTest ./lomiri-filemanager-app.nix;
|
||||
lomiri-system-settings = handleTest ./lomiri-system-settings.nix {};
|
||||
|
@ -24,7 +24,7 @@ import ./make-test-python.nix (
|
||||
{
|
||||
networking.firewall.allowedTCPPorts = [ 80 ];
|
||||
|
||||
services.fcgiwrap.gitolite = {
|
||||
services.fcgiwrap.instances.gitolite = {
|
||||
process.user = "gitolite";
|
||||
process.group = "gitolite";
|
||||
socket = { inherit (config.services.nginx) user group; };
|
||||
@ -64,7 +64,7 @@ import ./make-test-python.nix (
|
||||
fastcgi_param SCRIPT_FILENAME ${pkgs.gitolite}/bin/gitolite-shell;
|
||||
|
||||
# use Unix domain socket or inet socket
|
||||
fastcgi_pass unix:${config.services.fcgiwrap.gitolite.socket.address};
|
||||
fastcgi_pass unix:${config.services.fcgiwrap.instances.gitolite.socket.address};
|
||||
'';
|
||||
};
|
||||
|
||||
|
@ -9,7 +9,9 @@ import ./make-test-python.nix ({ pkgs, lib, ...} : {
|
||||
|
||||
services.gotify = {
|
||||
enable = true;
|
||||
port = 3000;
|
||||
environment = {
|
||||
GOTIFY_SERVER_PORT = 3000;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
|
135
nixos/tests/lomiri-camera-app.nix
Normal file
135
nixos/tests/lomiri-camera-app.nix
Normal file
@ -0,0 +1,135 @@
|
||||
{ lib, ... }:
|
||||
{
|
||||
name = "lomiri-camera-app-standalone";
|
||||
meta.maintainers = lib.teams.lomiri.members;
|
||||
|
||||
nodes.machine =
|
||||
{ config, pkgs, ... }:
|
||||
{
|
||||
imports = [ ./common/x11.nix ];
|
||||
|
||||
services.xserver.enable = true;
|
||||
|
||||
environment = {
|
||||
systemPackages =
|
||||
with pkgs;
|
||||
[
|
||||
feh # view photo result
|
||||
ffmpeg # fake webcam stream
|
||||
gnome-text-editor # somewhere to paste QR result
|
||||
(imagemagick.override { ghostscriptSupport = true; }) # add label for OCR
|
||||
qrtool # generate QR code
|
||||
xdotool # clicking on QR button
|
||||
]
|
||||
++ (with pkgs.lomiri; [
|
||||
suru-icon-theme
|
||||
lomiri-camera-app
|
||||
]);
|
||||
variables = {
|
||||
UITK_ICON_THEME = "suru";
|
||||
};
|
||||
};
|
||||
|
||||
i18n.supportedLocales = [ "all" ];
|
||||
|
||||
fonts = {
|
||||
packages = with pkgs; [
|
||||
# Intended font & helps with OCR
|
||||
ubuntu-classic
|
||||
];
|
||||
};
|
||||
|
||||
# Fake camera
|
||||
boot.extraModulePackages = with config.boot.kernelPackages; [ v4l2loopback ];
|
||||
};
|
||||
|
||||
enableOCR = true;
|
||||
|
||||
testScript =
|
||||
let
|
||||
qrLabel = "Image";
|
||||
qrContent = "Test";
|
||||
in
|
||||
''
|
||||
machine.wait_for_x()
|
||||
|
||||
with subtest("lomiri camera launches"):
|
||||
machine.succeed("lomiri-camera-app >&2 &")
|
||||
machine.wait_for_text("Cannot access")
|
||||
machine.screenshot("lomiri-camera_open")
|
||||
|
||||
machine.succeed("pkill -f lomiri-camera-app")
|
||||
|
||||
# Setup fake v4l2 camera
|
||||
machine.succeed("modprobe v4l2loopback video_nr=10 card_label=Video-Loopback exclusive_caps=1")
|
||||
machine.succeed("qrtool encode '${qrContent}' -s 20 -m 10 > qr.png")
|
||||
# Horizontal flip, add text, flip back. Camera displays image mirrored, so need reversed text for OCR
|
||||
machine.succeed("magick qr.png -flop -pointsize 70 -fill black -annotate +100+100 '${qrLabel}' -flop output.png")
|
||||
machine.succeed("ffmpeg -re -loop 1 -i output.png -vf format=yuv420p -f v4l2 /dev/video10 -loglevel fatal >&2 &")
|
||||
|
||||
with subtest("lomiri camera uses camera"):
|
||||
machine.succeed("lomiri-camera-app >&2 &")
|
||||
machine.wait_for_text("${qrLabel}")
|
||||
machine.screenshot("lomiri-camera_feed")
|
||||
|
||||
machine.succeed("xdotool mousemove 320 610 click 1") # take photo
|
||||
machine.wait_until_succeeds("find /root/Pictures/camera.ubports -name '*.jpg'")
|
||||
|
||||
# Check that the image is correct
|
||||
machine.send_key("ctrl-alt-right")
|
||||
machine.succeed("magick /root/Pictures/camera.ubports/IMG_00000001.jpg -flop photo_flip.png")
|
||||
machine.succeed("feh photo_flip.png >&2 &")
|
||||
machine.wait_for_text("${qrLabel}")
|
||||
machine.screenshot("lomiri-camera_photo")
|
||||
|
||||
machine.succeed("pkill -f feh")
|
||||
machine.send_key("ctrl-alt-left")
|
||||
machine.succeed("pkill -f lomiri-camera-app")
|
||||
|
||||
with subtest("lomiri barcode scanner uses camera"):
|
||||
machine.succeed("lomiri-camera-app --mode=barcode-reader >&2 &")
|
||||
machine.wait_for_text("${qrLabel}")
|
||||
machine.succeed("xdotool mousemove 320 610 click 1") # open up QR decode result
|
||||
|
||||
# OCR is struggling to recognise the text. Click the clipboard button and paste the result somewhere else
|
||||
machine.sleep(5)
|
||||
machine.screenshot("lomiri-barcode_decode")
|
||||
machine.succeed("xdotool mousemove 350 530 click 1")
|
||||
machine.sleep(5)
|
||||
|
||||
# Need to make a new window without closing camera app, otherwise clipboard content gets lost?
|
||||
machine.send_key("ctrl-alt-right")
|
||||
machine.succeed("gnome-text-editor >&2 &")
|
||||
machine.wait_for_text("New")
|
||||
|
||||
# Font size up to help with OCR
|
||||
machine.send_key("ctrl-kp_add")
|
||||
machine.send_key("ctrl-kp_add")
|
||||
machine.send_key("ctrl-kp_add")
|
||||
machine.send_key("ctrl-kp_add")
|
||||
machine.send_key("ctrl-kp_add")
|
||||
machine.send_key("ctrl-kp_add")
|
||||
machine.send_key("ctrl-kp_add")
|
||||
machine.send_key("ctrl-kp_add")
|
||||
machine.send_key("ctrl-kp_add")
|
||||
machine.send_key("ctrl-kp_add")
|
||||
machine.send_key("ctrl-kp_add")
|
||||
machine.send_key("ctrl-kp_add")
|
||||
machine.send_key("ctrl-kp_add")
|
||||
machine.send_key("ctrl-kp_add")
|
||||
machine.send_key("ctrl-kp_add")
|
||||
machine.send_key("ctrl-kp_add")
|
||||
|
||||
machine.send_key("ctrl-v")
|
||||
machine.wait_for_text("${qrContent}")
|
||||
|
||||
machine.succeed("pkill -f gnome-text-editor")
|
||||
machine.send_key("ctrl-alt-left")
|
||||
machine.succeed("pkill -f lomiri-camera-app")
|
||||
|
||||
with subtest("lomiri camera localisation works"):
|
||||
machine.succeed("env LANG=de_DE.UTF-8 lomiri-camera-app >&2 &")
|
||||
machine.wait_for_text("Kamera")
|
||||
machine.screenshot("lomiri-camera_localised")
|
||||
'';
|
||||
}
|
@ -174,9 +174,6 @@ in {
|
||||
# Using the keybind has a chance of instantly closing the menu again? Just click the button
|
||||
mouse_click(20, 30)
|
||||
|
||||
# Look for Search box & GUI-less content-hub examples, highest chances of avoiding false positives
|
||||
machine.wait_for_text(r"(Search|Export|Import|Share)")
|
||||
|
||||
start_all()
|
||||
machine.wait_for_unit("multi-user.target")
|
||||
|
||||
|
@ -4439,8 +4439,8 @@ let
|
||||
mktplcRef = {
|
||||
name = "code-spell-checker";
|
||||
publisher = "streetsidesoftware";
|
||||
version = "4.0.4";
|
||||
hash = "sha256-WbEhTIuPqH77IuEDgjPUz9chHM/aYjMdpCI9Kf0KS2Q=";
|
||||
version = "4.0.5";
|
||||
hash = "sha256-vrM3a13S1LKQq2Bl/DN/vasVMyClBdYBOt8DiUbh61I=";
|
||||
};
|
||||
meta = {
|
||||
changelog = "https://marketplace.visualstudio.com/items/streetsidesoftware.code-spell-checker/changelog";
|
||||
|
@ -5,17 +5,22 @@
|
||||
, makeWrapper
|
||||
, wrapGAppsHook3
|
||||
|
||||
, withOpenGL ? true
|
||||
|
||||
, bison
|
||||
, blas
|
||||
, cairo
|
||||
, ffmpeg
|
||||
, fftw
|
||||
, flex
|
||||
, freetype
|
||||
, gdal
|
||||
, geos
|
||||
, lapack
|
||||
, libGLU
|
||||
, libiconv
|
||||
, libmysqlclient
|
||||
, libpng
|
||||
, libsvm
|
||||
, libtiff
|
||||
, libxml2
|
||||
, netcdf
|
||||
@ -33,16 +38,17 @@
|
||||
|
||||
let
|
||||
pyPackages = python311Packages;
|
||||
|
||||
in
|
||||
stdenv.mkDerivation (finalAttrs: {
|
||||
pname = "grass";
|
||||
version = "8.3.2";
|
||||
version = "8.4.0";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "OSGeo";
|
||||
repo = "grass";
|
||||
rev = finalAttrs.version;
|
||||
hash = "sha256-loeg+7h676d2WdYOMcJFyzeEZcxjBynir6Hz0J/GBns=";
|
||||
hash = "sha256-NKMshd6pr2O62ZjmQ/oPttmeVBYVD0Nqhh3SwQrhZf8=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
@ -53,7 +59,6 @@ stdenv.mkDerivation (finalAttrs: {
|
||||
flex
|
||||
gdal # for `gdal-config`
|
||||
geos # for `geos-config`
|
||||
libmysqlclient # for `mysql_config`
|
||||
netcdf # for `nc-config`
|
||||
pkg-config
|
||||
] ++ (with pyPackages; [ python-dateutil numpy wxpython ]);
|
||||
@ -63,10 +68,12 @@ stdenv.mkDerivation (finalAttrs: {
|
||||
cairo
|
||||
ffmpeg
|
||||
fftw
|
||||
freetype
|
||||
gdal
|
||||
geos
|
||||
libmysqlclient
|
||||
lapack
|
||||
libpng
|
||||
libsvm
|
||||
libtiff
|
||||
(libxml2.override { enableHttp = true; })
|
||||
netcdf
|
||||
@ -78,7 +85,8 @@ stdenv.mkDerivation (finalAttrs: {
|
||||
wxGTK32
|
||||
zlib
|
||||
zstd
|
||||
] ++ lib.optionals stdenv.isDarwin [ libiconv ];
|
||||
] ++ lib.optionals withOpenGL [ libGLU ]
|
||||
++ lib.optionals stdenv.isDarwin [ libiconv ];
|
||||
|
||||
strictDeps = true;
|
||||
|
||||
@ -87,26 +95,30 @@ stdenv.mkDerivation (finalAttrs: {
|
||||
./clang-integer-conversion.patch
|
||||
];
|
||||
|
||||
# Correct mysql_config query
|
||||
postPatch = ''
|
||||
substituteInPlace configure --replace "--libmysqld-libs" "--libs"
|
||||
'';
|
||||
|
||||
configureFlags = [
|
||||
"--with-blas"
|
||||
"--with-cairo-ldflags=-lfontconfig"
|
||||
"--with-cxx"
|
||||
"--with-fftw"
|
||||
"--with-freetype"
|
||||
"--with-geos"
|
||||
# It complains about missing libmysqld but doesn't really seem to need it
|
||||
"--with-mysql"
|
||||
"--with-mysql-includes=${lib.getDev libmysqlclient}/include/mysql"
|
||||
"--with-mysql-libs=${libmysqlclient}/lib/mysql"
|
||||
"--with-netcdf"
|
||||
"--with-gdal"
|
||||
"--with-lapack"
|
||||
"--with-libsvm"
|
||||
"--with-nls"
|
||||
"--with-openmp"
|
||||
"--with-pdal"
|
||||
"--with-postgres"
|
||||
"--with-postgres-libs=${postgresql.lib}/lib/"
|
||||
"--with-proj-includes=${proj.dev}/include"
|
||||
"--with-proj-libs=${proj}/lib"
|
||||
"--with-proj-share=${proj}/share/proj"
|
||||
"--with-pthread"
|
||||
"--with-readline"
|
||||
"--with-sqlite"
|
||||
"--with-zstd"
|
||||
"--without-bzlib"
|
||||
"--without-mysql"
|
||||
"--without-odbc"
|
||||
] ++ lib.optionals (! withOpenGL) [
|
||||
"--without-opengl"
|
||||
] ++ lib.optionals stdenv.isDarwin [
|
||||
"--without-cairo"
|
||||
|
@ -22,6 +22,8 @@
|
||||
, libxslt
|
||||
, lyx
|
||||
, makeWrapper
|
||||
, meson
|
||||
, ninja
|
||||
, perl
|
||||
, perlPackages
|
||||
, pkg-config
|
||||
@ -66,35 +68,36 @@ let filters = {
|
||||
perl = perl.passthru.withPackages (p: [ p.ImageExifTool ]);
|
||||
};
|
||||
filterPath = lib.makeBinPath (map lib.getBin (builtins.attrValues filters));
|
||||
useInotify = if stdenv.isLinux then "true" else "false";
|
||||
in
|
||||
|
||||
mkDerivation rec {
|
||||
pname = "recoll";
|
||||
version = "1.37.5";
|
||||
version = "1.39.1";
|
||||
|
||||
src = fetchurl {
|
||||
url = "https://www.lesbonscomptes.com/${pname}/${pname}-${version}.tar.gz";
|
||||
hash = "sha256-vv2AMt6ufrfxRX2yF28X3E500MYP9hnGfDb3I9RdMVU=";
|
||||
url = "https://www.recoll.org/${pname}-${version}.tar.gz";
|
||||
hash = "sha256-Eeadj/AnuztCb7VIYEy4hKbduH3CzK53tADvI9+PWmQ=";
|
||||
};
|
||||
|
||||
configureFlags = [
|
||||
"--enable-recollq"
|
||||
"--disable-webkit"
|
||||
"--without-systemd"
|
||||
mesonFlags = [
|
||||
"-Drecollq=true"
|
||||
"-Dwebkit=false"
|
||||
"-Dsystemd=false"
|
||||
|
||||
# this leaks into the final `librecoll-*.so` binary, so we need
|
||||
# to be sure it is taken from `pkgs.file` rather than `stdenv`,
|
||||
# especially when cross-compiling
|
||||
"--with-file-command=${file}/bin/file"
|
||||
"-Dfile-command=${file}/bin/file"
|
||||
|
||||
] ++ lib.optionals (!withPython) [
|
||||
"--disable-python-module"
|
||||
"--disable-python-chm"
|
||||
"-Dpython-module=false"
|
||||
"-Dpython-chm=false"
|
||||
] ++ lib.optionals (!withGui) [
|
||||
"--disable-qtgui"
|
||||
"--disable-x11mon"
|
||||
"-Dqtgui=false"
|
||||
"-Dx11mon=false"
|
||||
] ++ [
|
||||
(lib.withFeature stdenv.isLinux "inotify")
|
||||
"-Dinotify=${useInotify}"
|
||||
];
|
||||
|
||||
env.NIX_CFLAGS_COMPILE = toString [
|
||||
@ -111,6 +114,8 @@ mkDerivation rec {
|
||||
|
||||
nativeBuildInputs = [
|
||||
makeWrapper
|
||||
meson
|
||||
ninja
|
||||
pkg-config
|
||||
which
|
||||
] ++ lib.optionals withGui [
|
||||
@ -174,7 +179,7 @@ mkDerivation rec {
|
||||
ln -s ../Applications/recoll.app/Contents/MacOS/recoll $out/bin/recoll
|
||||
'';
|
||||
|
||||
enableParallelBuilding = true;
|
||||
enableParallelBuilding = false; # XXX: -j44 tried linking befoire librecoll had been created
|
||||
|
||||
meta = with lib; {
|
||||
description = "Full-text search tool";
|
||||
@ -182,8 +187,8 @@ mkDerivation rec {
|
||||
Recoll is an Xapian frontend that can search through files, archive
|
||||
members, email attachments.
|
||||
'';
|
||||
homepage = "https://www.lesbonscomptes.com/recoll/";
|
||||
changelog = "https://www.lesbonscomptes.com/recoll/pages/release-${versions.majorMinor version}.html";
|
||||
homepage = "https://www.recoll.org";
|
||||
changelog = "https://www.recoll.org/pages/release-history.html";
|
||||
license = licenses.gpl2Plus;
|
||||
platforms = platforms.unix;
|
||||
maintainers = with maintainers; [ jcumming ehmry ];
|
||||
|
@ -1,6 +1,7 @@
|
||||
{ lib
|
||||
, rustPlatform
|
||||
, fetchFromGitHub
|
||||
, fetchpatch
|
||||
, pkg-config
|
||||
, installShellFiles
|
||||
, libxml2
|
||||
@ -22,6 +23,16 @@ rustPlatform.buildRustPackage rec {
|
||||
|
||||
cargoHash = "sha256-dY00xcMnOCWhdRzC+3mTHSIqeYEPUDBJeYd/GiLM/38=";
|
||||
|
||||
patches = [
|
||||
# Fix for rust 1.79, see https://github.com/Orange-OpenSource/hurl/issues/3057
|
||||
# We should be able to remove this at the next hurl version bump
|
||||
(fetchpatch {
|
||||
name = "hurl-fix-rust-1.79";
|
||||
url = "https://github.com/Orange-OpenSource/hurl/commit/d51c275fc63d1ee5bbdc6fc70279ec8dae86a9c1.patch";
|
||||
hash = "sha256-peA4Zq5J8ynL7trvydQ3ZqyHpJWrRmJeFeMKH9XT2n4=";
|
||||
})
|
||||
];
|
||||
|
||||
nativeBuildInputs = [
|
||||
pkg-config
|
||||
installShellFiles
|
||||
|
@ -53,13 +53,13 @@ let
|
||||
in
|
||||
effectiveStdenv.mkDerivation (finalAttrs: {
|
||||
pname = "koboldcpp";
|
||||
version = "1.70.1";
|
||||
version = "1.71.1";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "LostRuins";
|
||||
repo = "koboldcpp";
|
||||
rev = "refs/tags/v${finalAttrs.version}";
|
||||
sha256 = "sha256-wtSkmjx5mzESMvIflqH+QEavH5oeBgKBz8/JjU+CASo=";
|
||||
hash = "sha256-69iqpXzG9NXrqv08lJ36hlHWXwXUJs6yqcaGr32cHPw=";
|
||||
};
|
||||
|
||||
enableParallelBuilding = true;
|
||||
|
@ -4,16 +4,16 @@
|
||||
}:
|
||||
buildGoModule rec {
|
||||
pname = "nar-serve";
|
||||
version = "0.6.1";
|
||||
version = "0.7.0";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "numtide";
|
||||
repo = "nar-serve";
|
||||
rev = "v${version}";
|
||||
hash = "sha256-cSOYHYJJEGzFtkD4mjTmYBiM9CaWKt64xgV/JeNHpfM=";
|
||||
hash = "sha256-8QuMS00EutmqzAIPxyJEPxM8EHiWlSKs6E2Htoh3Kes=";
|
||||
};
|
||||
|
||||
vendorHash = "sha256-RpjLs4+9abbbysYAlPDUXBLe1cz4Lp+QmR1yv+LpYwQ=";
|
||||
vendorHash = "sha256-td9NYHGYJYPlIj2tnf5I/GnJQOOgODc6TakHFwxyvLQ=";
|
||||
|
||||
doCheck = false;
|
||||
|
@ -7,7 +7,7 @@
|
||||
nix-update-script,
|
||||
}:
|
||||
let
|
||||
version = "2.4.4";
|
||||
version = "2.5.1";
|
||||
in
|
||||
python3.pkgs.buildPythonApplication {
|
||||
pname = "novelwriter";
|
||||
@ -18,7 +18,7 @@ python3.pkgs.buildPythonApplication {
|
||||
owner = "vkbo";
|
||||
repo = "novelWriter";
|
||||
rev = "v${version}";
|
||||
hash = "sha256-vYvrSRQTp/8jcCQIL6HgxdSJwogiPJKfVO+9hhK6emc=";
|
||||
hash = "sha256-DgeDAPE5IkZtzi+Xq2BpGfpgTRonzNjaa1NTcwnqdNo=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [ qt5.wrapQtAppsHook ];
|
||||
|
47
pkgs/by-name/ra/radiance/package.nix
Normal file
47
pkgs/by-name/ra/radiance/package.nix
Normal file
@ -0,0 +1,47 @@
|
||||
{
|
||||
cmake,
|
||||
fetchFromGitHub,
|
||||
runCommand,
|
||||
lib,
|
||||
libGLU,
|
||||
stdenv,
|
||||
libX11,
|
||||
tcsh,
|
||||
tk,
|
||||
}:
|
||||
let
|
||||
csh = runCommand "csh" { } ''
|
||||
mkdir -p $out/bin
|
||||
ln -s ${lib.getExe tcsh} $out/bin/csh
|
||||
'';
|
||||
in
|
||||
stdenv.mkDerivation (finalAttrs: {
|
||||
pname = "radiance";
|
||||
version = "5.4";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "LBNL-ETA";
|
||||
repo = "radiance";
|
||||
rev = "refs/tags/rad${lib.versions.major finalAttrs.version}R${lib.versions.minor finalAttrs.version}";
|
||||
hash = "sha256-21lVWqO8uJefnm/dyfrjQJYbGck0fIRr2j0A+7WlZbM=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
cmake
|
||||
csh # for some custom scripting in the repo
|
||||
tk # for wish
|
||||
];
|
||||
|
||||
buildInputs = [
|
||||
libGLU
|
||||
libX11
|
||||
];
|
||||
|
||||
meta = {
|
||||
description = "Validated Lighting Simulation Tool";
|
||||
homepage = "https://github.com/LBNL-ETA/Radiance";
|
||||
license = lib.licenses.radiance;
|
||||
maintainers = with lib.maintainers; [ robwalt ];
|
||||
mainProgram = "rad";
|
||||
};
|
||||
})
|
@ -33,10 +33,10 @@
|
||||
|
||||
let
|
||||
# Keep these separate so the update script can regex them
|
||||
rpcs3GitVersion = "16659-33851d51a";
|
||||
rpcs3Version = "0.0.32-16659-33851d51a";
|
||||
rpcs3Revision = "33851d51ab93c3c73be18a6cb5ed7723219ee1e3";
|
||||
rpcs3Hash = "sha256-Gv3zkvZdvnRUKvS0JhrvHOOz5OVSqxHBkbbOdYWzRvU=";
|
||||
rpcs3GitVersion = "16711-501e9260b";
|
||||
rpcs3Version = "0.0.32-16711-501e9260b";
|
||||
rpcs3Revision = "501e9260b2f2c175c19e3a7e80a0afc7952a3f1e";
|
||||
rpcs3Hash = "sha256-qCTaCRx3Q7gUHNvcBlbHtQbeCwDe9pehWAEYiihH+LA=";
|
||||
|
||||
inherit (qt6Packages) qtbase qtmultimedia wrapQtAppsHook qtwayland;
|
||||
in
|
||||
|
@ -20,16 +20,16 @@ assert waylandSupport -> stdenv.isLinux;
|
||||
|
||||
buildGoModule rec {
|
||||
pname = "supersonic" + lib.optionalString waylandSupport "-wayland";
|
||||
version = "0.12.0";
|
||||
version = "0.13.0";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "dweymouth";
|
||||
repo = "supersonic";
|
||||
rev = "v${version}";
|
||||
hash = "sha256-SbG5jzsR1ggGYbQ3kwrvKeGfkF+LlZwPV6L5/rKT49A=";
|
||||
hash = "sha256-2TxtrfrwqxPQx7PWiWyJLmHtq/SEb2agAImpdsDeBDk=";
|
||||
};
|
||||
|
||||
vendorHash = "sha256-N2HdXGdb0OEfczPmc40jdx1rxKj2vxcEjbn+6K6vHhU=";
|
||||
vendorHash = "sha256-bLQLRPu1Kvtx1+Lc8VpPAlOoGzYZo7dzEPwT0iauDWs=";
|
||||
|
||||
nativeBuildInputs = [
|
||||
copyDesktopItems
|
||||
|
55
pkgs/desktops/gnome/extensions/guillotine/default.nix
Normal file
55
pkgs/desktops/gnome/extensions/guillotine/default.nix
Normal file
@ -0,0 +1,55 @@
|
||||
{
|
||||
stdenv,
|
||||
lib,
|
||||
fetchFromGitLab,
|
||||
glib,
|
||||
}:
|
||||
# We package this manually because upstream stopped updating the package to
|
||||
# extensions.gnome.org. See:
|
||||
# https://gitlab.com/ente76/guillotine/-/issues/17
|
||||
stdenv.mkDerivation (finalAttrs: {
|
||||
pname = "gnome-shell-extension-guillotine";
|
||||
version = "24";
|
||||
|
||||
src = fetchFromGitLab {
|
||||
owner = "ente76";
|
||||
repo = "guillotine";
|
||||
rev = "v${finalAttrs.version}";
|
||||
hash = "sha256-eNhK3h9luPGXHR3lPkfu/mUN9+ixma64rbCk0cjF4Fc=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [ glib ];
|
||||
|
||||
passthru = {
|
||||
extensionUuid = "guillotine@fopdoodle.net";
|
||||
extensionPortalSlug = "guillotine";
|
||||
};
|
||||
|
||||
buildPhase = ''
|
||||
runHook preBuild
|
||||
rm schemas/gschemas.compiled
|
||||
glib-compile-schemas schemas
|
||||
runHook postBuild
|
||||
'';
|
||||
|
||||
installPhase = ''
|
||||
runHook preInstall
|
||||
mkdir -p $out/share/gnome-shell/extensions/guillotine@fopdoodle.net
|
||||
cp -R schemas "$out/share/gnome-shell/extensions/guillotine@fopdoodle.net"
|
||||
cp default.json $out/share/gnome-shell/extensions/guillotine@fopdoodle.net
|
||||
cp extension.js "$out/share/gnome-shell/extensions/guillotine@fopdoodle.net"
|
||||
cp guillotine-symbolic.svg "$out/share/gnome-shell/extensions/guillotine@fopdoodle.net"
|
||||
cp LICENSE "$out/share/gnome-shell/extensions/guillotine@fopdoodle.net"
|
||||
cp metadata.json "$out/share/gnome-shell/extensions/guillotine@fopdoodle.net"
|
||||
cp README.md "$out/share/gnome-shell/extensions/guillotine@fopdoodle.net"
|
||||
runHook postInstall
|
||||
'';
|
||||
|
||||
meta = {
|
||||
description = "A gnome extension designed for efficiently carrying out executions of commands from a customizable menu";
|
||||
homepage = "https://gitlab.com/ente76/guillotine/";
|
||||
license = lib.licenses.gpl3Plus;
|
||||
maintainers = with lib.maintainers; [ husky ];
|
||||
platforms = lib.platforms.linux;
|
||||
};
|
||||
})
|
@ -6,6 +6,7 @@
|
||||
"drop-down-terminal@gs-extensions.zzrough.org" = callPackage ./drop-down-terminal { };
|
||||
"EasyScreenCast@iacopodeenosee.gmail.com" = callPackage ./EasyScreenCast { };
|
||||
"gsconnect@andyholmes.github.io" = callPackage ./gsconnect { };
|
||||
"guillotine@fopdoodle.net" = callPackage ./guillotine { };
|
||||
"impatience@gfxmonk.net" = callPackage ./impatience { };
|
||||
"no-title-bar@jonaspoehler.de" = callPackage ./no-title-bar { };
|
||||
"pidgin@muffinmad" = callPackage ./pidgin-im-integration { };
|
||||
|
234
pkgs/desktops/lomiri/applications/lomiri-camera-app/default.nix
Normal file
234
pkgs/desktops/lomiri/applications/lomiri-camera-app/default.nix
Normal file
@ -0,0 +1,234 @@
|
||||
{
|
||||
stdenv,
|
||||
lib,
|
||||
fetchFromGitLab,
|
||||
fetchpatch,
|
||||
gitUpdater,
|
||||
nixosTests,
|
||||
cmake,
|
||||
content-hub,
|
||||
exiv2,
|
||||
gettext,
|
||||
gst_all_1,
|
||||
libusermetrics,
|
||||
lomiri-action-api,
|
||||
lomiri-ui-toolkit,
|
||||
lomiri-thumbnailer,
|
||||
pkg-config,
|
||||
qtbase,
|
||||
qtdeclarative,
|
||||
qtmultimedia,
|
||||
qtpositioning,
|
||||
qtquickcontrols2,
|
||||
qtsensors,
|
||||
qzxing,
|
||||
wrapGAppsHook3,
|
||||
wrapQtAppsHook,
|
||||
xvfb-run,
|
||||
}:
|
||||
|
||||
stdenv.mkDerivation (finalAttrs: {
|
||||
pname = "lomiri-camera-app";
|
||||
version = "4.0.6";
|
||||
|
||||
src = fetchFromGitLab {
|
||||
owner = "ubports";
|
||||
repo = "development/apps/lomiri-camera-app";
|
||||
rev = "refs/tags/v${finalAttrs.version}";
|
||||
hash = "sha256-93skB614T9RcMhYfeCDjV+JLYoJocylk32uzdcQ4I8Q=";
|
||||
};
|
||||
|
||||
patches = [
|
||||
# Remove when version > 4.0.6
|
||||
(fetchpatch {
|
||||
name = "0001-lomiri-camera-app-Stop using qt5_use_modules.patch";
|
||||
url = "https://gitlab.com/ubports/development/apps/lomiri-camera-app/-/commit/567f983e59cc412c9e1951f78f0809c6faebd3a6.patch";
|
||||
hash = "sha256-peP3c7XqpjGcdVG5zLKTcZPUPVz9Tu8tVBPaLVc5vWE=";
|
||||
})
|
||||
|
||||
# Fix GNUInstallDirs usage
|
||||
# Remove when https://gitlab.com/ubports/development/apps/lomiri-camera-app/-/merge_requests/205 merged & in release
|
||||
(fetchpatch {
|
||||
name = "0002-lomiri-camera-app-GNUInstallDirs.patch";
|
||||
url = "https://gitlab.com/ubports/development/apps/lomiri-camera-app/-/commit/76fbccd627bdbf30e4f3a736d1821e25f1cf45a7.patch";
|
||||
hash = "sha256-qz/2Df84e5+T8zQANb2Bl4dwoI10Z3blAlNI9ODavSw=";
|
||||
})
|
||||
|
||||
# Call i18n.bindtextdomain with correct locale path
|
||||
# Remove when https://gitlab.com/ubports/development/apps/lomiri-camera-app/-/merge_requests/206 merged & in release
|
||||
(fetchpatch {
|
||||
name = "0003-lomiri-camera-app-bindtextdomain.patch";
|
||||
url = "https://gitlab.com/ubports/development/apps/lomiri-camera-app/-/commit/9250b79f85218b561dce07030a2920d5443ac4ba.patch";
|
||||
hash = "sha256-vCE64sxpin68Ks/hu1LWuOT5eZWozPPKqYR2GcsriPg=";
|
||||
})
|
||||
|
||||
# Fix doubled DESTINATION
|
||||
# Remove when https://gitlab.com/ubports/development/apps/lomiri-camera-app/-/merge_requests/207 merged & in release
|
||||
(fetchpatch {
|
||||
name = "0004-lomiri-camera-app-bindtextdomain.patch";
|
||||
url = "https://gitlab.com/ubports/development/apps/lomiri-camera-app/-/commit/4af85daccac0904cbb0cfb08e592d9ab1d745d6d.patch";
|
||||
hash = "sha256-PCGwQ6rAyrBeAefTe1ciod+R4tbJk+D76g9fH4PoTlg=";
|
||||
})
|
||||
|
||||
# Use pkg-config to find QZXing
|
||||
# Remove when https://gitlab.com/ubports/development/apps/lomiri-camera-app/-/merge_requests/208 merged & in release
|
||||
(fetchpatch {
|
||||
name = "0005-lomiri-camera-app-QZXing-pkg-config.patch";
|
||||
url = "https://gitlab.com/ubports/development/apps/lomiri-camera-app/-/commit/e79a10ca236ef5ed0af328786dbaef281e2c120b.patch";
|
||||
hash = "sha256-dC6a6IjpPez+asKdTB885rAEN+mqtP7uYpicz/4hRSM=";
|
||||
})
|
||||
|
||||
# Make testing optional
|
||||
# Remove when https://gitlab.com/ubports/development/apps/lomiri-camera-app/-/merge_requests/209 merged & in release
|
||||
(fetchpatch {
|
||||
name = "0006-lomiri-camera-app-BUILD_TESTING.patch";
|
||||
url = "https://gitlab.com/ubports/development/apps/lomiri-camera-app/-/commit/e3ec58327ffc25c565cf8c28d09adc09c4067b23.patch";
|
||||
hash = "sha256-U5r3+218Cx4T0iF7nm2Mfhlr+4dn7ptPfgsxZrIUJHQ=";
|
||||
})
|
||||
|
||||
# Fix translation of window title
|
||||
# Remove when https://gitlab.com/ubports/development/apps/lomiri-camera-app/-/merge_requests/211 merged & in release
|
||||
(fetchpatch {
|
||||
name = "0007-lomiri-camera-app-title-translation.patch";
|
||||
url = "https://gitlab.com/ubports/development/apps/lomiri-camera-app/-/commit/43f0018158f65fe81f50e7860d8af2e469785434.patch";
|
||||
hash = "sha256-7qFqps488B2d1wp79kFyUDR1FzE1Q9QMIOFFa/astHU=";
|
||||
})
|
||||
|
||||
# Make barcode reader's icons SVGs and fix icon installations
|
||||
# Remove when https://gitlab.com/ubports/development/apps/lomiri-camera-app/-/merge_requests/210 merged & in release
|
||||
(fetchpatch {
|
||||
name = "0011-lomiri-camera-app-camera-icon-installation-fix.patch";
|
||||
url = "https://gitlab.com/ubports/development/apps/lomiri-camera-app/-/commit/48ebaffc1f589569387127e953b0995451580cc1.patch";
|
||||
hash = "sha256-nq5iCTHCUzEj/38hCIaqhzUX7ABVkSAeB5hEzZfIX7A=";
|
||||
})
|
||||
(fetchpatch {
|
||||
name = "0012-lomiri-camera-app-splash-icon-location-fix.patch";
|
||||
url = "https://gitlab.com/ubports/development/apps/lomiri-camera-app/-/commit/6c96eade82d6d812aa605bc45a5ff06ed3a2aeff.patch";
|
||||
hash = "sha256-8QusJPyNO8ADx3Ce1y/thQAaXQa8XnnMvPrxyzx8oRk=";
|
||||
})
|
||||
(fetchpatch {
|
||||
name = "0013-lomiri-camera-app-Vectorise-barcode-icons.patch";
|
||||
url = "https://gitlab.com/ubports/development/apps/lomiri-camera-app/-/commit/d5232590a02b535d24d9765d24ce5a066cc57724.patch";
|
||||
hash = "sha256-sfSdzFFLof1dN/7KnerZOBoarubGcTxp7h9Ab6rGoV0=";
|
||||
})
|
||||
(fetchpatch {
|
||||
name = "0014-lomiri-camera-app-barcode-icon-installation-fix.patch";
|
||||
url = "https://gitlab.com/ubports/development/apps/lomiri-camera-app/-/commit/a8718d6621a34aaf19aaaaea5dd31f401a652953.patch";
|
||||
hash = "sha256-eiBliqk71aDmIMY6cn1J5cxmzlHMTtiYKeQ0cJuCNYA=";
|
||||
})
|
||||
];
|
||||
|
||||
# We don't want absolute paths in dekstop files
|
||||
postPatch = ''
|
||||
substituteInPlace CMakeLists.txt \
|
||||
--replace-fail 'CAMERA_SPLASH ''${CAMERA_APP_DIR}/assets/lomiri-camera-app-splash.svg' 'CAMERA_SPLASH lomiri-app-launch/splash/lomiri-camera-app.svg' \
|
||||
--replace-fail 'READER_SPLASH "''${CAMERA_APP_DIR}/assets/lomiri-barcode-reader-app-splash.svg"' 'READER_SPLASH lomiri-app-launch/splash/lomiri-barcode-reader-app.svg'
|
||||
'';
|
||||
|
||||
strictDeps = true;
|
||||
|
||||
nativeBuildInputs = [
|
||||
cmake
|
||||
gettext
|
||||
pkg-config
|
||||
wrapGAppsHook3
|
||||
wrapQtAppsHook
|
||||
];
|
||||
|
||||
buildInputs =
|
||||
[
|
||||
exiv2
|
||||
qtbase
|
||||
qtdeclarative
|
||||
qtmultimedia
|
||||
qtquickcontrols2
|
||||
qzxing
|
||||
|
||||
# QML
|
||||
content-hub
|
||||
libusermetrics
|
||||
lomiri-action-api
|
||||
lomiri-ui-toolkit
|
||||
lomiri-thumbnailer
|
||||
qtpositioning
|
||||
qtsensors
|
||||
]
|
||||
++ (with gst_all_1; [
|
||||
# cannot create camera service, the 'camerabin' plugin is missing for GStreamer
|
||||
gstreamer
|
||||
gst-plugins-base
|
||||
gst-plugins-good
|
||||
gst-plugins-bad
|
||||
gst-plugins-ugly
|
||||
]);
|
||||
|
||||
nativeCheckInputs = [ xvfb-run ];
|
||||
|
||||
cmakeFlags = [
|
||||
(lib.cmakeBool "INSTALL_TESTS" false)
|
||||
(lib.cmakeBool "CLICK_MODE" false)
|
||||
(lib.cmakeFeature "CMAKE_CTEST_ARGUMENTS" (
|
||||
lib.concatStringsSep ";" [
|
||||
# Exclude tests
|
||||
"-E"
|
||||
(lib.strings.escapeShellArg "(${
|
||||
lib.concatStringsSep "|" [
|
||||
# Don't care about linter failures
|
||||
"^flake8"
|
||||
]
|
||||
})")
|
||||
]
|
||||
))
|
||||
];
|
||||
|
||||
doCheck = stdenv.buildPlatform.canExecute stdenv.hostPlatform;
|
||||
|
||||
preCheck =
|
||||
let
|
||||
listToQtVar = suffix: lib.makeSearchPathOutput "bin" suffix;
|
||||
in
|
||||
''
|
||||
export QT_PLUGIN_PATH=${listToQtVar qtbase.qtPluginPrefix [ qtbase ]}
|
||||
export QML2_IMPORT_PATH=${
|
||||
listToQtVar qtbase.qtQmlPrefix [
|
||||
lomiri-ui-toolkit
|
||||
content-hub
|
||||
lomiri-thumbnailer
|
||||
]
|
||||
}
|
||||
'';
|
||||
|
||||
postInstall = ''
|
||||
mkdir -p $out/share/lomiri-app-launch/splash
|
||||
ln -s $out/share/lomiri-camera-app/assets/lomiri-camera-app-splash.svg $out/share/lomiri-app-launch/splash/lomiri-camera-app.svg
|
||||
ln -s $out/share/lomiri-camera-app/assets/lomiri-barcode-reader-app-splash.svg $out/share/lomiri-app-launch/splash/lomiri-barcode-reader-app.svg
|
||||
|
||||
install -Dm644 ../camera-contenthub.json $out/share/content-hub/peers/lomiri-camera-app
|
||||
'';
|
||||
|
||||
dontWrapGApps = true;
|
||||
|
||||
preFixup = ''
|
||||
qtWrapperArgs+=(
|
||||
"''${gappsWrapperArgs[@]}"
|
||||
)
|
||||
'';
|
||||
|
||||
passthru = {
|
||||
tests.vm = nixosTests.lomiri-camera-app;
|
||||
updateScript = gitUpdater { rev-prefix = "v"; };
|
||||
};
|
||||
|
||||
meta = {
|
||||
description = "Camera application for Ubuntu Touch devices";
|
||||
homepage = "https://gitlab.com/ubports/development/apps/lomiri-camera-app";
|
||||
changelog = "https://gitlab.com/ubports/development/apps/lomiri-camera-app/-/blob/v${finalAttrs.version}/ChangeLog";
|
||||
license = with lib.licenses; [
|
||||
gpl3Only # code
|
||||
cc-by-sa-30 # extra graphics
|
||||
];
|
||||
mainProgram = "lomiri-camera-app";
|
||||
maintainers = lib.teams.lomiri.members;
|
||||
platforms = lib.platforms.linux;
|
||||
};
|
||||
})
|
@ -10,6 +10,7 @@ let
|
||||
#### Core Apps
|
||||
lomiri = callPackage ./applications/lomiri { };
|
||||
lomiri-calculator-app = callPackage ./applications/lomiri-calculator-app { };
|
||||
lomiri-camera-app = callPackage ./applications/lomiri-camera-app { };
|
||||
lomiri-clock-app = callPackage ./applications/lomiri-clock-app { };
|
||||
lomiri-filemanager-app = callPackage ./applications/lomiri-filemanager-app { };
|
||||
lomiri-system-settings-unwrapped = callPackage ./applications/lomiri-system-settings { };
|
||||
|
@ -0,0 +1,27 @@
|
||||
{ lib, mkCoqDerivation, coq, version ? null }:
|
||||
|
||||
mkCoqDerivation {
|
||||
pname = "high-school-geometry";
|
||||
inherit version;
|
||||
repo = "HighSchoolGeometry";
|
||||
defaultVersion = with lib.versions; lib.switch coq.coq-version [
|
||||
{ case = range "8.16" "8.20"; out = "8.16"; }
|
||||
{ case = range "8.12" "8.16"; out = "8.13"; }
|
||||
{ case = "8.12"; out = "8.12"; }
|
||||
{ case = "8.11"; out = "8.11"; }
|
||||
] null;
|
||||
|
||||
release = {
|
||||
"8.16".sha256 = "sha256-HvUrZ6l7wCshuKUZs8rvfMkTEv+oXuogI5LICcD8Bn8=";
|
||||
"8.13".sha256 = "sha256-5F/6155v0bWi5t7n4qU/GuR6jENngvWIIqJGPURzIeQ=";
|
||||
"8.12".sha256 = "sha256-OF7sahU+5Ormkcrd8t6p2Kp/B2/Q/6zYTV3/XBvlGHc=";
|
||||
"8.11".sha256 = "sha256-sVGeBBAJ7a7f+EJU1aSUvIVe9ip9PakY4379XWvvoqw=";
|
||||
};
|
||||
releaseRev = v: "v${v}";
|
||||
|
||||
meta = with lib; {
|
||||
description = "Geometry in Coq for French high school";
|
||||
maintainers = with maintainers; [ definfo ];
|
||||
license = licenses.lgpl21Plus;
|
||||
};
|
||||
}
|
@ -1,18 +1,14 @@
|
||||
# Packges which have been deprecated or removed from cudaPackages
|
||||
# Packages which have been deprecated or removed from cudaPackages
|
||||
final: prev:
|
||||
let
|
||||
mkRenamed =
|
||||
oldName: newName: newPkg:
|
||||
final.lib.warn "cudaPackages.${oldName} is deprecated, use ${newName} instead" newPkg;
|
||||
in
|
||||
{
|
||||
inherit (prev.lib) warn;
|
||||
inherit (builtins) mapAttrs;
|
||||
|
||||
# Deprecated: an alias kept for compatibility. Consider removing after 24.05
|
||||
autoFixElfFiles = mkRenamed "autoFixElfFiles" "pkgs.autoFixElfFiles" final.pkgs.autoFixElfFiles; # Added 2024-03-30
|
||||
autoAddDriverRunpath =
|
||||
mkRenamed "autoAddDriverRunpath" "pkgs.autoAddDriverRunpath"
|
||||
final.pkgs.autoAddDriverRunpath; # Added 2024-03-30
|
||||
autoAddOpenGLRunpathHook =
|
||||
mkRenamed "autoAddOpenGLRunpathHook" "pkgs.autoAddDriverRunpathHook"
|
||||
final.pkgs.autoAddDriverRunpath; # Added 2024-03-30
|
||||
mkRenamed =
|
||||
oldName:
|
||||
{ path, package }:
|
||||
warn "cudaPackages.${oldName} is deprecated, use ${path} instead" package;
|
||||
in
|
||||
mapAttrs mkRenamed {
|
||||
# A comment to prevent empty { } from collapsing into a single line
|
||||
}
|
||||
|
@ -37,6 +37,10 @@ stdenv.mkDerivation (finalAttrs: {
|
||||
sha256 = "sha256-ukBZLr/iyYQ68sv9JWrR4YP0ahHfGhytgcWKPzrF3Ps=";
|
||||
};
|
||||
|
||||
patches = [
|
||||
./pdal.pc.in.patch
|
||||
];
|
||||
|
||||
nativeBuildInputs = [
|
||||
cmake
|
||||
pkg-config
|
||||
@ -124,7 +128,9 @@ stdenv.mkDerivation (finalAttrs: {
|
||||
version = "pdal ${finalAttrs.finalPackage.version}";
|
||||
};
|
||||
pdal = callPackage ./tests.nix { pdal = finalAttrs.finalPackage; };
|
||||
pkg-config = testers.testMetaPkgConfig finalAttrs.finalPackage;
|
||||
pkg-config = testers.hasPkgConfigModules {
|
||||
package = finalAttrs.finalPackage;
|
||||
};
|
||||
};
|
||||
|
||||
meta = with lib; {
|
||||
|
12
pkgs/development/libraries/pdal/pdal.pc.in.patch
Normal file
12
pkgs/development/libraries/pdal/pdal.pc.in.patch
Normal file
@ -0,0 +1,12 @@
|
||||
diff --git a/apps/pdal.pc.in b/apps/pdal.pc.in
|
||||
index 6885221cacc8..a07ee82cea68 100644
|
||||
--- a/apps/pdal.pc.in
|
||||
+++ b/apps/pdal.pc.in
|
||||
@@ -1,6 +1,6 @@
|
||||
prefix=@CMAKE_INSTALL_PREFIX@
|
||||
exec_prefix=@CMAKE_INSTALL_PREFIX@/bin
|
||||
-libdir=@CMAKE_INSTALL_PREFIX@/@CMAKE_INSTALL_LIBDIR@
|
||||
+libdir=@CMAKE_INSTALL_FULL_LIBDIR@
|
||||
includedir=@CMAKE_INSTALL_PREFIX@/include
|
||||
|
||||
Name: PDAL
|
@ -12,7 +12,8 @@
|
||||
, qemu
|
||||
, scribus
|
||||
, tigervnc
|
||||
, wlroots
|
||||
, wlroots_0_17
|
||||
, wlroots_0_18
|
||||
, xwayland
|
||||
|
||||
, gitUpdater
|
||||
@ -66,7 +67,7 @@ stdenv.mkDerivation (finalAttrs: {
|
||||
|
||||
passthru = {
|
||||
tests = {
|
||||
inherit cairo qemu scribus tigervnc wlroots xwayland;
|
||||
inherit cairo qemu scribus tigervnc wlroots_0_17 wlroots_0_18 xwayland;
|
||||
pkg-config = testers.hasPkgConfigModules {
|
||||
package = finalAttrs.finalPackage;
|
||||
};
|
||||
|
@ -137,7 +137,9 @@ stdenv.mkDerivation {
|
||||
''
|
||||
demo_ivfpq_indexing && touch $out
|
||||
'';
|
||||
} // lib.optionalAttrs pythonSupport { pytest = pythonPackages.callPackage ./tests.nix { }; };
|
||||
pythonFaiss = pythonPackages.faiss;
|
||||
pytest = pythonPackages.faiss.tests.pytest;
|
||||
};
|
||||
};
|
||||
|
||||
meta = with lib; {
|
||||
|
80
pkgs/development/ocaml-modules/mopsa/default.nix
Normal file
80
pkgs/development/ocaml-modules/mopsa/default.nix
Normal file
@ -0,0 +1,80 @@
|
||||
{
|
||||
lib,
|
||||
buildDunePackage,
|
||||
fetchFromGitLab,
|
||||
clang,
|
||||
libclang,
|
||||
libllvm,
|
||||
flint,
|
||||
mpfr,
|
||||
pplite,
|
||||
ocaml,
|
||||
menhir,
|
||||
apron,
|
||||
camlidl,
|
||||
yojson,
|
||||
zarith,
|
||||
}:
|
||||
|
||||
buildDunePackage rec {
|
||||
pname = "mopsa";
|
||||
version = "1.0";
|
||||
|
||||
minimalOCamlVersion = "4.12";
|
||||
|
||||
src = fetchFromGitLab {
|
||||
owner = "mopsa";
|
||||
repo = "mopsa-analyzer";
|
||||
rev = "v${version}";
|
||||
hash = "sha256-nGnWwV7g3SYgShbXGUMooyOdFwXFrQHnQvlc8x9TAS4=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
clang
|
||||
libllvm
|
||||
menhir
|
||||
];
|
||||
|
||||
buildInputs = [
|
||||
camlidl
|
||||
flint
|
||||
libclang
|
||||
mpfr
|
||||
pplite
|
||||
];
|
||||
|
||||
propagatedBuildInputs = [
|
||||
apron
|
||||
yojson
|
||||
zarith
|
||||
];
|
||||
|
||||
postPatch = ''
|
||||
patchShebangs bin
|
||||
'';
|
||||
|
||||
buildPhase = ''
|
||||
runHook preBuild
|
||||
dune build --profile release -p mopsa
|
||||
runHook postBuild
|
||||
'';
|
||||
|
||||
installPhase = ''
|
||||
runHook preInstall
|
||||
dune install --profile release --prefix=$bin --libdir=$out/lib/ocaml/${ocaml.version}/site-lib
|
||||
runHook postInstall
|
||||
'';
|
||||
|
||||
outputs = [
|
||||
"bin"
|
||||
"out"
|
||||
];
|
||||
|
||||
meta = {
|
||||
license = lib.licenses.lgpl3Plus;
|
||||
homepage = "https://mopsa.lip6.fr/";
|
||||
description = "A Modular and Open Platform for Static Analysis using Abstract Interpretation";
|
||||
maintainers = [ lib.maintainers.vbgl ];
|
||||
};
|
||||
|
||||
}
|
@ -1,6 +1,7 @@
|
||||
{
|
||||
lib,
|
||||
buildPythonPackage,
|
||||
callPackage,
|
||||
faiss-build,
|
||||
numpy,
|
||||
packaging,
|
||||
@ -39,6 +40,14 @@ buildPythonPackage {
|
||||
|
||||
pythonImportsCheck = [ "faiss" ];
|
||||
|
||||
passthru = {
|
||||
inherit (faiss-build) cudaSupport cudaPackages pythonSupport;
|
||||
|
||||
tests = {
|
||||
pytest = callPackage ./pytest.nix { inherit faiss-build; };
|
||||
};
|
||||
};
|
||||
|
||||
meta = lib.pipe (faiss-build.meta or { }) [
|
||||
(lib.flip builtins.removeAttrs [ "mainProgram" ])
|
||||
(m: m // { description = "Bindings for faiss, the similarity search library"; })
|
||||
|
@ -1,8 +1,10 @@
|
||||
{ lib
|
||||
, buildPythonPackage
|
||||
, faiss
|
||||
, scipy
|
||||
, pytestCheckHook
|
||||
{
|
||||
lib,
|
||||
buildPythonPackage,
|
||||
faiss,
|
||||
faiss-build,
|
||||
scipy,
|
||||
pytestCheckHook,
|
||||
}:
|
||||
|
||||
assert faiss.pythonSupport;
|
||||
@ -13,15 +15,13 @@ buildPythonPackage {
|
||||
|
||||
format = "other";
|
||||
|
||||
src = "${faiss.src}/tests";
|
||||
src = "${faiss-build.src}/tests";
|
||||
|
||||
dontBuild = true;
|
||||
dontInstall = true;
|
||||
|
||||
# Tests that need GPUs and would fail in the sandbox
|
||||
disabledTestPaths = lib.optionals faiss.cudaSupport [
|
||||
"test_contrib.py"
|
||||
];
|
||||
disabledTestPaths = lib.optionals faiss.cudaSupport [ "test_contrib.py" ];
|
||||
|
||||
disabledTests = [
|
||||
# https://github.com/facebookresearch/faiss/issues/2836
|
||||
@ -32,6 +32,9 @@ buildPythonPackage {
|
||||
faiss
|
||||
pytestCheckHook
|
||||
scipy
|
||||
] ++
|
||||
faiss.extra-requires.all;
|
||||
];
|
||||
|
||||
meta = faiss.meta // {
|
||||
description = "Faiss test suite";
|
||||
};
|
||||
}
|
@ -14,6 +14,7 @@
|
||||
pytestCheckHook,
|
||||
pytest-mpi,
|
||||
cached-property,
|
||||
stdenv,
|
||||
}:
|
||||
|
||||
assert hdf5.mpiSupport -> mpi4py != null && hdf5.mpi == mpi4py.mpi;
|
||||
@ -46,9 +47,7 @@ buildPythonPackage rec {
|
||||
substituteInPlace pyproject.toml \
|
||||
--replace-fail "numpy >=2.0.0rc1" "numpy"
|
||||
'';
|
||||
pythonRelaxDeps = [
|
||||
"mpi4py"
|
||||
];
|
||||
pythonRelaxDeps = [ "mpi4py" ];
|
||||
|
||||
HDF5_DIR = "${hdf5}";
|
||||
HDF5_MPI = if mpiSupport then "ON" else "OFF";
|
||||
@ -100,5 +99,9 @@ buildPythonPackage rec {
|
||||
homepage = "http://www.h5py.org/";
|
||||
license = lib.licenses.bsd3;
|
||||
maintainers = with lib.maintainers; [ doronbehar ];
|
||||
# When importing `h5py` during the build, we get:
|
||||
#
|
||||
# ValueError: Not a datatype (not a datatype)
|
||||
broken = stdenv.isDarwin && stdenv.isx86_64;
|
||||
};
|
||||
}
|
||||
|
@ -201,8 +201,11 @@ let
|
||||
]);
|
||||
"MPI cudatoolkit does not match cudaPackages.cudatoolkit" =
|
||||
MPISupport && cudaSupport && (mpi.cudatoolkit != cudaPackages.cudatoolkit);
|
||||
# This used to be a deep package set comparison between cudaPackages and
|
||||
# effectiveMagma.cudaPackages, making torch too strict in cudaPackages.
|
||||
# In particular, this triggered warnings from cuda's `aliases.nix`
|
||||
"Magma cudaPackages does not match cudaPackages" =
|
||||
cudaSupport && (effectiveMagma.cudaPackages != cudaPackages);
|
||||
cudaSupport && (effectiveMagma.cudaPackages.cudaVersion != cudaPackages.cudaVersion);
|
||||
"Rocm support is currently broken because `rocmPackages.hipblaslt` is unpackaged. (2024-06-09)" = rocmSupport;
|
||||
};
|
||||
in
|
||||
|
@ -17,14 +17,14 @@
|
||||
}:
|
||||
buildPythonPackage rec {
|
||||
pname = "uxsim";
|
||||
version = "1.3.1";
|
||||
version = "1.4.0";
|
||||
pyproject = true;
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "toruseo";
|
||||
repo = "UXsim";
|
||||
rev = "refs/tags/v${version}";
|
||||
hash = "sha256-74iNsRtEmpE+i4FeKCXrqczdMP9u4mVt6eyF/4RXZfU=";
|
||||
hash = "sha256-cWtBmBmrQTruRZ8n8O6i9LGlHMR5UvRhcOICvwP383M=";
|
||||
};
|
||||
|
||||
patches = [ ./add-qt-plugin-path-to-env.patch ];
|
||||
|
@ -13,6 +13,7 @@
|
||||
pythonOlder,
|
||||
setuptools,
|
||||
six,
|
||||
fetchpatch2,
|
||||
}:
|
||||
|
||||
buildPythonPackage rec {
|
||||
@ -29,9 +30,22 @@ buildPythonPackage rec {
|
||||
hash = "sha256-RM6QM/iR00ymg0FBUtaWAtxPHIX4u9U/t5N/UT/T6sc=";
|
||||
};
|
||||
|
||||
patches = [
|
||||
# replace use of imp module for Python 3.12
|
||||
# https://github.com/xmendez/wfuzz/pull/365
|
||||
(fetchpatch2 {
|
||||
url = "https://github.com/xmendez/wfuzz/commit/f4c028b9ada4c36dabf3bc752f69f6ddc110920f.patch?full_index=1";
|
||||
hash = "sha256-t7pUMcdFmwAsGUNBRdZr+Jje/yR0yzeGIgeYNEq4hFE=";
|
||||
})
|
||||
];
|
||||
|
||||
postPatch = ''
|
||||
substituteInPlace setup.py \
|
||||
--replace "pyparsing>=2.4*" "pyparsing>=2.4"
|
||||
|
||||
# fix distutils use for Python 3.12
|
||||
substituteInPlace src/wfuzz/plugin_api/base.py \
|
||||
--replace-fail "from distutils import util" "from setuptools._distutils import util"
|
||||
'';
|
||||
|
||||
propagatedBuildInputs = [
|
||||
@ -56,6 +70,8 @@ buildPythonPackage rec {
|
||||
# The tests are requiring a local web server
|
||||
"tests/test_acceptance.py"
|
||||
"tests/acceptance/test_saved_filter.py"
|
||||
# depends on imp module removed from Python 3.12
|
||||
"tests/test_moduleman.py"
|
||||
];
|
||||
|
||||
pythonImportsCheck = [ "wfuzz" ];
|
||||
|
@ -2,11 +2,11 @@
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "google-java-format";
|
||||
version = "1.22.0";
|
||||
version = "1.23.0";
|
||||
|
||||
src = fetchurl {
|
||||
url = "https://github.com/google/google-java-format/releases/download/v${version}/google-java-format-${version}-all-deps.jar";
|
||||
sha256 = "sha256-FrKh7pOGhsix2Iq/GeuD39DWI87p3m/G0JmAIU+BbT8=";
|
||||
sha256 = "sha256-fGN1rCS0glvmu+YZAOi1ixo+iUShNnqDYyEPntLQhXA=";
|
||||
};
|
||||
|
||||
dontUnpack = true;
|
||||
|
@ -2,16 +2,16 @@
|
||||
|
||||
buildGoModule rec {
|
||||
pname = "flyctl";
|
||||
version = "0.2.94";
|
||||
version = "0.2.101";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "superfly";
|
||||
repo = "flyctl";
|
||||
rev = "v${version}";
|
||||
hash = "sha256-yw8c3afGmriEoewSA8gIcuVDfRUwXqG46fi36GCGQBM=";
|
||||
hash = "sha256-Ceep71qyQXX+UQzI7VP64WRk5wMF7QADxs3on75cBic=";
|
||||
};
|
||||
|
||||
vendorHash = "sha256-L5tQ45Dujnef31Fs05mK5u+6zaGyJi1HkipOvkmra/0=";
|
||||
vendorHash = "sha256-l1Pt1eMgj/ZlOhV/yOVnJek9qm86n3iTKIQi3B3Kweo=";
|
||||
|
||||
subPackages = [ "." ];
|
||||
|
||||
|
@ -1,4 +1,4 @@
|
||||
From 9c76dbff982b0fd8beaffae42a6e98bc1e67f089 Mon Sep 17 00:00:00 2001
|
||||
From a46bc88829282032ab1d68ef6d67d25421ab8d32 Mon Sep 17 00:00:00 2001
|
||||
From: Gabriel Simmer <g@gmem.ca>
|
||||
Date: Fri, 21 Jul 2023 08:16:52 +0100
|
||||
Subject: [PATCH] Disable auto update
|
||||
@ -8,18 +8,18 @@ Subject: [PATCH] Disable auto update
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/internal/config/config.go b/internal/config/config.go
|
||||
index 1914f8e0..958baf27 100644
|
||||
index 04583ca5..1b085b55 100644
|
||||
--- a/internal/config/config.go
|
||||
+++ b/internal/config/config.go
|
||||
@@ -141,7 +141,7 @@ func (cfg *Config) ApplyFile(path string) (err error) {
|
||||
AutoUpdate bool `yaml:"auto_update"`
|
||||
@@ -173,7 +173,7 @@ func (cfg *Config) applyFile(path string) (err error) {
|
||||
SyntheticsAgent bool `yaml:"synthetics_agent"`
|
||||
}
|
||||
w.SendMetrics = true
|
||||
- w.AutoUpdate = true
|
||||
+ w.AutoUpdate = false
|
||||
w.SyntheticsAgent = true
|
||||
|
||||
if err = unmarshal(path, &w); err == nil {
|
||||
cfg.AccessToken = w.AccessToken
|
||||
--
|
||||
2.41.0
|
||||
2.45.2
|
||||
|
||||
|
@ -7,22 +7,22 @@
|
||||
|
||||
let
|
||||
pname = "osu-lazer-bin";
|
||||
version = "2024.727.0";
|
||||
version = "2024.731.0";
|
||||
|
||||
src = {
|
||||
aarch64-darwin = fetchzip {
|
||||
url = "https://github.com/ppy/osu/releases/download/${version}/osu.app.Apple.Silicon.zip";
|
||||
hash = "sha256-yoNtCfL0wrwAUrwYTZLDsR7udUa82Jh1CIcgVQ8TBX4=";
|
||||
hash = "sha256-Z6BIRFkaVBthkZXvewr4lAQCXVNz5SAsm9dR26lZu64=";
|
||||
stripRoot = false;
|
||||
};
|
||||
x86_64-darwin = fetchzip {
|
||||
url = "https://github.com/ppy/osu/releases/download/${version}/osu.app.Intel.zip";
|
||||
hash = "sha256-rdRGwD9tDxZFR8Qbd1bVG/YsbuMGZAj0roA9vRO+wQE=";
|
||||
hash = "sha256-FWmkcmuMMj4B2dsIlliCuOiQjR+5sAU+b9Jmd+RCmiU=";
|
||||
stripRoot = false;
|
||||
};
|
||||
x86_64-linux = fetchurl {
|
||||
url = "https://github.com/ppy/osu/releases/download/${version}/osu.AppImage";
|
||||
hash = "sha256-wRahb7XvhdfP42iwyVsDGR8gFdsK9G8vDANS6Q3RySM=";
|
||||
hash = "sha256-6BxHRM7hC+v61BVqSFTzGpi7EyZQeo7kWua0CkrWiPM=";
|
||||
};
|
||||
}.${stdenv.system} or (throw "${pname}-${version}: ${stdenv.system} is unsupported.");
|
||||
|
||||
|
@ -17,13 +17,13 @@
|
||||
|
||||
buildDotnetModule rec {
|
||||
pname = "osu-lazer";
|
||||
version = "2024.727.0";
|
||||
version = "2024.731.0";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "ppy";
|
||||
repo = "osu";
|
||||
rev = version;
|
||||
hash = "sha256-pw1UkP3VktQ2xFTBOcFAOGQuAOF+uGiU7rZsxKBQ10w=";
|
||||
hash = "sha256-f7HkIWRxMLoBnPsca6wqr/KEx3IAXxX3ecBIZxlu78A=";
|
||||
};
|
||||
|
||||
projectFile = "osu.Desktop/osu.Desktop.csproj";
|
||||
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue
Block a user