<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
"http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head><meta http-equiv="content-type" content="text/html; charset=utf-8" />
<title>[148982] trunk/dports/graphics/librsvg</title>
</head>
<body>

<style type="text/css"><!--
#msg dl.meta { border: 1px #006 solid; background: #369; padding: 6px; color: #fff; }
#msg dl.meta dt { float: left; width: 6em; font-weight: bold; }
#msg dt:after { content:':';}
#msg dl, #msg dt, #msg ul, #msg li, #header, #footer, #logmsg { font-family: verdana,arial,helvetica,sans-serif; font-size: 10pt;  }
#msg dl a { font-weight: bold}
#msg dl a:link    { color:#fc3; }
#msg dl a:active  { color:#ff0; }
#msg dl a:visited { color:#cc6; }
h3 { font-family: verdana,arial,helvetica,sans-serif; font-size: 10pt; font-weight: bold; }
#msg pre { overflow: auto; background: #ffc; border: 1px #fa0 solid; padding: 6px; }
#logmsg { background: #ffc; border: 1px #fa0 solid; padding: 1em 1em 0 1em; }
#logmsg p, #logmsg pre, #logmsg blockquote { margin: 0 0 1em 0; }
#logmsg p, #logmsg li, #logmsg dt, #logmsg dd { line-height: 14pt; }
#logmsg h1, #logmsg h2, #logmsg h3, #logmsg h4, #logmsg h5, #logmsg h6 { margin: .5em 0; }
#logmsg h1:first-child, #logmsg h2:first-child, #logmsg h3:first-child, #logmsg h4:first-child, #logmsg h5:first-child, #logmsg h6:first-child { margin-top: 0; }
#logmsg ul, #logmsg ol { padding: 0; list-style-position: inside; margin: 0 0 0 1em; }
#logmsg ul { text-indent: -1em; padding-left: 1em; }#logmsg ol { text-indent: -1.5em; padding-left: 1.5em; }
#logmsg > ul, #logmsg > ol { margin: 0 0 1em 0; }
#logmsg pre { background: #eee; padding: 1em; }
#logmsg blockquote { border: 1px solid #fa0; border-left-width: 10px; padding: 1em 1em 0 1em; background: white;}
#logmsg dl { margin: 0; }
#logmsg dt { font-weight: bold; }
#logmsg dd { margin: 0; padding: 0 0 0.5em 0; }
#logmsg dd:before { content:'\00bb';}
#logmsg table { border-spacing: 0px; border-collapse: collapse; border-top: 4px solid #fa0; border-bottom: 1px solid #fa0; background: #fff; }
#logmsg table th { text-align: left; font-weight: normal; padding: 0.2em 0.5em; border-top: 1px dotted #fa0; }
#logmsg table td { text-align: right; border-top: 1px dotted #fa0; padding: 0.2em 0.5em; }
#logmsg table thead th { text-align: center; border-bottom: 1px solid #fa0; }
#logmsg table th.Corner { text-align: left; }
#logmsg hr { border: none 0; border-top: 2px dashed #fa0; height: 1px; }
#header, #footer { color: #fff; background: #636; border: 1px #300 solid; padding: 6px; }
#patch { width: 100%; }
#patch h4 {font-family: verdana,arial,helvetica,sans-serif;font-size:10pt;padding:8px;background:#369;color:#fff;margin:0;}
#patch .propset h4, #patch .binary h4 {margin:0;}
#patch pre {padding:0;line-height:1.2em;margin:0;}
#patch .diff {width:100%;background:#eee;padding: 0 0 10px 0;overflow:auto;}
#patch .propset .diff, #patch .binary .diff  {padding:10px 0;}
#patch span {display:block;padding:0 10px;}
#patch .modfile, #patch .addfile, #patch .delfile, #patch .propset, #patch .binary, #patch .copfile {border:1px solid #ccc;margin:10px 0;}
#patch ins {background:#dfd;text-decoration:none;display:block;padding:0 10px;}
#patch del {background:#fdd;text-decoration:none;display:block;padding:0 10px;}
#patch .lines, .info {color:#888;background:#fff;}
--></style>
<div id="msg">
<dl class="meta">
<dt>Revision</dt> <dd><a href="https://trac.macports.org/changeset/148982">148982</a></dd>
<dt>Author</dt> <dd>devans@macports.org</dd>
<dt>Date</dt> <dd>2016-05-24 09:00:40 -0700 (Tue, 24 May 2016)</dd>
</dl>

