Questions about Wine on Linux
Mca-
Newbie
Posts: 2 Joined: Thu Sep 16, 2021 3:40 pm
Post
by Mca- » Thu Mar 30, 2023 4:39 pm
Hello,
I am looking to build 32/64-bit wine staging in a chroot, I have the impression that only the 32 bit libraries are present, if someone can see where the error is in my compilation,
because when I look in my file I is only the i386 available once the construction is finished
Code: Select all
root@LegionY540:~# ls /opt/wine-staging-8_4/lib/wine/
i386-unix i386-windows
here are the steps I do to build the wine
Code: Select all
# Wine staging
chroot /srv/chroot/debian_sid_amd64
# Requirement package
# Add arch i386
dpkg --add-architecture i386 && apt update
# Generally necessary
gcc-multilib gcc-mingw-w64 libasound2-dev libpulse-dev libdbus-1-dev libfontconfig-dev libfreetype-dev libgnutls28-dev libgl-dev libunwind-dev libx11-dev libxcomposite-dev libxcursor-dev libxfixes-dev libxi-dev libxrandr-dev libxrender-dev libxext-dev
# Needed for many applications
libgstreamer1.0-dev libgstreamer-plugins-base1.0-dev libosmesa6-dev libsdl2-dev libudev-dev libvulkan-dev
# other
build-essential bison flex git
# other wine staging (./staging/patchinstall.py)
autoconf automake libtool
# Generally necessary (i386)
libasound2-dev:i386 libpulse-dev:i386 libdbus-1-dev:i386 libfontconfig-dev:i386 libfreetype-dev:i386 libgnutls28-dev:i386 libgl-dev:i386 libunwind-dev:i386 libx11-dev:i386 libxcomposite-dev:i386 libxcursor-dev:i386 libxfixes-dev:i386 libxi-dev:i386 libxrandr-dev:i386 libxrender-dev:i386 libxext-dev:i386
# Needed for many applications (i386)
libgstreamer1.0-dev:i386 libosmesa6-dev:i386 libsdl2-dev:i386 libudev-dev:i386 libvulkan-dev:i386
# Package conflict
libgstreamer-plugins-base1.0-dev:i386
# move /opt
cd /opt
# Download conflict package
apt download gir1.2-gst-plugins-base-1.0:i386 gir1.2-gudev-1.0:i386 gstreamer1.0-gl:i386 gstreamer1.0-plugins-base:i386 libcdparanoia0:i386 libgraphene-1.0-0:i386 libgstreamer-gl1.0-0:i386 libgstreamer-plugins-base1.0-0:i386 libgstreamer-plugins-base1.0-dev:i386 libgudev-1.0-0:i386 libgudev-1.0-dev:i386 libjpeg62-turbo:i386 liborc-0.4-0:i386 liborc-0.4-dev:i386 libtheora0:i386 libvisual-0.4-0:i386 libx11-xcb-dev:i386
# Install conflict package
dpkg -i *
# Create folder
mkdir -p /usr/local/src/wine/wine-staging-8_4/{wine64-build,wine32-tools,wine32_64-combo,wine-source-staging-combo}
# Download Wine source
git clone https://gitlab.winehq.org/wine/wine.git /usr/local/src/wine/wine-staging-8_4/wine-source-repo
# Download Wine Staging
git clone https://gitlab.winehq.org/wine/wine-staging.git /usr/local/src/wine/wine-staging-8_4/wine-staging-repo
# move wine-source-repo
cd /usr/local/src/wine/wine-staging-8_4/wine-source-repo
# check tag
git tag
# revert to latest release
git checkout tags/wine-8.4
# move wine-staging-repo
cd /usr/local/src/wine/wine-staging-8_4/wine-staging-repo
# check tag
git tag
# # revert to latest release
git checkout tags/v8.4
# copy wine-source-repo to wine-source-staging-combo
cp -r /usr/local/src/wine/wine-staging-8_4/wine-source-repo/* /usr/local/src/wine/wine-staging-8_4/wine-source-staging-combo
# copy wine-staging-repo to wine-source-staging-combo
cp -r /usr/local/src/wine/wine-staging-8_4/wine-staging-repo/* /usr/local/src/wine/wine-staging-8_4/wine-source-staging-combo
# apply staging patch to source
/usr/local/src/wine/wine-staging-8_4/wine-source-staging-combo/staging/patchinstall.py DESTDIR="/usr/local/src/wine/wine-staging-8_4/wine-source-staging-combo" --all
# Move to build folder wine 64-bit
cd /usr/local/src/wine/wine-staging-8_4/wine64-build
# Configure wine 64-bit
/usr/local/src/wine/wine-staging-8_4/wine-source-staging-combo/configure --enable-win64 --prefix=/opt/wine-staging-8_4
# Build wine 64-bit
make -j4
# -j (-j flag is telling the compiler, how many cores to use)
# Move to folder wine32 tools
cd /usr/local/src/wine/wine-staging-8_4/wine32-tools
# Configure wine 32-bit
PKG_CONFIG_PATH=/usr/lib/i386-linux-gnu/pkgconfig /usr/local/src/wine/wine-staging-8_4/wine-source-staging-combo/configure --prefix=/opt/wine-staging-8_4
# Build wine 32-bit
make -j4
# Move to folder wine 32/64-bit combo
cd /usr/local/src/wine/wine-staging-8_4/wine32_64-combo
# build wine 32/64-bit
PKG_CONFIG_PATH=/usr/lib/i386-linux-gnu/pkgconfig /usr/local/src/wine/wine-staging-8_4/wine-source-staging-combo/configure --with-wine64=/usr/local/src/wine/wine-staging-8_4/wine64-build --with-wine-tools=/usr/local/src/wine/wine-staging-8_4/wine32-tools --prefix=/opt/wine-staging-8_4
# Build wine 32/64-bit
make -j4
#
cd /usr/local/src/wine/wine-staging-8_4/wine32-tools
#
make install
#
cd /usr/local/src/wine/wine-staging-8_4/wine32_64-combo
#
make install
Mca-
Newbie
Posts: 2 Joined: Thu Sep 16, 2021 3:40 pm
Post
by Mca- » Thu Mar 30, 2023 7:40 pm
Here is something a bit more readable
Code: Select all
# Wine staging
# Entering the Chroot Environment
chroot /srv/chroot/debian_sid_amd64
# Add architecture i386 and update
dpkg --add-architecture i386 && apt update
# Install necessary dependencies
apt install -y gcc-multilib gcc-mingw-w64 libasound2-dev libpulse-dev libdbus-1-dev libfontconfig-dev libfreetype-dev libgnutls28-dev libgl-dev libunwind-dev libx11-dev libxcomposite-dev libxcursor-dev libxfixes-dev libxi-dev libxrandr-dev libxrender-dev libxext-dev libgstreamer1.0-dev libgstreamer-plugins-base1.0-dev libosmesa6-dev libsdl2-dev libudev-dev libvulkan-dev build-essential bison flex git autoconf automake libtool
# Install necessary i386 packages
apt install -y libasound2-dev:i386 libpulse-dev:i386 libdbus-1-dev:i386 libfontconfig-dev:i386 libfreetype-dev:i386 libgnutls28-dev:i386 libgl-dev:i386 libunwind-dev:i386 libx11-dev:i386 libxcomposite-dev:i386 libxcursor-dev:i386 libxfixes-dev:i386 libxi-dev:i386 libxrandr-dev:i386 libxrender-dev:i386 libxext-dev:i386 libgstreamer1.0-dev:i386 libosmesa6-dev:i386 libsdl2-dev:i386 libudev-dev:i386 libvulkan-dev:i386
# Resolve package conflict for libgstreamer-plugins-base1.0-dev:i386
cd /opt && apt download gir1.2-gst-plugins-base-1.0:i386 gir1.2-gudev-1.0:i386 gstreamer1.0-gl:i386 gstreamer1.0-plugins-base:i386 libcdparanoia0:i386 libgraphene-1.0-0:i386 libgstreamer-gl1.0-0:i386 libgstreamer-plugins-base1.0-0:i386 libgudev-1.0-0:i386 libgudev-1.0-dev:i386 libjpeg62-turbo:i386 liborc-0.4-0:i386 liborc-0.4-dev:i386 libtheora0:i386 libvisual-0.4-0:i386 libx11-xcb-dev:i386 && dpkg -i *
# Create necessary directories
mkdir -p /usr/local/src/wine/wine-staging-8_4/{wine64-build,wine32-tools,wine32_64-combo,wine-source-staging-combo}
# Clone Wine source and Wine Staging repositories
git clone https://gitlab.winehq.org/wine/wine.git /usr/local/src/wine/wine-staging-8_4/wine-source-repo
git clone https://gitlab.winehq.org/wine/wine-staging.git /usr/local/src/wine/wine-staging-8_4/wine-staging-repo
# Checkout latest release for Wine source and Wine Staging
cd /usr/local/src/wine/wine-staging-8_4/wine-source-repo && echo "Checking out latest release for Wine source..." && git checkout tags/wine-8.4
cd /usr/local/src/wine/wine-staging-8_4/wine-staging-repo && echo "Checking out latest release for Wine Staging..." && git checkout tags/v8.4
# Check latest tag for Wine source and Wine Staging
cd /usr/local/src/wine/wine-staging-8_4/wine-source-repo && git tag
# Revert to the latest release for Wine source
git checkout tags/wine-8.4
# Check the available tags for Wine Staging
cd /usr/local/src/wine/wine-staging-8_4/wine-staging-repo && git tag
# Revert to the latest release for Wine Staging
git checkout tags/v8.4
# Copy Wine source and Wine Staging to a new folder
cp -r /usr/local/src/wine/wine-staging-8_4/wine-source-repo/* /usr/local/src/wine/wine-staging-8_4/wine-source-staging-combo
# Copy Wine Staging to the Wine source-staging-combo folder
cp -r /usr/local/src/wine/wine-staging-8_4/wine-staging-repo/* /usr/local/src/wine/wine-staging-8_4/wine-source-staging-combo
# Apply the Staging patch to Wine source
/usr/local/src/wine/wine-staging-8_4/wine-source-staging-combo/staging/patchinstall.py DESTDIR="/usr/local/src/wine/wine-staging-8_4/wine-source-staging-combo" --all
# Move to the Wine 64-bit build folder
cd /usr/local/src/wine/wine-staging-8_4/wine64-build
# Configure Wine 64-bit
/usr/local/src/wine/wine-staging-8_4/wine-source-staging-combo/configure --enable-win64 --prefix=/opt/wine-staging-8_4
# Build Wine 64-bit
make -j4 # -j flag is telling the compiler how many cores to use
# Move to the Wine 32-bit tools folder
cd /usr/local/src/wine/wine-staging-8_4/wine32-tools
# Configure Wine 32-bit tools
PKG_CONFIG_PATH=/usr/lib/i386-linux-gnu/pkgconfig /usr/local/src/wine/wine-staging-8_4/wine-source-staging-combo/configure --with-wine64=../wine64-build/ --prefix=/opt/wine-staging-8_4
# Build Wine 32-bit tools
make -j4
# Install Wine 32-bit
make install
# Move to the Wine 32-bit and 64-bit combo folder
cd /usr/local/src/wine/wine-staging-8_4/wine32_64-combo
# Configure Wine 32-bit and 64-bit combo
PKG_CONFIG_PATH=/usr/lib/x86_64-linux-gnu/pkgconfig /usr/local/src/wine/wine-staging-8_4/wine-source-staging-combo/configure --with-wine-tools=../wine32-tools/ --prefix=/opt/wine-staging-8_4
# Build Wine 32- and 64-bit combo
make -j4
# Install Wine
make install
Mca-
Newbie
Posts: 2 Joined: Thu Sep 16, 2021 3:40 pm
Post
by Mca- » Sat Apr 01, 2023 5:23 am
I put this build of wine on hold time, I have a library that should be multiarch and is not anymore, because of some regression:
https://bugs.debian.org/cgi-bin/bugrepo ... ug=1016631
libgstreamer-plugins-base1.0-dev:amd64
libgstreamer-plugins-base1.0-dev:i386
Code: Select all
# Wine staging
# Entering the Chroot Environment
chroot /srv/chroot/debian_sid_amd64
# Add architecture i386 and update
dpkg --add-architecture i386 && apt-get update
# Install necessary dependencies
apt-get install -y gcc-multilib gcc-mingw-w64 libasound2-dev libpulse-dev libdbus-1-dev libfontconfig-dev libfreetype-dev libgnutls28-dev libgl-dev libunwind-dev libx11-dev libxcomposite-dev libxcursor-dev libxfixes-dev libxi-dev libxrandr-dev libxrender-dev libxext-dev libgstreamer1.0-dev libosmesa6-dev libsdl2-dev libudev-dev libvulkan-dev build-essential bison flex git autoconf automake libtool
# Install necessary i386 packages
apt-get install -y libasound2-dev:i386 libpulse-dev:i386 libdbus-1-dev:i386 libfontconfig-dev:i386 libfreetype-dev:i386 libgnutls28-dev:i386 libgl-dev:i386 libunwind-dev:i386 libx11-dev:i386 libxcomposite-dev:i386 libxcursor-dev:i386 libxfixes-dev:i386 libxi-dev:i386 libxrandr-dev:i386 libxrender-dev:i386 libxext-dev:i386 libgstreamer1.0-dev:i386 libosmesa6-dev:i386 libsdl2-dev:i386 libudev-dev:i386 libvulkan-dev:i386
### suspended ###
# Resolve package multiarch conflict for libgstreamer-plugins-base1.0-dev and libgstreamer-plugins-base1.0-dev:i386
mkdir -p /tmp/libgstreamer-plugins-base1.0-dev && cd /tmp/libgstreamer-plugins-base1.0-dev && echo "deb-src http://deb.debian.org/debian sid main" >> /etc/apt/sources.list && apt-get update && apt-get source libgstreamer-plugins-base1.0-dev libgstreamer-plugins-base1.0-dev:i386
#######
# Create necessary directories
mkdir -p /usr/local/src/wine/wine-staging-8_4/{wine64-build,wine32-tools,wine32_64-combo,wine-source-staging-combo}
# Clone Wine source and Wine Staging repositories
git clone https://gitlab.winehq.org/wine/wine.git /usr/local/src/wine/wine-staging-8_4/wine-source-repo
git clone https://gitlab.winehq.org/wine/wine-staging.git /usr/local/src/wine/wine-staging-8_4/wine-staging-repo
# Checkout latest release for Wine source and Wine Staging (git tag check tag)
cd /usr/local/src/wine/wine-staging-8_4/wine-source-repo && git checkout tags/wine-8.4
cd /usr/local/src/wine/wine-staging-8_4/wine-staging-repo && git checkout tags/v8.4
# Copy Wine source and Wine Staging to a new folder
cp -r /usr/local/src/wine/wine-staging-8_4/wine-source-repo/* /usr/local/src/wine/wine-staging-8_4/wine-source-staging-combo
# Copy Wine Staging to the Wine source-staging-combo folder
cp -r /usr/local/src/wine/wine-staging-8_4/wine-staging-repo/* /usr/local/src/wine/wine-staging-8_4/wine-source-staging-combo
# Apply the Staging patch to Wine source
/usr/local/src/wine/wine-staging-8_4/wine-source-staging-combo/staging/patchinstall.py DESTDIR="/usr/local/src/wine/wine-staging-8_4/wine-source-staging-combo" --all
# Configure Wine 64-bit
cd /usr/local/src/wine/wine-staging-8_4/wine64-build && /usr/local/src/wine/wine-staging-8_4/wine-source-staging-combo/configure --enable-win64 --prefix=/opt/wine-staging-8_4
# Build Wine 64-bit
make -j4 # -j flag is telling the compiler how many cores to use
# Configure Wine 32-bit tools
cd /usr/local/src/wine/wine-staging-8_4/wine32-tools && PKG_CONFIG_PATH=/usr/lib/i386-linux-gnu/pkgconfig /usr/local/src/wine/wine-staging-8_4/wine-source-staging-combo/configure --prefix=/opt/wine-staging-8_4
# Build Wine 32-bit tools
make -j4
# Move to the Wine 32-bit and 64-bit combo folder
cd /usr/local/src/wine/wine-staging-8_4/wine32_64-combo
# Configure Wine 32-bit and 64-bit combo
/usr/local/src/wine/wine-staging-8_4/wine-source-staging-combo/configure --with-wine64=../wine64-build --with-wine-tools=../wine32-tools/ --prefix=/opt/wine-staging-8_4
# Build Wine 32- and 64-bit combo
make -j4
Last edited by
Mca- on Sat Apr 01, 2023 5:23 am, edited 1 time in total.
invisible kid
Level 5
Posts: 353 Joined: Tue Dec 24, 2019 3:23 pm
Post
by invisible kid » Tue Apr 04, 2023 4:01 pm
How do you know your build failed? You need to post the error you got. Might not be able to help though.