Merge staging-next into staging

This commit is contained in:
github-actions[bot]
2023-11-29 00:04:47 +00:00
committed by GitHub
31 changed files with 371 additions and 62 deletions

View File

@@ -37,7 +37,6 @@ of actions is always the same:
- Forget about the failed state of units (`systemctl reset-failed`)
- Reload systemd (`systemctl daemon-reload`)
- Reload systemd user instances (`systemctl --user daemon-reload`)
- Set up tmpfiles (`systemd-tmpfiles --create`)
- Reload units (`systemctl reload`)
- Restart units (`systemctl restart`)
- Start units (`systemctl start`)

View File

@@ -1441,6 +1441,7 @@
./system/boot/stratisroot.nix
./system/boot/modprobe.nix
./system/boot/networkd.nix
./system/boot/unl0kr.nix
./system/boot/plymouth.nix
./system/boot/resolved.nix
./system/boot/shutdown.nix

View File

@@ -889,10 +889,6 @@ while (my $f = <$list_active_users>) {
close($list_active_users) || die("Unable to close the file handle to loginctl");
# Set the new tmpfiles
print STDERR "setting up tmpfiles\n";
system("$new_systemd/bin/systemd-tmpfiles", "--create", "--remove", "--exclude-prefix=/dev") == 0 or $res = 3;
# Before reloading we need to ensure that the units are still active. They may have been
# deactivated because one of their requirements got stopped. If they are inactive
# but should have been reloaded, the user probably expects them to be started.

View File

@@ -150,6 +150,12 @@ in
"systemd-tmpfiles-setup.service"
];
# Allow systemd-tmpfiles to be restarted by switch-to-configuration.
systemd.services."systemd-tmpfiles-setup" = {
unitConfig.RefuseManualStop = "no";
restartTriggers = [ "${config.environment.etc."tmpfiles.d".source}" ];
};
environment.etc = {
"tmpfiles.d".source = (pkgs.symlinkJoin {
name = "tmpfiles.d";

View File

@@ -0,0 +1,89 @@
{ config, lib, pkgs, ... }:
let
cfg = config.boot.initrd.unl0kr;
in
{
options.boot.initrd.unl0kr = {
enable = lib.mkEnableOption (lib.mdDoc "unl0kr in initrd") // {
description = lib.mdDoc ''
Whether to enable the unl0kr on-screen keyboard in initrd to unlock LUKS.
'';
};
};
config = lib.mkIf cfg.enable {
meta.maintainers = with lib.maintainers; [ tomfitzhenry ];
assertions = [
{
assertion = cfg.enable -> config.boot.initrd.systemd.enable;
message = "boot.initrd.unl0kr is only supported with boot.initrd.systemd.";
}
];
boot.initrd.systemd = {
storePaths = with pkgs; [
"${pkgs.gnugrep}/bin/grep"
libinput
xkeyboard_config
"${config.boot.initrd.systemd.package}/lib/systemd/systemd-reply-password"
"${pkgs.unl0kr}/bin/unl0kr"
];
services = {
unl0kr-ask-password = {
description = "Forward Password Requests to unl0kr";
conflicts = [
"emergency.service"
"initrd-switch-root.target"
"shutdown.target"
];
unitConfig.DefaultDependencies = false;
after = [
"systemd-vconsole-setup.service"
"udev.service"
];
before = [
"shutdown.target"
];
script = ''
# This script acts as a Password Agent: https://systemd.io/PASSWORD_AGENTS/
DIR=/run/systemd/ask-password/
# If a user has multiple encrypted disks, the requests might come in different times,
# so make sure to answer as many requests as we can. Once boot succeeds, other
# password agents will be responsible for watching for requests.
while [ -d $DIR ] && [ "$(ls -A $DIR/ask.*)" ];
do
for file in `ls $DIR/ask.*`; do
socket="$(cat "$file" | ${pkgs.gnugrep}/bin/grep "Socket=" | cut -d= -f2)"
${pkgs.unl0kr}/bin/unl0kr | ${config.boot.initrd.systemd.package}/lib/systemd/systemd-reply-password 1 "$socket"
done
done
'';
};
};
paths = {
unl0kr-ask-password = {
description = "Forward Password Requests to unl0kr";
conflicts = [
"emergency.service"
"initrd-switch-root.target"
"shutdown.target"
];
unitConfig.DefaultDependencies = false;
before = [
"shutdown.target"
"paths.target"
"cryptsetup.target"
];
wantedBy = [ "sysinit.target" ];
pathConfig = {
DirectoryNotEmpty = "/run/systemd/ask-password";
MakeDirectory = true;
};
};
};
};
};
}

View File

@@ -813,6 +813,7 @@ in {
systemd-initrd-luks-empty-passphrase = handleTest ./initrd-luks-empty-passphrase.nix { systemdStage1 = true; };
systemd-initrd-luks-password = handleTest ./systemd-initrd-luks-password.nix {};
systemd-initrd-luks-tpm2 = handleTest ./systemd-initrd-luks-tpm2.nix {};
systemd-initrd-luks-unl0kr = handleTest ./systemd-initrd-luks-unl0kr.nix {};
systemd-initrd-modprobe = handleTest ./systemd-initrd-modprobe.nix {};
systemd-initrd-shutdown = handleTest ./systemd-shutdown.nix { systemdStage1 = true; };
systemd-initrd-simple = handleTest ./systemd-initrd-simple.nix {};

View File

@@ -0,0 +1,75 @@
import ./make-test-python.nix ({ lib, pkgs, ... }: let
passphrase = "secret";
in {
name = "systemd-initrd-luks-unl0kr";
meta = with pkgs.lib.maintainers; {
maintainers = [ tomfitzhenry ];
};
enableOCR = true;
nodes.machine = { pkgs, ... }: {
virtualisation = {
emptyDiskImages = [ 512 512 ];
useBootLoader = true;
mountHostNixStore = true;
useEFIBoot = true;
qemu.options = [
"-vga virtio"
];
};
boot.loader.systemd-boot.enable = true;
boot.initrd.availableKernelModules = [
"evdev" # for entering pw
"bochs"
];
environment.systemPackages = with pkgs; [ cryptsetup ];
boot.initrd = {
systemd = {
enable = true;
emergencyAccess = true;
};
unl0kr.enable = true;
};
specialisation.boot-luks.configuration = {
boot.initrd.luks.devices = lib.mkVMOverride {
# We have two disks and only type one password - key reuse is in place
cryptroot.device = "/dev/vdb";
cryptroot2.device = "/dev/vdc";
};
virtualisation.rootDevice = "/dev/mapper/cryptroot";
virtualisation.fileSystems."/".autoFormat = true;
# test mounting device unlocked in initrd after switching root
virtualisation.fileSystems."/cryptroot2".device = "/dev/mapper/cryptroot2";
};
};
testScript = ''
# Create encrypted volume
machine.wait_for_unit("multi-user.target")
machine.succeed("echo -n ${passphrase} | cryptsetup luksFormat -q --iter-time=1 /dev/vdb -")
machine.succeed("echo -n ${passphrase} | cryptsetup luksFormat -q --iter-time=1 /dev/vdc -")
machine.succeed("echo -n ${passphrase} | cryptsetup luksOpen -q /dev/vdc cryptroot2")
machine.succeed("mkfs.ext4 /dev/mapper/cryptroot2")
# Boot from the encrypted disk
machine.succeed("bootctl set-default nixos-generation-1-specialisation-boot-luks.conf")
machine.succeed("sync")
machine.crash()
# Boot and decrypt the disk
machine.start()
machine.wait_for_text("Password required for booting")
machine.screenshot("prompt")
machine.send_chars("${passphrase}")
machine.screenshot("pw")
machine.send_chars("\n")
machine.wait_for_unit("multi-user.target")
assert "/dev/mapper/cryptroot on / type ext4" in machine.succeed("mount"), "/dev/mapper/cryptroot do not appear in mountpoints list"
assert "/dev/mapper/cryptroot2 on /cryptroot2 type ext4" in machine.succeed("mount")
'';
})

View File

@@ -16,6 +16,8 @@ stdenv.mkDerivation rec {
})
];
env.NIX_CFLAGS_COMPILE = lib.optionalString stdenv.cc.isClang "-Wno-implicit-function-declaration";
enableParallelBuilding = true;
buildInputs = [ ncurses ] ++ lib.optional stdenv.isDarwin gettext;

View File

@@ -9,6 +9,16 @@
sha512 = "31d5f9e1d4173280c8de6d9b8551bc6bba5e2c49b84f944f50d42002d5b39c2fb743bc130f26c81160388a102b8301b94a0a378ecdfa6f943860f971a860df8c";
};
extraPatches = [
(fetchpatch {
# Do not crash on systems without an expected statically assumed page size.
# https://phabricator.services.mozilla.com/D194458
name = "mozbz1866025.patch";
url = "https://hg.mozilla.org/mozilla-central/raw-rev/42c80086da4468f407648f2f57a7222aab2e9951";
hash = "sha256-cWOyvjIPUU1tavPRqg61xJ53XE4EJTdsFzadfVxyTyM=";
})
];
meta = {
changelog = "https://www.mozilla.org/en-US/firefox/${version}/releasenotes/";
description = "A web browser built from Firefox source tree";
@@ -30,11 +40,11 @@
firefox-beta = buildMozillaMach rec {
pname = "firefox-beta";
version = "121.0b3";
version = "121.0b4";
applicationName = "Mozilla Firefox Beta";
src = fetchurl {
url = "mirror://mozilla/firefox/releases/${version}/source/firefox-${version}.source.tar.xz";
sha512 = "95dd68c50af5784c44e40ad3a8ac6b4fb259fa8f56bc5e5de940d03dec1838b143712680826b4d260fefdad314464d24679911f21b1095512a86cdf4eb2648c9";
sha512 = "b8c1be63be633744b249d2e0ffe77abcc92f0f70c0d7084395031643fb68c0b1fc32a6fcb55a25fc255e4eb8c40e818b209bb0077e416e652ae0c9463045fc12";
};
meta = {
@@ -59,13 +69,13 @@
firefox-devedition = buildMozillaMach rec {
pname = "firefox-devedition";
version = "121.0b3";
version = "121.0b4";
applicationName = "Mozilla Firefox Developer Edition";
requireSigning = false;
branding = "browser/branding/aurora";
src = fetchurl {
url = "mirror://mozilla/devedition/releases/${version}/source/firefox-${version}.source.tar.xz";
sha512 = "a5ed25159e63122f27bd05810eaf665834022ae407c029734ad41ef1ed5e3956497873f5210b7c385245056718837bd17c47cfc2e2e438a4c3274d2462ce51f8";
sha512 = "11234fda39c80a217a715884524e12febf5f920a680b0828d3619ec6ae97fe6e377c36ac86353f1aadb0569e4f04e4105714c29b447eb80ea9bad18bdd664e75";
};
meta = {

View File

@@ -1,15 +1,15 @@
{
"packageVersion": "119.0.1-1",
"packageVersion": "120.0-1",
"source": {
"rev": "119.0.1-1",
"sha256": "1ghxrylxrb5i37i4z2hrb8dn9lndhs75pjvhdafg079jmar5wfn7"
"rev": "120.0-1",
"sha256": "1wms3kyimmfzl64rbphgap2sm87lwkl0pr24rx4rxf3px3bq97f3"
},
"settings": {
"rev": "095f50ed91aa7db2de9c67763cf46bae09146a58",
"sha256": "0nwrzcqxa72wcbxjbilxl340i69m5l0qr7gq2s6a76bbzxg502gi"
"rev": "b587388bdbe63511c478cb8b5f82c2e80040414c",
"sha256": "03cw6wh7358pgld4qgs534pl2lnfvwc0xl2yyb3n3pyvmba6cyrp"
},
"firefox": {
"version": "119.0.1",
"sha512": "4f3201aee10e7b831cc384b2c7430a24f4de81f703115a917f9eb7acecb2ae1725f11af56c41257a056bb9d7a4d749d590cc9baffcd6e13852be45aaecf8163a"
"version": "120.0",
"sha512": "31d5f9e1d4173280c8de6d9b8551bc6bba5e2c49b84f944f50d42002d5b39c2fb743bc130f26c81160388a102b8301b94a0a378ecdfa6f943860f971a860df8c"
}
}

View File

@@ -0,0 +1,57 @@
{ stdenv
, lib
, boost
, clang-tools
, cmake
, difftastic
, makeWrapper
, meson
, ninja
, nixVersions
, nlohmann_json
, pkg-config
, fetchFromGitHub
}:
stdenv.mkDerivation (finalAttrs: {
pname = "nix-unit";
version = "2.18.0";
src = fetchFromGitHub {
owner = "nix-community";
repo = "nix-unit";
rev = "v${finalAttrs.version}";
hash = "sha256-9wq14p+85oW4HlD42NJ0jyA++z3nEYjFQ6uT40xdfbc=";
};
buildInputs = [
nlohmann_json
# We pin the nix version to a known working one here as upgrades can likely break the build.
# Since the nix language is rather stable we don't always need to have the latest and greatest for unit tests
# On each update of nix unit we should re-evaluate what version we need.
nixVersions.nix_2_18
boost
];
nativeBuildInputs = [
makeWrapper
meson
pkg-config
ninja
# nlohmann_json can be only discovered via cmake files
cmake
] ++ lib.optional stdenv.cc.isClang [ clang-tools ];
postInstall = ''
wrapProgram "$out/bin/nix-unit" --prefix PATH : ${difftastic}/bin
'';
meta = {
description = "Nix unit test runner";
homepage = "https://github.com/nix-community/nix-unit";
license = lib.licenses.gpl3;
maintainers = with lib.maintainers; [ mic92 adisbladis ];
platforms = lib.platforms.unix;
mainProgram = "nix-unit";
};
})

View File

@@ -0,0 +1,57 @@
{ lib
, nixosTests
, stdenv
, fetchFromGitLab
, inih
, libdrm
, libinput
, libxkbcommon
, meson
, ninja
, pkg-config
, scdoc
}:
stdenv.mkDerivation (finalAttrs: {
pname = "unl0kr";
version = "2.0.0";
src = fetchFromGitLab {
domain = "gitlab.com";
owner = "cherrypicker";
repo = "unl0kr";
rev = finalAttrs.version;
fetchSubmodules = true;
hash = "sha256-KPP4Ol1GCAWqdQYlNtKQD/jx8A/xuHdvKjcocPMqWa0=";
};
nativeBuildInputs = [
meson
ninja
pkg-config
scdoc
];
buildInputs = [
inih
libdrm
libinput
libxkbcommon
];
propagatedBuildInputs = [
libxkbcommon
];
passthru = {
tests.unl0kr = nixosTests.systemd-initrd-luks-unl0kr;
};
meta = with lib; {
description = "Framebuffer-based disk unlocker for the initramfs based on LVGL";
homepage = "https://gitlab.com/cherrypicker/unl0kr";
license = licenses.gpl3Plus;
maintainers = with maintainers; [ tomfitzhenry ];
platforms = platforms.linux;
};
})

View File

@@ -20,8 +20,8 @@ stdenv.mkDerivation rec {
"https://github.com/JetBrains/kotlin/releases/download/v${version}/kotlin-native-${arch}-${version}.tar.gz";
getHash = arch: {
"macos-aarch64" = "1pn371hy6hkyji4vkfiw3zw30wy0yyfhkxnkkyr8m0609945mkyj";
"macos-x86_64" = "13c28czvja93zaff0kzqf8crzh998l90gznq0cl6k2j3c0jhyrgm";
"macos-aarch64" = "sha256-Yw6IO8pj0C9XHfzVshcovkoFBUXJ3KixhGoybBRFL2U=";
"macos-x86_64" = "sha256-mnDi8dMCDzGsdPdD1dw4YMBxAfo5FvwDJVU/ew70z9U=";
"linux-x86_64" = "sha256-faMuBYUG5qj0N4vg5EcfWIC3UjXiPhFJuikzXVgNsjw=";
}.${arch};
in

View File

@@ -8,17 +8,26 @@
buildPythonPackage rec {
pname = "calmjs-parse";
version = "1.3.0";
version = "1.3.1";
format = "setuptools";
pyproject = true;
src = fetchFromGitHub {
owner = "calmjs";
repo = "calmjs.parse";
rev = version;
hash = "sha256-QhHNp9g88RhGHqRRjg4nk7aXjAgGCOauOagWJoJ3fqc=";
hash = "sha256-xph+NuTkWfW0t/1vxWBSgsjU7YHQMnsm/W/XdkAnl7I=";
};
postPatch = ''
substituteInPlace setup.py \
--replace "env['PYTHONPATH'] = 'src'" "env['PYTHONPATH'] += ':src'"
'';
nativeBuildInputs = [
setuptools
];
propagatedBuildInputs = [
setuptools
ply
@@ -43,6 +52,7 @@ buildPythonPackage rec {
];
meta = with lib; {
changelog = "https://github.com/calmjs/calmjs.parse/blob/${src.rev}/CHANGES.rst";
description = "Various parsers for ECMA standards";
homepage = "https://github.com/calmjs/calmjs.parse";
license = licenses.mit;

View File

@@ -5,14 +5,14 @@
python3.pkgs.buildPythonApplication rec {
pname = "checkov";
version = "3.1.15";
version = "3.1.18";
pyproject = true;
src = fetchFromGitHub {
owner = "bridgecrewio";
repo = "checkov";
rev = "refs/tags/${version}";
hash = "sha256-n3HMRv14vJvnjVOEfjuQIsVdEd4Uf2iHA9iypPWJO0M=";
hash = "sha256-Rxl+Sjv2ULKHfsPlEirT79NTWoeG8I1jQN9dOWhqAJU=";
};
patches = [

View File

@@ -5,14 +5,14 @@
rustPlatform.buildRustPackage rec {
pname = "regex-cli";
version = "0.1.1";
version = "0.2.0";
src = fetchCrate {
inherit pname version;
hash = "sha256-i+3HluKbR+5e2Nd0E0Xy+mwsC9x3+21rFdCNmII8HsM=";
hash = "sha256-Uo1y3L4l/Ik//NoBLsCqvQmC7ZGaSt0XzT1wDGCoU4U=";
};
cargoHash = "sha256-u6Gaeo9XDcyxZwBt67IF1X7rr4vR9jIrzr8keHGU88w=";
cargoHash = "sha256-O0KAY9XeP+LFcvAwO5SbF5yMHU1KZ77UdkAGAcx1hHc=";
meta = with lib; {
description = "A command line tool for debugging, ad hoc benchmarking and generating regular expressions";

View File

@@ -1,17 +1,17 @@
{ lib, fetchFromGitHub, rustPlatform, pkg-config, openssl, stdenv, Security }:
rustPlatform.buildRustPackage rec {
version = "0.7.2";
version = "0.7.4";
pname = "sccache";
src = fetchFromGitHub {
owner = "mozilla";
repo = "sccache";
rev = "v${version}";
sha256 = "sha256-hup9FM2KEBXRx6NleDGR01C0whJgR1KYyIrcIv2UE80=";
sha256 = "sha256-r5Gev6tnaq8KY26Zl5aDxTomAFw3SPK3szrS4Kc14cI=";
};
cargoSha256 = "sha256-Od1uaKZVAZaIDrsNheR1kYIjnmpnThlU7k3EIKdOjzM=";
cargoSha256 = "sha256-4YeD4UxqhLRg2d2INbMAHrJBTlvuafrKEcjohBDx6CQ=";
nativeBuildInputs = [ pkg-config ];
buildInputs = [ openssl ] ++ lib.optional stdenv.isDarwin Security;

View File

@@ -8,22 +8,22 @@
stdenv.mkDerivation rec {
pname = "cfs-zen-tweaks";
version = "1.2.0";
version = "1.3.0";
src = fetchFromGitHub {
owner = "igo95862";
repo = "cfs-zen-tweaks";
rev = version;
sha256 = "HRR2tdjNmWyrpbcMlihSdb/7g/tHma3YyXogQpRCVyo=";
hash = "sha256-E3sNWWXm0NEqLCzFccd/nfYby+/b/MVjIHeGlDxV1W4=";
};
preConfigure = ''
substituteInPlace set-cfs-zen-tweaks.bash \
substituteInPlace set-cfs-zen-tweaks.sh \
--replace '$(gawk' '$(${gawk}/bin/gawk'
'';
preFixup = ''
chmod +x $out/lib/cfs-zen-tweaks/set-cfs-zen-tweaks.bash
chmod +x $out/lib/cfs-zen-tweaks/set-cfs-zen-tweaks.sh
'';
nativeBuildInputs = [ cmake ];

View File

@@ -17,13 +17,13 @@ let
nodejs = nodejs_18;
pname = "audiobookshelf";
version = "2.5.0";
version = "2.6.0";
src = fetchFromGitHub {
owner = "advplyr";
repo = pname;
rev = "v${version}";
sha256 = "sha256-yPDByM09rc9zRLh0ONcY5bScY4NOrKDv0Pdwo97Czcs=";
sha256 = "sha256-lifvfh9dF3Hbgm5NHrzS9zQdv+INSByNkqMWTxTpUMo=";
};
client = buildNpmPackage {
@@ -37,7 +37,7 @@ let
NODE_OPTIONS = "--openssl-legacy-provider";
npmBuildScript = "generate";
npmDepsHash = "sha256-ZNkHDNjaQbUt3oWnNIYPYkcvjelieY4RJxNSbzR1+JM=";
npmDepsHash = "sha256-FxP1Kysx3ngk3napZ5uvKSabeOypBtA0kjhyAKpcdo8=";
};
wrapper = import ./wrapper.nix {
@@ -52,7 +52,7 @@ in buildNpmPackage {
dontNpmBuild = true;
npmInstallFlags = [ "--only-production" ];
npmDepsHash = "sha256-PVgK8R8sf16KKQS/mPXtvit9CW9+4Gc9Onpaw+SSgNI=";
npmDepsHash = "sha256-NcurZee1Z8Rvm2UcjvckbdirfgiIkXMx9GKbr4x/HqE=";
installPhase = ''
mkdir -p $out/opt/client

View File

@@ -55,7 +55,7 @@ stdenv.mkDerivation rec {
homepage = "https://mapserver.org/mapcache/";
changelog = "https://www.mapserver.org/development/changelog/mapcache/";
license = licenses.mit;
maintainers = with maintainers; [ sikmir ];
maintainers = teams.geospatial.members;
platforms = platforms.unix;
};
}

View File

@@ -57,7 +57,7 @@ stdenv.mkDerivation rec {
homepage = "https://mapserver.org/";
changelog = "https://mapserver.org/development/changelog/";
license = licenses.mit;
maintainers = with maintainers; [ sikmir ];
maintainers = teams.geospatial.members;
platforms = platforms.unix;
};
}

View File

@@ -18,6 +18,6 @@ buildGoModule rec {
homepage = "https://github.com/consbio/mbtileserver";
changelog = "https://github.com/consbio/mbtileserver/blob/v${version}/CHANGELOG.md";
license = licenses.isc;
maintainers = with maintainers; [ sikmir ];
maintainers = teams.geospatial.members;
};
}

View File

@@ -19,6 +19,6 @@ buildGoModule rec {
description = "Lightweight RESTful Geospatial Feature Server for PostGIS in Go";
homepage = "https://github.com/CrunchyData/pg_featureserv";
license = licenses.asl20;
maintainers = with maintainers; [ sikmir ];
maintainers = teams.geospatial.members;
};
}

View File

@@ -31,6 +31,6 @@ buildGoModule rec {
description = "A very thin PostGIS-only tile server in Go";
homepage = "https://github.com/CrunchyData/pg_tileserv";
license = licenses.asl20;
maintainers = with maintainers; [ sikmir ];
maintainers = teams.geospatial.members;
};
}

View File

@@ -25,6 +25,6 @@ buildGoModule rec {
'';
homepage = "https://tile38.com/";
license = licenses.mit;
maintainers = with maintainers; [ sikmir ];
maintainers = teams.geospatial.members;
};
}

View File

@@ -32,7 +32,7 @@ stdenv.mkDerivation rec {
description = "A PostgreSQL/PostGIS extension that provides geospatial routing functionality";
homepage = "https://pgrouting.org/";
changelog = "https://github.com/pgRouting/pgrouting/releases/tag/v${version}";
maintainers = [ maintainers.steve-chavez ];
maintainers = with maintainers; teams.geospatial.members ++ [ steve-chavez ];
platforms = postgresql.meta.platforms;
license = licenses.gpl2Plus;
};

View File

@@ -1,30 +1,38 @@
{lib, stdenv, fetchFromGitHub}:
{ lib
, stdenv
, fetchFromGitHub
}:
stdenv.mkDerivation rec {
name = "${pname}-${version}";
pname = "fbvnc";
version = "1.0.2";
src = fetchFromGitHub {
owner = "zohead";
repo = pname;
sha256 = "0lkr4j1wsa05av2g9w99rr9w4j4k7a21vp36x0a3h50y8bmgwgm1";
rev = "783204ff6c92afec33d6d36f7e74f1fcf2b1b601";
hash = "sha256-oT7+6kIeFDgU6GbcHYQ6k0jCU84p8fTEVgUozYMkeVI=";
};
buildInputs = [];
makeFlags = [
"CC:=$(CC)"
];
installPhase = ''
mkdir -p "$out/bin"
cp fbvnc "$out/bin"
mkdir -p "$out/share/doc/${pname}"
cp README* "$out/share/doc/${pname}"
runHook preInstall
install -Dm555 fbvnc -t "$out/bin"
install -Dm444 README.md -t "$out/share/doc/fbvnc"
runHook postInstall
'';
meta = {
description = "Framebuffer VNC client";
license = lib.licenses.bsd3;
maintainers = [lib.maintainers.raskin];
maintainers = [ lib.maintainers.raskin ];
platforms = lib.platforms.linux;
homepage = "https://github.com/zohead/fbvnc/";
mainProgram = "fbvnc";
};
}

View File

@@ -1,25 +1,23 @@
{ lib
, stdenv
, fetchFromGitHub
, gnugrep
, nix
}:
stdenv.mkDerivation (finalAttrs:{
pname = "nix-direnv";
version = "2.4.0";
version = "2.5.1";
src = fetchFromGitHub {
owner = "nix-community";
repo = "nix-direnv";
rev = finalAttrs.version;
hash = "sha256-h49uz+/YDRwbusiVx6I3HP9P3UZROIOlwjlYYqRjesE=";
hash = "sha256-rMQ+Nb6WqXm66g2TpF8E0Io9WBR0ve06MW8I759gl2M=";
};
# Substitute instead of wrapping because the resulting file is
# getting sourced, not executed:
postPatch = ''
sed -i "1a NIX_BIN_PREFIX=${nix}/bin/" direnvrc
substituteInPlace direnvrc --replace "grep" "${lib.getExe gnugrep}"
'';
installPhase = ''

View File

@@ -5,13 +5,13 @@
buildGoModule rec {
pname = "ipinfo";
version = "3.1.2";
version = "3.2.0";
src = fetchFromGitHub {
owner = pname;
repo = "cli";
rev = "refs/tags/${pname}-${version}";
hash = "sha256-KCdKfZs1u3ZLaG+Lmod/vV0T0LaW8hs4ReGlVA7A9pA=";
hash = "sha256-bqA8Y3mVHSwhUcvr3biWbH6K73MYmo3f7wSMS4J+Bk8=";
};
vendorHash = null;

View File

@@ -38,7 +38,7 @@ stdenv.mkDerivation (finalAttrs: {
owner = "rpm-software-management";
repo = "dnf5";
rev = finalAttrs.version;
hash = "sha256-4ht2KraWKL774QPfZz1OgAuFtPVsMis9WiDS+QFP8JY=";
hash = "sha256-1g3g+6EborZd2ppPMZcy0Wjv07zetATHb/sCkuZz5UM=";
};
nativeBuildInputs = [

View File

@@ -6,13 +6,13 @@
stdenv.mkDerivation rec {
pname = "exploitdb";
version = "2023-11-25";
version = "2023-11-28";
src = fetchFromGitLab {
owner = "exploit-database";
repo = pname;
rev = "refs/tags/${version}";
hash = "sha256-pgHi2DoQ9xjj/hlQIhXijTWqYPYClL6rWtEl2WsCVDE=";
hash = "sha256-3F2x+1d2h0fMy8p0qCOHh7UZyGYc65WkJcHxug0Hg6g=";
};
nativeBuildInputs = [