Skip to contentSkip to conversation

Add support for Meson build

PATCH Superseded Jörg Krause 8 participants 18 messages Jul 27, 2017 – Oct 13, 2017 Arm/Amlogic Meson SoC support

v1 of 2 Superseded Latest is v2 →

lore
Share & tools
lore
#0 lore raw

cover Add support for Meson build

Last year, Eric Le Bihan already proposed patches to support the Meson build system [1], but the patches were rejected, as no package in Buildroot required a Meson build.

This has changed, as the libmpdclient package has switched from autotools to Meson.

Therefore, the patches from Eric are resubmitted with some changes as suggested by Yann E. Morin.

[1] http://patchwork.ozlabs.org/patch/646685/

Eric Le Bihan (2):
meson: new package
docs/manual: document meson-based packages

J?rg Krause (1):
libmpdclient: bump to version 2.13

 docs/manual/adding-packages-meson.txt   | 80 +++++++++++++++++++++++++++++++++
 docs/manual/adding-packages.txt         |  2 +
 package/libmpdclient/libmpdclient.hash  |  4 +-
 package/libmpdclient/libmpdclient.mk    | 26 +++++++++--
 package/meson/cross-compilation.conf.in | 15 +++++++
 package/meson/meson.hash                |  2 +
 package/meson/meson.mk                  | 30 +++++++++++++
 7 files changed, 154 insertions(+), 5 deletions(-)
 create mode 100644 docs/manual/adding-packages-meson.txt
 create mode 100644 package/meson/cross-compilation.conf.in
 create mode 100644 package/meson/meson.hash
 create mode 100644 package/meson/meson.mk
Signature · 1 line
2.13.3
#1 lore raw

PATCH v2 1/3 meson: new package

From: Eric Le Bihan <[email protected]>

This new package provides the host variant of the Meson Build System, an open source build system meant to be both extremely fast, and as user friendly as possible.

More precisely, Meson creates configuration files for the Ninja build system.

Besides building Meson, it generates a configuration file ("$(HOST_DIR)/etc/meson/cross-compilation.conf") to be used when cross-compiling a Meson-based project.

[J?rg Krause:
* bump to version 0.41.2
* use explicit tarball release instead of github helper
* use explicit sed
* pass BR2_GCC_TARGET_CPU to cross file]

---
 package/meson/cross-compilation.conf.in | 15 +++++++++++++++
 package/meson/meson.hash                |  2 ++
 package/meson/meson.mk                  | 30 ++++++++++++++++++++++++++++++
 3 files changed, 47 insertions(+)
 create mode 100644 package/meson/cross-compilation.conf.in
 create mode 100644 package/meson/meson.hash
 create mode 100644 package/meson/meson.mk
