<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN">
<HTML>
<HEAD>
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1">
<META NAME="Generator" CONTENT="MS Exchange Server version 5.5.2654.45">
<TITLE>RE: [lsb-discuss] Re: PROPOSAL: /opt/&lt;provider&gt;/&lt;package&gt;/]</TITLE>
</HEAD>
<BODY>

<P><FONT SIZE=2>&gt; -----Original Message-----</FONT>
<BR><FONT SIZE=2>&gt; From: Daniel Bradley [<A HREF="mailto:daniel.bradley@securizance.com">mailto:daniel.bradley@securizance.com</A>]</FONT>
<BR><FONT SIZE=2>&gt; Sent: zaterdag 31 mei 2003 3:34</FONT>
<BR><FONT SIZE=2>&gt; </FONT>
<BR><FONT SIZE=2>&gt; Hi all,</FONT>
<BR><FONT SIZE=2>&gt; </FONT>
<BR><FONT SIZE=2>&gt; My concern here is that to adopt a strict /opt/&lt;provider&gt;/&lt;package&gt; </FONT>
<BR><FONT SIZE=2>&gt; would not allow the installation of two different instances </FONT>
<BR><FONT SIZE=2>&gt; of a release of software.</FONT>
</P>

<P><FONT SIZE=2>Why not?</FONT>
</P>

<P><FONT SIZE=2>&gt; </FONT>
<BR><FONT SIZE=2>&gt; A specific example would be installing two installations of the same </FONT>
<BR><FONT SIZE=2>&gt; version of the Java SDK.</FONT>
<BR><FONT SIZE=2>&gt; </FONT>
<BR><FONT SIZE=2>&gt; Currently you can install these something like:</FONT>
<BR><FONT SIZE=2>&gt; </FONT>
<BR><FONT SIZE=2>&gt; /opt/jdk-x.x.x-devel</FONT>
<BR><FONT SIZE=2>&gt; /opt/jdk-x.x.x-pure</FONT>
</P>

<P><FONT SIZE=2>How about /opt/sun/jdk-x.x.x-devel and /opt/sun/jdk-x.x.x-pure?</FONT>
</P>

<P><FONT SIZE=2>With the /opt/&lt;provider&gt;/&lt;package&gt; we can also have</FONT>
</P>

<P><FONT SIZE=2>/opt/hp/jdk-x.x.x-pure and /opt/gnu/jdk-x.x.x-devel</FONT>
</P>

<P><FONT SIZE=2>&gt; Where devel would include development providers/config etc.</FONT>
<BR><FONT SIZE=2>&gt; </FONT>
<BR><FONT SIZE=2>&gt; By adopting a standard /opt/&lt;provider&gt;/&lt;package&gt;, many developers might </FONT>
<BR><FONT SIZE=2>&gt; start to rely on that as the standard static path to their package, </FONT>
<BR><FONT SIZE=2>&gt; leading to inflexible practices such as hardcoding library locations </FONT>
<BR><FONT SIZE=2>&gt; instead of using the $ORIGIN linker variable so that libraries are </FONT>
<BR><FONT SIZE=2>&gt; located relative to the binary.</FONT>
</P>

<P><FONT SIZE=2>That's covered by the 'being relocatable' requirement of the standard. Keep in mind, the prime locaiton of a package is with the core-os distribution. Then it should nicely shoe-horn into /usr/bin, /usr/lib and such.</FONT></P>

<P><FONT SIZE=2>&gt; </FONT>
<BR><FONT SIZE=2>&gt; I believe that when software is installed it should ask where it should </FONT>
<BR><FONT SIZE=2>&gt; be put (could default to /opt/&lt;provider&gt;/&lt;package&gt;), and if it has any </FONT>
<BR><FONT SIZE=2>&gt; dependencies it should ask the person installing where those are, if it </FONT>
<BR><FONT SIZE=2>&gt; can't find them itself.</FONT>
</P>

<P><FONT SIZE=2>Well, come to think of it, I previously proposed to use /opt/lanana-name/... or such and leaving the depth down there up to the supplyer as long as the app ends in .../package/bin, .../package/lib and such. This can result in /opt/sun/java/devel/jdk-x.x.x/bin and such.</FONT></P>

