Skip to contentSkip to conversation

motion: fix static linking of mysql with enabled libz library

PATCH New Peter Seiderer 2 participants 4 messages Oct 25, 2016 – Oct 29, 2016

lore
Share & tools
lore
#0 lore raw

PATCH 1/1 motion: fix static linking of mysql with enabled libz library

Fixes ([1]):

checking for mysql_init in -lmysqlclient... no
configure: error: MySQL support can't build without MySQL libraries

[1] http://autobuild.buildroot.net/results/6cf/6cf38698a2a9a041ff375c01ae8898eace17cfb2

---
Checked with motion 3.4.1 and 4.0.1.

---
 ...c-use-given-CFLAGS-LIBS-for-mysqlclient-l.patch | 31 ++++++++++++++++++++++
 package/motion/motion.mk                           |  6 ++++-
 2 files changed, 36 insertions(+), 1 deletion(-)
 create mode 100644 package/motion/0001-configure.ac-use-given-CFLAGS-LIBS-for-mysqlclient-l.patch
package/motion/0001-configure.ac-use-given-CFLAGS-LIBS-for-mysqlclient-l.patch new file +31 -0
new file mode 100644
index 0000000..4211fe6
@@ -0,0 +1,31 @@
+From 5a1081d36bf2861ffc882354c583a0eb6b0ee3d5 Mon Sep 17 00:00:00 2001
+From: Peter Seiderer <[email protected]>
+Date: Tue, 25 Oct 2016 21:27:41 +0200
+Subject: [PATCH] configure.ac: use given CFLAGS/LIBS for mysqlclient library
+ check
+
+Needed for static linking of mysql with enabled libz.
+
+Signed-off-by: Peter Seiderer <[email protected]>
+---
+ configure.ac | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/configure.ac b/configure.ac
+index 5782fd6..aa5d9dd 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -618,8 +618,8 @@ else
+ 		#LDFLAGS="-L$MYSQL_LIBDIR"
+ 		saved_CFLAGS=$CFLAGS
+ 		saved_LIBS=$LIBS
+-		CFLAGS="-I$MYSQL_INCDIR"
+-		LIBS="-L$MYSQL_LIBDIR"
++		CFLAGS="-I$MYSQL_INCDIR $CFLAGS"
++		LIBS="-L$MYSQL_LIBDIR $LIBS"
+ 		AC_CHECK_LIB(mysqlclient,mysql_init,[
+ 					TEMP_LIBS="$TEMP_LIBS -L$MYSQL_LIBDIR -lmysqlclient -lz"
+ 					TEMP_CFLAGS="$TEMP_CFLAGS -I$MYSQL_INCDIR"
+-- 
+2.8.1
+
package/motion/motion.mk +5 -1
index 49c0c6a..d27def2 100644
@@ -9,7 +9,7 @@ MOTION_SITE = $(call github,Motion-Project,motion,$(MOTION_VERSION))
 MOTION_LICENSE = GPLv2
 MOTION_LICENSE_FILES = COPYING
 MOTION_DEPENDENCIES = host-pkgconf jpeg
-# From git
+# From git and patched configure.ac
 MOTION_AUTORECONF = YES
 
 # motion does not use any specific function of jpeg-turbo, so just relies on
@@ -29,6 +29,10 @@ MOTION_CONF_OPTS += \
 	--with-mysql \
 	--with-mysql-include=$(STAGING_DIR)/usr/include/mysql \
 	--with-mysql-lib=$(STAGING_DIR)/usr/lib
+# static link of mysql needs -lz
+ifeq ($(BR2_STATIC_LIBS)$(BR2_PACKAGE_ZLIB),yy)
+MOTION_CONF_ENV += LIBS="-lz"
+endif
 else
 MOTION_CONF_OPTS += --without-mysql
 endif
Signature · 1 line
2.8.1
#1 lore raw

PATCH 1/1 motion: fix static linking of mysql with enabled libz library

Hello,

Quoted 8 lines · Peter Seiderer

Fixes ([1]):

checking for mysql_init in -lmysqlclient... no
configure: error: MySQL support can't build without MySQL libraries

[1] http://autobuild.buildroot.net/results/6cf/6cf38698a2a9a041ff375c01ae8898eace17cfb2

Can I say how much I hate when packages don't use pkg-config ? :-)

Quoted 4 lines
package/motion/0001-configure.ac-use-given-CFLAGS-LIBS-for-mysqlclient-l.patch new file +4 -0
+diff --git a/configure.ac b/configure.ac
+index 5782fd6..aa5d9dd 100644
+--- a/configure.ac
++++ b/configure.ac

package/motion/0001-configure.ac-use-given-CFLAGS-LIBS-for-mysqlclient-l.patch line 27

Quoted 10 lines
package/motion/0001-configure.ac-use-given-CFLAGS-LIBS-for-mysqlclient-l.patch new file +10 -0
+@@ -618,8 +618,8 @@ else
+ 		#LDFLAGS="-L$MYSQL_LIBDIR"
+ 		saved_CFLAGS=$CFLAGS
+ 		saved_LIBS=$LIBS
+-		CFLAGS="-I$MYSQL_INCDIR"
+-		LIBS="-L$MYSQL_LIBDIR"
++		CFLAGS="-I$MYSQL_INCDIR $CFLAGS"
++		LIBS="-L$MYSQL_LIBDIR $LIBS"
+ 		AC_CHECK_LIB(mysqlclient,mysql_init,[
+ 					TEMP_LIBS="$TEMP_LIBS -L$MYSQL_LIBDIR -lmysqlclient -lz"

Isn't it already linking with -lz here ?

Why is an additional -lz needed ?

Thanks,

Thomas

Signature · 3 lines
Thomas Petazzoni, CTO, Free Electrons
Embedded Linux and Kernel engineering
http://free-electrons.com
#2 lore raw

PATCH 1/1 motion: fix static linking of mysql with enabled libz library

Hello Thomas,

Quoted 32 lines · Thomas Petazzoni

Hello,

Quoted 8 lines · Peter Seiderer

Fixes ([1]):

checking for mysql_init in -lmysqlclient... no
configure: error: MySQL support can't build without MySQL libraries

[1] http://autobuild.buildroot.net/results/6cf/6cf38698a2a9a041ff375c01ae8898eace17cfb2

Can I say how much I hate when packages don't use pkg-config ? :-)

Quoted 4 lines
package/motion/0001-configure.ac-use-given-CFLAGS-LIBS-for-mysqlclient-l.patch new file +4 -0
+diff --git a/configure.ac b/configure.ac
+index 5782fd6..aa5d9dd 100644
+--- a/configure.ac
++++ b/configure.ac

package/motion/0001-configure.ac-use-given-CFLAGS-LIBS-for-mysqlclient-l.patch line 27

Quoted 10 lines
package/motion/0001-configure.ac-use-given-CFLAGS-LIBS-for-mysqlclient-l.patch new file +10 -0
+@@ -618,8 +618,8 @@ else
+ 		#LDFLAGS="-L$MYSQL_LIBDIR"
+ 		saved_CFLAGS=$CFLAGS
+ 		saved_LIBS=$LIBS
+-		CFLAGS="-I$MYSQL_INCDIR"
+-		LIBS="-L$MYSQL_LIBDIR"
++		CFLAGS="-I$MYSQL_INCDIR $CFLAGS"
++		LIBS="-L$MYSQL_LIBDIR $LIBS"
+ 		AC_CHECK_LIB(mysqlclient,mysql_init,[
+ 					TEMP_LIBS="$TEMP_LIBS -L$MYSQL_LIBDIR -lmysqlclient -lz"

Isn't it already linking with -lz here ?

Quoted 1 line

Why is an additional -lz needed ?

No, the third argument of AC_CHECK_LIB is 'action-if-found', an additional library should be given as fifth argument (see[2]:

AC_CHECK_LIB (library, function, [action-if-found], [action-if-not-found], [other-libraries])

This -lz is only evaluated after the check (succeeds)...

Regards,
Peter

[2] https://www.gnu.org/software/autoconf/manual/autoconf-2.66/html_node/Libraries.html

Quoted 4 lines

Thanks,

Thomas

#3 lore raw

PATCH 1/1 motion: fix static linking of mysql with enabled libz library

In reply to Peter Seiderer

Hello,

Quoted 7 lines · Peter Seiderer

Fixes ([1]):

checking for mysql_init in -lmysqlclient... no
configure: error: MySQL support can't build without MySQL libraries

[1] http://autobuild.buildroot.net/results/6cf/6cf38698a2a9a041ff375c01ae8898eace17cfb2

Quoted 8 lines

---
Checked with motion 3.4.1 and 4.0.1.

---
 ...c-use-given-CFLAGS-LIBS-for-mysqlclient-l.patch | 31 ++++++++++++++++++++++
 package/motion/motion.mk                           |  6 ++++-
 2 files changed, 36 insertions(+), 1 deletion(-)
 create mode 100644 package/motion/0001-configure.ac-use-given-CFLAGS-LIBS-for-mysqlclient-l.patch

Applied to master, thanks.

Thomas

Signature · 3 lines
Thomas Petazzoni, CTO, Free Electrons
Embedded Linux, Kernel and Android engineering
http://free-electrons.com