about summary refs log tree commit diff
path: root/pkgs/applications/science
diff options
context:
space:
mode:
authorEvils <evils.devils@protonmail.com>2019-12-15 12:26:23 +0100
committerEvils <evils.devils@protonmail.com>2020-01-02 03:45:34 +0100
commite4786f3a1c75b6e2cc9b77063d0937801ce43b11 (patch)
treeb4c3596c4ec2becbe1bdabf672c0adca4e1ba30f /pkgs/applications/science
parent6119ca27bb65d55cd4fb798b9f24e8df721e6747 (diff)
kicad: update & cleanup
minor simplification, fix base version

split i18n and get from gitlab

correct wrapper pythonpath, cleanup build output

update & fake git describe

correct base.nix to fit contributing.md
Diffstat (limited to 'pkgs/applications/science')
-rw-r--r--pkgs/applications/science/electronics/kicad/base.nix12
-rw-r--r--pkgs/applications/science/electronics/kicad/default.nix43
-rw-r--r--pkgs/applications/science/electronics/kicad/libraries.nix73
3 files changed, 76 insertions, 52 deletions
diff --git a/pkgs/applications/science/electronics/kicad/base.nix b/pkgs/applications/science/electronics/kicad/base.nix
index 2d7cf9e1612e6..6bc6659622975 100644
--- a/pkgs/applications/science/electronics/kicad/base.nix
+++ b/pkgs/applications/science/electronics/kicad/base.nix
@@ -11,7 +11,6 @@
 , ngspiceSupport ? true, libngspice
 , scriptingSupport ? true, swig, python, pythonPackages, wxPython
 , debug ? false, valgrind
-, with3d ? true
 , withI18n ? true
 }:
 
@@ -56,10 +55,11 @@ stdenv.mkDerivation rec {
   ];
 
   # tagged releases don't have "unknown"
-  postPatch = optional (!stable)
-  ''
+  # kicad nightlies use git describe --dirty
+  # nix removes .git, so its approximated here
+  postPatch = ''
     substituteInPlace CMakeModules/KiCadVersion.cmake \
-      --replace "unknown" ${baseVersion}
+      --replace "unknown" ${builtins.substring 0 10 src.rev}
   '';
 
   makeFlags = optional (debug) [ "CFLAGS+=-Og" "CFLAGS+=-ggdb" ];
