Merge master into staging-next

authored by github-actions[bot] and committed by GitHub 935cdc9f a4774343

+239 -92
+1 -1
maintainers/maintainer-list.nix
··· 13154 }]; 13155 }; 13156 michaelpj = { 13157 - email = "michaelpj@gmail.com"; 13158 github = "michaelpj"; 13159 githubId = 1699466; 13160 name = "Michael Peyton Jones";
··· 13154 }]; 13155 }; 13156 michaelpj = { 13157 + email = "me@michaelpj.com"; 13158 github = "michaelpj"; 13159 githubId = 1699466; 13160 name = "Michael Peyton Jones";
+1 -1
nixos/modules/services/misc/tzupdate.nix
··· 41 }; 42 }; 43 44 - meta.maintainers = [ maintainers.michaelpj ]; 45 }
··· 41 }; 42 }; 43 44 + meta.maintainers = [ ]; 45 }
+1 -1
nixos/modules/services/monitoring/arbtt.nix
··· 45 }; 46 }; 47 48 - meta.maintainers = [ maintainers.michaelpj ]; 49 }
··· 45 }; 46 }; 47 48 + meta.maintainers = [ ]; 49 }
+4 -3
pkgs/applications/emulators/retroarch/cores.nix
··· 9 , fetchFromGitHub 10 , fetchpatch 11 , ffmpeg 12 - , ffmpeg_4 13 , fluidsynth 14 , fmt 15 , freetype ··· 890 ppsspp = mkLibretroCore { 891 core = "ppsspp"; 892 extraNativeBuildInputs = [ cmake pkg-config python3 ]; 893 - extraBuildInputs = [ libGLU libGL libzip ffmpeg_4 snappy xorg.libX11 ]; 894 makefile = "Makefile"; 895 cmakeFlags = [ 896 "-DLIBRETRO=ON" 897 - "-DUSE_SYSTEM_FFMPEG=ON" 898 "-DUSE_SYSTEM_SNAPPY=ON" 899 "-DUSE_SYSTEM_LIBZIP=ON" 900 "-DOpenGL_GL_PREFERENCE=GLVND"
··· 9 , fetchFromGitHub 10 , fetchpatch 11 , ffmpeg 12 , fluidsynth 13 , fmt 14 , freetype ··· 889 ppsspp = mkLibretroCore { 890 core = "ppsspp"; 891 extraNativeBuildInputs = [ cmake pkg-config python3 ]; 892 + extraBuildInputs = [ libGLU libGL libzip snappy xorg.libX11 ]; 893 makefile = "Makefile"; 894 cmakeFlags = [ 895 "-DLIBRETRO=ON" 896 + # USE_SYSTEM_FFMPEG=ON causes several glitches during video playback 897 + # See: https://github.com/NixOS/nixpkgs/issues/304616 898 + "-DUSE_SYSTEM_FFMPEG=OFF" 899 "-DUSE_SYSTEM_SNAPPY=ON" 900 "-DUSE_SYSTEM_LIBZIP=ON" 901 "-DOpenGL_GL_PREFERENCE=GLVND"
+1 -1
pkgs/applications/misc/tzupdate/default.nix
··· 18 description = "Update timezone information based on geoip"; 19 mainProgram = "tzupdate"; 20 homepage = "https://github.com/cdown/tzupdate"; 21 - maintainers = [ maintainers.michaelpj ]; 22 license = licenses.unlicense; 23 }; 24 }
··· 18 description = "Update timezone information based on geoip"; 19 mainProgram = "tzupdate"; 20 homepage = "https://github.com/cdown/tzupdate"; 21 + maintainers = [ ]; 22 license = licenses.unlicense; 23 }; 24 }
+2 -2
pkgs/applications/networking/flexget/default.nix
··· 6 7 python3.pkgs.buildPythonApplication rec { 8 pname = "flexget"; 9 - version = "3.11.31"; 10 pyproject = true; 11 12 # Fetch from GitHub in order to use `requirements.in` ··· 14 owner = "Flexget"; 15 repo = "Flexget"; 16 rev = "refs/tags/v${version}"; 17 - hash = "sha256-lTAC33mw2iHY9Xj4WRgO+Fh+xfjs5vRw6xAZcEaJKhM="; 18 }; 19 20 postPatch = ''
··· 6 7 python3.pkgs.buildPythonApplication rec { 8 pname = "flexget"; 9 + version = "3.11.33"; 10 pyproject = true; 11 12 # Fetch from GitHub in order to use `requirements.in` ··· 14 owner = "Flexget"; 15 repo = "Flexget"; 16 rev = "refs/tags/v${version}"; 17 + hash = "sha256-kgTlz3cUztIUKKqmUpUpEwu5qyjE0fCarG/EKJ1PoPc="; 18 }; 19 20 postPatch = ''
+2 -2
pkgs/applications/science/misc/snakemake/default.nix
··· 6 7 python3.pkgs.buildPythonApplication rec { 8 pname = "snakemake"; 9 - version = "8.11.3"; 10 format = "setuptools"; 11 12 src = fetchFromGitHub { 13 owner = "snakemake"; 14 repo = pname; 15 rev = "refs/tags/v${version}"; 16 - hash = "sha256-wNs5OW8bM5LU0Ik77VU47dEq2PlrsfNNtl6Zedocnm4="; 17 # https://github.com/python-versioneer/python-versioneer/issues/217 18 postFetch = '' 19 sed -i "$out"/snakemake/_version.py -e 's#git_refnames = ".*"#git_refnames = " (tag: v${version})"#'
··· 6 7 python3.pkgs.buildPythonApplication rec { 8 pname = "snakemake"; 9 + version = "8.11.4"; 10 format = "setuptools"; 11 12 src = fetchFromGitHub { 13 owner = "snakemake"; 14 repo = pname; 15 rev = "refs/tags/v${version}"; 16 + hash = "sha256-nfPA2sQCeRc12A4rrlo17UPpiB8plKYbiumZjS7Yhz8="; 17 # https://github.com/python-versioneer/python-versioneer/issues/217 18 postFetch = '' 19 sed -i "$out"/snakemake/_version.py -e 's#git_refnames = ".*"#git_refnames = " (tag: v${version})"#'
+4 -1
pkgs/applications/terminal-emulators/kitty/default.nix
··· 210 cp -r linux-package/{bin,share,lib} "$out" 211 cp linux-package/bin/kitten "$kitten/bin/kitten" 212 ''} 213 - wrapProgram "$out/bin/kitty" --prefix PATH : "$out/bin:${lib.makeBinPath [ imagemagick ncurses.dev ]}" 214 215 installShellCompletion --cmd kitty \ 216 --bash <("$out/bin/kitty" +complete setup bash) \
··· 210 cp -r linux-package/{bin,share,lib} "$out" 211 cp linux-package/bin/kitten "$kitten/bin/kitten" 212 ''} 213 + 214 + # dereference the `kitty` symlink to make sure the actual executable 215 + # is wrapped on macOS as well (and not just the symlink) 216 + wrapProgram $(realpath "$out/bin/kitty") --prefix PATH : "$out/bin:${lib.makeBinPath [ imagemagick ncurses.dev ]}" 217 218 installShellCompletion --cmd kitty \ 219 --bash <("$out/bin/kitty" +complete setup bash) \
+2 -2
pkgs/applications/video/streamlink/default.nix
··· 7 8 python3Packages.buildPythonApplication rec { 9 pname = "streamlink"; 10 - version = "6.7.3"; 11 pyproject = true; 12 13 src = fetchPypi { 14 inherit pname version; 15 - hash = "sha256-Da+J+NOXW+n55LvaPQw6XiRhJJQ4Pc4Z1p21qMym/Xw="; 16 }; 17 18 patches = [
··· 7 8 python3Packages.buildPythonApplication rec { 9 pname = "streamlink"; 10 + version = "6.7.4"; 11 pyproject = true; 12 13 src = fetchPypi { 14 inherit pname version; 15 + hash = "sha256-kzdTerEZ/ndSSl1mWq7Ou/sG4suN8o0SYNkodkJXUc4="; 16 }; 17 18 patches = [
+5 -11
pkgs/by-name/cl/clairvoyant/package.nix
··· 2 , fetchFromGitHub 3 , gtk4 4 , libadwaita 5 , meson 6 , ninja 7 , pkg-config 8 , stdenv 9 , vala 10 , wrapGAppsHook4 11 - # Clairvoyant shows a non-dismissable banner recommending the use of the Flatpak version 12 - , hideUnsupportedVersionBanner ? false 13 }: 14 15 stdenv.mkDerivation (finalAttrs: { 16 pname = "clairvoyant"; 17 - version = "3.1.3"; 18 19 src = fetchFromGitHub { 20 owner = "cassidyjames"; 21 repo = "clairvoyant"; 22 rev = finalAttrs.version; 23 - hash = "sha256-eAcd8JJmcsz8dm049g5xsF6gPpNQ6ZvGGIhKAoMlPTU="; 24 }; 25 26 nativeBuildInputs = [ ··· 34 buildInputs = [ 35 gtk4 36 libadwaita 37 ]; 38 39 - preFixup = lib.optionalString hideUnsupportedVersionBanner '' 40 - gappsWrapperArgs+=( 41 - --set container true 42 - ) 43 - ''; 44 - 45 meta = with lib; { 46 changelog = "https://github.com/cassidyjames/clairvoyant/releases/tag/${finalAttrs.version}"; 47 - description = "Ask questions and get psychic answers"; 48 homepage = "https://github.com/cassidyjames/clairvoyant"; 49 license = licenses.gpl3Plus; 50 mainProgram = "com.github.cassidyjames.clairvoyant";
··· 2 , fetchFromGitHub 3 , gtk4 4 , libadwaita 5 + , libportal 6 , meson 7 , ninja 8 , pkg-config 9 , stdenv 10 , vala 11 , wrapGAppsHook4 12 }: 13 14 stdenv.mkDerivation (finalAttrs: { 15 pname = "clairvoyant"; 16 + version = "3.1.7"; 17 18 src = fetchFromGitHub { 19 owner = "cassidyjames"; 20 repo = "clairvoyant"; 21 rev = finalAttrs.version; 22 + hash = "sha256-p9Lgs5z5oRuMQYRKzWp+aQDi0FnxvbQGLZpBigolHUw="; 23 }; 24 25 nativeBuildInputs = [ ··· 33 buildInputs = [ 34 gtk4 35 libadwaita 36 + libportal 37 ]; 38 39 meta = with lib; { 40 changelog = "https://github.com/cassidyjames/clairvoyant/releases/tag/${finalAttrs.version}"; 41 + description = "Ask questions, get psychic answers"; 42 homepage = "https://github.com/cassidyjames/clairvoyant"; 43 license = licenses.gpl3Plus; 44 mainProgram = "com.github.cassidyjames.clairvoyant";
+3 -3
pkgs/by-name/ho/home-manager/package.nix
··· 16 17 stdenvNoCC.mkDerivation (finalAttrs: { 18 pname = "home-manager"; 19 - version = "0-unstable-2024-05-05"; 20 21 src = fetchFromGitHub { 22 name = "home-manager-source"; 23 owner = "nix-community"; 24 repo = "home-manager"; 25 - rev = "3dfe05aa9b5646995ace887931fa60269a039777"; 26 - hash = "sha256-QXpLmgmisNK2Zgpnu9DiO9ScrKJuJ4zmiMTNpObVIuk="; 27 }; 28 29 nativeBuildInputs = [
··· 16 17 stdenvNoCC.mkDerivation (finalAttrs: { 18 pname = "home-manager"; 19 + version = "0-unstable-2024-05-12"; 20 21 src = fetchFromGitHub { 22 name = "home-manager-source"; 23 owner = "nix-community"; 24 repo = "home-manager"; 25 + rev = "44677a1c96810a8e8c4ffaeaad10c842402647c1"; 26 + hash = "sha256-4pRuzsHZOW5W4CsXI9uhKtiJeQSUoe1d2M9mWU98HC4="; 27 }; 28 29 nativeBuildInputs = [
+3 -3
pkgs/by-name/sn/snipe-it/package.nix
··· 8 9 php.buildComposerProject (finalAttrs: { 10 pname = "snipe-it"; 11 - version = "6.3.4"; 12 13 src = fetchFromGitHub { 14 owner = "snipe"; 15 repo = "snipe-it"; 16 rev = "v${finalAttrs.version}"; 17 - hash = "sha256-xjVrf8RgHzVHSyPK+fqLOCS2pjPvUMFUHZtwkrQWHWM="; 18 }; 19 20 - vendorHash = "sha256-HNMn50gTYtRHH9bKcvrM7fnCMQsf6lBOqr825kgEsvE="; 21 22 postInstall = '' 23 snipe_it_out="$out/share/php/snipe-it"
··· 8 9 php.buildComposerProject (finalAttrs: { 10 pname = "snipe-it"; 11 + version = "6.4.1"; 12 13 src = fetchFromGitHub { 14 owner = "snipe"; 15 repo = "snipe-it"; 16 rev = "v${finalAttrs.version}"; 17 + hash = "sha256-7IK5KLdWYcdzsJwzXfHsYvxWiR/R4407gGAGiY9+czY="; 18 }; 19 20 + vendorHash = "sha256-KkFoc/fqYVgA5Vv6oEk+1/Rcj9VA52ZnH5O5qmLhmE4="; 21 22 postInstall = '' 23 snipe_it_out="$out/share/php/snipe-it"
+2 -2
pkgs/by-name/wh/whatsapp-emoji-font/package.nix
··· 11 12 stdenvNoCC.mkDerivation rec { 13 pname = "whatsapp-emoji-linux"; 14 - version = "2.24.2.76-1"; 15 16 src = fetchFromGitHub { 17 rev = "refs/tags/${version}"; 18 owner = "dmlls"; 19 repo = "whatsapp-emoji-linux"; 20 - hash = "sha256-BviYvhH/iu5N0+YtL4d6andbWL87LFU98pxUgt4NcsM="; 21 }; 22 23 makeFlags = [
··· 11 12 stdenvNoCC.mkDerivation rec { 13 pname = "whatsapp-emoji-linux"; 14 + version = "2.24.8.85-1"; 15 16 src = fetchFromGitHub { 17 rev = "refs/tags/${version}"; 18 owner = "dmlls"; 19 repo = "whatsapp-emoji-linux"; 20 + hash = "sha256-6bei+kR+5UF4GQ140sUXy8TDXZKNFmM+XgvMKf+8s2Y="; 21 }; 22 23 makeFlags = [
+5 -7
pkgs/development/compilers/odin/default.nix
··· 30 LLVM_CONFIG = "${llvmPackages.llvm.dev}/bin/llvm-config"; 31 32 postPatch = lib.optionalString stdenv.isDarwin '' 33 - sed -i src/main.cpp \ 34 - -e 's|-syslibroot /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk|-syslibroot ${MacOSX-SDK}|' 35 - '' + '' 36 - sed -i build_odin.sh \ 37 - -e 's/^GIT_SHA=.*$/GIT_SHA=/' \ 38 - -e 's/LLVM-C/LLVM/' \ 39 - -e 's/framework System/lSystem/' 40 patchShebangs build_odin.sh 41 ''; 42
··· 30 LLVM_CONFIG = "${llvmPackages.llvm.dev}/bin/llvm-config"; 31 32 postPatch = lib.optionalString stdenv.isDarwin '' 33 + substituteInPlace src/linker.cpp \ 34 + --replace-fail '/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk' ${MacOSX-SDK} 35 + '' + '' 36 + substituteInPlace build_odin.sh \ 37 + --replace-fail '-framework System' '-lSystem' 38 patchShebangs build_odin.sh 39 ''; 40
+6
pkgs/development/python-modules/django-allauth/default.nix
··· 6 # build-system 7 , setuptools 8 9 # dependencies 10 , django 11 , python3-openid ··· 41 }; 42 43 nativeBuildInputs = [ 44 setuptools 45 ]; 46 ··· 51 requests 52 requests-oauthlib 53 ] ++ pyjwt.optional-dependencies.crypto; 54 55 passthru.optional-dependencies = { 56 saml = [
··· 6 # build-system 7 , setuptools 8 9 + # build-time dependencies 10 + , gettext 11 + 12 # dependencies 13 , django 14 , python3-openid ··· 44 }; 45 46 nativeBuildInputs = [ 47 + gettext 48 setuptools 49 ]; 50 ··· 55 requests 56 requests-oauthlib 57 ] ++ pyjwt.optional-dependencies.crypto; 58 + 59 + preBuild = "python -m django compilemessages"; 60 61 passthru.optional-dependencies = { 62 saml = [
+30 -38
pkgs/development/python-modules/fakeredis/default.nix
··· 1 - { lib 2 - , buildPythonPackage 3 - , fetchFromGitHub 4 - , hypothesis 5 - , jsonpath-ng 6 - , lupa 7 - , poetry-core 8 - , pybloom-live 9 - , pyprobables 10 - , pytest-asyncio 11 - , pytest-mock 12 - , pytestCheckHook 13 - , pythonOlder 14 - , redis 15 - , sortedcontainers 16 }: 17 18 buildPythonPackage rec { 19 pname = "fakeredis"; 20 - version = "2.21.3"; 21 pyproject = true; 22 23 disabled = pythonOlder "3.7"; ··· 26 owner = "dsoftwareinc"; 27 repo = "fakeredis-py"; 28 rev = "refs/tags/v${version}"; 29 - hash = "sha256-GIg+a8G5S0dmbvMKqS/Vn+wzNM6iNIs3bKPqhecsQt4="; 30 }; 31 32 - nativeBuildInputs = [ 33 - poetry-core 34 - ]; 35 36 - propagatedBuildInputs = [ 37 redis 38 sortedcontainers 39 ]; ··· 46 ]; 47 48 passthru.optional-dependencies = { 49 - lua = [ 50 - lupa 51 - ]; 52 - json = [ 53 - jsonpath-ng 54 - ]; 55 - bf = [ 56 - pyprobables 57 - ]; 58 - cf = [ 59 - pyprobables 60 - ]; 61 - probabilistic = [ 62 - pyprobables 63 - ]; 64 }; 65 66 - pythonImportsCheck = [ 67 - "fakeredis" 68 ]; 69 70 meta = with lib; {
··· 1 + { 2 + lib, 3 + buildPythonPackage, 4 + fetchFromGitHub, 5 + hypothesis, 6 + jsonpath-ng, 7 + lupa, 8 + poetry-core, 9 + pybloom-live, 10 + pyprobables, 11 + pytest-asyncio, 12 + pytest-mock, 13 + pytestCheckHook, 14 + pythonOlder, 15 + redis, 16 + sortedcontainers, 17 }: 18 19 buildPythonPackage rec { 20 pname = "fakeredis"; 21 + version = "2.23.0"; 22 pyproject = true; 23 24 disabled = pythonOlder "3.7"; ··· 27 owner = "dsoftwareinc"; 28 repo = "fakeredis-py"; 29 rev = "refs/tags/v${version}"; 30 + hash = "sha256-qiqJO8uZ3vy9TpTHmExlUoQ78avPVqlKn0jgvDsKdP0="; 31 }; 32 33 + build-system = [ poetry-core ]; 34 35 + dependencies = [ 36 redis 37 sortedcontainers 38 ]; ··· 45 ]; 46 47 passthru.optional-dependencies = { 48 + lua = [ lupa ]; 49 + json = [ jsonpath-ng ]; 50 + bf = [ pyprobables ]; 51 + cf = [ pyprobables ]; 52 + probabilistic = [ pyprobables ]; 53 }; 54 55 + pythonImportsCheck = [ "fakeredis" ]; 56 + 57 + disabledTests = [ 58 + # AssertionError 59 + "test_command" 60 ]; 61 62 meta = with lib; {
+1 -1
pkgs/development/python-modules/openai-triton/default.nix
··· 189 meta = with lib; { 190 description = "Language and compiler for writing highly efficient custom Deep-Learning primitives"; 191 homepage = "https://github.com/openai/triton"; 192 - platforms = lib.platforms.unix; 193 license = licenses.mit; 194 maintainers = with maintainers; [ SomeoneSerge Madouura ]; 195 };
··· 189 meta = with lib; { 190 description = "Language and compiler for writing highly efficient custom Deep-Learning primitives"; 191 homepage = "https://github.com/openai/triton"; 192 + platforms = platforms.linux; 193 license = licenses.mit; 194 maintainers = with maintainers; [ SomeoneSerge Madouura ]; 195 };
+4 -2
pkgs/development/python-modules/openai-whisper/default.nix
··· 1 { lib 2 , fetchFromGitHub 3 , buildPythonPackage 4 , substituteAll ··· 44 45 nativeBuildInputs = [ 46 setuptools 47 - scipy 48 ]; 49 50 propagatedBuildInputs = [ 51 more-itertools 52 numba 53 numpy 54 - openai-triton 55 tiktoken 56 torch 57 tqdm 58 ]; 59 60 preCheck = '' ··· 63 64 nativeCheckInputs = [ 65 pytestCheckHook 66 ]; 67 68 disabledTests = [
··· 1 { lib 2 + , stdenv 3 , fetchFromGitHub 4 , buildPythonPackage 5 , substituteAll ··· 45 46 nativeBuildInputs = [ 47 setuptools 48 ]; 49 50 propagatedBuildInputs = [ 51 more-itertools 52 numba 53 numpy 54 tiktoken 55 torch 56 tqdm 57 + ] ++ lib.optionals (lib.meta.availableOn stdenv.hostPlatform openai-triton) [ 58 + openai-triton 59 ]; 60 61 preCheck = '' ··· 64 65 nativeCheckInputs = [ 66 pytestCheckHook 67 + scipy 68 ]; 69 70 disabledTests = [
+3 -3
pkgs/os-specific/darwin/openwith/default.nix
··· 1 - { lib, stdenv, fetchFromGitHub, swift, AppKit, Foundation, UniformTypeIdentifiers }: 2 3 let 4 arch = if stdenv.isAarch64 then "arm64" else "x86_64"; 5 in 6 stdenv.mkDerivation rec { ··· 16 17 nativeBuildInputs = [ swift ]; 18 19 - buildInputs = [ AppKit Foundation UniformTypeIdentifiers ]; 20 21 makeFlags = [ "openwith_${arch}" ]; 22 ··· 32 license = licenses.unlicense; 33 maintainers = with maintainers; [ zowoq ]; 34 platforms = [ "aarch64-darwin" "x86_64-darwin" ]; 35 - broken = stdenv.isx86_64; # https://hydra.nixos.org/build/219354133/nixlog/3 36 }; 37 }
··· 1 + { lib, swiftPackages, fetchFromGitHub }: 2 3 let 4 + inherit (swiftPackages) apple_sdk stdenv swift; 5 arch = if stdenv.isAarch64 then "arm64" else "x86_64"; 6 in 7 stdenv.mkDerivation rec { ··· 17 18 nativeBuildInputs = [ swift ]; 19 20 + buildInputs = with apple_sdk.frameworks; [ AppKit Foundation UniformTypeIdentifiers ]; 21 22 makeFlags = [ "openwith_${arch}" ]; 23 ··· 33 license = licenses.unlicense; 34 maintainers = with maintainers; [ zowoq ]; 35 platforms = [ "aarch64-darwin" "x86_64-darwin" ]; 36 }; 37 }
+6
pkgs/servers/web-apps/kavita/default.nix
··· 34 }) 35 # The webroot is hardcoded as ./wwwroot 36 ./change-webroot.diff 37 ]; 38 postPatch = '' 39 substituteInPlace API/Services/DirectoryService.cs --subst-var out
··· 34 }) 35 # The webroot is hardcoded as ./wwwroot 36 ./change-webroot.diff 37 + # Upstream removes database migrations between versions 38 + # Restore them to avoid breaking on updates 39 + # Info: Restores migrations for versions between v0.7.1.4 and v0.7.9 40 + # On update: check if more migrations need to be restored! 41 + # Migrations should at least allow updates from previous NixOS versions 42 + ./restore-migrations.diff 43 ]; 44 postPatch = '' 45 substituteInPlace API/Services/DirectoryService.cs --subst-var out
+147
pkgs/servers/web-apps/kavita/restore-migrations.diff
···
··· 1 + diff --git a/API/Data/ManualMigrations/MigrateDisableScrobblingOnComicLibraries.cs b/API/Data/ManualMigrations/MigrateDisableScrobblingOnComicLibraries.cs 2 + new file mode 100644 3 + index 00000000..0de7bf5d 4 + --- /dev/null 5 + +++ b/API/Data/ManualMigrations/MigrateDisableScrobblingOnComicLibraries.cs 6 + @@ -0,0 +1,38 @@ 7 + +using System.Linq; 8 + +using System.Threading.Tasks; 9 + +using API.Entities.Enums; 10 + +using Microsoft.EntityFrameworkCore; 11 + +using Microsoft.Extensions.Logging; 12 + + 13 + +namespace API.Data.ManualMigrations; 14 + + 15 + +/// <summary> 16 + +/// v0.7.4 introduced Scrobbling with Kavita+. By default, it is on, but Comic libraries have no scrobble providers, so disable 17 + +/// </summary> 18 + +public static class MigrateDisableScrobblingOnComicLibraries 19 + +{ 20 + + public static async Task Migrate(IUnitOfWork unitOfWork, DataContext dataContext, ILogger<Program> logger) 21 + + { 22 + + if (!await dataContext.Library.Where(s => s.Type == LibraryType.Comic).Where(l => l.AllowScrobbling).AnyAsync()) 23 + + { 24 + + return; 25 + + } 26 + + logger.LogInformation("Running MigrateDisableScrobblingOnComicLibraries migration. Please be patient, this may take some time"); 27 + + 28 + + 29 + + foreach (var lib in await dataContext.Library.Where(s => s.Type == LibraryType.Comic).Where(l => l.AllowScrobbling).ToListAsync()) 30 + + { 31 + + lib.AllowScrobbling = false; 32 + + unitOfWork.LibraryRepository.Update(lib); 33 + + } 34 + + 35 + + if (unitOfWork.HasChanges()) 36 + + { 37 + + await unitOfWork.CommitAsync(); 38 + + } 39 + + 40 + + logger.LogInformation("MigrateDisableScrobblingOnComicLibraries migration finished"); 41 + + 42 + + } 43 + + 44 + +} 45 + diff --git a/API/Data/ManualMigrations/MigrateLoginRoles.cs b/API/Data/ManualMigrations/MigrateLoginRoles.cs 46 + new file mode 100644 47 + index 00000000..f649908a 48 + --- /dev/null 49 + +++ b/API/Data/ManualMigrations/MigrateLoginRoles.cs 50 + @@ -0,0 +1,36 @@ 51 + +using System.Threading.Tasks; 52 + +using API.Constants; 53 + +using API.Entities; 54 + +using Microsoft.AspNetCore.Identity; 55 + +using Microsoft.Extensions.Logging; 56 + + 57 + +namespace API.Data.ManualMigrations; 58 + + 59 + +/// <summary> 60 + +/// Added in v0.7.1.18 61 + +/// </summary> 62 + +public static class MigrateLoginRoles 63 + +{ 64 + + /// <summary> 65 + + /// Will not run if any users have the <see cref="PolicyConstants.LoginRole"/> role already 66 + + /// </summary> 67 + + /// <param name="unitOfWork"></param> 68 + + /// <param name="userManager"></param> 69 + + /// <param name="logger"></param> 70 + + public static async Task Migrate(IUnitOfWork unitOfWork, UserManager<AppUser> userManager, ILogger<Program> logger) 71 + + { 72 + + var usersWithRole = await userManager.GetUsersInRoleAsync(PolicyConstants.LoginRole); 73 + + if (usersWithRole.Count != 0) return; 74 + + 75 + + logger.LogCritical("Running MigrateLoginRoles migration"); 76 + + 77 + + var allUsers = await unitOfWork.UserRepository.GetAllUsersAsync(); 78 + + foreach (var user in allUsers) 79 + + { 80 + + await userManager.RemoveFromRoleAsync(user, PolicyConstants.LoginRole); 81 + + await userManager.AddToRoleAsync(user, PolicyConstants.LoginRole); 82 + + } 83 + + 84 + + logger.LogInformation("MigrateLoginRoles migration complete"); 85 + + } 86 + +} 87 + diff --git a/API/Data/ManualMigrations/MigrateRemoveWebPSettingRows.cs b/API/Data/ManualMigrations/MigrateRemoveWebPSettingRows.cs 88 + new file mode 100644 89 + index 00000000..07e98ef6 90 + --- /dev/null 91 + +++ b/API/Data/ManualMigrations/MigrateRemoveWebPSettingRows.cs 92 + @@ -0,0 +1,31 @@ 93 + +using System.Threading.Tasks; 94 + +using API.Entities.Enums; 95 + +using Microsoft.Extensions.Logging; 96 + + 97 + +namespace API.Data.ManualMigrations; 98 + + 99 + +/// <summary> 100 + +/// Added in v0.7.2.7/v0.7.3 in which the ConvertXToWebP Setting keys were removed. This migration will remove them. 101 + +/// </summary> 102 + +public static class MigrateRemoveWebPSettingRows 103 + +{ 104 + + public static async Task Migrate(IUnitOfWork unitOfWork, ILogger<Program> logger) 105 + + { 106 + + logger.LogCritical("Running MigrateRemoveWebPSettingRows migration - Please be patient, this may take some time. This is not an error"); 107 + + 108 + + var key = await unitOfWork.SettingsRepository.GetSettingAsync(ServerSettingKey.ConvertBookmarkToWebP); 109 + + var key2 = await unitOfWork.SettingsRepository.GetSettingAsync(ServerSettingKey.ConvertCoverToWebP); 110 + + if (key == null && key2 == null) 111 + + { 112 + + logger.LogCritical("Running MigrateRemoveWebPSettingRows migration - complete. Nothing to do"); 113 + + return; 114 + + } 115 + + 116 + + unitOfWork.SettingsRepository.Remove(key); 117 + + unitOfWork.SettingsRepository.Remove(key2); 118 + + 119 + + await unitOfWork.CommitAsync(); 120 + + 121 + + logger.LogCritical("Running MigrateRemoveWebPSettingRows migration - Completed. This is not an error"); 122 + + } 123 + +} 124 + diff --git a/API/Startup.cs b/API/Startup.cs 125 + index 21c4fa45..04f4a077 100644 126 + --- a/API/Startup.cs 127 + +++ b/API/Startup.cs 128 + @@ -232,11 +232,19 @@ public class Startup 129 + Task.Run(async () => 130 + { 131 + // Apply all migrations on startup 132 + + var userManager = serviceProvider.GetRequiredService<UserManager<AppUser>>(); 133 + var dataContext = serviceProvider.GetRequiredService<DataContext>(); 134 + 135 + 136 + logger.LogInformation("Running Migrations"); 137 + 138 + + // v0.7.2 139 + + await MigrateLoginRoles.Migrate(unitOfWork, userManager, logger); 140 + + // v0.7.3 141 + + await MigrateRemoveWebPSettingRows.Migrate(unitOfWork, logger); 142 + + // v0.7.4 143 + + await MigrateDisableScrobblingOnComicLibraries.Migrate(unitOfWork, dataContext, logger); 144 + + 145 + // v0.7.9 146 + await MigrateUserLibrarySideNavStream.Migrate(unitOfWork, dataContext, logger); 147 +
+3 -3
pkgs/shells/nushell/default.nix
··· 24 }: 25 26 let 27 - version = "0.92.1"; 28 in 29 30 rustPlatform.buildRustPackage { ··· 35 owner = "nushell"; 36 repo = "nushell"; 37 rev = version; 38 - hash = "sha256-itr/n8fodi9EvED6j4UMGFUaF42UVhgkGws8A5JqBA8="; 39 }; 40 41 - cargoHash = "sha256-s2O/6g3+fAkiqZwq3PUDpaFtG+uj/3pSs3eZbCbAcuQ="; 42 43 nativeBuildInputs = [ pkg-config ] 44 ++ lib.optionals (withDefaultFeatures && stdenv.isLinux) [ python3 ]
··· 24 }: 25 26 let 27 + version = "0.93.0"; 28 in 29 30 rustPlatform.buildRustPackage { ··· 35 owner = "nushell"; 36 repo = "nushell"; 37 rev = version; 38 + hash = "sha256-s/aJVk+45Ietegb9Cn19/U3NlNMHQh2GezHkoIRxRrk="; 39 }; 40 41 + cargoHash = "sha256-0xwo3M5uog6v0VcT9IhNZ22/xIhUShVNt6Vkp3GpsNI="; 42 43 nativeBuildInputs = [ pkg-config ] 44 ++ lib.optionals (withDefaultFeatures && stdenv.isLinux) [ python3 ]
+1 -1
pkgs/tools/misc/heatseeker/default.nix
··· 28 description = "A general-purpose fuzzy selector"; 29 homepage = "https://github.com/rschmitt/heatseeker"; 30 license = licenses.mit; 31 - maintainers = [ maintainers.michaelpj ]; 32 mainProgram = "hs"; 33 platforms = platforms.unix; 34 };
··· 28 description = "A general-purpose fuzzy selector"; 29 homepage = "https://github.com/rschmitt/heatseeker"; 30 license = licenses.mit; 31 + maintainers = [ ]; 32 mainProgram = "hs"; 33 platforms = platforms.unix; 34 };
+1 -1
pkgs/tools/system/throttled/default.nix
··· 52 homepage = "https://github.com/erpalma/throttled"; 53 license = licenses.mit; 54 platforms = [ "x86_64-linux" ]; 55 - maintainers = with maintainers; [ michaelpj ]; 56 }; 57 }
··· 52 homepage = "https://github.com/erpalma/throttled"; 53 license = licenses.mit; 54 platforms = [ "x86_64-linux" ]; 55 + maintainers = with maintainers; [ ]; 56 }; 57 }
+1 -3
pkgs/top-level/darwin-packages.nix
··· 172 inherit (apple_sdk_11_0.libs) simd; 173 }; 174 175 - openwith = pkgs.darwin.apple_sdk_11_0.callPackage ../os-specific/darwin/openwith { 176 - inherit (apple_sdk_11_0.frameworks) AppKit Foundation UniformTypeIdentifiers; 177 - }; 178 179 stubs = pkgs.callPackages ../os-specific/darwin/stubs { }; 180
··· 172 inherit (apple_sdk_11_0.libs) simd; 173 }; 174 175 + openwith = callPackage ../os-specific/darwin/openwith { }; 176 177 stubs = pkgs.callPackages ../os-specific/darwin/stubs { }; 178