Jens,
Try the attached patch.
Jean-Louis
On 01/26/2015 10:00 AM, Jens Berg wrote:
Hi list,
I compiled amanda 3.3.7 from source which completed successfully.
However, each time I run a command which utilizes libUtil.so, e.g.
amlabel or amcheck I get the following error message:
/usr/bin/perl: symbol lookup error:
/usr/local/share/perl/5.14.2/auto/Amanda/Util/libUtil.so: undefined
symbol: struct_file_lock_lock
/usr/bin/perl -v tells me it's a 5.14.2
Looks like some SWIG weirdness to me but I'm not experienced enough to
figure out what the real problem is. Do I miss a library or the path to it?
I already did "make clean; make; sudo make install" but without success.
The system I run amanda on is the same machine I used for compiling.
It's a Debian 7.8.0 32-bit (3.2.0-4-686-pae #1 SMP Debian
3.2.65-1+deb7u1 i686 GNU/Linux) with Perl 5.14.2 and gcc (Debian
4.7.2-5) 4.7.2
Any ideas what could be wrong?
Jens
diff --git a/perl/Amanda/Cmdline.swg b/perl/Amanda/Cmdline.swg
index 35d931d..fcbe377 100644
--- a/perl/Amanda/Cmdline.swg
+++ b/perl/Amanda/Cmdline.swg
@@ -35,7 +35,7 @@
%}
/* Add a few methods to make this type act like a class */
-typedef struct dumpspec_t {
+typedef struct {
%immutable;
char *host;
char *disk;
diff --git a/perl/Amanda/Device.swg b/perl/Amanda/Device.swg
index eb581a9..bdcfc12 100644
--- a/perl/Amanda/Device.swg
+++ b/perl/Amanda/Device.swg
@@ -243,7 +243,7 @@ set_gvalue_from_sv(SV *sv, GValue *value)
* DirectTCPConnection object
*/
-typedef struct DirectTCPConnection {
+typedef struct {
%extend {
~DirectTCPConnection() {
g_object_unref(self);
@@ -262,7 +262,7 @@ typedef struct DirectTCPConnection {
%name(unaliased_name) extern char *device_unaliased_name(char *);
-typedef struct Device {
+typedef struct {
/* methods */
%extend {
diff --git a/perl/Amanda/MainLoop.swg b/perl/Amanda/MainLoop.swg
index f040de6..85aae9d 100644
--- a/perl/Amanda/MainLoop.swg
+++ b/perl/Amanda/MainLoop.swg
@@ -356,7 +356,7 @@ void quit(void) {
%{ static void amglue_source_remove(amglue_Source *self); %}
%rename(Source) amglue_Source;
-typedef struct amglue_Source {
+typedef struct {
%extend {
/* Constructor: use one of the package-level functions, below */
amglue_Source() {
diff --git a/perl/Amanda/NDMP.swg b/perl/Amanda/NDMP.swg
index d43ebb0..0c6b1f2 100644
--- a/perl/Amanda/NDMP.swg
+++ b/perl/Amanda/NDMP.swg
@@ -93,7 +93,7 @@ typedef guint ndmp_enum;
SP -= argvi; argvi++;
}
-typedef struct NDMPConnection {
+typedef struct {
/* methods */
%extend {
/* constructor */
diff --git a/perl/Amanda/Util.swg b/perl/Amanda/Util.swg
index 6cf255e..4b93d5d 100644
--- a/perl/Amanda/Util.swg
+++ b/perl/Amanda/Util.swg
@@ -462,7 +462,7 @@ set_blocking(int fd, gboolean blocking)
/* SWIG prepends the struct name to the member function name, which
* conflicts with the underlying function names */
-typedef struct file_lock {
+typedef struct {
%extend {
%newobject file_lock;
file_lock(const char *filename) {