From a4c932fa5121c9b16b774c2de8f90d9ee816343a Mon Sep 17 00:00:00 2001 From: Ben Gamari Date: Thu, 26 Jul 2018 08:47:07 -0400 Subject: [PATCH] kicad: 4.0.7 -> 5.0.0 --- .../science/electronics/kicad/default.nix | 100 ++++++++---------- pkgs/top-level/all-packages.nix | 1 + 2 files changed, 43 insertions(+), 58 deletions(-) diff --git a/pkgs/applications/science/electronics/kicad/default.nix b/pkgs/applications/science/electronics/kicad/default.nix index e3244ec339e..5066eafcd55 100644 --- a/pkgs/applications/science/electronics/kicad/default.nix +++ b/pkgs/applications/science/electronics/kicad/default.nix @@ -1,72 +1,56 @@ -{ stdenv, fetchurl, cmake, libGLU_combined, wxGTK, zlib, libX11, gettext, glew, cairo, curl, openssl, boost, pkgconfig, doxygen }: +{ wxGTK, lib, stdenv, fetchurl, cmake, libGLU_combined, zlib +, libX11, gettext, glew, glm, cairo, curl, openssl, boost, pkgconfig +, doxygen, pcre, libpthreadstubs, libXdmcp +, oceSupport ? true, opencascade +, ngspiceSupport ? true, libngspice +, scriptingSupport ? true, swig, python, wxPython +}: + +assert ngspiceSupport -> libngspice != null; + +with lib; stdenv.mkDerivation rec { name = "kicad-${version}"; - series = "4.0"; - version = "4.0.7"; + series = "5.0"; + version = "5.0.0"; - srcs = [ - (fetchurl { - url = "https://code.launchpad.net/kicad/${series}/${version}/+download/kicad-${version}.tar.xz"; - sha256 = "1hgxan9321szgyqnkflb0q60yjf4yvbcc4cpwhm0yz89qrvlq1q9"; - }) + src = fetchurl { + url = "https://launchpad.net/kicad/${series}/${version}/+download/kicad-${version}.tar.xz"; + sha256 = "17nqjszyvd25wi6550j981whlnb1wxzmlanljdjihiki53j84x9p"; + }; - (fetchurl { - url = "http://downloads.kicad-pcb.org/libraries/kicad-library-${version}.tar.gz"; - sha256 = "1azb7v1y3l6j329r9gg7f4zlg0wz8nh4s4i5i0l9s4yh9r6i9zmv"; - }) - - (fetchurl { - url = "http://downloads.kicad-pcb.org/libraries/kicad-footprints-${version}.tar.gz"; - sha256 = "08qrz5zzsb5127jlnv24j0sgiryd5nqwg3lfnwi8j9a25agqk13j"; - }) - ]; - - sourceRoot = "kicad-${version}"; - - cmakeFlags = '' - -DKICAD_SKIP_BOOST=ON - -DKICAD_BUILD_VERSION=${version} - -DKICAD_REPO_NAME=stable + postPatch = '' + substituteInPlace CMakeModules/KiCadVersion.cmake \ + --replace no-vcs-found ${version} ''; - enableParallelBuilding = true; # often fails on Hydra: fatal error: pcb_plot_params_lexer.h: No such file or directory - - nativeBuildInputs = [ pkgconfig ]; - buildInputs = [ cmake libGLU_combined wxGTK zlib libX11 gettext glew cairo curl openssl boost doxygen ]; - - # They say they only support installs to /usr or /usr/local, - # so we have to handle this. - patchPhase = '' - sed -i -e 's,/usr/local/kicad,'$out,g common/gestfich.cpp - ''; - - postUnpack = '' - pushd $(pwd) - ''; - - postInstall = '' - popd - - pushd kicad-library-* - cmake -DCMAKE_INSTALL_PREFIX=$out - make $MAKE_FLAGS - make install - popd - - pushd kicad-footprints-* - mkdir -p $out/share/kicad/modules - cp -R *.pretty $out/share/kicad/modules/ - popd - ''; + cmakeFlags = + optionals (oceSupport) [ "-DKICAD_USE_OCE=ON" "-DOCE_DIR=${opencascade}" ] + ++ optional (ngspiceSupport) "-DKICAD_SPICE=ON" + ++ optionals (scriptingSupport) [ + "-DKICAD_SCRIPTING=ON" + "-DKICAD_SCRIPTING_MODULES=ON" + "-DKICAD_SCRIPTING_WXPYTHON=ON" + # nix installs wxPython headers in wxPython package, not in wxwidget + # as assumed. We explicitely set the header location. + "-DCMAKE_CXX_FLAGS=-I${wxPython}/include/wx-3.0" + ]; + # https://www.mail-archive.com/kicad-developers@lists.launchpad.net/msg29840.html + nativeBuildInputs = [ (cmake.override {majorVersion = "3.10";}) doxygen pkgconfig ]; + buildInputs = [ + libGLU_combined zlib libX11 wxGTK pcre libXdmcp gettext glew glm libpthreadstubs + cairo curl openssl boost + ] ++ optional (oceSupport) opencascade + ++ optional (ngspiceSupport) libngspice + ++ optionals (scriptingSupport) [ swig python wxPython ]; meta = { description = "Free Software EDA Suite"; homepage = http://www.kicad-pcb.org/; - license = stdenv.lib.licenses.gpl2; - maintainers = with stdenv.lib.maintainers; [viric]; - platforms = with stdenv.lib.platforms; linux; - hydraPlatforms = []; # 'output limit exceeded' error on hydra + license = licenses.gpl2; + maintainers = with maintainers; [ berce ]; + platforms = with platforms; linux; }; } diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 59724842198..f4b8df8bcf7 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -20744,6 +20744,7 @@ with pkgs; kicad = callPackage ../applications/science/electronics/kicad { wxGTK = wxGTK30; + inherit (pythonPackages) wxPython; boost = boost160; };