<h3>Log Message</h3>
<pre>librsvg: revert upstream commit that broken scaling (#51473).</pre>

<h3>Modified Paths</h3>
<ul>
<li><a href="#trunkdportsgraphicslibrsvgPortfile">trunk/dports/graphics/librsvg/Portfile</a></li>
</ul>

<h3>Added Paths</h3>
<ul>
<li><a href="#trunkdportsgraphicslibrsvgfiles01_Revertbgo520654Supportexportidinrsvgconvertpatch">trunk/dports/graphics/librsvg/files/01_Revert-bgo-520654-Support-export-id-in-rsvg-convert-.patch</a></li>
</ul>

</div>
<div id="patch">
<h3>Diff</h3>
<a id="trunkdportsgraphicslibrsvgPortfile"></a>
<div class="modfile"><h4>Modified: trunk/dports/graphics/librsvg/Portfile (148981 => 148982)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/dports/graphics/librsvg/Portfile        2016-05-24 09:57:45 UTC (rev 148981)
+++ trunk/dports/graphics/librsvg/Portfile        2016-05-24 16:00:40 UTC (rev 148982)
</span><span class="lines">@@ -6,6 +6,7 @@
</span><span class="cx"> 
</span><span class="cx"> name                librsvg
</span><span class="cx"> version             2.40.15
</span><ins>+revision            1
</ins><span class="cx"> license             {GPL-2+ LGPL-2+}
</span><span class="cx"> set branch          [join [lrange [split ${version} .] 0 1] .]
</span><span class="cx"> categories          graphics gnome
</span><span class="lines">@@ -38,6 +39,8 @@
</span><span class="cx"> 
</span><span class="cx"> gobject_introspection yes
</span><span class="cx"> 
</span><ins>+patchfiles          01_Revert-bgo-520654-Support-export-id-in-rsvg-convert-.patch
+
</ins><span class="cx"> configure.args      --enable-vala=yes \
</span><span class="cx">                     --disable-silent-rules \
</span><span class="cx">                     --disable-Bsymbolic
</span></span></pre></div>
<a id="trunkdportsgraphicslibrsvgfiles01_Revertbgo520654Supportexportidinrsvgconvertpatch"></a>
<div class="addfile"><h4>Added: trunk/dports/graphics/librsvg/files/01_Revert-bgo-520654-Support-export-id-in-rsvg-convert-.patch (0 => 148982)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/dports/graphics/librsvg/files/01_Revert-bgo-520654-Support-export-id-in-rsvg-convert-.patch                                (rev 0)
+++ trunk/dports/graphics/librsvg/files/01_Revert-bgo-520654-Support-export-id-in-rsvg-convert-.patch        2016-05-24 16:00:40 UTC (rev 148982)
</span><span class="lines">@@ -0,0 +1,153 @@
</span><ins>+From 34f63da0ca65aef62c151dab9497cb3995e2bf9e Mon Sep 17 00:00:00 2001
+From: Michael Biebl &lt;biebl@debian.org&gt;
+Date: Tue, 17 Nov 2015 16:47:20 +0100
+Subject: [PATCH] Revert &quot;bgo#520654 - Support --export-id in rsvg-convert(1)&quot;
+
+This reverts commit fecfcce44a959daff80a4e0f9ced83d7cdcb5903.
+---
+ rsvg-cairo-render.c |  4 ++--
+ rsvg-convert.c      | 64 +++++++++++++----------------------------------------
+ 2 files changed, 17 insertions(+), 51 deletions(-)
+
+Index: b/rsvg-cairo-render.c
+===================================================================
+--- rsvg-cairo-render.c
++++ rsvg-cairo-render.c
+@@ -205,8 +205,8 @@
+         drawsub = rsvg_defs_lookup (handle-&gt;priv-&gt;defs, id);

+     if (drawsub == NULL &amp;&amp; id != NULL) {
+-        /* todo: there's no way to signal that @id doesn't exist */
+-        return FALSE;
++        /* todo: there's no way to signal that @id doesn't exist */
++        return FALSE;
+     }

+     draw = rsvg_cairo_new_drawing_ctx (cr, handle);
+Index: b/rsvg-convert.c
+===================================================================
+--- rsvg-convert.c
++++ rsvg-convert.c
+@@ -78,6 +78,14 @@
+     }
+ }

++static void
++rsvg_cairo_size_callback (int *width, int *height, gpointer data)
++{
++    RsvgDimensionData *dimensions = data;
++    *width = dimensions-&gt;width;
++    *height = dimensions-&gt;height;
++}
++
+ static cairo_status_t
+ rsvg_cairo_write_func (void *closure, const unsigned char *data, unsigned int length)
+ {
+@@ -86,26 +94,6 @@
+     return CAIRO_STATUS_WRITE_ERROR;
+ }

