Cannot build on Ubuntu 14.10
I cannot build pdfpc from git on Ubuntu 14.10 according to the instructions. I was able to circumvent the first trivial errors (exception not caught, ambiguous use of Timer) but with my utter lack of knowledge of Vala I naturally hit a roadblock pretty soon.
Here's the make output:
[ 2%] Generating paths.c, interfaces/view/prerendering.c, interfaces/view/behaviour/decoratable.c, interfaces/controllable.c, interfaces/renderer/caching.c, pdfpc.c, classes/window/presenter.c, classes/window/fullscreen.c, classes/window/presentation.c, classes/window/overview.c, classes/view/base.c, classes/view/pdf.c, classes/view/default.c, classes/view/behaviour/pdf_link.c, classes/view/behaviour/base.c, classes/options.c, classes/metadata/base.c, classes/metadata/pdf.c, classes/metadata/slides_notes.c, classes/timer_label.c, classes/renderer/cache/png/engine.c, classes/renderer/cache/png/item.c, classes/renderer/cache/base.c, classes/renderer/cache/option_factory.c, classes/renderer/cache/simple/engine.c, classes/renderer/base.c, classes/renderer/pdf.c, classes/presentation_controller.c, classes/configFileReader.c, classes/mutex_locks.c, classes/action/movie.c, classes/action/link_action.c, classes/action/action_mapping.c, classes/scaler.c, classes/cache_status.c, presenter.vapi, presenter.h, presenter_internal.h
gtk+-2.0.vapi:5926.40-5926.42: warning: Gtk is deprecated. Use gtk+-3.0
$HOME/src/pdfpc/src/classes/action/action_mapping.vala:95.21-95.23: warning: Gdk is deprecated. Use gdk-3.0
$HOME/src/pdfpc/src/classes/action/action_mapping.vala:95.42-95.44: warning: Gdk is deprecated. Use gdk-3.0
$HOME/src/pdfpc/src/classes/action/movie.vala:236.46-236.56: warning: Gst.Element.get_pad is deprecated
$HOME/src/pdfpc/src/classes/presentation_controller.vala:870.24-870.26: warning: Gdk is deprecated. Use gdk-3.0
$HOME/src/pdfpc/src/classes/view/default.vala:72.29-72.31: warning: Gdk is deprecated. Use gdk-3.0
$HOME/src/pdfpc/src/classes/view/default.vala:233.26-233.28: warning: Gdk is deprecated. Use gdk-3.0
$HOME/src/pdfpc/src/classes/view/default.vala:234.13-234.15: warning: Gdk is deprecated. Use gdk-3.0
$HOME/src/pdfpc/src/classes/mutex_locks.vala:42.37-42.41: warning: GLib.Mutex has been deprecated since glib-2.32. Use Mutex (with --target-glib=2.32)
$HOME/src/pdfpc/src/classes/renderer/pdf.vala:115.26-115.28: warning: Gdk is deprecated. Use gdk-3.0
$HOME/src/pdfpc/src/classes/renderer/pdf.vala:137.26-137.28: warning: Gdk is deprecated. Use gdk-3.0
$HOME/src/pdfpc/src/classes/view/behaviour/pdf_link.vala:60.30-60.32: warning: Gdk is deprecated. Use gdk-3.0
$HOME/src/pdfpc/src/classes/view/behaviour/pdf_link.vala:61.30-61.32: warning: Gdk is deprecated. Use gdk-3.0
$HOME/src/pdfpc/src/classes/view/behaviour/pdf_link.vala:62.30-62.32: warning: Gdk is deprecated. Use gdk-3.0
$HOME/src/pdfpc/src/classes/view/pdf.vala:92.43-92.45: warning: Gdk is deprecated. Use gdk-3.0
$HOME/src/pdfpc/src/classes/presentation_controller.vala:875.24-875.26: warning: Gdk is deprecated. Use gdk-3.0
$HOME/src/pdfpc/src/classes/presentation_controller.vala:879.26-879.28: warning: Gdk is deprecated. Use gdk-3.0
** (valac:29359): CRITICAL **: vala_data_type_copy: assertion 'self != NULL' failed
** (valac:29359): CRITICAL **: vala_data_type_copy: assertion 'self != NULL' failed
** (valac:29359): CRITICAL **: vala_data_type_copy: assertion 'self != NULL' failed
** (valac:29359): CRITICAL **: vala_data_type_copy: assertion 'self != NULL' failed
$HOME/src/pdfpc/src/classes/action/movie.vala:286.25-286.47: warning: unhandled error `GLib.RegexError'
var uriRE = new Regex("^[a-z]*://");
^^^^^^^^^^^^^^^^^^^^^^^
$HOME/src/pdfpc/src/classes/action/movie.vala:183.49-183.52: warning: Argument 1: Cannot pass null to non-null parameter type
fh = FileUtils.open_tmp(null, out tmp_fn);
^^^^
** (valac:29359): CRITICAL **: vala_data_type_copy: assertion 'self != NULL' failed
** (valac:29359): CRITICAL **: vala_data_type_copy: assertion 'self != NULL' failed
$HOME/src/pdfpc/src/classes/timer_label.vala:103.32-103.38: error: `Timeout' is an ambiguous reference between `GLib.Timeout' and `Gtk.Timeout'
this.timeout = Timeout.add( 1000, this.on_timeout );
^^^^^^^
$HOME/src/pdfpc/src/classes/window/fullscreen.vala:65.31-65.33: warning: Gdk is deprecated. Use gdk-3.0
$HOME/src/pdfpc/src/classes/window/fullscreen.vala:167.40-167.46: error: `Timeout' is an ambiguous reference between `GLib.Timeout' and `Gtk.Timeout'
this.hide_cursor_timeout = Timeout.add_seconds(
^^^^^^^
$HOME/src/pdfpc/src/classes/window/fullscreen.vala:183.25-183.27: warning: Gdk is deprecated. Use gdk-3.0
$HOME/src/pdfpc/src/classes/window/fullscreen.vala:184.25-184.27: warning: Gdk is deprecated. Use gdk-3.0
$HOME/src/pdfpc/src/classes/presentation_controller.vala:201.13-201.15: warning: Gtk is deprecated. Use gtk+-3.0
$HOME/src/pdfpc/src/classes/window/presenter.vala:273.36-273.64: warning: Rsvg.pixbuf_from_file_at_size is deprecated
$HOME/src/pdfpc/src/classes/window/presenter.vala:274.39-274.41: warning: Gtk is deprecated. Use gtk+-3.0
$HOME/src/pdfpc/src/classes/window/presenter.vala:278.39-278.41: warning: Gtk is deprecated. Use gtk+-3.0
$HOME/src/pdfpc/src/classes/window/presenter.vala:279.65-279.67: warning: Gtk is deprecated. Use gtk+-3.0
$HOME/src/pdfpc/src/classes/window/presenter.vala:283.37-283.65: warning: Rsvg.pixbuf_from_file_at_size is deprecated
$HOME/src/pdfpc/src/classes/window/presenter.vala:284.40-284.42: warning: Gtk is deprecated. Use gtk+-3.0
$HOME/src/pdfpc/src/classes/window/presenter.vala:288.40-288.42: warning: Gtk is deprecated. Use gtk+-3.0
$HOME/src/pdfpc/src/classes/window/presenter.vala:289.65-289.67: warning: Gtk is deprecated. Use gtk+-3.0
$HOME/src/pdfpc/src/classes/window/presenter.vala:293.36-293.64: warning: Rsvg.pixbuf_from_file_at_size is deprecated
$HOME/src/pdfpc/src/classes/window/presenter.vala:294.39-294.41: warning: Gtk is deprecated. Use gtk+-3.0
$HOME/src/pdfpc/src/classes/window/presenter.vala:298.39-298.41: warning: Gtk is deprecated. Use gtk+-3.0
$HOME/src/pdfpc/src/classes/window/presenter.vala:298.81-298.83: warning: Gtk is deprecated. Use gtk+-3.0
$HOME/src/pdfpc/src/classes/presentation_controller.vala:345.21-345.23: warning: Gdk is deprecated. Use gdk-3.0
$HOME/src/pdfpc/src/classes/presentation_controller.vala:363.26-363.28: warning: Gdk is deprecated. Use gdk-3.0
$HOME/src/pdfpc/src/classes/presentation_controller.vala:364.26-364.28: warning: Gdk is deprecated. Use gdk-3.0
$HOME/src/pdfpc/src/classes/presentation_controller.vala:365.46-365.48: warning: Gdk is deprecated. Use gdk-3.0
$HOME/src/pdfpc/src/classes/presentation_controller.vala:370.26-370.28: warning: Gdk is deprecated. Use gdk-3.0
$HOME/src/pdfpc/src/classes/presentation_controller.vala:371.26-371.28: warning: Gdk is deprecated. Use gdk-3.0
$HOME/src/pdfpc/src/classes/presentation_controller.vala:372.46-372.48: warning: Gdk is deprecated. Use gdk-3.0
$HOME/src/pdfpc/src/classes/window/overview.vala:299.45-299.60: error: Argument 1: Cannot pass out argument to non-output parameter
this.cache.retrieve(0).get_size(out pixmap_width, out pixmap_height);
^^^^^^^^^^^^^^^^
$HOME/src/pdfpc/src/classes/window/overview.vala:300.30-300.32: warning: Gdk is deprecated. Use gdk-3.0
$HOME/src/pdfpc/src/classes/window/overview.vala:300.41-300.43: warning: Gdk is deprecated. Use gdk-3.0
$HOME/src/pdfpc/src/classes/window/overview.vala:301.13-301.15: warning: Gdk is deprecated. Use gdk-3.0
$HOME/src/pdfpc/src/classes/window/overview.vala:305.53-305.55: warning: Gdk is deprecated. Use gdk-3.0
$HOME/src/pdfpc/src/classes/renderer/cache/png/engine.vala:45.37-45.41: warning: GLib.Mutex has been deprecated since glib-2.32. Use Mutex (with --target-glib=2.32)
$HOME/src/pdfpc/src/classes/renderer/cache/png/engine.vala:63.30-63.45: error: Argument 1: Cannot pass out argument to non-output parameter
pixmap.get_size( out pixmap_width, out pixmap_height );
^^^^^^^^^^^^^^^^
$HOME/src/pdfpc/src/classes/renderer/cache/png/engine.vala:124.30-124.32: warning: Gdk is deprecated. Use gdk-3.0
$HOME/src/pdfpc/src/classes/renderer/cache/png/engine.vala:131.26-131.28: warning: Gdk is deprecated. Use gdk-3.0
$HOME/src/pdfpc/src/classes/renderer/cache/png/engine.vala:132.13-132.15: warning: Gdk is deprecated. Use gdk-3.0
$HOME/src/pdfpc/src/classes/renderer/cache/simple/engine.vala:43.37-43.41: warning: GLib.Mutex has been deprecated since glib-2.32. Use Mutex (with --target-glib=2.32)
$HOME/src/pdfpc/src/classes/window/overview.vala:413.26-413.28: warning: Gdk is deprecated. Use gdk-3.0
$HOME/src/pdfpc/src/classes/window/overview.vala:414.17-414.19: warning: Gdk is deprecated. Use gdk-3.0
$HOME/src/pdfpc/src/classes/window/overview.vala:417.17-417.19: warning: Gdk is deprecated. Use gdk-3.0
$HOME/src/pdfpc/src/classes/presentation_controller.vala:277.17-277.41: warning: Gee.Map.contains is deprecated
$HOME/src/pdfpc/src/classes/presentation_controller.vala:301.17-301.41: warning: Gee.Map.contains is deprecated
$HOME/src/pdfpc/src/pdfpc.vala:140.13-140.15: warning: Gdk is deprecated. Use gdk-3.0
$HOME/src/pdfpc/src/pdfpc.vala:141.13-141.15: warning: Gtk is deprecated. Use gtk+-3.0
$HOME/src/pdfpc/src/classes/configFileReader.vala:29.39-29.41: warning: Gdk is deprecated. Use gdk-3.0
$HOME/src/pdfpc/src/classes/configFileReader.vala:30.41-30.43: warning: Gdk is deprecated. Use gdk-3.0
$HOME/src/pdfpc/src/classes/configFileReader.vala:31.41-31.43: warning: Gdk is deprecated. Use gdk-3.0
$HOME/src/pdfpc/src/classes/configFileReader.vala:48.40-48.42: warning: Gdk is deprecated. Use gdk-3.0
$HOME/src/pdfpc/src/classes/configFileReader.vala:51.40-51.42: warning: Gdk is deprecated. Use gdk-3.0
$HOME/src/pdfpc/src/classes/configFileReader.vala:55.40-55.42: warning: Gdk is deprecated. Use gdk-3.0
$HOME/src/pdfpc/src/classes/configFileReader.vala:73.36-73.38: warning: Gdk is deprecated. Use gdk-3.0
$HOME/src/pdfpc/src/classes/configFileReader.vala:88.36-88.38: warning: Gdk is deprecated. Use gdk-3.0
$HOME/src/pdfpc/src/classes/configFileReader.vala:128.30-128.49: warning: unhandled error `GLib.RegexError'
var splitRegex = new Regex("\\s\\s*");
^^^^^^^^^^^^^^^^^^^^
$HOME/src/pdfpc/src/classes/configFileReader.vala:129.32-129.52: warning: unhandled error `GLib.RegexError'
var commentRegex = new Regex("\\s*#.*$");
^^^^^^^^^^^^^^^^^^^^^
$HOME/src/pdfpc/src/pdfpc.vala:182.26-182.28: warning: Gdk is deprecated. Use gdk-3.0
$HOME/src/pdfpc/src/pdfpc.vala:222.13-222.15: warning: Gdk is deprecated. Use gdk-3.0
$HOME/src/pdfpc/src/pdfpc.vala:223.13-223.15: warning: Gtk is deprecated. Use gtk+-3.0
$HOME/src/pdfpc/src/pdfpc.vala:224.13-224.15: warning: Gdk is deprecated. Use gdk-3.0
Compilation failed: 4 error(s), 72 warning(s)
src/CMakeFiles/pdfpc.dir/build.make:87: recipe for target 'src/paths.c' failed
make[2]: *** [src/paths.c] Error 1
CMakeFiles/Makefile2:107: recipe for target 'src/CMakeFiles/pdfpc.dir/all' failed
make[1]: *** [src/CMakeFiles/pdfpc.dir/all] Error 2
Makefile:113: recipe for target 'all' failed
make: *** [all] Error 2
Got the same result on Linux Mint 17.1 which is based on Ubuntu 14.04.
The good news is that there are only four fatal errors in that mess of output: Two about the Timer issues (change to GLib.Timer) and two about the arguments to get_size(). This latter one seems to have been caused by an error introduced to the gdk vapi file between valac 0.20 and 0.22. I guess we could report that, but....
The bigger problem is that pdfpc is still using gtk2 and gdk2, while the rest of the world has moved on to version 3. I'm sure the version 2 bindings will continue to bit rot in the future. Really, we should update pdfpc to gtk3. Unfortunately, one of the big changes in the 2 to 3 transition was how bitmaps were handled. For most applications, this was a minor detail. For pdfpc, this is a major issue.
For the time being, you can still compile pdfpc with valac 0.20. It's available in the Ubuntu repositories for 14.04 and 14.10 as valac-0.20. Once it's installed, you can switch to using it by default by running sudo update-alternatives --set valac /usr/bin/valac-0.20.
Yeah, I guess all those deprecation warnings don't bode well for the future :/ But thank you so much for that quick fix. I will have a -n option for my upcoming presentation, that's more than I was hoping for really :)
The build as such seems to run fine, except for some comparatively minor issues like some weird placement issues that look like a font/dpi scaling problem and pdfpc only counting every other slide and only displaying those in the overview ... ok, that last one is kind of a bummer. But either way, those seem unrelated to this issue to me so if you want to close this, you can.