@@ -117,9 +117,9 @@ stdenv.mkDerivation rec {
   '';
 
   meta = {
-    description = "just the built source without the libraries";
+    description = "Just the built source without the libraries";
     longDescription = ''
-      just the build products, optionally with the i18n linked in
+      Just the build products, optionally with the i18n linked in
       the libraries are passed via an env var in the wrapper, default.nix
     '';
     homepage = "https://www.kicad-pcb.org/";
diff --git a/pkgs/applications/science/electronics/kicad/default.nix b/pkgs/applications/science/electronics/kicad/default.nix
index fb4edd1d21b95..47222fe4a966d 100644
--- a/pkgs/applications/science/electronics/kicad/default.nix
+++ b/pkgs/applications/science/electronics/kicad/default.nix
@@ -19,6 +19,7 @@ with lib;
 let
 
   stable = pname != "kicad-unstable";
+  baseName = if (stable) then "kicad" else "kicad-unstable";
 
   versions = {
     "kicad" = {
@@ -39,30 +40,30 @@ let
     };
     "kicad-unstable" = {
       kicadVersion = {
-        version = "2019-12-15";
+        version = "2019-12-31";
         src = {
-          rev = "1abb198fb42c68ab8dd8ce6ff97d984df6688e10";
-          sha256 = "1b7k05bl2w4by5bhk6sfb2iynddlg3gah8qma7l9am6q1j3lmx4p";
+          rev = "eaaa4eb63acb289047dfbb6cc275579dea58f12b";
+          sha256 = "1v2hf2slphjdh14y56pmzlpi6mqidrd8198if1fi0cch72v37zch";
         };
       };
       libVersion = {
         version = "unstable";
         libSources = {
-          i18n.rev = "f1084526305005fa53e78000f7db2d67e8a0d423";
-          i18n.sha256 = "1yhc0m4psx0rz5msb1zqn5fz6l1ynwykrsk1443g4073lmjibv74";
-          symbols.rev = "68176b08fdfd34673f4518ef6c331ad2ecf7a9a6";
-          symbols.sha256 = "0kcn8pwdac5snd6vzmdw82k5x9q12nijpdss3nvi5my6g3ilwgjj";
+          i18n.rev = "e7439fd76f27cfc26e269c4e6c4d56245345c28b";
+          i18n.sha256 = "1nqm1kx5b4f7s0f9q8bg4rdhqnp0128yp6bgnrkia1kwmfnf5gmy";
+          symbols.rev = "1bc5ff11c76bcbfda227e534b0acf737edddde8f";
+          symbols.sha256 = "05kv93790wi4dpbn2488p587b83yz1zw9h62lkv41h7vn2r1mmb7";
           templates.rev = "0c0490897f803ab8b7c3dad438b7eb1f80e0417c";
           templates.sha256 = "0cs3bm3zb5ngw5ldn0lzw5bvqm4kvcidyrn76438alffwiz2b15g";
-          footprints.rev = "8cef00a34078c3dabe943a76f9cdf7d05ffc38fc";
-          footprints.sha256 = "0aplxxbcyb4vpj3kpcnj6lbnpk9zjql46js9i4iaqs388z93sb97";
-          packages3d.rev = "58d73640ebb764637eb7bba6290815b84a24b8ad";
-          packages3d.sha256 = "0cff2ms1bsw530kqb1fr1m2pjixyxzwa81mxgac3qpbcf8fnpvaz";
+          footprints.rev = "454126c125edd3fa8633f301421a7d9c4de61b77";
+          footprints.sha256 = "00nli4kx2i68bk852rivbirzcgpsdlpdk34g1q892952jsbh7fy6";
+          packages3d.rev = "c2b92a411adc93ddeeed74b36b542e1057f81a2a";
+          packages3d.sha256 = "05znc6y2lc31iafspg308cxdda94zg6c7mwslmys76npih1pb8qc";
         };
       };
     };
   };
-  versionConfig = versions.${if (stable) then "kicad" else "kicad-unstable"};
+  versionConfig = versions.${baseName};
 
   wxGTK = if (stable)
     # wxGTK3x may default to withGtk2 = false, see #73145
@@ -77,19 +78,23 @@ let
 
   kicad-libraries = callPackages ./libraries.nix versionConfig.libVersion;
   kicad-base = callPackage ./base.nix {
-   pname = if (stable) then "kicad" else "kicad-unstable";
-   inherit versions stable;
-   inherit wxGTK python wxPython;
-   inherit debug with3d withI18n withOCCT oceSupport ngspiceSupport scriptingSupport;
+    pname = baseName;
+    inherit versions stable baseName;
+    inherit wxGTK python wxPython;
+    inherit debug withI18n withOCCT oceSupport ngspiceSupport scriptingSupport;
   };
 
 in
 stdenv.mkDerivation rec {
 
   inherit pname;
-  version = versions.${if (stable) then "kicad" else "kicad-unstable"}.kicadVersion.version;
+  version = versions.${baseName}.kicadVersion.version;
 
   src = kicad-base;
+  dontUnpack = true;
+  dontConfigure = true;
+  dontBuild = true;
+  dontFixup = true;
 
   pythonPath = optionals (scriptingSupport)
     [ wxPython pythonPackages.six ];
@@ -115,8 +120,8 @@ stdenv.mkDerivation rec {
     "--prefix KICAD_TEMPLATE_DIR : ${kicad-libraries.symbols}/share/kicad/template"
     "--prefix KICAD_TEMPLATE_DIR : ${kicad-libraries.footprints}/share/kicad/template"
   ]
-  ++ optionals (ngspiceSupport) [ "--prefix LD_LIBRARY_PATH : ${libngspice}/lib" ]
   ++ optionals (with3d) [ "--set KISYS3DMOD ${kicad-libraries.packages3d}/share/kicad/modules/packages3d" ]
+  ++ optionals (ngspiceSupport) [ "--prefix LD_LIBRARY_PATH : ${libngspice}/lib" ]
 
   # infinisil's workaround for #39493
   ++ [ "--set GDK_PIXBUF_MODULE_FILE ${librsvg}/lib/gdk-pixbuf-2.0/2.10.0/loaders.cache" ]
@@ -127,7 +132,7 @@ stdenv.mkDerivation rec {
   # not sure if anything has to be done with the other stuff in kicad-base/bin
   # dxf2idf, idf2vrml, idfcyl, idfrect, kicad2step, kicad-ogltest
   installPhase =
-    optionalString (scriptingSupport) '' buildPythonPath "$out $pythonPath"
+    optionalString (scriptingSupport) '' buildPythonPath "${kicad-base} $pythonPath"
     '' +
     '' makeWrapper ${kicad-base}/bin/kicad $out/bin/kicad $makeWrapperArgs ''
     + optionalString (scriptingSupport) '' --set PYTHONPATH "$program_PYTHONPATH"
diff --git a/pkgs/applications/science/electronics/kicad/libraries.nix b/pkgs/applications/science/electronics/kicad/libraries.nix
index 0fa3d48e9d42a..53e190d2749b3 100644
--- a/pkgs/applications/science/electronics/kicad/libraries.nix
+++ b/pkgs/applications/science/electronics/kicad/libraries.nix
@@ -1,6 +1,6 @@
-{ lib, stdenv, fetchFromGitHub, cmake, gettext
-, version
-, libSources
+{ lib, stdenv, cmake, gettext
+, fetchFromGitHub, fetchFromGitLab
+, version, libSources
 }:
 
 # callPackage libraries {
@@ -13,33 +13,52 @@
 with lib;
 let
   mkLib = name: attrs:
-    stdenv.mkDerivation ({
-      name = "kicad-${name}-${version}";
-      src = fetchFromGitHub ({
-        owner = "KiCad";
-        repo = "kicad-${name}";
-        rev = version;
-        inherit name;
-      } // (libSources.${name} or {}));
-      nativeBuildInputs = [ cmake ];
-    } // attrs);
+    stdenv.mkDerivation (
+      {
+        pname = "kicad-${name}";
+        version = "${version}";
+        src = fetchFromGitHub (
+          {
+            owner = "KiCad";
+            repo = "kicad-${name}";
+            rev = version;
+            inherit name;
+          } // (libSources.${name} or { })
+        );
+        nativeBuildInputs = [ cmake ];
+        meta.license = licenses.cc-by-sa-40;
+      } // attrs
+    );
 in
 {
-  symbols = mkLib "symbols" {
-    meta.license = licenses.cc-by-sa-40;
-  };
-  templates = mkLib "templates" {
-    meta.license = licenses.cc-by-sa-40;
-  };
-  footprints = mkLib "footprints" {
-    meta.license = licenses.cc-by-sa-40;
-  };
-  i18n = mkLib "i18n" {
-    buildInputs = [ gettext ];
-    meta.license = licenses.gpl2; # https://github.com/KiCad/kicad-i18n/issues/3
-  };
+  symbols = mkLib "symbols" { };
+  templates = mkLib "templates" { };
+  footprints = mkLib "footprints" { };
   packages3d = mkLib "packages3d" {
     hydraPlatforms = []; # this is a ~1 GiB download, occupies ~5 GiB in store
-    meta.license = licenses.cc-by-sa-40;
   };
+
+  # i18n is a special case, not actually a library
+  # more a part of kicad proper, but also optional and separate
+  # since their move to gitlab they're keeping it in a separate path
+  # kicad has no way to find i18n except through a path relative to its install path
+  # therefore this is being linked into ${kicad-base}/share/
+  # and defined here to make use of the rev & sha256's brought here for the libs
+  i18n = let name = "i18n"; in
+    stdenv.mkDerivation {
+      pname = "kicad-${name}";
+      version = "${version}";
+      src = fetchFromGitLab (
+        {
+          group = "kicad";
+          owner = "code";
+          repo = "kicad-${name}";
+          rev = version;
+          inherit name;
+        } // (libSources.${name} or { })
+      );
+      buildInputs = [ gettext ];
+      nativeBuildInputs = [ cmake ];
+      meta.license = licenses.gpl2; # https://github.com/KiCad/kicad-i18n/issues/3
+    };
 }