Ticket #9374 (new Patch - Feature)
Opened 2 years ago
Last modified 14 months ago
[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 |
Description
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
Change History
Changed 2 years ago by Lawrence Rust <lvr@…>
- Attachment mythbuildw32.zip added
comment:1 Changed 2 years ago by robertm
- Owner changed from nigel to robertm
- Status changed from new to assigned
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 2 years ago by Lawrence Rust <lvr@…>
- 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.
- 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 2 years ago by Lawrence Rust <lvr@…>
I forgot to add that 10-win32xbuild.diff is on ticket #9258
comment:4 Changed 2 years ago by beirdo
New version of script in #9493, which is closed as a dupe of this.
comment:5 Changed 2 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:
http://github.com/jmartens/packaging/tree/win32-build-script

Build script and patches