From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!not-for-mail From: ludo@gnu.org (Ludovic =?iso-8859-1?Q?Court=E8s?=) Newsgroups: gmane.lisp.guile.devel Subject: Re: Relocatable installation Date: Mon, 31 Jan 2011 22:00:42 +0100 Message-ID: <871v3s4wlh.fsf@gnu.org> References: <1296330082.8111.371.camel@vuurvlieg> <87lj2375k1.fsf@gnu.org> <1296505613.17905.18.camel@vuurvlieg> NNTP-Posting-Host: lo.gmane.org Mime-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable X-Trace: dough.gmane.org 1296510171 12655 80.91.229.12 (31 Jan 2011 21:42:51 GMT) X-Complaints-To: usenet@dough.gmane.org NNTP-Posting-Date: Mon, 31 Jan 2011 21:42:51 +0000 (UTC) Cc: guile-devel@gnu.org To: Jan Nieuwenhuizen Original-X-From: guile-devel-bounces+guile-devel=m.gmane.org@gnu.org Mon Jan 31 22:42:47 2011 Return-path: Envelope-to: guile-devel@m.gmane.org Original-Received: from lists.gnu.org ([199.232.76.165]) by lo.gmane.org with esmtp (Exim 4.69) (envelope-from ) id 1Pk1VT-0008Qh-WB for guile-devel@m.gmane.org; Mon, 31 Jan 2011 22:42:45 +0100 Original-Received: from localhost ([127.0.0.1]:44162 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1Pk1R8-0007c7-7R for guile-devel@m.gmane.org; Mon, 31 Jan 2011 16:37:26 -0500 Original-Received: from [140.186.70.92] (port=41779 helo=eggs.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1Pk1CB-00015O-Tx for guile-devel@gnu.org; Mon, 31 Jan 2011 16:22:05 -0500 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1Pk0rf-0001f8-ET for guile-devel@gnu.org; Mon, 31 Jan 2011 16:00:48 -0500 Original-Received: from mail4-relais-sop.national.inria.fr ([192.134.164.105]:27283) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Pk0rf-0001ep-5c for guile-devel@gnu.org; Mon, 31 Jan 2011 16:00:47 -0500 X-IronPort-AV: E=Sophos;i="4.60,405,1291590000"; d="scan'208";a="87184302" Original-Received: from reverse-83.fdn.fr (HELO nixey) ([80.67.176.83]) by mail4-relais-sop.national.inria.fr with ESMTP/TLS/DHE-RSA-AES128-SHA; 31 Jan 2011 22:00:45 +0100 X-URL: http://www.fdn.fr/~lcourtes/ X-Revolutionary-Date: 12 =?iso-8859-1?Q?Pluvi=F4se?= an 219 de la =?iso-8859-1?Q?R=E9volution?= X-PGP-Key-ID: 0xEA52ECF4 X-PGP-Key: http://www.fdn.fr/~lcourtes/ludovic.asc X-PGP-Fingerprint: 83C4 F8E5 10A3 3B4C 5BEA D15D 77DD 95E2 EA52 ECF4 X-OS: x86_64-unknown-linux-gnu In-Reply-To: <1296505613.17905.18.camel@vuurvlieg> (Jan Nieuwenhuizen's message of "Mon, 31 Jan 2011 21:26:53 +0100") User-Agent: Gnus/5.110011 (No Gnus v0.11) Emacs/23.2 (gnu/linux) X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 192.134.164.105 X-BeenThere: guile-devel@gnu.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "Developers list for Guile, the GNU extensibility library" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Original-Sender: guile-devel-bounces+guile-devel=m.gmane.org@gnu.org Errors-To: guile-devel-bounces+guile-devel=m.gmane.org@gnu.org Xref: news.gmane.org gmane.lisp.guile.devel:11470 Archived-At: Hello! Jan Nieuwenhuizen writes: > Ludovic Court=C3=A8s schreef op za 29-01-2011 om 22:39 [+0100]: [...] >> I=E2=80=99m not sure about this patch. My feeling is that it would take= more >> than this to allow Guile to be truly relocatable, e.g., all of >> $GUILE_LOAD_PATH, $GUILE_LOAD_COMPILED_PATH, $LD_LIBRARY_PATH, >> etc. would have to work. > > I realised we need GUILE_LOAD_COMPILED_PATH too. Added that > in this new patch. I added a bit more explanation: this should > be used together with a sane -rpath $ORIGIN/../lib build. Ooh, I see. $ORIGIN is the trick that makes it possible. Your patch lacks this RPATH magic, though. Perhaps it should check whether =E2=80=98-Wl,-rpath=3D'$ORIGIN/../lib'=E2=80=99 works? Is =E2=80= =98-Wl,-z -Wl,origin=E2=80=99 needed as well when linking =E2=80=98guile=E2=80=99? >> And some of them are hardcoded in the binary, >> as is usual with the GNU Build System. > > Yes, that's why the new, argv0-based directories are prepended > to those paths. OK, understood. >> Furthermore, I think all these paths cannot be reliably inferred from >> argv[0]. For instance because libdir doesn=E2=80=99t have to be $bindir= /../lib. >> It doesn=E2=80=99t seem to fit well in the GNU software installation pro= cess. > > No, you can choose all kinds of freaky install directories. However, > if you don't do that and use the normal, default directory structure, > this enables binary packages with guile that can be installed in > $HOME or on Windows in c:/Program Files/Whatever. Yes, that=E2=80=99s what I meant: it only works as long as users touch only $prefix, not $libdir, $bindir, etc. >> Still I=E2=80=99d be glad to hear arguments for and against. :-) > > One argument for is that we've been using this in LilyPond binary > packages (for linux and windows) since 2005. Good point. :-) Then I have nothing against this option, as long as it=E2=80=99s off by def= ault. Thanks, Ludo=E2=80=99.