From 2d00bbb5353fbfd21e8323efd344f97fa1c18368 Mon Sep 17 00:00:00 2001 From: Calyx Hikari Date: Fri, 28 Nov 2025 23:00:02 +0800 Subject: [PATCH 01/10] Update build.yml --- .github/workflows/build.yml | 22 +++++++++++++++++++++- 1 file changed, 21 insertions(+), 1 deletion(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 83e651c..5ac600d 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -23,7 +23,27 @@ jobs: - name: Install dependencies run: | sudo apt-get update - sudo apt-get install -y aria2 nsis + sudo apt-get install -y aria2 \ + build-essential \ + scons \ + pkg-config \ + libz-dev \ + libpng-dev \ + libjpeg-dev \ + libfreetype6-dev \ + liblua5.1-0-dev \ + gettext + + - name: Clone NSIS source + run: | + git clone https://github.com/NSIS-Dev/nsis.git + cd nsis + scons + + - name: Install NSIS + run: | + cd nsis + sudo scons install PREFIX=/usr/local - name: Run generate.sh run: | From 49f3f027d55cd6ccada1503e7d81d59fac8fca13 Mon Sep 17 00:00:00 2001 From: Calyx Hikari Date: Fri, 28 Nov 2025 23:01:39 +0800 Subject: [PATCH 02/10] Update build.yml --- .github/workflows/build.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 5ac600d..acabf14 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -38,7 +38,7 @@ jobs: run: | git clone https://github.com/NSIS-Dev/nsis.git cd nsis - scons + scons SKIPZLIB=1 ZLIB_W32= SKIPWIN32=1 - name: Install NSIS run: | From 98d0a8da735b5e2c277c852efe69be6b678988aa Mon Sep 17 00:00:00 2001 From: Calyx Hikari Date: Fri, 28 Nov 2025 23:02:53 +0800 Subject: [PATCH 03/10] Update build.yml --- .github/workflows/build.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index acabf14..2c701f8 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -38,7 +38,7 @@ jobs: run: | git clone https://github.com/NSIS-Dev/nsis.git cd nsis - scons SKIPZLIB=1 ZLIB_W32= SKIPWIN32=1 + scons SKIPZLIB=1 SKIPWIN32=1 - name: Install NSIS run: | From fd729fcab059495218834c36be5b62b6eb0ecb31 Mon Sep 17 00:00:00 2001 From: Calyx Hikari Date: Fri, 28 Nov 2025 23:06:44 +0800 Subject: [PATCH 04/10] Add zlib1g-dev --- .github/workflows/build.yml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 2c701f8..e7b7183 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -32,7 +32,8 @@ jobs: libjpeg-dev \ libfreetype6-dev \ liblua5.1-0-dev \ - gettext + gettext \ + zlib1g-dev - name: Clone NSIS source run: | From 35c2d657b262d0fb4e082ae7387606a8879c9c80 Mon Sep 17 00:00:00 2001 From: Calyx Hikari Date: Fri, 28 Nov 2025 23:17:59 +0800 Subject: [PATCH 05/10] Switch to GitHub Actions only script --- .github/workflows/build.yml | 27 ++----------- generate_all_github.sh | 77 +++++++++++++++++++++++++++++++++++++ install_AllOS.nsi | 11 +++--- install_AtLeastWin10.nsi | 11 +++--- install_AtLeastWin7.nsi | 11 +++--- 5 files changed, 95 insertions(+), 42 deletions(-) create mode 100644 generate_all_github.sh diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index e7b7183..bcfb617 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -23,33 +23,12 @@ jobs: - name: Install dependencies run: | sudo apt-get update - sudo apt-get install -y aria2 \ - build-essential \ - scons \ - pkg-config \ - libz-dev \ - libpng-dev \ - libjpeg-dev \ - libfreetype6-dev \ - liblua5.1-0-dev \ - gettext \ - zlib1g-dev - - - name: Clone NSIS source - run: | - git clone https://github.com/NSIS-Dev/nsis.git - cd nsis - scons SKIPZLIB=1 SKIPWIN32=1 - - - name: Install NSIS - run: | - cd nsis - sudo scons install PREFIX=/usr/local + sudo apt-get install -y aria2 nsis - name: Run generate.sh run: | - chmod +x ./generate_all.sh - ./generate_all.sh + chmod +x ./generate_all_github.sh + ./generate_all_github.sh - name: Get build date id: date diff --git a/generate_all_github.sh b/generate_all_github.sh new file mode 100644 index 0000000..9b69d19 --- /dev/null +++ b/generate_all_github.sh @@ -0,0 +1,77 @@ +#!/bin/bash + +# This script is for GitHub Actions only. + +shopt -s nocasematch + +cat << EOF > downloadLink.txt +https://download.microsoft.com/download/8/b/4/8b42259f-5d70-43f4-ac2e-4b208fd8d66a/vcredist_x86.exe + out=vcredist_2005_x86.exe + +https://download.microsoft.com/download/8/b/4/8b42259f-5d70-43f4-ac2e-4b208fd8d66a/vcredist_x64.exe + out=vcredist_2005_x64.exe + +https://download.microsoft.com/download/5/D/8/5D8C65CB-C849-4025-8E95-C3966CAFD8AE/vcredist_x86.exe + out=vcredist_2008_x86.exe + +https://download.microsoft.com/download/5/D/8/5D8C65CB-C849-4025-8E95-C3966CAFD8AE/vcredist_x64.exe + out=vcredist_2008_x64.exe + +https://download.microsoft.com/download/1/6/5/165255E7-1014-4D0A-B094-B6A430A6BFFC/vcredist_x86.exe + out=vcredist_2010_x86.exe + +https://download.microsoft.com/download/1/6/5/165255E7-1014-4D0A-B094-B6A430A6BFFC/vcredist_x64.exe + out=vcredist_2010_x64.exe + +https://download.microsoft.com/download/1/6/B/16B06F60-3B20-4FF2-B699-5E9B7962F9AE/VSU_4/vcredist_x86.exe + out=vcredist_2012_x86.exe + +https://download.microsoft.com/download/1/6/B/16B06F60-3B20-4FF2-B699-5E9B7962F9AE/VSU_4/vcredist_x64.exe + out=vcredist_2012_x64.exe + +https://aka.ms/highdpimfc2013x86enu + out=vcredist_2013_x86.exe + +https://aka.ms/highdpimfc2013x64enu + out=vcredist_2013_x64.exe + +https://download.visualstudio.microsoft.com/download/pr/566435ac-4e1c-434b-b93f-aecc71e8cffc/0D59EC7FDBF05DE813736BF875CEA5C894FFF4769F60E32E87BD48406BBF0A3A/VC_redist.x86.exe + out=vcredist_v14_nt52_x86.exe + +https://download.visualstudio.microsoft.com/download/pr/566435ac-4e1c-434b-b93f-aecc71e8cffc/B75590149FA14B37997C35724BC93776F67E08BFF9BD5A69FACBF41B3846D084/VC_redist.x64.exe + out=vcredist_v14_nt52_x64.exe + +https://download.visualstudio.microsoft.com/download/pr/ed95ef9e-da02-4735-9064-bd1f7f69b6ed/CF92A10C62FFAB83B4A2168F5F9A05E5588023890B5C0CC7BA89ED71DA527B0F/VC_redist.x86.exe + out=vcredist_v14_nt60_x86.exe + +https://download.visualstudio.microsoft.com/download/pr/ed95ef9e-da02-4735-9064-bd1f7f69b6ed/CE6593A1520591E7DEA2B93FD03116E3FC3B3821A0525322B0A430FAA6B3C0B4/VC_redist.x64.exe + out=vcredist_v14_nt60_x64.exe + +https://aka.ms/vs/17/release/vc_redist.x86.exe + out=vcredist_v14_nt63_x86.exe + +https://aka.ms/vs/17/release/vc_redist.x64.exe + out=vcredist_v14_nt63_x64.exe + +https://aka.ms/vc14/vc_redist.x86.exe + out=vcredist_v14_latest_x86.exe + +https://aka.ms/vc14/vc_redist.x64.exe + out=vcredist_v14_latest_x64.exe +EOF + +mkdir msvc_offline +aria2c --dir=msvc_offline --allow-overwrite=true --retry-wait=5 --max-connection-per-server=8 --split=8 --min-split-size=1M -i downloadLink.txt + +pushd msvc_offline +makensis install_AllOS.nsi +makensis install_AtLeastWin7.nsi +makensis install_AtLeastWin10.nsi +rm vcredist*.exe +installerFileName=$(ls *.exe) +mv *.exe ../ +popd + +rm -rf msvc_offline + +echo -e "All installer files are generated at current directory. " \ No newline at end of file diff --git a/install_AllOS.nsi b/install_AllOS.nsi index fba2b8b..298ac60 100644 --- a/install_AllOS.nsi +++ b/install_AllOS.nsi @@ -2,17 +2,16 @@ !include "LogicLib.nsh" !include "WinVer.nsh" !include "x64.nsh" -!include "MUI2.nsh" + +LoadLanguageFile "${NSISDIR}\Contrib\Language files\English.nlf" +LoadLanguageFile "${NSISDIR}\Contrib\Language files\Japanese.nlf" +LoadLanguageFile "${NSISDIR}\Contrib\Language files\TradChinese.nlf" +LoadLanguageFile "${NSISDIR}\Contrib\Language files\SimpChinese.nlf" Unicode true SetCompressor /solid /final lzma RequestExecutionLevel admin -!insertmacro MUI_LANGUAGE "English" -!insertmacro MUI_LANGUAGE "SimpChinese" -!insertmacro MUI_LANGUAGE "TradChinese" -!insertmacro MUI_LANGUAGE "Japanese" - !define /date BUILD_YEAR "%Y" !define /date BUILD_MONTH "%m" !define /date BUILD_DAY "%d" diff --git a/install_AtLeastWin10.nsi b/install_AtLeastWin10.nsi index 801f856..9611eeb 100644 --- a/install_AtLeastWin10.nsi +++ b/install_AtLeastWin10.nsi @@ -2,17 +2,16 @@ !include "LogicLib.nsh" !include "WinVer.nsh" !include "x64.nsh" -!include "MUI2.nsh" + +LoadLanguageFile "${NSISDIR}\Contrib\Language files\English.nlf" +LoadLanguageFile "${NSISDIR}\Contrib\Language files\Japanese.nlf" +LoadLanguageFile "${NSISDIR}\Contrib\Language files\TradChinese.nlf" +LoadLanguageFile "${NSISDIR}\Contrib\Language files\SimpChinese.nlf" Unicode true SetCompressor /solid /final lzma RequestExecutionLevel admin -!insertmacro MUI_LANGUAGE "English" -!insertmacro MUI_LANGUAGE "SimpChinese" -!insertmacro MUI_LANGUAGE "TradChinese" -!insertmacro MUI_LANGUAGE "Japanese" - !define /date BUILD_YEAR "%Y" !define /date BUILD_MONTH "%m" !define /date BUILD_DAY "%d" diff --git a/install_AtLeastWin7.nsi b/install_AtLeastWin7.nsi index a322196..8937afe 100644 --- a/install_AtLeastWin7.nsi +++ b/install_AtLeastWin7.nsi @@ -2,17 +2,16 @@ !include "LogicLib.nsh" !include "WinVer.nsh" !include "x64.nsh" -!include "MUI2.nsh" + +LoadLanguageFile "${NSISDIR}\Contrib\Language files\English.nlf" +LoadLanguageFile "${NSISDIR}\Contrib\Language files\Japanese.nlf" +LoadLanguageFile "${NSISDIR}\Contrib\Language files\TradChinese.nlf" +LoadLanguageFile "${NSISDIR}\Contrib\Language files\SimpChinese.nlf" Unicode true SetCompressor /solid /final lzma RequestExecutionLevel admin -!insertmacro MUI_LANGUAGE "English" -!insertmacro MUI_LANGUAGE "SimpChinese" -!insertmacro MUI_LANGUAGE "TradChinese" -!insertmacro MUI_LANGUAGE "Japanese" - !define /date BUILD_YEAR "%Y" !define /date BUILD_MONTH "%m" !define /date BUILD_DAY "%d" From 141f58487dcd7b144a6b5fa814e74ce84c6ce7ae Mon Sep 17 00:00:00 2001 From: Calyx Hikari Date: Fri, 28 Nov 2025 23:19:52 +0800 Subject: [PATCH 06/10] Update generate_all_github.sh --- generate_all_github.sh | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/generate_all_github.sh b/generate_all_github.sh index 9b69d19..fb89576 100644 --- a/generate_all_github.sh +++ b/generate_all_github.sh @@ -64,9 +64,9 @@ mkdir msvc_offline aria2c --dir=msvc_offline --allow-overwrite=true --retry-wait=5 --max-connection-per-server=8 --split=8 --min-split-size=1M -i downloadLink.txt pushd msvc_offline -makensis install_AllOS.nsi -makensis install_AtLeastWin7.nsi -makensis install_AtLeastWin10.nsi +makensis ../install_AllOS.nsi +makensis ../install_AtLeastWin7.nsi +makensis ../install_AtLeastWin10.nsi rm vcredist*.exe installerFileName=$(ls *.exe) mv *.exe ../ From bab519b639a1bcd41c7c18984ff059f8c547ac3d Mon Sep 17 00:00:00 2001 From: Calyx Hikari Date: Fri, 28 Nov 2025 23:21:39 +0800 Subject: [PATCH 07/10] Remove unusable commands --- install_AllOS.nsi | 3 --- install_AtLeastWin10.nsi | 3 --- install_AtLeastWin7.nsi | 3 --- 3 files changed, 9 deletions(-) diff --git a/install_AllOS.nsi b/install_AllOS.nsi index 298ac60..9f69735 100644 --- a/install_AllOS.nsi +++ b/install_AllOS.nsi @@ -54,9 +54,6 @@ VIAddVersionKey /LANG=0x0411 "FileDescription" "MSVC 再頒布可能ランタイ VIAddVersionKey /LANG=0x0411 "FileVersion" "${BUILD_YEAR}.${BUILD_MONTH}.${BUILD_DAY}.0" VIAddVersionKey /LANG=0x0411 "LegalCopyright" "msvc.win Project" -!insertmacro MUI_RESERVEFILE_LANGDLL -!define MUI_LANGDLL_ALWAYSSHOW 0 - Function .onInit ${IfNot} ${AtLeastWinXP} MessageBox MB_ICONSTOP "$(OSVersionMessage)" diff --git a/install_AtLeastWin10.nsi b/install_AtLeastWin10.nsi index 9611eeb..ae8539c 100644 --- a/install_AtLeastWin10.nsi +++ b/install_AtLeastWin10.nsi @@ -54,9 +54,6 @@ VIAddVersionKey /LANG=0x0411 "FileDescription" "MSVC 再頒布可能ランタイ VIAddVersionKey /LANG=0x0411 "FileVersion" "${BUILD_YEAR}.${BUILD_MONTH}.${BUILD_DAY}.0" VIAddVersionKey /LANG=0x0411 "LegalCopyright" "msvc.win Project" -!insertmacro MUI_RESERVEFILE_LANGDLL -!define MUI_LANGDLL_ALWAYSSHOW 0 - Function .onInit ${IfNot} ${AtLeastWin10} MessageBox MB_ICONSTOP "$(OSVersionMessage)" diff --git a/install_AtLeastWin7.nsi b/install_AtLeastWin7.nsi index 8937afe..b638f75 100644 --- a/install_AtLeastWin7.nsi +++ b/install_AtLeastWin7.nsi @@ -54,9 +54,6 @@ VIAddVersionKey /LANG=0x0411 "FileDescription" "MSVC 再頒布可能ランタイ VIAddVersionKey /LANG=0x0411 "FileVersion" "${BUILD_YEAR}.${BUILD_MONTH}.${BUILD_DAY}.0" VIAddVersionKey /LANG=0x0411 "LegalCopyright" "msvc.win Project" -!insertmacro MUI_RESERVEFILE_LANGDLL -!define MUI_LANGDLL_ALWAYSSHOW 0 - Function .onInit ${IfNot} ${AtLeastWin7} MessageBox MB_ICONSTOP "$(OSVersionMessage)" From fd37944ea1268773e57c0d9a3a42b59ab7784504 Mon Sep 17 00:00:00 2001 From: Calyx Hikari Date: Fri, 28 Nov 2025 23:23:07 +0800 Subject: [PATCH 08/10] Copy NSI scripts to current dir --- generate_all_github.sh | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/generate_all_github.sh b/generate_all_github.sh index fb89576..bf89d7e 100644 --- a/generate_all_github.sh +++ b/generate_all_github.sh @@ -64,9 +64,10 @@ mkdir msvc_offline aria2c --dir=msvc_offline --allow-overwrite=true --retry-wait=5 --max-connection-per-server=8 --split=8 --min-split-size=1M -i downloadLink.txt pushd msvc_offline -makensis ../install_AllOS.nsi -makensis ../install_AtLeastWin7.nsi -makensis ../install_AtLeastWin10.nsi +cp ../*.nsi ./ +makensis install_AllOS.nsi +makensis install_AtLeastWin7.nsi +makensis install_AtLeastWin10.nsi rm vcredist*.exe installerFileName=$(ls *.exe) mv *.exe ../ From 563eef0546cdf8a129b4383630ab9ad320980463 Mon Sep 17 00:00:00 2001 From: Calyx Hikari Date: Fri, 28 Nov 2025 23:23:58 +0800 Subject: [PATCH 09/10] Update generate_all_github.sh --- generate_all_github.sh | 1 + 1 file changed, 1 insertion(+) diff --git a/generate_all_github.sh b/generate_all_github.sh index bf89d7e..261b979 100644 --- a/generate_all_github.sh +++ b/generate_all_github.sh @@ -64,6 +64,7 @@ mkdir msvc_offline aria2c --dir=msvc_offline --allow-overwrite=true --retry-wait=5 --max-connection-per-server=8 --split=8 --min-split-size=1M -i downloadLink.txt pushd msvc_offline +cp ../favicon.ico ./ cp ../*.nsi ./ makensis install_AllOS.nsi makensis install_AtLeastWin7.nsi From abb1cd3919d2d8918a3224faa1666bcfb04076ec Mon Sep 17 00:00:00 2001 From: Calyx Hikari Date: Sun, 14 Dec 2025 13:26:16 +0800 Subject: [PATCH 10/10] Fix corrupted VC2013 URL --- $OEM$.zip | Bin 5558 -> 5622 bytes 32 | 2 +- 64 | 4 ++-- generate.sh | 4 ++-- generate_all.sh | 4 ++-- generate_all_github.sh | 4 ++-- index.html | 4 ++-- 7 files changed, 11 insertions(+), 11 deletions(-) diff --git a/$OEM$.zip b/$OEM$.zip index b862c2d1a4e7bc71187babaa3b603bc4a605c614..cda062e386f311e6a64987ce301a1a71b96694d9 100644 GIT binary patch delta 4439 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 delta 4367 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