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

Re: opam gotcha



Sorry, I should have dropped a note to the list when I noticed this!  I've just
aliased a shell script to unset MIRAGE_OS and MIRAGE_NET before calling 
opam-switch.

Thomas, perhaps one way to fix this is by having an opam-switch register 
post-switch
commands, and invoking those before any future switch?  This one is difficult 
to work
around in build scripts, since the other (upstream) compiler specifications 
know 
nothing about our stuff...

-anil

On 5 Sep 2012, at 06:42, David Scott <scott.dj@xxxxxxxxx> wrote:

> Hi,
> 
> Thanks, I guess I should go straight to the issue tracker myself in future :-)
> 
> The problem isn't urgent for me -- now that I understand what's
> happening I can easily work around it.
> 
> Thanks,
> Dave
> 
> On Wed, Sep 5, 2012 at 2:26 PM, Thomas Gazagnaire
> <thomas.gazagnaire@xxxxxxxxx> wrote:
>> Hi Dave,
>> 
>> Anil opened an issue on github for this: 
>> https://github.com/OCamlPro/opam/issues/102
>> 
>> I'm not totally sure how I could fix this properly, but I'll try to commit a 
>> fix for this today.
>> 
>> --
>> Thomas
>> 
>> On Sep 5, 2012, at 3:20 PM, David Scott wrote:
>> 
>>> Hi,
>>> 
>>> I just got bitten by this:
>>> 
>>> 1. do some xen work:
>>> 
>>> $ opam switch 3.12.1+mirage-xen
>>> 
>>> To update your environment variables, you can now run:
>>> 
>>>   $ eval `opam config -env`
>>> 
>>> djs@debian:~/ocaml-cstruct$ opam config -env
>>> PATH=/home/djs/.opam/3.12.1+mirage-xen/bin:/home/djs/mir-inst/bin:/usr/local/bin:/usr/bin:/bin:/usr/local/games:/usr/games;
>>> export PATH;
>>> OCAML_TOPLEVEL_PATH=/home/djs/.opam/3.12.1+mirage-xen/lib/toplevel;
>>> export OCAML_TOPLEVEL_PATH;
>>> MIRAGE_OS=xen; export MIRAGE_OS;
>>> MIRAGE_NET=direct; export MIRAGE_NET;
>>> 
>>> Note the MIRAGE_* environment variables are exported
>>> 
>>> 2. do some system work:
>>> 
>>> $ opam switch system
>>> 3.12.1
>>> /usr/lib/ocaml
>>> 3.12.1
>>> 
>>> To update your environment variables, you can now run:
>>> 
>>>   $ eval `opam config -env`
>>> 
>>> djs@debian:~/ocaml-cstruct$ opam config -env
>>> PATH=/home/djs/.opam/system/bin:/home/djs/mir-inst/bin:/usr/local/bin:/usr/bin:/bin:/usr/local/games:/usr/games;
>>> export PATH;
>>> OCAML_TOPLEVEL_PATH=/home/djs/.opam/system/lib/toplevel; export
>>> OCAML_TOPLEVEL_PATH;
>>> CAML_LD_LIBRARY_PATH=/home/djs/.opam/system/lib/stublibs:/usr/lib/ocaml/stublibs;
>>> export CAML_LD_LIBRARY_PATH;
>>> 
>>> Note the MIRAGE_* environment variables are still in my environment
>>> from the last time.
>>> 
>>> 3. attempt to build cstruct, the Makefile has:
>>> 
>>> OS ?= unix
>>> 
>>> ifneq "$(MIRAGE_OS)" ""
>>> OS := $(MIRAGE_OS)
>>> endif
>>> 
>>> ... so it does a xen build by mistake.
>>> 
>>> I can manually unset these variables myself, now that I know I should.
>>> Is there a more automatic way?
>>> 
>>> Cheers,
>>> --
>>> Dave Scott
>>> 
>> 
> 
> 
> 
> -- 
> Dave Scott
> 




 


Rackspace

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