All of lore.kernel.org
 help / color / mirror / Atom feed
* [Buildroot] [PATCH v2] package/libshout: add patches to fix static linking
@ 2016-08-31 20:26 Jörg Krause
  2016-08-31 22:26 ` Peter Korsgaard
  0 siblings, 1 reply; 3+ messages in thread
From: Jörg Krause @ 2016-08-31 20:26 UTC (permalink / raw)
  To: buildroot

This series includes two patches to fix static linking with libshout.

The first patch fixes two typos resulting in an uninterpretable library
propagation and is mainly needed for the follow-up patch.

The second patch makes sure that `@SHOUT_REQUIRES@` and therefore
`Requires.private` includes ssl as `Requires.private` defines a list of private
packages required by this package but not exposed to applications.

Note that autoreconf is enabled as the first patch touches configure.ac.

Fixes:
http://autobuild.buildroot.net/results/b82/b82408fccbf816575125dcc1a1de7260f66f62e8/
http://autobuild.buildroot.net/results/360/3605750023267e4cd35d98451bd283f9e70a6106/
http://autobuild.buildroot.net/results/03b/03b98b313dd6ed2909607cdc0c4f6fb87be3ccfe/
http://autobuild.buildroot.net/results/70b/70ba47e04d1fc0d2379bf1ac7aab4c52d6193001/

Signed-off-by: J?rg Krause <joerg.krause@embedded.rocks>
---
v2:
 * Replace patch #2 to make sure `Requires.private` contains ssl if needed
   (suggested by Thomas)
---
 .../0001-Fix-THEORA-SPEEX-_LDFLAGS-typo.patch      | 45 ++++++++++++++++++
 ...Make-sure-SHOUT_REQUIRES-contains-OpenSSL.patch | 55 ++++++++++++++++++++++
 package/libshout/libshout.mk                       |  3 ++
 3 files changed, 103 insertions(+)
 create mode 100644 package/libshout/0001-Fix-THEORA-SPEEX-_LDFLAGS-typo.patch
 create mode 100644 package/libshout/0002-Make-sure-SHOUT_REQUIRES-contains-OpenSSL.patch

diff --git a/package/libshout/0001-Fix-THEORA-SPEEX-_LDFLAGS-typo.patch b/package/libshout/0001-Fix-THEORA-SPEEX-_LDFLAGS-typo.patch
new file mode 100644
index 0000000..4d173c5
--- /dev/null
+++ b/package/libshout/0001-Fix-THEORA-SPEEX-_LDFLAGS-typo.patch
@@ -0,0 +1,45 @@
+From d96a3cafeebeb80b4796bacbe0e6da0bbd3ee48e Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?J=C3=B6rg=20Krause?= <joerg.krause@embedded.rocks>
+Date: Sun, 28 Aug 2016 00:39:55 +0200
+Subject: [PATCH 1/2] Fix {THEORA,SPEEX}_LDFLAGS typo
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+Needed to properly link against libshout, otherwise the build fails with:
+
+  error: LDFLAGS: No such file or directory
+
+Upstream status: pending
+https://github.com/xiph/Icecast-libshout/pull/4
+
+Signed-off-by: J?rg Krause <joerg.krause@embedded.rocks>
+---
+ configure.ac | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/configure.ac b/configure.ac
+index 87a7f55..85f18ad 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -134,7 +134,7 @@ PKG_CHECK_MODULES(THEORA, theora, [
+   ])
+ fi
+ XIPH_VAR_APPEND([XIPH_CPPFLAGS],[$THEORA_CFLAGS])
+-XIPH_VAR_PREPEND([XIPH_LIBS],[$THEORA LDFLAGS $THEORA_LIBS])
++XIPH_VAR_PREPEND([XIPH_LIBS],[$THEORA_LDFLAGS $THEORA_LIBS])
+ AM_CONDITIONAL([HAVE_THEORA], [test -n "$THEORA_LIBS"])
+ if test -n "$THEORA_LIBS"
+ then
+@@ -153,7 +153,7 @@ PKG_CHECK_MODULES(SPEEX, speex, [
+   ])
+ fi
+ XIPH_VAR_APPEND([XIPH_CPPFLAGS],[$SPEEX_CFLAGS])
+-XIPH_VAR_PREPEND([XIPH_LIBS],[$SPEEX LDFLAGS $SPEEX_LIBS])
++XIPH_VAR_PREPEND([XIPH_LIBS],[$SPEEX_LDFLAGS $SPEEX_LIBS])
+ AM_CONDITIONAL([HAVE_SPEEX], [test -n "$SPEEX_LIBS"])
+ if test -n "$SPEEX_LIBS"
+ then
+-- 
+2.9.3
+
diff --git a/package/libshout/0002-Make-sure-SHOUT_REQUIRES-contains-OpenSSL.patch b/package/libshout/0002-Make-sure-SHOUT_REQUIRES-contains-OpenSSL.patch
new file mode 100644
index 0000000..6e7631e
--- /dev/null
+++ b/package/libshout/0002-Make-sure-SHOUT_REQUIRES-contains-OpenSSL.patch
@@ -0,0 +1,55 @@
+From 69774132422af1d017008eb5daed8e2099d2fa0a Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?J=C3=B6rg=20Krause?= <joerg.krause@embedded.rocks>
+Date: Wed, 31 Aug 2016 21:55:51 +0200
+Subject: [PATCH 2/2] Make sure @SHOUT_REQUIRES@ contains OpenSSL
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+Static linking userspace programs such as mpd against libshout
+currently doesn't work out of the box, because libshout is linked
+against libssl, but this isn't expressed in libshouts pkg-config
+file:
+
+```
+/usr/lib/libshout.a(tls.o): In function `tls_check_cert':
+tls.c:(.text+0x10): undefined reference to `SSL_get_peer_certificate'
+tls.c:(.text+0x24): undefined reference to `SSL_get_verify_result'
+tls.c:(.text+0x4c): undefined reference to `X509_get_subject_name'
+tls.c:(.text+0x60): undefined reference to `X509_NAME_get_text_by_NID'
+tls.c:(.text+0x118): undefined reference to `X509_NAME_get_entry'
+tls.c:(.text+0x11c): undefined reference to `X509_NAME_ENTRY_get_data'
+tls.c:(.text+0x120): undefined reference to `ASN1_STRING_length'
+tls.c:(.text+0x148): undefined reference to `X509_free'
+tls.c:(.text+0x178): undefined reference to `X509_NAME_get_index_by_NID'
+```
+
+Since OpenSSL installs its own .pc files, make sure that @SHOUT_REQUIRES@
+contains `ssl`.
+
+Upstream status: pending
+https://github.com/xiph/Icecast-libshout/pull/5
+
+Signed-off-by: J?rg Krause <joerg.krause@embedded.rocks>
+---
+ configure.ac | 4 ++++
+ 1 file changed, 4 insertions(+)
+
+diff --git a/configure.ac b/configure.ac
+index 85f18ad..2b9c505 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -197,6 +197,10 @@ XIPH_PATH_OPENSSL([
+     ])
+ AC_SUBST([SHOUT_TLS])
+ AM_CONDITIONAL([HAVE_TLS], [test -n "$OPENSSL_LIBS"])
++if test "$SHOUT_TLS" = "1"
++then
++  SHOUT_REQUIRES="$SHOUT_REQUIRES, ssl"
++fi
+ 
+ SHOUT_VERSION="$VERSION"
+ SHOUT_CPPFLAGS="-I$shout_includedir $VORBIS_CFLAGS $PTHREAD_CPPFLAGS"
+-- 
+2.9.3
+
diff --git a/package/libshout/libshout.mk b/package/libshout/libshout.mk
index 029c134..9f54463 100644
--- a/package/libshout/libshout.mk
+++ b/package/libshout/libshout.mk
@@ -11,6 +11,9 @@ LIBSHOUT_LICENSE_FILES = COPYING
 LIBSHOUT_INSTALL_STAGING = YES
 LIBSHOUT_DEPENDENCIES = host-pkgconf libogg libvorbis
 
+# patching congigure.ac
+LIBSHOUT_AUTORECONF = YES
+
 ifeq ($(BR2_PACKAGE_LIBTHEORA),y)
 LIBSHOUT_CONF_OPTS += --enable-theora
 LIBSHOUT_DEPENDENCIES += libtheora
-- 
2.9.3

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

* [Buildroot] [PATCH v2] package/libshout: add patches to fix static linking
  2016-08-31 20:26 [Buildroot] [PATCH v2] package/libshout: add patches to fix static linking Jörg Krause
@ 2016-08-31 22:26 ` Peter Korsgaard
  2016-08-31 23:59   ` Jörg Krause
  0 siblings, 1 reply; 3+ messages in thread
From: Peter Korsgaard @ 2016-08-31 22:26 UTC (permalink / raw)
  To: buildroot

>>>>> "J?rg" == J?rg Krause <joerg.krause@embedded.rocks> writes:

 > This series includes two patches to fix static linking with libshout.
 > The first patch fixes two typos resulting in an uninterpretable library
 > propagation and is mainly needed for the follow-up patch.

 > The second patch makes sure that `@SHOUT_REQUIRES@` and therefore
 > `Requires.private` includes ssl as `Requires.private` defines a list of private
 > packages required by this package but not exposed to applications.

 > Note that autoreconf is enabled as the first patch touches configure.ac.

 > Fixes:
 > http://autobuild.buildroot.net/results/b82/b82408fccbf816575125dcc1a1de7260f66f62e8/
 > http://autobuild.buildroot.net/results/360/3605750023267e4cd35d98451bd283f9e70a6106/
 > http://autobuild.buildroot.net/results/03b/03b98b313dd6ed2909607cdc0c4f6fb87be3ccfe/
 > http://autobuild.buildroot.net/results/70b/70ba47e04d1fc0d2379bf1ac7aab4c52d6193001/

 > Signed-off-by: J?rg Krause <joerg.krause@embedded.rocks>
 > ---
 > v2:
 >  * Replace patch #2 to make sure `Requires.private` contains ssl if needed
 >    (suggested by Thomas)

 > +Since OpenSSL installs its own .pc files, make sure that @SHOUT_REQUIRES@
 > +contains `ssl`.
 > +
 > +Upstream status: pending
 > +https://github.com/xiph/Icecast-libshout/pull/5
 > +
 > +Signed-off-by: J?rg Krause <joerg.krause@embedded.rocks>
 > +---
 > + configure.ac | 4 ++++
 > + 1 file changed, 4 insertions(+)
 > +
 > +diff --git a/configure.ac b/configure.ac
 > +index 85f18ad..2b9c505 100644
 > +--- a/configure.ac
 > ++++ b/configure.ac
 > +@@ -197,6 +197,10 @@ XIPH_PATH_OPENSSL([
 > +     ])
 > + AC_SUBST([SHOUT_TLS])
 > + AM_CONDITIONAL([HAVE_TLS], [test -n "$OPENSSL_LIBS"])
 > ++if test "$SHOUT_TLS" = "1"
 > ++then
 > ++  SHOUT_REQUIRES="$SHOUT_REQUIRES, ssl"

Did you test this?

The libssl .pc file is called libssl.pc, not ssl.pc, so this doesn't
work.

> diff --git a/package/libshout/libshout.mk b/package/libshout/libshout.mk
 > index 029c134..9f54463 100644
 > --- a/package/libshout/libshout.mk
 > +++ b/package/libshout/libshout.mk
 > @@ -11,6 +11,9 @@ LIBSHOUT_LICENSE_FILES = COPYING
 >  LIBSHOUT_INSTALL_STAGING = YES
 >  LIBSHOUT_DEPENDENCIES = host-pkgconf libogg libvorbis
 
 > +# patching congigure.ac

typo.

What is odd about this fix / autobuilder issues is:

- libshout has no (optional) dependency on openssl
- mpd has no (optional) dependency on libshout

So that's pretty bad. I've pushed 2 commits to fix this.

Committed after fixing the above, thanks.

-- 
Bye, Peter Korsgaard

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

* [Buildroot] [PATCH v2] package/libshout: add patches to fix static linking
  2016-08-31 22:26 ` Peter Korsgaard