+-static char *
+-get_lookup_id_from_command_line (const char *lookup_id)
+-{
+-    char *export_lookup_id;
+-
+-    if (lookup_id == NULL)
+-        export_lookup_id = NULL;
+-    else {
+-        /* rsvg_handle_has_sub() and rsvg_defs_lookup() expect ids to have a
+-         * '#' prepended to them, so they can lookup ids in externs like
+-         * &quot;subfile.svg#subid&quot;.  For the user's convenience, we include this
+-         * '#' automatically; we only support specifying ids from the
+-         * toplevel, and don't expect users to lookup things in externs.
+-         */
+-        export_lookup_id = g_strdup_printf (&quot;#%s&quot;, lookup_id);
+-    }
+-
+-    return export_lookup_id;
+-}
+- 
+ int
+ main (int argc, char **argv)
+ {
+@@ -120,7 +108,6 @@
+     int bVersion = 0;
+     char *format = NULL;
+     char *output = NULL;
+-    char *export_id = NULL;
+     int keep_aspect_ratio = FALSE;
+     guint32 background_color = 0;
+     char *background_color_str = NULL;
+@@ -139,7 +126,6 @@
+     RsvgHandleFlags flags = RSVG_HANDLE_FLAGS_NONE;
+     RsvgDimensionData dimensions;
+     FILE *output_file = stdout;
+-    char *export_lookup_id;

+ #ifdef G_OS_WIN32
+     HANDLE handle;
+@@ -164,8 +150,6 @@
+          N_(&quot;save format [optional; defaults to 'png']&quot;), N_(&quot;[png, pdf, ps, eps, svg, xml, recording]&quot;)},
+         {&quot;output&quot;, 'o', 0, G_OPTION_ARG_STRING, &amp;output,
+          N_(&quot;output filename [optional; defaults to stdout]&quot;), NULL},
+-        {&quot;export-id&quot;, 'i', 0, G_OPTION_ARG_STRING, &amp;export_id,
+-         N_(&quot;SVG id of object to export [optional; defaults to exporting all objects]&quot;), N_(&quot;&lt;object id&gt;&quot;)},
+         {&quot;keep-aspect-ratio&quot;, 'a', 0, G_OPTION_ARG_NONE, &amp;keep_aspect_ratio,
+          N_(&quot;whether to preserve the aspect ratio [optional; defaults to FALSE]&quot;), NULL},
+         {&quot;background-color&quot;, 'b', 0, G_OPTION_ARG_STRING, &amp;background_color_str,
+@@ -306,18 +290,13 @@
+             exit (1);
+         }

+-        export_lookup_id = get_lookup_id_from_command_line (export_id);
+-        if (export_lookup_id != NULL
+-            &amp;&amp; !rsvg_handle_has_sub (rsvg, export_lookup_id)) {
+-            g_printerr (_(&quot;File %s does not have an object with id \&quot;%s\&quot;\n&quot;), args[i], export_id);
+-            exit (1);
+-        }
++        /* in the case of multi-page output, all subsequent SVGs are scaled to the first's size */
++        rsvg_handle_set_size_callback (rsvg, rsvg_cairo_size_callback, &amp;dimensions, NULL);

+         if (i == 0) {
+             struct RsvgSizeCallbackData size_data;

+-            if (!rsvg_handle_get_dimensions_sub (rsvg, &amp;dimensions, export_lookup_id))
+-                g_printerr (&quot;Could not get dimensions for file %s\n&quot;, args[i]);
++            rsvg_handle_get_dimensions (rsvg, &amp;dimensions);

+             /* if both are unspecified, assume user wants to zoom the image in at least 1 dimension */
+             if (width == -1 &amp;&amp; height == -1) {
+@@ -325,7 +304,9 @@
+                 size_data.x_zoom = x_zoom;
+                 size_data.y_zoom = y_zoom;
+                 size_data.keep_aspect_ratio = keep_aspect_ratio;
+-            } else if (x_zoom == 1.0 &amp;&amp; y_zoom == 1.0) {
++            }
++            /* if both are unspecified, assume user wants to resize image in at least 1 dimension */
++            else if (x_zoom == 1.0 &amp;&amp; y_zoom == 1.0) {
+                 /* if one parameter is unspecified, assume user wants to keep the aspect ratio */
+                 if (width == -1 || height == -1) {
+                     size_data.type = RSVG_SIZE_WH_MAX;
+@@ -404,21 +385,7 @@
+             cairo_fill (cr);
+         }

+-        if (export_lookup_id) {
+-            RsvgPositionData pos;
+-
+-            if (!rsvg_handle_get_position_sub (rsvg, &amp;pos, export_lookup_id)) {
+-                g_printerr (_(&quot;File %s does not have an object with id \&quot;%s\&quot;\n&quot;), args[i], export_id);
+-                exit (1);
+-            }
+-
+-            /* Move the whole thing to 0, 0 so the object to export is at the origin */
+-            cairo_translate (cr, -pos.x, -pos.y);
+-        }
+-
+-        rsvg_handle_render_cairo_sub (rsvg, cr, export_lookup_id);
+-
+-        g_free (export_lookup_id);
++        rsvg_handle_render_cairo (rsvg, cr);

+         if (!format || !strcmp (format, &quot;png&quot;))
+             cairo_surface_write_to_png_stream (surface, rsvg_cairo_write_func, output_file);
</ins></span></pre>
</div>
</div>

</body>
</html>