Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat: add Ubuntu build requirements to README.md #1533

Merged
merged 1 commit into from
Feb 26, 2025

Conversation

blipp
Copy link
Contributor

@blipp blipp commented Feb 25, 2025

This is a work-in-progress to adapt the build instructions for Ubuntu, when building manually on the command line.

In the ninja step, I am still getting an error message: error: The name 'Spinner' does not exist in the context of 'Adw' (libadwaita-1).

In the meanwhile, I switched to using GNOME Builder, which works for me.

Full log of ninja:

[1/188] Compiling Vala source ../core/Enum.vala ../core/Constants.vala ../core/QuickAdd.vala ../core/Util/Util.vala ../core/Util/Datetime.vala ../core/Util/Migrate.vala ../core/Services/Settings.vala ../core/Services/EventBus.vala ../core/Services/Database.vala ../core/Services/Store.vala ../core/Services/Todoist.vala ../core/Services/CalDAV/Core.vala ../core/Services/CalDAV/Providers/ProviderBase.vala ../core/Services/CalDAV/Providers/Nextcloud.vala ../core/Services/CalDAV/Providers/Radicale.vala ../core/Services/Chrono/Chrono.vala ../core/Services/Chrono/Enum.vala ../core/Services/Chrono/Types.vala ../core/Services/Chrono/Locales/En/En.vala ../core/Services/Chrono/Locales/En/Constants.vala ../core/Services/Chrono/Locales/En/Parsers/ENCasualDateParser.vala ../core/Layouts/HeaderItem.vala ../core/Widgets/LoadingButton.vala ../core/Widgets/Entries.vala ../core/Widgets/IconColorProject.vala ../core/Widgets/PinButton.vala ../core/Widgets/PriorityButton.vala ../core/Widgets/ItemLabels.vala ../core/Widgets/ItemLabelChild.vala ../core/Widgets/CircularProgressBar.vala ../core/Widgets/StatusButton.vala ../core/Widgets/LabelsPickerCore.vala ../core/Widgets/Calendar/Calendar.vala ../core/Widgets/Calendar/CalendarDay.vala ../core/Widgets/Calendar/CalendarHeader.vala ../core/Widgets/Calendar/CalendarView.vala ../core/Widgets/Calendar/CalendarWeek.vala ../core/Widgets/ContextMenu/MenuItem.vala ../core/Widgets/ContextMenu/MenuSeparator.vala ../core/Widgets/ContextMenu/MenuPicker.vala ../core/Widgets/ContextMenu/MenuCheckPicker.vala ../core/Widgets/ContextMenu/MenuSwitch.vala ../core/Widgets/DateTimePicker/ScheduleButton.vala ../core/Widgets/DateTimePicker/DateTimePicker.vala ../core/Widgets/DateTimePicker/TimePicker.vala ../core/Widgets/DateTimePicker/RepeatConfig.vala ../core/Widgets/LabelPicker/LabelPicker.vala ../core/Widgets/LabelPicker/LabelRow.vala ../core/Widgets/LabelPicker/LabelButton.vala ../core/Widgets/ProjectPicker/ProjectPickerPopover.vala ../core/Widgets/ProjectPicker/ProjectPickerRow.vala ../core/Widgets/ProjectPicker/ProjectPickerButton.vala ../core/Widgets/ProjectPicker/SectionPickerRow.vala ../core/Widgets/SectionPicker/SectionButton.vala ../core/Widgets/SectionPicker/SectionPicker.vala ../core/Widgets/SectionPicker/SectionPickerRow.vala ../core/Widgets/ReminderPicker/ReminderButton.vala ../core/Widgets/ReminderPicker/ReminderPicker.vala ../core/Widgets/ReminderPicker/ReminderRow.vala ../core/Widgets/Markdown/MarkdownEditView.vala ../core/Widgets/Markdown/MarkdownView.vala ../core/Widgets/Markdown/Color.vala ../core/Widgets/Markdown/MarkdownBuffer.vala ../core/Objects/BaseObject.vala ../core/Objects/Color.vala ../core/Objects/DueDate.vala ../core/Objects/Item.vala ../core/Objects/Label.vala ../core/Objects/Project.vala ../core/Objects/Queue.vala ../core/Objects/Reminder.vala ../core/Objects/Section.vala ../core/Objects/Promise.vala ../core/Objects/Attachment.vala ../core/Objects/ObjectEvent.vala ../core/Objects/Source.vala ../core/Objects/Filters/Pinboard.vala ../core/Objects/Filters/Scheduled.vala ../core/Objects/Filters/Today.vala ../core/Objects/Filters/Priority.vala ../core/Objects/Filters/Completed.vala ../core/Objects/Filters/Labels.vala ../core/Objects/Filters/Tomorrow.vala ../core/Objects/Filters/Anytime.vala ../core/Objects/Filters/Repeating.vala ../core/Objects/Filters/Unlabeled.vala ../core/Objects/Filters/FilterItem.vala ../core/Objects/Filters/AllItems.vala subprojects/gxml-0.20/gxml/gxml-0.20.vapi
FAILED: core/libplanify.so.0.1.p/Enum.c core/libplanify.so.0.1.p/Constants.c core/libplanify.so.0.1.p/QuickAdd.c core/libplanify.so.0.1.p/Util/Util.c core/libplanify.so.0.1.p/Util/Datetime.c core/libplanify.so.0.1.p/Util/Migrate.c core/libplanify.so.0.1.p/Services/Settings.c core/libplanify.so.0.1.p/Services/EventBus.c core/libplanify.so.0.1.p/Services/Database.c core/libplanify.so.0.1.p/Services/Store.c core/libplanify.so.0.1.p/Services/Todoist.c core/libplanify.so.0.1.p/Services/CalDAV/Core.c core/libplanify.so.0.1.p/Services/CalDAV/Providers/ProviderBase.c core/libplanify.so.0.1.p/Services/CalDAV/Providers/Nextcloud.c core/libplanify.so.0.1.p/Services/CalDAV/Providers/Radicale.c core/libplanify.so.0.1.p/Services/Chrono/Chrono.c core/libplanify.so.0.1.p/Services/Chrono/Enum.c core/libplanify.so.0.1.p/Services/Chrono/Types.c core/libplanify.so.0.1.p/Services/Chrono/Locales/En/En.c core/libplanify.so.0.1.p/Services/Chrono/Locales/En/Constants.c core/libplanify.so.0.1.p/Services/Chrono/Locales/En/Parsers/ENCasualDateParser.c core/libplanify.so.0.1.p/Layouts/HeaderItem.c core/libplanify.so.0.1.p/Widgets/LoadingButton.c core/libplanify.so.0.1.p/Widgets/Entries.c core/libplanify.so.0.1.p/Widgets/IconColorProject.c core/libplanify.so.0.1.p/Widgets/PinButton.c core/libplanify.so.0.1.p/Widgets/PriorityButton.c core/libplanify.so.0.1.p/Widgets/ItemLabels.c core/libplanify.so.0.1.p/Widgets/ItemLabelChild.c core/libplanify.so.0.1.p/Widgets/CircularProgressBar.c core/libplanify.so.0.1.p/Widgets/StatusButton.c core/libplanify.so.0.1.p/Widgets/LabelsPickerCore.c core/libplanify.so.0.1.p/Widgets/Calendar/Calendar.c core/libplanify.so.0.1.p/Widgets/Calendar/CalendarDay.c core/libplanify.so.0.1.p/Widgets/Calendar/CalendarHeader.c core/libplanify.so.0.1.p/Widgets/Calendar/CalendarView.c core/libplanify.so.0.1.p/Widgets/Calendar/CalendarWeek.c core/libplanify.so.0.1.p/Widgets/ContextMenu/MenuItem.c core/libplanify.so.0.1.p/Widgets/ContextMenu/MenuSeparator.c core/libplanify.so.0.1.p/Widgets/ContextMenu/MenuPicker.c core/libplanify.so.0.1.p/Widgets/ContextMenu/MenuCheckPicker.c core/libplanify.so.0.1.p/Widgets/ContextMenu/MenuSwitch.c core/libplanify.so.0.1.p/Widgets/DateTimePicker/ScheduleButton.c core/libplanify.so.0.1.p/Widgets/DateTimePicker/DateTimePicker.c core/libplanify.so.0.1.p/Widgets/DateTimePicker/TimePicker.c core/libplanify.so.0.1.p/Widgets/DateTimePicker/RepeatConfig.c core/libplanify.so.0.1.p/Widgets/LabelPicker/LabelPicker.c core/libplanify.so.0.1.p/Widgets/LabelPicker/LabelRow.c core/libplanify.so.0.1.p/Widgets/LabelPicker/LabelButton.c core/libplanify.so.0.1.p/Widgets/ProjectPicker/ProjectPickerPopover.c core/libplanify.so.0.1.p/Widgets/ProjectPicker/ProjectPickerRow.c core/libplanify.so.0.1.p/Widgets/ProjectPicker/ProjectPickerButton.c core/libplanify.so.0.1.p/Widgets/ProjectPicker/SectionPickerRow.c core/libplanify.so.0.1.p/Widgets/SectionPicker/SectionButton.c core/libplanify.so.0.1.p/Widgets/SectionPicker/SectionPicker.c core/libplanify.so.0.1.p/Widgets/SectionPicker/SectionPickerRow.c core/libplanify.so.0.1.p/Widgets/ReminderPicker/ReminderButton.c core/libplanify.so.0.1.p/Widgets/ReminderPicker/ReminderPicker.c core/libplanify.so.0.1.p/Widgets/ReminderPicker/ReminderRow.c core/libplanify.so.0.1.p/Widgets/Markdown/MarkdownEditView.c core/libplanify.so.0.1.p/Widgets/Markdown/MarkdownView.c core/libplanify.so.0.1.p/Widgets/Markdown/Color.c core/libplanify.so.0.1.p/Widgets/Markdown/MarkdownBuffer.c core/libplanify.so.0.1.p/Objects/BaseObject.c core/libplanify.so.0.1.p/Objects/Color.c core/libplanify.so.0.1.p/Objects/DueDate.c core/libplanify.so.0.1.p/Objects/Item.c core/libplanify.so.0.1.p/Objects/Label.c core/libplanify.so.0.1.p/Objects/Project.c core/libplanify.so.0.1.p/Objects/Queue.c core/libplanify.so.0.1.p/Objects/Reminder.c core/libplanify.so.0.1.p/Objects/Section.c core/libplanify.so.0.1.p/Objects/Promise.c core/libplanify.so.0.1.p/Objects/Attachment.c core/libplanify.so.0.1.p/Objects/ObjectEvent.c core/libplanify.so.0.1.p/Objects/Source.c core/libplanify.so.0.1.p/Objects/Filters/Pinboard.c core/libplanify.so.0.1.p/Objects/Filters/Scheduled.c core/libplanify.so.0.1.p/Objects/Filters/Today.c core/libplanify.so.0.1.p/Objects/Filters/Priority.c core/libplanify.so.0.1.p/Objects/Filters/Completed.c core/libplanify.so.0.1.p/Objects/Filters/Labels.c core/libplanify.so.0.1.p/Objects/Filters/Tomorrow.c core/libplanify.so.0.1.p/Objects/Filters/Anytime.c core/libplanify.so.0.1.p/Objects/Filters/Repeating.c core/libplanify.so.0.1.p/Objects/Filters/Unlabeled.c core/libplanify.so.0.1.p/Objects/Filters/FilterItem.c core/libplanify.so.0.1.p/Objects/Filters/AllItems.c core/planify.h core/planify.vapi 
valac -C --debug --debug --pkg libsecret-1 --pkg gio-2.0 --pkg libxml-2.0 --pkg libecal-2.0 --pkg libical-glib --pkg gtksourceview-5 --pkg libsoup-3.0 --pkg json-glib-1.0 --pkg granite-7 --pkg libadwaita-1 --pkg sqlite3 --pkg gtk4 --pkg gee-0.8 --pkg glib-2.0 --color=always --directory core/libplanify.so.0.1.p --basedir ../core --library planify --header core/planify.h --vapi ../planify.vapi ../core/Enum.vala ../core/Constants.vala ../core/QuickAdd.vala ../core/Util/Util.vala ../core/Util/Datetime.vala ../core/Util/Migrate.vala ../core/Services/Settings.vala ../core/Services/EventBus.vala ../core/Services/Database.vala ../core/Services/Store.vala ../core/Services/Todoist.vala ../core/Services/CalDAV/Core.vala ../core/Services/CalDAV/Providers/ProviderBase.vala ../core/Services/CalDAV/Providers/Nextcloud.vala ../core/Services/CalDAV/Providers/Radicale.vala ../core/Services/Chrono/Chrono.vala ../core/Services/Chrono/Enum.vala ../core/Services/Chrono/Types.vala ../core/Services/Chrono/Locales/En/En.vala ../core/Services/Chrono/Locales/En/Constants.vala ../core/Services/Chrono/Locales/En/Parsers/ENCasualDateParser.vala ../core/Layouts/HeaderItem.vala ../core/Widgets/LoadingButton.vala ../core/Widgets/Entries.vala ../core/Widgets/IconColorProject.vala ../core/Widgets/PinButton.vala ../core/Widgets/PriorityButton.vala ../core/Widgets/ItemLabels.vala ../core/Widgets/ItemLabelChild.vala ../core/Widgets/CircularProgressBar.vala ../core/Widgets/StatusButton.vala ../core/Widgets/LabelsPickerCore.vala ../core/Widgets/Calendar/Calendar.vala ../core/Widgets/Calendar/CalendarDay.vala ../core/Widgets/Calendar/CalendarHeader.vala ../core/Widgets/Calendar/CalendarView.vala ../core/Widgets/Calendar/CalendarWeek.vala ../core/Widgets/ContextMenu/MenuItem.vala ../core/Widgets/ContextMenu/MenuSeparator.vala ../core/Widgets/ContextMenu/MenuPicker.vala ../core/Widgets/ContextMenu/MenuCheckPicker.vala ../core/Widgets/ContextMenu/MenuSwitch.vala ../core/Widgets/DateTimePicker/ScheduleButton.vala ../core/Widgets/DateTimePicker/DateTimePicker.vala ../core/Widgets/DateTimePicker/TimePicker.vala ../core/Widgets/DateTimePicker/RepeatConfig.vala ../core/Widgets/LabelPicker/LabelPicker.vala ../core/Widgets/LabelPicker/LabelRow.vala ../core/Widgets/LabelPicker/LabelButton.vala ../core/Widgets/ProjectPicker/ProjectPickerPopover.vala ../core/Widgets/ProjectPicker/ProjectPickerRow.vala ../core/Widgets/ProjectPicker/ProjectPickerButton.vala ../core/Widgets/ProjectPicker/SectionPickerRow.vala ../core/Widgets/SectionPicker/SectionButton.vala ../core/Widgets/SectionPicker/SectionPicker.vala ../core/Widgets/SectionPicker/SectionPickerRow.vala ../core/Widgets/ReminderPicker/ReminderButton.vala ../core/Widgets/ReminderPicker/ReminderPicker.vala ../core/Widgets/ReminderPicker/ReminderRow.vala ../core/Widgets/Markdown/MarkdownEditView.vala ../core/Widgets/Markdown/MarkdownView.vala ../core/Widgets/Markdown/Color.vala ../core/Widgets/Markdown/MarkdownBuffer.vala ../core/Objects/BaseObject.vala ../core/Objects/Color.vala ../core/Objects/DueDate.vala ../core/Objects/Item.vala ../core/Objects/Label.vala ../core/Objects/Project.vala ../core/Objects/Queue.vala ../core/Objects/Reminder.vala ../core/Objects/Section.vala ../core/Objects/Promise.vala ../core/Objects/Attachment.vala ../core/Objects/ObjectEvent.vala ../core/Objects/Source.vala ../core/Objects/Filters/Pinboard.vala ../core/Objects/Filters/Scheduled.vala ../core/Objects/Filters/Today.vala ../core/Objects/Filters/Priority.vala ../core/Objects/Filters/Completed.vala ../core/Objects/Filters/Labels.vala ../core/Objects/Filters/Tomorrow.vala ../core/Objects/Filters/Anytime.vala ../core/Objects/Filters/Repeating.vala ../core/Objects/Filters/Unlabeled.vala ../core/Objects/Filters/FilterItem.vala ../core/Objects/Filters/AllItems.vala subprojects/gxml-0.20/gxml/gxml-0.20.vapi
camel-1.2.vapi:1023.3-1023.33: warning: Creation method of abstract class cannot be public.
 1023 | 		public MessageInfo.from_message (Camel.FolderSummary? summary, Camel.MimeMessage message);
      | 		^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                           
