slic3r: new package

Slic3r is a G-code generator for 3D printers.

- Math-Clipper and Boost-Geometry-Utils have been bumped to satisfy
  Slic3r.

- Slic3r has problems with perl 5.16 due to a locale issue (comma vs
  period in floating point numbers). So we use perl 5.14.

- The tests fail, so we skip them. According to the author of Slic3r,
  that should be safe:

    "Tests failed because of a typo when the 0.9.10b tag was applied.
    You can safely ignore the test results, Slic3r will work."

  See https://github.com/alexrj/Slic3r/issues/1303

  For reference, the errors look like this:

    Use of uninitialized value $deg in numeric eq (==) at /tmp/nix-build-perl-slic3r-0.9.10b.drv-0/git-export/t/../lib/Slic3r/TriangleMesh.pm line 328.
    # Looks like your test exited with 255 before it could output anything.
This commit is contained in:
Bjørn Forsman 2013-04-28 12:59:00 +02:00
parent f094996e9c
commit 49fccb03e9
3 changed files with 81 additions and 4 deletions

View File

@ -0,0 +1,61 @@
{ stdenv, fetchgit, perl, makeWrapper, makeDesktopItem
# Perl modules:
, EncodeLocale, MathClipper, ExtUtilsXSpp, BoostGeometryUtils
, MathConvexHullMonotoneChain, MathGeometryVoronoi, MathPlanePath, Moo
, IOStringy, ClassXSAccessor, Wx, GrowlGNTP, NetDBus }:
stdenv.mkDerivation rec {
version = "0.9.10b";
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 = "0j06h0z65qn4kyb2b7pnq6bcn4al60q227iz9jlrin0ffx3l0ra7";
};
buildInputs = [ perl makeWrapper
EncodeLocale MathClipper ExtUtilsXSpp BoostGeometryUtils
MathConvexHullMonotoneChain MathGeometryVoronoi MathPlanePath Moo
IOStringy ClassXSAccessor Wx GrowlGNTP NetDBus
];
desktopItem = makeDesktopItem {
name = "slic3r";
exec = "slic3r";
icon = "slic3r";
comment = "G-code generator for 3D printers";
desktopName = "Slic3r";
genericName = "3D printer tool";
categories = "Application;Development;";
};
# Nothing to do here
buildPhase = "true";
installPhase = ''
mkdir -p "$out/share/slic3r/"
cp -r * "$out/share/slic3r/"
wrapProgram "$out/share/slic3r/slic3r.pl" --prefix PERL5LIB : $PERL5LIB
mkdir -p "$out/bin"
ln -s "$out/share/slic3r/slic3r.pl" "$out/bin/slic3r"
mkdir -p "$out/share/pixmaps/"
ln -s "$out/share/slic3r/var/Slic3r.png" "$out/share/pixmaps/slic3r.png"
mkdir -p "$out/share/applications"
cp "$desktopItem"/share/applications/* "$out/share/applications/"
'';
meta = with stdenv.lib; {
description = "G-code generator for 3D printers";
longDescription = ''
Slic3r is the tool you need to convert a digital 3D model into printing
instructions for your 3D printer. It cuts the model into horizontal
slices (layers), generates toolpaths to fill them and calculates the
amount of material to be extruded.'';
homepage = http://slic3r.org/;
license = licenses.agpl3;
platforms = platforms.linux;
maintainers = [ maintainers.bjornfor ];
};
}

View File

@ -5679,6 +5679,14 @@ let
__overrides = (config.perl510PackageOverrides or (p: {})) pkgs;
};
perl514Packages = import ./perl-packages.nix {
pkgs = pkgs // {
perl = perl514;
buildPerlPackage = import ../development/perl-modules/generic perl514;
};
__overrides = (config.perl514PackageOverrides or (p: {})) pkgs;
};
perlXMLParser = perlPackages.XMLParser;
ack = perlPackages.ack;
@ -8301,6 +8309,14 @@ let
lightdm_gtk_greeter = callPackage ../applications/display-managers/lightdm-gtk-greeter { };
# slic3r 0.9.10b says: "Running Slic3r under Perl >= 5.16 is not supported nor recommended"
slic3r = callPackage ../applications/misc/slic3r {
inherit (perl514Packages) EncodeLocale MathClipper ExtUtilsXSpp
BoostGeometryUtils MathConvexHullMonotoneChain MathGeometryVoronoi
MathPlanePath Moo IOStringy ClassXSAccessor Wx GrowlGNTP NetDBus;
perl = perl514;
};
slim = callPackage ../applications/display-managers/slim {
libpng = libpng12;
};

View File

@ -296,10 +296,10 @@ rec {
};
BoostGeometryUtils = buildPerlModule rec {
name = "Boost-Geometry-Utils-0.09";
name = "Boost-Geometry-Utils-0.12";
src = fetchurl {
url = "mirror://cpan/authors/id/A/AA/AAR/${name}.tar.gz";
sha256 = "0wgd36rxd5lj0vlkp7l9zgx8bgbv0nj4kia83ipb7p64xpyysghg";
sha256 = "1pywbxjf05qpcixshblhd2cham601zwa9w7c3k5waz4cdild6g1m";
};
propagatedBuildInputs = [ ModuleBuildWithXSpp ExtUtilsTypemapsDefault ];
};
@ -3934,10 +3934,10 @@ rec {
};
MathClipper = buildPerlModule rec {
name = "Math-Clipper-1.19";
name = "Math-Clipper-1.22";
src = fetchurl {
url = "mirror://cpan/modules/by-module/Math/${name}.tar.gz";
sha256 = "1hrdand4i937bgsr3f3yma5ckkdwkprdwmkyyl37v1vqcjdrjr7j";
sha256 = "0p5iblg979v3pb6a8kyhjdv33yadr5997nhz9asjksgvww328nfa";
};
propagatedBuildInputs = [ ModuleBuildWithXSpp ExtUtilsXSpp ExtUtilsTypemapsDefault TestDeep ];
};