Running nixpkgs-update (https://nix-community.org/update-bot/) with UPDATE_INFO: feishin 1.9.0 -> 1.10.0 https://github.com/jeffvli/feishin/releases attrpath: feishin Checking auto update branch... [version] [version] generic version rewriter does not support multiple hashes [rustCrateVersion] [rustCrateVersion] No cargoHash found [golangModuleVersion] [golangModuleVersion] Not a buildGoModule package with vendorHash [npmDepsVersion] [npmDepsVersion] No npmDepsHash [updateScript] [updateScript] Success [updateScript] this derivation will be built: /nix/store/91hfj3vm8g85d021kyng0ymhc2p0xqpi-packages.json.drv building '/nix/store/91hfj3vm8g85d021kyng0ymhc2p0xqpi-packages.json.drv'... Going to be running update for following packages: - feishin-1.9.0 Press Enter key to continue... Running update for: Enqueuing group of 1 packages - feishin-1.9.0: UPDATING ... - feishin-1.9.0: DONE. Packages updated! Diff after rewrites: diff --git a/pkgs/by-name/fe/feishin/package.nix b/pkgs/by-name/fe/feishin/package.nix index f6e064bf4597..24c54ce40f5e 100644 --- a/pkgs/by-name/fe/feishin/package.nix +++ b/pkgs/by-name/fe/feishin/package.nix @@ -16,13 +16,13 @@ }: let pname = "feishin"; - version = "1.9.0"; + version = "1.11.0"; src = fetchFromGitHub { owner = "jeffvli"; repo = "feishin"; tag = "v${version}"; - hash = "sha256-LcSe7aEtTDs4JIk50zI0IFgN4ZCSJ6NClfk02uO2Sg8="; + hash = "sha256-TSjgjNHhPSZ4k7zZTH5e3FCkl6d7B/2w2WCt0S5OW0g="; }; electron = electron_39; @@ -43,7 +43,7 @@ buildNpmPackage { ; pnpm = pnpm_10_29_2; fetcherVersion = 3; - hash = "sha256-XhBcZRa66QdkjXxbefzsBUdvPIEshorq1uqzoWMXuTc="; + hash = "sha256-2fLqqCbbCIPoW/wGzsZOpZd5tnvyrLYlrVhbFWixlDM="; }; env.ELECTRON_SKIP_BINARY_DOWNLOAD = "1"; No auto update branch exists Old version 1.9.0" not present in master derivation file with contents: { lib, stdenv, buildNpmPackage, fetchFromGitHub, electron_39, dart-sass, mpv-unwrapped, fetchPnpmDeps, pnpmConfigHook, pnpm_10_29_2, darwin, copyDesktopItems, makeDesktopItem, nix-update-script, }: let pname = "feishin"; version = "1.10.0"; src = fetchFromGitHub { owner = "jeffvli"; repo = "feishin"; tag = "v${version}"; hash = "sha256-pQCcj0YBytmDQnOxWpErU8xApE0hGQA39G5XivR82Co="; }; electron = electron_39; in buildNpmPackage { inherit pname version; inherit src; npmConfigHook = pnpmConfigHook; npmDeps = null; pnpmDeps = fetchPnpmDeps { inherit pname version src ; pnpm = pnpm_10_29_2; fetcherVersion = 3; hash = "sha256-2fLqqCbbCIPoW/wGzsZOpZd5tnvyrLYlrVhbFWixlDM="; }; env.ELECTRON_SKIP_BINARY_DOWNLOAD = "1"; nativeBuildInputs = [ pnpm_10_29_2 ] ++ lib.optionals (stdenv.hostPlatform.isLinux) [ copyDesktopItems ] ++ lib.optionals stdenv.hostPlatform.isDarwin [ darwin.autoSignDarwinBinariesHook ]; postPatch = '' # release/app dependencies are installed on preConfigure substituteInPlace package.json \ --replace-fail '"postinstall": "electron-builder install-app-deps",' "" '' + lib.optionalString stdenv.hostPlatform.isLinux '' # https://github.com/electron/electron/issues/31121 substituteInPlace src/main/index.ts \ --replace-fail "process.resourcesPath" "'$out/share/feishin/resources'" ''; preBuild = '' rm -r node_modules/.pnpm/sass-embedded-* test -d node_modules/.pnpm/sass-embedded@* dir="$(echo node_modules/.pnpm/sass-embedded@*)/node_modules/sass-embedded/dist/lib/src/vendor/dart-sass" mkdir -p "$dir" ln -s ${dart-sass}/bin/dart-sass "$dir"/sass ''; postBuild = lib.optionalString stdenv.hostPlatform.isDarwin '' # electron-builder appears to build directly on top of Electron.app, by overwriting the files in the bundle. cp -r ${electron.dist}/Electron.app ./ find ./Electron.app -name 'Info.plist' | xargs -d '\n' chmod +rw '' + '' npm exec electron-builder -- \ --dir \ -c.electronDist=${if stdenv.hostPlatform.isDarwin then "./" else electron.dist} \ -c.electronVersion=${electron.version} \ -c.npmRebuild=false \ ${lib.optionalString stdenv.hostPlatform.isDarwin "-c.mac.identity=null"} ''; installPhase = '' runHook preInstall '' + lib.optionalString stdenv.hostPlatform.isDarwin '' mkdir -p $out/{Applications,bin} cp -r dist/**/Feishin.app $out/Applications/ makeWrapper $out/Applications/Feishin.app/Contents/MacOS/Feishin $out/bin/feishin \ --prefix PATH : "${lib.makeBinPath [ mpv-unwrapped ]}" \ --set DISABLE_AUTO_UPDATES 1 '' + lib.optionalString stdenv.hostPlatform.isLinux '' mkdir -p $out/share/feishin pushd dist/*-unpacked/ cp -r locales resources{,.pak} $out/share/feishin popd # Code relies on checking app.isPackaged, which returns false if the executable is electron. # Set ELECTRON_FORCE_IS_PACKAGED=1. # https://github.com/electron/electron/issues/35153#issuecomment-1202718531 makeWrapper ${lib.getExe electron} $out/bin/feishin \ --prefix PATH : "${lib.makeBinPath [ mpv-unwrapped ]}" \ --add-flags $out/share/feishin/resources/app.asar \ --add-flags "\''${NIXOS_OZONE_WL:+\''${WAYLAND_DISPLAY:+--ozone-platform-hint=auto --enable-features=WaylandWindowDecorations --enable-wayland-ime=true}}" \ --set ELECTRON_FORCE_IS_PACKAGED 1 \ --set DISABLE_AUTO_UPDATES 1 \ --inherit-argv0 install -Dm644 org.jeffvli.feishin.metainfo.xml $out/share/metainfo/org.jeffvli.feishin.metainfo.xml for size in 32 64 128 256 512 1024; do mkdir -p $out/share/icons/hicolor/"$size"x"$size"/apps ln -s \ $out/share/feishin/resources/assets/icons/"$size"x"$size".png \ $out/share/icons/hicolor/"$size"x"$size"/apps/feishin.png done '' + '' runHook postInstall ''; desktopItems = [ (makeDesktopItem { name = "feishin"; desktopName = "Feishin"; comment = "Full-featured Jellyfin, Navidrome, and OpenSubsonic Compatible Music Player"; icon = "feishin"; exec = "feishin %u"; categories = [ "Audio" "AudioVideo" "Player" "Music" ]; mimeTypes = [ "x-scheme-handler/feishin" ]; }) ]; passthru.updateScript = nix-update-script { }; meta = { description = "Full-featured Jellyfin, Navidrome, and OpenSubsonic Compatible Music Player"; homepage = "https://github.com/jeffvli/feishin"; changelog = "https://github.com/jeffvli/feishin/releases/tag/v${version}"; sourceProvenance = with lib.sourceTypes; [ fromSource ]; license = lib.licenses.gpl3Plus; platforms = lib.platforms.unix; mainProgram = "feishin"; maintainers = with lib.maintainers; [ BatteredBunny onny jlbribeiro ]; }; }