wget within guix fails to resolve FQDNs when used as an input (native or otherwise)

  • Done
  • quality assurance status badge
Details
3 participants
  • Dennis Mungai
  • Thompson, David
  • Ludovic Courtès
Owner
unassigned
Submitted by
Dennis Mungai
Severity
normal
D
D
Dennis Mungai wrote on 18 Mar 2016 19:04
(address . bug-guix@gnu.org)
CAKKYfmEr_DPepJKbapk6qGiFuqqBDGp99zsZ5V_xYKBRvcbTXQ@mail.gmail.com
Hello there,

I'm porting Arrayfire to GNU Guix, see

One of the inputs declared is wget, needed as a fall-back when fetching
BoostCompute should the Cmake checksums fail.

See the build log below:

-- Boost version: 1.60.0
-- BoostCompute...
-- validating
/tmp/nix-build-arrayfire-3.3.1.drv-0/build/third_party/compute-0.5.tar.gz
CMake Warning at CMakeModules/build_boost_compute.cmake:47 (MESSAGE):
/tmp/nix-build-arrayfire-3.3.1.drv-0/build/third_party/compute-0.5.tar.gz:
Invalid check sum d41d8cd98f00b204e9800998ecf8427e. Expected was
69a52598ac539d3b7f6005a3dd2b6f58
Call Stack (most recent call first):
src/backend/opencl/CMakeLists.txt:91 (INCLUDE)


--2016-03-18 17:38:55--
Resolving github.com (github.com)... failed: Name or service not known.
wget: unable to resolve host address ‘github.com’
CMake Error at CMakeModules/build_boost_compute.cmake:53 (MESSAGE):
/tmp/nix-build-arrayfire-3.3.1.drv-0/build/third_party/compute-0.5.tar.gz:
Invalid check sum d41d8cd98f00b204e9800998ecf8427e. Expected was
69a52598ac539d3b7f6005a3dd2b6f58
Call Stack (most recent call first):
src/backend/opencl/CMakeLists.txt:91 (INCLUDE)


-- Configuring incomplete, errors occurred!
See also
"/tmp/nix-build-arrayfire-3.3.1.drv-0/build/CMakeFiles/CMakeOutput.log".
phase `configure' failed after 2.8 seconds
builder for
`/gnu/store/4ik93fkxrjy6acihzz5mzjcjkwc5va38-arrayfire-3.3.1.drv' failed
with exit code 1
@ build-failed
/gnu/store/4ik93fkxrjy6acihzz5mzjcjkwc5va38-arrayfire-3.3.1.drv - 1 builder
for `/gnu/store/4ik93fkxrjy6acihzz5mzjcjkwc5va38-arrayfire-3.3.1.drv'
failed with exit code 1
guix build: error: build failed: build of
`/gnu/store/4ik93fkxrjy6acihzz5mzjcjkwc5va38-arrayfire-3.3.1.drv' failed

As you can see in the first part, fetching BoostCompute fails because the
specified MD5 hash fails, and as a result, the build system falls back to
fetching the same with wget (see second snippet).

The second part fails because wget fails to resolve the FQDN entry
github.com.

However, when invoking wget directly, both the local instalation and the
Guix installation, the FQDN can be resolved correctly and the associated
file fetched successfully:

/gnu/store/w50mfvfzyjzpcbyw3lll7hm4j457jhb0-wget-1.17.1/bin/wget

Would this qualify as a bug filed against wget in Guix, or does the problem
lie elsewhere?

Regards,

Dennis.
Attachment: file
T
T
Thompson, David wrote on 18 Mar 2016 19:15
(name . Dennis Mungai)(address . dmngaie@gmail.com)(address . 23055@debbugs.gnu.org)
CAJ=RwfYMnoJ8qZdfWGiLnpzHdsV_HSu-PNwt+E-3HzyBwCcSBg@mail.gmail.com
On Fri, Mar 18, 2016 at 2:04 PM, Dennis Mungai <dmngaie@gmail.com> wrote:

Toggle quote (17 lines)
> As you can see in the first part, fetching BoostCompute fails because the
> specified MD5 hash fails, and as a result, the build system falls back to
> fetching the same with wget (see second snippet).
>
> The second part fails because wget fails to resolve the FQDN entry
> github.com.
>
> However, when invoking wget directly, both the local instalation and the
> Guix installation, the FQDN can be resolved correctly and the associated
> file fetched successfully:
>
> /gnu/store/w50mfvfzyjzpcbyw3lll7hm4j457jhb0-wget-1.17.1/bin/wget
> https://github.com/boostorg/compute/archive/v0.5.tar.gz
>
> Would this qualify as a bug filed against wget in Guix, or does the problem
> lie elsewhere?

In Guix, builds are performed in an isolated container where there is
*no* external network access. It must be this way because otherwise
builds would be non-deterministic. The only exception is for "fixed
output derivations", whose checksum is known in advance, which
wouldn't be the case here. So, the problem lies with Arrayfire's
build system. A build system really shouldn't download from the net.
It should use what the system has provided for it. In my experience,
build systems that try to download from the net usually try to find
something to use locally first. Without knowing anything beyond the
log you've shown me, I would guess that you need to package
BoostCompute first and provide that as an input to Arrayfire.
Hopefully then it won't try to download it.

