From 17c64af0d3e92c2ca3bacaaba6743a613a63ce6f Mon Sep 17 00:00:00 2001 From: Michael Martin Date: Wed, 17 Jun 2020 22:03:26 -0700 Subject: [PATCH] Updated Win32 and packaging documentation --- sc2/INSTALL.pkgs | 39 +++++++++++++++++++++++++++++++++++++++ sc2/INSTALL.win32 | 34 +++++++++++++++++++++++++++++++--- 2 files changed, 70 insertions(+), 3 deletions(-) create mode 100644 sc2/INSTALL.pkgs diff --git a/sc2/INSTALL.pkgs b/sc2/INSTALL.pkgs new file mode 100644 index 000000000..8ce46d11e --- /dev/null +++ b/sc2/INSTALL.pkgs @@ -0,0 +1,39 @@ + CREATING NEW CONTENT PACKAGES + ----------------------------- + +When a new version of UQM is released, new versions of the content +packages will also need to be created and uploaded. These packages are +renamed zip files created by the uqmzip utility under tools/uqmzip, and +ultimately by the "zip" commandline utility itself. + +Because of the way Windows and Git interact with line endings and the like, +and because of macOS's occasionaly pollution of zip files with macOS-specific +metadata, official releases always create these packages on a Linux system, + +The behavior of uqmzip is controlled by variables set at the beginning of it; +customize these variables for the version and for your system, but remember +to back out any changes that refer to your system's unique configuration! + +Once the packages are created, upload them to SourceForge in an appropriate +directory matching the current pattern for previous versions. This will +make them available for new users and for the Windows network installer. + +The network installer will also need to be modified to know how to recognize +the new packages. Make a dist-packages/ directory in the repository root (so, +next to sc2 and tools) and put all of them in there. There should be seven; +content, 3domusic, voice, and the four remix packs. Change the directory to +sc2/build/win32_install and run: + + ./procpkgs.sh + +This will update packages.nsh with fresh versions of the MD5 sums and +package filenames for later inclusion in the installer logic. + +If this was a release more significant than a patch release, then the +SourceForge packages were uploaded to a new directory; edit any necessary +instances of the $DOWNLOADPATH variable in uqm-installer.nsi to point +to the new URLs. + +Changes to packages.nsh and uqm-installer.nsi SHOULD be committed to the +repository in their corresponding version branch. Changes to the uqmzip +script SHOULD NOT be committed. diff --git a/sc2/INSTALL.win32 b/sc2/INSTALL.win32 index 6f68530b7..137b751d3 100644 --- a/sc2/INSTALL.win32 +++ b/sc2/INSTALL.win32 @@ -1,6 +1,34 @@ BUILDING THE WIN32 INSTALLER ---------------------------- -At the moment, alas, this file is a stub. The process needs some -refinement before a minimal set of build steps may be assembled. This -file should be updated before any 0.8 release candidate. \ No newline at end of file +You will need additional packages installed beyond what is necessary +for a build: + + pacman -S dos2unix mingw-w64-i686-nsis mingw-w64-i686-ntldd + pacman -S mingw-w64-i686-SDL mingw-w64-i686-SDL_gfx unzip zip + +You will also need the INetC and MD5dll plugins for NSIS: + + https://nsis.sourceforge.io/mediawiki/images/c/c9/Inetc.zip + https://nsis.sourceforge.io/mediawiki/images/d/d7/Md5dll.zip + +Unzip these somewhere and then copy the 32-bit ANSI versions of the library +into place: + + cp Plugins/x86-ansi/INetC.dll /mingw32/share/nsis/Plugins/ansi/ + cp md5dll/ANSI/md5dll.dll /mingw32/share/nsis/Plugins/ansi/ + +If this is a new release of UQM, and content packs have not already been +regenerated, consult INSTALL.pkgs for the steps to update it. These steps +include updates to the "packages.nsh" file and the "uqm-installer.nsi" files, +so you should inspect these files to make sure that it's announcing the +correct version and downloading the correct versions of the content packs. + +With these things in place, run the installer creator out of its directory: + + cd sc2/build/win32_install + ./build-win32-installer.sh + +If all goes well, this will build UQM and the KeyJam application, and then +build an NSIS-based installer that will install them and all necessary +ancillary files.