Re: Hi all
[notmuch-archives.git] / 76 / 38241e756e5d4fa227bf047fea46a47fb03197
1 Return-Path: <sojkam1@fel.cvut.cz>\r
2 X-Original-To: notmuch@notmuchmail.org\r
3 Delivered-To: notmuch@notmuchmail.org\r
4 Received: from localhost (localhost [127.0.0.1])\r
5         by olra.theworths.org (Postfix) with ESMTP id 12BB0431FB6\r
6         for <notmuch@notmuchmail.org>; Thu, 20 Jan 2011 06:38:45 -0800 (PST)\r
7 X-Virus-Scanned: Debian amavisd-new at olra.theworths.org\r
8 X-Spam-Flag: NO\r
9 X-Spam-Score: 0\r
10 X-Spam-Level: \r
11 X-Spam-Status: No, score=0 tagged_above=-999 required=5 tests=[none]\r
12         autolearn=disabled\r
13 Received: from olra.theworths.org ([127.0.0.1])\r
14         by localhost (olra.theworths.org [127.0.0.1]) (amavisd-new, port 10024)\r
15         with ESMTP id I0RLsjVu4UlH for <notmuch@notmuchmail.org>;\r
16         Thu, 20 Jan 2011 06:38:43 -0800 (PST)\r
17 Received: from mail.loccal.net (gw.loccal.net [94.142.235.206])\r
18         by olra.theworths.org (Postfix) with ESMTP id C346E431FB5\r
19         for <notmuch@notmuchmail.org>; Thu, 20 Jan 2011 06:38:43 -0800 (PST)\r
20 Received: from localhost (localhost [127.0.0.1])\r
21         by mail.loccal.net (Postfix) with ESMTP id B9E6A10477;\r
22         Thu, 20 Jan 2011 15:51:03 +0100 (CET)\r
23 X-Virus-Scanned: amavisd-new at loccal.net\r
24 Received: from mail.loccal.net ([127.0.0.1])\r
25         by localhost (mail.loccal.net [127.0.0.1]) (amavisd-new, port 10024)\r
26         with LMTP id eiQcI+y38qDw; Thu, 20 Jan 2011 15:51:01 +0100 (CET)\r
27 Received: from steelpick.2x.cz (unknown [10.21.129.4])\r
28         by mail.loccal.net (Postfix) with ESMTPS id 29BA8103AB;\r
29         Thu, 20 Jan 2011 15:51:01 +0100 (CET)\r
30 Received: from wsh by steelpick.2x.cz with local (Exim 4.72)\r
31         (envelope-from <sojkam1@fel.cvut.cz>)\r
32         id 1Pfvep-00005U-Bh; Thu, 20 Jan 2011 15:38:39 +0100\r
33 From: Michal Sojka <sojkam1@fel.cvut.cz>\r
34 To: Andy Wingo <wingo@oblong.com>\r
35 Subject: Re: ./configure with CC="ccache gcc" doesn't work\r
36 In-Reply-To: <m339on7nq6.fsf@oblong.com>\r
37 References: <m3ei8897za.fsf@oblong.com> <87zkqvnbu7.fsf@steelpick.2x.cz>\r
38         <m339on7nq6.fsf@oblong.com>\r
39 User-Agent: Notmuch/0.5-38-g923b170 (http://notmuchmail.org) Emacs/23.2.1\r
40         (x86_64-pc-linux-gnu)\r
41 Date: Thu, 20 Jan 2011 15:38:39 +0100\r
42 Message-ID: <87mxmv4p3k.fsf@steelpick.2x.cz>\r
43 MIME-Version: 1.0\r
44 Content-Type: text/plain; charset=us-ascii\r
45 Cc: notmuch@notmuchmail.org\r
46 X-BeenThere: notmuch@notmuchmail.org\r
47 X-Mailman-Version: 2.1.13\r
48 Precedence: list\r
49 List-Id: "Use and development of the notmuch mail system."\r
50         <notmuch.notmuchmail.org>\r
51 List-Unsubscribe: <http://notmuchmail.org/mailman/options/notmuch>,\r
52         <mailto:notmuch-request@notmuchmail.org?subject=unsubscribe>\r
53 List-Archive: <http://notmuchmail.org/pipermail/notmuch>\r
54 List-Post: <mailto:notmuch@notmuchmail.org>\r
55 List-Help: <mailto:notmuch-request@notmuchmail.org?subject=help>\r
56 List-Subscribe: <http://notmuchmail.org/mailman/listinfo/notmuch>,\r
57         <mailto:notmuch-request@notmuchmail.org?subject=subscribe>\r
58 X-List-Received-Date: Thu, 20 Jan 2011 14:38:45 -0000\r
59 \r
60 On Thu, 20 Jan 2011, Andy Wingo wrote:\r
61 > On Thu 20 Jan 2011 10:50, Michal Sojka <sojkam1@fel.cvut.cz> writes:\r
62\r
63 > > Hmm, the IFS thing in configure seems annoying in this case. But you can\r
64 > > create a little script containing\r
65 > >\r
66 > >   exec ccache gcc "$@"\r
67 > >\r
68 > > and set CC to the name of the script, cannot you?\r
69\r
70 > Sure.  But the ccache thing is fairly common, AFAIK, and IMO notmuch's\r
71 > configure should either handle spaces in a non-absolute-path $CC or exit\r
72 > with an error in that case.\r
73\r
74 > And, oddly enough, the $CC does succeed in compiling, modulo this build\r
75 > error -- so it seems that the $IFS isn't actually providing any benefit\r
76 > in this case.  (If the IFS did its job, I would expect to see an error\r
77 > like "ccache gcc: command not found" or something.)\r
78 \r
79 Hmm, after experimenting a bit, it seems that there is no way to\r
80 distinguish between the command with space in its name and your case\r
81 with ccache.\r
82 \r
83 I tend to think that having IFS without space is not much useful here\r
84 because plenty of software use GNU Make and it cannot handle file names\r
85 with spaces at all. So many things would be really difficult, if someone\r
86 use spaces in the name of his/her binaries such as gcc or xapian-config.\r
87 \r
88 I went through configure in notmuch and it seems that there is only one\r
89 place where the value of IFS matters (the call to ldconfig), so we may\r
90 want to apply the patch bellow. On the other hand, a brief look at\r
91 Makefile reveals that there are many things that wont work if there are\r
92 spaces in filanames[1], so I'm not sure whether to care about that\r
93 single case at all.\r
94 \r
95 diff --git a/configure b/configure\r
96 index c58dd0f..a196962 100755\r
97 --- a/configure\r
98 +++ b/configure\r
99 @@ -1,13 +1,5 @@\r
100  #! /bin/sh\r
101  \r
102 -# Removing space from IFS makes it much easier to support filenames\r
103 -# with spaces. See http://www.dwheeler.com/essays/filenames-in-shell.html\r
104 -# for gory details.\r
105 -IFS="$(printf '\n\t')"\r
106 -\r
107 -# Since we don't have space in IFS we use tab to separate things in lists\r
108 -tab="$(printf '\t')"\r
109 -\r
110  # Set several defaults (optionally specified by the user in\r
111  # environemnt variables)\r
112  CC=${CC:-gcc}\r
113 @@ -303,11 +295,14 @@ elif [ $uname = "Linux" ] ; then\r
114      platform=LINUX\r
115      linker_resolves_library_dependencies=1\r
116      ldconfig_paths=$(/sbin/ldconfig -N -X -v 2>/dev/null | sed -n -e 's,^\(/.*\):\( (.*)\)\?$,\1,p')\r
117 +    OLD_IFS=$IFS\r
118 +    IFS="$(printf '\n')" \r
119      for path in $ldconfig_paths; do\r
120         if [ "$path" = "$libdir_expanded" ]; then\r
121             libdir_in_ldconfig=1\r
122         fi\r
123      done\r
124 +    IFS=$OLD_IFS\r
125  else\r
126      printf "Unknown.\n"\r
127      cat <<EOF\r
128 \r
129 \r
130 Footnotes: \r
131 [1]  For example most commands in install targets contain unquoted\r
132      parameters so if DESTDIR contains a space, it wont work.\r
133 \r