Merge branch 'master' into staging-next

This commit is contained in:
Weijia Wang 2024-04-30 13:24:52 +02:00
commit 23cbc3c2b3
237 changed files with 2294 additions and 1249 deletions

5
.github/labeler.yml vendored
View File

@ -369,3 +369,8 @@
- changed-files:
- any-glob-to-any-file:
- nixos/modules/**/*
"8.has: maintainer-list (update)":
- any:
- changed-files:
- any-glob-to-any-file:
- maintainers/maintainer-list.nix

View File

@ -20,7 +20,7 @@ jobs:
if: github.repository_owner == 'NixOS' && github.event.pull_request.merged == true && (github.event_name != 'labeled' || startsWith('backport', github.event.label.name))
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@1d96c772d19495a3b5c517cd2bc0cb401ea0529f # v4.1.3
- uses: actions/checkout@0ad4b8fadaa221de15dcec353f45205ec38ea70b # v4.1.4
with:
ref: ${{ github.event.pull_request.head.sha }}
- name: Create backport PRs

View File

@ -18,7 +18,7 @@ jobs:
runs-on: ubuntu-latest
# we don't limit this action to only NixOS repo since the checks are cheap and useful developer feedback
steps:
- uses: actions/checkout@1d96c772d19495a3b5c517cd2bc0cb401ea0529f # v4.1.3
- uses: actions/checkout@0ad4b8fadaa221de15dcec353f45205ec38ea70b # v4.1.4
- uses: cachix/install-nix-action@8887e596b4ee1134dae06b98d573bd674693f47c # v26
- uses: cachix/cachix-action@18cf96c7c98e048e10a83abd92116114cd8504be # v14
with:

View File

@ -91,7 +91,7 @@ jobs:
exit 1
fi
echo "mergedSha=$mergedSha" >> "$GITHUB_ENV"
- uses: actions/checkout@1d96c772d19495a3b5c517cd2bc0cb401ea0529f # v4.1.3
- uses: actions/checkout@0ad4b8fadaa221de15dcec353f45205ec38ea70b # v4.1.4
with:
# pull_request_target checks out the base branch by default
ref: ${{ env.mergedSha }}

View File

@ -12,7 +12,7 @@ jobs:
runs-on: ubuntu-latest
if: github.repository_owner == 'NixOS'
steps:
- uses: actions/checkout@1d96c772d19495a3b5c517cd2bc0cb401ea0529f # v4.1.3
- uses: actions/checkout@0ad4b8fadaa221de15dcec353f45205ec38ea70b # v4.1.4
with:
fetch-depth: 0
filter: blob:none

View File

@ -12,7 +12,7 @@ jobs:
runs-on: ubuntu-latest
if: github.repository_owner == 'NixOS'
steps:
- uses: actions/checkout@1d96c772d19495a3b5c517cd2bc0cb401ea0529f # v4.1.3
- uses: actions/checkout@0ad4b8fadaa221de15dcec353f45205ec38ea70b # v4.1.4
with:
# pull_request_target checks out the base branch by default
ref: refs/pull/${{ github.event.pull_request.number }}/merge

View File

@ -15,7 +15,7 @@ jobs:
runs-on: ubuntu-latest
if: github.repository_owner == 'NixOS'
steps:
- uses: actions/checkout@1d96c772d19495a3b5c517cd2bc0cb401ea0529f # v4.1.3
- uses: actions/checkout@0ad4b8fadaa221de15dcec353f45205ec38ea70b # v4.1.4
with:
# pull_request_target checks out the base branch by default
ref: refs/pull/${{ github.event.pull_request.number }}/merge

View File

@ -24,7 +24,7 @@ jobs:
- name: print list of changed files
run: |
cat "$HOME/changed_files"
- uses: actions/checkout@1d96c772d19495a3b5c517cd2bc0cb401ea0529f # v4.1.3
- uses: actions/checkout@0ad4b8fadaa221de15dcec353f45205ec38ea70b # v4.1.4
with:
# pull_request_target checks out the base branch by default
ref: refs/pull/${{ github.event.pull_request.number }}/merge

View File

@ -14,7 +14,7 @@ jobs:
runs-on: ubuntu-latest
if: github.repository_owner == 'NixOS'
steps:
- uses: actions/checkout@1d96c772d19495a3b5c517cd2bc0cb401ea0529f # v4.1.3
- uses: actions/checkout@0ad4b8fadaa221de15dcec353f45205ec38ea70b # v4.1.4
with:
# pull_request_target checks out the base branch by default
ref: refs/pull/${{ github.event.pull_request.number }}/merge

View File

@ -16,7 +16,7 @@ jobs:
runs-on: ubuntu-latest
if: github.repository_owner == 'NixOS'
steps:
- uses: actions/checkout@1d96c772d19495a3b5c517cd2bc0cb401ea0529f # v4.1.3
- uses: actions/checkout@0ad4b8fadaa221de15dcec353f45205ec38ea70b # v4.1.4
with:
# pull_request_target checks out the base branch by default
ref: refs/pull/${{ github.event.pull_request.number }}/merge

View File

@ -24,7 +24,7 @@ jobs:
if [[ -s "$HOME/changed_files" ]]; then
echo "CHANGED_FILES=$HOME/changed_files" > "$GITHUB_ENV"
fi
- uses: actions/checkout@1d96c772d19495a3b5c517cd2bc0cb401ea0529f # v4.1.3
- uses: actions/checkout@0ad4b8fadaa221de15dcec353f45205ec38ea70b # v4.1.4
with:
# pull_request_target checks out the base branch by default
ref: refs/pull/${{ github.event.pull_request.number }}/merge

View File

@ -41,7 +41,7 @@ jobs:
into: staging-23.11
name: ${{ matrix.pairs.from }} → ${{ matrix.pairs.into }}
steps:
- uses: actions/checkout@1d96c772d19495a3b5c517cd2bc0cb401ea0529f # v4.1.3
- uses: actions/checkout@0ad4b8fadaa221de15dcec353f45205ec38ea70b # v4.1.4
- name: ${{ matrix.pairs.from }} → ${{ matrix.pairs.into }}
uses: devmasx/merge-branch@854d3ac71ed1e9deb668e0074781b81fdd6e771f # 1.4.0

View File

@ -39,7 +39,7 @@ jobs:
into: staging
name: ${{ matrix.pairs.from }} → ${{ matrix.pairs.into }}
steps:
- uses: actions/checkout@1d96c772d19495a3b5c517cd2bc0cb401ea0529f # v4.1.3
- uses: actions/checkout@0ad4b8fadaa221de15dcec353f45205ec38ea70b # v4.1.4
- name: ${{ matrix.pairs.from }} → ${{ matrix.pairs.into }}
uses: devmasx/merge-branch@854d3ac71ed1e9deb668e0074781b81fdd6e771f # 1.4.0

View File

@ -16,7 +16,7 @@ jobs:
if: github.repository_owner == 'NixOS' && github.ref == 'refs/heads/master' # ensure workflow_dispatch only runs on master
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@1d96c772d19495a3b5c517cd2bc0cb401ea0529f # v4.1.3
- uses: actions/checkout@0ad4b8fadaa221de15dcec353f45205ec38ea70b # v4.1.4
- uses: cachix/install-nix-action@8887e596b4ee1134dae06b98d573bd674693f47c # v26
with:
nix_path: nixpkgs=channel:nixpkgs-unstable

View File

@ -9094,6 +9094,12 @@
github = "joshua-cooper";
githubId = 35612334;
};
jcaesar = {
name = "Julius Michaelis";
matrix = "@julius:mtx.liftm.de";
github = "jcaesar";
githubId = 1753388;
};
jceb = {
name = "Jan Christoph Ebersbach";
email = "jceb@e-jc.de";
@ -10970,6 +10976,12 @@
githubId = 2422454;
name = "Kai Wohlfahrt";
};
kylecarbs = {
name = "Kyle Carberry";
email = "kyle@carberry.com";
github = "kylecarbs";
githubId = 7122116;
};
kylehendricks = {
name = "Kyle Hendricks";
email = "kyle-github@mail.hendricks.nu";
@ -11590,12 +11602,6 @@
githubId = 918448;
name = "Anthony Lodi";
};
loewenheim = {
email = "loewenheim@mailbox.org";
github = "loewenheim";
githubId = 7622248;
name = "Sebastian Zivota";
};
logo = {
email = "logo4poop@protonmail.com";
matrix = "@logo4poop:matrix.org";

View File

@ -44,10 +44,6 @@ Use `services.pipewire.extraConfig` or `services.pipewire.configPackages` for Pi
- A new option `systemd.sysusers.enable` was added. If enabled, users and
groups are created with systemd-sysusers instead of with a custom perl script.
- The default dbus implementation has transitioned to dbus-broker from the classic dbus daemon for better performance and reliability. Users can revert to the classic dbus daemon by setting `services.dbus.implementation = "dbus";`. For detailed deviations, refer to [dbus-broker's deviations page](https://github.com/bus1/dbus-broker/wiki/Deviations).
- GNOME has been updated to v46. Refer to the [release notes](https://release.gnome.org/46/) for more details. Notably this release brings experimental VRR support, default GTK renderer changes and WebDAV support in Online Accounts. This release we have also stopped including the legacy and unsupported Adwaita-Dark theme by default.
- `virtualisation.docker.enableNvidia` and `virtualisation.podman.enableNvidia` options are deprecated. `hardware.nvidia-container-toolkit.enable` should be used instead. This option will expose GPUs on containers with the `--device` CLI option. This is supported by Docker 25, Podman 3.2.0 and Singularity 4. Any container runtime that supports the CDI specification will take advantage of this feature.
- `system.etc.overlay.enable` option was added. If enabled, `/etc` is

View File

@ -35,6 +35,8 @@ rec {
aarch64-linux = "${qemuPkg}/bin/qemu-system-aarch64 -machine virt,gic-version=max,accel=kvm:tcg -cpu max";
powerpc64le-linux = "${qemuPkg}/bin/qemu-system-ppc64 -machine powernv";
powerpc64-linux = "${qemuPkg}/bin/qemu-system-ppc64 -machine powernv";
riscv32-linux = "${qemuPkg}/bin/qemu-system-riscv32 -machine virt";
riscv64-linux = "${qemuPkg}/bin/qemu-system-riscv64 -machine virt";
x86_64-darwin = "${qemuPkg}/bin/qemu-kvm -cpu max";
};
otherHostGuestMatrix = {

View File

@ -119,6 +119,8 @@ in
wantedBy = [
"multi-user.target"
];
# https://github.com/rhasspy/wyoming-faster-whisper/issues/27
environment."HF_HUB_CACHE" = "/tmp";
serviceConfig = {
DynamicUser = true;
User = "wyoming-faster-whisper";

View File

@ -39,7 +39,7 @@ in
implementation = mkOption {
type = types.enum [ "dbus" "broker" ];
default = "broker";
default = "dbus";
description = ''
The implementation to use for the message bus defined by the D-Bus specification.
Can be either the classic dbus daemon or dbus-broker, which aims to provide high

View File

@ -223,4 +223,5 @@ in {
};
};
};
meta.maintainers = pkgs.coder.meta.maintainers;
}

View File

@ -249,7 +249,7 @@ let
${concatStringsSep " " config.virtualisation.qemu.networkingOptions} \
${concatStringsSep " \\\n "
(mapAttrsToList
(tag: share: "-virtfs local,path=${share.source},security_model=none,mount_tag=${tag}")
(tag: share: "-virtfs local,path=${share.source},security_model=${share.securityModel},mount_tag=${tag}")
config.virtualisation.sharedDirectories)} \
${drivesCmdLine config.virtualisation.qemu.drives} \
${concatStringsSep " \\\n " config.virtualisation.qemu.options} \
@ -462,6 +462,18 @@ in
type = types.path;
description = "The mount point of the directory inside the virtual machine";
};
options.securityModel = mkOption {
type = types.enum [ "passthrough" "mapped-xattr" "mapped-file" "none" ];
default = "mapped-xattr";
description = ''
The security model to use for this share:
- `passthrough`: files are stored using the same credentials as they are created on the guest (this requires QEMU to run as root)
- `mapped-xattr`: some of the file attributes like uid, gid, mode bits and link target are stored as file attributes
- `mapped-file`: the attributes are stored in the hidden .virtfs_metadata directory. Directories exported by this security model cannot interact with other unix tools
- `none`: same as "passthrough" except the sever won't report failures if it fails to set file attributes like ownership
'';
};
});
default = { };
example = {
@ -1091,18 +1103,22 @@ in
nix-store = mkIf cfg.mountHostNixStore {
source = builtins.storeDir;
target = "/nix/store";
securityModel = "none";
};
xchg = {
source = ''"$TMPDIR"/xchg'';
securityModel = "none";
target = "/tmp/xchg";
};
shared = {
source = ''"''${SHARED_DIR:-$TMPDIR/xchg}"'';
target = "/tmp/shared";
securityModel = "none";
};
certs = mkIf cfg.useHostCerts {
source = ''"$TMPDIR"/certs'';
target = "/etc/ssl/certs";
securityModel = "none";
};
};

View File

