diff --git a/package/libiscsi/Config.in b/package/libiscsi/Config.in index 3ec184a511..88933f3942 100644 --- a/package/libiscsi/Config.in +++ b/package/libiscsi/Config.in @@ -1,6 +1,5 @@ config BR2_PACKAGE_LIBISCSI bool "libiscsi" - select BR2_PACKAGE_POPT help Libiscsi is a client-side library to implement the iSCSI protocol that can be used to access resource of an iSCSI Target. diff --git a/package/libiscsi/libiscsi-0001-Fix-warnings-related-to-subdir-objects.patch b/package/libiscsi/libiscsi-0001-Fix-warnings-related-to-subdir-objects.patch new file mode 100644 index 0000000000..7ccdc53c32 --- /dev/null +++ b/package/libiscsi/libiscsi-0001-Fix-warnings-related-to-subdir-objects.patch @@ -0,0 +1,46 @@ +From e801ccb2633e3f5842ed6d160af0e6e5cce44c77 Mon Sep 17 00:00:00 2001 +From: Thomas Petazzoni +Date: Tue, 2 Sep 2014 22:38:55 +0200 +Subject: [PATCH 1/4] Fix warnings related to subdir-objects + +Use AM_INIT_AUTOMAKE in configure.ac to define options such as +subdir-objects, instead of AUTOMAKE_OPTIONS in Makefile.am, as it +allows to avoid warnings during autoreconf: + +examples/Makefile.am:25: warning: source file '../lib/connect.c' is in a subdirectory, +examples/Makefile.am:25: but option 'subdir-objects' is disabled + +Signed-off-by: Thomas Petazzoni +--- + Makefile.am | 1 - + configure.ac | 2 +- + 2 files changed, 1 insertion(+), 2 deletions(-) + +diff --git a/Makefile.am b/Makefile.am +index 7023988..f9de08c 100644 +--- a/Makefile.am ++++ b/Makefile.am +@@ -2,7 +2,6 @@ + SUBDIRS = lib doc utils test-tool examples + + ACLOCAL_AMFLAGS =-I m4 +-AUTOMAKE_OPTIONS = foreign subdir-objects + AM_CPPFLAGS=-I. -I$(srcdir)/include "-D_U_=__attribute__((unused))" \ + "-D_R_(A,B)=__attribute__((format(printf,A,B)))" + AM_CFLAGS=$(WARN_CFLAGS) +diff --git a/configure.ac b/configure.ac +index e1d01c6..6d29af0 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -3,7 +3,7 @@ AC_INIT(libiscsi, m4_esyscmd([grep 'Version:' ./packaging/RPM/libiscsi.spec.in 2 + AC_CONFIG_SRCDIR([lib/init.c]) + AC_CONFIG_MACRO_DIR([m4]) + +-AM_INIT_AUTOMAKE ++AM_INIT_AUTOMAKE([-Wall -Werror foreign subdir-objects]) + AM_SILENT_RULES + LT_INIT + +-- +2.0.0 + diff --git a/package/libiscsi/libiscsi-0002-Avoid-libtool-AM_PROG_AR-warning-during-autoreconf.patch b/package/libiscsi/libiscsi-0002-Avoid-libtool-AM_PROG_AR-warning-during-autoreconf.patch new file mode 100644 index 0000000000..44572f1bd1 --- /dev/null +++ b/package/libiscsi/libiscsi-0002-Avoid-libtool-AM_PROG_AR-warning-during-autoreconf.patch @@ -0,0 +1,42 @@ +From 2f476df340f50b9c10a7f45f4ec809e9ef82aba6 Mon Sep 17 00:00:00 2001 +From: Thomas Petazzoni +Date: Tue, 2 Sep 2014 22:40:04 +0200 +Subject: [PATCH 2/4] Avoid libtool/AM_PROG_AR warning during autoreconf + +This patch allows to avoid the following warning during autoreconf: + +/home/thomas/projets/buildroot/output/host/usr/share/automake-1.14/am/ltlibrary.am: warning: 'lib/libiscsi_convenience.la': linking libtool libraries using a non-POSIX +/home/thomas/projets/buildroot/output/host/usr/share/automake-1.14/am/ltlibrary.am: archiver requires 'AM_PROG_AR' in 'configure.ac' + +Note that LT_INIT *must* be after AM_PROG_AR, otherwise: + +configure.ac:14: warning: LT_INIT was called before AM_PROG_AR + +Signed-off-by: Thomas Petazzoni +--- + configure.ac | 4 +++- + 1 file changed, 3 insertions(+), 1 deletion(-) + +diff --git a/configure.ac b/configure.ac +index 6d29af0..eb9d995 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -5,12 +5,14 @@ AC_CONFIG_MACRO_DIR([m4]) + + AM_INIT_AUTOMAKE([-Wall -Werror foreign subdir-objects]) + AM_SILENT_RULES +-LT_INIT + + AC_CANONICAL_HOST + AM_CONDITIONAL(LD_ISCSI, + [expr "$host_os" : linux > /dev/null 2>&1]) + AM_PROG_CC_C_O ++AM_PROG_AR ++ ++LT_INIT + + enable_write_strings="yes" + +-- +2.0.0 + diff --git a/package/libiscsi/libiscsi-0003-Fix-CUnit-test-for-cross-compilation.patch b/package/libiscsi/libiscsi-0003-Fix-CUnit-test-for-cross-compilation.patch new file mode 100644 index 0000000000..dd4eb4a611 --- /dev/null +++ b/package/libiscsi/libiscsi-0003-Fix-CUnit-test-for-cross-compilation.patch @@ -0,0 +1,56 @@ +From 3271dd69b731c0320ab0b3b0a0609e64b00f1a56 Mon Sep 17 00:00:00 2001 +From: Thomas Petazzoni +Date: Tue, 2 Sep 2014 22:41:32 +0200 +Subject: [PATCH 3/4] Fix CUnit test for cross-compilation + +The current test in configure.ac for CUnit uses AC_TRY_RUN, which +doesn't work in a cross-compilation context, because we can't run on +the build machine the binaries that are built for the target. In +addition, the current logic assumes CUnit is available when the +AC_TRY_RUN test cannot be used (e.g in a cross-compilation case). + +Since we actually don't care about *running* but only about testing +whether a simple program include the CUnit header file and linking +against the cunit library works, simply use AC_TRY_LINK() instead of +AC_TRY_RUN(). + +Signed-off-by: Thomas Petazzoni +--- + configure.ac | 15 ++------------- + 1 file changed, 2 insertions(+), 13 deletions(-) + +diff --git a/configure.ac b/configure.ac +index eb9d995..0ee2d9b 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -91,25 +91,14 @@ if test x"$libiscsi_cv_HAVE_SOCKADDR_IN6" = x"yes"; then + AC_DEFINE(HAVE_SOCKADDR_IN6,1,[Whether we have IPv6 support]) + fi + +- + AC_MSG_CHECKING(whether libcunit is available) + ac_save_CFLAGS="$CFLAGS" + ac_save_LIBS="$LIBS" + CFLAGS="$CFLAGS $GLIB_CFLAGS" + LIBS="$GLIB_LIBS $LIBS -lcunit" +-AC_TRY_RUN([ +-/* +- * Just see if we can compile/link with libcunit +- */ ++AC_TRY_LINK([ + #include +- +-int main(int argc, const char *argv[]) +-{ +- return 0; +-} +-], ac_cv_have_cunit=yes, ac_cv_have_cunit=no, +- [echo $ac_n "compile with CUNIT. Assuming OK... $ac_c" +- ac_cv_have_cunit=yes]) ++], [], [ac_cv_have_cunit=yes], [ac_cv_have_cunit=no]) + CFLAGS="$ac_save_CFLAGS" + LIBS="$ac_save_LIBS" + if test "$ac_cv_have_cunit" = yes ; then +-- +2.0.0 + diff --git a/package/libiscsi/libiscsi-0004-examples-fix-uint64_t-formatting-issues.patch b/package/libiscsi/libiscsi-0004-examples-fix-uint64_t-formatting-issues.patch new file mode 100644 index 0000000000..3a4504973c --- /dev/null +++ b/package/libiscsi/libiscsi-0004-examples-fix-uint64_t-formatting-issues.patch @@ -0,0 +1,49 @@ +From fdfeff0462e17e0f0e37e65e5b6be6e74a9b39fd Mon Sep 17 00:00:00 2001 +From: Thomas Petazzoni +Date: Tue, 2 Sep 2014 22:43:44 +0200 +Subject: [PATCH 4/4] examples: fix uint64_t formatting issues + +Using %lu to format uint64_t doesn't work for 32 bits architecture, +because uint64_t is an unsigned long long and therefore %llu should be +used. The solution is to use PRIu64 from , which is equal +to %lu on 64 bits architectures, and %llu on 32 bits architectures, +which corresponds to the definition of uint64_t. + +Signed-off-by: Thomas Petazzoni +--- + examples/iscsi-dd.c | 5 +++-- + 1 file changed, 3 insertions(+), 2 deletions(-) + +diff --git a/examples/iscsi-dd.c b/examples/iscsi-dd.c +index 4cc7c2b..33007c3 100644 +--- a/examples/iscsi-dd.c ++++ b/examples/iscsi-dd.c +@@ -19,6 +19,7 @@ + #include + #include + #include ++#include + #include + #include + #include "iscsi.h" +@@ -79,7 +80,7 @@ void write_cb(struct iscsi_context *iscsi, int status, void *command_data, void + fill_read_queue(client); + + if (client->progress) { +- printf("\r%lu of %lu blocks transferred.", client->pos, client->src_num_blocks); ++ printf("\r%" PRIu64 " of %" PRIu64 " blocks transferred.", client->pos, client->src_num_blocks); + } + + if ((client->in_flight == 0) && (client->pos == client->src_num_blocks)) { +@@ -378,7 +379,7 @@ int main(int argc, char *argv[]) + } + + if (client.src_num_blocks > client.dst_num_blocks) { +- fprintf(stderr, "source LUN is bigger than destination (%lu > %lu sectors)\n", client.src_num_blocks, client.dst_num_blocks); ++ fprintf(stderr, "source LUN is bigger than destination (%" PRIu64 " > %" PRIu64 " sectors)\n", client.src_num_blocks, client.dst_num_blocks); + exit(10); + } + +-- +2.0.0 + diff --git a/package/libiscsi/libiscsi.mk b/package/libiscsi/libiscsi.mk index eddde33ec9..a52211bf19 100644 --- a/package/libiscsi/libiscsi.mk +++ b/package/libiscsi/libiscsi.mk @@ -4,13 +4,13 @@ # ################################################################################ -LIBISCSI_VERSION = 1.6.0 -LIBISCSI_SITE = https://github.com/downloads/sahlberg/libiscsi -LIBISCSI_LICENSE = GPLv2+ LGPLv2.1+ -LIBISCSI_LICENSE_FILES = COPYING LICENCE-GPL-2.txt LICENCE-LGPL-2.1.txt +LIBISCSI_VERSION = 1.12.0 +LIBISCSI_SITE = https://sites.google.com/site/libiscsitarballs/libiscsitarballs/ +LIBISCSI_LICENSE = GPLv2+ LGPLv2.1+ +LIBISCSI_LICENSE_FILES = COPYING LICENCE-GPL-2.txt LICENCE-LGPL-2.1.txt LIBISCSI_INSTALL_STAGING = YES -LIBISCSI_DEPENDENCIES = popt -# fixes MIPS64 link failure -LIBISCSI_AUTORECONF = YES + +# We patch configure.ac and Makefile.am +LIBISCSI_AUTORECONF = YES $(eval $(autotools-package))