Bug 1972872
| Summary: | Upgrade mingw-filesystem to same as Fedora, in preparation for removing mingw-pkg-config | ||
|---|---|---|---|
| Product: | Red Hat Enterprise Linux 9 | Reporter: | Richard W.M. Jones <rjones> |
| Component: | mingw-filesystem | Assignee: | Richard W.M. Jones <rjones> |
| Status: | CLOSED CURRENTRELEASE | QA Contact: | dehanmeng <demeng> |
| Severity: | unspecified | Docs Contact: | |
| Priority: | unspecified | ||
| Version: | 9.0 | CC: | ailan, demeng, lijin, mdean, rjones, yvugenfi |
| Target Milestone: | beta | Keywords: | Triaged |
| Target Release: | --- | Flags: | pm-rhel:
mirror+
|
| Hardware: | Unspecified | ||
| OS: | Unspecified | ||
| Whiteboard: | |||
| Fixed In Version: | mingw-filesystem-119-1.el9 | Doc Type: | If docs needed, set a value |
| Doc Text: | Story Points: | --- | |
| Clone Of: | Environment: | ||
| Last Closed: | 2023-04-19 08:36:16 UTC | Type: | Bug |
| Regression: | --- | Mount Type: | --- |
| Documentation: | --- | CRM: | |
| Verified Versions: | Category: | --- | |
| oVirt Team: | --- | RHEL 7.3 requirements from Atomic Host: | |
| Cloudforms Team: | --- | Target Upstream Version: | |
| Embargoed: | |||
| Bug Depends On: | 1989532 | ||
| Bug Blocks: | 1972873 | ||
|
Description
Richard W.M. Jones
2021-06-16 19:15:25 UTC
lijin: could you consider qa ack for this bug please? Suggested test plan: Try cross-compiling qemu from source with mingw-filesystem-119 installed (plus other packages). Instructions are here: https://wiki.qemu.org/Hosts/W32#Fedora_based_cross_builds It should result in several *.exe files being built including qemu-ga.exe according to https://bugzilla.redhat.com/show_bug.cgi?id=1989532#c4, clear the ITM for now. After confirmed with Yan, executed the following steps.
1. Check how to install RHEL9 beta. There should be ISOs from nightly build
RHEL-9.0.0-20211020.d.5 - done
2. with "dnf" check available mingw packages, and install them
Installed:
annobin-10.17-1.el9.x86_64
dwz-0.14-3.el9.x86_64
efi-srpm-macros-4-8.el9.noarch
fonts-srpm-macros-1:2.0.5-7.el9.1.noarch
ghc-srpm-macros-1.5.0-6.el9.noarch
go-srpm-macros-3.0.9-8.el9.noarch
kernel-srpm-macros-1.0-8.el9.noarch
lua-srpm-macros-1-6.el9.noarch
mingw-binutils-debuginfo-2.37-1.el9.x86_64
mingw-binutils-generic-2.37-1.el9.x86_64
mingw-binutils-generic-debuginfo-2.37-1.el9.x86_64
mingw-filesystem-base-119-2.el9.noarch
mingw-gcc-debuginfo-11.2.1-3.el9.x86_64
mingw-pkg-config-debuginfo-0.28-18.el9.x86_64
mingw32-binutils-2.37-1.el9.x86_64
mingw32-binutils-debuginfo-2.37-1.el9.x86_64
mingw32-cpp-11.2.1-3.el9.x86_64
mingw32-cpp-debuginfo-11.2.1-3.el9.x86_64
mingw32-crt-9.0.0-2.el9.noarch
mingw32-filesystem-119-2.el9.noarch
mingw32-gcc-11.2.1-3.el9.x86_64
mingw32-gcc-c++-11.2.1-3.el9.x86_64
mingw32-gcc-c++-debuginfo-11.2.1-3.el9.x86_64
mingw32-gcc-debuginfo-11.2.1-3.el9.x86_64
mingw32-gettext-0.21-4.el9.noarch
mingw32-gettext-debuginfo-0.21-4.el9.noarch
mingw32-gettext-static-0.21-4.el9.noarch
mingw32-glib2-2.66.7-4.el9.noarch
mingw32-glib2-debuginfo-2.66.7-4.el9.noarch
mingw32-glib2-static-2.66.7-4.el9.noarch
mingw32-headers-9.0.0-2.el9.noarch
mingw32-libffi-3.4.2-1.el9.noarch
mingw32-libffi-debuginfo-3.4.2-1.el9.noarch
mingw32-pcre-8.43-7.el9.noarch
mingw32-pcre-debuginfo-8.43-7.el9.noarch
mingw32-pcre-static-8.43-7.el9.noarch
mingw32-pixman-0.40.0-5.el9.noarch
mingw32-pixman-debuginfo-0.40.0-5.el9.noarch
mingw32-pkg-config-debuginfo-0.28-18.el9.x86_64
mingw32-srvany-debuginfo-1.0-29.20210127git89f2162c.el9.noarch
mingw32-termcap-1.3.1-30.el9.noarch
mingw32-termcap-debuginfo-1.3.1-30.el9.noarch
mingw32-win-iconv-0.0.8-7.el9.noarch
mingw32-win-iconv-debuginfo-0.0.8-7.el9.noarch
mingw32-win-iconv-static-0.0.8-7.el9.noarch
mingw32-winpthreads-9.0.0-2.el9.noarch
mingw32-winpthreads-debuginfo-9.0.0-2.el9.noarch
mingw32-winpthreads-static-9.0.0-2.el9.noarch
mingw32-zlib-1.2.11-7.el9.noarch
mingw32-zlib-debuginfo-1.2.11-7.el9.noarch
mingw32-zlib-static-1.2.11-7.el9.noarch
mingw64-binutils-2.37-1.el9.x86_64
mingw64-binutils-debuginfo-2.37-1.el9.x86_64
mingw64-cpp-11.2.1-3.el9.x86_64
mingw64-cpp-debuginfo-11.2.1-3.el9.x86_64
mingw64-crt-9.0.0-2.el9.noarch
mingw64-filesystem-119-2.el9.noarch
mingw64-gcc-11.2.1-3.el9.x86_64
mingw64-gcc-c++-11.2.1-3.el9.x86_64
mingw64-gcc-c++-debuginfo-11.2.1-3.el9.x86_64
mingw64-gcc-debuginfo-11.2.1-3.el9.x86_64
mingw64-gettext-0.21-4.el9.noarch
mingw64-gettext-debuginfo-0.21-4.el9.noarch
mingw64-gettext-static-0.21-4.el9.noarch
mingw64-glib2-2.66.7-4.el9.noarch
mingw64-glib2-debuginfo-2.66.7-4.el9.noarch
mingw64-glib2-static-2.66.7-4.el9.noarch
mingw64-headers-9.0.0-2.el9.noarch
mingw64-libffi-3.4.2-1.el9.noarch
mingw64-libffi-debuginfo-3.4.2-1.el9.noarch
mingw64-pcre-8.43-7.el9.noarch
mingw64-pcre-debuginfo-8.43-7.el9.noarch
mingw64-pcre-static-8.43-7.el9.noarch
mingw64-pixman-0.40.0-5.el9.noarch
mingw64-pixman-debuginfo-0.40.0-5.el9.noarch
mingw64-pkg-config-debuginfo-0.28-18.el9.x86_64
mingw64-termcap-1.3.1-30.el9.noarch
mingw64-termcap-debuginfo-1.3.1-30.el9.noarch
mingw64-win-iconv-0.0.8-7.el9.noarch
mingw64-win-iconv-debuginfo-0.0.8-7.el9.noarch
mingw64-win-iconv-static-0.0.8-7.el9.noarch
mingw64-winpthreads-9.0.0-2.el9.noarch
mingw64-winpthreads-debuginfo-9.0.0-2.el9.noarch
mingw64-winpthreads-static-9.0.0-2.el9.noarch
mingw64-zlib-1.2.11-7.el9.noarch
mingw64-zlib-debuginfo-1.2.11-7.el9.noarch
mingw64-zlib-static-1.2.11-7.el9.noarch
ocaml-srpm-macros-6-6.el9.noarch
openblas-srpm-macros-2-11.el9.noarch
perl-srpm-macros-1-41.el9.noarch
python-srpm-macros-3.9-42.el9.noarch
qt5-srpm-macros-5.15.2-9.el9.noarch
redhat-rpm-config-188-1.el9.noarch
rust-srpm-macros-17-4.el9.noarch
unzip-6.0-53.el9.x86_64
zip-3.0-30.el9.x86_64
Complete!
3. download srpm on mingw-qemu-ga from Brew
mingw-qemu-ga-win-102.7.0-0.el8.src.rpm
4. Install srpm and the use rpmbuild to build from the sources in srpm
4.1 run command “rpmbuild --recompile mingw-qemu-ga-win-102.7.0-0.el8.src.rpm”
error: Failed build dependencies:
SDL-devel is needed by mingw-qemu-ga-win-102.7.0-0.el9.noarch
autoconf is needed by mingw-qemu-ga-win-102.7.0-0.el9.noarch
automake is needed by mingw-qemu-ga-win-102.7.0-0.el9.noarch
bison is needed by mingw-qemu-ga-win-102.7.0-0.el9.noarch
cyrus-sasl-devel is needed by mingw-qemu-ga-win-102.7.0-0.el9.noarch
flex is needed by mingw-qemu-ga-win-102.7.0-0.el9.noarch
gettext-devel is needed by mingw-qemu-ga-win-102.7.0-0.el9.noarch
glib2-devel is needed by mingw-qemu-ga-win-102.7.0-0.el9.noarch
gnutls-devel is needed by mingw-qemu-ga-win-102.7.0-0.el9.noarch
gtk2-devel is needed by mingw-qemu-ga-win-102.7.0-0.el9.noarch
libtool is needed by mingw-qemu-ga-win-102.7.0-0.el9.noarch
meson is needed by mingw-qemu-ga-win-102.7.0-0.el9.noarch
msitools >= 0.93.93 is needed by mingw-qemu-ga-win-102.7.0-0.el9.noarch
ninja-build is needed by mingw-qemu-ga-win-102.7.0-0.el9.noarch
systemtap-sdt-devel is needed by mingw-qemu-ga-win-102.7.0-0.el9.noarch
texi2html is needed by mingw-qemu-ga-win-102.7.0-0.el9.noarch
texinfo is needed by mingw-qemu-ga-win-102.7.0-0.el9.noarch
zlib-devel is needed by mingw-qemu-ga-win-102.7.0-0.el9.noarch
4.2 install above pckgs and msitools from brewweb
4.3 run command “rpmbuild --recompile again”
ERROR: sizeof(size_t) doesn't match GLIB_SIZEOF_SIZE_T.
You probably need to set PKG_CONFIG_LIBDIR
to point to the right pkg-config files for your
build target
4.4: according to the error, did :
Write “export PKG_CONFIG_LIBDIR=/usr/i686-w64-mingw32/sys-root/mingw/lib/pkgconfig” to ’/usr/bin/pkg-config‘
Or directly “export PKG_CONFIG_LIBDIR=/usr/i686-w64-mingw32/sys-root/mingw/lib/pkgconfig”, still get this error.
So Could anyone help me with this so that I can go ahead? thanks in advance
Instructions to test this change: * Ensure that mingw*-pkgconf, mingw*-pkg-config etc are NOT installed. * Install mingw32-filesystem-119-2.el9.noarch * Install mingw32-pixman and mingw32-glib2 * Check out qemu sources: git clone https://gitlab.com/qemu-project/qemu.git * Cross-compile qemu: ./configure --cross-prefix=i686-w64-mingw32- --target-list=x86_64-softmmu make * Ensure that mingw qemu-ga has been built: $ ls -l ./build/qga/qemu-ga.exe -rwxr-xr-x. 1 rjones rjones 2393663 Oct 25 10:31 ./build/qga/qemu-ga.exe (In reply to Richard W.M. Jones from comment #8) > Instructions to test this change: > > * Ensure that mingw*-pkgconf, mingw*-pkg-config etc are NOT installed. > > * Install mingw32-filesystem-119-2.el9.noarch > > * Install mingw32-pixman and mingw32-glib2 > > * Check out qemu sources: > > git clone https://gitlab.com/qemu-project/qemu.git > > * Cross-compile qemu: > > ./configure --cross-prefix=i686-w64-mingw32- --target-list=x86_64-softmmu > make > > * Ensure that mingw qemu-ga has been built: > > $ ls -l ./build/qga/qemu-ga.exe > -rwxr-xr-x. 1 rjones rjones 2393663 Oct 25 10:31 ./build/qga/qemu-ga.exe thank you so much for your detailed info, There was indeed a qemu-ga.exe out there with your steps, but I also got a question for you, so the binary file cannot be used in win_guest directly right? because I did that test and got failed to use it. For the purposes of this bug all we really care about is that we can build the binary, because that is testing all the pkg-config detection stuff. I didn't actually try the binary to see if it worked. You should find that it works, but it may be missing a few *.DLLs on Windows (probably glib2 in particular). If you really want to make it work you might try using Dependency Walker (https://dependencywalker.com/) to examine the binary on Windows to see what DLLs are missing, and then copy those in from the mingw32-* packages on Linux. (In reply to Richard W.M. Jones from comment #10) > For the purposes of this bug all we really care about is that we > can build the binary, because that is testing all the pkg-config > detection stuff. > > I didn't actually try the binary to see if it worked. You should > find that it works, but it may be missing a few *.DLLs on Windows > (probably glib2 in particular). If you really want to make it work > you might try using Dependency Walker (https://dependencywalker.com/) > to examine the binary on Windows to see what DLLs are missing, and then > copy those in from the mingw32-* packages on Linux. According to your words and last comment you replied, yes, the qemu-ga.exe was built successfully. so May I understand that this bug can be verified now? Is there any other concern or details? Yes it's fine as far as I'm concerned. (In reply to Richard W.M. Jones from comment #12) > Yes it's fine as far as I'm concerned. thank you again, Richard. now I gonna move this long-time bug to VERIFIED. and feel free to change this bug's status and let us know, thanks all. Compile verify steps here:
1. Check how to install RHEL9 beta. There should be ISOs from nightly build
RHEL-9.0.0-20211020.d.5 - done
2. with "dnf" check available mingw packages, and install them besides mingw*-pkgconf, mingw*-pkg-config
3. Check out qemu sources:
git clone https://gitlab.com/qemu-project/qemu.git; cd qemu/
4. ls ./build/qga/qemu-ga.exe ---------------------------------- (there should not be qemu.exe)
5. Cross-compile qemu:
./configure --cross-prefix=i686-w64-mingw32- --target-list=x86_64-softmmu
make
6. ls ./build/qga/qemu-ga.exe ---------------------------------- (there should be qemu.exe)
(In reply to dehanmeng from comment #14) > Compile verify steps here: > 2. with "dnf" check available mingw packages, and install them besides > mingw*-pkgconf, mingw*-pkg-config You must make sure that mingw*pkg* are NOT installed. (In reply to Richard W.M. Jones from comment #15) > (In reply to dehanmeng from comment #14) > > Compile verify steps here: > > 2. with "dnf" check available mingw packages, and install them besides > > mingw*-pkgconf, mingw*-pkg-config > > You must make sure that mingw*pkg* are NOT installed. yeah, exactly. so I said besides them, but thanks anyway. |