Opened 6 years ago

Last modified 19 months ago

#11236 new Bug

Can't build a windows msi installer

Reported by: mr_pink Owned by: nobody
Component: Packaging Version: master
Severity: Normal Keywords: setup msi
Cc: Triage Stage: Accepted
Has patch: no Needs documentation: no
Needs tests: no Patch needs improvement: no
Easy pickings: no UI/UX: no

Description

Using "python setup.py bdist_msi" it should be possible to build a django msi installer. Whilst I doubt this is high on the list of priorities it seems like quite an easy fix.

I discovered two issues, the first is the version numbering - it is rejected unless it matches a certain pattern. So 1.1 beta should be, for example, 1.1b1.

Secondly contrib.gis causes a problem with the code in msilib.py

as city.$DB_BACKEND.sql all get shortened to city.sql, and there is an assertion that names must be unique. Therefore these files would need renaming.

I suspect that the setup.py hack that looks for 'bdist_wininst' to include data files might have to be expanded to look for bdist_msi too.

Tested using python2.5

Change History (8)

comment:1 Changed 6 years ago by Alex

  • Needs documentation unset
  • Needs tests unset
  • Patch needs improvement unset
  • Triage Stage changed from Unreviewed to Accepted

comment:2 Changed 4 years ago by julien

  • Severity set to Normal
  • Type set to Bug

comment:3 Changed 3 years ago by aaugustin

  • Easy pickings unset
  • UI/UX unset

The issue with contrib.gis was somehow resolved since this ticket was filed. The issue with the version number still exists.

Distutils' docs say:

It is recommended that versions take the form major.minor[.patch[.sub]].

Encoding the version information is an art in itself. Python packages generally adhere to the version format major.minor[.patch][sub]. The major number is 0 for initial, experimental releases of software. It is incremented for releases that represent major milestones in a package. The minor number is incremented when important new features are added to the package. The patch number increments when bug-fix releases are made. Additional trailing version information is sometimes used to indicate sub-releases. These are “a1,a2,...,aN” (for alpha releases, where functionality and API may change), “b1,b2,...,bN” (for beta releases, which only fix bugs) and “pr1,pr2,...,prN” (for final pre-release release testing). Some examples:

0.1.0

the first, experimental release of a package

1.0.1a2

the second alpha release of the first patch version of 1.0

comment:4 Changed 3 years ago by aaugustin

I just uploaded a patch to #17491 to fix the format of the version number. If that patch is committed, this ticket will probably be fixed.

comment:5 Changed 3 years ago by aaugustin

  • Resolution set to fixed
  • Status changed from new to closed

In [17351]:

Fixed #17491 -- Honored the version number format expected by distutils. Fixed #11236 too.

comment:6 Changed 3 years ago by aaugustin

  • Resolution fixed deleted
  • Status changed from closed to reopened

Hum, python.exe setup.py bdist_msi still returns an error:

Writing build\bdist.win32\msi\Lib\site-packages\Django-1.4.0a1-py2.7.egg-info
Traceback (most recent call last):
  File "setup.py", line 98, in <module>
    'Topic :: Software Development :: Libraries :: Python Modules',
  File "C:\Python27\lib\distutils\core.py", line 152, in setup
    dist.run_commands()
  File "C:\Python27\lib\distutils\dist.py", line 953, in run_commands
    self.run_command(cmd)
  File "C:\Python27\lib\distutils\dist.py", line 972, in run_command
    cmd_obj.run()
  File "C:\Python27\lib\distutils\command\bdist_msi.py", line 255, in run
    self.add_files()
  File "C:\Python27\lib\distutils\command\bdist_msi.py", line 318, in add_files
    db.Commit()
_msi.MSIError: 1: 2263 2: _Tables 3: -2147287032

comment:7 Changed 2 years ago by aaugustin

  • Status changed from reopened to new

comment:8 Changed 19 months ago by aaugustin

  • Component changed from Uncategorized to Packaging
Note: See TracTickets for help on using tickets.
Back to Top