Building Wine

Questions about Wine on Linux
Locked
Mca-
Newbie
Newbie
Posts: 2
Joined: Thu Sep 16, 2021 3:40 pm

Building Wine

Post by Mca- »

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
Newbie
Posts: 2
Joined: Thu Sep 16, 2021 3:40 pm

Re: Building Wine

Post by Mca- »

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
Newbie
Posts: 2
Joined: Thu Sep 16, 2021 3:40 pm

Re: Building Wine

Post by Mca- »

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
Level 5
Posts: 353
Joined: Tue Dec 24, 2019 3:23 pm

Re: Building Wine

Post by invisible kid »

How do you know your build failed? You need to post the error you got. Might not be able to help though.
Locked