[Bug 1194430] New: windows:mingw:win{32|64}/mingw{32|64}-*: Lack of runtime dependencies for development packages
http://bugzilla.opensuse.org/show_bug.cgi?id=1194430 Bug ID: 1194430 Summary: windows:mingw:win{32|64}/mingw{32|64}-*: Lack of runtime dependencies for development packages Classification: openSUSE Product: openSUSE.org Version: unspecified Hardware: Other OS: Other Status: NEW Severity: Normal Priority: P5 - None Component: 3rd party software Assignee: fstrba@suse.com Reporter: ralf.habacker@freenet.de QA Contact: screening-team-bugs@suse.de CC: fridrich.strba@bluewin.ch, hib@hiberis.nl, mkbosmans@gmail.com Found By: --- Blocker: --- Running cross-compiled test cases for packages depends on having the associated runtime components, e.g. DLLs, from the required packages. If dll's depend on others, rpm takes care of it, for development packages there is no such automatic and requires manual addition in the .spec file. There are some packages where the corresponding relations are not present. -- You are receiving this mail because: You are on the CC list for the bug.
http://bugzilla.opensuse.org/show_bug.cgi?id=1194430 http://bugzilla.opensuse.org/show_bug.cgi?id=1194430#c1 --- Comment #1 from Ralf Habacker <ralf.habacker@freenet.de> --- These runtime packages are required, for example, for the package mingwxx-cross-meson -- You are receiving this mail because: You are on the CC list for the bug.
http://bugzilla.opensuse.org/show_bug.cgi?id=1194430 http://bugzilla.opensuse.org/show_bug.cgi?id=1194430#c3 --- Comment #3 from Ralf Habacker <ralf.habacker@freenet.de> --- (In reply to Fridrich Strba from comment #2)
This was a feature, since we were not running the cross-compiled binaries in an ELF environment and it was never meant to be.
The situation has changed in the meantime, as can be seen from the following examples: More recent gnome packages (e.g. glib-2.70) use meson as build system, which uses generated binaries for Windows inside the build system when cross-compiling. These generated binaries require the presence of the appropriate runtime components, which was a key reason for opening this ticket. Qt 5.12 requires the fxc utility when using the bundled angle library, which to my knowledge is only available as a Windows application. Furthermore, running generated Windows binaries for running tests to validate the compilation is helpful or, in my opinion, necessary (e.g. for mingwxx-libopenssl-1_1).
The *-devel packages have their dependencies generated automatically
mingwxx-find-requires.sh autogenerates lib:, pkg: and cmake: dependencies for development packages by default and dll dependencies only if there are dll's or executables included (see https://build.opensuse.org/package/view_file/windows:mingw:win32/mingw32-fil...) If only import libraries are included, the dependency to the related runtime is not generated (which seems to be a nice extension that eliminates the need to manually add the runtime package)
as have the runtime packages between them.
yes provided by mingw32-find-requires.sh and mingw32-find-provides.sh
One does not need the actual DLL to link on windows, the import library is enough.
Mostly yes, with exceptions such as mingwxx-libvsg (https://build.opensuse.org/package/view_file/home:rhabacker:branches:games:m...) where it is necessary to link with the dll. -- You are receiving this mail because: You are on the CC list for the bug.
http://bugzilla.opensuse.org/show_bug.cgi?id=1194430 http://bugzilla.opensuse.org/show_bug.cgi?id=1194430#c4 --- Comment #4 from Ralf Habacker <ralf.habacker@freenet.de> --- (In reply to Ralf Habacker from comment #3)
If only import libraries are included, the dependency to the related runtime is not generated (which seems to be a nice extension that eliminates the need to manually add the runtime package)
something like $ rpm -q -l mingw32-libgpgme-devel | grep '.dll.a' | xargs nm | grep "I.*_iname" | sed 's,^.*I _,mingw32(,g;s,_iname,),g' mingw32(libgpgme_11_dll) added to https://build.opensuse.org/package/view_file/windows:mingw:win32/mingw32-fil... -- You are receiving this mail because: You are on the CC list for the bug.
http://bugzilla.opensuse.org/show_bug.cgi?id=1194430 http://bugzilla.opensuse.org/show_bug.cgi?id=1194430#c5 --- Comment #5 from Ralf Habacker <ralf.habacker@freenet.de> --- Qt5 development packages for example expects to have the related dll installed when using the associated development package: [ 4s] CMake Error at /usr/i686-w64-mingw32/sys-root/mingw/lib/cmake/Qt5Keychain/Qt5KeychainLibraryDepends.cmake:64 (message): [ 4s] The imported target "qt5keychain" references the file [ 4s] [ 4s] "/usr/i686-w64-mingw32/sys-root/mingw/bin/libqt5keychain.dll" [ 4s] [ 4s] but this file does not exist. Possible reasons include: [ 4s] [ 4s] * The file was deleted, renamed, or moved to another location. [ 4s] [ 4s] * An install or uninstall procedure did not complete successfully. [ 4s] [ 4s] * The installation package was faulty and contained [ 4s] [ 4s] "/usr/i686-w64-mingw32/sys-root/mingw/lib/cmake/Qt5Keychain/Qt5KeychainLibraryDepends.cmake" [ 4s] [ 4s] but not all the files it references. [ 4s] [ 4s] Call Stack (most recent call first): [ 4s] /usr/i686-w64-mingw32/sys-root/mingw/lib/cmake/Qt5Keychain/Qt5KeychainConfig.cmake:16 (include) [ 4s] CMakeModules/MacroOptionalFindPackage.cmake:32 (find_package) [ 4s] CMakeLists.txt:254 (macro_optional_find_package) [ 4s] [ 4s] -- You are receiving this mail because: You are on the CC list for the bug.
participants (1)
-
bugzilla_noreply@suse.com