Win 2.1.0-1 installer bzr-explorer toolbar problem

John Arbash Meinel john at arbash-meinel.com
Thu Feb 18 22:47:07 GMT 2010


-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Dave Murray wrote:
> John Arbash Meinel wrote:
>> Note that there seems to be a problem with bzr-explorer and the
>> all-in-one-installer. I need to investigate further, but it seems that
>> we aren't finding the icons for the toolbar.
> 
> I've compared what is installed by the 2.1.0-1 installer and Explorer's
> own installer and there are some files missing:
> 
> clothes\
> hats\
> skin\
> app-suite-bzr-gtk.ini
> app-suite-qbzr.ini
> menus-for-ides.xml
> 
> The missing skin folder is causing the toolbar problem. The other missing
> files are causing other issues.
> 
> Dave.
> 
> 

Digging into it, it looks like it is a bad interaction with the py2exe
sections of bzr's setup.py.

Specifically, we have a 'plugin_files' search which does:
    for root, dirs, files in os.walk('bzrlib/plugins'):
...
        for i in files:
            if os.path.splitext(i)[1] not in [".py", ".pyd", ".dll", ".mo"]:
                continue
            if i == '__init__.py' and root == 'bzrlib/plugins':
                continue
            x.append(os.path.join(root, i))


So anything that isn't ".py", ".pyd", ".dll", or ".mo" gets excluded
from the packaging.

And bzr-explorer is now adding:
  package_data={'bzrlib.plugins.explorer': ['skin/*.conf',
                                            'skin/*.xml',
                                            'skin/logos/*.png',
                                            'clothes/*/icon.png',
                                            'clothes/*/*.conf',
                                            'clothes/*/*.xml',
                                            'clothes/*/logos/*.png',
                                            'hats/*/icon.png',
                                            'hats/*/*.conf',
                                            'hats/*/*.xml',
                                            'hats/*/logos/*.png',
                                            'locale/*/LC_MESSAGES/*.mo',
                                            '*.txt',
                                            'NEWS',
                                            '*.ini',
                                            '*.xml'
                                           ]},

So it copies it into the first staging area, but those files don't end
up copied into the py2exe build directory, and thus doesn't end up in
the installer.

My ideal answer is reworking the whole build process, so that plugins
tell bzr what needs to be installed/packaged rather than having us code
it into bzr itself. Short-term... I don't really know. I would *like* to
have py2exe specific stuff in bzr-windows-installers rather than bzr's
setup.py, if only because then I can update the packaging rules without
having to hack bzr and release a new bzr tarball.

Honestly, I'm not 100% sure how to fix this. Perhaps just relaxing the
allowed-plugin-files rule? (Note that we already ignore .txt files, and
NEWS, and some other stuff, and a file like NEWS has no extension for us
to filter by.)

John
=:->
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.9 (Cygwin)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org/

iEYEARECAAYFAkt9w2sACgkQJdeBCYSNAAOU/gCgqkhGcgTK35o38wI27kOSK3yO
a5IAoJH/sLrAGr8/CnYu08D+6Rr1o0a7
=QHHA
-----END PGP SIGNATURE-----



More information about the bazaar mailing list