Patches item #1628061, was opened at 2007-01-04 18:56 Message generated for change (Settings changed) made by loewis You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=305470&aid=1628061&group_id=5470
Please note that this message will contain a full copy of the comment thread, including the initial issue submission, for this request, not just the latest update. Category: Build Group: Python 3000 >Status: Closed >Resolution: Rejected Priority: 5 Private: No Submitted By: Larry Hastings (lhastings) Assigned to: Nobody/Anonymous (nobody) Summary: Win32: Fix build when you have TortoiseSVN but no .svn/* Initial Comment: Recent snazzy improvements to the Win32 build system include embedding SVN version information in the builds. This is done by compiling a short C file, make_buildinfo.c, and running the result. make_buildinfo.exe runs the liltingly-named SubWCRev.exe--a tool that comes with TortoiseSVN--over one of the source files, ../Modules/getbuildinfo.c, producing a second file, getbuildinfo2.c. The code is reasonably smart; if you don't have TortoiseSVN, it doesn't bother trying, and just compiles ../Modules/getbuildinfo.c unmodified. However: it blindly assumes that if SubWCRev.exe exists, and the system() call to run it returns 0 or greater, getbuildinfo2.c must have been successfully created. If you have TortoiseSVN, but *don't* have the .svn/... directories in your source tree, system(SubWCRev.exe) returns 0 or greater (seemingly indicating success) but in fact fails and does *not* create getbuildinfo2.c. When it fails in this way I see this inscrutable message in the log: "C:\b\tortoisesvn\bin\subwcrev.exe" .. ..\Modules\getbuildinfo.c getbuildinfo2.c SubWCRev : Path '..' ends in '..', which is unsupported for this operation This patch changes make_buildinfo.c so that it calls _stat(getbuildinfo2.c) as a final step. If getbuildinfo2.c exists, it returns true, else it returns false. ---------------------------------------------------------------------- >Comment By: Martin v. Löwis (loewis) Date: 2007-01-06 14:50 Message: Logged In: YES user_id=21627 Originator: NO Ok, rejecting the patch then. The typical case would be that you have an exported tree, in which case there wouldn't be any .svn directories at all. As I'm sure you know, you can easily fix your installation by removing the .svn directory from PCBuild also. ---------------------------------------------------------------------- Comment By: Larry Hastings (lhastings) Date: 2007-01-05 02:50 Message: Logged In: YES user_id=364875 Originator: YES Good point. I seem to have goofed up my directory in a very specific way: when I made a copy of the tree, I explicitly did *not* copy the top-level .svn, but I forgot to do anything about the .svn directories in the subdirectories. make_buildinfo is run from the "PCbuild" directory, which still has a ".svn" directory, so the _stat(".svn") call succeeds. But the call to SubWCRev.exe fails because ".." (aka the Python root) doesn't have a ".svn" directory. I assert that the patch won't hurt anything, and will make the build process slightly more tolerant of goof-ups like me. If you prefer, I could submit an alternate patch where the current directory is the Python root and it writes to "PCbuild/getbuildinfo2.c". Or one where the stat checks for "../.svn" instead. Or if you don't want any patch at all, that works too, just close the patch. In the meantime, I'll clean up my build tree. ---------------------------------------------------------------------- Comment By: Martin v. Löwis (loewis) Date: 2007-01-05 02:10 Message: Logged In: YES user_id=21627 Originator: NO This patch shouldn't be necessary. make_buildinfo2 checks whether there is a .svn subdirectory, and if there is none, it compiles getbuildinfo.c (just like when subwcrev.exe wasn't found). ---------------------------------------------------------------------- You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=305470&aid=1628061&group_id=5470 _______________________________________________ Patches mailing list Patches@python.org http://mail.python.org/mailman/listinfo/patches