Merge master into staging-next

This commit is contained in:
nixpkgs-ci[bot]
2025-06-01 06:05:34 +00:00
committed by GitHub
39 changed files with 3249 additions and 308 deletions

View File

@@ -27106,6 +27106,12 @@
githubId = 99486674;
name = "";
};
yanek = {
name = "Noé Ksiazek";
email = "noe.ksiazek@pm.me";
github = "yanek";
githubId = 5952366;
};
yanganto = {
name = "Antonio Yang";
email = "yanganto@gmail.com";

View File

@@ -11,6 +11,7 @@
<!-- To avoid merge conflicts, consider adding your item at an arbitrary place in the list instead. -->
- [gtklock](https://github.com/jovanlanik/gtklock), a GTK-based lockscreen for Wayland. Available as [programs.gtklock](#opt-programs.gtklock.enable).
- [Chrysalis](https://github.com/keyboardio/Chrysalis), a graphical configurator for Kaleidoscope-powered keyboards. Available as [programs.chrysalis](#opt-programs.chrysalis.enable).
- [FileBrowser](https://filebrowser.org/), a web application for managing and sharing files. Available as [services.filebrowser](#opt-services.filebrowser.enable).

View File

@@ -180,6 +180,7 @@
./programs/cdemu.nix
./programs/cfs-zen-tweaks.nix
./programs/chromium.nix
./programs/chrysalis.nix
./programs/clash-verge.nix
./programs/cnping.nix
./programs/command-not-found/command-not-found.nix
@@ -261,6 +262,7 @@
./programs/nano.nix
./programs/nautilus-open-any-terminal.nix
./programs/nbd.nix
./programs/nekoray.nix
./programs/neovim.nix
./programs/nethoscope.nix
./programs/nexttrace.nix

View File

@@ -0,0 +1,25 @@
{
config,
lib,
pkgs,
...
}:
let
cfg = config.programs.chrysalis;
in
{
options = {
programs.chrysalis = {
enable = lib.mkEnableOption "Chrysalis";
package = lib.mkPackageOption pkgs "Chrysalis" { default = "chrysalis"; };
};
};
config = lib.mkIf cfg.enable {
environment.systemPackages = [ cfg.package ];
services.udev.packages = [ cfg.package ];
};
meta.maintainers = with lib.maintainers; [ atalii ];
}

View File

@@ -0,0 +1,90 @@
{
config,
pkgs,
lib,
...
}:
let
cfg = config.programs.nekoray;
in
{
options = {
programs.nekoray = {
enable = lib.mkEnableOption "nekoray, a GUI proxy configuration manager";
package = lib.mkPackageOption pkgs "nekoray" { };
tunMode = {
enable = lib.mkEnableOption "TUN mode of nekoray";
setuid = lib.mkEnableOption ''
setting suid bit for nekobox_core to run as root, which is less
secure than default setcap method but closer to upstream assumptions.
Enable this if you find the default setcap method configured in
this module doesn't work for you
'';
};
};
};
config = lib.mkIf cfg.enable {
environment.systemPackages = [ cfg.package ];
security.wrappers.nekobox_core = lib.mkIf cfg.tunMode.enable {
source = "${cfg.package}/share/nekoray/nekobox_core";
owner = "root";
group = "root";
setuid = lib.mkIf cfg.tunMode.setuid true;
# Taken from https://github.com/SagerNet/sing-box/blob/dev-next/release/config/sing-box.service
capabilities = lib.mkIf (
!cfg.tunMode.setuid
) "cap_net_admin,cap_net_raw,cap_net_bind_service,cap_sys_ptrace,cap_dac_read_search+ep";
};
# avoid resolvectl password prompt popping up three times
# https://github.com/SagerNet/sing-tun/blob/0686f8c4f210f4e7039c352d42d762252f9d9cf5/tun_linux.go#L1062
# We use a hack here to determine whether the requested process is nekobox_core
# Detect whether its capabilities contain at least `net_admin` and `net_raw`.
# This does not reduce security, as we can already bypass `resolved` with them.
# Alternatives to consider:
# 1. Use suid to execute as a specific user, and check username with polkit.
# However, NixOS module doesn't let us to set setuid and capabilities at the
# same time, and it's tricky to make both work together because of some security
# considerations in the kernel.
# 2. Check cmdline to get executable path. This is insecure because the process can
# change its own cmdline. `/proc/<pid>/exe` is reliable but kernel forbids
# checking that entry of process from different users, and polkit runs `spawn`
# as an unprivileged user.
# 3. Put nekobox_core into a systemd service, and let polkit check service name.
# This is the most secure and convenient way but requires heavy modification
# to nekoray source code. Would be good to let upstream support that eventually.
security.polkit.extraConfig =
lib.mkIf (cfg.tunMode.enable && (!cfg.tunMode.setuid) && config.services.resolved.enable)
''
polkit.addRule(function(action, subject) {
const allowedActionIds = [
"org.freedesktop.resolve1.set-domains",
"org.freedesktop.resolve1.set-default-route",
"org.freedesktop.resolve1.set-dns-servers"
];
if (allowedActionIds.indexOf(action.id) !== -1) {
try {
var parentPid = polkit.spawn(["${lib.getExe' pkgs.procps "ps"}", "-o", "ppid=", subject.pid]).trim();
var parentCap = polkit.spawn(["${lib.getExe' pkgs.libcap "getpcaps"}", parentPid]).trim();
if (parentCap.includes("cap_net_admin") && parentCap.includes("cap_net_raw")) {
return polkit.Result.YES;
} else {
return polkit.Result.NOT_HANDLED;
}
} catch (e) {
return polkit.Result.NOT_HANDLED;
}
}
})
'';
};
meta.maintainers = with lib.maintainers; [ aleksana ];
}

View File

@@ -167,7 +167,7 @@ let
presets.recentlyAddedImages
]
'';
apply = type: if builtins.isFunction type then (type uiPresets) else type;
apply = type: if lib.isFunction type then (type uiPresets) else type;
};
blobs_path = mkOption {
type = types.path;
@@ -324,47 +324,47 @@ let
'';
apply =
srcs:
optionalString (srcs != [ ]) (
pkgs.runCommand "stash-${kind}"
{
inherit srcs;
nativeBuildInputs = [ pkgs.yq-go ];
preferLocalBuild = true;
}
''
find $srcs -mindepth 1 -name '*.yml' | while read plugin_file; do
grep -q "^#pkgignore" "$plugin_file" && continue
pkgs.runCommand "stash-${kind}"
{
inherit srcs;
nativeBuildInputs = [ pkgs.yq-go ];
preferLocalBuild = true;
}
''
mkdir -p $out
touch $out/.keep
find $srcs -mindepth 1 -name '*.yml' | while read plugin_file; do
grep -q "^#pkgignore" "$plugin_file" && continue
plugin_dir=$(dirname $plugin_file)
out_path=$out/$(basename $plugin_dir)
mkdir -p $out_path
ls $plugin_dir | xargs -I{} ln -sf "$plugin_dir/{}" $out_path
plugin_dir=$(dirname $plugin_file)
out_path=$out/$(basename $plugin_dir)
mkdir -p $out_path
ls $plugin_dir | xargs -I{} ln -sf "$plugin_dir/{}" $out_path
env \
plugin_id=$(basename $plugin_file .yml) \
plugin_name="$(yq '.name' $plugin_file)" \
plugin_description="$(yq '.description' $plugin_file)" \
plugin_version="$(yq '.version' $plugin_file)" \
plugin_files="$(find -L $out_path -mindepth 1 -type f -printf "%P\n")" \
yq -n '
.id = strenv(plugin_id) |
.name = strenv(plugin_name) |
(
strenv(plugin_description) as $desc |
with(select($desc == "null"); .metadata = {}) |
with(select($desc != "null"); .metadata.description = $desc)
) |
(
strenv(plugin_version) as $ver |
with(select($ver == "null"); .version = "Unknown") |
with(select($ver != "null"); .version = $ver)
) |
.date = (now | format_datetime("2006-01-02 15:04:05")) |
.files = (strenv(plugin_files) | split("\n"))
' > $out_path/manifest
done
''
);
env \
plugin_id=$(basename $plugin_file .yml) \
plugin_name="$(yq '.name' $plugin_file)" \
plugin_description="$(yq '.description' $plugin_file)" \
plugin_version="$(yq '.version' $plugin_file)" \
plugin_files="$(find -L $out_path -mindepth 1 -type f -printf "%P\n")" \
yq -n '
.id = strenv(plugin_id) |
.name = strenv(plugin_name) |
(
strenv(plugin_description) as $desc |
with(select($desc == "null"); .metadata = {}) |
with(select($desc != "null"); .metadata.description = $desc)
) |
(
strenv(plugin_version) as $ver |
with(select($ver == "null"); .version = "Unknown") |
with(select($ver != "null"); .version = $ver)
) |
.date = (now | format_datetime("2006-01-02 15:04:05")) |
.files = (strenv(plugin_files) | split("\n"))
' > $out_path/manifest
done
'';
};
in
{
@@ -512,7 +512,7 @@ in
ExecStartPre = pkgs.writers.writeBash "stash-setup.bash" (
''
install -d ${cfg.settings.generated}
if [[ ! -z "${toString cfg.mutableSettings}" || ! -f ${cfg.dataDir}/config.yml ]]; then
if [[ -z "${toString cfg.mutableSettings}" || ! -f ${cfg.dataDir}/config.yml ]]; then
env \
password=$(< ${cfg.passwordFile}) \
jwtSecretKeyFile=$(< ${cfg.jwtSecretKeyFile}) \

View File

@@ -5,13 +5,13 @@
}:
mkLibretroCore {
core = "fbneo";
version = "0-unstable-2025-05-19";
version = "0-unstable-2025-05-28";
src = fetchFromGitHub {
owner = "libretro";
repo = "fbneo";
rev = "d2cf158e9ba82fc7dfec592452e6113121665c19";
hash = "sha256-dO1R0iIXEo2lrMSOJXlZBw2yXBfyB/1yFfRPYEEAojo=";
rev = "60d812a5a25b7f6cc7df2842264b67847e51122b";
hash = "sha256-4HJZXsgUp0do7T0bwPPuuyoN7XIII3DSzk6LsLqZQeQ=";
};
makefile = "Makefile";

View File

@@ -5,13 +5,13 @@
}:
mkLibretroCore {
core = "puae";
version = "0-unstable-2025-05-14";
version = "0-unstable-2025-05-24";
src = fetchFromGitHub {
owner = "libretro";
repo = "libretro-uae";
rev = "fad7beb42c90a1a04829d465bed951a69cd36f8b";
hash = "sha256-pO45/IvgT2q5k0sBhSNZ6srJx4h2lYSjG/mKFJesGbc=";
rev = "f1c248602abb58e7c570feec3f59f4677407b252";
hash = "sha256-CmdMeAntu+uFp1HowBz3UgMiqFbRrNuMyevTlKxga/M=";
};
makefile = "Makefile";

View File

@@ -1,88 +0,0 @@
{
lib,
fetchFromGitHub,
fetchurl,
pkg-config,
cmake,
python3,
mkDerivation,
libX11,
libXrandr,
qtbase,
qtwebchannel,
qtwebengine,
qtx11extras,
libvdpau,
SDL2,
mpv,
libGL,
}:
let
# During compilation, a CMake bundle is downloaded from `artifacts.plex.tv`,
# which then downloads a handful of web client-related files. To enable
# sandboxed builds, we manually download them and save them so these files
# are fetched ahead-of-time instead of during the CMake build. To update
# plex-media-player use the update.sh script, so the versions and hashes
# for these files are also updated!
depSrcs = import ./deps.nix { inherit fetchurl; };
in
mkDerivation rec {
pname = "plex-media-player";
version = "2.58.1";
vsnHash = "ae73e074";
src = fetchFromGitHub {
owner = "plexinc";
repo = "plex-media-player";
rev = "v${version}-${vsnHash}";
sha256 = "1q20fdp5d0blb0q6p2357bwdc2g65cadkgdp4w533ij2nyaxydjd";
};
nativeBuildInputs = [
pkg-config
cmake
python3
];
buildInputs = [
libX11
libXrandr
qtbase
qtwebchannel
qtwebengine
qtx11extras
libvdpau
SDL2
mpv
libGL
];
preConfigure = with depSrcs; ''
mkdir -p build/dependencies
ln -s ${webClient} build/dependencies/buildid-${webClientBuildId}.cmake
ln -s ${webClientDesktopHash} build/dependencies/web-client-desktop-${webClientDesktopBuildId}.tar.xz.sha1
ln -s ${webClientDesktop} build/dependencies/web-client-desktop-${webClientDesktopBuildId}.tar.xz
ln -s ${webClientTvHash} build/dependencies/web-client-tv-${webClientTvBuildId}.tar.xz.sha1
ln -s ${webClientTv} build/dependencies/web-client-tv-${webClientTvBuildId}.tar.xz
'';
cmakeBuildType = "RelWithDebInfo";
cmakeFlags = [ "-DQTROOT=${qtbase}" ];
# plexmediaplayer currently segfaults under wayland
qtWrapperArgs = [
"--set"
"QT_QPA_PLATFORM"
"xcb"
];
passthru.updateScript = ./update.sh;
meta = with lib; {
description = "Streaming media player for Plex";
license = licenses.gpl2;
maintainers = with maintainers; [ b4dm4n ];
homepage = "https://plex.tv";
mainProgram = "plexmediaplayer";
};
}

View File

@@ -1,28 +0,0 @@
{ fetchurl }:
rec {
webClientBuildId = "183-045db5be50e175";
webClientDesktopBuildId = "4.29.2-e50e175";
webClientTvBuildId = "4.29.6-045db5b";
webClient = fetchurl {
url = "https://artifacts.plex.tv/web-client-pmp/${webClientBuildId}/buildid.cmake";
sha256 = "1xsacy1xb8a9rfdrd7lvx7n3hd0cf2c3mgmg9wl18jvwnqxyac83";
};
webClientDesktopHash = fetchurl {
url = "https://artifacts.plex.tv/web-client-pmp/${webClientBuildId}/web-client-desktop-${webClientDesktopBuildId}.tar.xz.sha1";
sha256 = "07spxyhrg45ppa2zjn3ri4qvi6qimlmq6wmh492r3jkrwd71rxgf";
};
webClientDesktop = fetchurl {
url = "https://artifacts.plex.tv/web-client-pmp/${webClientBuildId}/web-client-desktop-${webClientDesktopBuildId}.tar.xz";
sha256 = "1zll79hpgx8fghx228li9qairfd637yf8rhvjzdgpq4dvn21fv65";
};
webClientTvHash = fetchurl {
url = "https://artifacts.plex.tv/web-client-pmp/${webClientBuildId}/web-client-tv-${webClientTvBuildId}.tar.xz.sha1";
sha256 = "1zzfw2g76wqrxrx9kck5q79if78z91wn3awj703kz9sgxi4bkjsk";
};
webClientTv = fetchurl {
url = "https://artifacts.plex.tv/web-client-pmp/${webClientBuildId}/web-client-tv-${webClientTvBuildId}.tar.xz";
sha256 = "1f1zvrr3c0w37gvl78blg9rgxxi64nc4iv5vd87qbysfh1vpsjz0";
};
}

View File

@@ -1,71 +0,0 @@
#!/usr/bin/env nix-shell
#!nix-shell -i bash -p curl common-updater-scripts nix-prefetch-scripts jq
set -xeuo pipefail
nixpkgs="$(git rev-parse --show-toplevel)"
oldVersion="$(nix-instantiate --eval -E "with import $nixpkgs {}; plex-media-player.version or (builtins.parseDrvName plex-media-player.name).version" | tr -d '"')"
latestTag="$(curl -s https://api.github.com/repos/plexinc/plex-media-player/tags | jq -r '.[] | .name' | sort --version-sort | tail -1)"
latestVersion="$(expr $latestTag : 'v\(.*\)-.*')"
latestHash="$(expr $latestTag : 'v.*-\(.*\)')"
if [ ! "$oldVersion" = "$latestVersion" ]; then
# update default.nix with the new version and hash
expectedHash=$(nix-prefetch-git --url https://github.com/plexinc/plex-media-player.git --rev $latestTag --quiet | jq -r '.sha256')
update-source-version plex-media-player --version-key=vsnHash "${latestHash}" 0000
update-source-version plex-media-player "${latestVersion}" $expectedHash
# extract the webClientBuildId from the source folder
src="$(nix-build --no-out-link $nixpkgs -A plex-media-player.src)"
webClientBuildId="$(grep 'set(WEB_CLIENT_BUILD_ID' $src/CMakeModules/WebClient.cmake | cut -d' ' -f2 | tr -d ')')"
# retreive the included cmake file and hash
{ read -r webClientBuildIdHash; read -r webClientBuildIdPath; } < \
<(nix-prefetch-url --print-path "https://artifacts.plex.tv/web-client-pmp/${webClientBuildId}/buildid.cmake")
webClientDesktopBuildId="$(grep 'set(DESKTOP_VERSION' $webClientBuildIdPath | cut -d' ' -f2 | tr -d ')')"
webClientTvBuildId="$(grep 'set(TV_VERSION' $webClientBuildIdPath | cut -d' ' -f2 | tr -d ')')"
# get the hashes for the other files
webClientDesktopHash="$(nix-prefetch-url "https://artifacts.plex.tv/web-client-pmp/${webClientBuildId}/web-client-desktop-${webClientDesktopBuildId}.tar.xz.sha1")"
webClientDesktop="$(nix-prefetch-url "https://artifacts.plex.tv/web-client-pmp/${webClientBuildId}/web-client-desktop-${webClientDesktopBuildId}.tar.xz")"
webClientTvHash="$(nix-prefetch-url "https://artifacts.plex.tv/web-client-pmp/${webClientBuildId}/web-client-tv-${webClientTvBuildId}.tar.xz.sha1")"
webClientTv="$(nix-prefetch-url "https://artifacts.plex.tv/web-client-pmp/${webClientBuildId}/web-client-tv-${webClientTvBuildId}.tar.xz")"
# update deps.nix
cat > $nixpkgs/pkgs/applications/video/plex-media-player/deps.nix <<EOF
{ fetchurl }:
rec {
webClientBuildId = "${webClientBuildId}";
webClientDesktopBuildId = "${webClientDesktopBuildId}";
webClientTvBuildId = "${webClientTvBuildId}";
webClient = fetchurl {
url = "https://artifacts.plex.tv/web-client-pmp/\${webClientBuildId}/buildid.cmake";
sha256 = "${webClientBuildIdHash}";
};
webClientDesktopHash = fetchurl {
url = "https://artifacts.plex.tv/web-client-pmp/\${webClientBuildId}/web-client-desktop-\${webClientDesktopBuildId}.tar.xz.sha1";
sha256 = "${webClientDesktopHash}";
};
webClientDesktop = fetchurl {
url = "https://artifacts.plex.tv/web-client-pmp/\${webClientBuildId}/web-client-desktop-\${webClientDesktopBuildId}.tar.xz";
sha256 = "${webClientDesktop}";
};
webClientTvHash = fetchurl {
url = "https://artifacts.plex.tv/web-client-pmp/\${webClientBuildId}/web-client-tv-\${webClientTvBuildId}.tar.xz.sha1";
sha256 = "${webClientTvHash}";
};
webClientTv = fetchurl {
url = "https://artifacts.plex.tv/web-client-pmp/\${webClientBuildId}/web-client-tv-\${webClientTvBuildId}.tar.xz";
sha256 = "${webClientTv}";
};
}
EOF
git add "$nixpkgs"/pkgs/applications/video/plex-media-player/{default,deps}.nix
git commit -m "plex-media-player: ${oldVersion} -> ${latestVersion}"
else
echo "plex-media-player is already up-to-date"
fi

View File

@@ -18,14 +18,14 @@
python3Packages.buildPythonApplication rec {
pname = "binary";
version = "5.2";
version = "5.3";
pyproject = false;
src = fetchFromGitHub {
owner = "fizzyizzy05";
repo = "binary";
tag = version;
hash = "sha256-0pVQMPwy/XXJl2fHQ/gIi+e/cJY87CA9G+GPkdYFQBc=";
hash = "sha256-kJLEDE/jHKc/VDGa0lcm4eM7nEMam0fbEW8YJVfc7OY=";
};
strictDeps = true;

View File

@@ -0,0 +1,39 @@
{
lib,
buildGoModule,
fetchFromGitHub,
}:
buildGoModule rec {
pname = "cloudprober";
version = "0.14.0";
src = fetchFromGitHub {
owner = "cloudprober";
repo = "cloudprober";
tag = "v${version}";
hash = "sha256-t32mALyxtapPSzf/pNG0MGS2jjq0Dwm31qQZAlZI5zE=";
};
vendorHash = "sha256-u/glcoLlNXDEWFblnuvRHK9mUNCXTsfcWR+FDsJeOOA=";
checkFlags =
let
# Skip tests that require network access
skippedTests = [
"TestSaveProbesConfig"
"TestRunProbeRealICMP"
"TestMultipleTargetsMultipleRequests"
];
in
[ "-skip=^${builtins.concatStringsSep "$|^" skippedTests}$" ];
meta = {
description = "Monitor availability and performance of various components of your system";
homepage = "https://cloudprober.org/";
changelog = "https://github.com/cloudprober/cloudprober/releases/tag/v${version}";
license = lib.licenses.asl20;
maintainers = with lib.maintainers; [ xgwq ];
mainProgram = "cloudprober";
};
}

View File

@@ -72,7 +72,7 @@ stdenv.mkDerivation (finalAttrs: {
vulkan-tools
];
qrWrapperArgs = [
qtWrapperArgs = [
"--prefix PATH : ${lib.makeBinPath finalAttrs.runtimeInputs}"
];

View File

@@ -8,17 +8,17 @@
}:
buildGoModule rec {
pname = "dae";
version = "0.9.0";
version = "1.0.0";
src = fetchFromGitHub {
owner = "daeuniverse";
repo = "dae";
rev = "v${version}";
hash = "sha256-yW3GDflTd9I4RreWtLQE92aP7BnswJHx44jmTZ81kP8=";
hash = "sha256-RpbWZEoGrCq3Py0hu6YDie6ErDTLS3oabqScPzhCtm0=";
fetchSubmodules = true;
};
vendorHash = "sha256-nThkNyH6TUcFej9IGJ/jME0dGK517d5vJueNU7x86o8=";
vendorHash = "sha256-u2DCHmX7vRNWIQ2Ir3UrxPGduggEqoUr1rnkDfwsT0I=";
proxyVendor = true;

View File

@@ -0,0 +1,52 @@
{
stdenv,
fetchFromGitHub,
flock,
gitUpdater,
bashInteractive,
lib,
}:
stdenv.mkDerivation (finalAttrs: {
pname = "enroot";
version = "3.5.0";
src = fetchFromGitHub {
owner = "NVIDIA";
repo = "enroot";
tag = "v${finalAttrs.version}";
hash = "sha256-Sw4kfsb0Gi21At2pU8lt5wIfCih7VZ7Zf9/62xBKKRU=";
fetchSubmodules = true;
};
postPatch = ''
substituteInPlace Makefile \
--replace-fail 'git submodule update' 'echo git submodule update'
'';
makeTarget = "install";
makeFlags = [
"DESTDIR=${placeholder "out"}"
"prefix=/"
];
nativeBuildInputs = [
flock
];
buildInputs = [
bashInteractive
];
passthru.updateScript = gitUpdater { rev-prefix = "v"; };
meta = {
description = "Simple yet powerful tool to turn traditional container/OS images into unprivileged sandboxes";
license = lib.licenses.asl20;
homepage = "https://github.com/NVIDIA/enroot";
changelog = "https://github.com/NVIDIA/enroot/releases/tag/v${finalAttrs.version}";
platforms = lib.platforms.linux;
maintainers = [ lib.maintainers.lucasew ];
mainProgram = "enroot";
};
})

2566
pkgs/by-name/je/jellytui/Cargo.lock generated Normal file

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,51 @@
{
lib,
rustPlatform,
fetchFromGitHub,
pkg-config,
mpv,
openssl,
makeWrapper,
}:
rustPlatform.buildRustPackage {
pname = "jellytui";
version = "0.1.5";
src = fetchFromGitHub {
owner = "tyrantlink";
repo = "jellytui";
rev = "7b10490261672d750af2e3483b88f7daf017afb6";
hash = "sha256-cMSZDSN2qnTeKL3ZcNVRtS45Xa1kEcps9WpWuWruX/0=";
};
cargoLock = {
lockFile = ./Cargo.lock;
};
nativeBuildInputs = [
pkg-config
makeWrapper
];
buildInputs = [
openssl
mpv
];
postPatch = ''
ln -s ${./Cargo.lock} Cargo.lock
'';
postInstall = ''
wrapProgram $out/bin/jellytui \
--prefix PATH : ${lib.makeBinPath [ mpv ]}
'';
meta = {
description = "TUI client for Jellyfin, using mpv";
homepage = "https://github.com/tyrantlink/jellytui";
license = lib.licenses.gpl3Only;
maintainers = with lib.maintainers; [ yanek ];
mainProgram = "jellytui";
};
}

View File

@@ -8,7 +8,6 @@
zstd,
installShellFiles,
versionCheckHook,
testers,
pie ? stdenv.hostPlatform.isDarwin,
}:
@@ -38,14 +37,11 @@ stdenv.mkDerivation (finalAttrs: {
installManPage ncdu.1
'';
nativeInstallCheckInputs = [
versionCheckHook
];
nativeInstallCheckInputs = [ versionCheckHook ];
versionCheckProgramArg = "--version";
doInstallCheck = true;
passthru.tests.version = testers.testVersion {
package = finalAttrs.finalPackage;
};
passthru.updateScript = ./update.sh;
meta = {
homepage = "https://dev.yorhel.nl/ncdu";
@@ -55,6 +51,7 @@ stdenv.mkDerivation (finalAttrs: {
maintainers = with lib.maintainers; [
pSub
rodrgz
defelo
];
inherit (zig_0_14.meta) platforms;
mainProgram = "ncdu";

5
pkgs/by-name/nc/ncdu/update.sh Executable file
View File

@@ -0,0 +1,5 @@
#!/usr/bin/env nix-shell
#!nix-shell -i bash -p common-updater-scripts coreutils gnused nix-update
version=$(list-git-tags --url=https://g.blicky.net/ncdu.git | tail -1 | sed 's/^v//')
nix-update --version="$version" ncdu

View File

@@ -0,0 +1,43 @@
diff --git a/server.go b/server.go
index c2a6be0..8aeca1c 100644
--- a/server.go
+++ b/server.go
@@ -11,6 +11,7 @@ import (
E "github.com/sagernet/sing/common/exceptions"
"github.com/sagernet/sing/common/metadata"
"github.com/sagernet/sing/service"
+ "golang.org/x/sys/unix"
"log"
"nekobox_core/gen"
"nekobox_core/internal/boxbox"
@@ -359,13 +360,25 @@ func (s *server) CompileGeoSiteToSrs(ctx context.Context, in *gen.CompileGeoSite
}
func (s *server) IsPrivileged(ctx context.Context, _ *gen.EmptyReq) (*gen.IsPrivilegedResponse, error) {
- if runtime.GOOS == "windows" {
- return &gen.IsPrivilegedResponse{
- HasPrivilege: false,
- }, nil
+ ret := false
+ if runtime.GOOS == "windows" || os.Geteuid() == 0 {
+ ret = true
+ } else if runtime.GOOS == "linux" {
+ caps := unix.CapUserHeader{
+ Version: unix.LINUX_CAPABILITY_VERSION_3,
+ Pid: 0, // current
+ }
+ var data [2]unix.CapUserData
+ err := unix.Capget(&caps, &data[0])
+ if err != nil {
+ ret = false
+ } else {
+ // CAP_NET_ADMIN = 12
+ ret = (data[0].Effective & (1 << unix.CAP_NET_ADMIN)) != 0
+ }
}
- return &gen.IsPrivilegedResponse{HasPrivilege: os.Geteuid() == 0}, nil
+ return &gen.IsPrivilegedResponse{HasPrivilege: ret}, nil
}
func (s *server) SpeedTest(ctx context.Context, in *gen.SpeedTestRequest) (*gen.SpeedTestResponse, error) {

View File

@@ -0,0 +1,47 @@
diff --git a/src/global/NekoGui.cpp b/src/global/NekoGui.cpp
index 7943d7a..5bb20cc 100644
--- a/src/global/NekoGui.cpp
+++ b/src/global/NekoGui.cpp
@@ -355,6 +355,12 @@ namespace NekoGui {
// System Utils
QString FindNekoBoxCoreRealPath() {
+ // find in PATH first
+ QString path = QStandardPaths::findExecutable("nekobox_core");
+ if (!path.isEmpty()) {
+ return path;
+ }
+
auto fn = QApplication::applicationDirPath() + "/nekobox_core";
auto fi = QFileInfo(fn);
if (fi.isSymLink()) return fi.symLinkTarget();
diff --git a/src/ui/mainwindow.cpp b/src/ui/mainwindow.cpp
index 9aa46b2..ba7137a 100644
--- a/src/ui/mainwindow.cpp
+++ b/src/ui/mainwindow.cpp
@@ -125,8 +125,7 @@ MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent), ui(new Ui::MainWi
NekoGui::dataStore->core_port = MkPort();
if (NekoGui::dataStore->core_port <= 0) NekoGui::dataStore->core_port = 19810;
- auto core_path = QApplication::applicationDirPath() + "/";
- core_path += "nekobox_core";
+ auto core_path = NekoGui::FindNekoBoxCoreRealPath();
QStringList args;
args.push_back("nekobox");
@@ -844,6 +843,15 @@ bool MainWindow::get_elevated_permissions(int reason) {
return true;
}
if (NekoGui::IsAdmin()) return true;
+ QMessageBox::critical(
+ GetMessageBoxParent(),
+ tr("Unable to elevate privileges when installed with Nix"),
+ tr("Due to the read-only property of Nix store, we cannot set suid for nekobox_core. If you are using NixOS, please set `programs.nekoray.tunMode.enable` option to elevate privileges."),
+ QMessageBox::Ok
+ );
+ return false;
+ // The following code isn't effective, preserve to avoid merge conflict
+
#ifdef Q_OS_LINUX
if (!Linux_HavePkexec()) {
MessageBoxWarning(software_name, "Please install \"pkexec\" first.");

View File

@@ -60,6 +60,11 @@ stdenv.mkDerivation (finalAttrs: {
# we already package those two files in nixpkgs
# we can't place file at that location using our builder so we must change the search directory to be relative to the built executable
./search-for-geodata-in-install-location.patch
# disable suid request as it cannot be applied to nekobox_core in nix store
# and prompt users to use NixOS module instead. And use nekobox_core from PATH
# to make use of security wrappers
./nixos-disable-setuid-request.patch
];
installPhase = ''
@@ -99,6 +104,11 @@ stdenv.mkDerivation (finalAttrs: {
inherit (finalAttrs) version src;
sourceRoot = "${finalAttrs.src.name}/core/server";
patches = [
# also check cap_net_admin so we don't have to set suid
./core-also-check-capabilities.patch
];
vendorHash = "sha256-hZiEIJ4/TcLUfT+pkqs6WfzjqppSTjKXEtQC+DS26Ug=";
# ldflags and tags are taken from script/build_go.sh
@@ -127,7 +137,10 @@ stdenv.mkDerivation (finalAttrs: {
homepage = "https://github.com/Mahdi-zarei/nekoray";
license = lib.licenses.gpl3Plus;
mainProgram = "nekoray";
maintainers = with lib.maintainers; [ tomasajt ];
maintainers = with lib.maintainers; [
tomasajt
aleksana
];
platforms = lib.platforms.linux;
};
})

View File

@@ -8,16 +8,16 @@
buildGoModule (finalAttrs: {
pname = "opnborg";
version = "0.1.68";
version = "0.1.71";
src = fetchFromGitHub {
owner = "paepckehh";
repo = "opnborg";
tag = "v${finalAttrs.version}";
hash = "sha256-fES3YlJu8Zy1CLNEkzWW0KAhy3dZj1JXAT8y9tRjyEA=";
hash = "sha256-hLdPS9LkDdncUsuNY8Bnqxgf0V9unObP2cVHcElCp1Q=";
};
vendorHash = "sha256-u1LZvLAKYd1TQlZkYxgztOm1g94N4orMe6Y1Ab1to5Y=";
vendorHash = "sha256-U4arzJwQoHfdSAe2/giDJ1qDXQl8exSWGMHjwocQ4DE=";
ldflags = [
"-s"

View File

@@ -0,0 +1,50 @@
From 31e8aae418a1af681e389f27d3ad57b5fd7e1ba8 Mon Sep 17 00:00:00 2001
From: Marcin Serwin <marcin@serwin.dev>
Date: Sun, 25 May 2025 01:16:37 +0200
Subject: [PATCH] Emit correct pkg-config file if paths are absolute
CMAKE_INSTALL_INCLUDEDIR and CMAKE_INSTALL_LIBDIR may be defined to be
absolute paths. In this situation they should not be appended to the
prefix.
Signed-off-by: Marcin Serwin <marcin@serwin.dev>
---
CMakeLists.txt | 15 +++++++++++++--
1 file changed, 13 insertions(+), 2 deletions(-)
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 2e84761..f2219e0 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -107,6 +107,17 @@ file(RELATIVE_PATH plutosvg_pc_prefix_relative
set(plutosvg_pc_cflags "")
set(plutosvg_pc_libs_private "")
set(plutosvg_pc_requires "")
+set(plutosvg_pc_requires "")
+if(IS_ABSOLUTE "${CMAKE_INSTALL_INCLUDEDIR}")
+ set(plutosvg_pc_includedir "${CMAKE_INSTALL_INCLUDEDIR}")
+else()
+ set(plutosvg_pc_includedir "\${prefix}/${CMAKE_INSTALL_INCLUDEDIR}")
+endif()
+if(IS_ABSOLUTE "${CMAKE_INSTALL_LIBDIR}")
+ set(plutosvg_pc_libdir "${CMAKE_INSTALL_LIBDIR}")
+else()
+ set(plutosvg_pc_libdir "\${prefix}/${CMAKE_INSTALL_LIBDIR}")
+endif()
if(MATH_LIBRARY)
string(APPEND plutosvg_pc_libs_private " -lm")
@@ -123,8 +134,8 @@ endif()
string(CONFIGURE [[
prefix=${pcfiledir}/@plutosvg_pc_prefix_relative@
-includedir=${prefix}/@CMAKE_INSTALL_INCLUDEDIR@
-libdir=${prefix}/@CMAKE_INSTALL_LIBDIR@
+includedir=@plutosvg_pc_includedir@
+libdir=@plutosvg_pc_libdir@
Name: PlutoSVG
Description: Tiny SVG rendering library in C
--
2.49.0

View File

@@ -0,0 +1,56 @@
{
lib,
stdenv,
fetchFromGitHub,
nix-update-script,
validatePkgConfig,
testers,
cmake,
ninja,
plutovg,
}:
stdenv.mkDerivation (finalAttrs: {
pname = "plutosvg";
version = "0.0.7";
src = fetchFromGitHub {
owner = "sammycage";
repo = "plutosvg";
tag = "v${finalAttrs.version}";
hash = "sha256-4JLk4+O9Tf8CGxMP0aDN70ak/8teZH3GWBWlrIkPQm4=";
};
outputs = [
"out"
"dev"
];
patches = [
# https://github.com/sammycage/plutosvg/pull/29
./0001-Emit-correct-pkg-config-file-if-paths-are-absolute.patch
];
nativeBuildInputs = [
cmake
ninja
validatePkgConfig
];
propagatedBuildInputs = [
plutovg
];
cmakeFlags = [ (lib.cmakeBool "BUILD_SHARED_LIBS" (!stdenv.hostPlatform.isStatic)) ];
passthru.tests.pkg-config = testers.testMetaPkgConfig finalAttrs.finalPackage;
passthru.updateScript = nix-update-script { };
meta = {
homepage = "https://github.com/sammycage/plutosvg";
changelog = "https://github.com/sammycage/plutosvg/releases/tag/${finalAttrs.src.tag}";
description = "Tiny SVG rendering library in C";
license = lib.licenses.mit;
maintainers = with lib.maintainers; [ marcin-serwin ];
pkgConfigModules = [ "plutosvg" ];
};
})

View File

@@ -13,13 +13,13 @@
rustPlatform.buildRustPackage (finalAttrs: {
pname = "proksi";
version = "0.5.3-unstable-2025-05-19";
version = "0.6.0";
src = fetchFromGitHub {
owner = "luizfonseca";
repo = "proksi";
rev = "4e31e5223dd4a8e3b955fbfa6c895c94c834e5aa";
hash = "sha256-7NeRU+VJf2HvT7PRmryhE8u56/PoKvKtGGuZTCujGNQ=";
tag = "proksi-v${finalAttrs.version}";
hash = "sha256-5IXtMtyKbx7re6CA61AnQ85k/SMdkjZo/ySnNoD2DDo=";
};
postPatch = ''
@@ -27,7 +27,7 @@ rustPlatform.buildRustPackage (finalAttrs: {
'';
useFetchCargoVendor = true;
cargoHash = "sha256-jypYyXN9caTax+11shkJJfEEPtoq4RILWjffm/3ymzE=";
cargoHash = "sha256-yjbtP+FlDaJXPhCu1UyaDolpzy+BUejU8nVVSVsKCzE=";
nativeBuildInputs = [
pkg-config
@@ -61,17 +61,8 @@ rustPlatform.buildRustPackage (finalAttrs: {
nativeInstallCheckInputs = [ versionCheckHook ];
versionCheckProgramArg = "--version";
doInstallCheck = true;
# remove after updating to the next stable version
preVersionCheck = ''
export version=0.5.3
'';
passthru.updateScript = nix-update-script {
extraArgs = [
"--version=branch"
"--version-regex=proksi-v(.*)"
];
};
passthru.updateScript = nix-update-script { extraArgs = [ "--version-regex=proksi-v(.*)" ]; };
meta = {
description = "Batteries-included CDN, reverse proxy and Load Balancer using Cloudflare Pingora";

View File

@@ -7,16 +7,16 @@
buildGoModule rec {
pname = "restic-rest-server";
version = "0.13.0";
version = "0.14.0";
src = fetchFromGitHub {
owner = "restic";
repo = "rest-server";
rev = "v${version}";
hash = "sha256-o55y+g9XklKghVK1c6MTRI8EHLplTv5YKUWGRyyvmtk=";
hash = "sha256-cWnZ91mrllhTlCLb+BoJMXqUON2wOWCqVShg+NKU7gs=";
};
vendorHash = "sha256-MBkh61vFogf0su/mP3b2J8t/LTtfVzLlpa9MSzAq6Tw=";
vendorHash = "sha256-Fg8dDqehART535LYEOLazQntUAKxv9nmBN1RByW4OYE=";
passthru.tests.restic = nixosTests.restic-rest-server;

View File

@@ -13,19 +13,17 @@
rustPlatform.buildRustPackage (finalAttrs: {
pname = "swww";
version = "0.10.0-unstable-2025-05-27";
version = "0.10.1";
# Fixes build for locating wayland.xml, go back to regular tagged releases at next version bump
# https://codeberg.org/LGFae/waybackend/issues/2
src = fetchFromGitHub {
owner = "LGFae";
repo = "swww";
rev = "800619eb70c0f4293a5b449103f55a0a3cfe2963";
hash = "sha256-zkw1r2mmICkplgXTyN6GckTy0XEBAEoz4H1VQuP8eMU=";
tag = "v${finalAttrs.version}";
hash = "sha256-HEocjIsij9k4NjcmI8YRW6yzrYh+i3XN9YkRTr5fzDE=";
};
useFetchCargoVendor = true;
cargoHash = "sha256-L2mbQJ0dAiB8+NOATnrPhVrjHvE5zjA1frhPbLUJ3sI=";
cargoHash = "sha256-muWY99OtzG0AumbKpYoxNSjhXHYmkiwElVUdp2zE8a0=";
buildInputs = [
lz4

View File

@@ -19,11 +19,11 @@
stdenv.mkDerivation (finalAttrs: {
pname = "veracrypt";
version = "1.26.20";
version = "1.26.24";
src = fetchurl {
url = "https://launchpad.net/veracrypt/trunk/${finalAttrs.version}/+download/VeraCrypt_${finalAttrs.version}_Source.tar.bz2";
hash = "sha256-qhVmQPigzEPuPe3aO8g3lR3HRPLEvdhaXfZAZ4IosRY=";
hash = "sha256-f1wgr0KTd6tW97UsqGiTa5kj14T0YG2piGw2KXiQPng=";
};
patches = [

View File

@@ -1,7 +1,8 @@
{
lib,
buildPythonPackage,
fetchPypi,
fetchFromGitHub,
gitUpdater,
google-api-core,
google-auth,
grpc-google-iam-v1,
@@ -11,23 +12,23 @@
protobuf,
pytest-asyncio,
pytestCheckHook,
pythonOlder,
setuptools,
}:
buildPythonPackage rec {
pname = "google-cloud-iam";
version = "2.18.3";
version = "2.19.0";
pyproject = true;
disabled = pythonOlder "3.7";
src = fetchPypi {
pname = "google_cloud_iam";
inherit version;
hash = "sha256-JlStzDhOHRigXFxO5V+MWxZcsjt0ECzNS8JV1ITFCnk=";
src = fetchFromGitHub {
owner = "googleapis";
repo = "google-cloud-python";
tag = "google-cloud-iam-v${version}";
hash = "sha256-E1LISOLQcXqUMTTPLR+lwkR6gF1fuGGB44j38cIK/Z4=";
};
sourceRoot = "${src.name}/packages/google-cloud-iam";
build-system = [ setuptools ];
dependencies = [
@@ -55,11 +56,18 @@ buildPythonPackage rec {
"google.cloud.iam_credentials_v1"
];
meta = with lib; {
passthru.updateScript = gitUpdater {
rev-prefix = "google-cloud-iam-v";
};
meta = {
description = "IAM Service Account Credentials API client library";
homepage = "https://github.com/googleapis/google-cloud-python/tree/main/packages/google-cloud-iam";
changelog = "https://github.com/googleapis/google-cloud-python/blob/google-cloud-iam-v${version}/packages/google-cloud-iam/CHANGELOG.md";
license = licenses.asl20;
maintainers = with maintainers; [ austinbutler ];
changelog = "https://github.com/googleapis/google-cloud-python/blob/${src.tag}/packages/google-cloud-iam/CHANGELOG.md";
license = lib.licenses.asl20;
maintainers = with lib.maintainers; [
austinbutler
sarahec
];
};
}

View File

@@ -3,32 +3,38 @@
buildPythonPackage,
fetchFromGitHub,
pytestCheckHook,
pythonOlder,
setuptools,
}:
buildPythonPackage rec {
pname = "pkginfo2";
version = "30.0.0";
format = "setuptools";
disabled = pythonOlder "3.7";
pyproject = true;
src = fetchFromGitHub {
owner = "nexB";
repo = "pkginfo2";
rev = "v${version}";
tag = "v${version}";
hash = "sha256-E9EyaN3ncf/34vvvhRe0rwV28VrjqJo79YFgXq2lKWU=";
};
build-system = [ setuptools ];
nativeCheckInputs = [ pytestCheckHook ];
pythonImportsCheck = [ "pkginfo2" ];
disabledTests = [
# AssertionError
"test_ctor_w_path"
];
meta = with lib; {
description = "Query metadatdata from sdists, bdists or installed packages";
mainProgram = "pkginfo2";
homepage = "https://github.com/nexB/pkginfo2";
changelog = "https://github.com/aboutcode-org/pkginfo2/releases/tag/${src.tag}";
license = licenses.mit;
maintainers = with maintainers; [ fab ];
mainProgram = "pkginfo2";
};
}

View File

@@ -10,13 +10,13 @@
stdenv.mkDerivation (finalAttrs: {
pname = "rtl8821ce";
version = "0-unstable-2025-05-02";
version = "0-unstable-2025-05-31";
src = fetchFromGitHub {
owner = "tomaspinho";
repo = "rtl8821ce";
rev = "6208d1dd190b7cb60bbbf760505bcb1c250518c2";
hash = "sha256-d2KWiUxx3/rZvobOzvK5nyGdovovOf8g2MaEd2QW+Pc=";
rev = "66c015af7738039a2045b6da755875e126d3fe73";
hash = "sha256-JU8ge2QpoR6nJe5G93iTEP7WOU6tLb4NJ1QrkEYUXRA=";
};
hardeningDisable = [ "pic" ];

View File

@@ -27,6 +27,11 @@ stdenv.mkDerivation (finalAttrs: {
"format"
];
patches = [
# https://github.com/lwfinger/rtl8852au/pull/115
./fix-build-for-kernels-6.13-6.14.patch
];
postPatch = ''
substituteInPlace ./Makefile \
--replace-fail /sbin/depmod \# \
@@ -55,13 +60,18 @@ stdenv.mkDerivation (finalAttrs: {
nuke-refs $out/lib/modules/*/kernel/net/wireless/*.ko
'';
# GCC 14 makes this an error by default
env.NIX_CFLAGS_COMPILE = "-Wno-designated-init";
enableParallelBuilding = true;
meta = with lib; {
description = "Driver for Realtek 802.11ac, rtl8852au, provides the 8852au mod";
homepage = "https://github.com/lwfinger/rtl8852au";
license = licenses.gpl2Only;
platforms = platforms.linux;
platforms = [ "x86_64-linux" ];
# FIX: error: invalid initializer
broken = kernel.kernelOlder "6" && kernel.isHardened;
maintainers = with maintainers; [ lonyelon ];
};
})

View File

@@ -0,0 +1,77 @@
From c65ed43f42656aecf43e7ea80c58d204c3c67aca Mon Sep 17 00:00:00 2001
From: Soham Nandy <soham.nandy2006@gmail.com>
Date: Fri, 28 Mar 2025 17:24:55 +0530
Subject: [PATCH 1/2] rtl8852au(fix): remove MODULE_IMPORT and net_device for
kernel versions over 6.13
---
os_dep/linux/ioctl_cfg80211.c | 3 +++
os_dep/osdep_service_linux.c | 4 ++++
2 files changed, 7 insertions(+)
diff --git a/os_dep/linux/ioctl_cfg80211.c b/os_dep/linux/ioctl_cfg80211.c
index 2b79c97..277dffb 100755
--- a/os_dep/linux/ioctl_cfg80211.c
+++ b/os_dep/linux/ioctl_cfg80211.c
@@ -6350,6 +6350,9 @@ static void rtw_get_chbwoff_from_cfg80211_chan_def(
static int cfg80211_rtw_set_monitor_channel(struct wiphy *wiphy
#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3, 8, 0))
+#if (LINUX_VERSION_CODE >= KERNEL_VERSION(6, 13, 0))
+ , struct net_device *dev
+#endif
, struct cfg80211_chan_def *chandef
#else
, struct ieee80211_channel *chan
diff --git a/os_dep/osdep_service_linux.c b/os_dep/osdep_service_linux.c
index fe47c3b..8fdbcfc 100644
--- a/os_dep/osdep_service_linux.c
+++ b/os_dep/osdep_service_linux.c
@@ -390,7 +390,9 @@ static int openFile(struct file **fpp, const char *path, int flag, int mode)
struct file *fp;
#if defined(MODULE_IMPORT_NS)
+#if (LINUX_VERSION_CODE >= KERNEL_VERSION(5, 10, 0) && LINUX_VERSION_CODE < KERNEL_VERSION(6, 13, 0))
MODULE_IMPORT_NS(VFS_internal_I_am_really_a_filesystem_and_am_NOT_a_driver);
+#endif
#endif
fp = filp_open(path, flag, mode);
@@ -508,7 +510,9 @@ static int isFileReadable(const char *path, u32 *sz)
char buf;
#if defined(MODULE_IMPORT_NS)
+#if (LINUX_VERSION_CODE >= KERNEL_VERSION(5, 10, 0) && LINUX_VERSION_CODE < KERNEL_VERSION(6, 13, 0))
MODULE_IMPORT_NS(VFS_internal_I_am_really_a_filesystem_and_am_NOT_a_driver);
+#endif
#endif
fp = filp_open(path, O_RDONLY, 0);
From 91d168fc5aa818b4e85aa5b2b43d7f25470e925c Mon Sep 17 00:00:00 2001
From: Soham Nandy <soham.nandy2006@gmail.com>
Date: Mon, 7 Apr 2025 10:25:03 +0530
Subject: [PATCH 2/2] rtl8852au(fix): get_tx_power callback by adding link_id
parameter
kernel versions >6.14 cfg80211_ops was updated to include an unsigned
int link_id parameter.
---
os_dep/linux/ioctl_cfg80211.c | 4 ++++
1 file changed, 4 insertions(+)
diff --git a/os_dep/linux/ioctl_cfg80211.c b/os_dep/linux/ioctl_cfg80211.c
index 277dffb..3d7620e 100755
--- a/os_dep/linux/ioctl_cfg80211.c
+++ b/os_dep/linux/ioctl_cfg80211.c
@@ -4454,6 +4454,10 @@ static int cfg80211_rtw_set_txpower(struct wiphy *wiphy,
static int cfg80211_rtw_get_txpower(struct wiphy *wiphy,
#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3, 8, 0))
struct wireless_dev *wdev,
+
+#if (LINUX_VERSION_CODE >= KERNEL_VERSION(6,14,0))
+ unsigned int link_id,
+#endif
#endif
int *dbm)
{

View File

@@ -6,13 +6,13 @@
buildFishPlugin rec {
pname = "forgit";
version = "25.05.0";
version = "25.06.0";
src = fetchFromGitHub {
owner = "wfxr";
repo = "forgit";
rev = version;
hash = "sha256-U+MtgunPEmo/kv/lQI2BBi2WUBgt3wFkaUdfRzJWoGQ=";
hash = "sha256-D1we3pOPXNsK8KgEaRBAmD5eH1i2ud4zX1GwYbOyZvY=";
};
postInstall = ''

View File

@@ -1504,6 +1504,7 @@ mapAliases {
pipewire-media-session = throw "pipewire-media-session is no longer maintained and has been removed. Please use Wireplumber instead.";
platypus = throw "platypus is unmaintained and has not merged Python3 support"; # Added 2025-03-20
pleroma-otp = throw "'pleroma-otp' has been renamed to/replaced by 'pleroma'"; # Converted to throw 2024-10-17
plex-media-player = throw "'plex-media-player' has been discontinued, the new official client is available as 'plex-desktop'"; # Added 2025-05-28
plots = throw "'plots' has been replaced by 'gnome-graphs'"; # Added 2025-02-05
pltScheme = racket; # just to be sure
poac = cabinpkg; # Added 2025-01-22

View File

@@ -10883,8 +10883,6 @@ with pkgs;
restic = callPackage ../tools/backup/restic { };
restic-rest-server = callPackage ../tools/backup/restic/rest-server.nix { };
rethinkdb = callPackage ../servers/nosql/rethinkdb {
stdenv = clangStdenv;
libtool = cctools;
@@ -13540,9 +13538,7 @@ with pkgs;
mythtv = libsForQt5.callPackage ../applications/video/mythtv { };
ncdu = callPackage ../tools/misc/ncdu { };
ncdu_1 = callPackage ../tools/misc/ncdu/1.nix { };
ncdu_1 = callPackage ../by-name/nc/ncdu/1.nix { };
notepadqq = libsForQt5.callPackage ../applications/editors/notepadqq { };
@@ -13687,8 +13683,6 @@ with pkgs;
plexamp = callPackage ../applications/audio/plexamp { };
plex-media-player = libsForQt5.callPackage ../applications/video/plex-media-player { };
plex-mpv-shim = python3Packages.callPackage ../applications/video/plex-mpv-shim { };
plover = recurseIntoAttrs (libsForQt5.callPackage ../applications/misc/plover { });