[MERGE] optionally install tbzr binaries with bazaar binaries on Windows

John Arbash Meinel john at arbash-meinel.com
Tue Jul 22 16:05:54 BST 2008


John Arbash Meinel has voted comment.
Status is now: Waiting
Comment:
+    # And it uses funky mappings to conver to 'Oldname' to 'newname'. 
As
+    # a result, packages like 'email.Parser' show as missing.  Tell 
py2exe
+    # to exclude them.
+    import email
+    for oldname in getattr(email, '_LOWERNAMES', []):
+        excludes.append("email." + oldname)
+    for oldname in getattr(email, '_MIMENAMES', []):
+        excludes.append("email.MIME" + oldname)

^- Is it safe to assume that python2.4 just doesn't have these 
attributes? So it won't exclude them with those names?


+    if "TBZR" in os.environ:
+        # Eg: via SVN: 
http://tortoisesvn.tigris.org/svn/tortoisesvn/TortoiseOverlays/version-1.0.4/bin/TortoiseOverlays-1.0.4.11886-win32.msi
+        if not os.path.isfile(os.environ.get('TOVMSI_WIN32', 
'<nofile>')):
+            raise RuntimeError, "Please set TOVMSI_WIN32 to the 
location of " \
+                                "the TortoiseOverlays .msi 
installerfile"

^- This doesn't seem like a great way of defining that we want to 
include TBZR and how to find the overlay files.

Also, this function seems like it is getting really long, and a lot of 
this should be split out into helper functions.

I'm wondering if we couldn't just hard-code the path to the installers, 
and then just update it when necessary. It seems a bit better than 
requiring several different environment variables.

Also, why not go with options to 'setup.py py2exe' then it will at least 
be discoverable from 'python setup.py py2exe --help'. (That *may* be 
more trouble than it is worth, I'm not sure.)


+; # NOTE: A patch has been submitted to Paramika that will avoid use
+; # of the MFC DLL.  See 
http://www.lag.net/pipermail/paramiko/2008-June/000732.html

^- I think you mean Paramiko


Anyway, I'm about 50% on this patch. It seems like a pretty heavy 
dependency in core bzr towards tbzr. Is there a reason we wouldn't just 
put this sort of code in the tbzr code itself? So you would have a tbzr 
installer that would then install all the dependencies and bzr itself, 
rather than having a bzr installer that includes tbzr.


For details, see: 
http://bundlebuggy.aaronbentley.com/request/%3C074f01c8ebec%2458a7a490%2409f6edb0%24%40com.au%3E



More information about the bazaar mailing list