This is an automated email from the git hooks/post-receive script.

intrigeri pushed a commit to branch experimental
in repository libnet-dbus-perl.

commit 8783165ceea75b394f9a4a1f7923f31a43724160
Author: Daniel P. Berrange <berra...@redhat.com>
Date:   Sat Nov 4 16:03:11 2006 -0500

    Fix reference counting for connections & pending calls.
    Change PD_DEBUG -> DEBUG_MSG.
    Use dbus_connection_close instead of disconnect if compiling against newer 
libs.
    Call dbus_connnection_unref in DESTROY method.
---
 DBus.xs                             | 166 +++++++++++++++++++++---------------
 Makefile.PL                         |  10 ++-
 lib/Net/DBus/Binding/PendingCall.pm |   8 +-
 3 files changed, 109 insertions(+), 75 deletions(-)

diff --git a/DBus.xs b/DBus.xs
index a921865..4194ae4 100644
--- a/DBus.xs
+++ b/DBus.xs
@@ -23,10 +23,11 @@
 
 #include <dbus/dbus.h>
 
-#if PD_DO_DEBUG
-#define PD_DEBUG(...) if (getenv("PD_DEBUG")) fprintf(stderr, __VA_ARGS__)
+#if NET_DBUS_DEBUG
+static int net_dbus_debug = 0;
+#define DEBUG_MSG(...) if (net_dbus_debug) fprintf(stderr, __VA_ARGS__)
 #else
-#define PD_DEBUG(...)
+#define DEBUG_MSG(...)
 #endif
 
 
@@ -39,7 +40,7 @@ dbus_int32_t pending_call_data_slot = -1;
 
 void
 _object_release(void *obj) {
-    PD_DEBUG("Releasing object count on %p\n", obj);
+    DEBUG_MSG("Releasing object count on %p\n", obj);
     SvREFCNT_dec((SV*)obj);
 }
 
