Bug 47204

Summary: [git] ftbfs with newer versions of librsvg that don't ship an /usr/bin/rsvg wrapper
Product: UIM Reporter: JR <zorael>
Component: libuimAssignee: uim-bugs
Status: RESOLVED FIXED QA Contact:
Severity: normal    
Priority: medium CC: zorael
Version: unspecified   
Hardware: x86-64 (AMD64)   
OS: Linux (All)   
Whiteboard:
i915 platform: i915 features:
Attachments: patch changing use of the rsvg wrapper script to instead use the real rsvg-convert binary

Description JR 2012-03-11 08:01:06 UTC
Created attachment 58285 [details] [review]
patch changing use of the rsvg wrapper script to instead use the real rsvg-convert binary

Kubuntu 12.04b1 precise amd64, UIM fresh from git as of Mar 11 (a1cfaef3). librsvg is from precise main repos and version 2.35.2.

UIM from git fails to build from source in precise with maintainer mode enabled. Recent versions of librsvg seem to deprecate the /usr/bin/rsvg script that acted as a frontend to the real binary, /usr/bin/rsvg-convert. As such configure fails to find it and maintainer mode builds can't convert the svg files to png.

Excerpt from the top of said rsvg script in librsvg 2.34.1, fetched from the repos of the previous *buntu release (11.10 oneiric);
># This python script subsumes the old 'rsvg' C-based command-line program.
># It should be considered deprecated in favor of 'rsvg-convert'.

rsvg-convert also has a different argument syntax than rsvg had, so even if you replace all mentions of rsvg with rsvg-convert, the test in pixmaps/Makefile.am:155 fails and the make process exits with errors.

It works for me after I changed AC_PATH_PROG(RSVG) in configure.ac to look for rsvg-convert instead, and changed the test in pixmaps/Makefile.am to use the new syntax. I tried AC_PATH_PROG(RSVG, rsvg rsvg-convert) -- as I gather from Googling should make it fall back to rsvg-convert if it can't find rsvg -- but I'm new to this and couldn't get it to work. The RSVG variable always ended up empty.

Please see the attached patch. I'm not sure if this is the correct approach, but it builds for me again after applying the patch to a fresh clone of master. It *theoretically* shouldn't break builds with older versions of librsvg, as rsvg-convert is present there too and rsvg is just reformatting its arguments (legacy purposes?).

I haven't done the research, but likely rsvg was the real binary some librsvg releases back until functionality was broken out into the current binaries; rsvg-convert and rsvg-view. If so, a change like this would break such builds.
Comment 1 Muneyuki Noguchi 2012-03-13 07:49:31 UTC
Patch applied, thanks.

http://code.google.com/p/uim/source/detail?r=52b5b6aa73e639cb145ea4f16ee0af4b040d78ee

Use of freedesktop.org services, including Bugzilla, is subject to our Code of Conduct. How we collect and use information is described in our Privacy Policy.