This commit is contained in:
Miro Hrončok 2014-01-03 15:50:05 +01:00
parent ea2fed3bbe
commit 228bba06b7
10 changed files with 81 additions and 417 deletions

1
.gitignore vendored
View File

@ -3,3 +3,4 @@
/slic3r-0.9.10b-f13c611.tar.gz
/slic3r-0.9.10b-d0eac88.tar.gz
/1.0.0RC1.tar.gz
/1.0.0RC2.tar.gz

View File

@ -1,104 +0,0 @@
From bed1625d6b0fa92da0afb4fae2ec6d036dfbea33 Mon Sep 17 00:00:00 2001
From: Alessandro Ranellucci <aar@cpan.org>
Date: Sun, 24 Nov 2013 14:28:17 +0100
Subject: [PATCH] Split objects could not be repositioned in plater. 3D preview
and stats were not available too. #1543
---
lib/Slic3r/GUI/Plater.pm | 6 ++++--
lib/Slic3r/Model.pm | 2 +-
xs/src/TriangleMesh.cpp | 3 +++
xs/src/admesh/stl.h | 2 +-
xs/t/01_trianglemesh.t | 3 ++-
5 files changed, 11 insertions(+), 5 deletions(-)
diff --git a/lib/Slic3r/GUI/Plater.pm b/lib/Slic3r/GUI/Plater.pm
index 66d6d35..5eec595 100644
--- a/lib/Slic3r/GUI/Plater.pm
+++ b/lib/Slic3r/GUI/Plater.pm
@@ -594,8 +594,10 @@ sub split_object {
input_file_object_id => undef,
model => $new_model,
model_object_idx => $#{$new_model->objects},
- instances => [ map $bb->min_point, 1..$current_copies_num ],
+ mesh_stats => $mesh->stats, # so that we can free model
+ instances => [ map $bb->min_point->pp, 1..$current_copies_num ],
);
+
push @{ $self->{objects} }, $object;
$self->object_loaded($#{ $self->{objects} }, no_arrange => 1);
}
@@ -1274,7 +1276,7 @@ has 'thumbnail_scaling_factor' => (is => 'rw', trigger => \&_transform_thumbnail
has 'config' => (is => 'rw', default => sub { Slic3r::Config->new });
has 'layer_height_ranges' => (is => 'rw', default => sub { [] }); # [ z_min, z_max, layer_height ]
has 'material_mapping' => (is => 'rw', default => sub { {} }); # { material_id => extruder_idx }
-has 'mesh_stats' => (is => 'rw');
+has 'mesh_stats' => (is => 'ro', required => 1);
# statistics
has 'facets' => (is => 'rw');
diff --git a/lib/Slic3r/Model.pm b/lib/Slic3r/Model.pm
index 3bddb68..3594c9b 100644
--- a/lib/Slic3r/Model.pm
+++ b/lib/Slic3r/Model.pm
@@ -308,7 +308,7 @@ use Storable qw(dclone);
has 'input_file' => (is => 'rw');
has 'model' => (is => 'ro', weak_ref => 1, required => 1);
has 'volumes' => (is => 'ro', default => sub { [] });
-has 'instances' => (is => 'rw');
+has 'instances' => (is => 'rw'); # in unscaled coordinates
has 'config' => (is => 'rw', default => sub { Slic3r::Config->new });
has 'layer_height_ranges' => (is => 'rw', default => sub { [] }); # [ z_min, z_max, layer_height ]
has 'material_mapping' => (is => 'rw', default => sub { {} }); # { material_id => extruder_idx }
diff --git a/xs/src/TriangleMesh.cpp b/xs/src/TriangleMesh.cpp
index bc653d8..9eae734 100644
--- a/xs/src/TriangleMesh.cpp
+++ b/xs/src/TriangleMesh.cpp
@@ -532,8 +532,11 @@ void TriangleMesh::rotate(double angle, Point* center)
mesh->stl.stats.original_num_facets = mesh->stl.stats.number_of_facets;
stl_allocate(&mesh->stl);
+ int first = 1;
for (std::deque<int>::const_iterator facet = facets.begin(); facet != facets.end(); facet++) {
mesh->stl.facet_start[facet - facets.begin()] = this->stl.facet_start[*facet];
+ stl_facet_stats(&mesh->stl, this->stl.facet_start[*facet], first);
+ first = 0;
}
}
diff --git a/xs/src/admesh/stl.h b/xs/src/admesh/stl.h
index 332a5bf..ac41438 100644
--- a/xs/src/admesh/stl.h
+++ b/xs/src/admesh/stl.h
@@ -178,6 +178,6 @@
static void stl_count_facets(stl_file *stl, char *file);
extern void stl_allocate(stl_file *stl);
static void stl_read(stl_file *stl, int first_facet, int first);
-static void stl_facet_stats(stl_file *stl, stl_facet facet, int first);
+extern void stl_facet_stats(stl_file *stl, stl_facet facet, int first);
extern void stl_reallocate(stl_file *stl);
extern void stl_get_size(stl_file *stl);
diff --git a/xs/t/01_trianglemesh.t b/xs/t/01_trianglemesh.t
index 71ae473..127c8c9 100644
--- a/xs/t/01_trianglemesh.t
+++ b/xs/t/01_trianglemesh.t
@@ -4,7 +4,7 @@ use strict;
use warnings;
use Slic3r::XS;
-use Test::More tests => 51;
+use Test::More tests => 52;
is Slic3r::TriangleMesh::hello_world(), 'Hello world!',
'hello world';
@@ -59,6 +59,7 @@ my $cube = {
my $meshes = $m->split;
is scalar(@$meshes), 1, 'split';
isa_ok $meshes->[0], 'Slic3r::TriangleMesh', 'split';
+ is_deeply $m->bb3, $meshes->[0]->bb3, 'split populates stats';
}
my $m2 = Slic3r::TriangleMesh->new;
--
1.8.5.1

View File

@ -1,116 +0,0 @@
From 387df3b90024f99c4cd540488374ab41c60ddb60 Mon Sep 17 00:00:00 2001
From: Alessandro Ranellucci <aar@cpan.org>
Date: Sun, 24 Nov 2013 13:04:16 +0100
Subject: [PATCH] Fix regression causing toolchange_gcode to crash Slic3r.
Includes regression test. #1545
---
lib/Slic3r/GCode.pm | 8 +++++++-
lib/Slic3r/GCode/Layer.pm | 2 +-
lib/Slic3r/Print.pm | 12 ++++--------
t/multi.t | 1 +
4 files changed, 13 insertions(+), 10 deletions(-)
diff --git a/lib/Slic3r/GCode.pm b/lib/Slic3r/GCode.pm
index 9ae5d95..c89d98c 100644
--- a/lib/Slic3r/GCode.pm
+++ b/lib/Slic3r/GCode.pm
@@ -8,6 +8,7 @@ use Slic3r::Geometry::Clipper qw(union_ex);
use Slic3r::Surface ':types';
has 'config' => (is => 'ro', required => 1);
+has 'extra_variables' => (is => 'rw', default => sub {{}});
has 'extruders' => (is => 'ro', required => 1);
has 'multiple_extruders' => (is => 'lazy');
has 'standby_points' => (is => 'rw');
@@ -642,7 +643,7 @@ sub set_extruder {
# append custom toolchange G-code
if (defined $self->extruder && $self->config->toolchange_gcode) {
- $gcode .= sprintf "%s\n", $self->print->replace_variables($self->config->toolchange_gcode, {
+ $gcode .= sprintf "%s\n", $self->replace_variables($self->config->toolchange_gcode, {
previous_extruder => $self->extruder->id,
next_extruder => $extruder->id,
});
@@ -741,4 +742,9 @@ sub set_bed_temperature {
return $gcode;
}
+sub replace_variables {
+ my ($self, $string, $extra) = @_;
+ return $self->config->replace_options($string, { %{$self->extra_variables}, %{ $extra || {} } });
+}
+
1;
diff --git a/lib/Slic3r/GCode/Layer.pm b/lib/Slic3r/GCode/Layer.pm
index 1fd7096..8709ed8 100644
--- a/lib/Slic3r/GCode/Layer.pm
+++ b/lib/Slic3r/GCode/Layer.pm
@@ -66,7 +66,7 @@ sub process_layer {
# set new layer - this will change Z and force a retraction if retract_layer_change is enabled
$gcode .= $self->gcodegen->change_layer($layer);
- $gcode .= $self->print->replace_variables($Slic3r::Config->layer_gcode, {
+ $gcode .= $self->gcodegen->replace_variables($Slic3r::Config->layer_gcode, {
layer_num => $self->gcodegen->layer->id,
}) . "\n" if $Slic3r::Config->layer_gcode;
diff --git a/lib/Slic3r/Print.pm b/lib/Slic3r/Print.pm
index a9c9ef3..ed0d806 100644
--- a/lib/Slic3r/Print.pm
+++ b/lib/Slic3r/Print.pm
@@ -726,6 +726,7 @@ sub write_gcode {
# set up our extruder object
my $gcodegen = Slic3r::GCode->new(
config => $self->config,
+ extra_variables => $self->extra_variables,
extruders => $self->extruders, # we should only pass the *used* extruders (but maintain the Tx indices right!)
layer_count => $self->layer_count,
);
@@ -749,7 +750,7 @@ sub write_gcode {
}
};
$print_first_layer_temperature->(0);
- printf $fh "%s\n", $self->replace_variables($Slic3r::Config->start_gcode);
+ printf $fh "%s\n", $gcodegen->replace_variables($Slic3r::Config->start_gcode);
$print_first_layer_temperature->(1);
# set other general things
@@ -902,7 +903,7 @@ sub write_gcode {
# write end commands to file
print $fh $gcodegen->retract if $gcodegen->extruder; # empty prints don't even set an extruder
print $fh $gcodegen->set_fan(0);
- printf $fh "%s\n", $self->replace_variables($Slic3r::Config->end_gcode);
+ printf $fh "%s\n", $gcodegen->replace_variables($Slic3r::Config->end_gcode);
foreach my $extruder (@{$self->extruders}) {
printf $fh "; filament used = %.1fmm (%.1fcm3)\n",
@@ -949,12 +950,7 @@ sub expanded_output_filepath {
# path is a full path to a file so we use it as it is
}
- return $self->replace_variables($path, $extra_variables);
-}
-
-sub replace_variables {
- my ($self, $string, $extra) = @_;
- return $self->config->replace_options($string, { %{$self->extra_variables}, %{ $extra || {} } });
+ return $self->config->replace_options($path, { %{$self->extra_variables}, %$extra_variables });
}
# given the path to a file, this function returns its filename with and without extension
diff --git a/t/multi.t b/t/multi.t
index d338a2d..c7214e8 100644
--- a/t/multi.t
+++ b/t/multi.t
@@ -22,6 +22,7 @@ use Slic3r::Test;
$config->set('extruder_offset', [ [0,0], [20,0], [0,20] ]);
$config->set('temperature', [200, 180, 170]);
$config->set('first_layer_temperature', [206, 186, 166]);
+ $config->set('toolchange_gcode', ';toolchange'); # test that it doesn't crash when this is supplied
my $print = Slic3r::Test::init_print('20mm_cube', config => $config);
--
1.8.5.1

View File

@ -1,47 +0,0 @@
From 5217bc370a2941221322c26c8cb08b6de4c0e0fd Mon Sep 17 00:00:00 2001
From: Alessandro Ranellucci <aar@cpan.org>
Date: Sun, 24 Nov 2013 12:37:36 +0100
Subject: [PATCH] Fix regression causing retraction restarts to ignore
extrusion_axis. Includes regression test. #1547
---
lib/Slic3r/GCode.pm | 3 ++-
t/gcode.t | 7 ++++++-
2 files changed, 8 insertions(+), 2 deletions(-)
diff --git a/lib/Slic3r/GCode.pm b/lib/Slic3r/GCode.pm
index 4563cd7..9ae5d95 100644
--- a/lib/Slic3r/GCode.pm
+++ b/lib/Slic3r/GCode.pm
@@ -546,7 +546,8 @@ sub unretract {
$gcode .= "G11 ; unretract\n";
} elsif ($self->config->extrusion_axis) {
# use G1 instead of G0 because G0 will blend the restart with the previous travel move
- $gcode .= sprintf "G1 E%.5f F%.3f",
+ $gcode .= sprintf "G1 %s%.5f F%.3f",
+ $self->config->extrusion_axis,
$self->extruder->extrude($to_unretract),
$self->extruder->retract_speed_mm_min;
$gcode .= " ; compensate retraction" if $self->config->gcode_comments;
diff --git a/t/gcode.t b/t/gcode.t
index bb51698..f8ee415 100644
--- a/t/gcode.t
+++ b/t/gcode.t
@@ -46,8 +46,13 @@ use Slic3r::Test;
my $config = Slic3r::Config->new_from_defaults;
$config->set('complete_objects', 1);
$config->set('duplicate', 2);
+ $config->set('extrusion_axis', 'A');
my $print = Slic3r::Test::init_print('20mm_cube', config => $config);
- ok Slic3r::Test::gcode($print), "complete_objects";
+ ok my $gcode = Slic3r::Test::gcode($print), "complete_objects";
+ Slic3r::GCode::Reader->new->parse($gcode, sub {
+ my ($self, $cmd, $args, $info) = @_;
+ fail 'unexpected E argument' if defined $args->{E};
+ });
}
__END__
--
1.8.5.1

View File

@ -1,28 +0,0 @@
From 0afee63e84d61b4af66982723b7777518dac900c Mon Sep 17 00:00:00 2001
From: Alessandro Ranellucci <aar@cpan.org>
Date: Sat, 7 Dec 2013 21:03:10 +0100
Subject: [PATCH] Fixed regression in object placement in STL export. #1552
---
lib/Slic3r/Model.pm | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/lib/Slic3r/Model.pm b/lib/Slic3r/Model.pm
index 23d827c..4ff7e4d 100644
--- a/lib/Slic3r/Model.pm
+++ b/lib/Slic3r/Model.pm
@@ -216,9 +216,9 @@ sub mesh {
foreach my $instance (@instances) {
my $mesh = $object->mesh->clone;
if ($instance) {
- $mesh->rotate($instance->rotation, Slic3r::Point->new(0,0));
- $mesh->scale($instance->scaling_factor);
$mesh->align_to_origin;
+ $mesh->rotate($instance->rotation, $object->center_2D);
+ $mesh->scale($instance->scaling_factor);
$mesh->translate(@{$instance->offset}, 0);
}
push @meshes, $mesh;
--
1.8.5.1

View File

@ -1,105 +0,0 @@
From 00e8ba478176103271ad31bcf867ba0c4444b244 Mon Sep 17 00:00:00 2001
From: Alessandro Ranellucci <aar@cpan.org>
Date: Sat, 7 Dec 2013 14:52:59 +0100
Subject: [PATCH] Fix regression causing complete_objects to skip Z moves after
first object is complete. Includes regression test. #1582 #1541
---
lib/Slic3r/GCode.pm | 32 ++++++++++++++++++++------------
t/gcode.t | 16 +++++++++++++++-
2 files changed, 35 insertions(+), 13 deletions(-)
diff --git a/lib/Slic3r/GCode.pm b/lib/Slic3r/GCode.pm
index c89d98c..26a9ba7 100644
--- a/lib/Slic3r/GCode.pm
+++ b/lib/Slic3r/GCode.pm
@@ -130,25 +130,33 @@ sub change_layer {
sub move_z {
my ($self, $z, $comment) = @_;
- $z += $self->config->z_offset;
-
my $gcode = "";
+
+ $z += $self->config->z_offset;
my $current_z = $self->z;
- if (!defined $self->z || $z > $self->z) {
- # if we're going over the current Z we won't be lifted anymore
+ my $nominal_z = defined $current_z ? ($current_z - $self->lifted) : undef;
+
+ if (!defined $current_z || $z > $current_z || $z < $nominal_z) {
+ # we're moving above the current actual Z (so above the lift height of the current
+ # layer if any) or below the current nominal layer
+
+ # in both cases, we're going to the nominal Z of the next layer
$self->lifted(0);
- # this retraction may alter $self->z
- $gcode .= $self->retract(move_z => $z) if $self->extruder->retract_layer_change;
+ if ($self->extruder->retract_layer_change) {
+ # this retraction may alter $self->z
+ $gcode .= $self->retract(move_z => $z);
+ $current_z = $self->z; # update current z in case retract() changed it
+ $nominal_z = defined $current_z ? ($current_z - $self->lifted) : undef;
+ }
$self->speed('travel');
$gcode .= $self->G0(undef, $z, 0, $comment || ('move to next layer (' . $self->layer->id . ')'))
- if !defined $self->z || abs($z - ($self->z - $self->lifted)) > epsilon;
- } elsif ($z < $self->z && $z > ($self->z - $self->lifted + epsilon)) {
- # we're moving to a layer height which is greater than the nominal current one
- # (nominal = actual - lifted) and less than the actual one. we're basically
- # advancing to next layer, whose nominal Z is still lower than the previous
+ if !defined $current_z || abs($z - $nominal_z) > epsilon;
+ } elsif ($z < $current_z) {
+ # we're moving above the current nominal layer height and below the current actual one.
+ # we're basically advancing to next layer, whose nominal Z is still lower than the previous
# layer Z with lift.
- $self->lifted($self->z - $z);
+ $self->lifted($current_z - $z);
}
return $gcode;
diff --git a/t/gcode.t b/t/gcode.t
index f8ee415..17f4ed8 100644
--- a/t/gcode.t
+++ b/t/gcode.t
@@ -1,4 +1,4 @@
-use Test::More tests => 4;
+use Test::More tests => 6;
use strict;
use warnings;
@@ -43,16 +43,30 @@ use Slic3r::Test;
}
{
+ # This tests the following behavior:
+ # - complete objects does not crash
+ # - no hard-coded "E" are generated
+ # - Z moves are correctly generated for both objects
my $config = Slic3r::Config->new_from_defaults;
$config->set('complete_objects', 1);
$config->set('duplicate', 2);
$config->set('extrusion_axis', 'A');
+ $config->set('start_gcode', ''); # prevent any default extra Z move
+ $config->set('layer_height', 0.4);
+ $config->set('first_layer_height', 0.4);
my $print = Slic3r::Test::init_print('20mm_cube', config => $config);
ok my $gcode = Slic3r::Test::gcode($print), "complete_objects";
+ my @z_moves = ();
Slic3r::GCode::Reader->new->parse($gcode, sub {
my ($self, $cmd, $args, $info) = @_;
fail 'unexpected E argument' if defined $args->{E};
+ if (defined $args->{Z}) {
+ push @z_moves, $args->{Z};
+ }
});
+ my $layer_count = 20/0.4; # cube is 20mm tall
+ is scalar(@z_moves), 2*$layer_count, 'complete_objects generates the correct number of Z moves';
+ is_deeply [ @z_moves[0..($layer_count-1)] ], [ @z_moves[$layer_count..$#z_moves] ], 'complete_objects generates the correct Z moves';
}
__END__
--
1.8.5.1

View File

@ -1,8 +1,8 @@
diff --git a/Build.PL b/Build.PL
index b501025..1abe9fe 100644
index f7117e6..0d2abb6 100644
--- a/Build.PL
+++ b/Build.PL
@@ -9,7 +9,7 @@ use File::Spec;
@@ -9,14 +9,14 @@ use File::Spec;
my %prereqs = qw(
Boost::Geometry::Utils 0.15
Encode::Locale 0
@ -11,7 +11,15 @@ index b501025..1abe9fe 100644
File::Basename 0
File::Spec 0
Getopt::Long 0
@@ -142,7 +142,10 @@ if (@missing_prereqs) {
Math::ConvexHull::MonotoneChain 0.01
Math::Geometry::Voronoi 1.3
Math::PlanePath 53
- Module::Build::WithXSpp 0.14
+ Module::Build::WithXSpp 0.13
Moo 1.003001
Scalar::Util 0
Storable 0
@@ -149,7 +149,10 @@ if (@missing_prereqs) {
exit 1;
} elsif (!$gui) {
eval "use App::Prove; 1" or die "Failed to load App::Prove";

39
slic3r-clipper.patch Normal file
View File

@ -0,0 +1,39 @@
diff --git a/xs/Build.PL b/xs/Build.PL
index b358623..90a2cc2 100644
--- a/xs/Build.PL
+++ b/xs/Build.PL
@@ -25,7 +25,7 @@ my $build = Module::Build::WithXSpp->new(
# HAS_BOOL : stops Perl/lib/CORE/handy.h from doing "# define bool char" for MSVC
# NOGDI : prevents inclusion of wingdi.h which defines functions Polygon() and Polyline() in global namespace
extra_compiler_flags => [qw(-D_GLIBCXX_USE_C99 -DHAS_BOOL -DNOGDI -DSLIC3RXS), ($ENV{SLIC3R_DEBUG} ? ' -DSLIC3R_DEBUG -g' : '')],
-
+ extra_linker_flags => [qw(-lpolyclipping)],
# Provides extra C typemaps that are auto-merged
extra_typemap_modules => {
'ExtUtils::Typemaps::Default' => '1.03',
diff --git a/xs/src/ClipperUtils.hpp b/xs/src/ClipperUtils.hpp
index 8f0974d..ab8f46d 100644
--- a/xs/src/ClipperUtils.hpp
+++ b/xs/src/ClipperUtils.hpp
@@ -2,7 +2,7 @@
#define slic3r_ClipperUtils_hpp_
#include <myinit.h>
-#include "clipper.hpp"
+#include <polyclipping/clipper.hpp>
#include "ExPolygon.hpp"
#include "Polygon.hpp"
diff --git a/xs/xsp/Clipper.xsp b/xs/xsp/Clipper.xsp
index 2e63afb..61910e6 100644
--- a/xs/xsp/Clipper.xsp
+++ b/xs/xsp/Clipper.xsp
@@ -2,7 +2,7 @@
%{
#include <myinit.h>
-#include "clipper.hpp"
+#include <polyclipping/clipper.hpp>
#include "ClipperUtils.hpp"
%}

View File

@ -1,8 +1,8 @@
Name: slic3r
Version: 1.0.0
%global rcrc RC1
%global rcrc RC2
%global verrc %{version}%{rcrc}
Release: 0.2.%{rcrc}%{?dist}
Release: 0.3.%{rcrc}%{?dist}
Summary: G-code generator for 3D printers (RepRap, Makerbot, Ultimaker etc.)
License: AGPLv3 and CC-BY
# Images are CC-BY, code is AGPLv3
@ -10,6 +10,9 @@ Group: Applications/Engineering
URL: http://slic3r.org/
Source0: https://github.com/alexrj/Slic3r/archive/%{verrc}.tar.gz
# This is blocked by https://bugzilla.redhat.com/show_bug.cgi?id=1047914
%global with_clipper 0
# Modify Build.PL so we are able to build this on Fedora
Patch0: %{name}-buildpl.patch
@ -18,11 +21,10 @@ Patch0: %{name}-buildpl.patch
# Those two are located at the same place at the code, so the patch is merged
Patch1: %{name}-nowarn-datadir.patch
Patch11: %{name}-1543.patch
Patch12: %{name}-1545.patch
Patch13: %{name}-1547.patch
Patch14: %{name}-1552.patch
Patch15: %{name}-1582-1541.patch
%if %with_clipper
# Unbundle clipper
Patch2: %{name}-clipper.patch
%endif
Source1: %{name}.desktop
BuildRequires: perl(Boost::Geometry::Utils) >= 0.15
@ -37,18 +39,19 @@ BuildRequires: perl(Getopt::Long)
BuildRequires: perl(Growl::GNTP)
BuildRequires: perl(IO::Scalar)
BuildRequires: perl(List::Util)
BuildRequires: perl(Math::Clipper) >= 1.22
BuildRequires: perl(Math::ConvexHull::MonotoneChain)
BuildRequires: perl(Math::ConvexHull) >= 1.0.4
BuildRequires: perl(Math::Geometry::Voronoi) >= 1.3
BuildRequires: perl(Math::PlanePath) >= 53
BuildRequires: perl(Module::Build)
BuildRequires: perl(Module::Build::WithXSpp)
%if 0%{?fedora} > 19
BuildRequires: perl(Moo) >= 1.003001
%else
BuildRequires: perl(Moo)
%endif
BuildRequires: perl(parent)
BuildRequires: perl(Scalar::Util)
BuildRequires: perl(Storable)
@ -59,12 +62,19 @@ BuildRequires: perl(Time::HiRes)
BuildRequires: perl(Wx)
BuildRequires: perl(XML::SAX)
BuildRequires: perl(XML::SAX::ExpatXS)
%if %with_clipper
BuildRequires: polyclipping-devel
%endif
BuildRequires: desktop-file-utils
Requires: perl(Class::XSAccessor)
Requires: perl(Growl::GNTP)
%if 0%{?fedora} > 19
Requires: perl(Moo) >= 1.003001
%endif
Requires: perl(XML::SAX)
Requires: perl(:MODULE_COMPAT_%(eval "`perl -V:version`"; echo $version))
@ -79,14 +89,15 @@ for more information.
%prep
%setup -qn Slic3r-%{verrc}
%patch0 -p1
%patch1 -p1
%patch11 -p1
%patch12 -p1
%patch13 -p1
%patch14 -p1
%patch15 -p1
%if %with_clipper
%patch2 -p1
# Remove bundled clipper
rm xs/src/clipper.*pp
%endif
%build
cd xs
@ -135,6 +146,11 @@ SLIC3R_NO_AUTO=1 perl Build.PL installdirs=vendor
%{_datadir}/%{name}
%changelog
* Thu Jan 02 2014 Miro Hrončok <mhroncok@redhat.com> - 1.0.0-0.3.RC2
- New RC version
- Remove already merged patches
- Only require Module::Build::WithXSpp 0.13 in Build.PL
* Fri Dec 13 2013 Miro Hrončok <mhroncok@redhat.com> - 1.0.0-0.2.RC1
- Backported several bugfixes

View File

@ -1 +1 @@
f720fbbaeb15c3048db880dc85955927 1.0.0RC1.tar.gz
4d17d404ec09b71d75f92ccca8c7ee6d 1.0.0RC2.tar.gz