All of lore.kernel.org
 help / color / mirror / Atom feed
* [Buildroot] [PATCH v3,1/1] libmpdclient: fix install
@ 2018-03-10  9:46 Fabrice Fontaine
  2018-03-10 21:16 ` Peter Korsgaard
  0 siblings, 1 reply; 4+ messages in thread
From: Fabrice Fontaine @ 2018-03-10  9:46 UTC (permalink / raw)
  To: buildroot

meson adds the build machine architecture for installation, see:
https://github.com/mesonbuild/meson/issues/2535
Until this is fixed, fix libmpdclient.pc and copy the libraries and
libmpclient.pc to the correct place.

Fixes:
 - http://autobuild.buildroot.net/results/aec/aec9f3de545a832b66cd00c217fbaa99246e1715
 - http://autobuild.buildroot.net/results/07a/07adcba71106a2dca963e4071f4673791b41a603
 - http://autobuild.buildroot.net/results/a27/a272a8e521863374901a5e3c0fb9da0b8daa4076

Signed-off-by: Fabrice Fontaine <fontaine.fabrice@gmail.com>
---
Changes v2 -> v3:
 - Add autobuilder links
Changes v1 -> v2:
 - Fix install of libmpdclient.pc

 package/libmpdclient/libmpdclient.mk | 25 +++++++++++++++++++++++++
 1 file changed, 25 insertions(+)

diff --git a/package/libmpdclient/libmpdclient.mk b/package/libmpdclient/libmpdclient.mk
index 3148fd2873..2b27eff397 100644
--- a/package/libmpdclient/libmpdclient.mk
+++ b/package/libmpdclient/libmpdclient.mk
@@ -35,9 +35,34 @@ define LIBMPDCLIENT_INSTALL_TARGET_CMDS
 		ninja $(LIBMPDCLIENT_NINJA_OPTS) -C $(@D)/build install
 endef
 
+# meson adds the build machine architecture for installation, see:
+# https://github.com/mesonbuild/meson/issues/2535
+# Until this is fixed, copy the libraries to the correct place
+define LIBMPDCLIENT_FIX_LIBRARY_INSTALL_TARGET
+	cp -a $(@D)/build/libmpdclient.* $(TARGET_DIR)/usr/lib
+endef
+
+LIBMPDCLIENT_POST_INSTALL_TARGET_HOOKS += \
+	LIBMPDCLIENT_FIX_LIBRARY_INSTALL_TARGET
+
 define LIBMPDCLIENT_INSTALL_STAGING_CMDS
 	$(TARGET_MAKE_ENV) DESTDIR=$(STAGING_DIR) \
 		ninja $(LIBMPDCLIENT_NINJA_OPTS) -C $(@D)/build install
 endef
 
+# meson adds the build machine architecture for installation, see:
+# https://github.com/mesonbuild/meson/issues/2535
+# Until this is fixed, fix libmpdclient.pc and copy the libraries and
+# libmpclient.pc to the correct place
+define LIBMPDCLIENT_FIX_LIBRARY_INSTALL_STAGING
+	$(INSTALL) -D -m 644 $(@D)/build/meson-private/libmpdclient.pc \
+		$(STAGING_DIR)/usr/lib/pkgconfig/libmpdclient.pc
+	$(SED) 's,^libdir=.*,libdir=$${prefix}/lib,' \
+		$(STAGING_DIR)/usr/lib/pkgconfig/libmpdclient.pc
+	cp -a $(@D)/build/libmpdclient.* $(STAGING_DIR)/usr/lib
+endef
+
+LIBMPDCLIENT_POST_INSTALL_STAGING_HOOKS += \
+	LIBMPDCLIENT_FIX_LIBRARY_INSTALL_STAGING
+
 $(eval $(generic-package))
-- 
2.14.1

^ permalink raw reply related	[flat|nested] 4+ messages in thread

* [Buildroot] [PATCH v3,1/1] libmpdclient: fix install
  2018-03-10  9:46 [Buildroot] [PATCH v3,1/1] libmpdclient: fix install Fabrice Fontaine
@ 2018-03-10 21:16 ` Peter Korsgaard
  2018-03-10 21:20   ` Peter Korsgaard
  0 siblings, 1 reply; 4+ messages in thread
From: Peter Korsgaard @ 2018-03-10 21:16 UTC (permalink / raw)
  To: buildroot

>>>>> "Fabrice" == Fabrice Fontaine <fontaine.fabrice@gmail.com> writes:

 > meson adds the build machine architecture for installation, see:
 > https://github.com/mesonbuild/meson/issues/2535
 > Until this is fixed, fix libmpdclient.pc and copy the libraries and
 > libmpclient.pc to the correct place.

 > Fixes:
 >  - http://autobuild.buildroot.net/results/aec/aec9f3de545a832b66cd00c217fbaa99246e1715
 >  - http://autobuild.buildroot.net/results/07a/07adcba71106a2dca963e4071f4673791b41a603
 >  - http://autobuild.buildroot.net/results/a27/a272a8e521863374901a5e3c0fb9da0b8daa4076

 > Signed-off-by: Fabrice Fontaine <fontaine.fabrice@gmail.com>
 > ---
 > Changes v2 -> v3:
 >  - Add autobuilder links
 > Changes v1 -> v2:
 >  - Fix install of libmpdclient.pc

 >  package/libmpdclient/libmpdclient.mk | 25 +++++++++++++++++++++++++
 >  1 file changed, 25 insertions(+)

 > diff --git a/package/libmpdclient/libmpdclient.mk b/package/libmpdclient/libmpdclient.mk
 > index 3148fd2873..2b27eff397 100644
 > --- a/package/libmpdclient/libmpdclient.mk
 > +++ b/package/libmpdclient/libmpdclient.mk
 > @@ -35,9 +35,34 @@ define LIBMPDCLIENT_INSTALL_TARGET_CMDS
 >  		ninja $(LIBMPDCLIENT_NINJA_OPTS) -C $(@D)/build install
 >  endef
 
 > +# meson adds the build machine architecture for installation, see:
 > +# https://github.com/mesonbuild/meson/issues/2535
 > +# Until this is fixed, copy the libraries to the correct place
 > +define LIBMPDCLIENT_FIX_LIBRARY_INSTALL_TARGET
 > +	cp -a $(@D)/build/libmpdclient.* $(TARGET_DIR)/usr/lib

What about the version installed in
$(TARGET_DIR)/usr/lib/$(HOST_GNU_NAME)? That is still there taking up
space, right?

Having to do this workaround here is pretty horrible :/ What about the
other packages using meson, don't they have the same issues
(E.G. enlightenment/systemd/mpd-mpc)?

It would be a lot nicer to fix the problem. I have no experience with
mesonbuild, but grepping around the problem seems to come from

is_debianlike() in mesonbuild/mesonlib.py, which looks for
/etc/debian_version on the host(!) so this behaviour depends on the host
OS. changing this to just a 'return False' fixes it for me.

There's other problems though. If it isn't a debianlike system, then it
looks if /usr/lib64 on the host(!) is a directory, and if so uses that
instead of usr/lib :/

Similary, get_library_dirs() has login to look at uname -m and again
look in /usr/lib64 on the host, which breaks horrible for cross
compilation :/

I guess we need to patch out all of this crap until upstream gains real
cross compilation support :/

Any takers?

-- 
Bye, Peter Korsgaard

^ permalink raw reply	[flat|nested] 4+ messages in thread

* [Buildroot] [PATCH v3,1/1] libmpdclient: fix install
  2018-03-10 21:16 ` Peter Korsgaard
