From mboxrd@z Thu Jan 1 00:00:00 1970 From: taylanbayirli@gmail.com (Taylan Ulrich =?utf-8?Q?Bay=C4=B1rl=C4=B1?= =?utf-8?Q?=2FKammer?=) Subject: Re: [PATCH] Add PCB. Date: Wed, 11 Mar 2015 14:46:50 +0100 Message-ID: <8761a78x4l.fsf@taylan.uni.cx> References: <87d24j8nzs.fsf@mango.localdomain> <87ioe81tih.fsf@gnu.org> 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]:57784) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1YVgyO-00026Y-5u for guix-devel@gnu.org; Wed, 11 Mar 2015 09:46:57 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1YVgyN-0007Bh-1T for guix-devel@gnu.org; Wed, 11 Mar 2015 09:46:56 -0400 In-Reply-To: <87ioe81tih.fsf@gnu.org> ("Ludovic \=\?utf-8\?Q\?Court\=C3\=A8s\=22'\?\= \=\?utf-8\?Q\?s\?\= message of "Tue, 10 Mar 2015 21:34:30 +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: Ludovic =?utf-8?Q?Court=C3=A8s?= Cc: Guix-devel 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? When the argument is a literal string, I suppose we can patch it to be an absolute pathname. 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? 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? Taylan