about summary refs log tree commit diff
path: root/pkgs/applications/misc/slic3r
diff options
context:
space:
mode:
authorMoritz Ulrich <moritz@tarn-vedra.de>2014-11-15 19:22:18 +0100
committerMoritz Ulrich <moritz@tarn-vedra.de>2014-11-15 19:22:59 +0100
commit0fc8d92e53d294f35f63a1898e9b61f3651d0800 (patch)
tree2ff0681b42ce5b9b7bbd6b1cdc2e3b8c8986e16c /pkgs/applications/misc/slic3r
parent830141f918aeff324579fb109b09ae9e76450669 (diff)
downloadnixlib-0fc8d92e53d294f35f63a1898e9b61f3651d0800.tar
nixlib-0fc8d92e53d294f35f63a1898e9b61f3651d0800.tar.gz
nixlib-0fc8d92e53d294f35f63a1898e9b61f3651d0800.tar.bz2
nixlib-0fc8d92e53d294f35f63a1898e9b61f3651d0800.tar.lz
nixlib-0fc8d92e53d294f35f63a1898e9b61f3651d0800.tar.xz
nixlib-0fc8d92e53d294f35f63a1898e9b61f3651d0800.tar.zst
nixlib-0fc8d92e53d294f35f63a1898e9b61f3651d0800.zip
slic3r: Bump to 1.2.1
Also adds OpenGL and WxGLCanvas to perlPackages..

OpenGL currently contains some pretty ugly hacks regarding OpenGL
feature-detection. Expect it to fail on different systems.
Diffstat (limited to 'pkgs/applications/misc/slic3r')
-rw-r--r--pkgs/applications/misc/slic3r/default.nix13
-rw-r--r--pkgs/applications/misc/slic3r/fix-no-display.patch59
2 files changed, 67 insertions, 5 deletions
diff --git a/pkgs/applications/misc/slic3r/default.nix b/pkgs/applications/misc/slic3r/default.nix
index 06a5cca94a8d..a057197a92de 100644
--- a/pkgs/applications/misc/slic3r/default.nix
+++ b/pkgs/applications/misc/slic3r/default.nix
@@ -3,21 +3,20 @@
 }:
 
 stdenv.mkDerivation rec {
-  version = "1.1.7";
+  version = "1.2.1";
   name = "slic3r-${version}";
 
-  # Slic3r doesn't put out tarballs, only a git repository is available
   src = fetchgit {
     url = "git://github.com/alexrj/Slic3r";
     rev = "refs/tags/${version}";
-    sha256 = "0hss90iw4xwca08d03wrz0fds5nqwb9zjqii2n6rgpcl4km69fka";
+    sha256 = "03xj2kv2d4j6nwmdd5cyghnvjyj4g7g9z0ynynbviyfiplmka2ph";
   };
 
   buildInputs = with perlPackages; [ perl makeWrapper which
     EncodeLocale MathClipper ExtUtilsXSpp BoostGeometryUtils
     MathConvexHullMonotoneChain MathGeometryVoronoi MathPlanePath Moo
     IOStringy ClassXSAccessor Wx GrowlGNTP NetDBus ImportInto XMLSAX
-    ExtUtilsMakeMaker
+    ExtUtilsMakeMaker OpenGL WxGLCanvas
   ];
 
   desktopItem = makeDesktopItem {
@@ -34,12 +33,16 @@ stdenv.mkDerivation rec {
     export SLIC3R_NO_AUTO=true
     export PERL5LIB="./xs/blib/arch/:./xs/blib/lib:$PERL5LIB"
 
+    substituteInPlace Build.PL \
+      --replace "0.9918" "0.9923" \
+      --replace "eval" ""
+
     pushd xs
       perl Build.PL
       perl Build
     popd
 
-    perl Build.PL
+    perl Build.PL --gui
   '';
 
   installPhase = ''
diff --git a/pkgs/applications/misc/slic3r/fix-no-display.patch b/pkgs/applications/misc/slic3r/fix-no-display.patch
new file mode 100644
index 000000000000..b5aeca3a4167
--- /dev/null
+++ b/pkgs/applications/misc/slic3r/fix-no-display.patch
@@ -0,0 +1,59 @@
+diff --git a/Build.PL b/Build.PL
+index 8b21c15..fd3aff0 100644
+--- a/Build.PL
++++ b/Build.PL
+@@ -33,9 +33,6 @@ my $sudo    = grep { $_ eq '--sudo' } @ARGV;
+ my $gui     = grep { $_ eq '--gui' } @ARGV;
+ my $xs_only = grep { $_ eq '--xs' }  @ARGV;
+ if ($gui) {
+-    %prereqs = qw(
+-    Wx                              0.9918
+-    );
+     %recommends = qw(
+     Growl::GNTP                     0.15
+     Wx::GLCanvas                    0
+diff --git a/lib/Slic3r/GUI.pm b/lib/Slic3r/GUI.pm
+index 842ff44..ea0af64 100644
+--- a/lib/Slic3r/GUI.pm
++++ b/lib/Slic3r/GUI.pm
+@@ -26,7 +26,7 @@ use Slic3r::GUI::OptionsGroup::Field;
+ use Slic3r::GUI::SimpleTab;
+ use Slic3r::GUI::Tab;
+ 
+-our $have_OpenGL = eval "use Slic3r::GUI::PreviewCanvas; 1";
++our $have_OpenGL = 0;
+ 
+ use Wx 0.9901 qw(:bitmap :dialog :icon :id :misc :systemsettings :toplevelwindow
+     :filedialog);
+diff --git a/lib/Slic3r/GUI/Plater/2DToolpaths.pm b/lib/Slic3r/GUI/Plater/2DToolpaths.pm
+index 8e48a72..7bed973 100644
+--- a/lib/Slic3r/GUI/Plater/2DToolpaths.pm
++++ b/lib/Slic3r/GUI/Plater/2DToolpaths.pm
+@@ -90,18 +90,20 @@ sub set_z {
+ package Slic3r::GUI::Plater::2DToolpaths::Canvas;
+ 
+ use Wx::Event qw(EVT_PAINT EVT_SIZE EVT_ERASE_BACKGROUND EVT_IDLE EVT_MOUSEWHEEL EVT_MOUSE_EVENTS);
+-use OpenGL qw(:glconstants :glfunctions :glufunctions);
+-use base qw(Wx::GLCanvas Class::Accessor);
+-use Wx::GLCanvas qw(:all);
+ use List::Util qw(min first);
+ use Slic3r::Geometry qw(scale unscale epsilon);
+ 
+ __PACKAGE__->mk_accessors(qw(print z layers color init dirty bb));
+ 
+-# make OpenGL::Array thread-safe
+-{
+-    no warnings 'redefine';
+-    *OpenGL::Array::CLONE_SKIP = sub { 1 };
++if ($Slic3r::GUI::have_OpenGL) {
++    use OpenGL qw(:glconstants :glfunctions :glufunctions);
++    use Wx::GLCanvas qw(:all);
++    use base qw(Wx::GLCanvas Class::Accessor);
++    # make OpenGL::Array thread-safe
++    {
++        no warnings 'redefine';
++        *OpenGL::Array::CLONE_SKIP = sub { 1 };
++    }
+ }
+ 
+ sub new {