Package: meson
Version: 0.54.1-1
Severity: important
Tags: patch upstream
User: [email protected]
Usertags: ftcbfs
Control: affects -1 + src:deltachat-core

When one passes --libdir and --cross-file to meson, meson thinks it
knows better than the user and overrides the libdir with plain "lib".
Setting a libdir from the crossfile does not work either. It gets
ignores in the same way.

An example failing log can be seen at:
http://crossqa.debian.net/build/deltachat-core_0.45.0+ds-1_armhf_20200504062822.log

I'm attaching a patch that reverts the uptsream hack that causes the
breakage. I think that reverting the breakage and solving it properly
with more time is in order. Doing so reopens
https://github.com/mesonbuild/meson/issues/2535, but that can be worked
around by adding a libdir to the crossfile (which seems like a good idea
in any case).

Helmut
--- meson-0.54.1.orig/mesonbuild/coredata.py
+++ meson-0.54.1/mesonbuild/coredata.py
@@ -441,13 +441,6 @@
             raise MesonException('Cannot find specified {} file: {}'.format(ftype, f))
         return real
 
-    def libdir_cross_fixup(self):
-        # By default set libdir to "lib" when cross compiling since
-        # getting the "system default" is always wrong on multiarch
-        # platforms as it gets a value like lib/x86_64-linux-gnu.
-        if self.cross_files:
-            self.builtins['libdir'].value = 'lib'
-
     def sanitize_prefix(self, prefix):
         prefix = os.path.expanduser(prefix)
         if not os.path.isabs(prefix):
@@ -507,7 +500,6 @@
         for for_machine in iter(MachineChoice):
             for key, opt in builtin_options_per_machine.items():
                 self.add_builtin_option(self.builtins_per_machine[for_machine], key, opt, subproject)
-        self.libdir_cross_fixup()
 
     def add_builtin_option(self, opts_map, key, opt, subproject):
         if subproject:

Reply via email to