Merge master into staging-next

This commit is contained in:
github-actions[bot] 2023-09-30 00:01:53 +00:00 committed by GitHub
commit 6b41a98c6c
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
28 changed files with 412 additions and 142 deletions

View File

@ -895,6 +895,12 @@
githubId = 160476; githubId = 160476;
name = "Amanjeev Sethi"; name = "Amanjeev Sethi";
}; };
amanse = {
email = "amansetiarjp@gmail.com";
github = "amanse";
githubId = 13214574;
name = "Aman Setia";
};
amar1729 = { amar1729 = {
email = "amar.paul16@gmail.com"; email = "amar.paul16@gmail.com";
github = "Amar1729"; github = "Amar1729";
@ -18593,6 +18599,12 @@
githubId = 7121530; githubId = 7121530;
name = "Wolf Honoré"; name = "Wolf Honoré";
}; };
wietsedv = {
email = "wietsedv@proton.me";
github = "wietsedv";
githubId = 13139101;
name = "Wietse de Vries";
};
wigust = { wigust = {
name = "Oleg Pykhalov"; name = "Oleg Pykhalov";
email = "go.wigust@gmail.com"; email = "go.wigust@gmail.com";

View File

@ -91,6 +91,8 @@
- [tuxedo-rs](https://github.com/AaronErhardt/tuxedo-rs), Rust utilities for interacting with hardware from TUXEDO Computers. - [tuxedo-rs](https://github.com/AaronErhardt/tuxedo-rs), Rust utilities for interacting with hardware from TUXEDO Computers.
- [audiobookshelf](https://github.com/advplyr/audiobookshelf/), a self-hosted audiobook and podcast server. Available as [services.audiobookshelf](#opt-services.audiobookshelf.enable).
## Backward Incompatibilities {#sec-release-23.11-incompatibilities} ## Backward Incompatibilities {#sec-release-23.11-incompatibilities}
- The `boot.loader.raspberryPi` options have been marked deprecated, with intent for removal for NixOS 24.11. They had a limited use-case, and do not work like people expect. They required either very old installs ([before mid-2019](https://github.com/NixOS/nixpkgs/pull/62462)) or customized builds out of scope of the standard and generic AArch64 support. That option set never supported the Raspberry Pi 4 family of devices. - The `boot.loader.raspberryPi` options have been marked deprecated, with intent for removal for NixOS 24.11. They had a limited use-case, and do not work like people expect. They required either very old installs ([before mid-2019](https://github.com/NixOS/nixpkgs/pull/62462)) or customized builds out of scope of the standard and generic AArch64 support. That option set never supported the Raspberry Pi 4 family of devices.

View File

@ -1211,6 +1211,7 @@
./services/web-apps/atlassian/confluence.nix ./services/web-apps/atlassian/confluence.nix
./services/web-apps/atlassian/crowd.nix ./services/web-apps/atlassian/crowd.nix
./services/web-apps/atlassian/jira.nix ./services/web-apps/atlassian/jira.nix
./services/web-apps/audiobookshelf.nix
./services/web-apps/bookstack.nix ./services/web-apps/bookstack.nix
./services/web-apps/calibre-web.nix ./services/web-apps/calibre-web.nix
./services/web-apps/coder.nix ./services/web-apps/coder.nix

View File

@ -0,0 +1,90 @@
{ config, lib, pkgs, ... }:
with lib;
let
cfg = config.services.audiobookshelf;
in
{
options = {
services.audiobookshelf = {
enable = mkEnableOption "Audiobookshelf, self-hosted audiobook and podcast server.";
package = mkPackageOption pkgs "audiobookshelf" { };
dataDir = mkOption {
description = "Path to Audiobookshelf config and metadata inside of /var/lib.";
default = "audiobookshelf";
type = types.str;
};
host = mkOption {
description = "The host Audiobookshelf binds to.";
default = "127.0.0.1";
example = "0.0.0.0";
type = types.str;
};
port = mkOption {
description = "The TCP port Audiobookshelf will listen on.";
default = 8000;
type = types.port;
};
user = mkOption {
description = "User account under which Audiobookshelf runs.";
default = "audiobookshelf";
type = types.str;
};
group = mkOption {
description = "Group under which Audiobookshelf runs.";
default = "audiobookshelf";
type = types.str;
};
openFirewall = mkOption {
description = "Open ports in the firewall for the Audiobookshelf web interface.";
default = false;
type = types.bool;
};
};
};
config = mkIf cfg.enable {
systemd.services.audiobookshelf = {
description = "Audiobookshelf is a self-hosted audiobook and podcast server";
after = [ "network.target" ];
wantedBy = [ "multi-user.target" ];
serviceConfig = {
Type = "simple";
User = cfg.user;
Group = cfg.group;
StateDirectory = cfg.dataDir;
WorkingDirectory = "/var/lib/${cfg.dataDir}";
ExecStart = "${cfg.package}/bin/audiobookshelf --host ${cfg.host} --port ${toString cfg.port}";
Restart = "on-failure";
};
};
users.users = mkIf (cfg.user == "audiobookshelf") {
audiobookshelf = {
isSystemUser = true;
group = cfg.group;
home = "/var/lib/${cfg.dataDir}";
};
};
users.groups = mkIf (cfg.group == "audiobookshelf") {
audiobookshelf = { };
};
networking.firewall = mkIf cfg.openFirewall {
allowedTCPPorts = [ cfg.port ];
};
};
meta.maintainers = with maintainers; [ wietsedv ];
}

View File

@ -517,17 +517,24 @@ let
(assertValueOneOf "Unmanaged" boolValues) (assertValueOneOf "Unmanaged" boolValues)
(assertInt "Group") (assertInt "Group")
(assertRange "Group" 0 2147483647) (assertRange "Group" 0 2147483647)
(assertValueOneOf "RequiredForOnline" (boolValues ++ [ (assertValueOneOf "RequiredForOnline" (boolValues ++ (
"missing" let
"off" # https://freedesktop.org/software/systemd/man/networkctl.html#missing
"no-carrier" operationalStates = [
"dormant" "missing"
"degraded-carrier" "off"
"carrier" "no-carrier"
"degraded" "dormant"
"enslaved" "degraded-carrier"
"routable" "carrier"
])) "degraded"
"enslaved"
"routable"
];
operationalStateRanges = concatLists (imap0 (i: min: map (max: "${min}:${max}") (drop i operationalStates)) operationalStates);
in
operationalStates ++ operationalStateRanges
)))
(assertValueOneOf "RequiredFamilyForOnline" [ (assertValueOneOf "RequiredFamilyForOnline" [
"ipv4" "ipv4"
"ipv6" "ipv6"

View File

@ -119,6 +119,7 @@ in {
atd = handleTest ./atd.nix {}; atd = handleTest ./atd.nix {};
atop = handleTest ./atop.nix {}; atop = handleTest ./atop.nix {};
atuin = handleTest ./atuin.nix {}; atuin = handleTest ./atuin.nix {};
audiobookshelf = handleTest ./audiobookshelf.nix {};
auth-mysql = handleTest ./auth-mysql.nix {}; auth-mysql = handleTest ./auth-mysql.nix {};
authelia = handleTest ./authelia.nix {}; authelia = handleTest ./authelia.nix {};
avahi = handleTest ./avahi.nix {}; avahi = handleTest ./avahi.nix {};

View File

@ -0,0 +1,23 @@
import ./make-test-python.nix ({ lib, ... }:
with lib;
{
name = "audiobookshelf";
meta.maintainers = with maintainers; [ wietsedv ];
nodes.machine =
{ pkgs, ... }:
{
services.audiobookshelf = {
enable = true;
port = 1234;
};
};
testScript = ''
machine.wait_for_unit("audiobookshelf.service")
machine.wait_for_open_port(1234)
machine.succeed("curl --fail http://localhost:1234/")
'';
})

View File

@ -6,19 +6,18 @@
, callPackage , callPackage
}: }:
# https://download.eclipse.org/eclipse/downloads/ is the main place to # use ./update.sh to help with updating for each quarterly release
# find the downloads needed for new versions
# #
# to test: # then, to test:
# for e in cpp modeling platform sdk java jee committers rcp; do for s in pkgs pkgsCross.aarch64-multiplatform; do echo; echo $s $e; nix build -f default.nix ${s}.eclipses.eclipse-${e} -o eclipse-${s}-${e}; done; done # for e in cpp modeling platform sdk java jee committers rcp; do for s in pkgs pkgsCross.aarch64-multiplatform; do echo; echo $s $e; nix build -f default.nix ${s}.eclipses.eclipse-${e} -o eclipse-${s}-${e}; done; done
let let
platform_major = "4"; platform_major = "4";
platform_minor = "27"; platform_minor = "28";
year = "2023"; year = "2023";
month = "03"; #release month month = "06"; #release month
buildmonth = "03"; #sometimes differs from release month buildmonth = "06"; #sometimes differs from release month
timestamp = "${year}${buildmonth}020300"; timestamp = "${year}${buildmonth}050440";
gtk = gtk3; gtk = gtk3;
arch = if stdenv.hostPlatform.isx86_64 then arch = if stdenv.hostPlatform.isx86_64 then
"x86_64" "x86_64"
@ -44,8 +43,8 @@ in rec {
fetchurl { fetchurl {
url = "https://www.eclipse.org/downloads/download.php?r=1&nf=1&file=/technology/epp/downloads/release/${year}-${month}/R/eclipse-cpp-${year}-${month}-R-linux-gtk-${arch}.tar.gz"; url = "https://www.eclipse.org/downloads/download.php?r=1&nf=1&file=/technology/epp/downloads/release/${year}-${month}/R/eclipse-cpp-${year}-${month}-R-linux-gtk-${arch}.tar.gz";
hash = { hash = {
x86_64 = "sha256-MBng3ETarHMlUUPpVvMIZxVqpe9JW5xNHonnN6CHRcw="; x86_64 = "sha256-0VFg68+M84SEPbLv2f3hNTK1tvUjN3u0X3DYFCMAFX8=";
aarch64 = "sha256-7FgpPzp5MY/fB6Q/wvrvi+Lpcm3tmH7bUTLh7q2Rjek="; aarch64 = "sha256-K1e1Q//X+R4FfY60eE4nPgEaF0wUkUIO/AFzzjIrGRY=";
}.${arch}; }.${arch};
}; };
}; };
@ -59,8 +58,8 @@ in rec {
fetchurl { fetchurl {
url = "https://www.eclipse.org/downloads/download.php?r=1&nf=1&file=/technology/epp/downloads/release/${year}-${month}/R/eclipse-modeling-${year}-${month}-R-linux-gtk-${arch}.tar.gz"; url = "https://www.eclipse.org/downloads/download.php?r=1&nf=1&file=/technology/epp/downloads/release/${year}-${month}/R/eclipse-modeling-${year}-${month}-R-linux-gtk-${arch}.tar.gz";
hash = { hash = {
x86_64 = "sha256-BXofrKElgCG3+WUCanpX1sGLhirj2pLi+pi24Z+WjBk="; x86_64 = "sha256-wdZninKynNQ5o2nxyOxA7GDQ75tWs1TB2jh21O0fEpg=";
aarch64 = "sha256-CdePRa6jmWlt3Wismt3RahGzYOm1ZDwQRt82kRVXSdM="; aarch64 = "sha256-5iAoMyesBjmdAy/eSMkgtuYv5rnXAEjgLb0yNX02mdw=";
}.${arch}; }.${arch};
}; };
}; };
@ -74,8 +73,8 @@ in rec {
fetchurl { fetchurl {
url = "https://www.eclipse.org/downloads/download.php?r=1&nf=1&file=/eclipse/downloads/drops${platform_major}/R-${platform_major}.${platform_minor}-${timestamp}/eclipse-platform-${platform_major}.${platform_minor}-linux-gtk-${arch}.tar.gz"; url = "https://www.eclipse.org/downloads/download.php?r=1&nf=1&file=/eclipse/downloads/drops${platform_major}/R-${platform_major}.${platform_minor}-${timestamp}/eclipse-platform-${platform_major}.${platform_minor}-linux-gtk-${arch}.tar.gz";
hash = { hash = {
x86_64 = "sha256-aprXjNv2NMoIDCNkFxwmMKcGUt2ssRonzTZ/hH57Mig="; x86_64 = "sha256-SYeCXWGSi8bPbqngGC+ZSBQaKyZrDTFeT+RLKC+ZsDk=";
aarch64 = "sha256-Aq9PDVo/9zTeQ2j6q5bf1aIKjKM7oonIr1mEQ7rX48Y="; aarch64 = "sha256-DN6fl7p+q96wsg9Mq6v3lTV0/7b87MFKTJSFuNrjLgs=";
}.${arch}; }.${arch};
}; };
}; };
@ -106,8 +105,8 @@ in rec {
fetchurl { fetchurl {
url = "https://www.eclipse.org/downloads/download.php?r=1&nf=1&file=/eclipse/downloads/drops${platform_major}/R-${platform_major}.${platform_minor}-${timestamp}/eclipse-SDK-${platform_major}.${platform_minor}-linux-gtk-${arch}.tar.gz"; url = "https://www.eclipse.org/downloads/download.php?r=1&nf=1&file=/eclipse/downloads/drops${platform_major}/R-${platform_major}.${platform_minor}-${timestamp}/eclipse-SDK-${platform_major}.${platform_minor}-linux-gtk-${arch}.tar.gz";
hash = { hash = {
x86_64 = "sha256-39DXU7wIsdxkUpNKnYPT7+qPJ2DrF7G7UJqPfhEDGGs="; x86_64 = "sha256-QY16KSNZj6rq7YL+gOajI80XVtSdCh7MJGPscRJuf1o=";
aarch64 = "sha256-7GwKGNHWPZ3uOFyzQj1dftFFz/3oa2j8XWkRn0wnllY="; aarch64 = "sha256-oZXx87dlLZ61ezwDD0WnV48ZMjcK0FkSGl83LhkJvmc=";
}.${arch}; }.${arch};
}; };
}; };
@ -121,8 +120,8 @@ in rec {
fetchurl { fetchurl {
url = "https://www.eclipse.org/downloads/download.php?r=1&nf=1&file=/technology/epp/downloads/release/${year}-${month}/R/eclipse-java-${year}-${month}-R-linux-gtk-${arch}.tar.gz"; url = "https://www.eclipse.org/downloads/download.php?r=1&nf=1&file=/technology/epp/downloads/release/${year}-${month}/R/eclipse-java-${year}-${month}-R-linux-gtk-${arch}.tar.gz";
hash = { hash = {
x86_64 = "sha256-zNBzFHmNaxUutzMh/5pOglJiKh5NAvSVwvPYyA6RVr4="; x86_64 = "sha256-FC4zgx+75S9TJVp0azWgON/wNmoEy0074tj+DOdvNOg=";
aarch64 = "sha256-RtLXB9kgpLERfhpvDTaJG84qVyN1Puud1PTZtk/WIO0="; aarch64 = "sha256-wnRQKqg1V4hrD9VAg6sw8yypB97Wcivt4cH6MFP4KPs=";
}.${arch}; }.${arch};
}; };
}; };
@ -136,8 +135,8 @@ in rec {
fetchurl { fetchurl {
url = "https://www.eclipse.org/downloads/download.php?r=1&nf=1&file=/technology/epp/downloads/release/${year}-${month}/R/eclipse-jee-${year}-${month}-R-linux-gtk-${arch}.tar.gz"; url = "https://www.eclipse.org/downloads/download.php?r=1&nf=1&file=/technology/epp/downloads/release/${year}-${month}/R/eclipse-jee-${year}-${month}-R-linux-gtk-${arch}.tar.gz";
hash = { hash = {
x86_64 = "sha256-vpvmKZKVl6ubfq8QMDr0xprXYMWl576hu+ovvREN4ak="; x86_64 = "sha256-eSYWuw6s3H1ht4zPDwjd4oZ49KhIn1OaywtwKHyS0wI=";
aarch64 = "sha256-5Yqxgl4kkN3Bb7hsTnd9q5TsCpVBVkEVvqPbL5MYEyg="; aarch64 = "sha256-9O0+S3G3vtjN1Vd4euf3gYRPPtrVxoBB+Uj7BlDAS5M=";
}.${arch}; }.${arch};
}; };
}; };
@ -151,8 +150,8 @@ in rec {
fetchurl { fetchurl {
url = "https://www.eclipse.org/downloads/download.php?r=1&nf=1&file=/technology/epp/downloads/release/${year}-${month}/R/eclipse-committers-${year}-${month}-R-linux-gtk-${arch}.tar.gz"; url = "https://www.eclipse.org/downloads/download.php?r=1&nf=1&file=/technology/epp/downloads/release/${year}-${month}/R/eclipse-committers-${year}-${month}-R-linux-gtk-${arch}.tar.gz";
hash = { hash = {
x86_64 = "sha256-4SAiEZWSUaiK8QO2Hg39FBcj1aYRtbOJkeF1W1AMQBo="; x86_64 = "sha256-kJoXaSwsjArpe4tqeSkZiU4AcR5dLBvdsyU7tBTiTdc=";
aarch64 = "sha256-+KGDlo6QK3o/n2vSiD0HpIkBwqwIiMXzdFUpfE48gps="; aarch64 = "sha256-qydFxa0lQEwsxZQPlBXV/wiuXGuIcBHRasKZEmXJaOk=";
}.${arch}; }.${arch};
}; };
}; };
@ -166,8 +165,8 @@ in rec {
fetchurl { fetchurl {
url = "https://www.eclipse.org/downloads/download.php?r=1&nf=1&file=/technology/epp/downloads/release/${year}-${month}/R/eclipse-rcp-${year}-${month}-R-linux-gtk-${arch}.tar.gz"; url = "https://www.eclipse.org/downloads/download.php?r=1&nf=1&file=/technology/epp/downloads/release/${year}-${month}/R/eclipse-rcp-${year}-${month}-R-linux-gtk-${arch}.tar.gz";
hash = { hash = {
x86_64 = "sha256-bhcpzsS9cci3Y3Pk9DOrtPonKjRg/vzDqDr3Be/xfks="; x86_64 = "sha256-BAEXN6sx4f+BJnKz0lkPoAmRXnlbl5s5ETAyfE/AZak=";
aarch64 = "sha256-YCb4leFWRtx4VPwK/5vgwwDH3/f0/0OWEy4ueAS7sUw="; aarch64 = "sha256-xayvsFAglBxAB49j2tnt52d6KX6LxMBRfx0wR/p8K70=";
}.${arch}; }.${arch};
}; };
}; };

View File

@ -255,12 +255,12 @@ rec {
cdt = buildEclipseUpdateSite rec { cdt = buildEclipseUpdateSite rec {
name = "cdt-${version}"; name = "cdt-${version}";
# find current version at https://github.com/eclipse-cdt/cdt/releases # find current version at https://github.com/eclipse-cdt/cdt/releases
version = "11.1.1"; version = "11.2.0";
src = fetchzip { src = fetchzip {
stripRoot = false; stripRoot = false;
url = "https://www.eclipse.org/downloads/download.php?r=1&nf=1&file=/tools/cdt/releases/${lib.versions.majorMinor version}/${name}/${name}.zip"; url = "https://www.eclipse.org/downloads/download.php?r=1&nf=1&file=/tools/cdt/releases/${lib.versions.majorMinor version}/${name}/${name}.zip";
hash = "sha256-k78QKPIb3Lr0Wcg2tTlX1abdpcvxspjaxJiP2Hrgb4A="; hash = "sha256-YEmoAFzyGOyreg8FiL/gcwXROHT5VoLb1DfHhBp1tsQ=";
}; };
meta = with lib; { meta = with lib; {

View File

@ -0,0 +1,72 @@
#!/usr/bin/env nix-shell
#! nix-shell -i bash --pure -p curl cacert libxml2 yq nix jq
#! nix-shell -I nixpkgs=https://github.com/NixOS/nixpkgs/archive/3c7487575d9445185249a159046cc02ff364bff8.tar.gz
# ^
# |
# nixos-unstable ~ 2023-07-06 -----------------/
set -o errexit
set -o nounset
# scrape the downloads page for release info
curl -s -o eclipse-dl.html https://download.eclipse.org/eclipse/downloads/
trap "rm eclipse-dl.html" EXIT
dlquery() {
q=$1
xmllint --html eclipse-dl.html --xmlout 2>/dev/null | xq -r ".html.body.main.div.table[3].tr[1].td[0].a${q}";
}
# extract release info from download page HTML
platform_major=$(dlquery '."#text" | split(".") | .[0]' -r);
platform_minor=$(dlquery '."#text" | split(".") | .[1]' -r);
year=$(dlquery '."@href" | split("/") | .[] | select(. | startswith("R")) | split("-") | .[2] | .[0:4]')
buildmonth=$(dlquery '."@href" | split("/") | .[] | select(. | startswith("R")) | split("-") | .[2] | .[4:6]')
builddaytime=$(dlquery '."@href" | split("/") | .[] | select(. | startswith("R")) | split("-") | .[2] | .[6:12]')
timestamp="${year}${buildmonth}${builddaytime}";
# account for possible release-month vs. build-month mismatches
month=$buildmonth;
case "$buildmonth" in
'02'|'04') month='03' ;;
'05'|'07') month='06' ;;
'08'|'10') month='09' ;;
'11'|'01') month='12' ;;
esac
cat <<EOF
paste the following into the 'let' block near the top of pkgs/applications/editors/eclipse/default.nix:
platform_major = "${platform_major}";
platform_minor = "${platform_minor}";
year = "${year}";
month = "${month}"; #release month
buildmonth = "${buildmonth}"; #sometimes differs from release month
timestamp = "\${year}\${buildmonth}${builddaytime}";
EOF
# strip existing download hashes
sed -i 's/64 = ".*";$/64 = "";/g' pkgs/applications/editors/eclipse/default.nix
# prefetch new download hashes
echo;
echo "paste the following url + hash blocks into pkgs/applications/editors/eclipse/default.nix:";
for u in $(grep 'url = ' pkgs/applications/editors/eclipse/default.nix | grep arch | cut -d '"' -f 2 | sed 's/&/\\&/g'); do
echo;
echo " url = \"${u}\";";
echo " hash = {";
for arch in x86_64 aarch64; do
us=$(eval echo "$u");
h=$(nix store prefetch-file --json "$us" | jq -r .hash);
echo " $arch = \"${h}\";";
done
echo ' }.${arch};';
done

View File

@ -2,29 +2,35 @@
, stdenv , stdenv
, fetchFromSourcehut , fetchFromSourcehut
, redo-apenwarr , redo-apenwarr
, testers
}: }:
stdenv.mkDerivation rec { stdenv.mkDerivation (finalAttrs: {
pname = "slweb"; pname = "slweb";
version = "0.6.9"; version = "0.6.11";
src = fetchFromSourcehut { src = fetchFromSourcehut {
owner = "~strahinja"; owner = "~strahinja";
repo = pname; repo = "slweb";
rev = "v${version}"; rev = "v${finalAttrs.version}";
sha256 = "sha256-YSHJJ+96Xj2zaDtPi8jftPWIyeIG9LwQ/eYT/oh2Y2c="; hash = "sha256-+bKapK/s1pmo1NRRslf7V4ogWTtchFNWpzi+S8YG6+4=";
}; };
nativeBuildInputs = [ redo-apenwarr ]; nativeBuildInputs = [ redo-apenwarr ];
installPhase = '' installPhase = ''
runHook preInstall runHook preInstall
export FALLBACKVER=${finalAttrs.version}
PREFIX=$out redo install PREFIX=$out redo install
runHook postInstall runHook postInstall
''; '';
enableParallelBuilding = true; enableParallelBuilding = true;
passthru.tests.version = testers.testVersion {
package = finalAttrs.finalPackage;
};
meta = with lib; { meta = with lib; {
description = "A static website generator which aims at being simplistic"; description = "A static website generator which aims at being simplistic";
homepage = "https://strahinja.srht.site/slweb/"; homepage = "https://strahinja.srht.site/slweb/";
@ -32,4 +38,4 @@ stdenv.mkDerivation rec {
platforms = platforms.linux; platforms = platforms.linux;
maintainers = with maintainers; [ GaetanLepage ]; maintainers = with maintainers; [ GaetanLepage ];
}; };
} })

View File

@ -2,13 +2,13 @@
(if stdenv.isDarwin then darwin.apple_sdk_11_0.llvmPackages_14.stdenv else stdenv).mkDerivation rec { (if stdenv.isDarwin then darwin.apple_sdk_11_0.llvmPackages_14.stdenv else stdenv).mkDerivation rec {
pname = "signalbackup-tools"; pname = "signalbackup-tools";
version = "20230928-1"; version = "20230929";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "bepaald"; owner = "bepaald";
repo = pname; repo = pname;
rev = version; rev = version;
hash = "sha256-wL9Yv6+7PynbBr+GgA8ohS5w5/iVTtrC3R2SG5MWJVQ="; hash = "sha256-5U8znPKCe4auQRfysVUzXawnvnSj86MD3J2vfAwxofE=";
}; };
postPatch = '' postPatch = ''

View File

@ -1,7 +1,18 @@
{ lib, stdenv, fetchFromGitHub, cmake, alsa-lib, espeak, gpsd { lib
, hamlib, perl, python3, udev }: , stdenv
, fetchFromGitHub
with lib; , cmake
, alsa-lib
, gpsd
, gpsdSupport ? false
, hamlib
, hamlibSupport ? true
, perl
, python3
, espeak
, udev
, extraScripts ? false
}:
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
pname = "direwolf"; pname = "direwolf";
@ -20,9 +31,14 @@ stdenv.mkDerivation rec {
strictDeps = true; strictDeps = true;
buildInputs = [ buildInputs = lib.optionals stdenv.isLinux [ alsa-lib udev ]
espeak gpsd hamlib perl python3 ++ lib.optionals gpsdSupport [ gpsd ]
] ++ (optionals stdenv.isLinux [alsa-lib udev]); ++ lib.optionals hamlibSupport [ hamlib ]
++ lib.optionals extraScripts [ python3 perl espeak ];
preConfigure = lib.optionals (!extraScripts) ''
echo "" > scripts/CMakeLists.txt
'';
postPatch = '' postPatch = ''
substituteInPlace conf/CMakeLists.txt \ substituteInPlace conf/CMakeLists.txt \
@ -33,21 +49,23 @@ stdenv.mkDerivation rec {
substituteInPlace src/decode_aprs.c \ substituteInPlace src/decode_aprs.c \
--replace /usr/share/direwolf/tocalls.txt $out/share/direwolf/tocalls.txt \ --replace /usr/share/direwolf/tocalls.txt $out/share/direwolf/tocalls.txt \
--replace /opt/local/share/direwolf/tocalls.txt $out/share/direwolf/tocalls.txt --replace /opt/local/share/direwolf/tocalls.txt $out/share/direwolf/tocalls.txt
patchShebangs scripts/dwespeak.sh
substituteInPlace scripts/dwespeak.sh \
--replace espeak ${espeak}/bin/espeak
substituteInPlace cmake/cpack/direwolf.desktop.in \ substituteInPlace cmake/cpack/direwolf.desktop.in \
--replace 'Terminal=false' 'Terminal=true' \ --replace 'Terminal=false' 'Terminal=true' \
--replace 'Exec=@APPLICATION_DESKTOP_EXEC@' 'Exec=direwolf' --replace 'Exec=@APPLICATION_DESKTOP_EXEC@' 'Exec=direwolf'
substituteInPlace src/dwgpsd.c \ substituteInPlace src/dwgpsd.c \
--replace 'GPSD_API_MAJOR_VERSION > 11' 'GPSD_API_MAJOR_VERSION > 14' --replace 'GPSD_API_MAJOR_VERSION > 11' 'GPSD_API_MAJOR_VERSION > 14'
''
+ lib.optionalString extraScripts ''
patchShebangs scripts/dwespeak.sh
substituteInPlace scripts/dwespeak.sh \
--replace espeak ${espeak}/bin/espeak
''; '';
meta = { meta = with lib; {
description = "A Soundcard Packet TNC, APRS Digipeater, IGate, APRStt gateway"; description = "A Soundcard Packet TNC, APRS Digipeater, IGate, APRStt gateway";
homepage = "https://github.com/wb2osz/direwolf/"; homepage = "https://github.com/wb2osz/direwolf/";
license = licenses.gpl2; license = licenses.gpl2;
platforms = platforms.unix; platforms = platforms.unix;
maintainers = with maintainers; [ lasandell ]; maintainers = with maintainers; [ lasandell sarcasticadmin ];
}; };
} }

View File

@ -10,7 +10,7 @@
}: }:
let let
version = "5.12.152"; version = "5.12.153";
in in
rustPlatform.buildRustPackage { rustPlatform.buildRustPackage {
pname = "git-mit"; pname = "git-mit";
@ -20,10 +20,10 @@ rustPlatform.buildRustPackage {
owner = "PurpleBooth"; owner = "PurpleBooth";
repo = "git-mit"; repo = "git-mit";
rev = "v${version}"; rev = "v${version}";
hash = "sha256-FW7vstYJNJ29v3BNsyRFk57sW3jjA7aurXzz6je1nuo="; hash = "sha256-bYSWNNMDH1iTGmpLB3m/LCS8GltTdjfjeMwtB5Ss7dk=";
}; };
cargoHash = "sha256-FQmWAvSuif0/mTVl2xzI4JVLCxn7CXYubGdi55kk2Mk="; cargoHash = "sha256-FAihHJTnnHYCphEVMPA1YPT/Nj9m4DwkbhGbZJOlm0o=";
nativeBuildInputs = [ pkg-config ]; nativeBuildInputs = [ pkg-config ];

View File

@ -0,0 +1,32 @@
{ lib
, rustPlatform
, fetchFromGitHub
, steam-run
}:
rustPlatform.buildRustPackage rec {
pname = "game-rs";
version = "0.1.3";
src = fetchFromGitHub {
owner = "amanse";
repo = "game-rs";
rev = "v${version}";
hash = "sha256-M9/hFItoCL8fSrc0dFNn43unqkIaD179OGUdbXL6/Rs=";
};
cargoHash = "sha256-aq58sFK4/Zd8S4dOWjag+g5PmTeaVAK3FS3fW/YlCLs=";
buildFeatures = [ "nixos" ];
propagatedBuildInputs = [ steam-run ];
meta = with lib; {
description = "Minimal CLI game launcher for linux";
homepage = "https://github.com/amanse/game-rs";
changelog = "https://github.com/Amanse/game-rs/releases/tag/v${version}";
license = with licenses; [ mit ];
maintainers = with maintainers; [ amanse ];
platforms = platforms.linux;
};
}

View File

@ -19,12 +19,12 @@ let
sha256 = "189gjqzdz10xh3ybiy4ch1r98bsmkcb4hpnrmggd4y2g5kqnyx4y"; sha256 = "189gjqzdz10xh3ybiy4ch1r98bsmkcb4hpnrmggd4y2g5kqnyx4y";
}; };
"2.3.7" = {
sha256 = "sha256-aYFE+4BaMZGaYQ3pmauYOR1S62mK2qjKGbKPxu0Nmfc=";
};
"2.3.8" = { "2.3.8" = {
sha256 = "sha256-QhVxsqyRbli+jrzqXvSr+NeQKGPbah0KXvqVAK3KDSk="; sha256 = "sha256-QhVxsqyRbli+jrzqXvSr+NeQKGPbah0KXvqVAK3KDSk=";
}; };
"2.3.9" = {
sha256 = "sha256-fSiakSMgIgKL8BKJAMMr8A5MVDDDLyivBZTIpZKphlQ=";
};
}; };
in with versionMap.${version}; in with versionMap.${version};

