After an evaluation, GNOME has moved from Bugzilla to GitLab. Learn more about GitLab.
No new issues can be reported in GNOME Bugzilla anymore.
To report an issue in a GNOME project, go to GNOME GitLab.
Do not go to GNOME Gitlab for: Bluefish, Doxygen, GnuCash, GStreamer, java-gnome, LDTP, NetworkManager, Tomboy.
Bug 787634 - Port to meson build system
Port to meson build system
Status: RESOLVED OBSOLETE
Product: gnome-online-accounts
Classification: Core
Component: general
unspecified
Other All
: Normal enhancement
: ---
Assigned To: GNOME Online Accounts maintainer(s)
GNOME Online Accounts maintainer(s)
Depends on:
Blocks: 782980 787638
 
 
Reported: 2017-09-13 15:22 UTC by Iñigo Martínez
Modified: 2018-07-16 15:00 UTC
See Also:
GNOME target: ---
GNOME version: ---


Attachments
Move telepathy account widgets to subprojects (3.56 KB, patch)
2017-09-13 15:29 UTC, Iñigo Martínez
none Details | Review
Port to meson build system (41.95 KB, patch)
2017-09-13 15:58 UTC, Iñigo Martínez
none Details | Review
Port to meson build system (45.94 KB, patch)
2017-09-13 16:26 UTC, Iñigo Martínez
none Details | Review
Remove autotools (69.55 KB, patch)
2017-09-13 16:27 UTC, Iñigo Martínez
none Details | Review
build: Port to meson build system (32.57 KB, patch)
2018-04-18 19:27 UTC, Iñigo Martínez
none Details | Review
build: Remove autotools (77.09 KB, patch)
2018-04-18 19:28 UTC, Iñigo Martínez
none Details | Review

Description Iñigo Martínez 2017-09-13 15:22:45 UTC
meson is a build system focused on speed an ease of use, which helps speeding up the software development.
Comment 1 Iñigo Martínez 2017-09-13 15:29:25 UTC
Created attachment 359731 [details] [review]
Move telepathy account widgets to subprojects

This patch updates telepathy-account-widgets module location from source root to subprojects directory, which helps porting to meson.
Comment 2 Debarshi Ray 2017-09-13 15:38:40 UTC
Did you also port telepathy-account-widgets to Meson? Just like Empathy, I'd suggest leaving telepathy-account-widgets alone. I'd rather drop the whole Telepathy support in GOA, if that's what it takes for porting to Meson.
Comment 3 Iñigo Martínez 2017-09-13 15:58:44 UTC
Created attachment 359732 [details] [review]
Port to meson build system

Patch that adds meson build system along autotools.

It needs an unreleased version of meson (0.43.0), which includes `annotate`[0] and `docbook`[1] support for `gdbus-codegen`.

Although telepathy support can be enabled, is disabled on purpose on meson's options as it needs meson support on `telepathy-account-widgets` module[1].

There is one minor issue, which doesn't affect the building process at all, with the 'goa-generated.h' header file which is not installed because meson's `gdbus-codegen` function does not support installing the generated files. Is this file used by any software? I have not been able to find any.

Finally, I've recently started doing some "benchmarks" with meson and autotools. Here are some raw numbers:

- autotools + make: time (./autogen.sh --prefix=/tmp/goa --enable-debug=yes --enable-compile-warnings=yes --enable-documentation --enable-gtk-doc --disable-telepathy --enable-backend --enable-inspector --enable-exchange --enable-flickr --enable-foursquare --enable-google --enable-imap-smtp --enable-media-server --enable-owncloud --enable-facebook --enable-todoist --enable-windows-live --enable-pocket --enable-kerberos --enable-lastfm; make install)

real	2m25,265s
user	2m2,687s
sys	0m12,824s

- meson + ninja: time (~/Development/meson/meson.py --prefix=/tmp/goa --libdir=lib -Denable-backend=true -Denable-inspector=true -Denable-documentation=true -Denable-gtk-doc=true _build; ninja -C _build install)

real	0m38,212s
user	1m16,560s
sys	0m5,317s

[0] https://github.com/mesonbuild/meson/pull/2266
[1] https://github.com/mesonbuild/meson/pull/2302
[2] https://bugzilla.gnome.org/show_bug.cgi?id=786969
Comment 4 Iñigo Martínez 2017-09-13 16:15:25 UTC
(In reply to Debarshi Ray from comment #2)
> Did you also port telepathy-account-widgets to Meson? Just like Empathy, I'd
> suggest leaving telepathy-account-widgets alone. I'd rather drop the whole
> Telepathy support in GOA, if that's what it takes for porting to Meson.

I'm sorry as I didn't noticed the message until now as I was in the process of generating the patches and writing proper comments, which takes a bit :)

Yes, telepathy-account-widgets is ported[0] and I have also made some changes so it's fits gnome-online-accounts needs[1], which in the other hand, they are totally unnecessary if telepathy-account-widgets is finally removed.

Although I have been testing the meson port several times, actually I haven't tried telepathy-account-widgets support on gnome-online-account's meson port. It's only theoretically implemented and I have always build gnome-online-accounts without telepathy support.

It is based on other implementations so it probably works. At the moment is disabled by default on purpose.

[0] https://bugzilla.gnome.org/show_bug.cgi?id=786969
[1] https://bugzilla.gnome.org/show_bug.cgi?id=786969#c5
Comment 5 Iñigo Martínez 2017-09-13 16:26:28 UTC
Created attachment 359734 [details] [review]
Port to meson build system

Minor update to meson build port which adds meson build files to autotools build files so they are also packed when the distributable package is generated.
Comment 6 Iñigo Martínez 2017-09-13 16:27:13 UTC
Created attachment 359735 [details] [review]
Remove autotools

Some applications are removing autotools to avoid the burden of maintaining two  build systems. This patch removes autotools in case it is considered.
Comment 7 Iñigo Martínez 2017-09-13 16:30:24 UTC
Finally, I have created a wip branch[0] to ease it's testing.

Any suggestion would be very much appreciated.

[0] https://git.gnome.org/browse/gnome-online-accounts/log/?h=wip/inigomartinez/meson
Comment 8 Iñigo Martínez 2018-04-16 09:11:48 UTC
I'm thinking on resuming the work with the meson port by rebasing the current master.

Debarshi Ray, would this be a good time to merge this feature?
Comment 9 Debarshi Ray 2018-04-17 10:37:24 UTC
(In reply to Iñigo Martínez from comment #8)
> I'm thinking on resuming the work with the meson port by rebasing the
> current master.
> 
> Debarshi Ray, would this be a good time to merge this feature?

Yeah, I am in the middle of removing the git submodule (bug 795322). I am aiming to finish that before releasing 3.29.1 today or tomorrow.
Comment 10 Iñigo Martínez 2018-04-18 19:27:19 UTC
Created attachment 371115 [details] [review]
build: Port to meson build system

After the removal of telepathy (bug 795322), I have updated the old meson port patch.

This patch doesn't include meson build files as part of autotools distributable files.
Comment 11 Iñigo Martínez 2018-04-18 19:28:06 UTC
Created attachment 371116 [details] [review]
build: Remove autotools

Due to the previous changes, I have also rebased the patch to remove autotools.
Comment 12 Iñigo Martínez 2018-04-18 19:34:21 UTC
I would like to point out that this meson port requires meson 0.46, which has not been released yet, due to a missing feature regarding `gdbus-codegen`[0]. However, the developer version in github[1] can be used to build `gnome-online-accounts`.

I have also updated the wip branch[2] that also includes the patch at bug 787638.

[0] https://github.com/mesonbuild/meson/pull/2930
[1] https://github.com/mesonbuild/meson.git
[2] https://git.gnome.org/browse/gnome-online-accounts/log/?h=wip/inigomartinez/meson
Comment 13 Debarshi Ray 2018-07-16 14:59:54 UTC
This has now moved to GitLab:
https://gitlab.gnome.org/GNOME/gnome-online-accounts/merge_requests/2