nixpkgs/pkgs/servers/jellyfin/update.sh
João Capucho 6e70d1d303
jellyfin: fix arm{,64} compilation
It seems like one of the nuget dependencies is platform dependant and
since the nuget dependencies were only being generated for x64 the other
architectures were missing their version of the dependency causing the
build to fail on them.
2022-07-01 22:53:35 +01:00

42 lines
1.3 KiB
Bash
Executable File

#!/usr/bin/env nix-shell
#!nix-shell -i bash -p curl jq common-updater-scripts dotnetCorePackages.sdk_6_0 nuget-to-nix gnused nix coreutils findutils
set -euo pipefail
export DOTNET_CLI_TELEMETRY_OPTOUT=1
export DOTNET_NOLOGO=1
latestVersion="$(curl -s "https://api.github.com/repos/jellyfin/jellyfin/releases?per_page=1" | jq -r ".[0].tag_name" | sed 's/^v//')"
currentVersion=$(nix-instantiate --eval -E "with import ./. {}; jellyfin.version or (lib.getVersion jellyfin)" | tr -d '"')
if [[ "$currentVersion" == "$latestVersion" ]]; then
echo "jellyfin is up-to-date: $currentVersion"
exit 0
fi
pushd "$(dirname "${BASH_SOURCE[0]}")"
nugetDepsFile=$(realpath ./nuget-deps.nix)
popd
update-source-version jellyfin "$latestVersion"
store_src="$(nix-build . -A jellyfin.src --no-out-link)"
src="$(mktemp -d /tmp/jellyfin-src.XXX)"
echo "Temp src dir: $src"
cp -rT "$store_src" "$src"
chmod -R +w "$src"
pushd "$src"
mkdir ./nuget_tmp.packages
dotnet restore Jellyfin.Server --packages ./nuget_tmp.packages --runtime linux-x86
dotnet restore Jellyfin.Server --packages ./nuget_tmp.packages --runtime linux-x64
dotnet restore Jellyfin.Server --packages ./nuget_tmp.packages --runtime linux-arm
dotnet restore Jellyfin.Server --packages ./nuget_tmp.packages --runtime linux-arm64
nuget-to-nix ./nuget_tmp.packages > "$nugetDepsFile"
popd
rm -r "$src"