package/meson/cross-compilation.conf.in new file +15 -0
new file mode 100644
index 0000000000..d38fbb03cc
@@ -0,0 +1,15 @@
+# Note: in Meson terminology, what Buildroot calls the "host" system is the
+# "build" system and the "target" system is called the "host" system.
+
+[binaries]
+c = '@TARGET_CROSS at gcc'
+cpp = '@TARGET_CROSS at g++'
+ar = '@TARGET_CROSS at ar'
+strip = '@TARGET_CROSS at strip'
+pkgconfig = '@HOST_DIR@/usr/bin/pkg-config'
+
+[host_machine]
+system = 'linux'
+cpu_family ='@TARGET_ARCH@'
+cpu = '@TARGET_CPU@'
+endian = '@TARGET_ENDIAN@'
package/meson/meson.hash new file +2 -0
new file mode 100644
index 0000000000..7f0de1d437
@@ -0,0 +1,2 @@
+# Locally generated
+sha256  074dd24fd068be0893e2e45bcc35c919d8e12777e9d6a7efdf72d4dc300867ca  meson-0.41.2.tar.gz
package/meson/meson.mk new file +30 -0
new file mode 100644
index 0000000000..7cf287df82
@@ -0,0 +1,30 @@
+################################################################################
+#
+# meson
+#
+################################################################################
+
+MESON_VERSION = 0.41.2
+MESON_SITE = https://github.com/mesonbuild/meson/releases/download/$(MESON_VERSION)
+MESON_LICENSE = Apache-2.0
+MESON_LICENSE_FILES = COPYING
+MESON_SETUP_TYPE = setuptools
+
+HOST_MESON_DEPENDENCIES = host-ninja
+HOST_MESON_NEEDS_HOST_PYTHON = python3
+
+HOST_MESON_TARGET_ENDIAN = $(shell echo $(BR2_ENDIAN) | tr 'A-Z' 'a-z')
+
+define HOST_MESON_INSTALL_CROSS_CONF
+	sed -e 's;@TARGET_CROSS@;$(TARGET_CROSS);g' \
+	    -e 's;@TARGET_ARCH@;$(ARCH);g' \
+	    -e 's;@TARGET_CPU@;$(BR2_GCC_TARGET_CPU);g' \
+	    -e 's;@TARGET_ENDIAN@;$(HOST_MESON_TARGET_ENDIAN);g' \
+	    -e 's;@HOST_DIR@;$(HOST_DIR);g' \
+	    $(HOST_MESON_PKGDIR)/cross-compilation.conf.in \
+	    > $(HOST_DIR)/etc/meson/cross-compilation.conf
+endef
+
+HOST_MESON_POST_INSTALL_HOOKS += HOST_MESON_INSTALL_CROSS_CONF
+
+$(eval $(host-python-package))
Signature · 1 line
2.13.3
#2 lore raw

PATCH v2 2/3 docs/manual: document meson-based packages

In reply to Jörg Krause

From: Eric Le Bihan <[email protected]>

Add instructions for adding a package which uses the Meson build system.

[J?rg Krause:
* use one-liner for buildtype]

---
 docs/manual/adding-packages-meson.txt | 80 +++++++++++++++++++++++++++++++++++
 docs/manual/adding-packages.txt       |  2 +
 2 files changed, 82 insertions(+)
 create mode 100644 docs/manual/adding-packages-meson.txt
docs/manual/adding-packages-meson.txt new file +80 -0
new file mode 100644
index 0000000000..697f2520c7
@@ -0,0 +1,80 @@
+// -*- mode:doc; -*-
+// vim: set syntax=asciidoc:
+
+=== Integration of Meson-based packages
+
+[[meson-package-tutorial]]
+
+==== +meson-package+ tutorial
+
+http://mesonbuild.com[Meson] is an open source build system meant to be both
+extremely fast, and, even more importantly, as user friendly as possible.
+
+Buildroot does not (yet) provide a dedicated package infrastructure for
+meson-based packages. So, we will explain how to write a +.mk+ file for such a
+package. Let's start with an example:
+
+------------------------------
+01: ################################################################################
+02: #
+03: # foo
+04: #
+05: ################################################################################
+06:
+07: FOO_VERSION = 1.0
+08: FOO_SOURCE = foo-$(FOO_VERSION).tar.gz
+09: FOO_SITE = http://www.foosoftware.org/download
+10: FOO_LICENSE = GPLv3+
+11: FOO_LICENSE_FILES = COPYING
+12:
+13: FOO_DEPENDENCIES = host-meson host-pkgconf bar
+14:
+15: FOO_MESON_OPTS += \
+16: 	--prefix=/usr \
+17: 	--buildtype $(if $(BR2_ENABLE_DEBUG),debug,release) \
+18: 	--cross-file $(HOST_DIR)/etc/meson/cross-compilation.conf
+19:
+20: define FOO_CONFIGURE_CMDS
+21: 	rm -rf $(@D)/build
+22: 	mkdir -p $(@D)/build
+23: 	$(TARGET_MAKE_ENV) meson.py $(FOO_MESON_OPTS) $(@D) $(@D)/build
+24: endef
+25:
+26: define FOO_BUILD_CMDS
+27: 	$(TARGET_MAKE_ENV) ninja -C $(@D)/build
+28: endef
+29:
+30: define FOO_INSTALL_TARGET_CMDS
+31: 	$(TARGET_MAKE_ENV) DESTDIR=$(TARGET_DIR) ninja -C $(@D)/build install
+32: endef
+33:
+34: $(eval $(generic-package))
+--------------------------------
+
+The Makefile starts with the definition of the standard variables for package
+declaration (lines 7 to 11).
+
+As seen in line 34, it is based on the
+xref:generic-package-tutorial[+generic-package+ infrastructure]. So, it defines
+the variables required by this particular infrastructure, where Meson and its
+companion tool, Ninja, are invoked:
+
+* +FOO_CONFIGURE_CMDS+: the build directory required by Meson is created, and
+  Meson is invoked to generate the Ninja build file. The options required to
+  configure the cross-compilation of the package are passed via
+  +FOO_MESON_OPTS+.
+
+* +FOO_BUILD_CMDS+: Ninja is invoked to perform the build.
+
+* +FOO_INSTALL_TARGET_CMDS+: Ninja is invoked to install the files generated
+  during the build step.
+
+In order to have Meson available for the build, +FOO_DEPENDENCIES+ needs to
+contain +host-meson+. In the example, +host-pkgconf+ and +bar+ are also
+declared as dependencies because the Meson build file of +foo+ uses `pkg-config`
+to determine the compilation flags and libraries of package +bar+.
+
+To sum it up, to add a new meson-based package, the Makefile example can be
+copied verbatim then edited to replace all occurences of +FOO+ with the
+uppercase name of the new package and update the values of the standard
+variables.
docs/manual/adding-packages.txt +2 -0
index d577ff030e..e542124cf9 100644
@@ -34,6 +34,8 @@ include::adding-packages-rebar.txt[]
 
 include::adding-packages-waf.txt[]
 
