Inkscape build problem on Fedora rawhide(f25)

Bug #1567485 reported by Gwyn Ciesla on 2016-04-07
This bug affects 1 person
Affects Status Importance Assigned to Milestone

Bug Description

The following affects both 0.91 and trunk. . .

g++ -DHAVE_CONFIG_H -I. -I.. -I../cxxtest -I./extension/dbus -I/usr/include/freetype2 -pthread -I/usr/include/gnome-vfs-2.0 -I/usr/lib64/gnome-vfs-2.0/include -I/usr/include/gconf/2 -I.................c -o ui/clipboard.o ui/clipboard.cpp
In file included from ./2geom/geom.h:43:0,
                 from ./snapped-point.h:17,
                 from ./snapper.h:20,
                 from ./line-snapper.h:13,
                 from ./guide-snapper.h:14,
                 from ./snap.h:21,
                 from ./sp-namedview.h:21,
                 from ui/clipboard.cpp:84:
./2geom/line.h: In member function 'void Geom::Line::setPoints(const Geom::Point&, const Geom::Point&)':
./2geom/line.h:148:13: warning: statement is indented as if it were guarded by... [-Wmisleading-indentation]
./2geom/line.h:146:9: note: ...this 'else' clause, but it is not
ui/clipboard.cpp: In member function 'void Inkscape::UI::ClipboardManagerImpl::_inkscape_wait_for_targets(std::__cxx11::list<Glib::ustring>&)':
ui/clipboard.cpp:1405:22: error: 'ScopedPtr' is not a member of 'Glib'
             target = Glib::ScopedPtr<char>(atom_name).get(); //This frees the gchar*.
ui/clipboard.cpp:1405:38: error: expected primary-expression before 'char'
             target = Glib::ScopedPtr<char>(atom_name).get(); //This frees the gchar*.
Makefile:8045: recipe for target 'ui/clipboard.o' failed

Mc (mc...) wrote :


Which version of libglibmm do you have ?

su_v (suv-lp) on 2016-04-07
tags: added: build
Gwyn Ciesla (limburgher) wrote :


Mc (mc...) wrote :

I just saw that ScopedPtr was deprecated (an unavailable with GLIBMM_DISABLE_DEPRECATED)... recommends replacing with make_unique_ptr_gfree , but that probably require c++11.

so replacing

target = Glib::ScopedPtr<char>(atom_name).get();


target = Glib::make_unique_ptr_gfree(atom_name).get();

might be enough to compile.

Also, the whole_inkscape_wait_for_targets function was a workaround to a bug in gtkmm :

// GTKMM's clipboard::wait_for_targets is buggy and might return bogus, see
// for details. Until this has been fixed upstream we will use our own implementation

does anyone know if the underlying function was fixed ? This way we can just throw away the whole function and use Glib::wait_for_targets instead

Mc (mc...) wrote :

Update : since it seems fixed since glibmm2.16 (2009) we could just remove that part

( )

Gwyn Ciesla (limburgher) wrote :

Yes, that path applies cleany and fixes the build. Thanks!

Gwyn Ciesla (limburgher) wrote :

Cleanly. Oy. :)

Mc (mc...) wrote :

Pushed to rev 14766.

Changed in inkscape:
status: New → Fix Committed
assignee: nobody → Mc (mc...)
milestone: none → 0.92
su_v (suv-lp) wrote :

AFAICT rev 14766 may break experimental GTK3 build - it did succeed with attached diff; no runtime tests have been done though. Please review.

Mc (mc...) wrote :

Problem confirmed, patch compiled, tested, and committed (14768). Thanks su_v !

su_v (suv-lp) on 2016-04-09
tags: added: backport-proposed
Alex Valavanis (valavanisalex) wrote :

This has now hit the stable PPA for Ubuntu Yakkety, so bumping to high priority for backport

Changed in inkscape:
importance: Undecided → High
DHermit (dhermit) wrote :

I accidentially clicked on the status, but now have no rights to reverse it ... could anyone with more rights fix this?

Changed in inkscape:
status: Fix Committed → Fix Released
jazzynico (jazzynico) on 2016-10-03
Changed in inkscape:
status: Fix Released → Fix Committed
Martin Owens (doctormo) wrote :

Gtk3 fixes are not being backported, 0.92 is a Gtk2 release.

tags: removed: backport-proposed
Bryce Harrington (bryce) on 2017-01-10
Changed in inkscape:
status: Fix Committed → Fix Released
To post a comment you must log in.
This report contains Public information  Edit
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.