Merge master into haskell-updates
This commit is contained in:
commit
daadd0b777
4
.github/CODEOWNERS
vendored
4
.github/CODEOWNERS
vendored
@ -67,8 +67,8 @@
|
||||
/nixos/lib/make-disk-image.nix @raitobezarius
|
||||
|
||||
# Nix, the package manager
|
||||
pkgs/tools/package-management/nix/ @raitobezarius @ma27
|
||||
nixos/modules/installer/tools/nix-fallback-paths.nix @raitobezarius @ma27
|
||||
pkgs/tools/package-management/nix/ @raitobezarius
|
||||
nixos/modules/installer/tools/nix-fallback-paths.nix @raitobezarius
|
||||
|
||||
# Nixpkgs documentation
|
||||
/maintainers/scripts/db-to-md.sh @jtojnar @ryantm
|
||||
|
11
.github/labeler.yml
vendored
11
.github/labeler.yml
vendored
@ -16,6 +16,17 @@
|
||||
- nixos/modules/services/x11/desktop-managers/cinnamon.nix
|
||||
- nixos/tests/cinnamon.nix
|
||||
|
||||
"6.topic: dotnet":
|
||||
- any:
|
||||
- changed-files:
|
||||
- any-glob-to-any-file:
|
||||
- doc/languages-frameworks/dotnet.section.md
|
||||
- maintainers/scripts/update-dotnet-lockfiles.nix
|
||||
- pkgs/build-support/dotnet/**/*
|
||||
- pkgs/development/compilers/dotnet/**/*
|
||||
- pkgs/test/dotnet/**/*
|
||||
- pkgs/top-level/dotnet-packages.nix
|
||||
|
||||
"6.topic: emacs":
|
||||
- any:
|
||||
- changed-files:
|
||||
|
@ -85,14 +85,14 @@ let
|
||||
in
|
||||
make-disk-image {
|
||||
inherit pkgs lib;
|
||||
config = evalConfig {
|
||||
inherit (evalConfig {
|
||||
modules = [
|
||||
{
|
||||
fileSystems."/" = { device = "/dev/vda"; fsType = "ext4"; autoFormat = true; };
|
||||
boot.grub.device = "/dev/vda";
|
||||
}
|
||||
];
|
||||
};
|
||||
}) config;
|
||||
format = "qcow2";
|
||||
onlyNixStore = false;
|
||||
partitionTableType = "legacy+gpt";
|
||||
@ -104,5 +104,3 @@ in
|
||||
memSize = 2048; # Qemu VM memory size in megabytes. Defaults to 1024M.
|
||||
}
|
||||
```
|
||||
|
||||
|
||||
|
@ -11585,7 +11585,7 @@
|
||||
name = "Daniel Kuehn";
|
||||
};
|
||||
lelgenio = {
|
||||
email = "lelgenio@disroot.org";
|
||||
email = "lelgenio@lelgenio.com";
|
||||
github = "lelgenio";
|
||||
githubId = 31388299;
|
||||
name = "Leonardo Eugênio";
|
||||
|
@ -429,6 +429,16 @@ Use `services.pipewire.extraConfig` or `services.pipewire.configPackages` for Pi
|
||||
|
||||
- `screen`'s module has been cleaned, and will now require you to set `programs.screen.enable` in order to populate `screenrc` and add the program to the environment.
|
||||
|
||||
- `security.acme.defaults.server` now has a default value instead of `null`.
|
||||
This effectively uses the same server, the Let's Encrypt production server,
|
||||
but makes the default explicit, instead of relying on the Lego default.
|
||||
|
||||
A side effect of this is that the directory in which account data is stored
|
||||
changes and the ACME module will request a new account and new certificates
|
||||
for all domains. This may cause issues if you pin an `acccounturl` in a CAA
|
||||
DNS record. To avoid this, you
|
||||
may set `security.acme.defaults.server = null` to keep the old hashes.
|
||||
|
||||
- `security.pam.sshAgentAuth.enable` now requires `services.openssh.authorizedKeysFiles` to be non-empty,
|
||||
which is the case when `services.openssh.enable` is true. Previously, `pam_ssh_agent_auth` silently failed to work.
|
||||
|
||||
|
@ -38,6 +38,9 @@
|
||||
for `stateVersion` ≥ 24.11. (It was previously using SQLite for structured
|
||||
data and the filesystem for blobs).
|
||||
|
||||
- `zx` was updated to v8, which introduces several breaking changes.
|
||||
See the [v8 changelog](https://github.com/google/zx/releases/tag/8.0.0) for more information.
|
||||
|
||||
- The `portunus` package and service do not support weak password hashes anymore.
|
||||
If you installed Portunus on NixOS 23.11 or earlier, upgrade to NixOS 24.05 first to get support for strong password hashing.
|
||||
Then, follow the instructions on the [upstream release notes](https://github.com/majewsky/portunus/releases/tag/v2.0.0) to upgrade all existing user accounts to strong password hashes.
|
||||
|
@ -20,7 +20,7 @@
|
||||
};
|
||||
in ''
|
||||
if [ ! -e /etc/nixos/configuration.nix ]; then
|
||||
install -m 644 -D ${config} /etc/nixos/configuration.nix
|
||||
install -m 0644 -D ${config} /etc/nixos/configuration.nix
|
||||
fi
|
||||
'';
|
||||
|
||||
|
@ -20,8 +20,7 @@
|
||||
};
|
||||
in ''
|
||||
if [ ! -e /etc/nixos/configuration.nix ]; then
|
||||
mkdir -p /etc/nixos
|
||||
cp ${config} /etc/nixos/configuration.nix
|
||||
install -m 0644 -D ${config} /etc/nixos/configuration.nix
|
||||
fi
|
||||
'';
|
||||
|
||||
|
@ -96,7 +96,7 @@ in
|
||||
Sets which portal backend should be used to provide the implementation
|
||||
for the requested interface. For details check {manpage}`portals.conf(5)`.
|
||||
|
||||
Configs will be linked to `/etx/xdg/xdg-desktop-portal/` with the name `$desktop-portals.conf`
|
||||
Configs will be linked to `/etc/xdg/xdg-desktop-portal/` with the name `$desktop-portals.conf`
|
||||
for `xdg.portal.config.$desktop` and `portals.conf` for `xdg.portal.config.common`
|
||||
as an exception.
|
||||
'';
|
||||
|
@ -10,7 +10,6 @@
|
||||
, mypy
|
||||
, systemd
|
||||
, fakeroot
|
||||
, util-linux
|
||||
|
||||
# filesystem tools
|
||||
, dosfstools
|
||||
@ -105,7 +104,6 @@ in
|
||||
nativeBuildInputs = [
|
||||
systemd
|
||||
fakeroot
|
||||
util-linux
|
||||
] ++ lib.optionals (compression.enable) [
|
||||
compressionPkg
|
||||
] ++ fileSystemTools;
|
||||
@ -148,7 +146,7 @@ in
|
||||
runHook preBuild
|
||||
|
||||
echo "Building image with systemd-repart..."
|
||||
unshare --map-root-user fakeroot systemd-repart \
|
||||
fakeroot systemd-repart \
|
||||
''${systemdRepartFlags[@]} \
|
||||
${imageFileBasename}.raw \
|
||||
| tee repart-output.json
|
||||
|
@ -771,6 +771,7 @@
|
||||
./services/misc/octoprint.nix
|
||||
./services/misc/ollama.nix
|
||||
./services/misc/ombi.nix
|
||||
./services/misc/open-webui.nix
|
||||
./services/misc/osrm.nix
|
||||
./services/misc/owncast.nix
|
||||
./services/misc/packagekit.nix
|
||||
|
@ -545,7 +545,7 @@ let
|
||||
};
|
||||
|
||||
server = mkOption {
|
||||
type = types.str;
|
||||
type = types.nullOr types.str;
|
||||
inherit (defaultAndText "server" "https://acme-v02.api.letsencrypt.org/directory") default defaultText;
|
||||
example = "https://acme-staging-v02.api.letsencrypt.org/directory";
|
||||
description = ''
|
||||
|
@ -142,7 +142,6 @@ in {
|
||||
okular
|
||||
kate
|
||||
khelpcenter
|
||||
print-manager
|
||||
dolphin
|
||||
dolphin-plugins
|
||||
spectacle
|
||||
@ -168,12 +167,13 @@ in {
|
||||
)
|
||||
kio-extras-kf5
|
||||
]
|
||||
# Optional hardware support features
|
||||
# Optional and hardware support features
|
||||
++ lib.optionals config.hardware.bluetooth.enable [bluedevil bluez-qt pkgs.openobex pkgs.obexftp]
|
||||
++ lib.optional config.networking.networkmanager.enable plasma-nm
|
||||
++ lib.optional config.hardware.pulseaudio.enable plasma-pa
|
||||
++ lib.optional config.services.pipewire.pulse.enable plasma-pa
|
||||
++ lib.optional config.powerManagement.enable powerdevil
|
||||
++ lib.optional config.services.printing.enable print-manager
|
||||
++ lib.optional config.services.colord.enable colord-kde
|
||||
++ lib.optional config.services.hardware.bolt.enable plasma-thunderbolt
|
||||
++ lib.optional config.services.samba.enable kdenetwork-filesharing
|
||||
|
@ -23,7 +23,7 @@ let kernel = config.boot.kernelPackages; in
|
||||
###### implementation
|
||||
|
||||
config = lib.mkIf config.hardware.nvidiaOptimus.disable {
|
||||
boot.blacklistedKernelModules = ["nouveau" "nvidia" "nvidiafb" "nvidia-drm"];
|
||||
boot.blacklistedKernelModules = ["nouveau" "nvidia" "nvidiafb" "nvidia-drm" "nvidia-modeset"];
|
||||
boot.kernelModules = [ "bbswitch" ];
|
||||
boot.extraModulePackages = [ kernel.bbswitch ];
|
||||
|
||||
|
94
nixos/modules/services/misc/open-webui.nix
Normal file
94
nixos/modules/services/misc/open-webui.nix
Normal file
@ -0,0 +1,94 @@
|
||||
{
|
||||
config,
|
||||
lib,
|
||||
pkgs,
|
||||
...
|
||||
}:
|
||||
let
|
||||
inherit (lib) types;
|
||||
|
||||
cfg = config.services.open-webui;
|
||||
in
|
||||
{
|
||||
options = {
|
||||
services.open-webui = {
|
||||
enable = lib.mkEnableOption "Enable open-webui, an interactive chat web app";
|
||||
package = lib.mkPackageOption pkgs "open-webui" { };
|
||||
|
||||
stateDir = lib.mkOption {
|
||||
type = types.path;
|
||||
default = "/var/lib/open-webui";
|
||||
description = "State directory of open-webui.";
|
||||
};
|
||||
|
||||
host = lib.mkOption {
|
||||
type = types.str;
|
||||
default = "localhost";
|
||||
description = "Host of open-webui";
|
||||
};
|
||||
|
||||
port = lib.mkOption {
|
||||
type = types.port;
|
||||
default = 8080;
|
||||
description = "Port of open-webui";
|
||||
};
|
||||
|
||||
environment = lib.mkOption {
|
||||
type = types.attrsOf types.str;
|
||||
default = { };
|
||||
example = ''
|
||||
{
|
||||
OLLAMA_API_BASE_URL = "http://localhost:11434";
|
||||
# Disable authentication
|
||||
WEBUI_AUTH = "False";
|
||||
}
|
||||
'';
|
||||
description = "Extra environment variables for open-webui";
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
config = lib.mkIf cfg.enable {
|
||||
systemd.services.open-webui = {
|
||||
description = "User-friendly WebUI for LLMs (Formerly Ollama WebUI)";
|
||||
wantedBy = [ "multi-user.target" ];
|
||||
after = [ "network.target" ];
|
||||
|
||||
preStart = ''
|
||||
mkdir -p ${cfg.stateDir}/static
|
||||
'';
|
||||
|
||||
environment = {
|
||||
STATIC_DIR = "${cfg.stateDir}/static";
|
||||
DATA_DIR = "${cfg.stateDir}";
|
||||
} // cfg.environment;
|
||||
|
||||
serviceConfig = {
|
||||
ExecStart = "${lib.getExe cfg.package} serve --host ${cfg.host} --port ${toString cfg.port}";
|
||||
WorkingDirectory = cfg.stateDir;
|
||||
StateDirectory = "open-webui";
|
||||
RuntimeDirectory = "open-webui";
|
||||
RuntimeDirectoryMode = "0755";
|
||||
PrivateTmp = true;
|
||||
DynamicUser = true;
|
||||
DevicePolicy = "closed";
|
||||
LockPersonality = true;
|
||||
MemoryDenyWriteExecute = false; # onnxruntime/capi/onnxruntime_pybind11_state.so: cannot enable executable stack as shared object requires: Permission Denied
|
||||
PrivateUsers = true;
|
||||
ProtectHome = true;
|
||||
ProtectHostname = true;
|
||||
ProtectKernelLogs = true;
|
||||
ProtectKernelModules = true;
|
||||
ProtectKernelTunables = true;
|
||||
ProtectControlGroups = true;
|
||||
ProcSubset = "all"; # Error in cpuinfo: failed to parse processor information from /proc/cpuinfo
|
||||
RestrictNamespaces = true;
|
||||
RestrictRealtime = true;
|
||||
SystemCallArchitectures = "native";
|
||||
UMask = "0077";
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
meta.maintainers = with lib.maintainers; [ shivaraj-bh ];
|
||||
}
|
@ -793,6 +793,16 @@ in {
|
||||
'';
|
||||
};
|
||||
};
|
||||
|
||||
cron.memoryLimit = mkOption {
|
||||
type = types.nullOr types.str;
|
||||
default = null;
|
||||
example = "1G";
|
||||
description = ''
|
||||
The `memory_limit` of PHP is equal to [](#opt-services.nextcloud.maxUploadSize).
|
||||
The value can be customized for `nextcloud-cron.service` using this option.
|
||||
'';
|
||||
};
|
||||
};
|
||||
|
||||
config = mkIf cfg.enable (mkMerge [
|
||||
@ -1001,7 +1011,13 @@ in {
|
||||
Type = "exec";
|
||||
User = "nextcloud";
|
||||
ExecCondition = "${lib.getExe phpPackage} -f ${webroot}/occ status -e";
|
||||
ExecStart = "${lib.getExe phpPackage} -f ${webroot}/cron.php";
|
||||
ExecStart = lib.concatStringsSep " " ([
|
||||
(lib.getExe phpPackage)
|
||||
] ++ optional (cfg.cron.memoryLimit != null) "-dmemory_limit=${cfg.cron.memoryLimit}"
|
||||
++ [
|
||||
"-f"
|
||||
"${webroot}/cron.php"
|
||||
]);
|
||||
KillMode = "process";
|
||||
};
|
||||
};
|
||||
|
@ -102,6 +102,7 @@ in rec {
|
||||
(onSystems ["x86_64-linux"] "nixos.tests.installer.swraid")
|
||||
(onSystems ["x86_64-linux"] "nixos.tests.installer.zfsroot")
|
||||
(onSystems ["x86_64-linux"] "nixos.tests.nixos-rebuild-specialisations")
|
||||
(onFullSupported "nixos.tests.nix-misc.default")
|
||||
(onFullSupported "nixos.tests.ipv6")
|
||||
(onFullSupported "nixos.tests.keymap.azerty")
|
||||
(onFullSupported "nixos.tests.keymap.colemak")
|
||||
|
@ -124,7 +124,7 @@ in rec {
|
||||
"nixos.tests.firewall"
|
||||
"nixos.tests.ipv6"
|
||||
"nixos.tests.login"
|
||||
"nixos.tests.misc.default"
|
||||
"nixos.tests.misc"
|
||||
"nixos.tests.nat.firewall"
|
||||
"nixos.tests.nat.standalone"
|
||||
"nixos.tests.nfs4.simple"
|
||||
|
@ -643,6 +643,7 @@ in {
|
||||
nitter = handleTest ./nitter.nix {};
|
||||
nix-config = handleTest ./nix-config.nix {};
|
||||
nix-ld = handleTest ./nix-ld.nix {};
|
||||
nix-misc = handleTest ./nix/misc.nix {};
|
||||
nix-serve = handleTest ./nix-serve.nix {};
|
||||
nix-serve-ssh = handleTest ./nix-serve-ssh.nix {};
|
||||
nixops = handleTest ./nixops/default.nix {};
|
||||
@ -691,6 +692,7 @@ in {
|
||||
outline = handleTest ./outline.nix {};
|
||||
image-contents = handleTest ./image-contents.nix {};
|
||||
openvscode-server = handleTest ./openvscode-server.nix {};
|
||||
open-webui = runTest ./open-webui.nix;
|
||||
orangefs = handleTest ./orangefs.nix {};
|
||||
os-prober = handleTestOn ["x86_64-linux"] ./os-prober.nix {};
|
||||
osquery = handleTestOn ["x86_64-linux"] ./osquery.nix {};
|
||||
|
@ -1,188 +1,139 @@
|
||||
# Miscellaneous small tests that don't warrant their own VM run.
|
||||
{ pkgs, ... }:
|
||||
|
||||
let
|
||||
inherit (pkgs) lib;
|
||||
tests = {
|
||||
default = testsForPackage { nixPackage = pkgs.nix; };
|
||||
lix = testsForPackage { nixPackage = pkgs.lix; };
|
||||
};
|
||||
import ./make-test-python.nix ({ lib, pkgs, ...} : let
|
||||
foo = pkgs.writeText "foo" "Hello World";
|
||||
in {
|
||||
name = "misc";
|
||||
meta.maintainers = with lib.maintainers; [ eelco ];
|
||||
|
||||
testsForPackage = args: lib.recurseIntoAttrs {
|
||||
# If the attribute is not named 'test'
|
||||
# You will break all the universe on the release-*.nix side of things.
|
||||
# `discoverTests` relies on `test` existence to perform a `callTest`.
|
||||
test = testMiscFeatures args;
|
||||
passthru.override = args': testsForPackage (args // args');
|
||||
};
|
||||
|
||||
testMiscFeatures = { nixPackage, ... }: pkgs.testers.nixosTest (
|
||||
let
|
||||
foo = pkgs.writeText "foo" "Hello World";
|
||||
in {
|
||||
name = "misc";
|
||||
meta.maintainers = with lib.maintainers; [ raitobezarius ];
|
||||
|
||||
nodes.machine =
|
||||
{ lib, ... }:
|
||||
{ swapDevices = lib.mkOverride 0
|
||||
[ { device = "/root/swapfile"; size = 128; } ];
|
||||
environment.variables.EDITOR = lib.mkOverride 0 "emacs";
|
||||
documentation.nixos.enable = lib.mkOverride 0 true;
|
||||
systemd.tmpfiles.rules = [ "d /tmp 1777 root root 10d" ];
|
||||
systemd.tmpfiles.settings."10-test"."/tmp/somefile".d = {};
|
||||
virtualisation.fileSystems = { "/tmp2" =
|
||||
{ fsType = "tmpfs";
|
||||
options = [ "mode=1777" "noauto" ];
|
||||
};
|
||||
# Tests https://discourse.nixos.org/t/how-to-make-a-derivations-executables-have-the-s-permission/8555
|
||||
"/user-mount/point" = {
|
||||
device = "/user-mount/source";
|
||||
fsType = "none";
|
||||
options = [ "bind" "rw" "user" "noauto" ];
|
||||
};
|
||||
"/user-mount/denied-point" = {
|
||||
device = "/user-mount/denied-source";
|
||||
fsType = "none";
|
||||
options = [ "bind" "rw" "noauto" ];
|
||||
};
|
||||
nodes.machine =
|
||||
{ lib, ... }:
|
||||
{ swapDevices = lib.mkOverride 0
|
||||
[ { device = "/root/swapfile"; size = 128; } ];
|
||||
environment.variables.EDITOR = lib.mkOverride 0 "emacs";
|
||||
documentation.nixos.enable = lib.mkOverride 0 true;
|
||||
systemd.tmpfiles.rules = [ "d /tmp 1777 root root 10d" ];
|
||||
systemd.tmpfiles.settings."10-test"."/tmp/somefile".d = {};
|
||||
virtualisation.fileSystems = { "/tmp2" =
|
||||
{ fsType = "tmpfs";
|
||||
options = [ "mode=1777" "noauto" ];
|
||||
};
|
||||
# Tests https://discourse.nixos.org/t/how-to-make-a-derivations-executables-have-the-s-permission/8555
|
||||
"/user-mount/point" = {
|
||||
device = "/user-mount/source";
|
||||
fsType = "none";
|
||||
options = [ "bind" "rw" "user" "noauto" ];
|
||||
};
|
||||
"/user-mount/denied-point" = {
|
||||
device = "/user-mount/denied-source";
|
||||
fsType = "none";
|
||||
options = [ "bind" "rw" "noauto" ];
|
||||
};
|
||||
systemd.automounts = lib.singleton
|
||||
{ wantedBy = [ "multi-user.target" ];
|
||||
where = "/tmp2";
|
||||
};
|
||||
users.users.sybil = { isNormalUser = true; group = "wheel"; };
|
||||
users.users.alice = { isNormalUser = true; };
|
||||
security.sudo = { enable = true; wheelNeedsPassword = false; };
|
||||
boot.kernel.sysctl."vm.swappiness" = 1;
|
||||
boot.kernelParams = [ "vsyscall=emulate" ];
|
||||
system.extraDependencies = [ foo ];
|
||||
|
||||
nix.package = nixPackage;
|
||||
};
|
||||
systemd.automounts = lib.singleton
|
||||
{ wantedBy = [ "multi-user.target" ];
|
||||
where = "/tmp2";
|
||||
};
|
||||
users.users.sybil = { isNormalUser = true; group = "wheel"; };
|
||||
users.users.alice = { isNormalUser = true; };
|
||||
security.sudo = { enable = true; wheelNeedsPassword = false; };
|
||||
boot.kernel.sysctl."vm.swappiness" = 1;
|
||||
boot.kernelParams = [ "vsyscall=emulate" ];
|
||||
system.extraDependencies = [ foo ];
|
||||
};
|
||||
|
||||
testScript =
|
||||
''
|
||||
import json
|
||||
testScript =
|
||||
''
|
||||
with subtest("nixos-version"):
|
||||
machine.succeed("[ `nixos-version | wc -w` = 2 ]")
|
||||
|
||||
with subtest("nixos-rebuild"):
|
||||
assert "NixOS module" in machine.succeed("nixos-rebuild --help")
|
||||
|
||||
def get_path_info(path):
|
||||
result = machine.succeed(f"nix --option experimental-features nix-command path-info --json {path}")
|
||||
parsed = json.loads(result)
|
||||
return parsed
|
||||
with subtest("Sanity check for uid/gid assignment"):
|
||||
assert "4" == machine.succeed("id -u messagebus").strip()
|
||||
assert "4" == machine.succeed("id -g messagebus").strip()
|
||||
assert "users:x:100:" == machine.succeed("getent group users").strip()
|
||||
|
||||
with subtest("Regression test for GMP aborts on QEMU."):
|
||||
machine.succeed("expr 1 + 2")
|
||||
|
||||
with subtest("nix-db"):
|
||||
out = "${foo}"
|
||||
info = get_path_info(out)
|
||||
print(info)
|
||||
with subtest("the swap file got created"):
|
||||
machine.wait_for_unit("root-swapfile.swap")
|
||||
machine.succeed("ls -l /root/swapfile | grep 134217728")
|
||||
|
||||
pathinfo = info[0] if isinstance(info, list) else info[out]
|
||||
with subtest("whether kernel.poweroff_cmd is set"):
|
||||
machine.succeed('[ -x "$(cat /proc/sys/kernel/poweroff_cmd)" ]')
|
||||
|
||||
if (
|
||||
pathinfo["narHash"]
|
||||
!= "sha256-BdMdnb/0eWy3EddjE83rdgzWWpQjfWPAj3zDIFMD3Ck="
|
||||
):
|
||||
raise Exception("narHash not set")
|
||||
with subtest("whether the io cgroupv2 controller is properly enabled"):
|
||||
machine.succeed("grep -q '\\bio\\b' /sys/fs/cgroup/cgroup.controllers")
|
||||
|
||||
if pathinfo["narSize"] != 128:
|
||||
raise Exception("narSize not set")
|
||||
with subtest("whether we have a reboot record in wtmp"):
|
||||
machine.shutdown
|
||||
machine.wait_for_unit("multi-user.target")
|
||||
machine.succeed("last | grep reboot >&2")
|
||||
|
||||
with subtest("nixos-version"):
|
||||
machine.succeed("[ `nixos-version | wc -w` = 2 ]")
|
||||
with subtest("whether we can override environment variables"):
|
||||
machine.succeed('[ "$EDITOR" = emacs ]')
|
||||
|
||||
with subtest("nixos-rebuild"):
|
||||
assert "NixOS module" in machine.succeed("nixos-rebuild --help")
|
||||
with subtest("whether hostname (and by extension nss_myhostname) works"):
|
||||
assert "machine" == machine.succeed("hostname").strip()
|
||||
assert "machine" == machine.succeed("hostname -s").strip()
|
||||
|
||||
with subtest("Sanity check for uid/gid assignment"):
|
||||
assert "4" == machine.succeed("id -u messagebus").strip()
|
||||
assert "4" == machine.succeed("id -g messagebus").strip()
|
||||
assert "users:x:100:" == machine.succeed("getent group users").strip()
|
||||
with subtest("whether systemd-udevd automatically loads modules for our hardware"):
|
||||
machine.succeed("systemctl start systemd-udev-settle.service")
|
||||
machine.wait_for_unit("systemd-udev-settle.service")
|
||||
assert "mousedev" in machine.succeed("lsmod")
|
||||
|
||||
with subtest("Regression test for GMP aborts on QEMU."):
|
||||
machine.succeed("expr 1 + 2")
|
||||
with subtest("whether systemd-tmpfiles-clean works"):
|
||||
machine.succeed(
|
||||
"touch /tmp/foo", "systemctl start systemd-tmpfiles-clean", "[ -e /tmp/foo ]"
|
||||
)
|
||||
# move into the future
|
||||
machine.succeed(
|
||||
'date -s "@$(($(date +%s) + 1000000))"',
|
||||
"systemctl start systemd-tmpfiles-clean",
|
||||
)
|
||||
machine.fail("[ -e /tmp/foo ]")
|
||||
|
||||
with subtest("the swap file got created"):
|
||||
machine.wait_for_unit("root-swapfile.swap")
|
||||
machine.succeed("ls -l /root/swapfile | grep 134217728")
|
||||
with subtest("whether systemd-tmpfiles settings works"):
|
||||
machine.succeed("[ -e /tmp/somefile ]")
|
||||
|
||||
with subtest("whether kernel.poweroff_cmd is set"):
|
||||
machine.succeed('[ -x "$(cat /proc/sys/kernel/poweroff_cmd)" ]')
|
||||
with subtest("whether automounting works"):
|
||||
machine.fail("grep '/tmp2 tmpfs' /proc/mounts")
|
||||
machine.succeed("touch /tmp2/x")
|
||||
machine.succeed("grep '/tmp2 tmpfs' /proc/mounts")
|
||||
|
||||
with subtest("whether the io cgroupv2 controller is properly enabled"):
|
||||
machine.succeed("grep -q '\\bio\\b' /sys/fs/cgroup/cgroup.controllers")
|
||||
with subtest(
|
||||
"Whether mounting by a user is possible with the `user` option in fstab (#95444)"
|
||||
):
|
||||
machine.succeed("mkdir -p /user-mount/source")
|
||||
machine.succeed("touch /user-mount/source/file")
|
||||
machine.succeed("chmod -R a+Xr /user-mount/source")
|
||||
machine.succeed("mkdir /user-mount/point")
|
||||
machine.succeed("chown alice:users /user-mount/point")
|
||||
machine.succeed("su - alice -c 'mount /user-mount/point'")
|
||||
machine.succeed("su - alice -c 'ls /user-mount/point/file'")
|
||||
with subtest(
|
||||
"Whether mounting by a user is denied without the `user` option in fstab"
|
||||
):
|
||||
machine.succeed("mkdir -p /user-mount/denied-source")
|
||||
machine.succeed("touch /user-mount/denied-source/file")
|
||||
machine.succeed("chmod -R a+Xr /user-mount/denied-source")
|
||||
machine.succeed("mkdir /user-mount/denied-point")
|
||||
machine.succeed("chown alice:users /user-mount/denied-point")
|
||||
machine.fail("su - alice -c 'mount /user-mount/denied-point'")
|
||||
|
||||
with subtest("whether we have a reboot record in wtmp"):
|
||||
machine.shutdown
|
||||
machine.wait_for_unit("multi-user.target")
|
||||
machine.succeed("last | grep reboot >&2")
|
||||
with subtest("shell-vars"):
|
||||
machine.succeed('[ -n "$NIX_PATH" ]')
|
||||
|
||||
with subtest("whether we can override environment variables"):
|
||||
machine.succeed('[ "$EDITOR" = emacs ]')
|
||||
with subtest("Test sysctl"):
|
||||
machine.wait_for_unit("systemd-sysctl.service")
|
||||
assert "1" == machine.succeed("sysctl -ne vm.swappiness").strip()
|
||||
machine.execute("sysctl vm.swappiness=60")
|
||||
assert "60" == machine.succeed("sysctl -ne vm.swappiness").strip()
|
||||
|
||||
with subtest("whether hostname (and by extension nss_myhostname) works"):
|
||||
assert "machine" == machine.succeed("hostname").strip()
|
||||
assert "machine" == machine.succeed("hostname -s").strip()
|
||||
|
||||
with subtest("whether systemd-udevd automatically loads modules for our hardware"):
|
||||
machine.succeed("systemctl start systemd-udev-settle.service")
|
||||
machine.wait_for_unit("systemd-udev-settle.service")
|
||||
assert "mousedev" in machine.succeed("lsmod")
|
||||
|
||||
with subtest("whether systemd-tmpfiles-clean works"):
|
||||
machine.succeed(
|
||||
"touch /tmp/foo", "systemctl start systemd-tmpfiles-clean", "[ -e /tmp/foo ]"
|
||||
)
|
||||
# move into the future
|
||||
machine.succeed(
|
||||
'date -s "@$(($(date +%s) + 1000000))"',
|
||||
"systemctl start systemd-tmpfiles-clean",
|
||||
)
|
||||
machine.fail("[ -e /tmp/foo ]")
|
||||
|
||||
with subtest("whether systemd-tmpfiles settings works"):
|
||||
machine.succeed("[ -e /tmp/somefile ]")
|
||||
|
||||
with subtest("whether automounting works"):
|
||||
machine.fail("grep '/tmp2 tmpfs' /proc/mounts")
|
||||
machine.succeed("touch /tmp2/x")
|
||||
machine.succeed("grep '/tmp2 tmpfs' /proc/mounts")
|
||||
|
||||
with subtest(
|
||||
"Whether mounting by a user is possible with the `user` option in fstab (#95444)"
|
||||
):
|
||||
machine.succeed("mkdir -p /user-mount/source")
|
||||
machine.succeed("touch /user-mount/source/file")
|
||||
machine.succeed("chmod -R a+Xr /user-mount/source")
|
||||
machine.succeed("mkdir /user-mount/point")
|
||||
machine.succeed("chown alice:users /user-mount/point")
|
||||
machine.succeed("su - alice -c 'mount /user-mount/point'")
|
||||
machine.succeed("su - alice -c 'ls /user-mount/point/file'")
|
||||
with subtest(
|
||||
"Whether mounting by a user is denied without the `user` option in fstab"
|
||||
):
|
||||
machine.succeed("mkdir -p /user-mount/denied-source")
|
||||
machine.succeed("touch /user-mount/denied-source/file")
|
||||
machine.succeed("chmod -R a+Xr /user-mount/denied-source")
|
||||
machine.succeed("mkdir /user-mount/denied-point")
|
||||
machine.succeed("chown alice:users /user-mount/denied-point")
|
||||
machine.fail("su - alice -c 'mount /user-mount/denied-point'")
|
||||
|
||||
with subtest("shell-vars"):
|
||||
machine.succeed('[ -n "$NIX_PATH" ]')
|
||||
|
||||
with subtest("nix-db"):
|
||||
machine.succeed("nix-store -qR /run/current-system | grep nixos-")
|
||||
|
||||
with subtest("Test sysctl"):
|
||||
machine.wait_for_unit("systemd-sysctl.service")
|
||||
assert "1" == machine.succeed("sysctl -ne vm.swappiness").strip()
|
||||
machine.execute("sysctl vm.swappiness=60")
|
||||
assert "60" == machine.succeed("sysctl -ne vm.swappiness").strip()
|
||||
|
||||
with subtest("Test boot parameters"):
|
||||
assert "vsyscall=emulate" in machine.succeed("cat /proc/cmdline")
|
||||
'';
|
||||
});
|
||||
in
|
||||
tests
|
||||
with subtest("Test boot parameters"):
|
||||
assert "vsyscall=emulate" in machine.succeed("cat /proc/cmdline")
|
||||
'';
|
||||
})
|
||||
|
64
nixos/tests/nix/misc.nix
Normal file
64
nixos/tests/nix/misc.nix
Normal file
@ -0,0 +1,64 @@
|
||||
# Miscellaneous small tests that don't warrant their own VM run.
|
||||
{ pkgs, ... }:
|
||||
|
||||
let
|
||||
inherit (pkgs) lib;
|
||||
tests = {
|
||||
default = testsForPackage { nixPackage = pkgs.nix; };
|
||||
lix = testsForPackage { nixPackage = pkgs.lix; };
|
||||
};
|
||||
|
||||
testsForPackage = args: lib.recurseIntoAttrs {
|
||||
# If the attribute is not named 'test'
|
||||
# You will break all the universe on the release-*.nix side of things.
|
||||
# `discoverTests` relies on `test` existence to perform a `callTest`.
|
||||
test = testMiscFeatures args;
|
||||
passthru.override = args': testsForPackage (args // args');
|
||||
};
|
||||
|
||||
testMiscFeatures = { nixPackage, ... }: pkgs.testers.nixosTest (
|
||||
let
|
||||
foo = pkgs.writeText "foo" "Hello World";
|
||||
in {
|
||||
name = "${nixPackage.pname}-misc";
|
||||
meta.maintainers = with lib.maintainers; [ raitobezarius artturin ];
|
||||
|
||||
nodes.machine =
|
||||
{ lib, ... }:
|
||||
{
|
||||
system.extraDependencies = [ foo ];
|
||||
|
||||
nix.package = nixPackage;
|
||||
};
|
||||
|
||||
testScript =
|
||||
''
|
||||
import json
|
||||
|
||||
def get_path_info(path):
|
||||
result = machine.succeed(f"nix --option experimental-features nix-command path-info --json {path}")
|
||||
parsed = json.loads(result)
|
||||
return parsed
|
||||
|
||||
with subtest("nix-db"):
|
||||
out = "${foo}"
|
||||
info = get_path_info(out)
|
||||
print(info)
|
||||
|
||||
pathinfo = info[0] if isinstance(info, list) else info[out]
|
||||
|
||||
if (
|
||||
pathinfo["narHash"]
|
||||
!= "sha256-BdMdnb/0eWy3EddjE83rdgzWWpQjfWPAj3zDIFMD3Ck="
|
||||
):
|
||||
raise Exception("narHash not set")
|
||||
|
||||
if pathinfo["narSize"] != 128:
|
||||
raise Exception("narSize not set")
|
||||
|
||||
with subtest("nix-db"):
|
||||
machine.succeed("nix-store -qR /run/current-system | grep nixos-")
|
||||
'';
|
||||
});
|
||||
in
|
||||
tests
|
33
nixos/tests/open-webui.nix
Normal file
33
nixos/tests/open-webui.nix
Normal file
@ -0,0 +1,33 @@
|
||||
{ lib, ... }:
|
||||
let
|
||||
mainPort = "8080";
|
||||
in
|
||||
{
|
||||
name = "open-webui";
|
||||
meta = with lib.maintainers; {
|
||||
maintainers = [ shivaraj-bh ];
|
||||
};
|
||||
|
||||
nodes = {
|
||||
machine =
|
||||
{ ... }:
|
||||
{
|
||||
services.open-webui = {
|
||||
enable = true;
|
||||
environment = {
|
||||
# Requires network connection
|
||||
RAG_EMBEDDING_MODEL = "";
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
testScript = ''
|
||||
machine.start()
|
||||
|
||||
machine.wait_for_unit("open-webui.service")
|
||||
machine.wait_for_open_port(${mainPort})
|
||||
|
||||
machine.succeed("curl http://127.0.0.1:${mainPort}")
|
||||
'';
|
||||
}
|
@ -5,14 +5,14 @@
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "helio-workstation";
|
||||
version = "3.12";
|
||||
version = "3.13";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "helio-fm";
|
||||
repo = pname;
|
||||
rev = version;
|
||||
fetchSubmodules = true;
|
||||
sha256 = "sha256-U5F78RlM6+R+Ms00Z3aTh3npkbgL+FhhFtc9OpGvbdY=";
|
||||
sha256 = "sha256-esCulHphPD0gr0dsVBnRTvsGp56vHZmzdbz99mWq9R4=";
|
||||
};
|
||||
|
||||
buildInputs = [
|
||||
|
@ -21,13 +21,13 @@
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "parlatype";
|
||||
version = "4.1";
|
||||
version = "4.2";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "gkarsay";
|
||||
repo = pname;
|
||||
rev = "v${version}";
|
||||
sha256 = "0546rl5sm7xmgl54cqps3a7bhfs7xdvz98jgdcf4sgiz1k2vh9xq";
|
||||
sha256 = "1wi9f23zgvsa98xcxgghm53jlafnr3pan1zl4gkn0yd8b2d6avhk";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
@ -58,9 +58,6 @@ stdenv.mkDerivation rec {
|
||||
];
|
||||
|
||||
postPatch = ''
|
||||
substituteInPlace data/meson_post_install.py \
|
||||
--replace-fail 'gtk-update-icon-cache' 'gtk4-update-icon-cache'
|
||||
patchShebangs data/meson_post_install.py
|
||||
patchShebangs libparlatype/tests/data/generate_config_data
|
||||
'';
|
||||
|
||||
@ -76,8 +73,7 @@ stdenv.mkDerivation rec {
|
||||
useful for journalists, students, scientists and whoever needs to
|
||||
transcribe audio files.
|
||||
'';
|
||||
# maintainer lost control of parlatype.org
|
||||
homepage = "https://github.com/gkarsay/parlatype";
|
||||
homepage = "https://www.parlatype.xyz/";
|
||||
license = licenses.gpl3Plus;
|
||||
maintainers = with maintainers; [ alexshpilkin melchips ];
|
||||
platforms = platforms.linux;
|
||||
|
@ -45,7 +45,7 @@ in
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "touchosc";
|
||||
version = "1.3.1.204";
|
||||
version = "1.3.3.207";
|
||||
|
||||
suffix = {
|
||||
aarch64-linux = "linux-arm64";
|
||||
@ -56,9 +56,9 @@ stdenv.mkDerivation rec {
|
||||
src = fetchurl {
|
||||
url = "https://hexler.net/pub/${pname}/${pname}-${version}-${suffix}.deb";
|
||||
hash = {
|
||||
aarch64-linux = "sha256-uSXCgwJUEQZDKPAHDT4kKcvkBg9c+T0nrpvYW8jG8Kg=";
|
||||
armv7l-linux = "sha256-dG5BF8n66YCYCZzc1pLf2qpMLmbv6lfVZYfgry25jQ0=";
|
||||
x86_64-linux = "sha256-R07kTuwsfe6WhGpHeyZS/HydDUSH6AByx0pJu/i40xE=";
|
||||
aarch64-linux = "sha256-peEO5haVHXvCT+F48UiKdgwuccqBuZACEXnepB4dcvY=";
|
||||
armv7l-linux = "sha256-uQNoEye/Jd3T6pLJY2sN7hkTQl3AAilG5Vr9G61vFRM=";
|
||||
x86_64-linux = "sha256-+/r9gRK8HyynlJ1syC2VQ6VboPEzsVNqEVrQfNLeEv0=";
|
||||
}.${stdenv.hostPlatform.system} or (throw "Unsupported system: ${stdenv.hostPlatform.system}");
|
||||
};
|
||||
|
||||
|
@ -25,13 +25,13 @@
|
||||
|
||||
mkDerivation rec {
|
||||
pname = "bitcoin" + lib.optionalString (!withGui) "d" + "-abc";
|
||||
version = "0.29.4";
|
||||
version = "0.29.5";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "bitcoin-ABC";
|
||||
repo = "bitcoin-abc";
|
||||
rev = "v${version}";
|
||||
hash = "sha256-RT9sdwwF39arW2AnoQ9KnRzYqhnQhpjWU1eykTiKWSo=";
|
||||
hash = "sha256-1gw8VgAVflFjYq3/Rd+GgvCmpG2fjtpPvKU2TtxubWs=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [ pkg-config cmake ];
|
||||
|
@ -16,7 +16,7 @@
|
||||
}:
|
||||
|
||||
let
|
||||
rev = "14180dcfa42a50e5365175a1bf5dc9dd8db196eb";
|
||||
rev = "f48de0896d3af80f5e15aef512b7485eb46df9f6";
|
||||
python = python3.withPackages (ps: with ps; [
|
||||
epc
|
||||
orjson
|
||||
@ -28,13 +28,13 @@ let
|
||||
in
|
||||
melpaBuild {
|
||||
pname = "lsp-bridge";
|
||||
version = "20240520.1548";
|
||||
version = "20240601.1149";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "manateelazycat";
|
||||
repo = "lsp-bridge";
|
||||
inherit rev;
|
||||
hash = "sha256-HIOIHvcazCeyAlMoVSPl8uVXh5zI+UuoNNJgIhFO6BY=";
|
||||
hash = "sha256-ocKNRSt5RVKGnxd0odI43jdr27oYrRLdnABh6x63CfM=";
|
||||
};
|
||||
|
||||
commit = rev;
|
||||
|
@ -5,7 +5,7 @@
|
||||
callPackage,
|
||||
}:
|
||||
let
|
||||
version = "1.50.0";
|
||||
version = "1.52.0";
|
||||
rescript-editor-analysis = callPackage ./rescript-editor-analysis.nix { inherit version; };
|
||||
arch =
|
||||
if stdenv.isLinux then
|
||||
@ -21,7 +21,7 @@ vscode-utils.buildVscodeMarketplaceExtension rec {
|
||||
name = "rescript-vscode";
|
||||
publisher = "chenglou92";
|
||||
inherit version;
|
||||
hash = "sha256-Dt7mqZQ/vEUFyUD5SsY6RGzg9kq19/Amksrwtfv0TuE=";
|
||||
hash = "sha256-3H7JgdmrGMdirVpT08wmwy4G6QLt0H65d3l7o/DuvpI=";
|
||||
};
|
||||
postPatch = ''
|
||||
rm -r ${analysisDir}
|
||||
|
@ -108,7 +108,8 @@ in stdenv.mkDerivation rec {
|
||||
tag = last (splitString "-" version);
|
||||
in ''
|
||||
rm -rf dependencies/imgui
|
||||
ln -s ${imgui'}/include/imgui dependencies/imgui
|
||||
# cemu expects imgui source code, not just header files
|
||||
ln -s ${imgui'.src} dependencies/imgui
|
||||
substituteInPlace src/Common/version.h --replace " (experimental)" "-${tag} (experimental)"
|
||||
substituteInPlace dependencies/gamemode/lib/gamemode_client.h --replace "libgamemode.so.0" "${gamemode.lib}/lib/libgamemode.so.0"
|
||||
'';
|
||||
|
@ -246,10 +246,10 @@
|
||||
"src": {
|
||||
"owner": "schellingb",
|
||||
"repo": "dosbox-pure",
|
||||
"rev": "1c7ad4fafc5204e3aff83e2caa6020cb2fe43a2d",
|
||||
"hash": "sha256-cOamfnwLilAz2I8CKA18JvauadbObuAq4JabNcdw7EQ="
|
||||
"rev": "1e3cb35355769467ca7be192e740eb9728ecc88c",
|
||||
"hash": "sha256-svVpHUOPPAFMypmeaHLCQfwTAVOZajTMKyeKvWLZlcc="
|
||||
},
|
||||
"version": "unstable-2024-05-20"
|
||||
"version": "unstable-2024-06-03"
|
||||
},
|
||||
"easyrpg": {
|
||||
"fetcher": "fetchFromGitHub",
|
||||
@ -348,10 +348,10 @@
|
||||
"src": {
|
||||
"owner": "libretro",
|
||||
"repo": "gambatte-libretro",
|
||||
"rev": "238b195bca073bc1a2032c4e92c097d157e521f8",
|
||||
"hash": "sha256-i9+a1kVlJ6EPaCOMkuIZgujNEg6MwPRM3mHnhconWHo="
|
||||
"rev": "f0d83f0eff4ad91471f90acd098d078eea0a67b3",
|
||||
"hash": "sha256-zcqFVPotOu5gDwzgWzn0lpzhcTwQUm81UpA5FtCrz1M="
|
||||
},
|
||||
"version": "unstable-2024-05-17"
|
||||
"version": "unstable-2024-06-02"
|
||||
},
|
||||
"genesis-plus-gx": {
|
||||
"fetcher": "fetchFromGitHub",
|
||||
@ -814,10 +814,10 @@
|
||||
"src": {
|
||||
"owner": "libretro",
|
||||
"repo": "swanstation",
|
||||
"rev": "d5169ed204838b622551c82b3c20df376324870f",
|
||||
"hash": "sha256-ixLd2xdy6r5irNEhBDbdMpvRR7clnHr1LrTywuqkr84="
|
||||
"rev": "7a27436548128c00e70b08dde63c52118e2a6228",
|
||||
"hash": "sha256-u7D044lKNAH4aAaY/Ol7BR3dNeusX4wirIMdUEGw2oM="
|
||||
},
|
||||
"version": "unstable-2024-05-27"
|
||||
"version": "unstable-2024-05-30"
|
||||
},
|
||||
"tgbdual": {
|
||||
"fetcher": "fetchFromGitHub",
|
||||
|
@ -6,13 +6,13 @@
|
||||
|
||||
stdenvNoCC.mkDerivation rec {
|
||||
pname = "retroarch-joypad-autoconfig";
|
||||
version = "1.18.1";
|
||||
version = "1.19.0";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "libretro";
|
||||
repo = "retroarch-joypad-autoconfig";
|
||||
rev = "v${version}";
|
||||
hash = "sha256-eWfSqHusTri1HQUkSxY/iAceF/9PFVMC0rhLu/4W35k=";
|
||||
hash = "sha256-iwxTMwGHix2K5UyjBWFamyo3nVULxwbIF+djyQWz5L0=";
|
||||
};
|
||||
|
||||
makeFlags = [
|
||||
|
@ -9,6 +9,7 @@
|
||||
# to be re-enabled when patch available
|
||||
# , ffmpeg
|
||||
, gcc-unwrapped
|
||||
, icu
|
||||
, libmediainfo
|
||||
, libraw
|
||||
, libsodium
|
||||
@ -22,13 +23,13 @@
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "megacmd";
|
||||
version = "1.6.3";
|
||||
version = "1.7.0";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "meganz";
|
||||
repo = "MEGAcmd";
|
||||
rev = "${version}_Linux";
|
||||
sha256 = "sha256-JnxfFbM+NyeUrEMok62zlsQIxjrUvLLg4tUTiKPDZFc=";
|
||||
sha256 = "sha256-UlSqwM8GQKeG8/K0t5DbM034NQOeBg+ujNi/MMsVCuM=";
|
||||
fetchSubmodules = true;
|
||||
};
|
||||
|
||||
@ -40,6 +41,7 @@ stdenv.mkDerivation rec {
|
||||
cryptopp
|
||||
curl
|
||||
# ffmpeg
|
||||
icu
|
||||
gcc-unwrapped
|
||||
libmediainfo
|
||||
libraw
|
||||
@ -59,6 +61,7 @@ stdenv.mkDerivation rec {
|
||||
"--with-curl"
|
||||
# "--with-ffmpeg"
|
||||
"--without-freeimage" # disabled as freeimage is insecure
|
||||
"--with-icu"
|
||||
"--with-libmediainfo"
|
||||
"--with-libuv"
|
||||
"--with-libzen"
|
||||
|
@ -17,23 +17,23 @@
|
||||
, util-linux
|
||||
, xwininfo
|
||||
, zenity
|
||||
, zig_0_11
|
||||
, zig_0_12
|
||||
}:
|
||||
|
||||
stdenv.mkDerivation (finalAttrs: {
|
||||
pname = "mepo";
|
||||
version = "1.2.0";
|
||||
version = "1.2.1";
|
||||
|
||||
src = fetchFromSourcehut {
|
||||
owner = "~mil";
|
||||
repo = "mepo";
|
||||
rev = finalAttrs.version;
|
||||
hash = "sha256-sxN7yTnk3KDAkP/d3miKa2bEgB3AUaf9/M9ajJyRt3g=";
|
||||
hash = "sha256-Ii5E9TgUxzlVIdkKS/6RtasOETeclMm1yoU86gs4hB8=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
pkg-config
|
||||
zig_0_11.hook
|
||||
zig_0_12.hook
|
||||
makeWrapper
|
||||
];
|
||||
|
||||
@ -56,10 +56,10 @@ stdenv.mkDerivation (finalAttrs: {
|
||||
|
||||
postFixup = ''
|
||||
substituteInPlace $out/bin/mepo_ui_menu_user_pin_updater.sh \
|
||||
--replace /usr/libexec/geoclue-2.0 ${geoclue2-with-demo-agent}/libexec/geoclue-2.0
|
||||
--replace-fail /usr/libexec/geoclue-2.0 ${geoclue2-with-demo-agent}/libexec/geoclue-2.0
|
||||
substituteInPlace $out/bin/mepo_ui_central_menu.sh \
|
||||
--replace "grep mepo_" "grep '^\.mepo_\|^mepo_'" \
|
||||
--replace " ls " " ls -a " #circumvent wrapping for script detection
|
||||
--replace-fail "grep mepo_" "grep '^\.mepo_\|^mepo_'" \
|
||||
--replace-fail " ls " " ls -a " #circumvent wrapping for script detection
|
||||
for program in $out/bin/* ; do
|
||||
wrapProgram $program \
|
||||
--suffix PATH : $out/bin:${lib.makeBinPath ([
|
||||
|
@ -37,7 +37,6 @@ maven.buildMavenPackage rec {
|
||||
x86_64-linux = "sha256-vXZAlZOh9pXNF1RL78oQRal5pkXFRKDz/7SP9LibgiA=";
|
||||
aarch64-linux = "sha256-xC+feb41EPi30gBrVR8usanVULI2Pt0knztzNagPQiw=";
|
||||
};
|
||||
mvnParameters = "-DskipTests";
|
||||
|
||||
nativeBuildInputs = [
|
||||
copyDesktopItems
|
||||
@ -46,6 +45,8 @@ maven.buildMavenPackage rec {
|
||||
gvfs
|
||||
];
|
||||
|
||||
doCheck = false;
|
||||
|
||||
# Don't wrap binaries twice.
|
||||
dontWrapGApps = true;
|
||||
|
||||
|
@ -18,15 +18,15 @@
|
||||
let
|
||||
isQt6 = lib.versions.major qtbase.version == "6";
|
||||
pdfjs = let
|
||||
version = "4.0.269";
|
||||
version = "4.2.67";
|
||||
in
|
||||
fetchzip {
|
||||
url = "https://github.com/mozilla/pdf.js/releases/download/v${version}/pdfjs-${version}-dist.zip";
|
||||
hash = "sha256-8gwJUxygcdvERDni/k6WIx3tzk7yb+qHZ4NsfkP0VDo=";
|
||||
hash = "sha256-7kfT3+ZwoGqZ5OwkO9h3DIuBFd0v8fRlcufxoBdcy8c=";
|
||||
stripRoot = false;
|
||||
};
|
||||
|
||||
version = "3.1.0";
|
||||
version = "3.2.0";
|
||||
in
|
||||
|
||||
python3.pkgs.buildPythonApplication {
|
||||
@ -34,7 +34,7 @@ python3.pkgs.buildPythonApplication {
|
||||
inherit version;
|
||||
src = fetchurl {
|
||||
url = "https://github.com/qutebrowser/qutebrowser/releases/download/v${version}/qutebrowser-${version}.tar.gz";
|
||||
hash = "sha256-UA3MHMoI1rC4FPowbiII4lM1rL4OLPmZ+1GRbg9LLl8=";
|
||||
hash = "sha256-4eGRG5VWI2rKpZ0NGYbWFHlvs2Zz0TljwhZYzWSh8DM=";
|
||||
};
|
||||
|
||||
# Needs tox
|
||||
|
@ -24,7 +24,7 @@ let
|
||||
vivaldiName = if isSnapshot then "vivaldi-snapshot" else "vivaldi";
|
||||
in stdenv.mkDerivation rec {
|
||||
pname = "vivaldi";
|
||||
version = "6.7.3329.31";
|
||||
version = "6.7.3329.35";
|
||||
|
||||
suffix = {
|
||||
aarch64-linux = "arm64";
|
||||
@ -34,8 +34,8 @@ in stdenv.mkDerivation rec {
|
||||
src = fetchurl {
|
||||
url = "https://downloads.vivaldi.com/${branch}/vivaldi-${branch}_${version}-1_${suffix}.deb";
|
||||
hash = {
|
||||
aarch64-linux = "sha256-TxfsI4XMZM3QvyxV48CrOltnRt0LUwZc2auppTvI+0w=";
|
||||
x86_64-linux = "sha256-NRGELYgcJVL+mLdaWmDZCImCX8w9L+9ecGYQgIB1dq4=";
|
||||
aarch64-linux = "sha256-myKcYbLJgbjs0o/VWHbupO0JT38qrmayQ5EiQWCzNHc=";
|
||||
x86_64-linux = "sha256-NFvHSmMGrhvFWMR1onwkcSYUCWe11+CO1jmOlMv9p18=";
|
||||
}.${stdenv.hostPlatform.system} or (throw "Unsupported system: ${stdenv.hostPlatform.system}");
|
||||
};
|
||||
|
||||
|
@ -2,16 +2,16 @@
|
||||
|
||||
buildGoModule rec {
|
||||
pname = "atmos";
|
||||
version = "1.73.0";
|
||||
version = "1.76.0";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "cloudposse";
|
||||
repo = pname;
|
||||
rev = "v${version}";
|
||||
sha256 = "sha256-rJGhDFVvlVtQboqts8+c6JYTRHC0IwrOm5BYVA20yrY=";
|
||||
sha256 = "sha256-NKORuhX9PBNtyLz+teDHKAKR8T6V6QMPQI/oiXPU96Y=";
|
||||
};
|
||||
|
||||
vendorHash = "sha256-11r4ph0i05lHXKNy8iMNKqCVzeQbPtHwNPiQU7759rQ=";
|
||||
vendorHash = "sha256-puodXLDfTh4KO39F5nfeLqadOvVGf7krsw1JK1fkMCY=";
|
||||
|
||||
ldflags = [ "-s" "-w" "-X github.com/cloudposse/atmos/cmd.Version=v${version}" ];
|
||||
|
||||
|
@ -2,16 +2,16 @@
|
||||
|
||||
buildGoModule rec {
|
||||
pname = "tanka";
|
||||
version = "0.26.0";
|
||||
version = "0.27.1";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "grafana";
|
||||
repo = pname;
|
||||
rev = "v${version}";
|
||||
sha256 = "sha256-xKB/SKiw3cKqdpl869Bs/NO1Jbrla8Un0hH4kIGqAPs=";
|
||||
sha256 = "sha256-4ChTYwRp9R8U97hH1Bgrxr5a/5IoWRAmFgJbD7oJpO4=";
|
||||
};
|
||||
|
||||
vendorHash = "sha256-+BCUQ+czqWkxbDoSvCaAxewTN0SuI+hCHEQpLOvNGj4=";
|
||||
vendorHash = "sha256-u2l3cX8PKHUCPkHuCOyED2LLWygYCDJEhfTjycEBzHI=";
|
||||
|
||||
doCheck = false;
|
||||
|
||||
|
@ -508,6 +508,15 @@
|
||||
"spdx": "MPL-2.0",
|
||||
"vendorHash": null
|
||||
},
|
||||
"harbor": {
|
||||
"hash": "sha256-Pv4Eoswmx+FVVq6jqP69bCMrUmt5persxdrtvY9N79I=",
|
||||
"homepage": "https://registry.terraform.io/providers/goharbor/harbor",
|
||||
"owner": "goharbor",
|
||||
"repo": "terraform-provider-harbor",
|
||||
"rev": "v3.10.10",
|
||||
"spdx": "MIT",
|
||||
"vendorHash": "sha256-1zaC82m8ylkz4lSocDVoXjF6yWWEL4He0lIKXs/7VtE="
|
||||
},
|
||||
"hcloud": {
|
||||
"hash": "sha256-D7RBrpOxfSfeip7z+mAkWBjSTVnnM/MfN7Qvl/E+nA0=",
|
||||
"homepage": "https://registry.terraform.io/providers/hetznercloud/hcloud",
|
||||
|
@ -2,11 +2,11 @@
|
||||
|
||||
let
|
||||
pname = "rambox";
|
||||
version = "2.3.2";
|
||||
version = "2.3.3";
|
||||
|
||||
src = fetchurl {
|
||||
url = "https://github.com/ramboxapp/download/releases/download/v${version}/Rambox-${version}-linux-x64.AppImage";
|
||||
hash = "sha256-9AGzhj4UL2rEe67qvkX5VYhQEMETGYSDWv5XOgABSEE=";
|
||||
hash = "sha256-Z6ux/liDpE0Fb4h0eAZC7F/Tt3eKlXQPBQVCd7Je9TI=";
|
||||
};
|
||||
|
||||
desktopItem = (makeDesktopItem {
|
||||
|
@ -64,14 +64,14 @@ let
|
||||
in
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "telegram-desktop";
|
||||
version = "5.0.6";
|
||||
version = "5.1.2";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "telegramdesktop";
|
||||
repo = "tdesktop";
|
||||
rev = "v${version}";
|
||||
fetchSubmodules = true;
|
||||
hash = "sha256-n3WeyGQCw9fbA/1hZ85mqdm5xuBLjy9qHMcVRb4cmAg=";
|
||||
hash = "sha256-KTgID7pd0QSFi5t9cdIVEi4/oQirDgsf7tTcEEtRdY0=";
|
||||
};
|
||||
|
||||
patches = [
|
||||
|
@ -5,15 +5,15 @@
|
||||
, withContrib ? true
|
||||
}:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
version = "20231221";
|
||||
stdenv.mkDerivation (finalAttrs: {
|
||||
pname = "neomutt";
|
||||
version = "20240425";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "neomutt";
|
||||
repo = "neomutt";
|
||||
rev = version;
|
||||
sha256 = "sha256-IXly2N/DD2+XBXVIXJw1sE/0eJwbUaONDNRMi7n1T44=";
|
||||
rev = finalAttrs.version;
|
||||
hash = "sha256-QBqPFteoAm3AdQN0XTWpho8DEW2BFCCzBcHUZIiSxyQ=";
|
||||
};
|
||||
|
||||
buildInputs = [
|
||||
@ -73,42 +73,47 @@ stdenv.mkDerivation rec {
|
||||
''
|
||||
# https://github.com/neomutt/neomutt-contrib
|
||||
# Contains vim-keys, keybindings presets and more.
|
||||
+ lib.optionalString withContrib "${lib.getExe lndir} ${passthru.contrib} $out/share/doc/neomutt";
|
||||
+ lib.optionalString withContrib "${lib.getExe lndir} ${finalAttrs.passthru.contrib} $out/share/doc/neomutt";
|
||||
|
||||
doCheck = true;
|
||||
|
||||
preCheck = ''
|
||||
cp -r ${passthru.test-files} $(pwd)/test-files
|
||||
cp -r ${finalAttrs.passthru.test-files} $(pwd)/test-files
|
||||
|
||||
chmod -R +w test-files
|
||||
(cd test-files && ./setup.sh)
|
||||
|
||||
export NEOMUTT_TEST_DIR=$(pwd)/test-files
|
||||
|
||||
# The test fails with: node_padding.c:135: Check rc == 15... failed
|
||||
substituteInPlace test/main.c \
|
||||
--replace-fail "NEOMUTT_TEST_ITEM(test_expando_node_padding)" ""
|
||||
'';
|
||||
|
||||
passthru = {
|
||||
test-files = fetchFromGitHub {
|
||||
owner = "neomutt";
|
||||
repo = "neomutt-test-files";
|
||||
rev = "1569b826a56c39fd09f7c6dd5fc1163ff5a356a2";
|
||||
sha256 = "sha256-MaH2zEH1Wq3C0lFxpEJ+b/A+k2aKY/sr1EtSPAuRPp8=";
|
||||
rev = "00efc8388110208e77e6ed9d8294dfc333753d54";
|
||||
hash = "sha256-/ELowuMq67v56MAJBtO73g6OqV0DVwW4+x+0u4P5mB0=";
|
||||
};
|
||||
contrib = fetchFromGitHub {
|
||||
owner = "neomutt";
|
||||
repo = "neomutt-contrib";
|
||||
rev = "8e97688693ca47ea1055f3d15055a4f4ecc5c832";
|
||||
sha256 = "sha256-tx5Y819rNDxOpjg3B/Y2lPcqJDArAxVwjbYarVmJ79k=";
|
||||
hash = "sha256-tx5Y819rNDxOpjg3B/Y2lPcqJDArAxVwjbYarVmJ79k=";
|
||||
};
|
||||
};
|
||||
|
||||
checkTarget = "test";
|
||||
postCheck = "unset NEOMUTT_TEST_DIR";
|
||||
|
||||
meta = with lib; {
|
||||
description = "A small but very powerful text-based mail client";
|
||||
meta = {
|
||||
description = "Small but very powerful text-based mail client";
|
||||
mainProgram = "neomutt";
|
||||
homepage = "http://www.neomutt.org";
|
||||
license = licenses.gpl2Plus;
|
||||
maintainers = with maintainers; [ erikryb vrthra ma27 raitobezarius ];
|
||||
platforms = platforms.unix;
|
||||
homepage = "https://www.neomutt.org";
|
||||
license = lib.licenses.gpl2Plus;
|
||||
maintainers = with lib.maintainers; [ erikryb vrthra ma27 raitobezarius ];
|
||||
platforms = lib.platforms.unix;
|
||||
};
|
||||
}
|
||||
})
|
||||
|
@ -59,13 +59,13 @@ let
|
||||
in
|
||||
stdenv.mkDerivation (finalAttrs: {
|
||||
pname = "transmission";
|
||||
version = "4.0.5";
|
||||
version = "4.0.6";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "transmission";
|
||||
repo = "transmission";
|
||||
rev = finalAttrs.version;
|
||||
hash = "sha256-gd1LGAhMuSyC/19wxkoE2mqVozjGPfupIPGojKY0Hn4=";
|
||||
hash = "sha256-KBXvBFgrJ3njIoXrxHbHHLsiocwfd7Eba/GNI8uZA38=";
|
||||
fetchSubmodules = true;
|
||||
};
|
||||
|
||||
|
@ -3,11 +3,11 @@
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "morgen";
|
||||
version = "3.4.3";
|
||||
version = "3.4.4";
|
||||
|
||||
src = fetchurl {
|
||||
url = "https://dl.todesktop.com/210203cqcj00tw1/versions/${version}/linux/deb";
|
||||
hash = "sha256-QxbvD18yoIidiDoU7FsCpdgYZolp8LRx93d1GTjtnfA=";
|
||||
hash = "sha256-l4wHCapIvD3kZk1DqLNWDLjwg6j7g0+qMB/KuMzH+pQ=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
|
@ -24,13 +24,13 @@
|
||||
}:
|
||||
|
||||
let
|
||||
version = "2.8.6";
|
||||
version = "2.9.0";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "paperless-ngx";
|
||||
repo = "paperless-ngx";
|
||||
rev = "refs/tags/v${version}";
|
||||
hash = "sha256-Jcy/nds/JuivRV8mRtq2FbBB2L/CGqmoHoG1wVCwHFU=";
|
||||
hash = "sha256-7dcZbuz3yi0sND6AEqIwIo9byeZheOpIAhmBpOW5lhU=";
|
||||
};
|
||||
|
||||
# subpath installation is broken with uvicorn >= 0.26
|
||||
@ -74,7 +74,7 @@ let
|
||||
cd src-ui
|
||||
'';
|
||||
|
||||
npmDepsHash = "sha256-xRUZnFekzWHPtlUbpt0JZmlNjdjS1bBZDz8MmH8DC2U=";
|
||||
npmDepsHash = "sha256-gLEzifZK8Ok1SOo3YIIV5pTx4cbedQh025VqkodYrYQ=";
|
||||
|
||||
nativeBuildInputs = [
|
||||
pkg-config
|
||||
|
@ -4,12 +4,12 @@
|
||||
}:
|
||||
|
||||
let
|
||||
version = "6.7.8";
|
||||
version = "6.7.9";
|
||||
pname = "timeular";
|
||||
|
||||
src = fetchurl {
|
||||
url = "https://s3.amazonaws.com/timeular-desktop-packages/linux/production/Timeular-${version}.AppImage";
|
||||
hash = "sha256-nMvbr2PQBWyrhY3mv/4wsdWPhNx5hLFaAp0Ey3nvp7g=";
|
||||
hash = "sha256-UaoIYJxVfQZujf03Swup+zQwb7RWRXuElcswf+MXXQ4=";
|
||||
};
|
||||
|
||||
appimageContents = appimageTools.extractType2 {
|
||||
|
@ -12,13 +12,13 @@
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "treesheets";
|
||||
version = "0-unstable-2024-05-20";
|
||||
version = "0-unstable-2024-05-29";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "aardappel";
|
||||
repo = "treesheets";
|
||||
rev = "149d3377692cf5c585522f9245d9eb5dd7ddb742";
|
||||
hash = "sha256-qqeK13EazfdQteYcBMgWQ/0F4sBaOYCUpw7BMwfoe7k=";
|
||||
rev = "23654b9be71b59bbffd156ecedc663bd152d123c";
|
||||
hash = "sha256-ZTLMqDAmyojvET6qp1ziMNQgk2c+45z2UB3yFMhTmUQ=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
|
@ -8,13 +8,13 @@
|
||||
|
||||
stdenvNoCC.mkDerivation rec {
|
||||
pname = "cloudlog";
|
||||
version = "2.6.13";
|
||||
version = "2.6.14";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "magicbug";
|
||||
repo = "Cloudlog";
|
||||
rev = version;
|
||||
hash = "sha256-jhg6Rdd/QhsKZHaeE/2Rh0o0uLD5Jd+3mfXmkpbFcEM=";
|
||||
hash = "sha256-nsn/pvlFRDGUnm/X5pyzlKWgP6OlfVn3Mdj6vOJZMWQ=";
|
||||
};
|
||||
|
||||
postPatch = ''
|
||||
|
77
pkgs/applications/radio/sdr-j-fm/default.nix
Normal file
77
pkgs/applications/radio/sdr-j-fm/default.nix
Normal file
@ -0,0 +1,77 @@
|
||||
{
|
||||
lib,
|
||||
stdenv,
|
||||
fetchFromGitHub,
|
||||
cmake,
|
||||
wrapQtAppsHook,
|
||||
pkg-config,
|
||||
qtbase,
|
||||
qwt,
|
||||
fftwFloat,
|
||||
libsamplerate,
|
||||
portaudio,
|
||||
libusb1,
|
||||
libsndfile,
|
||||
featuresOverride ? { },
|
||||
}:
|
||||
|
||||
stdenv.mkDerivation (finalAttrs: {
|
||||
pname = "sdr-j-fm";
|
||||
# The stable release doen't include the commit the came after 3.16 which
|
||||
# added support for cmake options instead of using cmake set() commands. See
|
||||
# also: https://github.com/JvanKatwijk/sdr-j-fm/pull/25
|
||||
version = "3.16-unstable-2023-12-07";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "JvanKatwijk";
|
||||
repo = "sdr-j-fm";
|
||||
rev = "8e3a67f8fbf72dd6968cbeb2e3d7d513fd107c71";
|
||||
hash = "sha256-l9WqfhDp2V01lhleYZqRpmyL1Ww+tJj10bjkMMlvyA0=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
cmake
|
||||
wrapQtAppsHook
|
||||
pkg-config
|
||||
];
|
||||
|
||||
buildInputs = [
|
||||
qtbase
|
||||
qwt
|
||||
fftwFloat
|
||||
libsamplerate
|
||||
portaudio
|
||||
libusb1
|
||||
libsndfile
|
||||
];
|
||||
cmakeFlags = lib.mapAttrsToList lib.cmakeBool finalAttrs.passthru.features;
|
||||
|
||||
passthru = {
|
||||
features = {
|
||||
# All of these features don't require an external depencies, althought it
|
||||
# may be implied - upstraem bundles everything they need in their repo.
|
||||
AIRSPY = true;
|
||||
SDRPLAY = true;
|
||||
SDRPLAY_V3 = true;
|
||||
HACKRF = true;
|
||||
PLUTO = true;
|
||||
# Some more cmake flags are mentioned in upstream's CMakeLists.txt file
|
||||
# but they don't actually make a difference.
|
||||
} // featuresOverride;
|
||||
};
|
||||
|
||||
postInstall = ''
|
||||
# Weird default of upstream
|
||||
mv $out/linux-bin $out/bin
|
||||
'';
|
||||
|
||||
meta = with lib; {
|
||||
description = "SDR based FM radio receiver software";
|
||||
homepage = "https://github.com/JvanKatwijk/sdr-j-fm";
|
||||
license = licenses.gpl2Only;
|
||||
maintainers = with maintainers; [ doronbehar ];
|
||||
# Upstream doesn't find libusb1 on Darwin. Upstream probably doesn't
|
||||
# support it officially.
|
||||
platforms = platforms.linux;
|
||||
};
|
||||
})
|
@ -1,5 +1,6 @@
|
||||
{ lib
|
||||
, stdenv
|
||||
, fetchpatch
|
||||
, fetchurl
|
||||
, cmake
|
||||
, extra-cmake-modules
|
||||
@ -54,6 +55,14 @@ stdenv.mkDerivation rec {
|
||||
"-DENABLE_VECTOR_BLF=OFF"
|
||||
];
|
||||
|
||||
patches = [
|
||||
(fetchpatch {
|
||||
name = "matio-fix-compilation-for-latest-version-1.5.27.patch";
|
||||
url = "https://github.com/KDE/labplot/commit/d6142308ffa492d9f7cea00fad3b4cd1babfd00c.patch";
|
||||
hash = "sha256-qD5jj6GxBKbQezKJb1Z8HnwFO84WJBGQDawS/6o/wHE=";
|
||||
})
|
||||
];
|
||||
|
||||
nativeBuildInputs = [
|
||||
cmake
|
||||
extra-cmake-modules
|
||||
|
@ -55,11 +55,13 @@ in maven'.buildMavenPackage {
|
||||
postPatch = ''
|
||||
cp -r ${npmPkg} main/webapp/modules/core/3rdparty
|
||||
'';
|
||||
mvnParameters = "-DskipTests=true -pl !packaging";
|
||||
mvnParameters = "-pl !packaging";
|
||||
mvnHash = "sha256-0qsKUMV9M0ZaddR5ust8VikSrsutdxVNNezKqR+F/6M=";
|
||||
|
||||
nativeBuildInputs = [ makeWrapper ];
|
||||
|
||||
doCheck = false;
|
||||
|
||||
installPhase = ''
|
||||
mkdir -p $out/lib/server/target/lib
|
||||
cp -r server/target/lib/* $out/lib/server/target/lib/
|
||||
|
@ -4,11 +4,11 @@
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "tulip";
|
||||
version = "5.7.3";
|
||||
version = "5.7.4";
|
||||
|
||||
src = fetchurl {
|
||||
url = "mirror://sourceforge/auber/tulip-${version}_src.tar.gz";
|
||||
hash = "sha256-arpC+FsDYGMf47phtSzyjjvDg/UYZS+akOe5CYfajdU=";
|
||||
hash = "sha256-7z21WkPi1v2AGishDmXZPAedMjgXPRnpUiHTzEnc5LY=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [ cmake wrapQtAppsHook ]
|
||||
|
@ -8,16 +8,16 @@
|
||||
|
||||
rustPlatform.buildRustPackage rec {
|
||||
pname = "git-cliff";
|
||||
version = "2.2.2";
|
||||
version = "2.3.0";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "orhun";
|
||||
repo = "git-cliff";
|
||||
rev = "v${version}";
|
||||
hash = "sha256-e7DeGcavBgjnH2QY/nqRThYHKzhmbNxYPoOmMF+0I3s=";
|
||||
hash = "sha256-iTjfFl/bTvyElCIpTj7dsVu3azUSwNTryyssHdCaODg=";
|
||||
};
|
||||
|
||||
cargoHash = "sha256-MaSqQD3SRuqiOj5hTHAMyTDj2xgboA5QIZEH7BAxjF4=";
|
||||
cargoHash = "sha256-/Elb/hsk96E7D6TrLgbhD5cQhsXpDigNm5p9FpKGEUQ=";
|
||||
|
||||
# attempts to run the program on .git in src which is not deterministic
|
||||
doCheck = false;
|
||||
|
@ -48,9 +48,9 @@ buildGoModule rec {
|
||||
|
||||
postInstall = ''
|
||||
installShellCompletion --cmd git-town \
|
||||
--bash <($out/bin/git-town completion bash) \
|
||||
--fish <($out/bin/git-town completion fish) \
|
||||
--zsh <($out/bin/git-town completion zsh)
|
||||
--bash <($out/bin/git-town completions bash) \
|
||||
--fish <($out/bin/git-town completions fish) \
|
||||
--zsh <($out/bin/git-town completions zsh)
|
||||
|
||||
wrapProgram $out/bin/git-town --prefix PATH : ${lib.makeBinPath [ git ]}
|
||||
'';
|
||||
|
@ -2,16 +2,16 @@
|
||||
|
||||
buildGoModule rec {
|
||||
pname = "glab";
|
||||
version = "1.40.0";
|
||||
version = "1.41.0";
|
||||
|
||||
src = fetchFromGitLab {
|
||||
owner = "gitlab-org";
|
||||
repo = "cli";
|
||||
rev = "v${version}";
|
||||
hash = "sha256-setvszKdG2EQUlVJNbo7gPKE4b7lfdGT30MC82Kk2/s=";
|
||||
hash = "sha256-DvIp7eMBWKWQ5VW9MW391xnUz8o1KNz1mkJtu7YVILo=";
|
||||
};
|
||||
|
||||
vendorHash = "sha256-vx4dNFM0PfapRQxz9ef1vNs4RiZlZDNhcKlo87gjGTs=";
|
||||
vendorHash = "sha256-WM19Kx2b31e4/iA92U9FUuF8R1DMvbKotE2D9HpLQpQ=";
|
||||
|
||||
ldflags = [
|
||||
"-s"
|
||||
|
@ -5,13 +5,13 @@
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "flowblade";
|
||||
version = "2.14.0.2";
|
||||
version = "2.16";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "jliljebl";
|
||||
repo = pname;
|
||||
rev = "v${version}";
|
||||
sha256 = "sha256-M+M6qkgYD5zM8IOFwQsuQlK7qQsvmSjR+CXVpTW+O8k=";
|
||||
sha256 = "sha256-+vXljhtGcsS50/J52mJGazZX7oWB/RATvv6nzaLeV0Q=";
|
||||
};
|
||||
|
||||
buildInputs = [
|
||||
|
@ -1,21 +1,20 @@
|
||||
{ lib, buildKodiAddon, fetchFromGitHub, six, requests, infotagger, inputstreamhelper }:
|
||||
{ lib, buildKodiAddon, fetchFromGitHub, requests, inputstream-adaptive, inputstreamhelper }:
|
||||
|
||||
buildKodiAddon rec {
|
||||
pname = "youtube";
|
||||
namespace = "plugin.video.youtube";
|
||||
version = "7.0.6.3";
|
||||
version = "7.0.7";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "anxdpanic";
|
||||
repo = "plugin.video.youtube";
|
||||
rev = "v${version}";
|
||||
hash = "sha256-MhVxaI/kZ/CCAcf6Mo4DXmXpCLpxxpBFGwmTBp3rKkI=";
|
||||
hash = "sha256-i21BCkW4WpnQY1j9Wyn3/26GaAjWNXDb+lOVpmXlNKM=";
|
||||
};
|
||||
|
||||
propagatedBuildInputs = [
|
||||
six
|
||||
requests
|
||||
infotagger
|
||||
inputstream-adaptive
|
||||
inputstreamhelper
|
||||
];
|
||||
|
||||
|
@ -14,12 +14,12 @@
|
||||
}:
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "vdr-softhddevice";
|
||||
version = "2.3.1";
|
||||
version = "2.3.2";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "ua0lnj";
|
||||
repo = "vdr-plugin-softhddevice";
|
||||
sha256 = "sha256-hg4zx3M5X56u3AqG8Aj9DDDB/V0w4EiU9EAz8Qe+NVY=";
|
||||
sha256 = "sha256-nPIEj4DzHUOkwbwUk06Yv4lIGGn6d/C3kmK7EoaL6kE=";
|
||||
rev = "v${version}";
|
||||
};
|
||||
|
||||
|
@ -44,6 +44,10 @@
|
||||
let
|
||||
|
||||
platformSpecific = {
|
||||
i686.msVarsArgs = {
|
||||
flavor = "OVMF";
|
||||
archDir = "Ia32";
|
||||
};
|
||||
x86_64.msVarsArgs = {
|
||||
flavor = "OVMF_4M";
|
||||
archDir = "X64";
|
||||
|
@ -15,13 +15,13 @@
|
||||
|
||||
buildGoModule rec {
|
||||
pname = "cri-o";
|
||||
version = "1.30.1";
|
||||
version = "1.30.2";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "cri-o";
|
||||
repo = "cri-o";
|
||||
rev = "v${version}";
|
||||
hash = "sha256-3TO7pPDIYxlWXWNIAqCMWPCFPRxG6k6ilL2wDiAXFVY=";
|
||||
hash = "sha256-4v7Pt3WS68h+Un4QNATyQ/o/+8b8nVoNsy6VgwB9Brc=";
|
||||
};
|
||||
vendorHash = null;
|
||||
|
||||
|
@ -2,16 +2,16 @@
|
||||
|
||||
rustPlatform.buildRustPackage rec {
|
||||
pname = "nixpacks";
|
||||
version = "1.23.0";
|
||||
version = "1.24.1";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "railwayapp";
|
||||
repo = pname;
|
||||
rev = "v${version}";
|
||||
sha256 = "sha256-M4RZwcFiupZdePDkUWRTiTNA58siMsggTGpvHb8j88Y=";
|
||||
sha256 = "sha256-niKz+F1RJtZrE8+BaJwy5bjGS3miJf5C9LttTnC+iuk=";
|
||||
};
|
||||
|
||||
cargoHash = "sha256-hSzDboP2YJoPPzugb0ABiogKU7lauJNML8szThB2zqg=";
|
||||
cargoHash = "sha256-fzG53DqZKgW6Gen+0ZO9lxgPXkxw7S6OdZWNNI+y9hU=";
|
||||
|
||||
# skip test due FHS dependency
|
||||
doCheck = false;
|
||||
|
@ -5,13 +5,13 @@
|
||||
|
||||
stdenv.mkDerivation {
|
||||
pname = "sommelier";
|
||||
version = "124.0";
|
||||
version = "125.0";
|
||||
|
||||
src = fetchzip rec {
|
||||
url = "https://chromium.googlesource.com/chromiumos/platform2/+archive/${passthru.rev}/vm_tools/sommelier.tar.gz";
|
||||
passthru.rev = "0ced021a6b362f35592cca5a3915d0ed784615f2";
|
||||
passthru.rev = "4445ac169a9e043fd260a835384aaa49c457c358";
|
||||
stripRoot = false;
|
||||
sha256 = "zSiGhF4FhLUavC7YEOGGq4NE2hxK4YNXF3CpLptoZbM=";
|
||||
sha256 = "1PofODGZDknZpzXI1d3JcoNYz3IGfw32nm+SmUpeqb8=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
|
@ -20,17 +20,17 @@
|
||||
|
||||
buildGoModule rec {
|
||||
pname = "aaaaxy";
|
||||
version = "1.5.129";
|
||||
version = "1.5.139";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "divVerent";
|
||||
repo = pname;
|
||||
rev = "v${version}";
|
||||
hash = "sha256-kH2eFFxohvuuEP2p7bt8zOYbk3gF86X9y3sNdLYl/Qo=";
|
||||
hash = "sha256-j8BpLN0PhMqUQXhF1L7uEW2KLaVq5cfckXnWrkltCgM=";
|
||||
fetchSubmodules = true;
|
||||
};
|
||||
|
||||
vendorHash = "sha256-VEayNWztJYeQoJHVJfAlmHD65PEho1TCttTfT0cbgUQ=";
|
||||
vendorHash = "sha256-a6nfGP6Lwjwr4wXXRUrCyV9+BCyHOSKczk5rjZdFnlA=";
|
||||
|
||||
buildInputs = [
|
||||
alsa-lib
|
||||
|
@ -33,11 +33,11 @@
|
||||
|
||||
stdenv.mkDerivation (finalAttrs: {
|
||||
pname = "apt";
|
||||
version = "2.9.3";
|
||||
version = "2.9.4";
|
||||
|
||||
src = fetchurl {
|
||||
url = "mirror://debian/pool/main/a/apt/apt_${finalAttrs.version}.tar.xz";
|
||||
hash = "sha256-7R0BlcpujXjbulOJ7Eb8/gQiut77vce1GkbJCfa6LXE=";
|
||||
hash = "sha256-Ra6jeJM7nkaPZWBR7Sv8+TurArs1D5TodUcn6xe0B6Q=";
|
||||
};
|
||||
|
||||
# cycle detection; lib can't be split
|
||||
|
@ -21,11 +21,11 @@
|
||||
|
||||
stdenv.mkDerivation (finalAttrs: {
|
||||
pname = "atlauncher";
|
||||
version = "3.4.36.4";
|
||||
version = "3.4.36.5";
|
||||
|
||||
src = fetchurl {
|
||||
url = "https://github.com/ATLauncher/ATLauncher/releases/download/v${finalAttrs.version}/ATLauncher-${finalAttrs.version}.jar";
|
||||
hash = "sha256-7l4D99rTOP+oyaa+O8GPGugr3Nv8EIt6EqK1L9ttFBA=";
|
||||
hash = "sha256-sytUMRp3qkdE5uzfFhuVqwsBYfRPubEG7/X/JqS2uxY=";
|
||||
};
|
||||
|
||||
env.ICON = fetchurl {
|
||||
@ -77,14 +77,15 @@ stdenv.mkDerivation (finalAttrs: {
|
||||
})
|
||||
];
|
||||
|
||||
meta = with lib; {
|
||||
meta = {
|
||||
changelog = "https://github.com/ATLauncher/ATLauncher/blob/v${finalAttrs.version}/CHANGELOG.md";
|
||||
description = "A simple and easy to use Minecraft launcher which contains many different modpacks for you to choose from and play";
|
||||
downloadPage = "https://atlauncher.com/downloads";
|
||||
homepage = "https://atlauncher.com";
|
||||
license = licenses.gpl3;
|
||||
license = lib.licenses.gpl3;
|
||||
mainProgram = "atlauncher";
|
||||
maintainers = [ maintainers.getpsyched ];
|
||||
platforms = platforms.all;
|
||||
sourceProvenance = [ sourceTypes.binaryBytecode ];
|
||||
maintainers = with lib.maintainers; [ getpsyched ];
|
||||
platforms = lib.platforms.all;
|
||||
sourceProvenance = [ lib.sourceTypes.binaryBytecode ];
|
||||
};
|
||||
})
|
||||
|
@ -8,13 +8,13 @@
|
||||
}:
|
||||
|
||||
let
|
||||
version = "1.12.3";
|
||||
version = "1.12.4";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "detachhead";
|
||||
repo = "basedpyright";
|
||||
rev = "v${version}";
|
||||
hash = "sha256-n4jiKxkXGCKJkuXSsUktsiJQuCcZ+D/RJH/ippnOVw8=";
|
||||
hash = "sha256-ZcFCK6KKX10w5KgsUQIDMMBIzU+8pw0t9/pn1tzCnMg=";
|
||||
};
|
||||
|
||||
patchedPackageJSON = runCommand "package.json" { } ''
|
||||
@ -44,7 +44,7 @@ let
|
||||
pname = "pyright-internal";
|
||||
inherit version src;
|
||||
sourceRoot = "${src.name}/packages/pyright-internal";
|
||||
npmDepsHash = "sha256-ba7GzkKrXps4W1ptv+j9fMMXwpi30ymbqgIJ64PaZ1g=";
|
||||
npmDepsHash = "sha256-90IGWvXvUpvIQdpukm8njwcNj7La6rWwoENh4kiBayI=";
|
||||
dontNpmBuild = true;
|
||||
# FIXME: Remove this flag when TypeScript 5.5 is released
|
||||
npmFlags = [ "--legacy-peer-deps" ];
|
||||
@ -60,7 +60,7 @@ buildNpmPackage rec {
|
||||
inherit version src;
|
||||
|
||||
sourceRoot = "${src.name}/packages/pyright";
|
||||
npmDepsHash = "sha256-9V1T6w1G1SZi19dgRaFmv+Vy71hmQR+L6cDjQZJrGy8=";
|
||||
npmDepsHash = "sha256-HI3ehtJ29kFSv0XyrXcp5JGs9HGYb9ub2oOSQ6uEn8Q=";
|
||||
|
||||
postPatch = ''
|
||||
chmod +w ../../
|
||||
|
@ -3,11 +3,11 @@
|
||||
|
||||
stdenv.mkDerivation (finalAttrs: {
|
||||
pname = "butt";
|
||||
version = "1.41.1";
|
||||
version = "1.42.0";
|
||||
|
||||
src = fetchurl {
|
||||
url = "https://danielnoethen.de/butt/release/${finalAttrs.version}/butt-${finalAttrs.version}.tar.gz";
|
||||
hash = "sha256-y/XIcFm1TWVd5SL+kDCJc21CtMwipMQgRE4gPra5+98=";
|
||||
hash = "sha256-/Y96Pq/3D37n/2JZdvcEQ1BBEtHlJ030QLesfNyBg2g=";
|
||||
};
|
||||
|
||||
postPatch = ''
|
||||
|
@ -56,7 +56,6 @@ maven.buildMavenPackage {
|
||||
"-Dskip.npm"
|
||||
"-Dspotless.check.skip"
|
||||
"-Dmaven.gitcommitid.skip"
|
||||
"-DskipTests"
|
||||
];
|
||||
|
||||
nativeBuildInputs = [ makeWrapper ];
|
||||
@ -71,6 +70,8 @@ maven.buildMavenPackage {
|
||||
runHook postConfigure
|
||||
'';
|
||||
|
||||
doCheck = false;
|
||||
|
||||
installPhase = ''
|
||||
runHook preInstall
|
||||
|
||||
|
@ -1,6 +1,7 @@
|
||||
{ lib
|
||||
, stdenv
|
||||
, fetchFromGitHub
|
||||
, fetchpatch
|
||||
|
||||
, autoreconfHook
|
||||
, go-md2man
|
||||
@ -24,18 +25,27 @@
|
||||
}:
|
||||
stdenv.mkDerivation (finalAttrs: {
|
||||
pname = "composefs";
|
||||
version = "1.0.3";
|
||||
version = "1.0.4";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "containers";
|
||||
repo = "composefs";
|
||||
rev = "v${finalAttrs.version}";
|
||||
hash = "sha256-YmredtZZKMjzJW/kxiTUmdgO/1iPIKzJsuJz8DeEdGM=";
|
||||
hash = "sha256-ekUFLZGWTsiJZFv3nHoxuV057zoOtWBIkt+VdtzlaU4=";
|
||||
};
|
||||
|
||||
strictDeps = true;
|
||||
outputs = [ "out" "lib" "dev" ];
|
||||
|
||||
patches = [
|
||||
# fixes composefs-info tests, remove in next release
|
||||
# https://github.com/containers/composefs/pull/291
|
||||
(fetchpatch {
|
||||
url = "https://github.com/containers/composefs/commit/f7465b3a57935d96451b392b07aa3a1dafb56e7b.patch";
|
||||
hash = "sha256-OO3IfqLf3dQGjEgKx3Bo630KALmLAWwgdACuyZm2Ujc=";
|
||||
})
|
||||
];
|
||||
|
||||
postPatch = lib.optionalString installExperimentalTools ''
|
||||
sed -i "s/noinst_PROGRAMS +\?=/bin_PROGRAMS +=/g" tools/Makefile.am
|
||||
'';
|
||||
@ -64,8 +74,8 @@ stdenv.mkDerivation (finalAttrs: {
|
||||
preCheck = ''
|
||||
patchShebangs --build tests/*dir tests/*.sh
|
||||
substituteInPlace tests/*.sh \
|
||||
--replace " /tmp" " $TMPDIR" \
|
||||
--replace " /var/tmp" " $TMPDIR"
|
||||
--replace-quiet " /tmp" " $TMPDIR" \
|
||||
--replace-quiet " /var/tmp" " $TMPDIR"
|
||||
'';
|
||||
|
||||
passthru = {
|
||||
|
@ -21,20 +21,20 @@
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "delfin";
|
||||
version = "0.4.4";
|
||||
version = "0.4.5";
|
||||
|
||||
src = fetchFromGitea {
|
||||
domain = "codeberg.org";
|
||||
owner = "avery42";
|
||||
repo = "delfin";
|
||||
rev = "v${version}";
|
||||
hash = "sha256-qbl0PvGKI3S845xLr0aXf/uk2uuOXMjvu9S3BOPzxa0=";
|
||||
hash = "sha256-iqibdVMf4RBl/EuFvE6tEPDliYmRtIYCW/mO+nNKcWU=";
|
||||
};
|
||||
|
||||
cargoDeps = rustPlatform.fetchCargoTarball {
|
||||
inherit src;
|
||||
name = "${pname}-${version}";
|
||||
hash = "sha256-Js1mIotSOayYDjDVQMqXwaeSC2a1g1DeqD6QmeWwztk=";
|
||||
hash = "sha256-2V2jx78S0Gj4/w3oduH/s7Pd6XG/GCs4lwhFCdGVdd8=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
|
@ -7,16 +7,16 @@
|
||||
|
||||
rustPlatform.buildRustPackage rec {
|
||||
pname = "flake-checker";
|
||||
version = "0.1.18";
|
||||
version = "0.1.19";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "DeterminateSystems";
|
||||
repo = "flake-checker";
|
||||
rev = "v${version}";
|
||||
hash = "sha256-XoYpiqatCQCYuKpVGlWcteVp71LXh+leFEtbL5lb0rs=";
|
||||
hash = "sha256-KJTObuHJQjIgg/5A25Ee+7s2SrmtyYFnvcnklYhSCNE=";
|
||||
};
|
||||
|
||||
cargoHash = "sha256-LM0tYSRhM4GGb/Pa5l2xMAJ26ZyAuSEKlZansE/VNNw=";
|
||||
cargoHash = "sha256-ADqc7H2MClXyYEw/lc9F4HAfpHrDc/lqL/BIL/PTZro=";
|
||||
|
||||
buildInputs = lib.optionals stdenv.isDarwin (with darwin.apple_sdk.frameworks; [
|
||||
Security
|
||||
|
@ -2,13 +2,13 @@
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "flashmq";
|
||||
version = "1.13.1";
|
||||
version = "1.14.0";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "halfgaar";
|
||||
repo = "FlashMQ";
|
||||
rev = "v${version}";
|
||||
hash = "sha256-ZKDoh2eZDs7iQpfsvfsG7ic+A8NG+UUGgq9l2tmfhVI=";
|
||||
hash = "sha256-rOhH3mRPW4LweQmzztr6/xGqSfo02nFBWrAVd0/oQGA=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [ cmake installShellFiles ];
|
||||
|
@ -1,7 +1,7 @@
|
||||
{ lib
|
||||
, stdenv
|
||||
, buildGoModule
|
||||
, fetchurl
|
||||
, fetchFromGitHub
|
||||
, makeWrapper
|
||||
, git
|
||||
, bash
|
||||
@ -16,23 +16,47 @@
|
||||
, brotli
|
||||
, xorg
|
||||
, nixosTests
|
||||
, buildNpmPackage
|
||||
}:
|
||||
|
||||
buildGoModule rec {
|
||||
let
|
||||
frontend = buildNpmPackage {
|
||||
pname = "gitea-frontend";
|
||||
inherit (gitea) src version;
|
||||
|
||||
npmDepsHash = "sha256-gXBBiDIIS0aW6qK37HcF0AuJOliblinznRVXoo6DV1s=";
|
||||
|
||||
# use webpack directly instead of 'make frontend' as the packages are already installed
|
||||
buildPhase = ''
|
||||
BROWSERSLIST_IGNORE_OLD_DATA=true npx webpack
|
||||
'';
|
||||
|
||||
installPhase = ''
|
||||
mkdir -p $out
|
||||
cp -R public $out/
|
||||
'';
|
||||
};
|
||||
in buildGoModule rec {
|
||||
pname = "gitea";
|
||||
version = "1.22.0";
|
||||
|
||||
# not fetching directly from the git repo, because that lacks several vendor files for the web UI
|
||||
src = fetchurl {
|
||||
url = "https://dl.gitea.com/gitea/${version}/gitea-src-${version}.tar.gz";
|
||||
hash = "sha256-bU4u/RsE12InXjJ2ZvIL31z9AzB7XULyV0+ytAYnyjg=";
|
||||
src = fetchFromGitHub {
|
||||
owner = "go-gitea";
|
||||
repo = "gitea";
|
||||
rev = "v${gitea.version}";
|
||||
hash = "sha256-LdNEiPch2BZNYMOjE9yWsq78g6DolMjM5wUci3jXj30=";
|
||||
};
|
||||
|
||||
vendorHash = null;
|
||||
vendorHash = "sha256-8VoJR4p2WnhG6nTFMzBlcrd/B6UwaOU3Q/rnDx9MtWc=";
|
||||
|
||||
patches = [
|
||||
./static-root-path.patch
|
||||
];
|
||||
outputs = [ "out" "data" ];
|
||||
|
||||
patches = [ ./static-root-path.patch ];
|
||||
|
||||
# go-modules derivation doesn't provide $data
|
||||
# so we need to wait until it is built, and then
|
||||
# at that time we can then apply the substituteInPlace
|
||||
overrideModAttrs = _: { postPatch = null; };
|
||||
|
||||
postPatch = ''
|
||||
substituteInPlace modules/setting/server.go --subst-var data
|
||||
@ -54,11 +78,10 @@ buildGoModule rec {
|
||||
"-X 'main.Tags=${lib.concatStringsSep " " tags}'"
|
||||
];
|
||||
|
||||
outputs = [ "out" "data" ];
|
||||
|
||||
postInstall = ''
|
||||
mkdir $data
|
||||
cp -R ./{public,templates,options} $data
|
||||
ln -s ${frontend}/public $data/public
|
||||
cp -R ./{templates,options} $data
|
||||
mkdir -p $out
|
||||
cp -R ./options/locale $out/locale
|
||||
|
||||
@ -84,7 +107,7 @@ buildGoModule rec {
|
||||
|
||||
meta = with lib; {
|
||||
description = "Git with a cup of tea";
|
||||
homepage = "https://gitea.io";
|
||||
homepage = "https://about.gitea.com";
|
||||
license = licenses.mit;
|
||||
maintainers = with maintainers; [ ma27 techknowlogick SuperSandro2000 ];
|
||||
broken = stdenv.isDarwin;
|
@ -2,13 +2,13 @@
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "gmid";
|
||||
version = "2.0.2";
|
||||
version = "2.0.3";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "omar-polo";
|
||||
repo = pname;
|
||||
rev = version;
|
||||
hash = "sha256-5K6+CVX0/m6SBcTvwy4GD0x9R/yQjd+2tTJiA4OagcI=";
|
||||
hash = "sha256-izugxV+fSYBf193ilu70M3OkT6gnkXrTP45gEkEImuA=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [ bison ];
|
||||
|
@ -17,11 +17,11 @@
|
||||
|
||||
stdenv.mkDerivation (finalAttrs: {
|
||||
pname = "got";
|
||||
version = "0.99";
|
||||
version = "0.100";
|
||||
|
||||
src = fetchurl {
|
||||
url = "https://gameoftrees.org/releases/portable/got-portable-${finalAttrs.version}.tar.gz";
|
||||
hash = "sha256-rqQINToCsuOtm00bdgeQAmmvl5htQJmMV/EKzfD6Hjg=";
|
||||
hash = "sha256-/DqKIGf/aZ09aL/rB7te+AauHmJ+mOTrVEbkqT9WUBI=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [ pkg-config bison ]
|
||||
|
4
pkgs/by-name/gr/graphite-cli/package-lock.json
generated
4
pkgs/by-name/gr/graphite-cli/package-lock.json
generated
@ -1,12 +1,12 @@
|
||||
{
|
||||
"name": "@withgraphite/graphite-cli",
|
||||
"version": "1.3.5",
|
||||
"version": "1.3.6",
|
||||
"lockfileVersion": 3,
|
||||
"requires": true,
|
||||
"packages": {
|
||||
"": {
|
||||
"name": "@withgraphite/graphite-cli",
|
||||
"version": "1.3.5",
|
||||
"version": "1.3.6",
|
||||
"hasInstallScript": true,
|
||||
"license": "None",
|
||||
"dependencies": {
|
||||
|
@ -7,14 +7,14 @@
|
||||
|
||||
buildNpmPackage rec {
|
||||
pname = "graphite-cli";
|
||||
version = "1.3.5";
|
||||
version = "1.3.6";
|
||||
|
||||
src = fetchurl {
|
||||
url = "https://registry.npmjs.org/@withgraphite/graphite-cli/-/graphite-cli-${version}.tgz";
|
||||
hash = "sha256-W/EFhlJeiZrBK9FG4DhR1iyU9YSSbaf/np2vQ8obA0M=";
|
||||
hash = "sha256-rD/YWFRHzoM9Gsd9tnCF56RChckaeWGFphYgHa0UvUU=";
|
||||
};
|
||||
|
||||
npmDepsHash = "sha256-X1FWYAuHouOXuAlgrbwgrbwaxKX5JS8iG0RnCPX5TvM=";
|
||||
npmDepsHash = "sha256-WyV0f5thWG7hg7Vm1UUIlcFCgP83HfXQFBUVHcQdjRo=";
|
||||
|
||||
postPatch = ''
|
||||
ln -s ${./package-lock.json} package-lock.json
|
||||
|
@ -7,10 +7,10 @@
|
||||
}:
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "halo";
|
||||
version = "2.15.2";
|
||||
version = "2.16.0";
|
||||
src = fetchurl {
|
||||
url = "https://github.com/halo-dev/halo/releases/download/v${version}/${pname}-${version}.jar";
|
||||
hash = "sha256-BCcIDaWtn8OkI+GWs741nWgqyO8qlE9m2hZ3e+iViUI=";
|
||||
hash = "sha256-YjRoq38y4nFmcvEEWyJMociGNzUgQ5FXzTw2R64urcY=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
|
45
pkgs/by-name/hi/highlight-pointer/package.nix
Normal file
45
pkgs/by-name/hi/highlight-pointer/package.nix
Normal file
@ -0,0 +1,45 @@
|
||||
{
|
||||
lib,
|
||||
stdenv,
|
||||
fetchFromGitHub,
|
||||
libX11,
|
||||
xorg,
|
||||
libXext,
|
||||
}:
|
||||
|
||||
stdenv.mkDerivation (finalAttrs: {
|
||||
pname = "highlight-pointer";
|
||||
version = "1.1.3";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "swillner";
|
||||
repo = "highlight-pointer";
|
||||
rev = "refs/tags/v${finalAttrs.version}";
|
||||
hash = "sha256-mz9gXAtrtSV0Lapx8xBOPljuF+HRgDaF2DKCDrHXQa8=";
|
||||
};
|
||||
|
||||
buildInputs = [
|
||||
libX11
|
||||
libXext
|
||||
xorg.libXi
|
||||
xorg.libXfixes
|
||||
];
|
||||
|
||||
installPhase = ''
|
||||
runHook preInstall
|
||||
|
||||
install -m 555 -D highlight-pointer $out/bin/highlight-pointer
|
||||
|
||||
runHook postInstall
|
||||
'';
|
||||
|
||||
meta = with lib; {
|
||||
description = "Highlight mouse pointer/cursor using a dot";
|
||||
homepage = "https://github.com/swillner/highlight-pointer";
|
||||
changelog = "https://github.com/swillner/highlight-pointer/releases/tag/v${finalAttrs.version}";
|
||||
license = licenses.mit;
|
||||
platforms = platforms.linux;
|
||||
maintainers = with maintainers; [ DCsunset ];
|
||||
mainProgram = "highlight-pointer";
|
||||
};
|
||||
})
|
@ -1,13 +1,13 @@
|
||||
{ lib, buildGoModule, fetchFromGitHub, nix-update-script, testers, immich-go }:
|
||||
buildGoModule rec {
|
||||
pname = "immich-go";
|
||||
version = "0.15.0";
|
||||
version = "0.16.0";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "simulot";
|
||||
repo = "immich-go";
|
||||
rev = "${version}";
|
||||
hash = "sha256-gZVjs0aFwlx5joX7iqy7uDd23d/4LjP/t6u7z8X/P8o=";
|
||||
hash = "sha256-9b9eQ1ufVQsg9hzwK0570HKmWTPcTag6DM2NB7mutjk=";
|
||||
|
||||
# Inspired by: https://github.com/NixOS/nixpkgs/blob/f2d7a289c5a5ece8521dd082b81ac7e4a57c2c5c/pkgs/applications/graphics/pdfcpu/default.nix#L20-L32
|
||||
# The intention here is to write the information into files in the `src`'s
|
||||
|
56
pkgs/by-name/ir/irust/package.nix
Normal file
56
pkgs/by-name/ir/irust/package.nix
Normal file
@ -0,0 +1,56 @@
|
||||
{
|
||||
lib,
|
||||
fetchFromGitHub,
|
||||
rustPlatform,
|
||||
makeWrapper,
|
||||
cargo,
|
||||
rustfmt,
|
||||
cargo-show-asm,
|
||||
cargo-expand,
|
||||
clang,
|
||||
# Workaround to allow easily overriding runtime inputs
|
||||
runtimeInputs ? [
|
||||
cargo
|
||||
rustfmt
|
||||
cargo-show-asm
|
||||
cargo-expand
|
||||
clang
|
||||
],
|
||||
nix-update-script,
|
||||
}:
|
||||
|
||||
rustPlatform.buildRustPackage rec {
|
||||
pname = "irust";
|
||||
version = "1.71.23";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "sigmaSd";
|
||||
repo = "IRust";
|
||||
rev = "irust@${version}";
|
||||
hash = "sha256-+kl22m2Is8CdLlqGSFOglw4/fM1exayaMH05YSuTsbw=";
|
||||
};
|
||||
|
||||
cargoHash = "sha256-4aQ1IOTcUAkgiQucUG8cg9pVShtlu2IJeqNCGO+6VYY=";
|
||||
|
||||
nativeBuildInputs = [ makeWrapper ];
|
||||
|
||||
postFixup = ''
|
||||
wrapProgram $out/bin/irust \
|
||||
--suffix PATH : ${lib.makeBinPath runtimeInputs}
|
||||
'';
|
||||
|
||||
checkFlags = [
|
||||
"--skip=repl"
|
||||
"--skip=printer::tests"
|
||||
];
|
||||
|
||||
passthru.updateScript = nix-update-script { };
|
||||
|
||||
meta = with lib; {
|
||||
description = "Cross Platform Rust Repl";
|
||||
homepage = "https://github.com/sigmaSd/IRust";
|
||||
license = licenses.mit;
|
||||
maintainers = with maintainers; [ lelgenio ];
|
||||
mainProgram = "irust";
|
||||
};
|
||||
}
|
@ -5,7 +5,7 @@
|
||||
...
|
||||
}:
|
||||
let
|
||||
version = "0.0.6";
|
||||
version = "0.1.0";
|
||||
in
|
||||
buildGoModule {
|
||||
pname = "izrss";
|
||||
@ -15,7 +15,7 @@ buildGoModule {
|
||||
owner = "isabelroses";
|
||||
repo = "izrss";
|
||||
rev = "refs/tags/v${version}";
|
||||
hash = "sha256-tO/m39FMtvxZzNgnVY84k4J2v8vQVdzR3IKofJWCf9U=";
|
||||
hash = "sha256-Op9aiCQrBH8TuhMTt+3Wthd8UY3lU2g9yJ110v7TtXA=";
|
||||
};
|
||||
|
||||
ldflags = [
|
||||
@ -24,7 +24,7 @@ buildGoModule {
|
||||
"-X main.version=${version}"
|
||||
];
|
||||
|
||||
vendorHash = "sha256-/gD82wT4jWNMQsGPb2nYQiFQsUdKICyO6eiRPHrLsy8=";
|
||||
vendorHash = "sha256-/TRCD6akZV2qDqJz62p7UzFIGuTAKLnUtYqqvdw3rCI=";
|
||||
|
||||
meta = {
|
||||
description = "An RSS feed reader for the terminal written in Go";
|
||||
|
@ -6,15 +6,15 @@
|
||||
}:
|
||||
|
||||
let
|
||||
timestamp = "202401111522";
|
||||
timestamp = "202405301306";
|
||||
in
|
||||
stdenv.mkDerivation (finalAttrs: {
|
||||
pname = "jdt-language-server";
|
||||
version = "1.31.0";
|
||||
version = "1.36.0";
|
||||
|
||||
src = fetchurl {
|
||||
url = "https://download.eclipse.org/jdtls/milestones/${finalAttrs.version}/jdt-language-server-${finalAttrs.version}-${timestamp}.tar.gz";
|
||||
hash = "sha256-bCX2LQt00d2SqxmvuvvlBB6wbCuFPqtX9/Qv5v6wH3w=";
|
||||
hash = "sha256-Ao4nTQb0phytT/1W+J70FKj2VhPG0F2UZ2Ubf7A9rns=";
|
||||
};
|
||||
|
||||
sourceRoot = ".";
|
||||
|
2
pkgs/by-name/jd/jdt-language-server/update.sh
Normal file → Executable file
2
pkgs/by-name/jd/jdt-language-server/update.sh
Normal file → Executable file
@ -15,7 +15,7 @@ filename=$(curl -s "$prefix/latest.txt")
|
||||
newtimestamp=$(echo $filename | sed "s|^.*-$newver-||;s|\.tar\.gz$||")
|
||||
newhash="$(nix-hash --to-sri --type sha256 $(nix-prefetch-url "$prefix/$filename"))";
|
||||
|
||||
sed -i default.nix \
|
||||
sed -i package.nix \
|
||||
-e "/^ version =/ s|\".*\"|\"$newver\"|" \
|
||||
-e "/^ timestamp =/ s|\".*\"|\"$newtimestamp\"|" \
|
||||
-e "/^ hash =/ s|\".*\"|\"$newhash\"|" \
|
||||
|
@ -1,9 +1,6 @@
|
||||
{ lib
|
||||
, rustPlatform
|
||||
, fetchFromGitHub
|
||||
, autoconf
|
||||
, automake
|
||||
, libtool
|
||||
}:
|
||||
rustPlatform.buildRustPackage rec {
|
||||
pname = "jnv";
|
||||
@ -18,13 +15,6 @@ rustPlatform.buildRustPackage rec {
|
||||
|
||||
cargoHash = "sha256-qpVRq6RbrDZDSJkLQ5Au9j2mWXp3gn7QBe3nRmIVK8c=";
|
||||
|
||||
nativeBuildInputs = [
|
||||
autoconf
|
||||
automake
|
||||
libtool
|
||||
rustPlatform.bindgenHook
|
||||
];
|
||||
|
||||
meta = with lib; {
|
||||
description = "Interactive JSON filter using jq";
|
||||
mainProgram = "jnv";
|
||||
|
@ -12,10 +12,12 @@ maven.buildMavenPackage rec {
|
||||
};
|
||||
|
||||
mvnHash = "sha256-m1o0m0foqJhEzWjC9behBeld5HT08WClcZN2xc3fZrI=";
|
||||
mvnParameters = "-DskipTests compile";
|
||||
mvnParameters = "compile";
|
||||
|
||||
nativeBuildInputs = [ makeWrapper ];
|
||||
|
||||
doCheck = false;
|
||||
|
||||
installPhase = ''
|
||||
runHook preInstall
|
||||
|
||||
|
@ -9,16 +9,16 @@
|
||||
|
||||
rustPlatform.buildRustPackage rec {
|
||||
pname = "legba";
|
||||
version = "0.8.0";
|
||||
version = "0.9.0";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "evilsocket";
|
||||
repo = "legba";
|
||||
rev = "v${version}";
|
||||
hash = "sha256-yevQEbDuVaSsSfA3ug9rDeWtGjMvS+uD7qHguRVt4sg=";
|
||||
hash = "sha256-emj2N3S26Nm0UiHGZIraCJN07rJNOMvdWRoUbHneknY=";
|
||||
};
|
||||
|
||||
cargoHash = "sha256-UBt4FP5zW+dijneHNaFJ80Ui5R+m+8aSwHTcqKDeEVg=";
|
||||
cargoHash = "sha256-viDfJ214Zf5segjrLSTbHav5T5e219NAF+MvuPow+JQ=";
|
||||
|
||||
nativeBuildInputs = [ cmake pkg-config ];
|
||||
buildInputs = [ openssl.dev samba ];
|
||||
|
@ -13,24 +13,24 @@
|
||||
|
||||
let
|
||||
pname = "lx-music-desktop";
|
||||
version = "2.7.0";
|
||||
version = "2.8.0";
|
||||
|
||||
buildUrl = version: arch: "https://github.com/lyswhut/lx-music-desktop/releases/download/v${version}/lx-music-desktop_${version}_${arch}.deb";
|
||||
|
||||
srcs = {
|
||||
x86_64-linux = fetchurl {
|
||||
url = buildUrl version "amd64";
|
||||
hash = "sha256-+mCAFfiJwa+RQ/9vnSPDrC1LoLIoZyFUEJAF6sXdqRM=";
|
||||
hash = "sha256-Kt/foI7NrXV+Ex2DxLRyP3bVFw0Bx4TLuMyBMZD0bDw=";
|
||||
};
|
||||
|
||||
aarch64-linux = fetchurl {
|
||||
url = buildUrl version "arm64";
|
||||
hash = "sha256-fDlgHJqoZLGnUuZeZGdocYLbsE02QBrWPKS31fbGThk=";
|
||||
hash = "sha256-4X4fXb2V/FigArcIgpgkNBa2+mOemPOx/HkxPlx//gw=";
|
||||
};
|
||||
|
||||
armv7l-linux = fetchurl {
|
||||
url = buildUrl version "armv7l";
|
||||
hash = "sha256-X6EXsBvTbPGXCJ+ektMCMGDG2zqGKBvWT/TwjGFL3ug=";
|
||||
hash = "sha256-uWEQYOT4wxg6HWoL18mEpWF8pONl5Bwf/bnoN4X+A7c=";
|
||||
};
|
||||
};
|
||||
|
||||
|
@ -6,14 +6,14 @@
|
||||
|
||||
python3Packages.buildPythonApplication rec {
|
||||
pname = "marcel";
|
||||
version = "0.27.2";
|
||||
version = "0.28";
|
||||
pyproject = true;
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "geophile";
|
||||
repo = "marcel";
|
||||
rev = "refs/tags/v${version}";
|
||||
hash = "sha256-jzb4kSrcN+pLFkWYy0hc7NCCextWgZQuf3P+kiouEfY=";
|
||||
hash = "sha256-aJq8FAW1/Vo2x3st+/cxAzo4jHYPBDx/2i/2h1GVnrs=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = with python3Packages; [
|
||||
|
@ -17,8 +17,7 @@ maven.buildMavenPackage rec {
|
||||
|
||||
mvnHash = "sha256-7O+G5HT6mtp12zWL3Gn12KPVUwp3GMaWGvXX6Sg1+6k=";
|
||||
|
||||
# Disable tests because they require networking
|
||||
mvnParameters = "-DskipTests";
|
||||
doCheck = false; # Requires networking
|
||||
|
||||
installPhase = ''
|
||||
runHook preInstall
|
||||
|
41
pkgs/by-name/mu/muffon/package.nix
Normal file
41
pkgs/by-name/mu/muffon/package.nix
Normal file
@ -0,0 +1,41 @@
|
||||
{
|
||||
lib,
|
||||
fetchurl,
|
||||
appimageTools,
|
||||
makeWrapper,
|
||||
}:
|
||||
|
||||
let
|
||||
pname = "muffon";
|
||||
version = "2.0.3";
|
||||
src = fetchurl {
|
||||
url = "https://github.com/staniel359/muffon/releases/download/v${version}/muffon-${version}-linux-x86_64.AppImage";
|
||||
hash = "sha256-2eLe/xvdWcOcUSE0D+pMOcOYCfFVEyKO13LiaJiZgX0=";
|
||||
};
|
||||
appimageContents = appimageTools.extractType2 { inherit pname src version; };
|
||||
in
|
||||
appimageTools.wrapType2 {
|
||||
inherit pname src version;
|
||||
|
||||
extraInstallCommands = ''
|
||||
source "${makeWrapper}/nix-support/setup-hook"
|
||||
wrapProgram $out/bin/muffon \
|
||||
--add-flags "\''${NIXOS_OZONE_WL:+\''${WAYLAND_DISPLAY:+--ozone-platform-hint=auto --enable-features=WaylandWindowDecorations}}"
|
||||
install -m 444 -D ${appimageContents}/muffon.desktop -t $out/share/applications
|
||||
substituteInPlace $out/share/applications/muffon.desktop \
|
||||
--replace-fail 'Exec=AppRun' 'Exec=muffon'
|
||||
install -m 444 -D ${appimageContents}/muffon.png \
|
||||
$out/share/icons/hicolor/512x512/apps/muffon.png
|
||||
'';
|
||||
|
||||
meta = {
|
||||
description = "Advanced multi-source music streaming client";
|
||||
homepage = "https://muffon.netlify.app/";
|
||||
changelog = "https://github.com/staniel359/muffon/releases/tag/v${version}";
|
||||
license = lib.licenses.agpl3Only;
|
||||
maintainers = with lib.maintainers; [ octodi ];
|
||||
mainProgram = "muffon";
|
||||
sourceProvenance = with lib.sourceTypes; [ binaryNativeCode ];
|
||||
platforms = [ "x86_64-linux" ];
|
||||
};
|
||||
}
|
@ -114,6 +114,6 @@ rustPlatform.buildRustPackage.override { stdenv = clangStdenv; } rec {
|
||||
changelog = "https://github.com/neovide/neovide/releases/tag/${version}";
|
||||
license = with licenses; [ mit ];
|
||||
maintainers = with maintainers; [ ck3d ];
|
||||
platforms = platforms.all;
|
||||
platforms = platforms.linux ++ [ "aarch64-darwin" ];
|
||||
};
|
||||
}
|
||||
|
@ -7,13 +7,13 @@
|
||||
}:
|
||||
buildGoModule rec {
|
||||
pname = "nezha-agent";
|
||||
version = "0.16.10";
|
||||
version = "0.16.11";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "nezhahq";
|
||||
repo = "agent";
|
||||
rev = "v${version}";
|
||||
hash = "sha256-aNonfJxEjK19+Um8tVCi/My88YGajr59+ubIPor5gOI=";
|
||||
hash = "sha256-mcTS+PjFa5niWhe8pmWmuYpx+Y9ZWX0hpcLEodN/SIs=";
|
||||
};
|
||||
|
||||
vendorHash = "sha256-L6QdodI8Ur1H6Zc24KSTYAHfzvW2aq9SYwCVgjvSDII=";
|
||||
|
@ -5,13 +5,13 @@
|
||||
}:
|
||||
buildGoModule rec {
|
||||
pname = "nom";
|
||||
version = "2.2.3";
|
||||
version = "2.4.0";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "guyfedwards";
|
||||
repo = "nom";
|
||||
rev = "v${version}";
|
||||
hash = "sha256-W0HDoQURZxTvMyFfRGOu8gcZJihtvXvrEaObmi/CAk0=";
|
||||
hash = "sha256-1KHU+y8aoEdXzP5jUZlTokbv383aKgMt+Wby2bodCTI=";
|
||||
};
|
||||
|
||||
vendorHash = "sha256-wWdsLU656wBAUmnVw21wo+a/OLmyhZ2Bq0j8S190XQs=";
|
||||
|
@ -10,13 +10,13 @@
|
||||
|
||||
stdenv.mkDerivation (finalAttrs: {
|
||||
pname = "normaliz";
|
||||
version = "3.10.2";
|
||||
version = "3.10.3";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "normaliz";
|
||||
repo = "normaliz";
|
||||
rev = "v${finalAttrs.version}";
|
||||
hash = "sha256-Q4OktVvFobP25fYggIqBGtSJu2HsYz9Tm+QbEAz0fMg=";
|
||||
hash = "sha256-9jN3EbYfWmir+pa4XuJpeT7CnQdhVU9pP8G11npIG00=";
|
||||
};
|
||||
|
||||
buildInputs = [
|
||||
|
@ -51,9 +51,6 @@ stdenv.mkDerivation rec {
|
||||
"--readline=${readline-all}"
|
||||
];
|
||||
|
||||
# Stripping breaks the bundles by removing the zip file from the end.
|
||||
dontStrip = true;
|
||||
|
||||
meta = {
|
||||
description = "A Unix shell with JSON-compatible structured data. It's our upgrade path from bash to a better language and runtime.";
|
||||
homepage = "https://www.oilshell.org/";
|
||||
|
142
pkgs/by-name/op/open-webui/package.nix
Normal file
142
pkgs/by-name/op/open-webui/package.nix
Normal file
@ -0,0 +1,142 @@
|
||||
{
|
||||
lib,
|
||||
buildNpmPackage,
|
||||
fetchFromGitHub,
|
||||
python3,
|
||||
nixosTests,
|
||||
}:
|
||||
let
|
||||
pname = "open-webui";
|
||||
version = "0.2.4";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "open-webui";
|
||||
repo = "open-webui";
|
||||
rev = "v${version}";
|
||||
hash = "sha256-jWO0mo26C+QTIX5j3ucDk/no+vQnAh7Q6JwB3lLM83k=";
|
||||
};
|
||||
|
||||
frontend = buildNpmPackage {
|
||||
inherit pname version src;
|
||||
|
||||
npmDepsHash = "sha256-QIgYHZusuq2QD8p8MGsNVhCbz6fR+qP9UuU/kbBkadc=";
|
||||
|
||||
# Disabling `pyodide:fetch` as it downloads packages during `buildPhase`
|
||||
# Until this is solved, running python packages from the browser will not work.
|
||||
postPatch = ''
|
||||
substituteInPlace package.json \
|
||||
--replace-fail "npm run pyodide:fetch && vite build" "vite build" \
|
||||
'';
|
||||
|
||||
env.CYPRESS_INSTALL_BINARY = "0"; # disallow cypress from downloading binaries in sandbox
|
||||
|
||||
installPhase = ''
|
||||
runHook preInstall
|
||||
|
||||
mkdir -p $out/share
|
||||
cp -a build $out/share/open-webui
|
||||
|
||||
runHook postInstall
|
||||
'';
|
||||
};
|
||||
in
|
||||
python3.pkgs.buildPythonApplication rec {
|
||||
inherit pname version src;
|
||||
pyproject = true;
|
||||
|
||||
# The custom hook tries to run `npm install` in `buildPhase`.
|
||||
# We don't have to worry, as nodejs depedencies are managed by `frontend` drv.
|
||||
postPatch = ''
|
||||
substituteInPlace pyproject.toml \
|
||||
--replace-fail '[tool.hatch.build.hooks.custom]' "" \
|
||||
--replace-fail ', build = "open_webui/frontend"' ""
|
||||
'';
|
||||
|
||||
pythonRelaxDeps = true;
|
||||
|
||||
pythonRemoveDeps = [
|
||||
# using `psycopg2` instead
|
||||
"psycopg2-binary"
|
||||
# using `opencv4`
|
||||
"opencv-python-headless"
|
||||
# package request: https://github.com/NixOS/nixpkgs/issues/317065
|
||||
"rapidocr-onnxruntime"
|
||||
# package request: https://github.com/NixOS/nixpkgs/issues/317066
|
||||
"langfuse"
|
||||
# package request: https://github.com/NixOS/nixpkgs/issues/317068
|
||||
"langchain-chroma"
|
||||
];
|
||||
|
||||
dependencies = with python3.pkgs; [
|
||||
beautifulsoup4
|
||||
fastapi
|
||||
uvicorn
|
||||
python-multipart
|
||||
flask
|
||||
flask-cors
|
||||
python-socketio
|
||||
python-jose
|
||||
passlib
|
||||
requests
|
||||
aiohttp
|
||||
peewee
|
||||
peewee-migrate
|
||||
psycopg2
|
||||
pymysql
|
||||
bcrypt
|
||||
litellm
|
||||
boto3
|
||||
argon2-cffi
|
||||
apscheduler
|
||||
google-generativeai
|
||||
langchain
|
||||
langchain-community
|
||||
fake-useragent
|
||||
chromadb
|
||||
sentence-transformers
|
||||
pypdf
|
||||
docx2txt
|
||||
python-pptx
|
||||
unstructured
|
||||
markdown
|
||||
pypandoc
|
||||
pandas
|
||||
openpyxl
|
||||
pyxlsb
|
||||
xlrd
|
||||
validators
|
||||
opencv4
|
||||
fpdf2
|
||||
rank-bm25
|
||||
faster-whisper
|
||||
pyjwt
|
||||
black
|
||||
youtube-transcript-api
|
||||
pytube
|
||||
];
|
||||
|
||||
build-system = with python3.pkgs; [
|
||||
hatchling
|
||||
pythonRelaxDepsHook
|
||||
];
|
||||
|
||||
pythonImportsCheck = [ "open_webui" ];
|
||||
|
||||
postInstall = ''
|
||||
wrapProgram $out/bin/open-webui \
|
||||
--set FRONTEND_BUILD_DIR "${frontend}/share/open-webui"
|
||||
'';
|
||||
|
||||
passthru.tests = {
|
||||
inherit (nixosTests) open-webui;
|
||||
};
|
||||
|
||||
meta = {
|
||||
description = "Full-stack of open-webui. open-webui is a user-friendly WebUI for LLMs (Formerly Ollama WebUI)";
|
||||
homepage = "https://github.com/open-webui/open-webui";
|
||||
changelog = "https://github.com/open-webui/open-webui/blob/${src.rev}/CHANGELOG.md";
|
||||
license = lib.licenses.mit;
|
||||
maintainers = with lib.maintainers; [ shivaraj-bh ];
|
||||
mainProgram = "open-webui";
|
||||
};
|
||||
}
|
@ -1,7 +1,6 @@
|
||||
{ stdenv
|
||||
, lib
|
||||
, fetchFromGitHub
|
||||
, fetchpatch
|
||||
, cmake
|
||||
, pkg-config
|
||||
, check
|
||||
@ -19,8 +18,6 @@
|
||||
, openssl
|
||||
, mbedtls
|
||||
|
||||
, withPubSub ? false
|
||||
|
||||
# for passthru.tests only
|
||||
, open62541
|
||||
}:
|
||||
@ -33,44 +30,35 @@ in
|
||||
|
||||
stdenv.mkDerivation (finalAttrs: {
|
||||
pname = "open62541";
|
||||
version = "1.3.10";
|
||||
version = "1.4.1";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "open62541";
|
||||
repo = "open62541";
|
||||
rev = "v${finalAttrs.version}";
|
||||
hash = "sha256-FekO0cKgpYulMXz4r0/TUPz2tawC4k3Sq07Og4xqh4I=";
|
||||
hash = "sha256-An8Yg6VSelNV/7poLEOjeiIb0+eMoQWG7sYqhytEKMA=";
|
||||
fetchSubmodules = true;
|
||||
};
|
||||
|
||||
patches = [
|
||||
(fetchpatch {
|
||||
name = "Ensure-absolute-paths-in-pkg-config-file.patch";
|
||||
url = "https://github.com/open62541/open62541/commit/023d4b6b8bdec987f8f3ffee6c09801bbee4fa2d.patch";
|
||||
sha256 = "sha256-mq4h32js2RjI0Ljown/01SXA3gc+7+zX8meIcvDPvoA=";
|
||||
})
|
||||
];
|
||||
|
||||
cmakeFlags = [
|
||||
"-DOPEN62541_VERSION=v${finalAttrs.version}"
|
||||
(lib.cmakeFeature "OPEN62541_VERSION" finalAttrs.src.rev)
|
||||
(lib.cmakeFeature "UA_NAMESPACE_ZERO" "FULL")
|
||||
(lib.cmakeBool "BUILD_SHARED_LIBS" (!stdenv.hostPlatform.isStatic))
|
||||
|
||||
"-DBUILD_SHARED_LIBS=${if stdenv.hostPlatform.isStatic then "OFF" else "ON"}"
|
||||
"-DUA_NAMESPACE_ZERO=FULL"
|
||||
# Note comment near doCheck
|
||||
(lib.cmakeBool "UA_BUILD_UNIT_TESTS" finalAttrs.finalPackage.doCheck)
|
||||
(lib.cmakeBool "UA_ENABLE_ALLOW_REUSEADDR" finalAttrs.finalPackage.doCheck)
|
||||
|
||||
"-DUA_BUILD_UNIT_TESTS=${if finalAttrs.finalPackage.doCheck then "ON" else "OFF"}"
|
||||
]
|
||||
++ lib.optional withExamples "-DUA_BUILD_EXAMPLES=ON"
|
||||
++ lib.optional (withEncryption != false)
|
||||
"-DUA_ENABLE_ENCRYPTION=${lib.toUpper withEncryption}"
|
||||
++ lib.optional withPubSub "-DUA_ENABLE_PUBSUB=ON"
|
||||
;
|
||||
(lib.cmakeBool "UA_BUILD_EXAMPLES" withExamples)
|
||||
] ++ lib.optionals (withEncryption != false) [
|
||||
(lib.cmakeFeature "UA_ENABLE_ENCRYPTION" (lib.toUpper withEncryption))
|
||||
];
|
||||
|
||||
nativeBuildInputs = [
|
||||
cmake
|
||||
pkg-config
|
||||
python3Packages.python
|
||||
]
|
||||
++ lib.optionals withDoc (with python3Packages; [
|
||||
] ++ lib.optionals withDoc (with python3Packages; [
|
||||
sphinx
|
||||
sphinx_rtd_theme
|
||||
graphviz-nox
|
||||
@ -80,7 +68,11 @@ stdenv.mkDerivation (finalAttrs: {
|
||||
|
||||
buildFlags = [ "all" ] ++ lib.optional withDoc "doc";
|
||||
|
||||
doCheck = true;
|
||||
# Tests must normally be disabled because they require
|
||||
# -DUA_ENABLE_ALLOW_REUSEADDR=ON. The option must not be used in production,
|
||||
# since it is a security risk.
|
||||
# See https://github.com/open62541/open62541/issues/6407
|
||||
doCheck = false;
|
||||
|
||||
checkInputs = [
|
||||
check
|
||||
@ -92,14 +84,30 @@ stdenv.mkDerivation (finalAttrs: {
|
||||
enableParallelChecking = false;
|
||||
|
||||
preCheck = let
|
||||
disabledTests = lib.optionals withPubSub [
|
||||
# "Cannot set socket option IP_ADD_MEMBERSHIP"
|
||||
"pubsub_publish"
|
||||
disabledTests = [
|
||||
# error "Could not create a raw Ethernet socket (are you root?)"
|
||||
"check_eventloop_eth"
|
||||
|
||||
# Cannot set socket option IP_ADD_MEMBERSHIP
|
||||
"check_pubsub_publish"
|
||||
"check_pubsub_publish_json"
|
||||
"check_pubsub_connection_udp"
|
||||
"check_pubsub_get_state"
|
||||
"check_pubsub_publish_rt_levels"
|
||||
"check_pubsub_publisherid"
|
||||
"check_pubsub_subscribe"
|
||||
"check_pubsub_publishspeed"
|
||||
"check_pubsub_subscribe_config_freeze"
|
||||
"check_pubsub_subscribe_rt_levels"
|
||||
"check_pubsub_multiple_subscribe_rt_levels"
|
||||
"check_pubsub_config_freeze"
|
||||
"check_pubsub_publish_rt_levels"
|
||||
|
||||
# Could not find the interface
|
||||
"check_pubsub_connection_ethernet"
|
||||
"check_pubsub_connection_ethernet_etf"
|
||||
"check_pubsub_publish_ethernet_etf"
|
||||
"check_pubsub_informationmodel"
|
||||
"check_pubsub_informationmodel_methods"
|
||||
];
|
||||
regex = "^(${builtins.concatStringsSep "|" disabledTests})\$";
|
||||
in lib.optionalString (disabledTests != []) ''
|
||||
@ -131,14 +139,16 @@ stdenv.mkDerivation (finalAttrs: {
|
||||
passthru.updateScript = nix-update-script { };
|
||||
|
||||
passthru.tests = let
|
||||
open62541Full = encBackend: open62541.override {
|
||||
open62541Full = encBackend: (open62541.overrideAttrs (_: {
|
||||
doCheck = true;
|
||||
})).override {
|
||||
withDoc = true;
|
||||
# if (withExamples && withPubSub), one of the example currently fails to build
|
||||
# if withExamples, one of the example currently fails to build
|
||||
#withExamples = true;
|
||||
withEncryption = encBackend;
|
||||
withPubSub = true;
|
||||
};
|
||||
in {
|
||||
open62541WithTests = finalAttrs.finalPackage.overrideAttrs (_: { doCheck = true; });
|
||||
open62541Full = open62541Full false;
|
||||
open62541Full-openssl = open62541Full "openssl";
|
||||
open62541Full-mbedtls = open62541Full "mbedtls";
|
@ -31,13 +31,13 @@
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "openvas-scanner";
|
||||
version = "23.3.1";
|
||||
version = "23.3.2";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "greenbone";
|
||||
repo = "openvas-scanner";
|
||||
rev = "refs/tags/v${version}";
|
||||
hash = "sha256-0vcGKC979bJLhq/9e+DYaRrsUktjMyMuZNqZYK6BCWQ=";
|
||||
hash = "sha256-KlWO5Cik380pHWC4Lo7eE47z0tNcnbmHIO0J07UrYlg=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue
Block a user