Skip to content

Commit

Permalink
Merge branch 'master' into VassalGameFileName-property
Browse files Browse the repository at this point in the history
# Conflicts:
#	vassal-app/src/main/java/VASSAL/build/GameModule.java
  • Loading branch information
riverwanderer committed Nov 24, 2023
2 parents 8221e2f + e2c7e59 commit a91b8bc
Show file tree
Hide file tree
Showing 52 changed files with 562 additions and 169 deletions.
17 changes: 6 additions & 11 deletions .github/workflows/package.yml
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@ jobs:

- name: Store version
id: version
run: echo "VERSION=$(make version-print)" >>$GITHUB_OUTPUT
run: echo "VERSION=$(make version-print)" >> $GITHUB_OUTPUT

- name: Update container
run: sudo apt update
Expand All @@ -37,7 +37,7 @@ jobs:
uses: actions/setup-java@v3
with:
distribution: 'temurin'
java-version: 20
java-version: 21
java-package: jdk

- name: Cache Maven packages
Expand All @@ -56,6 +56,7 @@ jobs:
./dist/dmg
./dist/jdks
./dist/launch4j
./dist/lipo
key: ${{ runner.os }}-bootstrap-${{ hashFiles('bootstrap.sh') }}

- name: Install packaging dependencies
Expand All @@ -71,17 +72,11 @@ jobs:
name: VASSAL-${{ steps.version.outputs.VERSION }}-linux.tar.bz2
path: tmp/VASSAL-${{ steps.version.outputs.VERSION }}-linux.tar.bz2

- name: Archive MacOS x86_64
- name: Archive MacOS
uses: actions/upload-artifact@v3
with:
name: VASSAL-${{ steps.version.outputs.VERSION }}-macos-x86_64.dmg
path: tmp/VASSAL-${{ steps.version.outputs.VERSION }}-macos-x86_64.dmg

- name: Archive MacOS aarch64
uses: actions/upload-artifact@v3
with:
name: VASSAL-${{ steps.version.outputs.VERSION }}-macos-aarch64.dmg
path: tmp/VASSAL-${{ steps.version.outputs.VERSION }}-macos-aarch64.dmg
name: VASSAL-${{ steps.version.outputs.VERSION }}-macos-universal.dmg
path: tmp/VASSAL-${{ steps.version.outputs.VERSION }}-macos-universal.dmg

- name: Archive other
uses: actions/upload-artifact@v3
Expand Down
55 changes: 55 additions & 0 deletions CHANGES
Original file line number Diff line number Diff line change
@@ -1,3 +1,58 @@
3.7.6 - ???

* 12907: Deck Key Commands do not work on subsequent new games
* 12881: Prevent integer overflow when computing the size of image pixel data
in bytes

3.7.5 - 30 October 2023

* 12866: Fix double application of board magnification to board bounds
* 12865: Documentation: Editor Search section - add a cross-link to main
search details
* 12861: Number in-use traits in Piece Definer
* 12852: Prevent SumZone from generating Bad Data Errors
* 12846: Fix missing custom colors and font styles in Game Piece Layouts
* 12841: Ensure labels are correctly updated in Replace With Other trait

3.7.4 - 20 October 2023

* 12830: Prevent Load Continuation from auto-forwarding to end of log
* 12829: Set Piece Property Documentation clarification
* 12826: Fix bug where pieces sometimes teleport from deck back to different
map in multiplayer (Ensure map recorded in pieces matches map in parent
Stack/Deck)
* 12825: Allow Unique components to be copied; change Game Piece Layers to be
non-mandatory
* 12824: Ensure ColorManager and FontManager are created exactly once, before
use
* 12802: Prevent NPE in Named KeyStroke Configurer

3.7.3 - 16 October 2023

* 12817: Fix alphanumeric key behavior in hotkey (key command) configurer in
Editor (e.g., Shift+B should show up as "Shift+B", not "B")
* 12814: Updated bundled Java to 21
* 12810: VASSAL.sh exits before printing relevant exit message
* 12808: Horizontal scrolling now supports 2-finger-trackpad and mice with
additional horizontal wheels
* 12724: Improved legibility of translation panels
* 12705: Prevent creation of duplicate Translations by Add Translation button

3.7.2 - 8 October 2023

