Closed ethteck closed 2 years ago
Hello @ethteck. Thank you for your report. We will take a look.
@ethteck could you please try to apply workaround described here
Hi, thanks for the swift reply! Unfortunately, that doesn't seem to be helping. "wine" and "wine64" install, but "wine" is unable to run 32-bit binaries.
If I try to install "wine32" (which I get warnings that I should do), I get apt errors: https://github.com/decompme/decomp.me/runs/4323785244?check_suite_focus=true
The following packages have unmet dependencies:
wine32:i386 : Depends: libwine:i386 (= 5.0-3ubuntu1) but it is not going to be installed
If I understood what change in the new version caused the regression, I could maybe manually do some repository management to fix it, but I'm a bit lost as to what change could have caused this..
@ethteck I've tried to reproduce the issue, but my run was successful (link the run)
Installing wine is working for us, but it appears to not have 32 bit support because of errors we get in our tests. I'll make a sample repo tomorrow that simply downloads wine and tries to execute a 32-bit executable through wine, to easier demonstrate what's going on.
And thank you for your time and effort so far, looking into this!
Having a similar issue to this mysteriously failing on libglib2.0-dev:i386 and libsdl2-dev:i386 on my project here:
https://github.com/etfdevs/ETe/runs/4326926427?check_suite_focus=true
Attempting to add the listed packages only further adds more package complaints https://github.com/etfdevs/ETe/runs/4327104370?check_suite_focus=true
When it built fine the previously action with no issues on packages a couple weeks ago since last action ran.
x86_64 seems to pass/build just fine with same non i386 libs as well.
Can start separate issue if necessary.
Same issue for us too, some recent change to runners broke apt adding i386 architecture.
Reading package lists...
Building dependency tree...
Reading state information...
Some packages could not be installed. This may mean that you have
requested an impossible situation or if you are using the unstable
distribution that some required packages have not yet been created
or been moved out of Incoming.
The following information may help to resolve the situation:
The following packages have unmet dependencies:
winehq-stable : Depends: wine-stable (= 6.0.2~focal-1)
E: Unable to correct problems, you have held broken packages.
Also when trying to install wine32
is throwing much more dependency issues.
Maybe this Ubuntu update broke apt ? Since it's the same timeframe we started to face issues with apt
Glad to see this isn't just me with this issue. I made a test repo that just tries to install wine after adding the i386 arch and executing a small win32 console application:
https://github.com/ethteck/github-wine-test
As you can see, it's acting like wine32 is not installed and suggesting I run apt-get install wine32
, but this does not work as I get similar errors to those posting above
Link to build that tries to install wine32 instead of wine: https://github.com/ethteck/github-wine-test/runs/4337303248?check_suite_focus=true
Adding
sudo apt install -y --allow-downgrades libpcre2-8-0=10.34-7
before wine32 install seems to fix the broken dependency. If you do not need packages removed by this downgrade.
Hi @smudrak,
Getting this error if we try to install libpcre2-8-0
Reading package lists...
Building dependency tree...
Reading state information...
E: Version '10.34-7' for 'libpcre2-8-0' was not found
Error: Process completed with exit code 100.
Hmmm, that's weird, 10.34-7 is the official version of this package in 20.04LTS. We cross-compile our project using mxe, so maybe it is loaded from the depository we add. This is the whole set of commands we use to setup our runner.
sudo dpkg --add-architecture i386
sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 86B72ED9
sudo add-apt-repository 'deb [arch=amd64] https://mirror.mxe.cc/repos/apt focal main'
sudo apt -qq update
sudo apt install -y --allow-downgrades libpcre2-8-0=10.34-7
sudo apt install -y wine32
Hey @smudrak ,
Wine is now installing. Thanks much.
Can also confirm that @smudrak's workaround seems to have solved it for me as well
I may be missing something, but the above suggestion hasn't worked for me unfortunately. When I try to install wine32, I get
Package wine32 is not available, but is referred to by another package.
This may mean that the package is missing, has been obsoleted, or
is only available from another source
However the following packages replace it:
libwine``` and installing just "wine" does not install the 32 bit version, as it did on the older version of the environment when the i386 arch was added
My apologies - in my yml editing, I mistakenly deleted the most important command: adding the i386 arch. This does indeed work! Thank you @smudrak for the workaround!
It is a bit unfortunate to have to add a repository and do the install of a specific depdenency with the allow downgrades command, however. Is it possible to make this use case more user friendly in the future?
Hello @ethteck. Thank you for the provided information. Since we don't install 32bit packages on our images we don't have plans to enable multiarch. I'm going to close this issue for now. Feel free to contact us in case of any questions.
Hi @dibir-magomedsaygitov,
Can you let us know what actually broke apt in the latest release ? Since it was working without any issues earlier
Please, consider reopening this issue and fixing it properly as this worked as a charm for ages until something messed up last week with a new image. Using wine kind of requires "multilib" as quite a lot of windows stuff is 32b only.
The suggested workaround will work only until ubuntu will update the libpcre2-8-0
package and after that all the CI scripts hardcoding this version will have to be changed.
I assume this is cause by some of your custom repository that brought in different version, but only for 64 bit arch.
Hello!
is my guess right that this is happening only on 20.04 and never on 18.04?
Hello!
The problem is caused by the recent php update on ubuntu20.04 as it pulls the newer version of libpcre2-8-0 which breaks the deptree for the 32bit packages (we are installing php from the ppa:ondrej
repo). This dependency and a version are unconditional and if we downgrade libpcre2-8-0 version to the one which is currently in the repo php will be removed too. As per our policy we are installing the latest versions of tools mostly and therefore can't afford downgrade it. To sum up there are two possible solutions:
wine32
gets installed successfully as soon as you enable multiarch, no more steps needed as well as other 32bit packages and dependencies).We will keep an eye on canonical's updates to let you know when this problem is going to be solved. Thank you for your patience and understanding!
FYI, I tried to tweak our configuration in https://github.com/OpenSC/OpenSC/pull/2458 which worked flawlessly before the 1122 image, but even with workaround, the wine is failing to install the windows package without any useful messages so I assume there is still something wrong in the installation.
To sum up there are two possible solutions:
Downgrade libpcre2-8-0 to the primary non-ppa version (if you do not need php and co.)
Change the OS of your workflows to ubuntu-18.04 (I have just checked and
wine32
gets installed successfully as soon as you enable multiarch, no more steps needed as well as other 32bit packages and dependencies)
There is a third option that @miketimofeev mentioned at issue #3339 (of which we have a regression here):
ppa:ondrej/php
(e.g. through command sudo apt-add-repository ppa:ondrej/php -y
followed by sudo apt-get update
)That works for me at pull request https://github.com/uriparser/uriparser/pull/127 for the moment.
I would like to point to these lines for the cause: https://github.com/actions/virtual-environments/blob/0c030e3e071a3820832cebc597ef1c4bc9363267/images/linux/scripts/installers/php.sh#L114-L119
@ethteck would you consider changing the title of the ticket to be something like [ubuntu-20.04] Installation of wine32:i386 broken
to be easier to find?
I modified the title, but I think the scope of this is beyond just wine, so I left in some of my original title as well @hartwork . Thanks for your summary of the issue thus far!
I am going to close this now as there is no short-term solution at the moment and all the workarounds were explained, as soon as a fix pops up we are going to get it into repository I believe.
FYI, with the new image from today, installation of other 32b packages fail with different errors such as in https://github.com/OpenSC/OpenSC/runs/4595553394?check_suite_focus=true
+ sudo apt-get install -y build-essential docbook-xsl xsltproc gengetopt help2man pcscd check pcsc-tools libtool make autoconf autoconf-archive automake pkg-config openssl git gcc-multilib libpcsclite-dev:i386 libcmocka-dev:i386 libssl-dev:i386 zlib1g-dev:i386 libreadline-dev:i386 softhsm2:i386
Reading package lists...
Building dependency tree...
Reading state information...
autoconf is already the newest version (2.69-11.1).
autoconf set to manually installed.
automake is already the newest version (1:1.16.1-4ubuntu6).
automake set to manually installed.
libtool is already the newest version (2.4.6-14).
libtool set to manually installed.
make is already the newest version (4.2.1-1.2).
make set to manually installed.
pkg-config is already the newest version (0.29.1-0ubuntu4).
build-essential is already the newest version (12.8ubuntu1.1).
openssl is already the newest version (1.1.1f-1ubuntu2.10).
git is already the newest version (1:2.34.1-0ppa1~ubuntu20.04.1).
Some packages could not be installed. This may mean that you have
requested an impossible situation or if you are using the unstable
distribution that some required packages have not yet been created
or been moved out of Incoming.
The following information may help to resolve the situation:
The following packages have unmet dependencies:
E: Error, pkgProblemResolver::Resolve generated breaks, this may be caused by held packages.
linux-tools-5.11.0-1022-azure : Depends: linux-azure-5.11-tools-5.11.0-1022 but it is not going to be installed
Error: Process completed with exit code 100.
The proposed workaround removes half of the operating system during the installation of the required packages:
The following packages will be REMOVED:
apparmor apport buildah byobu clang-format-10 clang-format-11
clang-format-12 cloud-guest-utils cloud-init command-not-found criu crun
firefox google-cloud-sdk landscape-common language-selector-common
libglib2.0-dev-bin liblldb-10 liblldb-11 liblldb-12 libpython3-dev
libpython3-stdlib libpython3.8 libpython3.8-dev libpython3.8-stdlib
linux-azure linux-azure-5.11-tools-5.11.0-1022 linux-tools-5.11.0-1022-azure
linux-tools-azure linux-tools-common lldb-11 llvm-10-dev llvm-10-tools
llvm-11-dev llvm-11-tools llvm-12-dev llvm-12-tools lsb-release netplan.io
networkd-dispatcher open-vm-tools pastebinit plymouth-theme-ubuntu-text
podman python-is-python3 python3 python3-apport python3-apt python3-attr
python3-automat python3-blinker python3-certifi python3-cffi-backend
python3-chardet python3-click python3-colorama python3-commandnotfound
python3-configobj python3-constantly python3-crcmod python3-cryptography
python3-dbus python3-debconf python3-debian python3-dev python3-distro
python3-distro-info python3-distupgrade python3-distutils
python3-entrypoints python3-gdbm python3-gi python3-hamcrest
python3-httplib2 python3-hyperlink python3-idna python3-importlib-metadata
python3-incremental python3-jinja2 python3-json-pointer python3-jsonpatch
python3-jsonschema python3-jwt python3-keyring python3-launchpadlib
python3-lazr.restfulclient python3-lazr.uri python3-lib2to3 python3-lldb-11
python3-markupsafe python3-more-itertools python3-nacl python3-netifaces
python3-newt python3-oauthlib python3-openssl python3-parted python3-pexpect
python3-pip python3-pkg-resources python3-problem-report python3-protobuf
python3-ptyprocess python3-pyasn1 python3-pyasn1-modules python3-pygments
python3-pymacaroons python3-pyrsistent python3-requests
python3-requests-unixsocket python3-secretstorage python3-serial
python3-service-identity python3-setuptools python3-simplejson python3-six
python3-software-properties python3-systemd python3-twisted
python3-twisted-bin python3-update-manager python3-urllib3 python3-venv
python3-wadllib python3-wheel python3-yaml python3-zipp
python3-zope.interface python3.8 python3.8-dev python3.8-venv snapd
software-properties-common sosreport ssh-import-id ubuntu-advantage-tools
ubuntu-minimal ubuntu-release-upgrader-core ubuntu-server ubuntu-standard
ufw update-manager-core update-notifier-common vim walinuxagent xfsprogs
but otherwise works fine.
https://github.com/OpenSC/OpenSC/runs/4595737827?check_suite_focus=true
sudo dpkg --add-architecture i386 sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 86B72ED9 sudo add-apt-repository 'deb [arch=amd64] https://mirror.mxe.cc/repos/apt focal main' sudo apt -qq update sudo apt install -y --allow-downgrades libpcre2-8-0=10.34-7 sudo apt install -y wine32
This still seems to be the best way to install wine32. It also helps with the WineHQ installs which were broken, too on Gihub actions Ubuntu 20.4 https://wiki.winehq.org/Ubuntu. It uninstalls ImageMagick, php and others but if you don't need those it is fine.
There have been changes apparently (e.g. at ondrej/php/ubuntu
on 2022-03-14) and now the regression is back
The following packages have unmet dependencies:
wine32:i386 : Depends: libwine:i386 (= 5.0-3ubuntu1) but it is not going to be installed
E: Unable to correct problems, you have held broken packages.
despite having sudo apt-add-repository --yes "ppa:ondrej/php" again today.
@gruve-p indeed. It's rare that I give up on something like that but I have reverted CI to Ubuntu 18.04 in my own case now because I needed a short term solution to not have pull requests be stuck in the red zone; that was the only thing that worked after a day wasted debugging alternatives that all failed. The situation is quite sad.
@hartwork I used this short term solution for now
workaround does not seem to work for me :/
After running all commands I still get: The following packages have unmet dependencies: wine32:i386 : Depends: libwine:i386 (= 5.0-3ubuntu1) but it is not going to be installed E: Unable to correct problems, you have held broken packages.
Does anyone have any other suggestion?
I've broke my wine32 installation 3 days ago and now I'm unable to use Windows only application "mydebugger" for debugging MySQL procedures and functions which is only 32 bit.
Hi @blazendic,
I have taken your reply for a reason to try once more myself, and I have a working solution now. It takes two steps:
ppa:ondrej/php
has but plain Ubuntu doesn't, i.e. libzip4 and everything PHPdpkg -l | grep '^ii' | fgrep deb.sury.org | awk '{print $2}' | grep '^php' \
| xargs -r -t sudo apt-get remove --yes libzip4
ppa:ondrej/php
and plain Ubuntu share, back to the plain Ubuntu versionsource /etc/os-release
dpkg -l | grep '^ii' | fgrep deb.sury.org | awk '{print $2}' | sed "s,\$,/${UBUNTU_CODENAME}," \
| xargs -r -t sudo apt-get install --yes --no-install-recommends --allow-downgrades -V
It's what I'll merge over at https://github.com/uriparser/uriparser/pull/144 in a minute.
@hartwork thx for trying but I still got the same error :/ I've looked at your PR and made sure to execute everything but no luck.
@blazendic is your Action log and Action config YAML public somewhere for a closer look?
Unfortunately not :/
I did now removed also these:
-rw-r--r-- 1 root root 124 Aug 30 2020 ondrej-ubuntu-php-bionic.list.distUpgrade
-rw-r--r-- 1 root root 156 Apr 6 10:38 ondrej-ubuntu-php-bionic.list.save
-rw-r--r-- 1 root root 64 Mar 31 11:28 ondrej-ubuntu-php-focal.list.save
But still no luck. I guess I will wait some more time and continue to debug mySql without the debugger :vomiting_face:
Just leaving a note here, this has worked for me to fixup the i386 situation, might be helpful for someone:
- name: Fix GitHub's mess
run: |
sudo rm -f /etc/apt/sources.list.d/microsoft-prod.list
sudo apt-get update -qq
sudo apt-get install -yqq --allow-downgrades libpcre2-8-0/focal libpcre2-16-0/focal libpcre2-32-0/focal libpcre2-posix2/focal
# now this works as usual
- name: Set up dependencies
run: |
sudo dpkg --add-architecture i386
sudo apt-get update -qq
sudo apt-get install -yqq wine-stable
Just leaving a note here, this has worked for me to fixup the i386 situation, might be helpful for someone:
- name: Fix GitHub's mess run: | sudo rm -f /etc/apt/sources.list.d/microsoft-prod.list sudo apt-get update -qq sudo apt-get install -yqq --allow-downgrades libpcre2-8-0/focal libpcre2-16-0/focal libpcre2-32-0/focal libpcre2-posix2/focal # now this works as usual - name: Set up dependencies run: | sudo dpkg --add-architecture i386 sudo apt-get update -qq sudo apt-get install -yqq wine-stable
Thank you so much for this!!! I had switched to Docker since I could not build i386 dependencies.
@mikhailkoliada
As per our policy we are installing the latest versions of tools mostly and therefore can't afford downgrade it.
The policy does not say this. It only mentions a "priority".
We will keep an eye on canonical's updates to let you know when this problem is going to be solved.
Canonical has nothing to do with this PPA. I'm not sure why do you think they would do anything about this.
This is the answer from PPA mantainer:
No, the solution is to not try cram everything into a single system.
So, this is not going away by itself.
Part of the problem is that, starting from 20.04, you are not allowed to build i386 packages on PPAs anymore. Anything that requires 32bit libs which were built/updated on a PPA will break, because the PPA will have the updated 64bit-only version, while the 32bit version will be stock from the repos.
Just leaving a note here, this has worked for me to fixup the i386 situation, might be helpful for someone:
- name: Fix GitHub's mess run: | sudo rm -f /etc/apt/sources.list.d/microsoft-prod.list sudo apt-get update -qq sudo apt-get install -yqq --allow-downgrades libpcre2-8-0/focal libpcre2-16-0/focal libpcre2-32-0/focal libpcre2-posix2/focal # now this works as usual - name: Set up dependencies run: | sudo dpkg --add-architecture i386 sudo apt-get update -qq sudo apt-get install -yqq wine-stable
Didn't work for me =(
The following packages have unmet dependencies:
wine-stable : Depends: wine-stable-i386 (= 7.0.0.0~focal-1)
E: Unable to correct problems, you have held broken packages.
I've already tried everything in here.
Part of the problem is that, starting from 20.04, you are not allowed to build i386 packages on PPAs anymore. Anything that requires 32bit libs which were built/updated on a PPA will break, because the PPA will have the updated 64bit-only version, while the 32bit version will be stock from the repos.
Maybe I could install it from outside PPAs?
still is not resolved in ubuntu 20.04?
still is not resolved in ubuntu 20.04?
Still can't install it here...
This worked for me to remove the PPA PHP packages and downgrade the conflicting dependencies:
sudo apt-add-repository -y ppa:ondrej/php
sudo apt-get install ppa-purge
sudo ppa-purge -y ppa:ondrej/php
I have updated my setups to now use this:
run: |
sudo rm -f /etc/apt/sources.list.d/microsoft-prod.list
sudo apt-get update -qq
sudo apt-get install -yqq --allow-downgrades libgd3/focal libpcre2-8-0/focal libpcre2-16-0/focal libpcre2-32-0/focal libpcre2-posix2/focal
sudo apt-get purge -yqq libmono* moby* mono* php* libgdiplus libpcre2-posix3 libzip4
the main reason for breakage is that any package built on PPAs that is not part of a very specific allowlist, will not have i386 versions built. as wine requires i386 and amd64 packages with matching versions, the updated amd64 without a matching i386 (due to newer versions being built in PPAs used by GitHub images) makes wine uninstallable.
@falkTX you are a motherf***** god and life saver.
Seriously fed up with this, created an action.
Ubuntu 22.04.1 LTS - Same Issue since fresh install.
The following packages have unmet dependencies: libsndio7.1 : Breaks: libsndio7.0:i386 (= 1.8.1-1.1) but 1.8.1-1.1 is to be installed E: Error, pkgProblemResolver::Resolve generated breaks, this may be caused by held packages.
Force install libsndio7.0 removes a lot of packages that are currently being used.
sudo add-apt-repository 'deb [arch=amd64] https://mirror.mxe.cc/repos/apt focal main'
Repository: 'deb [arch=amd64] https://mirror.mxe.cc/repos/apt focal main'
Description:
Archive for codename: focal components: main
More info: https://mirror.mxe.cc/repos/apt
Adding repository.
Press [ENTER] to continue or Ctrl-c to cancel.
Adding deb entry to /etc/apt/sources.list.d/archive_uri-https_mirror_mxe_cc_repos_apt-jammy.list
Adding disabled deb-src entry to /etc/apt/sources.list.d/archive_uri-https_mirror_mxe_cc_repos_apt-jammy.list
Get:1 http://security.ubuntu.com/ubuntu jammy-security InRelease [110 kB]
Hit:2 http://ng.archive.ubuntu.com/ubuntu jammy InRelease
Hit:3 https://dl.google.com/linux/chrome/deb stable InRelease
Get:4 http://ng.archive.ubuntu.com/ubuntu jammy-updates InRelease [114 kB]
Hit:5 https://ppa.launchpadcontent.net/mozillateam/ppa/ubuntu jammy InRelease
Get:6 https://mirror.mxe.cc/repos/apt focal InRelease [1,793 B]
Hit:7 https://ppa.launchpadcontent.net/ondrej/php/ubuntu jammy InRelease
Get:8 http://security.ubuntu.com/ubuntu focal-security InRelease [114 kB]
Get:9 https://mirror.mxe.cc/repos/apt focal/main amd64 Packages [256 kB]
Get:10 http://ng.archive.ubuntu.com/ubuntu focal-updates InRelease [114 kB]
Get:11 http://security.ubuntu.com/ubuntu jammy-security/main amd64 DEP-11 Metadata [13.0 kB]
Get:12 http://security.ubuntu.com/ubuntu jammy-security/universe amd64 DEP-11 Metadata [12.1 kB]
Get:13 http://ng.archive.ubuntu.com/ubuntu jammy-backports InRelease [99.8 kB]
Hit:14 https://ppa.launchpadcontent.net/phpmyadmin/ppa/ubuntu jammy InRelease
Get:15 http://ng.archive.ubuntu.com/ubuntu jammy-updates/main amd64 DEP-11 Metadata [93.1 kB]
Get:16 http://ng.archive.ubuntu.com/ubuntu jammy-updates/universe amd64 DEP-11 Metadata [246 kB]
Hit:17 https://ppa.launchpadcontent.net/ubuntu-toolchain-r/test/ubuntu jammy InRelease
Get:18 http://ng.archive.ubuntu.com/ubuntu jammy-updates/multiverse amd64 DEP-11 Metadata [940 B]
Get:19 http://ng.archive.ubuntu.com/ubuntu jammy-backports/universe amd64 DEP-11 Metadata [12.3 kB]
Hit:21 https://dl.winehq.org/wine-builds/ubuntu bionic InRelease
Ign:20 http://mirrors.edge.kernel.org/ubuntu hirsute InRelease
Err:22 http://mirrors.edge.kernel.org/ubuntu hirsute Release
404 Not Found [IP: 147.75.80.249 80]
Reading package lists... Done
W: https://mirror.mxe.cc/repos/apt/dists/focal/InRelease: Key is stored in legacy trusted.gpg keyring (/etc/apt/trusted.gpg), see the DEPRECATION section in apt-key(8) for details.
W: https://dl.winehq.org/wine-builds/ubuntu/dists/bionic/InRelease: Key is stored in legacy trusted.gpg keyring (/etc/apt/trusted.gpg), see the DEPRECATION section in apt-key(8) for details.
E: The repository 'http://mirrors.kernel.org/ubuntu hirsute Release' does not have a Release file.
N: Updating from such a repository can't be done securely, and is therefore disabled by default.
N: See apt-secure(8) manpage for repository creation and user configuration details.
~ $ sudo apt -qq update W: https://dl.winehq.org/wine-builds/ubuntu/dists/bionic/InRelease: Key is stored in legacy trusted.gpg keyring (/etc/apt/trusted.gpg), see the DEPRECATION section in apt-key(8) for details. W: https://mirror.mxe.cc/repos/apt/dists/focal/InRelease: Key is stored in legacy trusted.gpg keyring (/etc/apt/trusted.gpg), see the DEPRECATION section in apt-key(8) for details. E: The repository 'http://mirrors.kernel.org/ubuntu hirsute Release' does not have a Release file.
~ $ sudo apt install -y --allow-downgrades libpcre2-8-0=10.34-7 Reading package lists... Done Building dependency tree... Done Reading state information... Done Package libpcre2-8-0 is not available, but is referred to by another package. This may mean that the package is missing, has been obsoleted, or is only available from another source However the following packages replace it: libpcre2-8-0:i386
E: Version '10.34-7' for 'libpcre2-8-0' was not found
Description
We noticed in our project that somewhere in between 20211114.1 and 20211122.1, apt behavior changed when adding the i386 arch. We use this to install wine for running 32-bit processes. One of our tests is failing now because the version of wine installed is for 64-bit processes.
Additionally, you can see when you compare the two runs that the packages installed greatly differ despite being pretty much identical repo states (and identical runner scripts).
Virtual environments affected
Image version and build link
https://github.com/decompme/decomp.me/runs/4321547477
Is it regression?
20211114.1
Expected behavior
Apt installs :i386 versions of things so the correct wine is installed
Actual behavior
Apt is not installing these
Repro steps
Create an ubuntu-latest action that runs
And then attempt to execute a 32-bit windows executable