@ 2016-08-31 23:59   ` Jörg Krause
  0 siblings, 0 replies; 3+ messages in thread
From: Jörg Krause @ 2016-08-31 23:59 UTC (permalink / raw)
  To: buildroot

On Do, 2016-09-01 at 00:26 +0200, Peter Korsgaard wrote:
> > 
> > > 
> > > > 
> > > > > 
> > > > > > 
> > > > > > "J?rg" == J?rg Krause <joerg.krause@embedded.rocks> writes:
> 
> ?> This series includes two patches to fix static linking with
> libshout.
> ?> The first patch fixes two typos resulting in an uninterpretable
> library
> ?> propagation and is mainly needed for the follow-up patch.
> 
> ?> The second patch makes sure that `@SHOUT_REQUIRES@` and therefore
> ?> `Requires.private` includes ssl as `Requires.private` defines a
> list of private
> ?> packages required by this package but not exposed to applications.
> 
> ?> Note that autoreconf is enabled as the first patch touches
> configure.ac.
> 
> ?> Fixes:
> ?> http://autobuild.buildroot.net/results/b82/b82408fccbf816575125dcc
> 1a1de7260f66f62e8/
> ?> http://autobuild.buildroot.net/results/360/3605750023267e4cd35d984
> 51bd283f9e70a6106/
> ?> http://autobuild.buildroot.net/results/03b/03b98b313dd6ed2909607cd
> c0c4f6fb87be3ccfe/
> ?> http://autobuild.buildroot.net/results/70b/70ba47e04d1fc0d2379bf1a
> c7aab4c52d6193001/
> 
> ?> Signed-off-by: J?rg Krause <joerg.krause@embedded.rocks>
> ?> ---
> ?> v2:
> ?>??* Replace patch #2 to make sure `Requires.private` contains ssl
> if needed
> ?>????(suggested by Thomas)
> 
> ?> +Since OpenSSL installs its own .pc files, make sure that
> @SHOUT_REQUIRES@
> ?> +contains `ssl`.
> ?> +
> ?> +Upstream status: pending
> ?> +https://github.com/xiph/Icecast-libshout/pull/5
> ?> +
> ?> +Signed-off-by: J?rg Krause <joerg.krause@embedded.rocks>
> ?> +---
> ?> + configure.ac | 4 ++++
> ?> + 1 file changed, 4 insertions(+)
> ?> +
> ?> +diff --git a/configure.ac b/configure.ac
> ?> +index 85f18ad..2b9c505 100644
> ?> +--- a/configure.ac
> ?> ++++ b/configure.ac
> ?> +@@ -197,6 +197,10 @@ XIPH_PATH_OPENSSL([
> ?> +?????])
> ?> + AC_SUBST([SHOUT_TLS])
> ?> + AM_CONDITIONAL([HAVE_TLS], [test -n "$OPENSSL_LIBS"])
> ?> ++if test "$SHOUT_TLS" = "1"
> ?> ++then
> ?> ++??SHOUT_REQUIRES="$SHOUT_REQUIRES, ssl"
> 
> Did you test this?
> 
> The libssl .pc file is called libssl.pc, not ssl.pc, so this doesn't
> work.

Sorry for that! You're right! I did tested for compilation, which ends
without errors, however, mpd does not find libshout and therefore does
not link with it. Thanks for catching this!

> > 
> > diff --git a/package/libshout/libshout.mk
> > b/package/libshout/libshout.mk
> ?> index 029c134..9f54463 100644
> ?> --- a/package/libshout/libshout.mk
> ?> +++ b/package/libshout/libshout.mk
> ?> @@ -11,6 +11,9 @@ LIBSHOUT_LICENSE_FILES = COPYING
> ?>??LIBSHOUT_INSTALL_STAGING = YES
> ?>??LIBSHOUT_DEPENDENCIES = host-pkgconf libogg libvorbis
> ?
> ?> +# patching congigure.ac
> 
> typo.
> 
> What is odd about this fix / autobuilder issues is:
> 
> - libshout has no (optional) dependency on openssl
> - mpd has no (optional) dependency on libshout
> 
> So that's pretty bad. I've pushed 2 commits to fix this.
> 
> Committed after fixing the above, thanks.
> 

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

end of thread, other threads:[~2016-08-31 23:59 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2016-08-31 20:26 [Buildroot] [PATCH v2] package/libshout: add patches to fix static linking Jörg Krause
2016-08-31 22:26 ` Peter Korsgaard
2016-08-31 23:59   ` Jörg Krause

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.