Updating the icu package to version mingw-w64-x86_64-icu-62.1-1 causes all Qt tools to fail to run. For example, try running uic and it will fail to load Qt5Core.dll. After running strace uic it identified the libicuuc61.dll as the culprit.
Downgrading back to mingw-w64-x86_64-icu-61.1-1 resolves the issue.
i suggest to put major version dependencies in i,e. Qt and Boost packages
Also, after downgrading the icu package, my program compiles but crashes immediately on startup. GDB reports static variable initialization error. This did not happen before MSYS2 update and does not happen in Ubuntu.
This is because not only Qt depends on ICU but other packages like harfbuzz too. So you need downgrade all packages that depends on ICU. In near time I will not upload new Qt package as there are problems with building it
The current state of MSYS2 is terribly broken as a result of this.
@Alexpux downgrade the repo then, please. it not only breaks work environments which can be manually fixed, but also continuous integration
I can鈥檛 downgrade repo.
why not? i think this happened several times in the past, that a version of a package was retracted.
i agree with @droidmonkey it鈥檚 pretty broken the way it is now
Instead ignoring the problems need to solve them. I鈥檓 only one who build and upload and can鈥檛 solve all problems in short time. Build packages take much time so wait while it will be fixed or downgrade packages manually
well icu shouldn鈥檛 be updated in the repo if dependents are not ready.
CIs are difficult to manually downgrade (or annoying to prevent from updating)
Ignoring it now would prevent a lot more people from getting broken environments without requiring much effort.
As workaround you can try to copy ICU 62 dlls and rename them to 61
My fingernails curl when i think about this.
I鈥檓 just proposing to revert the change that broke the repo until it鈥檚 in a complete state.
it鈥檚 even possible to easily sync that for users with pacman -Syuu
Are you using GCC hardening features like stack protector?
@Diapolo were you asking me? If so, yes we are using hardening features, building KeePassXC Password Manager Tool.
@Diapolo it's different issue, Qt expects older soname of the library.
OK, so in case anyone else is plagued by this, here is what I did to backout my MSYS2 to a certain date:
/var/cache/pacman/pkg directory and sort by last modifieddowngrade.sh <package_list> -o 1 to revert back to the last known package of the names extracted before. The -o 1 uses the first available package which would be the last good one since you deleted the old bad packages already in step 4.Package List from Aug 22 to July 8
mingw-w64-i686-openssl mingw-w64-x86_64-openssl mingw-w64-i686-glib2 mingw-w64-x86_64-glib2 mingw-w64-i686-harfbuzz mingw-w64-x86_64-harfbuzz mingw-w64-i686-dbus mingw-w64-x86_64-dbus mingw-w64-i686-expat mingw-w64-x86_64-expat mingw-w64-i686-icu-debug-libs mingw-w64-i686-icu mingw-w64-x86_64-icu-debug-libs mingw-w64-x86_64-icu mingw-w64-x86_64-python3-pip mingw-w64-x86_64-python2-pip mingw-w64-i686-libtiff mingw-w64-x86_64-libtiff mingw-w64-i686-p11-kit mingw-w64-x86_64-p11-kit mingw-w64-i686-libgsf mingw-w64-x86_64-libgsf mingw-w64-x86_64-python3-setuptools mingw-w64-x86_64-python2-setuptools mingw-w64-i686-graphite2 mingw-w64-x86_64-graphite2 ttyrec mintty mingw-w64-i686-libjpeg-turbo mingw-w64-x86_64-libjpeg-turbo mingw-w64-i686-gdb mingw-w64-x86_64-gdb pacman libcurl curl mingw-w64-x86_64-gcc-objc mingw-w64-x86_64-gcc-ada mingw-w64-x86_64-gcc-fortran mingw-w64-x86_64-gcc-libgfortran mingw-w64-x86_64-gcc-libs mingw-w64-x86_64-gcc mingw-w64-i686-curl mingw-w64-x86_64-curl liblzo2 autoconf libffi libcrypt time rebase gcc-libs less libgnutls libopenssl openssl perl-URI perl-libwww file perl-Net-HTTP perl-IO-Socket-SSL perl-HTTP-Message perl-Error mingw-w64-i686-libpng mingw-w64-x86_64-libpng mingw-w64-i686-zlib mingw-w64-x86_64-zlib mingw-w64-i686-cmake mingw-w64-x86_64-cmake mingw-w64-i686-binutils mingw-w64-x86_64-binutils mingw-w64-x86_64-libmangle-git mingw-w64-i686-libgpg-error mingw-w64-x86_64-libgpg-error mingw-w64-x86_64-winstorecompat-git mingw-w64-x86_64-tools-git mingw-w64-i686-libwinpthread-git mingw-w64-i686-winpthreads-git mingw-w64-x86_64-libwinpthread-git mingw-w64-x86_64-winpthreads-git mingw-w64-x86_64-libmicrohttpd mingw-w64-i686-libuv mingw-w64-x86_64-libuv mingw-w64-i686-llvm mingw-w64-i686-clang mingw-w64-x86_64-llvm mingw-w64-x86_64-clang gnupg libgpg-error libltdl libtool mingw-w64-i686-openal mingw-w64-x86_64-openal mingw-w64-i686-python3 mingw-w64-x86_64-python3 mingw-w64-i686-crt-git mingw-w64-x86_64-crt-git mingw-w64-i686-headers-git mingw-w64-x86_64-headers-git mingw-w64-i686-jsoncpp mingw-w64-x86_64-jsoncpp libnpth filesystem sed info
I've run into the same problem, though for us the problem comes from webkit packages linked to icu61.
The solution from @droidmonkey requires you to not have cleared the pacman cache, and unfortunately that didn't work for us. I've written a helper script to pull the necessary packages from the archive: https://gist.github.com/awhatson/8666de81fccc9dcf470f3c87e1b8560e
Usage example is in the comments there.
@Alexpux if you don鈥檛 want to downgrade the repo, can you upload a downgraded database file here?
@Optiligence I dont have old database files
Thank you @awhatson for you script. I was able to downgrade and now I can build!
Thank you @Alexpux for all your work on MSYS2! It takes a lot of effort to do this and it is much appreciated. I would much rather have the small headache I just had than have to build Qt and MSYS2 just to keep away from M$ on Windows.
zipped mingw64.db with icu and dependents boost and poppler downgraded (necessary additions welcome)
extract into /var/lib/pacman/sync/ and remove /var/lib/pacman/sync/mingw64.db.sig
You can use pacman -Suu to downgrade then and upgrade the rest.
was created like so:
cd /varlib/pacman/sync/
cp mingw64.db mingw64.db.tar.gz
repo-add mingw64.db.tar.gz /var/cache/pacman/pkg/mingw-w64-x86_64-boost-1.67.0-2-any.pkg.tar.xz /var/cache/pacman/pkg/mingw-w64-x86_64-icu-61.1-1-any.pkg.tar.xz /var/cache/pacman/pkg/mingw-w64-x86_64-icu-debug-libs-61.1-1-any.pkg.tar.xz /var/cache/pacman/pkg/mingw-w64-x86_64-poppler-0.64.0-1-any.pkg.tar.xz
cp mingw64.db.tar.gz mingw64.db
rm mingw64.db.sig
64-bit Qt5 packages uploaded. 32-bit will be later when build done
Qt5WebKit.dll is still linked with ICU61, so it is still broken...
The issue is similar to #3585.
@omichel qtwebkit not buildable now. gcc 8.2.0 crash on it
The new version of gcc is causing me a ton of heartache as well... it absolutely hates static variables.
Im upload 64bit QtWebkit linked to ICU 62, 32bit some later
I just tested the 64 bit version and can confirm it now works great with ICU 62. Thank you!
Most helpful comment
I've run into the same problem, though for us the problem comes from webkit packages linked to icu61.
The solution from @droidmonkey requires you to not have cleared the pacman cache, and unfortunately that didn't work for us. I've written a helper script to pull the necessary packages from the archive: https://gist.github.com/awhatson/8666de81fccc9dcf470f3c87e1b8560e
Usage example is in the comments there.