+include::adding-packages-meson.txt[]
+
 include::adding-packages-kernel-module.txt[]
 
 include::adding-packages-asciidoc.txt[]
Signature · 1 line
2.13.3
#3 lore raw

PATCH 3/3 libmpdclient: bump to version 2.13

In reply to Jörg Krause

libmpdclient has switched from autotools to meson.

---
 package/libmpdclient/libmpdclient.hash |  4 ++--
 package/libmpdclient/libmpdclient.mk   | 26 +++++++++++++++++++++++---
 2 files changed, 25 insertions(+), 5 deletions(-)
package/libmpdclient/libmpdclient.hash +2 -2
index 2fd20a41fb..aa9434098f 100644
@@ -1,2 +1,2 @@
-# Verified against http://www.musicpd.org/download/libmpdclient/2/libmpdclient-2.10.tar.xz.sig, sha256 locally computed
-sha256 4f08cde82dae70895f8e4532a6e9b54b201efd5591c6b5d6834895807ed2ff82  libmpdclient-2.10.tar.xz
+# Verified against http://www.musicpd.org/download/libmpdclient/2/libmpdclient-2.13.tar.xz.sig, sha256 locally computed
+sha256  5115bd52bc20a707c1ecc7587e6389c17305348e2132a66cf767c62fc55ed45d  libmpdclient-2.13.tar.xz
package/libmpdclient/libmpdclient.mk +23 -3
index 691aba9f71..9cd4f2bd2e 100644
@@ -5,12 +5,32 @@
 ################################################################################
 
 LIBMPDCLIENT_VERSION_MAJOR = 2
-LIBMPDCLIENT_VERSION = $(LIBMPDCLIENT_VERSION_MAJOR).10
+LIBMPDCLIENT_VERSION = $(LIBMPDCLIENT_VERSION_MAJOR).13
 LIBMPDCLIENT_SOURCE = libmpdclient-$(LIBMPDCLIENT_VERSION).tar.xz
 LIBMPDCLIENT_SITE = http://www.musicpd.org/download/libmpdclient/$(LIBMPDCLIENT_VERSION_MAJOR)
