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