github.com/pojntfx/hydrapp/hydrapp@v0.0.0-20240516002902-d08759d6ca9f/pkg/builders/msi/Dockerfile (about) 1 FROM golang:bookworm 2 3 RUN apt update 4 RUN apt install -y curl make msitools curl uuid-runtime git cpanminus npm tree jq apt-transport-https ca-certificates cabextract git gnupg gosu gpg-agent locales p7zip pulseaudio pulseaudio-utils sudo tzdata unzip wget winbind xvfb zenity wixl libxml2-utils 5 6 # Install WINE build dependencies 7 RUN sed -i 's/^Types: deb$/Types: deb deb-src/' /etc/apt/sources.list.d/debian.sources 8 RUN apt update 9 RUN DEBIAN_FRONTEND="noninteractive" apt-get build-dep --install-recommends -y wine 10 11 # Build and install patched WINE (see https://github.com/msys2/MSYS2-packages/issues/682) 12 RUN git clone https://gitlab.winehq.org/jhol/wine.git /tmp/winesrc 13 WORKDIR /tmp/winesrc 14 RUN git checkout msys2-hacks-17 15 RUN ./configure --enable-win64 16 RUN make -j $(nproc) 17 RUN make install 18 RUN rm -rf /tmp/winesrc 19 20 # Install MSYS2 21 RUN curl -L -o /tmp/msys2.exe 'https://github.com/msys2/msys2-installer/releases/download/2024-01-13/msys2-base-x86_64-20240113.sfx.exe' 22 RUN wine64 /tmp/msys2.exe x -y -oC:/ 23 24 # Fix MSYS2 25 RUN sed -i /root/.wine/drive_c/msys64/etc/pacman.conf -e 's/SigLevel = Required/SigLevel = Never/g' 26 27 ENV WINEPATH="C:\\ucrt64\\bin;C:\\msys64\\usr\\bin" 28 ENV MSYSTEM="UCRT64" 29 30 # Install GCC and Go 31 RUN yes | wine64 bash.exe -c 'pacman --noconfirm --ignore pacman -Syu --debug' 32 33 COPY perl-Convert-BinHex-999-1-x86_64.pkg.tar.gz /root/.wine/drive_c/msys64/tmp 34 35 RUN wine64 bash.exe -c 'pacman --debug --noconfirm -U /tmp/perl-Convert-BinHex-999-1-x86_64.pkg.tar.gz' 36 RUN wine64 bash.exe -c 'pacman --debug --noconfirm --ignore pacman --needed -S ca-certificates git mingw-w64-ucrt-x86_64-gcc mingw-w64-ucrt-x86_64-go mingw-w64-ucrt-x86_64-pkg-config' 37 RUN wine64 bash.exe -c 'update-ca-trust' 38 RUN sed -i /root/.wine/drive_c/msys64/ucrt64/lib/pkgconfig/* -e 's/-Wl,-luuid/-luuid/g' # See https://github.com/gotk3/gotk3/wiki/Installing-on-Windows#chocolatey, fails with invalid flag in pkg-config --libs: -Wl,-luuid otherwise 39 40 RUN yes | cpan install File::Slurp 41 42 RUN git config --global --add safe.directory '*' 43 44 RUN mv /root/.wine/drive_c/msys64 /tmp/msys64 45 46 COPY entrypoint.sh /entrypoint.sh 47 48 WORKDIR /hydrapp/work 49 50 CMD /entrypoint.sh