Merge pull request #98845 from gebner/freecad019git

This commit is contained in:
Gabriel Ebner 2020-09-26 17:30:56 +02:00 committed by GitHub
commit bbb854f974
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
8 changed files with 153 additions and 48 deletions

View File

@ -1,5 +1,5 @@
{ stdenv, mkDerivation, fetchFromGitHub, fetchpatch, cmake, ninja, coin3d, { stdenv, mkDerivation, fetchFromGitHub, fetchpatch, cmake, ninja, coin3d,
xercesc, ode, eigen, qtbase, qttools, qtwebkit, wrapQtAppsHook, xercesc, ode, eigen, qtbase, qttools, qtwebengine, qtxmlpatterns, wrapQtAppsHook,
opencascade-occt, gts, hdf5, vtk, medfile, zlib, python3Packages, swig, opencascade-occt, gts, hdf5, vtk, medfile, zlib, python3Packages, swig,
gfortran, libXmu, soqt, libf2c, libGLU, makeWrapper, pkgconfig, mpi ? null }: gfortran, libXmu, soqt, libf2c, libGLU, makeWrapper, pkgconfig, mpi ? null }:
@ -8,14 +8,14 @@ assert mpi != null;
let let
pythonPackages = python3Packages; pythonPackages = python3Packages;
in mkDerivation rec { in mkDerivation rec {
pname = "freecad"; pname = "freecad-unstable";
version = "0.18.4"; version = "2020-09-25";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "FreeCAD"; owner = "FreeCAD";
repo = "FreeCAD"; repo = "FreeCAD";
rev = version; rev = "7616153b3c31ace006169cdc2fdafab484498858";
sha256 = "1phs9a0px5fnzpyx930cz39p5dis0f0yajxzii3c3sazgkzrd55s"; sha256 = "1vffvzv3gkndfj2k8ik0afyk9rgngnr4aai5py66qd63qd7kmxch";
}; };
nativeBuildInputs = [ nativeBuildInputs = [
@ -29,20 +29,11 @@ in mkDerivation rec {
buildInputs = [ buildInputs = [
cmake coin3d xercesc ode eigen opencascade-occt gts cmake coin3d xercesc ode eigen opencascade-occt gts
zlib swig gfortran soqt libf2c makeWrapper mpi vtk hdf5 medfile zlib swig gfortran soqt libf2c makeWrapper mpi vtk hdf5 medfile
libGLU libXmu qtbase qttools qtwebkit libGLU libXmu qtbase qttools qtwebengine qtxmlpatterns
] ++ (with pythonPackages; [ ] ++ (with pythonPackages; [
matplotlib pycollada shiboken2 pyside2 pyside2-tools pivy python boost matplotlib pycollada shiboken2 pyside2 pyside2-tools pivy python boost
]); ]);
# Fix missing app icon on Wayland. Has been upstreamed and should be safe to
# remove in versions >= 0.19
patches = [
(fetchpatch {
url = "https://github.com/FreeCAD/FreeCAD/commit/c4d2a358ca125d51d059dfd72dcbfba326196dfc.patch";
sha256 = "0yqc9zrxgi2c2xcidm8wh7a9yznkphqvjqm9742qm5fl20p8gl4h";
})
];
cmakeFlags = [ cmakeFlags = [
"-DBUILD_QT5=ON" "-DBUILD_QT5=ON"
"-DSHIBOKEN_INCLUDE_DIR=${pythonPackages.shiboken2}/include" "-DSHIBOKEN_INCLUDE_DIR=${pythonPackages.shiboken2}/include"

View File

@ -0,0 +1,85 @@
{ stdenv, mkDerivation, fetchFromGitHub, fetchpatch, cmake, ninja, coin3d,
xercesc, ode, eigen, qtbase, qttools, qtwebkit, wrapQtAppsHook,
opencascade-occt, gts, hdf5, vtk, medfile, zlib, python3Packages, swig,
gfortran, libXmu, soqt, libf2c, libGLU, makeWrapper, pkgconfig, mpi ? null }:
assert mpi != null;
let
pythonPackages = python3Packages;
in mkDerivation rec {
pname = "freecad";
version = "0.18.4";
src = fetchFromGitHub {
owner = "FreeCAD";
repo = "FreeCAD";
rev = version;
sha256 = "1phs9a0px5fnzpyx930cz39p5dis0f0yajxzii3c3sazgkzrd55s";
};
nativeBuildInputs = [
cmake
ninja
pkgconfig
pythonPackages.pyside2-tools
wrapQtAppsHook
];
buildInputs = [
cmake coin3d xercesc ode eigen opencascade-occt gts
zlib swig gfortran soqt libf2c makeWrapper mpi vtk hdf5 medfile
libGLU libXmu qtbase qttools qtwebkit
] ++ (with pythonPackages; [
matplotlib pycollada shiboken2 pyside2 pyside2-tools pivy python boost
]);
# Fix missing app icon on Wayland. Has been upstreamed and should be safe to
# remove in versions >= 0.19
patches = [
(fetchpatch {
url = "https://github.com/FreeCAD/FreeCAD/commit/c4d2a358ca125d51d059dfd72dcbfba326196dfc.patch";
sha256 = "0yqc9zrxgi2c2xcidm8wh7a9yznkphqvjqm9742qm5fl20p8gl4h";
})
];
cmakeFlags = [
"-DBUILD_QT5=ON"
"-DSHIBOKEN_INCLUDE_DIR=${pythonPackages.shiboken2}/include"
"-DSHIBOKEN_LIBRARY=Shiboken2::libshiboken"
("-DPYSIDE_INCLUDE_DIR=${pythonPackages.pyside2}/include"
+ ";${pythonPackages.pyside2}/include/PySide2/QtCore"
+ ";${pythonPackages.pyside2}/include/PySide2/QtWidgets"
+ ";${pythonPackages.pyside2}/include/PySide2/QtGui"
)
"-DPYSIDE_LIBRARY=PySide2::pyside2"
];
# This should work on both x86_64, and i686 linux
preBuild = ''
export NIX_LDFLAGS="-L${gfortran.cc}/lib64 -L${gfortran.cc}/lib $NIX_LDFLAGS";
'';
# Their main() removes PYTHONPATH=, and we rely on it.
preConfigure = ''
sed '/putenv("PYTHONPATH/d' -i src/Main/MainGui.cpp
qtWrapperArgs+=(--prefix PYTHONPATH : "$PYTHONPATH")
'';
qtWrapperArgs = [
"--set COIN_GL_NO_CURRENT_CONTEXT_CHECK 1"
];
postFixup = ''
mv $out/share/doc $out
'';
meta = with stdenv.lib; {
description = "General purpose Open Source 3D CAD/MCAD/CAx/CAE/PLM modeler";
homepage = "https://www.freecadweb.org/";
license = licenses.lgpl2Plus;
maintainers = with maintainers; [ viric gebner ];
platforms = platforms.linux;
};
}

View File

@ -1,14 +1,14 @@
{ fetchFromBitbucket, stdenv, boost, cmake, libGL, libGLU }: { fetchFromGitHub, stdenv, boost, cmake, libGL, libGLU }:
stdenv.mkDerivation { stdenv.mkDerivation rec {
pname = "coin"; pname = "coin";
version = "unstable-2019-06-12"; version = "4.0.0";
src = fetchFromBitbucket { src = fetchFromGitHub {
owner = "Coin3D"; owner = "coin3d";
repo = "coin"; repo = "coin";
rev = "8d860d7ba112b22c4e9b289268fd8b3625ab81d3"; rev = "Coin-${version}";
sha256 = "1cpncljqvw28k5wvpgchv593nayhby5gwpvbnyllc9hb9ms816xn"; sha256 = "1ayg0hl8wanhadahm5xbghghxw1qjwqbrs3dl3ngnff027hsyf8p";
}; };
postPatch = '' postPatch = ''
@ -18,11 +18,11 @@ stdenv.mkDerivation {
nativeBuildInputs = [ cmake ]; nativeBuildInputs = [ cmake ];
buildInputs = [ boost libGL libGLU ]; buildInputs = [ boost libGL libGLU ];
meta = { meta = with stdenv.lib; {
homepage = "https://bitbucket.org/Coin3D/coin/wiki/Home"; homepage = "https://github.com/coin3d/coin";
license = stdenv.lib.licenses.gpl2Plus; license = licenses.bsd3;
description = "High-level, retained-mode toolkit for effective 3D graphics development"; description = "High-level, retained-mode toolkit for effective 3D graphics development";
maintainers = [ stdenv.lib.maintainers.viric ]; maintainers = with maintainers; [ gebner viric ];
platforms = stdenv.lib.platforms.linux; platforms = platforms.linux;
}; };
} }

View File

@ -0,0 +1,28 @@
{ stdenv, fetchurl, fetchpatch, cmake, ninja, tcl, tk,
libGL, libGLU, libXext, libXmu, libXi }:
stdenv.mkDerivation rec {
pname = "opencascade-occt";
version = "7.3.0p3";
commit = "V${builtins.replaceStrings ["."] ["_"] version}";
src = fetchurl {
name = "occt-${commit}.tar.gz";
url = "https://git.dev.opencascade.org/gitweb/?p=occt.git;a=snapshot;h=${commit};sf=tgz";
sha256 = "0k9c3ypcnjcilq1dhsf6xxbd52gyq4h5rchvp30k3c8ph4ris5pz";
};
nativeBuildInputs = [ cmake ninja ];
buildInputs = [ tcl tk libGL libGLU libXext libXmu libXi ];
meta = with stdenv.lib; {
description = "Open CASCADE Technology, libraries for 3D modeling and numerical simulation";
homepage = "https://www.opencascade.org/";
license = licenses.lgpl21; # essentially...
# The special exception defined in the file OCCT_LGPL_EXCEPTION.txt
# are basically about making the license a little less share-alike.
maintainers = with maintainers; [ amiloradovsky ];
platforms = platforms.all;
};
}

View File

@ -3,13 +3,13 @@
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
pname = "opencascade-occt"; pname = "opencascade-occt";
version = "7.3.0p3"; version = "7.4.0p1";
commit = "V${builtins.replaceStrings ["."] ["_"] version}"; commit = "V${builtins.replaceStrings ["."] ["_"] version}";
src = fetchurl { src = fetchurl {
name = "occt-${commit}.tar.gz"; name = "occt-${commit}.tar.gz";
url = "https://git.dev.opencascade.org/gitweb/?p=occt.git;a=snapshot;h=${commit};sf=tgz"; url = "https://git.dev.opencascade.org/gitweb/?p=occt.git;a=snapshot;h=${commit};sf=tgz";
sha256 = "0k9c3ypcnjcilq1dhsf6xxbd52gyq4h5rchvp30k3c8ph4ris5pz"; sha256 = "0b9hs3akx1f3hhg4zdip6qdv04ssqqcf9kk12amkidgvsl73z2hs";
}; };
nativeBuildInputs = [ cmake ninja ]; nativeBuildInputs = [ cmake ninja ];
@ -21,7 +21,7 @@ stdenv.mkDerivation rec {
license = licenses.lgpl21; # essentially... license = licenses.lgpl21; # essentially...
# The special exception defined in the file OCCT_LGPL_EXCEPTION.txt # The special exception defined in the file OCCT_LGPL_EXCEPTION.txt
# are basically about making the license a little less share-alike. # are basically about making the license a little less share-alike.
maintainers = with maintainers; [ amiloradovsky ]; maintainers = with maintainers; [ amiloradovsky gebner ];
platforms = platforms.all; platforms = platforms.all;
}; };

View File

@ -1,26 +1,23 @@
{ fetchhg, stdenv, coin3d, qtbase, cmake, pkgconfig }: { fetchurl, stdenv, coin3d, qtbase, cmake, pkgconfig }:
stdenv.mkDerivation { stdenv.mkDerivation rec {
pname = "soqt"; pname = "soqt";
version = "1.6.0a"; version = "1.6.0";
src = fetchhg { src = fetchurl {
url = "https://bitbucket.org/Coin3D/soqt"; url = "https://github.com/coin3d/soqt/releases/download/SoQt-${version}/soqt-${version}-src.tar.gz";
rev = "5f2afb4890e0059eb27e1671f980d10ebfb9e762"; sha256 = "07qfljy286vb7y1p93205zn9sp1lpn0rcrqm5010gj87kzsmllwz";
sha256 = "0j9lsci4cx95v16l0jaky0vzh4lbdliwz7wc17442ihjaqiqmv8m";
fetchSubrepos = true;
}; };
buildInputs = [ coin3d qtbase ]; buildInputs = [ coin3d qtbase ];
nativeBuildInputs = [ cmake pkgconfig ]; nativeBuildInputs = [ cmake pkgconfig ];
meta = { meta = with stdenv.lib; {
homepage = "https://bitbucket.org/Coin3D/coin/wiki/Home"; homepage = "https://github.com/coin3d/soqt";
license = stdenv.lib.licenses.gpl2Plus; license = licenses.bsd3;
description = "Glue between Coin high-level 3D visualization library and Qt"; description = "Glue between Coin high-level 3D visualization library and Qt";
maintainers = with maintainers; [ gebner viric ];
maintainers = [ stdenv.lib.maintainers.viric ]; platforms = platforms.linux;
platforms = stdenv.lib.platforms.linux;
}; };
} }

View File

@ -2,13 +2,13 @@
buildPythonPackage rec { buildPythonPackage rec {
pname = "pivy"; pname = "pivy";
version = "0.6.5a2"; version = "0.6.5";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "FreeCAD"; owner = "coin3d";
repo = "pivy"; repo = "pivy";
rev = version; rev = version;
sha256 = "1w03jaha36bjyfaz8hchnv8yrkm5715w15crhd3qrlagz8fs38hm"; sha256 = "0vids7sxk8w5vr73xdnf8xdci71a7syl6cd35aiisppbqyyfmykx";
}; };
nativeBuildInputs = with pkgs; [ nativeBuildInputs = with pkgs; [

View File

@ -14669,6 +14669,7 @@ in
inherit (darwin.apple_sdk.frameworks) OpenCL Cocoa; inherit (darwin.apple_sdk.frameworks) OpenCL Cocoa;
}; };
opencascade-occt = callPackage ../development/libraries/opencascade-occt { }; opencascade-occt = callPackage ../development/libraries/opencascade-occt { };
opencascade-occt730 = callPackage ../development/libraries/opencascade-occt/7.3.nix { };
opencl-headers = callPackage ../development/libraries/opencl-headers { }; opencl-headers = callPackage ../development/libraries/opencl-headers { };
@ -20800,7 +20801,10 @@ in
freecad = libsForQt514.callPackage ../applications/graphics/freecad { freecad = libsForQt514.callPackage ../applications/graphics/freecad {
mpi = openmpi; mpi = openmpi;
# pyside2 5.12 is broken under python 3.8 };
freecadStable = libsForQt514.callPackage ../applications/graphics/freecad/stable.nix {
mpi = openmpi;
opencascade-occt = opencascade-occt730;
python3Packages = python37Packages; python3Packages = python37Packages;
}; };