On Thu, Feb 10, 2022 at 10:29:14AM +0100, Sandro Mani wrote:
On 07.02.22 11:07, Sandro Mani wrote:
>
> > Yes, I proposed that last year. I was supposed to move it forward by
> > providing a copr repo illustrating it in real world, but I'm afraid
> > I got side tracked.
>
> I also wasn't able to participate in the discussion having had too much
> going on then, but I'd be happy to help (re-)launching the effort.
I'd like to start working on this with some of my packages, I'd handle this
similarly to say mpi builds, just manually adding the required steps in
%build and %install and adding subpackages as necessary, then retiring the
respective mingw repo. Any objections to this?
FWIW, my proof of concept last year did the following to the
libvirt-glib.spec file:
https://gitlab.com/berrange/libvirt-glib/-/commit/45994bf93bb4b030e3ab57c...
As you can tell, it is essentially just the contents of the
current mingw-libvirt-glib.spec file:
https://gitlab.com/berrange/libvirt-glib/-/blob/mingw-rpm-merge2/mingw-li...
copied over into the libvirt-glib.spec
To repeat my previously reported interesting notes:
* We need to set mingw32_pkg_name/mingw64_pkg_name explicitly
because the current logic that sets these doesn't work:
%mingw32_pkg_name %(echo %{name} | sed 's/^mingw-/mingw32-/')
Presumably we can fix that macro so that it does the right thing
when no mingw- prefix exists in the first place
* We can't use %mingw_package_header because that splatters the
native debuginfo generation. So we must explicitly add mingw
debuginfo packages by referencing
%{?mingw_debug_package}
and at end of %install add
%mingw_debug_install_post
* %mingw_package_header has reference to overriding strip/objdump
to prevent corruption of binaries. We can't do that override
because we need native strip/objdump for the native builds.
AFAICT though, no corruption happened to my DLLs even without
this strip/objdump override. Looks like this caveat might be
obsolete, unless the scenarios it hits are more niche than I
tested.
* %mingw_package_header tries to disable the internal dependancy
generator on RHEL 6. For reasons I don't understand, it ends
up disabling it on Fedora too.
%mingw_package_header \
%global __strip %{mingw_strip} \
%global __objdump %{mingw_objdump} \
%if 0%{?rhel} == 6 \
%global _use_internal_dependency_generator 0 \
%global __find_requires %{mingw_findrequires} \
%global __find_provides %{mingw_findprovides} \
%endif \
%global __debug_install_post %%{mingw_debug_install_post} \
%{nil}
The last two points feel like simple bugs we need to fix regardless.
Regards,
Daniel
--
|:
https://berrange.com -o-
https://www.flickr.com/photos/dberrange :|
|:
https://libvirt.org -o-
https://fstop138.berrange.com :|
|:
https://entangle-photo.org -o-
https://www.instagram.com/dberrange :|