Opened 11 years ago

Closed 8 years ago

#9374 closed Patch - Feature (Won't Fix)

[PATCH] New build script for Windows

Reported by: Lawrence Rust <lvr@…> Owned by:
Priority: minor Milestone: unknown
Component: Ports - Windows Version: Unspecified
Severity: medium Keywords: Build script packager windows
Cc: Ticket locked: no


Following the move to git and other changes the current Perl based packager for Windows no longer builds a top of tree or latest fixes branch. In addition the stability of the product is questionable with a number of runtime errors being detected by Qt that are not otherwise observed on other platforms.

This script and associated patches add the following features:

  • Cross compile on Linux or build native on Windows XP or later.
  • Windows platform prerequisites are just Msys which is a simple download and install.
  • Linux prerequisites are just the mingw cross compiler.
  • Easily switch between debug and release builds.
  • Easily switch between master and fixes branches.
  • Patches are held in a separate folder, not embedded in the script, allowing easy customisation.
  • Easy adaptation to updated libraries and patches.

The attached archive contains the bash build script and a mythpatches folder. The folder is arranged by library/component. The following patches are required to Mythtv;

  • mythtv-0.24/10-d3d9.diff: Fix direct3d9 gui/video rendering. Ticket #9241.
  • mythtv-0.24/20-videofiles-win32.diff: Fix playback of video files with a : in the path
  • mythplugins-0.24/10-win32xbuild.diff: Patch to ./configure required to cross compile.
  • mythplugins-0.24/20-mythmusic-cdio.diff: Play/rip music CD's on Windows.

The remaining patches are to external libraries and are required for the build.

Attachments (1) (62.3 KB) - added by Lawrence Rust <lvr@…> 11 years ago.
Build script and patches

Download all attachments as: .zip

Change History (9)

Changed 11 years ago by Lawrence Rust <lvr@…>

Attachment: added

Build script and patches

comment:1 Changed 11 years ago by robertm

Owner: changed from Nigel to robertm
Status: newassigned

Hi Lawrence,

I do like your build script a lot and have used it without issue under both conditions. I do think it's the right way to go moving forward. Here's what I'd like to do:

1) Get all of the source and binary packages grabbed by this script loaded into the google code project. Can you send me an e-mail with the URLs to these? Even if we only download a binary package, I'll also need a URL for the source package to make sure we are license compliant.

2) I'd really prefer to see us get these patches committed rather than rely on external ones right off the bat. I can try to coordinate their being looked at on this side, but we need to make sure all of the patches have equivalent tickets opened, if there are any that do not yet have a ticket.

comment:2 Changed 11 years ago by Lawrence Rust <lvr@…>

  1. The URLs to all of the libraries are right at the top of the script. If someone can can explain to me how to upload to the google repo I can do that. The only binary package is Mysql.
  1. I have submitted the mythmusic-cdio.diff on ticket #9362, 20-videofiles-win32.diff is on ticket #9268. That just leaves 10-win32xbuild.diff which I kinda was hoping would go on this ticket as it's a total dependency.

FWIW I'm developing the script a bit further so that it can also run a native build from scratch. It may sound unnecessary but it allows you to choose the library versions and build options for each dependency. It's already flushed out an assertion failure in Qt - ticket #9378. It also looks as if there may be mysql bugs that are highlighted in a full debug build. I'll post it on the developers list after Xmas as I'm off for two weeks respite.

comment:3 Changed 11 years ago by Lawrence Rust <lvr@…>

I forgot to add that 10-win32xbuild.diff is on ticket #9258

comment:4 Changed 10 years ago by beirdo

New version of script in #9493, which is closed as a dupe of this.

comment:5 Changed 10 years ago by Jonathan Martens <jonathan@…>

I have taken the liberty to track (as good as I could) the changes Lawrence made in a personal fork of the packaging repo, perhaps once final you can pull from there:

comment:6 Changed 9 years ago by robertm

Owner: robertm deleted

comment:7 Changed 9 years ago by Raymond Wagner

Status: assignednew

comment:8 Changed 8 years ago by stuartm

Resolution: Won't Fix
Status: newclosed

I don't think this is going anywhere. David Blain has been building under VS and is going to be pushing some fixes related to that once 0.27 has been branched.

Note: See TracTickets for help on using tickets.