ltapilot commented on a change in pull request #178: Created Windows MSI
installer package.
URL: https://github.com/apache/incubator-daffodil/pull/178#discussion_r254792419
##########
File path: daffodil-cli/build.sbt
##########
@@ -71,3 +78,165 @@ rpmRelease := {
rpmLicense := Some(licenses.value.map { case (n: String, _) => n }.mkString("
and "))
rpmPrefix := Some(defaultLinuxInstallLocation.value)
+
+//
+// Windows configuration
+//
+
+//
+// Here we set the variables that are supported by the SBT WiX plug-in.
+// We also get fairly aggressive in editing/modifying the XML in order
+// to control and use some specific features that are supported by WiX
+// but which are not properly suported by the SBT plug-in. The changes
+// range from deleting an incorrect UI reference to adding whole files
+// to the body of code that is fed to the WiX compiler (candle) and
+// linker (light). We also change some attributes and such with a
+// ReWriter at the end. The comments should, at the very least, allow
+// you to follow the intent of each channge.
+//
+
+// Map variables from Universal as a starting point (default).
+mappings in Windows := (mappings in Universal).value
+
+// Force the correct installation directory name. This overwrites
+// 'daffodil-cli', which is the directory that we invoke sbt in.
+// The SBT WiX plug-in incorrectly assumes that the directory of
+// invocation is the same name as the direcotry you eventually
+// want to install into.
+name in Windows := "Daffodil"
+
+// The Windows packager SBT plug-in maps the maintainer variable into
+// the WiX ManufacturerFullName field. This is a very strange choice.
+// It also maps it to the manufacturer name in the installation
+// directory heirarchy. Among other things, this means it needs to be
+// short so as to not blow out the path length.
+maintainer in Windows := "Apache"
+
+// The Windows packager SBT plug-in maps the packageSummary variable
+// into the WiX productName field. Another strange choice.
+packageSummary in Windows := "Daffodil"
+
+// The Windows packager SBT plug-in limits the length of the
+// packageDescription field to a single line. Originally this was a
+// full paragraph, as seen in the RPM section, above.
+packageDescription in Windows := """Apache Daffodil (incubating) is the open
source implementation of the Data Format Description Language (DFDL)""".trim
+
+// Calculate the version number dynamically and pass it in.
+version in Windows := {
+ val parts = version.value.split("-", 2)
+ val ver = parts(0) // removes snapshot if it exists
+ ver + ".0"
+}
+
+// Required and critical GUIDs. Ironically the ProductId is unique
+// to a given release, but UpgradeId must NEVER change! This may
+// seem conter-intuitive, but the UpgradeId is actually what ties
+// the product to it's upgrades and the product is actually unique
+// each time it is released, so there is some semblance of logic
+// to this scheme.
+wixProductId := "F803A6CD-3008-4979-86BB-C6094AE57CD2"
Review comment:
Wow. That actually worked. The documentation for the plug-in implied that it
would fail if you didn't set wixProductId. Okay. Change done.
----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on GitHub and use the
URL above to go to the specific comment.
For queries about this service, please contact Infrastructure at:
[email protected]
With regards,
Apache Git Services