<P><FONT SIZE=2>Now it is monday morning, with a fresh cup of coffee, I think there is a disadvantage, one cannot create a $PATH with `set path=&quot;/opt/*/bin /opt/*/*/bin /opt/*/*/*/bin&quot;` since the ultimate depth of the path is not known.</FONT></P>

<P><FONT SIZE=2>&gt; </FONT>
<BR><FONT SIZE=2>&gt; However, for the LSB, applications being installed MUST NOT have </FONT>
<BR><FONT SIZE=2>&gt; dependencies other than those provided by an LSB complient system, so </FONT>
<BR><FONT SIZE=2>&gt; this shouldn't be a problem.</FONT>
<BR><FONT SIZE=2>&gt; </FONT>
<BR><FONT SIZE=2>&gt; </FONT>
<BR><FONT SIZE=2>&gt; Another issue, that needs to be address NOW if /opt/&lt;provider&gt;/&lt;package&gt; </FONT>
<BR><FONT SIZE=2>&gt; is to be standardized, is what rights distro installers have. Currently </FONT>
<BR><FONT SIZE=2>&gt; distros have assumed the right to start installing things into /opt. </FONT>
</P>

<P><FONT SIZE=2>That is to say, default to /opt/..., not force to /opt/...</FONT>
</P>

<P><FONT SIZE=2>&gt; Theoretically they are only allowed to do this if the thing they want to </FONT>
<BR><FONT SIZE=2>&gt; install isn't already there, or maybe ask to upgrade.</FONT>
</P>

<P><FONT SIZE=2>On what rule do you base this theory? You are right, there should be some nice part in the installer. For most packages, this is done by the installer. For tar distributions, they most times just extract to alocaiton relative to the current directory.</FONT></P>

<P><FONT SIZE=2>&gt; </FONT>
<BR><FONT SIZE=2>&gt; In this situation would a distro be allowed to install in </FONT>
<BR><FONT SIZE=2>&gt; /opt/&lt;provider&gt;/ without asking if it already existed, but </FONT>
<BR><FONT SIZE=2>&gt; the package /opt/&lt;provider&gt;/&lt;package&gt; doesn't.</FONT>
</P>

<P><FONT SIZE=2>Well, /opt/&lt;provider&gt;/&lt;package&gt; does: it is up to the &lt;provider&gt; to generate &lt;package&gt; names on its own behalf or to register a separate &quot;&lt;provider&gt;&quot; name for its own &lt;packave&gt;. Kind of like on internet: The intention was to have <A HREF="http://www.acrobat.adobe.com/" TARGET="_blank">http://www.acrobat.adobe.com/</A> but adobe&nbsp; has also registered <A HREF="http://www.acrobat.com/" TARGET="_blank">http://www.acrobat.com/</A> which is not a company but somehow gets you to <A HREF="http://www.adobe.com/" TARGET="_blank">http://www.adobe.com/</A>.</FONT></P>
<BR>
<BR>

<P><FONT SIZE=2>&gt; </FONT>
<BR><FONT SIZE=2>&gt; </FONT>
<BR><FONT SIZE=2>&gt; Somebody said something about the provider can decide what to do under </FONT>
<BR><FONT SIZE=2>&gt; /opt/&lt;provider&gt;. I don't think this would work as once you get out of </FONT>
<BR><FONT SIZE=2>&gt; one product group in any company, chances are that things are going to </FONT>
<BR><FONT SIZE=2>&gt; start being done differently. But that is just a personal opinion.</FONT>
</P>

<P><FONT SIZE=2>No, for a package to comply to the standard, there is a subtree to use: ...&lt;package&gt;/bin, ...&lt;package&gt;/man and ...&lt;package&gt;/lib but not ...&lt;package&gt;/exec or ...&lt;package&gt;/help or ...&lt;package&gt;/dll</FONT></P>
<BR>

<P><FONT SIZE=2>My 2cents, not my employers..</FONT>
</P>
<BR>

<P><FONT SIZE=2>CBee</FONT>
</P>

</BODY>
</HTML>