* [Buildroot] [PATCH v2] icecast: new package [not found] <1374055607-24500-1-git-send-email-elezegarcia@gmail.com> @ 2013-07-17 10:19 ` Thomas Petazzoni 2013-07-17 10:25 ` Ezequiel Garcia 0 siblings, 1 reply; 4+ messages in thread From: Thomas Petazzoni @ 2013-07-17 10:19 UTC (permalink / raw) To: buildroot Dear Ezequiel Garcia, On Wed, 17 Jul 2013 07:06:47 -0300, Ezequiel Garcia wrote: > +diff -Naur icecast-2.3.3/m4/xiph_curl.m4 icecast-2.3.3-patched/m4/xiph_curl.m4 > +--- icecast-2.3.3/m4/xiph_curl.m4 2012-06-11 13:45:26.000000000 -0300 > ++++ icecast-2.3.3-patched/m4/xiph_curl.m4 2013-07-17 06:58:02.000000000 -0300 > +@@ -48,28 +48,10 @@ > + dnl > + dnl Now check if the installed libcurl is sufficiently new. > + dnl > +-AC_CHECK_HEADERS([curl/curl.h],, curl_ok="no") > + AC_MSG_CHECKING(for libcurl) > +-if test "$curl_ok" = "yes" > +-then > +- AC_RUN_IFELSE(AC_LANG_SOURCE([ > +-#include <curl/curl.h> > +-int main() > +-{ > +- return 0; > +-} > +-]),,[curl_ok="no"]) > +-fi > +-if test "$curl_ok" = "yes"; then > +- AC_MSG_RESULT(yes) > +- AC_DEFINE(HAVE_CURL, 1, [Define if you have libcurl.]) > +- ifelse([$1], , :, [$1]) > +-else > +- AC_MSG_RESULT(no) > +- CURL_LIBS="" > +- CURL_CFLAGS="" > +- ifelse([$2], , :, [$2]) > +-fi > ++AC_MSG_RESULT(yes) > ++AC_DEFINE(HAVE_CURL, 1, [Define if you have libcurl.]) > ++ifelse([$1], , :, [$1]) So here you're completely removing the curl check and assume that it is always present? > +ifeq ($(BR2_PACKAGE_LIBCURL),y) > +ICECAST_DEPENDENCIES += libcurl > +ICECAST_CONF_OPT += --with-curl-config=$(STAGING_DIR)/usr/bin/curl-config > +else > +ICECAST_CONF_OPT += --without-curl > +endif and here curl is still optional? Regarding the xiph_curl.m4 check, you could turn it into an AC_TRY_LINK test, like is done for Speex, Theora and so on. Or maybe even keep only the AC_CHECK_HEADERS() as an indication of whether curl is available or not. Thomas -- Thomas Petazzoni, Free Electrons Kernel, drivers, real-time and embedded Linux development, consulting, training and support. http://free-electrons.com ^ permalink raw reply [flat|nested] 4+ messages in thread
* [Buildroot] [PATCH v2] icecast: new package 2013-07-17 10:19 ` [Buildroot] [PATCH v2] icecast: new package Thomas Petazzoni @ 2013-07-17 10:25 ` Ezequiel Garcia 2013-07-17 10:48 ` Ezequiel Garcia 2013-07-17 11:36 ` Thomas Petazzoni 0 siblings, 2 replies; 4+ messages in thread From: Ezequiel Garcia @ 2013-07-17 10:25 UTC (permalink / raw) To: buildroot On Wed, Jul 17, 2013 at 12:19:05PM +0200, Thomas Petazzoni wrote: > Dear Ezequiel Garcia, > > On Wed, 17 Jul 2013 07:06:47 -0300, Ezequiel Garcia wrote: > > > +diff -Naur icecast-2.3.3/m4/xiph_curl.m4 icecast-2.3.3-patched/m4/xiph_curl.m4 > > +--- icecast-2.3.3/m4/xiph_curl.m4 2012-06-11 13:45:26.000000000 -0300 > > ++++ icecast-2.3.3-patched/m4/xiph_curl.m4 2013-07-17 06:58:02.000000000 -0300 > > +@@ -48,28 +48,10 @@ > > + dnl > > + dnl Now check if the installed libcurl is sufficiently new. > > + dnl > > +-AC_CHECK_HEADERS([curl/curl.h],, curl_ok="no") > > + AC_MSG_CHECKING(for libcurl) > > +-if test "$curl_ok" = "yes" > > +-then > > +- AC_RUN_IFELSE(AC_LANG_SOURCE([ > > +-#include <curl/curl.h> > > +-int main() > > +-{ > > +- return 0; > > +-} > > +-]),,[curl_ok="no"]) > > +-fi > > +-if test "$curl_ok" = "yes"; then > > +- AC_MSG_RESULT(yes) > > +- AC_DEFINE(HAVE_CURL, 1, [Define if you have libcurl.]) > > +- ifelse([$1], , :, [$1]) > > +-else > > +- AC_MSG_RESULT(no) > > +- CURL_LIBS="" > > +- CURL_CFLAGS="" > > +- ifelse([$2], , :, [$2]) > > +-fi > > ++AC_MSG_RESULT(yes) > > ++AC_DEFINE(HAVE_CURL, 1, [Define if you have libcurl.]) > > ++ifelse([$1], , :, [$1]) > > So here you're completely removing the curl check and assume that it is > always present? > > > > +ifeq ($(BR2_PACKAGE_LIBCURL),y) > > +ICECAST_DEPENDENCIES += libcurl > > +ICECAST_CONF_OPT += --with-curl-config=$(STAGING_DIR)/usr/bin/curl-config > > +else > > +ICECAST_CONF_OPT += --without-curl > > +endif > > and here curl is still optional? > Doh, silly uh? > Regarding the xiph_curl.m4 check, you could turn it into an AC_TRY_LINK > test, like is done for Speex, Theora and so on. Or maybe even keep only > the AC_CHECK_HEADERS() as an indication of whether curl is available or > not. > Mmm... okay, I'll try AC_TRY_LINK. The AC_CHECK_HEADERS *need* to be removed because they produce a very silly error: as_fn_error $? "cannot run test program while cross compiling" And this "as_fn_error" makes the configure exit with error. This happens even when curl is installed and available, and is the reason of this ugly patch. -- Ezequiel Garc?a, Free Electrons Embedded Linux, Kernel and Android Engineering http://free-electrons.com ^ permalink raw reply [flat|nested] 4+ messages in thread
* [Buildroot] [PATCH v2] icecast: new package 2013-07-17 10:25 ` Ezequiel Garcia @ 2013-07-17 10:48 ` Ezequiel Garcia 2013-07-17 11:36 ` Thomas Petazzoni 1 sibling, 0 replies; 4+ messages in thread From: Ezequiel Garcia @ 2013-07-17 10:48 UTC (permalink / raw) To: buildroot On Wed, Jul 17, 2013 at 07:25:11AM -0300, Ezequiel Garcia wrote: > On Wed, Jul 17, 2013 at 12:19:05PM +0200, Thomas Petazzoni wrote: > > Dear Ezequiel Garcia, > > > > On Wed, 17 Jul 2013 07:06:47 -0300, Ezequiel Garcia wrote: > > > > > +diff -Naur icecast-2.3.3/m4/xiph_curl.m4 icecast-2.3.3-patched/m4/xiph_curl.m4 > > > +--- icecast-2.3.3/m4/xiph_curl.m4 2012-06-11 13:45:26.000000000 -0300 > > > ++++ icecast-2.3.3-patched/m4/xiph_curl.m4 2013-07-17 06:58:02.000000000 -0300 > > > +@@ -48,28 +48,10 @@ > > > + dnl > > > + dnl Now check if the installed libcurl is sufficiently new. > > > + dnl > > > +-AC_CHECK_HEADERS([curl/curl.h],, curl_ok="no") > > > + AC_MSG_CHECKING(for libcurl) > > > +-if test "$curl_ok" = "yes" > > > +-then > > > +- AC_RUN_IFELSE(AC_LANG_SOURCE([ > > > +-#include <curl/curl.h> > > > +-int main() > > > +-{ > > > +- return 0; > > > +-} > > > +-]),,[curl_ok="no"]) > > > +-fi > > > +-if test "$curl_ok" = "yes"; then > > > +- AC_MSG_RESULT(yes) > > > +- AC_DEFINE(HAVE_CURL, 1, [Define if you have libcurl.]) > > > +- ifelse([$1], , :, [$1]) > > > +-else > > > +- AC_MSG_RESULT(no) > > > +- CURL_LIBS="" > > > +- CURL_CFLAGS="" > > > +- ifelse([$2], , :, [$2]) > > > +-fi > > > ++AC_MSG_RESULT(yes) > > > ++AC_DEFINE(HAVE_CURL, 1, [Define if you have libcurl.]) > > > ++ifelse([$1], , :, [$1]) > > > > So here you're completely removing the curl check and assume that it is > > always present? > > > > > > > +ifeq ($(BR2_PACKAGE_LIBCURL),y) > > > +ICECAST_DEPENDENCIES += libcurl > > > +ICECAST_CONF_OPT += --with-curl-config=$(STAGING_DIR)/usr/bin/curl-config > > > +else > > > +ICECAST_CONF_OPT += --without-curl > > > +endif > > > > and here curl is still optional? > > > > Doh, silly uh? > Or maybe not so silly. As far as I can see, this curl m4 file will be used when --with-curl is present (or more accurately when --without-curl is absent). When --without-curl is absent, then BR should guarantee that curl is correctly installed, and the patch merely removes the package configure double-check. Or at least that's what my tests say. Does this sound sane? -- Ezequiel Garc?a, Free Electrons Embedded Linux, Kernel and Android Engineering http://free-electrons.com ^ permalink raw reply [flat|nested] 4+ messages in thread
* [Buildroot] [PATCH v2] icecast: new package 2013-07-17 10:25 ` Ezequiel Garcia 2013-07-17 10:48 ` Ezequiel Garcia @ 2013-07-17 11:36 ` Thomas Petazzoni 1 sibling, 0 replies; 4+ messages in thread From: Thomas Petazzoni @ 2013-07-17 11:36 UTC (permalink / raw) To: buildroot Dear Ezequiel Garcia, On Wed, 17 Jul 2013 07:25:11 -0300, Ezequiel Garcia wrote: > Mmm... okay, I'll try AC_TRY_LINK. The AC_CHECK_HEADERS *need* to be removed > because they produce a very silly error: > > as_fn_error $? "cannot run test program while cross compiling" Nah, that doesn't make sense. An AC_CHECK_HEADERS check should work just fine in cross-compilation mode. The test that is showing this error is the AC_RUN_IFELSE(), which obviously cannot work in cross-compilation mode. From the generated configure script included in the icecast 2.3.3 tarball (fat comments added by me). ############################################## # This part is the AC_CHECK_HEADERS for curl.h ############################################## curl_ok="yes" xt_curl_CPPFLAGS="$CPPFLAGS" xt_curl_LIBS="$LIBS" CPPFLAGS="$CPPFLAGS $CURL_CFLAGS" LIBS="$CURL_LIBS $LIBS" for ac_header in curl/curl.h do : ac_fn_c_check_header_mongrel "$LINENO" "curl/curl.h" "ac_cv_header_curl_curl_h" "$ac_includes_default" if test "x$ac_cv_header_curl_curl_h" = xyes; then : cat >>confdefs.h <<_ACEOF #define HAVE_CURL_CURL_H 1 _ACEOF else curl_ok="no" fi ############################################## # This part is the AC_RUN_IFELSE ############################################## { $as_echo "$as_me:${as_lineno-$LINENO}: checking for libcurl" >&5 $as_echo_n "checking for libcurl... " >&6; } if test "$curl_ok" = "yes" then if test "$cross_compiling" = yes; then : { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error $? "cannot run test program while cross compiling See \`config.log' for more details" "$LINENO" 5; } else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include <curl/curl.h> int main() { return 0; } _ACEOF if ac_fn_c_try_run "$LINENO"; then : else curl_ok="no" fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ conftest.$ac_objext conftest.beam conftest.$ac_ext fi Thomas -- Thomas Petazzoni, Free Electrons Kernel, drivers, real-time and embedded Linux development, consulting, training and support. http://free-electrons.com ^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~2013-07-17 11:36 UTC | newest]
Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
[not found] <1374055607-24500-1-git-send-email-elezegarcia@gmail.com>
2013-07-17 10:19 ` [Buildroot] [PATCH v2] icecast: new package Thomas Petazzoni
2013-07-17 10:25 ` Ezequiel Garcia
2013-07-17 10:48 ` Ezequiel Garcia
2013-07-17 11:36 ` Thomas Petazzoni
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox