fix(windows): resolve skin / webserver template dir to FHS share/amule path - #784
Merged
mrjimenez merged 1 commit intoMay 31, 2026
Merged
Conversation
instead of next-to-exe (amule-project#783) ngosang reported that the Preferences -> Skin dropdown on Windows portable shows only "- default -" even though the .zip files are installed at amule-portable-x64\share\amule\skins\. Root cause: wxStandardPaths::GetDataDir() (and GetPluginsDir(), used by the actual skin loader) both return the .exe's directory on Windows. Our installer / portable layout uses the GNU-style share/<appname>/ tree -- so the enumeration in Cfg_Skin::TransferToWindow() ends up looking at bin\skins\ which doesn't exist, and the loader in CamuleDlg::Check_and_Init_Skin() would point at the same wrong place if the dropdown ever yielded a selection. Adjust both code paths to mirror the layout the installer actually populates: walk up one level from the exe (bin\) and into ..\share\amule\<folder>\. Same shape the non-Windows non-macOS branch already does for the inverse-named-directory case (GetDataDir().BeforeLast('/') + "/amule"). Files: src/Preferences.cpp -- the skin / webserver-template enumeration that fills the dropdown. src/amuleDlg.cpp -- the actual skin loader that gets pointed at "System:<file>" entries from the dropdown. Both Mac and Linux paths are unchanged. No new packaging changes -- the installer already drops content at share/amule/skins/, we were just looking in the wrong place.
1 task
got3nks
added a commit
to got3nks/amule
that referenced
this pull request
Jun 4, 2026
…ndex Adds 55+ merged PRs to the 3.0.0 changelog since the last update (amule-project#747, 2026-05-27). Narrative additions cover: - Packaging: expanded the top list to include the macOS per-arch .app bundles and the Windows NSIS installer alongside the existing AppImage / Flatpak / .dmg / .zip entries. New bullets for amule-project#785 (alc/alcc/cas/wxcas everywhere + Windows amuleweb), amule-project#794 (.dmg amuleweb path), amule-project#789 (<OS>-<arch> artifact naming), amule-project#780 / amule-project#796 (Windows DPI + comctl32 manifest), amule-project#784 (FHS share/amule paths). - Bug Fixes & Stability: post-amule-project#744 fixes including EC notification leak (amule-project#797), big-library scaling (amule-project#736, amule-project#840 superseding amule-project#728), amulegui ghost entries (amule-project#810, amule-project#819, amule-project#841, amule-project#824, amule-project#830, amule-project#760), PartFile early hash (amule-project#762), server protocol fixes (amule-project#835, amule-project#788, amule-project#721, amule-project#787), crypto stream UB (amule-project#779), UAF prevention (amule-project#756), Kad rotation (amule-project#795, amule-project#799/amule-project#805), GTK warning silencing (amule-project#833, amule-project#826/amule-project#836), and the clang-tidy worklist (amule-project#770, amule-project#772-amule-project#774). - Translations: late-cycle wave covering French/Turkish manpages (amule-project#753/amule-project#754/amule-project#776), Galician (amule-project#763), Slovenian (amule-project#771), pt-BR (amule-project#768/amule-project#775/amule-project#812), French (amule-project#811), plus man-page tooling for date+version drift (amule-project#802). - Contributors: added ngosang for UX feedback on the late-3.0 cycle (amule-project#817/amule-project#818/amule-project#821/amule-project#828/amule-project#844) and ongoing work on the user-facing manual at amule-org.github.io. - Merged PRs flat index: extended with amule-project#746-amule-project#845 + amule-project#841.
got3nks
added a commit
to got3nks/amule
that referenced
this pull request
Jun 4, 2026
…ndex Adds 55+ merged PRs to the 3.0.0 changelog since the last update (amule-project#747, 2026-05-27). Narrative additions cover: - Packaging: expanded the top list to include the macOS per-arch .app bundles and the Windows NSIS installer alongside the existing AppImage / Flatpak / .dmg / .zip entries. New bullets for amule-project#785 (alc/alcc/cas/wxcas everywhere + Windows amuleweb), amule-project#794 (.dmg amuleweb path), amule-project#789 (<OS>-<arch> artifact naming), amule-project#780 / amule-project#796 (Windows DPI + comctl32 manifest), amule-project#784 (FHS share/amule paths). - Bug Fixes & Stability: post-amule-project#744 fixes including EC notification leak (amule-project#797), big-library scaling (amule-project#736, amule-project#840 superseding amule-project#728), amulegui ghost entries (amule-project#810, amule-project#819, amule-project#841, amule-project#824, amule-project#830, amule-project#760), PartFile early hash (amule-project#762), server protocol fixes (amule-project#835, amule-project#788, amule-project#721, amule-project#787), crypto stream UB (amule-project#779), UAF prevention (amule-project#756), Kad rotation (amule-project#795, amule-project#799/amule-project#805), GTK warning silencing (amule-project#833, amule-project#826/amule-project#836), and the clang-tidy worklist (amule-project#770, amule-project#772-amule-project#774). - Translations: late-cycle wave covering French/Turkish manpages (amule-project#753/amule-project#754/amule-project#776), Galician (amule-project#763), Slovenian (amule-project#771), pt-BR (amule-project#768/amule-project#775/amule-project#812), French (amule-project#811), plus man-page tooling for date+version drift (amule-project#802). - Contributors: added ngosang for UX feedback on the late-3.0 cycle (amule-project#817/amule-project#818/amule-project#821/amule-project#828/amule-project#844) and ongoing work on the user-facing manual at amule-org.github.io. - Merged PRs flat index: extended with amule-project#746-amule-project#845 + amule-project#841.
mrjimenez
pushed a commit
that referenced
this pull request
Jun 4, 2026
Adds 55+ merged PRs to the 3.0.0 changelog since the last update (#747, 2026-05-27). Narrative additions cover: - Packaging: expanded the top list to include the macOS per-arch .app bundles and the Windows NSIS installer alongside the existing AppImage / Flatpak / .dmg / .zip entries. New bullets for #785 (alc/alcc/cas/wxcas everywhere + Windows amuleweb), #794 (.dmg amuleweb path), #789 (<OS>-<arch> artifact naming), #780 / #796 (Windows DPI + comctl32 manifest), #784 (FHS share/amule paths). - Bug Fixes & Stability: post-#744 fixes including EC notification leak (#797), big-library scaling (#736, #840 superseding #728), amulegui ghost entries (#810, #819, #841, #824, #830, #760), PartFile early hash (#762), server protocol fixes (#835, #788, #721, #787), crypto stream UB (#779), UAF prevention (#756), Kad rotation (#795, #799/#805), GTK warning silencing (#833, #826/#836), and the clang-tidy worklist (#770, #772-#774). - Translations: late-cycle wave covering French/Turkish manpages (#753/#754/#776), Galician (#763), Slovenian (#771), pt-BR (#768/#775/#812), French (#811), plus man-page tooling for date+version drift (#802). - Contributors: added ngosang for UX feedback on the late-3.0 cycle (#817/#818/#821/#828/#844) and ongoing work on the user-facing manual at amule-org.github.io. - Merged PRs flat index: extended with #746-#845 + #841.
mrjimenez
pushed a commit
to mrjimenez/amule
that referenced
this pull request
Aug 4, 2026
Translated using Weblate (Tamil) Currently translated at 0.8% (2 of 246 strings) Translation: aMule/Application Man Pages Translate-URL: https://hosted.weblate.org/projects/amule/application-man-pages/ta/ Translated using Weblate Translated using Weblate (Tamil) Currently translated at 1.2% (24 of 1916 strings) Translation: aMule/Application Translate-URL: https://hosted.weblate.org/projects/amule/amule-application/ta/ Translated using Weblate Translated using Weblate (Latvian) Currently translated at 60.9% (150 of 246 strings) Translation: aMule/Application Man Pages Translate-URL: https://hosted.weblate.org/projects/amule/application-man-pages/lv/ Translated using Weblate Translated using Weblate (Latvian) Currently translated at 32.5% (623 of 1916 strings) Translation: aMule/Application Translate-URL: https://hosted.weblate.org/projects/amule/amule-application/lv/ Translated using Weblate Translated using Weblate (Latvian) Currently translated at 32.5% (623 of 1916 strings) Translation: aMule/Application Translate-URL: https://hosted.weblate.org/projects/amule/amule-application/lv/ Translated using Weblate Translated using Weblate (Chinese (Traditional Han script)) Currently translated at 86.8% (218 of 251 strings) Translation: aMule/Application Man Pages Translate-URL: https://hosted.weblate.org/projects/amule/application-man-pages/zh_Hant/ Translated using Weblate Translated using Weblate (Turkish) Currently translated at 98.0% (246 of 251 strings) Translation: aMule/Application Man Pages Translate-URL: https://hosted.weblate.org/projects/amule/application-man-pages/tr/ Translated using Weblate Translated using Weblate (Russian) Currently translated at 100.0% (251 of 251 strings) Translation: aMule/Application Man Pages Translate-URL: https://hosted.weblate.org/projects/amule/application-man-pages/ru/ Translated using Weblate Translated using Weblate (Romanian) Currently translated at 86.8% (218 of 251 strings) Translation: aMule/Application Man Pages Translate-URL: https://hosted.weblate.org/projects/amule/application-man-pages/ro/ Translated using Weblate Translated using Weblate (Portuguese (Brazil)) Currently translated at 96.8% (243 of 251 strings) Translation: aMule/Application Man Pages Translate-URL: https://hosted.weblate.org/projects/amule/application-man-pages/pt_BR/ Translated using Weblate Translated using Weblate (Italian) Currently translated at 100.0% (251 of 251 strings) Translation: aMule/Application Man Pages Translate-URL: https://hosted.weblate.org/projects/amule/application-man-pages/it/ Translated using Weblate Translated using Weblate (Hungarian) Currently translated at 86.8% (218 of 251 strings) Translation: aMule/Application Man Pages Translate-URL: https://hosted.weblate.org/projects/amule/application-man-pages/hu/ Translated using Weblate Translated using Weblate (French) Currently translated at 98.0% (246 of 251 strings) Translation: aMule/Application Man Pages Translate-URL: https://hosted.weblate.org/projects/amule/application-man-pages/fr/ Translated using Weblate Translated using Weblate (Spanish) Currently translated at 98.0% (246 of 251 strings) Translation: aMule/Application Man Pages Translate-URL: https://hosted.weblate.org/projects/amule/application-man-pages/es/ Translated using Weblate Translated using Weblate (German) Currently translated at 96.4% (242 of 251 strings) Translation: aMule/Application Man Pages Translate-URL: https://hosted.weblate.org/projects/amule/application-man-pages/de/ Translated using Weblate Translated using Weblate (Chinese (Traditional Han script)) Currently translated at 80.2% (1537 of 1916 strings) Translation: aMule/Application Translate-URL: https://hosted.weblate.org/projects/amule/amule-application/zh_Hant/ Translated using Weblate Translated using Weblate (Chinese (Simplified Han script)) Currently translated at 100.0% (1916 of 1916 strings) Translation: aMule/Application Translate-URL: https://hosted.weblate.org/projects/amule/amule-application/zh_Hans/ Translated using Weblate Translated using Weblate (Ukrainian) Currently translated at 73.9% (1416 of 1916 strings) Translation: aMule/Application Translate-URL: https://hosted.weblate.org/projects/amule/amule-application/uk/ Translated using Weblate Translated using Weblate (Turkish) Currently translated at 95.7% (1835 of 1916 strings) Translation: aMule/Application Translate-URL: https://hosted.weblate.org/projects/amule/amule-application/tr/ Translated using Weblate Translated using Weblate (Turkish) Currently translated at 95.7% (1835 of 1916 strings) Translation: aMule/Application Translate-URL: https://hosted.weblate.org/projects/amule/amule-application/tr/ Translated using Weblate Translated using Weblate (Swedish) Currently translated at 80.8% (1550 of 1916 strings) Translation: aMule/Application Translate-URL: https://hosted.weblate.org/projects/amule/amule-application/sv/ Translated using Weblate Translated using Weblate (Albanian) Currently translated at 60.1% (1153 of 1916 strings) Translation: aMule/Application Translate-URL: https://hosted.weblate.org/projects/amule/amule-application/sq/ Translated using Weblate Translated using Weblate (Slovenian) Currently translated at 81.1% (1554 of 1916 strings) Translation: aMule/Application Translate-URL: https://hosted.weblate.org/projects/amule/amule-application/sl/ Translated using Weblate Translated using Weblate (Russian) Currently translated at 100.0% (1916 of 1916 strings) Translation: aMule/Application Translate-URL: https://hosted.weblate.org/projects/amule/amule-application/ru/ Translated using Weblate Translated using Weblate (Russian) Currently translated at 100.0% (1916 of 1916 strings) Translation: aMule/Application Translate-URL: https://hosted.weblate.org/projects/amule/amule-application/ru/ Translated using Weblate Translated using Weblate (Romanian) Currently translated at 80.8% (1549 of 1916 strings) Translation: aMule/Application Translate-URL: https://hosted.weblate.org/projects/amule/amule-application/ro/ Translated using Weblate Translated using Weblate (Portuguese (Portugal)) Currently translated at 80.0% (1534 of 1916 strings) Translation: aMule/Application Translate-URL: https://hosted.weblate.org/projects/amule/amule-application/pt_PT/ Translated using Weblate Translated using Weblate (Portuguese (Brazil)) Currently translated at 100.0% (1916 of 1916 strings) Translation: aMule/Application Translate-URL: https://hosted.weblate.org/projects/amule/amule-application/pt_BR/ Translated using Weblate Translated using Weblate (Polish) Currently translated at 78.1% (1497 of 1916 strings) Translation: aMule/Application Translate-URL: https://hosted.weblate.org/projects/amule/amule-application/pl/ Translated using Weblate Translated using Weblate (Norwegian Nynorsk) Currently translated at 67.2% (1288 of 1916 strings) Translation: aMule/Application Translate-URL: https://hosted.weblate.org/projects/amule/amule-application/nn/ Translated using Weblate Translated using Weblate (Dutch) Currently translated at 81.8% (1569 of 1916 strings) Translation: aMule/Application Translate-URL: https://hosted.weblate.org/projects/amule/amule-application/nl/ Translated using Weblate Translated using Weblate (Lithuanian) Currently translated at 67.2% (1288 of 1916 strings) Translation: aMule/Application Translate-URL: https://hosted.weblate.org/projects/amule/amule-application/lt/ Translated using Weblate Translated using Weblate (Korean) Currently translated at 55.8% (1070 of 1916 strings) Translation: aMule/Application Translate-URL: https://hosted.weblate.org/projects/amule/amule-application/ko/ Translated using Weblate Translated using Weblate (Japanese) Currently translated at 61.5% (1179 of 1916 strings) Translation: aMule/Application Translate-URL: https://hosted.weblate.org/projects/amule/amule-application/ja/ Translated using Weblate Translated using Weblate (Italian) Currently translated at 100.0% (1916 of 1916 strings) Translation: aMule/Application Translate-URL: https://hosted.weblate.org/projects/amule/amule-application/it/ Translated using Weblate Translated using Weblate (Hungarian) Currently translated at 85.5% (1640 of 1916 strings) Translation: aMule/Application Translate-URL: https://hosted.weblate.org/projects/amule/amule-application/hu/ Translated using Weblate Translated using Weblate (Croatian) Currently translated at 24.3% (466 of 1916 strings) Translation: aMule/Application Translate-URL: https://hosted.weblate.org/projects/amule/amule-application/hr/ Translated using Weblate Translated using Weblate (Hebrew) Currently translated at 43.9% (843 of 1916 strings) Translation: aMule/Application Translate-URL: https://hosted.weblate.org/projects/amule/amule-application/he/ Translated using Weblate Translated using Weblate (Galician) Currently translated at 85.4% (1637 of 1916 strings) Translation: aMule/Application Translate-URL: https://hosted.weblate.org/projects/amule/amule-application/gl/ Translated using Weblate Translated using Weblate (French) Currently translated at 95.7% (1835 of 1916 strings) Translation: aMule/Application Translate-URL: https://hosted.weblate.org/projects/amule/amule-application/fr/ Translated using Weblate Translated using Weblate (Finnish) Currently translated at 80.3% (1539 of 1916 strings) Translation: aMule/Application Translate-URL: https://hosted.weblate.org/projects/amule/amule-application/fi/ Translated using Weblate Translated using Weblate (Basque) Currently translated at 80.3% (1539 of 1916 strings) Translation: aMule/Application Translate-URL: https://hosted.weblate.org/projects/amule/amule-application/eu/ Translated using Weblate Translated using Weblate (Estonian) Currently translated at 79.2% (1518 of 1916 strings) Translation: aMule/Application Translate-URL: https://hosted.weblate.org/projects/amule/amule-application/et/ Translated using Weblate Translated using Weblate (Spanish) Currently translated at 95.5% (1830 of 1916 strings) Translation: aMule/Application Translate-URL: https://hosted.weblate.org/projects/amule/amule-application/es/ Translated using Weblate Translated using Weblate (Greek) Currently translated at 70.6% (1354 of 1916 strings) Translation: aMule/Application Translate-URL: https://hosted.weblate.org/projects/amule/amule-application/el/ Translated using Weblate Translated using Weblate (German) Currently translated at 86.6% (1661 of 1916 strings) Translation: aMule/Application Translate-URL: https://hosted.weblate.org/projects/amule/amule-application/de/ Translated using Weblate Translated using Weblate (Danish) Currently translated at 24.0% (460 of 1916 strings) Translation: aMule/Application Translate-URL: https://hosted.weblate.org/projects/amule/amule-application/da/ Translated using Weblate Translated using Weblate (Czech) Currently translated at 65.6% (1258 of 1916 strings) Translation: aMule/Application Translate-URL: https://hosted.weblate.org/projects/amule/amule-application/cs/ Translated using Weblate Translated using Weblate (Catalan) Currently translated at 81.7% (1566 of 1916 strings) Translation: aMule/Application Translate-URL: https://hosted.weblate.org/projects/amule/amule-application/ca/ Translated using Weblate Translated using Weblate (Bulgarian) Currently translated at 13.4% (257 of 1916 strings) Translation: aMule/Application Translate-URL: https://hosted.weblate.org/projects/amule/amule-application/bg/ Translated using Weblate Translated using Weblate (Asturian) Currently translated at 74.7% (1432 of 1916 strings) Translation: aMule/Application Translate-URL: https://hosted.weblate.org/projects/amule/amule-application/ast/ Translated using Weblate Translated using Weblate (Arabic) Currently translated at 15.8% (304 of 1916 strings) Translation: aMule/Application Translate-URL: https://hosted.weblate.org/projects/amule/amule-application/ar/ Co-authored-by: Andrei Stepanov <[email protected]> Co-authored-by: Diego Heras <[email protected]> Co-authored-by: John Doe <[email protected]> Co-authored-by: தமிழ்நேரம் <[email protected]> Co-authored-by: ℂ𝕠𝕠𝕠𝕝 (𝕘𝕚𝕥𝕙𝕦𝕓.𝕔𝕠𝕞/ℂ𝕠𝕠𝕠𝕝) <[email protected]>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Fixes #783. On Windows portable the Preferences → Skin dropdown only shows "- default -" even though the bundled skin .zip files are installed at
amule-portable-x64\share\amule\skins\. Same code path would fail to load a selected skin too, if the dropdown ever offered one.Root cause
wxStandardPaths::Get().GetDataDir()(andGetPluginsDir(), used by the skin loader) both return the .exe directory on Windows. Our portable / installer layout follows the GNU-styleshare/<appname>/tree, so:Preferences.cpp:875-884looks forbin\skins\*.zip— doesn't exist.amuleDlg.cpp:1289-1296would resolveSystem:<name>tobin\skins\<name>— also wouldn't exist.The non-Windows non-Mac branch already does a similar adjustment for the analogous capitalised-directory problem on Linux (
BeforeLast('/') + "/amule"); the Windows branch was simply missing the equivalent.Fix
Both code paths now walk up one level from
<exe_dir>(bin\) and into..\share\amule\<folder>\, matching what the installer populates. Mac and Linux paths are unchanged.Test plan
Same setup as the #780 manifest fix — can't compile-test the Windows resource layer on macOS, so the artifact-side verification happens on the fork build / reporter test.