[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Bug#854247: marked as done (unblock: inkscape 0.92.1)



Your message dated Thu, 16 Feb 2017 22:08:00 +0000
with message-id <571ca766-0582-712a-be39-99888b0582ec@thykier.net>
and subject line Re: Bug#854236: unblock: inkscape 0.92.1
has caused the Debian Bug report #854236,
regarding unblock: inkscape 0.92.1
to be marked as done.

This means that you claim that the problem has been dealt with.
If this is not the case it is now your responsibility to reopen the
Bug report if necessary, and/or fix the problem forthwith.

(NB: If you are a system administrator and have no idea what this
message is talking about, this may indicate a serious mail system
misconfiguration somewhere. Please contact owner@bugs.debian.org
immediately.)


-- 
854236: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=854236
Debian Bug Tracking System
Contact owner@bugs.debian.org with problems
--- Begin Message ---
Package: release.debian.org
User: release.debian.org@packages.debian.org
Usertags: unblock

Hi!

This is a preapproval request.

Currently stretch has inkscape version 0.92.0 + a bunch of patches
backported from their stable branch.  I'd like to eventually ship
0.92.1, which is due in about 2 weeks if they keep the current schedule.
For avoidance of doubt, their stable branch only carries bugfixes and
i18n updates.

Yesterday they made a 0.92.1~pre1 release, which I tried to package, the
changes which will occur after this will only be l10n updates and very
important bug fixes.
You can see the full debdiff at (uncompressed ~30MB, ~500k lines)
https://volatile.mapreri.org/2017-02-05/e67ccfb026998f4d1a35b353992e669f/full_debdiff.diff.gz
whereas attached there is a filtered debdiff made by
$ filterdiff -x '*/po/*' -x '*/share/tutorials/*' -x '*/share/examples/*' -x '*/doc/*' -x '*/packaging/*'
We are not shipping anything from ./doc, and we have no use in what's
inside ./packaging (mostly Windows stuff); also the tutorials and the
examples take the biggest part of the diff because upstream re-scaled
all the .svg's: https://bugs.launchpad.net/inkscape/+bug/1651815
http://bazaar.launchpad.net/~inkscape.dev/inkscape/0.92.x/revision/15302


In particular there is one bugfix which I'm interested, which is causing
malformed rendering of text boxes.  This random blog post can give you
an idea of the problem (upstream is not good at bug triaging, so there
is no real trackable bug…):
http://peppercarrot.com/en/article396/new-inkscape-0-92-breaks-your-previous-works-done-with-inkscape
It has been mostly fixed by
http://bazaar.launchpad.net/~inkscape.dev/inkscape/0.92.x/revision/15338
http://bazaar.launchpad.net/~inkscape.dev/inkscape/0.92.x/revision/15350
http://bazaar.launchpad.net/~inkscape.dev/inkscape/0.92.x/revision/15351
We expect some more tidying for next point release 0.92.2 but it's very
good already.


You can see all the upstream changes here:
http://bazaar.launchpad.net/~inkscape.dev/inkscape/0.92.x/changes



Thank you for considering.


-- 
regards,
                        Mattia Rizzolo

GPG Key: 66AE 2B4A FCCF 3F52 DA18  4D18 4B04 3FCD B944 4540      .''`.
more about me:  https://mapreri.org                             : :'  :
Launchpad user: https://launchpad.net/~mapreri                  `. `'`
Debian QA page: https://qa.debian.org/developer.php?login=mattia  `-
(filtered) diffstat for inkscape-0.92.0 inkscape-0.92.1~pre1

 /tmp/uf7QOdKsTV/inkscape-0.92.1~pre1/share/examples/car.svgz                        |binary
 /tmp/uf7QOdKsTV/inkscape-0.92.1~pre1/share/examples/gallardo.svgz                   |binary
 /tmp/uf7QOdKsTV/inkscape-0.92.1~pre1/share/examples/gradient-mesh-experimental.svgz |binary
 /tmp/uf7QOdKsTV/inkscape-0.92.1~pre1/share/examples/l-systems.svgz                  |binary
 /tmp/uf7QOdKsTV/inkscape-0.92.1~pre1/share/examples/stars.svgz                      |binary
 /tmp/uf7QOdKsTV/inkscape-0.92.1~pre1/share/tutorials/pixelart-dialog.de.png         |binary
 /tmp/uf7QOdKsTV/inkscape-0.92.1~pre1/share/tutorials/pixelart-dialog.el.png         |binary
 /tmp/uf7QOdKsTV/inkscape-0.92.1~pre1/share/tutorials/pixelart-dialog.en.png         |binary
 /tmp/uf7QOdKsTV/inkscape-0.92.1~pre1/share/tutorials/pixelart-dialog.fr.png         |binary
 /tmp/uf7QOdKsTV/inkscape-0.92.1~pre1/share/tutorials/pixelart-dialog.nl.png         |binary
 /tmp/uf7QOdKsTV/inkscape-0.92.1~pre1/share/tutorials/pixelart-dialog.png            |binary
 /tmp/uf7QOdKsTV/inkscape-0.92.1~pre1/share/tutorials/pixelart-dialog.pt.png         |binary
 /tmp/uf7QOdKsTV/inkscape-0.92.1~pre1/share/tutorials/pixelart-dialog.ru.png         |binary
 /tmp/uf7QOdKsTV/inkscape-0.92.1~pre1/share/tutorials/pixelart-dialog.sk.png         |binary
 /tmp/uf7QOdKsTV/inkscape-0.92.1~pre1/share/tutorials/pixelart-dialog.zh_TW.png      |binary
 inkscape-0.92.1~pre1/.snapcraft.yaml                                                |    2 
 inkscape-0.92.1~pre1/CMakeLists.txt                                                 |    2 
 inkscape-0.92.1~pre1/CMakeScripts/inkscape-version.cmake                            |    4 
 inkscape-0.92.1~pre1/NEWS                                                           |   36 +-
 inkscape-0.92.1~pre1/configure.ac                                                   |    2 
 inkscape-0.92.1~pre1/debian/changelog                                               |    7 
 inkscape-0.92.1~pre1/debian/patches/series                                          |    7 
 inkscape-0.92.1~pre1/debian/patches/upstream/0.92.x/15309.patch                     |   24 -
 inkscape-0.92.1~pre1/debian/patches/upstream/0.92.x/15311.patch                     |   73 ----
 inkscape-0.92.1~pre1/debian/patches/upstream/0.92.x/15320.patch                     |   22 -
 inkscape-0.92.1~pre1/debian/patches/upstream/0.92.x/15323.patch                     |   38 --
 inkscape-0.92.1~pre1/debian/patches/upstream/0.92.x/15324.patch                     |   65 ---
 inkscape-0.92.1~pre1/debian/patches/upstream/0.92.x/15325.patch                     |  103 -----
 inkscape-0.92.1~pre1/debian/patches/upstream/0.92.x/15332.patch                     |   37 --
 inkscape-0.92.1~pre1/inkscape.pod                                                   |   10 
 inkscape-0.92.1~pre1/setup/gui/inkscape.desktop                                     |    3 
 inkscape-0.92.1~pre1/share/attributes/cssprops                                      |    2 
 inkscape-0.92.1~pre1/share/attributes/genMapDataCSS.pl                              |    2 
 inkscape-0.92.1~pre1/share/extensions/CMakeLists.txt                                |   12 
 inkscape-0.92.1~pre1/share/extensions/draw_from_triangle.py                         |   19 -
 inkscape-0.92.1~pre1/share/extensions/dxf_outlines.py                               |    2 
 inkscape-0.92.1~pre1/share/extensions/hpgl_input.py                                 |    2 
 inkscape-0.92.1~pre1/share/extensions/hpgl_output.py                                |    1 
 inkscape-0.92.1~pre1/share/extensions/interp.py                                     |    4 
 inkscape-0.92.1~pre1/share/extensions/measure.py                                    |    3 
 inkscape-0.92.1~pre1/share/extensions/perspective.py                                |    2 
 inkscape-0.92.1~pre1/share/extensions/plotter.py                                    |    2 
 inkscape-0.92.1~pre1/share/extensions/polyhedron_3d.py                              |    3 
 inkscape-0.92.1~pre1/share/extensions/run_command.py                                |    7 
 inkscape-0.92.1~pre1/share/extensions/uniconv-ext.py                                |    5 
 inkscape-0.92.1~pre1/share/extensions/uniconv_output.py                             |    5 
 inkscape-0.92.1~pre1/src/CMakeLists.txt                                             |    1 
 inkscape-0.92.1~pre1/src/Makefile_insert                                            |    2 
 inkscape-0.92.1~pre1/src/display/drawing-text.cpp                                   |    2 
 inkscape-0.92.1~pre1/src/display/snap-indicator.cpp                                 |    4 
 inkscape-0.92.1~pre1/src/document.cpp                                               |   14 
 inkscape-0.92.1~pre1/src/document.h                                                 |    9 
 inkscape-0.92.1~pre1/src/extension/internal/cdr-input.cpp                           |    7 
 inkscape-0.92.1~pre1/src/extension/internal/vsd-input.cpp                           |    7 
 inkscape-0.92.1~pre1/src/extension/internal/wpg-input.cpp                           |    7 
 inkscape-0.92.1~pre1/src/file-update.cpp                                            |  173 ++++++++++
 inkscape-0.92.1~pre1/src/file.cpp                                                   |    6 
 inkscape-0.92.1~pre1/src/file.h                                                     |    3 
 inkscape-0.92.1~pre1/src/inkscape-x64.rc                                            |    8 
 inkscape-0.92.1~pre1/src/inkscape.rc                                                |    8 
 inkscape-0.92.1~pre1/src/inkview-x64.rc                                             |    8 
 inkscape-0.92.1~pre1/src/inkview.rc                                                 |    8 
 inkscape-0.92.1~pre1/src/libuemf/uemf.h                                             |   24 +
 inkscape-0.92.1~pre1/src/live_effects/lpe-patternalongpath.cpp                      |   14 
 inkscape-0.92.1~pre1/src/live_effects/lpe-perspective-envelope.cpp                  |    2 
 inkscape-0.92.1~pre1/src/live_effects/lpe-transform_2pts.cpp                        |   14 
 inkscape-0.92.1~pre1/src/live_effects/lpe-transform_2pts.h                          |    2 
 inkscape-0.92.1~pre1/src/live_effects/parameter/originalpath.cpp                    |    2 
 inkscape-0.92.1~pre1/src/live_effects/parameter/originalpatharray.cpp               |    2 
 inkscape-0.92.1~pre1/src/live_effects/parameter/vector.cpp                          |    2 
 inkscape-0.92.1~pre1/src/main.cpp                                                   |   10 
 inkscape-0.92.1~pre1/src/resource-manager.cpp                                       |   12 
 inkscape-0.92.1~pre1/src/sp-item.cpp                                                |    1 
 inkscape-0.92.1~pre1/src/sp-object.cpp                                              |    4 
 inkscape-0.92.1~pre1/src/ui/clipboard.cpp                                           |   39 +-
 inkscape-0.92.1~pre1/src/ui/dialog/aboutbox.cpp                                     |    8 
 inkscape-0.92.1~pre1/src/ui/dialog/polar-arrange-tab.cpp                            |    4 
 inkscape-0.92.1~pre1/src/widgets/measure-toolbar.cpp                                |    2 
 inkscape-0.92.1~pre1/src/widgets/toolbox.cpp                                        |    5 
 inkscape-0.92.1~pre1/src/xml/rebase-hrefs.cpp                                       |    2 
 80 files changed, 423 insertions(+), 499 deletions(-)


diff -Nru inkscape-0.92.0/CMakeLists.txt inkscape-0.92.1~pre1/CMakeLists.txt
--- inkscape-0.92.0/CMakeLists.txt	2017-01-02 10:44:59.000000000 +0100
+++ inkscape-0.92.1~pre1/CMakeLists.txt	2017-02-04 00:47:22.000000000 +0100
@@ -19,7 +19,7 @@
 
 project(inkscape)
 
-set(INKSCAPE_VERSION 0.92.0)
+set(INKSCAPE_VERSION 0.92.1pre1)
 set(PROJECT_NAME inkscape)
 set(CMAKE_INCLUDE_CURRENT_DIR TRUE)
 
diff -Nru inkscape-0.92.0/CMakeScripts/inkscape-version.cmake inkscape-0.92.1~pre1/CMakeScripts/inkscape-version.cmake
--- inkscape-0.92.0/CMakeScripts/inkscape-version.cmake	2017-01-02 10:44:59.000000000 +0100
+++ inkscape-0.92.1~pre1/CMakeScripts/inkscape-version.cmake	2017-02-04 00:47:22.000000000 +0100
@@ -8,7 +8,7 @@
 # We should extract the version from build.xml
 # but for now just hard code
 
-set(INKSCAPE_REVISION "r15299")
+set(INKSCAPE_REVISION "r15355")
 set(INKSCAPE_CUSTOM "")
 
 if(EXISTS ${INKSCAPE_SOURCE_DIR}/.bzr/)
@@ -22,7 +22,7 @@
         OUTPUT_VARIABLE INKSCAPE_SOURCE_MODIFIED
         OUTPUT_STRIP_TRAILING_WHITESPACE)
     if(NOT INKSCAPE_SOURCE_MODIFIED STREQUAL "")
-        set(INKSCAPE_REVISION ${INKSCAPE_REVISION} " " ${INKSCAPE_CUSTOM})
+        set(INKSCAPE_REVISION "${INKSCAPE_REVISION} ${INKSCAPE_CUSTOM}")
     endif()
 endif()
 message("revision is " ${INKSCAPE_REVISION})
diff -Nru inkscape-0.92.0/configure.ac inkscape-0.92.1~pre1/configure.ac
--- inkscape-0.92.0/configure.ac	2017-01-02 10:44:59.000000000 +0100
+++ inkscape-0.92.1~pre1/configure.ac	2017-02-04 00:47:22.000000000 +0100
@@ -9,7 +9,7 @@
 # (whereas we always know what the previous version was called).
 #
 # Pre-releases are named "M.NNpreX" where X starts at 0 for the first alpha.
