Way to support i386 architecture?

I’m trying to run an exe file via Wine, and it sounds like it needs 32-bit libraries. I’ve tried to install wine32 and its dependencies:

``sudo apt-get install wine32 libwine:i386 libfontconfig1:i386`

which returns

The following packages have unmet dependencies:
 libfontconfig1:i386 : Depends: libuuid1:i386 (>= 2.16) but it is not going to be installed
 libwine:i386 : Depends: libglib2.0-0:i386 (>= 2.12.0) but it is not going to be installed
            Depends: libgphoto2-6:i386 (>= 2.5.10) but it is not going to be installed
            Depends: libgphoto2-port12:i386 (>= 2.5.10) but it is not going to be installed
            Depends: libgstreamer-plugins-base1.0-0:i386 (>= 1.0.0) but it is not going to be 
installed
            Depends: libgstreamer1.0-0:i386 (>= 1.4.0) but it is not going to be installed
            Depends: libldap-2.4-2:i386 (>= 2.4.7) but it is not going to be installed
            Depends: libpulse0:i386 (>= 0.99.1) but it is not going to be installed
            Depends: libudev1:i386 (>= 183) but it is not going to be installed
            Depends: libxml2:i386 (>= 2.9.0) but it is not going to be installed
            Recommends: libcups2:i386 (>= 1.4.0) but it is not going to be installed
            Recommends: libdbus-1-3:i386 (>= 1.9.14) but it is not going to be installed
            Recommends: libgnutls30:i386 (>= 3.6.5) but it is not going to be installed
            Recommends: libsdl2-2.0-0:i386 (>= 2.0.9) but it is not going to be installed
            Recommends: libxslt1.1:i386 (>= 1.1.25) but it is not going to be installed
            Recommends: libasound2-plugins:i386 but it is not going to be installed
E: Unable to correct problems, you have held broken packages.

When trying to install the first dependency, terminal looks like this:

sudo apt-get install libuuid1:i386
 The following packages were automatically installed and are no longer required: 

(endless list of packages)

The following additional packages will be installed:
  gcc-8-base:i386 libc6:i386 libgcc1:i386 libidn2-0:i386 libunistring2:i386
Suggested packages:
  glibc-doc:i386 locales:i386
Recommended packages:
  uuid-runtime:i386
The following packages will be REMOVED:

(another endless list of packages)

The following NEW packages will be installed:
  gcc-8-base:i386 libc6:i386 libgcc1:i386 libidn2-0:i386 libunistring2:i386 
libuuid1:i386
WARNING: The following essential packages will be removed.
This should NOT be done unless you know exactly what you are doing!
  e2fsprogs libblkid1 (due to e2fsprogs) libuuid1 (due to e2fsprogs) fdisk 
libfdisk1 (due to fdisk) libmount1 (due to fdisk) init
  systemd-sysv (due to init) mount util-linux (due to mount) sysvinit-utils
0 upgraded, 6 newly installed, 853 to remove and 1 not upgraded.
Need to get 3,536 kB of archives.
After this operation, 3,737 MB disk space will be freed.
You are about to do something potentially harmful.
To continue type in the phrase 'Yes, do as I say!'

apt policy libuuid1:i386 libuuid1:amd64 returns:

libuuid1:i386:
  Installed: (none)
  Candidate: 2.33.1-0.1
 Version table:
    2.33.1-0.1 500
    500 http://deb.debian.org/debian buster/main i386 Packages
libuuid1:
  Installed: 2.33.1-0.1pureos1
  Candidate: 2.33.1-0.1pureos1
 Version table:
 *** 2.33.1-0.1pureos1 500
      500 https://repo.pureos.net/pureos amber-updates/main amd64 Packages
      100 /var/lib/dpkg/status
    2.33.1-0.1 500
      500 https://repo.pureos.net/pureos amber/main amd64 Packages
      500 http://deb.debian.org/debian buster/main amd64 Packages

So it looks like the Debian library is different from the Pure OS library. From what I can tell (please tell me if I’m wrong, because this would make my life so much easier) Pure OS doesn’t have up-to-date i386 libraries like the Debian repo does. So is there any way I can fix this so that Wine will work on this exe file?

I hope this gets a solution, because I do think it is time to include a how-to for Pure OS on this stuff. You know as a part of the freedom aspect?

I would still be using Pure OS if this was possible. (And I know it is.)

1 Like

When I run a Windows executable with Wine, I prefer not to mess with installing 32-bit libraries on my main OS (PureOS), and I use Wine on another OS in a virtual machine, which could also be done in a Docker container or a chroot jail.

Running Wine on PureOS could be tricky for in case Wine or Windows executables you run depend on a mix of 32-bit and 64-bit Linux libraries; I wonder whether it is a real issue. If it is not, a solution that seems clean to me would be installing 32-bit libraries in a non-standard prefix (not / nor /usr nor /usr/local) and/or with a package system distinct from PureOS main system.

I would also prefer not to clutter the main OS with 32-bit x86 runtimes just to run a Windows binary. And would prefer to sandbox it, in any case.

A wine flatpak that includes 32-bit libraries would be greatly useful, but haven’t found one yet. I found winepak but it appears unmaintained since 2018?

Ran into that issue also and already stopped the attempt to use wine twice because of it.

That’s a point, but: how does Debian solve the problem and does the solution come with many compromises to take?

If there is a good solution in Debian then it should be possible to offer the same solution for PureOS - if that solution does not break the FSF endorsement.

Does anybody know more background?

1 Like

It seems to me that the FSF endorsement is orthogonal to providing packages of 32bit libraries, and that both are design choices for PureOS; I don’t know of an official statement about the lack of 32bit libraries, though.

A nice tutorial for running Wine in a chroot is on this forum:

2 Likes

Thanks, that’s a great guide.

Edit: I followed the steps and it worked for me, I can run 32-bit windows programs inside the chroot successfully now through wine.

Yes, looks like winepak has been dead for a while now unfortunately. The domain name appears to have been hijacked and I can’t get the repo file to download.

1 Like

Using flatpak I installed a current version of wine 9.0 from flathub.org.

Then I tried to run a 32-bit Windows setup app and it failed like so.

$ flatpak run org.winehq.Wine Setup.exe
0088:fixme:wineusb:query_id Unhandled ID query type 0x5.
0088:fixme:hid:handle_IRP_MN_QUERY_ID Unhandled type 00000005
0088:fixme:hid:handle_IRP_MN_QUERY_ID Unhandled type 00000005
0088:fixme:hid:handle_IRP_MN_QUERY_ID Unhandled type 00000005
0088:fixme:hid:handle_IRP_MN_QUERY_ID Unhandled type 00000005
Application could not be started, or no application associated with the specified file.
ShellExecuteEx failed: File not found.

I’m unclear if the flatpak version of wine includes 32bit support or not.

Running flatpak run org.winehq.Wine cmd.exe is successful and launches the Windows command prompt.

flatpak run org.winehq.Wine notepad and flatpak run org.winehq.Wine explorer work as well, but both throw these errors below

0084:fixme:hid:handle_IRP_MN_QUERY_ID Unhandled type 00000005
0084:fixme:hid:handle_IRP_MN_QUERY_ID Unhandled type 00000005
0084:fixme:hid:handle_IRP_MN_QUERY_ID Unhandled type 00000005
0084:fixme:hid:handle_IRP_MN_QUERY_ID Unhandled type 00000005
0084:fixme:wineusb:query_id Unhandled ID query type 0x5.
1 Like

Success!!

I was able to install a 32-bit Windows app under flatpak Wine 9x using these steps

  1. Launch Windows explorer via flatpak run org.winehq.Wine explorer
  2. Manually copying my Windows installer to .var/app/org.winehq.Wine/data/wine/drive_c/
  3. Double clicking the installer file from Windows explorer.

The installation completed and the 32-bit Windows app is running under PureOS Crimson!

4 Likes

In addition to chroots, VMs, and containers, Debian itself also offers multilib packages. With some hacking to /etc/apt/sources.list and some work, you can just install the 32-bit version of wine from Debian. PureOS gets its packages from Debian stable. Note that this might be considered “here be dragons” territory for official support.

https://wiki.debian.org/Multiarch/HOWTO

1 Like