[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [MirageOS-devel] Building mirage-www fails



The && should catch that failure.  Consider:

#!/bin/sh -ex

exit 1 && echo hello
echo world

Executing that:

$ ./test.sh 
+ exit 1

If the make depend fails, I'd expect the && to fail, and the resulting non-zero 
exit code to cause the whole shell to exit.

-anil

On 21 Oct 2014, at 15:37, Richard Mortier <Richard.Mortier@xxxxxxxxxxxxxxxx> 
wrote:

> but isn't it the "make depend" step that's failing as far as the 
> is-mirage-broken/scripts/mirage-www script is concerned -- hence it won't 
> exit according to point 2. below (-e is ignored if it's any command of an 
> AND-OR list other than the last).
> 
> with -e on, seems expected practice is to issue the commands individually i.e.
> 
> make depend
> make configure
> make build
> 
> ...and let the -e fail them if required. (assuming you don't want to 
> accumulate info about failures of depend/configure on other platforms before 
> bailing out.)
> 
> On 21 Oct 2014, at 15:18, Anil Madhavapeddy <anil@xxxxxxxxxx> wrote:
> 
>> It's here:
>> https://github.com/mirage/is-mirage-broken/blob/master/scripts/mirage-www
>> 
>> And the `make` invocations do seem to exit with a non-zero exit code.
>> 
>> -ani
>> 
>> On 21 Oct 2014, at 15:02, Richard Mortier <Richard.Mortier@xxxxxxxxxxxxxxxx> 
>> wrote:
>> 
>>> not sure precisely where the script being executed actually is but could it 
>>> be because it's a command in a multi-command pipeline?
>>> 
>>> http://pubs.opengroup.org/onlinepubs/9699919799/utilities/V3_chap02.html
>>> 
>>> -e
>>> When this option is on, when any command fails (for any of the reasons 
>>> listed in Consequences of Shell Errors or by returning an exit status 
>>> greater than zero), the shell immediately shall exit with the following 
>>> exceptions:
>>>     • The failure of any individual command in a multi-command pipeline 
>>> shall not cause the shell to exit. Only the failure of the pipeline itself 
>>> shall be considered.
>>> 
>>>     • The -e setting shall be ignored when executing the compound list 
>>> following the while, until, if, or elif reserved word, a pipeline beginning 
>>> with the ! reserved word, or any command of an AND-OR list other than the 
>>> last.
>>> 
>>>     • If the exit status of a compound command other than a subshell 
>>> command was the result of a failure while -e was being ignored, then -e 
>>> shall not apply to this command.
>>> 
>>> This requirement applies to the shell environment and each subshell 
>>> environment separately. For example, in:
>>> 
>>> set -e; (false; echo one) | cat; echo two
>>> 
>>> 
>>> the false command causes the subshell to exit without executing echo one; 
>>> however, echo two is executed because the exit status of the pipeline 
>>> (false; echo one) | cat is zero.
>>> 
>>> 
>>> 
>>> On 21 Oct 2014, at 14:31, Anil Madhavapeddy <anil@xxxxxxxxxx> wrote:
>>> 
>>>> Great!  For the rest of the list, it looks like mirage-dev is working with 
>>>> the external OPAM solver (aspcud, on Ubuntu-trusty), but not with the 
>>>> internal one (CentOS builds):
>>>> 
>>>> https://github.com/mirage/is-mirage-broken/tree/master/logs
>>>> 
>>>> This is probably due to our excessive use of depopts; I will replace those 
>>>> with explicit virtual packages (e.g. dns-mirage) that encode all the 
>>>> dependencies they need.
>>>> 
>>>> More mysteriously, the `set -e` in the shell script isn't causing it to 
>>>> terminate early, so the `MIRAGE WORKS` string is always printed.  We need 
>>>> a is-mirage-working-working script to fix our is-mirage-working script :-)
>>>> 
>>>> -anil
>>>> 
>>>> On 20 Oct 2014, at 15:09, Luke Dunstan <lukedunstan81@xxxxxxxxx> wrote:
>>>> 
>>>>> Thanks, I was able to compile and run mirage-www on a Docker image with 
>>>>> 4.01.
>>>>> 
>>>>> Luke
>>>>> 
>>>>> 
>>>>> On 20 October 2014 09:28, Anil Madhavapeddy <anil@xxxxxxxxxx> wrote:
>>>>> On 19 Oct 2014, at 03:17, Luke Dunstan <lukedunstan81@xxxxxxxxx> wrote:
>>>>> 
>>>>>> Hi,
>>>>>> 
>>>>>> I tried to build mirage-www as per http://openmirage.org/wiki/mirage-www
>>>>>> 
>>>>>> $ env NET=socket FS=crunch mirage configure --unix
>>>>>> (success)
>>>>>> 
>>>>>> $ make depend
>>>>>> (success*)
>>>>>> 
>>>>>> $ make
>>>>>> camlbuild -classic-display -use-ocamlfind -pkgs 
>>>>>> lwt.syntax,conduit.mirage,cow.syntax,cowabloga,cstruct,io-page,io-page.unix,lwt,mirage-console.unix,mirage-fs-unix,mirage-http,mirage-types,mirage-types.lwt,tcpip.stack-socket
>>>>>>  -tags "syntax(camlp4o),annot,bin_annot,strict_sequence,principal" 
>>>>>> -cflag -g -lflags -g,-linkpkg main.native
>>>>>> ocamlfind ocamlc -c -g -annot -bin-annot -principal -strict-sequence 
>>>>>> -package tcpip.stack-socket -package mirage-types.lwt -package 
>>>>>> mirage-types -package mirage-http -package mirage-fs-unix -package 
>>>>>> mirage-console.unix -package lwt -package io-page.unix -package io-page 
>>>>>> -package cstruct -package cowabloga -package cow.syntax -package 
>>>>>> conduit.mirage -package lwt.syntax -syntax camlp4o -o main.cmo main.ml
>>>>>> + ocamlfind ocamlc -c -g -annot -bin-annot -principal -strict-sequence 
>>>>>> -package tcpip.stack-socket -package mirage-types.lwt -package 
>>>>>> mirage-types -package mirage-http -package mirage-fs-unix -package 
>>>>>> mirage-console.unix -package lwt -package io-page.unix -package io-page 
>>>>>> -package cstruct -package cowabloga -package cow.syntax -package 
>>>>>> conduit.mirage -package lwt.syntax -syntax camlp4o -o main.cmo main.ml
>>>>>> File "main.ml", line 98, characters 2-13:
>>>>>> Error: Unbound module OS
>>>>>> Command exited with code 2.
>>>>>> make: *** [main.native] Error 10
>>>>>> 
>>>>>> 
>>>>>> To try to ensure that this was reproducible I also tried starting from 
>>>>>> the "avsm/docker-opam:ubuntu-trusty-4.01.0" Docker image and got the 
>>>>>> same error. However, I had to change the ounit package URL because 
>>>>>> forge.ocamlcore.org is apparently down.
>>>>>> 
>>>>>> Also, I had to "apt-get install libssl-dev" to get past the "configure" 
>>>>>> / "make depend" step because it was apparently required to compile 
>>>>>> ssl-0.4.7, so maybe that is related to the problem?
>>>>> 
>>>>> Hi Luke,
>>>>> 
>>>>> Thanks for the bug report, and bonus points for trying the Docker 
>>>>> repository out.  I've fixed the underlying issue that was causing the 
>>>>> unbound OS module to show up -- it's because of some recent shuffling of 
>>>>> dependencies in console handling, and this resulted in mirage-unix no 
>>>>> longer being implicitly depended on.  I've modified the mirage tool to 
>>>>> explicitly add the dependency in.
>>>>> 
>>>>> In order to help keep things working across the increasing number of 
>>>>> distributions, I've also created a couple of cron jobs that automatically 
>>>>> build things and publish the logs
>>>>> 
>>>>> - The Docker registry now has OPAM tags for Ubuntu/CentOS on OCaml 4.01 
>>>>> and 4.02:  
>>>>> https://registry.hub.docker.com/u/avsm/docker-opam/builds_history/15669/
>>>>> https://github.com/avsm/docker-opam has the sources
>>>>> 
>>>>> - https://github.com/mirage/is-mirage-broken runs as a cronjob (cron.sh) 
>>>>> on blobs.openmirage.org daily and pushes the logs to the logs/ directory 
>>>>> in this repo.  When that's completed running (and we've fixed the build 
>>>>> breakages!), it should be easy to get it on the website as a badge so we 
>>>>> can see the status of repos at a glance.
>>>>> 
>>>>> About to hop on a flight now, so I've left the cron job running and will 
>>>>> check it out tomorrow.  If anyone else can test out the Docker images in 
>>>>> the meanwhile, feel free...
>>>>> 
>>>>> -anil
>>>>> 
>>>>> _______________________________________________
>>>>> MirageOS-devel mailing list
>>>>> MirageOS-devel@xxxxxxxxxxxxxxxxxxxx
>>>>> http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel
>>>> 
>>>> _______________________________________________
>>>> MirageOS-devel mailing list
>>>> MirageOS-devel@xxxxxxxxxxxxxxxxxxxx
>>>> http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel
>>> 
>>> 
>>> -- 
>>> Cheers,
>>> 
>>> R.
>>> 
>>> 
>>> 
>>> 
>>> _______________________________________________
>>> MirageOS-devel mailing list
>>> MirageOS-devel@xxxxxxxxxxxxxxxxxxxx
>>> http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel
>> 
> 
> 
> -- 
> Cheers,
> 
> R.
> 
> 
> 
> 
> _______________________________________________
> MirageOS-devel mailing list
> MirageOS-devel@xxxxxxxxxxxxxxxxxxxx
> http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel


_______________________________________________
MirageOS-devel mailing list
MirageOS-devel@xxxxxxxxxxxxxxxxxxxx
http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel


 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.