<html xmlns:v="urn:schemas-microsoft-com:vml" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns:m="http://schemas.microsoft.com/office/2004/12/omml" xmlns="http://www.w3.org/TR/REC-html40">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=us-ascii">
<meta name="Generator" content="Microsoft Word 14 (filtered medium)">
<style><!--
/* Font Definitions */
@font-face
        {font-family:Calibri;
        panose-1:2 15 5 2 2 2 4 3 2 4;}
@font-face
        {font-family:Tahoma;
        panose-1:2 11 6 4 3 5 4 4 2 4;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
        {margin:0cm;
        margin-bottom:.0001pt;
        font-size:12.0pt;
        font-family:"Times New Roman","serif";}
a:link, span.MsoHyperlink
        {mso-style-priority:99;
        color:blue;
        text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
        {mso-style-priority:99;
        color:purple;
        text-decoration:underline;}
span.EmailStyle17
        {mso-style-type:personal-reply;
        font-family:"Calibri","sans-serif";
        color:#1F497D;}
.MsoChpDefault
        {mso-style-type:export-only;
        font-family:"Calibri","sans-serif";
        mso-fareast-language:EN-US;}
@page WordSection1
        {size:612.0pt 792.0pt;
        margin:72.0pt 72.0pt 72.0pt 72.0pt;}
div.WordSection1
        {page:WordSection1;}
--></style><!--[if gte mso 9]><xml>
<o:shapedefaults v:ext="edit" spidmax="1026" />
</xml><![endif]--><!--[if gte mso 9]><xml>
<o:shapelayout v:ext="edit">
<o:idmap v:ext="edit" data="1" />
</o:shapelayout></xml><![endif]-->
</head>
<body lang="EN-GB" link="blue" vlink="purple">
<div class="WordSection1">
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D">Looks good to me. I tested it on my Ubuntu 12.04 and it worked ok. Thanks for doing it.<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D">Regards,<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D">Abid<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D"><o:p> </o:p></span></p>
<div style="border:none;border-left:solid blue 1.5pt;padding:0cm 0cm 0cm 4.0pt">
<div>
<div style="border:none;border-top:solid #B5C4DF 1.0pt;padding:3.0pt 0cm 0cm 0cm">
<p class="MsoNormal"><b><span lang="EN-US" style="font-size:10.0pt;font-family:"Tahoma","sans-serif"">From:</span></b><span lang="EN-US" style="font-size:10.0pt;font-family:"Tahoma","sans-serif""> lldb-dev-bounces@cs.uiuc.edu [mailto:lldb-dev-bounces@cs.uiuc.edu]
<b>On Behalf Of </b>Todd Fiala<br>
<b>Sent:</b> 03 December 2013 22:54<br>
<b>To:</b> Greg Clayton<br>
<b>Cc:</b> lldb-dev@cs.uiuc.edu<br>
<b>Subject:</b> Re: [lldb-dev] [PATCH] Intended install location for python scripts<o:p></o:p></span></p>
</div>
</div>
<p class="MsoNormal"><o:p> </o:p></p>
<div>
<p class="MsoNormal">Attached please find a patch proposal to fix the following bug:<o:p></o:p></p>
<div>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
<div>
<p class="MsoNormal"><a href="http://llvm.org/bugs/show_bug.cgi?id=18124">http://llvm.org/bugs/show_bug.cgi?id=18124</a><o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
<div>
<p class="MsoNormal">It makes the two changes we discussed:<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
<div>
<p class="MsoNormal">* when copying scripts during 'make install', if the copying fails, the error is propagated to make and causes make to fail.<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
<div>
<p class="MsoNormal">* the lldb python packages are now installed under the install tree, matching output from lldb -P.<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"> <o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">I've tested it both with a parallel build tree and with an in-source build tree.  I also implemented the make failure propagation before doing the other change, verifying that my initial failure condition (permission problem due to lack
 of 'sudo') correctly fails the make.<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
<div>
<p class="MsoNormal">I did not do anything with cmake builds.<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
<div>
<p class="MsoNormal">Feedback is welcomed!<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
<div>
<p class="MsoNormal">-Todd<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
<div>
<div>
<p class="MsoNormal">On Tue, Dec 3, 2013 at 10:09 AM, Todd Fiala <<a href="mailto:tfiala@google.com" target="_blank">tfiala@google.com</a>> wrote:<o:p></o:p></p>
<div>
<p class="MsoNormal">Excellent.  Thanks, Greg!<o:p></o:p></p>
<div>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
<div>
<p class="MsoNormal">I'll get a patch together following that approach unless anything further develops here.<o:p></o:p></p>
</div>
</div>
<div>
<div>
<div>
<p class="MsoNormal" style="margin-bottom:12.0pt"><o:p> </o:p></p>
<div>
<p class="MsoNormal">On Tue, Dec 3, 2013 at 10:00 AM, Greg Clayton <<a href="mailto:gclayton@apple.com" target="_blank">gclayton@apple.com</a>> wrote:<o:p></o:p></p>
<div>
<p class="MsoNormal" style="margin-bottom:12.0pt"><br>
On Dec 3, 2013, at 9:46 AM, Todd Fiala <<a href="mailto:tfiala@google.com" target="_blank">tfiala@google.com</a>> wrote:<br>
<br>
> Hi all,<br>
><br>
> I started digging into the 'make install' python script installation issue listed on another thread.  Here's the ticket for it:<br>
><br>
> <a href="http://llvm.org/bugs/show_bug.cgi?id=18124" target="_blank">http://llvm.org/bugs/show_bug.cgi?id=18124</a><br>
><br>
> I've added some comments to the bug.  My initial digging leads to a few questions:<br>
><br>
> 1. Where do we expect a configure/make/make install to place the python scripts?  I was under the impression the scripts should be installed in the same directory tree implied by the configure --prefix arg, which is also what a `lldb -P` reports.  However,
 what I'm finding is that the 'make install' step is trying to install the python scripts into the python interpreter's dist-packages location.  I'm getting these failures on install because I'm not doing a 'sudo' on my make install.<br>
><br>
>     llvm[4]: Installing Debug+Asserts LLDB python modules<br>
>     mkdir: cannot create directory `/usr/lib/python2.7/dist-packages/lldb': Permission denied<br>
>     Error: Unable to find or create /usr/lib/python2.7/dist-packages/lldb<br>
>     make[4]: Leaving directory `/usr/local/google/home/tfiala/llvm/work/build-debug/tools/lldb/source/Interpreter'<br>
><br>
> Do we want the python scripts installing into the python executable's dist-packages or the location reported by lldb -P?<o:p></o:p></p>
</div>
<p class="MsoNormal">Yes, this would allow multiple installs of LLDB to co-exist without stomping on the previous LLDB's python modules (which could be very different).<o:p></o:p></p>
<div>
<p class="MsoNormal" style="margin-bottom:12.0pt"><br>
>  My first stab would be it should go in the installation prefix paths as I would not expect any code to be installed outside of the prefix and, possibly, require a sudo when I'm trying to do everything locally without elevated privileges.<br>
><br>
> 2. Should 'make install' fail if we fail to copy over python files? My first take is that a failure to install the scripts should qualify as an all-out failure and cause make to fail (i.e. fail early, fail loudly); otherwise, we can get quite a bit past the
 root cause of scripting-related failures without realizing what's broken.<br>
><br>
> Any opinions on this?  My straw-man answers are:<br>
><br>
> 1. Install into the tree implied by configure --prefix, not into the python dist-packages dir.  (A close second would be to specify a new configure path variable so the user can configure, possibly adjusting the output of lldb -P to match).<o:p></o:p></p>
</div>
<p class="MsoNormal">The --prefix path sounds right to be for coexistence.<o:p></o:p></p>
<div>
<p class="MsoNormal" style="margin-bottom:12.0pt"><br>
><br>
> 2. Change makefiles so that failure to copy scripts fails the install.<o:p></o:p></p>
</div>
<p class="MsoNormal">Agreed.<o:p></o:p></p>
<div>
<p class="MsoNormal"><br>
><br>
> I'll fix up whatever we decide here if it requires a change.<br>
><br>
> Thanks!<br>
><br>
> Sincerely,<br>
> Todd Fiala<o:p></o:p></p>
</div>
<p class="MsoNormal" style="margin-bottom:12.0pt">> _______________________________________________<br>
> lldb-dev mailing list<br>
> <a href="mailto:lldb-dev@cs.uiuc.edu" target="_blank">lldb-dev@cs.uiuc.edu</a><br>
> <a href="http://lists.cs.uiuc.edu/mailman/listinfo/lldb-dev" target="_blank">http://lists.cs.uiuc.edu/mailman/listinfo/lldb-dev</a><o:p></o:p></p>
</div>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
</div>
</div>
</div>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
</div>
</div>
</div>
</body>
</html>