@@ -51,7 +52,7 @@ _watch_generic(DBusWatch *watch, void *data, char *key, 
dbus_bool_t server) {
     SV *h_sv;
     dSP;
 
-    PD_DEBUG("Watch generic callback %p %p %s %d\n", watch, data, key, server);
+    DEBUG_MSG("Watch generic callback %p %p %s %d\n", watch, data, key, 
server);
 
     if (server) {
       selfref = (SV*)dbus_server_get_data((DBusServer*)data, server_data_slot);
@@ -60,7 +61,7 @@ _watch_generic(DBusWatch *watch, void *data, char *key, 
dbus_bool_t server) {
     }
     self = (HV*)SvRV(selfref);
 
-    PD_DEBUG("Got owner %p\n", self);
+    DEBUG_MSG("Got owner %p\n", self);
 
     call = hv_fetch(self, key, strlen(key), 0);
 
@@ -198,7 +199,7 @@ _connection_callback (DBusServer *server,
       return;
     }
 
-    PD_DEBUG("Created connection in callback %p\n", new_connection);
+    DEBUG_MSG("Created connection in callback %p\n", new_connection);
     /* The DESTROY method will de-ref it later */
     dbus_connection_ref(new_connection);
 
@@ -234,11 +235,11 @@ _message_filter(DBusConnection *con,
     selfref = (SV*)dbus_connection_get_data(con, connection_data_slot);
     self = (HV*)SvRV(selfref);
 
-    PD_DEBUG("Create message in filter %p\n", msg);
-    PD_DEBUG("  Type %d\n", dbus_message_get_type(msg));
-    PD_DEBUG("  Interface %s\n", dbus_message_get_interface(msg) ? 
dbus_message_get_interface(msg) : "");
-    PD_DEBUG("  Path %s\n", dbus_message_get_path(msg) ? 
dbus_message_get_path(msg) : "");
-    PD_DEBUG("  Member %s\n", dbus_message_get_member(msg) ? 
dbus_message_get_member(msg) : "");
+    DEBUG_MSG("Create message in filter %p\n", msg);
+    DEBUG_MSG("  Type %d\n", dbus_message_get_type(msg));
+    DEBUG_MSG("  Interface %s\n", dbus_message_get_interface(msg) ? 
dbus_message_get_interface(msg) : "");
+    DEBUG_MSG("  Path %s\n", dbus_message_get_path(msg) ? 
dbus_message_get_path(msg) : "");
+    DEBUG_MSG("  Member %s\n", dbus_message_get_member(msg) ? 
dbus_message_get_member(msg) : "");
     /* Will be de-refed in the DESTROY method */
     dbus_message_ref(msg);
     value = sv_newmortal();
@@ -261,7 +262,7 @@ _message_filter(DBusConnection *con,
       handled = 0;
     }
     PUTBACK;
-    PD_DEBUG("Handled %d %d\n", count, handled);
+    DEBUG_MSG("Handled %d %d\n", count, handled);
     FREETMPS;
     LEAVE;
 
@@ -275,6 +276,7 @@ _pending_call_callback(DBusPendingCall *call,
     HV *self;
     dSP;
 
+    DEBUG_MSG("In pending call callback %p\n", call);
     selfref = (SV*)dbus_pending_call_get_data(call, pending_call_data_slot);
     self = (HV*)SvRV(selfref);
 
@@ -317,11 +319,11 @@ _path_message_callback(DBusConnection *con,
     SV *value;
     dSP;
 
-    PD_DEBUG("Got message in callback %p\n", msg);
-    PD_DEBUG("  Type %d\n", dbus_message_get_type(msg));
-    PD_DEBUG("  Interface %s\n", dbus_message_get_interface(msg) ? 
dbus_message_get_interface(msg) : "");
-    PD_DEBUG("  Path %s\n", dbus_message_get_path(msg) ? 
dbus_message_get_path(msg) : "");
-    PD_DEBUG("  Member %s\n", dbus_message_get_member(msg) ? 
dbus_message_get_member(msg) : "");
+    DEBUG_MSG("Got message in callback %p\n", msg);
+    DEBUG_MSG("  Type %d\n", dbus_message_get_type(msg));
+    DEBUG_MSG("  Interface %s\n", dbus_message_get_interface(msg) ? 
dbus_message_get_interface(msg) : "");
+    DEBUG_MSG("  Path %s\n", dbus_message_get_path(msg) ? 
dbus_message_get_path(msg) : "");
+    DEBUG_MSG("  Member %s\n", dbus_message_get_member(msg) ? 
dbus_message_get_member(msg) : "");
     /* Will be de-refed in the DESTROY method */
     dbus_message_ref(msg);
     value = sv_newmortal();
@@ -402,6 +404,9 @@ BOOT:
     {
        HV *constants;
 
+       if (getenv("NET_DBUS_DEBUG"))
+         net_dbus_debug = 1;
+
        /* not the 'standard' way of doing perl constants, but a lot easier to 
maintain */
 
        constants = perl_get_hv("Net::DBus::Binding::Bus::_constants", TRUE);
@@ -459,6 +464,7 @@ _open(address)
     CODE:
        dbus_error_init(&error);
        con = dbus_connection_open(address, &error);
+        dbus_connection_ref(con);
        if (!con) {
          _croak_error (&error);
        }
@@ -479,6 +485,21 @@ _set_owner(con, owner)
 void
 dbus_connection_disconnect(con)
        DBusConnection *con;
+    CODE:
+       DEBUG_MSG("Closing connection %p\n", con);
+#if HAVE_CONN_DISCONNECT
+       dbus_connection_disconnect(con);
+#else
+       dbus_connection_close(con);
+#endif
+
+void
+dbus_connection_ref(con)
+       DBusConnection *con;
+
+void
+dbus_connection_unref(con)
+       DBusConnection *con;
 
 int
 dbus_connection_get_is_connected(con)
@@ -519,11 +540,11 @@ _send_with_reply_and_block(con, msg, timeout)
        if (!(reply = dbus_connection_send_with_reply_and_block(con, msg, 
timeout, &error))) {
          _croak_error(&error);
        }
-       PD_DEBUG("Create msg reply %p\n", reply);
-       PD_DEBUG("  Type %d\n", dbus_message_get_type(reply));
-       PD_DEBUG("  Interface %s\n", dbus_message_get_interface(reply) ? 
dbus_message_get_interface(reply) : "");
-       PD_DEBUG("  Path %s\n", dbus_message_get_path(reply) ? 
dbus_message_get_path(reply) : "");
-       PD_DEBUG("  Member %s\n", dbus_message_get_member(reply) ? 
dbus_message_get_member(reply) : "");
+       DEBUG_MSG("Create msg reply %p\n", reply);
+       DEBUG_MSG("  Type %d\n", dbus_message_get_type(reply));
+       DEBUG_MSG("  Interface %s\n", dbus_message_get_interface(reply) ? 
dbus_message_get_interface(reply) : "");
+       DEBUG_MSG("  Path %s\n", dbus_message_get_path(reply) ? 
dbus_message_get_path(reply) : "");
+       DEBUG_MSG("  Member %s\n", dbus_message_get_member(reply) ? 
dbus_message_get_member(reply) : "");
        RETVAL = reply;
     OUTPUT:
        RETVAL
@@ -540,7 +561,7 @@ _send_with_reply(con, msg, timeout)
        if (!dbus_connection_send_with_reply(con, msg, &reply, timeout)) {
          croak("not enough memory to send message");
        }
-       PD_DEBUG("Create pending call %p\n", reply);
+       DEBUG_MSG("Create pending call %p\n", reply);
        RETVAL = reply;
     OUTPUT:
        RETVAL
@@ -567,9 +588,9 @@ void
 _dispatch(con)
        DBusConnection *con;
     CODE:
-       PD_DEBUG("IN dispatch\n");
+       DEBUG_MSG("IN dispatch\n");
        while(dbus_connection_dispatch(con) == DBUS_DISPATCH_DATA_REMAINS);
-       PD_DEBUG("Completed \n");
+       DEBUG_MSG("Completed \n");
 
 void
 _set_watch_callbacks(con)
@@ -635,7 +656,7 @@ _add_filter(con, code)
        SV *code;
     CODE:
        SvREFCNT_inc(code);
-       PD_DEBUG("Adding filter %p\n", code);
+       DEBUG_MSG("Adding filter %p\n", code);
        dbus_connection_add_filter(con, _message_filter, code, _filter_release);
 
 dbus_bool_t
@@ -659,7 +680,7 @@ dbus_bus_add_match(con, rule)
        DBusError error;
     CODE:
        dbus_error_init(&error);
-       PD_DEBUG("Adding match %s\n", rule);
+       DEBUG_MSG("Adding match %s\n", rule);
        dbus_bus_add_match(con, rule, &error);
        if (dbus_error_is_set(&error)) {
          _croak_error(&error);
@@ -673,7 +694,7 @@ dbus_bus_remove_match(con, rule)
        DBusError error;
     CODE:
        dbus_error_init(&error);
-       PD_DEBUG("Removeing match %s\n", rule);
+       DEBUG_MSG("Removeing match %s\n", rule);
        dbus_bus_remove_match(con, rule, &error);
        if (dbus_error_is_set(&error)) {
          _croak_error(&error);
@@ -702,9 +723,9 @@ dbus_bus_request_name(con, service_name)
 void
 DESTROY(con)
        DBusConnection *con;
-   CODE:
-       PD_DEBUG("Destroying connection %p\n", con);
-       dbus_connection_disconnect(con);
+    CODE:
+       DEBUG_MSG("Unrefing connection %p\n", con);
+       dbus_connection_unref(con);
 
 
 MODULE = Net::DBus::Binding::Server            PACKAGE = 
Net::DBus::Binding::Server
@@ -720,7 +741,7 @@ _open(address)
     CODE:
        dbus_error_init(&error);
        server = dbus_server_listen(address, &error);
-       PD_DEBUG("Created server %p on address %s", server, address);
+       DEBUG_MSG("Created server %p on address %s\n", server, address);
        if (!server) {
          _croak_error(&error);
        }
@@ -788,7 +809,7 @@ void
 DESTROY(server)
        DBusServer *server;
    CODE:
-       PD_DEBUG("Destroying server %p\n", server);
+       DEBUG_MSG("Destroying server %p\n", server);
        dbus_server_unref(server);
 
 
@@ -805,6 +826,7 @@ _open(type)
     CODE:
        dbus_error_init(&error);
        con = dbus_bus_get(type, &error);
+        dbus_connection_ref(con);
        if (!con) {
          _croak_error(&error);
        }
@@ -826,8 +848,8 @@ _create(type)
        if (!msg) {
          croak("No memory to allocate message");
        }
-       PD_DEBUG("Create msg new %p\n", msg);
-       PD_DEBUG("  Type %d\n", dbus_message_get_type(msg));
+       DEBUG_MSG("Create msg new %p\n", msg);
+       DEBUG_MSG("  Type %d\n", dbus_message_get_type(msg));
        RETVAL = msg;
     OUTPUT:
        RETVAL
@@ -859,11 +881,11 @@ void
 DESTROY(msg)
        DBusMessage *msg;
     CODE:
-       PD_DEBUG("De-referencing message %p\n", msg);
-       PD_DEBUG("  Type %d\n", dbus_message_get_type(msg));
-       PD_DEBUG("  Interface %s\n", dbus_message_get_interface(msg) ? 
dbus_message_get_interface(msg) : "");
-       PD_DEBUG("  Path %s\n", dbus_message_get_path(msg) ? 
dbus_message_get_path(msg) : "");
-       PD_DEBUG("  Member %s\n", dbus_message_get_member(msg) ? 
dbus_message_get_member(msg) : "");
+       DEBUG_MSG("De-referencing message %p\n", msg);
+       DEBUG_MSG("  Type %d\n", dbus_message_get_type(msg));
+       DEBUG_MSG("  Interface %s\n", dbus_message_get_interface(msg) ? 
dbus_message_get_interface(msg) : "");
+       DEBUG_MSG("  Path %s\n", dbus_message_get_path(msg) ? 
dbus_message_get_path(msg) : "");
+       DEBUG_MSG("  Member %s\n", dbus_message_get_member(msg) ? 
dbus_message_get_member(msg) : "");
        dbus_message_unref(msg);
 
 dbus_bool_t
@@ -937,11 +959,11 @@ _create(path, interface, name)
        if (!msg) {
          croak("No memory to allocate message");
        }
-       PD_DEBUG("Create msg new signal %p\n", msg);
-       PD_DEBUG("  Type %d\n", dbus_message_get_type(msg));
-       PD_DEBUG("  Interface %s\n", dbus_message_get_interface(msg) ? 
dbus_message_get_interface(msg) : "");
-       PD_DEBUG("  Path %s\n", dbus_message_get_path(msg) ? 
dbus_message_get_path(msg) : "");
-       PD_DEBUG("  Member %s\n", dbus_message_get_member(msg) ? 
dbus_message_get_member(msg) : "");
+       DEBUG_MSG("Create msg new signal %p\n", msg);
+       DEBUG_MSG("  Type %d\n", dbus_message_get_type(msg));
+       DEBUG_MSG("  Interface %s\n", dbus_message_get_interface(msg) ? 
dbus_message_get_interface(msg) : "");
+       DEBUG_MSG("  Path %s\n", dbus_message_get_path(msg) ? 
dbus_message_get_path(msg) : "");
+       DEBUG_MSG("  Member %s\n", dbus_message_get_member(msg) ? 
dbus_message_get_member(msg) : "");
        RETVAL = msg;
     OUTPUT:
        RETVAL
@@ -963,11 +985,11 @@ _create(service, path, interface, method)
        if (!msg) {
          croak("No memory to allocate message");
        }
-       PD_DEBUG("Create msg new method call %p\n", msg);
-       PD_DEBUG("  Type %d\n", dbus_message_get_type(msg));
-       PD_DEBUG("  Interface %s\n", dbus_message_get_interface(msg) ? 
dbus_message_get_interface(msg) : "");
-       PD_DEBUG("  Path %s\n", dbus_message_get_path(msg) ? 
dbus_message_get_path(msg) : "");
-       PD_DEBUG("  Member %s\n", dbus_message_get_member(msg) ? 
dbus_message_get_member(msg) : "");
+       DEBUG_MSG("Create msg new method call %p\n", msg);
+       DEBUG_MSG("  Type %d\n", dbus_message_get_type(msg));
+       DEBUG_MSG("  Interface %s\n", dbus_message_get_interface(msg) ? 
dbus_message_get_interface(msg) : "");
+       DEBUG_MSG("  Path %s\n", dbus_message_get_path(msg) ? 
dbus_message_get_path(msg) : "");
+       DEBUG_MSG("  Member %s\n", dbus_message_get_member(msg) ? 
dbus_message_get_member(msg) : "");
        RETVAL = msg;
     OUTPUT:
        RETVAL
@@ -989,11 +1011,11 @@ _create(call)
        dbus_message_set_interface(msg, dbus_message_get_interface(call));
        dbus_message_set_path(msg, dbus_message_get_path(call));
        dbus_message_set_member(msg, dbus_message_get_member(call));
-       PD_DEBUG("Create msg new method return %p\n", msg);
-       PD_DEBUG("  Type %d\n", dbus_message_get_type(msg));
-       PD_DEBUG("  Interface %s\n", dbus_message_get_interface(msg) ? 
dbus_message_get_interface(msg) : "");
-       PD_DEBUG("  Path %s\n", dbus_message_get_path(msg) ? 
dbus_message_get_path(msg) : "");
-       PD_DEBUG("  Member %s\n", dbus_message_get_member(msg) ? 
dbus_message_get_member(msg) : "");
+       DEBUG_MSG("Create msg new method return %p\n", msg);
+       DEBUG_MSG("  Type %d\n", dbus_message_get_type(msg));
+       DEBUG_MSG("  Interface %s\n", dbus_message_get_interface(msg) ? 
dbus_message_get_interface(msg) : "");
+       DEBUG_MSG("  Path %s\n", dbus_message_get_path(msg) ? 
dbus_message_get_path(msg) : "");
+       DEBUG_MSG("  Member %s\n", dbus_message_get_member(msg) ? 
dbus_message_get_member(msg) : "");
        RETVAL = msg;
     OUTPUT:
        RETVAL
@@ -1014,11 +1036,11 @@ _create(replyto, name, message)
        if (!msg) {
          croak("No memory to allocate message");
        }
-       PD_DEBUG("Create msg new error %p\n", msg);
-       PD_DEBUG("  Type %d\n", dbus_message_get_type(msg));
-       PD_DEBUG("  Interface %s\n", dbus_message_get_interface(msg) ? 
dbus_message_get_interface(msg) : "");
-       PD_DEBUG("  Path %s\n", dbus_message_get_path(msg) ? 
dbus_message_get_path(msg) : "");
-       PD_DEBUG("  Member %s\n", dbus_message_get_member(msg) ? 
dbus_message_get_member(msg) : "");
+       DEBUG_MSG("Create msg new error %p\n", msg);
+       DEBUG_MSG("  Type %d\n", dbus_message_get_type(msg));
+       DEBUG_MSG("  Interface %s\n", dbus_message_get_interface(msg) ? 
dbus_message_get_interface(msg) : "");
+       DEBUG_MSG("  Path %s\n", dbus_message_get_path(msg) ? 
dbus_message_get_path(msg) : "");
+       DEBUG_MSG("  Member %s\n", dbus_message_get_member(msg) ? 
dbus_message_get_member(msg) : "");
        RETVAL = msg;
     OUTPUT:
        RETVAL
@@ -1028,8 +1050,18 @@ MODULE = Net::DBus::Binding::C::PendingCall              
PACKAGE = Net::DBus::Binding::C::Pe
 PROTOTYPES: ENABLE
 
 DBusMessage *
-dbus_pending_call_steal_reply(call)
+_steal_reply(call)
        DBusPendingCall *call;
+ PREINIT:
+        DBusMessage *msg;
+    CODE:
+        DEBUG_MSG("Stealing pending call reply %p\n", call);
+       msg = dbus_pending_call_steal_reply(call);
+        dbus_message_ref(msg);
+        DEBUG_MSG("Got reply message %p\n", msg);
+        RETVAL = msg;
+  OUTPUT:
+        RETVAL
 
 void
 dbus_pending_call_block(call)
@@ -1049,14 +1081,14 @@ _set_notify(call, code)
        SV *code;
     CODE:
        SvREFCNT_inc(code);
-       PD_DEBUG("Adding pending call notify %p\n", code);
+       DEBUG_MSG("Adding pending call notify %p\n", code);
        dbus_pending_call_set_notify(call, _pending_call_callback, code, 
_pending_call_notify_release);
 
 void
 DESTROY (call)
        DBusPendingCall *call;
     CODE:
-       PD_DEBUG("Unrefing pending call %p", call);
+       DEBUG_MSG("Unrefing pending call %p", call);
        dbus_pending_call_unref(call);
 
 MODULE = Net::DBus::Binding::C::Watch                  PACKAGE = 
Net::DBus::Binding::C::Watch
@@ -1090,7 +1122,7 @@ handle(watch, flags)
        DBusWatch *watch;
        unsigned int flags;
     CODE:
-       PD_DEBUG("Handling event %d on fd %d (%p)\n", flags, 
dbus_watch_get_fd(watch), watch);
+       DEBUG_MSG("Handling event %d on fd %d (%p)\n", flags, 
dbus_watch_get_fd(watch), watch);
        dbus_watch_handle(watch, flags);
 
 
@@ -1132,7 +1164,7 @@ void
 handle(timeout)
        DBusTimeout *timeout;
     CODE:
-       PD_DEBUG("Handling timeout event %p\n", timeout);
+       DEBUG_MSG("Handling timeout event %p\n", timeout);
        dbus_timeout_handle(timeout);
 
 void *
@@ -1422,7 +1454,7 @@ void
 DESTROY(iter)
        DBusMessageIter *iter;
     CODE:
-       PD_DEBUG("Destroying iterator %p\n", iter);
+       DEBUG_MSG("Destroying iterator %p\n", iter);
        dbus_free(iter);
 
 MODULE = Net::DBus             PACKAGE = Net::DBus
diff --git a/Makefile.PL b/Makefile.PL
index ad980a1..c67083c 100644
--- a/Makefile.PL
+++ b/Makefile.PL
@@ -3,6 +3,9 @@ use ExtUtils::MakeMaker;
 # See lib/ExtUtils/MakeMaker.pm for details of how to influence
 # the contents of the Makefile that is written.
 
+`pkg-config --atleast-version=0.93 dbus-1`;
+my $has_0_93 = (($? >> 8) == 0 ? 1 : 0);
+
 my $DBUS_LIBS = `pkg-config --libs dbus-1`;
 my $DBUS_CFLAGS = `pkg-config --cflags dbus-1`;
 
@@ -21,10 +24,11 @@ WriteMakefile(
                  'Time::HiRes' => 0,
                  'XML::Twig' => 0,
                  },
-#    'ABSTRACT_FROM' => 'lib/Net/DBus.pm',
              'AUTHOR' => 'Daniel Berrange <d...@berrange.com>',
-             'LIBS' => [$DBUS_LIBS], 
-             'DEFINE' => "-DDBUS_API_SUBJECT_TO_CHANGE -DPD_DO_DEBUG=1",
+             'LIBS' => [$DBUS_LIBS],
+             'DEFINE' => ($has_0_93 ?
+                          "-DDBUS_API_SUBJECT_TO_CHANGE 
-DHAVE_CONN_DISCONNECT=0 -DNET_DBUS_DEBUG=1" :
+                          "-DDBUS_API_SUBJECT_TO_CHANGE 
-DHAVE_CONN_DISCONNECT=1 -DNET_DBUS_DEBUG=1"),
              'INC' => "-Wall $DBUS_CFLAGS",
              'depend' => {
                  Net-DBus.spec => '$(VERSION_FROM)',
diff --git a/lib/Net/DBus/Binding/PendingCall.pm 
b/lib/Net/DBus/Binding/PendingCall.pm
index e061359..131d366 100644
--- a/lib/Net/DBus/Binding/PendingCall.pm
+++ b/lib/Net/DBus/Binding/PendingCall.pm
@@ -130,14 +130,12 @@ with the complete call.
 sub get_reply {
     my $self = shift;
 
-    my $reply = $self->{pending_call}->dbus_pending_call_steal_reply();
+    my $reply = $self->{pending_call}->_steal_reply();
     my $type = $reply->dbus_message_get_type;
     if ($type == &Net::DBus::Binding::Message::MESSAGE_TYPE_ERROR) {
-       return $self->{connection}->make_error_message($self->{method_call},
-                                                      $reply);
+       return $self->{connection}->make_raw_message($reply);
     } elsif ($type == 
&Net::DBus::Binding::Message::MESSAGE_TYPE_METHOD_RETURN) {
-       return 
$self->{connection}->make_method_return_message($self->{method_call},
-                                                              $reply);
+       return $self->{connection}->make_raw_message($reply);
     } else {
        die "unknown method reply type $type";
     }

-- 
Alioth's /usr/local/bin/git-commit-notice on 
/srv/git.debian.org/git/pkg-perl/packages/libnet-dbus-perl.git

_______________________________________________
Pkg-perl-cvs-commits mailing list
Pkg-perl-cvs-commits@lists.alioth.debian.org
http://lists.alioth.debian.org/cgi-bin/mailman/listinfo/pkg-perl-cvs-commits

Reply via email to