Build Fails on Ubuntu 20.04 [valac-0.48.18]
What Happened
I am trying to install code but it has a dependency which in turn depends on granite v6.0.0.
When I switch to 6.0.0 (and also on master), build fails on ninja.
Expected Behavior
Build succeeds and installs granite 6.0.0
Steps to Reproduce
- Clone this repo
- Install the dependencies
- Add the vala team repository ref
- Install valac (check that version is >= 0.48.7; ref: #442) I could not figure out a way to get exactly valac 0.48.7. If anybody can help with this, I will test with this version and report if that works.
- meson build --prefix=/usr
- cd build
- ninja
Logs
[1/74] Compiling Vala source ../lib/Application.vala ../lib/DateTime.vala ../lib/Constant...dEntry.vala ../lib/Widgets/WelcomeButton.vala ../lib/Widgets/Welcome.vala lib/Config.vala
FAILED: lib/libgranite.so.6.0.0.p/Application.c lib/libgranite.so.6.0.0.p/DateTime.c lib/libgranite.so.6.0.0.p/Constants.c lib/libgranite.so.6.0.0.p/Drawing/BufferSurface.c lib/libgranite.so.6.0.0.p/Drawing/Color.c lib/libgranite.so.6.0.0.p/Drawing/Utilities.c lib/libgranite.so.6.0.0.p/Services/Application.c lib/libgranite.so.6.0.0.p/Services/AsyncMutex.c lib/libgranite.so.6.0.0.p/Services/ContractorProxy.c lib/libgranite.so.6.0.0.p/Services/IconFactory.c lib/libgranite.so.6.0.0.p/Services/Logger.c lib/libgranite.so.6.0.0.p/Services/Paths.c lib/libgranite.so.6.0.0.p/Services/Settings.c lib/libgranite.so.6.0.0.p/Services/SimpleCommand.c lib/libgranite.so.6.0.0.p/Services/System.c lib/libgranite.so.6.0.0.p/Widgets/AbstractSettingsPage.c lib/libgranite.so.6.0.0.p/Widgets/AbstractSimpleSettingsPage.c lib/libgranite.so.6.0.0.p/Widgets/AccelLabel.c lib/libgranite.so.6.0.0.p/Widgets/AlertView.c lib/libgranite.so.6.0.0.p/Widgets/AsyncImage.c lib/libgranite.so.6.0.0.p/Widgets/Avatar.c lib/libgranite.so.6.0.0.p/Widgets/CellRendererBadge.c lib/libgranite.so.6.0.0.p/Widgets/CellRendererExpander.c lib/libgranite.so.6.0.0.p/Widgets/CollapsiblePaned.c lib/libgranite.so.6.0.0.p/Widgets/CompositedWindow.c lib/libgranite.so.6.0.0.p/Widgets/DatePicker.c lib/libgranite.so.6.0.0.p/Widgets/Dialog.c lib/libgranite.so.6.0.0.p/Widgets/DynamicNotebook.c lib/libgranite.so.6.0.0.p/Widgets/HeaderLabel.c lib/libgranite.so.6.0.0.p/Widgets/MessageDialog.c lib/libgranite.so.6.0.0.p/Widgets/ModeButton.c lib/libgranite.so.6.0.0.p/Widgets/ModeSwitch.c lib/libgranite.so.6.0.0.p/Widgets/OverlayBar.c lib/libgranite.so.6.0.0.p/Widgets/SeekBar.c lib/libgranite.so.6.0.0.p/Widgets/SettingsSidebarRow.c lib/libgranite.so.6.0.0.p/Widgets/SettingsSidebar.c lib/libgranite.so.6.0.0.p/Widgets/Settings.c lib/libgranite.so.6.0.0.p/Widgets/SourceList.c lib/libgranite.so.6.0.0.p/Widgets/StorageBar.c lib/libgranite.so.6.0.0.p/Widgets/SwitchModelButton.c lib/libgranite.so.6.0.0.p/Widgets/TimePicker.c lib/libgranite.so.6.0.0.p/Widgets/Toast.c lib/libgranite.so.6.0.0.p/Widgets/Utils.c lib/libgranite.so.6.0.0.p/Widgets/ValidatedEntry.c lib/libgranite.so.6.0.0.p/Widgets/WelcomeButton.c lib/libgranite.so.6.0.0.p/Widgets/Welcome.c lib/libgranite.so.6.0.0.p/Config.c lib/granite.h lib/granite.vapi lib/Granite-1.0.gir
valac -C --debug --debug --define=LINUX --abi-stability --hide-internal --target-glib=2.50 --pkg posix --pkg gtk+-3.0 --pkg gobject-2.0 --target-glib 2.50 --pkg glib-2.0 --pkg gio-unix-2.0 --pkg gio-2.0 --pkg gee-0.8 --color=always --directory lib/libgranite.so.6.0.0.p --basedir ../lib --library granite --header lib/granite.h --vapi ../granite.vapi --gir ../Granite-1.0.gir ../lib/Application.vala ../lib/DateTime.vala ../lib/Constants.vala ../lib/Drawing/BufferSurface.vala ../lib/Drawing/Color.vala ../lib/Drawing/Utilities.vala ../lib/Services/Application.vala ../lib/Services/AsyncMutex.vala ../lib/Services/ContractorProxy.vala ../lib/Services/IconFactory.vala ../lib/Services/Logger.vala ../lib/Services/Paths.vala ../lib/Services/Settings.vala ../lib/Services/SimpleCommand.vala ../lib/Services/System.vala ../lib/Widgets/AbstractSettingsPage.vala ../lib/Widgets/AbstractSimpleSettingsPage.vala ../lib/Widgets/AccelLabel.vala ../lib/Widgets/AlertView.vala ../lib/Widgets/AsyncImage.vala ../lib/Widgets/Avatar.vala ../lib/Widgets/CellRendererBadge.vala ../lib/Widgets/CellRendererExpander.vala ../lib/Widgets/CollapsiblePaned.vala ../lib/Widgets/CompositedWindow.vala ../lib/Widgets/DatePicker.vala ../lib/Widgets/Dialog.vala ../lib/Widgets/DynamicNotebook.vala ../lib/Widgets/HeaderLabel.vala ../lib/Widgets/MessageDialog.vala ../lib/Widgets/ModeButton.vala ../lib/Widgets/ModeSwitch.vala ../lib/Widgets/OverlayBar.vala ../lib/Widgets/SeekBar.vala ../lib/Widgets/SettingsSidebarRow.vala ../lib/Widgets/SettingsSidebar.vala ../lib/Widgets/Settings.vala ../lib/Widgets/SourceList.vala ../lib/Widgets/StorageBar.vala ../lib/Widgets/SwitchModelButton.vala ../lib/Widgets/TimePicker.vala ../lib/Widgets/Toast.vala ../lib/Widgets/Utils.vala ../lib/Widgets/ValidatedEntry.vala ../lib/Widgets/WelcomeButton.vala ../lib/Widgets/Welcome.vala lib/Config.vala
../lib/Drawing/Color.vala:110.32-110.46: warning: `Gdk.Color' has been deprecated since 3.14
../lib/Services/Settings.vala:343.51-343.112: warning: Access to possible `null'. Perform a check or use an unsafe cast.
success = schema.set_string (key, (val.get_object () as SettingsSerializable).settings_serialize ());
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
../lib/Services/Settings.vala:261.17-261.80: warning: Access to possible `null'. Perform a check or use an unsafe cast.
(val.get_object () as SettingsSerializable).settings_deserialize (schema.get_string (key));
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
../lib/Widgets/CellRendererBadge.vala:32.1-32.65: error: `Granite.Widgets.CellRendererBadge' does not implement abstract method `Gtk.CellRenderer.get_size'
public class Granite.Widgets.CellRendererBadge : Gtk.CellRenderer {
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
../lib/Widgets/CellRendererExpander.vala:29.1-29.68: error: `Granite.Widgets.CellRendererExpander' does not implement abstract method `Gtk.CellRenderer.get_size'
public class Granite.Widgets.CellRendererExpander : Gtk.CellRenderer {
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
../lib/Widgets/Dialog.vala:67.31-67.45: warning: `Gtk.Dialog.get_action_area' has been deprecated since 3.12
../lib/Widgets/DynamicNotebook.vala:966.27-966.56: warning: Access to possible `null'. Perform a check or use an unsafe cast.
var new_tab = (page as TabPageContainer).tab;
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
../lib/Widgets/DynamicNotebook.vala:981.21-981.50: warning: Access to possible `null'. Perform a check or use an unsafe cast.
var t = (page as TabPageContainer).tab;
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
../lib/Widgets/DynamicNotebook.vala:1014.21-1014.96: warning: Access to possible `null'. Perform a check or use an unsafe cast.
if ((this.notebook.get_tab_label (this.notebook.get_nth_page (i)) as Tab).pinned) {
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
../lib/Widgets/DynamicNotebook.vala:1022.25-1022.100: warning: Access to possible `null'. Perform a check or use an unsafe cast.
if ((this.notebook.get_tab_label (this.notebook.get_nth_page (i)) as Tab).pinned) {
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
../lib/Widgets/DynamicNotebook.vala:1041.21-1041.96: warning: Access to possible `null'. Perform a check or use an unsafe cast.
if ((this.notebook.get_tab_label (this.notebook.get_nth_page (i)) as Tab).pinned) {
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
../lib/Widgets/DynamicNotebook.vala:1063.13-1063.41: warning: `Gtk.Container.resize_children' has been deprecated since 3.10
../lib/Widgets/DynamicNotebook.vala:989.21-989.50: warning: Access to possible `null'. Perform a check or use an unsafe cast.
var t = (page as TabPageContainer).tab;
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
../lib/Widgets/DynamicNotebook.vala:997.28-997.57: warning: Access to possible `null'. Perform a check or use an unsafe cast.
tab_reordered ((page as TabPageContainer).tab, (int) pagenum);
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
../lib/Widgets/DynamicNotebook.vala:1115.30-1115.66: warning: Access to possible `null'. Perform a check or use an unsafe cast.
list.append ((child as Gtk.Container).get_children ().nth_data (0));
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
../lib/Widgets/DynamicNotebook.vala:164.26-164.67: warning: Access to possible `null'. Perform a check or use an unsafe cast.
get { return (get_parent () as Gtk.Notebook).get_parent () as DynamicNotebook; }
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
../lib/Widgets/DynamicNotebook.vala:45.26-45.67: warning: Access to possible `null'. Perform a check or use an unsafe cast.
get { return (get_parent () as Gtk.Notebook).get_parent () as DynamicNotebook; }
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
../lib/Widgets/SourceList.vala:1513.5-1513.55: error: `Granite.Widgets.SourceList.CellRendererSpacer' does not implement abstract method `Gtk.CellRenderer.get_size'
private class CellRendererSpacer : Gtk.CellRenderer {
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Compilation failed: 3 error(s), 15 warning(s)
ninja: build stopped: subcommand failed.
Platform Information
Ubuntu 20.04 (fresh install in a VM) meson 0.58.1 granite v6.0.0 (compiled from source); same issue on the latest commit too
Want to back this issue? Post a bounty on it! We accept bounties via Bountysource.
same what i find https://valadoc.org/gtk+-3.0/Gtk.CellRenderer.get_size.html
i build it but i just implement methods with hardcode values)
as we can see, they remove it https://github.com/elementary/granite/commit/335ce9ab78553423c33bd20d8acfee787f5d1d42 may bee we need update gtk to newer version
i install newer version of vala from site with ppa, then use apt upgrade and then just try rebuild master version, and it's ok.
Cannot reproduce in OS 7.