diff options
author | Vladimir Serov <me@cab404.ru> | 2022-02-11 03:54:20 +0300 |
---|---|---|
committer | Vladimir Serov <me@cab404.ru> | 2022-02-11 04:14:08 +0300 |
commit | 23312fa24b561dc76490857fe05e81706b86ff62 (patch) | |
tree | 24d481d1643d4c4031669331046318543f71ceaa /pkgs/tools/misc/qflipper | |
parent | 154855a4a40ab3cad8077b49b7cf27b614984811 (diff) |
qFlipper: re-init at 0.8.2
Co-authored-by: Ivv <41924494+IvarWithoutBones@users.noreply.github.com>
Diffstat (limited to 'pkgs/tools/misc/qflipper')
-rw-r--r-- | pkgs/tools/misc/qflipper/default.nix | 121 |
1 files changed, 103 insertions, 18 deletions
diff --git a/pkgs/tools/misc/qflipper/default.nix b/pkgs/tools/misc/qflipper/default.nix index 78bb6c839e6e7..d0125377763d9 100644 --- a/pkgs/tools/misc/qflipper/default.nix +++ b/pkgs/tools/misc/qflipper/default.nix @@ -1,31 +1,116 @@ -{ lib, fetchurl, appimageTools }: +{ stdenv +, lib +, fetchFromGitHub +, pkg-config +, zlib +, libusb1 +, libGL +, qmake +, wrapQtAppsHook +, mkDerivation +, qttools +, qtbase +, qt3d +, qtsvg +, qtserialport +, qtdeclarative +, qtquickcontrols +, qtquickcontrols2 +, qtgraphicaleffects +, qtwayland +}: let - pname = "qflipper"; - version = "0.5.3"; - name = "${pname}-${version}"; - src = fetchurl { - url = "https://update.flipperzero.one/builds/qFlipper/${version}/qFlipper-x86_64-${version}.AppImage"; - sha256 = "sha256-UFGFl1zb0t1y7FBd5EX1YS3npWM5slL/wLiTOF/CLNM="; + version = "0.8.2"; + timestamp = "99999999999"; + commit = "nix-${version}"; + hash = "sha256-BaqKlF2SZueykFhtj91McP39oXYAx+lz8eXhn5eouqg="; + + udev_rules = '' + #Flipper Zero serial port + SUBSYSTEMS=="usb", ATTRS{idVendor}=="0483", ATTRS{idProduct}=="5740", ATTRS{manufacturer}=="Flipper Devices Inc.", TAG+="uaccess" + #Flipper Zero DFU + SUBSYSTEMS=="usb", ATTRS{idVendor}=="0483", ATTRS{idProduct}=="df11", ATTRS{manufacturer}=="STMicroelectronics", TAG+="uaccess" + ''; + +in +mkDerivation { + pname = "qFlipper"; + inherit version; + + src = fetchFromGitHub { + owner = "flipperdevices"; + repo = "qFlipper"; + rev = version; + inherit hash; + fetchSubmodules = true; }; - appimageContents = appimageTools.extractType2 { inherit name src; }; -in appimageTools.wrapType2 { - inherit name src; + nativeBuildInputs = [ + pkg-config + qmake + qttools + ]; + + buildInputs = [ + zlib + libusb1 + libGL + wrapQtAppsHook + + qtbase + qt3d + qtsvg + qtserialport + qtdeclarative + qtquickcontrols + qtquickcontrols2 + qtgraphicaleffects + ] ++ lib.optionals (stdenv.isLinux) [ + qtwayland + ]; + + preBuild = '' + substituteInPlace qflipper_common.pri \ + --replace 'GIT_VERSION = unknown' 'GIT_VERSION = "${version}"' \ + --replace 'GIT_TIMESTAMP = 0' 'GIT_TIMESTAMP = ${timestamp}' \ + --replace 'GIT_COMMIT = unknown' 'GIT_COMMIT = "${commit}"' + cat qflipper_common.pri - extraPkgs = pkgs: (appimageTools.defaultFhsEnvArgs.multiPkgs pkgs) ++ [ pkgs.libsecret ]; + ''; + + installPhase = '' + runHook preInstall + + mkdir -p $out/bin + ${lib.optionalString stdenv.isLinux '' + install -Dm755 qFlipper $out/bin/qFlipper + ''} + ${lib.optionalString stdenv.isDarwin '' + install -Dm755 qFlipper.app/Contents/MacOS/qFlipper $out/bin/qFlipper + ''} + cp qFlipperTool $out/bin + + mkdir -p $out/share/applications + cp installer-assets/appimage/qFlipper.desktop $out/share/applications - extraInstallCommands = '' - mv $out/bin/${name} $out/bin/qFlipper - install -m 444 -D ${appimageContents}/qFlipper.desktop -t $out/share/applications - cp -r ${appimageContents}/usr/share/icons $out/share + mkdir -p $out/share/icons + cp application/assets/icons/qFlipper.png $out/share/icons + + mkdir -p $out/etc/udev/rules.d + tee $out/etc/udev/rules.d/42-flipperzero.rules << EOF + ${udev_rules} + EOF + + runHook postInstall ''; meta = with lib; { description = "Cross-platform desktop tool to manage your flipper device"; homepage = "https://flipperzero.one/"; - license = licenses.unfree; - maintainers = with maintainers; [ wolfangaukang ]; - platforms = [ "x86_64-linux" ]; + license = licenses.gpl3Only; + maintainers = with maintainers; [ cab404 ]; + platforms = [ "x86_64-linux" "x86_64-darwin" "aarch64-linux" ]; # qtbase doesn't build yet on aarch64-darwin }; + } |