diff options
author | Claudio Bley <cbley@exa-online.de> | 2020-09-18 17:20:47 +0200 |
---|---|---|
committer | Jon <jonringer@users.noreply.github.com> | 2020-10-11 16:51:59 -0700 |
commit | 0f6b8b79649d160c1d60211af584a0b82f52226d (patch) | |
tree | 52a53808b1cd9980ae58e76b9d9b70b0f6049a9c /pkgs/applications/science/electronics/fritzing/default.nix | |
parent | 3ccef37d04c5f3d88796a63998cf38d8be2e5e62 (diff) |
fritzing: 0.9.3b -> 0.9.4
Notes: * fritzing still needs an older version of libgit2 * releases no longer directly correspond to tags in the git repository, they are using build numbers instead * the fritzing-parts repository is no longer versioned at all, the master branch contains the latest stable release * a `parts.db` file needs to be generated from the fritzing-parts files during the build
Diffstat (limited to 'pkgs/applications/science/electronics/fritzing/default.nix')
-rw-r--r-- | pkgs/applications/science/electronics/fritzing/default.nix | 68 |
1 files changed, 54 insertions, 14 deletions
diff --git a/pkgs/applications/science/electronics/fritzing/default.nix b/pkgs/applications/science/electronics/fritzing/default.nix index 15f4ed2699a9b..f8a0adea482bf 100644 --- a/pkgs/applications/science/electronics/fritzing/default.nix +++ b/pkgs/applications/science/electronics/fritzing/default.nix @@ -1,41 +1,81 @@ { mkDerivation, stdenv, fetchpatch, fetchFromGitHub, qmake, pkgconfig -, qtbase, qtsvg, qtserialport, boost, libgit2 +, qtbase, qtsvg, qttools, qtserialport, boost, libgit2 }: +let + # build number corresponding to a release, has no further relation + # see https://github.com/fritzing/fritzing-app/releases/tag/CD-498 + fritzingBuild = "498"; + # SHA256 of the fritzing-parts HEAD on the master branch, + # which contains the latest stable parts definitions + partsSha = "e79a69765026f3fda8aab1b3e7a4952c28047a62"; +in + mkDerivation rec { pname = "fritzing"; - version = "0.9.3b"; + version = "0.9.4-${fritzingBuild}"; src = fetchFromGitHub { owner = "fritzing"; repo = "fritzing-app"; - rev = version; - sha256 = "0hpyc550xfhr6gmnc85nq60w00rm0ljm0y744dp0z88ikl04f4s3"; + rev = "CD-${fritzingBuild}"; + sha256 = "0aljj2wbmm1vd64nhj6lh9qy856pd5avlgydsznya2vylyz20p34"; }; parts = fetchFromGitHub { owner = "fritzing"; repo = "fritzing-parts"; - rev = version; - sha256 = "1d2v8k7p176j0lczx4vx9n9gbg3vw09n2c4b6w0wj5wqmifywhc1"; + name = "fritzing-parts"; + rev = partsSha; + sha256 = "0spka33a5qq34aq79j01arw1aly4vh0hzv7mahryhdlcdk22qqvc"; }; + buildInputs = [ qtbase qtsvg qtserialport boost libgit2 ]; + + nativeBuildInputs = [ qmake pkgconfig qttools ]; + patches = [(fetchpatch { - name = "0001-Squashed-commit-of-the-following.patch"; - url = "https://aur.archlinux.org/cgit/aur.git/plain/0001-Squashed-commit-of-the-following.patch?h=fritzing"; - sha256 = "1cv6myidxhy28i8m8v13ghzkvx5978p9dcd8v7885y0l1h3108mf"; + name = "fix-libgit2-version.patch"; + url = "https://github.com/fritzing/fritzing-app/commit/472951243d70eeb40a53b1f7e16e6eab0588d079.patch"; + sha256 = "0v1zi609cjnqac80xgnk23n54z08g1lia37hbzfl8jcq9sn9adak"; })]; - buildInputs = [ qtbase qtsvg qtserialport boost libgit2 ]; + postPatch = '' + substituteInPlace phoenix.pro \ + --replace 'LIBGIT_STATIC = true' 'LIBGIT_STATIC = false' - nativeBuildInputs = [ qmake pkgconfig ]; + substituteInPlace tools/linux_release_script/release.sh \ + --replace 'git status' 'echo >/dev/null' \ + --replace 'git clean' 'echo >/dev/null' \ + --replace 'git clone' 'echo >/dev/null' \ + --replace 'release_folder="' 'release_folder="$out" #' \ + --replace './Fritzing -db' '# run after fixup' - qmakeFlags = [ "phoenix.pro" ]; + substituteInPlace src/fapplication.cpp \ + --replace 'PartsChecker::getSha(dir.absolutePath());' '"${partsSha}";' + ''; - preConfigure = '' - ln -s "$parts" parts + buildPhase = '' + bash tools/linux_release_script/release.sh ${version} ''; + installPhase = '' + rm "$out/Fritzing" # remove script file + mkdir "$out/bin" + mv "$out/lib/Fritzing" "$out/bin/Fritzing" + mkdir --parents "$out/share/applications" "$out/share/metainfo" + mv --target-directory="$out/share/applications" "$out/org.fritzing.Fritzing.desktop" + mv --target-directory="$out/share/metainfo" "$out/org.fritzing.Fritzing.appdata.xml" + cp --recursive --no-target-directory "$parts" "$out/fritzing-parts" + ''; + + postFixup = '' + # generate the parts.db file + QT_QPA_PLATFORM=offscreen "$out/bin/Fritzing" -db "$out/fritzing-parts/parts.db" -pp "$out/fritzing-parts" -folder "$out" + ''; + + qmakeFlags = [ "phoenix.pro" ]; + meta = { description = "An open source prototyping tool for Arduino-based projects"; homepage = "https://fritzing.org/"; |