2021-01-15 13:21:58 +00:00
|
|
|
{ lib, stdenv
|
2019-07-28 22:10:17 +00:00
|
|
|
, fetchFromGitHub
|
2022-08-30 18:57:55 +00:00
|
|
|
, fetchpatch
|
2019-07-28 22:10:17 +00:00
|
|
|
, qtbase
|
|
|
|
, qtmultimedia
|
|
|
|
, qscintilla
|
|
|
|
, bison
|
|
|
|
, flex
|
|
|
|
, eigen
|
|
|
|
, boost
|
2019-11-10 16:44:34 +00:00
|
|
|
, libGLU, libGL
|
2019-07-28 22:10:17 +00:00
|
|
|
, glew
|
|
|
|
, opencsg
|
|
|
|
, cgal
|
|
|
|
, mpfr
|
|
|
|
, gmp
|
|
|
|
, glib
|
2021-01-19 06:50:56 +00:00
|
|
|
, pkg-config
|
2019-07-28 22:10:17 +00:00
|
|
|
, harfbuzz
|
|
|
|
, gettext
|
|
|
|
, freetype
|
|
|
|
, fontconfig
|
|
|
|
, double-conversion
|
|
|
|
, lib3mf
|
|
|
|
, libzip
|
|
|
|
, mkDerivation
|
|
|
|
, qtmacextras
|
|
|
|
, qmake
|
2020-08-05 18:35:56 +00:00
|
|
|
, spacenavSupport ? stdenv.isLinux, libspnav
|
2022-07-14 00:18:46 +00:00
|
|
|
, wayland
|
|
|
|
, wayland-protocols
|
|
|
|
, qtwayland
|
2022-09-25 16:59:45 +00:00
|
|
|
, cairo
|
2014-01-02 16:53:57 +00:00
|
|
|
}:
|
2012-01-26 19:39:45 +00:00
|
|
|
|
2019-07-28 19:18:55 +00:00
|
|
|
mkDerivation rec {
|
2019-04-07 10:27:58 +00:00
|
|
|
pname = "openscad";
|
2021-02-05 08:52:51 +00:00
|
|
|
version = "2021.01";
|
2013-04-25 06:19:55 +00:00
|
|
|
|
2018-05-04 16:55:09 +00:00
|
|
|
src = fetchFromGitHub {
|
|
|
|
owner = "openscad";
|
|
|
|
repo = "openscad";
|
2019-04-07 10:27:58 +00:00
|
|
|
rev = "${pname}-${version}";
|
2021-02-05 08:52:51 +00:00
|
|
|
sha256 = "sha256-2tOLqpFt5klFPxHNONnHVzBKEFWn4+ufx/MU+eYbliA=";
|
2013-04-25 06:19:55 +00:00
|
|
|
};
|
2012-01-26 19:39:45 +00:00
|
|
|
|
2022-08-30 18:57:55 +00:00
|
|
|
patches = [
|
|
|
|
(fetchpatch {
|
|
|
|
name = "CVE-2022-0496.patch";
|
|
|
|
url = "https://github.com/openscad/openscad/commit/00a4692989c4e2f191525f73f24ad8727bacdf41.patch";
|
|
|
|
sha256 = "sha256-q3SLj2b5aM/IQ8vIDj4iVcwCajgyJ5juNV/KN35uxfI=";
|
|
|
|
})
|
|
|
|
(fetchpatch {
|
|
|
|
name = "CVE-2022-0497.patch";
|
|
|
|
url = "https://github.com/openscad/openscad/commit/84addf3c1efbd51d8ff424b7da276400bbfa1a4b.patch";
|
|
|
|
sha256 = "sha256-KNEVu10E2d4G2x+FJcuHo2tjD8ygMRuhUcW9NbN98bM=";
|
|
|
|
})
|
|
|
|
];
|
|
|
|
|
2021-01-19 06:50:56 +00:00
|
|
|
nativeBuildInputs = [ bison flex pkg-config gettext qmake ];
|
2019-05-06 18:16:20 +00:00
|
|
|
|
2014-03-14 21:17:27 +00:00
|
|
|
buildInputs = [
|
2019-05-06 18:16:20 +00:00
|
|
|
eigen boost glew opencsg cgal mpfr gmp glib
|
2019-04-07 10:27:58 +00:00
|
|
|
harfbuzz lib3mf libzip double-conversion freetype fontconfig
|
2022-09-25 16:59:45 +00:00
|
|
|
qtbase qtmultimedia qscintilla cairo
|
2022-07-14 00:18:46 +00:00
|
|
|
] ++ lib.optionals stdenv.isLinux [ libGLU libGL wayland wayland-protocols qtwayland ]
|
2021-01-15 13:21:58 +00:00
|
|
|
++ lib.optional stdenv.isDarwin qtmacextras
|
2020-08-05 18:35:56 +00:00
|
|
|
++ lib.optional spacenavSupport libspnav
|
2018-05-04 16:55:09 +00:00
|
|
|
;
|
2012-01-26 19:39:45 +00:00
|
|
|
|
2020-08-05 18:35:56 +00:00
|
|
|
qmakeFlags = [ "VERSION=${version}" ] ++
|
|
|
|
lib.optionals spacenavSupport [
|
|
|
|
"ENABLE_SPNAV=1"
|
|
|
|
"SPNAV_INCLUDEPATH=${libspnav}/include"
|
|
|
|
"SPNAV_LIBPATH=${libspnav}/lib"
|
|
|
|
];
|
2012-01-26 19:39:45 +00:00
|
|
|
|
2022-02-12 20:36:34 +00:00
|
|
|
enableParallelBuilding = true;
|
2019-02-20 06:50:42 +00:00
|
|
|
|
2022-04-17 22:47:00 +00:00
|
|
|
preBuild = ''
|
|
|
|
make objects/parser.cxx
|
|
|
|
'';
|
|
|
|
|
2021-01-15 13:21:58 +00:00
|
|
|
postInstall = lib.optionalString stdenv.isDarwin ''
|
2019-05-06 18:16:20 +00:00
|
|
|
mkdir $out/Applications
|
|
|
|
mv $out/bin/*.app $out/Applications
|
|
|
|
rmdir $out/bin || true
|
|
|
|
|
|
|
|
mv --target-directory=$out/Applications/OpenSCAD.app/Contents/Resources \
|
2021-08-03 14:15:53 +00:00
|
|
|
$out/share/openscad/{examples,color-schemes,locale,libraries,fonts,templates}
|
2019-05-06 18:16:20 +00:00
|
|
|
|
|
|
|
rmdir $out/share/openscad
|
|
|
|
'';
|
|
|
|
|
2012-01-26 19:39:45 +00:00
|
|
|
meta = {
|
|
|
|
description = "3D parametric model compiler";
|
2013-04-25 06:20:49 +00:00
|
|
|
longDescription = ''
|
|
|
|
OpenSCAD is a software for creating solid 3D CAD objects. It is free
|
2017-08-06 22:05:18 +00:00
|
|
|
software and available for Linux/UNIX, MS Windows and macOS.
|
2013-04-25 06:20:49 +00:00
|
|
|
|
|
|
|
Unlike most free software for creating 3D models (such as the famous
|
|
|
|
application Blender) it does not focus on the artistic aspects of 3D
|
|
|
|
modelling but instead on the CAD aspects. Thus it might be the
|
|
|
|
application you are looking for when you are planning to create 3D models of
|
|
|
|
machine parts but pretty sure is not what you are looking for when you are more
|
|
|
|
interested in creating computer-animated movies.
|
|
|
|
'';
|
2020-04-01 01:11:51 +00:00
|
|
|
homepage = "http://openscad.org/";
|
2021-01-15 13:21:58 +00:00
|
|
|
license = lib.licenses.gpl2;
|
|
|
|
platforms = lib.platforms.unix;
|
|
|
|
maintainers = with lib.maintainers; [ bjornfor raskin gebner ];
|
2023-07-31 19:49:41 +00:00
|
|
|
mainProgram = "openscad";
|
2012-01-26 19:39:45 +00:00
|
|
|
};
|
|
|
|
}
|