Hope this helps!

- Dave
D
D
Dennis Mungai wrote on 18 Mar 2016 19:23
(name . Thompson, David)(address . dthompson2@worcester.edu)(address . 23055@debbugs.gnu.org)
CAKKYfmGdOhrN4h8BGArAgmgqDZ_--gunYagaf89NZra7yiQNNg@mail.gmail.com
Hello David,

Thanks for the clarification.

Seems Arrayfire will need several modify-phases statements to clean up the
current build system and in addition, port Boost.Compute to GNU Guix as an
input.

Will do, and provide feedback on the same.

Thanks and regards,

Dennis Mungai.

On 18 March 2016 at 21:15, Thompson, David <dthompson2@worcester.edu> wrote:

Toggle quote (37 lines)
> On Fri, Mar 18, 2016 at 2:04 PM, Dennis Mungai <dmngaie@gmail.com> wrote:
>
> > As you can see in the first part, fetching BoostCompute fails because the
> > specified MD5 hash fails, and as a result, the build system falls back to
> > fetching the same with wget (see second snippet).
> >
> > The second part fails because wget fails to resolve the FQDN entry
> > github.com.
> >
> > However, when invoking wget directly, both the local instalation and the
> > Guix installation, the FQDN can be resolved correctly and the associated
> > file fetched successfully:
> >
> > /gnu/store/w50mfvfzyjzpcbyw3lll7hm4j457jhb0-wget-1.17.1/bin/wget
> > https://github.com/boostorg/compute/archive/v0.5.tar.gz
> >
> > Would this qualify as a bug filed against wget in Guix, or does the
> problem
> > lie elsewhere?
>
> In Guix, builds are performed in an isolated container where there is
> *no* external network access. It must be this way because otherwise
> builds would be non-deterministic. The only exception is for "fixed
> output derivations", whose checksum is known in advance, which
> wouldn't be the case here. So, the problem lies with Arrayfire's
> build system. A build system really shouldn't download from the net.
> It should use what the system has provided for it. In my experience,
> build systems that try to download from the net usually try to find
> something to use locally first. Without knowing anything beyond the
> log you've shown me, I would guess that you need to package
> BoostCompute first and provide that as an input to Arrayfire.
> Hopefully then it won't try to download it.
>
> Hope this helps!
>
> - Dave
>
Attachment: file
D
D
Dennis Mungai wrote on 19 Mar 2016 08:36
(name . Thompson, David)(address . dthompson2@worcester.edu)(address . 23055@debbugs.gnu.org)
CAKKYfmH=epsseHWU8NeBy=m78aJ687iVoYgT+pYp-gbnFmDqwA@mail.gmail.com
Update:

All worked out.

I was able to port over the dependencies to guix and fed them as inputs to
the package in question.
All builds as expected.

Thanks and regards,

Dennis Mungai.

On 18 March 2016 at 21:23, Dennis Mungai <dmngaie@gmail.com> wrote:

Toggle quote (58 lines)
> Hello David,
>
> Thanks for the clarification.
>
> Seems Arrayfire will need several modify-phases statements to clean up the
> current build system and in addition, port Boost.Compute to GNU Guix as an
> input.
>
> Will do, and provide feedback on the same.
>
> Thanks and regards,
>
> Dennis Mungai.
>
> On 18 March 2016 at 21:15, Thompson, David <dthompson2@worcester.edu>
> wrote:
>
>> On Fri, Mar 18, 2016 at 2:04 PM, Dennis Mungai <dmngaie@gmail.com> wrote:
>>
>> > As you can see in the first part, fetching BoostCompute fails because
>> the
>> > specified MD5 hash fails, and as a result, the build system falls back
>> to
>> > fetching the same with wget (see second snippet).
>> >
>> > The second part fails because wget fails to resolve the FQDN entry
>> > github.com.
>> >
>> > However, when invoking wget directly, both the local instalation and the
>> > Guix installation, the FQDN can be resolved correctly and the associated
>> > file fetched successfully:
>> >
>> > /gnu/store/w50mfvfzyjzpcbyw3lll7hm4j457jhb0-wget-1.17.1/bin/wget
>> > https://github.com/boostorg/compute/archive/v0.5.tar.gz
>> >
>> > Would this qualify as a bug filed against wget in Guix, or does the
>> problem
>> > lie elsewhere?
>>
>> In Guix, builds are performed in an isolated container where there is
>> *no* external network access. It must be this way because otherwise
>> builds would be non-deterministic. The only exception is for "fixed
>> output derivations", whose checksum is known in advance, which
>> wouldn't be the case here. So, the problem lies with Arrayfire's
>> build system. A build system really shouldn't download from the net.
>> It should use what the system has provided for it. In my experience,
>> build systems that try to download from the net usually try to find
>> something to use locally first. Without knowing anything beyond the
>> log you've shown me, I would guess that you need to package
>> BoostCompute first and provide that as an input to Arrayfire.
>> Hopefully then it won't try to download it.
>>
>> Hope this helps!
>>
>> - Dave
>>
>
>
Attachment: file
L
L
Ludovic Courtès wrote on 19 Mar 2016 22:03
control message for bug #23055
(address . control@debbugs.gnu.org)
87zitufadr.fsf@gnu.org
tags 23055 notabug
close 23055
?