-LIBMPDCLIENT_CONF_ENV = ac_cv_prog_cc_c99='-std=gnu99'
 LIBMPDCLIENT_INSTALL_STAGING = YES
 LIBMPDCLIENT_LICENSE = BSD-3-Clause
 LIBMPDCLIENT_LICENSE_FILES = COPYING
 
-$(eval $(autotools-package))
+LIBMPDCLIENT_DEPENDENCIES = host-meson host-pkgconf
+
+LIBMPDCLIENT_MESON_OPTS += \
+	--prefix=/usr \
+	--buildtype $(if $(BR2_ENABLE_DEBUG),debug,release) \
+	--cross-file $(HOST_DIR)/etc/meson/cross-compilation.conf
+
+define LIBMPDCLIENT_CONFIGURE_CMDS
+	rm -rf $(@D)/build
+	mkdir -p $(@D)/build
+	$(TARGET_MAKE_ENV) meson $(LIBMPDCLIENT_MESON_OPTS) $(@D) $(@D)/build
+endef
+
+define LIBMPDCLIENT_BUILD_CMDS
+	$(TARGET_MAKE_ENV) ninja -C $(@D)/build
+endef
+
+define LIBMPDCLIENT_INSTALL_TARGET_CMDS
+	$(TARGET_MAKE_ENV) DESTDIR=$(TARGET_DIR) ninja -C $(@D)/build install
+endef
+
+$(eval $(generic-package))
Signature · 1 line
2.13.3
#4 lore raw

cover Add support for Meson build

In reply to Jörg Krause

Hello J?rg, maintainers,

shouldn't we add a "package/pkg-meson.mk" file and then use "$(eval $(meson-package))" for Meson packages?

Vincent

Quoted 32 lines · J?rg Krause

Last year, Eric Le Bihan already proposed patches to support the Meson build system [1], but the patches were rejected, as no package in Buildroot required a Meson build.

This has changed, as the libmpdclient package has switched from autotools to Meson.

Therefore, the patches from Eric are resubmitted with some changes as suggested by Yann E. Morin.

[1] http://patchwork.ozlabs.org/patch/646685/

Eric Le Bihan (2):
meson: new package
docs/manual: document meson-based packages

J?rg Krause (1):
libmpdclient: bump to version 2.13

 docs/manual/adding-packages-meson.txt   | 80 +++++++++++++++++++++++++++++++++
 docs/manual/adding-packages.txt         |  2 +
 package/libmpdclient/libmpdclient.hash  |  4 +-
 package/libmpdclient/libmpdclient.mk    | 26 +++++++++--
 package/meson/cross-compilation.conf.in | 15 +++++++
 package/meson/meson.hash                |  2 +
 package/meson/meson.mk                  | 30 +++++++++++++
 7 files changed, 154 insertions(+), 5 deletions(-)
 create mode 100644 docs/manual/adding-packages-meson.txt
 create mode 100644 package/meson/cross-compilation.conf.in
 create mode 100644 package/meson/meson.hash
 create mode 100644 package/meson/meson.mk
#5 lore raw

cover Add support for Meson build

Hello Vincent,

Quoted 4 lines · Vicente Olivert Riera

Hello J?rg, maintainers,

shouldn't we add a "package/pkg-meson.mk" file and then use "$(eval $(meson-package))" for Meson packages?

Maybe, if there are more than one package. At least, that was the opinion of Yann when he reviewed the patch last year.

J?rg

#6 lore raw

cover Add support for Meson build

Hi J?rg,

Quoted 10 lines · J?rg Krause

Hello Vincent,

Quoted 4 lines · Vicente Olivert Riera

Hello J?rg, maintainers,

shouldn't we add a "package/pkg-meson.mk" file and then use "$(eval $(meson-package))" for Meson packages?

Maybe, if there are more than one package. At least, that was the opinion of Yann when he reviewed the patch last year.

There will be more packages moving to Meson, and some of them quite
important: http://mesonbuild.com/Users.html

I think we should add proper Meson support in BR infra from the beginning.

Vincent

Quoted 3 lines

J?rg

#7 lore raw

cover Add support for Meson build

Hello,

