MIvanchev / static-wine32

A Docker recipe for building a statically compiled 32-bit Wine for x86_64
BSD 3-Clause "New" or "Revised" License
71 stars 3 forks source link

Add libiconv #9

Closed wahaha2019 closed 10 months ago

wahaha2019 commented 10 months ago

If compile libxml2 without iconv support, that will lead to errors like 0009:err:msxml:doparse Unsupported encoding gb2312 and inability to handle such documents.

MIvanchev commented 10 months ago

Libiconv, got it! Thanks!

MIvanchev commented 10 months ago

Hey @wahaha2019, I've added the libiconv build and made sure Wine is using it. Maybe you can test or send me a problematic document so I can test. Thanks for reporting it, it revealed some bugs :)

wahaha2019 commented 10 months ago

Thank you. I want test, then build with: DOCKER_BUILDKIT=0 docker build --build-arg BUILD_WITH_LTO=n --build-arg BUILD_JOBS=2 --build-arg PLATFORM=x86-64 --build-arg PREFIX=$HOME/.local -t static-wine32:latest . 2>&1 | tee build.log but build failed: Sending build context to Docker daemon 30.84MB Step 1/23 : FROM ubuntu:22.04 22.04: Pulling from library/ubuntu aece8493d397: Pulling fs layer aece8493d397: Verifying Checksum aece8493d397: Download complete aece8493d397: Pull complete Digest: sha256:2b7412e6465c3c7fc5bb21d3e6f1917c167358449fecac8176c6e496e5c1f05f Status: Downloaded newer image for ubuntu:22.04 ---> e4c58958181a Step 2/23 : SHELL ["/bin/bash", "-c"] ---> Running in ea249f6444f5 Removing intermediate container ea249f6444f5 ---> 8dd5e532518c Step 3/23 : RUN dpkg --add-architecture i386 && apt update && apt upgrade -y && DEBIAN_FRONTEND=noninteractive apt install -y build-essential pkg-config gcc-multilib g++-multilib gcc-mingw-w64 libcrypt1-dev:i386 flex bison python3 python3-pip wget git ninja-build gperf automake autoconf-archive libtool autopoint gettext nasm glslang -tools && pip3 install mako jinja2 jinja2-cli && wget -q https://github.com/Kitware/CMake/releases/download/v3.27.5/cmake-3.27.5-linux-x86_64.tar.gz -P $HOME && tar xf $HOME /cmake-*-linux-x86_64.tar.gz -C /usr --strip-components=1 && cmake --version && git clone --depth 1 --branch 1.2.1 https://github.com/mesonbuild/meson.git "$HOME/meson" && e cho "#!/bin/sh" > /usr/bin/meson && echo "python3 \"$HOME/meson/meson.py\" \$@" > /usr/bin/meson && chmod +x /usr/bin/meson && meson --version && DEBIAN_FRONTEND=noninteract ive apt install -y nano xvfb x11-apps imagemagick && echo "#!/bin/sh" > /usr/bin/startx && echo "Xvfb \"\$DISPLAY\" -screen 0 1200x800x24 &" >> /usr/bin/startx && ec ho >> /usr/bin/startx && chmod +x /usr/bin/startx ---> Running in 8e43769804eb

WARNING: apt does not have a stable CLI interface. Use with caution in scripts.