* 12896: Build universal Mac bundle
* 12784: Fix rendering of external Text Label images
* 12781: Fix bad translation keys for Attachment, Deselect, Send To Location
traits
* 12780: Correctly adjust Player window title to reflect actions taken in
Welcome Wizard
* 12769: Fix support for expressions in Sound Clip Configurer
* 12729: Set Global Property to again record old GP value in oldValues for
reporting
* 12773: Disabled Toolbar Button icons should not appear in unused images list
* 12770: Prevent NPE when escaping from GKC trait after adding 'Set Dynamic
Properties' entries

3.7.1 - 20 September 2023

* 12727: Ensure that tiles are cobbled for fixed-size board scaling
Expand Down
25 changes: 17 additions & 8 deletions Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -47,13 +47,13 @@ JDKDIR:=$(DISTDIR)/jdks
JDOCDIR:=jdoc

# numeric part of the version only
VNUM:=3.7.2
VNUM:=3.7.6
# major-minor part of the version
V_MAJ_MIN:=$(shell echo "$(VNUM)" | cut -f1,2 -d'.')

MAVEN_VERSION:=$(VNUM)-SNAPSHOT
#MAVEN_VERSION:=$(VNUM)-beta5
3MAVEN_VERSION:=$(VNUM)
#MAVEN_VERSION:=$(VNUM)

JARNAME:=vassal-app-$(MAVEN_VERSION)

Expand All @@ -77,6 +77,7 @@ VERSION_50:=$(shell echo "$(VERSION)" | cut -c1-50)
MVN:=./mvnw

DMG:=$(DISTDIR)/dmg/libdmg-hfsplus/build/dmg/dmg
LIPO:=$(DISTDIR)/lipo/lipo_linux_amd64

NSIS:=makensis
LAUNCH4J:=$(DISTDIR)/launch4j/launch4j/launch4j
Expand Down Expand Up @@ -145,6 +146,16 @@ $(TMPDIR)/macos-%-$(VERSION)-build/VASSAL.app: $(LIBDIR)/Vengine.jar $(TMPDIR)/m
cp -a CHANGES LICENSE README.md $@/Contents/Resources/doc
cp -a $(LIBDIR)/Vengine.jar $@/Contents/Resources/Java