@ 2018-03-10 21:20   ` Peter Korsgaard
  2018-03-10 21:37     ` Fabrice Fontaine
  0 siblings, 1 reply; 4+ messages in thread
From: Peter Korsgaard @ 2018-03-10 21:20 UTC (permalink / raw)
  To: buildroot

>>>>> "Peter" == Peter Korsgaard <peter@korsgaard.com> writes:

Hi,

 > It would be a lot nicer to fix the problem. I have no experience with
 > mesonbuild, but grepping around the problem seems to come from

 > is_debianlike() in mesonbuild/mesonlib.py, which looks for
 > /etc/debian_version on the host(!) so this behaviour depends on the host
 > OS. changing this to just a 'return False' fixes it for me.

 > There's other problems though. If it isn't a debianlike system, then it
 > looks if /usr/lib64 on the host(!) is a directory, and if so uses that
 > instead of usr/lib :/

 > Similary, get_library_dirs() has login to look at uname -m and again
 > look in /usr/lib64 on the host, which breaks horrible for cross
 > compilation :/

 > I guess we need to patch out all of this crap until upstream gains real
 > cross compilation support :/

 > Any takers?

Sorry, after looking closer it seems most of these are just about the
default location, so we can override then with the right values by
passing the needed arguments to meson (--libdir).

-- 
Bye, Peter Korsgaard

^ permalink raw reply	[flat|nested] 4+ messages in thread

* [Buildroot] [PATCH v3,1/1] libmpdclient: fix install
  2018-03-10 21:20   ` Peter Korsgaard
@ 2018-03-10 21:37     ` Fabrice Fontaine
  0 siblings, 0 replies; 4+ messages in thread
From: Fabrice Fontaine @ 2018-03-10 21:37 UTC (permalink / raw)
  To: buildroot

Dear Peter,

2018-03-10 22:20 GMT+01:00 Peter Korsgaard <peter@korsgaard.com>:

> >>>>> "Peter" == Peter Korsgaard <peter@korsgaard.com> writes:
>
> Hi,
>
>  > It would be a lot nicer to fix the problem. I have no experience with
>  > mesonbuild, but grepping around the problem seems to come from
>
>  > is_debianlike() in mesonbuild/mesonlib.py, which looks for
>  > /etc/debian_version on the host(!) so this behaviour depends on the host
>  > OS. changing this to just a 'return False' fixes it for me.
>
>  > There's other problems though. If it isn't a debianlike system, then it
>  > looks if /usr/lib64 on the host(!) is a directory, and if so uses that
>  > instead of usr/lib :/
>
>  > Similary, get_library_dirs() has login to look at uname -m and again
>  > look in /usr/lib64 on the host, which breaks horrible for cross
>  > compilation :/
>
>  > I guess we need to patch out all of this crap until upstream gains real
>  > cross compilation support :/
>
>  > Any takers?
>
> Sorry, after looking closer it seems most of these are just about the
> default location, so we can override then with the right values by
> passing the needed arguments to meson (--libdir).
>
> You're perfectly right, I will send you an update of the patch.

> --
> Bye, Peter Korsgaard
>
Best Regards,

Fabrice
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.busybox.net/pipermail/buildroot/attachments/20180310/5cb381fc/attachment.html>

^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2018-03-10 21:37 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2018-03-10  9:46 [Buildroot] [PATCH v3,1/1] libmpdclient: fix install Fabrice Fontaine
2018-03-10 21:16 ` Peter Korsgaard
2018-03-10 21:20   ` Peter Korsgaard
2018-03-10 21:37     ` Fabrice Fontaine

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.