From mboxrd@z Thu Jan 1 00:00:00 1970 From: Mark H Weaver Subject: Re: [PATCH] Add PCB. Date: Wed, 11 Mar 2015 12:39:08 -0400 Message-ID: <87wq2nzdxv.fsf@netris.org> References: <87d24j8nzs.fsf@mango.localdomain> <87ioe81tih.fsf@gnu.org> <8761a78x4l.fsf@taylan.uni.cx> Mime-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable Return-path: Received: from eggs.gnu.org ([2001:4830:134:3::10]:49289) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1YVjep-0002Bu-5k for guix-devel@gnu.org; Wed, 11 Mar 2015 12:38:56 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1YVjej-0004a5-Qr for guix-devel@gnu.org; Wed, 11 Mar 2015 12:38:55 -0400 In-Reply-To: <8761a78x4l.fsf@taylan.uni.cx> ("Taylan Ulrich \=\?utf-8\?Q\?\=5C\=22Bay\=C4\=B1rl\=C4\=B1\=2FKammer\=5C\=22\=22's\?\= message of "Wed, 11 Mar 2015 14:46:50 +0100") List-Id: "Development of GNU Guix and the GNU System distribution." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: guix-devel-bounces+gcggd-guix-devel=m.gmane.org@gnu.org Sender: guix-devel-bounces+gcggd-guix-devel=m.gmane.org@gnu.org To: Taylan Ulrich =?utf-8?Q?=22Bay=C4=B1rl=C4=B1?= =?utf-8?Q?=2FKammer=22?= Cc: Guix-devel taylanbayirli@gmail.com (Taylan Ulrich "Bay=C4=B1rl=C4=B1/Kammer") writes: > ludo@gnu.org (Ludovic Court=C3=A8s) writes: > >> Ricardo Wurmus skribis: >> >>> In packaging PCB I noticed that our Mesa package loads a few libraries >>> with dlopen() but does not use absolute paths to store items. In the >>> case of PCB, dlopen("libudev.so.0") fails and causes "pcb" die on >>> startup with a segfault. To prevent this until the Mesa package is >>> fixed I wrapped the executable. >> >> OK. Feel free to fix MESA eventually. :-) > > Is anyone working on this? Otherwise I'll look into it because I > noticed mplayer2 has the same issue. > > Some basic help is appreciated by the way. How do we generally handle > dlopen() uses in Guix? > > Does our rpath stuff not fix the issue, and why? dlopen doesn't consult rpaths. > When the argument is a literal string, I suppose we can patch it to be > an absolute pathname. Yes, when we can do this, it is usually the preferred approach. > And when it's parameterized? E.g. when a program > uses a private wrapper function around dlopen(), then I guess I should > track all uses of that wrapper function? Ideally, yes. However, it may not always be possible. > How about when the program dlopen()s a library of its own? Should it be > made an absolute path to the package's output directory? Ideally, yes. Thanks! Mark