Merge master into staging-next

This commit is contained in:
github-actions[bot] 2024-07-31 12:01:21 +00:00 committed by GitHub
commit e7140b6733
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
114 changed files with 1032 additions and 351 deletions

View File

@ -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";

View File

@ -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";

View File

@ -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. -->

View File

@ -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";
};

View File

@ -43,7 +43,6 @@ in {
rtl8192su-firmware
rt5677-firmware
rtl8761b-firmware
rtw88-firmware
zd1211fw
alsa-firmware
sof-firmware

View File

@ -22,6 +22,7 @@ in {
libusermetrics
lomiri
lomiri-calculator-app
lomiri-camera-app
lomiri-clock-app
lomiri-download-manager
lomiri-filemanager-app

View File

@ -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/ {

View File

@ -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";

View File

@ -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; };

View File

@ -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;
};
};

View File

@ -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};
'';

View File

@ -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 ];
}

View File

@ -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" ];

View File

@ -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 {};

View File

@ -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};
'';
};

View File

@ -9,7 +9,9 @@ import ./make-test-python.nix ({ pkgs, lib, ...} : {
services.gotify = {
enable = true;
port = 3000;
environment = {
GOTIFY_SERVER_PORT = 3000;
};
};
};

View 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")
'';
}

View File

@ -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")

View File

@ -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";

View File

@ -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"

View File

@ -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 ];

View File

@ -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

View File

@ -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;

View File

@ -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;

View File

@ -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 ];

View 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";
};
})

View File

@ -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

View File

@ -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

View 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;
};
})

View File

@ -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 { };

View 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;
};
})

View File

@ -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 { };

View File

@ -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;
};
}

View File

@ -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
}

View File

@ -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; {

View 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

View File

@ -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;
};

View File

@ -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; {

View 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 ];
};
}

View File

@ -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"; })

View File

@ -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";
};
}

View File

@ -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;
};
}

View File

@ -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

View File

@ -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 ];

View File

@ -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" ];

View File

@ -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;

View File

@ -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 = [ "." ];

View File

@ -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

View File

@ -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.");

View File

@ -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