<html>
<head>
<style>
.hmmessage P
{
margin:0px;
padding:0px
}
body.hmmessage
{
font-size: 10pt;
font-family:Verdana
}
</style>
</head>
<body class='hmmessage'>
<SPAN style="TEXT-TRANSFORM: none; TEXT-INDENT: 0px; BORDER-COLLAPSE: separate; FONT: medium Helvetica; WHITE-SPACE: normal; LETTER-SPACING: normal; COLOR: rgb(0,0,0); WORD-SPACING: 0px" class=EC_Apple-style-span>> copy and commit the source to cm3 is viable</SPAN><BR>
<DIV>> I don't know what this sentence means.</DIV>
<DIV> </DIV>
<DIV>I don't have to be copying files around in the build order for cm3 to create hard links.</DIV>
<DIV>I can just copy on my machine and commit to cvs a little bit of code to do it.</DIV>
<DIV>That isn't nearly as hacky.</DIV>
<DIV><BR></DIV>
<BLOCKQUOTE><SPAN style="TEXT-TRANSFORM: none; TEXT-INDENT: 0px; BORDER-COLLAPSE: separate; FONT: medium Helvetica; WHITE-SPACE: normal; LETTER-SPACING: normal; COLOR: rgb(0,0,0); WORD-SPACING: 0px" class=EC_Apple-style-span>
<DIV style="FONT-FAMILY: Verdana; FONT-SIZE: 10pt" class=EC_hmmessage>>  heck, use a relative instead of absolute from ROOT</SPAN></DIV></BLOCKQUOTE>
<DIV>       > ditto</DIV>
<DIV> </DIV>
<DIV> </DIV>
<DIV>$origin it turns out <EM>is </EM>very portable.</DIV>
<DIV>  Every system we support except NetBSD 4.0 seems to have it, and even some we don't currently support.</DIV>
<DIV>  And NetBSD 5.0, which already released, has it.</DIV>
<DIV>  And MacOSX is plenty close enough. It is a matter of relative to the executable or the reference, and which OS version you support. I believe newer versions relaly do have $origin by another name, but 10.4 has relative to the executable, which is good enough to me.</DIV>
<DIV> </DIV>
<DIV>If you don't use $origin, then people either must install to the one true place, or they must use LD_LIBRARY_PATH, or they must rebuild/relink/fixup themselves.</DIV>
<DIV> </DIV>
<DIV>LD_LIBRARY_PATH is widely panned.</DIV>
<DIV>Having to rebuild seems onerous for most people.</DIV>
<DIV>Having a choice of where to install? Important?</DIV>
<DIV> </DIV>
<DIV> </DIV>
<BLOCKQUOTE>
<FONT color=#000000>> </FONT>Right.  rpaths in the executable should do the trick.<BR>
 <BR>
Just in the executable? Shouldn't they somewhat be in the shared libraries?<BR>
If foo uses libm3 and libm3 uses m3core and foo doesn't use m3core, arguably foo shouldn't mention m3core, only libm3 should.<BR></BLOCKQUOTE>
<DIV><BR></DIV>
<BLOCKQUOTE> </BLOCKQUOTE>
<DIV> > Ideally we use the same approach for *all* platforms.  So, what do all platforms have in common.</DIV>
<DIV> </DIV>
<DIV>$origin comes <EM>extremely </EM>close to that, and provides the benefit that user can specify where to install.</DIV>
<DIV><BR></DIV>
<DIV><FONT color=#000000 size=3 face=Helvetica></FONT><BR></DIV>
<DIV> > and if there is need for override use $LD_LIBRARY_PATH.</DIV>
<DIV> </DIV>
<DIV>But again (I know, I repeated myself, so you did, now I am), this forces any install to non-default location to use LD_LIBRARY_PATH. It is an option. But $origin is also /very/ portable...</DIV>
<DIV><BR></DIV>
<DIV><FONT color=#000000 size=3 face=Helvetica> >> </FONT>But if everything goes in INSTALL_ROOT/lib we have only one directory, right?</DIV>
<DIV> </DIV>
<DIV>Correct. That is what I achieved with the hardlinks, and will try to achieve shortly without them.<BR><BR></DIV>
<DIV> > Surely, building for a distro can build in the right path.</DIV>
<DIV> </DIV>
<DIV>Not really. It would disrupt the running multiuser system.</DIV>
<DIV>But it can probably use -rpath to stick paths in that don't correspond to the "staging" area.</DIV>
<DIV> </DIV>
<DIV> </DIV>
<DIV> > Where did /tmp/cm3 come from?</DIV>
<DIV> </DIV>
<DIV>The distribution builds in /tmp. You don't have to be root or disrupt the running machine to build a distribution.</DIV>
<DIV>There a question maybe of if the resulting files should be owned by root?</DIV>
<DIV> </DIV>
<DIV><BR></DIV>
<DIV> > Elegance is also a concern.</DIV>
 <BR>
Agreed. Copying files in the build isn't elegant. The result is elegant imho.<BR>
Hardlinks aren't elegant? I don't know.<BR>
<DIV>Anyway, ok, I'll just put the files in lib and no hardlinks, I'll try that.<BR></DIV>
<BLOCKQUOTE><SPAN style="TEXT-TRANSFORM: none; TEXT-INDENT: 0px; BORDER-COLLAPSE: separate; FONT: medium Helvetica; WHITE-SPACE: normal; LETTER-SPACING: normal; COLOR: rgb(0,0,0); WORD-SPACING: 0px" class=EC_Apple-style-span>> Now, keep in mind, that unshipped binaries sometimes people like to work</SPAN></BLOCKQUOTE>
<DIV> > I don't know understand what you are trying to say here.</DIV>
<DIV> </DIV>
<DIV>Let me think about unshipped binaries later..</DIV>
<DIV>One thing is that $origin doesn't work with unshipped binaries.</DIV>
<DIV>By default we put in both $origin and the full path you like.</DIV>
<DIV>But imho distributions should just have $origin.</DIV>
<DIV>Or if user can't chose install location, maybe just the full path.</DIV>
<DIV>The big question is if user can chose where to install.</DIV>
<DIV>On birch I use $HOME/cm3.</DIV>
<DIV>Seems kind of important/useful?</DIV>
 <BR>
 <BR>
 - Jay<BR><BR></body>
</html>