diff --git a/maintainers/maintainer-list.nix b/maintainers/maintainer-list.nix index bad8e0af5e28..e9e8f4363360 100644 --- a/maintainers/maintainer-list.nix +++ b/maintainers/maintainer-list.nix @@ -895,6 +895,12 @@ githubId = 160476; name = "Amanjeev Sethi"; }; + amanse = { + email = "amansetiarjp@gmail.com"; + github = "amanse"; + githubId = 13214574; + name = "Aman Setia"; + }; amar1729 = { email = "amar.paul16@gmail.com"; github = "Amar1729"; @@ -18593,6 +18599,12 @@ githubId = 7121530; name = "Wolf Honoré"; }; + wietsedv = { + email = "wietsedv@proton.me"; + github = "wietsedv"; + githubId = 13139101; + name = "Wietse de Vries"; + }; wigust = { name = "Oleg Pykhalov"; email = "go.wigust@gmail.com"; diff --git a/nixos/doc/manual/release-notes/rl-2311.section.md b/nixos/doc/manual/release-notes/rl-2311.section.md index 283ad5e279cc..9d0f9b93b93d 100644 --- a/nixos/doc/manual/release-notes/rl-2311.section.md +++ b/nixos/doc/manual/release-notes/rl-2311.section.md @@ -91,6 +91,8 @@ - [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} - 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. diff --git a/nixos/modules/module-list.nix b/nixos/modules/module-list.nix index cbd5e6467f82..66782d046914 100644 --- a/nixos/modules/module-list.nix +++ b/nixos/modules/module-list.nix @@ -1211,6 +1211,7 @@ ./services/web-apps/atlassian/confluence.nix ./services/web-apps/atlassian/crowd.nix ./services/web-apps/atlassian/jira.nix + ./services/web-apps/audiobookshelf.nix ./services/web-apps/bookstack.nix ./services/web-apps/calibre-web.nix ./services/web-apps/coder.nix diff --git a/nixos/modules/services/web-apps/audiobookshelf.nix b/nixos/modules/services/web-apps/audiobookshelf.nix new file mode 100644 index 000000000000..84dffc5f9d3c --- /dev/null +++ b/nixos/modules/services/web-apps/audiobookshelf.nix @@ -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 ]; +} diff --git a/nixos/modules/system/boot/networkd.nix b/nixos/modules/system/boot/networkd.nix index 24bd011fd8b6..ef8204e2cf53 100644 --- a/nixos/modules/system/boot/networkd.nix +++ b/nixos/modules/system/boot/networkd.nix @@ -517,17 +517,24 @@ let (assertValueOneOf "Unmanaged" boolValues) (assertInt "Group") (assertRange "Group" 0 2147483647) - (assertValueOneOf "RequiredForOnline" (boolValues ++ [ - "missing" - "off" - "no-carrier" - "dormant" - "degraded-carrier" - "carrier" - "degraded" - "enslaved" - "routable" - ])) + (assertValueOneOf "RequiredForOnline" (boolValues ++ ( + let + # https://freedesktop.org/software/systemd/man/networkctl.html#missing + operationalStates = [ + "missing" + "off" + "no-carrier" + "dormant" + "degraded-carrier" + "carrier" + "degraded" + "enslaved" + "routable" + ]; + operationalStateRanges = concatLists (imap0 (i: min: map (max: "${min}:${max}") (drop i operationalStates)) operationalStates); + in + operationalStates ++ operationalStateRanges + ))) (assertValueOneOf "RequiredFamilyForOnline" [ "ipv4" "ipv6" diff --git a/nixos/tests/all-tests.nix b/nixos/tests/all-tests.nix index 66a6aa252b88..5b2e12a501bf 100644 --- a/nixos/tests/all-tests.nix +++ b/nixos/tests/all-tests.nix @@ -119,6 +119,7 @@ in { atd = handleTest ./atd.nix {}; atop = handleTest ./atop.nix {}; atuin = handleTest ./atuin.nix {}; + audiobookshelf = handleTest ./audiobookshelf.nix {}; auth-mysql = handleTest ./auth-mysql.nix {}; authelia = handleTest ./authelia.nix {}; avahi = handleTest ./avahi.nix {}; diff --git a/nixos/tests/audiobookshelf.nix b/nixos/tests/audiobookshelf.nix new file mode 100644 index 000000000000..64bd415160ee --- /dev/null +++ b/nixos/tests/audiobookshelf.nix @@ -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/") + ''; +}) diff --git a/pkgs/applications/editors/eclipse/default.nix b/pkgs/applications/editors/eclipse/default.nix index 686ec3681183..fb02345379b5 100644 --- a/pkgs/applications/editors/eclipse/default.nix +++ b/pkgs/applications/editors/eclipse/default.nix @@ -6,19 +6,18 @@ , callPackage }: -# https://download.eclipse.org/eclipse/downloads/ is the main place to -# find the downloads needed for new versions +# use ./update.sh to help with updating for each quarterly release # -# 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 let platform_major = "4"; - platform_minor = "27"; + platform_minor = "28"; year = "2023"; - month = "03"; #release month - buildmonth = "03"; #sometimes differs from release month - timestamp = "${year}${buildmonth}020300"; + month = "06"; #release month + buildmonth = "06"; #sometimes differs from release month + timestamp = "${year}${buildmonth}050440"; gtk = gtk3; arch = if stdenv.hostPlatform.isx86_64 then "x86_64" @@ -44,8 +43,8 @@ in rec { 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"; hash = { - x86_64 = "sha256-MBng3ETarHMlUUPpVvMIZxVqpe9JW5xNHonnN6CHRcw="; - aarch64 = "sha256-7FgpPzp5MY/fB6Q/wvrvi+Lpcm3tmH7bUTLh7q2Rjek="; + x86_64 = "sha256-0VFg68+M84SEPbLv2f3hNTK1tvUjN3u0X3DYFCMAFX8="; + aarch64 = "sha256-K1e1Q//X+R4FfY60eE4nPgEaF0wUkUIO/AFzzjIrGRY="; }.${arch}; }; }; @@ -59,8 +58,8 @@ in rec { 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"; hash = { - x86_64 = "sha256-BXofrKElgCG3+WUCanpX1sGLhirj2pLi+pi24Z+WjBk="; - aarch64 = "sha256-CdePRa6jmWlt3Wismt3RahGzYOm1ZDwQRt82kRVXSdM="; + x86_64 = "sha256-wdZninKynNQ5o2nxyOxA7GDQ75tWs1TB2jh21O0fEpg="; + aarch64 = "sha256-5iAoMyesBjmdAy/eSMkgtuYv5rnXAEjgLb0yNX02mdw="; }.${arch}; }; }; @@ -74,8 +73,8 @@ in rec { 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"; hash = { - x86_64 = "sha256-aprXjNv2NMoIDCNkFxwmMKcGUt2ssRonzTZ/hH57Mig="; - aarch64 = "sha256-Aq9PDVo/9zTeQ2j6q5bf1aIKjKM7oonIr1mEQ7rX48Y="; + x86_64 = "sha256-SYeCXWGSi8bPbqngGC+ZSBQaKyZrDTFeT+RLKC+ZsDk="; + aarch64 = "sha256-DN6fl7p+q96wsg9Mq6v3lTV0/7b87MFKTJSFuNrjLgs="; }.${arch}; }; }; @@ -106,8 +105,8 @@ in rec { 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"; hash = { - x86_64 = "sha256-39DXU7wIsdxkUpNKnYPT7+qPJ2DrF7G7UJqPfhEDGGs="; - aarch64 = "sha256-7GwKGNHWPZ3uOFyzQj1dftFFz/3oa2j8XWkRn0wnllY="; + x86_64 = "sha256-QY16KSNZj6rq7YL+gOajI80XVtSdCh7MJGPscRJuf1o="; + aarch64 = "sha256-oZXx87dlLZ61ezwDD0WnV48ZMjcK0FkSGl83LhkJvmc="; }.${arch}; }; }; @@ -121,8 +120,8 @@ in rec { 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"; hash = { - x86_64 = "sha256-zNBzFHmNaxUutzMh/5pOglJiKh5NAvSVwvPYyA6RVr4="; - aarch64 = "sha256-RtLXB9kgpLERfhpvDTaJG84qVyN1Puud1PTZtk/WIO0="; + x86_64 = "sha256-FC4zgx+75S9TJVp0azWgON/wNmoEy0074tj+DOdvNOg="; + aarch64 = "sha256-wnRQKqg1V4hrD9VAg6sw8yypB97Wcivt4cH6MFP4KPs="; }.${arch}; }; }; @@ -136,8 +135,8 @@ in rec { 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"; hash = { - x86_64 = "sha256-vpvmKZKVl6ubfq8QMDr0xprXYMWl576hu+ovvREN4ak="; - aarch64 = "sha256-5Yqxgl4kkN3Bb7hsTnd9q5TsCpVBVkEVvqPbL5MYEyg="; + x86_64 = "sha256-eSYWuw6s3H1ht4zPDwjd4oZ49KhIn1OaywtwKHyS0wI="; + aarch64 = "sha256-9O0+S3G3vtjN1Vd4euf3gYRPPtrVxoBB+Uj7BlDAS5M="; }.${arch}; }; }; @@ -151,8 +150,8 @@ in rec { 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"; hash = { - x86_64 = "sha256-4SAiEZWSUaiK8QO2Hg39FBcj1aYRtbOJkeF1W1AMQBo="; - aarch64 = "sha256-+KGDlo6QK3o/n2vSiD0HpIkBwqwIiMXzdFUpfE48gps="; + x86_64 = "sha256-kJoXaSwsjArpe4tqeSkZiU4AcR5dLBvdsyU7tBTiTdc="; + aarch64 = "sha256-qydFxa0lQEwsxZQPlBXV/wiuXGuIcBHRasKZEmXJaOk="; }.${arch}; }; }; @@ -166,8 +165,8 @@ in rec { 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"; hash = { - x86_64 = "sha256-bhcpzsS9cci3Y3Pk9DOrtPonKjRg/vzDqDr3Be/xfks="; - aarch64 = "sha256-YCb4leFWRtx4VPwK/5vgwwDH3/f0/0OWEy4ueAS7sUw="; + x86_64 = "sha256-BAEXN6sx4f+BJnKz0lkPoAmRXnlbl5s5ETAyfE/AZak="; + aarch64 = "sha256-xayvsFAglBxAB49j2tnt52d6KX6LxMBRfx0wR/p8K70="; }.${arch}; }; }; diff --git a/pkgs/applications/editors/eclipse/plugins.nix b/pkgs/applications/editors/eclipse/plugins.nix index 67c071b5b938..2eb87c8394d8 100644 --- a/pkgs/applications/editors/eclipse/plugins.nix +++ b/pkgs/applications/editors/eclipse/plugins.nix @@ -255,12 +255,12 @@ rec { cdt = buildEclipseUpdateSite rec { name = "cdt-${version}"; # find current version at https://github.com/eclipse-cdt/cdt/releases - version = "11.1.1"; + version = "11.2.0"; src = fetchzip { 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"; - hash = "sha256-k78QKPIb3Lr0Wcg2tTlX1abdpcvxspjaxJiP2Hrgb4A="; + hash = "sha256-YEmoAFzyGOyreg8FiL/gcwXROHT5VoLb1DfHhBp1tsQ="; }; meta = with lib; { diff --git a/pkgs/applications/editors/eclipse/update.sh b/pkgs/applications/editors/eclipse/update.sh new file mode 100755 index 000000000000..7e100ccfbcd7 --- /dev/null +++ b/pkgs/applications/editors/eclipse/update.sh @@ -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 < scripts/CMakeLists.txt + ''; postPatch = '' substituteInPlace conf/CMakeLists.txt \ @@ -33,21 +49,23 @@ stdenv.mkDerivation rec { substituteInPlace src/decode_aprs.c \ --replace /usr/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 \ --replace 'Terminal=false' 'Terminal=true' \ --replace 'Exec=@APPLICATION_DESKTOP_EXEC@' 'Exec=direwolf' substituteInPlace src/dwgpsd.c \ --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"; homepage = "https://github.com/wb2osz/direwolf/"; license = licenses.gpl2; platforms = platforms.unix; - maintainers = with maintainers; [ lasandell ]; + maintainers = with maintainers; [ lasandell sarcasticadmin ]; }; } diff --git a/pkgs/applications/version-management/git-mit/default.nix b/pkgs/applications/version-management/git-mit/default.nix index 4662f0da5128..b495652a3364 100644 --- a/pkgs/applications/version-management/git-mit/default.nix +++ b/pkgs/applications/version-management/git-mit/default.nix @@ -10,7 +10,7 @@ }: let - version = "5.12.152"; + version = "5.12.153"; in rustPlatform.buildRustPackage { pname = "git-mit"; @@ -20,10 +20,10 @@ rustPlatform.buildRustPackage { owner = "PurpleBooth"; repo = "git-mit"; rev = "v${version}"; - hash = "sha256-FW7vstYJNJ29v3BNsyRFk57sW3jjA7aurXzz6je1nuo="; + hash = "sha256-bYSWNNMDH1iTGmpLB3m/LCS8GltTdjfjeMwtB5Ss7dk="; }; - cargoHash = "sha256-FQmWAvSuif0/mTVl2xzI4JVLCxn7CXYubGdi55kk2Mk="; + cargoHash = "sha256-FAihHJTnnHYCphEVMPA1YPT/Nj9m4DwkbhGbZJOlm0o="; nativeBuildInputs = [ pkg-config ]; diff --git a/pkgs/by-name/ga/game-rs/package.nix b/pkgs/by-name/ga/game-rs/package.nix new file mode 100644 index 000000000000..127e06f7129e --- /dev/null +++ b/pkgs/by-name/ga/game-rs/package.nix @@ -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; + }; +} diff --git a/pkgs/development/compilers/sbcl/2.x.nix b/pkgs/development/compilers/sbcl/2.x.nix index cfd6166d0456..a4de7b8b876f 100644 --- a/pkgs/development/compilers/sbcl/2.x.nix +++ b/pkgs/development/compilers/sbcl/2.x.nix @@ -19,12 +19,12 @@ let sha256 = "189gjqzdz10xh3ybiy4ch1r98bsmkcb4hpnrmggd4y2g5kqnyx4y"; }; - "2.3.7" = { - sha256 = "sha256-aYFE+4BaMZGaYQ3pmauYOR1S62mK2qjKGbKPxu0Nmfc="; - }; "2.3.8" = { sha256 = "sha256-QhVxsqyRbli+jrzqXvSr+NeQKGPbah0KXvqVAK3KDSk="; }; + "2.3.9" = { + sha256 = "sha256-fSiakSMgIgKL8BKJAMMr8A5MVDDDLyivBZTIpZKphlQ="; + }; }; in with versionMap.${version}; diff --git a/pkgs/development/interpreters/clisp/default.nix b/pkgs/development/interpreters/clisp/default.nix index cb0e547331c0..ac6257164cb7 100644 --- a/pkgs/development/interpreters/clisp/default.nix +++ b/pkgs/development/interpreters/clisp/default.nix @@ -25,8 +25,8 @@ , xorgproto , coreutils # build options -, threadSupport ? stdenv.hostPlatform.isx86 -, x11Support ? stdenv.hostPlatform.isx86 +, threadSupport ? (stdenv.hostPlatform.isx86 && ! stdenv.hostPlatform.isDarwin) +, x11Support ? (stdenv.hostPlatform.isx86 && ! stdenv.hostPlatform.isDarwin) , dllSupport ? true , withModules ? [ "pcre" @@ -82,13 +82,16 @@ stdenv.mkDerivation { ''; preConfigure = lib.optionalString stdenv.isDarwin ('' - cd src - autoreconf -f -i -I m4 -I glm4 - cd - + ( + cd src + autoreconf -f -i -I m4 -I glm4 + ) '' + lib.concatMapStrings (x: '' - cd modules/${x} - autoreconf -f -i -I ../../src -I ../../src/m4 -I ../../src/glm4 - cd - + ( + root="$PWD" + cd modules/${x} + autoreconf -f -i -I "$root/src" -I "$root/src/m4" -I "$root/src/glm4" + ) '') withModules); configureFlags = [ "builddir" ] diff --git a/pkgs/development/libraries/mps/default.nix b/pkgs/development/libraries/mps/default.nix index 6298a1dfef63..3cc6d9ce3510 100644 --- a/pkgs/development/libraries/mps/default.nix +++ b/pkgs/development/libraries/mps/default.nix @@ -1,12 +1,19 @@ -{ lib, stdenv, fetchurl, autoreconfHook, sqlite }: +{ lib +, stdenv +, fetchFromGitHub +, autoreconfHook +, sqlite +}: stdenv.mkDerivation rec { pname = "mps"; - version = "1.117.0"; + version = "1.118.0"; - src = fetchurl { - url = "https://www.ravenbrook.com/project/mps/release/${version}/mps-kit-${version}.tar.gz"; - sha256 = "04ix4l7lk6nxxk9sawpnxbybvqb82lks5606ym10bc1qbc2kqdcz"; + src = fetchFromGitHub { + owner = "Ravenbrook"; + repo = "mps"; + rev = "refs/tags/release-${version}"; + hash = "sha256-3ql3jWLccgnQHKf23B1en+nJ9rxqmHcWd7aBr93YER0="; }; nativeBuildInputs = [ autoreconfHook ]; @@ -21,7 +28,6 @@ stdenv.mkDerivation rec { meta = { - broken = true; description = "A flexible memory management and garbage collection library"; homepage = "https://www.ravenbrook.com/project/mps"; license = lib.licenses.sleepycat; diff --git a/pkgs/development/libraries/utf8cpp/default.nix b/pkgs/development/libraries/utf8cpp/default.nix index c32c6e1e52f5..764f991c4467 100644 --- a/pkgs/development/libraries/utf8cpp/default.nix +++ b/pkgs/development/libraries/utf8cpp/default.nix @@ -2,14 +2,14 @@ stdenv.mkDerivation rec { pname = "utf8cpp"; - version = "3.2.4"; + version = "3.2.5"; src = fetchFromGitHub { owner = "nemtrif"; repo = "utfcpp"; rev = "v${version}"; fetchSubmodules = true; - sha256 = "sha256-cpy1lg/9pWgI5uyOO9lfSt8llfGEjnu/O4P9688XVEA="; + sha256 = "sha256-cWiGggn2GP25K/8eopvnFPq6iwcBteNI3i9Lo1Sr+ig="; }; cmakeFlags = [ @@ -24,6 +24,7 @@ stdenv.mkDerivation rec { meta = with lib; { 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"; license = licenses.boost; maintainers = with maintainers; [ jobojeha ]; diff --git a/pkgs/development/ocaml-modules/re/default.nix b/pkgs/development/ocaml-modules/re/default.nix index 5244aaf9edd0..2f5d2cd603b3 100644 --- a/pkgs/development/ocaml-modules/re/default.nix +++ b/pkgs/development/ocaml-modules/re/default.nix @@ -3,8 +3,8 @@ let version_sha = if lib.versionAtLeast ocaml.version "4.08" then { - version = "1.10.4"; - sha256 = "sha256-g+s+QwCqmx3HggdJAQ9DYuqDUkdCEwUk14wgzpnKdHw="; + version = "1.11.0"; + sha256 = "sha256-AfwkR4DA9r5yrnlrH7dQ82feGGJP110H7nl4LtbfjU8="; } else { diff --git a/pkgs/development/python-modules/enlighten/default.nix b/pkgs/development/python-modules/enlighten/default.nix index f6568e691fa1..76ff49c6a4c0 100644 --- a/pkgs/development/python-modules/enlighten/default.nix +++ b/pkgs/development/python-modules/enlighten/default.nix @@ -10,14 +10,14 @@ buildPythonPackage rec { pname = "enlighten"; - version = "1.11.2"; + version = "1.12.0"; format = "setuptools"; disabled = pythonOlder "3.7"; src = fetchPypi { inherit pname version; - hash = "sha256-koSGHe5aJy4OGjdYzT87cYCxvRdUh12naHbyp/Rsy2E="; + hash = "sha256-a4r20HG13gUBOjjoDhaHJtxv+yhY3oF/d+QV+Fss6Bk="; }; propagatedBuildInputs = [ diff --git a/pkgs/development/python-modules/get-video-properties/default.nix b/pkgs/development/python-modules/get-video-properties/default.nix index 89e01fedc13d..63b9515cf791 100644 --- a/pkgs/development/python-modules/get-video-properties/default.nix +++ b/pkgs/development/python-modules/get-video-properties/default.nix @@ -1,7 +1,7 @@ { lib , buildPythonPackage , fetchFromGitHub -, ffmpeg +, ffmpeg-headless }: buildPythonPackage rec { @@ -20,7 +20,10 @@ buildPythonPackage rec { postPatch = '' 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" ]; diff --git a/pkgs/development/python-modules/nextcord/default.nix b/pkgs/development/python-modules/nextcord/default.nix index 04fa54a28d6a..4a5faf4c33a8 100644 --- a/pkgs/development/python-modules/nextcord/default.nix +++ b/pkgs/development/python-modules/nextcord/default.nix @@ -16,7 +16,7 @@ buildPythonPackage rec { pname = "nextcord"; - version = "2.5.0"; + version = "2.6.1"; format = "setuptools"; @@ -26,7 +26,7 @@ buildPythonPackage rec { owner = "nextcord"; repo = "nextcord"; rev = "refs/tags/v${version}"; - hash = "sha256-Oo1C2tasuNIpUaKACbapnoZs7WVS1uncS1akErzQrqI="; + hash = "sha256-bv4I+Ol/N4kbp/Ch7utaUpo0GmF+Mpx4zWmHL7uIveM="; }; patches = [ diff --git a/pkgs/os-specific/linux/zfs/stable.nix b/pkgs/os-specific/linux/zfs/stable.nix index 14cda12e6f32..1a77396300eb 100644 --- a/pkgs/os-specific/linux/zfs/stable.nix +++ b/pkgs/os-specific/linux/zfs/stable.nix @@ -14,10 +14,13 @@ callPackage ./generic.nix args { # check the release notes for compatible kernels kernelCompatible = if stdenv'.isx86_64 || removeLinuxDRM - then kernel.kernelOlder "6.4" + then kernel.kernelOlder "6.6" 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 = [ + # applied in version 2.2.x (fetchpatch { name = "musl.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. - version = "2.1.12"; + version = "2.1.13"; - sha256 = "eYUR5d4gpTrlFu6j1uL83DWL9uPGgAUDRdSEb73V5i4="; + sha256 = "tqUCn/Hf/eEmyWRQthWQdmTJK2sDspnHiiEfn9rz2Kc="; } diff --git a/pkgs/servers/etcd/3.3.nix b/pkgs/servers/etcd/3.3.nix deleted file mode 100644 index edea448ee84e..000000000000 --- a/pkgs/servers/etcd/3.3.nix +++ /dev/null @@ -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" ]; - }; -} diff --git a/pkgs/tools/misc/shelldap/default.nix b/pkgs/tools/misc/shelldap/default.nix index c782b1292008..b383c9692a9c 100644 --- a/pkgs/tools/misc/shelldap/default.nix +++ b/pkgs/tools/misc/shelldap/default.nix @@ -1,26 +1,52 @@ -{ lib, fetchurl, perlPackages }: +{ lib +, fetchFromGitHub +, perlPackages +}: + perlPackages.buildPerlPackage rec { pname = "shelldap"; - version = "1.4.0"; - src = fetchurl { - url = "https://bitbucket.org/mahlon/shelldap/downloads/shelldap-${version}.tar.gz"; - sha256 = "07gkvvxcgw3pgkfy8p9mmidakciaq1rsq5zhmdqd8zcwgqkrr24i"; + version = "1.5.1"; + + src = fetchFromGitHub { + 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 = '' touch Makefile.PL ''; + installPhase = '' runHook preInstall install -Dm555 -t $out/bin shelldap runHook preInstall ''; + + # no make target 'test', not tests provided by source + doCheck = false; + outputs = [ "out" ]; + 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"; + changelog = "https://github.com/mahlonsmith/shelldap/blob/v${version}/CHANGELOG"; license = with licenses; [ bsd3 ]; - maintainers = with maintainers; [ tobiasBora ]; - platforms = platforms.linux; + maintainers = with maintainers; [ clerie tobiasBora ]; + platforms = platforms.unix; }; } diff --git a/pkgs/top-level/aliases.nix b/pkgs/top-level/aliases.nix index e50ac7e69e81..c6af6c2c250b 100644 --- a/pkgs/top-level/aliases.nix +++ b/pkgs/top-level/aliases.nix @@ -496,6 +496,7 @@ mapAliases ({ erlang_23 = throw "erlangR23 has been removed in favor of newer versions."; # added 2023-09-11 erlangR23 = erlang_23; 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 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 diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index b00cc7f46059..e2a8025e3af1 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -24199,7 +24199,7 @@ with pkgs; nanomq = callPackage ../servers/mqtt/nanomq { }; - mps = callPackage ../development/libraries/mps { stdenv = gcc10StdenvCompat; }; + mps = callPackage ../development/libraries/mps { }; libmpeg2 = callPackage ../development/libraries/libmpeg2 { }; @@ -26212,17 +26212,17 @@ with pkgs; pkg = callPackage ../development/compilers/sbcl/bootstrap.nix {}; 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 { pkg = callPackage ../development/compilers/sbcl/2.x.nix { version = "2.3.8"; }; faslExt = "fasl"; 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; @@ -26525,7 +26525,6 @@ with pkgs; ergochat = callPackage ../servers/irc/ergochat { }; etcd = etcd_3_5; - etcd_3_3 = callPackage ../servers/etcd/3.3.nix { }; etcd_3_4 = callPackage ../servers/etcd/3.4.nix { }; etcd_3_5 = callPackage ../servers/etcd/3.5.nix { };