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

John Arbash Meinel john at arbash-meinel.com
Mon Jul 31 22:53:21 BST 2006


You sent this email 2 times. I'm assuming they have the same contents.

Alexander Belchenko wrote:
> John Arbash Meinel пишет:

...

> 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).

okay. I don't really want people getting the idea that we support win98,
but since bzr mostly works there, I guess there is no reason to
expressly forbid it.

> 
>> 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.
> 


I think you are saying you spawn 'python
bzr-win32-bdist-postinstall.py', or the equivalent.

sys.executable == a python executable, *not* the script that is running
(that is sys.argv[0])

If sys.executable == 'bzr-0.9.win32.exe', how do you know that it is
sitting in the same directory as 'python.exe'?

I think I understand that bzr-0.9.win32.exe is just the installer, not a
python interpreter. Which would mean that you still should use
'sys.executable'.

...

>> ^- 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.
> 

Yeah, you mentioned this briefly already, I'm okay with what you are doing.

...

> +Making installers for OS Windows
> +================================
> +To build a win32 installer, see the instructions at wiki page:
> +http://bazaar-vcs.org/BzrWin32Installer
> +
> +
>  :: vim: ft=rst tw=74 ai

'see the instructions on the wiki page:'


>  # win32 installer for bzr.exe
>  installer: exe copy_docs
> -	@echo Make windows installer
> -	cog.py -d -o tools\win32\bzr.iss tools\win32\bzr.iss.cog
> -	"C:\Program Files\Inno Setup 5\iscc" /Q tools\win32\bzr.iss
> +	@echo *** Make windows installer
> +	cog.py -d -o tools/win32/bzr.iss tools/win32/bzr.iss.cog
> +	iscc /Q tools/win32/bzr.iss

Shouldn't this be 'python cog.py' to be consistent with your other changes.



v--- It seems like it would be better to do:
META_INFO.update({'version':get_bzr_version()})
Earlier, rather than having to do it twice. Especially since you've
already updated ARGS, which would set version = '<unknown>'
Is there a code path that doesn't need version to be set?

> +def get_bzr_version():
> +    import bzrlib
> +    return bzrlib.__version__
> +
> +
>  if 'bdist_wininst' in sys.argv:
>      import glob
>      # doc files
> @@ -142,6 +163,7 @@
>             }
>  
>      ARGS.update(META_INFO)
> +    ARGS.update({'version': get_bzr_version()})
>      ARGS.update(BZRLIB)
>      
>      setup(**ARGS)
> @@ -197,7 +219,7 @@
>             }
>      
>      ARGS.update(META_INFO)
> +    ARGS.update({'version': get_bzr_version()})
>      ARGS.update(BZRLIB)
>  
>      setup(**ARGS)

...

I think it is just about ready for merging. If you can do the last few
bits, we'll get it merged this week.
John
=:->

-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 254 bytes
Desc: OpenPGP digital signature
Url : https://lists.ubuntu.com/archives/bazaar/attachments/20060731/28d41206/attachment.pgp 


More information about the bazaar mailing list