summary refs log tree commit diff
diff options
context:
space:
mode:
authorFlorian Brandes <florian.brandes@posteo.de>2022-12-21 10:26:46 +0100
committerFlorian Brandes <florian.brandes@posteo.de>2023-02-01 15:59:12 +0100
commit1aab9c281faeffaa25b5c8f60bbb57836f3c1ff9 (patch)
tree6db9abfb369af5e11e40b70513aa12ae668fbf3e
parent826704674f48928e9787ba5bea0366c75b974a7c (diff)
downloadnixpkgs-1aab9c281faeffaa25b5c8f60bbb57836f3c1ff9.tar
nixpkgs-1aab9c281faeffaa25b5c8f60bbb57836f3c1ff9.tar.gz
nixpkgs-1aab9c281faeffaa25b5c8f60bbb57836f3c1ff9.tar.bz2
nixpkgs-1aab9c281faeffaa25b5c8f60bbb57836f3c1ff9.tar.lz
nixpkgs-1aab9c281faeffaa25b5c8f60bbb57836f3c1ff9.tar.xz
nixpkgs-1aab9c281faeffaa25b5c8f60bbb57836f3c1ff9.tar.zst
nixpkgs-1aab9c281faeffaa25b5c8f60bbb57836f3c1ff9.zip
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>
-rw-r--r--pkgs/applications/misc/golden-cheetah-bin/default.nix35
-rw-r--r--pkgs/applications/misc/golden-cheetah/default.nix2
-rw-r--r--pkgs/top-level/all-packages.nix2
3 files changed, 38 insertions, 1 deletions
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 00000000000..bfd5d5b86e9
--- /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 7f796a2bb0c..edf0e931753 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 a8e4e17ac52..63d12c18cda 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 {};