golden-cheetah: update to qt6, add darwin

QT "5 or higher" recommended on Linux, QT6 specifically noted in the
install instructions for mac so should be fine for both.
This commit is contained in:
Nathan Henrie
2025-01-22 07:06:22 -07:00
parent c3a73f9ffc
commit c961b3c26c
3 changed files with 54 additions and 46 deletions

View File

@@ -1,25 +1,16 @@
{ {
lib, lib,
stdenv,
fetchFromGitHub, fetchFromGitHub,
nix-update-script, nix-update-script,
mkDerivation, qt6,
qtbase,
qtsvg,
qtserialport,
qtwebengine,
qtmultimedia,
qttools,
qtconnectivity,
qtcharts,
libusb-compat-0_1, libusb-compat-0_1,
gsl, gsl,
blas, blas,
bison, bison,
flex, flex,
zlib, zlib,
qmake,
makeDesktopItem, makeDesktopItem,
wrapQtAppsHook,
}: }:
let let
@@ -33,37 +24,45 @@ let
categories = [ "Utility" ]; categories = [ "Utility" ];
}; };
in in
mkDerivation rec { stdenv.mkDerivation (finalAttrs: {
pname = "golden-cheetah"; pname = "golden-cheetah";
version = "3.7-DEV2408"; version = "3.7-DEV2408";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "GoldenCheetah"; owner = "GoldenCheetah";
repo = "GoldenCheetah"; repo = "GoldenCheetah";
tag = "v${version}"; tag = "v${finalAttrs.version}";
hash = "sha256-6JAdnYaKULJsc/zdcTMbCkbOCbiVtnJivEazDKL721c="; hash = "sha256-6JAdnYaKULJsc/zdcTMbCkbOCbiVtnJivEazDKL721c=";
}; };
buildInputs = [ buildInputs =
qtbase with qt6;
qtsvg [
qtserialport qt5compat
qtwebengine qtbase
qtmultimedia qtcharts
qttools qtconnectivity
zlib qtmultimedia
qtconnectivity qtserialport
qtcharts qtsvg
libusb-compat-0_1 qttools
gsl qtwebengine
blas ]
]; ++ [
nativeBuildInputs = [ blas
flex gsl
wrapQtAppsHook libusb-compat-0_1
qmake zlib
bison ];
]; nativeBuildInputs =
[
bison
flex
]
++ (with qt6; [
qmake
wrapQtAppsHook
]);
patches = [ patches = [
# allow building with bison 3.7 # allow building with bison 3.7
@@ -84,30 +83,41 @@ mkDerivation rec {
preConfigure = '' preConfigure = ''
cp src/gcconfig.pri.in src/gcconfig.pri cp src/gcconfig.pri.in src/gcconfig.pri
cp qwt/qwtconfig.pri.in qwt/qwtconfig.pri cp qwt/qwtconfig.pri.in qwt/qwtconfig.pri
sed -i 's,^#QMAKE_LRELEASE.*,QMAKE_LRELEASE = ${qttools.dev}/bin/lrelease,' src/gcconfig.pri sed -i 's,^#QMAKE_LRELEASE.*,QMAKE_LRELEASE = ${qt6.qttools.dev}/bin/lrelease,' src/gcconfig.pri
sed -i 's,^#LIBUSB_INSTALL.*,LIBUSB_INSTALL = ${libusb-compat-0_1},' src/gcconfig.pri sed -i 's,^#LIBUSB_INSTALL.*,LIBUSB_INSTALL = ${libusb-compat-0_1},' src/gcconfig.pri
sed -i 's,^#LIBUSB_INCLUDE.*,LIBUSB_INCLUDE = ${libusb-compat-0_1.dev}/include,' src/gcconfig.pri sed -i 's,^#LIBUSB_INCLUDE.*,LIBUSB_INCLUDE = ${libusb-compat-0_1.dev}/include,' src/gcconfig.pri
sed -i 's,^#LIBUSB_LIBS.*,LIBUSB_LIBS = -L${libusb-compat-0_1}/lib -lusb,' src/gcconfig.pri sed -i 's,^#LIBUSB_LIBS.*,LIBUSB_LIBS = -L${libusb-compat-0_1}/lib -lusb,' src/gcconfig.pri
''; '';
installPhase = '' installPhase =
runHook preInstall if stdenv.isLinux then
''
runHook preInstall
mkdir -p $out/bin mkdir -p $out/bin
cp src/GoldenCheetah $out/bin cp src/GoldenCheetah $out/bin
install -Dm644 "${desktopItem}/share/applications/"* -t $out/share/applications/ install -Dm644 "${desktopItem}/share/applications/"* -t $out/share/applications/
install -Dm644 src/Resources/images/gc.png $out/share/pixmaps/goldencheetah.png install -Dm644 src/Resources/images/gc.png $out/share/pixmaps/goldencheetah.png
runHook postInstall runHook postInstall
''; ''
else if stdenv.isDarwin then
''
runHook preInstall
mkdir -p $out/Applications
cp -r src/GoldenCheetah.app $out/Applications
runHook postInstall
''
else
abort "unsupported platform";
passthru.updateScript = nix-update-script { }; passthru.updateScript = nix-update-script { };
meta = { meta = {
description = "Performance software for cyclists, runners and triathletes. Built from source and without API tokens"; description = "Performance software for cyclists, runners and triathletes. Built from source and without API tokens";
mainProgram = "GoldenCheetah"; mainProgram = "GoldenCheetah";
platforms = lib.platforms.linux; platforms = with lib.platforms; darwin ++ linux;
maintainers = with lib.maintainers; [ adamcstephens ]; maintainers = with lib.maintainers; [ adamcstephens ];
license = lib.licenses.gpl2Plus; license = lib.licenses.gpl2Plus;
}; };
} })

View File

@@ -18209,8 +18209,6 @@ with pkgs;
discordo = callPackage ../applications/networking/discordo/default.nix { }; discordo = callPackage ../applications/networking/discordo/default.nix { };
golden-cheetah = libsForQt5.callPackage ../applications/misc/golden-cheetah { };
tomb = callPackage ../by-name/to/tomb/package.nix { tomb = callPackage ../by-name/to/tomb/package.nix {
pinentry = pinentry-curses; pinentry = pinentry-curses;
}; };