Note: This bug is displayed in read-only format because the product is no longer active in Red Hat Bugzilla.
RHEL Engineering is moving the tracking of its product development work on RHEL 6 through RHEL 9 to Red Hat Jira (issues.redhat.com). If you're a Red Hat customer, please continue to file support cases via the Red Hat customer portal. If you're not, please head to the "RHEL project" in Red Hat Jira and file new tickets here. Individual Bugzilla bugs in the statuses "NEW", "ASSIGNED", and "POST" are being migrated throughout September 2023. Bugs of Red Hat partners with an assigned Engineering Partner Manager (EPM) are migrated in late September as per pre-agreed dates. Bugs against components "kernel", "kernel-rt", and "kpatch" are only migrated if still in "NEW" or "ASSIGNED". If you cannot log in to RH Jira, please consult article #7032570. That failing, please send an e-mail to the RH Jira admins at rh-issues@redhat.com to troubleshoot your issue as a user management inquiry. The email creates a ServiceNow ticket with Red Hat. Individual Bugzilla bugs that are migrated will be moved to status "CLOSED", resolution "MIGRATED", and set with "MigratedToJIRA" in "Keywords". The link to the successor Jira issue will be found under "Links", have a little "two-footprint" icon next to it, and direct you to the "RHEL project" in Red Hat Jira (issue links are of type "https://issues.redhat.com/browse/RHEL-XXXX", where "X" is a digit). This same link will be available in a blue banner at the top of the page informing you that that bug has been migrated.

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-filesystemAssignee: Richard W.M. Jones <rjones>
Status: CLOSED CURRENTRELEASE QA Contact: dehanmeng <demeng>
Severity: unspecified Docs Contact:
Priority: unspecified    
Version: 9.0CC: ailan, demeng, lijin, mdean, rjones, yvugenfi
Target Milestone: betaKeywords: 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
Description of problem:

This change went into Fedora:
https://src.fedoraproject.org/rpms/mingw-filesystem/pull-request/7

This provides /usr/bin/mingw*-pkg-config using the native Linux tooling
so we no longer need the separate mingw-pkg-config package in RHEL 9.

I checked that we can still build qemu-ga.exe using this tooling.

Version-Release number of selected component (if applicable):

mingw-filesystem-119-1.fc35.src.rpm or higher

Comment 1 Richard W.M. Jones 2021-06-17 07:42:15 UTC
lijin: could you consider qa ack for this bug please?

Comment 2 Richard W.M. Jones 2021-06-17 08:12:21 UTC
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

Comment 6 dehanmeng 2021-08-27 01:54:10 UTC
according to https://bugzilla.redhat.com/show_bug.cgi?id=1989532#c4, clear the ITM for now.

Comment 7 dehanmeng 2021-10-23 05:22:59 UTC
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

Comment 8 Richard W.M. Jones 2021-10-25 09:32:16 UTC
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

Comment 9 dehanmeng 2021-10-25 13:19:38 UTC
(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.

Comment 10 Richard W.M. Jones 2021-10-25 13:55:41 UTC
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.

Comment 11 dehanmeng 2021-10-25 14:01:25 UTC
(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?

Comment 12 Richard W.M. Jones 2021-10-25 14:02:40 UTC
Yes it's fine as far as I'm concerned.

Comment 13 dehanmeng 2021-10-25 14:06:01 UTC
(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.

Comment 14 dehanmeng 2021-10-26 05:24:54 UTC
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)

Comment 15 Richard W.M. Jones 2021-10-26 07:22:53 UTC
(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.

Comment 16 dehanmeng 2021-10-26 13:11:31 UTC
(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.