librepcb: touch ups, co-maintain

Fixes a bug where the build system tried to call `git` to embed the
release tag revision into the binary, which isn't allowed. Easily fixed
with `substituteInPlace`.

Also updates the expression to be a little closer to "standard"
expressions (e.g. consistent indentation, importing `stdenv` instead of
`lib` and `mkDerivation`, etc.)

Signed-off-by: Austin Seipp <aseipp@pobox.com>
This commit is contained in:
Austin Seipp 2020-11-20 07:31:19 -06:00
parent af6dbe82b4
commit 00c451ad40
No known key found for this signature in database
GPG Key ID: 25D2038DEB08021D
1 changed files with 25 additions and 17 deletions

View File

@ -1,39 +1,47 @@
{ lib, mkDerivation, fetchFromGitHub, qtbase, qttools, qmake, wrapQtAppsHook }: { stdenv, lib, fetchFromGitHub
, qtbase, qttools, qmake, wrapQtAppsHook
}:
mkDerivation rec { stdenv.mkDerivation rec {
pname = "librepcb"; pname = "librepcb";
version = "0.1.5"; version = "0.1.5";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "LibrePCB"; owner = pname;
repo = "LibrePCB"; repo = pname;
fetchSubmodules = true; rev = version;
rev = version;
sha256 = "0ag8h3id2c1k9ds22rfrvyhf2vjhkv82xnrdrz4n1hnlr9566vcx"; sha256 = "0ag8h3id2c1k9ds22rfrvyhf2vjhkv82xnrdrz4n1hnlr9566vcx";
fetchSubmodules = true;
}; };
enableParallelBuilding = true;
nativeBuildInputs = [ qmake qttools wrapQtAppsHook ]; nativeBuildInputs = [ qmake qttools wrapQtAppsHook ];
buildInputs = [ qtbase ]; buildInputs = [ qtbase ];
qmakeFlags = ["-r"]; qmakeFlags = ["-r"];
enableParallelBuilding = true;
postInstall = '' postInstall = ''
mkdir -p $out/share/librepcb/fontobene mkdir -p $out/share/librepcb/fontobene
cp share/librepcb/fontobene/newstroke.bene $out/share/librepcb/fontobene/ cp share/librepcb/fontobene/newstroke.bene $out/share/librepcb/fontobene/
''; '';
# the build system tries to use 'git' at build time to find the HEAD hash.
# that's a no-no, so replace it with a quick hack. NOTE: the # adds a comment
# at the end of the line to remove the git call.
patchPhase = ''
substituteInPlace ./libs/librepcb/common/common.pro \
--replace 'GIT_COMMIT_SHA' 'GIT_COMMIT_SHA="\\\"${src.rev}\\\"" # '
'';
preFixup = '' preFixup = ''
wrapQtApp $out/bin/librepcb wrapQtApp $out/bin/librepcb
''; '';
meta = with lib; { meta = with stdenv.lib; {
description = "A free EDA software to develop printed circuit boards"; description = "A free EDA software to develop printed circuit boards";
homepage = "https://librepcb.org/"; homepage = "https://librepcb.org/";
maintainers = with maintainers; [ luz ]; maintainers = with maintainers; [ luz thoughtpolice ];
license = licenses.gpl3; license = licenses.gpl3;
platforms = platforms.linux; platforms = platforms.linux;
}; };
} }