[PATCH] win32 installer for bzr 0.9: rev.2

Alexander Belchenko bialix at ukr.net
Mon Jul 31 19:09:17 BST 2006


John Arbash Meinel пишет:
...
>> +import os
>> +import sys
>> +import _winreg
> 
> ...
> 
>> +    batch_path = "bzr.bat"
>> +    prefix = sys.prefix
>> +    try:
>> +        ##
>> +        # try to create
>> +        scripts_dir = os.path.join(prefix, "Scripts")
>> +        script_path = os.path.join(scripts_dir, "bzr")
>> +        python_path = os.path.join(prefix, "python.exe")
>> +        batch_str = "@%s %s %%*\n" % (python_path, script_path)
> 
> ^- This is unsafe when paths contain spaces. It is pbetter to do:
> batch_str = '@"%s" "%s" %%*\n' % (python_path, script_path)

I rework it in slightly different way (quote path only if it contains
spaces). I also do minor support of win98 (instead of %* args
palceholder I use '%1 ... %9' sequence when installed on win98).

> I also feel like it would be better to use
> sys.executable, rather than joining prefix + 'python.exe'.

No. Your feelings is wrong. This script (bzr-win32-bdist-postinstall.py)
launched during installation phase when user runs bzr-0.9.win32.exe
installer. And for this script sys.executable equals to full path to
installer. Not to python interpreter. So "prefix + 'python.exe'" is right.

>> === modified file 'bzrlib/doc/api/__init__.py'
>> --- bzrlib/doc/api/__init__.py	2006-06-06 08:09:09 +0000
>> +++ bzrlib/doc/api/__init__.py	2006-06-29 08:41:31 +0000
>> @@ -28,7 +28,11 @@
>>  import os
>>      
>>  def test_suite():
>> -    candidates = os.listdir(os.path.dirname(__file__))
>> +    dir_ = os.path.dirname(__file__)
>> +    if os.path.isdir(dir_):
>> +        candidates = os.listdir(dir_)
>> +    else:
>> +        candidates = []
>>      scripts = [candidate for candidate in candidates
>>                 if candidate.endswith('.txt')]
>>      return doctest.DocFileSuite(*scripts)
> 
> ^- Why is this failing? Because the standalone doesn't have a 'doc/api'
> directory?

It's failing because in standalone bzr.exe bzrlib itself packed inside
library.zip archive. So it simply cannot be os-listdir-able. When I work
on installer in early may I ask about this. You can search trough
maillist archive. Someone point me that doctest could be improved to use
zipimport module to actually obtain list of packed *.txt files with
doctests. But I looks too complex for this minor issue.


All other issues also was reworked.
Attached diff of recent changes; not full diff because it will be too big.

Log of my changes (attached diff for -r 1869..-1):

  1880 Alexander Belchenko	2006-07-31
       HACKING: mention where to get instructions for building windows 
installers

  1879 Alexander Belchenko	2006-07-31
       Makefile: cross-platform actions for building installer

  1878 Alexander Belchenko	2006-07-31
       No full path to iscc (Inno Setup compiler).
       You should have directory where Inno Setup installed listed in $PATH

  1877 Alexander Belchenko	2006-07-31
       new official bzr.ico

  1876 Alexander Belchenko	2006-07-31
       English phrases corrected as John Meinel suggested.

  1875 Alexander Belchenko	2006-07-31
       generate_docs (man/rstx): fixed description of configuration file
       (as John Meinel suggested)

  1874 Alexander Belchenko	2006-07-31
       generate_docs (man/rstx): get help with .help() method, otherwise 
help for merge incomplete

  1873 Alexander Belchenko	2006-07-30
       setup.py: get version info from bzrlib

  1872 Alexander Belchenko	2006-07-30
       improved postinstall script for python installer; added minimal 
support of win98

  1871 Alexander Belchenko	2006-07-30
       setup.py: improved bzr.bat creation

  1870 Alexander Belchenko	2006-07-30
       rename  gpl.txt => COPYING.txt

  1869 Alexander Belchenko	2006-07-30
       More branding: bazaar-ng -> Bazaar; bazaar-ng.org -> bazaar-vcs.org

  1868 Alexander Belchenko	2006-07-30
       merge bzr.dev

  1867 Alexander Belchenko	2006-07-30
       branding: change Bazaar-NG to Bazaar

  1866 Alexander Belchenko	2006-07-25
       show text of GPL license during installation of standalone bzr.exe

  1865 Alexander Belchenko	2006-07-25
       merge improvements to doc-generator: show aliases, more 
environment variables

  1864 Alexander Belchenko	2006-07-25
       - merge improvements to python-based installer
       - don't restrict python-based installer to python 2.4 only 
because 2.5 is coming

  1863 Alexander Belchenko	2006-07-25
       script bzr_test_dependencies.py removed from installer.
       TODO: push that functionality to plugin 'dependencies'

  1862 Alexander Belchenko	2006-07-17
       merged installer work


If you think it's OK to merge then I can prepare bundle for merging.

--
Alexander
-------------- next part --------------
An embedded and charset-unspecified text was scrubbed...
Name: win32.installer.0.9.v2-1.diff
Url: https://lists.ubuntu.com/archives/bazaar/attachments/20060731/9eceb662/attachment.diff 


More information about the bazaar mailing list