{ cmake , fetchFromGitHub , fetchpatch , lib , libusb1 , mkDerivation , python3 , qtbase , qttools , udev , zlib }: mkDerivation rec { pname = "openambit"; version = "0.5"; src = fetchFromGitHub { owner = "openambitproject"; repo = pname; rev = version; sha256 = "1074kvkamwnlkwdajsw1799wddcfkjh2ay6l842r0s4cvrxrai85"; }; patches = [ # Pull upstream patch for -fno-common toolchain support: # https://github.com/openambitproject/openambit/pull/244 (fetchpatch { name = "fno-common.patch"; url = "https://github.com/openambitproject/openambit/commit/b6d97eab417977b6dbe355e0b071d0a56cc3df6b.patch"; sha256 = "1p0dg902mlcfjvs01dxl9wv2b50ayp4330p38d14q87mn0c2xl5d"; }) ]; nativeBuildInputs = [ cmake qttools ]; buildInputs = [ libusb1 python3 qtbase udev zlib ]; cmakeFlags = [ "-DCMAKE_INSTALL_UDEVRULESDIR=${placeholder "out"}/lib/udev/rules.d" ]; doInstallCheck = true; installCheckPhase = '' $out/bin/openambit --version ''; postInstall = '' install -m755 -D $src/tools/openambit2gpx.py $out/bin/openambit2gpx mv -v $out/lib/udev/rules.d/libambit.rules \ $out/lib/udev/rules.d/20-libambit.rules ''; meta = with lib; { description = "Helps fetch data from Suunto Ambit GPS watches"; homepage = "https://github.com/openambitproject/openambit/"; license = licenses.gpl3Plus; maintainers = with maintainers; [ rycee ]; platforms = platforms.linux; }; }