You can subscribe to this list here.
2006 |
Jan
|
Feb
|
Mar
(1) |
Apr
(1) |
May
|
Jun
(1) |
Jul
|
Aug
(10) |
Sep
|
Oct
|
Nov
|
Dec
(3) |
---|---|---|---|---|---|---|---|---|---|---|---|---|
2007 |
Jan
(1) |
Feb
(2) |
Mar
(3) |
Apr
(2) |
May
(10) |
Jun
(2) |
Jul
(1) |
Aug
|
Sep
|
Oct
|
Nov
(3) |
Dec
|
2008 |
Jan
(6) |
Feb
(4) |
Mar
(5) |
Apr
(2) |
May
(1) |
Jun
(1) |
Jul
(4) |
Aug
(6) |
Sep
(2) |
Oct
(9) |
Nov
(1) |
Dec
(4) |
2009 |
Jan
(9) |
Feb
(2) |
Mar
(2) |
Apr
(2) |
May
(6) |
Jun
(18) |
Jul
(33) |
Aug
(39) |
Sep
(33) |
Oct
(24) |
Nov
(23) |
Dec
(22) |
2010 |
Jan
(29) |
Feb
(32) |
Mar
(51) |
Apr
(17) |
May
(31) |
Jun
(21) |
Jul
(32) |
Aug
(28) |
Sep
(35) |
Oct
(27) |
Nov
(11) |
Dec
(13) |
2011 |
Jan
(14) |
Feb
(13) |
Mar
(27) |
Apr
(27) |
May
(28) |
Jun
(20) |
Jul
(43) |
Aug
(52) |
Sep
(66) |
Oct
(61) |
Nov
(11) |
Dec
(8) |
2012 |
Jan
(20) |
Feb
(30) |
Mar
(38) |
Apr
(21) |
May
(33) |
Jun
(21) |
Jul
(25) |
Aug
(9) |
Sep
(24) |
Oct
(42) |
Nov
(27) |
Dec
(41) |
2013 |
Jan
(20) |
Feb
(35) |
Mar
(156) |
Apr
(298) |
May
(258) |
Jun
(201) |
Jul
(105) |
Aug
(60) |
Sep
(193) |
Oct
(245) |
Nov
(280) |
Dec
(194) |
2014 |
Jan
(63) |
Feb
(202) |
Mar
(200) |
Apr
(23) |
May
(53) |
Jun
(105) |
Jul
(18) |
Aug
(26) |
Sep
(110) |
Oct
(187) |
Nov
(97) |
Dec
(74) |
2015 |
Jan
(45) |
Feb
(55) |
Mar
(116) |
Apr
(116) |
May
(193) |
Jun
(164) |
Jul
(50) |
Aug
(111) |
Sep
(98) |
Oct
(71) |
Nov
(103) |
Dec
(63) |
2016 |
Jan
(33) |
Feb
(101) |
Mar
(182) |
Apr
(139) |
May
(140) |
Jun
(103) |
Jul
(165) |
Aug
(286) |
Sep
(208) |
Oct
(127) |
Nov
(97) |
Dec
(54) |
2017 |
Jan
(64) |
Feb
(335) |
Mar
(202) |
Apr
(212) |
May
(139) |
Jun
(127) |
Jul
(294) |
Aug
(154) |
Sep
(170) |
Oct
(152) |
Nov
(156) |
Dec
(62) |
2018 |
Jan
(168) |
Feb
(237) |
Mar
(196) |
Apr
(174) |
May
(174) |
Jun
(161) |
Jul
(127) |
Aug
(88) |
Sep
(149) |
Oct
(66) |
Nov
(52) |
Dec
(135) |
2019 |
Jan
(146) |
Feb
(126) |
Mar
(104) |
Apr
(58) |
May
(60) |
Jun
(28) |
Jul
(197) |
Aug
(129) |
Sep
(141) |
Oct
(148) |
Nov
(63) |
Dec
(100) |
2020 |
Jan
(74) |
Feb
(37) |
Mar
(59) |
Apr
(154) |
May
(194) |
Jun
(133) |
Jul
(313) |
Aug
(197) |
Sep
(49) |
Oct
(162) |
Nov
(143) |
Dec
(57) |
2021 |
Jan
(120) |
Feb
(107) |
Mar
(314) |
Apr
(157) |
May
(524) |
Jun
(169) |
Jul
(72) |
Aug
(133) |
Sep
(135) |
Oct
(146) |
Nov
(198) |
Dec
(325) |
2022 |
Jan
(409) |
Feb
(249) |
Mar
(138) |
Apr
(95) |
May
(102) |
Jun
(221) |
Jul
(66) |
Aug
(120) |
Sep
(192) |
Oct
(131) |
Nov
(53) |
Dec
(171) |
2023 |
Jan
(357) |
Feb
(82) |
Mar
(168) |
Apr
(218) |
May
(196) |
Jun
(86) |
Jul
(115) |
Aug
(49) |
Sep
(190) |
Oct
(102) |
Nov
(45) |
Dec
(76) |
2024 |
Jan
(86) |
Feb
(50) |
Mar
(324) |
Apr
(209) |
May
(197) |
Jun
(232) |
Jul
(194) |
Aug
(247) |
Sep
(219) |
Oct
(266) |
Nov
(328) |
Dec
(304) |
2025 |
Jan
(191) |
Feb
(115) |
Mar
(137) |
Apr
(32) |
May
(126) |
Jun
(403) |
Jul
(181) |
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
From: <sv...@op...> - 2024-12-08 10:29:06
|
Author: manx Date: Sun Dec 8 11:29:00 2024 New Revision: 22483 URL: https://source.openmpt.org/browse/openmpt/?op=revision&rev=22483 Log: [Fix] build: CI: GitHub: macOS: Try to work-around Homebrew python breakage on macOS 13. See r22481. Modified: branches/OpenMPT-1.30/.github/workflows/macOS-13-Makefile.yml Modified: branches/OpenMPT-1.30/.github/workflows/macOS-13-Makefile.yml ============================================================================== --- branches/OpenMPT-1.30/.github/workflows/macOS-13-Makefile.yml Sun Dec 8 11:28:04 2024 (r22482) +++ branches/OpenMPT-1.30/.github/workflows/macOS-13-Makefile.yml Sun Dec 8 11:29:00 2024 (r22483) @@ -18,7 +18,7 @@ - name: update Homebrew run: brew update - name: fixup GitHub Homebrew python breakage - run: brew unlink python@3.12 && brew link --overwrite python@3.12 + run: brew unlink python@3.12 && brew unlink python@3.13 && brew link --overwrite python@3.12 && brew link --overwrite python@3.13 - name: upgrade packages run: brew upgrade - name: install dependencies |
From: <sv...@op...> - 2024-12-08 10:28:16
|
Author: manx Date: Sun Dec 8 11:28:04 2024 New Revision: 22482 URL: https://source.openmpt.org/browse/openmpt/?op=revision&rev=22482 Log: Merged revision(s) 22481 from trunk/OpenMPT: [Fix] build: CI: GitHub: macOS: Try to work-around Homebrew python breakage on macOS 13. ........ Modified: branches/OpenMPT-1.31/ (props changed) branches/OpenMPT-1.31/.github/workflows/macOS-Autotools.yml branches/OpenMPT-1.31/.github/workflows/macOS-Makefile.yml Modified: branches/OpenMPT-1.31/.github/workflows/macOS-Autotools.yml ============================================================================== --- branches/OpenMPT-1.31/.github/workflows/macOS-Autotools.yml Sun Dec 8 11:27:41 2024 (r22481) +++ branches/OpenMPT-1.31/.github/workflows/macOS-Autotools.yml Sun Dec 8 11:28:04 2024 (r22482) @@ -28,7 +28,7 @@ run: brew update - name: fixup GitHub Homebrew python breakage if: ${{ matrix.host == 'macos-13' }} - run: brew unlink python@3.12 && brew link --overwrite python@3.12 + run: brew unlink python@3.12 && brew unlink python@3.13 && brew link --overwrite python@3.12 && brew link --overwrite python@3.13 - name: upgrade packages run: brew upgrade - name: install dependencies Modified: branches/OpenMPT-1.31/.github/workflows/macOS-Makefile.yml ============================================================================== --- branches/OpenMPT-1.31/.github/workflows/macOS-Makefile.yml Sun Dec 8 11:27:41 2024 (r22481) +++ branches/OpenMPT-1.31/.github/workflows/macOS-Makefile.yml Sun Dec 8 11:28:04 2024 (r22482) @@ -103,7 +103,7 @@ run: brew update - name: fixup GitHub Homebrew python breakage if: ${{ matrix.host == 'macos-13' }} - run: brew unlink python@3.12 && brew link --overwrite python@3.12 + run: brew unlink python@3.12 && brew unlink python@3.13 && brew link --overwrite python@3.12 && brew link --overwrite python@3.13 - name: upgrade packages run: brew upgrade - name: install dependencies |
From: <sv...@op...> - 2024-12-08 10:27:53
|
Author: manx Date: Sun Dec 8 11:27:41 2024 New Revision: 22481 URL: https://source.openmpt.org/browse/openmpt/?op=revision&rev=22481 Log: [Fix] build: CI: GitHub: macOS: Try to work-around Homebrew python breakage on macOS 13. Modified: trunk/OpenMPT/.github/workflows/macOS-Autotools.yml trunk/OpenMPT/.github/workflows/macOS-Makefile.yml Modified: trunk/OpenMPT/.github/workflows/macOS-Autotools.yml ============================================================================== --- trunk/OpenMPT/.github/workflows/macOS-Autotools.yml Sun Dec 8 10:33:02 2024 (r22480) +++ trunk/OpenMPT/.github/workflows/macOS-Autotools.yml Sun Dec 8 11:27:41 2024 (r22481) @@ -30,7 +30,7 @@ run: brew update - name: fixup GitHub Homebrew python breakage if: ${{ matrix.host == 'macos-13' }} - run: brew unlink python@3.12 && brew link --overwrite python@3.12 + run: brew unlink python@3.12 && brew unlink python@3.13 && brew link --overwrite python@3.12 && brew link --overwrite python@3.13 - name: upgrade packages run: brew upgrade - name: install dependencies Modified: trunk/OpenMPT/.github/workflows/macOS-Makefile.yml ============================================================================== --- trunk/OpenMPT/.github/workflows/macOS-Makefile.yml Sun Dec 8 10:33:02 2024 (r22480) +++ trunk/OpenMPT/.github/workflows/macOS-Makefile.yml Sun Dec 8 11:27:41 2024 (r22481) @@ -105,7 +105,7 @@ run: brew update - name: fixup GitHub Homebrew python breakage if: ${{ matrix.host == 'macos-13' }} - run: brew unlink python@3.12 && brew link --overwrite python@3.12 + run: brew unlink python@3.12 && brew unlink python@3.13 && brew link --overwrite python@3.12 && brew link --overwrite python@3.13 - name: upgrade packages run: brew upgrade - name: install dependencies |
From: <sv...@op...> - 2024-12-08 09:33:14
|
Author: manx Date: Sun Dec 8 10:33:02 2024 New Revision: 22480 URL: https://source.openmpt.org/browse/openmpt/?op=revision&rev=22480 Log: [Ref] UnRAR: Silence Clang warning. Modified: trunk/OpenMPT/include/unrar/OpenMPT.txt trunk/OpenMPT/include/unrar/largepage.hpp Modified: trunk/OpenMPT/include/unrar/OpenMPT.txt ============================================================================== --- trunk/OpenMPT/include/unrar/OpenMPT.txt Sat Dec 7 19:55:03 2024 (r22479) +++ trunk/OpenMPT/include/unrar/OpenMPT.txt Sun Dec 8 10:33:02 2024 (r22480) @@ -10,9 +10,9 @@ never be used in OpenMPT's context. The following files have been modified: -extract.cpp, filcreat.cpp, file.cpp, filefn.cpp, find.cpp, match.cpp, -os.hpp, pathfn.cpp, rardefs.hpp, rdwrfn.cpp, secpassword.cpp, volume.cpp, -win32acl.cpp, win32lnk.cpp +extract.cpp, filcreat.cpp, file.cpp, filefn.cpp, find.cpp, largepage.hpp, +match.cpp, os.hpp, pathfn.cpp, rardefs.hpp, rdwrfn.cpp, secpassword.cpp, +volume.cpp, win32acl.cpp, win32lnk.cpp For building, premake is used to generate Visual Studio project files. See ../build/premake/ for details. Modified: trunk/OpenMPT/include/unrar/largepage.hpp ============================================================================== --- trunk/OpenMPT/include/unrar/largepage.hpp Sat Dec 7 19:55:03 2024 (r22479) +++ trunk/OpenMPT/include/unrar/largepage.hpp Sun Dec 8 10:33:02 2024 (r22480) @@ -10,6 +10,7 @@ bool delete_large(void *Addr); #ifdef _WIN_ALL std::vector<void*> LargeAlloc; + [[maybe_unused]] // OPENMPT ADDITION SIZE_T PageSize; #endif bool UseLargePages; |
From: <sv...@op...> - 2024-12-07 18:55:18
|
Author: sagamusix Date: Sat Dec 7 19:55:03 2024 New Revision: 22479 URL: https://source.openmpt.org/browse/openmpt/?op=revision&rev=22479 Log: [Var] Update to unrar 7.1.2. Added: trunk/OpenMPT/include/unrar/largepage.cpp (contents, props changed) trunk/OpenMPT/include/unrar/largepage.hpp (contents, props changed) trunk/OpenMPT/include/unrar/motw.cpp (contents, props changed) trunk/OpenMPT/include/unrar/motw.hpp (contents, props changed) Modified: trunk/OpenMPT/build/premake/ext-UnRAR.lua trunk/OpenMPT/build/vs2017winxp/ext/UnRAR.vcxproj trunk/OpenMPT/build/vs2017winxpansi/ext/UnRAR.vcxproj trunk/OpenMPT/build/vs2019win7/ext/UnRAR.vcxproj trunk/OpenMPT/build/vs2022win10/ext/UnRAR.vcxproj trunk/OpenMPT/build/vs2022win10clang/ext/UnRAR.vcxproj trunk/OpenMPT/build/vs2022win7/ext/UnRAR.vcxproj trunk/OpenMPT/build/vs2022win8/ext/UnRAR.vcxproj trunk/OpenMPT/build/vs2022win81/ext/UnRAR.vcxproj trunk/OpenMPT/include/unrar/OpenMPT.txt trunk/OpenMPT/include/unrar/arccmt.cpp trunk/OpenMPT/include/unrar/archive.cpp trunk/OpenMPT/include/unrar/archive.hpp trunk/OpenMPT/include/unrar/arcread.cpp trunk/OpenMPT/include/unrar/blake2s.hpp trunk/OpenMPT/include/unrar/cmddata.cpp trunk/OpenMPT/include/unrar/cmddata.hpp trunk/OpenMPT/include/unrar/cmdmix.cpp trunk/OpenMPT/include/unrar/consio.cpp trunk/OpenMPT/include/unrar/consio.hpp trunk/OpenMPT/include/unrar/crypt.hpp trunk/OpenMPT/include/unrar/dll.cpp trunk/OpenMPT/include/unrar/dll.hpp trunk/OpenMPT/include/unrar/errhnd.hpp trunk/OpenMPT/include/unrar/extinfo.hpp trunk/OpenMPT/include/unrar/extract.cpp trunk/OpenMPT/include/unrar/extract.hpp trunk/OpenMPT/include/unrar/filefn.cpp trunk/OpenMPT/include/unrar/filefn.hpp trunk/OpenMPT/include/unrar/hash.cpp trunk/OpenMPT/include/unrar/hash.hpp trunk/OpenMPT/include/unrar/list.cpp trunk/OpenMPT/include/unrar/loclang.hpp trunk/OpenMPT/include/unrar/options.hpp trunk/OpenMPT/include/unrar/os.hpp trunk/OpenMPT/include/unrar/rar.hpp trunk/OpenMPT/include/unrar/rardefs.hpp trunk/OpenMPT/include/unrar/smallfn.cpp trunk/OpenMPT/include/unrar/smallfn.hpp trunk/OpenMPT/include/unrar/system.cpp trunk/OpenMPT/include/unrar/system.hpp trunk/OpenMPT/include/unrar/timefn.hpp trunk/OpenMPT/include/unrar/ui.hpp trunk/OpenMPT/include/unrar/uiconsole.cpp trunk/OpenMPT/include/unrar/unicode.cpp trunk/OpenMPT/include/unrar/unpack.cpp trunk/OpenMPT/include/unrar/unpack.hpp trunk/OpenMPT/include/unrar/version.hpp trunk/OpenMPT/include/unrar/volume.cpp trunk/OpenMPT/include/unrar/win32acl.cpp trunk/OpenMPT/include/unrar/win32stm.cpp Modified: trunk/OpenMPT/build/premake/ext-UnRAR.lua ============================================================================== --- trunk/OpenMPT/build/premake/ext-UnRAR.lua Fri Dec 6 19:07:14 2024 (r22478) +++ trunk/OpenMPT/build/premake/ext-UnRAR.lua Sat Dec 7 19:55:03 2024 (r22479) @@ -38,6 +38,7 @@ "../../include/unrar/hash.cpp", "../../include/unrar/headers.cpp", "../../include/unrar/isnt.cpp", + "../../include/unrar/largepage.cpp", "../../include/unrar/list.cpp", "../../include/unrar/match.cpp", "../../include/unrar/options.cpp", @@ -91,6 +92,7 @@ "../../include/unrar/headers.hpp", "../../include/unrar/headers5.hpp", "../../include/unrar/isnt.hpp", + "../../include/unrar/largepage.hpp", "../../include/unrar/list.hpp", "../../include/unrar/loclang.hpp", "../../include/unrar/log.hpp", Modified: trunk/OpenMPT/build/vs2017winxp/ext/UnRAR.vcxproj ============================================================================== --- trunk/OpenMPT/build/vs2017winxp/ext/UnRAR.vcxproj Fri Dec 6 19:07:14 2024 (r22478) +++ trunk/OpenMPT/build/vs2017winxp/ext/UnRAR.vcxproj Sat Dec 7 19:55:03 2024 (r22479) @@ -614,6 +614,7 @@ <ClInclude Include="..\..\..\include\unrar\headers.hpp" /> <ClInclude Include="..\..\..\include\unrar\headers5.hpp" /> <ClInclude Include="..\..\..\include\unrar\isnt.hpp" /> + <ClInclude Include="..\..\..\include\unrar\largepage.hpp" /> <ClInclude Include="..\..\..\include\unrar\list.hpp" /> <ClInclude Include="..\..\..\include\unrar\loclang.hpp" /> <ClInclude Include="..\..\..\include\unrar\log.hpp" /> @@ -677,6 +678,7 @@ <ClCompile Include="..\..\..\include\unrar\hash.cpp" /> <ClCompile Include="..\..\..\include\unrar\headers.cpp" /> <ClCompile Include="..\..\..\include\unrar\isnt.cpp" /> + <ClCompile Include="..\..\..\include\unrar\largepage.cpp" /> <ClCompile Include="..\..\..\include\unrar\list.cpp" /> <ClCompile Include="..\..\..\include\unrar\match.cpp" /> <ClCompile Include="..\..\..\include\unrar\options.cpp" /> Modified: trunk/OpenMPT/build/vs2017winxpansi/ext/UnRAR.vcxproj ============================================================================== --- trunk/OpenMPT/build/vs2017winxpansi/ext/UnRAR.vcxproj Fri Dec 6 19:07:14 2024 (r22478) +++ trunk/OpenMPT/build/vs2017winxpansi/ext/UnRAR.vcxproj Sat Dec 7 19:55:03 2024 (r22479) @@ -614,6 +614,7 @@ <ClInclude Include="..\..\..\include\unrar\headers.hpp" /> <ClInclude Include="..\..\..\include\unrar\headers5.hpp" /> <ClInclude Include="..\..\..\include\unrar\isnt.hpp" /> + <ClInclude Include="..\..\..\include\unrar\largepage.hpp" /> <ClInclude Include="..\..\..\include\unrar\list.hpp" /> <ClInclude Include="..\..\..\include\unrar\loclang.hpp" /> <ClInclude Include="..\..\..\include\unrar\log.hpp" /> @@ -677,6 +678,7 @@ <ClCompile Include="..\..\..\include\unrar\hash.cpp" /> <ClCompile Include="..\..\..\include\unrar\headers.cpp" /> <ClCompile Include="..\..\..\include\unrar\isnt.cpp" /> + <ClCompile Include="..\..\..\include\unrar\largepage.cpp" /> <ClCompile Include="..\..\..\include\unrar\list.cpp" /> <ClCompile Include="..\..\..\include\unrar\match.cpp" /> <ClCompile Include="..\..\..\include\unrar\options.cpp" /> Modified: trunk/OpenMPT/build/vs2019win7/ext/UnRAR.vcxproj ============================================================================== --- trunk/OpenMPT/build/vs2019win7/ext/UnRAR.vcxproj Fri Dec 6 19:07:14 2024 (r22478) +++ trunk/OpenMPT/build/vs2019win7/ext/UnRAR.vcxproj Sat Dec 7 19:55:03 2024 (r22479) @@ -623,6 +623,7 @@ <ClInclude Include="..\..\..\include\unrar\headers.hpp" /> <ClInclude Include="..\..\..\include\unrar\headers5.hpp" /> <ClInclude Include="..\..\..\include\unrar\isnt.hpp" /> + <ClInclude Include="..\..\..\include\unrar\largepage.hpp" /> <ClInclude Include="..\..\..\include\unrar\list.hpp" /> <ClInclude Include="..\..\..\include\unrar\loclang.hpp" /> <ClInclude Include="..\..\..\include\unrar\log.hpp" /> @@ -686,6 +687,7 @@ <ClCompile Include="..\..\..\include\unrar\hash.cpp" /> <ClCompile Include="..\..\..\include\unrar\headers.cpp" /> <ClCompile Include="..\..\..\include\unrar\isnt.cpp" /> + <ClCompile Include="..\..\..\include\unrar\largepage.cpp" /> <ClCompile Include="..\..\..\include\unrar\list.cpp" /> <ClCompile Include="..\..\..\include\unrar\match.cpp" /> <ClCompile Include="..\..\..\include\unrar\options.cpp" /> Modified: trunk/OpenMPT/build/vs2022win10/ext/UnRAR.vcxproj ============================================================================== --- trunk/OpenMPT/build/vs2022win10/ext/UnRAR.vcxproj Fri Dec 6 19:07:14 2024 (r22478) +++ trunk/OpenMPT/build/vs2022win10/ext/UnRAR.vcxproj Sat Dec 7 19:55:03 2024 (r22479) @@ -1553,6 +1553,7 @@ <ClInclude Include="..\..\..\include\unrar\headers.hpp" /> <ClInclude Include="..\..\..\include\unrar\headers5.hpp" /> <ClInclude Include="..\..\..\include\unrar\isnt.hpp" /> + <ClInclude Include="..\..\..\include\unrar\largepage.hpp" /> <ClInclude Include="..\..\..\include\unrar\list.hpp" /> <ClInclude Include="..\..\..\include\unrar\loclang.hpp" /> <ClInclude Include="..\..\..\include\unrar\log.hpp" /> @@ -1616,6 +1617,7 @@ <ClCompile Include="..\..\..\include\unrar\hash.cpp" /> <ClCompile Include="..\..\..\include\unrar\headers.cpp" /> <ClCompile Include="..\..\..\include\unrar\isnt.cpp" /> + <ClCompile Include="..\..\..\include\unrar\largepage.cpp" /> <ClCompile Include="..\..\..\include\unrar\list.cpp" /> <ClCompile Include="..\..\..\include\unrar\match.cpp" /> <ClCompile Include="..\..\..\include\unrar\options.cpp" /> Modified: trunk/OpenMPT/build/vs2022win10clang/ext/UnRAR.vcxproj ============================================================================== --- trunk/OpenMPT/build/vs2022win10clang/ext/UnRAR.vcxproj Fri Dec 6 19:07:14 2024 (r22478) +++ trunk/OpenMPT/build/vs2022win10clang/ext/UnRAR.vcxproj Sat Dec 7 19:55:03 2024 (r22479) @@ -1187,6 +1187,7 @@ <ClInclude Include="..\..\..\include\unrar\headers.hpp" /> <ClInclude Include="..\..\..\include\unrar\headers5.hpp" /> <ClInclude Include="..\..\..\include\unrar\isnt.hpp" /> + <ClInclude Include="..\..\..\include\unrar\largepage.hpp" /> <ClInclude Include="..\..\..\include\unrar\list.hpp" /> <ClInclude Include="..\..\..\include\unrar\loclang.hpp" /> <ClInclude Include="..\..\..\include\unrar\log.hpp" /> @@ -1250,6 +1251,7 @@ <ClCompile Include="..\..\..\include\unrar\hash.cpp" /> <ClCompile Include="..\..\..\include\unrar\headers.cpp" /> <ClCompile Include="..\..\..\include\unrar\isnt.cpp" /> + <ClCompile Include="..\..\..\include\unrar\largepage.cpp" /> <ClCompile Include="..\..\..\include\unrar\list.cpp" /> <ClCompile Include="..\..\..\include\unrar\match.cpp" /> <ClCompile Include="..\..\..\include\unrar\options.cpp" /> Modified: trunk/OpenMPT/build/vs2022win7/ext/UnRAR.vcxproj ============================================================================== --- trunk/OpenMPT/build/vs2022win7/ext/UnRAR.vcxproj Fri Dec 6 19:07:14 2024 (r22478) +++ trunk/OpenMPT/build/vs2022win7/ext/UnRAR.vcxproj Sat Dec 7 19:55:03 2024 (r22479) @@ -635,6 +635,7 @@ <ClInclude Include="..\..\..\include\unrar\headers.hpp" /> <ClInclude Include="..\..\..\include\unrar\headers5.hpp" /> <ClInclude Include="..\..\..\include\unrar\isnt.hpp" /> + <ClInclude Include="..\..\..\include\unrar\largepage.hpp" /> <ClInclude Include="..\..\..\include\unrar\list.hpp" /> <ClInclude Include="..\..\..\include\unrar\loclang.hpp" /> <ClInclude Include="..\..\..\include\unrar\log.hpp" /> @@ -698,6 +699,7 @@ <ClCompile Include="..\..\..\include\unrar\hash.cpp" /> <ClCompile Include="..\..\..\include\unrar\headers.cpp" /> <ClCompile Include="..\..\..\include\unrar\isnt.cpp" /> + <ClCompile Include="..\..\..\include\unrar\largepage.cpp" /> <ClCompile Include="..\..\..\include\unrar\list.cpp" /> <ClCompile Include="..\..\..\include\unrar\match.cpp" /> <ClCompile Include="..\..\..\include\unrar\options.cpp" /> Modified: trunk/OpenMPT/build/vs2022win8/ext/UnRAR.vcxproj ============================================================================== --- trunk/OpenMPT/build/vs2022win8/ext/UnRAR.vcxproj Fri Dec 6 19:07:14 2024 (r22478) +++ trunk/OpenMPT/build/vs2022win8/ext/UnRAR.vcxproj Sat Dec 7 19:55:03 2024 (r22479) @@ -935,6 +935,7 @@ <ClInclude Include="..\..\..\include\unrar\headers.hpp" /> <ClInclude Include="..\..\..\include\unrar\headers5.hpp" /> <ClInclude Include="..\..\..\include\unrar\isnt.hpp" /> + <ClInclude Include="..\..\..\include\unrar\largepage.hpp" /> <ClInclude Include="..\..\..\include\unrar\list.hpp" /> <ClInclude Include="..\..\..\include\unrar\loclang.hpp" /> <ClInclude Include="..\..\..\include\unrar\log.hpp" /> @@ -998,6 +999,7 @@ <ClCompile Include="..\..\..\include\unrar\hash.cpp" /> <ClCompile Include="..\..\..\include\unrar\headers.cpp" /> <ClCompile Include="..\..\..\include\unrar\isnt.cpp" /> + <ClCompile Include="..\..\..\include\unrar\largepage.cpp" /> <ClCompile Include="..\..\..\include\unrar\list.cpp" /> <ClCompile Include="..\..\..\include\unrar\match.cpp" /> <ClCompile Include="..\..\..\include\unrar\options.cpp" /> Modified: trunk/OpenMPT/build/vs2022win81/ext/UnRAR.vcxproj ============================================================================== --- trunk/OpenMPT/build/vs2022win81/ext/UnRAR.vcxproj Fri Dec 6 19:07:14 2024 (r22478) +++ trunk/OpenMPT/build/vs2022win81/ext/UnRAR.vcxproj Sat Dec 7 19:55:03 2024 (r22479) @@ -935,6 +935,7 @@ <ClInclude Include="..\..\..\include\unrar\headers.hpp" /> <ClInclude Include="..\..\..\include\unrar\headers5.hpp" /> <ClInclude Include="..\..\..\include\unrar\isnt.hpp" /> + <ClInclude Include="..\..\..\include\unrar\largepage.hpp" /> <ClInclude Include="..\..\..\include\unrar\list.hpp" /> <ClInclude Include="..\..\..\include\unrar\loclang.hpp" /> <ClInclude Include="..\..\..\include\unrar\log.hpp" /> @@ -998,6 +999,7 @@ <ClCompile Include="..\..\..\include\unrar\hash.cpp" /> <ClCompile Include="..\..\..\include\unrar\headers.cpp" /> <ClCompile Include="..\..\..\include\unrar\isnt.cpp" /> + <ClCompile Include="..\..\..\include\unrar\largepage.cpp" /> <ClCompile Include="..\..\..\include\unrar\list.cpp" /> <ClCompile Include="..\..\..\include\unrar\match.cpp" /> <ClCompile Include="..\..\..\include\unrar\options.cpp" /> Modified: trunk/OpenMPT/include/unrar/OpenMPT.txt ============================================================================== --- trunk/OpenMPT/include/unrar/OpenMPT.txt Fri Dec 6 19:07:14 2024 (r22478) +++ trunk/OpenMPT/include/unrar/OpenMPT.txt Sat Dec 7 19:55:03 2024 (r22479) @@ -1,4 +1,4 @@ -This folder is based on https://rarlab.com/rar/unrarsrc-7.0.9.tar.gz +This folder is based on https://rarlab.com/rar/unrarsrc-7.1.2.tar.gz All modifications to existing files have been done in a manner so that no existing lines were edited; only new lines were added. @@ -11,7 +11,7 @@ The following files have been modified: extract.cpp, filcreat.cpp, file.cpp, filefn.cpp, find.cpp, match.cpp, -os.hpp, pathfn.cpp, rdwrfn.cpp, secpassword.cpp, volume.cpp, +os.hpp, pathfn.cpp, rardefs.hpp, rdwrfn.cpp, secpassword.cpp, volume.cpp, win32acl.cpp, win32lnk.cpp For building, premake is used to generate Visual Studio project files. Modified: trunk/OpenMPT/include/unrar/arccmt.cpp ============================================================================== --- trunk/OpenMPT/include/unrar/arccmt.cpp Fri Dec 6 19:07:14 2024 (r22478) +++ trunk/OpenMPT/include/unrar/arccmt.cpp Sat Dec 7 19:55:03 2024 (r22479) @@ -36,7 +36,12 @@ { // Current (RAR 3.0+) version of archive comment. Seek(GetStartPos(),SEEK_SET); - return SearchSubBlock(SUBHEAD_TYPE_CMT)!=0 && ReadCommentData(CmtData); + if (SearchSubBlock(SUBHEAD_TYPE_CMT)!=0) + if (ReadCommentData(CmtData)) + return true; + else + uiMsg(UIERROR_CMTBROKEN,FileName); + return false; } #ifndef SFX_MODULE // Old style (RAR 2.9) comment header embedded into the main Modified: trunk/OpenMPT/include/unrar/archive.cpp ============================================================================== --- trunk/OpenMPT/include/unrar/archive.cpp Fri Dec 6 19:07:14 2024 (r22478) +++ trunk/OpenMPT/include/unrar/archive.cpp Sat Dec 7 19:55:03 2024 (r22479) @@ -67,7 +67,7 @@ // password is incorrect. if (!FailedHeaderDecryption) uiMsg(UIERROR_BADARCHIVE,FileName); - ErrHandler.Exit(RARX_FATAL); + ErrHandler.Exit(RARX_BADARC); } } @@ -109,9 +109,11 @@ // We check the last signature byte, so we can return a sensible // warning in case we'll want to change the archive format // sometimes in the future. +#ifndef SFX_MODULE if (D[6]==0) Type=RARFMT15; else +#endif if (D[6]==1) Type=RARFMT50; else Modified: trunk/OpenMPT/include/unrar/archive.hpp ============================================================================== --- trunk/OpenMPT/include/unrar/archive.hpp Fri Dec 6 19:07:14 2024 (r22478) +++ trunk/OpenMPT/include/unrar/archive.hpp Sat Dec 7 19:55:03 2024 (r22479) @@ -58,7 +58,7 @@ bool ProhibitQOpen; #endif public: - Archive(CommandData *InitCmd=NULL); + Archive(CommandData *InitCmd=nullptr); ~Archive(); static RARFORMAT IsSignature(const byte *D,size_t Size); bool IsArchive(bool EnableBroken); @@ -147,6 +147,9 @@ bool NewArchive; std::wstring FirstVolumeName; +#ifdef PROPAGATE_MOTW + MarkOfTheWeb Motw; +#endif }; Modified: trunk/OpenMPT/include/unrar/arcread.cpp ============================================================================== --- trunk/OpenMPT/include/unrar/arcread.cpp Fri Dec 6 19:07:14 2024 (r22478) +++ trunk/OpenMPT/include/unrar/arcread.cpp Sat Dec 7 19:55:03 2024 (r22479) @@ -20,10 +20,10 @@ case RARFMT14: ReadSize=ReadHeader14(); break; -#endif case RARFMT15: ReadSize=ReadHeader15(); break; +#endif case RARFMT50: ReadSize=ReadHeader50(); break; @@ -106,6 +106,9 @@ if (CurBlockPos!=ArcSize || NextBlockPos!=ArcSize) { uiMsg(UIERROR_UNEXPEOF,FileName); + if (CurHeaderType!=HEAD_FILE) + uiMsg(UIERROR_TRUNCSERVICE,FileName,SubHead.FileName); + ErrHandler.SetErrorCode(RARX_WARNING); } } @@ -137,6 +140,7 @@ } +#ifndef SFX_MODULE size_t Archive::ReadHeader15() { RawRead Raw(this); @@ -145,7 +149,7 @@ if (Decrypt) { -#ifdef RAR_NOCRYPT // For rarext.dll and unrar_nocrypt.dll. +#ifdef RAR_NOCRYPT // For rarext.dll, Setup.SFX and unrar_nocrypt.dll. return 0; #else RequestArcPassword(NULL); @@ -545,6 +549,7 @@ return Raw.Size(); } +#endif // #ifndef SFX_MODULE size_t Archive::ReadHeader50() @@ -740,10 +745,15 @@ byte csum[SIZE_PSWCHECK_CSUM]; Raw.GetB(csum,SIZE_PSWCHECK_CSUM); +// Exclude this code for rarext.dll, Setup.SFX and unrar_nocrypt.dll linked +// without sha256. But still set Encrypted=true for rarext.dll here, +// so it can recognize encrypted header archives in archive properties. +#ifndef RAR_NOCRYPT byte Digest[SHA256_DIGEST_SIZE]; sha256_get(CryptHead.PswCheck, SIZE_PSWCHECK, Digest); CryptHead.UsePswCheck=memcmp(csum,Digest,SIZE_PSWCHECK_CSUM)==0; +#endif } Encrypted=true; } @@ -1036,22 +1046,30 @@ FileHeader *hd=(FileHeader *)bb; switch(FieldType) { +#ifndef RAR_NOCRYPT // Except rarext.dll, Setup.SFX and unrar_nocrypt.dll. case FHEXTRA_CRYPT: { FileHeader *hd=(FileHeader *)bb; uint EncVersion=(uint)Raw->GetV(); if (EncVersion>CRYPT_VERSION) + { UnkEncVerMsg(hd->FileName,L"x" + std::to_wstring(EncVersion)); + hd->CryptMethod=CRYPT_UNKNOWN; + } else { uint Flags=(uint)Raw->GetV(); - hd->UsePswCheck=(Flags & FHEXTRA_CRYPT_PSWCHECK)!=0; - hd->UseHashKey=(Flags & FHEXTRA_CRYPT_HASHMAC)!=0; hd->Lg2Count=Raw->Get1(); if (hd->Lg2Count>CRYPT5_KDF_LG2_COUNT_MAX) + { UnkEncVerMsg(hd->FileName,L"xc" + std::to_wstring(hd->Lg2Count)); + hd->CryptMethod=CRYPT_UNKNOWN; + } else { + hd->UsePswCheck=(Flags & FHEXTRA_CRYPT_PSWCHECK)!=0; + hd->UseHashKey=(Flags & FHEXTRA_CRYPT_HASHMAC)!=0; + Raw->GetB(hd->Salt,SIZE_SALT50); Raw->GetB(hd->InitV,SIZE_INITV); if (hd->UsePswCheck) @@ -1085,6 +1103,7 @@ } } break; +#endif case FHEXTRA_HASH: { FileHeader *hd=(FileHeader *)bb; Modified: trunk/OpenMPT/include/unrar/blake2s.hpp ============================================================================== --- trunk/OpenMPT/include/unrar/blake2s.hpp Fri Dec 6 19:07:14 2024 (r22478) +++ trunk/OpenMPT/include/unrar/blake2s.hpp Sat Dec 7 19:55:03 2024 (r22479) @@ -5,12 +5,9 @@ #define BLAKE2_DIGEST_SIZE 32 #define BLAKE2_THREADS_NUMBER 8 -enum blake2s_constant -{ - BLAKE2S_BLOCKBYTES = 64, - BLAKE2S_OUTBYTES = 32 -}; - +// Use constexpr instead of enums for -std=c++20 compatibility. +constexpr size_t BLAKE2S_BLOCKBYTES = 64; +constexpr size_t BLAKE2S_OUTBYTES = 32; // Alignment to 64 improves performance of both SSE and non-SSE versions. // Alignment to n*16 is required for SSE version, so we selected 64. Modified: trunk/OpenMPT/include/unrar/cmddata.cpp ============================================================================== --- trunk/OpenMPT/include/unrar/cmddata.cpp Fri Dec 6 19:07:14 2024 (r22478) +++ trunk/OpenMPT/include/unrar/cmddata.cpp Sat Dec 7 19:55:03 2024 (r22479) @@ -38,6 +38,9 @@ InclArgs.Reset(); ArcNames.Reset(); StoreArgs.Reset(); +#ifdef PROPAGATE_MOTW + MotwList.Reset(); +#endif Password.Clean(); NextVolSizes.clear(); #ifdef RARDLL @@ -189,7 +192,7 @@ #if !defined(SFX_MODULE) void CommandData::ParseEnvVar() { - char *EnvVar=getenv("RAR"); + char *EnvVar=getenv("RARINISWITCHES"); if (EnvVar!=NULL) { std::wstring EnvStr; @@ -293,6 +296,9 @@ void CommandData::ProcessSwitch(const wchar *Switch) { + if (LargePageAlloc::ProcessSwitch(this,Switch)) + return; + switch(toupperw(Switch[0])) { case '@': @@ -619,8 +625,6 @@ } } break; - case 'M': - break; case 'D': { bool SetDictLimit=toupperw(Switch[2])=='X'; @@ -665,33 +669,30 @@ if (toupperw(Switch[2])=='S' && Switch[3]==0) SkipEncrypted=true; break; - case 'S': + case 'L': + if (toupperw(Switch[2])=='P') { - std::wstring StoreNames=(Switch[2]==0 ? DefaultStoreList:Switch+2); - size_t Pos=0; - while (Pos<StoreNames.size()) + UseLargePages=true; + if (!LargePageAlloc::IsPrivilegeAssigned() && LargePageAlloc::AssignConfirmation()) { - if (StoreNames[Pos]=='.') - Pos++; - size_t EndPos=StoreNames.find(';',Pos); - std::wstring Mask=StoreNames.substr(Pos,EndPos==std::wstring::npos ? EndPos:EndPos-Pos); - if (Mask.find_first_of(L"*?.")==std::wstring::npos) - Mask.insert(0,L"*."); - StoreArgs.AddString(Mask); - if (EndPos==std::wstring::npos) - break; - Pos=EndPos+1; + LargePageAlloc::AssignPrivilege(); + + // Quit immediately. We do not want to interrupt the current copy + // archive processing with reboot after assigning privilege. + SetupComplete=true; } } break; + case 'M': + break; + case 'S': + GetBriefMaskList(Switch[2]==0 ? DefaultStoreList:Switch+2,StoreArgs); + break; #ifdef RAR_SMP case 'T': Threads=atoiw(Switch+2); if (Threads>MaxPoolThreads || Threads<1) BadSwitch(Switch); - else - { - } break; #endif default: @@ -752,6 +753,18 @@ } break; #endif +#ifdef PROPAGATE_MOTW + case 'M': + { + MotwAllFields=Switch[2]=='1'; + const wchar *Sep=wcschr(Switch+2,'='); + if (Switch[2]=='-') + MotwList.Reset(); + else + GetBriefMaskList(Sep==nullptr ? L"*":Sep+1,MotwList); + } + break; +#endif #ifdef _WIN_ALL case 'N': if (toupperw(Switch[2])=='I') @@ -1033,6 +1046,11 @@ #ifndef SFX_MODULE const wchar *SingleCharCommands=L"FUADPXETK"; + + // RAR -mlp command is the legitimate way to assign the required privilege. + if (Command.empty() && UseLargePages || SetupComplete) + return; + if (Command[0]!=0 && Command[1]!=0 && wcschr(SingleCharCommands,Command[0])!=NULL || ArcName.empty()) OutHelp(Command.empty() ? RARX_SUCCESS:RARX_USERERROR); // Return 'success' for 'rar' without parameters. @@ -1231,5 +1249,25 @@ } +// Treat the list like rar;zip as *.rar;*.zip for -ms and similar switches. +void CommandData::GetBriefMaskList(const std::wstring &Masks,StringList &Args) +{ + size_t Pos=0; + while (Pos<Masks.size()) + { + if (Masks[Pos]=='.') + Pos++; + size_t EndPos=Masks.find(';',Pos); + std::wstring Mask=Masks.substr(Pos,EndPos==std::wstring::npos ? EndPos:EndPos-Pos); + if (Mask.find_first_of(L"*?.")==std::wstring::npos) + Mask.insert(0,L"*."); + Args.AddString(Mask); + if (EndPos==std::wstring::npos) + break; + Pos=EndPos+1; + } +} + + Modified: trunk/OpenMPT/include/unrar/cmddata.hpp ============================================================================== --- trunk/OpenMPT/include/unrar/cmddata.hpp Fri Dec 6 19:07:14 2024 (r22478) +++ trunk/OpenMPT/include/unrar/cmddata.hpp Sat Dec 7 19:55:03 2024 (r22479) @@ -1,6 +1,12 @@ #ifndef _RAR_CMDDATA_ #define _RAR_CMDDATA_ +#if defined(_WIN_ALL) && !defined(SFX_MODULE) +// In Windows we implement our own command line parser to avoid replacing +// \" by " in standard parser. Such replacing corrupts destination paths +// like "dest path\" in extraction commands. +#define CUSTOM_CMDLINE_PARSER +#endif #define DefaultStoreList L"7z;ace;arj;bz2;cab;gz;jpeg;jpg;lha;lz;lzh;mp3;rar;taz;tbz;tbz2;tgz;txz;xz;z;zip;zipx;zst;tzst" @@ -56,6 +62,8 @@ void ReportWrongSwitches(RARFORMAT Format); #endif + void GetBriefMaskList(const std::wstring &Masks,StringList &Args); + std::wstring Command; std::wstring ArcName; @@ -78,6 +86,9 @@ StringList InclArgs; StringList ArcNames; StringList StoreArgs; +#ifdef PROPAGATE_MOTW + StringList MotwList; // Extensions to assign the mark of the web. +#endif SecPassword Password; Modified: trunk/OpenMPT/include/unrar/cmdmix.cpp ============================================================================== --- trunk/OpenMPT/include/unrar/cmdmix.cpp Fri Dec 6 19:07:14 2024 (r22478) +++ trunk/OpenMPT/include/unrar/cmdmix.cpp Sat Dec 7 19:55:03 2024 (r22479) @@ -63,12 +63,12 @@ MCHelpSwAT,MCHelpSwAC,MCHelpSwAD,MCHelpSwAG,MCHelpSwAI,MCHelpSwAP, MCHelpSwCm,MCHelpSwCFGm,MCHelpSwCL,MCHelpSwCU,MCHelpSwDH,MCHelpSwEP, MCHelpSwEP3,MCHelpSwEP4,MCHelpSwF,MCHelpSwIDP,MCHelpSwIERR, - MCHelpSwINUL,MCHelpSwIOFF,MCHelpSwKB,MCHelpSwME,MCHelpSwN,MCHelpSwNa, - MCHelpSwNal,MCHelpSwO,MCHelpSwOC,MCHelpSwOL,MCHelpSwOP,MCHelpSwOR, - MCHelpSwOW,MCHelpSwP,MCHelpSwR,MCHelpSwRI,MCHelpSwSC,MCHelpSwSI, - MCHelpSwSL,MCHelpSwSM,MCHelpSwTA,MCHelpSwTB,MCHelpSwTN,MCHelpSwTO, - MCHelpSwTS,MCHelpSwU,MCHelpSwVUnr,MCHelpSwVER,MCHelpSwVP,MCHelpSwX, - MCHelpSwXa,MCHelpSwXal,MCHelpSwY + MCHelpSwINUL,MCHelpSwIOFF,MCHelpSwKB,MCHelpSwME,MCHelpSwMLP, + MCHelpSwN,MCHelpSwNa,MCHelpSwNal,MCHelpSwO,MCHelpSwOC,MCHelpSwOL, + MCHelpSwOM,MCHelpSwOP,MCHelpSwOR,MCHelpSwOW,MCHelpSwP,MCHelpSwR, + MCHelpSwRI,MCHelpSwSC,MCHelpSwSI,MCHelpSwSL,MCHelpSwSM,MCHelpSwTA, + MCHelpSwTB,MCHelpSwTN,MCHelpSwTO,MCHelpSwTS,MCHelpSwU,MCHelpSwVUnr, + MCHelpSwVER,MCHelpSwVP,MCHelpSwX,MCHelpSwXa,MCHelpSwXal,MCHelpSwY #endif }; @@ -80,7 +80,7 @@ #ifndef _WIN_ALL static MSGID Win32Only[]={ MCHelpSwIEML,MCHelpSwVD,MCHelpSwAO,MCHelpSwOS,MCHelpSwIOFF, - MCHelpSwEP2,MCHelpSwOC,MCHelpSwONI,MCHelpSwDR,MCHelpSwRI + MCHelpSwEP2,MCHelpSwMLP,MCHelpSwOC,MCHelpSwONI,MCHelpSwDR,MCHelpSwRI }; bool Found=false; for (uint J=0;J<ASIZE(Win32Only);J++) Modified: trunk/OpenMPT/include/unrar/consio.cpp ============================================================================== --- trunk/OpenMPT/include/unrar/consio.cpp Fri Dec 6 19:07:14 2024 (r22478) +++ trunk/OpenMPT/include/unrar/consio.cpp Sat Dec 7 19:55:03 2024 (r22479) @@ -255,7 +255,7 @@ #ifndef SILENT -bool getwstr(std::wstring &str) +void getwstr(std::wstring &str) { // Print buffered prompt title function before waiting for input. fflush(stderr); @@ -281,8 +281,8 @@ if (ReadSize<=0) { // Looks like stdin is a null device. We can enter to infinite loop - // calling Ask(), so let's better exit. - ErrHandler.Exit(RARX_USERBREAK); + // calling Ask() or set an empty password, so let's better exit. + ErrHandler.ReadError(L"stdin"); } StrA[ReadSize]=0; @@ -297,20 +297,26 @@ else { std::vector<wchar> Buf(MaxRead); // Up to 4 UTF-8 characters per wchar_t. + DWORD SizeToRead=(DWORD)Buf.size()-1; + + // ReadConsole fails in Windows 7 for requested input exceeding 30 KB. + // Not certain about Windows 8, so check for Windows 10 here. + if (WinNT()<=WNT_W10) + SizeToRead=Min(SizeToRead,0x4000); + DWORD ReadSize=0; - if (ReadConsole(GetStdHandle(STD_INPUT_HANDLE),&Buf[0],(DWORD)Buf.size()-1,&ReadSize,NULL)==0) - return false; + if (ReadConsole(GetStdHandle(STD_INPUT_HANDLE),&Buf[0],SizeToRead,&ReadSize,NULL)==0) + ErrHandler.ReadError(L"stdin"); // Unknown user input, safer to abort. Buf[ReadSize]=0; str=Buf.data(); } #else std::vector<wchar> Buf(MaxRead); // Up to 4 UTF-8 characters per wchar_t. if (fgetws(&Buf[0],Buf.size(),stdin)==NULL) - ErrHandler.Exit(RARX_USERBREAK); // Avoid infinite Ask() loop. + ErrHandler.ReadError(L"stdin"); // Avoid infinite Ask() loop. str=Buf.data(); #endif RemoveLF(str); - return true; } #endif @@ -324,22 +330,22 @@ { uiAlarm(UIALARM_QUESTION); - const int MaxItems=10; + const uint MaxItems=10; wchar Item[MaxItems][40]; - int ItemKeyPos[MaxItems],NumItems=0; + uint ItemKeyPos[MaxItems],NumItems=0; - for (const wchar *NextItem=AskStr;NextItem!=NULL;NextItem=wcschr(NextItem+1,'_')) + for (const wchar *NextItem=AskStr;NextItem!=nullptr;NextItem=wcschr(NextItem+1,'_')) { wchar *CurItem=Item[NumItems]; wcsncpyz(CurItem,NextItem+1,ASIZE(Item[0])); wchar *EndItem=wcschr(CurItem,'_'); - if (EndItem!=NULL) + if (EndItem!=nullptr) *EndItem=0; - int KeyPos=0,CurKey; + uint KeyPos=0,CurKey; while ((CurKey=CurItem[KeyPos])!=0) { bool Found=false; - for (int I=0;I<NumItems && !Found;I++) + for (uint I=0;I<NumItems && !Found;I++) if (toupperw(Item[I][ItemKeyPos[I]])==toupperw(CurKey)) Found=true; if (!Found && CurKey!=' ') @@ -350,11 +356,11 @@ NumItems++; } - for (int I=0;I<NumItems;I++) + for (uint I=0;I<NumItems;I++) { eprintf(I==0 ? (NumItems>3 ? L"\n":L" "):L", "); - int KeyPos=ItemKeyPos[I]; - for (int J=0;J<KeyPos;J++) + uint KeyPos=ItemKeyPos[I]; + for (uint J=0;J<KeyPos;J++) eprintf(L"%c",Item[I][J]); eprintf(L"[%c]%ls",Item[I][KeyPos],&Item[I][KeyPos+1]); } @@ -362,7 +368,7 @@ std::wstring Str; getwstr(Str); wchar Ch=toupperw(Str[0]); - for (int I=0;I<NumItems;I++) + for (uint I=0;I<NumItems;I++) if (Ch==Item[I][ItemKeyPos[I]]) return I+1; return 0; Modified: trunk/OpenMPT/include/unrar/consio.hpp ============================================================================== --- trunk/OpenMPT/include/unrar/consio.hpp Fri Dec 6 19:07:14 2024 (r22478) +++ trunk/OpenMPT/include/unrar/consio.hpp Sat Dec 7 19:55:03 2024 (r22479) @@ -16,13 +16,13 @@ inline void eprintf(const wchar *fmt,...) {} inline void Alarm() {} inline int Ask(const wchar *AskStr) {return 0;} - inline bool getwstr(std::wstring &str) {return false;} + inline void getwstr(std::wstring &str) {} #else void mprintf(const wchar *fmt,...); void eprintf(const wchar *fmt,...); void Alarm(); int Ask(const wchar *AskStr); - bool getwstr(std::wstring &str); + void getwstr(std::wstring &str); #endif #endif Modified: trunk/OpenMPT/include/unrar/crypt.hpp ============================================================================== --- trunk/OpenMPT/include/unrar/crypt.hpp Fri Dec 6 19:07:14 2024 (r22478) +++ trunk/OpenMPT/include/unrar/crypt.hpp Sat Dec 7 19:55:03 2024 (r22479) @@ -3,7 +3,8 @@ enum CRYPT_METHOD { - CRYPT_NONE,CRYPT_RAR13,CRYPT_RAR15,CRYPT_RAR20,CRYPT_RAR30,CRYPT_RAR50 + CRYPT_NONE,CRYPT_RAR13,CRYPT_RAR15,CRYPT_RAR20,CRYPT_RAR30,CRYPT_RAR50, + CRYPT_UNKNOWN }; #define SIZE_SALT50 16 Modified: trunk/OpenMPT/include/unrar/dll.cpp ============================================================================== --- trunk/OpenMPT/include/unrar/dll.cpp Fri Dec 6 19:07:14 2024 (r22478) +++ trunk/OpenMPT/include/unrar/dll.cpp Sat Dec 7 19:55:03 2024 (r22479) @@ -16,8 +16,7 @@ HANDLE PASCAL RAROpenArchive(struct RAROpenArchiveData *r) { - RAROpenArchiveDataEx rx; - memset(&rx,0,sizeof(rx)); + RAROpenArchiveDataEx rx{}; rx.ArcName=r->ArcName; rx.OpenMode=r->OpenMode; rx.CmtBuf=r->CmtBuf; @@ -32,7 +31,7 @@ HANDLE PASCAL RAROpenArchiveEx(struct RAROpenArchiveDataEx *r) { - DataSet *Data=NULL; + DataSet *Data=nullptr; try { ErrHandler.Clean(); @@ -74,7 +73,7 @@ { r->OpenResult=ERAR_EOPEN; delete Data; - return NULL; + return nullptr; } if (!Data->Arc.IsArchive(true)) { @@ -89,7 +88,7 @@ r->OpenResult=ERAR_BAD_ARCHIVE; } delete Data; - return NULL; + return nullptr; } r->Flags=0; @@ -115,7 +114,7 @@ std::wstring CmtDataW; if (r->CmtBufSize!=0 && Data->Arc.GetComment(CmtDataW)) { - if (r->CmtBufW!=NULL) + if (r->CmtBufW!=nullptr) { // CmtDataW.push_back(0); size_t Size=wcslen(CmtDataW.data())+1; @@ -141,6 +140,18 @@ else r->CmtState=r->CmtSize=0; +#ifdef PROPAGATE_MOTW + if (r->MarkOfTheWeb!=nullptr) + { + Data->Cmd.MotwAllFields=r->MarkOfTheWeb[0]=='1'; + const wchar *Sep=wcschr(r->MarkOfTheWeb,'='); + if (r->MarkOfTheWeb[0]=='-') + Data->Cmd.MotwList.Reset(); + else + Data->Cmd.GetBriefMaskList(Sep==nullptr ? L"*":Sep+1,Data->Cmd.MotwList); + } +#endif + Data->Extract.ExtractArchiveInit(Data->Arc); return (HANDLE)Data; } @@ -494,6 +505,8 @@ return ERAR_BAD_PASSWORD; case RARX_SUCCESS: return ERAR_SUCCESS; // 0. + case RARX_BADARC: + return ERAR_BAD_ARCHIVE; default: return ERAR_UNKNOWN; } Modified: trunk/OpenMPT/include/unrar/dll.hpp ============================================================================== --- trunk/OpenMPT/include/unrar/dll.hpp Fri Dec 6 19:07:14 2024 (r22478) +++ trunk/OpenMPT/include/unrar/dll.hpp Sat Dec 7 19:55:03 2024 (r22479) @@ -157,7 +157,8 @@ LPARAM UserData; unsigned int OpFlags; wchar_t *CmtBufW; - unsigned int Reserved[25]; + wchar_t *MarkOfTheWeb; + unsigned int Reserved[23]; }; enum UNRARCALLBACK_MESSAGES { Modified: trunk/OpenMPT/include/unrar/errhnd.hpp ============================================================================== --- trunk/OpenMPT/include/unrar/errhnd.hpp Fri Dec 6 19:07:14 2024 (r22478) +++ trunk/OpenMPT/include/unrar/errhnd.hpp Sat Dec 7 19:55:03 2024 (r22479) @@ -16,6 +16,7 @@ RARX_NOFILES = 10, RARX_BADPWD = 11, RARX_READ = 12, + RARX_BADARC = 13, RARX_USERBREAK = 255 }; Modified: trunk/OpenMPT/include/unrar/extinfo.hpp ============================================================================== --- trunk/OpenMPT/include/unrar/extinfo.hpp Fri Dec 6 19:07:14 2024 (r22478) +++ trunk/OpenMPT/include/unrar/extinfo.hpp Sat Dec 7 19:55:03 2024 (r22479) @@ -11,10 +11,6 @@ std::wstring GetStreamNameNTFS(Archive &Arc); -#ifdef _WIN_ALL -bool SetPrivilege(LPCTSTR PrivName); -#endif - void SetExtraInfo20(CommandData *Cmd,Archive &Arc,const std::wstring &Name); void SetExtraInfo(CommandData *Cmd,Archive &Arc,const std::wstring &Name); void SetFileHeaderExtra(CommandData *Cmd,Archive &Arc,const std::wstring &Name); Modified: trunk/OpenMPT/include/unrar/extract.cpp ============================================================================== --- trunk/OpenMPT/include/unrar/extract.cpp Fri Dec 6 19:07:14 2024 (r22478) +++ trunk/OpenMPT/include/unrar/extract.cpp Sat Dec 7 19:55:03 2024 (r22479) @@ -25,6 +25,7 @@ #ifdef RAR_SMP Unp->SetThreads(Cmd->Threads); #endif + Unp->AllowLargePages(Cmd->UseLargePages); } @@ -112,6 +113,15 @@ void CmdExtract::ExtractArchiveInit(Archive &Arc) { + if (Cmd->Command[0]=='T' || Cmd->Command[0]=='I') + Cmd->Test=true; + +#ifdef PROPAGATE_MOTW + // Invoke here, so it is also supported by unrar.dll. + if (!Cmd->Test && Cmd->MotwList.ItemsCount()>0) + Arc.Motw.ReadZoneIdStream(Arc.FileName,Cmd->MotwAllFields); +#endif + DataIO.AdjustTotalArcSize(&Arc); FileCount=0; @@ -178,12 +188,18 @@ } #endif - mprintf(St(MNotRAR),ArcName.c_str()); - + bool RarExt=false; #ifndef SFX_MODULE - if (CmpExt(ArcName,L"rar")) + RarExt=CmpExt(ArcName,L"rar"); #endif - ErrHandler.SetErrorCode(RARX_WARNING); + + if (RarExt) + uiMsg(UIERROR_BADARCHIVE,ArcName); // Non-archive .rar file. + else + mprintf(St(MNotRAR),ArcName.c_str()); // Non-archive not .rar file, likely in "rar x *.*". + + if (RarExt) + ErrHandler.SetErrorCode(RARX_BADARC); return EXTRACT_ARC_NEXT; } @@ -254,9 +270,6 @@ ExtractArchiveInit(Arc); - if (Cmd->Command[0]=='T' || Cmd->Command[0]=='I') - Cmd->Test=true; - if (Cmd->Command[0]=='I') { @@ -494,7 +507,7 @@ DestFileName=!Cmd->TempPath.empty() ? Cmd->TempPath:Cmd->ExtrPath; AddEndSlash(DestFileName); DestFileName+=L"__tmp_reference_source_"; - MkTemp(DestFileName); + MkTemp(DestFileName,nullptr); MatchedRef.TmpName=DestFileName; } RefTarget=true; // Need it even for 't' to test the reference source. @@ -555,6 +568,7 @@ return !Arc.Solid; // Can try extracting next file only in non-solid archive. } +#ifndef RAR_NOCRYPT // For rarext.dll, Setup.SFX and unrar_nocrypt.dll. if (Arc.FileHead.Encrypted) { RarCheckPassword CheckPwd; @@ -581,9 +595,9 @@ // Set a password before creating the file, so we can skip creating // in case of wrong password. SecPassword FilePassword=Cmd->Password; - #if defined(_WIN_ALL) && !defined(SFX_MODULE) +#if defined(_WIN_ALL) && !defined(SFX_MODULE) ConvertDosPassword(Arc,FilePassword); - #endif +#endif byte PswCheck[SIZE_PSWCHECK]; bool EncSet=DataIO.SetEncryption(false,Arc.FileHead.CryptMethod, @@ -611,16 +625,16 @@ // Avoid new requests for unrar.dll to prevent the infinite loop // if app always returns the same password. - #ifndef RARDLL +#ifndef RARDLL continue; // Request a password again. - #endif +#endif } - #ifdef RARDLL +#ifdef RARDLL // If we already have ERAR_EOPEN as result of missing volume, // we should not replace it with less precise ERAR_BAD_PASSWORD. if (Cmd->DllError!=ERAR_EOPEN) Cmd->DllError=ERAR_BAD_PASSWORD; - #endif +#endif ErrHandler.SetErrorCode(RARX_BADPWD); ExtrFile=false; } @@ -629,6 +643,7 @@ } else DataIO.SetEncryption(false,CRYPT_NONE,NULL,NULL,NULL,0,NULL,NULL); +#endif // RAR_NOCRYPT // Per file symlink conversion flag. Can be turned off in unrar.dll. bool CurConvertSymlinkPaths=ConvertSymlinkPaths; @@ -690,7 +705,29 @@ // any overwrite prompts. if (!CheckWinLimit(Arc,ArcFileName)) return false; - ExtrFile=ExtrCreateFile(Arc,CurFile); + + // Read+write mode is required to set "Compressed" attribute. + // Other than that prefer the write only mode to avoid + // OpenIndiana NAS problem with SetFileTime and read+write files. +#if defined(_WIN_ALL) && !defined(SFX_MODULE) + bool Compressed=Cmd->SetCompressedAttr && + (Arc.FileHead.FileAttr & FILE_ATTRIBUTE_COMPRESSED)!=0; + bool WriteOnly=!Compressed; +#else + bool WriteOnly=true; +#endif + + ExtrFile=ExtrCreateFile(Arc,CurFile,WriteOnly); + +#if defined(_WIN_ALL) && !defined(SFX_MODULE) + // 2024.03.12: Set early to compress written data immediately. + // For 10 GB text file it was ~1.5x faster than when set after close. + + if (ExtrFile && Compressed) + SetFileCompression(CurFile.GetHandle(),true); + +#endif + } if (!ExtrFile && Arc.Solid) @@ -973,6 +1010,9 @@ if (Preallocated>0 && (BrokenFile || DataIO.CurUnpWrite!=Preallocated)) CurFile.Truncate(); +#ifdef PROPAGATE_MOTW + Arc.Motw.CreateZoneIdStream(DestFileName,Cmd->MotwList); +#endif CurFile.SetOpenFileTime( Cmd->xmtime==EXTTIME_NONE ? NULL:&Arc.FileHead.mtime, @@ -992,9 +1032,6 @@ if (SetAttr) { #if defined(_WIN_ALL) && !defined(SFX_MODULE) - if (Cmd->SetCompressedAttr && - (Arc.FileHead.FileAttr & FILE_ATTRIBUTE_COMPRESSED)!=0) - SetFileCompression(DestFileName,true); if (Cmd->ClearArc) Arc.FileHead.FileAttr&=~FILE_ATTRIBUTE_ARCHIVE; #endif @@ -1416,7 +1453,7 @@ } -bool CmdExtract::ExtrCreateFile(Archive &Arc,File &CurFile) +bool CmdExtract::ExtrCreateFile(Archive &Arc,File &CurFile,bool WriteOnly) { return true; // OPENMPT ADDITION bool Success=true; @@ -1428,9 +1465,7 @@ if ((Command=='E' || Command=='X') && !Cmd->Test) { bool UserReject; - // Specify "write only" mode to avoid OpenIndiana NAS problems - // with SetFileTime and read+write files. - if (!FileCreate(Cmd,&CurFile,DestFileName,&UserReject,Arc.FileHead.UnpSize,&Arc.FileHead.mtime,true)) + if (!FileCreate(Cmd,&CurFile,DestFileName,&UserReject,Arc.FileHead.UnpSize,&Arc.FileHead.mtime,WriteOnly)) { Success=false; if (!UserReject) @@ -1490,10 +1525,16 @@ if (Arc.FileHead.Method==0) WrongVer=false; + // Can't unpack the unknown encryption even for stored files. + if (Arc.FileHead.CryptMethod==CRYPT_UNKNOWN) + WrongVer=true; + if (WrongVer) { ErrHandler.UnknownMethodMsg(Arc.FileName,ArcFileName); - uiMsg(UIERROR_NEWERRAR,Arc.FileName); + // No need to suggest a new version if it is just a broken archive. + if (!Arc.BrokenHeader) + uiMsg(UIERROR_NEWERRAR,Arc.FileName); } return !WrongVer; } Modified: trunk/OpenMPT/include/unrar/extract.hpp ============================================================================== --- trunk/OpenMPT/include/unrar/extract.hpp Fri Dec 6 19:07:14 2024 (r22478) +++ trunk/OpenMPT/include/unrar/extract.hpp Sat Dec 7 19:55:03 2024 (r22479) @@ -37,7 +37,7 @@ void ConvertDosPassword(Archive &Arc,SecPassword &DestPwd); #endif void ExtrCreateDir(Archive &Arc,const std::wstring &ArcFileName); - bool ExtrCreateFile(Archive &Arc,File &CurFile); + bool ExtrCreateFile(Archive &Arc,File &CurFile,bool WriteOnly); bool CheckUnpVer(Archive &Arc,const std::wstring &ArcFileName); #ifndef SFX_MODULE void AnalyzeArchive(const std::wstring &ArcName,bool Volume,bool NewNumbering); Modified: trunk/OpenMPT/include/unrar/filefn.cpp ============================================================================== --- trunk/OpenMPT/include/unrar/filefn.cpp Fri Dec 6 19:07:14 2024 (r22478) +++ trunk/OpenMPT/include/unrar/filefn.cpp Sat Dec 7 19:55:03 2024 (r22479) @@ -132,6 +132,8 @@ } + + bool IsRemovable(const std::wstring &Name) { return false; // OPENMPT ADDITION @@ -330,10 +332,10 @@ } -wchar* MkTemp(wchar *Name,size_t MaxSize) +// Ext is the extension with the leading dot, like L".bat", or nullptr to use +// the default extension. +bool MkTemp(std::wstring &Name,const wchar *Ext) { - size_t Length=wcslen(Name); - RarTime CurTime; CurTime.SetCurrentTime(); @@ -352,47 +354,20 @@ for (uint Attempt=0;;Attempt++) { - uint Ext=Random%50000+Attempt; - wchar RndText[50]; + uint RandomExt=Random%50000+Attempt; + if (Attempt==1000) + return false; + // User asked to specify the single extension for all temporary files, // so it can be added to server ransomware protection exceptions. // He wrote, this protection blocks temporary files when adding - // a file to RAR archive with drag and drop. - swprintf(RndText,ASIZE(RndText),L"%u.%03u.rartemp",PID,Ext); - if (Length+wcslen(RndText)>=MaxSize || Attempt==1000) - return NULL; - wcsncpyz(Name+Length,RndText,MaxSize-Length); - if (!FileExist(Name)) - break; - } - return Name; -} - - -bool MkTemp(std::wstring &Name) -{ - RarTime CurTime; - CurTime.SetCurrentTime(); - - // We cannot use CurTime.GetWin() as is, because its lowest bits can - // have low informational value, like being a zero or few fixed numbers. - uint Random=(uint)(CurTime.GetWin()/100000); - - // Using PID we guarantee that different RAR copies use different temp names - // even if started in exactly the same time. - uint PID=0; -#ifdef _WIN_ALL - PID=(uint)GetCurrentProcessId(); -#elif defined(_UNIX) - PID=(uint)getpid(); -#endif + // a file to RAR archive with drag and drop. So unless a calling code + // requires a specific extension, like .bat file when uninstalling, + // we set the uniform extension here. + if (Ext==nullptr) + Ext=L".rartemp"; - for (uint Attempt=0;;Attempt++) - { - uint Ext=Random%50000+Attempt; - if (Attempt==1000) - return false; - std::wstring NewName=Name + std::to_wstring(PID) + L"." + std::to_wstring(Ext) + L".rartemp"; + std::wstring NewName=Name + std::to_wstring(PID) + L"." + std::to_wstring(RandomExt) + Ext; if (!FileExist(NewName)) { Name=NewName; @@ -559,14 +534,21 @@ hFile=CreateFile(LongName.c_str(),FILE_READ_DATA|FILE_WRITE_DATA, FILE_SHARE_READ|FILE_SHARE_WRITE,NULL,OPEN_EXISTING, FILE_FLAG_BACKUP_SEMANTICS|FILE_FLAG_SEQUENTIAL_SCAN,NULL); + if (hFile==INVALID_HANDLE_VALUE) + return false; } - if (hFile==INVALID_HANDLE_VALUE) - return false; + bool Success=SetFileCompression(hFile,State); + CloseHandle(hFile); + return Success; +} + + +bool SetFileCompression(HANDLE hFile,bool State) +{ SHORT NewState=State ? COMPRESSION_FORMAT_DEFAULT:COMPRESSION_FORMAT_NONE; DWORD Result; int RetCode=DeviceIoControl(hFile,FSCTL_SET_COMPRESSION,&NewState, sizeof(NewState),NULL,0,&Result,NULL); - CloseHandle(hFile); return RetCode!=0; } Modified: trunk/OpenMPT/include/unrar/filefn.hpp ============================================================================== --- trunk/OpenMPT/include/unrar/filefn.hpp Fri Dec 6 19:07:14 2024 (r22478) +++ trunk/OpenMPT/include/unrar/filefn.hpp Sat Dec 7 19:55:03 2024 (r22479) @@ -6,7 +6,10 @@ MKDIR_CODE MakeDir(const std::wstring &Name,bool SetAttr,uint Attr); bool CreateDir(const std::wstring &Name); bool CreatePath(const std::wstring &Path,bool SkipLastName,bool Silent); + void SetDirTime(const std::wstring &Name,RarTime *ftm,RarTime *ftc,RarTime *fta); + + bool IsRemovable(const std::wstring &Name); #ifndef SFX_MODULE @@ -28,8 +31,7 @@ void PrepareToDelete(const std::wstring &Name); uint GetFileAttr(const std::wstring &Name); bool SetFileAttr(const std::wstring &Name,uint Attr); -wchar* MkTemp(wchar *Name,size_t MaxSize); -bool MkTemp(std::wstring &Name); +bool MkTemp(std::wstring &Name,const wchar *Ext); enum CALCFSUM_FLAGS {CALCFSUM_SHOWTEXT=1,CALCFSUM_SHOWPERCENT=2,CALCFSUM_SHOWPROGRESS=4,CALCFSUM_CURPOS=8}; @@ -41,6 +43,7 @@ #if defined(_WIN_ALL) && !defined(SFX_MODULE) bool SetFileCompression(const std::wstring &Name,bool State); +bool SetFileCompression(HANDLE hFile,bool State); void ResetFileCache(const std::wstring &Name); #endif Modified: trunk/OpenMPT/include/unrar/hash.cpp ============================================================================== --- trunk/OpenMPT/include/unrar/hash.cpp Fri Dec 6 19:07:14 2024 (r22478) +++ trunk/OpenMPT/include/unrar/hash.cpp Sat Dec 7 19:55:03 2024 (r22479) @@ -275,7 +275,9 @@ { HashValue Final; Result(&Final); - if (Key!=NULL) +#ifndef RAR_NOCRYPT + if (Key!=nullptr) ConvertHashToMAC(&Final,Key); +#endif return Final==*CmpValue; } Modified: trunk/OpenMPT/include/unrar/hash.hpp ============================================================================== --- trunk/OpenMPT/include/unrar/hash.hpp Fri Dec 6 19:07:14 2024 (r22478) +++ trunk/OpenMPT/include/unrar/hash.hpp Sat Dec 7 19:55:03 2024 (r22479) @@ -13,6 +13,8 @@ bool operator == (const HashValue &cmp) const; // Not actually used now. Const member for same reason as operator == above. + // Can be removed after switching to C++20, which automatically provides "!=" + // if operator == is defined. bool operator != (const HashValue &cmp) const {return !(*this==cmp);} HASH_TYPE Type; Added: trunk/OpenMPT/include/unrar/largepage.cpp ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ trunk/OpenMPT/include/unrar/largepage.cpp Sat Dec 7 19:55:03 2024 (r22479) @@ -0,0 +1,201 @@ +#include "rar.hpp" + +/* +To enable, disable or check Large Memory pages manually: +- open "Local Security Policy" from "Start Menu"; +- open "Lock Pages in Memory" in "Local Policies\User Rights Assignment"; +- add or remove the user and sign out and sign in or restart Windows. +*/ + +#if defined(_WIN_ALL) && !defined(SFX_MODULE) && !defined(RARDLL) +#define ALLOW_LARGE_PAGES +#endif + +LargePageAlloc::LargePageAlloc() +{ + UseLargePages=false; +#ifdef ALLOW_LARGE_PAGES + PageSize=0; +#endif +} + + +void LargePageAlloc::AllowLargePages(bool Allow) +{ +#ifdef ALLOW_LARGE_PAGES + if (Allow && PageSize==0) + { + HMODULE hKernel=GetModuleHandle(L"kernel32.dll"); + if (hKernel!=nullptr) + { + typedef SIZE_T (*GETLARGEPAGEMINIMUM)(); + GETLARGEPAGEMINIMUM pGetLargePageMinimum=(GETLARGEPAGEMINIMUM)GetProcAddress(hKernel, "GetLargePageMinimum"); + if (pGetLargePageMinimum!=nullptr) + PageSize=pGetLargePageMinimum(); + } + if (PageSize==0 || !SetPrivilege(SE_LOCK_MEMORY_NAME)) + { + UseLargePages=false; + return; + } + } + + UseLargePages=Allow; +#endif +} + + +bool LargePageAlloc::IsPrivilegeAssigned() +{ +#ifdef ALLOW_LARGE_PAGES + return SetPrivilege(SE_LOCK_MEMORY_NAME); +#else + return true; +#endif +} + + +bool LargePageAlloc::AssignPrivilege() +{ +#ifdef ALLOW_LARGE_PAGES + HANDLE hToken = NULL; + + if (!OpenProcessToken(GetCurrentProcess(), TOKEN_QUERY, &hToken)) + return false; + + // Get the required buffer size. + DWORD BufSize=0; + GetTokenInformation(hToken, TokenUser, NULL, 0, &BufSize); + if (BufSize==0 || BufSize>1000000) // Sanity check for returned value. + { + CloseHandle(hToken); + return false; + } + + TOKEN_USER *TokenInfo = (TOKEN_USER*)malloc(BufSize); + + // Get the current user token information. + if (GetTokenInformation(hToken,TokenUser,TokenInfo,BufSize,&BufSize)==0) + { + CloseHandle(hToken); + return false; + } + + // Get SID string for the current user. + LPWSTR ApiSidStr; + ConvertSidToStringSid(TokenInfo->User.Sid, &ApiSidStr); + + // Convert SID to C++ string and release API based buffer. + std::wstring SidStr=ApiSidStr; + LocalFree(ApiSidStr); + CloseHandle(hToken); + + if (IsUserAdmin()) + AssignPrivilegeBySid(SidStr); + else + { + // Define here, so they survive until ShellExecuteEx call. + std::wstring ExeName=GetModuleFileStr(); + std::wstring Param=std::wstring(L"-") + LOCKMEM_SWITCH + SidStr; + + SHELLEXECUTEINFO shExecInfo{}; + shExecInfo.cbSize = sizeof(shExecInfo); + + shExecInfo.hwnd = NULL; // Specifying WinRAR main window here does not work well in command line mode. + shExecInfo.lpVerb = L"runas"; + shExecInfo.lpFile = ExeName.c_str(); + shExecInfo.lpParameters = Param.c_str(); + shExecInfo.nShow = SW_SHOWNORMAL; + BOOL Result=ShellExecuteEx(&shExecInfo); + } +#endif + + return true; +} + + +bool LargePageAlloc::AssignPrivilegeBySid(const std::wstring &Sid) +{ +#ifdef ALLOW_LARGE_PAGES + LSA_HANDLE PolicyHandle; + LSA_OBJECT_ATTRIBUTES ObjectAttributes{}; // Docs require to zero initalize it. + +#ifndef STATUS_SUCCESS // Can be defined through WIL package in WinRAR. + // We define STATUS_SUCCESS here instead of including ntstatus.h to avoid + // macro redefinition warnings. We tried UMDF_USING_NTSTATUS define + // and other workarounds, but it didn't help. + const uint STATUS_SUCCESS=0; +#endif + + if (LsaOpenPolicy(NULL,&ObjectAttributes,POLICY_CREATE_ACCOUNT| + POLICY_LOOKUP_NAMES,&PolicyHandle)!=STATUS_SUCCESS) + return false; + + PSID UserSid; + ConvertStringSidToSid(Sid.c_str(),&UserSid); + + LSA_UNICODE_STRING LsaString; + LsaString.Buffer=(PWSTR)SE_LOCK_MEMORY_NAME; + // It must be in bytes, so multiple it to sizeof(wchar_t). + LsaString.Length=(USHORT)wcslen(LsaString.Buffer)*sizeof(LsaString.Buffer[0]); + LsaString.MaximumLength=LsaString.Length; + + bool Success=LsaAddAccountRights(PolicyHandle,UserSid,&LsaString,1)==STATUS_SUCCESS; + + LocalFree(UserSid); + LsaClose(PolicyHandle); + + mprintf(St(MPrivilegeAssigned)); + if (Ask(St(MYesNo)) == 1) + Shutdown(POWERMODE_RESTART); + + return Success; +#else + return true; +#endif +} + + +bool LargePageAlloc::AssignConfirmation() +{ +#ifdef ALLOW_LARGE_PAGES + mprintf(St(MLockInMemoryNeeded)); + return Ask(St(MYesNo)) == 1; +#else + return false; +#endif +} + + +void* LargePageAlloc::new_large(size_t Size) +{ + void *Allocated=nullptr; + +#ifdef ALLOW_LARGE_PAGES + if (UseLargePages && Size>=PageSize) + { + // VirtualAlloc fails if allocation size isn't multiple of page size. + SIZE_T AllocSize=Size%PageSize==0 ? Size:(Size/PageSize+1)*PageSize; + Allocated=VirtualAlloc(nullptr,AllocSize,MEM_COMMIT|MEM_RESERVE|MEM_LARGE_PAGES,PAGE_READWRITE); + if (Allocated!=nullptr) + LargeAlloc.push_back(Allocated); + } +#endif + return Allocated; +} + + +bool LargePageAlloc::delete_large(void *Addr) +{ +#ifdef ALLOW_LARGE_PAGES + if (Addr!=nullptr) + for (size_t I=0;I<LargeAlloc.size();I++) + if (LargeAlloc[I]==Addr) + { + LargeAlloc[I]=nullptr; + VirtualFree(Addr,0,MEM_RELEASE); + return true; + } +#endif + return false; +} Added: trunk/OpenMPT/include/unrar/largepage.hpp ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ trunk/OpenMPT/include/unrar/largepage.hpp Sat Dec 7 19:55:03 2024 (r22479) @@ -0,0 +1,54 @@ +#ifndef _RAR_LARGEPAGE_ +#define _RAR_LARGEPAGE_ + +class LargePageAlloc +{ + private: + static constexpr const wchar *LOCKMEM_SWITCH=L"isetup_privilege_lockmem"; + + void* new_large(size_t Size); + bool delete_large(void *Addr); +#ifdef _WIN_ALL + std::vector<void*> LargeAlloc; + SIZE_T PageSize; +#endif + bool UseLargePages; + public: + LargePageAlloc(); + void AllowLargePages(bool Allow); + static bool IsPrivilegeAssigned(); + static bool AssignPrivilege(); + static bool AssignPrivilegeBySid(const std::wstring &Sid); + static bool AssignConfirmation(); + + static bool ProcessSwitch(CommandData *Cmd,const wchar *Switch) + { + if (Switch[0]==LOCKMEM_SWITCH[0]) + { + size_t Length=wcslen(LOCKMEM_SWITCH); + if (wcsncmp(Switch,LOCKMEM_SWITCH,Length)==0) + { + LargePageAlloc::AssignPrivilegeBySid(Switch+Length); + return true; + } + } + return false; + } + + template <class T> T* new_l(size_t Size,bool Clear=false) + { + T *Allocated=(T*)new_large(Size*sizeof(T)); + if (Allocated==nullptr) + Allocated=Clear ? new T[Size]{} : new T[Size]; + return Allocated; + } + + template <class T> void delete_l(T *Addr) + { + if (!delete_large(Addr)) + delete[] Addr; + } +}; + + +#endif Modified: trunk/OpenMPT/include/unrar/list.cpp ============================================================================== --- trunk/OpenMPT/include/unrar/list.cpp Fri Dec 6 19:07:14 2024 (r22478) +++ trunk/OpenMPT/include/unrar/list.cpp Sat Dec 7 19:55:03 2024 (r22479) @@ -37,7 +37,7 @@ mprintf(L"\n%s: %s",St(MListArchive),Arc.FileName.c_str()); mprintf(L"\n%s: ",St(MListDetails)); - const wchar *Fmt=Arc.Format==RARFMT14 ? L"RAR 1.4":(Arc.Format==RARFMT15 ? L"RAR 4":L"RAR 5"); + const wchar *Fmt=Arc.Format==RARFMT14 ? L"RAR 1.4":(Arc.Format==RARFMT15 ? L"RAR 1.5":L"RAR 5"); mprintf(L"%s", Fmt); if (Arc.Solid) mprintf(L", %s", St(MListSolid)); Modified: trunk/OpenMPT/include/unrar/loclang.hpp ============================================================================== --- trunk/OpenMPT/include/unrar/loclang.hpp Fri Dec 6 19:07:14 2024 (r22478) +++ trunk/OpenMPT/include/unrar/loclang.hpp Sat Dec 7 19:55:03 2024 (r22479) @@ -97,6 +97,7 @@ #define MCHelpSwMC L"\n mc<par> Set advanced compression parameters" #define MCHelpSwMD L"\n md[x]<n>[kmg] Dictionary size in KB, MB or GB" #define MCHelpSwME L"\n me[par] Set encryption parameters" +#define MCHelpSwMLP L"\n mlp Use large memory pages" #define MCHelpSwMS L"\n ms[ext;ext] Specify file types to store" #define MCHelpSwMT L"\n mt<threads> Set the number of threads" #define MCHelpSwN L"\n n<file> Additionally filter included files" @@ -107,6 +108,7 @@ #define MCHelpSwOH L"\n oh Save hard links as the link instead of the file" #define MCHelpSwOI L"\n oi[0-4][:min] Save identical files as references" #define MCHelpSwOL L"\n ol[a,-] Process symbolic links as the link [absolute paths, skip]" +#define MCHelpSwOM L"\n om[-|1][=lst] Propagate Mark of the Web" #define MCHelpSwONI L"\n oni Allow potentially incompatible names" #define MCHelpSwOP L"\n op<path> Set the output path for extracted files" #define MCHelpSwOR L"\n or Rename files automatically" @@ -232,8 +234,8 @@ #define MArcComment L"\nArchive comment" #define MReadStdinCmt L"\nReading comment from stdin\n" #define MReadCommFrom L"\nReading comment from %s" -#define MDelComment L"\nDeleting comment from %s" -#define MAddComment L"\nAdding comment to %s" +#define MDelComment L"\nDeleting a comment from %s" +#define MAddComment L"\nAdding a comment to %s" #define MLogCommBrk L"\nThe archive comment is corrupt" #define MCommAskCont L"\nPress 'Enter' to continue or 'Q' to quit:" #define MWriteCommTo L"\nWrite comment to %s" @@ -302,7 +304,7 @@ #define MRecSecDamage L"\nSector %ld (offsets %lX...%lX) damaged" #define MRecCorrected L" - data recovered" #define MRecFailed L" - cannot recover data" -#define MAddRecRec L"\nAdding data recovery record" +#define MAddRecRec L"\nAdding the data recovery record" #define MEraseForVolume L"\n\nErasing contents of drive %c:\n" #define MGetOwnersError L"\nWARNING: Cannot get %s owner and group\n" #define MErrGetOwnerID L"\nWARNING: Cannot get owner %s ID\n" @@ -329,7 +331,6 @@ #define MSubHeadCorrupt L"\nERROR: Corrupt data header found, ignored" #define MSubHeadUnknown L"\nWARNING: Unknown data header format, ignored" #define MSubHeadDataCRC L"\nERROR: Corrupt %s data block" -#define MSubHeadType L"\nData header type: %s" #define MScanError L"\nCannot read contents of %s" #define MNotVolume L"\n%s is not volume" #define MRecVolDiffSets L"\nERROR: %s and %s belong to different sets" @@ -384,7 +385,7 @@ #define MUseSmalllerDict L"\nPlease use a smaller compression dictionary." #define MExtrDictOutMem ... [truncated message content] |
From: <sv...@op...> - 2024-12-06 18:07:21
|
Author: sagamusix Date: Fri Dec 6 19:07:14 2024 New Revision: 22478 URL: https://source.openmpt.org/browse/openmpt/?op=revision&rev=22478 Log: [Fix] XM: In non-compatible linear slide mode, avoid shifting the period by arbitrary bit amounts if the period is extremely high. This caused the frequency to wrap around, which should not happen in non-compatible mode. Found with afl++ + ubsan. Modified: trunk/OpenMPT/soundlib/Snd_fx.cpp Modified: trunk/OpenMPT/soundlib/Snd_fx.cpp ============================================================================== --- trunk/OpenMPT/soundlib/Snd_fx.cpp Fri Dec 6 17:04:29 2024 (r22477) +++ trunk/OpenMPT/soundlib/Snd_fx.cpp Fri Dec 6 19:07:14 2024 (r22478) @@ -6481,6 +6481,8 @@ octave = ((14 - div) & 0x1F); } else { + if(period > 29 * 768) + return 0; octave = (period / 768) + 2; } return (XMLinearTable[period % 768] << (FREQ_FRACBITS + 2)) >> octave; |
From: <sv...@op...> - 2024-12-06 16:04:36
|
Author: sagamusix Date: Fri Dec 6 17:04:29 2024 New Revision: 22477 URL: https://source.openmpt.org/browse/openmpt/?op=revision&rev=22477 Log: [Ref] Fix typo. Modified: trunk/OpenMPT/soundlib/Load_med.cpp Modified: trunk/OpenMPT/soundlib/Load_med.cpp ============================================================================== --- trunk/OpenMPT/soundlib/Load_med.cpp Fri Dec 6 16:54:43 2024 (r22476) +++ trunk/OpenMPT/soundlib/Load_med.cpp Fri Dec 6 17:04:29 2024 (r22477) @@ -1121,7 +1121,7 @@ instr.nMidiProgram = sampleHeader.midiPreset; } - if(!instr.nMidiChannel != MidiNoChannel) + if(instr.nMidiChannel != MidiNoChannel) { int offset = NOTE_MIDDLEC + (hardwareMixSamples ? 24 : 36); for(auto ¬e : instr.NoteMap) |
From: <sv...@op...> - 2024-12-06 15:54:56
|
Author: sagamusix Date: Fri Dec 6 16:54:43 2024 New Revision: 22476 URL: https://source.openmpt.org/browse/openmpt/?op=revision&rev=22476 Log: [Fix] MED: Apply repeating high octaves to all non-MIDI instruments. (https://www.un4seen.com/forum/?topic=15448.msg144154#msg144154) [Fix] MED: Add special handling for low tempos in BPM mode (https://www.un4seen.com/forum/?topic=15448.msg144160#msg144160). Modified: trunk/OpenMPT/soundlib/Load_med.cpp Modified: trunk/OpenMPT/soundlib/Load_med.cpp ============================================================================== --- trunk/OpenMPT/soundlib/Load_med.cpp Thu Dec 5 10:52:22 2024 (r22475) +++ trunk/OpenMPT/soundlib/Load_med.cpp Fri Dec 6 16:54:43 2024 (r22476) @@ -395,6 +395,10 @@ { if(bpmMode && !is8Ch) { + // Observed in OctaMED 5 and MED SoundStudio 1.03 (bug?) + if(tempo < 7) + return TEMPO(111.5); + // You would have thought that we could use modern tempo mode here. // Alas, the number of ticks per row still influences the tempo. :( return TEMPO((tempo * rowsPerBeat) / 4.0); @@ -654,7 +658,8 @@ if(note >= NOTE_MIDDLEC + 2 * 12) needInstruments = true; - if(note > NOTE_MIN + 131) + // This doesn't happen in MED SoundStudio for Windows... closest we have to be able to identify it is the usage of 7-bit volume + if(note > NOTE_MIN + 131 && !ctx.vol7bit) note -= 108; else if(note > NOTE_MAX) note -= mpt::align_down(note - (NOTE_MAX - 11), 12); @@ -1085,15 +1090,6 @@ { needInstruments = true; instr.Transpose(-24); - } else if(!isSynth && (hardwareMixSamples || sampleHeader.sampleTranspose)) - { - int offset = NOTE_MIDDLEC + (hardwareMixSamples ? 24 : 36); - for(auto ¬e : instr.NoteMap) - { - int realNote = note + sampleHeader.sampleTranspose; - if(realNote >= offset) - note -= static_cast<uint8>(mpt::align_down(realNote - offset + 12, 12)); - } } // midiChannel = 0xFF == midi instrument but with invalid channel, midiChannel = 0x00 == sample-based instrument? @@ -1125,6 +1121,17 @@ instr.nMidiProgram = sampleHeader.midiPreset; } + if(!instr.nMidiChannel != MidiNoChannel) + { + int offset = NOTE_MIDDLEC + (hardwareMixSamples ? 24 : 36); + for(auto ¬e : instr.NoteMap) + { + int realNote = note + sampleHeader.sampleTranspose; + if(realNote >= offset) + note -= static_cast<uint8>(mpt::align_down(realNote - offset + 12, 12)); + } + } + for(SAMPLEINDEX i = 0; i < numSamples; i++) { ModSample &mptSmp = Samples[smp + i]; |
From: <sv...@op...> - 2024-12-05 09:52:34
|
Author: manx Date: Thu Dec 5 10:52:22 2024 New Revision: 22475 URL: https://source.openmpt.org/browse/openmpt/?op=revision&rev=22475 Log: [Imp] build: CI: GitHub: CPA: FreeBSD:Update FreeBSD 14 to 14.2. See r22467. Added: branches/OpenMPT-1.30/.github/workflows/FreeBSD-14.2-Makefile.yml - copied unchanged from r22474, branches/OpenMPT-1.30/.github/workflows/FreeBSD-14.1-Makefile.yml Deleted: branches/OpenMPT-1.30/.github/workflows/FreeBSD-14.1-Makefile.yml Copied: branches/OpenMPT-1.30/.github/workflows/FreeBSD-14.2-Makefile.yml (from r22474, branches/OpenMPT-1.30/.github/workflows/FreeBSD-14.1-Makefile.yml) ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ branches/OpenMPT-1.30/.github/workflows/FreeBSD-14.2-Makefile.yml Thu Dec 5 10:52:22 2024 (r22475, copy of r22474, branches/OpenMPT-1.30/.github/workflows/FreeBSD-14.1-Makefile.yml) @@ -0,0 +1,77 @@ +name: FreeBSD 14.2 Makefile + +on: + push: + branches: [ OpenMPT-1.30 ] + +concurrency: + group: ${{ github.ref }}-${{ github.workflow }} + cancel-in-progress: true + +jobs: + build: + + runs-on: ubuntu-24.04 + + steps: + - name: Checkout + uses: actions/checkout@v4 + - name: Startup VM + uses: cross-platform-actions/action@v0.26.0 + with: + architecture: x86_64 + memory: 4G + operating_system: freebsd + version: '14.2' + shell: bash + sync_files: runner-to-vm + shutdown_vm: false + run: true + - name: Install dependencies + uses: cross-platform-actions/action@v0.26.0 + with: + architecture: x86_64 + memory: 4G + operating_system: freebsd + version: '14.2' + shell: bash + sync_files: false + shutdown_vm: false + run: | + sudo pkg upgrade -y + sudo pkg install -y subversion p5-XML-XPath git mawk gmake pkgconf autoconf autoconf-archive automake libtool help2man doxygen mpg123 libogg libvorbis flac libsndfile pulseaudio portaudio sdl2 + - name: Build + uses: cross-platform-actions/action@v0.26.0 + with: + architecture: x86_64 + memory: 4G + operating_system: freebsd + version: '14.2' + shell: bash + sync_files: false + shutdown_vm: false + run: | + gmake -j$(sysctl -n hw.ncpu) STRICT=1 VERBOSE=1 AUTO_DEPS=1 + - name: Test + uses: cross-platform-actions/action@v0.26.0 + with: + architecture: x86_64 + memory: 4G + operating_system: freebsd + version: '14.2' + shell: bash + sync_files: false + shutdown_vm: false + run: | + gmake -j$(sysctl -n hw.ncpu) STRICT=1 VERBOSE=1 AUTO_DEPS=1 check + - name: Shutdown VM + uses: cross-platform-actions/action@v0.26.0 + with: + architecture: x86_64 + memory: 4G + operating_system: freebsd + version: '14.2' + shell: bash + sync_files: false + shutdown_vm: true + run: true |
From: <sv...@op...> - 2024-12-05 09:11:20
|
Author: manx Date: Thu Dec 5 10:11:13 2024 New Revision: 22474 URL: https://source.openmpt.org/browse/openmpt/?op=revision&rev=22474 Log: [Var] build: Makefile: DJGPP: Small cleanup. Modified: trunk/OpenMPT/build/make/config-djgpp.mk Modified: trunk/OpenMPT/build/make/config-djgpp.mk ============================================================================== --- trunk/OpenMPT/build/make/config-djgpp.mk Thu Dec 5 10:02:30 2024 (r22473) +++ trunk/OpenMPT/build/make/config-djgpp.mk Thu Dec 5 10:11:13 2024 (r22474) @@ -391,15 +391,15 @@ dmnp/m6117d := $(___) -march=i386 $(FPU_NONE) -mtune=i386 $(OPT_UARCH_CISC) --param l1-cache-size=0 --param l2-cache-size=$(CACHE_386) -dmnp/vortex86sx := $(___) -march=i386 $(FPU_NONE) -mtune=i386 $(OPT_UARCH_PIPE) --param l1-cache-size=16 --param l2-cache-size=0 - -dmnp/vortex86dx := $(___) -march=i486 $(FPU_387) -mtune=i486 $(OPT_UARCH_PIPE) --param l1-cache-size=16 --param l2-cache-size=256 -dmnp/vortex86mx := $(___) -march=i486 $(FPU_387) -mtune=i486 $(OPT_UARCH_PIPE) --param l1-cache-size=16 --param l2-cache-size=256 dmnp/vortex86 := $(___) -march=i586 $(FPU_MMX) $(TUNE_586MMX) $(OPT_UARCH_SCAL_64) --param l1-cache-size=8 --param l2-cache-size=0 -dmnp/vortex86dx2 := $(___) -march=i586 $(FPU_MMX) $(TUNE_586MMX) $(OPT_UARCH_SCAL_64) --param l1-cache-size=16 --param l2-cache-size=256 -dmnp/vortex86mx := $(___) -march=i586 $(FPU_MMX) $(TUNE_586MMX) $(OPT_UARCH_SCAL_64) --param l1-cache-size=16 --param l2-cache-size=128 -dmnp/vortex86dx3 := $(___) -march=i686 $(FPU_SSE) $(TUNE_686SSE) $(OPT_UARCH_SCAL_128) --param l1-cache-size=32 --param l2-cache-size=512 -dmnp/vortex86mx2 := $(___) -march=i686 $(FPU_SSE) $(TUNE_686SSE) $(OPT_UARCH_SCAL_128) --param l1-cache-size=32 --param l2-cache-size=128 +dmnp/vortex86sx := $(___) -march=i586 $(FPU_NONE) $(TUNE_586) $(OPT_UARCH_SCAL) --param l1-cache-size=16 --param l2-cache-size=0 +dmnp/vortex86dx := $(___) -march=i586 $(FPU_387) $(TUNE_586) $(OPT_UARCH_SCAL) --param l1-cache-size=16 --param l2-cache-size=256 +dmnp/vortex86mx := $(___) -march=i586 $(FPU_387) $(TUNE_586) $(OPT_UARCH_SCAL) --param l1-cache-size=16 --param l2-cache-size=256 +dmnp/vortex86mxp := $(___) -march=i586 $(FPU_387) $(TUNE_586) $(OPT_UARCH_SCAL) --param l1-cache-size=16 --param l2-cache-size=256 +dmnp/vortex86dx2 := $(___) -march=i586 $(FPU_387) $(TUNE_586) $(OPT_UARCH_SCAL) --param l1-cache-size=16 --param l2-cache-size=256 +dmnp/vortex86ex := $(___) -march=i586 $(FPU_387) $(TUNE_586) $(OPT_UARCH_SCAL) --param l1-cache-size=16 --param l2-cache-size=128 +dmnp/vortex86dx3 := $(___) -march=i686 $(FPU_SSE) $(TUNE_686SSE) $(OPT_UARCH_SCAL_128) --param l1-cache-size=32 --param l2-cache-size=256 +dmnp/vortex86ex2 := $(___) -march=i686 $(FPU_SSE) $(TUNE_686SSE) $(OPT_UARCH_SCAL_128) --param l1-cache-size=32 --param l2-cache-size=128 |
From: <sv...@op...> - 2024-12-05 09:02:42
|
Author: manx Date: Thu Dec 5 10:02:30 2024 New Revision: 22473 URL: https://source.openmpt.org/browse/openmpt/?op=revision&rev=22473 Log: [Imp] build: CI: GitHub: CPA: FreeBSD:Update FreeBSD 14 to 14.2. See r22467. Modified: branches/OpenMPT-1.30/.github/workflows/FreeBSD-14.1-Makefile.yml Modified: branches/OpenMPT-1.30/.github/workflows/FreeBSD-14.1-Makefile.yml ============================================================================== --- branches/OpenMPT-1.30/.github/workflows/FreeBSD-14.1-Makefile.yml Thu Dec 5 10:01:48 2024 (r22472) +++ branches/OpenMPT-1.30/.github/workflows/FreeBSD-14.1-Makefile.yml Thu Dec 5 10:02:30 2024 (r22473) @@ -1,4 +1,4 @@ -name: FreeBSD 14.1 Makefile +name: FreeBSD 14.2 Makefile on: push: @@ -22,7 +22,7 @@ architecture: x86_64 memory: 4G operating_system: freebsd - version: '14.1' + version: '14.2' shell: bash sync_files: runner-to-vm shutdown_vm: false @@ -33,7 +33,7 @@ architecture: x86_64 memory: 4G operating_system: freebsd - version: '14.1' + version: '14.2' shell: bash sync_files: false shutdown_vm: false @@ -46,7 +46,7 @@ architecture: x86_64 memory: 4G operating_system: freebsd - version: '14.1' + version: '14.2' shell: bash sync_files: false shutdown_vm: false @@ -58,7 +58,7 @@ architecture: x86_64 memory: 4G operating_system: freebsd - version: '14.1' + version: '14.2' shell: bash sync_files: false shutdown_vm: false @@ -70,7 +70,7 @@ architecture: x86_64 memory: 4G operating_system: freebsd - version: '14.1' + version: '14.2' shell: bash sync_files: false shutdown_vm: true |
From: <sv...@op...> - 2024-12-05 09:02:00
|
Author: manx Date: Thu Dec 5 10:01:48 2024 New Revision: 22472 URL: https://source.openmpt.org/browse/openmpt/?op=revision&rev=22472 Log: Merged revision(s) 22471 from branches/OpenMPT-1.29: Merged revision(s) 22470 from branches/OpenMPT-1.30: [Var] build: CI: GitHub: CPA: Update to 0.26.0. See r22466. ........ ........ Modified: branches/OpenMPT-1.28/ (props changed) branches/OpenMPT-1.28/.github/workflows/FreeBSD-13.4-Makefile.yml Modified: branches/OpenMPT-1.28/.github/workflows/FreeBSD-13.4-Makefile.yml ============================================================================== --- branches/OpenMPT-1.28/.github/workflows/FreeBSD-13.4-Makefile.yml Thu Dec 5 10:01:04 2024 (r22471) +++ branches/OpenMPT-1.28/.github/workflows/FreeBSD-13.4-Makefile.yml Thu Dec 5 10:01:48 2024 (r22472) @@ -17,7 +17,7 @@ - name: Checkout uses: actions/checkout@v4 - name: Startup VM - uses: cross-platform-actions/action@c306e1ae6fbb31dd74f8e0d052794224b92fec42 + uses: cross-platform-actions/action@v0.26.0 with: architecture: x86_64 memory: 4G @@ -28,7 +28,7 @@ shutdown_vm: false run: true - name: Install dependencies - uses: cross-platform-actions/action@c306e1ae6fbb31dd74f8e0d052794224b92fec42 + uses: cross-platform-actions/action@v0.26.0 with: architecture: x86_64 memory: 4G @@ -41,7 +41,7 @@ sudo pkg upgrade -y sudo pkg install -y subversion p5-XML-XPath git mawk gmake pkgconf autoconf autoconf-archive automake libtool help2man doxygen mpg123 libogg libvorbis flac libsndfile pulseaudio portaudio sdl2 - name: Build - uses: cross-platform-actions/action@c306e1ae6fbb31dd74f8e0d052794224b92fec42 + uses: cross-platform-actions/action@v0.26.0 with: architecture: x86_64 memory: 4G @@ -53,7 +53,7 @@ run: | gmake -j$(sysctl -n hw.ncpu) STRICT=1 VERBOSE=1 AUTO_DEPS=1 - name: Test - uses: cross-platform-actions/action@c306e1ae6fbb31dd74f8e0d052794224b92fec42 + uses: cross-platform-actions/action@v0.26.0 with: architecture: x86_64 memory: 4G @@ -65,7 +65,7 @@ run: | gmake -j$(sysctl -n hw.ncpu) STRICT=1 VERBOSE=1 AUTO_DEPS=1 check - name: Shutdown VM - uses: cross-platform-actions/action@c306e1ae6fbb31dd74f8e0d052794224b92fec42 + uses: cross-platform-actions/action@v0.26.0 with: architecture: x86_64 memory: 4G |
From: <sv...@op...> - 2024-12-05 09:01:16
|
Author: manx Date: Thu Dec 5 10:01:04 2024 New Revision: 22471 URL: https://source.openmpt.org/browse/openmpt/?op=revision&rev=22471 Log: Merged revision(s) 22470 from branches/OpenMPT-1.30: [Var] build: CI: GitHub: CPA: Update to 0.26.0. See r22466. ........ Modified: branches/OpenMPT-1.29/ (props changed) branches/OpenMPT-1.29/.github/workflows/FreeBSD-13.4-Makefile.yml Modified: branches/OpenMPT-1.29/.github/workflows/FreeBSD-13.4-Makefile.yml ============================================================================== --- branches/OpenMPT-1.29/.github/workflows/FreeBSD-13.4-Makefile.yml Thu Dec 5 10:00:20 2024 (r22470) +++ branches/OpenMPT-1.29/.github/workflows/FreeBSD-13.4-Makefile.yml Thu Dec 5 10:01:04 2024 (r22471) @@ -17,7 +17,7 @@ - name: Checkout uses: actions/checkout@v4 - name: Startup VM - uses: cross-platform-actions/action@c306e1ae6fbb31dd74f8e0d052794224b92fec42 + uses: cross-platform-actions/action@v0.26.0 with: architecture: x86_64 memory: 4G @@ -28,7 +28,7 @@ shutdown_vm: false run: true - name: Install dependencies - uses: cross-platform-actions/action@c306e1ae6fbb31dd74f8e0d052794224b92fec42 + uses: cross-platform-actions/action@v0.26.0 with: architecture: x86_64 memory: 4G @@ -41,7 +41,7 @@ sudo pkg upgrade -y sudo pkg install -y subversion p5-XML-XPath git mawk gmake pkgconf autoconf autoconf-archive automake libtool help2man doxygen mpg123 libogg libvorbis flac libsndfile pulseaudio portaudio sdl2 - name: Build - uses: cross-platform-actions/action@c306e1ae6fbb31dd74f8e0d052794224b92fec42 + uses: cross-platform-actions/action@v0.26.0 with: architecture: x86_64 memory: 4G @@ -53,7 +53,7 @@ run: | gmake -j$(sysctl -n hw.ncpu) STRICT=1 VERBOSE=1 AUTO_DEPS=1 - name: Test - uses: cross-platform-actions/action@c306e1ae6fbb31dd74f8e0d052794224b92fec42 + uses: cross-platform-actions/action@v0.26.0 with: architecture: x86_64 memory: 4G @@ -65,7 +65,7 @@ run: | gmake -j$(sysctl -n hw.ncpu) STRICT=1 VERBOSE=1 AUTO_DEPS=1 check - name: Shutdown VM - uses: cross-platform-actions/action@c306e1ae6fbb31dd74f8e0d052794224b92fec42 + uses: cross-platform-actions/action@v0.26.0 with: architecture: x86_64 memory: 4G |
From: <sv...@op...> - 2024-12-05 09:00:27
|
Author: manx Date: Thu Dec 5 10:00:20 2024 New Revision: 22470 URL: https://source.openmpt.org/browse/openmpt/?op=revision&rev=22470 Log: [Var] build: CI: GitHub: CPA: Update to 0.26.0. See r22466. Modified: branches/OpenMPT-1.30/.github/workflows/FreeBSD-13.4-Makefile.yml branches/OpenMPT-1.30/.github/workflows/FreeBSD-14.1-Makefile.yml branches/OpenMPT-1.30/.github/workflows/OpenBSD-7.4-Makefile.yml branches/OpenMPT-1.30/.github/workflows/OpenBSD-7.5-Makefile.yml Modified: branches/OpenMPT-1.30/.github/workflows/FreeBSD-13.4-Makefile.yml ============================================================================== --- branches/OpenMPT-1.30/.github/workflows/FreeBSD-13.4-Makefile.yml Thu Dec 5 09:59:08 2024 (r22469) +++ branches/OpenMPT-1.30/.github/workflows/FreeBSD-13.4-Makefile.yml Thu Dec 5 10:00:20 2024 (r22470) @@ -17,7 +17,7 @@ - name: Checkout uses: actions/checkout@v4 - name: Startup VM - uses: cross-platform-actions/action@c306e1ae6fbb31dd74f8e0d052794224b92fec42 + uses: cross-platform-actions/action@v0.26.0 with: architecture: x86_64 memory: 4G @@ -28,7 +28,7 @@ shutdown_vm: false run: true - name: Install dependencies - uses: cross-platform-actions/action@c306e1ae6fbb31dd74f8e0d052794224b92fec42 + uses: cross-platform-actions/action@v0.26.0 with: architecture: x86_64 memory: 4G @@ -41,7 +41,7 @@ sudo pkg upgrade -y sudo pkg install -y subversion p5-XML-XPath git mawk gmake pkgconf autoconf autoconf-archive automake libtool help2man doxygen mpg123 libogg libvorbis flac libsndfile pulseaudio portaudio sdl2 - name: Build - uses: cross-platform-actions/action@c306e1ae6fbb31dd74f8e0d052794224b92fec42 + uses: cross-platform-actions/action@v0.26.0 with: architecture: x86_64 memory: 4G @@ -53,7 +53,7 @@ run: | gmake -j$(sysctl -n hw.ncpu) STRICT=1 VERBOSE=1 AUTO_DEPS=1 - name: Test - uses: cross-platform-actions/action@c306e1ae6fbb31dd74f8e0d052794224b92fec42 + uses: cross-platform-actions/action@v0.26.0 with: architecture: x86_64 memory: 4G @@ -65,7 +65,7 @@ run: | gmake -j$(sysctl -n hw.ncpu) STRICT=1 VERBOSE=1 AUTO_DEPS=1 check - name: Shutdown VM - uses: cross-platform-actions/action@c306e1ae6fbb31dd74f8e0d052794224b92fec42 + uses: cross-platform-actions/action@v0.26.0 with: architecture: x86_64 memory: 4G Modified: branches/OpenMPT-1.30/.github/workflows/FreeBSD-14.1-Makefile.yml ============================================================================== --- branches/OpenMPT-1.30/.github/workflows/FreeBSD-14.1-Makefile.yml Thu Dec 5 09:59:08 2024 (r22469) +++ branches/OpenMPT-1.30/.github/workflows/FreeBSD-14.1-Makefile.yml Thu Dec 5 10:00:20 2024 (r22470) @@ -17,7 +17,7 @@ - name: Checkout uses: actions/checkout@v4 - name: Startup VM - uses: cross-platform-actions/action@v0.25.0 + uses: cross-platform-actions/action@v0.26.0 with: architecture: x86_64 memory: 4G @@ -28,7 +28,7 @@ shutdown_vm: false run: true - name: Install dependencies - uses: cross-platform-actions/action@v0.25.0 + uses: cross-platform-actions/action@v0.26.0 with: architecture: x86_64 memory: 4G @@ -41,7 +41,7 @@ sudo pkg upgrade -y sudo pkg install -y subversion p5-XML-XPath git mawk gmake pkgconf autoconf autoconf-archive automake libtool help2man doxygen mpg123 libogg libvorbis flac libsndfile pulseaudio portaudio sdl2 - name: Build - uses: cross-platform-actions/action@v0.25.0 + uses: cross-platform-actions/action@v0.26.0 with: architecture: x86_64 memory: 4G @@ -53,7 +53,7 @@ run: | gmake -j$(sysctl -n hw.ncpu) STRICT=1 VERBOSE=1 AUTO_DEPS=1 - name: Test - uses: cross-platform-actions/action@v0.25.0 + uses: cross-platform-actions/action@v0.26.0 with: architecture: x86_64 memory: 4G @@ -65,7 +65,7 @@ run: | gmake -j$(sysctl -n hw.ncpu) STRICT=1 VERBOSE=1 AUTO_DEPS=1 check - name: Shutdown VM - uses: cross-platform-actions/action@v0.25.0 + uses: cross-platform-actions/action@v0.26.0 with: architecture: x86_64 memory: 4G Modified: branches/OpenMPT-1.30/.github/workflows/OpenBSD-7.4-Makefile.yml ============================================================================== --- branches/OpenMPT-1.30/.github/workflows/OpenBSD-7.4-Makefile.yml Thu Dec 5 09:59:08 2024 (r22469) +++ branches/OpenMPT-1.30/.github/workflows/OpenBSD-7.4-Makefile.yml Thu Dec 5 10:00:20 2024 (r22470) @@ -17,7 +17,7 @@ - name: Checkout uses: actions/checkout@v4 - name: Startup VM - uses: cross-platform-actions/action@v0.25.0 + uses: cross-platform-actions/action@v0.26.0 with: architecture: x86_64 memory: 4G @@ -28,7 +28,7 @@ shutdown_vm: false run: true - name: Install dependencies - uses: cross-platform-actions/action@v0.25.0 + uses: cross-platform-actions/action@v0.26.0 with: architecture: x86_64 memory: 4G @@ -43,7 +43,7 @@ sudo pkg_add -I autoconf-2.71 automake-1.16.5 sudo pkg_add -I subversion p5-XML-XPath git mawk gmake pkgconf autoconf-archive libtool libltdl help2man doxygen mpg123 libogg libvorbis flac libsndfile pulseaudio portaudio-svn sdl2 - name: Build - uses: cross-platform-actions/action@v0.25.0 + uses: cross-platform-actions/action@v0.26.0 with: architecture: x86_64 memory: 4G @@ -55,7 +55,7 @@ run: | gmake -j$(sysctl -n hw.ncpu) STRICT=1 VERBOSE=1 AUTO_DEPS=1 - name: Test - uses: cross-platform-actions/action@v0.25.0 + uses: cross-platform-actions/action@v0.26.0 with: architecture: x86_64 memory: 4G @@ -67,7 +67,7 @@ run: | gmake -j$(sysctl -n hw.ncpu) STRICT=1 VERBOSE=1 AUTO_DEPS=1 check - name: Shutdown VM - uses: cross-platform-actions/action@v0.25.0 + uses: cross-platform-actions/action@v0.26.0 with: architecture: x86_64 memory: 4G Modified: branches/OpenMPT-1.30/.github/workflows/OpenBSD-7.5-Makefile.yml ============================================================================== --- branches/OpenMPT-1.30/.github/workflows/OpenBSD-7.5-Makefile.yml Thu Dec 5 09:59:08 2024 (r22469) +++ branches/OpenMPT-1.30/.github/workflows/OpenBSD-7.5-Makefile.yml Thu Dec 5 10:00:20 2024 (r22470) @@ -17,7 +17,7 @@ - name: Checkout uses: actions/checkout@v4 - name: Startup VM - uses: cross-platform-actions/action@v0.25.0 + uses: cross-platform-actions/action@v0.26.0 with: architecture: x86_64 memory: 4G @@ -28,7 +28,7 @@ shutdown_vm: false run: true - name: Install dependencies - uses: cross-platform-actions/action@v0.25.0 + uses: cross-platform-actions/action@v0.26.0 with: architecture: x86_64 memory: 4G @@ -43,7 +43,7 @@ sudo pkg_add -I autoconf-2.71 automake-1.16.5 sudo pkg_add -I subversion p5-XML-XPath git mawk gmake pkgconf autoconf-archive libtool libltdl help2man doxygen mpg123 libogg libvorbis flac libsndfile pulseaudio portaudio-svn sdl2 - name: Build - uses: cross-platform-actions/action@v0.25.0 + uses: cross-platform-actions/action@v0.26.0 with: architecture: x86_64 memory: 4G @@ -55,7 +55,7 @@ run: | gmake -j$(sysctl -n hw.ncpu) STRICT=1 VERBOSE=1 AUTO_DEPS=1 - name: Test - uses: cross-platform-actions/action@v0.25.0 + uses: cross-platform-actions/action@v0.26.0 with: architecture: x86_64 memory: 4G @@ -67,7 +67,7 @@ run: | gmake -j$(sysctl -n hw.ncpu) STRICT=1 VERBOSE=1 AUTO_DEPS=1 check - name: Shutdown VM - uses: cross-platform-actions/action@v0.25.0 + uses: cross-platform-actions/action@v0.26.0 with: architecture: x86_64 memory: 4G |
From: <sv...@op...> - 2024-12-05 08:59:15
|
Author: manx Date: Thu Dec 5 09:59:08 2024 New Revision: 22469 URL: https://source.openmpt.org/browse/openmpt/?op=revision&rev=22469 Log: Merged revision(s) 22467 from trunk/OpenMPT: [Imp] build: CI: GitHub: CPA: FreeBSD:Update FreeBSD 14 to 14.2. ........ Modified: branches/OpenMPT-1.31/ (props changed) branches/OpenMPT-1.31/.github/workflows/FreeBSD-Autotools.yml branches/OpenMPT-1.31/.github/workflows/FreeBSD-Makefile.yml Modified: branches/OpenMPT-1.31/.github/workflows/FreeBSD-Autotools.yml ============================================================================== --- branches/OpenMPT-1.31/.github/workflows/FreeBSD-Autotools.yml Thu Dec 5 09:58:40 2024 (r22468) +++ branches/OpenMPT-1.31/.github/workflows/FreeBSD-Autotools.yml Thu Dec 5 09:59:08 2024 (r22469) @@ -11,7 +11,7 @@ fail-fast: false matrix: include: - - { version: '14.1' } + - { version: '14.2' } - { version: '13.4' } concurrency: Modified: branches/OpenMPT-1.31/.github/workflows/FreeBSD-Makefile.yml ============================================================================== --- branches/OpenMPT-1.31/.github/workflows/FreeBSD-Makefile.yml Thu Dec 5 09:58:40 2024 (r22468) +++ branches/OpenMPT-1.31/.github/workflows/FreeBSD-Makefile.yml Thu Dec 5 09:59:08 2024 (r22469) @@ -11,9 +11,9 @@ fail-fast: false matrix: include: - - { version: '14.1', deps: sys } - - { version: '14.1', deps: local } - - { version: '14.1', deps: small } + - { version: '14.2', deps: sys } + - { version: '14.2', deps: local } + - { version: '14.2', deps: small } - { version: '13.4', deps: sys } - { version: '13.4', deps: local } - { version: '13.4', deps: small } |
From: <sv...@op...> - 2024-12-05 08:58:48
|
Author: manx Date: Thu Dec 5 09:58:40 2024 New Revision: 22468 URL: https://source.openmpt.org/browse/openmpt/?op=revision&rev=22468 Log: Merged revision(s) 22466 from trunk/OpenMPT: [Var] build: CI: GitHub: CPA: Update to 0.26.0. ........ Modified: branches/OpenMPT-1.31/ (props changed) branches/OpenMPT-1.31/.github/workflows/FreeBSD-Autotools.yml branches/OpenMPT-1.31/.github/workflows/FreeBSD-Makefile.yml branches/OpenMPT-1.31/.github/workflows/NetBSD-Autotools.yml branches/OpenMPT-1.31/.github/workflows/NetBSD-Makefile.yml branches/OpenMPT-1.31/.github/workflows/OpenBSD-Autotools.yml branches/OpenMPT-1.31/.github/workflows/OpenBSD-Makefile.yml Modified: branches/OpenMPT-1.31/.github/workflows/FreeBSD-Autotools.yml ============================================================================== --- branches/OpenMPT-1.31/.github/workflows/FreeBSD-Autotools.yml Thu Dec 5 09:58:09 2024 (r22467) +++ branches/OpenMPT-1.31/.github/workflows/FreeBSD-Autotools.yml Thu Dec 5 09:58:40 2024 (r22468) @@ -24,7 +24,7 @@ - name: Checkout uses: actions/checkout@v4 - name: Startup VM - uses: cross-platform-actions/action@c306e1ae6fbb31dd74f8e0d052794224b92fec42 + uses: cross-platform-actions/action@v0.26.0 with: architecture: x86_64 memory: 4G @@ -35,7 +35,7 @@ shutdown_vm: false run: true - name: Install dependencies - uses: cross-platform-actions/action@c306e1ae6fbb31dd74f8e0d052794224b92fec42 + uses: cross-platform-actions/action@v0.26.0 with: architecture: x86_64 memory: 4G @@ -48,7 +48,7 @@ sudo pkg upgrade -y sudo pkg install -y subversion p5-XML-XPath git mawk gmake pkgconf autoconf autoconf-archive automake libtool help2man doxygen mpg123 libogg libvorbis flac libsndfile pulseaudio portaudio sdl2 - name: Build - uses: cross-platform-actions/action@c306e1ae6fbb31dd74f8e0d052794224b92fec42 + uses: cross-platform-actions/action@v0.26.0 with: architecture: x86_64 memory: 4G @@ -60,7 +60,7 @@ run: | export MAKEFLAGS="-j$(sysctl -n hw.ncpu)"; ./build/autotools/autoconfiscate.sh - name: Shutdown VM - uses: cross-platform-actions/action@c306e1ae6fbb31dd74f8e0d052794224b92fec42 + uses: cross-platform-actions/action@v0.26.0 with: architecture: x86_64 memory: 4G Modified: branches/OpenMPT-1.31/.github/workflows/FreeBSD-Makefile.yml ============================================================================== --- branches/OpenMPT-1.31/.github/workflows/FreeBSD-Makefile.yml Thu Dec 5 09:58:09 2024 (r22467) +++ branches/OpenMPT-1.31/.github/workflows/FreeBSD-Makefile.yml Thu Dec 5 09:58:40 2024 (r22468) @@ -28,7 +28,7 @@ - name: Checkout uses: actions/checkout@v4 - name: Startup VM - uses: cross-platform-actions/action@c306e1ae6fbb31dd74f8e0d052794224b92fec42 + uses: cross-platform-actions/action@v0.26.0 with: architecture: x86_64 memory: 4G @@ -39,7 +39,7 @@ shutdown_vm: false run: true - name: Install dependencies - uses: cross-platform-actions/action@c306e1ae6fbb31dd74f8e0d052794224b92fec42 + uses: cross-platform-actions/action@v0.26.0 with: architecture: x86_64 memory: 4G @@ -52,7 +52,7 @@ sudo pkg upgrade -y sudo pkg install -y subversion p5-XML-XPath git mawk gmake pkgconf autoconf autoconf-archive automake libtool help2man doxygen mpg123 libogg libvorbis flac libsndfile pulseaudio portaudio sdl2 - name: Build - uses: cross-platform-actions/action@c306e1ae6fbb31dd74f8e0d052794224b92fec42 + uses: cross-platform-actions/action@v0.26.0 with: architecture: x86_64 memory: 4G @@ -64,7 +64,7 @@ run: | gmake -j$(sysctl -n hw.ncpu) STRICT=1 VERBOSE=1 ${{ (matrix.deps == 'sys') && 'AUTO_DEPS=1' || (matrix.deps == 'local') && 'LOCAL_ZLIB=1 LOCAL_MPG123=1 LOCAL_OGG=1 LOCAL_VORBIS=1 NO_PORTAUDIO=1 NO_PORTAUDIOCPP=1 NO_PULSEAUDIO=1 NO_SDL2=1 NO_FLAC=1 NO_SNDFILE=1' || 'NO_ZLIB=1 NO_MPG123=1 NO_OGG=1 NO_VORBIS=1 NO_VORBISFILE=1 NO_PORTAUDIO=1 NO_PORTAUDIOCPP=1 NO_PULSEAUDIO=1 NO_SDL2=1 NO_FLAC=1 NO_SNDFILE=1' }} - name: Test - uses: cross-platform-actions/action@c306e1ae6fbb31dd74f8e0d052794224b92fec42 + uses: cross-platform-actions/action@v0.26.0 with: architecture: x86_64 memory: 4G @@ -76,7 +76,7 @@ run: | gmake -j$(sysctl -n hw.ncpu) STRICT=1 VERBOSE=1 ${{ (matrix.deps == 'sys') && 'AUTO_DEPS=1' || (matrix.deps == 'local') && 'LOCAL_ZLIB=1 LOCAL_MPG123=1 LOCAL_OGG=1 LOCAL_VORBIS=1 NO_PORTAUDIO=1 NO_PORTAUDIOCPP=1 NO_PULSEAUDIO=1 NO_SDL2=1 NO_FLAC=1 NO_SNDFILE=1' || 'NO_ZLIB=1 NO_MPG123=1 NO_OGG=1 NO_VORBIS=1 NO_VORBISFILE=1 NO_PORTAUDIO=1 NO_PORTAUDIOCPP=1 NO_PULSEAUDIO=1 NO_SDL2=1 NO_FLAC=1 NO_SNDFILE=1' }} check - name: Shutdown VM - uses: cross-platform-actions/action@c306e1ae6fbb31dd74f8e0d052794224b92fec42 + uses: cross-platform-actions/action@v0.26.0 with: architecture: x86_64 memory: 4G Modified: branches/OpenMPT-1.31/.github/workflows/NetBSD-Autotools.yml ============================================================================== --- branches/OpenMPT-1.31/.github/workflows/NetBSD-Autotools.yml Thu Dec 5 09:58:09 2024 (r22467) +++ branches/OpenMPT-1.31/.github/workflows/NetBSD-Autotools.yml Thu Dec 5 09:58:40 2024 (r22468) @@ -24,7 +24,7 @@ - name: Checkout uses: actions/checkout@v4 - name: Startup VM - uses: cross-platform-actions/action@v0.25.0 + uses: cross-platform-actions/action@v0.26.0 with: architecture: x86_64 memory: 4G @@ -35,7 +35,7 @@ shutdown_vm: false run: true - name: Install dependencies - uses: cross-platform-actions/action@v0.25.0 + uses: cross-platform-actions/action@v0.26.0 with: architecture: x86_64 memory: 4G @@ -53,7 +53,7 @@ sudo pkgin -y install autoconf autoconf-archive automake libtool libltdl sudo pkgin -y install doxygen help2man - name: Build - uses: cross-platform-actions/action@v0.25.0 + uses: cross-platform-actions/action@v0.26.0 with: architecture: x86_64 memory: 4G @@ -65,7 +65,7 @@ run: | export MAKEFLAGS="-j4"; ./build/autotools/autoconfiscate.sh - name: Shutdown VM - uses: cross-platform-actions/action@v0.25.0 + uses: cross-platform-actions/action@v0.26.0 with: architecture: x86_64 memory: 4G Modified: branches/OpenMPT-1.31/.github/workflows/NetBSD-Makefile.yml ============================================================================== --- branches/OpenMPT-1.31/.github/workflows/NetBSD-Makefile.yml Thu Dec 5 09:58:09 2024 (r22467) +++ branches/OpenMPT-1.31/.github/workflows/NetBSD-Makefile.yml Thu Dec 5 09:58:40 2024 (r22468) @@ -28,7 +28,7 @@ - name: Checkout uses: actions/checkout@v4 - name: Startup VM - uses: cross-platform-actions/action@v0.25.0 + uses: cross-platform-actions/action@v0.26.0 with: architecture: x86_64 memory: 4G @@ -39,7 +39,7 @@ shutdown_vm: false run: true - name: Install dependencies - uses: cross-platform-actions/action@v0.25.0 + uses: cross-platform-actions/action@v0.26.0 with: architecture: x86_64 memory: 4G @@ -57,7 +57,7 @@ sudo pkgin -y install autoconf autoconf-archive automake libtool libltdl sudo pkgin -y install doxygen help2man - name: Build - uses: cross-platform-actions/action@v0.25.0 + uses: cross-platform-actions/action@v0.26.0 with: architecture: x86_64 memory: 4G @@ -69,7 +69,7 @@ run: | gmake -j4 STRICT=1 VERBOSE=1 ${{ (matrix.deps == 'sys') && 'AUTO_DEPS=1' || (matrix.deps == 'local') && 'LOCAL_ZLIB=1 LOCAL_MPG123=1 LOCAL_OGG=1 LOCAL_VORBIS=1 NO_PORTAUDIO=1 NO_PORTAUDIOCPP=1 NO_PULSEAUDIO=1 NO_SDL2=1 NO_FLAC=1 NO_SNDFILE=1' || 'NO_ZLIB=1 NO_MPG123=1 NO_OGG=1 NO_VORBIS=1 NO_VORBISFILE=1 NO_PORTAUDIO=1 NO_PORTAUDIOCPP=1 NO_PULSEAUDIO=1 NO_SDL2=1 NO_FLAC=1 NO_SNDFILE=1' }} - name: Test - uses: cross-platform-actions/action@v0.25.0 + uses: cross-platform-actions/action@v0.26.0 with: architecture: x86_64 memory: 4G @@ -81,7 +81,7 @@ run: | gmake -j4 STRICT=1 VERBOSE=1 ${{ (matrix.deps == 'sys') && 'AUTO_DEPS=1' || (matrix.deps == 'local') && 'LOCAL_ZLIB=1 LOCAL_MPG123=1 LOCAL_OGG=1 LOCAL_VORBIS=1 NO_PORTAUDIO=1 NO_PORTAUDIOCPP=1 NO_PULSEAUDIO=1 NO_SDL2=1 NO_FLAC=1 NO_SNDFILE=1' || 'NO_ZLIB=1 NO_MPG123=1 NO_OGG=1 NO_VORBIS=1 NO_VORBISFILE=1 NO_PORTAUDIO=1 NO_PORTAUDIOCPP=1 NO_PULSEAUDIO=1 NO_SDL2=1 NO_FLAC=1 NO_SNDFILE=1' }} check - name: Shutdown VM - uses: cross-platform-actions/action@v0.25.0 + uses: cross-platform-actions/action@v0.26.0 with: architecture: x86_64 memory: 4G Modified: branches/OpenMPT-1.31/.github/workflows/OpenBSD-Autotools.yml ============================================================================== --- branches/OpenMPT-1.31/.github/workflows/OpenBSD-Autotools.yml Thu Dec 5 09:58:09 2024 (r22467) +++ branches/OpenMPT-1.31/.github/workflows/OpenBSD-Autotools.yml Thu Dec 5 09:58:40 2024 (r22468) @@ -25,7 +25,7 @@ - name: Checkout uses: actions/checkout@v4 - name: Startup VM - uses: cross-platform-actions/action@595d543e5d1aeb6d48c0a176965028afe56c7018 + uses: cross-platform-actions/action@v0.26.0 with: architecture: x86_64 memory: 4G @@ -36,7 +36,7 @@ shutdown_vm: false run: true - name: Install dependencies - uses: cross-platform-actions/action@595d543e5d1aeb6d48c0a176965028afe56c7018 + uses: cross-platform-actions/action@v0.26.0 with: architecture: x86_64 memory: 4G @@ -51,7 +51,7 @@ sudo pkg_add -I ${{ (matrix.version == '7.6') && 'autoconf-2.72p0 automake-1.16.5' || (matrix.version == '7.5') && 'autoconf-2.71 automake-1.16.5' || (matrix.version == '7.4') && 'autoconf-2.71 automake-1.16.5' || 'autoconf automake' }} sudo pkg_add -I subversion p5-XML-XPath git mawk gmake pkgconf autoconf-archive libtool libltdl help2man doxygen mpg123 libogg libvorbis flac libsndfile pulseaudio portaudio-svn sdl2 - name: Build - uses: cross-platform-actions/action@595d543e5d1aeb6d48c0a176965028afe56c7018 + uses: cross-platform-actions/action@v0.26.0 with: architecture: x86_64 memory: 4G @@ -63,7 +63,7 @@ run: | export MAKEFLAGS="-j$(sysctl -n hw.ncpu)"; ${{ (matrix.version == '7.6') && 'export AUTOCONF_VERSION=2.72' || (matrix.version == '7.5') && 'export AUTOCONF_VERSION=2.71' || (matrix.version == '7.4') && 'export AUTOCONF_VERSION=2.71' || '' }} ; ${{ (matrix.version == '7.6') && 'export AUTOMAKE_VERSION=1.16' || (matrix.version == '7.5') && 'export AUTOMAKE_VERSION=1.16' || (matrix.version == '7.4') && 'export AUTOMAKE_VERSION=1.16' || '' }} ;./build/autotools/autoconfiscate.sh - name: Shutdown VM - uses: cross-platform-actions/action@595d543e5d1aeb6d48c0a176965028afe56c7018 + uses: cross-platform-actions/action@v0.26.0 with: architecture: x86_64 memory: 4G Modified: branches/OpenMPT-1.31/.github/workflows/OpenBSD-Makefile.yml ============================================================================== --- branches/OpenMPT-1.31/.github/workflows/OpenBSD-Makefile.yml Thu Dec 5 09:58:09 2024 (r22467) +++ branches/OpenMPT-1.31/.github/workflows/OpenBSD-Makefile.yml Thu Dec 5 09:58:40 2024 (r22468) @@ -31,7 +31,7 @@ - name: Checkout uses: actions/checkout@v4 - name: Startup VM - uses: cross-platform-actions/action@595d543e5d1aeb6d48c0a176965028afe56c7018 + uses: cross-platform-actions/action@v0.26.0 with: architecture: x86_64 memory: 4G @@ -42,7 +42,7 @@ shutdown_vm: false run: true - name: Install dependencies - uses: cross-platform-actions/action@595d543e5d1aeb6d48c0a176965028afe56c7018 + uses: cross-platform-actions/action@v0.26.0 with: architecture: x86_64 memory: 4G @@ -57,7 +57,7 @@ sudo pkg_add -I ${{ (matrix.version == '7.6') && 'autoconf-2.72p0 automake-1.16.5' || (matrix.version == '7.5') && 'autoconf-2.71 automake-1.16.5' || (matrix.version == '7.4') && 'autoconf-2.71 automake-1.16.5' || 'autoconf automake' }} sudo pkg_add -I subversion p5-XML-XPath git mawk gmake pkgconf autoconf-archive libtool libltdl help2man doxygen mpg123 libogg libvorbis flac libsndfile pulseaudio portaudio-svn sdl2 - name: Build - uses: cross-platform-actions/action@595d543e5d1aeb6d48c0a176965028afe56c7018 + uses: cross-platform-actions/action@v0.26.0 with: architecture: x86_64 memory: 4G @@ -69,7 +69,7 @@ run: | gmake -j$(sysctl -n hw.ncpu) STRICT=1 VERBOSE=1 ${{ (matrix.deps == 'sys') && 'AUTO_DEPS=1' || (matrix.deps == 'local') && 'LOCAL_ZLIB=1 LOCAL_MPG123=1 LOCAL_OGG=1 LOCAL_VORBIS=1 NO_PORTAUDIO=1 NO_PORTAUDIOCPP=1 NO_PULSEAUDIO=1 NO_SDL2=1 NO_FLAC=1 NO_SNDFILE=1' || 'NO_ZLIB=1 NO_MPG123=1 NO_OGG=1 NO_VORBIS=1 NO_VORBISFILE=1 NO_PORTAUDIO=1 NO_PORTAUDIOCPP=1 NO_PULSEAUDIO=1 NO_SDL2=1 NO_FLAC=1 NO_SNDFILE=1' }} - name: Test - uses: cross-platform-actions/action@595d543e5d1aeb6d48c0a176965028afe56c7018 + uses: cross-platform-actions/action@v0.26.0 with: architecture: x86_64 memory: 4G @@ -81,7 +81,7 @@ run: | gmake -j$(sysctl -n hw.ncpu) STRICT=1 VERBOSE=1 ${{ (matrix.deps == 'sys') && 'AUTO_DEPS=1' || (matrix.deps == 'local') && 'LOCAL_ZLIB=1 LOCAL_MPG123=1 LOCAL_OGG=1 LOCAL_VORBIS=1 NO_PORTAUDIO=1 NO_PORTAUDIOCPP=1 NO_PULSEAUDIO=1 NO_SDL2=1 NO_FLAC=1 NO_SNDFILE=1' || 'NO_ZLIB=1 NO_MPG123=1 NO_OGG=1 NO_VORBIS=1 NO_VORBISFILE=1 NO_PORTAUDIO=1 NO_PORTAUDIOCPP=1 NO_PULSEAUDIO=1 NO_SDL2=1 NO_FLAC=1 NO_SNDFILE=1' }} check - name: Shutdown VM - uses: cross-platform-actions/action@595d543e5d1aeb6d48c0a176965028afe56c7018 + uses: cross-platform-actions/action@v0.26.0 with: architecture: x86_64 memory: 4G |
From: <sv...@op...> - 2024-12-05 08:58:16
|
Author: manx Date: Thu Dec 5 09:58:09 2024 New Revision: 22467 URL: https://source.openmpt.org/browse/openmpt/?op=revision&rev=22467 Log: [Imp] build: CI: GitHub: CPA: FreeBSD:Update FreeBSD 14 to 14.2. Modified: trunk/OpenMPT/.github/workflows/FreeBSD-Autotools.yml trunk/OpenMPT/.github/workflows/FreeBSD-Makefile.yml Modified: trunk/OpenMPT/.github/workflows/FreeBSD-Autotools.yml ============================================================================== --- trunk/OpenMPT/.github/workflows/FreeBSD-Autotools.yml Thu Dec 5 09:57:34 2024 (r22466) +++ trunk/OpenMPT/.github/workflows/FreeBSD-Autotools.yml Thu Dec 5 09:58:09 2024 (r22467) @@ -13,7 +13,7 @@ fail-fast: false matrix: include: - - { version: '14.1' } + - { version: '14.2' } - { version: '13.4' } concurrency: Modified: trunk/OpenMPT/.github/workflows/FreeBSD-Makefile.yml ============================================================================== --- trunk/OpenMPT/.github/workflows/FreeBSD-Makefile.yml Thu Dec 5 09:57:34 2024 (r22466) +++ trunk/OpenMPT/.github/workflows/FreeBSD-Makefile.yml Thu Dec 5 09:58:09 2024 (r22467) @@ -13,9 +13,9 @@ fail-fast: false matrix: include: - - { version: '14.1', deps: sys } - - { version: '14.1', deps: local } - - { version: '14.1', deps: small } + - { version: '14.2', deps: sys } + - { version: '14.2', deps: local } + - { version: '14.2', deps: small } - { version: '13.4', deps: sys } - { version: '13.4', deps: local } - { version: '13.4', deps: small } |
From: <sv...@op...> - 2024-12-05 08:57:47
|
Author: manx Date: Thu Dec 5 09:57:34 2024 New Revision: 22466 URL: https://source.openmpt.org/browse/openmpt/?op=revision&rev=22466 Log: [Var] build: CI: GitHub: CPA: Update to 0.26.0. Modified: trunk/OpenMPT/.github/workflows/FreeBSD-Autotools.yml trunk/OpenMPT/.github/workflows/FreeBSD-Makefile.yml trunk/OpenMPT/.github/workflows/NetBSD-Autotools.yml trunk/OpenMPT/.github/workflows/NetBSD-Makefile.yml trunk/OpenMPT/.github/workflows/OpenBSD-Autotools.yml trunk/OpenMPT/.github/workflows/OpenBSD-Makefile.yml Modified: trunk/OpenMPT/.github/workflows/FreeBSD-Autotools.yml ============================================================================== --- trunk/OpenMPT/.github/workflows/FreeBSD-Autotools.yml Wed Dec 4 11:49:32 2024 (r22465) +++ trunk/OpenMPT/.github/workflows/FreeBSD-Autotools.yml Thu Dec 5 09:57:34 2024 (r22466) @@ -26,7 +26,7 @@ - name: Checkout uses: actions/checkout@v4 - name: Startup VM - uses: cross-platform-actions/action@c306e1ae6fbb31dd74f8e0d052794224b92fec42 + uses: cross-platform-actions/action@v0.26.0 with: architecture: x86_64 memory: 4G @@ -37,7 +37,7 @@ shutdown_vm: false run: true - name: Install dependencies - uses: cross-platform-actions/action@c306e1ae6fbb31dd74f8e0d052794224b92fec42 + uses: cross-platform-actions/action@v0.26.0 with: architecture: x86_64 memory: 4G @@ -50,7 +50,7 @@ sudo pkg upgrade -y sudo pkg install -y subversion p5-XML-XPath git mawk gmake pkgconf autoconf autoconf-archive automake libtool help2man doxygen mpg123 libogg libvorbis flac libsndfile pulseaudio portaudio sdl2 - name: Build - uses: cross-platform-actions/action@c306e1ae6fbb31dd74f8e0d052794224b92fec42 + uses: cross-platform-actions/action@v0.26.0 with: architecture: x86_64 memory: 4G @@ -62,7 +62,7 @@ run: | export MAKEFLAGS="-j$(sysctl -n hw.ncpu)"; ./build/autotools/autoconfiscate.sh - name: Shutdown VM - uses: cross-platform-actions/action@c306e1ae6fbb31dd74f8e0d052794224b92fec42 + uses: cross-platform-actions/action@v0.26.0 with: architecture: x86_64 memory: 4G Modified: trunk/OpenMPT/.github/workflows/FreeBSD-Makefile.yml ============================================================================== --- trunk/OpenMPT/.github/workflows/FreeBSD-Makefile.yml Wed Dec 4 11:49:32 2024 (r22465) +++ trunk/OpenMPT/.github/workflows/FreeBSD-Makefile.yml Thu Dec 5 09:57:34 2024 (r22466) @@ -30,7 +30,7 @@ - name: Checkout uses: actions/checkout@v4 - name: Startup VM - uses: cross-platform-actions/action@c306e1ae6fbb31dd74f8e0d052794224b92fec42 + uses: cross-platform-actions/action@v0.26.0 with: architecture: x86_64 memory: 4G @@ -41,7 +41,7 @@ shutdown_vm: false run: true - name: Install dependencies - uses: cross-platform-actions/action@c306e1ae6fbb31dd74f8e0d052794224b92fec42 + uses: cross-platform-actions/action@v0.26.0 with: architecture: x86_64 memory: 4G @@ -54,7 +54,7 @@ sudo pkg upgrade -y sudo pkg install -y subversion p5-XML-XPath git mawk gmake pkgconf autoconf autoconf-archive automake libtool help2man doxygen mpg123 libogg libvorbis flac libsndfile pulseaudio portaudio sdl2 - name: Build - uses: cross-platform-actions/action@c306e1ae6fbb31dd74f8e0d052794224b92fec42 + uses: cross-platform-actions/action@v0.26.0 with: architecture: x86_64 memory: 4G @@ -66,7 +66,7 @@ run: | gmake -j$(sysctl -n hw.ncpu) STRICT=1 VERBOSE=1 ${{ (matrix.deps == 'sys') && 'AUTO_DEPS=1' || (matrix.deps == 'local') && 'LOCAL_ZLIB=1 LOCAL_MPG123=1 LOCAL_OGG=1 LOCAL_VORBIS=1 NO_PORTAUDIO=1 NO_PORTAUDIOCPP=1 NO_PULSEAUDIO=1 NO_SDL2=1 NO_FLAC=1 NO_SNDFILE=1' || 'NO_ZLIB=1 NO_MPG123=1 NO_OGG=1 NO_VORBIS=1 NO_VORBISFILE=1 NO_PORTAUDIO=1 NO_PORTAUDIOCPP=1 NO_PULSEAUDIO=1 NO_SDL2=1 NO_FLAC=1 NO_SNDFILE=1' }} - name: Test - uses: cross-platform-actions/action@c306e1ae6fbb31dd74f8e0d052794224b92fec42 + uses: cross-platform-actions/action@v0.26.0 with: architecture: x86_64 memory: 4G @@ -78,7 +78,7 @@ run: | gmake -j$(sysctl -n hw.ncpu) STRICT=1 VERBOSE=1 ${{ (matrix.deps == 'sys') && 'AUTO_DEPS=1' || (matrix.deps == 'local') && 'LOCAL_ZLIB=1 LOCAL_MPG123=1 LOCAL_OGG=1 LOCAL_VORBIS=1 NO_PORTAUDIO=1 NO_PORTAUDIOCPP=1 NO_PULSEAUDIO=1 NO_SDL2=1 NO_FLAC=1 NO_SNDFILE=1' || 'NO_ZLIB=1 NO_MPG123=1 NO_OGG=1 NO_VORBIS=1 NO_VORBISFILE=1 NO_PORTAUDIO=1 NO_PORTAUDIOCPP=1 NO_PULSEAUDIO=1 NO_SDL2=1 NO_FLAC=1 NO_SNDFILE=1' }} check - name: Shutdown VM - uses: cross-platform-actions/action@c306e1ae6fbb31dd74f8e0d052794224b92fec42 + uses: cross-platform-actions/action@v0.26.0 with: architecture: x86_64 memory: 4G Modified: trunk/OpenMPT/.github/workflows/NetBSD-Autotools.yml ============================================================================== --- trunk/OpenMPT/.github/workflows/NetBSD-Autotools.yml Wed Dec 4 11:49:32 2024 (r22465) +++ trunk/OpenMPT/.github/workflows/NetBSD-Autotools.yml Thu Dec 5 09:57:34 2024 (r22466) @@ -26,7 +26,7 @@ - name: Checkout uses: actions/checkout@v4 - name: Startup VM - uses: cross-platform-actions/action@v0.25.0 + uses: cross-platform-actions/action@v0.26.0 with: architecture: x86_64 memory: 4G @@ -37,7 +37,7 @@ shutdown_vm: false run: true - name: Install dependencies - uses: cross-platform-actions/action@v0.25.0 + uses: cross-platform-actions/action@v0.26.0 with: architecture: x86_64 memory: 4G @@ -55,7 +55,7 @@ sudo pkgin -y install autoconf autoconf-archive automake libtool libltdl sudo pkgin -y install doxygen help2man - name: Build - uses: cross-platform-actions/action@v0.25.0 + uses: cross-platform-actions/action@v0.26.0 with: architecture: x86_64 memory: 4G @@ -67,7 +67,7 @@ run: | export MAKEFLAGS="-j4"; ./build/autotools/autoconfiscate.sh - name: Shutdown VM - uses: cross-platform-actions/action@v0.25.0 + uses: cross-platform-actions/action@v0.26.0 with: architecture: x86_64 memory: 4G Modified: trunk/OpenMPT/.github/workflows/NetBSD-Makefile.yml ============================================================================== --- trunk/OpenMPT/.github/workflows/NetBSD-Makefile.yml Wed Dec 4 11:49:32 2024 (r22465) +++ trunk/OpenMPT/.github/workflows/NetBSD-Makefile.yml Thu Dec 5 09:57:34 2024 (r22466) @@ -30,7 +30,7 @@ - name: Checkout uses: actions/checkout@v4 - name: Startup VM - uses: cross-platform-actions/action@v0.25.0 + uses: cross-platform-actions/action@v0.26.0 with: architecture: x86_64 memory: 4G @@ -41,7 +41,7 @@ shutdown_vm: false run: true - name: Install dependencies - uses: cross-platform-actions/action@v0.25.0 + uses: cross-platform-actions/action@v0.26.0 with: architecture: x86_64 memory: 4G @@ -59,7 +59,7 @@ sudo pkgin -y install autoconf autoconf-archive automake libtool libltdl sudo pkgin -y install doxygen help2man - name: Build - uses: cross-platform-actions/action@v0.25.0 + uses: cross-platform-actions/action@v0.26.0 with: architecture: x86_64 memory: 4G @@ -71,7 +71,7 @@ run: | gmake -j4 STRICT=1 VERBOSE=1 ${{ (matrix.deps == 'sys') && 'AUTO_DEPS=1' || (matrix.deps == 'local') && 'LOCAL_ZLIB=1 LOCAL_MPG123=1 LOCAL_OGG=1 LOCAL_VORBIS=1 NO_PORTAUDIO=1 NO_PORTAUDIOCPP=1 NO_PULSEAUDIO=1 NO_SDL2=1 NO_FLAC=1 NO_SNDFILE=1' || 'NO_ZLIB=1 NO_MPG123=1 NO_OGG=1 NO_VORBIS=1 NO_VORBISFILE=1 NO_PORTAUDIO=1 NO_PORTAUDIOCPP=1 NO_PULSEAUDIO=1 NO_SDL2=1 NO_FLAC=1 NO_SNDFILE=1' }} - name: Test - uses: cross-platform-actions/action@v0.25.0 + uses: cross-platform-actions/action@v0.26.0 with: architecture: x86_64 memory: 4G @@ -83,7 +83,7 @@ run: | gmake -j4 STRICT=1 VERBOSE=1 ${{ (matrix.deps == 'sys') && 'AUTO_DEPS=1' || (matrix.deps == 'local') && 'LOCAL_ZLIB=1 LOCAL_MPG123=1 LOCAL_OGG=1 LOCAL_VORBIS=1 NO_PORTAUDIO=1 NO_PORTAUDIOCPP=1 NO_PULSEAUDIO=1 NO_SDL2=1 NO_FLAC=1 NO_SNDFILE=1' || 'NO_ZLIB=1 NO_MPG123=1 NO_OGG=1 NO_VORBIS=1 NO_VORBISFILE=1 NO_PORTAUDIO=1 NO_PORTAUDIOCPP=1 NO_PULSEAUDIO=1 NO_SDL2=1 NO_FLAC=1 NO_SNDFILE=1' }} check - name: Shutdown VM - uses: cross-platform-actions/action@v0.25.0 + uses: cross-platform-actions/action@v0.26.0 with: architecture: x86_64 memory: 4G Modified: trunk/OpenMPT/.github/workflows/OpenBSD-Autotools.yml ============================================================================== --- trunk/OpenMPT/.github/workflows/OpenBSD-Autotools.yml Wed Dec 4 11:49:32 2024 (r22465) +++ trunk/OpenMPT/.github/workflows/OpenBSD-Autotools.yml Thu Dec 5 09:57:34 2024 (r22466) @@ -27,7 +27,7 @@ - name: Checkout uses: actions/checkout@v4 - name: Startup VM - uses: cross-platform-actions/action@595d543e5d1aeb6d48c0a176965028afe56c7018 + uses: cross-platform-actions/action@v0.26.0 with: architecture: x86_64 memory: 4G @@ -38,7 +38,7 @@ shutdown_vm: false run: true - name: Install dependencies - uses: cross-platform-actions/action@595d543e5d1aeb6d48c0a176965028afe56c7018 + uses: cross-platform-actions/action@v0.26.0 with: architecture: x86_64 memory: 4G @@ -53,7 +53,7 @@ sudo pkg_add -I ${{ (matrix.version == '7.6') && 'autoconf-2.72p0 automake-1.16.5' || (matrix.version == '7.5') && 'autoconf-2.71 automake-1.16.5' || (matrix.version == '7.4') && 'autoconf-2.71 automake-1.16.5' || 'autoconf automake' }} sudo pkg_add -I subversion p5-XML-XPath git mawk gmake pkgconf autoconf-archive libtool libltdl help2man doxygen mpg123 libogg libvorbis flac libsndfile pulseaudio portaudio-svn sdl2 - name: Build - uses: cross-platform-actions/action@595d543e5d1aeb6d48c0a176965028afe56c7018 + uses: cross-platform-actions/action@v0.26.0 with: architecture: x86_64 memory: 4G @@ -65,7 +65,7 @@ run: | export MAKEFLAGS="-j$(sysctl -n hw.ncpu)"; ${{ (matrix.version == '7.6') && 'export AUTOCONF_VERSION=2.72' || (matrix.version == '7.5') && 'export AUTOCONF_VERSION=2.71' || (matrix.version == '7.4') && 'export AUTOCONF_VERSION=2.71' || '' }} ; ${{ (matrix.version == '7.6') && 'export AUTOMAKE_VERSION=1.16' || (matrix.version == '7.5') && 'export AUTOMAKE_VERSION=1.16' || (matrix.version == '7.4') && 'export AUTOMAKE_VERSION=1.16' || '' }} ;./build/autotools/autoconfiscate.sh - name: Shutdown VM - uses: cross-platform-actions/action@595d543e5d1aeb6d48c0a176965028afe56c7018 + uses: cross-platform-actions/action@v0.26.0 with: architecture: x86_64 memory: 4G Modified: trunk/OpenMPT/.github/workflows/OpenBSD-Makefile.yml ============================================================================== --- trunk/OpenMPT/.github/workflows/OpenBSD-Makefile.yml Wed Dec 4 11:49:32 2024 (r22465) +++ trunk/OpenMPT/.github/workflows/OpenBSD-Makefile.yml Thu Dec 5 09:57:34 2024 (r22466) @@ -33,7 +33,7 @@ - name: Checkout uses: actions/checkout@v4 - name: Startup VM - uses: cross-platform-actions/action@595d543e5d1aeb6d48c0a176965028afe56c7018 + uses: cross-platform-actions/action@v0.26.0 with: architecture: x86_64 memory: 4G @@ -44,7 +44,7 @@ shutdown_vm: false run: true - name: Install dependencies - uses: cross-platform-actions/action@595d543e5d1aeb6d48c0a176965028afe56c7018 + uses: cross-platform-actions/action@v0.26.0 with: architecture: x86_64 memory: 4G @@ -59,7 +59,7 @@ sudo pkg_add -I ${{ (matrix.version == '7.6') && 'autoconf-2.72p0 automake-1.16.5' || (matrix.version == '7.5') && 'autoconf-2.71 automake-1.16.5' || (matrix.version == '7.4') && 'autoconf-2.71 automake-1.16.5' || 'autoconf automake' }} sudo pkg_add -I subversion p5-XML-XPath git mawk gmake pkgconf autoconf-archive libtool libltdl help2man doxygen mpg123 libogg libvorbis flac libsndfile pulseaudio portaudio-svn sdl2 - name: Build - uses: cross-platform-actions/action@595d543e5d1aeb6d48c0a176965028afe56c7018 + uses: cross-platform-actions/action@v0.26.0 with: architecture: x86_64 memory: 4G @@ -71,7 +71,7 @@ run: | gmake -j$(sysctl -n hw.ncpu) STRICT=1 VERBOSE=1 ${{ (matrix.deps == 'sys') && 'AUTO_DEPS=1' || (matrix.deps == 'local') && 'LOCAL_ZLIB=1 LOCAL_MPG123=1 LOCAL_OGG=1 LOCAL_VORBIS=1 NO_PORTAUDIO=1 NO_PORTAUDIOCPP=1 NO_PULSEAUDIO=1 NO_SDL2=1 NO_FLAC=1 NO_SNDFILE=1' || 'NO_ZLIB=1 NO_MPG123=1 NO_OGG=1 NO_VORBIS=1 NO_VORBISFILE=1 NO_PORTAUDIO=1 NO_PORTAUDIOCPP=1 NO_PULSEAUDIO=1 NO_SDL2=1 NO_FLAC=1 NO_SNDFILE=1' }} - name: Test - uses: cross-platform-actions/action@595d543e5d1aeb6d48c0a176965028afe56c7018 + uses: cross-platform-actions/action@v0.26.0 with: architecture: x86_64 memory: 4G @@ -83,7 +83,7 @@ run: | gmake -j$(sysctl -n hw.ncpu) STRICT=1 VERBOSE=1 ${{ (matrix.deps == 'sys') && 'AUTO_DEPS=1' || (matrix.deps == 'local') && 'LOCAL_ZLIB=1 LOCAL_MPG123=1 LOCAL_OGG=1 LOCAL_VORBIS=1 NO_PORTAUDIO=1 NO_PORTAUDIOCPP=1 NO_PULSEAUDIO=1 NO_SDL2=1 NO_FLAC=1 NO_SNDFILE=1' || 'NO_ZLIB=1 NO_MPG123=1 NO_OGG=1 NO_VORBIS=1 NO_VORBISFILE=1 NO_PORTAUDIO=1 NO_PORTAUDIOCPP=1 NO_PULSEAUDIO=1 NO_SDL2=1 NO_FLAC=1 NO_SNDFILE=1' }} check - name: Shutdown VM - uses: cross-platform-actions/action@595d543e5d1aeb6d48c0a176965028afe56c7018 + uses: cross-platform-actions/action@v0.26.0 with: architecture: x86_64 memory: 4G |
From: <sv...@op...> - 2024-12-04 10:49:39
|
Author: manx Date: Wed Dec 4 11:49:32 2024 New Revision: 22465 URL: https://source.openmpt.org/browse/openmpt/?op=revision&rev=22465 Log: [Var] python: Update to v3.13.1. See r22464. Modified: branches/OpenMPT-1.31/build/download_externals.cmd Modified: branches/OpenMPT-1.31/build/download_externals.cmd ============================================================================== --- branches/OpenMPT-1.31/build/download_externals.cmd Wed Dec 4 11:46:38 2024 (r22464) +++ branches/OpenMPT-1.31/build/download_externals.cmd Wed Dec 4 11:49:32 2024 (r22465) @@ -44,7 +44,7 @@ call build\scriptlib\download.cmd %MPT_DOWNLOAD% x%1 "https://web.archive.org/web/20200918004813id_/http://download.microsoft.com/download/0/A/9/0A939EF6-E31C-430F-A3DF-DFAE7960D564/htmlhelp.exe" "build\externals\htmlhelp.exe" d91371244ea98c691b4674ee266c4a2496a296800c176adae069d21f5c52c0763b21cc7859cfffa865b89e50171a2c99a6d14620c32f7d72c0ef04045348f856 3509072 || goto error -call build\scriptlib\download.cmd %MPT_DOWNLOAD% x%1 "https://www.python.org/ftp/python/3.13.0/python-3.13.0-embed-amd64.zip" "build\externals\python-3.13.0-embed-amd64.zip" f93e687572df1ca592b7a35015b92ed3b65b0bac4cd94dec76962411203858a198b681712fbaa5ae021058e7e1493c4da6c9f9a56c66ecf83ce3ef44d558690a 12499601 || goto error +call build\scriptlib\download.cmd %MPT_DOWNLOAD% x%1 "https://www.python.org/ftp/python/3.13.1/python-3.13.1-embed-amd64.zip" "build\externals\python-3.13.1-embed-amd64.zip" a78713e292c9ee920bb8f44f33176e54d8807c70c343528cba2e11f22fba43082293df81d31aa0e6ed7e9a206568e28884e45ed68beaf36a0746d2bee0be6d90 10847803 || goto error call build\scriptlib\download.cmd %MPT_DOWNLOAD% x%1 "https://netcologne.dl.sourceforge.net/project/innounp/innounp/innounp%%%%200.50/innounp050.rar" "build\externals\innounp050.rar" dbbc809308267a866db9d6b751fdeda6d179e1a65d8ddb14bb51984431ae91493f9a76105e1789b245732043a2c696c869ed10964b48cf59f81e55bd52f85330 141621 || goto error @@ -73,7 +73,7 @@ call build\scriptlib\unpack.cmd "include\winamp" "build\externals\WA5.55_SDK.exe" "." || goto error call build\scriptlib\unpack.cmd "include\xmplay" "build\externals\xmp-sdk.zip" "." || goto error -call build\scriptlib\unpack.cmd "build\tools\python3" "build\externals\python-3.13.0-embed-amd64.zip" "." || goto error +call build\scriptlib\unpack.cmd "build\tools\python3" "build\externals\python-3.13.1-embed-amd64.zip" "." || goto error call :killdir "build\tools\innounp" || goto error call :killdir "build\tools\innosetup" || goto error |
From: <sv...@op...> - 2024-12-04 10:46:49
|
Author: manx Date: Wed Dec 4 11:46:38 2024 New Revision: 22464 URL: https://source.openmpt.org/browse/openmpt/?op=revision&rev=22464 Log: [Var] python: Update to v3.13.1. Modified: trunk/OpenMPT/build/download_externals.cmd trunk/OpenMPT/build/download_externals.txt Modified: trunk/OpenMPT/build/download_externals.cmd ============================================================================== --- trunk/OpenMPT/build/download_externals.cmd Tue Dec 3 22:26:27 2024 (r22463) +++ trunk/OpenMPT/build/download_externals.cmd Wed Dec 4 11:46:38 2024 (r22464) @@ -47,7 +47,7 @@ call build\scriptlib\unpack.cmd "include\winamp" "build\externals\WA5.55_SDK.exe" "." || goto error call build\scriptlib\unpack.cmd "include\xmplay" "build\externals\xmp-sdk.zip" "." || goto error -call build\scriptlib\unpack.cmd "build\tools\python3" "build\externals\python-3.13.0-embed-amd64.zip" "." || goto error +call build\scriptlib\unpack.cmd "build\tools\python3" "build\externals\python-3.13.1-embed-amd64.zip" "." || goto error call :killdir "build\tools\innosetup" || goto error Modified: trunk/OpenMPT/build/download_externals.txt ============================================================================== --- trunk/OpenMPT/build/download_externals.txt Tue Dec 3 22:26:27 2024 (r22463) +++ trunk/OpenMPT/build/download_externals.txt Wed Dec 4 11:46:38 2024 (r22464) @@ -4,7 +4,7 @@ "build/externals/WA5.55_SDK.exe" 336166 394375db8a16bf155b5de9376f6290488ab339e503dbdfdc4e2f5bede967799e625c559cca363bc988324f1a8e86e5fd28a9f697422abd7bb3dcde4a766607b5 "https://download.nullsoft.com/winamp/plugin-dev/WA5.55_SDK.exe" "http://download.nullsoft.com/winamp/plugin-dev/WA5.55_SDK.exe" "https://web.archive.org/web/20131217072017id_/http://download.nullsoft.com/winamp/plugin-dev/WA5.55_SDK.exe" "build/externals/xmp-sdk.zip" 322744 62c442d656d4bb380360368a0f5f01da11b4ed54333d7f54f875a9a5ec390b08921e00bd08e62cd7a0a5fe642e3377023f20a950cc2a42898ff4cda9ab88fc91 "https://www.un4seen.com/files/xmp-sdk.zip" "build/externals/htmlhelp.exe" 3509072 d91371244ea98c691b4674ee266c4a2496a296800c176adae069d21f5c52c0763b21cc7859cfffa865b89e50171a2c99a6d14620c32f7d72c0ef04045348f856 "https://web.archive.org/web/20200918004813id_/https://download.microsoft.com/download/0/A/9/0A939EF6-E31C-430F-A3DF-DFAE7960D564/htmlhelp.exe" "https://web.archive.org/web/20200918004813id_/http://download.microsoft.com/download/0/A/9/0A939EF6-E31C-430F-A3DF-DFAE7960D564/htmlhelp.exe" -"build/externals/python-3.13.0-embed-amd64.zip" 12499601 f93e687572df1ca592b7a35015b92ed3b65b0bac4cd94dec76962411203858a198b681712fbaa5ae021058e7e1493c4da6c9f9a56c66ecf83ce3ef44d558690a "https://www.python.org/ftp/python/3.13.0/python-3.13.0-embed-amd64.zip" +"build/externals/python-3.13.1-embed-amd64.zip" 10847803 a78713e292c9ee920bb8f44f33176e54d8807c70c343528cba2e11f22fba43082293df81d31aa0e6ed7e9a206568e28884e45ed68beaf36a0746d2bee0be6d90 "https://www.python.org/ftp/python/3.13.1/python-3.13.1-embed-amd64.zip" "build/externals/innounp050.rar" 141621 dbbc809308267a866db9d6b751fdeda6d179e1a65d8ddb14bb51984431ae91493f9a76105e1789b245732043a2c696c869ed10964b48cf59f81e55bd52f85330 "https://netcologne.dl.sourceforge.net/project/innounp/innounp/innounp 0.50/innounp050.rar" "https://deac-fra.dl.sourceforge.net/project/innounp/innounp/innounp 0.50/innounp050.rar" "build/externals/innosetup-6.3.3.exe" 5634744 785e7cdad84da42ddfc94f8e20b7150a92fbca1904cfa4d7e23f68b874fba134e9c91a1fb5a8291e7e334f57c1063061d3e8496a2d9e7c4d9415ea9f12a3522e "https://files.jrsoftware.org/is/6/innosetup-6.3.3.exe" "https://files.innosetup.nl/innosetup-6.3.3.exe" "build/externals/isetup-5.5.8-unicode.exe" 2342456 da7e27d85caec85b4194c7b1412c5a64c0ae12f22d903b94f2f4ee9ea0cb99c91b2d1dbb49262eefae8129e6b91f5c46f26f353011076e77e75f9c955fc5e1cb "https://files.jrsoftware.org/is/5/isetup-5.5.8-unicode.exe" "https://web.archive.org/web/20230523165634id_/https://files.jrsoftware.org/is/5/isetup-5.5.8-unicode.exe" |
From: <sv...@op...> - 2024-12-03 21:26:43
|
Author: sagamusix Date: Tue Dec 3 22:26:27 2024 New Revision: 22463 URL: https://source.openmpt.org/browse/openmpt/?op=revision&rev=22463 Log: [Fix] MIDI I/O Plugin: Writing an empty global dump caused all subsequent macros to not be read. Global dump ID was conflicting with first macro, now that we support all 1000 parameters for automation. Reassign the global dump ID. This means that the plugin state of files created with OpenMPT 1.32.00.34 will not be restored correctly. But that's fine because it's just a single test version. Modified: trunk/OpenMPT/common/versionNumber.h trunk/OpenMPT/mptrack/plugins/MidiInOut.cpp Modified: trunk/OpenMPT/common/versionNumber.h ============================================================================== --- trunk/OpenMPT/common/versionNumber.h Mon Dec 2 23:43:23 2024 (r22462) +++ trunk/OpenMPT/common/versionNumber.h Tue Dec 3 22:26:27 2024 (r22463) @@ -16,4 +16,4 @@ #define VER_MAJORMAJOR 1 #define VER_MAJOR 32 #define VER_MINOR 00 -#define VER_MINORMINOR 34 +#define VER_MINORMINOR 35 Modified: trunk/OpenMPT/mptrack/plugins/MidiInOut.cpp ============================================================================== --- trunk/OpenMPT/mptrack/plugins/MidiInOut.cpp Mon Dec 2 23:43:23 2024 (r22462) +++ trunk/OpenMPT/mptrack/plugins/MidiInOut.cpp Tue Dec 3 22:26:27 2024 (r22463) @@ -180,9 +180,12 @@ #endif if(flags & kMacrosPresent) { - mpt::IO::WriteIntLE<uint32>(s, 0); // Initial dump ID - mpt::IO::WriteIntLE<uint32>(s, static_cast<uint32>(m_initialMidiDump.size())); - mpt::IO::Write(s, m_initialMidiDump); + if(!m_initialMidiDump.empty()) + { + mpt::IO::WriteIntLE<uint32>(s, uint32_max); // Initial dump ID + mpt::IO::WriteIntLE<uint32>(s, static_cast<uint32>(m_initialMidiDump.size())); + mpt::IO::Write(s, m_initialMidiDump); + } for(size_t i = 0; i < m_parameterMacros.size(); i++) { if(!m_parameterMacros[i].first.empty()) @@ -283,7 +286,7 @@ const auto [dumpID, dumpSize] = file.ReadArray<uint32le, 2>(); if((!dumpID && !dumpSize) || !file.CanRead(dumpSize)) break; - if(dumpID == 0) + if(dumpID == uint32_max) { file.ReadVector(m_initialMidiDump, dumpSize); m_alwaysSendInitialDump = (flags & kAlwaysSendDump) != 0; |
From: <sv...@op...> - 2024-12-02 22:43:35
|
Author: sagamusix Date: Mon Dec 2 23:43:23 2024 New Revision: 22462 URL: https://source.openmpt.org/browse/openmpt/?op=revision&rev=22462 Log: [New] The MIDI I/O device can now also send its output to its output plugin. This way, the new macro mechanism can also be used together with plugins and not just MIDI devices. Modified: trunk/OpenMPT/mptrack/plugins/MidiInOut.cpp trunk/OpenMPT/mptrack/plugins/MidiInOut.h trunk/OpenMPT/mptrack/plugins/MidiInOutEditor.cpp trunk/OpenMPT/mptrack/plugins/MidiInOutEditor.h Modified: trunk/OpenMPT/mptrack/plugins/MidiInOut.cpp ============================================================================== --- trunk/OpenMPT/mptrack/plugins/MidiInOut.cpp Mon Dec 2 22:48:10 2024 (r22461) +++ trunk/OpenMPT/mptrack/plugins/MidiInOut.cpp Mon Dec 2 23:43:23 2024 (r22462) @@ -59,7 +59,7 @@ uint32 MidiInOut::GetLatency() const { // There is only a latency if the user-provided latency value is greater than the negative output latency. - return mpt::saturate_round<uint32>(std::min(0.0, m_latency + GetOutputLatency()) * m_SndFile.GetSampleRate()); + return mpt::saturate_round<uint32>(std::min(0.0, m_latency + (m_outputDevice.index == kInternalDevice ? 0.0 : GetOutputLatency())) * m_SndFile.GetSampleRate()); } @@ -85,6 +85,11 @@ uint32 type = memFile.ReadUint32LE(); if(type != 0) return; + + constexpr auto ParameterToDeviceID = [](float value) + { + return static_cast<MidiDevice::ID>(value * 65536.0f) - 1; + }; m_inputDevice.index = ParameterToDeviceID(memFile.ReadFloatLE()); m_outputDevice.index = ParameterToDeviceID(memFile.ReadFloatLE()); } else @@ -150,7 +155,7 @@ std::ostringstream s; mpt::IO::WriteRaw(s, "fEvN", 4); // VST program chunk magic mpt::IO::WriteIntLE< int32>(s, GetVersion()); - mpt::IO::WriteIntLE<uint32>(s, 1); // Number of programs + mpt::IO::WriteIntLE<uint32>(s, 1); // Number of programs mpt::IO::WriteIntLE<uint32>(s, static_cast<uint32>(programName8.size())); mpt::IO::WriteIntLE<uint32>(s, m_inputDevice.index); mpt::IO::WriteIntLE<uint32>(s, static_cast<uint32>(m_inputDevice.name.size())); @@ -199,6 +204,8 @@ // Try to match a port name against stored name or friendly name (preferred) static MidiDevice::ID FindPort(MidiDevice::ID id, unsigned int numPorts, const std::string &name, const mpt::ustring &friendlyName, MidiDevice &midiDevice, bool isInput) { + if(id == MidiDevice::NO_MIDI_DEVICE || id == MidiDevice::INTERNAL_MIDI_DEVICE) + return id; bool foundFriendly = false; for(unsigned int i = 0; i < numPorts; i++) { @@ -395,7 +402,7 @@ // Processing (we don't process any audio, only MIDI messages) void MidiInOut::Process(float *, float *, uint32 numFrames) { - if(m_midiOut.isPortOpen()) + if(m_outputDevice.index == kInternalDevice || m_midiOut.isPortOpen()) { mpt::lock_guard<mpt::mutex> lock(m_mutex); @@ -407,7 +414,7 @@ mpt::span<uint8> midiMsg; while(parser.NextMessage(midiMsg)) { - m_midiOut.sendMessage(mpt::byte_cast<unsigned char *>(midiMsg.data()), midiMsg.size()); + SendMessage(midiMsg); } } catch(const RtMidiError &) { @@ -448,7 +455,7 @@ { try { - m_midiOut.sendMessage(message->m_message, message->m_size); + SendMessage(*message); } catch(const RtMidiError &) { } @@ -460,6 +467,15 @@ } +void MidiInOut::SendMessage(mpt::span<const unsigned char> midiMsg) +{ + if(m_outputDevice.index == kInternalDevice) + ReceiveMidi(mpt::byte_cast<mpt::const_byte_span>(midiMsg)); + else + m_midiOut.sendMessage(midiMsg.data(), midiMsg.size()); +} + + void MidiInOut::InputCallback(double /*deltatime*/, std::vector<unsigned char> &message) { // We will check the bypass status before passing on the message, and not before entering the function, @@ -520,7 +536,7 @@ void MidiInOut::Suspend() { // Suspend MIDI I/O - if(m_midiOut.isPortOpen()) + if(m_outputDevice.index == kInternalDevice || m_midiOut.isPortOpen()) { try { @@ -529,13 +545,13 @@ // Need to flush remaining events from HardAllNotesOff for(const auto &message : m_outQueue) { - m_midiOut.sendMessage(message.m_message, message.m_size); + SendMessage(message); } m_outQueue.clear(); if(m_sendTimingInfo) { unsigned char message[1] = { 0xFC }; // Stop - m_midiOut.sendMessage(message, 1); + SendMessage(message); } } catch(const RtMidiError &) { @@ -577,7 +593,7 @@ bool MidiInOut::MidiSend(mpt::const_byte_span midiData) { - if(!m_midiOut.isPortOpen() || IsBypassed()) + if((m_outputDevice.index != kInternalDevice && !m_midiOut.isPortOpen()) || IsBypassed()) { // We need an output device to send MIDI messages to. return true; @@ -653,7 +669,18 @@ { // Dummy device if(updateName) + { device.name = "<none>"; + device.friendlyName.clear(); + } + return; + } else if(device.index == kInternalDevice) + { + if(updateName) + { + device.name = "<internal>"; + device.friendlyName.clear(); + } return; } @@ -703,7 +730,7 @@ // Calculate the current output timestamp double MidiInOut::GetOutputTimestamp() const { - return m_clock.Now() * (1.0 / 1000.0) + GetOutputLatency() + m_latency; + return m_clock.Now() * (1.0 / 1000.0) + (m_outputDevice.index == kInternalDevice ? 0.0 : GetOutputLatency()) + m_latency; } Modified: trunk/OpenMPT/mptrack/plugins/MidiInOut.h ============================================================================== --- trunk/OpenMPT/mptrack/plugins/MidiInOut.h Mon Dec 2 22:48:10 2024 (r22461) +++ trunk/OpenMPT/mptrack/plugins/MidiInOut.h Mon Dec 2 23:43:23 2024 (r22462) @@ -28,6 +28,7 @@ public: using ID = decltype(RtMidiIn().getPortCount()); static constexpr ID NO_MIDI_DEVICE = ID(-1); + static constexpr ID INTERNAL_MIDI_DEVICE = ID(-2); RtMidi &stream; std::string name; // Charset::UTF8 @@ -58,9 +59,8 @@ kNumParams = kMacroParamMax + 1, kNumVisibleParams = 0, - kNoDevice = MidiDevice::NO_MIDI_DEVICE, - //kDeviceInternal, - kMaxDevices = 65536, // Should be a power of 2 to avoid rounding errors. + kNoDevice = MidiDevice::NO_MIDI_DEVICE, + kInternalDevice = MidiDevice::INTERNAL_MIDI_DEVICE, }; // MIDI queue entry with small storage optimiziation. @@ -92,6 +92,8 @@ Message(double time, unsigned char msg) noexcept : Message(time, &msg, 1) { } + operator mpt::span<const unsigned char>() const { return mpt::as_span(m_message, m_size); } + Message(Message &&other) noexcept : m_time(other.m_time) , m_size(other.m_size) @@ -153,12 +155,6 @@ MidiInOut(VSTPluginLib &factory, CSoundFile &sndFile, SNDMIXPLUGIN &mixStruct); ~MidiInOut(); - // Translate a VST parameter to an RtMidi device ID (for restoring old plugin version chunks) - static MidiDevice::ID ParameterToDeviceID(float value) - { - return static_cast<MidiDevice::ID>(value * static_cast<float>(kMaxDevices)) - 1; - } - ///////////////////////////////////////////////// // Destroy the plugin int32 GetUID() const final { return 'MMID'; } @@ -237,6 +233,8 @@ // Calculate the current output timestamp double GetOutputTimestamp() const; + + void SendMessage(mpt::span<const unsigned char> midiMsg); }; Modified: trunk/OpenMPT/mptrack/plugins/MidiInOutEditor.cpp ============================================================================== --- trunk/OpenMPT/mptrack/plugins/MidiInOutEditor.cpp Mon Dec 2 22:48:10 2024 (r22461) +++ trunk/OpenMPT/mptrack/plugins/MidiInOutEditor.cpp Mon Dec 2 23:43:23 2024 (r22462) @@ -15,6 +15,7 @@ #include "../FileDialog.h" #include "../Mptrack.h" #include "../resource.h" +#include "../UpdateHints.h" #include "../../soundlib/MIDIEvents.h" #include "../../soundlib/MIDIMacroParser.h" #include <rtmidi/RtMidi.h> @@ -71,6 +72,7 @@ m_latencySpin.SetRange32(mpt::saturate_round<int>(plugin.GetOutputLatency() * -1000.0), int32_max); PopulateList(m_inputCombo, plugin.m_midiIn, plugin.m_inputDevice, true); PopulateList(m_outputCombo, plugin.m_midiOut, plugin.m_outputDevice, false); + UpdateOutputPlugin(); CheckDlgButton(IDC_CHECK1, plugin.m_sendTimingInfo ? BST_CHECKED : BST_UNCHECKED); CheckDlgButton(IDC_CHECK2, plugin.m_alwaysSendInitialDump ? BST_UNCHECKED : BST_CHECKED); UpdateMidiDump(); @@ -88,6 +90,15 @@ } +void MidiInOutEditor::UpdateView(UpdateHint hint) +{ + CAbstractVstEditor::UpdateView(hint); + PluginHint pluginHint = hint.ToType<PluginHint>(); + if(pluginHint.GetType()[HINT_MODTYPE | HINT_PLUGINNAMES] || pluginHint.GetPlugin() == (m_VstPlugin.GetSlot() + 1)) + UpdateOutputPlugin(); +} + + void MidiInOutEditor::UpdateMidiDump() { MidiInOut &plugin = static_cast<MidiInOut &>(m_VstPlugin); @@ -121,6 +132,10 @@ // Add dummy device combo.SetItemData(combo.AddString(_T("<none>")), static_cast<DWORD_PTR>(MidiInOut::kNoDevice)); + if(!isInput) + { + combo.SetItemData(combo.AddString(_T("Internal OpenMPT Output")), static_cast<DWORD_PTR>(MidiInOut::kInternalDevice)); + } // Go through all RtMidi devices auto ports = rtDevice.getPortCount(); @@ -146,6 +161,21 @@ } +void MidiInOutEditor::UpdateOutputPlugin() +{ + MPT_ASSERT(m_outputCombo.GetItemData(1) == MidiInOut::kInternalDevice); + const int sel = m_outputCombo.GetCurSel(); + CString outputPlugin; + if(std::vector<IMixPlugin *> plug; m_VstPlugin.GetOutputPlugList(plug) && plug.front() != nullptr) + outputPlugin = MPT_CFORMAT("FX{}: {}")(mpt::cfmt::dec0<2>(plug.front()->GetSlot() + 1), mpt::ToCString(m_VstPlugin.GetSoundFile().m_MixPlugins[plug.front()->GetSlot()].GetName())); + else + outputPlugin = _T("No Plugin"); + m_outputCombo.DeleteString(1); + m_outputCombo.SetItemData(m_outputCombo.InsertString(1, MPT_CFORMAT("Internal OpenMPT Output ({})")(outputPlugin)), static_cast<DWORD_PTR>(MidiInOut::kInternalDevice)); + m_outputCombo.SetCurSel(sel); +} + + // Refresh current input / output device in GUI void MidiInOutEditor::SetCurrentDevice(CComboBox &combo, MidiDevice::ID device) { Modified: trunk/OpenMPT/mptrack/plugins/MidiInOutEditor.h ============================================================================== --- trunk/OpenMPT/mptrack/plugins/MidiInOutEditor.h Mon Dec 2 22:48:10 2024 (r22461) +++ trunk/OpenMPT/mptrack/plugins/MidiInOutEditor.h Mon Dec 2 23:43:23 2024 (r22462) @@ -42,6 +42,7 @@ } bool OpenEditor(CWnd *parent) override; + void UpdateView(UpdateHint hint) override; bool IsResizable() const override { return false; } bool SetSize(int, int) override { return false; } @@ -49,6 +50,7 @@ // Update lists of available input / output devices static void PopulateList(CComboBox &combo, RtMidi &rtDevice, MidiDevice &midiDevice, bool isInput); + void UpdateOutputPlugin(); // Refresh current input / output device in GUI void SetCurrentDevice(CComboBox &combo, MidiDevice::ID device); |
From: <sv...@op...> - 2024-12-02 21:48:17
|
Author: sagamusix Date: Mon Dec 2 22:48:10 2024 New Revision: 22461 URL: https://source.openmpt.org/browse/openmpt/?op=revision&rev=22461 Log: [Mod/Reg] MIDI I/O Plugin: Remove the possibility to automate the MIDI input or output port. The resolution of automation parameters was nowhere nearly enough to be able to actually select devices in a meaningful way. It was only really useful for restoring plugin parameters from early module files using the plugin, which we can do by adding a dedicated code path for this situation. [Imp] MIDI I/O Plugin: Also use plugin parameters 0-99 for macro automation. Modified: trunk/OpenMPT/mptrack/mptrack.rc trunk/OpenMPT/mptrack/plugins/MidiInOut.cpp trunk/OpenMPT/mptrack/plugins/MidiInOut.h trunk/OpenMPT/mptrack/plugins/MidiInOutEditor.cpp Modified: trunk/OpenMPT/mptrack/mptrack.rc ============================================================================== --- trunk/OpenMPT/mptrack/mptrack.rc Mon Dec 2 21:58:48 2024 (r22460) +++ trunk/OpenMPT/mptrack/mptrack.rc Mon Dec 2 22:48:10 2024 (r22461) @@ -501,7 +501,7 @@ PUSHBUTTON "Send &Now",IDC_BUTTON2,102,156,66,14 PUSHBUTTON "&Import Dump...",IDC_BUTTON1,174,156,66,14 GROUPBOX "Parameter Macros",IDC_STATIC,6,180,240,30 - COMBOBOX IDC_COMBO3,12,192,72,12,CBS_DROPDOWNLIST | CBS_SORT | WS_VSCROLL | WS_TABSTOP + COMBOBOX IDC_COMBO3,12,192,72,12,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP EDITTEXT IDC_EDIT3,90,192,150,12,ES_AUTOHSCROLL END Modified: trunk/OpenMPT/mptrack/plugins/MidiInOut.cpp ============================================================================== --- trunk/OpenMPT/mptrack/plugins/MidiInOut.cpp Mon Dec 2 21:58:48 2024 (r22460) +++ trunk/OpenMPT/mptrack/plugins/MidiInOut.cpp Mon Dec 2 22:48:10 2024 (r22461) @@ -74,10 +74,32 @@ } -void MidiInOut::RestoreAllParameters(int32 program) +void MidiInOut::RestoreAllParameters(int32 /*program*/) { - IMixPlugin::RestoreAllParameters(program); // First plugin version didn't use chunks. - SetChunk(mpt::as_span(m_pMixStruct->pluginData), false); + if(!m_pMixStruct) + return; + if(m_pMixStruct->pluginData.size() == sizeof(uint32) * 3) + { + // Very old plugin versions + FileReader memFile(mpt::as_span(m_pMixStruct->pluginData)); + uint32 type = memFile.ReadUint32LE(); + if(type != 0) + return; + m_inputDevice.index = ParameterToDeviceID(memFile.ReadFloatLE()); + m_outputDevice.index = ParameterToDeviceID(memFile.ReadFloatLE()); + } else + { + SetChunk(mpt::as_span(m_pMixStruct->pluginData), false); + } + OpenDevice(m_inputDevice.index, true); + OpenDevice(m_outputDevice.index, false); + // Update selection in editor + MidiInOutEditor *editor = dynamic_cast<MidiInOutEditor *>(GetEditor()); + if(editor != nullptr) + { + editor->SetCurrentDevice(true, m_inputDevice.index); + editor->SetCurrentDevice(false, m_outputDevice.index); + } } @@ -175,7 +197,7 @@ // Try to match a port name against stored name or friendly name (preferred) -static void FindPort(MidiDevice::ID &id, unsigned int numPorts, const std::string &name, const mpt::ustring &friendlyName, MidiDevice &midiDevice, bool isInput) +static MidiDevice::ID FindPort(MidiDevice::ID id, unsigned int numPorts, const std::string &name, const mpt::ustring &friendlyName, MidiDevice &midiDevice, bool isInput) { bool foundFriendly = false; for(unsigned int i = 0; i < numPorts; i++) @@ -192,7 +214,7 @@ foundFriendly = true; if(deviceNameMatches) { - return; + return id; } } #else @@ -206,6 +228,7 @@ { } } + return id; } @@ -275,11 +298,8 @@ // Try to match an input port name against stored name or friendly name (preferred) m_inputDevice.friendlyName = mpt::ToUnicode(mpt::Charset::UTF8, inFriendlyName); m_outputDevice.friendlyName = mpt::ToUnicode(mpt::Charset::UTF8, outFriendlyName); - FindPort(inID, m_midiIn.getPortCount(), inName, m_inputDevice.friendlyName, m_inputDevice, true); - FindPort(outID, m_midiOut.getPortCount(), outName, m_outputDevice.friendlyName, m_outputDevice, false); - - SetParameter(MidiInOut::kInputParameter, DeviceIDToParameter(inID)); - SetParameter(MidiInOut::kOutputParameter, DeviceIDToParameter(outID)); + m_inputDevice.index = FindPort(inID, m_midiIn.getPortCount(), inName, m_inputDevice.friendlyName, m_inputDevice, true); + m_outputDevice.index = FindPort(outID, m_midiOut.getPortCount(), outName, m_outputDevice.friendlyName, m_outputDevice, false); } @@ -315,17 +335,7 @@ void MidiInOut::SetParameter(PlugParamIndex index, PlugParamValue value, PlayState *playState, CHANNELINDEX chn) { - value = mpt::safe_clamp(value, 0.0f, 1.0f); - if(index < kNumVisibleParams) - { - MidiDevice::ID newDevice = ParameterToDeviceID(value); - OpenDevice(newDevice, (index == kInputParameter)); - - // Update selection in editor - MidiInOutEditor *editor = dynamic_cast<MidiInOutEditor *>(GetEditor()); - if(editor != nullptr) - editor->SetCurrentDevice((index == kInputParameter), newDevice); - } else if(index >= kMacroParamMin && (index - kMacroParamMin) < m_parameterMacros.size()) + if(index >= kMacroParamMin && (index - kMacroParamMin) < m_parameterMacros.size()) { // Enough memory should have already been allocated when the macro string was set m_parameterMacroScratchSpace.resize(m_parameterMacros[index - kMacroParamMin].first.size() + 1); @@ -342,14 +352,8 @@ float MidiInOut::GetParameter(PlugParamIndex index) { - if(index < kNumVisibleParams) - { - const MidiDevice &device = (index == kInputParameter) ? m_inputDevice : m_outputDevice; - return DeviceIDToParameter(device.index); - } else if(index >= kMacroParamMin && (index - kMacroParamMin) < m_parameterMacros.size()) - { + if(index >= kMacroParamMin && (index - kMacroParamMin) < m_parameterMacros.size()) return m_parameterMacros[index - kMacroParamMin].second; - } return 0.0f; } @@ -358,11 +362,7 @@ CString MidiInOut::GetParamName(PlugParamIndex param) { - if(param == kInputParameter) - return _T("MIDI In"); - else if(param == kOutputParameter) - return _T("MIDI Out"); - else if(param >= kMacroParamMin && (param - kMacroParamMin) < m_parameterMacros.size()) + if(param >= kMacroParamMin && (param - kMacroParamMin) < m_parameterMacros.size()) return mpt::ToCString(mpt::Charset::ASCII, m_parameterMacros[param - kMacroParamMin].first); return {}; } @@ -371,8 +371,9 @@ // Parameter value as text CString MidiInOut::GetParamDisplay(PlugParamIndex param) { - const MidiDevice &device = (param == kInputParameter) ? m_inputDevice : m_outputDevice; - return mpt::ToCString(mpt::Charset::UTF8, device.name); + if(param >= kMacroParamMin && (param - kMacroParamMin) < m_parameterMacros.size()) + return mpt::cfmt::dec(mpt::saturate_round<uint8>(m_parameterMacros[param - kMacroParamMin].second * 127.0f)); + return {}; } @@ -627,7 +628,7 @@ // Open a device for input or output. void MidiInOut::OpenDevice(MidiDevice newDevice, bool asInputDevice) { - FindPort(newDevice.index, asInputDevice ? m_midiIn.getPortCount() : m_midiOut.getPortCount(), newDevice.name, newDevice.friendlyName, newDevice, asInputDevice); + newDevice.index = FindPort(newDevice.index, asInputDevice ? m_midiIn.getPortCount() : m_midiOut.getPortCount(), newDevice.name, newDevice.friendlyName, newDevice, asInputDevice); OpenDevice(newDevice.index, asInputDevice, false); } Modified: trunk/OpenMPT/mptrack/plugins/MidiInOut.h ============================================================================== --- trunk/OpenMPT/mptrack/plugins/MidiInOut.h Mon Dec 2 21:58:48 2024 (r22460) +++ trunk/OpenMPT/mptrack/plugins/MidiInOut.h Mon Dec 2 22:48:10 2024 (r22461) @@ -51,16 +51,15 @@ protected: enum : unsigned int { - kInputParameter = 0, - kOutputParameter = 1, - kMacroParamMin = 100, + kMacroParamMin = 0, kMacroParamMax = 999, kNumPrograms = 1, kNumParams = kMacroParamMax + 1, - kNumVisibleParams = 2, + kNumVisibleParams = 0, kNoDevice = MidiDevice::NO_MIDI_DEVICE, + //kDeviceInternal, kMaxDevices = 65536, // Should be a power of 2 to avoid rounding errors. }; @@ -154,18 +153,12 @@ MidiInOut(VSTPluginLib &factory, CSoundFile &sndFile, SNDMIXPLUGIN &mixStruct); ~MidiInOut(); - // Translate a VST parameter to an RtMidi device ID + // Translate a VST parameter to an RtMidi device ID (for restoring old plugin version chunks) static MidiDevice::ID ParameterToDeviceID(float value) { return static_cast<MidiDevice::ID>(value * static_cast<float>(kMaxDevices)) - 1; } - // Translate a RtMidi device ID to a VST parameter - static float DeviceIDToParameter(MidiDevice::ID index) - { - return static_cast<float>(index + 1) / static_cast<float>(kMaxDevices); - } - ///////////////////////////////////////////////// // Destroy the plugin int32 GetUID() const final { return 'MMID'; } Modified: trunk/OpenMPT/mptrack/plugins/MidiInOutEditor.cpp ============================================================================== --- trunk/OpenMPT/mptrack/plugins/MidiInOutEditor.cpp Mon Dec 2 21:58:48 2024 (r22460) +++ trunk/OpenMPT/mptrack/plugins/MidiInOutEditor.cpp Mon Dec 2 22:48:10 2024 (r22461) @@ -161,24 +161,17 @@ } -static void IOChanged(MidiInOut &plugin, CComboBox &combo, PlugParamIndex param) -{ - // Update device ID and notify plugin. - MidiDevice::ID newDevice = static_cast<MidiDevice::ID>(combo.GetItemData(combo.GetCurSel())); - plugin.SetParameter(param, MidiInOut::DeviceIDToParameter(newDevice)); - plugin.AutomateParameter(param); -} - - void MidiInOutEditor::OnInputChanged() { - IOChanged(static_cast<MidiInOut &>(m_VstPlugin), m_inputCombo, MidiInOut::kInputParameter); + MidiDevice::ID newDevice = static_cast<MidiDevice::ID>(m_inputCombo.GetItemData(m_inputCombo.GetCurSel())); + static_cast<MidiInOut &>(m_VstPlugin).OpenDevice(newDevice, true); } void MidiInOutEditor::OnOutputChanged() { - IOChanged(static_cast<MidiInOut &>(m_VstPlugin), m_outputCombo, MidiInOut::kOutputParameter); + MidiDevice::ID newDevice = static_cast<MidiDevice::ID>(m_outputCombo.GetItemData(m_outputCombo.GetCurSel())); + static_cast<MidiInOut &>(m_VstPlugin).OpenDevice(newDevice, false); } |
From: <sv...@op...> - 2024-12-02 20:59:00
|
Author: sagamusix Date: Mon Dec 2 21:58:48 2024 New Revision: 22460 URL: https://source.openmpt.org/browse/openmpt/?op=revision&rev=22460 Log: [Fix] Quick Start: If trying to open an MRU item from the File menu failed, subsequently trying to erase an MRU item through the Quick Start dialog caused the wrong MRU item to be removed. Modified: trunk/OpenMPT/mptrack/QuickStartDialog.cpp Modified: trunk/OpenMPT/mptrack/QuickStartDialog.cpp ============================================================================== --- trunk/OpenMPT/mptrack/QuickStartDialog.cpp Mon Dec 2 21:20:51 2024 (r22459) +++ trunk/OpenMPT/mptrack/QuickStartDialog.cpp Mon Dec 2 21:58:48 2024 (r22460) @@ -229,8 +229,10 @@ { if(GetItemGroup(i) != 0) continue; - mruFiles.erase(mruFiles.begin() + i); - m_paths[0][GetItemIndex(i)] = {}; + auto &path = m_paths[0][GetItemIndex(i)]; + if(auto it = std::find(mruFiles.begin(), mruFiles.end(), path); it != mruFiles.end()) + mruFiles.erase(it); + path = {}; m_list.DeleteItem(i); i--; } |
From: <sv...@op...> - 2024-12-02 20:20:58
|
Author: sagamusix Date: Mon Dec 2 21:20:51 2024 New Revision: 22459 URL: https://source.openmpt.org/browse/openmpt/?op=revision&rev=22459 Log: [Fix] Don't set thousands separator in Rows Per Beat / Rows Per Measure setup. Modified: trunk/OpenMPT/mptrack/mptrack.rc Modified: trunk/OpenMPT/mptrack/mptrack.rc ============================================================================== --- trunk/OpenMPT/mptrack/mptrack.rc Mon Dec 2 21:20:27 2024 (r22458) +++ trunk/OpenMPT/mptrack/mptrack.rc Mon Dec 2 21:20:51 2024 (r22459) @@ -1328,11 +1328,11 @@ PUSHBUTTON "Clear Song Cac&he",IDC_BUTTON11,186,119,78,12 CONTROL "&Primary highlight",IDC_CHECK1,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,18,137,84,10 EDITTEXT IDC_PRIMARYHILITE,102,137,36,12,ES_AUTOHSCROLL | ES_NUMBER - CONTROL "",IDC_SPIN2,"msctls_updown32",UDS_SETBUDDYINT | UDS_ALIGNRIGHT | UDS_AUTOBUDDY | UDS_ARROWKEYS,122,137,10,14 + CONTROL "",IDC_SPIN2,"msctls_updown32",UDS_SETBUDDYINT | UDS_ALIGNRIGHT | UDS_AUTOBUDDY | UDS_ARROWKEYS | UDS_NOTHOUSANDS,122,137,10,14 LTEXT "Rows per measure (default)",IDC_STATIC,144,140,132,8 CONTROL "Secondar&y highlight",IDC_CHECK4,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,18,156,80,10 EDITTEXT IDC_SECONDARYHILITE,102,156,36,12,ES_AUTOHSCROLL | ES_NUMBER - CONTROL "",IDC_SPIN3,"msctls_updown32",UDS_SETBUDDYINT | UDS_ALIGNRIGHT | UDS_AUTOBUDDY | UDS_ARROWKEYS,120,156,11,14 + CONTROL "",IDC_SPIN3,"msctls_updown32",UDS_SETBUDDYINT | UDS_ALIGNRIGHT | UDS_AUTOBUDDY | UDS_ARROWKEYS | UDS_NOTHOUSANDS,120,156,11,14 LTEXT "Rows per beat (default)",IDC_STATIC,144,159,132,8 CONTROL "Always use default highlight &values instead of songs' time signatures",IDC_CHECK3, "Button",BS_AUTOCHECKBOX | WS_TABSTOP,18,174,258,10 |