diff options
Diffstat (limited to 'pkgs/applications/science/electronics/fritzing/default.nix')
-rw-r--r-- | pkgs/applications/science/electronics/fritzing/default.nix | 53 |
1 files changed, 31 insertions, 22 deletions
diff --git a/pkgs/applications/science/electronics/fritzing/default.nix b/pkgs/applications/science/electronics/fritzing/default.nix index 30cbd8f92b575..c5723dbab98ea 100644 --- a/pkgs/applications/science/electronics/fritzing/default.nix +++ b/pkgs/applications/science/electronics/fritzing/default.nix @@ -1,6 +1,7 @@ { mkDerivation , lib , fetchFromGitHub +, fetchpatch , qmake , pkg-config , qtbase @@ -9,45 +10,49 @@ , qtserialport , boost , libgit2 +, quazip }: let - # build number corresponding to a release, has no further relation - # see https://github.com/fritzing/fritzing-app/releases/tag/CD-498 - # fritzingBuild = "498"; - # version 0.9.6 is properly tagged, hope it continues - # SHA256 of the fritzing-parts HEAD on the master branch, # which contains the latest stable parts definitions - partsSha = "6f04697be286768bc9e4d64f8707e8e40cbcafcb"; + partsSha = "640fa25650211afccd369f960375ade8ec3e8653"; + + parts = fetchFromGitHub { + owner = "fritzing"; + repo = "fritzing-parts"; + rev = partsSha; + sha256 = "sha256-4S65eX4LCnXCFQAOxmdvr8d0nAgTWcJooE2SpLYpcXI="; + }; in mkDerivation rec { pname = "fritzing"; - version = "0.9.6"; + version = "unstable-2021-09-22"; src = fetchFromGitHub { owner = pname; repo = "fritzing-app"; - rev = version; - sha256 = "083nz7vj7a334575smjry6257535h68gglh8a381xxa36dw96aqs"; + rev = "f0af53a9077f7cdecef31d231b85d8307de415d4"; + sha256 = "sha256-fF38DrBoeZ0aKwVMNyYMPWa5rFPbIVXRARZT+eRat5Q="; }; - parts = fetchFromGitHub { - owner = pname; - repo = "fritzing-parts"; - name = "fritzing-parts"; - rev = partsSha; - sha256 = "1f4w0hz44n4iw1rc5vhcgzvlji54rf4yr8bvzkqv99hn2xf5pjgs"; - }; - - buildInputs = [ qtbase qtsvg qtserialport boost libgit2 ]; + buildInputs = [ qtbase qtsvg qtserialport boost libgit2 quazip ]; nativeBuildInputs = [ qmake pkg-config qttools ]; + patches = [ + # Add support for QuaZip 1.x + (fetchpatch { + url = "https://github.com/fritzing/fritzing-app/commit/ef83ebd9113266bb31b3604e3e9d0332bb48c999.patch"; + sha256 = "sha256-J43E6iBRIVbsuuo82gPk3Q7tyLhNkuuyYwtH8hUfcPU="; + }) + ]; + postPatch = '' substituteInPlace phoenix.pro \ --replace 'LIBGIT_STATIC = true' 'LIBGIT_STATIC = false' + #TODO: Do not hardcode SHA. substituteInPlace src/fapplication.cpp \ --replace 'PartsChecker::getSha(dir.absolutePath());' '"${partsSha}";' @@ -55,21 +60,25 @@ mkDerivation rec { cp -a ${parts}/* parts/ ''; + qmakeFlags = [ + "phoenix.pro" + "DEFINES=QUAZIP_INSTALLED" + "DEFINES+=QUAZIP_1X" + ]; + postFixup = '' # generate the parts.db file QT_QPA_PLATFORM=offscreen "$out/bin/Fritzing" \ -db "$out/share/fritzing/parts/parts.db" \ - -pp "$out/fritzing/parts" \ + -pp "$out/share/fritzing/parts" \ -folder "$out/share/fritzing" ''; - qmakeFlags = [ "phoenix.pro" ]; - meta = with lib; { description = "An open source prototyping tool for Arduino-based projects"; homepage = "https://fritzing.org/"; license = with licenses; [ gpl3 cc-by-sa-30 ]; - maintainers = with maintainers; [ robberer ]; + maintainers = with maintainers; [ robberer musfay ]; platforms = platforms.linux; }; } |