$(TMPDIR)/macos-universal-$(VERSION)-build/VASSAL.app: $(TMPDIR)/macos-x86_64-$(VERSION)-build/VASSAL.app $(TMPDIR)/macos-aarch64-$(VERSION)-build/VASSAL.app
mkdir -p $@
cp -av $(TMPDIR)/macos-aarch64-$(VERSION)-build/VASSAL.app/* $@
find $@ -type f | while read f ; do \
if file "$${f/universal/aarch64}" | grep 'Mach-O.\+arm64' ; then \
echo "$$f" ; \
$(LIPO) -create -output "$$f" "$${f/universal/x86_64}" "$${f/universal/aarch64}" ; \
fi ; \
done

$(TMPDIR)/macos-%-$(VERSION)-build: $(TMPDIR)/macos-%-$(VERSION)-build/VASSAL.app
ln -s /Applications $@/Applications
cp $(DISTDIR)/macos/.DS_Store $@
Expand Down Expand Up @@ -266,11 +277,9 @@ $(TMPDIR)/VASSAL-$(VERSION)-windows-noinst.zip: $(TMPDIR)/windows-noinst-$(VERSI

release-linux: $(TMPDIR)/VASSAL-$(VERSION)-linux.tar.bz2

release-macos: release-macos-x86_64 release-macos-aarch64

release-macos-x86_64: $(TMPDIR)/VASSAL-$(VERSION)-macos-x86_64.dmg
release-macos: release-macos-universal

release-macos-aarch64: $(TMPDIR)/VASSAL-$(VERSION)-macos-aarch64.dmg
release-macos-universal: $(TMPDIR)/VASSAL-$(VERSION)-macos-universal.dmg

release-windows: release-windows-x86_32 release-windows-x86_64 release-windows-aarch64

Expand All @@ -284,7 +293,7 @@ release-windows-noinst: $(TMPDIR)/VASSAL-$(VERSION)-windows-noinst.zip

release-other: $(TMPDIR)/VASSAL-$(VERSION)-other.zip

$(TMPDIR)/VASSAL-$(VERSION).sha256: $(TMPDIR)/VASSAL-$(VERSION)-linux.tar.bz2 $(TMPDIR)/VASSAL-$(VERSION)-macos-x86_64.dmg $(TMPDIR)/VASSAL-$(VERSION)-macos-aarch64.dmg $(TMPDIR)/VASSAL-$(VERSION)-windows-x86_32.exe $(TMPDIR)/VASSAL-$(VERSION)-windows-x86_64.exe $(TMPDIR)/VASSAL-$(VERSION)-windows-aarch64.exe $(TMPDIR)/VASSAL-$(VERSION)-other.zip
$(TMPDIR)/VASSAL-$(VERSION).sha256: $(TMPDIR)/VASSAL-$(VERSION)-linux.tar.bz2 $(TMPDIR)/VASSAL-$(VERSION)-macos-universal.dmg $(TMPDIR)/VASSAL-$(VERSION)-windows-x86_32.exe $(TMPDIR)/VASSAL-$(VERSION)-windows-x86_64.exe $(TMPDIR)/VASSAL-$(VERSION)-windows-aarch64.exe $(TMPDIR)/VASSAL-$(VERSION)-other.zip
pushd $(TMPDIR) ; sha256sum $(^F) >$(@F) ; popd

release-sha256: $(TMPDIR)/VASSAL-$(VERSION).sha256
Expand Down Expand Up @@ -321,4 +330,4 @@ clean: clean-release
# prevents make from trying to delete intermediate files
.SECONDARY:

.PHONY: compile test clean release release-linux release-macos release-macos-x86_64 release-macos-aarch64 release-windows release-windows-x86_32 release-windows-x86_64 release-windows-aarch64 release-other release-sha256 release-announcements clean-release post-release javadoc jar clean-javadoc version-set version-print
.PHONY: compile test clean release release-linux release-macos release-macos-universal release-windows release-windows-x86_32 release-windows-x86_64 release-windows-aarch64 release-other release-sha256 release-announcements clean-release post-release javadoc jar clean-javadoc version-set version-print
32 changes: 23 additions & 9 deletions bootstrap.sh
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,9 @@ L4JDIR=dist/launch4j

JDKDIR=dist/jdks

LIPOVER=0.8.4
LIPODIR=dist/lipo

#
# Donwload and unpack JDKs
#
Expand All @@ -18,13 +21,13 @@ pushd "$JDKDIR"

ZULU_URL='https://cdn.azul.com/zulu/bin'

TEMURIN_URL='https://github.com/adoptium/temurin20-binaries/releases/download'
TEMURIN_VERSION=jdk-20.0.2+9
TEMURIN_FILENAME_VERSION=20.0.2_9
TEMURIN_URL='https://github.com/adoptium/temurin21-binaries/releases/download'
TEMURIN_VERSION=jdk-21+35
TEMURIN_FILENAME_VERSION=21_35

BELLSOFT_URL='https://download.bell-sw.com/java/20.0.2%2B10'
BELLSOFT_VERSION=20.0.2+10
BELLSOFT_DIR=jdk-20.0.2
BELLSOFT_URL='https://download.bell-sw.com/java/21%2B37'
BELLSOFT_VERSION=21+37
BELLSOFT_DIR=jdk-21

# Windows x86_32
filename="bellsoft-jdk$BELLSOFT_VERSION-windows-i586.zip"
Expand All @@ -33,7 +36,7 @@ unzip $filename
mv $BELLSOFT_DIR windows-x86_32

# Windows x86_64
filename="OpenJDK20U-jdk_x64_windows_hotspot_$TEMURIN_FILENAME_VERSION.zip"
filename="OpenJDK21U-jdk_x64_windows_hotspot_$TEMURIN_FILENAME_VERSION.zip"
curl -L -O "$TEMURIN_URL/$TEMURIN_VERSION/$filename"
unzip $filename
mv $TEMURIN_VERSION windows-x86_64
Expand All @@ -45,19 +48,30 @@ unzip $filename
mv $BELLSOFT_DIR windows-aarch64

# MacOS x86_64
filename="OpenJDK20U-jdk_x64_mac_hotspot_$TEMURIN_FILENAME_VERSION.tar.gz"
filename="OpenJDK21U-jdk_x64_mac_hotspot_$TEMURIN_FILENAME_VERSION.tar.gz"
curl -L -O "$TEMURIN_URL/$TEMURIN_VERSION/$filename"
mkdir macos-x86_64
tar -C macos-x86_64 --strip-components=1 -xvf $filename

# MacOS aarch64
filename="OpenJDK20U-jdk_aarch64_mac_hotspot_$TEMURIN_FILENAME_VERSION.tar.gz"
filename="OpenJDK21U-jdk_aarch64_mac_hotspot_$TEMURIN_FILENAME_VERSION.tar.gz"
curl -L -O "$TEMURIN_URL/$TEMURIN_VERSION/$filename"
mkdir macos-aarch64
tar -C macos-aarch64 --strip-components=1 -xvf $filename

popd

#
# Download lipo
#
mkdir -p "$LIPODIR"
pushd "$LIPODIR"

wget https://github.com/konoui/lipo/releases/download/v${LIPOVER}/lipo_linux_amd64
chmod a+x lipo_linux_amd64

popd

#
# Download and unpack launch4j
#
Expand Down
2 changes: 1 addition & 1 deletion dist/VASSAL.sh
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@
set -e

# Get java from PATH if not set in environment
JAVA="${JAVA:-$(which java)}"
JAVA="${JAVA:-$(which java 2>/dev/null || : )}"

# Check that java exists
if [ ! -x "$JAVA" ]; then
Expand Down
2 changes: 2 additions & 0 deletions dist/macos/Info.plist
Original file line number Diff line number Diff line change
Expand Up @@ -42,5 +42,7 @@ com/DTDs/PropertyList-1.0.dtd">
<string>Editor</string>
</dict>
</array>
<key>LSRequiresNativeExecution</key>
<true/>
</dict>
</plist>
9 changes: 8 additions & 1 deletion dist/macos/VASSAL.sh
Original file line number Diff line number Diff line change
Expand Up @@ -12,5 +12,12 @@ for ARG in "$@"; do
fi
done

# determine the correct CPU architecture
if sysctl machdep.cpu.brand_string | grep -q Intel ; then
ARCH=x86_64
else
ARCH=arm64
fi

# fire it up
exec Contents/MacOS/jre/bin/java -classpath Contents/Resources/Java/Vengine.jar -Xdock:name=VASSAL -Xdock:icon=Contents/Resources/VASSAL.icns VASSAL.launch.ModuleManager "${ARGS[@]}"
exec arch -$ARCH Contents/MacOS/jre/bin/java -classpath Contents/Resources/Java/Vengine.jar -Xdock:name=VASSAL -Xdock:icon=Contents/Resources/VASSAL.icns VASSAL.launch.ModuleManager "${ARGS[@]}"
91 changes: 84 additions & 7 deletions dist/notes/data.json
Original file line number Diff line number Diff line change
@@ -1,21 +1,98 @@
{
"headline": "The Vassal Team is happy to announce the release of Vassal {{version}}.",
"important": [
"There is now a single universal app bundle for MacOS. It runs natively on both 64-bit x86 (Intel) and 64-bit ARM (Apple Silicon) Macs.",
"Modules saved in {{version_feature}} are not openable by earlier versions of Vassal. We recommend keeping a backup copy of any pre-{{version_feature}} modules you plan to modify in {{version_feature}} until you've verified that everything works to your satisfaction.",
"Some code deprecated more than a year ago has been removed. Modules containing custom code using that code MUST be updated if they are to work with {{version_feature}}.",
"Things may be broken which worked previously. If you find a new bug, please report it."
],
"downloads": [
{ "display_name": "Linux", "suffix": "linux.tar.bz2" },
{ "display_name": "MacOS (64-bit ARM)", "suffix": "macos-aarch64.dmg" },
{ "display_name": "MacOS (64-bit x86)", "suffix": "macos-x86_64.dmg" },
{ "display_name": "Windows (64-bit ARM)", "suffix": "windows-aarch64.exe" },
{ "display_name": "MacOS", "suffix": "macos-universal.dmg" },
{ "display_name": "Windows (64-bit x86)", "suffix": "windows-x86_64.exe" },
{ "display_name": "Windows (32-bit x86)", "suffix": "windows-x86_32.exe" },
{ "display_name": "Windows (64-bit ARM)", "suffix": "windows-aarch64.exe" },
{ "display_name": "Other", "suffix": "other.zip" }
],
"changes": [
{
{
"in": "3.7.6",
"since": "3.7.5",
"new_features": [
],
"bug_fixes": [
{ "num": 12907, "desc": "Deck Key Commands do not work on subsequent new games" },
{ "num": 12881, "desc": "Prevent integer overflow when computing the size of image pixel data in bytes" }
],
"other_improvements": [
]
},
{
"in": "3.7.5",
"since": "3.7.4",
"new_features": [
],
"bug_fixes": [
{ "num": 12866, "desc": "Fix double application of board magnification to board bounds" },
{ "num": 12852, "desc": "Prevent SumZone from generating Bad Data Errors" },
{ "num": 12846, "desc": "Fix missing custom colors and font styles in Game Piece Layouts" },
{ "num": 12841, "desc": "Ensure labels are correctly updated in Replace With Other trait" }
],
"other_improvements": [
{ "num": 12865, "desc": "Documentation: Editor Search section - add a cross-link to main search details" },
{ "num": 12861, "desc": "Number in-use traits in Piece Definer" }
]
},
{
"in": "3.7.4",
"since": "3.7.3",
"new_features": [
],
"bug_fixes": [
{ "num": 12830, "desc": "Prevent Load Continuation from auto-forwarding to end of log" },
{ "num": 12826, "desc": "Fix bug where pieces sometimes teleport from deck back to different map in multiplayer (Ensure map recorded in pieces matches map in parent Stack/Deck)" },
{ "num": 12824, "desc": "Ensure ColorManager and FontManager are created exactly once, before use" },
{ "num": 12802, "desc": "Prevent NPE in Named KeyStroke Configurer" }
],
"other_improvements": [
{ "num": 12829, "desc": "Set Piece Property Documentation clarification" },
{ "num": 12825, "desc": "Allow Unique components to be copied; change Game Piece Layers to be non-mandatory" }
]
},
{
"in": "3.7.3",
"since": "3.7.2",
"new_features": [
],
"bug_fixes": [
{ "num": 12817, "desc": "Fix alphanumeric key behavior in hotkey (key command) configurer in Editor (e.g., Shift+B should show up as \"Shift+B\", not \"B\")" },
{ "num": 12810, "desc": "VASSAL.sh exits before printing relevant exit message" },
{ "num": 12705, "desc": "Prevent creation of duplicate Translations by Add Translation button" }
],
"other_improvements": [
{ "num": 12814, "desc": "Updated bundled Java to 21" },
{ "num": 12808, "desc": "Horizontal scrolling now supports 2-finger-trackpad and mice with additional horizontal wheels" },
{ "num": 12724, "desc": "Improved legibility of translation panels" }
]
},
{
"in": "3.7.2",
"since": "3.7.1",
"new_features": [
],
"bug_fixes": [
{ "num": 12784, "desc": "Fix rendering of external Text Label images" },
{ "num": 12781, "desc": "Fix bad translation keys for Attachment, Deselect, Send To Location traits" },
{ "num": 12780, "desc": "Correctly adjust Player window title to reflect actions taken in Welcome Wizard" },
{ "num": 12769, "desc": "Fix support for expressions in Sound Clip Configurer" },
{ "num": 12729, "desc": "Set Global Property to again record old GP value in oldValues for reporting" },
{ "num": 12773, "desc": "Disabled Toolbar Button icons should not appear in unused images list" },
{ "num": 12770, "desc": "Prevent NPE when escaping from GKC trait after adding 'Set Dynamic Properties' entries" }
],
"other_improvements": [
{ "num": 12896, "desc": "Build universal Mac bundle" }
]
},
{
"in": "3.7.1",
"since": "3.7.0",
"new_features": [
Expand Down Expand Up @@ -44,8 +121,8 @@
{ "num": 12670, "desc": "Prevent essential components being accidentally deleted" },
{ "num": 12661, "desc": "Translate side names in change sides message" }
]
},
{
},
{
"in": "3.7.0",
"since": "3.6.19",
"new_features": [
Expand Down
Loading

0 comments on commit a91b8bc

Please sign in to comment.