Merge pull request #737 from bjornfor/slic3r

Add Slic3r, a 3D printer tool
This commit is contained in:
Rob Vermaas 2013-07-11 12:40:49 -07:00
commit 53b686d1cd
3 changed files with 108 additions and 8 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 ];
};
@ -2472,11 +2472,12 @@ rec {
};
ExtUtilsCBuilder = buildPerlPackage rec {
name = "ExtUtils-CBuilder-0.280202";
name = "ExtUtils-CBuilder-0.280205";
src = fetchurl {
url = "mirror://cpan/modules/by-module/ExtUtils/${name}.tar.gz";
sha256 = "13qjdz1kmrp5mp404by94cdsyydjadg974ykinqga450djjaqpbq";
sha256 = "0nfrr3zd71gnsbp5xacdb70n17slrzj421s4nyr11zg5cqsj3ngs";
};
buildInputs = [ PerlOSType ];
};
ExtUtilsConfig = buildPerlPackage {
@ -2569,19 +2570,40 @@ rec {
};
ExtUtilsParseXS = buildPerlPackage rec {
name = "ExtUtils-ParseXS-3.15";
name = "ExtUtils-ParseXS-3.18";
src = fetchurl {
url = "mirror://cpan/modules/by-module/ExtUtils/${name}.tar.gz";
sha256 = "06baf0nsmdkfk50p4x9kss4ncm8h49gkzy8hl5cxbxdsab65gmrb";
sha256 = "0kvbx66vncgk2c72994z31bgh2w3rsrlnx0z7cmxqa7w3hlc4741";
};
};
# From CPAN[1]:
# This module exists merely as a compatibility wrapper around
# ExtUtils::Typemaps. In a nutshell, ExtUtils::Typemap was renamed to
# ExtUtils::Typemaps because the Typemap directory in lib/ could collide with
# the typemap file on case-insensitive file systems.
#
# The ExtUtils::Typemaps module is part of the ExtUtils::ParseXS distribution
# and ships with the standard library of perl starting with perl version
# 5.16.
#
# [1] http://search.cpan.org/~smueller/ExtUtils-Typemap-1.00/lib/ExtUtils/Typemap.pm:
ExtUtilsTypemap = buildPerlPackage rec {
name = "ExtUtils-Typemap-1.00";
src = fetchurl {
url = "mirror://cpan/modules/by-module/ExtUtils/${name}.tar.gz";
sha256 = "1iqz0xlscg655gnwb2h1wrjj70llblps1zznl29qn1mv5mvibc5i";
};
buildInputs = [ ExtUtilsParseXS ];
};
ExtUtilsTypemapsDefault = buildPerlModule rec {
name = "ExtUtils-Typemaps-Default-1.01";
src = fetchurl {
url = "mirror://cpan/modules/by-module/ExtUtils/${name}.tar.gz";
sha256 = "0k03rr7bmhnn6j0505w9id5apss85yvqnx76hxf3javn3klj1m5z";
};
propagatedBuildInputs = [ ExtUtilsTypemap ExtUtilsParseXS ];
};
ExtUtilsXSpp = buildPerlModule rec {
@ -3912,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 ];
};
@ -4043,6 +4065,7 @@ rec {
url = mirror://cpan/authors/id/L/LE/LEONT/Module-Build-0.4005.tar.gz;
sha256 = "eb2522507251550f459c11223ea6d86b34f1dee9b3e3928d0d6a0497505cb7ef";
};
buildInputs = [ CPANMeta ExtUtilsCBuilder ];
meta = {
description = "Build and install Perl modules";
license = "perl";