retitle 543064 FTBFS: "You need to have the SmartArray driver in the kernel." tags 543064 +patch thanks
Hi, The original title didn't accurately describe what the cause of failure was. The message about the kernel not being configured was always there and not a problem. The problem is this: checking ida_ioctl.h usability... no configure: WARNING: ida_ioctl.h: present but cannot be compiled configure: WARNING: ida_ioctl.h: check for missing prerequisite headers? configure: WARNING: ida_ioctl.h: see the Autoconf documentation configure: WARNING: ida_ioctl.h: section "Present But Cannot Be Compiled" configure: WARNING: ida_ioctl.h: proceeding with the compiler's result checking ida_ioctl.h presence... yes configure: WARNING: ## ------------------------------- ## configure: WARNING: ## Report this to [email protected] ## configure: WARNING: ## ------------------------------- ## checking for ida_ioctl.h... no configure: error: You need to have the SmartArray driver in the kernel. make[1]: *** [config.status] Error 1 make[1]: Leaving directory `/build/user-cpqarrayd_2.3-1-amd64-8Sshsp/cpqarrayd-2.3' make: *** [build-stamp] Error 2 I looked at how other distributions handle this and it seems Fedora and Mandrake solve it by disabling the dependency of cpqarrayid on ida. I've applied their patch and the package builds fine again. Also I've tested it on a range of Compaq/HP SmartArray hardware we have here, from oldest to newest and the package still works. Must note that we use the /dev/cciss driver. Attached patch is the package I built. I'll leave it up to the maintainer to judge whether this is a good way forward, but my advice would be to go for it if no better options surface: apparently this has worked fine for other distributions and in any case this makes the package work again for a large range of machines at the least. Probably it's too late for squeeze (although this is a completely leaf package and would add support for a wide and popular range of server hardware), but it would be great if this could be fixed for unstable at least. Interested parties can also find built packages for amd64 and i386 in our repository: http://non-gnu.uvt.nl/debian/squeeze/cpqarrayd/ Cheers, Thijs -- Thijs Kinkhorst <[email protected]> – LIS Unix Universiteit van Tilburg – Library and IT Services • Postbus 90153, 5000 LE Bezoekadres > Warandelaan 2 • Tel. 013 466 3035 • G 236 • http://www.uvt.nl
diff -u cpqarrayd-2.3/cpqarrayd.c cpqarrayd-2.3/cpqarrayd.c
--- cpqarrayd-2.3/cpqarrayd.c
+++ cpqarrayd-2.3/cpqarrayd.c
@@ -36,9 +36,11 @@
#include <linux/compiler.h>
#endif
+#ifdef WITH_IDA
#if defined(__linux__)
#include <ida_ioctl.h>
#endif
+#endif
#if defined(__freebsd__)
#include <idavar.h>
@@ -258,7 +260,10 @@
syslog(LOG_INFO, "Logging Enabled...");
while (keeprunning) {
+
+#ifdef WITH_IDA
status_check(opts);
+#endif
cciss_status_check(opts);
if (keeprunning) { sleep(30); }
}
diff -u cpqarrayd-2.3/status.c cpqarrayd-2.3/status.c
--- cpqarrayd-2.3/status.c
+++ cpqarrayd-2.3/status.c
@@ -33,9 +33,13 @@
#endif
#include <sys/ioctl.h>
+
+#ifdef HAVE_IDA
#include <ida_ioctl.h>
#include <ida_cmd.h>
#include <cpqarray.h>
+#endif
+
#include <syslog.h>
#include "cpqarrayd.h"
@@ -45,7 +49,8 @@
#include "cciss_structs.h"
#include "cciss_functions.h"
-int status_check (struct opts opts)
+#ifdef HAVE_IDA
+int status_check (struct opts opts)
{
int devicefd;
@@ -183,6 +188,7 @@
return 1;
}
+#endif
int cciss_status_check (struct opts opts)
{
@@ -190,7 +196,6 @@
int devicefd;
int ctrl_cntr, result;
int logd_cntr;
- ida_ioctl_t io, io2;
int status, nr_blks, blks_tr, trap_stat;
float pvalue;
char statusmsg[2048];
diff -u cpqarrayd-2.3/discover.c cpqarrayd-2.3/discover.c
--- cpqarrayd-2.3/discover.c
+++ cpqarrayd-2.3/discover.c
@@ -33,12 +33,14 @@
#include <linux/compiler.h>
#endif
+#ifdef WITH_IDA
#if defined(__linux__)
#include <ida_ioctl.h>
#include <ida_ioctl.h>
#include <ida_cmd.h>
#include <cpqarray.h>
#endif
+#endif
#if defined(__freebsd__)
#include <idavar.h>
@@ -52,8 +54,12 @@
int discover_controllers (struct opts);
+
+#ifdef WITH_IDA
int interrogate_controller (struct opts, const char *);
int interrogate_logical(struct opts, int, int);
+#endif
+
void boardid2str (unsigned long , char *);
/* Added devfs devices
@@ -84,6 +90,7 @@
int cntr;
int foundone = 0;
+#ifdef WITH_IDA
for (cntr = 0; cntr < 8; cntr++)
{
/* does this device exist ? */
@@ -104,6 +111,8 @@
perror ("DEBUG: reason");
}
}
+#endif
+
for (cntr = 0; cntr < 16; cntr++)
{
/* does this device exist ? */
@@ -127,6 +136,7 @@
return foundone;
}
+#ifdef WITH_IDA
int
interrogate_controller (struct opts opts, const char *devicefile)
{
@@ -228,6 +238,7 @@
return 1;
}
+#endif
void
boardid2str (unsigned long board_id, char *name)
diff -u cpqarrayd-2.3/configure.ac cpqarrayd-2.3/configure.ac
--- cpqarrayd-2.3/configure.ac
+++ cpqarrayd-2.3/configure.ac
@@ -46,13 +46,13 @@
AC_CHECK_HEADERS(linux/compiler.h)
dnl Check Headers
-AC_CHECK_HEADERS(ida_ioctl.h ida_cmd.h cpqarray.h,,
- AC_MSG_ERROR(You need to have the SmartArray driver in the kernel.))
+dnl AC_CHECK_HEADERS(ida_ioctl.h ida_cmd.h cpqarray.h,,
+dnl AC_MSG_ERROR(You need to have the SmartArray driver in the kernel.))
dnl Check version of SmartArray driver
-AC_MSG_CHECKING(SmartArray driver version)
-AC_EGREP_HEADER(blk_cnt, ida_ioctl.h,AC_MSG_RESULT(ok),
- AC_MSG_ERROR(You need to have the SmartArray driver version 1.0.1 or higher installed.))
+dnl AC_MSG_CHECKING(SmartArray driver version)
+dnl AC_EGREP_HEADER(blk_cnt, ida_ioctl.h,AC_MSG_RESULT(ok),
+dnl AC_MSG_ERROR(You need to have the SmartArray driver version 1.0.1 or higher installed.))
dnl Check for CCISS header file
AC_CHECK_HEADERS(linux/cciss_ioctl.h,,
diff -u cpqarrayd-2.3/debian/changelog cpqarrayd-2.3/debian/changelog
--- cpqarrayd-2.3/debian/changelog
+++ cpqarrayd-2.3/debian/changelog
@@ -1,3 +1,10 @@
+cpqarrayd (2.3-1+uvt1) unstable; urgency=low
+
+ * Apply no_ida patch from Fedora to make package build again
+ in a squeeze context (closes: #543064).
+
+ -- Thijs Kinkhorst <[email protected]> Mon, 17 Jan 2011 10:50:03 +0000
+
cpqarrayd (2.3-1) unstable; urgency=low
* New upstream release.
signature.asc
Description: This is a digitally signed message part.

