mirror of
https://github.com/NixOS/nixpkgs.git
synced 2025-05-02 11:37:01 +00:00
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
This commit is contained in:
parent
6119ca27bb
commit
e4786f3a1c
4 changed files with 76 additions and 54 deletions
|
@ -11,7 +11,6 @@
|
||||||
, ngspiceSupport ? true, libngspice
|
, ngspiceSupport ? true, libngspice
|
||||||
, scriptingSupport ? true, swig, python, pythonPackages, wxPython
|
, scriptingSupport ? true, swig, python, pythonPackages, wxPython
|
||||||
, debug ? false, valgrind
|
, debug ? false, valgrind
|
||||||
, with3d ? true
|
|
||||||
, withI18n ? true
|
, withI18n ? true
|
||||||
}:
|
}:
|
||||||
|
|
||||||
|
@ -56,10 +55,11 @@ stdenv.mkDerivation rec {
|
||||||
];
|
];
|
||||||
|
|
||||||
# tagged releases don't have "unknown"
|
# 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 \
|
substituteInPlace CMakeModules/KiCadVersion.cmake \
|
||||||
--replace "unknown" ${baseVersion}
|
--replace "unknown" ${builtins.substring 0 10 src.rev}
|
||||||
'';
|
'';
|
||||||
|
|
||||||
makeFlags = optional (debug) [ "CFLAGS+=-Og" "CFLAGS+=-ggdb" ];
|
makeFlags = optional (debug) [ "CFLAGS+=-Og" "CFLAGS+=-ggdb" ];
|
||||||
|
@ -117,9 +117,9 @@ stdenv.mkDerivation rec {
|
||||||
'';
|
'';
|
||||||
|
|
||||||
meta = {
|
meta = {
|
||||||
description = "just the built source without the libraries";
|
description = "Just the built source without the libraries";
|
||||||
longDescription = ''
|
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
|
the libraries are passed via an env var in the wrapper, default.nix
|
||||||
'';
|
'';
|
||||||
homepage = "https://www.kicad-pcb.org/";
|
homepage = "https://www.kicad-pcb.org/";
|
||||||
|
|
|
@ -19,6 +19,7 @@ with lib;
|
||||||
let
|
let
|
||||||
|
|
||||||
stable = pname != "kicad-unstable";
|
stable = pname != "kicad-unstable";
|
||||||
|
baseName = if (stable) then "kicad" else "kicad-unstable";
|
||||||
|
|
||||||
versions = {
|
versions = {
|
||||||
"kicad" = {
|
"kicad" = {
|
||||||
|
@ -39,30 +40,30 @@ let
|
||||||
};
|
};
|
||||||
"kicad-unstable" = {
|
"kicad-unstable" = {
|
||||||
kicadVersion = {
|
kicadVersion = {
|
||||||
version = "2019-12-15";
|
version = "2019-12-31";
|
||||||
src = {
|
src = {
|
||||||
rev = "1abb198fb42c68ab8dd8ce6ff97d984df6688e10";
|
rev = "eaaa4eb63acb289047dfbb6cc275579dea58f12b";
|
||||||
sha256 = "1b7k05bl2w4by5bhk6sfb2iynddlg3gah8qma7l9am6q1j3lmx4p";
|
sha256 = "1v2hf2slphjdh14y56pmzlpi6mqidrd8198if1fi0cch72v37zch";
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
libVersion = {
|
libVersion = {
|
||||||
version = "unstable";
|
version = "unstable";
|
||||||
libSources = {
|
libSources = {
|
||||||
i18n.rev = "f1084526305005fa53e78000f7db2d67e8a0d423";
|
i18n.rev = "e7439fd76f27cfc26e269c4e6c4d56245345c28b";
|
||||||
i18n.sha256 = "1yhc0m4psx0rz5msb1zqn5fz6l1ynwykrsk1443g4073lmjibv74";
|
i18n.sha256 = "1nqm1kx5b4f7s0f9q8bg4rdhqnp0128yp6bgnrkia1kwmfnf5gmy";
|
||||||
symbols.rev = "68176b08fdfd34673f4518ef6c331ad2ecf7a9a6";
|
symbols.rev = "1bc5ff11c76bcbfda227e534b0acf737edddde8f";
|
||||||
symbols.sha256 = "0kcn8pwdac5snd6vzmdw82k5x9q12nijpdss3nvi5my6g3ilwgjj";
|
symbols.sha256 = "05kv93790wi4dpbn2488p587b83yz1zw9h62lkv41h7vn2r1mmb7";
|
||||||
templates.rev = "0c0490897f803ab8b7c3dad438b7eb1f80e0417c";
|
templates.rev = "0c0490897f803ab8b7c3dad438b7eb1f80e0417c";
|
||||||
templates.sha256 = "0cs3bm3zb5ngw5ldn0lzw5bvqm4kvcidyrn76438alffwiz2b15g";
|
templates.sha256 = "0cs3bm3zb5ngw5ldn0lzw5bvqm4kvcidyrn76438alffwiz2b15g";
|
||||||
footprints.rev = "8cef00a34078c3dabe943a76f9cdf7d05ffc38fc";
|
footprints.rev = "454126c125edd3fa8633f301421a7d9c4de61b77";
|
||||||
footprints.sha256 = "0aplxxbcyb4vpj3kpcnj6lbnpk9zjql46js9i4iaqs388z93sb97";
|
footprints.sha256 = "00nli4kx2i68bk852rivbirzcgpsdlpdk34g1q892952jsbh7fy6";
|
||||||
packages3d.rev = "58d73640ebb764637eb7bba6290815b84a24b8ad";
|
packages3d.rev = "c2b92a411adc93ddeeed74b36b542e1057f81a2a";
|
||||||
packages3d.sha256 = "0cff2ms1bsw530kqb1fr1m2pjixyxzwa81mxgac3qpbcf8fnpvaz";
|
packages3d.sha256 = "05znc6y2lc31iafspg308cxdda94zg6c7mwslmys76npih1pb8qc";
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
versionConfig = versions.${if (stable) then "kicad" else "kicad-unstable"};
|
versionConfig = versions.${baseName};
|
||||||
|
|
||||||
wxGTK = if (stable)
|
wxGTK = if (stable)
|
||||||
# wxGTK3x may default to withGtk2 = false, see #73145
|
# wxGTK3x may default to withGtk2 = false, see #73145
|
||||||
|
@ -77,19 +78,23 @@ let
|
||||||
|
|
||||||
kicad-libraries = callPackages ./libraries.nix versionConfig.libVersion;
|
kicad-libraries = callPackages ./libraries.nix versionConfig.libVersion;
|
||||||
kicad-base = callPackage ./base.nix {
|
kicad-base = callPackage ./base.nix {
|
||||||
pname = if (stable) then "kicad" else "kicad-unstable";
|
pname = baseName;
|
||||||
inherit versions stable;
|
inherit versions stable baseName;
|
||||||
inherit wxGTK python wxPython;
|
inherit wxGTK python wxPython;
|
||||||
inherit debug with3d withI18n withOCCT oceSupport ngspiceSupport scriptingSupport;
|
inherit debug withI18n withOCCT oceSupport ngspiceSupport scriptingSupport;
|
||||||
};
|
};
|
||||||
|
|
||||||
in
|
in
|
||||||
stdenv.mkDerivation rec {
|
stdenv.mkDerivation rec {
|
||||||
|
|
||||||
inherit pname;
|
inherit pname;
|
||||||
version = versions.${if (stable) then "kicad" else "kicad-unstable"}.kicadVersion.version;
|
version = versions.${baseName}.kicadVersion.version;
|
||||||
|
|
||||||
src = kicad-base;
|
src = kicad-base;
|
||||||
|
dontUnpack = true;
|
||||||
|
dontConfigure = true;
|
||||||
|
dontBuild = true;
|
||||||
|
dontFixup = true;
|
||||||
|
|
||||||
pythonPath = optionals (scriptingSupport)
|
pythonPath = optionals (scriptingSupport)
|
||||||
[ wxPython pythonPackages.six ];
|
[ 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.symbols}/share/kicad/template"
|
||||||
"--prefix KICAD_TEMPLATE_DIR : ${kicad-libraries.footprints}/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 (with3d) [ "--set KISYS3DMOD ${kicad-libraries.packages3d}/share/kicad/modules/packages3d" ]
|
||||||
|
++ optionals (ngspiceSupport) [ "--prefix LD_LIBRARY_PATH : ${libngspice}/lib" ]
|
||||||
|
|
||||||
# infinisil's workaround for #39493
|
# infinisil's workaround for #39493
|
||||||
++ [ "--set GDK_PIXBUF_MODULE_FILE ${librsvg}/lib/gdk-pixbuf-2.0/2.10.0/loaders.cache" ]
|
++ [ "--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
|
# not sure if anything has to be done with the other stuff in kicad-base/bin
|
||||||
# dxf2idf, idf2vrml, idfcyl, idfrect, kicad2step, kicad-ogltest
|
# dxf2idf, idf2vrml, idfcyl, idfrect, kicad2step, kicad-ogltest
|
||||||
installPhase =
|
installPhase =
|
||||||
optionalString (scriptingSupport) '' buildPythonPath "$out $pythonPath"
|
optionalString (scriptingSupport) '' buildPythonPath "${kicad-base} $pythonPath"
|
||||||
'' +
|
'' +
|
||||||
'' makeWrapper ${kicad-base}/bin/kicad $out/bin/kicad $makeWrapperArgs ''
|
'' makeWrapper ${kicad-base}/bin/kicad $out/bin/kicad $makeWrapperArgs ''
|
||||||
+ optionalString (scriptingSupport) '' --set PYTHONPATH "$program_PYTHONPATH"
|
+ optionalString (scriptingSupport) '' --set PYTHONPATH "$program_PYTHONPATH"
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
{ lib, stdenv, fetchFromGitHub, cmake, gettext
|
{ lib, stdenv, cmake, gettext
|
||||||
, version
|
, fetchFromGitHub, fetchFromGitLab
|
||||||
, libSources
|
, version, libSources
|
||||||
}:
|
}:
|
||||||
|
|
||||||
# callPackage libraries {
|
# callPackage libraries {
|
||||||
|
@ -13,33 +13,52 @@
|
||||||
with lib;
|
with lib;
|
||||||
let
|
let
|
||||||
mkLib = name: attrs:
|
mkLib = name: attrs:
|
||||||
stdenv.mkDerivation ({
|
stdenv.mkDerivation (
|
||||||
name = "kicad-${name}-${version}";
|
{
|
||||||
src = fetchFromGitHub ({
|
pname = "kicad-${name}";
|
||||||
owner = "KiCad";
|
version = "${version}";
|
||||||
repo = "kicad-${name}";
|
src = fetchFromGitHub (
|
||||||
rev = version;
|
{
|
||||||
inherit name;
|
owner = "KiCad";
|
||||||
} // (libSources.${name} or {}));
|
repo = "kicad-${name}";
|
||||||
nativeBuildInputs = [ cmake ];
|
rev = version;
|
||||||
} // attrs);
|
inherit name;
|
||||||
|
} // (libSources.${name} or { })
|
||||||
|
);
|
||||||
|
nativeBuildInputs = [ cmake ];
|
||||||
|
meta.license = licenses.cc-by-sa-40;
|
||||||
|
} // attrs
|
||||||
|
);
|
||||||
in
|
in
|
||||||
{
|
{
|
||||||
symbols = mkLib "symbols" {
|
symbols = mkLib "symbols" { };
|
||||||
meta.license = licenses.cc-by-sa-40;
|
templates = mkLib "templates" { };
|
||||||
};
|
footprints = mkLib "footprints" { };
|
||||||
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
|
|
||||||
};
|
|
||||||
packages3d = mkLib "packages3d" {
|
packages3d = mkLib "packages3d" {
|
||||||
hydraPlatforms = []; # this is a ~1 GiB download, occupies ~5 GiB in store
|
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
|
||||||
|
};
|
||||||
}
|
}
|
||||||
|
|
|
@ -24199,9 +24199,7 @@ in
|
||||||
fped = callPackage ../applications/science/electronics/fped { };
|
fped = callPackage ../applications/science/electronics/fped { };
|
||||||
|
|
||||||
kicad = callPackage ../applications/science/electronics/kicad { };
|
kicad = callPackage ../applications/science/electronics/kicad { };
|
||||||
|
|
||||||
kicad-small = kicad.override { pname = "kicad-small"; with3d = false; };
|
kicad-small = kicad.override { pname = "kicad-small"; with3d = false; };
|
||||||
|
|
||||||
kicad-unstable = kicad.override { pname = "kicad-unstable"; debug = true; };
|
kicad-unstable = kicad.override { pname = "kicad-unstable"; debug = true; };
|
||||||
|
|
||||||
librepcb = libsForQt5.callPackage ../applications/science/electronics/librepcb { };
|
librepcb = libsForQt5.callPackage ../applications/science/electronics/librepcb { };
|
||||||
|
|
Loading…
Add table
Reference in a new issue