-AC_INIT([inkscape], [0.92.0],
+AC_INIT([inkscape], [0.92.1pre1],
         [http://bugs.launchpad.net/inkscape/+filebug],
         [inkscape],
         [http://inkscape.org/])
diff -Nru inkscape-0.92.0/debian/changelog inkscape-0.92.1~pre1/debian/changelog
--- inkscape-0.92.0/debian/changelog	2017-01-22 20:45:39.000000000 +0100
+++ inkscape-0.92.1~pre1/debian/changelog	2017-02-05 10:01:21.000000000 +0100
@@ -1,3 +1,10 @@
+inkscape (0.92.1~pre1-1) unstable; urgency=medium
+
+  * New upstream version 0.92.1~pre1.
+  * Remove patches applied upstream.
+
+ -- Mattia Rizzolo <mattia@debian.org>  Sun, 05 Feb 2017 10:01:21 +0100
+
 inkscape (0.92.0-4) unstable; urgency=medium
 
   * Backport more patches from upstream 0.92.x branch
diff -Nru inkscape-0.92.0/debian/patches/series inkscape-0.92.1~pre1/debian/patches/series
--- inkscape-0.92.0/debian/patches/series	2017-01-22 20:10:32.000000000 +0100
+++ inkscape-0.92.1~pre1/debian/patches/series	2017-02-05 10:00:29.000000000 +0100
@@ -1,10 +1,3 @@
 0001-Drop_PS_and_PDF_support_in_MimeType.patch
 0002-typos-libcroco.patch
 upstream/trunk/15400.patch
-upstream/0.92.x/15311.patch
-upstream/0.92.x/15309.patch
-upstream/0.92.x/15320.patch
-upstream/0.92.x/15323.patch
-upstream/0.92.x/15324.patch
-upstream/0.92.x/15325.patch
-upstream/0.92.x/15332.patch
diff -Nru inkscape-0.92.0/debian/patches/upstream/0.92.x/15309.patch inkscape-0.92.1~pre1/debian/patches/upstream/0.92.x/15309.patch
--- inkscape-0.92.0/debian/patches/upstream/0.92.x/15309.patch	2017-01-22 20:10:32.000000000 +0100
+++ inkscape-0.92.1~pre1/debian/patches/upstream/0.92.x/15309.patch	1970-01-01 01:00:00.000000000 +0100
@@ -1,24 +0,0 @@
-From: Mattia Rizzolo <mattia@debian.org>
-Date: Mon, 9 Jan 2017 12:57:31 +0100
-Subject: Suppress warnings on symbols dialog
-
-Origin: upstream, http://bazaar.launchpad.net/~inkscape.dev/inkscape/0.92.x/revision/15309
----
- src/sp-object.cpp | 4 +++-
- 1 file changed, 3 insertions(+), 1 deletion(-)
-
-diff --git a/src/sp-object.cpp b/src/sp-object.cpp
-index 3cb29c7..e93e246 100644
---- a/src/sp-object.cpp
-+++ b/src/sp-object.cpp
-@@ -702,7 +702,9 @@ void SPObject::build(SPDocument *document, Inkscape::XML::Node *repr) {
-     object->readAttr("xml:space");
-     object->readAttr("inkscape:label");
-     object->readAttr("inkscape:collect");
--    if(object->cloned)
-+    if(object->cloned && (repr->attribute("id")) ) // The cases where this happens are when the "original" has no id. This happens
-+                                                   // if it is a SPString (a TextNode, e.g. in a <title>), or when importing
-+                                                   // stuff externally modified to have no id.
-         object->clone_original = document->getObjectById(repr->attribute("id"));
- 
-     for (Inkscape::XML::Node *rchild = repr->firstChild() ; rchild != NULL; rchild = rchild->next()) {
diff -Nru inkscape-0.92.0/debian/patches/upstream/0.92.x/15311.patch inkscape-0.92.1~pre1/debian/patches/upstream/0.92.x/15311.patch
--- inkscape-0.92.0/debian/patches/upstream/0.92.x/15311.patch	2017-01-22 20:10:32.000000000 +0100
+++ inkscape-0.92.1~pre1/debian/patches/upstream/0.92.x/15311.patch	1970-01-01 01:00:00.000000000 +0100
@@ -1,73 +0,0 @@
-From: Mattia Rizzolo <mattia@debian.org>
-Date: Sat, 7 Jan 2017 22:43:27 +0100
-Subject: Fix typo in a variable name
-
-Bug: https://bugs.launchpad.net/inkscape/+bug/1653371
-Forwarded: https://code.launchpad.net/~mapreri/inkscape/typo/+merge/314287
-Applied: http://bazaar.launchpad.net/~inkscape.dev/inkscape/trunk/revision/15403
-Applied http://bazaar.launchpad.net/~inkscape.dev/inkscape/0.92.x/revision/15311
----
- src/live_effects/lpe-transform_2pts.cpp | 14 +++++++-------
- src/live_effects/lpe-transform_2pts.h   |  2 +-
- 2 files changed, 8 insertions(+), 8 deletions(-)
-
-diff --git a/src/live_effects/lpe-transform_2pts.cpp b/src/live_effects/lpe-transform_2pts.cpp
-index 3c4ce07..70458d9 100644
---- a/src/live_effects/lpe-transform_2pts.cpp
-+++ b/src/live_effects/lpe-transform_2pts.cpp
-@@ -36,7 +36,7 @@ LPETransform2Pts::LPETransform2Pts(LivePathEffectObject *lpeobject) :
-     flip_vertical(_("Flip vertical"), _("Flip vertical"), "flip_vertical", &wr, this, false,"", INKSCAPE_ICON("on"), INKSCAPE_ICON("off")),
-     start(_("Start"), _("Start point"), "start", &wr, this, "Start point"),
-     end(_("End"), _("End point"), "end", &wr, this, "End point"),
--    strech(_("Stretch"), _("Stretch the result"), "strech", &wr, this, 1),
-+    stretch(_("Stretch"), _("Stretch the result"), "stretch", &wr, this, 1),
-     offset(_("Offset"), _("Offset from knots"), "offset", &wr, this, 0),
-     first_knot(_("First Knot"), _("First Knot"), "first_knot", &wr, this, 1),
-     last_knot(_("Last Knot"), _("Last Knot"), "last_knot", &wr, this, 1),
-@@ -54,7 +54,7 @@ LPETransform2Pts::LPETransform2Pts(LivePathEffectObject *lpeobject) :
-     registerParameter(&first_knot);
-     registerParameter(&last_knot);
-     registerParameter(&helper_size);
--    registerParameter(&strech);
-+    registerParameter(&stretch);
-     registerParameter(&offset);
-     registerParameter(&start);
-     registerParameter(&end);
-@@ -75,9 +75,9 @@ LPETransform2Pts::LPETransform2Pts(LivePathEffectObject *lpeobject) :
-     offset.param_set_range(-999999.0, 999999.0);
-     offset.param_set_increments(1, 1);
-     offset.param_set_digits(2);
--    strech.param_set_range(0, 999.0);
--    strech.param_set_increments(0.01, 0.01);
--    strech.param_set_digits(4);
-+    stretch.param_set_range(0, 999.0);
-+    stretch.param_set_increments(0.01, 0.01);
-+    stretch.param_set_digits(4);
-     apply_to_clippath_and_mask = true;
- }
- 
-@@ -382,9 +382,9 @@ LPETransform2Pts::doEffect_pwd2 (Geom::Piecewise<Geom::D2<Geom::SBasis> > const
-         m *= Geom::Scale(-1,1);
-         m *= Geom::Rotate(original_angle);
-     }
--    if(strech != 1){
-+    if(stretch != 1){
-         m *= Geom::Rotate(-original_angle);
--        m *= Geom::Scale(1,strech);
-+        m *= Geom::Scale(1,stretch);
-         m *= Geom::Rotate(original_angle);
-     }
-     if(elastic) {
-diff --git a/src/live_effects/lpe-transform_2pts.h b/src/live_effects/lpe-transform_2pts.h
-index c20d562..0f88e6b 100644
---- a/src/live_effects/lpe-transform_2pts.h
-+++ b/src/live_effects/lpe-transform_2pts.h
-@@ -57,7 +57,7 @@ private:
-     ToggleButtonParam flip_vertical;
-     PointParam start;
-     PointParam end;
--    ScalarParam strech;
-+    ScalarParam stretch;
-     ScalarParam offset;
-     ScalarParam first_knot;
-     ScalarParam last_knot;
diff -Nru inkscape-0.92.0/debian/patches/upstream/0.92.x/15320.patch inkscape-0.92.1~pre1/debian/patches/upstream/0.92.x/15320.patch
--- inkscape-0.92.0/debian/patches/upstream/0.92.x/15320.patch	2017-01-22 20:10:32.000000000 +0100
+++ inkscape-0.92.1~pre1/debian/patches/upstream/0.92.x/15320.patch	1970-01-01 01:00:00.000000000 +0100
@@ -1,22 +0,0 @@
-From: Marc Jeanmougin <none>
-Date: Sun, 22 Jan 2017 18:52:01 +0100
-Subject: Fix regression on selecting objects after locking layers
-
-Origin: upstream, http://bazaar.launchpad.net/~inkscape.dev/inkscape/0.92.x/revision/15320
-Bug: https://launchpad.net/bugs/1656141
----
- src/sp-item.cpp | 1 +
- 1 file changed, 1 insertion(+)
-
-diff --git a/src/sp-item.cpp b/src/sp-item.cpp
-index a7453f4..3f2689e 100644
---- a/src/sp-item.cpp
-+++ b/src/sp-item.cpp
-@@ -132,6 +132,7 @@ void SPItem::setLocked(bool locked) {
-     setAttribute("sodipodi:insensitive",
-                  ( locked ? "1" : NULL ));
-     updateRepr();
-+    document->_emitModified();
- }
- 
- bool SPItem::isHidden() const {
diff -Nru inkscape-0.92.0/debian/patches/upstream/0.92.x/15323.patch inkscape-0.92.1~pre1/debian/patches/upstream/0.92.x/15323.patch
--- inkscape-0.92.0/debian/patches/upstream/0.92.x/15323.patch	2017-01-22 20:10:32.000000000 +0100
+++ inkscape-0.92.1~pre1/debian/patches/upstream/0.92.x/15323.patch	1970-01-01 01:00:00.000000000 +0100
@@ -1,38 +0,0 @@
-From: Jabiertxof <none>
-Date: Sun, 22 Jan 2017 18:52:01 +0100
-Subject: Fix crash on ungrouping in v0.92.
-
- A unnecesary call to update path effect hook the crash, not sure why but this
- call is unnecesary so I remove it
-Origin: upstream, http://bazaar.launchpad.net/~inkscape.dev/inkscape/0.92.x/revision/15323
-Bug: https://launchpad.net/bugs/1657591
----
- src/live_effects/lpe-patternalongpath.cpp | 1 -
- src/live_effects/parameter/vector.cpp     | 2 +-
- 2 files changed, 1 insertion(+), 2 deletions(-)
-
-diff --git a/src/live_effects/lpe-patternalongpath.cpp b/src/live_effects/lpe-patternalongpath.cpp
-index a6cade9..027676d 100644
---- a/src/live_effects/lpe-patternalongpath.cpp
-+++ b/src/live_effects/lpe-patternalongpath.cpp
-@@ -262,7 +262,6 @@ LPEPatternAlongPath::transform_multiply(Geom::Affine const& postmul, bool set)
-         pattern.param_transform_multiply(postmul, set);
-         pattern.write_to_SVG();
-     }
--    sp_lpe_item_update_patheffect (sp_lpe_item, false, true);
- }
- 
- void
-diff --git a/src/live_effects/parameter/vector.cpp b/src/live_effects/parameter/vector.cpp
-index cfaa9e7..9445905 100644
---- a/src/live_effects/parameter/vector.cpp
-+++ b/src/live_effects/parameter/vector.cpp
-@@ -117,7 +117,7 @@ VectorParam::set_and_write_new_values(Geom::Point const &new_origin, Geom::Point
- void
- VectorParam::param_transform_multiply(Geom::Affine const& postmul, bool /*set*/)
- {
--        set_and_write_new_values( origin * postmul, vector * postmul.withoutTranslation() );
-+    set_and_write_new_values( origin * postmul, vector * postmul.withoutTranslation() );
- }
- 
- 
diff -Nru inkscape-0.92.0/debian/patches/upstream/0.92.x/15324.patch inkscape-0.92.1~pre1/debian/patches/upstream/0.92.x/15324.patch
--- inkscape-0.92.0/debian/patches/upstream/0.92.x/15324.patch	2017-01-22 20:10:32.000000000 +0100
+++ inkscape-0.92.1~pre1/debian/patches/upstream/0.92.x/15324.patch	1970-01-01 01:00:00.000000000 +0100
@@ -1,65 +0,0 @@
-From: Jabiertxof <none>
-Date: Sun, 22 Jan 2017 18:52:01 +0100
-Subject: Fix nsane memory leak and crash with pattern along path
-
-Origin: upstream, http://bazaar.launchpad.net/~inkscape.dev/inkscape/0.92.x/revision/15324
-Bug: https://launchpad.net/bugs/1622388
----
- src/live_effects/lpe-patternalongpath.cpp | 13 ++++++++-----
- 1 file changed, 8 insertions(+), 5 deletions(-)
-
-diff --git a/src/live_effects/lpe-patternalongpath.cpp b/src/live_effects/lpe-patternalongpath.cpp
-index 027676d..51f9e08 100644
---- a/src/live_effects/lpe-patternalongpath.cpp
-+++ b/src/live_effects/lpe-patternalongpath.cpp
-@@ -11,6 +11,7 @@
- #include <2geom/bezier-to-sbasis.h>
- 
- #include "knotholder.h"
-+#include <cmath>
- #include <algorithm>
- using std::vector;
- 
-@@ -158,7 +159,7 @@ LPEPatternAlongPath::doEffect_pwd2 (Geom::Piecewise<Geom::D2<Geom::SBasis> > con
-         //        spacing.param_set_range(-pattBndsX.extent()*.9, Geom::infinity());
-         //    }
- 
--        y0+=noffset;
-+        y0 += noffset;
- 
-         std::vector<Geom::Piecewise<Geom::D2<Geom::SBasis> > > paths_in;
-         paths_in = split_at_discontinuities(pwd2_in);
-@@ -195,7 +196,7 @@ LPEPatternAlongPath::doEffect_pwd2 (Geom::Piecewise<Geom::D2<Geom::SBasis> > con
-                     
-                 case PAPCT_REPEATED_STRETCHED:
-                     // if uskeleton is closed:
--                    if(path_i.segs.front().at0() == path_i.segs.back().at1()){
-+                    if (are_near(path_i.segs.front().at0(), path_i.segs.back().at1())){
-                         nbCopies = std::max(1, static_cast<int>(std::floor((uskeleton.domain().extent() - toffset)/(pattBndsX->extent()+xspace))));
-                         pattBndsX = Interval(pattBndsX->min(),pattBndsX->max()+xspace);
-                         scaling = (uskeleton.domain().extent() - toffset)/(((double)nbCopies)*pattBndsX->extent());
-@@ -211,11 +212,13 @@ LPEPatternAlongPath::doEffect_pwd2 (Geom::Piecewise<Geom::D2<Geom::SBasis> > con
-                     return pwd2_in;
-             };
-             
-+            //Ceil to 6 decimals
-+            scaling = ceil(scaling * 1000000) / 1000000;
-             double pattWidth = pattBndsX->extent() * scaling;
-             
--            x*=scaling;
-+            x *= scaling;
-             if ( scale_y_rel.get_value() ) {
--                y*=(scaling * prop_scale);
-+                y *= prop_scale * scaling;
-             } else {
-                 y *= prop_scale;
-             }
-@@ -233,7 +236,7 @@ LPEPatternAlongPath::doEffect_pwd2 (Geom::Piecewise<Geom::D2<Geom::SBasis> > con
-                 offs+=pattWidth;
-             }
-         }
--        if (fuse_tolerance > 0){        
-+        if (fuse_tolerance > 0){
-             pre_output = fuse_nearby_ends(pre_output, fuse_tolerance);
-             for (unsigned i=0; i<pre_output.size(); i++){
-                 output.concat(pre_output[i]);
diff -Nru inkscape-0.92.0/debian/patches/upstream/0.92.x/15325.patch inkscape-0.92.1~pre1/debian/patches/upstream/0.92.x/15325.patch
--- inkscape-0.92.0/debian/patches/upstream/0.92.x/15325.patch	2017-01-22 20:10:32.000000000 +0100
+++ inkscape-0.92.1~pre1/debian/patches/upstream/0.92.x/15325.patch	1970-01-01 01:00:00.000000000 +0100
@@ -1,103 +0,0 @@
-From: Jabiertxof <none>
-Date: Sun, 22 Jan 2017 18:52:01 +0100
-Subject: Fixes bugs in copy LPE's
-
- #1656093:Paste path effect doesn't work on 0.92
- #1656527:Copy & paste of group with shaped path corrupts it, in v0.92
-Origin: upstream, http://bazaar.launchpad.net/~inkscape.dev/inkscape/0.92.x/revision/15325
-Bug: https://launchpad.net/bugs/1656093
-Bug: https://launchpad.net/bugs/1656527
----
- src/file.cpp         |  6 +++++-
- src/ui/clipboard.cpp | 39 ++++++++++++++++++++-------------------
- 2 files changed, 25 insertions(+), 20 deletions(-)
-
-diff --git a/src/file.cpp b/src/file.cpp
-index ad1b7e0..5b0e9d8 100644
---- a/src/file.cpp
-+++ b/src/file.cpp
-@@ -1522,8 +1522,12 @@ void sp_import_document(SPDesktop *desktop, SPDocument *clipdoc, bool in_place)
-     for (Inkscape::XML::Node *obj = clipboard->firstChild() ; obj ; obj = obj->next()) {
-     	if(target_document->getObjectById(obj->attribute("id"))) continue;
-         Inkscape::XML::Node *obj_copy = obj->duplicate(target_document->getReprDoc());
--        target_parent->appendChild(obj_copy);
-+        SPObject * pasted = desktop->currentLayer()->appendChildRepr(obj_copy);
-         Inkscape::GC::release(obj_copy);
-+        SPLPEItem * pasted_lpe_item = dynamic_cast<SPLPEItem *>(pasted);
-+        if (pasted_lpe_item){
-+            pasted_lpe_item->forkPathEffectsIfNecessary(1);
-+        } 
-         pasted_objects_not.push_back(obj_copy);
-     }
-     Inkscape::Selection *selection = desktop->getSelection();
-diff --git a/src/ui/clipboard.cpp b/src/ui/clipboard.cpp
-index 4edfa70..b1945af 100644
---- a/src/ui/clipboard.cpp
-+++ b/src/ui/clipboard.cpp
-@@ -655,7 +655,6 @@ Glib::ustring ClipboardManagerImpl::getShapeOrTextObjectId(SPDesktop *desktop)
-     return svgd;
- }
- 
--
- /**
-  * Iterate over a list of items and copy them to the clipboard.
-  */
-@@ -700,24 +699,6 @@ void ClipboardManagerImpl::_copySelection(Inkscape::Selection *selection)
-                 obj_copy = _copyNode(obj, _doc, _root);
-             else
-                 obj_copy = _copyNode(obj, _doc, _clipnode);
--            SPLPEItem *lpeitem = dynamic_cast<SPLPEItem *>(item);
--            if (lpeitem) {
--                Inkscape::SVGOStringStream os;
--                if (lpeitem->hasPathEffect()) {
--                    for (PathEffectList::iterator it = lpeitem->path_effect_list->begin(); it != lpeitem->path_effect_list->end(); ++it)
--                    {
--                        LivePathEffectObject *lpeobj = (*it)->lpeobject;
--                        if (lpeobj) {
--                            Inkscape::XML::Node * lpeobjcopy = _copyNode(lpeobj->getRepr(), _doc, _defs);
--                            gchar *new_conflict_id = sp_object_get_unique_id(lpeobj, lpeobj->getAttribute("id"));
--                            lpeobjcopy->setAttribute("id", new_conflict_id);
--                            g_free(new_conflict_id);
--                            os << "#" << lpeobjcopy->attribute("id") << ";";
--                        }
--                    }
--                }
--                obj_copy->setAttribute("inkscape:path-effect", os.str().c_str());
--            }
- 
-             // copy complete inherited style
-             SPCSSAttr *css = sp_repr_css_attr_inherited(obj, "style");
-@@ -750,6 +731,13 @@ void ClipboardManagerImpl::_copySelection(Inkscape::Selection *selection)
-             sp_repr_css_set(_clipnode, style, "style");
-             sp_repr_css_attr_unref(style);
-         }
-+        // copy path effect from the first path
-+        if (object) {
-+            gchar const *effect =object->getRepr()->attribute("inkscape:path-effect");
-+            if (effect) {
-+                _clipnode->setAttribute("inkscape:path-effect", effect);
-+            }
-+        }
-     }
- 
-     Geom::OptRect size = selection->visualBounds();
-@@ -852,6 +840,19 @@ void ClipboardManagerImpl::_copyUsedDefs(SPItem *item)
-         }
-     }
- 
-+    // For lpe items, copy lpe stack if applicable
-+    SPLPEItem *lpeitem = dynamic_cast<SPLPEItem *>(item);
-+    if (lpeitem) {
-+        if (lpeitem->hasPathEffect()) {
-+            for (PathEffectList::iterator it = lpeitem->path_effect_list->begin(); it != lpeitem->path_effect_list->end(); ++it){
-+                LivePathEffectObject *lpeobj = (*it)->lpeobject;
-+                if (lpeobj) {
-+                  _copyNode(lpeobj->getRepr(), _doc, _defs);
-+                }
-+            }
-+        }
-+    }
-+
-     // recurse
-     for (SPObject *o = item->children ; o != NULL ; o = o->next) {
-         SPItem *childItem = dynamic_cast<SPItem *>(o);
diff -Nru inkscape-0.92.0/debian/patches/upstream/0.92.x/15332.patch inkscape-0.92.1~pre1/debian/patches/upstream/0.92.x/15332.patch
--- inkscape-0.92.0/debian/patches/upstream/0.92.x/15332.patch	2017-01-22 20:10:32.000000000 +0100
+++ inkscape-0.92.1~pre1/debian/patches/upstream/0.92.x/15332.patch	1970-01-01 01:00:00.000000000 +0100
@@ -1,37 +0,0 @@
-From: Mattia Rizzolo <mattia@debian.org>
-Date: Sat, 7 Jan 2017 13:34:03 +0100
-Subject: Install non-executable scripts without executable bit
-
-Fixes lintian's executable-not-elf-or-script
-
-Forwarded: https://code.launchpad.net/~mapreri/inkscape/executable-not-elf-or-script/+merge/314278
-Applied: http://bazaar.launchpad.net/~inkscape.dev/inkscape/trunk/revision/15399
-Applied: http://bazaar.launchpad.net/~inkscape.dev/inkscape/0.92.x/revision/15332
----
- share/extensions/CMakeLists.txt | 12 +++++++++++-
- 1 file changed, 11 insertions(+), 1 deletion(-)
-
-diff --git a/share/extensions/CMakeLists.txt b/share/extensions/CMakeLists.txt
-index b311c6c..47dfbe0 100644
---- a/share/extensions/CMakeLists.txt
-+++ b/share/extensions/CMakeLists.txt
-@@ -26,8 +26,18 @@ file(GLOB _SCRIPTS
-       "*.sh"
-       "*.rb"
-     )
--
-+# These files don't need the +x bit
-+set(_SCRIPTS_NOEXEC
-+    "hersheydata.py"
-+    "hpgl_decoder.py"
-+    "hpgl_encoder.py"
-+    "simplepath.py"
-+    "simplestyle.py"
-+    "simpletransform.py"
-+)
-+list(REMOVE_ITEM _SCRIPTS ${_SCRIPTS_NOEXEC})
- install(PROGRAMS ${_SCRIPTS} DESTINATION ${INKSCAPE_SHARE_INSTALL}/extensions)
-+install(FILES ${_SCRIPTS_NOEXEC} DESTINATION ${INKSCAPE_SHARE_INSTALL}/extensions)
- 
- file(GLOB _FILES "alphabet_soup/*.svg")
- install(FILES ${_FILES} DESTINATION ${INKSCAPE_SHARE_INSTALL}/extensions/alphabet_soup)
diff -Nru inkscape-0.92.0/inkscape.pod inkscape-0.92.1~pre1/inkscape.pod
--- inkscape-0.92.0/inkscape.pod	2017-01-02 10:44:59.000000000 +0100
+++ inkscape-0.92.1~pre1/inkscape.pod	2017-02-04 00:47:22.000000000 +0100
@@ -63,6 +63,7 @@
     -z, --without-gui                 
 
         --vacuum-defs
+        --no-convert-text-baseline-spacing
 
         --g-fatal-warnings
 
@@ -342,6 +343,15 @@
 option is invoked in conjunction with --export-plain-svg, only the exported file
 will be affected.  If it is used alone, the specified file will be modified in place.
 
+=item B<--no-convert-text-baseline-spacing>
+
+Do not automatically fix text baselines in legacy (pre-0.92) files on
+opening.  Inkscape 0.92 adopts the CSS standard definition for the
+'line-height' property, which differs from past versions.  By default,
+the line height values in files created prior to Inkscape 0.92 will be
+adjusted on loading to preserve the intended text layout.  This command
+line option will skip that adjustment.
+
 =item B<-z>, B<--without-gui>
 
 Do not open the GUI (on Unix, do not use X server); only process the files from console.
diff -Nru inkscape-0.92.0/NEWS inkscape-0.92.1~pre1/NEWS
--- inkscape-0.92.0/NEWS	2017-01-02 10:44:59.000000000 +0100
+++ inkscape-0.92.1~pre1/NEWS	2017-02-04 00:47:22.000000000 +0100
@@ -1,11 +1,11 @@
-			     Inkscape 0.92
+                             Inkscape 0.92
 
-		     -~=  Released 2017-01-01  =~-
+                     -~=  Released 2017-01-01  =~-
 
 
 
 +----------------------------------------------------------------------+
-|			   Release Highlights                          |
+|                          Release Highlights                          |
 +----------------------------------------------------------------------+
 
   • Mesh Gradients are now supported.  See
@@ -31,7 +31,7 @@
 
 
 +----------------------------------------------------------------------+
-|			   Important Changes                           |
+|                          Important Changes                           |
 +----------------------------------------------------------------------+
 
   • The default resolution was changed from 90dpi to 96dpi, to match the
@@ -62,7 +62,7 @@
 
 
 +----------------------------------------------------------------------+
-|			  Manipulating Objects                         |
+|                         Manipulating Objects                         |
 +----------------------------------------------------------------------+
 
 Objects Dialog
@@ -110,7 +110,7 @@
 
 
 +----------------------------------------------------------------------+
-|				  Text                                 |
+|                                 Text                                 |
 +----------------------------------------------------------------------+
 
 Font Features
@@ -177,7 +177,7 @@
 
 
 +----------------------------------------------------------------------+
-|			   Live Path Effects                           |
+|                          Live Path Effects                           |
 +----------------------------------------------------------------------+
 
   • Now some suitable LPEs can be applied to clips and masks.
@@ -508,7 +508,7 @@
 
 
 +----------------------------------------------------------------------+
-|			    Import / Export                            |
+|                           Import / Export                            |
 +----------------------------------------------------------------------+
 
 Export PDF / EPS / PS
@@ -535,7 +535,7 @@
 
 
 +----------------------------------------------------------------------+
-|			       Extensions                              |
+|                              Extensions                              |
 +----------------------------------------------------------------------+
 
 New
@@ -604,7 +604,7 @@
 
 
 +----------------------------------------------------------------------+
-|			 Filters / Blend Modes                         |
+|                        Filters / Blend Modes                         |
 +----------------------------------------------------------------------+
 
 New Filters
@@ -635,7 +635,7 @@
 
 
 +----------------------------------------------------------------------+
-|			     Other dialogs                             |
+|                            Other dialogs                             |
 +----------------------------------------------------------------------+
 
 Document Properties: Licences
@@ -649,7 +649,7 @@
 
 
 +----------------------------------------------------------------------+
-|				 Menus                                 |
+|                                Menus                                 |
 +----------------------------------------------------------------------+
 
   • 'Resize page to selection' added to Edit menu, shortcut: Shift+Ctrl+R
@@ -663,7 +663,7 @@
 
 
 +----------------------------------------------------------------------+
-|			  Other user interface                         |
+|                         Other user interface                         |
 +----------------------------------------------------------------------+
 
 Node Snapping
@@ -702,7 +702,7 @@
 
 
 +----------------------------------------------------------------------+
-|			      SVG and CSS                              |
+|                             SVG and CSS                              |
 +----------------------------------------------------------------------+
 
   • The 'marker-orientation' property now recognizes units ('deg', 'rad',
@@ -737,7 +737,7 @@
 
 
 +----------------------------------------------------------------------+
-|			    New dependencies                           |
+|                           New dependencies                           |
 +----------------------------------------------------------------------+
 
   • The Paintbucket and Trace Bitmap tools now use an external copy of the
@@ -751,7 +751,7 @@
 
 
 +----------------------------------------------------------------------+
-|			      Translations                             |
+|                             Translations                             |
 +----------------------------------------------------------------------+
 
 New UI translations for Assamese, Bodo, Dogri, Gujarati, Hindi, Icelandic,
@@ -765,7 +765,7 @@
 
 
 +----------------------------------------------------------------------+
-|			    Notable Bugfixes                           |
+|                           Notable Bugfixes                           |
 +----------------------------------------------------------------------+
 
   • Severe performance issues on MS Windows, 64bit Inkscape builds on
@@ -804,7 +804,7 @@
 
 
 +----------------------------------------------------------------------+
-|			      Known Issues                             |
+|                             Known Issues                             |
 +----------------------------------------------------------------------+
 
   • Fonts that are loaded by font managing software on Windows are not
diff -Nru inkscape-0.92.0/setup/gui/inkscape.desktop inkscape-0.92.1~pre1/setup/gui/inkscape.desktop
--- inkscape-0.92.0/setup/gui/inkscape.desktop	2017-01-02 10:44:59.000000000 +0100
+++ inkscape-0.92.1~pre1/setup/gui/inkscape.desktop	2017-02-04 00:47:22.000000000 +0100
@@ -261,7 +261,7 @@
 Comment[pt_BR]=Crie e edite desenhos vetoriais escaláveis (SVG)
 Comment[pt]=Crie e edite imagens Gráficas Vectoriais Escalaveis
 Comment[ro]=Creează și editează imagini în format Scalable Vector Graphics
-Comment[ru]=Создание и редактирование масштабируемой векторной графики в формате SVG
+Comment[ru]=Создавайте и редактируйте масштабируемые векторные изображения
 Comment[sa]=माप्य-वेक्टर्-सुचित्रीय-चित्राणि उत्पाद्य सम्पादय 
 Comment[sat@deva]=नाप दाड़ेयाक् वेक्टर गार चिता़र आहला तेयार मे आर सासापड़ाव मे 
 Comment[sat]=ᱱᱟᱯ ᱫᱟᱲᱮᱭᱟᱜ ᱣᱮᱠᱴᱨ ᱜᱟᱨ ᱪᱤᱛᱟᱹᱨ ᱟᱦᱞᱟ ᱛᱮᱭᱟᱨ ᱢᱮ ᱟᱨ ᱥᱟᱥᱟᱯᱲᱟᱣ ᱢᱮ 
@@ -289,6 +289,7 @@
 Keywords[it]=immagine;editor;vettoriale;disegno;
 Keywords[lv]=attēls;redaktors;vektors;zīmējums;
 Keywords[nl]=image;editor;vector;drawing;
+Keywords[ru]=изображение;редактор;вектор;рисунок;
 Keywords[uk]=image;editor;vector;drawing;зображення;редактор;векторне;вектор;малювання;
 Keywords[zh_CN]=image;editor;vector;drawing;矢量;图像;编辑;编辑器;向量;绘图;
 Keywords=image;editor;vector;drawing;
diff -Nru inkscape-0.92.0/share/attributes/cssprops inkscape-0.92.1~pre1/share/attributes/cssprops
--- inkscape-0.92.0/share/attributes/cssprops	2017-01-02 10:44:59.000000000 +0100
+++ inkscape-0.92.1~pre1/share/attributes/cssprops	2017-02-04 00:47:22.000000000 +0100
@@ -86,7 +86,7 @@
 
 "lighting-color" - "feDiffuseLighting","feSpecularLighting"
 
-"line-height" - "text","flowRoot","flowPara"
+"line-height" - "text","tspan","flowRoot","flowPara"
 
 "marker" - "path","line","polyline","polygon","a","defs","glyph","g","marker","mask","missing-glyph","pattern","svg","switch","symbol","use"
 
diff -Nru inkscape-0.92.0/share/attributes/genMapDataCSS.pl inkscape-0.92.1~pre1/share/attributes/genMapDataCSS.pl
--- inkscape-0.92.0/share/attributes/genMapDataCSS.pl	2017-01-02 10:44:59.000000000 +0100
+++ inkscape-0.92.1~pre1/share/attributes/genMapDataCSS.pl	2017-02-04 00:47:22.000000000 +0100
@@ -173,7 +173,7 @@
 
 
 # Inkscape uses CSS property 'line-height' even though this is not part of SVG spec.
-push @{$properties{ "line-height" }->{elements}}, "text", "flowRoot", "flowPara";
+push @{$properties{ "line-height" }->{elements}}, "text", "tspan", "flowRoot", "flowPara";
 $properties{ "line-height" }->{default} = "NO DEFAULT";
 $properties{ "line-height" }->{inherit} = "no";
 
Binary files /tmp/WX8RRuENIs/inkscape-0.92.0/share/examples/car.svgz and /tmp/uf7QOdKsTV/inkscape-0.92.1~pre1/share/examples/car.svgz differ
Binary files /tmp/WX8RRuENIs/inkscape-0.92.0/share/examples/gallardo.svgz and /tmp/uf7QOdKsTV/inkscape-0.92.1~pre1/share/examples/gallardo.svgz differ
Binary files /tmp/WX8RRuENIs/inkscape-0.92.0/share/examples/gradient-mesh-experimental.svgz and /tmp/uf7QOdKsTV/inkscape-0.92.1~pre1/share/examples/gradient-mesh-experimental.svgz differ
Binary files /tmp/WX8RRuENIs/inkscape-0.92.0/share/examples/l-systems.svgz and /tmp/uf7QOdKsTV/inkscape-0.92.1~pre1/share/examples/l-systems.svgz differ
Binary files /tmp/WX8RRuENIs/inkscape-0.92.0/share/examples/stars.svgz and /tmp/uf7QOdKsTV/inkscape-0.92.1~pre1/share/examples/stars.svgz differ
diff -Nru inkscape-0.92.0/share/extensions/CMakeLists.txt inkscape-0.92.1~pre1/share/extensions/CMakeLists.txt
--- inkscape-0.92.0/share/extensions/CMakeLists.txt	2017-01-02 10:44:59.000000000 +0100
+++ inkscape-0.92.1~pre1/share/extensions/CMakeLists.txt	2017-02-04 00:47:22.000000000 +0100
@@ -26,8 +26,18 @@
       "*.sh"
       "*.rb"
     )
-
+# These files don't need the +x bit
+set(_SCRIPTS_NOEXEC
+    "hersheydata.py"
+    "hpgl_decoder.py"
+    "hpgl_encoder.py"
+    "simplepath.py"
+    "simplestyle.py"
+    "simpletransform.py"
+)
+list(REMOVE_ITEM _SCRIPTS ${_SCRIPTS_NOEXEC})
 install(PROGRAMS ${_SCRIPTS} DESTINATION ${INKSCAPE_SHARE_INSTALL}/extensions)
+install(FILES ${_SCRIPTS_NOEXEC} DESTINATION ${INKSCAPE_SHARE_INSTALL}/extensions)
 
 file(GLOB _FILES "alphabet_soup/*.svg")
 install(FILES ${_FILES} DESTINATION ${INKSCAPE_SHARE_INSTALL}/extensions/alphabet_soup)
diff -Nru inkscape-0.92.0/share/extensions/draw_from_triangle.py inkscape-0.92.1~pre1/share/extensions/draw_from_triangle.py
--- inkscape-0.92.0/share/extensions/draw_from_triangle.py	2017-01-02 10:44:59.000000000 +0100
+++ inkscape-0.92.1~pre1/share/extensions/draw_from_triangle.py	2017-02-04 00:47:22.000000000 +0100
@@ -176,16 +176,17 @@
 def report_properties( params ):#report to the Inkscape console using errormsg
     # TODO: unit identifier needs solution for arbitrary document scale
     unit = Draw_From_Triangle.getDocumentUnit(e)
-    inkex.errormsg(_("Side Length 'a' (" + unit + "): " + str( params[0][0] ) ))
-    inkex.errormsg(_("Side Length 'b' (" + unit + "): " + str( params[0][1] ) ))
-    inkex.errormsg(_("Side Length 'c' (" + unit + "): " + str( params[0][2] ) ))
-    inkex.errormsg(_("Angle 'A' (radians): " + str( params[1][0] ) ))
-    inkex.errormsg(_("Angle 'B' (radians): " + str( params[1][1] ) ))
-    inkex.errormsg(_("Angle 'C' (radians): " + str( params[1][2] ) ))
-    inkex.errormsg(_("Semiperimeter (px): " + str( params[4][1] ) ))
-    inkex.errormsg(_("Area ("+ unit + "^2): " + str( params[4][0] ) ))
+
+    inkex.errormsg(_("Side Length 'a' ({0}): {1}").format(unit, str(params[0][0])) )
+    inkex.errormsg(_("Side Length 'b' ({0}): {1}").format(unit, str(params[0][1])) )
+    inkex.errormsg(_("Side Length 'c' ({0}): {1}").format(unit, str(params[0][2])) )
+    inkex.errormsg(_("Angle 'A' (radians): {}").format(str(params[1][0])) )
+    inkex.errormsg(_("Angle 'B' (radians): {}").format(str(params[1][1])) )
+    inkex.errormsg(_("Angle 'C' (radians): {}").format(params[1][2]) )
+    inkex.errormsg(_("Semiperimeter (px): {}").format(params[4][1]) )
+    inkex.errormsg(_("Area ({0}^2): {1}").format(unit, str(params[4][0])) )
     return
-    
+
 
 class Style(object): #container for style information
     def __init__(self, options):
diff -Nru inkscape-0.92.0/share/extensions/dxf_outlines.py inkscape-0.92.1~pre1/share/extensions/dxf_outlines.py
--- inkscape-0.92.0/share/extensions/dxf_outlines.py	2017-01-02 10:44:59.000000000 +0100
+++ inkscape-0.92.1~pre1/share/extensions/dxf_outlines.py	2017-02-04 00:47:22.000000000 +0100
@@ -44,6 +44,8 @@
     from numpy import *
     from numpy.linalg import solve
 except:
+    # Initialize gettext for messages outside an inkex derived class
+    inkex.localize() 
     inkex.errormsg(_("Failed to import the numpy or numpy.linalg modules. These modules are required by this extension. Please install them and try again."))
     inkex.sys.exit()
 
diff -Nru inkscape-0.92.0/share/extensions/hpgl_input.py inkscape-0.92.1~pre1/share/extensions/hpgl_input.py
--- inkscape-0.92.0/share/extensions/hpgl_input.py	2017-01-02 10:44:59.000000000 +0100
+++ inkscape-0.92.1~pre1/share/extensions/hpgl_input.py	2017-02-04 00:47:22.000000000 +0100
@@ -26,6 +26,8 @@
 import inkex
 import sys
 
+inkex.localize()
+
 # parse options
 parser = inkex.optparse.OptionParser(usage='usage: %prog [options] HPGLfile', option_class=inkex.InkOption)
 parser.add_option('--resolutionX',   action='store', type='float',   dest='resolutionX',   default=1016.0,  help='Resolution X (dpi)')
diff -Nru inkscape-0.92.0/share/extensions/hpgl_output.py inkscape-0.92.1~pre1/share/extensions/hpgl_output.py
--- inkscape-0.92.0/share/extensions/hpgl_output.py	2017-01-02 10:44:59.000000000 +0100
+++ inkscape-0.92.1~pre1/share/extensions/hpgl_output.py	2017-02-04 00:47:22.000000000 +0100
@@ -24,7 +24,6 @@
 import hpgl_encoder
 import inkex
 
-
 class HpglOutput(inkex.Effect):
 
     def __init__(self):
diff -Nru inkscape-0.92.0/share/extensions/interp.py inkscape-0.92.1~pre1/share/extensions/interp.py
--- inkscape-0.92.0/share/extensions/interp.py	2017-01-02 10:44:59.000000000 +0100
+++ inkscape-0.92.1~pre1/share/extensions/interp.py	2017-02-04 00:47:22.000000000 +0100
@@ -110,8 +110,8 @@
 
     def tweenstyleunit(self, property, start, end, time): # moved here so we can call 'unittouu'
         scale = self.unittouu('1px')
-        sp = self.unittouu(start[property]) / scale
-        ep = self.unittouu(end[property]) / scale
+        sp = self.unittouu(start.get(property, '1px')) / scale
+        ep = self.unittouu(end.get(property, '1px')) / scale
         return str(sp + (time * (ep - sp)))
 
     def effect(self):
diff -Nru inkscape-0.92.0/share/extensions/measure.py inkscape-0.92.1~pre1/share/extensions/measure.py
--- inkscape-0.92.0/share/extensions/measure.py	2017-01-02 10:44:59.000000000 +0100
+++ inkscape-0.92.1~pre1/share/extensions/measure.py	2017-02-04 00:47:22.000000000 +0100
@@ -51,6 +51,9 @@
 except locale.Error:
     locale.setlocale(locale.LC_ALL, 'C')
 
+# Initialize gettext for messages outside an inkex derived class
+inkex.localize() 
+
 # third party
 try:
     import numpy
diff -Nru inkscape-0.92.0/share/extensions/perspective.py inkscape-0.92.1~pre1/share/extensions/perspective.py
--- inkscape-0.92.0/share/extensions/perspective.py	2017-01-02 10:44:59.000000000 +0100
+++ inkscape-0.92.1~pre1/share/extensions/perspective.py	2017-02-04 00:47:22.000000000 +0100
@@ -39,6 +39,8 @@
     from numpy import *
     from numpy.linalg import *
 except:
+    # Initialize gettext for messages outside an inkex derived class
+    inkex.localize() 
     inkex.errormsg(_("Failed to import the numpy or numpy.linalg modules. These modules are required by this extension. Please install them and try again.  On a Debian-like system this can be done with the command, sudo apt-get install python-numpy."))
     exit()
 
diff -Nru inkscape-0.92.0/share/extensions/plotter.py inkscape-0.92.1~pre1/share/extensions/plotter.py
--- inkscape-0.92.0/share/extensions/plotter.py	2017-01-02 10:44:59.000000000 +0100
+++ inkscape-0.92.1~pre1/share/extensions/plotter.py	2017-02-04 00:47:22.000000000 +0100
@@ -196,7 +196,7 @@
         try:
             mySerial.open()
         except Exception as inst:
-            if 'ould not open port' in inst.args[0]:
+            if 'ould not open port' in inst.strerror:
                 inkex.errormsg(_("Could not open port. Please check that your plotter is running, connected and the settings are correct."))
                 return
             else:
diff -Nru inkscape-0.92.0/share/extensions/polyhedron_3d.py inkscape-0.92.1~pre1/share/extensions/polyhedron_3d.py
--- inkscape-0.92.0/share/extensions/polyhedron_3d.py	2017-01-02 10:44:59.000000000 +0100
+++ inkscape-0.92.1~pre1/share/extensions/polyhedron_3d.py	2017-02-04 00:47:22.000000000 +0100
@@ -57,6 +57,9 @@
 import simplestyle
 from simpletransform import computePointInNode
 
+# Initialize gettext for messages outside an inkex derived class
+inkex.localize() 
+
 # third party
 try:
     from numpy import *
diff -Nru inkscape-0.92.0/share/extensions/run_command.py inkscape-0.92.1~pre1/share/extensions/run_command.py
--- inkscape-0.92.0/share/extensions/run_command.py	2017-01-02 10:44:59.000000000 +0100
+++ inkscape-0.92.1~pre1/share/extensions/run_command.py	2017-02-04 00:47:22.000000000 +0100
@@ -61,8 +61,11 @@
             except ImportError:
                 # shouldn't happen...
                 msg = "Neither subprocess.Popen nor popen2.Popen3 is available"
-        if rc and msg is None:
-            msg = "%s failed:\n%s\n%s\n" % (prog_name, out, err)
+        if msg is None:
+            if rc:
+                msg = "%s failed:\n%s\n%s\n" % (prog_name, out, err)
+            elif err:
+                sys.stderr.write("%s executed but logged the following error:\n%s\n%s\n" % (prog_name, out, err))
     except Exception, inst:
         msg = "Error attempting to run %s: %s" % (prog_name, str(inst))
 
diff -Nru inkscape-0.92.0/share/extensions/uniconv-ext.py inkscape-0.92.1~pre1/share/extensions/uniconv-ext.py
--- inkscape-0.92.0/share/extensions/uniconv-ext.py	2017-01-02 10:44:59.000000000 +0100
+++ inkscape-0.92.1~pre1/share/extensions/uniconv-ext.py	2017-02-04 00:47:22.000000000 +0100
@@ -51,10 +51,11 @@
         import imp
         imp.find_module("uniconvertor")
     except ImportError:
-        sys.stderr.write(_('You need to install the UniConvertor software.\n'+\
+        inkex.localize()
+        inkex.errormsg(_('You need to install the UniConvertor software.\n'+\
                      'For GNU/Linux: install the package python-uniconvertor.\n'+\
                      'For Windows: download it from\n'+\
-                     'http://sk1project.org/modules.php?name=Products&product=uniconvertor\n'+\
+                     'https://sk1project.net/modules.php?name=Products&product=uniconvertor&op=download\n'+\
                      'and install into your Inkscape\'s Python location\n'))
         sys.exit(1)
     cmd = 'python -c "import uniconvertor; uniconvertor.uniconv_run()"'
diff -Nru inkscape-0.92.0/share/extensions/uniconv_output.py inkscape-0.92.1~pre1/share/extensions/uniconv_output.py
--- inkscape-0.92.0/share/extensions/uniconv_output.py	2017-01-02 10:44:59.000000000 +0100
+++ inkscape-0.92.1~pre1/share/extensions/uniconv_output.py	2017-02-04 00:47:22.000000000 +0100
@@ -118,10 +118,11 @@
             import imp
             imp.find_module("uniconvertor")
         except ImportError:
-            sys.stderr.write(_('You need to install the UniConvertor software.\n'+\
+            inkex.localize()
+            inkex.errormsg(_('You need to install the UniConvertor software.\n'+\
                          'For GNU/Linux: install the package python-uniconvertor.\n'+\
                          'For Windows: download it from\n'+\
-                         'http://sk1project.org/modules.php?name=Products&product=uniconvertor\n'+\
+                         'https://sk1project.net/modules.php?name=Products&product=uniconvertor&op=download\n'+\
                          'and install into your Inkscape\'s Python location\n'))
             sys.exit(1)
         cmd = 'python -c "import uniconvertor; uniconvertor.uniconv_run();"'
Binary files /tmp/WX8RRuENIs/inkscape-0.92.0/share/tutorials/pixelart-dialog.de.png and /tmp/uf7QOdKsTV/inkscape-0.92.1~pre1/share/tutorials/pixelart-dialog.de.png differ
Binary files /tmp/WX8RRuENIs/inkscape-0.92.0/share/tutorials/pixelart-dialog.el.png and /tmp/uf7QOdKsTV/inkscape-0.92.1~pre1/share/tutorials/pixelart-dialog.el.png differ
Binary files /tmp/WX8RRuENIs/inkscape-0.92.0/share/tutorials/pixelart-dialog.en.png and /tmp/uf7QOdKsTV/inkscape-0.92.1~pre1/share/tutorials/pixelart-dialog.en.png differ
Binary files /tmp/WX8RRuENIs/inkscape-0.92.0/share/tutorials/pixelart-dialog.fr.png and /tmp/uf7QOdKsTV/inkscape-0.92.1~pre1/share/tutorials/pixelart-dialog.fr.png differ
Binary files /tmp/WX8RRuENIs/inkscape-0.92.0/share/tutorials/pixelart-dialog.nl.png and /tmp/uf7QOdKsTV/inkscape-0.92.1~pre1/share/tutorials/pixelart-dialog.nl.png differ
Binary files /tmp/WX8RRuENIs/inkscape-0.92.0/share/tutorials/pixelart-dialog.png and /tmp/uf7QOdKsTV/inkscape-0.92.1~pre1/share/tutorials/pixelart-dialog.png differ
Binary files /tmp/WX8RRuENIs/inkscape-0.92.0/share/tutorials/pixelart-dialog.pt.png and /tmp/uf7QOdKsTV/inkscape-0.92.1~pre1/share/tutorials/pixelart-dialog.pt.png differ
Binary files /tmp/WX8RRuENIs/inkscape-0.92.0/share/tutorials/pixelart-dialog.ru.png and /tmp/uf7QOdKsTV/inkscape-0.92.1~pre1/share/tutorials/pixelart-dialog.ru.png differ
Binary files /tmp/WX8RRuENIs/inkscape-0.92.0/share/tutorials/pixelart-dialog.sk.png and /tmp/uf7QOdKsTV/inkscape-0.92.1~pre1/share/tutorials/pixelart-dialog.sk.png differ
Binary files /tmp/WX8RRuENIs/inkscape-0.92.0/share/tutorials/pixelart-dialog.zh_TW.png and /tmp/uf7QOdKsTV/inkscape-0.92.1~pre1/share/tutorials/pixelart-dialog.zh_TW.png differ
diff -Nru inkscape-0.92.0/.snapcraft.yaml inkscape-0.92.1~pre1/.snapcraft.yaml
--- inkscape-0.92.0/.snapcraft.yaml	2017-01-02 10:44:59.000000000 +0100
+++ inkscape-0.92.1~pre1/.snapcraft.yaml	2017-02-04 00:47:22.000000000 +0100
@@ -1,5 +1,5 @@
 name: inkscape
-version: 0.92.0
+version: 0.92.1pre1
 summary: Vector Graphics Editor
 description: |
  An Open Source vector graphics editor, with capabilities similar to
diff -Nru inkscape-0.92.0/src/CMakeLists.txt inkscape-0.92.1~pre1/src/CMakeLists.txt
--- inkscape-0.92.0/src/CMakeLists.txt	2017-01-02 10:44:59.000000000 +0100
+++ inkscape-0.92.1~pre1/src/CMakeLists.txt	2017-02-04 00:47:22.000000000 +0100
@@ -202,6 +202,7 @@
   event-log.cpp
   extract-uri.cpp
   file.cpp
+  file-update.cpp
   filter-chemistry.cpp
   filter-enums.cpp
   gc-anchored.cpp
diff -Nru inkscape-0.92.0/src/display/drawing-text.cpp inkscape-0.92.1~pre1/src/display/drawing-text.cpp
--- inkscape-0.92.0/src/display/drawing-text.cpp	2017-01-02 10:44:59.000000000 +0100
+++ inkscape-0.92.1~pre1/src/display/drawing-text.cpp	2017-02-04 00:47:22.000000000 +0100
@@ -599,7 +599,7 @@
         }
         {
             Inkscape::DrawingContext::Save save(dc);
-            if (!_style || ! _style->vector_effect.computed == SP_VECTOR_EFFECT_NON_SCALING_STROKE) {
+            if (!_style || !(_style->vector_effect.computed == SP_VECTOR_EFFECT_NON_SCALING_STROKE)) {
                 dc.transform(_ctm);
             }
             if (has_stroke) {
diff -Nru inkscape-0.92.0/src/display/snap-indicator.cpp inkscape-0.92.1~pre1/src/display/snap-indicator.cpp
--- inkscape-0.92.0/src/display/snap-indicator.cpp	2017-01-02 10:44:59.000000000 +0100
+++ inkscape-0.92.1~pre1/src/display/snap-indicator.cpp	2017-02-04 00:47:22.000000000 +0100
@@ -287,7 +287,7 @@
         } else if (p.getSource() != SNAPSOURCE_UNDEFINED) {
             tooltip_str = g_strdup(source_name);
         }
-        double fontsize = prefs->getInt("/tools/measure/fontsize");
+        double fontsize = prefs->getDouble("/tools/measure/fontsize", 10.0);
 
         if (tooltip_str) {
             Geom::Point tooltip_pos = p.getPoint();
@@ -327,7 +327,7 @@
             SP_CTRLRECT(box)->setDashed(true);
             SP_CTRLRECT(box)->pickable = false;  // See the extensive comment above
             sp_canvas_item_move_to_z(box, 0);
-            _snaptarget_bbox = _desktop->add_temporary_canvasitem(box, timeout_val);
+            _snaptarget_bbox = _desktop->add_temporary_canvasitem(box, timeout_val*1000.0);
         }
     }
 }
diff -Nru inkscape-0.92.0/src/document.cpp inkscape-0.92.1~pre1/src/document.cpp
--- inkscape-0.92.0/src/document.cpp	2017-01-02 10:44:59.000000000 +0100
+++ inkscape-0.92.1~pre1/src/document.cpp	2017-02-04 00:47:22.000000000 +0100
@@ -50,6 +50,7 @@
 #include "display/drawing-item.h"
 #include "document-private.h"
 #include "document-undo.h"
+#include "file.h"
 #include "id-clash.h"
 #include "inkscape.h"
 #include "inkscape-version.h"
@@ -78,7 +79,7 @@
 // since we want it to happen when there are no more updates.
 #define SP_DOCUMENT_REROUTING_PRIORITY (G_PRIORITY_HIGH_IDLE - 1)
 
-
+bool sp_no_convert_text_baseline_spacing = false;
 static gint sp_document_idle_handler(gpointer data);
 static gint sp_document_rerouting_handler(gpointer data);
 
@@ -453,6 +454,17 @@
     ));
     document->oldSignalsConnected = true;
 
+    /** Fix baseline spacing (pre-92 files) **/
+    if ( (!sp_no_convert_text_baseline_spacing)
+         && sp_version_inside_range( document->root->version.inkscape, 0, 1, 0, 92 ) ) {
+        sp_file_convert_text_baseline_spacing(document);
+    }
+
+    /** Fix font names in legacy documents (pre-92 files) **/
+    if ( sp_version_inside_range( document->root->version.inkscape, 0, 1, 0, 92 ) ) {
+        sp_file_convert_font_name(document);
+    }
+
     return document;
 }
 
diff -Nru inkscape-0.92.0/src/document.h inkscape-0.92.1~pre1/src/document.h
--- inkscape-0.92.0/src/document.h	2017-01-02 10:44:59.000000000 +0100
+++ inkscape-0.92.1~pre1/src/document.h	2017-02-04 00:47:22.000000000 +0100
@@ -30,6 +30,15 @@
 #include <set>
 #include <deque>
 
+// This variable is introduced with 0.92.1
+// with the introduction of automatic fix 
+// for files detected to have been created 
+// with previous versions to have a similar
+// look in 0.92+.
+extern bool sp_no_convert_text_baseline_spacing;
+
+
+
 namespace Avoid {
 class Router;
 }
diff -Nru inkscape-0.92.0/src/extension/internal/cdr-input.cpp inkscape-0.92.1~pre1/src/extension/internal/cdr-input.cpp
--- inkscape-0.92.0/src/extension/internal/cdr-input.cpp	2017-01-02 10:44:59.000000000 +0100
+++ inkscape-0.92.1~pre1/src/extension/internal/cdr-input.cpp	2017-02-04 00:47:22.000000000 +0100
@@ -223,6 +223,13 @@
 
 SPDocument *CdrInput::open(Inkscape::Extension::Input * /*mod*/, const gchar * uri)
 {
+     #ifdef WIN32
+          // RVNGFileStream uses fopen() internally which unfortunately only uses ANSI encoding on Windows
+          // therefore attempt to convert uri to the system codepage
+          // even if this is not possible the alternate short (8.3) file name will be used if available
+          uri = g_win32_locale_filename_from_utf8(uri);
+     #endif
+
      RVNGFileStream input(uri);
 
      if (!libcdr::CDRDocument::isSupported(&input)) {
diff -Nru inkscape-0.92.0/src/extension/internal/vsd-input.cpp inkscape-0.92.1~pre1/src/extension/internal/vsd-input.cpp
--- inkscape-0.92.0/src/extension/internal/vsd-input.cpp	2017-01-02 10:44:59.000000000 +0100
+++ inkscape-0.92.1~pre1/src/extension/internal/vsd-input.cpp	2017-02-04 00:47:22.000000000 +0100
@@ -226,6 +226,13 @@
 
 SPDocument *VsdInput::open(Inkscape::Extension::Input * /*mod*/, const gchar * uri)
 {
+     #ifdef WIN32
+          // RVNGFileStream uses fopen() internally which unfortunately only uses ANSI encoding on Windows
+          // therefore attempt to convert uri to the system codepage
+          // even if this is not possible the alternate short (8.3) file name will be used if available
+          uri = g_win32_locale_filename_from_utf8(uri);
+     #endif
+
      RVNGFileStream input(uri);
 
      if (!libvisio::VisioDocument::isSupported(&input)) {
diff -Nru inkscape-0.92.0/src/extension/internal/wpg-input.cpp inkscape-0.92.1~pre1/src/extension/internal/wpg-input.cpp
--- inkscape-0.92.0/src/extension/internal/wpg-input.cpp	2017-01-02 10:44:59.000000000 +0100
+++ inkscape-0.92.1~pre1/src/extension/internal/wpg-input.cpp	2017-02-04 00:47:22.000000000 +0100
@@ -81,6 +81,13 @@
 
 SPDocument *WpgInput::open(Inkscape::Extension::Input * /*mod*/, const gchar * uri)
 {
+    #ifdef WIN32
+        // RVNGFileStream uses fopen() internally which unfortunately only uses ANSI encoding on Windows
+        // therefore attempt to convert uri to the system codepage
+        // even if this is not possible the alternate short (8.3) file name will be used if available
+        uri = g_win32_locale_filename_from_utf8(uri);
+    #endif
+
     RVNGInputStream* input = new RVNGFileStream(uri);
 #if WITH_LIBWPG03
     if (input->isStructured()) {
diff -Nru inkscape-0.92.0/src/file.cpp inkscape-0.92.1~pre1/src/file.cpp
--- inkscape-0.92.0/src/file.cpp	2017-01-02 10:44:59.000000000 +0100
+++ inkscape-0.92.1~pre1/src/file.cpp	2017-02-04 00:47:22.000000000 +0100
@@ -1522,8 +1522,12 @@
     for (Inkscape::XML::Node *obj = clipboard->firstChild() ; obj ; obj = obj->next()) {
     	if(target_document->getObjectById(obj->attribute("id"))) continue;
         Inkscape::XML::Node *obj_copy = obj->duplicate(target_document->getReprDoc());
-        target_parent->appendChild(obj_copy);
+        SPObject * pasted = desktop->currentLayer()->appendChildRepr(obj_copy);
         Inkscape::GC::release(obj_copy);
+        SPLPEItem * pasted_lpe_item = dynamic_cast<SPLPEItem *>(pasted);
+        if (pasted_lpe_item){
+            pasted_lpe_item->forkPathEffectsIfNecessary(1);
+        } 
         pasted_objects_not.push_back(obj_copy);
     }
     Inkscape::Selection *selection = desktop->getSelection();
diff -Nru inkscape-0.92.0/src/file.h inkscape-0.92.1~pre1/src/file.h
--- inkscape-0.92.0/src/file.h	2017-01-02 10:44:59.000000000 +0100
+++ inkscape-0.92.1~pre1/src/file.h	2017-02-04 00:47:22.000000000 +0100
@@ -203,7 +203,8 @@
  * clean unused defs out of file
  */
 void sp_file_vacuum (SPDocument *doc);
-
+void sp_file_convert_text_baseline_spacing(SPDocument *doc);
+void sp_file_convert_font_name(SPDocument *doc);
 
 #endif // SEEN_SP_FILE_H
 
diff -Nru inkscape-0.92.0/src/file-update.cpp inkscape-0.92.1~pre1/src/file-update.cpp
--- inkscape-0.92.0/src/file-update.cpp	1970-01-01 01:00:00.000000000 +0100
+++ inkscape-0.92.1~pre1/src/file-update.cpp	2017-02-04 00:47:22.000000000 +0100
@@ -0,0 +1,173 @@
+/**
+ * @file-update
+ * Operations to bump files from the pre-0.92 era into the 0.92+ era
+ * (90dpi vs 96dpi, line height problems, and related bugs)
+ */
+/* Authors:
+ * Tavmjong Bah
+ * Marc Jeanmougin
+ * su_v
+ */
+#include "file.h"
+#include "sp-root.h"
+#include "sp-text.h"
+#include "sp-tspan.h"
+#include "sp-flowdiv.h"
+#include "sp-flowtext.h"
+#include "sp-object.h"
+#include "sp-item.h"
+#include "style.h"
+#include "document.h"
+#include <string>
+#include "text-editing.h"
+
+using namespace std;
+
+bool is_line(SPObject *i)
+{
+    if (!(i->getAttribute("sodipodi:role")))
+        return false;
+    return !strcmp(i->getAttribute("sodipodi:role"), "line");
+}
+
+
+void fix_blank_line(SPObject *o)
+{
+    if (SP_IS_TEXT(o))
+        ((SPText *)o)->rebuildLayout();
+    else if (SP_IS_FLOWTEXT(o))
+        ((SPFlowtext *)o)->rebuildLayout();
+
+    SPIFontSize fontsize = o->style->font_size;
+    SPILengthOrNormal lineheight = o->style->line_height;
+    vector<SPObject *> cl = o->childList(false);
+    bool beginning = true;
+    for (vector<SPObject *>::const_iterator ci = cl.begin(); ci != cl.end(); ++ci) {
+        SPObject *i = *ci;
+        if ((SP_IS_TSPAN(i) && is_line(i)) || SP_IS_FLOWPARA(i)) {
+            if (sp_text_get_length((SPItem *)i) <= 1) { // empty line
+                Inkscape::Text::Layout::iterator pos = te_get_layout((SPItem*)(o))->charIndexToIterator(
+                        (SP_IS_FLOWPARA(i)?0:((ci==cl.begin())?0:1)) + sp_text_get_length_upto(o,i) );
+                sp_te_insert((SPItem *)o, pos, "\u00a0"); //"\u00a0"
+                gchar *l = g_strdup_printf("%f", lineheight.value);
+                gchar *f = g_strdup_printf("%f", fontsize.value);
+                i->style->line_height.readIfUnset(l);
+                if (!beginning)
+                    i->style->font_size.read(f);
+                else
+                    i->style->font_size.readIfUnset(f);
+                g_free(l);
+                g_free(f);
+            } else {
+                beginning = false;
+                fontsize = i->style->font_size;
+                lineheight = o->style->line_height;
+            }
+        }
+    }
+}
+
+void fix_line_spacing(SPObject *o)
+{
+    SPILengthOrNormal lineheight = o->style->line_height;
+    bool inner = false;
+    vector<SPObject *> cl = o->childList(false);
+    for (vector<SPObject *>::const_iterator ci = cl.begin(); ci != cl.end(); ++ci) {
+        SPObject *i = *ci;
+        if ((SP_IS_TSPAN(i) && is_line(i)) || SP_IS_FLOWPARA(i)) {
+            // if no line-height attribute, set it
+            gchar *l = g_strdup_printf("%f", lineheight.value);
+            i->style->line_height.readIfUnset(l);
+            g_free(l);
+        }
+        inner = true;
+    }
+    if (inner) {
+        if (SP_IS_TEXT(o)) {
+            o->style->line_height.read("0.00%");
+        } else {
+            o->style->line_height.read("0.01%");
+        }
+    }
+}
+
+void fix_font_name(SPObject *o)
+{
+    vector<SPObject *> cl = o->childList(false);
+    for (vector<SPObject *>::const_iterator ci = cl.begin(); ci != cl.end(); ++ci)
+        fix_font_name(*ci);
+    string prev = o->style->font_family.value ? o->style->font_family.value : o->style->font_family.value_default;
+    if (prev == "Sans")
+        o->style->font_family.read("sans-serif");
+    else if (prev == "Serif")
+        o->style->font_family.read("serif");
+    else if (prev == "Monospace")
+        o->style->font_family.read("monospace");
+}
+
+
+void fix_font_size(SPObject *o)
+{
+    SPIFontSize fontsize = o->style->font_size;
+    if (!fontsize.set)
+        return;
+    bool inner = false;
+    vector<SPObject *> cl = o->childList(false);
+    for (vector<SPObject *>::const_iterator ci = cl.begin(); ci != cl.end(); ++ci) {
+        SPObject *i = *ci;
+        fix_font_size(i);
+        if ((SP_IS_TSPAN(i) && is_line(i)) || SP_IS_FLOWPARA(i)) {
+            inner = true;
+            gchar *s = g_strdup_printf("%f", fontsize.value);
+            if (fontsize.set)
+                i->style->font_size.readIfUnset(s);
+            g_free(s);
+        }
+    }
+    if (inner && (SP_IS_TEXT(o) || SP_IS_FLOWTEXT(o)))
+        o->style->font_size.clear();
+}
+
+
+
+// helper function
+void sp_file_text_run_recursive(void (*f)(SPObject *), SPObject *o)
+{
+    if (SP_IS_TEXT(o) || SP_IS_FLOWTEXT(o))
+        f(o);
+    else {
+        vector<SPObject *> cl = o->childList(false);
+        for (vector<SPObject *>::const_iterator ci = cl.begin(); ci != cl.end(); ++ci)
+            sp_file_text_run_recursive(f, *ci);
+    }
+}
+
+void fix_update(SPObject *o) { 
+    o->style->write();
+    o->updateRepr();
+}
+
+void sp_file_convert_text_baseline_spacing(SPDocument *doc)
+{
+    sp_file_text_run_recursive(fix_blank_line, doc->getRoot());
+    sp_file_text_run_recursive(fix_line_spacing, doc->getRoot());
+    sp_file_text_run_recursive(fix_font_size, doc->getRoot());
+    sp_file_text_run_recursive(fix_update, doc->getRoot());
+}
+
+void sp_file_convert_font_name(SPDocument *doc)
+{
+    sp_file_text_run_recursive(fix_font_name, doc->getRoot());
+    sp_file_text_run_recursive(fix_update, doc->getRoot());
+}
+
+/*
+  Local Variables:
+  mode:c++
+  c-file-style:"stroustrup"
+  c-file-offsets:((innamespace . 0)(inline-open . 0)(case-label . +))
+  indent-tabs-mode:nil
+  fill-column:99
+  End:
+*/
+// vim: filetype=cpp:expandtab:shiftwidth=4:tabstop=8:softtabstop=4 :
diff -Nru inkscape-0.92.0/src/inkscape.rc inkscape-0.92.1~pre1/src/inkscape.rc
--- inkscape-0.92.0/src/inkscape.rc	2017-01-02 10:44:59.000000000 +0100
+++ inkscape-0.92.1~pre1/src/inkscape.rc	2017-02-04 00:47:22.000000000 +0100
@@ -3,8 +3,8 @@
 1                   24            DISCARDABLE     "./inkscape-manifest.xml"
 
 1 VERSIONINFO
-    FILEVERSION     0,92,0,0
-    PRODUCTVERSION  0,92,0,0
+    FILEVERSION     0,92,1,0
+    PRODUCTVERSION  0,92,1,0
 BEGIN
     BLOCK "StringFileInfo"
     BEGIN
@@ -13,11 +13,11 @@
             VALUE "Comments", "Published under the GNU GPL"
             VALUE "CompanyName", "inkscape.org"
             VALUE "FileDescription", "Inkscape"
-            VALUE "FileVersion", "0.92.0"
+            VALUE "FileVersion", "0.92.1pre1"
             VALUE "InternalName", "Inkscape"
             VALUE "LegalCopyright", "� 2017 Inkscape"
             VALUE "ProductName", "Inkscape"
-            VALUE "ProductVersion", "0.92.0"
+            VALUE "ProductVersion", "0.92.1pre1"
         END
     END
     BLOCK "VarFileInfo"
diff -Nru inkscape-0.92.0/src/inkscape-x64.rc inkscape-0.92.1~pre1/src/inkscape-x64.rc
--- inkscape-0.92.0/src/inkscape-x64.rc	2017-01-02 10:44:59.000000000 +0100
+++ inkscape-0.92.1~pre1/src/inkscape-x64.rc	2017-02-04 00:47:22.000000000 +0100
@@ -3,8 +3,8 @@
 1                   24            DISCARDABLE     "./inkscape-manifest-x64.xml"
 
 1 VERSIONINFO
-    FILEVERSION     0,92,0,0
-    PRODUCTVERSION  0,92,0,0
+    FILEVERSION     0,92,1,0
+    PRODUCTVERSION  0,92,1,0
 BEGIN
     BLOCK "StringFileInfo"
     BEGIN
@@ -13,11 +13,11 @@
             VALUE "Comments", "Published under the GNU GPL"
             VALUE "CompanyName", "inkscape.org"
             VALUE "FileDescription", "Inkscape"
-            VALUE "FileVersion", "0.92.0"
+            VALUE "FileVersion", "0.92.1pre1"
             VALUE "InternalName", "Inkscape"
             VALUE "LegalCopyright", "� 2017 Inkscape"
             VALUE "ProductName", "Inkscape"
-            VALUE "ProductVersion", "0.92.0"
+            VALUE "ProductVersion", "0.92.1pre1"
         END
     END
     BLOCK "VarFileInfo"
diff -Nru inkscape-0.92.0/src/inkview.rc inkscape-0.92.1~pre1/src/inkview.rc
--- inkscape-0.92.0/src/inkview.rc	2017-01-02 10:44:59.000000000 +0100
+++ inkscape-0.92.1~pre1/src/inkview.rc	2017-02-04 00:47:22.000000000 +0100
@@ -3,8 +3,8 @@
 1                   24            DISCARDABLE     "./inkview-manifest.xml"
 
 1 VERSIONINFO
-    FILEVERSION     0,92,0,0
-    PRODUCTVERSION  0,92,0,0
+    FILEVERSION     0,92,1,0
+    PRODUCTVERSION  0,92,1,0
 BEGIN
     BLOCK "StringFileInfo"
     BEGIN
@@ -13,11 +13,11 @@
             VALUE "Comments", "Published under the GNU GPL"
             VALUE "CompanyName", "inkscape.org"
             VALUE "FileDescription", "Inkview"
-            VALUE "FileVersion", "0.92.0"
+            VALUE "FileVersion", "0.92.1pre1"
             VALUE "InternalName", "Inkview"
             VALUE "LegalCopyright", "� 2017 Inkscape"
             VALUE "ProductName", "Inkview"
-            VALUE "ProductVersion", "0.92.0"
+            VALUE "ProductVersion", "0.92.1pre1"
         END
     END
     BLOCK "VarFileInfo"
diff -Nru inkscape-0.92.0/src/inkview-x64.rc inkscape-0.92.1~pre1/src/inkview-x64.rc
--- inkscape-0.92.0/src/inkview-x64.rc	2017-01-02 10:44:59.000000000 +0100
+++ inkscape-0.92.1~pre1/src/inkview-x64.rc	2017-02-04 00:47:22.000000000 +0100
@@ -3,8 +3,8 @@
 1                   24            DISCARDABLE     "./inkview-manifest-x64.xml"
 
 1 VERSIONINFO
-    FILEVERSION     0,92,0,0
-    PRODUCTVERSION  0,92,0,0
+    FILEVERSION     0,92,1,0
+    PRODUCTVERSION  0,92,1,0
 BEGIN
     BLOCK "StringFileInfo"
     BEGIN
@@ -13,11 +13,11 @@
             VALUE "Comments", "Published under the GNU GPL"
             VALUE "CompanyName", "inkscape.org"
             VALUE "FileDescription", "Inkview"
-            VALUE "FileVersion", "0.92.0"
+            VALUE "FileVersion", "0.92.1pre1"
             VALUE "InternalName", "Inkview"
             VALUE "LegalCopyright", "� 2017 Inkscape"
             VALUE "ProductName", "Inkview"
-            VALUE "ProductVersion", "0.92.0"
+            VALUE "ProductVersion", "0.92.1pre1"
         END
     END
     BLOCK "VarFileInfo"
diff -Nru inkscape-0.92.0/src/libuemf/uemf.h inkscape-0.92.1~pre1/src/libuemf/uemf.h
--- inkscape-0.92.0/src/libuemf/uemf.h	2017-01-02 10:44:59.000000000 +0100
+++ inkscape-0.92.1~pre1/src/libuemf/uemf.h	2017-02-04 00:47:22.000000000 +0100
@@ -168,12 +168,24 @@
 #define U_ROUND(A)  ( (A) > 0 ? floor((A)+0.5) : ( (A) < 0 ? -floor(-(A)+0.5) : (A) ) )
 
 #define MAKE_MIN_PTR(A,B) ( A < B ? A : B)
-/* This is tricky.  The next one can be called with a size which is either an int or an unsigned int.
-   The former can be negative, which is obviously wrong, but testing for that means that the size cannot
-   be more than INT_MAX/2.  Accept that limitation since no reasonable EMF record or file should ever be that large.
-   B must be an INT or size_t.  
-   If a uint16_t is used gcc complains about the first test.  Force B to be at least as big as int (at run time)  */
-#define IS_MEM_UNSAFE(A,B,C) ( (sizeof(B) < sizeof(int) || (int)(B)) < 0 ? 1 : ((int8_t *)(A) > (int8_t *)(C) ? 1 : ((int8_t *)(C) - (int8_t *)(A) >= (int)(B) ? 0 : 1 ))) //!< Return 1 when a region of memory starting at A of B bytes extends beyond pointer C
+
+/* IS_MEM_UNSAFE takes 3 parameters:
+      A  start address of a block of allocated memory
+      B  offset into this block starting at A
+      C  address of final byte of a block of allocated memory.
+   Returns
+      1 if B cannot be an int or size_t
+      1 if C > A 
+      1 if A+B is not in the range A to C, inclusive
+      0 otherwise.
+   B may be an int, an unsigned int, or a size_t. An int can be negative, 
+      which is obviously wrong, but testing for that means that the size
+      of B cannot be more than INT_MAX/2.  Accept that limitation since 
+      no reasonable EMF record or file should ever be that large.
+   If B is a uint16_t gcc complains about the first test.  
+   This Macro must not be used where B needs more than 32 bits!
+*/
+#define IS_MEM_UNSAFE(A,B,C) ( (sizeof(B) < sizeof(int) || (int)(B) < 0) ? 1 : ((int8_t *)(A) > (int8_t *)(C) ? 1 : ((int8_t *)(C) - (int8_t *)(A) >= (int)(B) ? 0 : 1 )))
 
 /** @} */
 
diff -Nru inkscape-0.92.0/src/live_effects/lpe-patternalongpath.cpp inkscape-0.92.1~pre1/src/live_effects/lpe-patternalongpath.cpp
--- inkscape-0.92.0/src/live_effects/lpe-patternalongpath.cpp	2017-01-02 10:44:59.000000000 +0100
+++ inkscape-0.92.1~pre1/src/live_effects/lpe-patternalongpath.cpp	2017-02-04 00:47:22.000000000 +0100
@@ -11,6 +11,7 @@
 #include <2geom/bezier-to-sbasis.h>
 
 #include "knotholder.h"
+#include <cmath>
 #include <algorithm>
 using std::vector;
 
@@ -158,7 +159,7 @@
         //        spacing.param_set_range(-pattBndsX.extent()*.9, Geom::infinity());
         //    }
 
-        y0+=noffset;
+        y0 += noffset;
 
         std::vector<Geom::Piecewise<Geom::D2<Geom::SBasis> > > paths_in;
         paths_in = split_at_discontinuities(pwd2_in);
@@ -195,7 +196,7 @@
                     
                 case PAPCT_REPEATED_STRETCHED:
                     // if uskeleton is closed:
-                    if(path_i.segs.front().at0() == path_i.segs.back().at1()){
+                    if (are_near(path_i.segs.front().at0(), path_i.segs.back().at1())){
                         nbCopies = std::max(1, static_cast<int>(std::floor((uskeleton.domain().extent() - toffset)/(pattBndsX->extent()+xspace))));
                         pattBndsX = Interval(pattBndsX->min(),pattBndsX->max()+xspace);
                         scaling = (uskeleton.domain().extent() - toffset)/(((double)nbCopies)*pattBndsX->extent());
@@ -211,11 +212,13 @@
                     return pwd2_in;
             };
             
+            //Ceil to 6 decimals
+            scaling = ceil(scaling * 1000000) / 1000000;
             double pattWidth = pattBndsX->extent() * scaling;
             
-            x*=scaling;
+            x *= scaling;
             if ( scale_y_rel.get_value() ) {
-                y*=(scaling * prop_scale);
+                y *= prop_scale * scaling;
             } else {
                 y *= prop_scale;
             }
@@ -233,7 +236,7 @@
                 offs+=pattWidth;
             }
         }
-        if (fuse_tolerance > 0){        
+        if (fuse_tolerance > 0){
             pre_output = fuse_nearby_ends(pre_output, fuse_tolerance);
             for (unsigned i=0; i<pre_output.size(); i++){
                 output.concat(pre_output[i]);
@@ -262,7 +265,6 @@
         pattern.param_transform_multiply(postmul, set);
         pattern.write_to_SVG();
     }
-    sp_lpe_item_update_patheffect (sp_lpe_item, false, true);
 }
 
 void
diff -Nru inkscape-0.92.0/src/live_effects/lpe-perspective-envelope.cpp inkscape-0.92.1~pre1/src/live_effects/lpe-perspective-envelope.cpp
--- inkscape-0.92.0/src/live_effects/lpe-perspective-envelope.cpp	2017-01-02 10:44:59.000000000 +0100
+++ inkscape-0.92.1~pre1/src/live_effects/lpe-perspective-envelope.cpp	2017-02-04 00:47:22.000000000 +0100
@@ -379,7 +379,7 @@
                         hbox_down_handles->pack_start(*widg, true, true, 2);
                     }
                     if (tip) {
-                        widg->set_tooltip_text(*tip);
+                        widg->set_tooltip_markup(*tip);
                     } else {
                         widg->set_tooltip_text("");
                         widg->set_has_tooltip(false);
diff -Nru inkscape-0.92.0/src/live_effects/lpe-transform_2pts.cpp inkscape-0.92.1~pre1/src/live_effects/lpe-transform_2pts.cpp
--- inkscape-0.92.0/src/live_effects/lpe-transform_2pts.cpp	2017-01-02 10:44:59.000000000 +0100
+++ inkscape-0.92.1~pre1/src/live_effects/lpe-transform_2pts.cpp	2017-02-04 00:47:22.000000000 +0100
@@ -36,7 +36,7 @@
     flip_vertical(_("Flip vertical"), _("Flip vertical"), "flip_vertical", &wr, this, false,"", INKSCAPE_ICON("on"), INKSCAPE_ICON("off")),
     start(_("Start"), _("Start point"), "start", &wr, this, "Start point"),
     end(_("End"), _("End point"), "end", &wr, this, "End point"),
-    strech(_("Stretch"), _("Stretch the result"), "strech", &wr, this, 1),
+    stretch(_("Stretch"), _("Stretch the result"), "stretch", &wr, this, 1),
     offset(_("Offset"), _("Offset from knots"), "offset", &wr, this, 0),
     first_knot(_("First Knot"), _("First Knot"), "first_knot", &wr, this, 1),
     last_knot(_("Last Knot"), _("Last Knot"), "last_knot", &wr, this, 1),
@@ -54,7 +54,7 @@
     registerParameter(&first_knot);
     registerParameter(&last_knot);
     registerParameter(&helper_size);
-    registerParameter(&strech);
+    registerParameter(&stretch);
     registerParameter(&offset);
     registerParameter(&start);
     registerParameter(&end);
@@ -75,9 +75,9 @@
     offset.param_set_range(-999999.0, 999999.0);
     offset.param_set_increments(1, 1);
     offset.param_set_digits(2);
-    strech.param_set_range(0, 999.0);
-    strech.param_set_increments(0.01, 0.01);
-    strech.param_set_digits(4);
+    stretch.param_set_range(0, 999.0);
+    stretch.param_set_increments(0.01, 0.01);
+    stretch.param_set_digits(4);
     apply_to_clippath_and_mask = true;
 }
 
@@ -382,9 +382,9 @@
         m *= Geom::Scale(-1,1);
         m *= Geom::Rotate(original_angle);
     }
-    if(strech != 1){
+    if(stretch != 1){
         m *= Geom::Rotate(-original_angle);
-        m *= Geom::Scale(1,strech);
+        m *= Geom::Scale(1,stretch);
         m *= Geom::Rotate(original_angle);
     }
     if(elastic) {
diff -Nru inkscape-0.92.0/src/live_effects/lpe-transform_2pts.h inkscape-0.92.1~pre1/src/live_effects/lpe-transform_2pts.h
--- inkscape-0.92.0/src/live_effects/lpe-transform_2pts.h	2017-01-02 10:44:59.000000000 +0100
+++ inkscape-0.92.1~pre1/src/live_effects/lpe-transform_2pts.h	2017-02-04 00:47:22.000000000 +0100
@@ -57,7 +57,7 @@
     ToggleButtonParam flip_vertical;
     PointParam start;
     PointParam end;
-    ScalarParam strech;
+    ScalarParam stretch;
     ScalarParam offset;
     ScalarParam first_knot;
     ScalarParam last_knot;
diff -Nru inkscape-0.92.0/src/live_effects/parameter/originalpatharray.cpp inkscape-0.92.1~pre1/src/live_effects/parameter/originalpatharray.cpp
--- inkscape-0.92.0/src/live_effects/parameter/originalpatharray.cpp	2017-01-02 10:44:59.000000000 +0100
+++ inkscape-0.92.1~pre1/src/live_effects/parameter/originalpatharray.cpp	2017-02-04 00:47:22.000000000 +0100
@@ -144,7 +144,7 @@
     
     
     { // Paste path to link button
-        Gtk::Widget *pIcon = Gtk::manage( sp_icon_get_icon("gtk-stock", Inkscape::ICON_SIZE_BUTTON) );
+        Gtk::Widget *pIcon = Gtk::manage( sp_icon_get_icon("edit-clone", Inkscape::ICON_SIZE_BUTTON) );
         Gtk::Button *pButton = Gtk::manage(new Gtk::Button());
         pButton->set_relief(Gtk::RELIEF_NONE);
         pIcon->show();
diff -Nru inkscape-0.92.0/src/live_effects/parameter/originalpath.cpp inkscape-0.92.1~pre1/src/live_effects/parameter/originalpath.cpp
--- inkscape-0.92.0/src/live_effects/parameter/originalpath.cpp	2017-01-02 10:44:59.000000000 +0100
+++ inkscape-0.92.1~pre1/src/live_effects/parameter/originalpath.cpp	2017-02-04 00:47:22.000000000 +0100
@@ -56,7 +56,7 @@
     }
 
     { // Paste path to link button
-        Gtk::Widget *pIcon = Gtk::manage( sp_icon_get_icon( INKSCAPE_ICON("edit-paste"), Inkscape::ICON_SIZE_BUTTON) );
+        Gtk::Widget *pIcon = Gtk::manage( sp_icon_get_icon( INKSCAPE_ICON("edit-clone"), Inkscape::ICON_SIZE_BUTTON) );
         Gtk::Button *pButton = Gtk::manage(new Gtk::Button());
         pButton->set_relief(Gtk::RELIEF_NONE);
         pIcon->show();
diff -Nru inkscape-0.92.0/src/live_effects/parameter/vector.cpp inkscape-0.92.1~pre1/src/live_effects/parameter/vector.cpp
--- inkscape-0.92.0/src/live_effects/parameter/vector.cpp	2017-01-02 10:44:59.000000000 +0100
+++ inkscape-0.92.1~pre1/src/live_effects/parameter/vector.cpp	2017-02-04 00:47:22.000000000 +0100
@@ -117,7 +117,7 @@
 void
 VectorParam::param_transform_multiply(Geom::Affine const& postmul, bool /*set*/)
 {
-        set_and_write_new_values( origin * postmul, vector * postmul.withoutTranslation() );
+    set_and_write_new_values( origin * postmul, vector * postmul.withoutTranslation() );
 }
 
 
diff -Nru inkscape-0.92.0/src/main.cpp inkscape-0.92.1~pre1/src/main.cpp
--- inkscape-0.92.0/src/main.cpp	2017-01-02 10:44:59.000000000 +0100
+++ inkscape-0.92.1~pre1/src/main.cpp	2017-02-04 00:47:22.000000000 +0100
@@ -177,6 +177,7 @@
     SP_ARG_SHELL,
     SP_ARG_VERSION,
     SP_ARG_VACUUM_DEFS,
+    SP_ARG_NO_CONVERT_TEXT_BASELINE_SPACING,
 #ifdef WITH_DBUS
     SP_ARG_DBUS_LISTEN,
     SP_ARG_DBUS_NAME,
@@ -241,7 +242,6 @@
 static gchar *sp_export_svg_utf8 = NULL;
 static gchar *sp_global_printer_utf8 = NULL;
 
-
 /**
  *  Reset variables to default values.
  */
@@ -280,6 +280,7 @@
         sp_query_all = FALSE;
         sp_query_id = NULL;
         sp_vacuum_defs = FALSE;
+        sp_no_convert_text_baseline_spacing = FALSE;
 #ifdef WITH_DBUS
         sp_dbus_listen = FALSE;
         sp_dbus_name = NULL;
@@ -421,7 +422,7 @@
     {"export-pdf-version", 0,
      POPT_ARG_STRING, &sp_export_pdf_version, SP_ARG_EXPORT_PDF_VERSION,
      // TRANSLATORS: "--export-pdf-version" is an Inkscape command line option; see "inkscape --help"
-     N_("Export PDF to given version. (hint: make sure to input the exact string found in the PDF export dialog, e.g. \"PDF 1.4\" which is PDF-a conformant)"),
+     N_("Export PDF to given version. (hint: make sure to input the exact string found in the PDF export dialog, e.g. \"1.4\" which is PDF-a conformant)"),
      N_("PDF_VERSION")},
 
     {"export-latex", 0,
@@ -526,6 +527,11 @@
      N_("Start Inkscape in interactive shell mode."),
      NULL},
 
+    {"no-convert-text-baseline-spacing", 0,
+    POPT_ARG_NONE, &sp_no_convert_text_baseline_spacing, SP_ARG_NO_CONVERT_TEXT_BASELINE_SPACING,
+    N_("Do not fix legacy (pre-0.92) files' text baseline spacing on opening."),
+    NULL},
+
     POPT_AUTOHELP POPT_TABLEEND
 };
 
diff -Nru inkscape-0.92.0/src/Makefile_insert inkscape-0.92.1~pre1/src/Makefile_insert
--- inkscape-0.92.0/src/Makefile_insert	2017-01-02 10:44:59.000000000 +0100
+++ inkscape-0.92.1~pre1/src/Makefile_insert	2017-02-04 00:47:22.000000000 +0100
@@ -40,7 +40,7 @@
 	enums.h								\
 	event-log.cpp event-log.h event.h				\
 	extract-uri.cpp extract-uri.h					\
-	file.cpp file.h							\
+	file.cpp file-update.cpp file.h					\
 	fill-or-stroke.h						\
 	filter-chemistry.cpp filter-chemistry.h				\
 	filter-enums.cpp filter-enums.h					\
diff -Nru inkscape-0.92.0/src/resource-manager.cpp inkscape-0.92.1~pre1/src/resource-manager.cpp
--- inkscape-0.92.0/src/resource-manager.cpp	2017-01-02 10:44:59.000000000 +0100
+++ inkscape-0.92.1~pre1/src/resource-manager.cpp	2017-02-04 00:47:22.000000000 +0100
@@ -158,9 +158,13 @@
             // TODO debug g_message("--- is a file URI                 [%s]", href.c_str());
 
             // throws Glib::ConvertError:
-            uri = Glib::filename_from_uri(href); // TODO see if we can get this to throw
-            // TODO debug g_message("                                  [%s]", uri.c_str());
-            isFile = true;
+            try {
+                uri = Glib::filename_from_uri(href);
+                // TODO debug g_message("                                  [%s]", uri.c_str());
+                isFile = true;
+            } catch(Glib::ConvertError e) {
+                g_warning("%s", e.what().c_str());
+            }
         }
     } else {
         // No scheme. Assuming it is a file path (absolute or relative).
@@ -230,7 +234,7 @@
                     priorLocations.push_back(path);
                 }
             } catch (Glib::ConvertError e) {
-                g_warning("Bad URL ignored [%s]", uri.c_str());
+                g_warning("%s", e.what().c_str());
             }
         }
     }
diff -Nru inkscape-0.92.0/src/sp-item.cpp inkscape-0.92.1~pre1/src/sp-item.cpp
--- inkscape-0.92.0/src/sp-item.cpp	2017-01-02 10:44:59.000000000 +0100
+++ inkscape-0.92.1~pre1/src/sp-item.cpp	2017-02-04 00:47:22.000000000 +0100
@@ -132,6 +132,7 @@
     setAttribute("sodipodi:insensitive",
                  ( locked ? "1" : NULL ));
     updateRepr();
+    document->_emitModified();
 }
 
 bool SPItem::isHidden() const {
diff -Nru inkscape-0.92.0/src/sp-object.cpp inkscape-0.92.1~pre1/src/sp-object.cpp
--- inkscape-0.92.0/src/sp-object.cpp	2017-01-02 10:44:59.000000000 +0100
+++ inkscape-0.92.1~pre1/src/sp-object.cpp	2017-02-04 00:47:22.000000000 +0100
@@ -702,7 +702,9 @@
     object->readAttr("xml:space");
     object->readAttr("inkscape:label");
     object->readAttr("inkscape:collect");
-    if(object->cloned)
+    if(object->cloned && (repr->attribute("id")) ) // The cases where this happens are when the "original" has no id. This happens
+                                                   // if it is a SPString (a TextNode, e.g. in a <title>), or when importing
+                                                   // stuff externally modified to have no id.
         object->clone_original = document->getObjectById(repr->attribute("id"));
 
     for (Inkscape::XML::Node *rchild = repr->firstChild() ; rchild != NULL; rchild = rchild->next()) {
diff -Nru inkscape-0.92.0/src/ui/clipboard.cpp inkscape-0.92.1~pre1/src/ui/clipboard.cpp
--- inkscape-0.92.0/src/ui/clipboard.cpp	2017-01-02 10:44:59.000000000 +0100
+++ inkscape-0.92.1~pre1/src/ui/clipboard.cpp	2017-02-04 00:47:22.000000000 +0100
@@ -655,7 +655,6 @@
     return svgd;
 }
 
-
 /**
  * Iterate over a list of items and copy them to the clipboard.
  */
@@ -700,24 +699,6 @@
                 obj_copy = _copyNode(obj, _doc, _root);
             else
                 obj_copy = _copyNode(obj, _doc, _clipnode);
-            SPLPEItem *lpeitem = dynamic_cast<SPLPEItem *>(item);
-            if (lpeitem) {
-                Inkscape::SVGOStringStream os;
-                if (lpeitem->hasPathEffect()) {
-                    for (PathEffectList::iterator it = lpeitem->path_effect_list->begin(); it != lpeitem->path_effect_list->end(); ++it)
-                    {
-                        LivePathEffectObject *lpeobj = (*it)->lpeobject;
-                        if (lpeobj) {
-                            Inkscape::XML::Node * lpeobjcopy = _copyNode(lpeobj->getRepr(), _doc, _defs);
-                            gchar *new_conflict_id = sp_object_get_unique_id(lpeobj, lpeobj->getAttribute("id"));
-                            lpeobjcopy->setAttribute("id", new_conflict_id);
-                            g_free(new_conflict_id);
-                            os << "#" << lpeobjcopy->attribute("id") << ";";
-                        }
-                    }
-                }
-                obj_copy->setAttribute("inkscape:path-effect", os.str().c_str());
-            }
 
             // copy complete inherited style
             SPCSSAttr *css = sp_repr_css_attr_inherited(obj, "style");
@@ -750,6 +731,13 @@
             sp_repr_css_set(_clipnode, style, "style");
             sp_repr_css_attr_unref(style);
         }
+        // copy path effect from the first path
+        if (object) {
+            gchar const *effect =object->getRepr()->attribute("inkscape:path-effect");
+            if (effect) {
+                _clipnode->setAttribute("inkscape:path-effect", effect);
+            }
+        }
     }
 
     Geom::OptRect size = selection->visualBounds();
@@ -852,6 +840,19 @@
         }
     }
 
+    // For lpe items, copy lpe stack if applicable
+    SPLPEItem *lpeitem = dynamic_cast<SPLPEItem *>(item);
+    if (lpeitem) {
+        if (lpeitem->hasPathEffect()) {
+            for (PathEffectList::iterator it = lpeitem->path_effect_list->begin(); it != lpeitem->path_effect_list->end(); ++it){
+                LivePathEffectObject *lpeobj = (*it)->lpeobject;
+                if (lpeobj) {
+                  _copyNode(lpeobj->getRepr(), _doc, _defs);
+                }
+            }
+        }
+    }
+
     // recurse
     for (SPObject *o = item->children ; o != NULL ; o = o->next) {
         SPItem *childItem = dynamic_cast<SPItem *>(o);
diff -Nru inkscape-0.92.0/src/ui/dialog/aboutbox.cpp inkscape-0.92.1~pre1/src/ui/dialog/aboutbox.cpp
--- inkscape-0.92.0/src/ui/dialog/aboutbox.cpp	2017-01-02 10:44:59.000000000 +0100
+++ inkscape-0.92.1~pre1/src/ui/dialog/aboutbox.cpp	2017-02-04 00:47:22.000000000 +0100
@@ -166,16 +166,16 @@
        the `screens' directory.  Thus the translation of "about.svg" should be
        the filename of its translated version, e.g. about.zh.svg for Chinese.
 
-       N.B. about.svg changes once per release.  (We should probably rename
-       the original to about-0.40.svg etc. as soon as we have a translation.
-       If we do so, then add an item to release-checklist saying that the
-       string here should be changed.) */
+       Please don't translate the filename unless the translated picture exists. */
 
     // FIXME? INKSCAPE_SCREENSDIR and "about.svg" are in UTF-8, not the
     // native filename encoding... and the filename passed to sp_document_new
     // should be in UTF-*8..
 
     char *about=g_build_filename(INKSCAPE_SCREENSDIR, _("about.svg"), NULL);
+    if (!g_file_test (about, G_FILE_TEST_EXISTS)) {
+        about=g_build_filename(INKSCAPE_SCREENSDIR, "about.svg", NULL);
+    }
     SPDocument *doc=SPDocument::createNewDoc (about, TRUE);
     g_free(about);
     g_return_val_if_fail(doc != NULL, NULL);
diff -Nru inkscape-0.92.0/src/ui/dialog/polar-arrange-tab.cpp inkscape-0.92.1~pre1/src/ui/dialog/polar-arrange-tab.cpp
--- inkscape-0.92.0/src/ui/dialog/polar-arrange-tab.cpp	2017-01-02 10:44:59.000000000 +0100
+++ inkscape-0.92.1~pre1/src/ui/dialog/polar-arrange-tab.cpp	2017-02-04 00:47:22.000000000 +0100
@@ -49,14 +49,14 @@
 	anchorPointLabel.set_alignment(Gtk::ALIGN_START);
 	pack_start(anchorPointLabel, false, false);
 
-	anchorBoundingBoxRadio.set_label(C_("Polar arrange tab", "Object's bounding box:"));
+	anchorBoundingBoxRadio.set_label(C_("Polar arrange tab", "Objects' bounding boxes:"));
 	anchorRadioGroup = anchorBoundingBoxRadio.get_group();
 	anchorBoundingBoxRadio.signal_toggled().connect(sigc::mem_fun(*this, &PolarArrangeTab::on_anchor_radio_changed));
 	pack_start(anchorBoundingBoxRadio, false, false);
 
 	pack_start(anchorSelector, false, false);
 
-	anchorObjectPivotRadio.set_label(C_("Polar arrange tab", "Object's rotational center"));
+	anchorObjectPivotRadio.set_label(C_("Polar arrange tab", "Objects' rotational centers"));
 	anchorObjectPivotRadio.set_group(anchorRadioGroup);
 	anchorObjectPivotRadio.signal_toggled().connect(sigc::mem_fun(*this, &PolarArrangeTab::on_anchor_radio_changed));
 	pack_start(anchorObjectPivotRadio, false, false);
diff -Nru inkscape-0.92.0/src/widgets/measure-toolbar.cpp inkscape-0.92.1~pre1/src/widgets/measure-toolbar.cpp
--- inkscape-0.92.0/src/widgets/measure-toolbar.cpp	2017-01-02 10:44:59.000000000 +0100
+++ inkscape-0.92.1~pre1/src/widgets/measure-toolbar.cpp	2017-02-04 00:47:22.000000000 +0100
@@ -326,7 +326,7 @@
     {
         eact = create_adjustment_action( "MeasureOffsetAction",
                                          _("Offset"), _("Offset:"),
-                                         _("The offset size"),
+                                         _("Mark dimension offset"),
                                          "/tools/measure/offset", 5.0,
                                          GTK_WIDGET(desktop->canvas), holder, FALSE, NULL,
                                          0.0, 90000.0, 1.0, 4.0,
diff -Nru inkscape-0.92.0/src/widgets/toolbox.cpp inkscape-0.92.1~pre1/src/widgets/toolbox.cpp
--- inkscape-0.92.0/src/widgets/toolbox.cpp	2017-01-02 10:44:59.000000000 +0100
+++ inkscape-0.92.1~pre1/src/widgets/toolbox.cpp	2017-02-04 00:47:22.000000000 +0100
@@ -368,8 +368,6 @@
         "    <separator />"
         "    <toolitem action='MeasureScaleAction' />"
         "    <separator />"
-        "    <toolitem action='MeasureOffsetAction' />"
-        "    <separator />"
         "    <toolitem action='measure_units_label' />"
         "    <toolitem action='MeasureUnitsAction' />"
         "    <toolitem action='MeasureIgnore1stAndLast' />"
@@ -379,8 +377,9 @@
         "    <toolitem action='MeasureReverse' />"
         "    <toolitem action='MeasureToPhantom' />"
         "    <toolitem action='MeasureToGuides' />"
-        "    <toolitem action='MeasureMarkDimension' />"
         "    <toolitem action='MeasureToItem' />"
+        "    <toolitem action='MeasureMarkDimension' />"
+        "    <toolitem action='MeasureOffsetAction' />"
         "  </toolbar>" 
 
         "  <toolbar name='StarToolbar'>"
diff -Nru inkscape-0.92.0/src/xml/rebase-hrefs.cpp inkscape-0.92.1~pre1/src/xml/rebase-hrefs.cpp
--- inkscape-0.92.0/src/xml/rebase-hrefs.cpp	2017-01-02 10:44:59.000000000 +0100
+++ inkscape-0.92.1~pre1/src/xml/rebase-hrefs.cpp	2017-02-04 00:47:22.000000000 +0100
@@ -279,7 +279,7 @@
 #ifdef WIN32
                 /* Native Windows path separators are replaced with / so that the href
                  * also works on Gnu/Linux and OSX */
-                std::replace(href.begin(), href.end(), '\\', '/');
+                std::replace(new_href.begin(), new_href.end(), '\\', '/');
 #endif
                 ir->setAttribute("xlink:href", new_href.c_str());
             } else {

Attachment: signature.asc
Description: PGP signature


--- End Message ---
--- Begin Message ---
Mattia Rizzolo:
> On Thu, Feb 09, 2017 at 07:05:00PM +0000, Niels Thykier wrote:
>> Please go ahead then :)
> 
> This is now uploaded, and built on all relevant (and non) architectures.
> 

Unblocked, thanks.

~Niels

--- End Message ---

Reply to: