summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRobin H. Johnson <robbat2@gentoo.org>2015-08-08 13:49:04 -0700
committerRobin H. Johnson <robbat2@gentoo.org>2015-08-08 17:38:18 -0700
commit56bd759df1d0c750a065b8c845e93d5dfa6b549d (patch)
tree3f91093cdb475e565ae857f1c5a7fd339e2d781e /app-pda/pilot-link
downloadgentoo-56bd759df1d0c750a065b8c845e93d5dfa6b549d.tar.gz
gentoo-56bd759df1d0c750a065b8c845e93d5dfa6b549d.tar.bz2
gentoo-56bd759df1d0c750a065b8c845e93d5dfa6b549d.zip
proj/gentoo: Initial commit
This commit represents a new era for Gentoo: Storing the gentoo-x86 tree in Git, as converted from CVS. This commit is the start of the NEW history. Any historical data is intended to be grafted onto this point. Creation process: 1. Take final CVS checkout snapshot 2. Remove ALL ChangeLog* files 3. Transform all Manifests to thin 4. Remove empty Manifests 5. Convert all stale $Header$/$Id$ CVS keywords to non-expanded Git $Id$ 5.1. Do not touch files with -kb/-ko keyword flags. Signed-off-by: Robin H. Johnson <robbat2@gentoo.org> X-Thanks: Alec Warner <antarus@gentoo.org> - did the GSoC 2006 migration tests X-Thanks: Robin H. Johnson <robbat2@gentoo.org> - infra guy, herding this project X-Thanks: Nguyen Thai Ngoc Duy <pclouds@gentoo.org> - Former Gentoo developer, wrote Git features for the migration X-Thanks: Brian Harring <ferringb@gentoo.org> - wrote much python to improve cvs2svn X-Thanks: Rich Freeman <rich0@gentoo.org> - validation scripts X-Thanks: Patrick Lauer <patrick@gentoo.org> - Gentoo dev, running new 2014 work in migration X-Thanks: Michał Górny <mgorny@gentoo.org> - scripts, QA, nagging X-Thanks: All of other Gentoo developers - many ideas and lots of paint on the bikeshed
Diffstat (limited to 'app-pda/pilot-link')
-rw-r--r--app-pda/pilot-link/Manifest1
-rw-r--r--app-pda/pilot-link/files/pilot-link-0.12.2-threads.patch17
-rw-r--r--app-pda/pilot-link/files/pilot-link-0.12.2-werror_194921.patch19
-rw-r--r--app-pda/pilot-link/files/pilot-link-0.12.3-distutils.patch19
-rw-r--r--app-pda/pilot-link/files/pilot-link-0.12.3-java-install.patch25
-rw-r--r--app-pda/pilot-link/files/pilot-link-0.12.3-libpng14.patch98
-rw-r--r--app-pda/pilot-link/files/pilot-link-0.12.3-libusb-compat-usb_open.patch21
-rw-r--r--app-pda/pilot-link/files/pilot-link-0.12.3-png.patch78
-rw-r--r--app-pda/pilot-link/files/pilot-link-0.12.3-respect-javacflags.patch13
-rw-r--r--app-pda/pilot-link/files/pilot-link-0.12.5-perl514.patch625
-rw-r--r--app-pda/pilot-link/metadata.xml5
-rw-r--r--app-pda/pilot-link/pilot-link-0.12.5-r1.ebuild109
12 files changed, 1030 insertions, 0 deletions
diff --git a/app-pda/pilot-link/Manifest b/app-pda/pilot-link/Manifest
new file mode 100644
index 000000000000..52e983d2d4cc
--- /dev/null
+++ b/app-pda/pilot-link/Manifest
@@ -0,0 +1 @@
+DIST pilot-link-0.12.5.tar.bz2 1578735 SHA256 d3f99ec04016b38995fb370265200254710318105c792c017d3aaccfb97a84b2 SHA512 a12972fb7a43f2dfccb82a046ca372c9fce5333f632a77880439c4f4705af6a7f16b76f04c9f3ed0d6a12aad55a3a55f8781a4e92931bc6907cd1ec4f1209868 WHIRLPOOL 1db6c658c8a478ba01e2a6ab829ee348757af0b5927c1d2bec729405d2d58ea7b98ba7cf008dd72e1f6afbe9abcccc5fa7aaee7958fdf9f8d9f4e9a4224f340f
diff --git a/app-pda/pilot-link/files/pilot-link-0.12.2-threads.patch b/app-pda/pilot-link/files/pilot-link-0.12.2-threads.patch
new file mode 100644
index 000000000000..edfedb2ae6a2
--- /dev/null
+++ b/app-pda/pilot-link/files/pilot-link-0.12.2-threads.patch
@@ -0,0 +1,17 @@
+diff -Naur pilot-link-0.12.2.orig/m4/threads.m4 pilot-link-0.12.2/m4/threads.m4
+--- pilot-link-0.12.2.orig/m4/threads.m4 2005-03-02 23:36:49.000000000 +0100
++++ pilot-link-0.12.2/m4/threads.m4 2007-08-25 20:36:36.000000000 +0200
+@@ -5,9 +5,10 @@
+ #
+
+ AC_DEFUN([PILOT_LINK_THREADS_SUPPORT], [
+- use_threads=false
+- AC_ARG_ENABLE(threads,[ --enable-threads Add this to have built-in thread safety],use_threads=true)
+- if $use_threads; then
++ use_threads=true
++ AC_ARG_ENABLE([threads], AS_HELP_STRING([--disable-threads], [Build without built-in thread safety (default: test)]))
++
++ if test "x$enable_threads" != "xno"; then
+ ACX_PTHREAD
+ if test x"$acx_pthread_ok" = xno; then
+ use_threads=false
diff --git a/app-pda/pilot-link/files/pilot-link-0.12.2-werror_194921.patch b/app-pda/pilot-link/files/pilot-link-0.12.2-werror_194921.patch
new file mode 100644
index 000000000000..9396ba9f3f4d
--- /dev/null
+++ b/app-pda/pilot-link/files/pilot-link-0.12.2-werror_194921.patch
@@ -0,0 +1,19 @@
+http://bugs.gentoo.org/194921
+
+--- configure.ac
++++ configure.ac
+@@ -757,11 +757,9 @@
+ dnl *************************************
+ dnl (already done) enable_werror=no
+
+-AC_ARG_ENABLE(compile-werror,
+- [ --enable-compile-werror
+- Causes warnings to be treated as errors in GCC],
+- enable_werror=yes)
+-if test "x$GCC" = "xyes" -a "x$enable_werror" = "xyes"; then
++AC_ARG_ENABLE([compile-werror], AS_HELP_STRING([--enable-compile-werror], [Causes warnings to be treated as errors in GCC (default: disabled)]))
++
++if test "x$GCC" = "xyes" -a "x$enable_compile_werror" = "xyes"; then
+ CFLAGS="$CFLAGS -Werror"
+ fi
+
diff --git a/app-pda/pilot-link/files/pilot-link-0.12.3-distutils.patch b/app-pda/pilot-link/files/pilot-link-0.12.3-distutils.patch
new file mode 100644
index 000000000000..db229f855278
--- /dev/null
+++ b/app-pda/pilot-link/files/pilot-link-0.12.3-distutils.patch
@@ -0,0 +1,19 @@
+--- bindings/Makefile.am.old 2008-02-24 22:47:19.000000000 +0100
++++ bindings/Makefile.am 2008-02-24 22:47:40.000000000 +0100
+@@ -25,16 +25,10 @@
+ -cd $(srcdir)/Python && $(PYTHON) setup.py clean
+ -cd $(srcdir)/Python && rm -rf build
+
+-if WITH_PYTHON
+-PYTHON_ALL = python-build
+-PYTHON_INSTALL = python-install
+-PYTHON_CLEAN = python-clean
+-else
+ PYTHON_ALL =
+ PYTHON_INSTALL =
+ PYTHON_MCLEAN =
+ PYTHON_CLEAN =
+-endif
+
+ #
+ # Perl Building
diff --git a/app-pda/pilot-link/files/pilot-link-0.12.3-java-install.patch b/app-pda/pilot-link/files/pilot-link-0.12.3-java-install.patch
new file mode 100644
index 000000000000..8cdd613aa441
--- /dev/null
+++ b/app-pda/pilot-link/files/pilot-link-0.12.3-java-install.patch
@@ -0,0 +1,25 @@
+Use java eclass for install instead.
+
+--- bindings/Java/Makefile.am
++++ bindings/Java/Makefile.am
+@@ -81,20 +81,6 @@
+ java_pisock: java_compile java_lib java_jar
+
+ install: all
+- ARCH=""; \
+- for a in i386 amd64 ppc; do \
+- if [ -e ${JAVABASE}/jre/lib/$${a} ]; then \
+- ARCH="$${a}"; \
+- break; \
+- fi; \
+- done; \
+- if [ -n "$${ARCH}" ]; then \
+- echo "Unknown architecture. Copy lipijsock.so to ${JAVABASE}/jre/lib/ARCH/"; \
+- else \
+- mkdir -p "$(DESTDIR)${JAVABASE}/jre/lib/$${ARCH}" && \
+- cp libjpisock.so "$(DESTDIR)${JAVABASE}/jre/lib/$${ARCH}"; \
+- echo "done."; \
+- fi
+
+ test: install
+ ${JAVABASE}/bin/java test ${PORT}
diff --git a/app-pda/pilot-link/files/pilot-link-0.12.3-libpng14.patch b/app-pda/pilot-link/files/pilot-link-0.12.3-libpng14.patch
new file mode 100644
index 000000000000..14b8c16ac3b1
--- /dev/null
+++ b/app-pda/pilot-link/files/pilot-link-0.12.3-libpng14.patch
@@ -0,0 +1,98 @@
+http://repos.archlinux.org/wsvn/packages/pilot-link/trunk/pilot-link-png14.patch
+
+--- src/pilot-read-notepad.c
++++ src/pilot-read-notepad.c
+@@ -39,10 +39,6 @@
+
+ #ifdef HAVE_PNG
+ #include "png.h"
+-#if (PNG_LIBPNG_VER < 10201)
+- #define png_voidp_NULL (png_voidp)NULL
+- #define png_error_ptr_NULL (png_error_ptr)NULL
+-#endif
+ #endif
+
+ const char *progname;
+@@ -166,8 +162,8 @@
+ width = n->body.width + 8;
+
+ png_ptr = png_create_write_struct
+- ( PNG_LIBPNG_VER_STRING, png_voidp_NULL,
+- png_error_ptr_NULL, png_error_ptr_NULL);
++ ( PNG_LIBPNG_VER_STRING, NULL,
++ NULL, NULL);
+
+ if(!png_ptr)
+ return;
+--- src/pilot-read-palmpix.c
++++ src/pilot-read-palmpix.c
+@@ -42,10 +42,6 @@
+
+ #ifdef HAVE_PNG
+ #include "png.h"
+-#if (PNG_LIBPNG_VER < 10201)
+- #define png_voidp_NULL (png_voidp)NULL
+- #define png_error_ptr_NULL (png_error_ptr)NULL
+-#endif
+ #endif
+
+ const char *progname;
+@@ -223,8 +219,8 @@
+ png_infop info_ptr;
+
+ png_ptr = png_create_write_struct
+- ( PNG_LIBPNG_VER_STRING, png_voidp_NULL,
+- png_error_ptr_NULL, png_error_ptr_NULL);
++ ( PNG_LIBPNG_VER_STRING, NULL,
++ NULL, NULL);
+
+ if(!png_ptr)
+ return;
+--- src/pilot-read-screenshot.c
++++ src/pilot-read-screenshot.c
+@@ -40,10 +40,6 @@
+
+ #ifdef HAVE_PNG
+ # include "png.h"
+-# if (PNG_LIBPNG_VER < 10201)
+-# define png_voidp_NULL (png_voidp)NULL
+-# define png_error_ptr_NULL (png_error_ptr)NULL
+-# endif
+ #endif
+
+ #define pi_mktag(c1,c2,c3,c4) (((c1)<<24)|((c2)<<16)|((c3)<<8)|(c4))
+@@ -87,8 +83,8 @@
+ gray_buf = malloc( state->w );
+
+ png_ptr = png_create_write_struct
+- (PNG_LIBPNG_VER_STRING, png_voidp_NULL,
+- png_error_ptr_NULL, png_error_ptr_NULL);
++ (PNG_LIBPNG_VER_STRING, NULL,
++ NULL, NULL);
+
+ if (!png_ptr)
+ return;
+--- src/pilot-read-veo.c
++++ src/pilot-read-veo.c
+@@ -41,10 +41,6 @@
+
+ #ifdef HAVE_PNG
+ # include "png.h"
+-# if (PNG_LIBPNG_VER < 10201)
+-# define png_voidp_NULL (png_voidp)NULL
+-# define png_error_ptr_NULL (png_error_ptr)NULL
+-# endif
+ #endif
+
+ #define pi_mktag(c1,c2,c3,c4) (((c1)<<24)|((c2)<<16)|((c3)<<8)|(c4))
+@@ -856,8 +852,8 @@
+ png_infop info_ptr;
+
+ png_ptr = png_create_write_struct
+- (PNG_LIBPNG_VER_STRING, png_voidp_NULL,
+- png_error_ptr_NULL, png_error_ptr_NULL);
++ (PNG_LIBPNG_VER_STRING, NULL,
++ NULL, NULL);
+
+ if (!png_ptr)
+ return;
diff --git a/app-pda/pilot-link/files/pilot-link-0.12.3-libusb-compat-usb_open.patch b/app-pda/pilot-link/files/pilot-link-0.12.3-libusb-compat-usb_open.patch
new file mode 100644
index 000000000000..3f580c5af1e1
--- /dev/null
+++ b/app-pda/pilot-link/files/pilot-link-0.12.3-libusb-compat-usb_open.patch
@@ -0,0 +1,21 @@
+With libusb-compat, usb_open() calls must be checked for their return value, as
+NULL is now returned on failure.
+
+Signed-off-by: Robin H. Johnson <robbat2@gentoo.org>
+
+diff -Nuar pilot-link-0.12.3.orig/libpisock/libusb.c pilot-link-0.12.3/libpisock/libusb.c
+--- pilot-link-0.12.3.orig/libpisock/libusb.c 2007-02-09 08:06:22.000000000 -0800
++++ pilot-link-0.12.3/libpisock/libusb.c 2009-05-18 17:32:16.316895284 -0700
+@@ -141,6 +141,12 @@
+
+ LOG((PI_DBG_DEV, PI_DBG_LVL_DEBUG, "%s: USB_handle=%p\n",
+ __FILE__, USB_handle));
++
++ if(USB_handle == NULL) {
++ LOG((PI_DBG_DEV, PI_DBG_LVL_DEBUG, "%s: Unable to open device.\n",
++ __FILE__));
++ continue;
++ }
+
+ data->ref = USB_handle;
+
diff --git a/app-pda/pilot-link/files/pilot-link-0.12.3-png.patch b/app-pda/pilot-link/files/pilot-link-0.12.3-png.patch
new file mode 100644
index 000000000000..4de7b3a46b75
--- /dev/null
+++ b/app-pda/pilot-link/files/pilot-link-0.12.3-png.patch
@@ -0,0 +1,78 @@
+diff -Naur pilot-link-0.12.3.orig/configure.ac pilot-link-0.12.3/configure.ac
+--- pilot-link-0.12.3.orig/configure.ac 2007-11-09 20:36:37.000000000 +0100
++++ pilot-link-0.12.3/configure.ac 2007-12-19 21:38:27.000000000 +0100
+@@ -225,42 +225,44 @@
+ AC_ARG_WITH(libpng,
+ [ --with-libpng Prefix where libpng is installed])
+
+- case $with_libpng in
+- /*)
+- PNG_CFLAGS="-I$withval/include"
+- PNG_LIBS="-L$withval/lib"
+- ;;
+- esac
++ if test "x$with_libpng" != "xno"; then
+
+- save_CFLAGS="$CFLAGS"
+- save_CPPFLAGS="$CPPFLAGS"
+- save_LDFLAGS="$LDFLAGS"
+- CFLAGS="$CFLAGS $PNG_CFLAGS"
+- CPPFLAGS="$CPPFLAGS $PNG_CFLAGS"
+- LDFLAGS="$LDFLAGS $PNG_LIBS"
+-
+- AC_CHECK_LIB(png, main, [have_png=yes; PNG_LIBS="$PNG_LIBS -lpng"],[have_png=no],[-lm])
+- if test "$have_png" = yes; then
+- AC_CHECK_HEADER(png.h, , have_png=no)
++ case $with_libpng in
++ /*)
++ PNG_CFLAGS="-I$withval/include"
++ PNG_LIBS="-L$withval/lib"
++ ;;
++ esac
++
++ save_CFLAGS="$CFLAGS"
++ save_CPPFLAGS="$CPPFLAGS"
++ save_LDFLAGS="$LDFLAGS"
++ CFLAGS="$CFLAGS $PNG_CFLAGS"
++ CPPFLAGS="$CPPFLAGS $PNG_CFLAGS"
++ LDFLAGS="$LDFLAGS $PNG_LIBS"
++
++ AC_CHECK_LIB(png, main, [have_png=yes; PNG_LIBS="$PNG_LIBS -lpng"],[have_png=no],[-lm])
+ if test "$have_png" = yes; then
+- AC_MSG_CHECKING(for png setjmp support)
+- AC_EGREP_CPP(yes,
+- [#include <png.h>
+- #ifdef PNG_SETJMP_SUPPORTED
+- yes
+- #endif], , have_png=no)
+- AC_MSG_RESULT($have_png)
++ AC_CHECK_HEADER(png.h, , have_png=no)
+ if test "$have_png" = yes; then
+- AC_DEFINE(HAVE_PNG, 1, [Define if we have PNG support])
+- have_png=yes
+- msg_png=yes
++ AC_MSG_CHECKING(for png setjmp support)
++ AC_EGREP_CPP(yes,
++ [#include <png.h>
++ #ifdef PNG_SETJMP_SUPPORTED
++ yes
++ #endif], , have_png=no)
++ AC_MSG_RESULT($have_png)
++ if test "$have_png" = yes; then
++ AC_DEFINE(HAVE_PNG, 1, [Define if we have PNG support])
++ have_png=yes
++ msg_png=yes
++ fi
+ fi
+ fi
++ CFLAGS="$save_CFLAGS"
++ CPPFLAGS="$save_CPPFLAGS"
++ LDFLAGS="$save_LDFLAGS"
+ fi
+-
+- CFLAGS="$save_CFLAGS"
+- CPPFLAGS="$save_CPPFLAGS"
+- LDFLAGS="$save_LDFLAGS"
+ else
+ have_png="none"
+ PNG_CFLAGS=
diff --git a/app-pda/pilot-link/files/pilot-link-0.12.3-respect-javacflags.patch b/app-pda/pilot-link/files/pilot-link-0.12.3-respect-javacflags.patch
new file mode 100644
index 000000000000..0904377c2f0b
--- /dev/null
+++ b/app-pda/pilot-link/files/pilot-link-0.12.3-respect-javacflags.patch
@@ -0,0 +1,13 @@
+http://bugs.gentoo.org/267445
+
+--- bindings/Java/Makefile.am
++++ bindings/Java/Makefile.am
+@@ -70,7 +70,7 @@
+ $(java_classes): java_compile
+
+ java_compile: $(java_files)
+- $(JAVAC) -d . $(java_files)
++ $(JAVAC) $(JAVACFLAGS) -d . $(java_files)
+
+ java_lib: libjpisock.c
+ $(CXX) $(INCLUDES) -fPIC $(DEFS) -L $(top_builddir)/libpisock/.libs -lpisock -shared -o libjpisock.so $(srcdir)/libjpisock.c
diff --git a/app-pda/pilot-link/files/pilot-link-0.12.5-perl514.patch b/app-pda/pilot-link/files/pilot-link-0.12.5-perl514.patch
new file mode 100644
index 000000000000..72d68d4c4f99
--- /dev/null
+++ b/app-pda/pilot-link/files/pilot-link-0.12.5-perl514.patch
@@ -0,0 +1,625 @@
+From ef1794b51e327cc80ec4cd95d6c97f954b912860 Mon Sep 17 00:00:00 2001
+From: Niko Tyni <ntyni@debian.org>
+Date: Sun, 10 Jul 2011 10:28:51 +0300
+Subject: [PATCH] Don't use PERL_POLLUTE macros
+
+The sv_yes, sv_no, sv_undef, etc. symbol names are compatibility
+macros that have been deprecated since Perl 5.6.
+
+Perl 5.14.0 removes support for defining PERL_POLLUTE to get these
+compatibility macros, so replace them all with the current names
+(PL_sv_yes, PL_sv_no, etc.) and don't define PERL_POLLUTE any more.
+
+This should work on all Perls since 5.6; it's been verified with 5.12.4
+and 5.14.0.
+---
+ bindings/Perl/Makefile.PL.in | 1 -
+ bindings/Perl/Pilot.xs | 158 +++++++++++++++++++++---------------------
+ bindings/Perl/typemap | 4 +-
+ 3 files changed, 81 insertions(+), 82 deletions(-)
+
+diff --git a/bindings/Perl/Makefile.PL.in b/bindings/Perl/Makefile.PL.in
+index 853e6eb..337cac0 100644
+--- a/bindings/Perl/Makefile.PL.in
++++ b/bindings/Perl/Makefile.PL.in
+@@ -39,7 +39,6 @@ WriteMakefile(
+ 'VERSION' => '@PILOT_LINK_VERS@.@PILOT_LINK_MAJOR@.@PILOT_LINK_MINOR@@PILOT_LINK_PATCH@',
+ 'XSPROTOARG' => '-noprototypes',
+ 'INC' => "-I$plincdir",
+- 'DEFINE' => '-DPERL_POLLUTE',
+ 'PREFIX' => "$prefix",
+ 'INSTALLDIRS'=> 'vendor',
+ 'dynamic_lib'=> {'OTHERLDFLAGS' => $lib},
+diff --git a/bindings/Perl/Pilot.xs b/bindings/Perl/Pilot.xs
+index 5a633ff..366d646 100644
+--- a/bindings/Perl/Pilot.xs
++++ b/bindings/Perl/Pilot.xs
+@@ -160,7 +160,7 @@ SvChar4(arg)
+
+ #define pack_dbinfo(arg, var, failure) { \
+ if (failure < 0) { \
+- arg = &sv_undef; \
++ arg = &PL_sv_undef; \
+ self->errnop = failure; \
+ } else { \
+ HV * i = newHV(); \
+@@ -214,15 +214,15 @@ SvChar4(arg)
+ var.createDate = (s = hv_fetch(i, "createDate", 10, 0)) ? SvIV(*s) : 0;\
+ var.modifyDate = (s = hv_fetch(i, "modifyDate", 10, 0)) ? SvIV(*s) : 0;\
+ var.backupDate = (s = hv_fetch(i, "backupDate", 10, 0)) ? SvIV(*s) : 0;\
+- if ((s = hv_fetch(i, "name", 4, 0)) ? SvPV(*s,na) : 0) \
+- strncpy(var.name, SvPV(*s, na), sizeof(var.name)); \
++ if ((s = hv_fetch(i, "name", 4, 0)) ? SvPV(*s,PL_na) : 0) \
++ strncpy(var.name, SvPV(*s, PL_na), sizeof(var.name)); \
+ } else {\
+ croak("argument is not a hash reference"); \
+ }
+
+ #define pack_userinfo(arg, var, failure) { \
+ if (failure < 0) { \
+- arg = &sv_undef; \
++ arg = &PL_sv_undef; \
+ self->errnop = failure; \
+ } else { \
+ HV * i = newHV(); \
+@@ -246,8 +246,8 @@ SvChar4(arg)
+ var.lastSyncPC = (s = hv_fetch(i, "lastSyncPC", 10, 0)) ? SvIV(*s) : 0;\
+ var.lastSyncDate = (s = hv_fetch(i, "lastSyncDate", 12, 0)) ? SvIV(*s) : 0;\
+ var.successfulSyncDate = (s = hv_fetch(i, "successfulSyncDate", 18, 0)) ? SvIV(*s) : 0;\
+- if ((s = hv_fetch(i, "name", 4, 0)) ? SvPV(*s,na) : 0)\
+- strncpy(var.username, SvPV(*s, na), sizeof(var.username));\
++ if ((s = hv_fetch(i, "name", 4, 0)) ? SvPV(*s,PL_na) : 0)\
++ strncpy(var.username, SvPV(*s, PL_na), sizeof(var.username));\
+ } else {\
+ croak("argument is not a hash reference");\
+ }
+@@ -287,7 +287,7 @@ SvChar4(arg)
+ }\
+ } else {\
+ self->errnop = result;\
+- PUSHs(&sv_undef);\
++ PUSHs(&PL_sv_undef);\
+ }
+
+ #define PackSI\
+@@ -329,7 +329,7 @@ SvChar4(arg)
+ }\
+ } else {\
+ self->errnop = result;\
+- PUSHs(&sv_undef);\
++ PUSHs(&PL_sv_undef);\
+ }
+
+ #define PackRecord {\
+@@ -421,7 +421,7 @@ SvChar4(arg)
+ }\
+ } else {\
+ self->errnop = result;\
+- PUSHs(&sv_undef);\
++ PUSHs(&PL_sv_undef);\
+ }
+
+ #define PackResource\
+@@ -473,7 +473,7 @@ SvChar4(arg)
+ }\
+ } else {\
+ self->errnop = result;\
+- PUSHs(&sv_undef);\
++ PUSHs(&PL_sv_undef);\
+ }
+
+ #define PackPref\
+@@ -536,7 +536,7 @@ SvChar4(arg)
+ croak("Unable to create resource");\
+ } else {\
+ self->errnop = result;\
+- PUSHs(&sv_undef);\
++ PUSHs(&PL_sv_undef);\
+ }
+
+ void doUnpackCategory(HV * self, struct CategoryAppInfo * c)
+@@ -576,7 +576,7 @@ void doPackCategory(HV * self, struct CategoryAppInfo * c)
+
+ if ((s = hv_fetch(self, "categoryName", 12, 0)) && SvOK(*s) && SvRV(*s) && (SvTYPE(av=(AV*)SvRV(*s))==SVt_PVAV))
+ for (i=0;i<16;i++)
+- strncpy(c->name[i], (s=av_fetch(av, i, 0)) ? SvPV(*s,na) : "", 16);
++ strncpy(c->name[i], (s=av_fetch(av, i, 0)) ? SvPV(*s,PL_na) : "", 16);
+ else
+ for (i=0;i<16;i++)
+ strcpy(c->name[i], "");
+@@ -602,7 +602,7 @@ void doPackCategory(HV * self, struct CategoryAppInfo * c)
+ int SvList(SV * arg, char **list)
+ {
+ int i;
+- char * str = SvPV(arg, na);
++ char * str = SvPV(arg, PL_na);
+ for (i=0;list[i];i++)
+ if (strcasecmp(list[i], str)==0)
+ return i;
+@@ -781,11 +781,11 @@ Pack(record)
+ croak("Invalid advance unit %d encountered", u);
+ }
+ } else {
+- if (strEQ(SvPV(*s, na), "minutes"))
++ if (strEQ(SvPV(*s, PL_na), "minutes"))
+ u = 0;
+- else if (strEQ(SvPV(*s, na), "hours"))
++ else if (strEQ(SvPV(*s, PL_na), "hours"))
+ u = 1;
+- else if (strEQ(SvPV(*s, na), "days"))
++ else if (strEQ(SvPV(*s, PL_na), "days"))
+ u = 2;
+ else
+ croak("Invalid advance unit %d encountered", u);
+@@ -850,10 +850,10 @@ Pack(record)
+ }
+ }
+
+- a.description = (s = hv_fetch(h, "description", 11, 0)) ? SvPV(*s,na) : 0;
++ a.description = (s = hv_fetch(h, "description", 11, 0)) ? SvPV(*s,PL_na) : 0;
+ if (!a.description)
+ croak("appointments must contain a description");
+- a.note = (s = hv_fetch(h, "note", 4, 0)) ? SvPV(*s,na) : 0;
++ a.note = (s = hv_fetch(h, "note", 4, 0)) ? SvPV(*s,PL_na) : 0;
+
+ if (pack_Appointment(&a, &pibuf, datebook_v1) < 0) {
+ croak("pack_Appointment failed");
+@@ -897,7 +897,7 @@ UnpackAppBlock(record)
+ }
+
+ SvPV(record,len);
+- if (unpack_AppointmentAppInfo(&a, (CPTR)SvPV(record, na), len)>0) {
++ if (unpack_AppointmentAppInfo(&a, (CPTR)SvPV(record, PL_na), len)>0) {
+
+ doUnpackCategory(ret, &a.category);
+
+@@ -1023,8 +1023,8 @@ Pack(record)
+ a.indefinite = 1;
+ }
+
+- a.description = (s = hv_fetch(h, "description", 11, 0)) ? SvPV(*s,na) : 0;
+- a.note = (s = hv_fetch(h, "note", 4, 0)) ? SvPV(*s,na) : 0;
++ a.description = (s = hv_fetch(h, "description", 11, 0)) ? SvPV(*s,PL_na) : 0;
++ a.note = (s = hv_fetch(h, "note", 4, 0)) ? SvPV(*s,PL_na) : 0;
+
+ if (pack_ToDo(&a, &pibuf, todo_v1) < 0) {
+ croak("pack_ToDo failed");
+@@ -1065,7 +1065,7 @@ UnpackAppBlock(record)
+ }
+
+ SvPV(record,len);
+- if (unpack_ToDoAppInfo(&a, (CPTR)SvPV(record, na), len)>0) {
++ if (unpack_ToDoAppInfo(&a, (CPTR)SvPV(record, PL_na), len)>0) {
+
+ doUnpackCategory(ret, &a.category);
+
+@@ -1160,7 +1160,7 @@ Unpack(record)
+ hv_store(ret, "entry", 5, newRV_noinc((SV*)e), 0);
+
+ for (i=0;i<19;i++) {
+- av_push(e, a.entry[i] ? newSVpv(a.entry[i],0) : &sv_undef);
++ av_push(e, a.entry[i] ? newSVpv(a.entry[i],0) : &PL_sv_undef);
+ }
+
+ hv_store(ret, "showPhone", 9, newSViv(a.showPhone), 0);
+@@ -1200,7 +1200,7 @@ Pack(record)
+
+ if ((s = hv_fetch(h, "entry", 5, 0)) && SvOK(*s) && SvRV(*s) && (SvTYPE(av=(AV*)SvRV(*s))==SVt_PVAV))
+ for (i=0;i<19;i++)
+- a.entry[i] = ((s=av_fetch(av, i, 0)) && SvOK(*s)) ? SvPV(*s,na) : 0;
++ a.entry[i] = ((s=av_fetch(av, i, 0)) && SvOK(*s)) ? SvPV(*s,PL_na) : 0;
+ else
+ for (i=0;i<19;i++)
+ a.entry[i] = 0;
+@@ -1249,7 +1249,7 @@ UnpackAppBlock(record)
+ }
+
+ SvPV(record,len);
+- if (unpack_AddressAppInfo(&a, (CPTR)SvPV(record, na), len)>0) {
++ if (unpack_AddressAppInfo(&a, (CPTR)SvPV(record, PL_na), len)>0) {
+
+ doUnpackCategory(ret, &a.category);
+
+@@ -1309,13 +1309,13 @@ PackAppBlock(record)
+ a.sortByCompany = (s = hv_fetch(h, "sortByCompany", 13, 0)) ? SvIV(*s) : 0;
+
+ if ((s = hv_fetch(h, "label", 5, 0)) && SvOK(*s) && SvRV(*s) && (SvTYPE(av=(AV*)SvRV(*s))==SVt_PVAV))
+- for (i=0;i<22;i++) strncpy(a.labels[i], (s=av_fetch(av, i, 0)) ? SvPV(*s,na) : "", 16);
++ for (i=0;i<22;i++) strncpy(a.labels[i], (s=av_fetch(av, i, 0)) ? SvPV(*s,PL_na) : "", 16);
+ else
+ for (i=0;i<22;i++) a.labels[i][0] = 0;
+ for (i=0;i<22;i++) a.labels[i][15] = 0;
+
+ if ((s = hv_fetch(h, "phoneLabel", 10, 0)) && SvOK(*s) && SvRV(*s) && (SvTYPE(av=(AV*)SvRV(*s))==SVt_PVAV))
+- for (i=0;i<8;i++) strncpy(a.phoneLabels[i], (s=av_fetch(av, i, 0)) ? SvPV(*s,na) : "", 16);
++ for (i=0;i<8;i++) strncpy(a.phoneLabels[i], (s=av_fetch(av, i, 0)) ? SvPV(*s,PL_na) : "", 16);
+ else
+ for (i=0;i<8;i++) a.phoneLabels[i][0] = 0;
+ for (i=0;i<8;i++) a.phoneLabels[i][15] = 0;
+@@ -1396,7 +1396,7 @@ Pack(record)
+ else {
+
+ if ((s = hv_fetch(h, "text", 4, 0)))
+- a.text = SvPV(*s,na);
++ a.text = SvPV(*s,PL_na);
+ else
+ a.text = 0;
+
+@@ -1438,7 +1438,7 @@ UnpackAppBlock(record)
+ }
+
+ SvPV(record,len);
+- if (unpack_MemoAppInfo(&a, (CPTR)SvPV(record, na), len)>0) {
++ if (unpack_MemoAppInfo(&a, (CPTR)SvPV(record, PL_na), len)>0) {
+
+ doUnpackCategory(ret, &a.category);
+
+@@ -1510,7 +1510,7 @@ Unpack(record)
+
+ SvPV(record,len);
+ if (len > 0) { /* len == 0 if deleted flag is set */
+- if (unpack_Expense(&e, (CPTR)SvPV(record, na), len)>0) {
++ if (unpack_Expense(&e, (CPTR)SvPV(record, PL_na), len)>0) {
+
+ hv_store(ret, "date", 4, newRV_noinc((SV*)tmtoav(&e.date)), 0);
+ hv_store(ret, "type", 4, newSVlist(e.type,ExpenseTypeNames),0);
+@@ -1570,15 +1570,15 @@ Pack(record)
+ avtotm((AV*)SvRV(*s), &e.date);
+ else
+ croak("expense record must contain date");
+- if ((s = hv_fetch(h, "amount", 6, 0))) e.amount = SvPV(*s,na);
++ if ((s = hv_fetch(h, "amount", 6, 0))) e.amount = SvPV(*s,PL_na);
+ else e.amount = 0;
+- if ((s = hv_fetch(h, "vendor", 6, 0))) e.vendor = SvPV(*s,na);
++ if ((s = hv_fetch(h, "vendor", 6, 0))) e.vendor = SvPV(*s,PL_na);
+ else e.vendor = 0;
+- if ((s = hv_fetch(h, "city", 4, 0))) e.city = SvPV(*s,na);
++ if ((s = hv_fetch(h, "city", 4, 0))) e.city = SvPV(*s,PL_na);
+ else e.city = 0;
+- if ((s = hv_fetch(h, "attendess", 9, 0))) e.attendees = SvPV(*s,na);
++ if ((s = hv_fetch(h, "attendess", 9, 0))) e.attendees = SvPV(*s,PL_na);
+ else e.attendees = 0;
+- if ((s = hv_fetch(h, "note", 4, 0))) e.note = SvPV(*s,na);
++ if ((s = hv_fetch(h, "note", 4, 0))) e.note = SvPV(*s,PL_na);
+ else e.note = 0;
+
+ len = pack_Expense(&e, mybuf, 0xffff);
+@@ -1619,7 +1619,7 @@ UnpackAppBlock(record)
+ }
+
+ SvPV(record,len);
+- if (unpack_ExpenseAppInfo(&e, (CPTR)SvPV(record, na), len)>0) {
++ if (unpack_ExpenseAppInfo(&e, (CPTR)SvPV(record, PL_na), len)>0) {
+
+ hv_store(ret, "sortOrder", 9, newSVlist(e.sortOrder,ExpenseSortNames),0);
+ a = newAV();
+@@ -1662,15 +1662,15 @@ PackAppBlock(record)
+ HV * hv;
+ if ((s=av_fetch(av, i, 0)) && SvOK(*s) && SvRV(*s) && (SvTYPE(hv=(HV*)SvRV(*s))==SVt_PVHV)) {
+ if (s = hv_fetch(hv, "name", 4, 0)) {
+- strncpy(e.currencies[i].name, SvPV(*s, na), 16);
++ strncpy(e.currencies[i].name, SvPV(*s, PL_na), 16);
+ e.currencies[i].name[15] = 0;
+ }
+ if (s = hv_fetch(hv, "symbol", 6, 0)) {
+- strncpy(e.currencies[i].symbol, SvPV(*s, na), 4);
++ strncpy(e.currencies[i].symbol, SvPV(*s, PL_na), 4);
+ e.currencies[i].symbol[3] = 0;
+ }
+ if (s = hv_fetch(hv, "rate", 4, 0)) {
+- strncpy(e.currencies[i].rate, SvPV(*s, na), 8);
++ strncpy(e.currencies[i].rate, SvPV(*s, PL_na), 8);
+ e.currencies[i].rate[7] = 0;
+ }
+ }
+@@ -1718,7 +1718,7 @@ UnpackPref(record)
+ }
+
+ SvPV(record,len);
+- if (unpack_ExpensePref(&a, (CPTR)SvPV(record, na), len)>0) {
++ if (unpack_ExpensePref(&a, (CPTR)SvPV(record, PL_na), len)>0) {
+
+ hv_store(ret, "unitOfDistance", 14, newSVlist(a.unitOfDistance, ExpenseDistanceNames), 0);
+ hv_store(ret, "currentCategory", 15, newSViv(a.currentCategory), 0);
+@@ -1811,7 +1811,7 @@ Unpack(record)
+
+ SvPV(record,len);
+ if (len > 0) { /* len == 0 if deleted flag is set */
+- if (unpack_Mail(&a, (CPTR)SvPV(record, na), len)>0) {
++ if (unpack_Mail(&a, (CPTR)SvPV(record, PL_na), len)>0) {
+
+ if (a.subject) hv_store(ret, "subject", 7, newSVpv(a.subject,0), 0);
+ if (a.from) hv_store(ret, "from", 4, newSVpv(a.from,0), 0);
+@@ -1858,14 +1858,14 @@ Pack(record)
+ }
+ else {
+
+- a.subject = (s = hv_fetch(h, "subject", 7, 0)) ? SvPV(*s,na) : 0;
+- a.from = (s = hv_fetch(h, "from", 4, 0)) ? SvPV(*s,na) : 0;
+- a.to = (s = hv_fetch(h, "to", 2, 0)) ? SvPV(*s,na) : 0;
+- a.cc = (s = hv_fetch(h, "cc", 2, 0)) ? SvPV(*s,na) : 0;
+- a.bcc = (s = hv_fetch(h, "bcc", 3, 0)) ? SvPV(*s,na) : 0;
+- a.replyTo = (s = hv_fetch(h, "replyTo", 7, 0)) ? SvPV(*s,na) : 0;
+- a.sentTo = (s = hv_fetch(h, "sentTo", 6, 0)) ? SvPV(*s,na) : 0;
+- a.body = (s = hv_fetch(h, "body", 4, 0)) ? SvPV(*s,na) : 0;
++ a.subject = (s = hv_fetch(h, "subject", 7, 0)) ? SvPV(*s,PL_na) : 0;
++ a.from = (s = hv_fetch(h, "from", 4, 0)) ? SvPV(*s,PL_na) : 0;
++ a.to = (s = hv_fetch(h, "to", 2, 0)) ? SvPV(*s,PL_na) : 0;
++ a.cc = (s = hv_fetch(h, "cc", 2, 0)) ? SvPV(*s,PL_na) : 0;
++ a.bcc = (s = hv_fetch(h, "bcc", 3, 0)) ? SvPV(*s,PL_na) : 0;
++ a.replyTo = (s = hv_fetch(h, "replyTo", 7, 0)) ? SvPV(*s,PL_na) : 0;
++ a.sentTo = (s = hv_fetch(h, "sentTo", 6, 0)) ? SvPV(*s,PL_na) : 0;
++ a.body = (s = hv_fetch(h, "body", 4, 0)) ? SvPV(*s,PL_na) : 0;
+
+ a.read = (s = hv_fetch(h, "read", 4, 0)) ? SvIV(*s) : 0;
+ a.signature = (s = hv_fetch(h, "signature", 9, 0)) ? SvIV(*s) : 0;
+@@ -1913,7 +1913,7 @@ UnpackAppBlock(record)
+ }
+
+ SvPV(record,len);
+- if (unpack_MailAppInfo(&a, (CPTR)SvPV(record, na), len)>0) {
++ if (unpack_MailAppInfo(&a, (CPTR)SvPV(record, PL_na), len)>0) {
+
+ doUnpackCategory(ret, &a.category);
+
+@@ -1989,7 +1989,7 @@ UnpackSyncPref(record)
+ }
+
+ SvPV(record,len);
+- if (unpack_MailSyncPref(&a, (CPTR)SvPV(record, na), len)>0) {
++ if (unpack_MailSyncPref(&a, (CPTR)SvPV(record, PL_na), len)>0) {
+
+ hv_store(ret, "syncType", 8, newSVlist(a.syncType, MailSyncTypeNames), 0);
+ hv_store(ret, "getHigh", 7, newSViv(a.getHigh), 0);
+@@ -2033,9 +2033,9 @@ PackSyncPref(record, id)
+ a.getContaining = (s=hv_fetch(h,"getContaining",13,0)) ? SvIV(*s) : 0;
+ a.truncate = (s=hv_fetch(h,"truncate",8,0)) ? SvIV(*s) : 0;
+
+- a.filterTo = (s=hv_fetch(h,"filterTo",8,0)) ? SvPV(*s,na) : 0;
+- a.filterFrom = (s=hv_fetch(h,"filterFrom",10,0)) ? SvPV(*s,na) : 0;
+- a.filterSubject = (s=hv_fetch(h,"filterSubject",13,0)) ? SvPV(*s,na) : 0;
++ a.filterTo = (s=hv_fetch(h,"filterTo",8,0)) ? SvPV(*s,PL_na) : 0;
++ a.filterFrom = (s=hv_fetch(h,"filterFrom",10,0)) ? SvPV(*s,PL_na) : 0;
++ a.filterSubject = (s=hv_fetch(h,"filterSubject",13,0)) ? SvPV(*s,PL_na) : 0;
+
+ len = pack_MailSyncPref(&a, mybuf, 0xffff);
+
+@@ -2073,7 +2073,7 @@ UnpackSignaturePref(record)
+ }
+
+ SvPV(record,len);
+- if (unpack_MailSignaturePref(&a, (CPTR)SvPV(record, na), len)>0) {
++ if (unpack_MailSignaturePref(&a, (CPTR)SvPV(record, PL_na), len)>0) {
+
+ if (a.signature)
+ hv_store(ret, "signature", 9, newSVpv(a.signature, 0), 0);
+@@ -2099,7 +2099,7 @@ PackSignaturePref(record, id)
+ RETVAL = record;
+ else {
+
+- a.signature = (s=hv_fetch(h,"signature",9,0)) ? SvPV(*s,na) : 0;
++ a.signature = (s=hv_fetch(h,"signature",9,0)) ? SvPV(*s,PL_na) : 0;
+
+ len = pack_MailSignaturePref(&a, mybuf, 0xffff);
+
+@@ -2129,7 +2129,7 @@ write(socket, msg)
+ {
+ STRLEN len;
+ SvPV(msg, len);
+- RETVAL = pi_write(socket,SvPV(msg,na),len);
++ RETVAL = pi_write(socket,SvPV(msg,PL_na),len);
+ }
+
+ SV *
+@@ -2146,7 +2146,7 @@ read(socket, len)
+ if (result >=0)
+ RETVAL = newSVpvn((char *) pibuf.data, result);
+ else
+- RETVAL = &sv_undef;
++ RETVAL = &PL_sv_undef;
+ }
+ OUTPUT:
+ RETVAL
+@@ -2282,7 +2282,7 @@ class(self, name=0)
+ croak("DBClasses doesn't exist");
+ if (SvOK(name)) {
+ (void)SvPV(name,len);
+- s = hv_fetch(h, SvPV(name,na), len, 0);
++ s = hv_fetch(h, SvPV(name,PL_na), len, 0);
+ }
+ if (!s)
+ s = hv_fetch(h, "", 0, 0);
+@@ -2577,7 +2577,7 @@ getRecords(self)
+ {
+ int result = dlp_ReadOpenDBInfo(self->socket, self->handle, &RETVAL);
+ if (result < 0) {
+- RETVAL = newSVsv(&sv_undef);
++ RETVAL = newSVsv(&PL_sv_undef);
+ self->errnop = result;
+ }
+ }
+@@ -2745,7 +2745,7 @@ setResource(self, data)
+ result = dlp_WriteResource(self->socket, self->handle, type, id, c, len);
+ if (result < 0) {
+ self->errnop = result;
+- RETVAL = newSVsv(&sv_undef);
++ RETVAL = newSVsv(&PL_sv_undef);
+ } else
+ RETVAL = newSViv(result);
+ }
+@@ -2798,7 +2798,7 @@ getPref(self, id=0, backup=1)
+ r = dlp_CloseDB(self->socket, self->handle);
+ result = dlp_ReadAppPreference(self->socket, creator, id, backup, 0xFFFF, mybuf, &len, &version);
+ if (pi_version(self->socket)< 0x101)
+- r = dlp_OpenDB(self->socket, self->dbcard, self->dbmode, SvPV(self->dbname,na), &self->handle);
++ r = dlp_OpenDB(self->socket, self->dbcard, self->dbmode, SvPV(self->dbname,PL_na), &self->handle);
+ ReturnReadPref(mybuf, len);
+ }
+
+@@ -2822,10 +2822,10 @@ setPref(self, data)
+ r = dlp_CloseDB(self->socket, self->handle);
+ result = dlp_WriteAppPreference(self->socket, creator, id, backup, version, buf, len);
+ if (pi_version(self->socket)< 0x101)
+- r = dlp_OpenDB(self->socket, self->dbcard, self->dbmode, SvPV(self->dbname,na), &self->handle);
++ r = dlp_OpenDB(self->socket, self->dbcard, self->dbmode, SvPV(self->dbname,PL_na), &self->handle);
+ if (result < 0) {
+ self->errnop = result;
+- RETVAL = newSVsv(&sv_undef);
++ RETVAL = newSVsv(&PL_sv_undef);
+ } else {
+ RETVAL = newSViv(result);
+ }
+@@ -2861,7 +2861,7 @@ setPrefRaw(self, data, number, version, backup=1)
+ result = dlp_WriteAppPreference(self->socket, creator, number, backup, version, buf, len);
+ if (result < 0) {
+ self->errnop = result;
+- RETVAL = newSVsv(&sv_undef);
++ RETVAL = newSVsv(&PL_sv_undef);
+ } else {
+ RETVAL = newSViv(result);
+ }
+@@ -2904,7 +2904,7 @@ getTime(self)
+ int result = dlp_GetSysDateTime(self->socket, &t);
+ if (result < 0) {
+ self->errnop = result;
+- RETVAL = newSVsv(&sv_undef);
++ RETVAL = newSVsv(&PL_sv_undef);
+ } else
+ RETVAL = newSViv(t);
+ }
+@@ -2929,7 +2929,7 @@ getSysInfo(self)
+ int result = dlp_ReadSysInfo(self->socket, &si);
+ if (result < 0) {
+ self->errnop = result;
+- RETVAL = newSVsv(&sv_undef);
++ RETVAL = newSVsv(&PL_sv_undef);
+ } else {
+ HV * i = newHV();
+ hv_store(i, "romVersion", 10, newSViv(si.romVersion), 0);\
+@@ -2951,7 +2951,7 @@ getCardInfo(self, cardno=0)
+ int result = dlp_ReadStorageInfo(self->socket, cardno, &c);
+ if (result < 0) {
+ self->errnop = result;
+- RETVAL = newSVsv(&sv_undef);
++ RETVAL = newSVsv(&PL_sv_undef);
+ } else {
+ HV * i = newHV();
+ hv_store(i, "card", 6, newSViv(c.card), 0);\
+@@ -3037,7 +3037,7 @@ newPref(self, creator, id=0, version=0, backup=0)
+ croak("Default PrefClass not defined");
+ PUSHMARK(sp);
+ XPUSHs(newSVsv(*s));
+- XPUSHs(&sv_undef);
++ XPUSHs(&PL_sv_undef);
+ XPUSHs(sv_2mortal(newSVChar4(creator)));
+ if (id)
+ XPUSHs(id);
+@@ -3107,7 +3107,7 @@ open(self, name, mode=0, cardno=0)
+ result = dlp_OpenDB(self->socket, cardno, nummode, name, &handle);
+ if (result<0) {
+ self->errnop = result;
+- RETVAL = &sv_undef;
++ RETVAL = &PL_sv_undef;
+ } else {
+ int type;
+ PDA__Pilot__DLP__DB * x = malloc(sizeof(PDA__Pilot__DLP__DB));
+@@ -3156,7 +3156,7 @@ create(self, name, creator, type, flags, version, cardno=0)
+ int result = dlp_CreateDB(self->socket, creator, type, cardno, flags, version, name, &handle);
+ if (result<0) {
+ self->errnop = result;
+- RETVAL = &sv_undef;
++ RETVAL = &PL_sv_undef;
+ } else {
+ PDA__Pilot__DLP__DB * x = malloc(sizeof(PDA__Pilot__DLP__DB));
+ SV * sv = newSViv((IV)(void*)x);
+@@ -3224,7 +3224,7 @@ setPref(self, data)
+ result = dlp_WriteAppPreference(self->socket, creator, id, backup, version, buf, len);
+ if (result < 0) {
+ self->errnop = result;
+- RETVAL = newSVsv(&sv_undef);
++ RETVAL = newSVsv(&PL_sv_undef);
+ } else {
+ RETVAL = newSViv(result);
+ }
+@@ -3248,7 +3248,7 @@ setPrefRaw(self, data, creator, number, version, backup=1)
+ result = dlp_WriteAppPreference(self->socket, creator, number, backup, version, buf, len);
+ if (result < 0) {
+ self->errnop = result;
+- RETVAL = newSVsv(&sv_undef);
++ RETVAL = newSVsv(&PL_sv_undef);
+ } else {
+ RETVAL = newSViv(result);
+ }
+@@ -3350,7 +3350,7 @@ findDBInfo(self, start, name, creator, type, cardno=0)
+ else
+ t = 0;
+ result = dlp_FindDBInfo(self->socket, cardno, start,
+- SvOK(name) ? SvPV(name,na) : 0,
++ SvOK(name) ? SvPV(name,PL_na) : 0,
+ t, c, &info);
+ pack_dbinfo(RETVAL, info, result);
+ }
+@@ -3367,7 +3367,7 @@ getFeature(self, creator, number)
+ unsigned long f;
+ int result;
+ if ((result = dlp_ReadFeature(self->socket, creator, number, &f))<0) {
+- RETVAL = newSVsv(&sv_undef);
++ RETVAL = newSVsv(&PL_sv_undef);
+ self->errnop = result;
+ } else {
+ RETVAL = newSViv(f);
+@@ -3397,7 +3397,7 @@ getROMToken(self,token)
+ }
+
+ void
+-callApplication(self, creator, type, action, data=&sv_undef)
++callApplication(self, creator, type, action, data=&PL_sv_undef)
+ PDA::Pilot::DLP *self
+ Char4 creator
+ Char4 type
+@@ -3410,7 +3410,7 @@ callApplication(self, creator, type, action, data=&sv_undef)
+ int result;
+ (void)SvPV(data,len);
+ result = dlp_CallApplication(self->socket, creator,
+- type, action, len, SvPV(data,na),
++ type, action, len, SvPV(data,PL_na),
+ &retcode, &pibuf);
+ EXTEND(sp, 2);
+ if (result >= 0) {
+@@ -3419,7 +3419,7 @@ callApplication(self, creator, type, action, data=&sv_undef)
+ PUSHs(sv_2mortal(newSViv(retcode)));
+ }
+ } else
+- PUSHs(&sv_undef);
++ PUSHs(&PL_sv_undef);
+ }
+
+ int
+@@ -3530,7 +3530,7 @@ class(self, name=0)
+ croak("DBClasses doesn't exist");
+ if (SvOK(name)) {
+ (void)SvPV(name, len);
+- s = hv_fetch(h, SvPV(name, na), len, 0);
++ s = hv_fetch(h, SvPV(name, PL_na), len, 0);
+ }
+ if (!s)
+ s = hv_fetch(h, "", 0, 0);
+diff --git a/bindings/Perl/typemap b/bindings/Perl/typemap
+index 347a6a7..eeffa4c 100644
+--- a/bindings/Perl/typemap
++++ b/bindings/Perl/typemap
+@@ -50,9 +50,9 @@ T_CHAR4
+
+ T_RESULT
+ if ($var < 0) {
+- sv_setsv($arg, &sv_no);
++ sv_setsv($arg, &PL_sv_no);
+ self->errnop = $var;
+ } else
+- sv_setsv($arg, &sv_yes);
++ sv_setsv($arg, &PL_sv_yes);
+ T_PTROBJ
+ sv_setref_pv($arg, \"${ntype}\", (void*)$var);
+--
+1.7.5.4
+
diff --git a/app-pda/pilot-link/metadata.xml b/app-pda/pilot-link/metadata.xml
new file mode 100644
index 000000000000..228404d3a4b2
--- /dev/null
+++ b/app-pda/pilot-link/metadata.xml
@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+<herd>pda</herd>
+</pkgmetadata>
diff --git a/app-pda/pilot-link/pilot-link-0.12.5-r1.ebuild b/app-pda/pilot-link/pilot-link-0.12.5-r1.ebuild
new file mode 100644
index 000000000000..c6c0969e4080
--- /dev/null
+++ b/app-pda/pilot-link/pilot-link-0.12.5-r1.ebuild
@@ -0,0 +1,109 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python2_7 )
+
+inherit autotools distutils-r1 eutils perl-module java-pkg-opt-2
+
+DESCRIPTION="suite of tools for moving data between a Palm device and a desktop"
+HOMEPAGE="http://www.pilot-link.org/"
+SRC_URI="http://pilot-link.org/source/${P}.tar.bz2"
+
+LICENSE="|| ( GPL-2 LGPL-2 )"
+SLOT="0"
+KEYWORDS="alpha amd64 ~arm hppa ia64 ppc ppc64 x86 ~x86-fbsd ~amd64-linux ~x86-linux"
+IUSE="bluetooth debug java perl png python readline static-libs threads usb"
+
+COMMON_DEPEND="dev-libs/popt
+ >=sys-libs/ncurses-5.7-r7
+ virtual/libiconv
+ bluetooth? ( net-wireless/bluez )
+ perl? ( >=dev-lang/perl-5.12 )
+ png? ( media-libs/libpng:0 )
+ readline? ( >=sys-libs/readline-6 )
+ usb? ( virtual/libusb:0 )"
+DEPEND="${COMMON_DEPEND}
+ java? ( >=virtual/jdk-1.4 )"
+RDEPEND="${COMMON_DEPEND}
+ java? ( >=virtual/jre-1.4 )"
+
+src_prepare() {
+ epatch \
+ "${FILESDIR}"/${PN}-0.12.3-java-install.patch \
+ "${FILESDIR}"/${PN}-0.12.3-respect-javacflags.patch \
+ "${FILESDIR}"/${PN}-0.12.2-werror_194921.patch \
+ "${FILESDIR}"/${PN}-0.12.2-threads.patch \
+ "${FILESDIR}"/${PN}-0.12.3-{libpng14,png}.patch \
+ "${FILESDIR}"/${PN}-0.12.3-distutils.patch \
+ "${FILESDIR}"/${PN}-0.12.3-libusb-compat-usb_open.patch \
+ "${FILESDIR}"/${PN}-0.12.5-perl514.patch
+
+ sed -i -e 's:AM_CONFIG_HEADER:AC_CONFIG_HEADERS:' configure.ac || die #467600
+
+ AT_M4DIR="m4" eautoreconf
+}
+
+src_configure() {
+ # tcl/tk support is disabled as per upstream request.
+ econf \
+ --includedir="${EPREFIX}"/usr/include/libpisock \
+ $(use_enable static-libs static) \
+ --enable-conduits \
+ $(use_enable threads) \
+ $(use_enable usb libusb) \
+ $(use_enable debug) \
+ $(use_with png libpng) \
+ $(use_with bluetooth bluez) \
+ $(use_with readline) \
+ $(use_with perl) \
+ $(use_with java) \
+ --without-tcl \
+ $(use_with python)
+}
+
+src_compile() {
+ emake
+
+ if use perl; then
+ cd "${S}"/bindings/Perl
+ perl-module_src_configure
+ local mymake=( OTHERLDFLAGS="${LDFLAGS} -L../../libpisock/.libs -lpisock" ) #308629
+ perl-module_src_compile
+ fi
+
+ if use python; then
+ cd "${S}"/bindings/Python
+ distutils-r1_src_compile
+ fi
+}
+
+src_install() {
+ emake DESTDIR="${D}" install
+ dodoc ChangeLog NEWS README doc/{README*,TODO}
+
+ if use java; then
+ cd "${S}"/bindings/Java
+ java-pkg_newjar ${PN}.jar
+ java-pkg_doso libjpisock.so
+ fi
+
+ if use perl; then
+ cd "${S}"/bindings/Perl
+ perl-module_src_install
+ fi
+
+ if use python; then
+ cd "${S}"/bindings/Python
+ distutils-r1_src_install
+ fi
+
+ find "${D}" -name '*.la' -exec rm -f {} +
+}
+
+pkg_preinst() {
+ perl_set_version
+ java-pkg-opt-2_pkg_preinst
+}