@ -1,8 +1,6 @@
import ./make-test-python.nix ({ pkgs, ... }: {
name = "coder";
meta = with pkgs.lib.maintainers; {
maintainers = [ shyim ghuntley ];
};
meta.maintainers = pkgs.coder.meta.maintainers;
nodes.machine =
{ pkgs, ... }:

View File

@ -610,6 +610,11 @@ in {
# Returns a comma separated representation of the given list in sorted
# order, that matches the output format of switch-to-configuration.pl
sortedUnits = xs: lib.concatStringsSep ", " (builtins.sort builtins.lessThan xs);
dbusService = {
"dbus" = "dbus.service";
"broker" = "dbus-broker.service";
}.${nodes.machine.services.dbus.implementation};
in /* python */ ''
def switch_to_specialisation(system, name, action="test", fail=False):
if name == "":
@ -691,9 +696,9 @@ in {
with subtest("continuing from an aborted switch"):
# An aborted switch will write into a file what it tried to start
# and a second switch should continue from this
machine.succeed("echo dbus-broker.service > /run/nixos/start-list")
machine.succeed("echo ${dbusService} > /run/nixos/start-list")
out = switch_to_specialisation("${machine}", "modifiedSystemConf")
assert_contains(out, "starting the following units: dbus-broker.service\n")
assert_contains(out, "starting the following units: ${dbusService}\n")
with subtest("fstab mounts"):
switch_to_specialisation("${machine}", "")
@ -732,7 +737,7 @@ in {
out = switch_to_specialisation("${machine}", "")
assert_contains(out, "stopping the following units: test.mount\n")
assert_lacks(out, "NOT restarting the following changed units:")
assert_contains(out, "reloading the following units: dbus-broker.service\n")
assert_contains(out, "reloading the following units: ${dbusService}\n")
assert_lacks(out, "\nrestarting the following units:")
assert_lacks(out, "\nstarting the following units:")
assert_lacks(out, "the following new units were started:")
@ -740,7 +745,7 @@ in {
out = switch_to_specialisation("${machine}", "storeMountModified")
assert_lacks(out, "stopping the following units:")
assert_contains(out, "NOT restarting the following changed units: -.mount")
assert_contains(out, "reloading the following units: dbus-broker.service\n")
assert_contains(out, "reloading the following units: ${dbusService}\n")
assert_lacks(out, "\nrestarting the following units:")
assert_lacks(out, "\nstarting the following units:")
assert_lacks(out, "the following new units were started:")
@ -751,7 +756,7 @@ in {
out = switch_to_specialisation("${machine}", "swap")
assert_lacks(out, "stopping the following units:")
assert_lacks(out, "NOT restarting the following changed units:")
assert_contains(out, "reloading the following units: dbus-broker.service\n")
assert_contains(out, "reloading the following units: ${dbusService}\n")
assert_lacks(out, "\nrestarting the following units:")
assert_lacks(out, "\nstarting the following units:")
assert_contains(out, "the following new units were started: swapfile.swap")
@ -760,7 +765,7 @@ in {
assert_contains(out, "stopping swap device: /swapfile")
assert_lacks(out, "stopping the following units:")
assert_lacks(out, "NOT restarting the following changed units:")
assert_contains(out, "reloading the following units: dbus-broker.service\n")
assert_contains(out, "reloading the following units: ${dbusService}\n")
assert_lacks(out, "\nrestarting the following units:")
assert_lacks(out, "\nstarting the following units:")
assert_lacks(out, "the following new units were started:")
@ -781,7 +786,7 @@ in {
assert_lacks(out, "installing dummy bootloader") # test does not install a bootloader
assert_lacks(out, "stopping the following units:")
assert_lacks(out, "NOT restarting the following changed units:")
assert_contains(out, "reloading the following units: dbus-broker.service\n") # huh
assert_contains(out, "reloading the following units: ${dbusService}\n") # huh
assert_lacks(out, "\nrestarting the following units:")
assert_lacks(out, "\nstarting the following units:")
assert_contains(out, "the following new units were started: test.service\n")
@ -858,7 +863,7 @@ in {
assert_lacks(out, "installing dummy bootloader") # test does not install a bootloader
assert_lacks(out, "stopping the following units:")
assert_lacks(out, "NOT restarting the following changed units:")
assert_contains(out, "reloading the following units: dbus-broker.service\n") # huh
assert_contains(out, "reloading the following units: ${dbusService}\n") # huh
assert_lacks(out, "\nrestarting the following units:")
assert_lacks(out, "\nstarting the following units:")
assert_contains(out, "the following new units were started: test.service\n")

View File

@ -21,14 +21,14 @@
stdenv.mkDerivation rec {
pname = "grandorgue";
version = "3.14.1-1";
version = "3.14.2-1";
src = fetchFromGitHub {
owner = "GrandOrgue";
repo = pname;
rev = version;
fetchSubmodules = true;
hash = "sha256-EyMTWsaqJX7H7aCbu5ww9tQBMwJ7BzobWMWg5Y/ZgJE=";
hash = "sha256-FHM8fFUga9poGhojKBTF4gsJ6L4XEksueVxfMbngvks=";
};
postPatch = ''

View File

@ -21,20 +21,20 @@
stdenv.mkDerivation rec {
pname = "pika-backup";
version = "0.7.1";
version = "0.7.2";
src = fetchFromGitLab {
domain = "gitlab.gnome.org";
owner = "World";
repo = "pika-backup";
rev = "v${version}";
hash = "sha256-yxr98CJuu15TGiIXCBhU2bOgvct6jQ5xAraD9Z0sL2Q=";
hash = "sha256-Z9vRuz5PwOhJ3DQD9zvCilgTMww7bRL4aR6fRoHIayI=";
};
cargoDeps = rustPlatform.fetchCargoTarball {
inherit src;
name = "${pname}-${version}";
hash = "sha256-ce8SdBvRdFp1BU9OPcByoJjCiSrAkQqtmfCeJ3B+Piw=";
hash = "sha256-hcfkwxwLOUBMj6rvhI5F4OO9UaSP7CAE0JNOGlh2lVY=";
};
patches = [

View File

@ -14,7 +14,6 @@
, miniupnpc
, zeromq
, zlib
, db53
, sqlite
, qrencode
, qtbase ? null
@ -33,13 +32,13 @@ let
in
stdenv.mkDerivation rec {
pname = if withGui then "groestlcoin" else "groestlcoind";
version = "26.0";
version = "27.0";
src = fetchFromGitHub {
owner = "Groestlcoin";
repo = "groestlcoin";
rev = "v${version}";
sha256 = "00qvaf53jszsk1rr029zmq60v8w0r92192ab65k2krkmh7ybla9l";
sha256 = "0f6vi2k5xvjrhiazfjcd4aj246dfcg51xsnqb9wdjl41cg0ckwmf";
};
nativeBuildInputs = [ autoreconfHook pkg-config installShellFiles ]
@ -49,7 +48,7 @@ stdenv.mkDerivation rec {
++ lib.optionals withGui [ wrapQtAppsHook ];
buildInputs = [ boost libevent miniupnpc zeromq zlib ]
++ lib.optionals withWallet [ db53 sqlite ]
++ lib.optionals withWallet [ sqlite ]
++ lib.optionals withGui [ qrencode qtbase qttools ];
postInstall = ''

View File

@ -5,6 +5,7 @@
, bash
, makeWrapper
, electron
, asar
}:
let
@ -31,7 +32,7 @@ stdenv.mkDerivation rec {
inherit sha256;
};
nativeBuildInputs = [ makeWrapper ];
nativeBuildInputs = [ makeWrapper asar ];
dontConfigure = true;
dontBuild = true;
@ -48,6 +49,13 @@ stdenv.mkDerivation rec {
cp -a usr/share/* $out/share
cp -a "opt/Terra Station/"{locales,resources} $out/share/${pname}
# patch pre-built node modules
asar e $out/share/${pname}/resources/app.asar asar-unpacked
find asar-unpacked -name '*.node' -exec patchelf \
--add-rpath "${lib.makeLibraryPath [ stdenv.cc.cc.lib ]}" \
{} \;
asar p asar-unpacked $out/share/${pname}/resources/app.asar
substituteInPlace $out/share/applications/station-electron.desktop \
--replace "/opt/Terra Station/station-electron" ${pname}

View File

@ -113,6 +113,17 @@ rec {
xz
];
}).overrideAttrs (attrs: {
postInstall = (attrs.postInstall or "") + lib.optionalString (stdenv.isLinux) ''
(
cd $out/clion
for dir in plugins/clion-radler/DotFiles/linux-*; do
rm -rf $dir/dotnet
ln -s ${dotnet-sdk_7} $dir/dotnet
done
)
'';
postFixup = (attrs.postFixup or "") + lib.optionalString (stdenv.isLinux) ''
(
cd $out/clion

View File

@ -3,6 +3,7 @@
, withQuesta ? true
, supportedDevices ? [ "Arria II" "Cyclone V" "Cyclone IV" "Cyclone 10 LP" "MAX II/V" "MAX 10 FPGA" ]
, unwrapped ? callPackage ./quartus.nix { inherit unstick supportedDevices withQuesta; }
, extraProfile ? ""
}:
let
@ -114,7 +115,7 @@ in buildFHSEnv rec {
if [ "$NIXPKGS_IS_QUESTA_WRAPPER" != 1 ]; then
export LD_PRELOAD=''${LD_PRELOAD:+$LD_PRELOAD:}/usr/lib/libudev.so.0
fi
'';
'' + extraProfile;
# Run the wrappers directly, instead of going via bash.
runScript = "";

View File

@ -4,6 +4,9 @@
, dpkg
, makeWrapper
, electron
, libsecret
, asar
, glib
, desktop-file-utils
, callPackage
}:
@ -28,16 +31,28 @@ stdenv.mkDerivation rec {
dontBuild = true;
nativeBuildInputs = [ makeWrapper dpkg desktop-file-utils ];
nativeBuildInputs = [ makeWrapper dpkg desktop-file-utils asar ];
unpackPhase = "dpkg-deb --fsys-tarfile $src | tar -x --no-same-permissions --no-same-owner";
installPhase = ''
installPhase = let
libPath = lib.makeLibraryPath [
libsecret
glib
stdenv.cc.cc.lib
];
in
''
runHook preInstall
mkdir -p $out/bin $out/share/standardnotes
cp -R usr/share/{applications,icons} $out/share
cp -R opt/Standard\ Notes/resources/app.asar $out/share/standardnotes/
asar e $out/share/standardnotes/app.asar asar-unpacked
find asar-unpacked -name '*.node' -exec patchelf \
--add-rpath "${libPath}" \
{} \;
asar p asar-unpacked $out/share/standardnotes/app.asar
makeWrapper ${electron}/bin/electron $out/bin/standardnotes \
--add-flags $out/share/standardnotes/app.asar

View File

@ -937,6 +937,7 @@ https://github.com/xiyaowong/transparent.nvim/,HEAD,
https://github.com/Wansmer/treesj/,main,
https://github.com/tremor-rs/tremor-vim/,,
https://github.com/cappyzawa/trim.nvim/,,
https://github.com/simonclean/triptych.nvim/,HEAD,
https://github.com/folke/trouble.nvim/,,
https://github.com/Pocco81/true-zen.nvim/,,
https://github.com/tesaguri/trust.vim/,HEAD,

View File

@ -1822,7 +1822,7 @@ let
mktplcRef = {
publisher = "github";
name = "copilot-chat";
version = "0.14.2024032901"; # compatible with vscode 1.88.1
version = "0.14.2024032901"; # compatible with vscode 1.88.1
hash = "sha256-+6N7IGO5j0wP5Zg8CwapHeKGWiZzc43VM4jCtqJDJIQ=";
};
meta = {
@ -2853,6 +2853,22 @@ let
ms-python.python = callPackage ./ms-python.python { };
ms-python.debugpy = buildVscodeMarketplaceExtension {
mktplcRef = {
name = "debugpy";
publisher = "ms-python";
version = "2023.3.13121011";
hash = "sha256-owYUEyQl2FQytApfuI97N4y9p7/dL0lu6EBk/AzSMjw=";
};
meta = {
description = "Python debugger (debugpy) extension for VS Code";
downloadPage = "https://marketplace.visualstudio.com/items?itemName=ms-python.debugpy";
homepage = "https://github.com/Microsoft/vscode-python-debugger";
license = lib.licenses.mit;
maintainers = [ lib.maintainers.carlthome ];
};
};
ms-python.vscode-pylance = callPackage ./ms-python.vscode-pylance { };
ms-toolsai.datawrangler = buildVscodeMarketplaceExtension {

View File

@ -38,14 +38,14 @@ let
in
stdenv.mkDerivation rec {
pname = "mame";
version = "0.264";
version = "0.265";
srcVersion = builtins.replaceStrings [ "." ] [ "" ] version;
src = fetchFromGitHub {
owner = "mamedev";
repo = "mame";
rev = "mame${srcVersion}";
hash = "sha256-0UWMBKM//XWm8PFl60JvTLGaDBMVZFnVrbX4omy2F4I=";
hash = "sha256-jXGmABFeoT8g2UtVV159gUpdWcBvb9aX3uiFi2neVQI=";
};
outputs = [ "out" "tools" ];

View File

@ -22,16 +22,16 @@
rustPlatform.buildRustPackage rec {
pname = "oculante";
version = "0.8.18";
version = "0.8.19";
src = fetchFromGitHub {
owner = "woelper";
repo = "oculante";
rev = version;
hash = "sha256-TLY6ydYeRuT93jjUeE7EaFNNllwla4h563UhXAxSyko=";
hash = "sha256-oCgnz1WMg7YypIT8Tjk2m+f/43Aj88rDVCxQ92aL3RY=";
};
cargoHash = "sha256-RKJE09Z4XxRLWQ95Om3tru4rI2TD7XmxoHhPHFirREo=";
cargoHash = "sha256-vlU7egAht+kgA5Vx0HAwQOIax9qD4FLRo1ZUNx4RieY=";
nativeBuildInputs = [
cmake

View File

@ -2,16 +2,16 @@
rustPlatform.buildRustPackage rec {
pname = "cobalt";
version = "0.19.2";
version = "0.19.3";
src = fetchFromGitHub {
owner = "cobalt-org";
repo = "cobalt.rs";
rev = "v${version}";
sha256 = "sha256-W0XbNZDSeSK6oxOD1JeLNF+c6/6cy/WQrrmQbSKeqk4=";
sha256 = "sha256-aAhceExz5SENL+FhPHyx8HmaNOWjNsynv81Rj2cS5M8=";
};
cargoHash = "sha256-IM2SKovb8FYwA/c4R3N7M+oVuGfuc5sK+r6FP9YMk+I=";
cargoHash = "sha256-vw7fGsTSEVO8s1LzilKJN5lGzOfQcms1h7rnTOyE4Kw=";
buildInputs = lib.optionals stdenv.isDarwin [ CoreServices ];

View File

@ -5,6 +5,7 @@
, makeWrapper
# graphs will not sync without matching upstream's major electron version
, electron_27
, autoPatchelfHook
, git
, nix-update-script
}:
@ -30,7 +31,8 @@ in {
dontConfigure = true;
dontBuild = true;
nativeBuildInputs = [ makeWrapper ];
nativeBuildInputs = [ makeWrapper autoPatchelfHook ];
buildInputs = [ stdenv.cc.cc.lib ];
installPhase = ''
runHook preInstall

View File

@ -20,6 +20,8 @@ appimageTools.wrapType2 {
--replace 'Icon=net.davidotek.pupgui2' 'Icon=${pname}'
'';
extraPkgs = pkgs: with pkgs; [ zstd ];
meta = with lib; {
homepage = "https://davidotek.github.io/protonup-qt/";
description = "Install and manage Proton-GE and Luxtorpeda for Steam and Wine-GE for Lutris with this graphical user interface.";

View File

@ -2,13 +2,13 @@
buildGoModule rec {
pname = "argocd";
version = "2.10.7";
version = "2.10.8";
src = fetchFromGitHub {
owner = "argoproj";
repo = "argo-cd";
rev = "v${version}";
hash = "sha256-0C8lVQrFxrk9ym4aCz0PhUS2iByx9rj5Id0xFIq4Efc=";
hash = "sha256-VzEgZshzIHXI0J172W1zI1E8dU8iYJq0lO01LpI8Y+U=";
};
proxyVendor = true; # darwin/linux hash mismatch

View File

@ -2,13 +2,13 @@
buildGoModule rec {
pname = "clusterctl";
version = "1.7.0";
version = "1.7.1";
src = fetchFromGitHub {
owner = "kubernetes-sigs";
repo = "cluster-api";
rev = "v${version}";
hash = "sha256-pG0jr+LCKMwJGDndEZw6vho3zylsoGBVdXqruSS7SDQ=";
hash = "sha256-e+Ut6xoNUY9cJjjJ43P0siEa+G1igllcb8veirk1UX0=";
};
vendorHash = "sha256-ALRnccGjPGuAITtuz79Cao95NhvSczAzspSMXytlw+A=";
@ -29,6 +29,7 @@ buildGoModule rec {
installShellCompletion --cmd clusterctl \
--bash <($out/bin/clusterctl completion bash) \
--fish <($out/bin/clusterctl completion fish) \
--zsh <($out/bin/clusterctl completion zsh)
'';
@ -38,12 +39,12 @@ buildGoModule rec {
version = "v${version}";
};
meta = with lib; {
meta = {
changelog = "https://github.com/kubernetes-sigs/cluster-api/releases/tag/${src.rev}";
description = "Kubernetes cluster API tool";
mainProgram = "clusterctl";
homepage = "https://cluster-api.sigs.k8s.io/";
license = licenses.asl20;
maintainers = with maintainers; [ qjoly ];
license = lib.licenses.asl20;
maintainers = with lib.maintainers; [ qjoly ];
};
}

View File

@ -8,18 +8,18 @@
buildGoModule rec {
pname = "cmctl";
version = "1.14.4";
version = "1.14.5";
src = fetchFromGitHub {
owner = "cert-manager";
repo = "cert-manager";
rev = "v${version}";
hash = "sha256-iUXN+8ueCxGsFnwhC2WjrQQSXV7TGUR80xaKqjxcC6o=";
hash = "sha256-WitYq3/veaARZQHoseJnT5h0AGmXVlLzRe8KCOJuY0w=";
};
sourceRoot = "${src.name}/cmd/ctl";
vendorHash = "sha256-ViKsqqM6l/tQSGgj8Yt2L57x+eE1Pd3xCVPuWpIjWOQ=";
vendorHash = "sha256-27XvT33S/vgGo5MQDpHzTN+K1nNPR6OOFggzLhatygI=";
ldflags = [
"-s"

View File

@ -3,7 +3,7 @@
, fetchFromGitHub
, coreutils
, findutils
, git
, gitMinimal
, gnugrep
, gnused
, makeWrapper
@ -32,7 +32,7 @@ stdenv.mkDerivation rec {
patchShebangs $out/helm-git/helm-git{,-plugin.sh}
wrapProgram $out/helm-git/helm-git \
--prefix PATH : ${lib.makeBinPath [ coreutils findutils git gnugrep gnused ]}
--prefix PATH : ${lib.makeBinPath [ coreutils findutils gitMinimal gnugrep gnused ]}
runHook postInstall
'';

View File

@ -2,7 +2,7 @@
callPackage ./generic.nix { } rec {
pname = "signal-desktop";
dir = "Signal";
version = "7.5.1";
version = "7.6.0";
url = "https://updates.signal.org/desktop/apt/pool/s/signal-desktop/signal-desktop_${version}_amd64.deb";
hash = "sha256-afKR+P2YPkv4OMIr8LzWeAMZWr0zaJ1R0BQD87gQuSk=";
hash = "sha256-sGOWsFZTO9VQDkCqhsOkW5aY+sh0fLH7kPPe/bAzGvg=";
}

View File

@ -10,6 +10,7 @@ nodePackages.n8n.override {
nativeBuildInputs = [
pkgs.nodePackages.node-pre-gyp
pkgs.which
pkgs.xcbuild
];
buildInputs = [
@ -30,6 +31,9 @@ nodePackages.n8n.override {
# makes libmongocrypt bindings not look for static libraries in completely wrong places
BUILD_TYPE = "dynamic";
# Disable NAPI_EXPERIMENTAL to allow to build with Node.js≥18.20.0.
NIX_CFLAGS_COMPILE = "-DNODE_API_EXPERIMENTAL_NOGC_ENV_OPT_OUT";
dontNpmInstall = true;
passthru = {

View File

@ -2,16 +2,16 @@
buildGoModule rec {
pname = "nextdns";
version = "1.42.0";
version = "1.43.0";
src = fetchFromGitHub {
owner = "nextdns";
repo = "nextdns";
rev = "v${version}";
sha256 = "sha256-aQUz6FK04h3nzieK9fX7odVVt/zcdhXlX3T1Z1rN/ak=";
sha256 = "sha256-5aznAAO53EFeq/fap10ARGerKzQAvLx0zOeG6OWkymw=";
};
vendorHash = "sha256-DATSGSFRMrX972CWCiSIlOhDuAG3zcVyuILZ3IpVirM=";
vendorHash = "sha256-U5LJF1RX0ZS0PhjQTZKXrJo89WPfSZaVbgskWcYNlJY=";
ldflags = [ "-s" "-w" "-X main.version=${version}" ];

View File

@ -21,14 +21,14 @@
let
pname = "qownnotes";
appname = "QOwnNotes";
version = "24.4.3";
version = "24.4.4";
in
stdenv.mkDerivation {
inherit pname version;
src = fetchurl {
url = "https://github.com/pbek/QOwnNotes/releases/download/v${version}/qownnotes-${version}.tar.xz";
hash = "sha256-dthb+FkytNiiS2s7VdMgYxvNbGeBx5gONOYkHHphigY=";
hash = "sha256-nTRCW76UogaTOyxQ5HfWUln6Lip/LpoyPG+m+mMCb1I=";
};
nativeBuildInputs = [

View File

@ -13,10 +13,10 @@ let
in
stdenv.mkDerivation rec {
inherit pname;
version = "10.9.0";
version = "10.10.0";
src = fetchurl {
url = "https://github.com/betaflight/${pname}/releases/download/${version}/${pname}_${version}_linux64-portable.zip";
sha256 = "sha256-9FzMyBIR2u1zXHtTWJABM6RF1+OyjYdEPlRwtig9blI=";
sha256 = "sha256-UB5Vr5wyCUZbOaQNckJQ1tAXwh8VSLNI1IgTiJzxV08=";
};
# remove large unneeded files

View File

@ -1,39 +1,72 @@
{ lib, stdenv, fetchurl, m4, expat
, libX11, libXt, libXaw, libXmu, bdftopcf, mkfontdir
, fontadobe100dpi, fontadobeutopia100dpi, fontbh100dpi
, fontbhlucidatypewriter100dpi, fontbitstream100dpi
{ stdenv
, darwin
, lib
, libiconv
, fetchurl
, m4
, expat
, libX11
, libXt
, libXaw
, libXmu
, bdftopcf
, mkfontdir
, fontadobe100dpi
, fontadobeutopia100dpi
, fontbh100dpi
, fontbhlucidatypewriter100dpi
, fontbitstream100dpi
, tcl
, ncurses }:
, ncurses
}:
let
majorVersion = "4";
minorVersion = "0";
versionSuffix = "ga9";
in stdenv.mkDerivation rec {
minorVersion = "3";
versionSuffix = "ga8";
in
stdenv.mkDerivation rec {
pname = "x3270";
version = "${majorVersion}.${minorVersion}${versionSuffix}";
src = fetchurl {
url = "http://x3270.bgp.nu/download/0${majorVersion}.0${minorVersion}/suite3270-${version}-src.tgz";
sha256 = "0km24rgll0s4ji6iz8lvy5ra76ds162s95y33w5px6697cwqkp9j";
url =
"http://x3270.bgp.nu/download/0${majorVersion}.0${minorVersion}/suite3270-${version}-src.tgz";
sha256 = "sha256-gcC6REfZentIPEDhGznUSYu8mvVfpPeMz/Bks+N43Fk=";
};
buildFlags = [ "unix" ];
buildFlags = lib.optional stdenv.isLinux "unix";
postConfigure = ''
pushd c3270 ; ./configure ; popd
configureFlags = lib.optionals stdenv.isDarwin [
"--enable-c3270"
"--enable-pr3270"
"--enable-s3270"
"--enable-tcl3270"
];
postBuild = ''
make install.man
'';
pathsToLink = [ "/share/man" ];
nativeBuildInputs = [ m4 ];
buildInputs = [
expat
libX11 libXt libXaw libXmu bdftopcf mkfontdir
fontadobe100dpi fontadobeutopia100dpi fontbh100dpi
fontbhlucidatypewriter100dpi fontbitstream100dpi
libX11
libXt
libXaw
libXmu
bdftopcf
mkfontdir
fontadobe100dpi
fontadobeutopia100dpi
fontbh100dpi
fontbhlucidatypewriter100dpi
fontbitstream100dpi
tcl
ncurses
expat
];
] ++ lib.optionals stdenv.isDarwin [ libiconv darwin.apple_sdk.frameworks.Security ];
meta = with lib; {
description = "IBM 3270 terminal emulator for the X Window System";

View File

@ -1,13 +1,12 @@
{ fetchFromGitHub
, gitMinimal
, gfold
, lib
, libiconv
, makeWrapper
, rustPlatform
, Security
, stdenv
, testers
{
fetchFromGitHub,
gfold,
lib,
libiconv,
rustPlatform,
Security,
stdenv,
testers,
}:
let
@ -26,7 +25,10 @@ rustPlatform.buildRustPackage {
cargoHash = "sha256-wDUOYK9e0i600UnJ0w0FPI2GhTa/QTq/2+ICiDWrmEU=";
buildInputs = lib.optionals stdenv.isDarwin [ libiconv Security ];
buildInputs = lib.optionals stdenv.isDarwin [
libiconv
Security
];
passthru.tests.version = testers.testVersion {
package = gfold;
@ -35,11 +37,10 @@ rustPlatform.buildRustPackage {
};
meta = with lib; {
description =
"CLI tool to help keep track of your Git repositories, written in Rust";
description = "CLI tool to help keep track of your Git repositories, written in Rust";
homepage = "https://github.com/nickgerace/gfold";
license = licenses.asl20;
maintainers = [];
maintainers = [ maintainers.sigmanificient ];
platforms = platforms.unix;
mainProgram = "gfold";
};

View File

@ -2,13 +2,13 @@
buildGoModule rec {
pname = "git-codereview";
version = "1.10.0";
version = "1.11.0";
src = fetchFromGitHub {
owner = "golang";
repo = "review";
rev = "v${version}";
hash = "sha256-aLvx9lYQJYUw2XBj+2P+yEJMboUjmHKzxP5QA3N93JA=";
hash = "sha256-fIvNaMfgwnMBUNo6kr37zhKiBgKNzT2E0dLLtqaVBvI=";
};
vendorHash = null;

View File

@ -10,7 +10,7 @@
}:
let
version = "5.12.197";
version = "5.12.198";
in
rustPlatform.buildRustPackage {
pname = "git-mit";
@ -20,10 +20,10 @@ rustPlatform.buildRustPackage {
owner = "PurpleBooth";
repo = "git-mit";
rev = "v${version}";
hash = "sha256-Z03FDdlg1IBXHpurKr6RwmtZkaptyeQe+0lgKn/GTTQ=";
hash = "sha256-4tWgIwDmGZhMFTVT5VzmGj69zV8FGTV0yBHUy5Iu1Xw=";
};
cargoHash = "sha256-V8TV8RM3T7DYqwNV/r5PkkJVtyAQLdY3BR3sz26phdY=";
cargoHash = "sha256-vKiCKcyB1Q2CNA4HpE8dc5gh+nlrz0VERIMaTGlDH5Y=";
nativeBuildInputs = [ pkg-config ];

View File

@ -1,6 +1,6 @@
{ lib
, stdenv
, fetchFromGitLab
, mkKdeDerivation
, breeze-icons
, breeze
, cmake
@ -15,7 +15,7 @@
, kirigami
, kxmlgui
, kdoctools
, mpv
, mpvqt
, pkg-config
, wrapQtAppsHook
, qqc2-desktop-style
@ -23,7 +23,7 @@
, yt-dlp
}:
mkKdeDerivation rec {
stdenv.mkDerivation rec {
pname = "haruna";
version = "1.0.2";
@ -56,7 +56,7 @@ mkKdeDerivation rec {
kirigami
kxmlgui
kdoctools
mpv
mpvqt
qtbase
];

View File

@ -2,7 +2,10 @@
, stdenvNoCC }:
let
escapedList = with lib; concatMapStringsSep " " (s: "'${escape [ "'" ] s}'");
# Escape strings for embedding in shell scripts
escaped = s: "'${lib.escape [ "'" ] s}'";
escapedList = lib.concatMapStringsSep " " escaped;
fileName = pathStr: lib.last (lib.splitString "/" pathStr);
scriptsDir = "$out/share/mpv/scripts";
@ -50,14 +53,14 @@ lib.makeOverridable (args: stdenvNoCC.mkDerivation (extendedBy
}
[ ${with builtins; toString (length extraScripts)} -eq 0 ] || {
echo "mpvScripts.buildLua does not support 'extraScripts'" \
"when 'scriptPath' is a directory"
"when 'scriptPath' is a directory" >&2
exit 1
}
mkdir -p "${scriptsDir}"
cp -a "${scriptPath}" "${scriptsDir}/${scriptName}"
else
install -m644 -Dt "${scriptsDir}" \
${escapedList ([ scriptPath ] ++ extraScripts)}
install -m644 -Dt "${scriptsDir}" ${escaped scriptPath}
${lib.optionalString (extraScripts != []) ''cp -at "${scriptsDir}/" ${escapedList extraScripts}''}
fi
runHook postInstall

View File

@ -29,7 +29,6 @@ buildLua {
extraScripts = [ "c_concat.sh" ];
postInstall = ''
chmod 0755 $out/share/mpv/scripts/c_concat.sh
wrapProgram $out/share/mpv/scripts/c_concat.sh \
--run "mkdir -p ~/.config/mpv/cutter/"
'';

View File

@ -32,7 +32,7 @@ buildLua {
--replace 'mp.find_config_file("scripts")' "\"$out/share/mpv/scripts\""
'';
postInstall = "cp -a sponsorblock_shared $out/share/mpv/scripts/";
extraScripts = [ "sponsorblock_shared" ];
passthru.updateScript = nix-update-script {
extraArgs = [ "--version=branch" ];

View File

@ -8,13 +8,13 @@
stdenv.mkDerivation rec {
pname = "obs-shaderfilter";
version = "2.3.1";
version = "2.3.2";
src = fetchFromGitHub {
owner = "exeldro";
repo = "obs-shaderfilter";
rev = version;
sha256 = "sha256-J7tCEIB9zQ0zZFl1eSuEARd+KqpNClHfYx3wcLawFeM=";
sha256 = "sha256-INxz8W4AMKxRcfpZkhqqsWWWQQVEc2G9iFQBit1YA2E=";
};
nativeBuildInputs = [ cmake ];

View File

@ -9,13 +9,13 @@
stdenv.mkDerivation rec {
pname = "obs-vertical-canvas";
version = "1.4.1";
version = "1.4.2";
src = fetchFromGitHub {
owner = "Aitum";
repo = "obs-vertical-canvas";
rev = version;
sha256 = "sha256-baEF8vcAmac4bwpzJnGE2WczTa6vojjRQ/oEKgYeXgk=";
sha256 = "sha256-3lFM7bOzsKex6JUdbcw8MNS4PRzaN/E/vngdukgfV0s=";
};
nativeBuildInputs = [ cmake ];

View File

@ -21,13 +21,13 @@
}:
stdenv.mkDerivation (finalAttrs: {
pname = "shotcut";
version = "24.04.13";
version = "24.04.28";
src = fetchFromGitHub {
owner = "mltframework";
repo = "shotcut";
rev = "v${finalAttrs.version}";
hash = "sha256-xEdCsvclZXCJgoOnx5ZyOElCXjGpbrOtC7VOR5Hgvpg=";
hash = "sha256-iMg2XrTrLFZXXvnJ7lMdkxf/LTaL9bh9Nc2jsPOS0eo=";
};
nativeBuildInputs = [ pkg-config cmake wrapQtAppsHook ];

View File

@ -5,12 +5,12 @@
}: stdenv.mkDerivation rec {
pname = "vdr";
version = "2.6.6";
version = "2.6.7";
src = fetchgit {
url = "git://git.tvdr.de/vdr.git";
rev = version;
hash = "sha256-3om/Q67PHtX/aIG4zMCaJTyD9bZNEcyE5LQTeb+zB+M=";
hash = "sha256-6i3EQgARwMLNejgB0NevmLmd9OrNBvjqW+qLrAdqUxE=";
};
enableParallelBuilding = true;

View File

@ -32,6 +32,8 @@ stdenv.mkDerivation (finalAttrs: {
pkg-config
];
CXXFLAGS = "-std=c++98";
buildInputs = [
freetype
fribidi

View File

@ -64,26 +64,26 @@ let
name = "arrow-testing";
owner = "apache";
repo = "arrow-testing";
rev = "ad82a736c170e97b7c8c035ebd8a801c17eec170";
hash = "sha256-wN0dam0ZXOAJ+D8bGDMhsdaV3llI9LsiCXwqW9mR3gQ=";
rev = "25d16511e8d42c2744a1d94d90169e3a36e92631";
hash = "sha256-fXeWM/8jBfJY7KL6PVfRbzB8i4sp6PHsnMSHCX5kzfI=";
};
parquet-testing = fetchFromGitHub {
name = "parquet-testing";
owner = "apache";
repo = "parquet-testing";
rev = "d69d979223e883faef9dc6fe3cf573087243c28a";
hash = "sha256-CUckfNjfDW05crWigzMP5b9UynviXKGZUlIr754OoGU=";
rev = "74278bc4a1122d74945969e6dec405abd1533ec3";
hash = "sha256-WbpndtAviph6+I/F2bevuMI9DkfSv4SMPgMaP98k6Qo=";
};
in
stdenv.mkDerivation (finalAttrs: {
pname = "arrow-cpp";
version = "15.0.0";
version = "16.0.0";
src = fetchurl {
url = "mirror://apache/arrow/arrow-${finalAttrs.version}/apache-arrow-${finalAttrs.version}.tar.gz";
hash = "sha256-Ad0/cOhdm1uTPsksDbik71BKUQX3jS2GIuhCeftFwl0=";
hash = "sha256-n0BRrpRzyXmR2a+AHi+UrjRVBncZyn+QuBN/nppwC40=";
};
sourceRoot = "apache-arrow-${finalAttrs.version}/cpp";
@ -116,8 +116,8 @@ stdenv.mkDerivation (finalAttrs: {
ARROW_SUBSTRAIT_URL = fetchFromGitHub {
owner = "substrait-io";
repo = "substrait";
rev = "v0.27.0";
hash = "sha256-wptEAXembah04pzqAz6UHeUxp+jMf6Lh/IdyuIhy/a8=";
rev = "v0.44.0";
hash = "sha256-V739IFTGPtbGPlxcOi8sAaYSDhNUEpITvN9IqdPReug=";
};
nativeBuildInputs = [

View File

@ -6,17 +6,20 @@
python3.pkgs.buildPythonApplication rec {
pname = "audiness";
version = "0.3.2";
version = "0.4.0";
pyproject = true;
src = fetchFromGitHub {
owner = "audiusGmbH";
repo = "audiness";
rev = "refs/tags/${version}";
hash = "sha256-vc2k3oEMTgzm/C6z6BieRrT3cSP0IkY+D3RXkNGaZTE=";
hash = "sha256-UJe4ZawjAuUoSKEdIgjh8zZu/amYLZ8rpUDahSHokKA=";
};
pythonRelaxDeps = [ "validators" ];
pythonRelaxDeps = [
"typer"
"validators"
];
build-system = with python3.pkgs; [ poetry-core ];

View File

@ -27,20 +27,20 @@ let
in
buildNpmPackage' rec {
pname = "bruno";
version = "1.14.0";
version = "1.16.0";
src = fetchFromGitHub {
owner = "usebruno";
repo = "bruno";
rev = "v${version}";
hash = "sha256-kUvDtqv3Tdnntr4Ny5pM406KA5++AHsCoAiPg4x4Rsw=";
hash = "sha256-nhs44W7cOREdULdXFNZpFGeeZeVTGUffKOBhtL4zAaw=";
postFetch = ''
${lib.getExe npm-lockfile-fix} $out/package-lock.json
'';
};
npmDepsHash = "sha256-VvUpAdF4ouy695om3qpsyrmiMf69OFgfpQyeZArQEDs=";
npmDepsHash = "sha256-p4rBEOK9zKGO1q3SCKpfdX3EPMkYHRvn9UnGBhsksSE=";
npmFlags = [ "--legacy-peer-deps" ];
nativeBuildInputs = [

View File

@ -9,13 +9,13 @@
buildGoModule rec {
pname = "cue";
version = "0.8.1";
version = "0.8.2";
src = fetchFromGitHub {
owner = "cue-lang";
repo = "cue";
rev = "v${version}";
hash = "sha256-0HNE7NzTdq1bXj9tBZvBQ3m6Q5iuyAMKMOz0kyOJi7w=";
hash = "sha256-GU1PG5ciUqbRlAveq2ouqnBYIBEdMSSM0H/1eHL+zlo=";
};
vendorHash = "sha256-0OZtKIDdEnQLnSj109EpGvaZvMIy7gPAZ+weHzYKGSg=";

View File

@ -1,6 +1,7 @@
{ lib
, fetchFromGitHub
, python3
{
lib,
fetchFromGitHub,
python3,
}:
python3.pkgs.buildPythonApplication rec {
@ -16,26 +17,27 @@ python3.pkgs.buildPythonApplication rec {
};
pythonRelaxDeps = [
"typer"
"validators"
];
nativeBuildInputs = with python3.pkgs; [
poetry-core
pythonRelaxDepsHook
];
build-system = with python3.pkgs; [ poetry-core ];
propagatedBuildInputs = with python3.pkgs; [
pycups
typer
validators
] ++ typer.optional-dependencies.all;
nativeBuildInputs = with python3.pkgs; [ pythonRelaxDepsHook ];
dependencies =
with python3.pkgs;
[
pycups
typer
validators
]
++ typer.optional-dependencies.all;
# Project has no tests
doCheck = false;
pythonImportsCheck = [
"cups_printers"
];
pythonImportsCheck = [ "cups_printers" ];
meta = with lib; {
description = "Tool for interacting with a CUPS server";

View File

@ -21,15 +21,15 @@ let
src = fetchFromGitHub {
owner = "domenkozar";
repo = "nix";
rev = "ecd0af0c1f56de32cbad14daa1d82a132bf298f8";
hash = "sha256-92xq7eXlxIT5zFNccLpjiP7sdQqQI30Gyui2p/PfKZM=";
rev = "b24a9318ea3f3600c1e24b4a00691ee912d4de12";
hash = "sha256-BGvBhepCufsjcUkXnEEXhEVjwdJAwPglCC2+bInc794=";
};
buildInputs = old.buildInputs ++ [ libgit2 ];
doCheck = false;
doInstallCheck = false;
});
version = "1.0.4";
version = "1.0.5";
in rustPlatform.buildRustPackage {
pname = "devenv";
inherit version;
@ -38,10 +38,10 @@ in rustPlatform.buildRustPackage {
owner = "cachix";
repo = "devenv";
rev = "v${version}";
hash = "sha256-JODoFPcYKOr39dErx8JFSjeWKmO5PUsHJrF2VU6MFEg=";
hash = "sha256-W5DFIifCjGYJXJzLU3RpqBeqes4zrf0Sr/6rwzTygPU=";
};
cargoHash = "sha256-//THEzW0OYEDSLrOELBaWnwjDbUc4jpwRDQfWJO/saA=";
cargoHash = "sha256-a6o28oonA6G0xo83PXwbH86V0aDDAAA2zajE67qsSU0=";
nativeBuildInputs = [ makeWrapper pkg-config ];

View File

@ -9,12 +9,12 @@
stdenvNoCC.mkDerivation (finalAttrs: {
name = "disko";
version = "1.5.0";
version = "1.6.0";
src = fetchFromGitHub {
owner = "nix-community";
repo = "disko";
rev = "v${finalAttrs.version}";
hash = "sha256-5DUNQl9BSmLxgGLbF05G7hi/UTk9DyZq8AuEszhQA7Q=";
hash = "sha256-h3pOvHCXkSdp1KOZqtkQmHgkR7VaOJXDhqhumk7sZLY=";
};
nativeBuildInputs = [ makeWrapper ];
buildInputs = [ bash ];

View File

@ -46,13 +46,13 @@ let
in
stdenv'.mkDerivation (finalAttrs: {
pname = "fastfetch";
version = "2.9.2";
version = "2.10.2";
src = fetchFromGitHub {
owner = "fastfetch-cli";
repo = "fastfetch";
rev = finalAttrs.version;
hash = "sha256-SEt/qw8ixlgRY2+fqyCmhqzLVoAw/BMl//JqQxbuB0s=";
hash = "sha256-1ok2HR9RapS+MF8zuNLhzMZMz0F2AQsKsxNqCT7QF/8=";
};
outputs = [ "out" "man" ];

View File

@ -20,14 +20,14 @@
stdenv.mkDerivation rec {
pname = "fnott";
version = "1.4.1";
version = "1.5.0";
src = fetchFromGitea {
domain = "codeberg.org";
owner = "dnkl";
repo = "fnott";
rev = version;
hash = "sha256-8SKInlj54BP3Gn/DNVoLN62+Dfa8G5d/q2xGUXXdsjo=";
hash = "sha256-F2Pt3xbWDZZ3s056KU3qLXUrFQ0wT7QYK4GvR7slMYc=";
};
strictDeps = true;

View File

@ -2,7 +2,7 @@
, stdenv
, fetchurl
, pkg-config
, openssl
, libressl
, libbsd
, libevent
, libuuid
@ -12,21 +12,22 @@
, ncurses
, bison
, autoPatchelfHook
, testers
}:
stdenv.mkDerivation (finalAttrs: {
pname = "got";
version = "0.97";
version = "0.98.2";
src = fetchurl {
url = "https://gameoftrees.org/releases/portable/got-portable-${finalAttrs.version}.tar.gz";
hash = "sha256-4HpIlKRYUDoymCBH8GS8DDXaY0nYiVvotpBkwglOO3I=";
hash = "sha256-/11K2ZIu3xyAVbI5hlCXL9RjyAlZDb544uqxv3ihUMg=";
};
nativeBuildInputs = [ pkg-config bison ]
++ lib.optionals stdenv.isLinux [ autoPatchelfHook ];
buildInputs = [ openssl libbsd libevent libuuid libmd zlib ncurses ]
buildInputs = [ libressl libbsd libevent libuuid libmd zlib ncurses ]
++ lib.optionals stdenv.isDarwin [ libossp_uuid ];
configureFlags = [ "--enable-gotd" ];
@ -45,13 +46,9 @@ stdenv.mkDerivation (finalAttrs: {
"-include getopt.h"
]);
doInstallCheck = true;
installCheckPhase = ''
runHook preInstallCheck
test "$($out/bin/got --version)" = "got ${finalAttrs.version}"
runHook postInstallCheck
'';
passthru.tests.version = testers.testVersion {
package = finalAttrs.finalPackage;
};
meta = {
changelog = "https://gameoftrees.org/releases/CHANGES";

View File

@ -0,0 +1,23 @@
{ lib, buildGoModule, fetchFromGitHub }:
buildGoModule rec {
pname = "grafana-kiosk";
version = "1.0.6";
src = fetchFromGitHub {
owner = "grafana";
repo = "grafana-kiosk";
rev = "v${version}";
hash = "sha256-KXEbhRFD++VeVI1Fbrai+IYb3lyGKs+plYPoKIZD0JM=";
};
vendorHash = "sha256-sXaxyPNuHDUOkYcWYm94YvJmr1mGe4HdzttWrNSK2Pw=";
meta = with lib; {
description = "Kiosk Utility for Grafana";
homepage = "https://github.com/grafana/grafana-kiosk";
license = licenses.asl20;
maintainers = with maintainers; [ marcusramberg ];
mainProgram = "grafana-kiosk";
};
}

View File

@ -0,0 +1,42 @@
{ lib
, rustPlatform
, fetchFromGitHub
, pkg-config
, protobuf
, sqlite
}:
rustPlatform.buildRustPackage {
pname = "hamtransfer";
version = "unstable-2024-04-05";
src = fetchFromGitHub {
owner = "ThomasHabets";
repo = "hamtransfer";
rev = "6b0ac28e0b8cdcc3ac9aba9cd6115e48c4f26c1e";
hash = "sha256-yZwbFjs+mnTbU+75dwRhVjvXXoHQuzgE9GlliUQZV1s=";
};
cargoHash = "sha256-lFzsURGhEcuTL6dHt4/l54eT3mD7H8tsW/+unisdjKY=";
nativeBuildInputs = [
pkg-config
protobuf
];
buildInputs = [
sqlite
];
postInstall = ''
mv $out/bin/downloader $out/bin/hamtransfer-downloader
mv $out/bin/uploader $out/bin/hamtransfer-uploader
'';
meta = with lib; {
description = "Tool for transferring files over amateur radio using modern techniques";
homepage = "https://github.com/ThomasHabets/hamtransfer";
license = licenses.gpl2Only;
maintainers = with maintainers; [ matthewcroughan sarcasticadmin pkharvey ];
};
}

View File

@ -2,16 +2,16 @@
rustPlatform.buildRustPackage rec {
pname = "hyprland-monitor-attached";
version = "0.1.5";
version = "0.1.6";
src = fetchFromGitHub {
owner = "coffebar";
repo = "hyprland-monitor-attached";
rev = version;
hash = "sha256-McenpaoEjQIB709VlLkyVGoUwVoMe7TJPb8Lrh1efw8=";
hash = "sha256-+bgOOm1B513COcWdUIJ/+GREQH5CR8/RNOcZVkjO2hI=";
};
cargoHash = "sha256-QH32NYZJcSxTMgHZKqksy2+DLw62G+knJgoj6OGRfQE=";
cargoHash = "sha256-vQfDsP2Tc+Kj95wXIzPTlf6kRdBgdio0QkM9EJRjZjE=";
meta = with lib; {
description = "Automatically run a script when a monitor connects (or disconnects) in Hyprland";

View File

@ -8,14 +8,14 @@
python3Packages.buildPythonApplication rec {
pname = "icloudpd";
version = "1.17.4";
version = "1.17.5";
pyproject = true;
src = fetchFromGitHub {
owner = "icloud-photos-downloader";
repo = "icloud_photos_downloader";
rev = "v${version}";
hash = "sha256-xsUayewn6c+TFqQnvDWe+1y4o76Quq8sK1WkSFFgPkc=";
hash = "sha256-1tyvoDAlh2UuPWDqA7mwC1v5kij3v3aBZBfIG/vluJo=";
};
pythonRelaxDeps = true;

View File

@ -0,0 +1,30 @@
{ lib,
fetchFromGitHub,
rustPlatform,
pkg-config,
dbus
}:
rustPlatform.buildRustPackage rec {
version = "0.2.1";
pname = "kdotool";
src = fetchFromGitHub {
owner = "jinliu";
repo = "kdotool";
rev = "v${version}";
hash = "sha256-ogdZziNV4b3h9LiEyWFrD/I/I4k8Z5rNFTNjQpWBQtg=";
};
cargoHash = "sha256-pL5vLfNWsZi75mI5K/PYVmgHTPCyIKpQY0YU2CJABN8=";
nativeBuildInputs = [ pkg-config ];
buildInputs = [ dbus ];
meta = with lib; {
description = "xdotool-like for KDE Wayland";
homepage = "https://github.com/jinliu/kdotool";
license = licenses.asl20;
maintainers = with maintainers; [ kotatsuyaki ];
};
}

View File

@ -2,12 +2,12 @@
stdenv.mkDerivation rec {
pname = "littlefs-fuse";
version = "2.7.7";
version = "2.7.8";
src = fetchFromGitHub {
owner = "littlefs-project";
repo = pname;
rev = "v${version}";
hash = "sha256-MCmi0CBs3RLuYn+1BsS6pIeR/tHS1lGNyV3ZwlsnQCA=";
hash = "sha256-dJt2Tcw+qdcOoZ9ejao9NXys/OYQTvbP9+dD6DCzFAw=";
};
buildInputs = [ fuse ];
installPhase = ''

View File

@ -0,0 +1,30 @@
{ lib
, writers
, writeText
, linkFarmFromDrvs
}: {
genModels = configs:
let
name = lib.strings.sanitizeDerivationName
(builtins.concatStringsSep "_" ([ "local-ai-models" ] ++ (builtins.attrNames configs)));
genModelFiles = name: config:
let
templateName = type: name + "_" + type;
config' = lib.recursiveUpdate config ({
inherit name;
} // lib.optionalAttrs (lib.isDerivation config.parameters.model) {
parameters.model = config.parameters.model.name;
} // lib.optionalAttrs (config ? template) {
template = builtins.mapAttrs (n: _: templateName n) config.template;
});
in
[ (writers.writeYAML "${name}.yaml" config') ]
++ lib.optional (lib.isDerivation config.parameters.model)
config.parameters.model
++ lib.optionals (config ? template)
(lib.mapAttrsToList (n: writeText "${templateName n}.tmpl") config.template);
in
linkFarmFromDrvs name (lib.flatten (lib.mapAttrsToList genModelFiles configs));
}

View File

@ -0,0 +1,56 @@
{ pkgs, config, lib, ... }:
let
cfg = config.services.local-ai;
inherit (lib) mkOption types;
in
{
options.services.local-ai = {
enable = lib.mkEnableOption "Enable service";
package = lib.mkPackageOption pkgs "local-ai" { };
extraArgs = mkOption {
type = types.listOf types.str;
default = [ ];
};
port = mkOption {
type = types.port;
default = 8080;
};
threads = mkOption {
type = types.int;
default = 1;
};
models = mkOption {
type = types.either types.package types.str;
default = "models";
};
};
config = lib.mkIf cfg.enable {
systemd.services.local-ai = {
wantedBy = [ "multi-user.target" ];
serviceConfig = {
DynamicUser = true;
ExecStart = lib.escapeShellArgs ([
"${cfg.package}/bin/local-ai"
"--debug"
"--address"
":${toString cfg.port}"
"--threads"
(toString cfg.threads)
"--localai-config-dir"
"."
"--models-path"
(toString cfg.models)
]
++ cfg.extraArgs);
RuntimeDirectory = "local-ai";
WorkingDirectory = "%t/local-ai";
};
};
};
}

View File

@ -6,6 +6,8 @@
, fetchpatch
, fetchFromGitHub
, protobuf
, protoc-gen-go
, protoc-gen-go-grpc
, grpc
, openssl
, llama-cpp
@ -61,8 +63,8 @@ let
inherit (cudaPackages) libcublas cuda_nvcc cuda_cccl cuda_cudart cudatoolkit;
go-llama-ggml = effectiveStdenv.mkDerivation {
name = "go-llama-ggml";
go-llama = effectiveStdenv.mkDerivation {
name = "go-llama";
src = fetchFromGitHub {
owner = "go-skynet";
repo = "go-llama.cpp";
@ -98,8 +100,8 @@ let
src = fetchFromGitHub {
owner = "ggerganov";
repo = "llama.cpp";
rev = "1b67731e184e27a465b8c5476061294a4af668ea";
hash = "sha256-0WWbsklpW6HhFRkvWpYh8Lhi8VIansS/zmyIKNQRkIs=";
rev = "784e11dea1f5ce9638851b2b0dddb107e2a609c8";
hash = "sha256-yAQAUo5J+a6O2kTqhFL1UH0tANxpQn3JhAd3MByaC6I=";
fetchSubmodules = true;
};
postPatch = prev.postPatch + ''
@ -252,8 +254,8 @@ let
src = fetchFromGitHub {
owner = "ggerganov";
repo = "whisper.cpp";
rev = "8f253ef3af1c62c04316ba4afa7145fc4d701a8c";
hash = "sha256-yHHjhpQIn99A/hqFwAb7TfTf4Q9KnKat93zyXS70bT8=";
rev = "858452d58dba3acdc3431c9bced2bb8cfd9bf418";
hash = "sha256-2fT3RgGpBex1mF6GJsVDo4rb0F31YqxTymsXcrpQAZk=";
};
nativeBuildInputs = [ cmake pkg-config ]
@ -371,18 +373,18 @@ let
stdenv;
pname = "local-ai";
version = "2.12.4";
version = "2.13.0";
src = fetchFromGitHub {
owner = "go-skynet";
repo = "LocalAI";
rev = "v${version}";
hash = "sha256-piu2B6u4ZfxiOd9SXrE7jiiiwL2SM8EqXo2s5qeKRl0=";
hash = "sha256-jZE8Ow9FFhnx/jvsURLYlYtSuKpE4UWBezxg/mpHs9g=";
};
self = buildGoModule.override { stdenv = effectiveStdenv; } {
inherit pname version src;
vendorHash = "sha256-8Hu1y/PK21twnB7D22ltslFFzRrsB8d1R2hkgIFB/XY=";
vendorHash = "sha256-nWNK2YekQnBSLx4ouNSe6esIe0yFuo69E0HStYLQANg=";
env.NIX_CFLAGS_COMPILE = lib.optionalString with_stablediffusion " -isystem ${opencv}/include/opencv4";
@ -392,12 +394,12 @@ let
in
''
sed -i Makefile \
-e 's;git clone.*go-llama-ggml$;${cp} ${go-llama-ggml} sources/go-llama-ggml;' \
-e 's;git clone.*go-llama\.cpp$;${cp} ${go-llama} sources/go-llama\.cpp;' \
-e 's;git clone.*gpt4all$;${cp} ${gpt4all} sources/gpt4all;' \
-e 's;git clone.*go-piper$;${cp} ${if with_tts then go-piper else go-piper.src} sources/go-piper;' \
-e 's;git clone.*go-rwkv$;${cp} ${go-rwkv} sources/go-rwkv;' \
-e 's;git clone.*go-rwkv\.cpp$;${cp} ${go-rwkv} sources/go-rwkv\.cpp;' \
-e 's;git clone.*whisper\.cpp$;${cp} ${whisper-cpp.src} sources/whisper\.cpp;' \
-e 's;git clone.*go-bert$;${cp} ${go-bert} sources/go-bert;' \
-e 's;git clone.*go-bert\.cpp$;${cp} ${go-bert} sources/go-bert\.cpp;' \
-e 's;git clone.*diffusion$;${cp} ${if with_stablediffusion then go-stable-diffusion else go-stable-diffusion.src} sources/go-stable-diffusion;' \
-e 's;git clone.*go-tiny-dream$;${cp} ${if with_tinydream then go-tiny-dream else go-tiny-dream.src} sources/go-tiny-dream;' \
-e 's, && git checkout.*,,g' \
@ -415,14 +417,19 @@ let
++ lib.optionals with_stablediffusion go-stable-diffusion.buildInputs
++ lib.optionals with_tts go-piper.buildInputs;
nativeBuildInputs = [ makeWrapper ]
++ lib.optionals with_cublas [ cuda_nvcc ];
nativeBuildInputs = [
protobuf
protoc-gen-go
protoc-gen-go-grpc
makeWrapper
]
++ lib.optionals with_cublas [ cuda_nvcc ];
enableParallelBuilding = false;
modBuildPhase = ''
mkdir sources
make prepare-sources
make prepare-sources protogen-go
go mod tidy -v
'';
@ -486,7 +493,7 @@ let
passthru.local-packages = {
inherit
go-tiny-dream go-rwkv go-bert go-llama-ggml gpt4all go-piper
go-tiny-dream go-rwkv go-bert go-llama gpt4all go-piper
llama-cpp-grpc whisper-cpp go-tiny-dream-ncnn espeak-ng' piper-phonemize
piper-tts';
};
@ -498,6 +505,7 @@ let
};
passthru.tests = callPackages ./tests.nix { inherit self; };
passthru.lib = callPackages ./lib.nix { };
meta = with lib; {
description = "OpenAI alternative to run local LLMs, image and audio generation";

View File

@ -5,156 +5,244 @@
, fetchurl
, writers
, symlinkJoin
, linkFarmFromDrvs
, jq
}:
let
common-config = { config, ... }: {
imports = [ ./module.nix ];
services.local-ai = {
enable = true;
package = self;
threads = config.virtualisation.cores;
};
};
inherit (self.lib) genModels;
in
{
version = testers.testVersion {
package = self;
version = "v" + self.version;
command = "local-ai --help";
};
health =
let
port = "8080";
in
testers.runNixOSTest {
name = self.name + "-health";
nodes.machine = {
systemd.services.local-ai = {
wantedBy = [ "multi-user.target" ];
serviceConfig.ExecStart = "${self}/bin/local-ai --debug --localai-config-dir . --address :${port}";
};
};
testScript = ''
health = testers.runNixOSTest ({ config, ... }: {
name = self.name + "-health";
nodes.machine = common-config;
testScript =
let
port = "8080";
in
''
machine.wait_for_open_port(${port})
machine.succeed("curl -f http://localhost:${port}/readyz")
'';
};
});
# https://localai.io/docs/getting-started/manual/
llama =
# https://localai.io/features/embeddings/#bert-embeddings
bert =
let
port = "8080";
gguf = fetchurl {
url = "https://huggingface.co/TheBloke/Luna-AI-Llama2-Uncensored-GGUF/resolve/main/luna-ai-llama2-uncensored.Q4_K_M.gguf";
sha256 = "6a9dc401c84f0d48996eaa405174999c3a33bf12c2bfd8ea4a1e98f376de1f15";
model = "embedding";
model-configs.${model} = {
# Note: q4_0 and q4_1 models can not be loaded
parameters.model = fetchurl {
url = "https://huggingface.co/skeskinen/ggml/resolve/main/all-MiniLM-L6-v2/ggml-model-f16.bin";
sha256 = "9c195b2453a4fef60a4f6be3a88a39211366214df6498a4fe4885c9e22314f50";
};
backend = "bert-embeddings";
embeddings = true;
};
models = genModels model-configs;
requests.request = {
inherit model;
input = "Your text string goes here";
};
models = linkFarmFromDrvs "models" [
gguf
];
in
testers.runNixOSTest {
name = self.name + "-llama";
nodes.machine =
let
cores = 4;
in
{
virtualisation = {
inherit cores;
memorySize = 8192;
};
systemd.services.local-ai = {
wantedBy = [ "multi-user.target" ];
serviceConfig.ExecStart = "${self}/bin/local-ai --debug --threads ${toString cores} --models-path ${models} --localai-config-dir . --address :${port}";
};
};
name = self.name + "-bert";
nodes.machine = {
imports = [ common-config ];
virtualisation.cores = 2;
virtualisation.memorySize = 2048;
services.local-ai.models = models;
};
passthru = { inherit models requests; };
testScript =
let
# https://localai.io/features/text-generation/#chat-completions
request-chat-completions = {
model = gguf.name;
messages = [{ role = "user"; content = "Say this is a test!"; }];
temperature = 0.7;
};
# https://localai.io/features/text-generation/#edit-completions
request-edit-completions = {
model = gguf.name;
instruction = "rephrase";
input = "Black cat jumped out of the window";
temperature = 0.7;
};
# https://localai.io/features/text-generation/#completions
request-completions = {
model = gguf.name;
prompt = "A long time ago in a galaxy far, far away";
temperature = 0.7;
};
port = "8080";
in
''
machine.wait_for_open_port(${port})
machine.succeed("curl -f http://localhost:${port}/readyz")
machine.succeed("curl -f http://localhost:${port}/v1/models --output models.json")
machine.succeed("${jq}/bin/jq --exit-status 'debug | .data[].id == \"${gguf.name}\"' models.json")
machine.succeed("curl -f http://localhost:${port}/v1/chat/completions --json @${writers.writeJSON "request-chat-completions.json" request-chat-completions} --output chat-completions.json")
machine.succeed("${jq}/bin/jq --exit-status 'debug | .object == \"chat.completion\"' chat-completions.json")
machine.succeed("curl -f http://localhost:${port}/v1/edits --json @${writers.writeJSON "request-edit-completions.json" request-edit-completions} --output edit-completions.json")
machine.succeed("${jq}/bin/jq --exit-status 'debug | .object == \"edit\"' edit-completions.json")
machine.succeed("curl -f http://localhost:${port}/v1/completions --json @${writers.writeJSON "request-completions.json" request-completions} --output completions.json")
machine.succeed("${jq}/bin/jq --exit-status 'debug | .object ==\"text_completion\"' completions.json")
machine.succeed("${jq}/bin/jq --exit-status 'debug | .data[].id == \"${model}\"' models.json")
machine.succeed("curl -f http://localhost:${port}/embeddings --json @${writers.writeJSON "request.json" requests.request} --output embeddings.json")
machine.succeed("${jq}/bin/jq --exit-status 'debug | .model == \"${model}\"' embeddings.json")
'';
};
} // lib.optionalAttrs self.features.with_tts {
# https://localai.io/features/text-to-audio/#piper
tts =
} // lib.optionalAttrs (!self.features.with_cublas && !self.features.with_clblas) {
# https://localai.io/docs/getting-started/manual/
llama =
let
port = "8080";
voice-en-us = fetchzip {
url = "https://github.com/rhasspy/piper/releases/download/v0.0.2/voice-en-us-danny-low.tar.gz";
hash = "sha256-5wf+6H5HeQY0qgdqnAG1vSqtjIFM9lXH53OgouuPm0M=";
stripRoot = false;
model = "gpt-3.5-turbo";
# https://localai.io/advanced/#full-config-model-file-reference
model-configs.${model} = rec {
context_size = 8192;
parameters = {
# https://huggingface.co/lmstudio-community/Meta-Llama-3-8B-Instruct-GGUF
# https://ai.meta.com/blog/meta-llama-3/
model = fetchurl {
url = "https://huggingface.co/lmstudio-community/Meta-Llama-3-8B-Instruct-GGUF/resolve/main/Meta-Llama-3-8B-Instruct-Q4_K_M.gguf";
sha256 = "ab9e4eec7e80892fd78f74d9a15d0299f1e22121cea44efd68a7a02a3fe9a1da";
};
# defaults from:
# https://deepinfra.com/meta-llama/Meta-Llama-3-8B-Instruct
temperature = 0.7;
top_p = 0.9;
top_k = 0;
# following parameter leads to outputs like: !!!!!!!!!!!!!!!!!!!
#repeat_penalty = 1;
presence_penalty = 0;
frequency_penalty = 0;
max_tokens = 100;
};
stopwords = [ "<|eot_id|>" ];
template = {
# Templates implement following specifications
# https://github.com/meta-llama/llama3/tree/main?tab=readme-ov-file#instruction-tuned-models
# ... and are insprired by:
# https://github.com/mudler/LocalAI/blob/master/embedded/models/llama3-instruct.yaml
#
# The rules for template evaluateion are defined here:
# https://pkg.go.dev/text/template
chat_message = ''
<|start_header_id|>{{.RoleName}}<|end_header_id|>
{{.Content}}${builtins.head stopwords}'';
chat = "<|begin_of_text|>{{.Input}}<|start_header_id|>assistant<|end_header_id|>";
};
};
ggml-tiny-en = fetchurl {
url = "https://huggingface.co/ggerganov/whisper.cpp/resolve/main/ggml-tiny.en-q5_1.bin";
hash = "sha256-x3xXZvHO8JtrfUfyG1Rsvd1BV4hrO11tT3CekeZsfCs=";
};
whisper-en = {
name = "whisper-en";
backend = "whisper";
parameters.model = ggml-tiny-en.name;
};
models = symlinkJoin {
name = "models";
paths = [
voice-en-us
(linkFarmFromDrvs "whisper-en" [
(writers.writeYAML "whisper-en.yaml" whisper-en)
ggml-tiny-en
])
];
models = genModels model-configs;
requests = {
# https://localai.io/features/text-generation/#chat-completions
chat-completions = {
inherit model;
messages = [{ role = "user"; content = "1 + 2 = ?"; }];
};
# https://localai.io/features/text-generation/#edit-completions
edit-completions = {
inherit model;
instruction = "rephrase";
input = "Black cat jumped out of the window";
max_tokens = 50;
};
# https://localai.io/features/text-generation/#completions
completions = {
inherit model;
prompt = "A long time ago in a galaxy far, far away";
};
};
in
testers.runNixOSTest {
name = self.name + "-tts";
nodes.machine =
let
cores = 2;
in
{
virtualisation = {
inherit cores;
};
systemd.services.local-ai = {
wantedBy = [ "multi-user.target" ];
serviceConfig.ExecStart = "${self}/bin/local-ai --debug --threads ${toString cores} --models-path ${models} --localai-config-dir . --address :${port}";
};
};
name = self.name + "-llama";
nodes.machine = {
imports = [ common-config ];
virtualisation.cores = 4;
virtualisation.memorySize = 8192;
services.local-ai.models = models;
};
passthru = { inherit models requests; };
testScript =
let
request = {
model = "en-us-danny-low.onnx";
backend = "piper";
input = "Hello, how are you?";
};
port = "8080";
in
''
machine.wait_for_open_port(${port})
machine.succeed("curl -f http://localhost:${port}/readyz")
machine.succeed("curl -f http://localhost:${port}/tts --json @${writers.writeJSON "request.json" request} --output out.wav")
machine.succeed("curl -f http://localhost:${port}/v1/audio/transcriptions --header 'Content-Type: multipart/form-data' --form file=@out.wav --form model=${whisper-en.name} --output transcription.json")
machine.succeed("${jq}/bin/jq --exit-status 'debug | .segments | first.text == \"${request.input}\"' transcription.json")
machine.succeed("curl -f http://localhost:${port}/v1/models --output models.json")
machine.succeed("${jq}/bin/jq --exit-status 'debug | .data[].id == \"${model}\"' models.json")
machine.succeed("curl -f http://localhost:${port}/v1/chat/completions --json @${writers.writeJSON "request-chat-completions.json" requests.chat-completions} --output chat-completions.json")
machine.succeed("${jq}/bin/jq --exit-status 'debug | .object == \"chat.completion\"' chat-completions.json")
machine.succeed("${jq}/bin/jq --exit-status 'debug | .choices | first.message.content | tonumber == 3' chat-completions.json")
machine.succeed("curl -f http://localhost:${port}/v1/edits --json @${writers.writeJSON "request-edit-completions.json" requests.edit-completions} --output edit-completions.json")
machine.succeed("${jq}/bin/jq --exit-status 'debug | .object == \"edit\"' edit-completions.json")
machine.succeed("${jq}/bin/jq --exit-status '.usage.completion_tokens | debug == ${toString requests.edit-completions.max_tokens}' edit-completions.json")
machine.succeed("curl -f http://localhost:${port}/v1/completions --json @${writers.writeJSON "request-completions.json" requests.completions} --output completions.json")
machine.succeed("${jq}/bin/jq --exit-status 'debug | .object ==\"text_completion\"' completions.json")
machine.succeed("${jq}/bin/jq --exit-status '.usage.completion_tokens | debug == ${toString model-configs.${model}.parameters.max_tokens}' completions.json")
'';
};
} // lib.optionalAttrs (self.features.with_tts && !self.features.with_cublas && !self.features.with_clblas) {
# https://localai.io/features/text-to-audio/#piper
tts =
let
model-stt = "whisper-en";
model-configs.${model-stt} = {
backend = "whisper";
parameters.model = fetchurl {
url = "https://huggingface.co/ggerganov/whisper.cpp/resolve/main/ggml-tiny.en-q5_1.bin";
hash = "sha256-x3xXZvHO8JtrfUfyG1Rsvd1BV4hrO11tT3CekeZsfCs=";
};
};
model-tts = "piper-en";
model-configs.${model-tts} = {
backend = "piper";
parameters.model = "en-us-danny-low.onnx";
};
models =
let
models = genModels model-configs;
in
symlinkJoin {
inherit (models) name;
paths = [
models
(fetchzip {
url = "https://github.com/rhasspy/piper/releases/download/v0.0.2/voice-en-us-danny-low.tar.gz";
hash = "sha256-5wf+6H5HeQY0qgdqnAG1vSqtjIFM9lXH53OgouuPm0M=";
stripRoot = false;
})
];
};
requests.request = {
model = model-tts;
input = "Hello, how are you?";
};
in
testers.runNixOSTest {
name = self.name + "-tts";
nodes.machine = {
imports = [ common-config ];
virtualisation.cores = 2;
services.local-ai.models = models;
};
passthru = { inherit models requests; };
testScript =
let
port = "8080";
in
''
machine.wait_for_open_port(${port})
machine.succeed("curl -f http://localhost:${port}/readyz")
machine.succeed("curl -f http://localhost:${port}/v1/models --output models.json")
machine.succeed("${jq}/bin/jq --exit-status 'debug' models.json")
machine.succeed("curl -f http://localhost:${port}/tts --json @${writers.writeJSON "request.json" requests.request} --output out.wav")
machine.succeed("curl -f http://localhost:${port}/v1/audio/transcriptions --header 'Content-Type: multipart/form-data' --form file=@out.wav --form model=${model-stt} --output transcription.json")
machine.succeed("${jq}/bin/jq --exit-status 'debug | .segments | first.text == \"${requests.request.input}\"' transcription.json")
'';
};
}

View File

@ -0,0 +1,48 @@
{ lib
, stdenvNoCC
, fetchFromGitHub
, nix-update-script
, gdk-pixbuf
, gtk-engine-murrine
, gtk_engines
, librsvg
}:
stdenvNoCC.mkDerivation (finalAttrs: {
pname = "marwaita-x";
version = "0.8.1";
src = fetchFromGitHub {
owner = "darkomarko42";
repo = "marwaita-x";
rev = finalAttrs.version;
sha256 = "sha256-AkhysmA7QTHiH6yLEHFHgXFhRXb3l0elvYfy+oXsvZE=";
};
buildInputs = [
gdk-pixbuf
gtk_engines
librsvg
];
propagatedUserEnvPkgs = [
gtk-engine-murrine
];
installPhase = ''
runHook preInstall
mkdir -p $out/share/themes
cp -a Marwaita* $out/share/themes
runHook postInstall
'';
passthru.updateScript = nix-update-script { };
meta = {
description = "A new version for Marwaita GTK theme";
homepage = "https://www.pling.com/p/2044790/";
license = lib.licenses.gpl3Only;
platforms = lib.platforms.unix;
maintainers = with lib.maintainers; [ romildo ];
};
})

View File

@ -1,4 +1,10 @@
{ lib, rustPlatform, fetchFromGitHub }:
{
lib,
rustPlatform,
fetchFromGitHub,
gnuplot,
makeWrapper,
}:
rustPlatform.buildRustPackage rec {
pname = "mini-calc";
version = "2.13.0";
@ -11,6 +17,14 @@ rustPlatform.buildRustPackage rec {
};
cargoHash = "sha256-QFzrJBnGKAgDhjbbik0WP3Y1fNoHMAiWpEHfidFQGPk=";
nativeBuildInputs = [ makeWrapper ];
postFixup = ''
wrapProgram $out/bin/mini-calc \
--prefix PATH : "${lib.makeBinPath [ gnuplot ]}"
'';
meta = {
description = "A fully-featured minimalistic configurable calculator written in Rust";
changelog = "https://github.com/coco33920/calc/blob/${version}/CHANGELOG.md";

View File

@ -0,0 +1,11 @@
--- a/main.h
+++ b/main.h
@@ -68,7 +68,7 @@ memset(VAR,0,SIZE * sizeof(TYPE));
-#ifdef __GLIBC__
+#if defined(__GLIBC__) || defined (__APPLE__)
extern char *__progname;
#else
char *__progname;

View File

@ -0,0 +1,56 @@
{ lib
, stdenv
, fetchurl
, autoreconfHook
}:
stdenv.mkDerivation (finalAttrs: {
pname = "missidentify";
version = "1.0";
src = fetchurl {
url = "mirror://sourceforge/project/missidentify/missidentify/missidentify-${finalAttrs.version}/missidentify-${finalAttrs.version}.tar.gz";
hash = "sha256-nnIRN8hpKM0IZCe0HUrrJGrxvBYKeBmdU168rlo8op0=";
};
patches = [
# define PATH_MAX variable to fix a FTBFS in Hurd.
(fetchurl {
name = "fix-FTBFS-Hurd.patch";
url = "https://salsa.debian.org/pkg-security-team/missidentify/-/raw/14b7169c3157dbad65fc80fdd82ec6634df20ffd/debian/patches/fix-FTBFS-Hurd.patch";
hash = "sha256-wGEzTfT76s5Q7s/5s913c4x9MMn9c0v/4Lhr+QakPQY=";
})
# fix a hyphen used as minus sign and a typo in manpage.
(fetchurl {
name = "fix-manpage.patch";
url = "https://salsa.debian.org/pkg-security-team/missidentify/-/raw/14b7169c3157dbad65fc80fdd82ec6634df20ffd/debian/patches/fix-manpage.patch";
hash = "sha256-7LzQs6ETRSjdnEhlKOVWC3grevwOmGs0h4Z6AYGysD8=";
})
# fix darwin build
./fix-darwin-build.patch
];
nativeBuildInputs = [ autoreconfHook ];
configureFlags = lib.optionals (stdenv.hostPlatform.isAarch32 || stdenv.hostPlatform.isAarch64) [ "--build=arm" ];
meta = with lib; {
description = "Find Win32 applications";
longDescription = ''
Miss Identify is a program to find Win32 applications. In
its default mode it displays the filename of any executable
that does not have an executable extension (i.e. exe, dll,
com, sys, cpl, hxs, hxi, olb, rll, or tlb). The program can
also be run to display all executables encountered,
regardless of the extension. This is handy when looking
for all of the executables on a drive. Other options allow
the user to record the strings found in an executable and
to work recursively.
'';
mainProgram = "missidentify";
homepage = "https://missidentify.sourceforge.net";
maintainers = with maintainers; [ d3vil0p3r ];
platforms = platforms.unix;
license = licenses.gpl2Only;
};
})

View File

@ -0,0 +1,36 @@
{ stdenv
, lib
, fetchFromGitHub
, runtimeShell
}:
stdenv.mkDerivation rec {
pname = "mo";
version = "3.0.5";
src = fetchFromGitHub {
owner = "tests-always-included";
repo = pname;
rev = version;
hash = "sha256-CFAvTpziKzSkdomvCf8PPXYbYcJxjB4EValz2RdD2b0=";
};
dontConfigure = true;
dontBuild = true;
installPhase = ''
runHook preInstall
mkdir -p $out/bin
cp mo $out/bin/.
runHook postInstall
'';
meta = with lib; {
description = "Moustache templates for Bash";
homepage = "https://github.com/tests-always-included/mo";
license = licenses.mit;
maintainers = with maintainers; [ sheepforce ];
};
}

View File

@ -12,11 +12,11 @@
, gnused
, lib
, makeWrapper
, sshpass
}:
let
runtimeDeps = [
gitMinimal # for git flakes
rsync
nix
coreutils
curl # when uploading tarballs
@ -24,16 +24,18 @@ let
gawk
findutils
gnused # needed by ssh-copy-id
sshpass # used to provide password for ssh-copy-id
rsync # used to upload extra-files
];
in
stdenv.mkDerivation (finalAttrs: {
pname = "nixos-anywhere";
version = "1.1.2";
version = "1.2.0";
src = fetchFromGitHub {
owner = "numtide";
repo = "nixos-anywhere";
rev = finalAttrs.version;
hash = "sha256-JzgZnHQ4Bknh1ebE4iMVzR3cWZG+8k7MRy0X7cNSnBE=";
hash = "sha256-u3PFJup/XOz2MBhvqCzm94iH6Z4nrE0KmBgT/OnNDqU=";
};
nativeBuildInputs = [ makeWrapper ];
installPhase = ''

View File

@ -5,16 +5,16 @@
}:
buildGoModule rec {
pname = "nom";
version = "2.2.1";
version = "2.2.3";
src = fetchFromGitHub {
owner = "guyfedwards";
repo = "nom";
rev = "v${version}";
hash = "sha256-AAgkxBbGH45n140jm28+J3hqYxzUIL6IVLGWD9oBexo=";
hash = "sha256-W0HDoQURZxTvMyFfRGOu8gcZJihtvXvrEaObmi/CAk0=";
};
vendorHash = "sha256-fP6yxfIQoVaBC9hYcrCyo3YP3ntEVDbDTwKMO9TdyDI=";
vendorHash = "sha256-wWdsLU656wBAUmnVw21wo+a/OLmyhZ2Bq0j8S190XQs=";
meta = with lib; {
homepage = "https://github.com/guyfedwards/nom";

View File

@ -0,0 +1,89 @@
{
lib,
stdenv,
cmake,
ninja,
fetchFromGitHub,
fetchpatch,
python3,
opencv,
nlohmann_json,
nanoflann,
glm,
cxxopts,
config,
# Upstream has rocm/hip support, too. anyone?
cudaSupport ? config.cudaSupport,
cudaPackages,
autoAddDriverRunpath,
}:
let
version = "1.1.2";
torch = python3.pkgs.torch.override { inherit cudaSupport; };
# Using a normal stdenv with cuda torch gives
# ld: /nix/store/k1l7y96gv0nc685cg7i3g43i4icmddzk-python3.11-torch-2.2.1-lib/lib/libc10.so: undefined reference to `std::ios_base_library_init()@GLIBCXX_3.4.32'
stdenv' = if cudaSupport then cudaPackages.backendStdenv else stdenv;
in
stdenv'.mkDerivation {
pname = "opensplat";
inherit version;
src = fetchFromGitHub {
owner = "pierotofy";
repo = "OpenSplat";
rev = "refs/tags/v${version}";
hash = "sha256-3tk62b5fSf6wzuc5TwkdfAKgUMrw3ZxetCJa2RVMS/s=";
};
patches = [
(fetchpatch {
name = "install-executables.patch";
url = "https://github.com/pierotofy/OpenSplat/commit/b4c4176819b508978583b7ebf66306171807a8e6.patch";
hash = "sha256-BUgPMcO3lt3ZEzv24u36k3aTEIoloOhxrCGi1KQ5Epk=";
})
];
postPatch = ''
# the two vendored gsplats are so heavily modified they may be considered a fork
find vendor ! -name 'gsplat*' -maxdepth 1 -mindepth 1 -exec rm -rf {} +
mkdir vendor/{nanoflann,glm}
ln -s ${glm}/include/glm vendor/glm/glm
ln -s ${nanoflann}/include/nanoflann.hpp vendor/nanoflann/nanoflann.hpp
ln -s ${nlohmann_json}/include/nlohmann vendor/json
ln -s ${cxxopts}/include/cxxopts.hpp vendor/cxxopts.hpp
'';
nativeBuildInputs = [
cmake
ninja
] ++ lib.optionals cudaSupport [
cudaPackages.cuda_nvcc
autoAddDriverRunpath
];
buildInputs = [
nlohmann_json
torch.cxxdev
torch
opencv
] ++ lib.optionals cudaSupport [
cudaPackages.cuda_cudart
];
env.TORCH_CUDA_ARCH_LIST = "${lib.concatStringsSep ";" python3.pkgs.torch.cudaCapabilities}";
cmakeFlags = [
(lib.cmakeBool "CMAKE_SKIP_RPATH" true)
] ++ lib.optionals cudaSupport [
(lib.cmakeFeature "GPU_RUNTIME" "CUDA")
(lib.cmakeFeature "CUDA_TOOLKIT_ROOT_DIR" "${cudaPackages.cudatoolkit}/")
];
meta = {
description = "Production-grade 3D gaussian splatting";
homepage = "https://github.com/pierotofy/OpenSplat/";
license = lib.licenses.mit;
maintainers = [ lib.maintainers.jcaesar ];
platforms = lib.platforms.linux ++ lib.optionals (!cudaSupport) lib.platforms.darwin;
};
}

View File

@ -31,13 +31,13 @@
stdenv.mkDerivation rec {
pname = "openvas-scanner";
version = "23.0.1";
version = "23.1.0";
src = fetchFromGitHub {
owner = "greenbone";
repo = "openvas-scanner";
rev = "refs/tags/v${version}";
hash = "sha256-pqbwi3btNEM+qiTqtjIxiDv2wMf1LerltFvLCybiW0Y=";
hash = "sha256-2tMCyEBVR/DQP7Dny5iPypv2IWkurfxhZEHC/f+Pe8c=";
};
nativeBuildInputs = [

View File

@ -1,20 +1,19 @@
{ lib
, stdenv
, fetchurl
, jre
, makeWrapper
{
lib,
stdenv,
fetchurl,
jre,
makeWrapper,
nix-update-script,
}:
let
version = "0.14.1";
peergos = fetchurl {
url = "https://github.com/Peergos/web-ui/releases/download/v${version}/Peergos.jar";
hash = "sha256-oCsUuFxTAL0vAabGggGhZHaF40A5TLfkT15HYPiKHlU=";
};
in
stdenv.mkDerivation rec {
pname = "peergos";
inherit version;
version = "0.17.0";
src = fetchurl {
url = "https://github.com/Peergos/web-ui/releases/download/v${version}/Peergos.jar";
hash = "sha256-sQPEKvtQDRQ4dF22tZjPhK7DLtDVAcudxoA4+GOeeZA=";
};
dontUnpack = true;
dontBuild = true;
@ -24,21 +23,33 @@ stdenv.mkDerivation rec {
installPhase = ''
runHook preInstall
install -D ${peergos} $out/share/java/peergos.jar
makeWrapper ${lib.getExe jre} $out/bin/${pname} \
--add-flags "-jar -Djava.library.path=native-lib $out/share/java/${pname}.jar"
install -D ${src} $out/share/java/peergos.jar
makeWrapper ${lib.getExe jre} $out/bin/peergos \
--add-flags "-jar -Djava.library.path=native-lib $out/share/java/peergos.jar"
runHook postInstall
'';
meta = with lib; {
passthru.updateScript = nix-update-script {
extraArgs = [
"--version-regex"
"^(v[0-9.]+)$"
];
};
meta = {
changelog = "https://github.com/Peergos/web-ui/releases/tag/v${version}";
description = "A p2p, secure file storage, social network and application protocol";
mainProgram = "peergos";
downloadPage = "https://github.com/Peergos/web-ui";
homepage = "https://peergos.org/";
# peergos have agpt3 license, peergos-web-ui have gpl3, both are used
license = [ licenses.agpl3Only licenses.gpl3Only ];
platforms = platforms.all;
maintainers = with maintainers; [ raspher ];
sourceProvenance = with sourceTypes; [ binaryBytecode ];
license = [
lib.licenses.agpl3Only
lib.licenses.gpl3Only
];
mainProgram = "peergos";
maintainers = with lib.maintainers; [ raspher ];
platforms = lib.platforms.all;
sourceProvenance = with lib.sourceTypes; [ binaryBytecode ];
};
}

View File

@ -6,22 +6,26 @@
python3.pkgs.buildPythonApplication rec {
pname = "route-graph";
version = "0.2.1";
version = "0.2.2";
pyproject = true;
src = fetchFromGitHub {
owner = "audiusGmbH";
repo = "route-graph";
rev = "refs/tags/${version}";
hash = "sha256-OOXLmHxWre5t4tysDXV23PTkyUG6Zcpanw0fVCOLFTM=";
hash = "sha256-HmfmUeT5vt0yWVs7GhIPVt4NZtTfe7HYPLRqfQE/tZM=";
};
pythonRelaxDeps = [
"typer"
"typing-extensions"
];
nativeBuildInputs = with python3.pkgs; [
build-system = with python3.pkgs; [
poetry-core
];
nativeBuildInputs = with python3.pkgs; [
pythonRelaxDepsHook
];

View File

@ -2,13 +2,13 @@
buildGoModule rec {
pname = "simplotask";
version = "1.15.1";
version = "1.16.0";
src = fetchFromGitHub {
owner = "umputun";
repo = "spot";
rev = "v${version}";
hash = "sha256-XLkq8Oe3EsP0wf0sA7NSZWIsQQnOAGmvlVQad35+5Ws=";
hash = "sha256-VnQIg5HXZZwvYpaYDF1CIphLtE4S+1zADE1WnicXOSQ=";
};
vendorHash = null;

View File

@ -11,7 +11,7 @@
}:
python3Packages.buildPythonApplication rec {
pname = "snapcraft";
version = "8.2.0";
version = "8.2.1";
pyproject = true;
@ -24,7 +24,7 @@ python3Packages.buildPythonApplication rec {
owner = "canonical";
repo = "snapcraft";
rev = "refs/tags/${version}";
hash = "sha256-uRapRL+492FOju83o3OBsYK52hwOOG6b4EbdMVpAlBs=";
hash = "sha256-PVJVvkc/LtGFbs93OWmkopaAXZFudLJedpmetrjU010=";
};
patches = [

View File

@ -12,16 +12,16 @@
buildGoModule rec {
pname = "stackit-cli";
version = "0.2.3";
version = "0.3.0";
src = fetchFromGitHub {
owner = "stackitcloud";
repo = "stackit-cli";
rev = "v${version}";
hash = "sha256-ci7P0VbIuYoIzaiNhUCNRFa3YxYxBsat5U46DwGq6WY=";
hash = "sha256-EoZ1ThAve08NitKf6jPJNyqkGz0JUW2GmzKtvWm9cDU=";
};
vendorHash = "sha256-ecf/7BoCvybga8RVRiXvrAf2a5uLvIOFk4qNJiguSpo=";
vendorHash = "sha256-WQNb4vs1qcsY0hqlLXNiH67065/yq5xZEgZBOwFZzNM=";
subPackages = [ "." ];

View File

@ -1,7 +1,8 @@
{ stdenv, cmake, fetchFromGitHub, lib }: let
{ stdenv, cmake, fetchFromGitHub, fetchpatch, lib }: let
version = "1.2.3";
in stdenv.mkDerivation {
name = "stduuid-${version}";
pname = "stduuid";
inherit version;
src = fetchFromGitHub {
owner = "mariusbancila";
@ -12,6 +13,15 @@ in stdenv.mkDerivation {
nativeBuildInputs = [ cmake ];
patches = [
# stduuid report version 1.0 instead of 1.2.3 for cmake's find_package to properly work
# If version is updated one day, this patch will need to be updated
(fetchpatch {
url = "https://github.com/OlivierLDff/stduuid/commit/b02c70c0a4bef2c82152503e13c9a67d6631b13d.patch";
hash = "sha256-tv4rllhngdgjXX35kcM69yXo0DXF/BQ+AUbiC1gJIU8=";
})
];
meta = {
description = "A C++17 cross-platform implementation for UUIDs";
license = lib.licenses.mit;

View File

@ -0,0 +1,41 @@
{
lib,
buildGoModule,
fetchFromGitHub,
}: let
version = "0.26.1";
in
buildGoModule {
pname = "step-cli";
inherit version;
src = fetchFromGitHub {
owner = "smallstep";
repo = "cli";
rev = "refs/tags/v${version}";
hash = "sha256-BVxdgyQsfCwHw/zjP3AKNib3sRWoBpMlZ7vh71nso94=";
};
ldflags = [
"-w"
"-s"
"-X=main.Version=${version}"
];
preCheck = ''
# Tries to connect to smallstep.com
rm command/certificate/remote_test.go
'';
vendorHash = "sha256-Z6wrWkyAGi01gH7+v2+VkyqRNqDwLFVwXm/1FIMzURg=";
meta = {
description = "A zero trust swiss army knife for working with X509, OAuth, JWT, OATH OTP, etc";
homepage = "https://smallstep.com/cli/";
changelog = "https://github.com/smallstep/cli/blob/v${version}/CHANGELOG.md";
license = lib.licenses.asl20;
maintainers = with lib.maintainers; [isabelroses];
platforms = lib.platforms.linux ++ lib.platforms.darwin;
mainProgram = "step";
};
}

View File

@ -6,13 +6,13 @@
stdenv.mkDerivation rec {
pname = "swaybg";
version = "1.2.0";
version = "1.2.1";
src = fetchFromGitHub {
owner = "swaywm";
repo = "swaybg";
rev = "v${version}";
hash = "sha256-Qk5iGALlSVSzgBJzYzyLdLHhj/Zq1R4nFseACBmIBuA=";
hash = "sha256-IJcPSBJErf8Dy9YhYAc9eg/llgaaLZCQSB0Brof+kpg=";
};
strictDeps = true;

View File

@ -10,14 +10,14 @@
buildGoModule rec {
pname = "symfony-cli";
version = "5.8.15";
vendorHash = "sha256-rkvQhZSoKZIl/gFgekLUelem2FGbRL9gp1LEzYN88Dc=";
version = "5.8.16";
vendorHash = "sha256-bhlD7EgOkWjRTsw1hH0GKjtFkLbOzr28wR4JJKOJwnY=";
src = fetchFromGitHub {
owner = "symfony-cli";
repo = "symfony-cli";
rev = "v${version}";
hash = "sha256-HbBg2oCsogY3X4jgjknqwNe2bszXjylvE+h5/iyg2pM=";
hash = "sha256-V67RLa/Tn9ZdV+vnhFSht0wtIYYZOAGAYP9R1Lxn9aI=";
};
ldflags = [

View File

@ -0,0 +1,97 @@
{ gccStdenv
, lib
, fetchFromGitHub
, fetchpatch
, unstableGitUpdater
, libpng
, perl
, SDL2
, zlib
}:
gccStdenv.mkDerivation (finalAttrs: {
pname = "ueviewer";
version = "0-unstable-2024-02-23";
src = fetchFromGitHub {
owner = "gildor2";
repo = "UEViewer";
rev = "a0bfb468d42be831b126632fd8a0ae6b3614f981";
hash = "sha256-Cz4jK2jJMzz57/RcEzjIjD611vCy7l3xQ0pQZjneTFQ=";
};
patches = [
# Fix compilation on Darwin
# Remove when https://github.com/gildor2/UEViewer/pull/319 merged
(fetchpatch {
name = "0001-ueviewer-Dont-use-c++2a-standard.patch";
url = "https://github.com/gildor2/UEViewer/commit/d44bef038abca99c84d7f418aedcbcb761de58aa.patch";
hash = "sha256-v68yoBLz0dUB3evlKApKuajKQiOwbJczVeW5oxYaVyw=";
})
];
postPatch = ''
patchShebangs build.sh Unreal/Shaders/make.pl Tools/genmake
# Enable more verbose build output
# Unify -j arguments on make calls
# Show what's being run
substituteInPlace build.sh \
--replace-fail '# echo ">> Debug: $*"' ' echo ">> Debug: $*"' \
--replace-fail 'make -j 4 -f $makefile' 'make -f $makefile' \
--replace-fail 'make -f $makefile' "make ''${enableParallelBuilding:+-j''${NIX_BUILD_CORES}} -f \$makefile SHELL='sh -x'"
# - Use correct compiler from stdenv
# - Use C++ compiler instead of relying on leniency
# -pipe breaks GCC on Darwin: clang-16: error: no input files
substituteInPlace Tools/genmake \
--replace-fail 'my $platf = "gcc";' "my \$platf = \"$CXX\";" \
--replace-fail '-pipe' ""
'';
strictDeps = true;
nativeBuildInputs = [
perl
];
buildInputs = [
libpng
zlib
] ++ lib.optionals (!gccStdenv.hostPlatform.isDarwin) [
SDL2
];
enableParallelBuilding = true;
buildPhase = ''
runHook preBuild
./build.sh
runHook postBuild
'';
installPhase = ''
runHook preInstall
install -Dm755 umodel $out/bin/umodel
runHook postInstall
'';
passthru.updateScript = unstableGitUpdater {
# Tags represent various milestones, nothing that can be mapped to a numerical version number
hardcodeZeroVersion = true;
};
meta = with lib; {
description = "Viewer and exporter for Unreal Engine 1-4 assets (aka umodel)";
homepage = "https://www.gildor.org/en/projects/umodel";
license = licenses.mit;
mainProgram = "umodel";
maintainers = with maintainers; [ OPNA2608 ];
# Hardcoded usage of SSE2
platforms = platforms.x86;
};
})

View File

@ -8,16 +8,16 @@
buildGoModule rec {
pname = "updatecli";
version = "0.75.0";
version = "0.76.0";
src = fetchFromGitHub {
owner = "updatecli";
repo = pname;
rev = "v${version}";
hash = "sha256-8jQCwnc/kj3m/02nrA/na422rrvxxF7D3LzUen3O6ms=";
hash = "sha256-UfiwagyE3w+kcPJnDDNTCGrxghnag/RPz6SSdAglyYA=";
};
vendorHash = "sha256-7LC5gzK54u8zEtDOyeU1kgIycGLxOeMWYrrDTvC3gVQ=";
vendorHash = "sha256-STiVtzA78zeo5wywwzvA0dqmBW3REUvcpOXuWjpxReY=";
# tests require network access
doCheck = false;

View File

@ -13,6 +13,9 @@
, moreutils
, cacert
, nodePackages
, pipewire
, libpulseaudio
, autoPatchelfHook
, withTTS ? true
# Enables the use of vencord from nixpkgs instead of
# letting vesktop manage it's own version
@ -81,6 +84,13 @@ stdenv.mkDerivation (finalAttrs: {
nodePackages.pnpm
nodePackages.nodejs
makeWrapper
autoPatchelfHook
];
buildInputs = [
pipewire
libpulseaudio
stdenv.cc.cc.lib
];
patches = [
@ -106,6 +116,7 @@ stdenv.mkDerivation (finalAttrs: {
# using `pnpm exec` here apparently makes it ignore ELECTRON_SKIP_BINARY_DOWNLOAD
./node_modules/.bin/electron-builder \
--dir \
-c.asarUnpack="**/*.node" \
-c.electronDist=${electron}/libexec/electron \
-c.electronVersion=${electron.version}
'';
@ -115,8 +126,8 @@ stdenv.mkDerivation (finalAttrs: {
''
runHook preInstall
mkdir -p $out/opt/Vesktop/resources
cp dist/linux-*unpacked/resources/app.asar $out/opt/Vesktop/resources
mkdir -p $out/opt/Vesktop
cp -r dist/linux-*unpacked/resources $out/opt/Vesktop/
pushd build
${libicns}/bin/icns2png -x icon.icns

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