www.digitalmars.com         C & C++   DMDScript  

digitalmars.D - Removing Meson as way of building dcd, d-scanner, etc

reply Basile B. <b2.temp gmx.com> writes:
Do you use it ? Is it useful ?
Dec 06 2018
next sibling parent reply Russel Winder <russel winder.org.uk> writes:
On Thu, 2018-12-06 at 10:54 +0000, Basile B. via Digitalmars-d wrote:
 Do you use it ? Is it useful ?
Meson builds are increasingly the way forward for builds in the GTK, GStreamer, and Debian milieus. --=20 Russel. =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D Dr Russel Winder t: +44 20 7585 2200 41 Buckmaster Road m: +44 7770 465 077 London SW11 1EN, UK w: www.russel.org.uk
Dec 06 2018
parent reply Basile B. <b2.temp gmx.com> writes:
On Thursday, 6 December 2018 at 12:11:06 UTC, Russel Winder wrote:
 On Thu, 2018-12-06 at 10:54 +0000, Basile B. via Digitalmars-d 
 wrote:
 Do you use it ? Is it useful ?
Meson builds are increasingly the way forward for builds in the GTK, GStreamer, and Debian milieus.
If i remember correctly the idea behind the addition of Meson build files was to have some semi official packages for D-scanner and DCD. Where are they ? Right now I'm a bit angry because of the maintenance required to support Meson. Usually i just don't care but today the CI is broken for some reasons (i just know it's related to Meson support. And this is not the first time.
Dec 06 2018
next sibling parent reply ikod <geller.garry gmail.com> writes:
On Thursday, 6 December 2018 at 13:10:53 UTC, Basile B. wrote:
 On Thursday, 6 December 2018 at 12:11:06 UTC, Russel Winder 
 wrote:
 On Thu, 2018-12-06 at 10:54 +0000, Basile B. via Digitalmars-d 
 wrote:
 Do you use it ? Is it useful ?
Meson builds are increasingly the way forward for builds in the GTK, GStreamer, and Debian milieus.
If i remember correctly the idea behind the addition of Meson build files was to have some semi official packages for D-scanner and DCD. Where are they ? Right now I'm a bit angry because of the maintenance required to support Meson. Usually i just don't care but today the CI is broken for some reasons (i just know it's related to Meson support. And this is not the first time.
There was a problem with meson test build on travis when travis changed default python version. I solved it forcing install proper version via something like - pyenv install 3.6.0 - pyenv global system 3.6.0 - pip3 install 'meson>=0.46' in .travis.yml Another problem is dependency, which I still didn't solve.
Dec 07 2018
parent Basile B. <b2.temp gmx.com> writes:
On Friday, 7 December 2018 at 10:03:36 UTC, ikod wrote:
 On Thursday, 6 December 2018 at 13:10:53 UTC, Basile B. wrote:
 On Thursday, 6 December 2018 at 12:11:06 UTC, Russel Winder 
 wrote:
 On Thu, 2018-12-06 at 10:54 +0000, Basile B. via 
 Digitalmars-d wrote:
 Do you use it ? Is it useful ?
Meson builds are increasingly the way forward for builds in the GTK, GStreamer, and Debian milieus.
If i remember correctly the idea behind the addition of Meson build files was to have some semi official packages for D-scanner and DCD. Where are they ? Right now I'm a bit angry because of the maintenance required to support Meson. Usually i just don't care but today the CI is broken for some reasons (i just know it's related to Meson support. And this is not the first time.
There was a problem with meson test build on travis when travis changed default python version. I solved it forcing install proper version via something like - pyenv install 3.6.0
This is slow and a waste of resources because (see later, about v 3.4.3)
   - pyenv global system 3.6.0
   - pip3 install 'meson>=0.46'

 in .travis.yml
Yes this is what we will do as well. But not right now because i suspect a regression, so this can be fixed in the next days. Travis has definitively version 3.4.3 installed by default but just pyenv global system 3.4.3 doesn't work (i even tried to use a script that extracted the python3 --version number, just in case of, and use this env var in the pyenv command) and this didn't work, leading to think that 3.4.3 is either not detected by pyenv or their default setup is not standard.
 Another problem is dependency, which I still didn't solve.
Package version is less convenient too (harcoded in file while DUB uses the git tags) but this is part of the stuff i ignore and i let the "Meson guy(s)" handle this when the build doesn't work for them anymore.
Dec 07 2018
prev sibling parent reply Filipe =?UTF-8?B?TGHDrW5z?= <lains archlinux.org> writes:
On Thursday, 6 December 2018 at 13:10:53 UTC, Basile B. wrote:
 If i remember correctly the idea behind the addition of Meson 
 build files was to have some semi official packages for 
 D-scanner and DCD. Where are they ?

 Right now I'm a bit angry because of the maintenance required 
 to support Meson. Usually i just don't care but today the CI is 
 broken for some reasons (i just know it's related to Meson 
 support. And this is not the first time.
If you want I can step in and maintain meson. Also, we have official package for both D-Scanner and DCD in Archlinux.
Dec 09 2018
parent reply Basile B. <b2.temp gmx.com> writes:
On Sunday, 9 December 2018 at 16:53:22 UTC, Filipe Laíns wrote:
 On Thursday, 6 December 2018 at 13:10:53 UTC, Basile B. wrote:
 If i remember correctly the idea behind the addition of Meson 
 build files was to have some semi official packages for 
 D-scanner and DCD. Where are they ?

 Right now I'm a bit angry because of the maintenance required 
 to support Meson. Usually i just don't care but today the CI 
 is broken for some reasons (i just know it's related to Meson 
 support. And this is not the first time.
If you want I can step in and maintain meson. Also, we have official package for both D-Scanner and DCD in Archlinux.
I'm thinking about inviting you to dlang-community then. Do you think you can fix at least the stupid stuff we have to do right know (install python 3 while it's already setup). Again today i have to do this: https://github.com/dlang-community/tinyendian/pull/18/files Which is awfully slow. Most of the time is spent on setup python 3.6.3, which is not correct. CI tests for this product should not spend more than 30 secs. Now they raise to 4 minutes. The problem right now is that i handle this while i should not. I have zero python+its ecosystem knowledge, i just use "dub" "make" or my own exotic way of building, so the fix has chances to be be stupid.
Dec 12 2018
next sibling parent reply Basile B. <b2.temp gmx.com> writes:
On Wednesday, 12 December 2018 at 12:23:40 UTC, Basile B. wrote:
 On Sunday, 9 December 2018 at 16:53:22 UTC, Filipe Laíns wrote:
 On Thursday, 6 December 2018 at 13:10:53 UTC, Basile B. wrote:
 If i remember correctly the idea behind the addition of Meson 
 build files was to have some semi official packages for 
 D-scanner and DCD. Where are they ?

 Right now I'm a bit angry because of the maintenance required 
 to support Meson. Usually i just don't care but today the CI 
 is broken for some reasons (i just know it's related to Meson 
 support. And this is not the first time.
If you want I can step in and maintain meson. Also, we have official package for both D-Scanner and DCD in Archlinux.
I'm thinking about inviting you to dlang-community then. Do you think you can fix at least the stupid stuff we have to do right know (install python 3 while it's already setup). Again today i have to do this: https://github.com/dlang-community/tinyendian/pull/18/files Which is awfully slow. Most of the time is spent on setup python 3.6.3, which is not correct. CI tests for this product should not spend more than 30 secs. Now they raise to 4 minutes. The problem right now is that i handle this while i should not. I have zero python+its ecosystem knowledge, i just use "dub" "make" or my own exotic way of building, so the fix has chances to be be stupid.
Just 3 minutes to install a python version at Travis, that will work to use Meson https://travis-ci.org/dlang-community/tinyendian/jobs/466966513#L122 That's **silly**.
Dec 12 2018
parent kinke <noone nowhere.com> writes:
On Wednesday, 12 December 2018 at 12:40:35 UTC, Basile B. wrote:
 Just 3 minutes to install a python version at Travis, that will 
 work to use Meson

     
 https://travis-ci.org/dlang-community/tinyendian/jobs/466966513#L122

 That's **silly**.
What's even more silly is building Python manually first, then doing `homebrew update` (taking 290 secs!) before brewing ninja and Python again (the latter not working). If you just need homebrew for Ninja, then do yourself a favor and download the prebuilt https://github.com/ninja-build/ninja/releases/download/v1.8.2/ninja-mac.zip, that's what we do for LDC CI too. This `homebrew update` is ridiculous, at least for Travis.
Dec 12 2018
prev sibling parent reply Filipe =?UTF-8?B?TGHDrW5z?= <lains archlinux.org> writes:
On Wednesday, 12 December 2018 at 12:23:40 UTC, Basile B. wrote:
 I'm thinking about inviting you to dlang-community then. Do you 
 think you can fix at least the stupid stuff we have to do right 
 know (install python 3 while it's already setup). Again today i 
 have to do this:

     https://github.com/dlang-community/tinyendian/pull/18/files

 Which is awfully slow. Most of the time is spent on setup 
 python 3.6.3, which is not correct. CI tests for this product 
 should not spend more than 30 secs. Now they raise to 4 minutes.

 The problem right now is that i handle this while i should not. 
 I have zero python+its ecosystem knowledge, i just use "dub" 
 "make" or my own exotic way of building, so the fix has chances 
 to be be stupid.
That's fine by me. I may not be as active as I would wish at times so if that happens just give me a mention or send me an email. Regarding your issue, it seems that meson 0.29.0 is available in xenial's repo so that might be worth installing directly. To avoid installing python each CI run, you might want to cache it[1]. That should speed up the CI quite a bit. [1] https://docs.travis-ci.com/user/caching/
Dec 14 2018
parent reply Basile B. <b2.temp gmx.com> writes:
On Saturday, 15 December 2018 at 00:47:34 UTC, Filipe Laíns wrote:
 On Wednesday, 12 December 2018 at 12:23:40 UTC, Basile B. wrote:
 I'm thinking about inviting you to dlang-community then. Do 
 you think you can fix at least the stupid stuff we have to do 
 right know (install python 3 while it's already setup). Again 
 today i have to do this:

     https://github.com/dlang-community/tinyendian/pull/18/files

 Which is awfully slow. Most of the time is spent on setup 
 python 3.6.3, which is not correct. CI tests for this product 
 should not spend more than 30 secs. Now they raise to 4 
 minutes.

 The problem right now is that i handle this while i should 
 not. I have zero python+its ecosystem knowledge, i just use 
 "dub" "make" or my own exotic way of building, so the fix has 
 chances to be be stupid.
That's fine by me. I may not be as active as I would wish at times so if that happens just give me a mention or send me an email. Regarding your issue, it seems that meson 0.29.0 is available in xenial's repo so that might be worth installing directly. To avoid installing python each CI run, you might want to cache it[1]. That should speed up the CI quite a bit. [1] https://docs.travis-ci.com/user/caching/
I didn't know that meson 0.29 is available on their xenial-based VMs but i was adviced yesterday to use xenial because it has python 3.5 which is good enough for meson. This is what i did, everywhere([1],[2],...), so everything is fine now. By the way meson 0.29 is probably not capable of building D. This looks like a very old release. [1] https://github.com/dlang-community/libdparse/pull/332/files [2] https://github.com/dlang-community/containers/pull/132/files
Dec 14 2018
parent Filipe =?UTF-8?B?TGHDrW5z?= <lains archlinux.org> writes:
On Saturday, 15 December 2018 at 04:55:53 UTC, Basile B. wrote:
 I didn't know that meson 0.29 is available on their 
 xenial-based VMs but i was adviced yesterday to use xenial 
 because it has python 3.5 which is good enough for meson. This 
 is what i did, everywhere([1],[2],...), so everything is fine 
 now.

 By the way meson 0.29 is probably not capable of building D. 
 This looks like a very old release.

 [1] https://github.com/dlang-community/libdparse/pull/332/files
 [2] https://github.com/dlang-community/containers/pull/132/files
Sorry for the super late reply! I have been really busy with the holidays. At the time I didn't realize meson 0.29 was **that** outdated. If we cache the package contents' meson doesn't need to be installed on each CI run. I'll try to open some pull requests with this hopefully working.
Jan 03 2019
prev sibling next sibling parent reply Neia Neutuladh <neia ikeran.org> writes:
On Thu, 06 Dec 2018 10:54:48 +0000, Basile B. wrote:
 Do you use it ? Is it useful ?
I would consider touching Meson at all if it could fetch dependencies. But it can't, which sucks. Though I'm amused to note that its documentation uses one of my libraries in an example.
Dec 06 2018
parent reply Antonio Corbi <antonio ggmail.com> writes:
On Friday, 7 December 2018 at 04:59:32 UTC, Neia Neutuladh wrote:
 On Thu, 06 Dec 2018 10:54:48 +0000, Basile B. wrote:
 Do you use it ? Is it useful ?
I would consider touching Meson at all if it could fetch dependencies. But it can't, which sucks. Though I'm amused to note that its documentation uses one of my libraries in an example.
Hi Neia, I began playing with meson (v 0.48.2) the other day (Terminix example has been very useful) and it seems to fetch and compile dependencies via dub. On the other hand my pet-project compile times have downloaded from approx. 1m 10s. build time with dub to approx. 50s. build time with meson. I.e. I declare dependencies to fetch with dub in meson.build like this: gtkd_dep = dependency('gtk-d:gtkd', version: '>=3.8.4', method: 'dub') xlib_dep = dependency('x11') And use them like this: dgtalib = static_library('dgtalib', dgtalib_sources, include_directories: sources_dir, dependencies : [gtkd_dep, xlib_dep]) Hope this helps Antonio
Dec 07 2018
parent reply Neia Neutuladh <neia ikeran.org> writes:
On Fri, 07 Dec 2018 08:15:58 +0000, Antonio Corbi wrote:
 On the other hand my pet-project compile times have downloaded from
 approx. 1m 10s. build time with dub to approx. 50s. build time with
 meson.
That looks like the time difference I got from adding --no-deps to the command line for dub and depending on gtk-d as a shared library.
 I.e. I declare dependencies to fetch with dub in meson.build like this:
The meson documentation currently says that dub dependencies don't get fetched. If substituting `dub build` with `meson build` just worked, that would be fine. Instead, it's substituting `dub build` with `dub fetch pkgA versionA && dub fetch pkgB versionB && ... && meson build`. That's pretty unfriendly. So I'd end up having to write a meson build file and a build script, and I'd have to keep dependencies in sync between the two.
Dec 07 2018
parent Filipe =?UTF-8?B?TGHDrW5z?= <lains archlinux.org> writes:
On Friday, 7 December 2018 at 17:29:45 UTC, Neia Neutuladh wrote:
 On Fri, 07 Dec 2018 08:15:58 +0000, Antonio Corbi wrote:
 The meson documentation currently says that dub dependencies 
 don't get fetched.
Yeah... Meson is a build system not a build system & package manager like dub.
 If substituting `dub build` with `meson build` just worked, 
 that would be fine. Instead, it's substituting `dub build` with 
 `dub fetch pkgA versionA && dub fetch pkgB versionB && ... && 
 meson build`. That's pretty unfriendly. So I'd end up having to 
 write a meson build file and a build script, and I'd have to 
 keep dependencies in sync between the two.
Uh? Please show me your project. You can easily define the dependency version in meson and then call a prepare script that runs dub fetch and dub build. You can also have meson automatically update the dependencies in your dub file.
Dec 09 2018
prev sibling parent reply bioinfornatics <bioinfornatics fedoraproject.org> writes:
On Thursday, 6 December 2018 at 10:54:48 UTC, Basile B. wrote:
 Do you use it ? Is it useful ?
At Fedora we use meson to build these projects. So yes it is useful
Dec 17 2018
parent Ralph Amissah <ralph.amissah gmail.com> writes:
Debian uses meson to build things D as well and it appears to fit
elegantly with their package creation tools, related work is already
in place. Fedora it appears uses meson too. My understanding use of
meson integrates with the rest of Debian package creation system and
more or less automates the process... anything to make use of meson
more straightforward makes the packaging and distribution of D tools,
libraries and applications more likely, and should be positive with
regard to the adoption of things D within Linux infrastructure (Debian
+ its many derivatives and Red Hat / Fedora). Reiteration of previous
post. More with meson (and to assist its use with things D) please,
not less.

(reiteration of earlier posts:)
https://github.com/mesonbuild/meson/pull/685
https://forum.dlang.org/post/ezwgtwhrmxtggejboogn forum.dlang.org
https://forum.dlang.org/post/dpakidboblzgbdtejilz forum.dlang.org
https://forum.dlang.org/post/wfzvzberakgfvdspqzro forum.dlang.org
https://forum.dlang.org/post/gafxocanzszlqrrofcjw forum.dlang.org
https://forum.dlang.org/post/mailman.1087.1482453335.9448.digitalmars-d-bugs puremagic.com


On Mon, Dec 17, 2018 at 4:20 AM bioinfornatics via Digitalmars-d
<digitalmars-d puremagic.com> wrote:
 On Thursday, 6 December 2018 at 10:54:48 UTC, Basile B. wrote:
 Do you use it ? Is it useful ?
At Fedora we use meson to build these projects. So yes it is useful
Dec 17 2018