OS - Linux - PCLinuxOS - Notes - libs32 symlinks for wine compile

This was used with ia32-libs package version ia32-libs-2021-16pclos2021.

This is a script to create symlinks under /opt/libs32/ so the './configure' for wine compilation can find the 32-bit libraries with the names it expects to find.

First install the 'ia32-libs' package.

  1. Copy and past the below code to a new text file and save it as fix.sh.
  2. Mark the file as executable:
    chmod +x fix.sh
  3. Execute the file:
    ./fix.sh
#!/bin/bash
 
# Location of the 32-bit file.so.NUMBER files.
libs32=/opt/libs32
 
# Gather all file.so.NUMBER and strip the directoryname.
# Exclude the file-VERSION.so.NUMBER files this round.
libs=`ls $libs32/*.so.[0-9]* | sed 's/\/opt\/libs32\///' | /bin/grep -v "\-[0-9]\.[0-9]\.so\.[0-9]"`
 
# For each file.so.NUMBER that was found...
for lib in $libs; do
 
  # Split the filename on the period (.).
  my_array=($(echo $lib | /usr/bin/tr "." "\n"))
 
  # If the base filename with .so without number suffix does not exist, then...
  if [ ! -x $libs32/${my_array[0]}.so ]; then
 
    # Link the the filename to a .so without number suffix.
    /bin/ln -s $lib $libs32/${my_array[0]}.so
 
  fi
 
done
 
libs=`ls $libs32/*-[0-9]\.[0-9]*.so.[0-9]* | sed 's/\/opt\/libs32\///'`
 
# For each file-VERSION.so.NUMBER that was found...
for lib in $libs; do
 
  # Split the filename on the dash (-).
  my_array=($(echo $lib | /usr/bin/tr "-" "\n"))
 
  # If the base filename with .so without version and number suffix does not exist, then...
  if [ ! -x $libs32/${my_array[0]}.so ]; then
 
    # Link the the filename to a .so without number suffix.
    /bin/ln -s $lib $libs32/${my_array[0]}.so
 
  fi
 
done
 
#
# Exceptions
#
if [ ! -x $libs32/libgstreamer-1.0.so ]; then
 
  /bin/ln -s libgstreamer-1.0.so.0 $libs32/libgstreamer-1.0.so
 
fi
 
if [ ! -x $libs32/libusb-1.0.so ]; then
 
  /bin/ln -s libusb-1.0.so.0 $libs32/libusb-1.0.so
 
fi