All of lore.kernel.org
 help / color / mirror / Atom feed
* [Buildroot] [PATCH 1/1] package/libusb-compat: set LIBUSB_1_0_SONAME
@ 2020-05-31 14:16 Fabrice Fontaine
  2020-06-01  8:52 ` Yann E. MORIN
  2020-06-02  9:34 ` Peter Korsgaard
  0 siblings, 2 replies; 3+ messages in thread
From: Fabrice Fontaine @ 2020-05-31 14:16 UTC (permalink / raw)
  To: buildroot

LIBUSB_1_0_SONAME is detected since version 0.1.6 and
https://github.com/libusb/libusb-compat-0.1/commit/b6f5a2fe12ca19d658d7180e106254b31cf1f8f5

The detection mechanism is based on sed, here are the more relevant
parts:

 shrext_regexp=`echo "$shrext_cmds" | sed 's/\./\\\\./'`
[...]
 [AS_VAR_SET([ac_Lib_SONAME], [`ldd conftest$ac_exeext | grep 'lib[$2]'$shrext_regexp | sed 's/^@<:@ \t@:>@*lib[$2]'$shrext_regexp'/lib[$2]'$shrext_regexp'/;s/@<:@ \t@:>@.*$//'`])])

However, this mechanism is broken with sed 4.7 and will return the
following 'silent' error:

checking for SONAME of libusb-1.0... sed: -e expression #1, char 40: Invalid back reference
unknown

Moreover, it also raises the following build failure on one of the
autobuilder because an empty line is added to LIBUSB_1_0_SONAME:

checking for SONAME of libusb-1.0... checking
libusb-1.0.so.0
checking for GNU extensions of errno.h... no
configure: WARNING: cache variable au_cv_lib_soname_LIBUSB_1_0 contains a newline
checking that generated files are newer than configure... done
configure: creating ./config.status
config.status: creating libusb.pc
config.status: creating libusb-config
config.status: creating Makefile
config.status: creating libusb/Makefile
config.status: creating examples/Makefile
config.status: creating config.h
config.status: executing depfiles commands
config.status: executing libtool commands
config.status: executing default commands
configure: WARNING: unrecognized options: --disable-gtk-doc, --disable-gtk-doc-html, --disable-doc, --disable-docs, --disable-documentation, --with-xmlto, --with-fop, --enable-ipv6, --disable-nls
configure: WARNING: cache variable au_cv_lib_soname_LIBUSB_1_0 contains a newline
[7m>>> libusb-compat 0.1.7 Building[27m
PATH="/usr/lfs/hdd_v1/rc-buildroot-test/scripts/instance-0/output-1/host/bin:/usr/lfs/hdd_v1/rc-buildroot-test/scripts/instance-0/output-1/host/sbin:/accts/mlweber1/bin:/accts/mlweber1/libexec/git-core:/accts/mlweber1/usr/bin:/accts/mlweber1/usr/local/bin:/accts/mlweber1/bin:/accts/mlweber1/libexec/git-core:/accts/mlweber1/usr/bin:/accts/mlweber1/usr/local/bin:/accts/mlweber1/bin:/accts/mlweber1/libexec/git-core:/accts/mlweber1/usr/bin:/accts/mlweber1/usr/local/bin:/accts/mlweber1/bin:/accts/mlweber1/libexec/git-core:/accts/mlweber1/usr/bin:/accts/mlweber1/usr/local/bin:/accts/mlweber1/bin:/accts/mlweber1/libexec/git-core:/accts/mlweber1/usr/bin:/accts/mlweber1/usr/local/bin:/accts/mlweber1/bin:/accts/mlweber1/libexec/git-core:/accts/mlweber1/usr/bin:/accts/mlweber1/usr/local/bin:/accts/mlweber1/bin:/accts/mlweber1/libexec/git-core:/accts/mlweber1/usr/bin:/accts/mlweber1/usr/local/bin:/accts/mlweber1/bin:/accts/mlweber1/libexec/git-core:/accts/mlweber1/usr/bin:/accts/mlweber1/usr/local/bin:/usr/lib64/qt-3.3/bin:/usr/local/bin:/usr/bin:/usr/local/sbin:/usr/sbin"  /usr/bin/make -j8  -C /usr/lfs/hdd_v1/rc-buildroot-test/scripts/instance-0/output-1/build/libusb-compat-0.1.7/
make[1]: Entering directory `/usr/lfs/hdd_v1/rc-buildroot-test/scripts/instance-0/output-1/build/libusb-compat-0.1.7'
Makefile:284: *** missing separator.  Stop.

We could patch patch m4/au_check_lib_soname.m4 to fix the mechanism
however this is difficult without reproducing the autobuilder failure
and upstream seems dead so just set LIBUSB_1_0_SONAME

Fixes:
 - http://autobuild.buildroot.org/results/12d771d85d30594929cfe3e1c783fc70857e7f5f

Signed-off-by: Fabrice Fontaine <fontaine.fabrice@gmail.com>
---
 package/libusb-compat/libusb-compat.mk | 4 ++++
 1 file changed, 4 insertions(+)

diff --git a/package/libusb-compat/libusb-compat.mk b/package/libusb-compat/libusb-compat.mk
index f94aa96ada..73ee9ec241 100644
--- a/package/libusb-compat/libusb-compat.mk
+++ b/package/libusb-compat/libusb-compat.mk
@@ -15,5 +15,9 @@ LIBUSB_COMPAT_CONFIG_SCRIPTS = libusb-config
 LIBUSB_COMPAT_LICENSE = LGPL-2.1+
 LIBUSB_COMPAT_LICENSE_FILES = COPYING
 
+ifeq ($(BR2_STATIC_LIBS),)
+LIBUSB_COMPAT_CONF_ENV += LIBUSB_1_0_SONAME=libusb-1.0.so.0
+endif
+
 $(eval $(autotools-package))
 $(eval $(host-autotools-package))
-- 
2.26.2

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

* [Buildroot] [PATCH 1/1] package/libusb-compat: set LIBUSB_1_0_SONAME
  2020-05-31 14:16 [Buildroot] [PATCH 1/1] package/libusb-compat: set LIBUSB_1_0_SONAME Fabrice Fontaine
@ 2020-06-01  8:52 ` Yann E. MORIN
  2020-06-02  9:34 ` Peter Korsgaard
  1 sibling, 0 replies; 3+ messages in thread
From: Yann E. MORIN @ 2020-06-01  8:52 UTC (permalink / raw)
  To: buildroot

Fabrice, All,

On 2020-05-31 16:16 +0200, Fabrice Fontaine spake thusly:
> LIBUSB_1_0_SONAME is detected since version 0.1.6 and
> https://github.com/libusb/libusb-compat-0.1/commit/b6f5a2fe12ca19d658d7180e106254b31cf1f8f5
> 
> The detection mechanism is based on sed, here are the more relevant
> parts:
> 
>  shrext_regexp=`echo "$shrext_cmds" | sed 's/\./\\\\./'`
> [...]
>  [AS_VAR_SET([ac_Lib_SONAME], [`ldd conftest$ac_exeext | grep 'lib[$2]'$shrext_regexp | sed 's/^@<:@ \t@:>@*lib[$2]'$shrext_regexp'/lib[$2]'$shrext_regexp'/;s/@<:@ \t@:>@.*$//'`])])
> 
> However, this mechanism is broken with sed 4.7 and will return the
> following 'silent' error:
> 
> checking for SONAME of libusb-1.0... sed: -e expression #1, char 40: Invalid back reference
> unknown
> 
> Moreover, it also raises the following build failure on one of the
> autobuilder because an empty line is added to LIBUSB_1_0_SONAME:
> 
> checking for SONAME of libusb-1.0... checking
> libusb-1.0.so.0
> checking for GNU extensions of errno.h... no
> configure: WARNING: cache variable au_cv_lib_soname_LIBUSB_1_0 contains a newline
> checking that generated files are newer than configure... done
> configure: creating ./config.status
> config.status: creating libusb.pc
> config.status: creating libusb-config
> config.status: creating Makefile
> config.status: creating libusb/Makefile
> config.status: creating examples/Makefile
> config.status: creating config.h
> config.status: executing depfiles commands
> config.status: executing libtool commands
> config.status: executing default commands
> configure: WARNING: unrecognized options: --disable-gtk-doc, --disable-gtk-doc-html, --disable-doc, --disable-docs, --disable-documentation, --with-xmlto, --with-fop, --enable-ipv6, --disable-nls
> configure: WARNING: cache variable au_cv_lib_soname_LIBUSB_1_0 contains a newline

The beginning of the problem is here: there is a newline in the
substitued value, which causes the issue on line 284 when the Makefile
is generated.

> [7m>>> libusb-compat 0.1.7 Building[27m
> PATH="/usr/lfs/hdd_v1/rc-buildroot-test/scripts/instance-0/output-1/host/bin:/usr/lfs/hdd_v1/rc-buildroot-test/scripts/instance-0/output-1/host/sbin:/accts/mlweber1/bin:/accts/mlweber1/libexec/git-core:/accts/mlweber1/usr/bin:/accts/mlweber1/usr/local/bin:/accts/mlweber1/bin:/accts/mlweber1/libexec/git-core:/accts/mlweber1/usr/bin:/accts/mlweber1/usr/local/bin:/accts/mlweber1/bin:/accts/mlweber1/libexec/git-core:/accts/mlweber1/usr/bin:/accts/mlweber1/usr/local/bin:/accts/mlweber1/bin:/accts/mlweber1/libexec/git-core:/accts/mlweber1/usr/bin:/accts/mlweber1/usr/local/bin:/accts/mlweber1/bin:/accts/mlweber1/libexec/git-core:/accts/mlweber1/usr/bin:/accts/mlweber1/usr/local/bin:/accts/mlweber1/bin:/accts/mlweber1/libexec/git-core:/accts/mlweber1/usr/bin:/accts/mlweber1/usr/local/bin:/accts/mlweber1/bin:/accts/mlweber1/libexec/git-core:/accts/mlweber1/usr/bin:/accts/mlweber1/usr/local/bin:/accts/mlweber1/bin:/accts/mlweber1/libexec/git-core:/accts/mlweber1/usr/bin:/accts/mlweber1
>  /usr/local/bin:/usr/lib64/qt-3.3/bin:/usr/local/bin:/usr/bin:/usr/local/sbin:/usr/sbin"  /usr/bin/make -j8  -C /usr/lfs/hdd_v1/rc-buildroot-test/scripts/instance-0/output-1/build/libusb-compat-0.1.7/
> make[1]: Entering directory `/usr/lfs/hdd_v1/rc-buildroot-test/scripts/instance-0/output-1/build/libusb-compat-0.1.7'
> Makefile:284: *** missing separator.  Stop.

This line is indeed right after the assignment to LIBUSB_1_0_SONAME.

> We could patch patch m4/au_check_lib_soname.m4 to fix the mechanism
> however this is difficult without reproducing the autobuilder failure
> and upstream seems dead so just set LIBUSB_1_0_SONAME

Indeed, this is a mess of a macro...

> Fixes:
>  - http://autobuild.buildroot.org/results/12d771d85d30594929cfe3e1c783fc70857e7f5f
> 
> Signed-off-by: Fabrice Fontaine <fontaine.fabrice@gmail.com>
> ---
>  package/libusb-compat/libusb-compat.mk | 4 ++++
>  1 file changed, 4 insertions(+)
> 
> diff --git a/package/libusb-compat/libusb-compat.mk b/package/libusb-compat/libusb-compat.mk
> index f94aa96ada..73ee9ec241 100644
> --- a/package/libusb-compat/libusb-compat.mk
> +++ b/package/libusb-compat/libusb-compat.mk
> @@ -15,5 +15,9 @@ LIBUSB_COMPAT_CONFIG_SCRIPTS = libusb-config
>  LIBUSB_COMPAT_LICENSE = LGPL-2.1+
>  LIBUSB_COMPAT_LICENSE_FILES = COPYING
>  
> +ifeq ($(BR2_STATIC_LIBS),)
> +LIBUSB_COMPAT_CONF_ENV += LIBUSB_1_0_SONAME=libusb-1.0.so.0

I've tweaked it to extract the actual SONAME from the installed library.

Applied to master, thanks.

Regards,
Yann E. MORIN.

> +endif
> +
>  $(eval $(autotools-package))
>  $(eval $(host-autotools-package))
> -- 
> 2.26.2
> 
> _______________________________________________
> buildroot mailing list
> buildroot at busybox.net
> http://lists.busybox.net/mailman/listinfo/buildroot

-- 
.-----------------.--------------------.------------------.--------------------.
|  Yann E. MORIN  | Real-Time Embedded | /"\ ASCII RIBBON | Erics' conspiracy: |
| +33 662 376 056 | Software  Designer | \ / CAMPAIGN     |  ___               |
| +33 561 099 427 `------------.-------:  X  AGAINST      |  \e/  There is no  |
| http://ymorin.is-a-geek.org/ | _/*\_ | / \ HTML MAIL    |   v   conspiracy.  |
'------------------------------^-------^------------------^--------------------'

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

* [Buildroot] [PATCH 1/1] package/libusb-compat: set LIBUSB_1_0_SONAME
  2020-05-31 14:16 [Buildroot] [PATCH 1/1] package/libusb-compat: set LIBUSB_1_0_SONAME Fabrice Fontaine
  2020-06-01  8:52 ` Yann E. MORIN
@ 2020-06-02  9:34 ` Peter Korsgaard
  1 sibling, 0 replies; 3+ messages in thread
From: Peter Korsgaard @ 2020-06-02  9:34 UTC (permalink / raw)
  To: buildroot

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

 > LIBUSB_1_0_SONAME is detected since version 0.1.6 and
 > https://github.com/libusb/libusb-compat-0.1/commit/b6f5a2fe12ca19d658d7180e106254b31cf1f8f5

 > The detection mechanism is based on sed, here are the more relevant
 > parts:

 >  shrext_regexp=`echo "$shrext_cmds" | sed 's/\./\\\\./'`
 > [...]
 >  [AS_VAR_SET([ac_Lib_SONAME], [`ldd conftest$ac_exeext | grep
 > 'lib[$2]'$shrext_regexp | sed 's/^@<:@
 > \t@:>@*lib[$2]'$shrext_regexp'/lib[$2]'$shrext_regexp'/;s/@<:@
 > \t@:>@.*$//'`])])

 > However, this mechanism is broken with sed 4.7 and will return the
 > following 'silent' error:

 > checking for SONAME of libusb-1.0... sed: -e expression #1, char 40: Invalid back reference
 > unknown

 > Moreover, it also raises the following build failure on one of the
 > autobuilder because an empty line is added to LIBUSB_1_0_SONAME:

 > checking for SONAME of libusb-1.0... checking
 > libusb-1.0.so.0
 > checking for GNU extensions of errno.h... no
 > configure: WARNING: cache variable au_cv_lib_soname_LIBUSB_1_0 contains a newline
 > checking that generated files are newer than configure... done
 > configure: creating ./config.status
 > config.status: creating libusb.pc
 > config.status: creating libusb-config
 > config.status: creating Makefile
 > config.status: creating libusb/Makefile
 > config.status: creating examples/Makefile
 > config.status: creating config.h
 > config.status: executing depfiles commands
 > config.status: executing libtool commands
 > config.status: executing default commands
 > configure: WARNING: unrecognized options: --disable-gtk-doc,
 > --disable-gtk-doc-html, --disable-doc, --disable-docs,
 > --disable-documentation, --with-xmlto, --with-fop, --enable-ipv6,
 > --disable-nls
 > configure: WARNING: cache variable au_cv_lib_soname_LIBUSB_1_0 contains a newline
 > [7m>>> libusb-compat 0.1.7 Building[27m
 > PATH="/usr/lfs/hdd_v1/rc-buildroot-test/scripts/instance-0/output-1/host/bin:/usr/lfs/hdd_v1/rc-buildroot-test/scripts/instance-0/output-1/host/sbin:/accts/mlweber1/bin:/accts/mlweber1/libexec/git-core:/accts/mlweber1/usr/bin:/accts/mlweber1/usr/local/bin:/accts/mlweber1/bin:/accts/mlweber1/libexec/git-core:/accts/mlweber1/usr/bin:/accts/mlweber1/usr/local/bin:/accts/mlweber1/bin:/accts/mlweber1/libexec/git-core:/accts/mlweber1/usr/bin:/accts/mlweber1/usr/local/bin:/accts/mlweber1/bin:/accts/mlweber1/libexec/git-core:/accts/mlweber1/usr/bin:/accts/mlweber1/usr/local/bin:/accts/mlweber1/bin:/accts/mlweber1/libexec/git-core:/accts/mlweber1/usr/bin:/accts/mlweber1/usr/local/bin:/accts/mlweber1/bin:/accts/mlweber1/libexec/git-core:/accts/mlweber1/usr/bin:/accts/mlweber1/usr/local/bin:/accts/mlweber1/bin:/accts/mlweber1/libexec/git-core:/accts/mlweber1/usr/bin:/accts/mlweber1/usr/local/bin:/accts/mlweber1/bin:/accts/mlweber1/libexec/git-core:/accts/mlweber1/usr/bin:/accts/mlweb
 er1
 >  /usr/local/bin:/usr/lib64/qt-3.3/bin:/usr/local/bin:/usr/bin:/usr/local/sbin:/usr/sbin"
 > /usr/bin/make -j8 -C
 > /usr/lfs/hdd_v1/rc-buildroot-test/scripts/instance-0/output-1/build/libusb-compat-0.1.7/
 > make[1]: Entering directory `/usr/lfs/hdd_v1/rc-buildroot-test/scripts/instance-0/output-1/build/libusb-compat-0.1.7'
 > Makefile:284: *** missing separator.  Stop.

 > We could patch patch m4/au_check_lib_soname.m4 to fix the mechanism
 > however this is difficult without reproducing the autobuilder failure
 > and upstream seems dead so just set LIBUSB_1_0_SONAME

 > Fixes:
 >  - http://autobuild.buildroot.org/results/12d771d85d30594929cfe3e1c783fc70857e7f5f

 > Signed-off-by: Fabrice Fontaine <fontaine.fabrice@gmail.com>

Committed to 2020.02.x, thanks.

-- 
Bye, Peter Korsgaard

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

end of thread, other threads:[~2020-06-02  9:34 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-05-31 14:16 [Buildroot] [PATCH 1/1] package/libusb-compat: set LIBUSB_1_0_SONAME Fabrice Fontaine
2020-06-01  8:52 ` Yann E. MORIN
2020-06-02  9:34 ` Peter Korsgaard

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.