View File

@ -25,8 +25,8 @@
, xorgproto , xorgproto
, coreutils , coreutils
# build options # build options
, threadSupport ? stdenv.hostPlatform.isx86 , threadSupport ? (stdenv.hostPlatform.isx86 && ! stdenv.hostPlatform.isDarwin)
, x11Support ? stdenv.hostPlatform.isx86 , x11Support ? (stdenv.hostPlatform.isx86 && ! stdenv.hostPlatform.isDarwin)
, dllSupport ? true , dllSupport ? true
, withModules ? [ , withModules ? [
"pcre" "pcre"
@ -82,13 +82,16 @@ stdenv.mkDerivation {
''; '';
preConfigure = lib.optionalString stdenv.isDarwin ('' preConfigure = lib.optionalString stdenv.isDarwin (''
cd src (
autoreconf -f -i -I m4 -I glm4 cd src
cd - autoreconf -f -i -I m4 -I glm4
)
'' + lib.concatMapStrings (x: '' '' + lib.concatMapStrings (x: ''
cd modules/${x} (
autoreconf -f -i -I ../../src -I ../../src/m4 -I ../../src/glm4 root="$PWD"
cd - cd modules/${x}
autoreconf -f -i -I "$root/src" -I "$root/src/m4" -I "$root/src/glm4"
)
'') withModules); '') withModules);
configureFlags = [ "builddir" ] configureFlags = [ "builddir" ]

View File

@ -1,12 +1,19 @@
{ lib, stdenv, fetchurl, autoreconfHook, sqlite }: { lib
, stdenv
, fetchFromGitHub
, autoreconfHook
, sqlite
}:
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
pname = "mps"; pname = "mps";
version = "1.117.0"; version = "1.118.0";
src = fetchurl { src = fetchFromGitHub {
url = "https://www.ravenbrook.com/project/mps/release/${version}/mps-kit-${version}.tar.gz"; owner = "Ravenbrook";
sha256 = "04ix4l7lk6nxxk9sawpnxbybvqb82lks5606ym10bc1qbc2kqdcz"; repo = "mps";
rev = "refs/tags/release-${version}";
hash = "sha256-3ql3jWLccgnQHKf23B1en+nJ9rxqmHcWd7aBr93YER0=";
}; };
nativeBuildInputs = [ autoreconfHook ]; nativeBuildInputs = [ autoreconfHook ];
@ -21,7 +28,6 @@ stdenv.mkDerivation rec {
meta = { meta = {
broken = true;
description = "A flexible memory management and garbage collection library"; description = "A flexible memory management and garbage collection library";
homepage = "https://www.ravenbrook.com/project/mps"; homepage = "https://www.ravenbrook.com/project/mps";
license = lib.licenses.sleepycat; license = lib.licenses.sleepycat;

View File

@ -2,14 +2,14 @@
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
pname = "utf8cpp"; pname = "utf8cpp";
version = "3.2.4"; version = "3.2.5";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "nemtrif"; owner = "nemtrif";
repo = "utfcpp"; repo = "utfcpp";
rev = "v${version}"; rev = "v${version}";
fetchSubmodules = true; fetchSubmodules = true;
sha256 = "sha256-cpy1lg/9pWgI5uyOO9lfSt8llfGEjnu/O4P9688XVEA="; sha256 = "sha256-cWiGggn2GP25K/8eopvnFPq6iwcBteNI3i9Lo1Sr+ig=";
}; };
cmakeFlags = [ cmakeFlags = [
@ -24,6 +24,7 @@ stdenv.mkDerivation rec {
meta = with lib; { meta = with lib; {
homepage = "https://github.com/nemtrif/utfcpp"; homepage = "https://github.com/nemtrif/utfcpp";
changelog = "https://github.com/nemtrif/utfcpp/releases/tag/v${version}";
description = "UTF-8 with C++ in a Portable Way"; description = "UTF-8 with C++ in a Portable Way";
license = licenses.boost; license = licenses.boost;
maintainers = with maintainers; [ jobojeha ]; maintainers = with maintainers; [ jobojeha ];

View File

@ -3,8 +3,8 @@
let version_sha = if lib.versionAtLeast ocaml.version "4.08" let version_sha = if lib.versionAtLeast ocaml.version "4.08"
then then
{ {
version = "1.10.4"; version = "1.11.0";
sha256 = "sha256-g+s+QwCqmx3HggdJAQ9DYuqDUkdCEwUk14wgzpnKdHw="; sha256 = "sha256-AfwkR4DA9r5yrnlrH7dQ82feGGJP110H7nl4LtbfjU8=";
} }
else else
{ {

View File

@ -10,14 +10,14 @@
buildPythonPackage rec { buildPythonPackage rec {
pname = "enlighten"; pname = "enlighten";
version = "1.11.2"; version = "1.12.0";
format = "setuptools"; format = "setuptools";
disabled = pythonOlder "3.7"; disabled = pythonOlder "3.7";
src = fetchPypi { src = fetchPypi {
inherit pname version; inherit pname version;
hash = "sha256-koSGHe5aJy4OGjdYzT87cYCxvRdUh12naHbyp/Rsy2E="; hash = "sha256-a4r20HG13gUBOjjoDhaHJtxv+yhY3oF/d+QV+Fss6Bk=";
}; };
propagatedBuildInputs = [ propagatedBuildInputs = [

View File

@ -1,7 +1,7 @@
{ lib { lib
, buildPythonPackage , buildPythonPackage
, fetchFromGitHub , fetchFromGitHub
, ffmpeg , ffmpeg-headless
}: }:
buildPythonPackage rec { buildPythonPackage rec {
@ -20,7 +20,10 @@ buildPythonPackage rec {
postPatch = '' postPatch = ''
substituteInPlace videoprops/__init__.py \ substituteInPlace videoprops/__init__.py \
--replace "which('ffprobe')" "'${ffmpeg}/bin/ffprobe'" --replace "which('ffprobe')" "'${ffmpeg-headless}/bin/ffprobe'"
# unused and vulnerable to various CVEs
rm -r videoprops/binary_dependencies
''; '';
pythonImportsCheck = [ "videoprops" ]; pythonImportsCheck = [ "videoprops" ];

View File

@ -16,7 +16,7 @@
buildPythonPackage rec { buildPythonPackage rec {
pname = "nextcord"; pname = "nextcord";
version = "2.5.0"; version = "2.6.1";
format = "setuptools"; format = "setuptools";
@ -26,7 +26,7 @@ buildPythonPackage rec {
owner = "nextcord"; owner = "nextcord";
repo = "nextcord"; repo = "nextcord";
rev = "refs/tags/v${version}"; rev = "refs/tags/v${version}";
hash = "sha256-Oo1C2tasuNIpUaKACbapnoZs7WVS1uncS1akErzQrqI="; hash = "sha256-bv4I+Ol/N4kbp/Ch7utaUpo0GmF+Mpx4zWmHL7uIveM=";
}; };
patches = [ patches = [

View File

@ -14,10 +14,13 @@ callPackage ./generic.nix args {
# check the release notes for compatible kernels # check the release notes for compatible kernels
kernelCompatible = kernelCompatible =
if stdenv'.isx86_64 || removeLinuxDRM if stdenv'.isx86_64 || removeLinuxDRM
then kernel.kernelOlder "6.4" then kernel.kernelOlder "6.6"
else kernel.kernelOlder "6.2"; else kernel.kernelOlder "6.2";
latestCompatibleLinuxPackages = linuxKernel.packages.linux_6_1; latestCompatibleLinuxPackages = if stdenv'.isx86_64 || removeLinuxDRM
then linuxKernel.packages.linux_6_5
else linuxKernel.packages.linux_6_1;
extraPatches = [ extraPatches = [
# applied in version 2.2.x
(fetchpatch { (fetchpatch {
name = "musl.patch"; name = "musl.patch";
url = "https://github.com/openzfs/zfs/commit/1f19826c9ac85835cbde61a7439d9d1fefe43a4a.patch"; url = "https://github.com/openzfs/zfs/commit/1f19826c9ac85835cbde61a7439d9d1fefe43a4a.patch";
@ -26,7 +29,7 @@ callPackage ./generic.nix args {
]; ];
# this package should point to the latest release. # this package should point to the latest release.
version = "2.1.12"; version = "2.1.13";
sha256 = "eYUR5d4gpTrlFu6j1uL83DWL9uPGgAUDRdSEb73V5i4="; sha256 = "tqUCn/Hf/eEmyWRQthWQdmTJK2sDspnHiiEfn9rz2Kc=";
} }

View File

@ -1,35 +0,0 @@
{ lib, buildGoPackage, fetchFromGitHub, stdenv }:
buildGoPackage rec {
pname = "etcd";
version = "3.3.27";
goPackagePath = "github.com/coreos/etcd";
src = fetchFromGitHub {
owner = "etcd-io";
repo = "etcd";
rev = "v${version}";
sha256 = "sha256-zO+gwzaTgeFHhlkY/3AvRTEA4Yltlp+NqdlDe4dLJYg=";
};
buildPhase = ''
cd go/src/${goPackagePath}
patchShebangs .
./build
./functional/build
'';
installPhase = ''
install -Dm755 bin/* bin/functional/cmd/* -t $out/bin
'';
meta = with lib; {
description = "Distributed reliable key-value store for the most critical data of a distributed system";
license = licenses.asl20;
homepage = "https://etcd.io/";
maintainers = with maintainers; [ offline ];
broken = stdenv.isDarwin; # outdated golang.org/x/sys
knownVulnerabilities = [ "CVE-2023-32082" ];
};
}

View File

@ -1,26 +1,52 @@
{ lib, fetchurl, perlPackages }: { lib
, fetchFromGitHub
, perlPackages
}:
perlPackages.buildPerlPackage rec { perlPackages.buildPerlPackage rec {
pname = "shelldap"; pname = "shelldap";
version = "1.4.0"; version = "1.5.1";
src = fetchurl {
url = "https://bitbucket.org/mahlon/shelldap/downloads/shelldap-${version}.tar.gz"; src = fetchFromGitHub {
sha256 = "07gkvvxcgw3pgkfy8p9mmidakciaq1rsq5zhmdqd8zcwgqkrr24i"; owner = "mahlonsmith";
repo = "shelldap";
rev = "refs/tags/v${version}";
hash = "sha256-67ttAXzu9pfeqjfhMfLMb9vWCXTrE+iUDCbamqswaLg=";
}; };
buildInputs = with perlPackages; [ perl YAMLSyck perlldap AlgorithmDiff IOSocketSSL AuthenSASL TermReadLineGnu TermShell ];
buildInputs = with perlPackages; [
AlgorithmDiff
AuthenSASL
IOSocketSSL
perl
perlldap
TermReadLineGnu
TermShell
TieIxHash
YAMLSyck
];
prePatch = '' prePatch = ''
touch Makefile.PL touch Makefile.PL
''; '';
installPhase = '' installPhase = ''
runHook preInstall runHook preInstall
install -Dm555 -t $out/bin shelldap install -Dm555 -t $out/bin shelldap
runHook preInstall runHook preInstall
''; '';
# no make target 'test', not tests provided by source
doCheck = false;
outputs = [ "out" ]; outputs = [ "out" ];
meta = with lib; { meta = with lib; {
homepage = "https://bitbucket.org/mahlon/shelldap/"; homepage = "https://github.com/mahlonsmith/shelldap/";
description = "A handy shell-like interface for browsing LDAP servers and editing their content"; description = "A handy shell-like interface for browsing LDAP servers and editing their content";
changelog = "https://github.com/mahlonsmith/shelldap/blob/v${version}/CHANGELOG";
license = with licenses; [ bsd3 ]; license = with licenses; [ bsd3 ];
maintainers = with maintainers; [ tobiasBora ]; maintainers = with maintainers; [ clerie tobiasBora ];
platforms = platforms.linux; platforms = platforms.unix;
}; };
} }

View File

@ -496,6 +496,7 @@ mapAliases ({
erlang_23 = throw "erlangR23 has been removed in favor of newer versions."; # added 2023-09-11 erlang_23 = throw "erlangR23 has been removed in favor of newer versions."; # added 2023-09-11
erlangR23 = erlang_23; erlangR23 = erlang_23;
esniper = throw "esniper has been removed because upstream no longer maintains it (and it no longer works)"; # Added 2021-04-12 esniper = throw "esniper has been removed because upstream no longer maintains it (and it no longer works)"; # Added 2021-04-12
etcd_3_3 = throw "etcd_3_3 has been removed because upstream no longer maintains it"; # Added 2023-09-29
etcdctl = throw "'etcdctl' has been renamed to/replaced by 'etcd'"; # Converted to throw 2022-02-22 etcdctl = throw "'etcdctl' has been renamed to/replaced by 'etcd'"; # Converted to throw 2022-02-22
eterm = throw "eterm was removed because it is still insecure: https://github.com/mej/Eterm/issues/7"; # Added 2023-09-10 eterm = throw "eterm was removed because it is still insecure: https://github.com/mej/Eterm/issues/7"; # Added 2023-09-10
eteroj.lv2 = throw "'eteroj.lv2' has been renamed to/replaced by 'open-music-kontrollers.eteroj'"; # Added 2022-03-09 eteroj.lv2 = throw "'eteroj.lv2' has been renamed to/replaced by 'open-music-kontrollers.eteroj'"; # Added 2022-03-09

View File

@ -24199,7 +24199,7 @@ with pkgs;
nanomq = callPackage ../servers/mqtt/nanomq { }; nanomq = callPackage ../servers/mqtt/nanomq { };
mps = callPackage ../development/libraries/mps { stdenv = gcc10StdenvCompat; }; mps = callPackage ../development/libraries/mps { };
libmpeg2 = callPackage ../development/libraries/libmpeg2 { }; libmpeg2 = callPackage ../development/libraries/libmpeg2 { };
@ -26212,17 +26212,17 @@ with pkgs;
pkg = callPackage ../development/compilers/sbcl/bootstrap.nix {}; pkg = callPackage ../development/compilers/sbcl/bootstrap.nix {};
faslExt = "fasl"; faslExt = "fasl";
}; };
sbcl_2_3_7 = wrapLisp {
pkg = callPackage ../development/compilers/sbcl/2.x.nix { version = "2.3.7"; };
faslExt = "fasl";
flags = [ "--dynamic-space-size" "3000" ];
};
sbcl_2_3_8 = wrapLisp { sbcl_2_3_8 = wrapLisp {
pkg = callPackage ../development/compilers/sbcl/2.x.nix { version = "2.3.8"; }; pkg = callPackage ../development/compilers/sbcl/2.x.nix { version = "2.3.8"; };
faslExt = "fasl"; faslExt = "fasl";
flags = [ "--dynamic-space-size" "3000" ]; flags = [ "--dynamic-space-size" "3000" ];
}; };
sbcl = sbcl_2_3_8; sbcl_2_3_9 = wrapLisp {
pkg = callPackage ../development/compilers/sbcl/2.x.nix { version = "2.3.9"; };
faslExt = "fasl";
flags = [ "--dynamic-space-size" "3000" ];
};
sbcl = sbcl_2_3_9;
sbclPackages = recurseIntoAttrs sbcl.pkgs; sbclPackages = recurseIntoAttrs sbcl.pkgs;
@ -26525,7 +26525,6 @@ with pkgs;
ergochat = callPackage ../servers/irc/ergochat { }; ergochat = callPackage ../servers/irc/ergochat { };
etcd = etcd_3_5; etcd = etcd_3_5;
etcd_3_3 = callPackage ../servers/etcd/3.3.nix { };
etcd_3_4 = callPackage ../servers/etcd/3.4.nix { }; etcd_3_4 = callPackage ../servers/etcd/3.4.nix { };
etcd_3_5 = callPackage ../servers/etcd/3.5.nix { }; etcd_3_5 = callPackage ../servers/etcd/3.5.nix { };