<html><head><meta http-equiv="Content-Type" content="text/html charset=iso-8859-1"></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;">As Louis and Anil already stated, the symlink-only approach is  bit fragile currently as most of the OCaml binaries are not relocatable (so you need to install them in the right symlink and then you cannot use them outside that path, which means cross-compilation won't work), so we didn't go that way as we though tweaking the PATH was more flexible and portable (don't forget, you have OS and file-systems which do not support symlinks).<div><br></div><div>An other point, where you can't go without tweaking the PATH anyway is when you use the system compiler: you need to export CAML_LD_LIBRARY_PATH anyway.<div><br></div><div>I think the right approach for this is to have a "global" switch where you can install everything you want to export in there -- or have a separate OPAM root for this. We can also improve the output of 'opam config var <VAR> --sexp' to remove the \n.</div><div><br></div><div>--</div><div>Thomas<br><div><br></div><div><div><div>On 21 Nov 2013, at 01:59, Sean McLaughlin <<a href="mailto:seanmcl@gmail.com">seanmcl@gmail.com</a>> wrote:</div><br class="Apple-interchange-newline"><blockquote type="cite"><div dir="ltr">I'm installing elisp files.  What would you tell the user to put in their .emacs?  <div>This is Louis' proposal:<br><div><br></div><div>(setq path-to-opam-shared </div><div>  (replace-regexp-in-string "\n" "" (shell-command-to-string "opam config var share")))<br>

</div><div><br></div><div>It would be nicer to do </div><div><br></div><div>(setq path-to-opam-shared "~/.opam/current/shared")</div><div><br></div></div><div>What is opam exec?</div><div><br></div><div>

<div>$ opam --version</div><div>1.1.0</div><div>$ opam exec</div><div>opam: unknown command `exec'</div><div>Usage: opam COMMAND ...</div><div>Try `opam --help' for more information.</div><div>EXIT STATUS 1</div>
</div>
<div><br></div><div><br></div></div><div class="gmail_extra"><br><br><div class="gmail_quote">On Wed, Nov 20, 2013 at 7:17 PM, Anil Madhavapeddy <span dir="ltr"><<a href="mailto:anil@recoil.org" target="_blank">anil@recoil.org</a>></span> wrote:<br>

<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div style="word-wrap:break-word">It breaks the nice property that you can start a shell with "opam exec" and have it do the right thing with respect to dependent tools.  If your scripts depend on an environment variable, then they'll work, but a symlink approach isn't quite as flexible.<div>

<br></div><div>Having said that, if people think that the symlink is really convenient and don't care about `opam exec`, I have no objection to a symlink being maintained.</div><span class="HOEnZb"><font color="#888888"><div>

<br></div><div>-anil</div></font></span><div><br><div><div><div class="h5"><div>On 20 Nov 2013, at 13:53, Louis Gesbert <<a href="mailto:louis.gesbert@ocamlpro.com" target="_blank">louis.gesbert@ocamlpro.com</a>> wrote:</div>

<br></div></div><blockquote type="cite"><div style="font-style:normal;font-variant:normal;font-weight:400;letter-spacing:normal;line-height:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;font-family:monospace;font-size:8pt">

<div><div class="h5"><div style="white-space:pre-wrap;margin:0px;text-indent:0px">Updating a symlink whenever you do `opam switch` wouldn't be too much of a problem indeed. What I am concerned about is that people may start using it from opam, which would break when the OPAMROOT and --root opam options are used.</div><p style="white-space:pre-wrap;margin:0px;text-indent:0px"> </p><div style="white-space:pre-wrap;margin:0px;text-indent:0px">But perhaps I am being too cautious ? I'm myself using a ~/opam link pointing to ~/.opam/4.01.0 ...</div><p style="white-space:pre-wrap;margin:0px;text-indent:0px"> </p><div style="white-space:pre-wrap;margin:0px;text-indent:0px">Best,</div><div style="white-space:pre-wrap;margin:0px;text-indent:0px">Louis</div><p style="white-space:pre-wrap;margin:0px;text-indent:0px">

 </p><div style="white-space:pre-wrap;margin:0px;text-indent:0px">Le lundi 18 novembre 2013 10:17:56 Sean McLaughlin a écrit :</div><div style="white-space:pre-wrap;margin:0px;text-indent:0px">> Hi Louis,</div><div style="white-space:pre-wrap;margin:0px;text-indent:0px">

> </div><div style="white-space:pre-wrap;margin:0px;text-indent:0px">> What are the issues to using a symlink?  Couldn't opam switch just move it</div><div style="white-space:pre-wrap;margin:0px;text-indent:0px">

> around?</div><div style="white-space:pre-wrap;margin:0px;text-indent:0px">> </div><div style="white-space:pre-wrap;margin:0px;text-indent:0px">> Best,</div><div style="white-space:pre-wrap;margin:0px;text-indent:0px">

