Bug#752024: amanda: FTBFS with Perl 5.20: needs SWIG regeneration
Package: amanda
Version: 1:3.3.3-3
Severity: important
User: debian-perl@lists.debian.org
Usertags: perl-5.20-transition
This package fails to build with Perl 5.20 (currently in experimental):
In file included from Amanda/Application.c:734:0:
Amanda/Application.c: In function 'SWIG_AsCharPtrAndSize':
/usr/lib/x86_64-linux-gnu/perl/5.20/CORE/handy.h:124:34: error: 'bool' undeclared (first use in this function)
#define cBOOL(cbool) ((cbool) ? (bool)1 : (bool)0)
^
[...]
make[5]: *** [Application.lo] Error 1
Makefile:2548: recipe for target 'Application.lo' failed
make[5]: Leaving directory '/«PKGBUILDDIR»/perl'
make[4]: *** [all-recursive] Error 1
This seems to be fixed in SWIG 2.0.8 by
https://github.com/swig/swig/commit/4305a3cef9b210541c3b88ab2fd03d787c3bca66#diff-e00eca1bbacd9d243e51f4bf400b3000R63
but I don't know why the commit message claims it fixes problems with
Perl 5.16 while we encounter them only with the 5.18 -> 5.20 upgrade.
The attached patch fixes the build, but it modifies generated files.
A more correct fix would be a full regeneration step with current SWIG.
I've tested that the package builds both on current sid and with
perl_5.20.0-1 from experimental with the patch.
--
Niko Tyni ntyni@debian.org
>From f55dacbd2f80ce1fb91bb52885b8154aa1ce1b3c Mon Sep 17 00:00:00 2001
From: Niko Tyni <ntyni@debian.org>
Date: Wed, 18 Jun 2014 22:32:01 +0300
Subject: [PATCH] Don't undefine bool if defined by C99 stdbool.h
This is adopted from swig 2.0.8, change
https://github.com/swig/swig/commit/4305a3cef9b210541c3b88ab2fd03d787c3bca66#diff-e00eca1bbacd9d243e51f4bf400b3000R63
and fixes build failures with Perl 5.20.
Regenerating the files with a current swig version would
be a more correct fix.
---
perl/Amanda/Application.c | 10 ++++++----
perl/Amanda/Archive.c | 10 ++++++----
perl/Amanda/Cmdline.c | 10 ++++++----
perl/Amanda/Config.c | 10 ++++++----
perl/Amanda/Debug.c | 10 ++++++----
perl/Amanda/Device.c | 10 ++++++----
perl/Amanda/Disklist.c | 10 ++++++----
perl/Amanda/Feature.c | 10 ++++++----
perl/Amanda/Header.c | 10 ++++++----
perl/Amanda/IPC/Binary.c | 10 ++++++----
perl/Amanda/Logfile.c | 10 ++++++----
perl/Amanda/MainLoop.c | 10 ++++++----
perl/Amanda/NDMP.c | 10 ++++++----
perl/Amanda/Tapelist.c | 10 ++++++----
perl/Amanda/Tests.c | 10 ++++++----
perl/Amanda/Util.c | 10 ++++++----
perl/Amanda/Xfer.c | 10 ++++++----
perl/Amanda/XferServer.c | 10 ++++++----
18 files changed, 108 insertions(+), 72 deletions(-)
diff --git a/perl/Amanda/Application.c b/perl/Amanda/Application.c
index 605ac6e..8327e74 100644
--- a/perl/Amanda/Application.c
+++ b/perl/Amanda/Application.c
@@ -1450,9 +1450,6 @@ SWIG_Perl_SetModule(swig_module_info *module) {
#ifdef eof
#undef eof
#endif
-#ifdef bool
- #undef bool
-#endif
#ifdef close
#undef close
#endif
@@ -1493,7 +1490,12 @@ SWIG_Perl_SetModule(swig_module_info *module) {
#undef stat
#endif
-
+#ifdef bool
+ /* Leave if macro is from C99 stdbool.h */
+ #ifndef __bool_true_false_are_defined
+ #undef bool
+ #endif
+#endif
#define SWIG_exception_fail(code, msg) do { SWIG_Error(code, msg); SWIG_fail; } while(0)
diff --git a/perl/Amanda/Archive.c b/perl/Amanda/Archive.c
index 3fbfc23..aac8f35 100644
--- a/perl/Amanda/Archive.c
+++ b/perl/Amanda/Archive.c
@@ -1450,9 +1450,6 @@ SWIG_Perl_SetModule(swig_module_info *module) {
#ifdef eof
#undef eof
#endif
-#ifdef bool
- #undef bool
-#endif
#ifdef close
#undef close
#endif
@@ -1493,7 +1490,12 @@ SWIG_Perl_SetModule(swig_module_info *module) {
#undef stat
#endif
-
+#ifdef bool
+ /* Leave if macro is from C99 stdbool.h */
+ #ifndef __bool_true_false_are_defined
+ #undef bool
+ #endif
+#endif
#define SWIG_exception_fail(code, msg) do { SWIG_Error(code, msg); SWIG_fail; } while(0)
diff --git a/perl/Amanda/Cmdline.c b/perl/Amanda/Cmdline.c
index 5a8d2ef..85709b1 100644
--- a/perl/Amanda/Cmdline.c
+++ b/perl/Amanda/Cmdline.c
@@ -1450,9 +1450,6 @@ SWIG_Perl_SetModule(swig_module_info *module) {
#ifdef eof
#undef eof
#endif
-#ifdef bool
- #undef bool
-#endif
#ifdef close
#undef close
#endif
@@ -1493,7 +1490,12 @@ SWIG_Perl_SetModule(swig_module_info *module) {
#undef stat
#endif
-
+#ifdef bool
+ /* Leave if macro is from C99 stdbool.h */
+ #ifndef __bool_true_false_are_defined
+ #undef bool
+ #endif
+#endif
#define SWIG_exception_fail(code, msg) do { SWIG_Error(code, msg); SWIG_fail; } while(0)
diff --git a/perl/Amanda/Config.c b/perl/Amanda/Config.c
index e8e53e0..3c1cf93 100644
--- a/perl/Amanda/Config.c
+++ b/perl/Amanda/Config.c
@@ -1450,9 +1450,6 @@ SWIG_Perl_SetModule(swig_module_info *module) {
#ifdef eof
#undef eof
#endif
-#ifdef bool
- #undef bool
-#endif
#ifdef close
#undef close
#endif
@@ -1493,7 +1490,12 @@ SWIG_Perl_SetModule(swig_module_info *module) {
#undef stat
#endif
-
+#ifdef bool
+ /* Leave if macro is from C99 stdbool.h */
+ #ifndef __bool_true_false_are_defined
+ #undef bool
+ #endif
+#endif
#define SWIG_exception_fail(code, msg) do { SWIG_Error(code, msg); SWIG_fail; } while(0)
diff --git a/perl/Amanda/Debug.c b/perl/Amanda/Debug.c
index 103aa3f..01a4029 100644
--- a/perl/Amanda/Debug.c
+++ b/perl/Amanda/Debug.c
@@ -1450,9 +1450,6 @@ SWIG_Perl_SetModule(swig_module_info *module) {
#ifdef eof
#undef eof
#endif
-#ifdef bool
- #undef bool
-#endif
#ifdef close
#undef close
#endif
@@ -1493,7 +1490,12 @@ SWIG_Perl_SetModule(swig_module_info *module) {
#undef stat
#endif
-
+#ifdef bool
+ /* Leave if macro is from C99 stdbool.h */
+ #ifndef __bool_true_false_are_defined
+ #undef bool
+ #endif
+#endif
#define SWIG_exception_fail(code, msg) do { SWIG_Error(code, msg); SWIG_fail; } while(0)
diff --git a/perl/Amanda/Device.c b/perl/Amanda/Device.c
index b8efee6..21e73dc 100644
--- a/perl/Amanda/Device.c
+++ b/perl/Amanda/Device.c
@@ -1450,9 +1450,6 @@ SWIG_Perl_SetModule(swig_module_info *module) {
#ifdef eof
#undef eof
#endif
-#ifdef bool
- #undef bool
-#endif
#ifdef close
#undef close
#endif
@@ -1493,7 +1490,12 @@ SWIG_Perl_SetModule(swig_module_info *module) {
#undef stat
#endif
-
+#ifdef bool
+ /* Leave if macro is from C99 stdbool.h */
+ #ifndef __bool_true_false_are_defined
+ #undef bool
+ #endif
+#endif
#define SWIG_exception_fail(code, msg) do { SWIG_Error(code, msg); SWIG_fail; } while(0)
diff --git a/perl/Amanda/Disklist.c b/perl/Amanda/Disklist.c
index 0a9874b..c064c38 100644
--- a/perl/Amanda/Disklist.c
+++ b/perl/Amanda/Disklist.c
@@ -1450,9 +1450,6 @@ SWIG_Perl_SetModule(swig_module_info *module) {
#ifdef eof
#undef eof
#endif
-#ifdef bool
- #undef bool
-#endif
#ifdef close
#undef close
#endif
@@ -1493,7 +1490,12 @@ SWIG_Perl_SetModule(swig_module_info *module) {
#undef stat
#endif
-
+#ifdef bool
+ /* Leave if macro is from C99 stdbool.h */
+ #ifndef __bool_true_false_are_defined
+ #undef bool
+ #endif
+#endif
#define SWIG_exception_fail(code, msg) do { SWIG_Error(code, msg); SWIG_fail; } while(0)
diff --git a/perl/Amanda/Feature.c b/perl/Amanda/Feature.c
index 6ad571a..53c6b0d 100644
--- a/perl/Amanda/Feature.c
+++ b/perl/Amanda/Feature.c
@@ -1450,9 +1450,6 @@ SWIG_Perl_SetModule(swig_module_info *module) {
#ifdef eof
#undef eof
#endif
-#ifdef bool
- #undef bool
-#endif
#ifdef close
#undef close
#endif
@@ -1493,7 +1490,12 @@ SWIG_Perl_SetModule(swig_module_info *module) {
#undef stat
#endif
-
+#ifdef bool
+ /* Leave if macro is from C99 stdbool.h */
+ #ifndef __bool_true_false_are_defined
+ #undef bool
+ #endif
+#endif
#define SWIG_exception_fail(code, msg) do { SWIG_Error(code, msg); SWIG_fail; } while(0)
diff --git a/perl/Amanda/Header.c b/perl/Amanda/Header.c
index faa12da..dc5c205 100644
--- a/perl/Amanda/Header.c
+++ b/perl/Amanda/Header.c
@@ -1450,9 +1450,6 @@ SWIG_Perl_SetModule(swig_module_info *module) {
#ifdef eof
#undef eof
#endif
-#ifdef bool
- #undef bool
-#endif
#ifdef close
#undef close
#endif
@@ -1493,7 +1490,12 @@ SWIG_Perl_SetModule(swig_module_info *module) {
#undef stat
#endif
-
+#ifdef bool
+ /* Leave if macro is from C99 stdbool.h */
+ #ifndef __bool_true_false_are_defined
+ #undef bool
+ #endif
+#endif
#define SWIG_exception_fail(code, msg) do { SWIG_Error(code, msg); SWIG_fail; } while(0)
diff --git a/perl/Amanda/IPC/Binary.c b/perl/Amanda/IPC/Binary.c
index 5739c47..92e905d 100644
--- a/perl/Amanda/IPC/Binary.c
+++ b/perl/Amanda/IPC/Binary.c
@@ -1450,9 +1450,6 @@ SWIG_Perl_SetModule(swig_module_info *module) {
#ifdef eof
#undef eof
#endif
-#ifdef bool
- #undef bool
-#endif
#ifdef close
#undef close
#endif
@@ -1493,7 +1490,12 @@ SWIG_Perl_SetModule(swig_module_info *module) {
#undef stat
#endif
-
+#ifdef bool
+ /* Leave if macro is from C99 stdbool.h */
+ #ifndef __bool_true_false_are_defined
+ #undef bool
+ #endif
+#endif
#define SWIG_exception_fail(code, msg) do { SWIG_Error(code, msg); SWIG_fail; } while(0)
diff --git a/perl/Amanda/Logfile.c b/perl/Amanda/Logfile.c
index 7c39763..e4c8ef7 100644
--- a/perl/Amanda/Logfile.c
+++ b/perl/Amanda/Logfile.c
@@ -1450,9 +1450,6 @@ SWIG_Perl_SetModule(swig_module_info *module) {
#ifdef eof
#undef eof
#endif
-#ifdef bool
- #undef bool
-#endif
#ifdef close
#undef close
#endif
@@ -1493,7 +1490,12 @@ SWIG_Perl_SetModule(swig_module_info *module) {
#undef stat
#endif
-
+#ifdef bool
+ /* Leave if macro is from C99 stdbool.h */
+ #ifndef __bool_true_false_are_defined
+ #undef bool
+ #endif
+#endif
#define SWIG_exception_fail(code, msg) do { SWIG_Error(code, msg); SWIG_fail; } while(0)
diff --git a/perl/Amanda/MainLoop.c b/perl/Amanda/MainLoop.c
index eeb96b1..b824e0c 100644
--- a/perl/Amanda/MainLoop.c
+++ b/perl/Amanda/MainLoop.c
@@ -1450,9 +1450,6 @@ SWIG_Perl_SetModule(swig_module_info *module) {
#ifdef eof
#undef eof
#endif
-#ifdef bool
- #undef bool
-#endif
#ifdef close
#undef close
#endif
@@ -1493,7 +1490,12 @@ SWIG_Perl_SetModule(swig_module_info *module) {
#undef stat
#endif
-
+#ifdef bool
+ /* Leave if macro is from C99 stdbool.h */
+ #ifndef __bool_true_false_are_defined
+ #undef bool
+ #endif
+#endif
#define SWIG_exception_fail(code, msg) do { SWIG_Error(code, msg); SWIG_fail; } while(0)
diff --git a/perl/Amanda/NDMP.c b/perl/Amanda/NDMP.c
index cc7e75a..c2529df 100644
--- a/perl/Amanda/NDMP.c
+++ b/perl/Amanda/NDMP.c
@@ -1450,9 +1450,6 @@ SWIG_Perl_SetModule(swig_module_info *module) {
#ifdef eof
#undef eof
#endif
-#ifdef bool
- #undef bool
-#endif
#ifdef close
#undef close
#endif
@@ -1493,7 +1490,12 @@ SWIG_Perl_SetModule(swig_module_info *module) {
#undef stat
#endif
-
+#ifdef bool
+ /* Leave if macro is from C99 stdbool.h */
+ #ifndef __bool_true_false_are_defined
+ #undef bool
+ #endif
+#endif
#define SWIG_exception_fail(code, msg) do { SWIG_Error(code, msg); SWIG_fail; } while(0)
diff --git a/perl/Amanda/Tapelist.c b/perl/Amanda/Tapelist.c
index 611b085..dac0bd2 100644
--- a/perl/Amanda/Tapelist.c
+++ b/perl/Amanda/Tapelist.c
@@ -1450,9 +1450,6 @@ SWIG_Perl_SetModule(swig_module_info *module) {
#ifdef eof
#undef eof
#endif
-#ifdef bool
- #undef bool
-#endif
#ifdef close
#undef close
#endif
@@ -1493,7 +1490,12 @@ SWIG_Perl_SetModule(swig_module_info *module) {
#undef stat
#endif
-
+#ifdef bool
+ /* Leave if macro is from C99 stdbool.h */
+ #ifndef __bool_true_false_are_defined
+ #undef bool
+ #endif
+#endif
#define SWIG_exception_fail(code, msg) do { SWIG_Error(code, msg); SWIG_fail; } while(0)
diff --git a/perl/Amanda/Tests.c b/perl/Amanda/Tests.c
index 5177c57..7583d21 100644
--- a/perl/Amanda/Tests.c
+++ b/perl/Amanda/Tests.c
@@ -1450,9 +1450,6 @@ SWIG_Perl_SetModule(swig_module_info *module) {
#ifdef eof
#undef eof
#endif
-#ifdef bool
- #undef bool
-#endif
#ifdef close
#undef close
#endif
@@ -1493,7 +1490,12 @@ SWIG_Perl_SetModule(swig_module_info *module) {
#undef stat
#endif
-
+#ifdef bool
+ /* Leave if macro is from C99 stdbool.h */
+ #ifndef __bool_true_false_are_defined
+ #undef bool
+ #endif
+#endif
#define SWIG_exception_fail(code, msg) do { SWIG_Error(code, msg); SWIG_fail; } while(0)
diff --git a/perl/Amanda/Util.c b/perl/Amanda/Util.c
index 4357d9f..a4ad4a2 100644
--- a/perl/Amanda/Util.c
+++ b/perl/Amanda/Util.c
@@ -1450,9 +1450,6 @@ SWIG_Perl_SetModule(swig_module_info *module) {
#ifdef eof
#undef eof
#endif
-#ifdef bool
- #undef bool
-#endif
#ifdef close
#undef close
#endif
@@ -1493,7 +1490,12 @@ SWIG_Perl_SetModule(swig_module_info *module) {
#undef stat
#endif
-
+#ifdef bool
+ /* Leave if macro is from C99 stdbool.h */
+ #ifndef __bool_true_false_are_defined
+ #undef bool
+ #endif
+#endif
#define SWIG_exception_fail(code, msg) do { SWIG_Error(code, msg); SWIG_fail; } while(0)
diff --git a/perl/Amanda/Xfer.c b/perl/Amanda/Xfer.c
index 4d3c0fc..ba1288c 100644
--- a/perl/Amanda/Xfer.c
+++ b/perl/Amanda/Xfer.c
@@ -1450,9 +1450,6 @@ SWIG_Perl_SetModule(swig_module_info *module) {
#ifdef eof
#undef eof
#endif
-#ifdef bool
- #undef bool
-#endif
#ifdef close
#undef close
#endif
@@ -1493,7 +1490,12 @@ SWIG_Perl_SetModule(swig_module_info *module) {
#undef stat
#endif
-
+#ifdef bool
+ /* Leave if macro is from C99 stdbool.h */
+ #ifndef __bool_true_false_are_defined
+ #undef bool
+ #endif
+#endif
#define SWIG_exception_fail(code, msg) do { SWIG_Error(code, msg); SWIG_fail; } while(0)
diff --git a/perl/Amanda/XferServer.c b/perl/Amanda/XferServer.c
index 3ab6e64..5e5b087 100644
--- a/perl/Amanda/XferServer.c
+++ b/perl/Amanda/XferServer.c
@@ -1450,9 +1450,6 @@ SWIG_Perl_SetModule(swig_module_info *module) {
#ifdef eof
#undef eof
#endif
-#ifdef bool
- #undef bool
-#endif
#ifdef close
#undef close
#endif
@@ -1493,7 +1490,12 @@ SWIG_Perl_SetModule(swig_module_info *module) {
#undef stat
#endif
-
+#ifdef bool
+ /* Leave if macro is from C99 stdbool.h */
+ #ifndef __bool_true_false_are_defined
+ #undef bool
+ #endif
+#endif
#define SWIG_exception_fail(code, msg) do { SWIG_Error(code, msg); SWIG_fail; } while(0)
--
2.0.0
Reply to: