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 <florian.brandes@posteo.de>
Co-authored-by: Adam Stephens <2071575+adamcstephens@users.noreply.github.com>
This commit is contained in:
Florian Brandes 2022-12-21 10:26:46 +01:00
parent 826704674f
commit 1aab9c281f
3 changed files with 38 additions and 1 deletions

View file

@ -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 ];
};
}

View file

@ -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;

View file

@ -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 {};