www.digitalmars.com         C & C++   DMDScript  

digitalmars.D.learn - Why can meson find hunt-net but not hunt-proton in dependency

reply YD <diyu60607 yahoo.com> writes:
Hi, I am trying to use Meson, and I did the followings to get dub 
packages:

    dub fetch hunt-net
    dub fetch hunt-proton
    dub build hunt-net
    dub build hunt-proton

when I have this line in my meson.build file:

    dependency('hunt-net', method: 'dub')

It works fine:

    Run-time dependency hunt-net found: YES 0.4.6

But when I change it to

    dependency('hunt-proton', method: 'dub')

It simply says:

    Run-time dependency hunt-proton found: NO
    ... ERROR: Dependency "hunt-proton" not found

And when I looked at meson-log.txt, I couldn't find any clue on 
why that happens:

     Determining dependency 'hunt-proton' with DUB executable 
'.../dlang/dmd-2.091.0/linux/bin64/dub'
     Run-time dependency hunt-proton found: NO

So I completely cannot figure out why hunt-net is resolvable but 
hunt-proton is not. Can anyone help me understand how meson 
resolves these dependencies? Thanks!
Mar 31 2020
parent reply YD <diyu60607 yahoo.com> writes:
On Tuesday, 31 March 2020 at 19:51:31 UTC, YD wrote:
 Hi, I am trying to use Meson, and I did the followings to get 
 dub packages:

    dub fetch hunt-net
    dub fetch hunt-proton
    dub build hunt-net
    dub build hunt-proton

 when I have this line in my meson.build file:

    dependency('hunt-net', method: 'dub')

 It works fine:

    Run-time dependency hunt-net found: YES 0.4.6

 But when I change it to

    dependency('hunt-proton', method: 'dub')

 It simply says:

    Run-time dependency hunt-proton found: NO
    ... ERROR: Dependency "hunt-proton" not found

 And when I looked at meson-log.txt, I couldn't find any clue on 
 why that happens:

     Determining dependency 'hunt-proton' with DUB executable 
 '.../dlang/dmd-2.091.0/linux/bin64/dub'
     Run-time dependency hunt-proton found: NO

 So I completely cannot figure out why hunt-net is resolvable 
 but hunt-proton is not. Can anyone help me understand how meson 
 resolves these dependencies? Thanks!
I have a feeling that it might be because of the fact that hunt-proton has a "beta" in its version: hunt-net 0.4.6: /home/.../.dub/packages/hunt-net-0.4.6/hunt-net/ hunt-proton 1.0.0-beta.3: /home/.../.dub/packages/hunt-proton-1.0.0-beta.3/hunt-proton/ However, this does not help me solve the problem. Even if I add a "version" parameter to the dependency() function, it still does not resolve hunt-proton. Any help will be greatly appreciated, thanks.
Mar 31 2020
parent reply YD <diyu60607 yahoo.com> writes:
On Tuesday, 31 March 2020 at 19:59:25 UTC, YD wrote:
 On Tuesday, 31 March 2020 at 19:51:31 UTC, YD wrote:
 Hi, I am trying to use Meson, and I did the followings to get 
 dub packages:

    dub fetch hunt-net
    dub fetch hunt-proton
    dub build hunt-net
    dub build hunt-proton

 when I have this line in my meson.build file:

    dependency('hunt-net', method: 'dub')

 It works fine:

    Run-time dependency hunt-net found: YES 0.4.6

 But when I change it to

    dependency('hunt-proton', method: 'dub')

 It simply says:

    Run-time dependency hunt-proton found: NO
    ... ERROR: Dependency "hunt-proton" not found

 And when I looked at meson-log.txt, I couldn't find any clue 
 on why that happens:

     Determining dependency 'hunt-proton' with DUB executable 
 '.../dlang/dmd-2.091.0/linux/bin64/dub'
     Run-time dependency hunt-proton found: NO

 So I completely cannot figure out why hunt-net is resolvable 
 but hunt-proton is not. Can anyone help me understand how 
 meson resolves these dependencies? Thanks!
I have a feeling that it might be because of the fact that hunt-proton has a "beta" in its version: hunt-net 0.4.6: /home/.../.dub/packages/hunt-net-0.4.6/hunt-net/ hunt-proton 1.0.0-beta.3: /home/.../.dub/packages/hunt-proton-1.0.0-beta.3/hunt-proton/ However, this does not help me solve the problem. Even if I add a "version" parameter to the dependency() function, it still does not resolve hunt-proton. Any help will be greatly appreciated, thanks.
So I found that the issue is that dub.json file in hunt-proton has an entry referring to the parent package with a relative file path in it. When that relative file path is removed, Meson can find hunt-proton. However, even after Meson found it, there are two bad behaviors: (1) Meson refused to automatically add the dependencies of hunt-proton, and I had to manually add them to meson.build. (2) Meson did not automatically add the appropriate d_module_versions setting that is required by hunt (the HAVE_EPOLL/HAVE_IOCP/... setting), and I had to manually add that too. Anyway, after manually tweaking the meson.build file like above, I got it to work (except that compiling/linking seems quite slow).
Mar 31 2020
parent reply Heromyth <bitworld qq.com> writes:
On Wednesday, 1 April 2020 at 01:21:22 UTC, YD wrote:
 On Tuesday, 31 March 2020 at 19:59:25 UTC, YD wrote:
 [...]
So I found that the issue is that dub.json file in hunt-proton has an entry referring to the parent package with a relative file path in it. When that relative file path is removed, Meson can find hunt-proton. However, even after Meson found it, there are two bad behaviors: (1) Meson refused to automatically add the dependencies of hunt-proton, and I had to manually add them to meson.build. (2) Meson did not automatically add the appropriate d_module_versions setting that is required by hunt (the HAVE_EPOLL/HAVE_IOCP/... setting), and I had to manually add that too. Anyway, after manually tweaking the meson.build file like above, I got it to work (except that compiling/linking seems quite slow).
Sorry for the inconveniences. We are still testing Hunt-AMQP. The problems about dub.json will be fixed soon.
Mar 31 2020
parent reply YD <diyu60607 yahoo.com> writes:
On Wednesday, 1 April 2020 at 01:56:26 UTC, Heromyth wrote:
 On Wednesday, 1 April 2020 at 01:21:22 UTC, YD wrote:
 [...]
Sorry for the inconveniences. We are still testing Hunt-AMQP. The problems about dub.json will be fixed soon.
Thanks for the reply! BTW is hunt-amqp for AMQP 1.0 only? Because when I try it on an AMQP 0.9 server, it does not seem to connect. Thanks again!
Mar 31 2020
parent Heromyth <bitworld qq.com> writes:
On Wednesday, 1 April 2020 at 02:27:38 UTC, YD wrote:
 Thanks for the reply! BTW is hunt-amqp for AMQP 1.0 only? 
 Because when I try it on an AMQP 0.9 server, it does not seem 
 to connect. Thanks again!
We are using RabbitMQ v3.8.2 for test. The hunt-amqp is based on AMQP 1.0, and is not tested with AMQP 0.9. So, wo suggest you to upgrade the MQ server.
Apr 01 2020