../core/Widgets/Markdown/MarkdownView.vala:509.3-509.29: warning: local functions are experimental
  509 | 		float interpolate (float x) {
      | 		^~~~~~~~~~~~~~~~~~~~~~~~~~~  
../core/Widgets/Markdown/MarkdownView.vala:513.3-513.30: warning: local functions are experimental
  513 | 		void update_title_styling () {
      | 		^~~~~~~~~~~~~~~~~~~~~~~~~~~~  
../core/Util/Migrate.vala:41.3-41.123: warning: unhandled error `GLib.UriError'
   41 | 		var uri = GLib.Uri.parse (Services.Settings.get_default ().settings.get_string ("caldav-server-url"), GLib.UriFlags.NONE);
      | 		^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
../core/Util/Migrate.vala:46.30-46.46: warning: unhandled error `GLib.Error'
   46 | 		return_value.credentials = get_credential ();
      | 		                           ^~~~~~~~~~~~~~~~~ 
../core/Objects/Label.vala:31.2-31.29: warning: Objects.Label.source hides inherited property `Objects.BaseObject.source'. Use the `new' keyword if hiding was intentional
   31 | 	public Objects.Source source {
      | 	^~~~~~~~~~~~~~~~~~~~~~~~~~~~  
../core/Objects/Project.vala:61.5-61.32: warning: Objects.Project.source hides inherited property `Objects.BaseObject.source'. Use the `new' keyword if hiding was intentional
   61 |     public Objects.Source source {
      |     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~  
../core/Services/Store.vala:1080.80-1080.95: warning: parameter without default follows parameter with default
 1080 | 	public Objects.Label? get_label_by_name (string name, bool lowercase = false, string source_id) {
      | 	                                                                              ^~~~~~~~~~~~~~~~   
../core/Objects/Project.vala:91.5-91.25: warning: Objects.Project.view_id hides inherited property `Objects.BaseObject.view_id'. Use the `new' keyword if hiding was intentional
   91 |     public string view_id {
      |     ^~~~~~~~~~~~~~~~~~~~~  
../core/Util/Util.vala:109.50-109.73: warning: `Gtk.Widget.get_style_context' has been deprecated since 4.10
  109 |         unowned Gtk.StyleContext style_context = widget.get_style_context ();
      |                                                  ^~~~~~~~~~~~~~~~~~~~~~~~    
../core/Util/Util.vala:109.34-109.46: warning: `Gtk.StyleContext' has been deprecated since 4.10
  109 |         unowned Gtk.StyleContext style_context = widget.get_style_context ();
      |                                  ^~~~~~~~~~~~~                               
../core/Util/Util.vala:313.9-313.24: warning: `Gtk.StyleContext' has been deprecated since 4.10
  313 |         Gtk.StyleContext.add_provider_for_display (
      |         ^~~~~~~~~~~~~~~~                           
../core/Widgets/LoadingButton.vala:72.34-72.44: error: The name `Spinner' does not exist in the context of `Adw' (libadwaita-1)
   72 |         var submit_spinner = new Adw.Spinner () {
      |                                  ^~~~~~~~~~~     
libadwaita-1.vapi:4.1-4.13: note: `Adw' was declared here
    4 | namespace Adw {
      | ^~~~~~~~~~~~~  
../core/Widgets/ProjectPicker/ProjectPickerButton.vala:333.27-333.37: error: The name `Spinner' does not exist in the context of `Adw' (libadwaita-1)
  333 |         var spinner = new Adw.Spinner () {
      |                           ^~~~~~~~~~~     
libadwaita-1.vapi:4.1-4.13: note: `Adw' was declared here
    4 | namespace Adw {
      | ^~~~~~~~~~~~~  
../core/Widgets/ContextMenu/MenuItem.vala:163.25-163.35: error: The name `Spinner' does not exist in the context of `Adw' (libadwaita-1)
  163 |             child = new Adw.Spinner () {
      |                         ^~~~~~~~~~~     
libadwaita-1.vapi:4.1-4.13: note: `Adw' was declared here
    4 | namespace Adw {
      | ^~~~~~~~~~~~~  
../core/Widgets/DateTimePicker/TimePicker.vala:70.5-70.31: warning: Widgets.DateTimePicker.TimePicker.activate hides inherited signal `Gtk.Widget.activate'. Use the `new' keyword if hiding was intentional
   70 |     public signal void activate ();
      |     ^~~~~~~~~~~~~~~~~~~~~~~~~~~    
../core/Widgets/LabelsPickerCore.vala:287.27-287.37: error: The name `Spinner' does not exist in the context of `Adw' (libadwaita-1)
  287 |         var spinner = new Adw.Spinner () {
      |                           ^~~~~~~~~~~     
libadwaita-1.vapi:4.1-4.13: note: `Adw' was declared here
    4 | namespace Adw {
      | ^~~~~~~~~~~~~  
../core/Widgets/Markdown/MarkdownEditView.vala:439.3-439.19: warning: `Gtk.Widget.get_style_context' has been deprecated since 4.10
  439 | 		get_style_context ().add_provider (css, -1);
      | 		^~~~~~~~~~~~~~~~~                           
Compilation failed: 4 error(s), 14 warning(s)
ninja: build stopped: subcommand failed.

@alainm23
Copy link
Owner

Thanks, the error occurs because libadwaita version 1.6 or later is required.

@blipp
Copy link
Contributor Author

blipp commented Feb 25, 2025

Thanks, the error occurs because libadwaita version 1.6 or later is required.

Oh, right, I see that Spinner was only added with 1.6. I decided to just dist-upgrade my Ubuntu to 24.10 to be able to install it from the official package sources. I will report back afterwards.

However, it might be good to update meson.build and the README to reflect this requirement? Currently, it is still indicating libadwaita 1.5.

@blipp
Copy link
Contributor Author

blipp commented Feb 25, 2025

I can confirm that with the requirements added in this pull request, the build instructions work :) I will continue to use GNOME Builder for development, though. It seems too much of a hassle to set up VS Code for Vala properly, at least for me at the moment.

I think the build requirements for Ubuntu/Debian are still a useful addition to the README, and can help other users and/or developers to get started :) So, from my side, ready to merge when you have time.

@alainm23 alainm23 merged commit acca390 into alainm23:master Feb 26, 2025
2 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants