mirror of
https://github.com/NixOS/nixpkgs.git
synced 2024-11-26 00:43:20 +00:00
uhd: add passthru.updateScript
This commit is contained in:
parent
65f57275fe
commit
cd7babfc8b
@ -49,8 +49,10 @@ in
|
||||
|
||||
stdenv.mkDerivation (finalAttrs: {
|
||||
pname = "uhd";
|
||||
# UHD seems to use three different version number styles: x.y.z, xxx_yyy_zzz
|
||||
# and xxx.yyy.zzz. Hrmpf... style keeps changing
|
||||
# NOTE: Use the following command to update the package, and the uhdImageSrc attribute:
|
||||
#
|
||||
# nix-shell maintainers/scripts/update.nix --argstr package uhd --argstr commit true
|
||||
#
|
||||
version = "4.4.0.0";
|
||||
|
||||
outputs = [ "out" "dev" ];
|
||||
@ -59,14 +61,24 @@ stdenv.mkDerivation (finalAttrs: {
|
||||
owner = "EttusResearch";
|
||||
repo = "uhd";
|
||||
rev = "v${finalAttrs.version}";
|
||||
sha256 = "sha256-khVOHlvacZc4EMg4m55rxEqPvLY1xURpAfOW905/3jg=";
|
||||
# The updateScript relies on the `src` using `hash`, and not `sha256. To
|
||||
# update the correct hash for the `src` vs the `uhdImagesSrc`
|
||||
hash = "sha256-khVOHlvacZc4EMg4m55rxEqPvLY1xURpAfOW905/3jg=";
|
||||
};
|
||||
# Firmware images are downloaded (pre-built) from the respective release on Github
|
||||
uhdImagesSrc = fetchurl {
|
||||
url = "https://github.com/EttusResearch/uhd/releases/download/v${finalAttrs.version}/uhd-images_${finalAttrs.version}.tar.xz";
|
||||
# Please don't convert this to a hash, in base64, see comment near src's
|
||||
# hash.
|
||||
sha256 = "V8ldW8bvYWbrDAvpWpHcMeLf9YvF8PIruDAyNK/bru4=";
|
||||
};
|
||||
# TODO: Add passthru.updateScript that will update both of the above hashes...
|
||||
passthru = {
|
||||
updateScript = [
|
||||
./update.sh
|
||||
# Pass it this file name as argument
|
||||
(builtins.unsafeGetAttrPos "pname" finalAttrs.finalPackage).file
|
||||
];
|
||||
};
|
||||
|
||||
cmakeFlags = [
|
||||
"-DENABLE_LIBUHD=ON"
|
||||
|
27
pkgs/applications/radio/uhd/update.sh
Executable file
27
pkgs/applications/radio/uhd/update.sh
Executable file
@ -0,0 +1,27 @@
|
||||
#!/usr/bin/env nix-shell
|
||||
#!nix-shell -i bash -p jq nix nix-prefetch-github
|
||||
|
||||
set -euo pipefail
|
||||
echoerr() { echo "$@" 1>&2; }
|
||||
|
||||
fname="$1"
|
||||
echoerr got fname $fname
|
||||
shift
|
||||
latest_release=$(curl --silent https://api.github.com/repos/EttusResearch/uhd/releases/latest)
|
||||
version=$(jq -r '.tag_name' <<<"$latest_release" | cut -c2-)
|
||||
# Update version, if needed
|
||||
if grep -q 'version = "'$version $fname; then
|
||||
echoerr Current version $version is the latest available
|
||||
exit 0;
|
||||
fi
|
||||
echoerr got version $version
|
||||
sed -i -E 's/(version = ").*(";)/\1'$version'\2/g' $fname
|
||||
# Verify the sed command above did not fail
|
||||
grep -q $version $fname
|
||||
# Update srcHash
|
||||
srcHash="$(nix-prefetch-github EttusResearch uhd --rev v${version} | jq --raw-output .hash)"
|
||||
sed -i -E 's#(hash = ").*(";)#\1'$srcHash'\2#g' $fname
|
||||
grep -q $srcHash $fname
|
||||
imageHash="$(nix-prefetch-url https://github.com/EttusResearch/uhd/releases/download/v${version}/uhd-images_${version}.tar.xz)"
|
||||
sed -i -E 's#(sha256 = ").*(";)#\1'$imageHash'\2#g' $fname
|
||||
grep -q $imageHash $fname
|
Loading…
Reference in New Issue
Block a user