> </div><div style="white-space:pre-wrap;margin:0px;text-indent:0px">> Sean</div><div style="white-space:pre-wrap;margin:0px;text-indent:0px">> </div><div style="white-space:pre-wrap;margin:0px;text-indent:0px">
> </div>
<div style="white-space:pre-wrap;margin:0px;text-indent:0px">> On Mon, Nov 18, 2013 at 3:30 AM, Louis Gesbert</div><div style="white-space:pre-wrap;margin:0px;text-indent:0px">> <<a href="mailto:louis.gesbert@ocamlpro.com" target="_blank">louis.gesbert@ocamlpro.com</a>>wrote:</div>

<div style="white-space:pre-wrap;margin:0px;text-indent:0px">> </div><div style="white-space:pre-wrap;margin:0px;text-indent:0px">> >  Le dimanche 17 novembre 2013 16:54:15 Sean McLaughlin a écrit :</div><div style="white-space:pre-wrap;margin:0px;text-indent:0px">

> ></div><div style="white-space:pre-wrap;margin:0px;text-indent:0px">> > > I'm trying to package a library that installs files in share. When I had</div><div style="white-space:pre-wrap;margin:0px;text-indent:0px">

> ></div><div style="white-space:pre-wrap;margin:0px;text-indent:0px">> > > only one compiler installed, the %{prefix}% argument sent them to</div><div style="white-space:pre-wrap;margin:0px;text-indent:0px">

> ></div><div style="white-space:pre-wrap;margin:0px;text-indent:0px">> > > .opam/system/share. However, when I installed another compiler and made</div><div style="white-space:pre-wrap;margin:0px;text-indent:0px">

> > it</div><div style="white-space:pre-wrap;margin:0px;text-indent:0px">> ></div><div style="white-space:pre-wrap;margin:0px;text-indent:0px">> > > current, the files went into .opam/4.00.1/share. I am trying to tell the</div>

<div style="white-space:pre-wrap;margin:0px;text-indent:0px">> ></div><div style="white-space:pre-wrap;margin:0px;text-indent:0px">> > > user where to find the files. Is there a generic directory where I could</div>

<div style="white-space:pre-wrap;margin:0px;text-indent:0px">> ></div><div style="white-space:pre-wrap;margin:0px;text-indent:0px">> > > point the user? Perhaps you could make a symlink 'current' for the</div>

<div style="white-space:pre-wrap;margin:0px;text-indent:0px">> ></div><div style="white-space:pre-wrap;margin:0px;text-indent:0px">> > > current compiler?</div><div style="white-space:pre-wrap;margin:0px;text-indent:0px">

> ></div><div style="white-space:pre-wrap;margin:0px;text-indent:0px">> ></div><div style="white-space:pre-wrap;margin:0px;text-indent:0px">> ></div><div style="white-space:pre-wrap;margin:0px;text-indent:0px">

> > You should use $(opam config var prefix)/share, or even $(opam config var</div><div style="white-space:pre-wrap;margin:0px;text-indent:0px">> > share). A symlink could be an option worth considering, but it has its own</div>

<div style="white-space:pre-wrap;margin:0px;text-indent:0px">> > issues.</div><div style="white-space:pre-wrap;margin:0px;text-indent:0px">> ></div><div style="white-space:pre-wrap;margin:0px;text-indent:0px">

> ></div><div style="white-space:pre-wrap;margin:0px;text-indent:0px">> ></div><div style="white-space:pre-wrap;margin:0px;text-indent:0px">> > Best,</div><div style="white-space:pre-wrap;margin:0px;text-indent:0px">

> ></div><div style="white-space:pre-wrap;margin:0px;text-indent:0px">> > Louis</div><div style="white-space:pre-wrap;margin:0px;text-indent:0px">> ></div></div></div><div class="im">_______________________________________________<br>

opam-devel mailing list<br><a href="mailto:opam-devel@lists.ocaml.org" target="_blank">opam-devel@lists.ocaml.org</a><br><a href="http://lists.ocaml.org/listinfo/opam-devel" target="_blank">http://lists.ocaml.org/listinfo/opam-devel</a></div>

</div></blockquote></div><br></div></div><br>_______________________________________________<br>
opam-devel mailing list<br>
<a href="mailto:opam-devel@lists.ocaml.org">opam-devel@lists.ocaml.org</a><br>
<a href="http://lists.ocaml.org/listinfo/opam-devel" target="_blank">http://lists.ocaml.org/listinfo/opam-devel</a><br>
<br></blockquote></div><br></div>
_______________________________________________<br>opam-devel mailing list<br><a href="mailto:opam-devel@lists.ocaml.org">opam-devel@lists.ocaml.org</a><br>http://lists.ocaml.org/listinfo/opam-devel<br></blockquote></div><br></div></div></div></body></html>