Created attachment 114 [details] Patch for the INSTALL file, fixing the outdated version requirement Upon building pulseview on a system with glibmm version 2.32.1 (which is above the current requirement of having libglib 2.28.0, which implies a version of glibmm at least as low as 2.28.0), I get a build error: @raspberrypi ~/sigrok/pulseview27-jan-15/pulseview $ make [ 1%] Generating qrc_pulseview.cxx [ 1%] Generating pv/moc_mainwindow.cxx [ 2%] Generating pv/moc_session.cxx [ 2%] Generating pv/moc_storesession.cxx [ 3%] Generating pv/dialogs/moc_about.cxx [ 4%] Generating pv/dialogs/moc_connect.cxx [ 4%] Generating pv/dialogs/moc_storeprogress.cxx [ 5%] Generating pv/popups/moc_channels.cxx [ 6%] Generating pv/popups/moc_deviceoptions.cxx [ 6%] Generating pv/prop/moc_bool.cxx [ 7%] Generating pv/prop/moc_double.cxx [ 7%] Generating pv/prop/moc_enum.cxx [ 8%] Generating pv/prop/moc_int.cxx [ 9%] Generating pv/prop/moc_property.cxx [ 9%] Generating pv/prop/moc_string.cxx [ 10%] Generating pv/prop/binding/moc_deviceoptions.cxx [ 11%] Generating pv/toolbars/moc_mainbar.cxx [ 11%] Generating pv/view/moc_cursor.cxx [ 12%] Generating pv/view/moc_flag.cxx [ 12%] Generating pv/view/moc_header.cxx [ 13%] Generating pv/view/moc_logicsignal.cxx [ 14%] Generating pv/view/moc_marginwidget.cxx [ 14%] Generating pv/view/moc_rowitem.cxx [ 15%] Generating pv/view/moc_ruler.cxx [ 16%] Generating pv/view/moc_signal.cxx [ 16%] Generating pv/view/moc_timeitem.cxx [ 17%] Generating pv/view/moc_timemarker.cxx [ 17%] Generating pv/view/moc_trace.cxx [ 18%] Generating pv/view/moc_tracegroup.cxx [ 19%] Generating pv/view/moc_view.cxx [ 19%] Generating pv/view/moc_viewitem.cxx [ 20%] Generating pv/view/moc_viewport.cxx [ 21%] Generating pv/view/moc_viewwidget.cxx [ 21%] Generating pv/widgets/moc_colourbutton.cxx [ 22%] Generating pv/widgets/moc_colourpopup.cxx [ 23%] Generating pv/widgets/moc_devicetoolbutton.cxx [ 23%] Generating pv/widgets/moc_hidingmenubar.cxx [ 24%] Generating pv/widgets/moc_popup.cxx [ 24%] Generating pv/widgets/moc_popuptoolbutton.cxx [ 25%] Generating pv/widgets/moc_sweeptimingwidget.cxx [ 26%] Generating pv/widgets/moc_wellarray.cxx [ 26%] Generating moc_signalhandler.cxx [ 27%] Generating pv/data/moc_decoderstack.cxx [ 28%] Generating pv/view/moc_decodetrace.cxx [ 28%] Generating pv/widgets/moc_decodergroupbox.cxx [ 29%] Generating pv/widgets/moc_decodermenu.cxx [ 29%] Generating ui_about.h Scanning dependencies of target pulseview [ 30%] Building CXX object CMakeFiles/pulseview.dir/main.cpp.o [ 30%] Building CXX object CMakeFiles/pulseview.dir/pv/application.cpp.o [ 31%] Building CXX object CMakeFiles/pulseview.dir/pv/devicemanager.cpp.o [ 32%] Building CXX object CMakeFiles/pulseview.dir/pv/mainwindow.cpp.o [ 32%] Building CXX object CMakeFiles/pulseview.dir/pv/session.cpp.o [ 33%] Building CXX object CMakeFiles/pulseview.dir/pv/storesession.cpp.o [ 33%] Building CXX object CMakeFiles/pulseview.dir/pv/util.cpp.o [ 34%] Building CXX object CMakeFiles/pulseview.dir/pv/data/analog.cpp.o [ 35%] Building CXX object CMakeFiles/pulseview.dir/pv/data/analogsegment.cpp.o [ 35%] Building CXX object CMakeFiles/pulseview.dir/pv/data/logic.cpp.o [ 36%] Building CXX object CMakeFiles/pulseview.dir/pv/data/logicsegment.cpp.o [ 37%] Building CXX object CMakeFiles/pulseview.dir/pv/data/signaldata.cpp.o [ 37%] Building CXX object CMakeFiles/pulseview.dir/pv/data/segment.cpp.o [ 38%] Building CXX object CMakeFiles/pulseview.dir/pv/dialogs/about.cpp.o [ 38%] Building CXX object CMakeFiles/pulseview.dir/pv/dialogs/connect.cpp.o [ 39%] Building CXX object CMakeFiles/pulseview.dir/pv/dialogs/storeprogress.cpp.o [ 40%] Building CXX object CMakeFiles/pulseview.dir/pv/popups/deviceoptions.cpp.o [ 40%] Building CXX object CMakeFiles/pulseview.dir/pv/popups/channels.cpp.o [ 41%] Building CXX object CMakeFiles/pulseview.dir/pv/prop/bool.cpp.o [ 42%] Building CXX object CMakeFiles/pulseview.dir/pv/prop/double.cpp.o [ 42%] Building CXX object CMakeFiles/pulseview.dir/pv/prop/enum.cpp.o [ 43%] Building CXX object CMakeFiles/pulseview.dir/pv/prop/int.cpp.o [ 44%] Building CXX object CMakeFiles/pulseview.dir/pv/prop/property.cpp.o [ 44%] Building CXX object CMakeFiles/pulseview.dir/pv/prop/string.cpp.o [ 45%] Building CXX object CMakeFiles/pulseview.dir/pv/prop/binding/binding.cpp.o [ 45%] Building CXX object CMakeFiles/pulseview.dir/pv/prop/binding/deviceoptions.cpp.o [ 46%] Building CXX object CMakeFiles/pulseview.dir/pv/toolbars/mainbar.cpp.o /home/pi/sigrok/pulseview27-jan-15/pulseview/pv/toolbars/mainbar.cpp: In member function ‘void pv::toolbars::MainBar::update_sample_rate_selector()’: /home/pi/sigrok/pulseview27-jan-15/pulseview/pv/toolbars/mainbar.cpp:228:6: error: no match for ‘operator!’ (operand type is ‘Glib::VariantContainerBase’) if (!gvar_dict) { ^ /home/pi/sigrok/pulseview27-jan-15/pulseview/pv/toolbars/mainbar.cpp:228:6: note: candidate is: /home/pi/sigrok/pulseview27-jan-15/pulseview/pv/toolbars/mainbar.cpp:228:6: note: operator!(bool) <built-in> /home/pi/sigrok/pulseview27-jan-15/pulseview/pv/toolbars/mainbar.cpp:228:6: note: no known conversion for argument 1 from ‘Glib::VariantContainerBase’ to ‘bool’ /home/pi/sigrok/pulseview27-jan-15/pulseview/pv/toolbars/mainbar.cpp: In member function ‘void pv::toolbars::MainBar::update_sample_count_selector()’: /home/pi/sigrok/pulseview27-jan-15/pulseview/pv/toolbars/mainbar.cpp:331:12: error: could not convert ‘gvar’ from ‘Glib::VariantContainerBase’ to ‘bool’ if (gvar) ^ CMakeFiles/pulseview.dir/build.make:918: recipe for target 'CMakeFiles/pulseview.dir/pv/toolbars/mainbar.cpp.o' failed make[2]: *** [CMakeFiles/pulseview.dir/pv/toolbars/mainbar.cpp.o] Error 1 CMakeFiles/Makefile2:60: recipe for target 'CMakeFiles/pulseview.dir/all' failed make[1]: *** [CMakeFiles/pulseview.dir/all] Error 2 Makefile:133: recipe for target 'all' failed make: *** [all] Error 2 pi@raspberrypi ~/sigrok/pulseview27-jan-15/pulseview $ Basically, this came down to a C++ object from the Glib library called Glib::VariantContainerBase. The code expects the object to return a bool that indicates (in this application) whether or not a sample rate was selected, something that only was implemented after version 2.36, according to Glib's documentation here: https://developer.gnome.org/glibmm/stable/classGlib_1_1VariantBase.html#a5b02a861503f991df8af088aa63ee22b So the proposed solution is to increase the minimum version requirement, something which I have done in the attached file. For extra details, here is a list of the versions I had installed for every pulseview and libsigrok requirement: pi@raspberrypi ~/sigrok/pulseview27-jan-15/pulseview $ apt-show-versions git-core g++ make cmake libtool pkg-config \ > libglib2.0-dev libqt4-dev libboost-test-dev libboost-thread-dev\ > libboost-filesystem-dev libboost-system-dev git-core gcc g++ make autoconf autoconf-archive \ > automake libtool pkg-config libglib2.0-dev libglibmm-2.4-dev libzip-dev \ > libusb-1.0-0-dev libftdi-dev check doxygen python-numpy\ > python-dev python-gi-dev python-setuptools swig default-jdk autoconf/wheezy uptodate 2.69-1 autoconf-archive/wheezy uptodate 20111221-2 automake/wheezy uptodate 1:1.11.6-1 check/wheezy uptodate 0.9.8-2 cmake/wheezy uptodate 2.8.9-1 default-jdk/wheezy uptodate 1:1.6-47 doxygen/wheezy uptodate 1.8.1.2-2 g++/wheezy uptodate 4:4.6.3-8 gcc/wheezy uptodate 4:4.6.3-8 git-core/wheezy uptodate 1:1.7.10.4-1+wheezy1+rpi2 libboost-filesystem-dev/jessie uptodate 1.55.0.2 libboost-system-dev/jessie uptodate 1.55.0.2 libboost-test-dev/jessie uptodate 1.55.0.2 libboost-thread-dev/jessie uptodate 1.55.0.2 libftdi-dev/wheezy uptodate 0.20-1 libglib2.0-dev/wheezy uptodate 2.40.0-3rpi3rpi1 libglibmm-2.4-dev/wheezy uptodate 2.32.1-1 libqt4-dev/wheezy uptodate 4:4.8.2+dfsg-11+rpi1 libtool/wheezy uptodate 2.4.2-1.1 libusb-1.0-0-dev/jessie uptodate 2:1.0.19-1 libzip-dev/wheezy uptodate 0.10.1-1.1 make/wheezy uptodate 4.0-7rpi2 pkg-config/wheezy uptodate 0.26-1 python-dev/wheezy uptodate 2.7.3-4+deb7u1 python-gi-dev/wheezy uptodate 3.8.2-1+rpi1rpi2 python-numpy/wheezy uptodate 1:1.6.2-1.2 python-setuptools/wheezy uptodate 0.6.24-1 swig/wheezy uptodate 2.0.7-3 Extra information, including the output of cmake . and sigrok-cli is available in the following URL: http://pastebin.com/gAyAK7Jb
Fixed in 0aff286e72c0fb99e2dfeed565a8f5470b2296f0, by using a workaround to avoid having to depend on a much more recent glibmm than we do now. Tested on a Debian stable system (glibmm 2.32.1 and Boost 1.49).