From 1aab9c281faeffaa25b5c8f60bbb57836f3c1ff9 Mon Sep 17 00:00:00 2001 From: Florian Brandes Date: Wed, 21 Dec 2022 10:26:46 +0100 Subject: [PATCH] golden-cheetah: add AppImage derivation Upstream bakes their API tokens for external services (like Strava) in its source. When users want to connect golden-cheetah to the external services, they fail and there is no option to add own API keys during runtime. So either the user modifies the derivation to add their own API keys during build, or we add the pre-build AppImage to NixOS. This has the developers API keys built-in, so the connection to external services work as expected. Signed-off-by: Florian Brandes Co-authored-by: Adam Stephens <2071575+adamcstephens@users.noreply.github.com> --- .../misc/golden-cheetah-bin/default.nix | 35 +++++++++++++++++++ .../misc/golden-cheetah/default.nix | 2 +- pkgs/top-level/all-packages.nix | 2 ++ 3 files changed, 38 insertions(+), 1 deletion(-) create mode 100644 pkgs/applications/misc/golden-cheetah-bin/default.nix diff --git a/pkgs/applications/misc/golden-cheetah-bin/default.nix b/pkgs/applications/misc/golden-cheetah-bin/default.nix new file mode 100644 index 000000000000..bfd5d5b86e94 --- /dev/null +++ b/pkgs/applications/misc/golden-cheetah-bin/default.nix @@ -0,0 +1,35 @@ +{ appimageTools, lib, fetchurl, stdenv }: +let + + pname = "golden-cheetah"; + version = "3.6-RC3"; + + src = fetchurl { + url = "https://github.com/GoldenCheetah/GoldenCheetah/releases/download/v${version}/GoldenCheetah_v3.6-DEV_x64.AppImage"; + hash = "sha256-Bp1IFql96tHc5ssg9nhTrFQqNtaM+5iYJguPGkguvns="; + }; + + appimageContents = appimageTools.extract { inherit pname src version; }; +in +appimageTools.wrapType2 { + inherit pname src version; + + extraPkgs = pkgs: with pkgs; [ R zlib libusb-compat-0_1 ]; + + extraInstallCommands = '' + mv $out/bin/${pname}-${version} $out/bin/GoldenCheetah + mkdir -p $out/share/applications + mkdir -p $out/share/pixmaps + cp ${appimageContents}/GoldenCheetah.desktop $out/share/applications/ + cp ${appimageContents}/gc.png $out/share/pixmaps/ + ''; + + meta = with lib; { + description = "Performance software for cyclists, runners and triathletes. This version includes the API Tokens for e.g. Strava"; + platforms = platforms.linux; + broken = !stdenv.isx86_64; + maintainers = with maintainers; [ gador ]; + license = licenses.gpl2Plus; + sourceProvenance = with sourceTypes; [ binaryNativeCode ]; + }; +} diff --git a/pkgs/applications/misc/golden-cheetah/default.nix b/pkgs/applications/misc/golden-cheetah/default.nix index 7f796a2bb0c2..edf0e9317537 100644 --- a/pkgs/applications/misc/golden-cheetah/default.nix +++ b/pkgs/applications/misc/golden-cheetah/default.nix @@ -74,7 +74,7 @@ in mkDerivation rec { ''; meta = with lib; { - description = "Performance software for cyclists, runners and triathletes"; + description = "Performance software for cyclists, runners and triathletes. Built from source and without API tokens"; platforms = platforms.linux; maintainers = [ ]; license = licenses.gpl2Plus; diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index a8e4e17ac52e..63d12c18cdaf 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -37919,6 +37919,8 @@ with pkgs; golden-cheetah = libsForQt5.callPackage ../applications/misc/golden-cheetah {}; + golden-cheetah-bin = callPackage ../applications/misc/golden-cheetah-bin {}; + linkchecker = callPackage ../tools/networking/linkchecker { }; tomb = callPackage ../os-specific/linux/tomb {};