Apache OpenOffice (AOO) Bugzilla – Issue 118466
Replace SVG rendering
Last modified: 2017-05-20 10:30:48 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...
ALG: Investigating possibilities...
CCing me
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 configure.in logic to use librsvg from system/to build.
ALG: Also removed libcroco and libgsf, have to do complete testbuild. ALG: due to changes in configure.in there are additional candidates: - SYSTEM_GDKPIXBUF - SYSTEM_GLIB - SYSTEM_GETTEXT - SYSTEM_PANGO Checking if these are used outside rsvg stuff, waiting for build...
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.
ALG: libcroro, libgsf and librsvg removed, build works. I'll check in these changes.
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...
(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.
@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 https://issues.apache.org/ooo/show_bug.cgi?id=118466#c5.
ALG: Now test-removed: librsvg, libcroco, libgsf, gdk-pixbuf, glib, gettext, pango. Already removed: libcroco, libgsf
ALG: Test build (debug and non-debug) worked well, smoketest working. Preparing patch.
Created attachment 76999 [details] first step patch to remove IP clearance libs
ALG: Patch comitted, added as attachment for documentation
ALG: Removing as blocker since IP clearance basics are done and comitted
ALG: Created https://svn.apache.org/repos/asf/incubator/ooo/branches/alg/svgreplacement for further development.
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.
I tested on Mac OS X : truc:~/Desktop/apache_ooo/alg/svgreplacement/main ericb$ svn info Path: . URL: https://svn.apache.org/repos/asf/incubator/ooo/branches/alg/svgreplacement/main Repository Root: https://svn.apache.org/repos/asf 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.
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).
ALG: Done, 1st version recomitted to trunk.