Get:1 http://security.ubuntu.com/ubuntu jammy-security InRelease [110 kB]
Get:2 http://archive.ubuntu.com/ubuntu jammy InRelease [270 kB]
Get:3 http://security.ubuntu.com/ubuntu jammy-security/main i386 Packages [448 kB] Get:4 http://archive.ubuntu.com/ubuntu jammy-updates InRelease [119 kB]
Get:5 http://archive.ubuntu.com/ubuntu jammy-backports InRelease [109 kB]
Get:6 http://archive.ubuntu.com/ubuntu jammy/restricted i386 Packages [36.7 kB]
Get:7 http://archive.ubuntu.com/ubuntu jammy/universe i386 Packages [9385 kB]
Get:8 http://security.ubuntu.com/ubuntu jammy-security/multiverse amd64 Packages [44.0 kB] Get:9 http://security.ubuntu.com/ubuntu jammy-security/restricted amd64 Packages [1392 kB] Get:10 http://security.ubuntu.com/ubuntu jammy-security/main amd64 Packages [1186 kB] Get:11 http://security.ubuntu.com/ubuntu jammy-security/universe amd64 Packages [1013 kB] Get:12 http://security.ubuntu.com/ubuntu jammy-security/universe i386 Packages [701 kB] Get:13 http://security.ubuntu.com/ubuntu jammy-security/multiverse i386 Packages [989 B] Get:14 http://security.ubuntu.com/ubuntu jammy-security/restricted i386 Packages [39.5 kB] Get:15 http://archive.ubuntu.com/ubuntu jammy/universe amd64 Packages [17.5 MB]
Get:16 http://archive.ubuntu.com/ubuntu jammy/restricted amd64 Packages [164 kB] Get:17 http://archive.ubuntu.com/ubuntu jammy/multiverse i386 Packages [134 kB] Get:18 http://archive.ubuntu.com/ubuntu jammy/multiverse amd64 Packages [266 kB] Get:19 http://archive.ubuntu.com/ubuntu jammy/main amd64 Packages [1792 kB] Get:20 http://archive.ubuntu.com/ubuntu jammy/main i386 Packages [1324 kB] Get:21 http://archive.ubuntu.com/ubuntu jammy-updates/multiverse i386 Packages [4100 B] Get:22 http://archive.ubuntu.com/ubuntu jammy-updates/main i386 Packages [657 kB] Get:23 http://archive.ubuntu.com/ubuntu jammy-updates/universe i386 Packages [825 kB] Get:24 http://archive.ubuntu.com/ubuntu jammy-updates/restricted amd64 Packages [1419 kB] Get:25 http://archive.ubuntu.com/ubuntu jammy-updates/restricted i386 Packages [40.0 kB] Get:26 http://archive.ubuntu.com/ubuntu jammy-updates/universe amd64 Packages [1279 kB] Get:27 http://archive.ubuntu.com/ubuntu jammy-updates/multiverse amd64 Packages [49.8 kB] Get:28 http://archive.ubuntu.com/ubuntu jammy-updates/main amd64 Packages [1455 kB] Get:29 http://archive.ubuntu.com/ubuntu jammy-backports/universe i386 Packages [19.4 kB] Get:30 http://archive.ubuntu.com/ubuntu jammy-backports/universe amd64 Packages [32.6 kB] Get:31 http://archive.ubuntu.com/ubuntu jammy-backports/main amd64 Packages [78.3 kB]
Get:32 http://archive.ubuntu.com/ubuntu jammy-backports/main i386 Packages [68.4 kB]
Fetched 41.9 MB in 6s (6989 kB/s)
Reading package lists...
E: Problem executing scripts APT::Update::Post-Invoke 'rm -f /var/cache/apt/archives/.deb /var/cache/apt/archives/partial/.deb /var/cache/apt/.bin || true'
E: Sub-process returned an error code
The command '/bin/bash -c dpkg --add-architecture i386 && apt update && apt upgrade -y && DEBIAN_FRONTEND=noninteractive apt install -y build-essential pkg-config gc c-multilib g++-multilib gcc-mingw-w64 libcrypt1-dev:i386 flex bison python3 python3-pip wget git ninja-build gperf automake autoconf-archive libtool autopoint gettext na sm glslang-tools && pip3 install mako jinja2 jinja2-cli && wget -q https://github.com/Kitware/CMake/releases/download/v3.27.5/cmake-3.27.5-linux-x86_64.tar.gz -P $HOME && ta r xf $HOME/cmake-
-linux-x86_64.tar.gz -C /usr --strip-components=1 && cmake --version && git clone --depth 1 --branch 1.2.1 https://github.com/mesonbuild/meson.git "$HOME/meson " && echo "#!/bin/sh" > /usr/bin/meson && echo "python3 \"$HOME/meson/meson.py\" \$@" > /usr/bin/meson && chmod +x /usr/bin/meson && meson --version && DEBIAN_FRONTEND=n oninteractive apt install -y nano xvfb x11-apps imagemagick && echo "#!/bin/sh" > /usr/bin/startx && echo "Xvfb \"\$DISPLAY\" -screen 0 1200x800x24 &" >> /usr/bin/startx && echo >> /usr/bin/startx && chmod +x /usr/bin/startx' returned a non-zero code: 100

wahaha2019 commented 10 months ago

