Migrated the container to a wine 11 base without .NET Framework - #35
Open
chambm wants to merge 1 commit into
Open
Migrated the container to a wine 11 base without .NET Framework#35chambm wants to merge 1 commit into
chambm wants to merge 1 commit into
Conversation
* Added wine/Dockerfile on ubuntu 24.04: WineHQ's focal builds stop at 10.6, which is why the old base was pinned there, so wine 11 requires jammy or noble * Dropped .NET Framework and the VC++ redistributables; the net10 payload carries its own runtime, and pwiz-sharp deploys the vendor SDKs' VC runtimes app-local * Scoped the Mono/Gecko suppression to prefix creation; left set, it breaks the payload with a System.Runtime.dll "Module not found" on every input * Repointed the app image at the new base and at the net10 SkylineTester.zip, which now carries Skyline, msconvert and the runtime in one artifact * 43/43 vendor fixtures convert in the built image, 40/43 matching reference counts Co-Authored-By: Claude <noreply@anthropic.com>
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
Migrates the container to a plain wine 11 base, dropping the custom
wine-dotnetimage and its .NET Framework / winetricks layers.
wine/Dockerfile(new base) —ubuntu:24.04+winehq-stable 11.0. The OS bumpis forced, not cosmetic: WineHQ's focal builds stop at 10.6, which is why the old
base was pinned there. Wine 11 is published for jammy and noble only.
runtime, and pwiz-sharp deploys the vendor SDKs' VC runtimes app-local.
MFC140wasthe one wine has no builtin for, and was the reason Shimadzu silently returned zero
spectra without
winetricks vcrun2019.corefontskept — that is Skyline font rendering, not a runtime dependency.SkylineTester.zip, whichcarries Skyline, msconvert and the runtime in one artifact; the C++
pwiz-bintarballis dropped since msconvert is now the managed port.
Image is 4.52 GB vs 5.74 GB for
wine-dotnet— 1.2 GB smaller.Two traps worth knowing, both fixed here and both silent:
wineboothangs forever on prefix creation because the Mono/Gecko offer is a GUIdialog with nobody to answer it. The old base never hit it because
winetricks dotnet48setmscoreeto native first. The suppression is scoped to that oneRUNon purpose: left as a persistent
ENVit breaks the payload, which then dies withFileNotFoundException ... System.Runtime.dll ... Module not foundon every inputeven though the runtime is present and complete.
wineserver -wafter winetricks hangs the build (it waits for a process winetricksleaves behind);
-kis deterministic.Test plan
wine-11.0, 31 corefonts incl. Arial,LANG/LC_ALL=C.UTF-8, noWINEDLLOVERRIDESpersisted into the image envreference spectrum + chromatogram counts. Validated on counts, never exit codes —
the failure mode is a structurally valid mzML with no
spectrumList10nmol= 150 spectra (the case that returned 0 without the VC runtimes)reference-generation differences, not regressions
Notes for review
SkylineTester.zipbuilt from the currentmsconvert-sharp output plus a bundled .NET 10 runtime; it needs one build against a
real net10 CI artifact to confirm
DOTNET_ROOT=C:\pwiz\skyline\dotnetmatches thelayout the zip actually ships.
dotnet/Dockerfileis left in place rather than deleted so the old base staysbuildable; it is unused by this Dockerfile and can be removed once the new base is
published.
msdiff(onlyMsConvertandMsBenchmark), so any validationthat shells out to
msdiffneeds either a port or the C++ tool kept alongside.Co-Authored-By: Claude noreply@anthropic.com