crosspack 0.2.0 → 0.2.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/CHANGELOG.md +13 -0
- data/lib/crosspack/builders/wix.rb +15 -5
- data/lib/crosspack/version.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: b365ad4ba6ab874d40dec1ef153ab18104f329ee6ebb7a638a27267089eb7c43
|
|
4
|
+
data.tar.gz: c8b0eef099fecc0f97f7964560e093812fe50e7627bb5a092bfadcbf8322f668
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 7c3d441c8d44206115a24ca0668843781b97631fdf3064a933d51709735911153861057bd0efa81b99406d4276b7c92b70993f12905b6e4ac6e9012b39db1f1d
|
|
7
|
+
data.tar.gz: d5bc914e071fd1be81b6cd1703b3120ce3d260a2a94188bba34b3b13f8e672f271d24c985642f43005fde6dbefc4dca542f67b74b213631eba071958e7e02a1f
|
data/CHANGELOG.md
CHANGED
|
@@ -5,6 +5,19 @@ All notable changes to this project will be documented in this file.
|
|
|
5
5
|
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
|
|
6
6
|
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
|
7
7
|
|
|
8
|
+
## [0.2.1] - 2026-09-11
|
|
9
|
+
|
|
10
|
+
### Fixed
|
|
11
|
+
- WiX builder: `wix build` is now invoked with `-arch <arch>` as separate
|
|
12
|
+
argv entries — the previous single `"-arch x64"` argument could never parse.
|
|
13
|
+
- WiX builder: a bare `dotnet` on PATH is no longer mistaken for the WiX
|
|
14
|
+
toolset (`dotnet build` cannot build an MSI); only a real `wix` command
|
|
15
|
+
triggers the real MSI build, otherwise the `.wxs` + `BUILD-MSI.txt`
|
|
16
|
+
fallback is emitted.
|
|
17
|
+
- WiX builder: manifest values (name, maintainer, summary) are XML-escaped
|
|
18
|
+
in the generated `.wxs`; a maintainer like `Name <email>` previously
|
|
19
|
+
produced invalid XML no WiX build could parse.
|
|
20
|
+
|
|
8
21
|
## [0.2.0] - 2026-09-08
|
|
9
22
|
|
|
10
23
|
### Added
|
|
@@ -27,8 +27,17 @@ module Crosspack
|
|
|
27
27
|
"#{hex[0, 8]}-#{hex[8, 4]}-#{hex[12, 4]}-#{hex[16, 4]}-#{hex[20, 12]}"
|
|
28
28
|
end
|
|
29
29
|
|
|
30
|
+
# Escapes XML entities so manifest values (e.g. a maintainer with
|
|
31
|
+
# "Name <email>") never break the generated .wxs.
|
|
32
|
+
def self.escape(text)
|
|
33
|
+
text.to_s.gsub('&', '&').gsub('<', '<').gsub('>', '>').gsub('"', '"')
|
|
34
|
+
end
|
|
35
|
+
|
|
30
36
|
def self.generate_wxs(name:, version:, manufacturer:, summary:, files:,
|
|
31
37
|
arch: 'x64')
|
|
38
|
+
name = escape(name)
|
|
39
|
+
manufacturer = escape(manufacturer)
|
|
40
|
+
summary = escape(summary)
|
|
32
41
|
directory = arch == 'arm64' ? 'ProgramFiles6432Folder' : 'ProgramFiles64Folder'
|
|
33
42
|
components = files.values.each_with_index.map do |dst, i|
|
|
34
43
|
src = files.key(dst).gsub('/', '\\')
|
|
@@ -97,7 +106,7 @@ module Crosspack
|
|
|
97
106
|
return wxs_path
|
|
98
107
|
end
|
|
99
108
|
|
|
100
|
-
out, status = Open3.capture2e(wix, 'build',
|
|
109
|
+
out, status = Open3.capture2e(wix, 'build', '-arch', arch.to_s,
|
|
101
110
|
'-o', output, wxs_path)
|
|
102
111
|
unless status.success?
|
|
103
112
|
raise BuildError, "wix build failed to build #{output}:\n#{out}"
|
|
@@ -105,11 +114,12 @@ module Crosspack
|
|
|
105
114
|
output
|
|
106
115
|
end
|
|
107
116
|
|
|
117
|
+
# WiX v4+ is a .NET tool invoked as `wix` (dotnet tool install -g wix);
|
|
118
|
+
# plain `dotnet` cannot build an MSI, so it is not a fallback.
|
|
108
119
|
def self.wix_command
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
end
|
|
120
|
+
_, _, status = Open3.capture3('wix', '--version')
|
|
121
|
+
return 'wix' if status.success?
|
|
122
|
+
|
|
113
123
|
nil
|
|
114
124
|
rescue Errno::ENOENT
|
|
115
125
|
nil
|
data/lib/crosspack/version.rb
CHANGED
metadata
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: crosspack
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.2.
|
|
4
|
+
version: 0.2.1
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Oleg Orlov
|
|
8
8
|
autorequire:
|
|
9
9
|
bindir: exe
|
|
10
10
|
cert_chain: []
|
|
11
|
-
date: 2026-09-
|
|
11
|
+
date: 2026-09-11 00:00:00.000000000 Z
|
|
12
12
|
dependencies: []
|
|
13
13
|
description: 'Two cooperating commands: crossbuild runs the build steps of a project
|
|
14
14
|
from a build.yaml matrix and fans the produced artifacts out into the per-target
|