From mboxrd@z Thu Jan 1 00:00:00 1970 From: Andreas Enge Subject: Re: Pango Date: Sat, 15 Jun 2013 10:12:24 +0200 Message-ID: <201306151012.24926.andreas@enge.fr> References: <201306132319.34784.andreas@enge.fr> <201306142325.07791.andreas@enge.fr> <201306142334.44593.andreas@enge.fr> Mime-Version: 1.0 Content-Type: Text/Plain; charset="utf-8" Content-Transfer-Encoding: 7bit Return-path: Received: from eggs.gnu.org ([2001:4830:134:3::10]:39477) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Unlb7-0004gG-7U for bug-guix@gnu.org; Sat, 15 Jun 2013 04:12:36 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1Unlb4-00088Y-Iw for bug-guix@gnu.org; Sat, 15 Jun 2013 04:12:33 -0400 Received: from moutng.kundenserver.de ([212.227.126.186]:55805) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Unlb4-00088I-9w for bug-guix@gnu.org; Sat, 15 Jun 2013 04:12:30 -0400 In-Reply-To: <201306142334.44593.andreas@enge.fr> List-Id: Bug reports for GNU Guix List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: bug-guix-bounces+gcggb-bug-guix=m.gmane.org@gnu.org Sender: bug-guix-bounces+gcggb-bug-guix=m.gmane.org@gnu.org To: bug-guix@gnu.org The include files for pango reside in include/pango-1.0/pango/ Then the main include file include/pango-1.0/pango/pango.h includes lines like #include without the pango-1.0. I see three solutions: One can modify the CPATH to include pango-1.0; I do not know how to do this automatically so that each and every dependency of pango profits from it. One can modify each header file (of gtk+, for instance) including pango/pango.h to include pango-1.0/pango/pango.h instead, which would be rather tedious in the long run. Or one can add a symlink pango -> pango-1.0/pango with the following patch: (arguments `(#:phases (alist-replace 'install (lambda* (#:key outputs #:allow-other-keys #:rest args) (let ((install (assoc-ref %standard-phases 'install)) (include (string-append (assoc-ref outputs "out") "/include"))) (apply install args) ;; Unravel one directory, since pango.h includes directly from ;; pango/, not pango-1/pango/. (symlink (string-append include "/pango-1.0/pango") (string-append include "/pango")))) Would the third solution be okay? I already used it for freetype, but there the additional directory layer was announced to be suppressed in the near future. As the symlink would only be inside the nix store path for this particular package, we could still (in case it comes out) have packages depend on pango-2, while others depend on pango-1.0, for instance. But it would prevent users from installing pango-2 and pango-1.0 at the same time in their user environment, as both would contain the symlink include/pango. A similar problem occurs with cairo: The header files are in include/cairo/cairo.h, whereas gtk+ has lines such as #include . Here I would prefer the second solution, as one directory layer to regroup the header files of a package such as cairo looks reasonable to me to avoid clutter. What do you think? And a minor question: Would you prefer the package name "gtk" or "gtk+"? Andreas