Issue 118466 - Replace SVG rendering
Summary: Replace SVG rendering
Alias: None
Product: Draw
Classification: Application
Component: viewing (show other issues)
Version: version58
Hardware: PC Windows 7
: P5 (lowest) Normal (vote)
Target Milestone: ---
Assignee: Armin Le Grand
QA Contact:
Depends on:
Reported: 2011-09-27 08:14 UTC by Armin Le Grand
Modified: 2017-05-20 10:30 UTC (History)
6 users (show)

See Also:
Issue Type: DEFECT
Latest Confirmation in: ---
Developer Difficulty: ---

first step patch to remove IP clearance libs (459.58 KB, patch)
2011-11-11 15:54 UTC, Armin Le Grand
no flags Details | Diff

Note You need to log in before you can comment on or make changes to this issue.
Description Armin Le Grand 2011-09-27 08:14:47 UTC
ALG: Due to Apache licensing we will not be able to use cairo and librsvg which are currently used to allow embedding of SVG graphics to AOO3.4. Thus, these need to be replaced to not lose that functionality. Looking for a solution...
Comment 1 Armin Le Grand 2011-09-27 08:15:26 UTC
ALG: Investigating possibilities...
Comment 2 Raphael Bircher 2011-09-27 08:28:44 UTC
CCing me
Comment 3 Armin Le Grand 2011-11-08 18:04:31 UTC
ALG: Preparing rough removal of current SVG functionality to get to a clean IP state. No worries, stuff to replace this is on the way..

Step 1: Librsvg

Used from vcl, dynamically loaded/called at runtime (not linked against). Need to remove d7a242ca43e33e1b63d3073f9d46a6a8-librsvg-2.32.1.tar.gz from ooo.lst and usages in vcl. It's also fetched from ext_sources to project librsvg and built, dependent on SYSTEM_LIBRSVG buildflag. Also need to remove logic to use librsvg from system/to build.
Comment 4 Armin Le Grand 2011-11-09 10:48:04 UTC
ALG: Also removed libcroco and libgsf, have to do complete testbuild.
ALG: due to changes in there are additional candidates:
Checking if these are used outside rsvg stuff, waiting for build...
Comment 5 Armin Le Grand 2011-11-09 12:02:12 UTC
ALG: Checked gdkpixbuf, used in:
- avmedia for MultiMedia replay (avmedia\source\gstreamer\gstframegrabber.cxx)
- cairo canvas (canvas\source\cairo\cairo_canvasbitmap.cxx, canvas\source\directx\dx_canvasbitmap.cxx)
- fpicker (fpicker\source\unx\gnome\SalGtkFilePicker.cxx)
- sfx2 (sfx2\source\appl\shutdowniconunx.cxx)
- vcl (vcl\unx\gtk\window\gtkframe.cxx)
- xpdf
Thus no removal candidate. License is LGPL and MPL.
Comment 6 Armin Le Grand 2011-11-09 12:41:28 UTC
ALG: libcroro, libgsf and librsvg removed, build works. I'll check in these changes.
Comment 7 Armin Le Grand 2011-11-10 10:46:21 UTC
ALG: dependent from ENABLE_LIBRSVG the following libs get checked:
- librsvg
- gdk-pixbuf
- glib
- gettext
- libcroco
- pango
- libgsf

librsvg: Removed already

gdk-pixbuf: Looks as if this was only built on win and mac, but only for the cases where librsvg was used. Thus it can be removed after librsvg removal. Trying this.

glib, gettext, pango: Seems like it was only added for librsvg on windows. Trying removal...

libcroco, libgsf: Already gone.

Making testbuild...
Comment 8 Ariel Constenla-Haile 2011-11-10 11:01:30 UTC
(In reply to comment #7)
> gdk-pixbuf: Looks as if this was only built on win and mac, but only for the
> cases where librsvg was used. Thus it can be removed after librsvg removal.
> Trying this.

it is also used in Linux for the GStreamer AVMedia plug-in (for the "frame grabber" - grabs a frame from the video stream) avmedia/source/gstreamer/gstframegrabber.hxx

But building that plug-in already requires system libraries on Linux, so you can safely remove this for this platform too.
Comment 9 Armin Le Grand 2011-11-10 12:37:36 UTC
@Ariel: On Linux it's no problem, it's used in various places, but as system lib. Background here is why it's part of our repository and may be built, that was (as it looks now) only because of SVG. I already documented the locations of use in
Comment 10 Armin Le Grand 2011-11-10 13:20:34 UTC
ALG: Now test-removed: librsvg, libcroco, libgsf, gdk-pixbuf, glib, gettext, pango. Already removed: libcroco, libgsf
Comment 11 Armin Le Grand 2011-11-11 09:54:10 UTC
ALG: Test build (debug and non-debug) worked well, smoketest working. Preparing patch.
Comment 12 Armin Le Grand 2011-11-11 15:54:56 UTC
Created attachment 76999 [details]
first step patch to remove IP clearance libs
Comment 13 Armin Le Grand 2011-11-11 15:55:50 UTC
ALG: Patch comitted, added as attachment for documentation
Comment 14 Armin Le Grand 2011-11-18 14:49:20 UTC
ALG: Removing as blocker since IP clearance basics are done and comitted
Comment 15 Armin Le Grand 2011-11-23 16:12:01 UTC
ALG: Created for further development.
Comment 16 Armin Le Grand 2011-11-30 16:32:16 UTC
ALG: First version with complete roundrtip in all apps ready, preparing patch to apply to created branch. Things to do:

- In Sw, make graphic frames to paint using primitives if available to support vector graphic where possible
- Implement break in Draw/Impress
- Check actions (Attributes, transformations)
- Check exports, etc.
Comment 17 eric.bachard 2011-12-03 15:27:03 UTC
I tested on Mac OS X :

truc:~/Desktop/apache_ooo/alg/svgreplacement/main ericb$ svn info
Path: .
Repository Root:
Repository UUID: 13f79535-47bb-0310-9956-ffa450edef68
Revision: 1209438
Node Kind: directory
Schedule: normal
Last Changed Author: alg
Last Changed Rev: 1209389
Last Changed Date: 2011-12-02 11:39:30 +0100 (Fri, 02 Dec 2011)


Import seems to work well

Export seems to not work : produces an empty page

Suggested : add a test case for export.
Comment 18 Armin Le Grand 2011-12-06 13:37:06 UTC
ALG: In Sw graphic frames with Svg now use primitives for paint to support
vector graphic where possible. Added support for mirroring and cropping. Added support for unified cropping for all graphics, fixed functionality for mirrored and cropped graphics (never worked).
Comment 19 Armin Le Grand 2011-12-22 20:45:11 UTC
ALG: Done, 1st version recomitted to trunk.