When I built at 2023-11-02 with the Ubuntu 20.04 Docker file via this command: DOCKER_BUILDKIT=0 docker build --build-arg BUILD_JOBS=2 --build-arg PLATFORM=x86-64 --build-arg PREFIX=$HOME/.local -t static-wine32:latest . 2>&1 | tee build.log it exit ok, but the final tar.gz file is too small. The latest content with errors of the build.log: gcc -m32 -o dlls/winex11.drv/winex11.so -shared -Wl,-Bsymbolic -Wl,-soname,winex11.so -Wl,-z,defs dlls/winex11.drv/bitblt.o \ dlls/winex11.drv/brush.o dlls/winex11.drv/clipboard.o dlls/winex11.drv/desktop.o \ dlls/winex11.drv/display.o dlls/winex11.drv/event.o dlls/winex11.drv/graphics.o \ dlls/winex11.drv/init.o dlls/winex11.drv/keyboard.o dlls/winex11.drv/mouse.o \ dlls/winex11.drv/opengl.o dlls/winex11.drv/palette.o dlls/winex11.drv/pen.o \ dlls/winex11.drv/vulkan.o dlls/winex11.drv/window.o dlls/winex11.drv/wintab.o \ dlls/winex11.drv/x11drv_main.o dlls/winex11.drv/xim.o dlls/winex11.drv/xinerama.o \ dlls/winex11.drv/xrandr.o dlls/winex11.drv/xrender.o dlls/winex11.drv/xvidmode.o \ dlls/ntdll/ntdll.so dlls/win32u/win32u.so -L/usr/local/lib -lX11 -lpthread -lxcb -lXau \ -L/usr/local/lib -lXext -lX11 -lpthread -lxcb -lXau -ldl -L/usr/local/lib -lXrender -lX11 \ -lpthread -lxcb -lXau -ldl -L/usr/local/lib -lXrandr -lXext -lXrender -lX11 -lpthread -lxcb -lXau \ -ldl -L/usr/local/lib -lXxf86vm -lXext -lX11 -lpthread -lxcb -lXau -L/usr/local/lib -lXinerama \ -lXext -lX11 -lpthread -lxcb -lXau -L/usr/local/lib -lXcursor -lXrender -lXfixes -lX11 -lpthread \ -lxcb -lXau -ldl -L/usr/local/lib -lXi -lXext -lXfixes -lX11 -lpthread -lxcb -lXau \ -L/usr/local/lib -lXcomposite -lXfixes -lX11 -lpthread -lxcb -lXau -L/usr/local/lib \ -L/usr/local/lib/dri -L/usr/local/lib -lvulkan -Wl,--whole-archive -lvulkan_radeon -lvulkan_intel \ -lvulkan_intel_hasvk -lvulkan_runtime -lvulkan_util -lvulkan_wsi -Wl,--no-whole-archive \ -ldrm_amdgpu -lGL -ldl -lm -pthread /usr/lib/gcc/x86_64-linux-gnu/9/32/libstdc++.a -lgallium_dri \ -lpthread -lvulkan -lOSMesa -pthread /usr/lib/gcc/x86_64-linux-gnu/9/32/libstdc++.a -lm -ldl \ -lglapi -lpthread -lunwind -llzma -lz -lxcb-dri3 -lxcb-present -lxcb-randr -lxcb-sync -lxshmfence \ -lxcb-xfixes -lxcb-render -lxcb-shape -lexpat -lm -ldrm_radeon -pthread -lelf -lz -lzstd -pthread \ -ldrm_nouveau -pthread -ldrm_intel -pthread -ldrm -lm -lpciaccess -lXxf86vm -lxcb-glx -lX11-xcb \ -lxcb-dri2 -lXext -lXfixes -lX11 -lpthread -lxcb-shm -lxcb -lXau -ludev -lrt -pthread -lcap \ -L/usr/local/lib -lOSMesa -pthread /usr/lib/gcc/x86_64-linux-gnu/9/32/libstdc++.a -lm -ldl -lglapi \ -lpthread -lz -lzstd -pthread -lunwind -llzma -lz -ldrm -lm -lm -ldl -lgstreamer-full-1.0 \ -m32 -march=x86-64 -flto -flto-partition=one ^[[91mlto-wrapper: warning: Extra option to -Xassembler: --noexecstack, dropping all -Xassembler and -Wa options. gcc: fatal error: Killed signal terminated program lto1 compilation terminated. lto-wrapper: fatal error: gcc returned 1 exit status compilation terminated. /usr/bin/ld: error: lto-wrapper failed ^[[0m^[[91mcollect2: error: ld returned 1 exit status ^[[0m^[[91mmake: [Makefile:120551: dlls/winex11.drv/winex11.so] Error 1 ^[[0m^[[91mmake: Waiting for unfinished jobs.... ^[[0m^[[91mlto-wrapper: warning: Extra option to -Xassembler: --noexecstack, dropping all -Xassembler and -Wa options. ../subprojects/fdk-aac-2.0.2/libMpegTPDec/src/tpdec_latm.h:126:3: warning: type 'struct LATM_LAYER_INFO' violates the C++ One Definition Rule [-Wodr] ../subprojects/fdk-aac-2.0.2/libMpegTPEnc/src/tpenc_latm.h:130:3: note: a different type is defined in another translation unit ../subprojects/fdk-aac-2.0.2/libMpegTPDec/src/tpdec_latm.h:122:8: note: the first difference of corresponding definitions is field 'm_frameLengthType' ../subprojects/fdk-aac-2.0.2/libMpegTPEnc/src/tpenc_latm.h:126:14: note: a field with different name is defined in another translation unit ../subprojects/fdk-aac-2.0.2/libMpegTPDec/src/tpdec_adts.h:141:8: warning: type 'struct STRUCT_ADTS' violates the C++ One Definition Rule [-Wodr] ../subprojects/fdk-aac-2.0.2/libMpegTPEnc/src/tpenc_adts.h:133:3: note: a different type is defined in another translation unit ../subprojects/fdk-aac-2.0.2/libMpegTPDec/src/tpdec_adts.h:142:18: note: the first difference of corresponding definitions is field 'bs' ../subprojects/fdk-aac-2.0.2/libMpegTPEnc/src/tpenc_adts.h:111:7: note: a field with different name is defined in another translation unit ../subprojects/fdk-aac-2.0.2/libSBRenc/include/../src/bit_sbr.h:131:8: warning: type 'struct SBR_HEADER_DATA' violates the C++ One Definition Rule [-Wodr] ../subprojects/fdk-aac-2.0.2/libSBRdec/src/env_extr.h:295:3: note: a different type is defined in another translation unit ../subprojects/fdk-aac-2.0.2/libSBRenc/include/../src/bit_sbr.h:132:11: note: the first difference of corresponding definitions is field 'sbr_amp_res' ../subprojects/fdk-aac-2.0.2/libSBRdec/src/env_extr.h:271:3: note: a field with different name is defined in another translation unit ../subprojects/fdk-aac-2.0.2/libSBRenc/include/../src/ton_corr.h:131:3: warning: type 'struct PATCH_PARAM' violates the C++ One Definition Rule [-Wodr] ../subprojects/fdk-aac-2.0.2/libSBRdec/src/lpp_tran.h:187:3: note: a different type is defined in another translation unit ../subprojects/fdk-aac-2.0.2/libSBRenc/include/../src/ton_corr.h:120:7: note: the first difference of corresponding definitions is field 'sourceStartBand' ../subprojects/fdk-aac-2.0.2/libSBRdec/src/lpp_tran.h:174:9: note: a field of same name but different type is defined in another translation unit ../subprojects/fdk-aac-2.0.2/libSBRenc/include/../src/ton_corr.h:131:3: note: type 'INT' should match type 'UCHAR' ../subprojects/fdk-aac-2.0.2/libSBRenc/include/../src/sbr.h:129:16: warning: type 'struct SBR_CHANNEL' violates the C++ One Definition Rule [-Wodr] ../subprojects/fdk-aac-2.0.2/libSBRdec/src/sbr_dec.h:173:3: note: a different type is defined in another translation unit ../subprojects/fdk-aac-2.0.2/libSBRenc/include/../src/sbr.h:130:22: note: the first difference of corresponding definitions is field 'hEnvChannel' ../subprojects/fdk-aac-2.0.2/libSBRdec/src/sbr_dec.h:170:18: note: a field with different name is defined in another translation unit ../subprojects/fdk-aac-2.0.2/libSACenc/src/sacenc_bitstream.h:241:3: warning: type 'struct LOSSLESSDATA' violates the C++ One Definition Rule [-Wodr] ../subprojects/fdk-aac-2.0.2/libSACdec/src/sac_dec.h:201:3: note: a different type is defined in another translation unit ../subprojects/fdk-aac-2.0.2/libSACenc/src/sacenc_bitstream.h:236:9: note: the first difference of corresponding definitions is field 'bsXXXDataMode' ../subprojects/fdk-aac-2.0.2/libSACdec/src/sac_dec.h:196:9: note: a field of same name but different type is defined in another translation unit ../subprojects/fdk-aac-2.0.2/libSACenc/src/sacenc_bitstream.h:241:3: note: array types have different bounds ../subprojects/fdk-aac-2.0.2/libFDK/include/nlc_dec.h:129:3: warning: type 'DATA_TYPE' violates the C++ One Definition Rule [-Wodr] ../subprojects/fdk-aac-2.0.2/libSACenc/src/sacenc_nlc_enc.h:120:3: note: an enum with mismatching number of values is defined in another translation unit pcm_local.h:383:6: warning: type of 'snd1_pcm_set_appl_ptr' does not match original declaration [-Wlto-type-mismatch] pcm.c:7864:6: note: type mismatch in parameter 4 pcm.c:7864:6: note: 'snd1_pcm_set_appl_ptr' was previously declared here pcm.c:7864:6: note: code may be misoptimized unless '-fno-strict-aliasing' is used pcm_local.h:382:6: warning: type of 'snd1_pcm_set_hw_ptr' does not match original declaration [-Wlto-type-mismatch] pcm.c:7857:6: note: type mismatch in parameter 4 pcm.c:7857:6: note: 'snd1_pcm_set_hw_ptr' was previously declared here pcm.c:7864:6: note: code may be misoptimized unless '-fno-strict-aliasing' is used pcm_local.h:382:6: warning: type of 'snd1_pcm_set_hw_ptr' does not match original declaration [-Wlto-type-mismatch] pcm.c:7857:6: note: type mismatch in parameter 4 pcm.c:7857:6: note: 'snd1_pcm_set_hw_ptr' was previously declared here pcm.c:7857:6: note: code may be misoptimized unless '-fno-strict-aliasing' is used ../gobject/gsignal.c: In function 'signal_emit_unlocked_R': ../gobject/gsignal.c:3885: warning: argument to 'alloca' may be too large [-Walloca-larger-than=] gcc: fatal error: Killed signal terminated program lto1 compilation terminated. lto-wrapper: fatal error: gcc returned 1 exit status compilation terminated. /usr/bin/ld: error: lto-wrapper failed collect2: error: ld returned 1 exit status ^[[0m^[[91mmake: *** [Makefile:117917: dlls/winegstreamer/winegstreamer.so] Error 1 ^[[0m./ ./lib/ ./lib/wine/ ./lib/wine/i386-windows/ ./lib/wine/i386-windows/sfc.dll ./lib/wine/i386-windows/wmi.dll ./lib/wine/i386-windows/stdole2.tlb ./lib/wine/i386-windows/lz32.dll ./lib/wine/i386-windows/tzres.dll ./lib/wine/i386-windows/security.dll ./lib/wine/i386-windows/light.msstyles ./lib/wine/i386-windows/usp10.dll ./lib/wine/i386-windows/apisetschema.dll ./lib/wine/i386-windows/shdoclc.dll ./lib/wine/i386-windows/icmp.dll ./lib/wine/i386-windows/stdole32.tlb ./lib/wine/i386-windows/msimsg.dll ./lib/wine/i386-windows/normaliz.dll ./lib/wine/i386-windows/mferror.dll ./share/ ./share/applications/ ./share/applications/wine.desktop ./share/wine/ ./share/wine/wine.inf ./share/wine/nls/ ./share/wine/nls/c_10029.nls ./share/wine/nls/c_1252.nls ./share/wine/nls/c_28599.nls ./share/wine/nls/c_720.nls ./share/wine/nls/sortdefault.nls ./share/wine/nls/c_10082.nls ./share/wine/nls/c_865.nls ./share/wine/nls/normnfkc.nls ./share/wine/nls/l_intl.nls ./share/wine/nls/c_10004.nls ./share/wine/nls/c_1251.nls ./share/wine/nls/c_1255.nls ./share/wine/nls/c_936.nls ./share/wine/nls/c_10002.nls ./share/wine/nls/c_28592.nls ./share/wine/nls/normidna.nls ./share/wine/nls/c_875.nls ./share/wine/nls/c_855.nls ./share/wine/nls/c_10007.nls ./share/wine/nls/c_28595.nls ./share/wine/nls/c_28597.nls ./share/wine/nls/c_708.nls ./share/wine/nls/c_037.nls ./share/wine/nls/c_950.nls ./share/wine/nls/c_869.nls ./share/wine/nls/c_1254.nls ./share/wine/nls/c_1258.nls ./share/wine/nls/c_437.nls ./share/wine/nls/c_10079.nls ./share/wine/nls/c_20949.nls ./share/wine/nls/c_28603.nls ./share/wine/nls/c_10017.nls ./share/wine/nls/c_737.nls ./share/wine/nls/c_28598.nls ./share/wine/nls/c_1026.nls ./share/wine/nls/c_10008.nls ./share/wine/nls/c_10003.nls ./share/wine/nls/normnfkd.nls ./share/wine/nls/c_775.nls ./share/wine/nls/c_10001.nls ./share/wine/nls/c_20866.nls ./share/wine/nls/c_857.nls ./share/wine/nls/c_28596.nls ./share/wine/nls/c_28605.nls ./share/wine/nls/c_874.nls ./share/wine/nls/c_850.nls ./share/wine/nls/c_10081.nls ./share/wine/nls/c_10010.nls ./share/wine/nls/c_10006.nls ./share/wine/nls/c_932.nls ./share/wine/nls/normnfc.nls ./share/wine/nls/c_500.nls ./share/wine/nls/c_20127.nls ./share/wine/nls/c_1253.nls ./share/wine/nls/c_863.nls ./share/wine/nls/c_21866.nls ./share/wine/nls/c_28593.nls ./share/wine/nls/c_1250.nls ./share/wine/nls/c_1257.nls ./share/wine/nls/normnfd.nls ./share/wine/nls/c_10021.nls ./share/wine/nls/c_852.nls ./share/wine/nls/c_10005.nls ./share/wine/nls/c_949.nls ./share/wine/nls/c_864.nls ./share/wine/nls/c_861.nls ./share/wine/nls/c_866.nls ./share/wine/nls/c_1361.nls ./share/wine/nls/c_20932.nls ./share/wine/nls/c_860.nls ./share/wine/nls/c_862.nls ./share/wine/nls/locale.nls ./share/wine/nls/c_10000.nls ./share/wine/nls/c_28594.nls ./share/wine/nls/c_1256.nls ./share/wine/nls/c_28591.nls ./share/wine/fonts/ ./share/wine/fonts/coure.fon ./share/wine/fonts/sserifeg.fon ./share/wine/fonts/ssef1257.fon ./share/wine/fonts/couree.fon ./share/wine/fonts/ssef874.fon ./share/wine/fonts/webdings.ttf ./share/wine/fonts/svgasys.fon ./share/wine/fonts/coue1257.fon ./share/wine/fonts/sserifet.fon ./share/wine/fonts/coureg.fon ./share/wine/fonts/smallet.fon ./share/wine/fonts/sserifft.fon ./share/wine/fonts/jsmalle.fon ./share/wine/fonts/vgasysg.fon ./share/wine/fonts/sserifee.fon ./share/wine/fonts/sserifer.fon ./share/wine/fonts/ssee1256.fon ./share/wine/fonts/ssef1256.fon ./share/wine/fonts/vgasys.fon ./share/wine/fonts/vgasyse.fon ./share/wine/fonts/tahoma.ttf ./share/wine/fonts/vgas1256.fon ./share/wine/fonts/ssef1255.fon ./share/wine/fonts/vgas1257.fon ./share/wine/fonts/courer.fon ./share/wine/fonts/wingding.ttf ./share/wine/fonts/vgas1255.fon ./share/wine/fonts/sserife.fon ./share/wine/fonts/vgas874.fon ./share/wine/fonts/ssee874.fon ./share/wine/fonts/coue1255.fon ./share/wine/fonts/sseriffe.fon ./share/wine/fonts/coue1256.fon ./share/wine/fonts/cvgasys.fon ./share/wine/fonts/ssee1255.fon ./share/wine/fonts/smaller.fon ./share/wine/fonts/jvgafix.fon ./share/wine/fonts/ssee1257.fon ./share/wine/fonts/vgafix.fon ./share/wine/fonts/sseriffr.fon ./share/wine/fonts/smallee.fon ./share/wine/fonts/smalleg.fon ./share/wine/fonts/smalle.fon ./share/wine/fonts/smae1255.fon ./share/wine/fonts/vgasyst.fon ./share/wine/fonts/hvgasys.fon ./share/wine/fonts/smae1256.fon ./share/wine/fonts/sseriffg.fon ./share/wine/fonts/marlett.ttf ./share/wine/fonts/vgasysr.fon ./share/wine/fonts/sseriff.fon ./share/wine/fonts/symbol.ttf ./share/wine/fonts/couret.fon ./share/wine/fonts/smae1257.fon ./share/wine/fonts/tahomabd.ttf ./share/wine/fonts/jvgasys.fon ./share/man/ ./share/man/pl.UTF-8/ ./share/man/pl.UTF-8/man1/ ./share/man/pl.UTF-8/man1/wine.1 ./share/man/man1/ ./share/man/man1/wine.1 ./share/man/de.UTF-8/ ./share/man/de.UTF-8/man1/ ./share/man/de.UTF-8/man1/wine.1 ./share/man/fr.UTF-8/ ./share/man/fr.UTF-8/man1/ ./share/man/fr.UTF-8/man1/wine.1 ./bin/ ./bin/wine-preloader ./bin/wine make uninstall /build Removing intermediate container 86e2d73d69c8 ---> d4ff917914ec Successfully built d4ff917914ec Successfully tagged static-wine32:latest

MIvanchev commented 10 months ago

Hey @wahaha2019, thanks for the input, can you tell me your Docker version? I found some info online it might be releated to an outdated Docker.

MIvanchev commented 10 months ago

Just to let you know I'm working on reverting the base image to Ubuntu 20.04 so it should work with older Docker versions.

wahaha2019 commented 10 months ago

Thank you for the reply. My Docker version is 20.10.7, build 20.10.7-0ubuntu1~18.04.1

I prefer new version of GCC or LLVM to build. I think it may be possible to install the latest version of Docker manually.

MIvanchev commented 10 months ago

No, don't worry for now, it should work with older versions too.

wahaha2019 commented 10 months ago

I upgraded Docker to version 24.0.7, build afdd53b according to this link: https://www.digitalocean.com/community/tutorials/how-to-install-and-use-docker-on-ubuntu-18-04

MIvanchev commented 10 months ago

OK, this is good but let me fix the build errors that came in after I added libiconv. I found out the unpatched Wine itself doesn't support iconv because it uses a version of libxml2 with less features.

wahaha2019 commented 10 months ago

Now, I'm building with Docker version 24.0.7, that will take about 13 hours, because the host machine is a low end VPS with only 1G memory.

MIvanchev commented 10 months ago

You can stop the build, it won't work currently :) Let me finish the patch.

wahaha2019 commented 10 months ago

OK, I'll wait for your result.

wahaha2019 commented 10 months ago

May be this is helpful to you: https://www.winehq.org/pipermail/wine-devel/2019-August/149379.html

MIvanchev commented 10 months ago

This is already in Wine/static-wine32 (https://github.com/MIvanchev/wine/blob/static-dependencies/dlls/msxml3/main.c) but for some reason it doesn't work for you... But it also doesn't matter, it's important that libxml2 is compiled with all features and I'm grateful to you for finding that out!!

MIvanchev commented 10 months ago

@wahaha2019, I committed some changes that I've been working on in the last few days. I reverted the image to Ubuntu 20.04 and added some code to build newer versions of the build tools. It turns out it's very hard to make Wine use a modern libxml2 so instead, before running docker build, you can download this file to dependencies/patches. The patch registers the encoding gb2312 to be parsed as gbk. This is not entirely correct because gb2312 is a subset of gbk but should work if you're only reading files. Good luck and let me know how it goes :) Thanks a lot for everything you've reported!!!

wahaha2019 commented 9 months ago

Thank you for the helpful work! My VPS machine is a low end one, it has only 7.5GB free disk space. How many disk space does a success build need?

MIvanchev commented 9 months ago

I think around ~4GB, last time I checked the static-wine32 Docker image was about 4.2GB.