Quoted 10 lines · Vicente Olivert Riera
Quoted 5 lines
Quoted 2 lines

shouldn't we add a "package/pkg-meson.mk" file and then use "$(eval $(meson-package))" for Meson packages?

Maybe, if there are more than one package. At least, that was the opinion of Yann when he reviewed the patch last year.

There will be more packages moving to Meson, and some of them quite
important: http://mesonbuild.com/Users.html

I think we should add proper Meson support in BR infra from the beginning.

No, let's wait to have a few Meson-based packages in Buildroot, and then we'll have a package infrastructure. This will allow us to see what are the commonalities, what are the differences, etc.

Best regards,

Thomas

Signature · 3 lines
Thomas Petazzoni, CTO, Free Electrons
Embedded Linux and Kernel engineering
http://free-electrons.com
#8 lore raw

cover Add support for Meson build

Hi,

Quoted 5 lines · Thomas Petazzoni

No, let's wait to have a few Meson-based packages in Buildroot, and then we'll have a package infrastructure. This will allow us to see what are the commonalities, what are the differences, etc.

systemd 235 is released (https://lwn.net/Articles/735691/) and it drops autoconf/automake and only has meson as the build system (in 234 they warned this would happen next) so perhaps that's a good starting point for buildroot to integrate meson support? I'm happy to help out if no one else was already working on it.

-Andrey
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.busybox.net/pipermail/buildroot/attachments/20171006/f1ba2494/attachment.html>

#9 lore raw

cover Add support for Meson build

In reply to Thomas Petazzoni

Hi,

Quoted 3 lines · Thomas Petazzoni

No, let's wait to have a few Meson-based packages in Buildroot, and then we'll have a package infrastructure. This will allow us to see what are the commonalities, what are the differences, etc.

systemd 235 is released (https://lwn.net/Articles/735691/) and it drops autoconf/automake and only has meson as the build system (in 234 they warned this would happen next) so perhaps that's a good starting point for buildroot to integrate meson support? I'm happy to help out if no one else was already working on it.

#10 lore raw

cover Add support for Meson build

Hello,

Quoted 11 lines · Andrey Yurovsky
Quoted 3 lines · Thomas Petazzoni

No, let's wait to have a few Meson-based packages in Buildroot, and then we'll have a package infrastructure. This will allow us to see what are the commonalities, what are the differences, etc.

systemd 235 is released (https://lwn.net/Articles/735691/) and it drops autoconf/automake and only has meson as the build system (in 234 they warned this would happen next) so perhaps that's a good starting point for buildroot to integrate meson support? I'm happy to help out if no one else was already working on it.

This would indeed be a very compelling reason to support meson.

Best regards,

Thomas

Signature · 3 lines
Thomas Petazzoni, CTO, Free Electrons
Embedded Linux and Kernel engineering
http://free-electrons.com
#11 lore raw

cover Add support for Meson build

Thomas, Andrey, All,

Le 07/10/2017 ? 13:58, Thomas Petazzoni a ?crit?:

Quoted 10 lines

Hello,

Quoted 6 lines · Andrey Yurovsky
Quoted 3 lines · Thomas Petazzoni

No, let's wait to have a few Meson-based packages in Buildroot, and then we'll have a package infrastructure. This will allow us to see what are the commonalities, what are the differences, etc.

Quoted 7 lines
Quoted 5 lines

systemd 235 is released (https://lwn.net/Articles/735691/) and it drops autoconf/automake and only has meson as the build system (in 234 they warned this would happen next) so perhaps that's a good starting point for buildroot to integrate meson support? I'm happy to help out if no one else was already working on it.

This would indeed be a very compelling reason to support meson.

Also the next enlightenment release (0.22) will only support meson.

Best regards,
Romain

Quoted 5 lines

Best regards,

Thomas

#12 lore raw

cover Add support for Meson build

Hi,

Quoted 19 lines · Romain Naour

Thomas, Andrey, All,

Le 07/10/2017 ? 13:58, Thomas Petazzoni a ?crit :

Quoted 16 lines

Hello,

Quoted 11 lines · Andrey Yurovsky
Quoted 3 lines · Thomas Petazzoni

No, let's wait to have a few Meson-based packages in Buildroot, and then we'll have a package infrastructure. This will allow us to see what are the commonalities, what are the differences, etc.

systemd 235 is released (https://lwn.net/Articles/735691/) and it drops autoconf/automake and only has meson as the build system (in 234 they warned this would happen next) so perhaps that's a good starting point for buildroot to integrate meson support? I'm happy to help out if no one else was already working on it.

Quoted 4 lines
Quoted 1 line

This would indeed be a very compelling reason to support meson.

Also the next enlightenment release (0.22) will only support meson.

I was able to add a package/pkg-meson.mk wrapper (that seems to be missing from the Meson patch set, or did I completely miss it?) and built the previously submitted libmpdclient version bump via the $(eval $(meson-package)) wrapper. I'll work on version bumping systemd and converting it to use that wrapper as well. If possible I'd like to get this more or less right, what would a reasonable patch set look like? I was thinking, as a patch set:
1. resubmit the Meson patches (package/meson, documentation) by J?rg Krause
2. add package/pkg-meson.mk
3. resubmit the libmpdclient version bump patch by J?rg Krause but with $(eval $(meson-package)) changes
4. submit the systemd version bump and meson conversion patch(es)

That way we have the infrastructure, documentation, and two packages utilizing the infrastructure in one set to review. Does that sound alright?

#13 lore raw

cover Add support for Meson build

Hi all!

Quoted 27 lines · Andrey Yurovsky

Hi,

Quoted 19 lines · Romain Naour

Thomas, Andrey, All,

Le 07/10/2017 ? 13:58, Thomas Petazzoni a ?crit :

Quoted 16 lines

Hello,

Quoted 11 lines · Andrey Yurovsky
Quoted 3 lines · Thomas Petazzoni

No, let's wait to have a few Meson-based packages in Buildroot, and then we'll have a package infrastructure. This will allow us to see what are the commonalities, what are the differences, etc.

systemd 235 is released (https://lwn.net/Articles/735691/) and it drops autoconf/automake and only has meson as the build system (in 234 they warned this would happen next) so perhaps that's a good starting point for buildroot to integrate meson support? I'm happy to help out if no one else was already working on it.

Quoted 4 lines
Quoted 1 line

This would indeed be a very compelling reason to support meson.

Also the next enlightenment release (0.22) will only support meson.

Quoted 8 lines

I was able to add a package/pkg-meson.mk wrapper (that seems to be missing from the Meson patch set, or did I completely miss it?) and built the previously submitted libmpdclient version bump via the $(eval $(meson-package)) wrapper. I'll work on version bumping systemd and converting it to use that wrapper as well. If possible I'd like to get this more or less right, what would a reasonable patch set look like? I was thinking, as a patch set:
1. resubmit the Meson patches (package/meson, documentation) by J?rg Krause

I resubmitted the series, with a version bump to 0.43.0 and other suggested changes.

@J?rg: in your respin of the series, why was the github helper dropped in favor of a direct tarball download?

Quoted 8 lines

2. add package/pkg-meson.mk
3. resubmit the libmpdclient version bump patch by J?rg Krause but with $(eval $(meson-package)) changes
4. submit the systemd version bump and meson conversion patch(es)

That way we have the infrastructure, documentation, and two packages utilizing the infrastructure in one set to review. Does that sound alright?

@Andrey: I'll be happy to test your patches.

Regards,

--
ELB

#14 lore raw

cover Add support for Meson build

Hi Eric,

Quoted 39 lines · Eric Le Bihan

Hi all!

Quoted 27 lines · Andrey Yurovsky

Hi,

Quoted 19 lines · Romain Naour

Thomas, Andrey, All,

Le 07/10/2017 ? 13:58, Thomas Petazzoni a ?crit :

Quoted 16 lines

Hello,

Quoted 11 lines · Andrey Yurovsky
Quoted 3 lines · Thomas Petazzoni

No, let's wait to have a few Meson-based packages in Buildroot, and then we'll have a package infrastructure. This will allow us to see what are the commonalities, what are the differences, etc.

systemd 235 is released (https://lwn.net/Articles/735691/) and it drops autoconf/automake and only has meson as the build system (in 234 they warned this would happen next) so perhaps that's a good starting point for buildroot to integrate meson support? I'm happy to help out if no one else was already working on it.

Quoted 4 lines
Quoted 1 line

This would indeed be a very compelling reason to support meson.

Also the next enlightenment release (0.22) will only support meson.

Quoted 8 lines

I was able to add a package/pkg-meson.mk wrapper (that seems to be missing from the Meson patch set, or did I completely miss it?) and built the previously submitted libmpdclient version bump via the $(eval $(meson-package)) wrapper. I'll work on version bumping systemd and converting it to use that wrapper as well. If possible I'd like to get this more or less right, what would a reasonable patch set look like? I was thinking, as a patch set:
1. resubmit the Meson patches (package/meson, documentation) by J?rg Krause

Quoted 6 lines

I resubmitted the series, with a version bump to 0.43.0 and other suggested changes.

@J?rg: in your respin of the series, why was the github helper dropped in favor of a direct tarball download?

As Arnout has responded in a follow-up review, we prefer an uploaded tarball because the github tarballs might change from time to time. Furthermore, the uploaded tarballs often contains autogenerated files which frees us from doing autoreconf for the package.

Quoted 11 lines
Quoted 8 lines

2. add package/pkg-meson.mk
3. resubmit the libmpdclient version bump patch by J?rg Krause but with $(eval $(meson-package)) changes
4. submit the systemd version bump and meson conversion patch(es)

That way we have the infrastructure, documentation, and two packages utilizing the infrastructure in one set to review. Does that sound alright?

@Andrey: I'll be happy to test your patches.

Best regards,
J?rg Krause

#15 lore raw

cover Add support for Meson build

Hey all;

gstreamer is also moving to meson as well, so I am glad to see this hapening sooner than later!

Adam

Quoted 72 lines · J?rg Krause

Hi Eric,

Quoted 39 lines · Eric Le Bihan

Hi all!

Quoted 27 lines · Andrey Yurovsky

Hi,

Quoted 19 lines · Romain Naour

Thomas, Andrey, All,

Le 07/10/2017 ? 13:58, Thomas Petazzoni a ?crit :

Quoted 16 lines

Hello,

Quoted 11 lines · Andrey Yurovsky
Quoted 3 lines · Thomas Petazzoni

No, let's wait to have a few Meson-based packages in Buildroot, and then we'll have a package infrastructure. This will allow us to see what are the commonalities, what are the differences, etc.

systemd 235 is released (https://lwn.net/Articles/735691/) and it drops autoconf/automake and only has meson as the build system (in 234 they warned this would happen next) so perhaps that's a good starting point for buildroot to integrate meson support? I'm happy to help out if no one else was already working on it.

Quoted 4 lines
Quoted 1 line

This would indeed be a very compelling reason to support meson.

Also the next enlightenment release (0.22) will only support meson.

Quoted 8 lines

I was able to add a package/pkg-meson.mk wrapper (that seems to be missing from the Meson patch set, or did I completely miss it?) and built the previously submitted libmpdclient version bump via the $(eval $(meson-package)) wrapper. I'll work on version bumping systemd and converting it to use that wrapper as well. If possible I'd like to get this more or less right, what would a reasonable patch set look like? I was thinking, as a patch set:
1. resubmit the Meson patches (package/meson, documentation) by J?rg Krause

Quoted 6 lines

I resubmitted the series, with a version bump to 0.43.0 and other suggested changes.

@J?rg: in your respin of the series, why was the github helper dropped in favor of a direct tarball download?

As Arnout has responded in a follow-up review, we prefer an uploaded tarball because the github tarballs might change from time to time. Furthermore, the uploaded tarballs often contains autogenerated files which frees us from doing autoreconf for the package.

Quoted 11 lines
Quoted 8 lines

2. add package/pkg-meson.mk
3. resubmit the libmpdclient version bump patch by J?rg Krause but with $(eval $(meson-package)) changes
4. submit the systemd version bump and meson conversion patch(es)

That way we have the infrastructure, documentation, and two packages utilizing the infrastructure in one set to review. Does that sound alright?

@Andrey: I'll be happy to test your patches.

Best regards,
J?rg Krause
_______________________________________________
buildroot mailing list
buildroot at busybox.net
http://lists.busybox.net/mailman/listinfo/buildroot

#16 lore raw

cover Add support for Meson build

In reply to Andrey Yurovsky
Quoted 22 lines · Andrey Yurovsky

Hi,

Quoted 19 lines · Romain Naour

Thomas, Andrey, All,

Le 07/10/2017 ? 13:58, Thomas Petazzoni a ?crit :

Quoted 16 lines

Hello,

Quoted 11 lines · Andrey Yurovsky
Quoted 3 lines · Thomas Petazzoni

No, let's wait to have a few Meson-based packages in Buildroot, and then we'll have a package infrastructure. This will allow us to see what are the commonalities, what are the differences, etc.

systemd 235 is released (https://lwn.net/Articles/735691/) and it drops autoconf/automake and only has meson as the build system (in 234 they warned this would happen next) so perhaps that's a good starting point for buildroot to integrate meson support? I'm happy to help out if no one else was already working on it.

Quoted 7 lines
Quoted 4 lines
Quoted 1 line

This would indeed be a very compelling reason to support meson.

Also the next enlightenment release (0.22) will only support meson.

I was able to add a package/pkg-meson.mk wrapper (that seems to be missing from the Meson patch set, or did I completely miss it?) and

Yes, our original idea was that there should be a few packages using meson
before we add an infra for it. But since there are quite a few packages that will use the meson infra, and since it seems pretty straightforward, it can indeed be done right away (at least according to me, Thomas may have a different opinion).

Quoted 6 lines

built the previously submitted libmpdclient version bump via the $(eval $(meson-package)) wrapper. I'll work on version bumping systemd and converting it to use that wrapper as well. If possible I'd like to get this more or less right, what would a reasonable patch set look like? I was thinking, as a patch set:
1. resubmit the Meson patches (package/meson, documentation) by J?rg Krause

If you're anyway adding pkg-meson.mk, then the documentation doesn't make much
sense (in that form). Better do it after pkg-meson.mk.

Quoted 8 lines

2. add package/pkg-meson.mk
3. resubmit the libmpdclient version bump patch by J?rg Krause but with $(eval $(meson-package)) changes
4. submit the systemd version bump and meson conversion patch(es)

That way we have the infrastructure, documentation, and two packages utilizing the infrastructure in one set to review. Does that sound alright?

Yes it does!

Regards,
Arnout

Signature · 6 lines
Arnout Vandecappelle                          arnout at mind be
Senior Embedded Software Architect            +32-16-286500
Essensium/Mind                                http://www.mind.be
G.Geenslaan 9, 3001 Leuven, Belgium           BE 872 984 063 RPR Leuven
LinkedIn profile: http://www.linkedin.com/in/arnoutvandecappelle
GPG fingerprint:  7493 020B C7E3 8618 8DEC 222C 82EB F404 F9AC 0DDF
#17 lore raw

cover Add support for Meson build

Hello,

Quoted 5 lines · Arnout Vandecappelle

Yes, our original idea was that there should be a few packages using meson
before we add an infra for it. But since there are quite a few packages that will use the meson infra, and since it seems pretty straightforward, it can indeed be done right away (at least according to me, Thomas may have a different opinion).

Yes, I believe it's fine to have a Meson package infrastructure right away. There is a clear trend towards using Meson, so I'm fine with merging a package infrastructure for it.

Thomas

Signature · 3 lines
Thomas Petazzoni, CTO, Free Electrons
Embedded Linux and Kernel engineering
http://free-electrons.com