summaryrefslogtreecommitdiff
path: root/print
diff options
context:
space:
mode:
authorBruce M Simpson <bms@FreeBSD.org>2010-02-08 19:40:24 +0000
committerBruce M Simpson <bms@FreeBSD.org>2010-02-08 19:40:24 +0000
commit8fed68f53b521e89373b6fdad77d982883aaf544 (patch)
treebb35a58eefdb3df5913714e959845052734cf93d /print
parentUpdate pkg-message to list all available SCIM methods/modules/engines. (diff)
Add port of Sun's OpenPrinting API (PAPI) v1.0 sources.
This port is currently of interest to developers only, the mod_ipp Apache module dumps core, and the psm_cups module does not compile as shipped.
Notes
Notes: svn path=/head/; revision=249447
Diffstat (limited to 'print')
-rw-r--r--print/Makefile1
-rw-r--r--print/openprinting/Makefile115
-rw-r--r--print/openprinting/distinfo3
-rw-r--r--print/openprinting/files/patch-freebsd763
-rw-r--r--print/openprinting/pkg-descr11
-rw-r--r--print/openprinting/pkg-message11
6 files changed, 904 insertions, 0 deletions
diff --git a/print/Makefile b/print/Makefile
index c299b4031063..fd11e4dc3070 100644
--- a/print/Makefile
+++ b/print/Makefile
@@ -201,6 +201,7 @@
SUBDIR += nenscript
SUBDIR += nl-acroread8
SUBDIR += no-acroread8
+ SUBDIR += openprinting
SUBDIR += p5-Net-Printer
SUBDIR += p5-PDF-Template
SUBDIR += p5-PDFLib
diff --git a/print/openprinting/Makefile b/print/openprinting/Makefile
new file mode 100644
index 000000000000..304053619b05
--- /dev/null
+++ b/print/openprinting/Makefile
@@ -0,0 +1,115 @@
+# New ports collection makefile for: openprinting
+# Date created: 6 February 2010
+# Whom: Bruce M Simpson <bms@FreeBSD.org>
+#
+# $FreeBSD$
+#
+
+PORTNAME= openprinting
+PORTVERSION= 1.0
+CATEGORIES= print net
+MASTER_SITES= ${MASTER_SITE_SOURCEFORGE}
+MASTER_SITE_SUBDIR=\
+ openprinting/papi/1.0%20Beta
+DISTNAME= papi-${PORTVERSION}_beta
+DIST_SUBDIR= ${PORTNAME}
+
+MAINTAINER= bms@FreeBSD.org
+COMMENT= Sun's implementation of the OpenPrinting API (PAPI)
+
+WRKSRC= ${WRKDIR}/papi-${PORTVERSION}_beta
+
+USE_BZIP2= yes
+USE_GMAKE= yes
+USE_GETTEXT= yes
+USE_ICONV= yes
+
+USE_LDCONFIG= ${PREFIX}/lib ${PREFIX}/libexec
+
+GNU_CONFIGURE= yes
+MAKE_JOBS_SAFE= yes
+
+USE_AUTOTOOLS= aclocal:19 autoconf:262 autoheader:262 automake:19 libtool:22
+ACLOCAL_ARGS+= -I ${LOCALBASE}/share/aclocal
+AUTOMAKE_ARGS+= -a -c
+
+# Really disable building static libraries; the package does not use
+# its own libtool, and we have to tell it to stop.
+# Static libraries are not very useful in this package.
+MAKE_ARGS= LIBTOOL="${LIBTOOL} --tag=disable-static"
+
+# TODO: Get mod_ipp to actually work; Sun's example seems to be broken
+# under both Apache 1.3/2.0, this could be a papi issue; does not build
+# w/Apache 2.2.
+# TODO: Fix Apache module install target to instead use APXS
+# from this file; it is intended only as an example.
+# TODO: CUPS integration is broken in distfiles (missing papi_int.h).
+#OPTIONS=\
+# MOD_IPP "Build example mod_ipp.so for Apache" Off
+# PSM_CUPS "Build psm_cups.so for printing to CUPS" Off
+
+.include <bsd.port.options.mk>
+
+# NOTE: hard dependency on gettext() in distfiles.
+CONFIGURE_ARGS+=\
+ LDFLAGS="-L${LOCALBASE}/lib" \
+ CPPFLAGS="-I${LOCALBASE}/include" \
+ LIBS="-lintl"
+
+# NOTE: This has only been tested with www/apache20, with integrated APR.
+.if defined(WITH_MOD_IPP)
+USE_APACHE= 2.0
+CONFIGURE_ARGS+=--with-apache=${LOCALBASE}
+.else
+CONFIGURE_ARGS+=--without-apache
+.endif
+
+.if defined(WITH_PSM_CUPS)
+LIB_DEPENDS+= cups.2:${PORTSDIR}/print/cups-client
+CONFIGURE_ARGS+=--with-cups=${LOCALBASE}
+.else
+CONFIGURE_ARGS+=--without-cups
+.endif
+
+MANCOMPRESSED= no
+MAN5= psm-ipp.5
+
+PLIST_FILES+=\
+ include/papi.h \
+ include/ipp.h \
+ include/debug.h \
+ include/http.h \
+ include/http-private.h \
+ include/ipp-listener.h \
+ lib/libpapi-common.so.0 \
+ lib/libpapi-common.la \
+ lib/libpapi.so.0 \
+ lib/libpapi.la \
+ lib/libipp-core.so.0 \
+ lib/libipp-core.la \
+ lib/libipp-listener.so.0 \
+ lib/libipp-listener.la \
+ libexec/psm-lpd.so \
+ libexec/psm-lpd.la \
+ libexec/psm-ipp.so \
+ libexec/psm-ipp.la \
+ libexec/lpd-port
+
+.if defined(WITH_PSM_CUPS)
+PLIST_FILES+=\
+ libexec/psm-cups.so \
+ libexec/psm-cups.la
+.endif
+
+.if defined(WITH_MOD_IPP)
+PLIST_FILES+=\
+ lib/mod_ipp.so \
+ lib/mod_ipp.la
+.endif
+
+.include <bsd.port.pre.mk>
+
+pre-configure:
+ cd ${WRKSRC}; ./autogen.sh
+
+.include <bsd.port.post.mk>
diff --git a/print/openprinting/distinfo b/print/openprinting/distinfo
new file mode 100644
index 000000000000..3fc090ddd5de
--- /dev/null
+++ b/print/openprinting/distinfo
@@ -0,0 +1,3 @@
+MD5 (openprinting/papi-1.0_beta.tar.bz2) = 7e6f769de88d581fdb78a538d97e6373
+SHA256 (openprinting/papi-1.0_beta.tar.bz2) = 235b560282ea15ac78920748ed5d1215b224e4dc9548f4d9f8bf11fb574d2b7d
+SIZE (openprinting/papi-1.0_beta.tar.bz2) = 358460
diff --git a/print/openprinting/files/patch-freebsd b/print/openprinting/files/patch-freebsd
new file mode 100644
index 000000000000..9cb98d1945c4
--- /dev/null
+++ b/print/openprinting/files/patch-freebsd
@@ -0,0 +1,763 @@
+Files /home/bms/x/y/papi-1.0_beta.orig/.acinclude.m4.swp and ./.acinclude.m4.swp differ
+diff -uNr /home/bms/x/y/papi-1.0_beta.orig/acinclude.m4 ./acinclude.m4
+--- /home/bms/x/y/papi-1.0_beta.orig/acinclude.m4 2005-09-21 17:59:13.000000000 +0100
++++ ./acinclude.m4 2010-02-06 20:06:09.000000000 +0000
+@@ -41,3 +41,19 @@
+ fi
+ AM_CONDITIONAL(HAVE_CUPS, [ test x$CUPS_PREFIX != x ])
+ ])
++
++dnl
++dnl Check if we should build examples.
++dnl
++AC_DEFUN([AC_CHECK_EXAMPLES], [
++AC_ARG_ENABLE(examples, [ --enable-examples build with examples [default=no]], enable_examples=yes, enable_examples=no)
++AM_CONDITIONAL(ENABLE_EXAMPLES, [ test x$enable_examples != xno ])
++])
++
++dnl
++dnl Check if we should BSD/SYSV lpr commands.
++dnl
++AC_DEFUN([AC_CHECK_BSD_SYSV_COMMANDS], [
++AC_ARG_ENABLE(bsd-sysv-commands, [ --enable-bsd-sysv-commands build with BSD/SYSV commands [default=no]], enable_bsd_sysv_commands=yes, enable_bsd_sysv_commands=no)
++AM_CONDITIONAL(ENABLE_BSD_SYSV_COMMANDS, [ test x$enable_bsd_sysv_commands != xno ])
++])
+diff -uNr /home/bms/x/y/papi-1.0_beta.orig/configure.in ./configure.in
+--- /home/bms/x/y/papi-1.0_beta.orig/configure.in 2006-03-12 06:15:33.000000000 +0000
++++ ./configure.in 2010-02-06 20:05:07.000000000 +0000
+@@ -115,6 +115,12 @@
+ AC_MSG_RESULT([Default IPP server: $DEFAULT_IPP_SERVER])
+ AC_SUBST(DEFAULT_IPP_SERVER)
+
++dnl»····check if we should build and install examples.
++AC_CHECK_EXAMPLES
++
++dnl»····check if we should build and install BSD/SYSV lpr commands.
++AC_CHECK_BSD_SYSV_COMMANDS
++
+ dnl which linker flags do we use for inclusion of mapfiles.
+ os=`uname -s`
+ AM_CONDITIONAL(LINUX, [ test x$os = xLinux ] )
+diff -uNr /home/bms/x/y/papi-1.0_beta.orig/docs/man/Makefile.am ./docs/man/Makefile.am
+--- /home/bms/x/y/papi-1.0_beta.orig/docs/man/Makefile.am 2006-03-12 06:30:42.000000000 +0000
++++ ./docs/man/Makefile.am 2010-02-06 20:18:41.000000000 +0000
+@@ -5,16 +5,21 @@
+ # $Id: Makefile.am,v 1.5 2006/03/12 06:30:42 njacobs Exp $
+ #
+
+-man_MANS_in = lpq.1b.in lpr.1b.in lprm.1b.in lpc.1b.in
++man_MANS_in =
++if ENABLE_BSD_SYSV_COMMANDS
++man_MANS_in += lpq.1b.in lpr.1b.in lprm.1b.in lpc.1b.in
+ man_MANS_in += lpstat.1.in lp.1.in cancel.1.in enable.1.in disable.1.in
+ man_MANS_in += lpmove.1m.in accept.1m.in reject.1m.in
++endif
+ man_MANS_in += psm-ipp.5.in
+
+
+ man_MANS=$(man_MANS_in:%.in=%)
++if ENABLE_BSD_SYSV_COMMANDS
+ man_MANS += lpq.1b lpr.1b lprm.1b lpc.1b
+ man_MANS += lpstat.1 lp.1 cancel.1 enable.1 disable.1
+ man_MANS += lpmove.1m accept.1m reject.1m
++endif
+ man_MANS += psm-ipp.5
+
+ SUFFIXES = .in
+diff -uNr /home/bms/x/y/papi-1.0_beta.orig/source/Makefile.am ./source/Makefile.am
+--- /home/bms/x/y/papi-1.0_beta.orig/source/Makefile.am 2005-09-21 18:13:17.000000000 +0100
++++ ./source/Makefile.am 2010-02-06 20:05:59.000000000 +0000
+@@ -13,6 +13,14 @@
+ CUPS_MODULE= libpapi-cups
+ endif
+
++if ENABLE_EXAMPLES
++EXAMPLES= examples
++endif
++
++if ENABLE_BSD_SYSV_COMMANDS
++BSD_SYSV_COMMANDS= bsd-sysv-commands
++endif
++
+ AUTOMAKE_OPTIONS=foreign
+ SUBDIRS= libpapi-common \
+ libpapi-dynamic \
+@@ -21,6 +29,6 @@
+ libpapi-ipp \
+ $(CUPS_MODULE) \
+ libipp-listener \
+- bsd-sysv-commands \
++ $(BSD_SYSV_COMANDS) \
+ $(APACHE_MODULE) \
+- examples
++ $(EXAMPLES)
+diff -uNr /home/bms/x/y/papi-1.0_beta.orig/source/bsd-sysv-commands/common.c ./source/bsd-sysv-commands/common.c
+--- /home/bms/x/y/papi-1.0_beta.orig/source/bsd-sysv-commands/common.c 2006-02-15 21:24:20.000000000 +0000
++++ ./source/bsd-sysv-commands/common.c 2010-01-31 13:40:22.000000000 +0000
+@@ -8,7 +8,9 @@
+ #include <stdio.h>
+ #include <stdlib.h>
+ #include <unistd.h>
++#ifdef HAVE_ALLOCA_H
+ #include <alloca.h>
++#endif
+ #include <string.h>
+ #include <libintl.h>
+ #include <ctype.h>
+diff -uNr /home/bms/x/y/papi-1.0_beta.orig/source/bsd-sysv-commands/in.lpd.c ./source/bsd-sysv-commands/in.lpd.c
+--- /home/bms/x/y/papi-1.0_beta.orig/source/bsd-sysv-commands/in.lpd.c 2006-01-28 07:02:04.000000000 +0000
++++ ./source/bsd-sysv-commands/in.lpd.c 2010-01-31 13:58:00.000000000 +0000
+@@ -6,6 +6,7 @@
+ #pragma ident "$Id: in.lpd.c,v 1.3 2006/01/28 07:02:04 njacobs Exp $"
+
+ #include <stdio.h>
++#include <stdlib.h>
+ #include <stdarg.h>
+ #include <string.h>
+ #include <errno.h>
+diff -uNr /home/bms/x/y/papi-1.0_beta.orig/source/bsd-sysv-commands/lp.c ./source/bsd-sysv-commands/lp.c
+--- /home/bms/x/y/papi-1.0_beta.orig/source/bsd-sysv-commands/lp.c 2006-02-25 01:08:06.000000000 +0000
++++ ./source/bsd-sysv-commands/lp.c 2010-01-31 13:57:30.000000000 +0000
+@@ -223,7 +223,7 @@
+ printer = DEFAULT_DEST;
+
+ if (modify == -1) {
+- char *document_format = "application/octet-stream";
++ const char *document_format = "application/octet-stream";
+
+ #ifdef MAGIC_MIME
+ if (optind != ac) {
+@@ -238,6 +238,7 @@
+ #endif
+
+ papiAttributeListAddInteger(&list, PAPI_ATTR_EXCL, "copies", 1);
++ /* XXX CONST arg */
+ papiAttributeListAddString(&list, PAPI_ATTR_EXCL,
+ "document-format", document_format);
+ papiAttributeListAddString(&list, PAPI_ATTR_EXCL,
+diff -uNr /home/bms/x/y/papi-1.0_beta.orig/source/bsd-sysv-commands/lpr.c ./source/bsd-sysv-commands/lpr.c
+--- /home/bms/x/y/papi-1.0_beta.orig/source/bsd-sysv-commands/lpr.c 2006-02-01 23:52:42.000000000 +0000
++++ ./source/bsd-sysv-commands/lpr.c 2010-01-31 13:57:05.000000000 +0000
+@@ -51,7 +51,7 @@
+ int validate = 0;
+ int remove = 0;
+ int copy = 1; /* default is to copy the data */
+- char *document_format = "application/octet-stream";
++ const char *document_format = "application/octet-stream";
+ int c;
+
+ (void) setlocale(LC_ALL, "");
+@@ -196,6 +196,7 @@
+ #endif
+
+ papiAttributeListAddInteger(&list, PAPI_ATTR_EXCL, "copies", 1);
++ /* XXX CONST arg */
+ papiAttributeListAddString(&list, PAPI_ATTR_EXCL,
+ "document-format", document_format);
+ papiAttributeListAddString(&list, PAPI_ATTR_EXCL,
+diff -uNr /home/bms/x/y/papi-1.0_beta.orig/source/examples/printer-query.c ./source/examples/printer-query.c
+--- /home/bms/x/y/papi-1.0_beta.orig/source/examples/printer-query.c 2005-10-31 18:53:11.000000000 +0000
++++ ./source/examples/printer-query.c 2010-01-31 13:50:47.000000000 +0000
+@@ -16,7 +16,9 @@
+ #include <string.h>
+ #include <locale.h>
+ #include <libintl.h>
++#ifdef HAVE_ALLOCA_H
+ #include <alloca.h>
++#endif
+ #include <papi.h>
+
+ static void
+diff -uNr /home/bms/x/y/papi-1.0_beta.orig/source/libipp-core/ipp_types.c ./source/libipp-core/ipp_types.c
+--- /home/bms/x/y/papi-1.0_beta.orig/source/libipp-core/ipp_types.c 2005-02-26 06:58:41.000000000 +0000
++++ ./source/libipp-core/ipp_types.c 2010-01-31 13:19:34.000000000 +0000
+@@ -11,7 +11,14 @@
+ #include <string.h>
+ #include <ipp.h>
+ #include <errno.h>
++#ifdef HAVE_VALUES_H
+ #include <values.h>
++#endif
++#include <limits.h>
++
++#ifndef MAXINT
++#define MAXINT INT_MAX
++#endif
+
+ #ifndef MININT
+ #define MININT (-MAXINT - 1)
+diff -uNr /home/bms/x/y/papi-1.0_beta.orig/source/libipp-core/read.c ./source/libipp-core/read.c
+--- /home/bms/x/y/papi-1.0_beta.orig/source/libipp-core/read.c 2006-01-28 07:02:04.000000000 +0000
++++ ./source/libipp-core/read.c 2010-01-31 13:20:03.000000000 +0000
+@@ -7,7 +7,9 @@
+
+ #include <stdio.h>
+ #include <stdlib.h>
++#ifdef HAVE_ALLOCA_H
+ #include <alloca.h>
++#endif
+ #include <string.h>
+ #include <stdarg.h>
+ #include <sys/types.h>
+diff -uNr /home/bms/x/y/papi-1.0_beta.orig/source/libipp-listener/common.c ./source/libipp-listener/common.c
+--- /home/bms/x/y/papi-1.0_beta.orig/source/libipp-listener/common.c 2006-02-26 07:40:38.000000000 +0000
++++ ./source/libipp-listener/common.c 2010-01-31 13:55:43.000000000 +0000
+@@ -74,7 +74,7 @@
+ } else {
+ *printer = job;
+ if ((job = strrchr(*printer, '/')) != NULL) {
+- *job = NULL;
++ *job = '\0';
+ *id = atoi(++job);
+ }
+ }
+@@ -230,7 +230,7 @@
+
+ name = strtok(buf, " \t\n");
+
+- for (i = 0; ((passed == 1) && (name[i] != NULL)); i++)
++ for (i = 0; ((passed == 1) && (name[i] != '\0')); i++)
+ if (isalpha(name[i]) != 0)
+ name[i] = tolower(name[i]);
+ else if ((name[i] == '_') || (name[i] == '-'))
+diff -uNr /home/bms/x/y/papi-1.0_beta.orig/source/libpapi-common/attribute.c ./source/libpapi-common/attribute.c
+--- /home/bms/x/y/papi-1.0_beta.orig/source/libpapi-common/attribute.c 2006-02-25 06:06:36.000000000 +0000
++++ ./source/libpapi-common/attribute.c 2010-01-31 13:10:28.000000000 +0000
+@@ -11,7 +11,9 @@
+ #include <stdlib.h>
+ #include <stdarg.h>
+ #include <string.h>
++#ifdef HAVE_ALLOCA_H
+ #include <alloca.h>
++#endif
+ #include <papi.h>
+
+ static void papiAttributeFree(papi_attribute_t *attribute);
+diff -uNr /home/bms/x/y/papi-1.0_beta.orig/source/libpapi-common/config.h.in ./source/libpapi-common/config.h.in
+--- /home/bms/x/y/papi-1.0_beta.orig/source/libpapi-common/config.h.in 2006-03-12 06:17:13.000000000 +0000
++++ ./source/libpapi-common/config.h.in 2010-02-06 20:05:40.000000000 +0000
+@@ -84,6 +84,10 @@
+ /* Define to 1 if you have the <unistd.h> header file. */
+ #undef HAVE_UNISTD_H
+
++/* Define to the sub-directory in which libtool stores uninstalled libraries.
++ */
++#undef LT_OBJDIR
++
+ /* Name of package */
+ #undef PACKAGE
+
+diff -uNr /home/bms/x/y/papi-1.0_beta.orig/source/libpapi-common/config.h.in~ ./source/libpapi-common/config.h.in~
+--- /home/bms/x/y/papi-1.0_beta.orig/source/libpapi-common/config.h.in~ 1970-01-01 01:00:00.000000000 +0100
++++ ./source/libpapi-common/config.h.in~ 2010-02-06 20:05:12.000000000 +0000
+@@ -0,0 +1,103 @@
++/* source/libpapi-common/config.h.in. Generated from configure.in by autoheader. */
++
++/* Define to 1 if you have the `dlopen' function. */
++#undef HAVE_DLOPEN
++
++/* Define to 1 if you have the `dlsym' function. */
++#undef HAVE_DLSYM
++
++/* Define to 1 if you have the `fprintf' function. */
++#undef HAVE_FPRINTF
++
++/* define if you have getipnodbyname */
++#undef HAVE_GETIPNODEBYNAME
++
++/* Define to 1 if you have the `getpassphrase' function. */
++#undef HAVE_GETPASSPHRASE
++
++/* Define to 1 if you have the `gettext' function. */
++#undef HAVE_GETTEXT
++
++/* Define to 1 if you have the <inttypes.h> header file. */
++#undef HAVE_INTTYPES_H
++
++/* Define to 1 if you have the `is_system_labeled' function. */
++#undef HAVE_IS_SYSTEM_LABELED
++
++/* Define to 1 if you have the `localtime' function. */
++#undef HAVE_LOCALTIME
++
++/* Define to 1 if you have the <memory.h> header file. */
++#undef HAVE_MEMORY_H
++
++/* Define to 1 if you have the <priv.h> header file. */
++#undef HAVE_PRIV_H
++
++/* define if you have rresvport_af */
++#undef HAVE_RRESVPORT_AF
++
++/* Define to 1 if you have the `snprintf' function. */
++#undef HAVE_SNPRINTF
++
++/* Define to 1 if you have the <stdarg.h> header file. */
++#undef HAVE_STDARG_H
++
++/* Define to 1 if you have the <stdint.h> header file. */
++#undef HAVE_STDINT_H
++
++/* Define to 1 if you have the <stdlib.h> header file. */
++#undef HAVE_STDLIB_H
++
++/* Define to 1 if you have the `strcmp' function. */
++#undef HAVE_STRCMP
++
++/* Define to 1 if you have the `strdup' function. */
++#undef HAVE_STRDUP
++
++/* Define to 1 if you have the `strerror' function. */
++#undef HAVE_STRERROR
++
++/* Define to 1 if you have the `strftime' function. */
++#undef HAVE_STRFTIME
++
++/* Define to 1 if you have the <strings.h> header file. */
++#undef HAVE_STRINGS_H
++
++/* Define to 1 if you have the <string.h> header file. */
++#undef HAVE_STRING_H
++
++/* Define to 1 if you have the `strlcat' function. */
++#undef HAVE_STRLCAT
++
++/* Define to 1 if you have the `strlcpy' function. */
++#undef HAVE_STRLCPY
++
++/* Define to 1 if you have the <sys/stat.h> header file. */
++#undef HAVE_SYS_STAT_H
++
++/* Define to 1 if you have the <sys/types.h> header file. */
++#undef HAVE_SYS_TYPES_H
++
++/* Define to 1 if you have the <unistd.h> header file. */
++#undef HAVE_UNISTD_H
++
++/* Define to the address where bug reports for this package should be sent. */
++#undef PACKAGE_BUGREPORT
++
++/* Define to the full name of this package. */
++#undef PACKAGE_NAME
++
++/* Define to the full name and version of this package. */
++#undef PACKAGE_STRING
++
++/* Define to the one symbol short name of this package. */
++#undef PACKAGE_TARNAME
++
++/* Define to the version of this package. */
++#undef PACKAGE_VERSION
++
++/* Define to 1 if you have the ANSI C header files. */
++#undef STDC_HEADERS
++
++/* Define to empty if `const' does not conform to ANSI C. */
++#undef const
+diff -uNr /home/bms/x/y/papi-1.0_beta.orig/source/libpapi-common/library.c ./source/libpapi-common/library.c
+--- /home/bms/x/y/papi-1.0_beta.orig/source/libpapi-common/library.c 2005-10-31 18:56:45.000000000 +0000
++++ ./source/libpapi-common/library.c 2010-01-31 13:10:49.000000000 +0000
+@@ -11,7 +11,9 @@
+ #include <stdio.h>
+ #include <stdarg.h>
+ #include <string.h>
++#ifdef HAVE_ALLOCA_H
+ #include <alloca.h>
++#endif
+ #include <libintl.h>
+ #include <papi.h>
+
+diff -uNr /home/bms/x/y/papi-1.0_beta.orig/source/libpapi-common/uri.c ./source/libpapi-common/uri.c
+--- /home/bms/x/y/papi-1.0_beta.orig/source/libpapi-common/uri.c 2005-09-21 20:04:53.000000000 +0100
++++ ./source/libpapi-common/uri.c 2010-01-31 13:08:57.000000000 +0000
+@@ -16,7 +16,7 @@
+ #include "uri.h"
+
+ static char *
+-strndup(char *string, size_t length)
++xstrndup(char *string, size_t length)
+ {
+ char *result = NULL;
+
+@@ -57,7 +57,7 @@
+ if ((*uri = u = calloc(1, sizeof (*u))) == NULL)
+ return (-1);
+
+- u->scheme = strndup(string, ptr - string);
++ u->scheme = xstrndup(string, ptr - string);
+
+ if ((ptr[1] == '/') && (ptr[2] == '/')) {
+ /*
+@@ -71,14 +71,14 @@
+ if ((path = end = strchr(string, '/')) == NULL)
+ for (end = string; *end != '\0'; end++);
+
+- u->host_part = strndup(string, end - string);
++ u->host_part = xstrndup(string, end - string);
+
+ for (host = string; host < end; host ++)
+ if (*host == '@') {
+ /* string to host is the user part */
+- u->user_part = strndup(string, host-string);
++ u->user_part = xstrndup(string, host-string);
+ /* host+1 to end is the host part */
+- u->host_part = strndup(host + 1,
++ u->host_part = xstrndup(host + 1,
+ end - (host+1));
+ user = string;
+ host++;
+@@ -90,11 +90,11 @@
+
+ for (password = user; (password < host - 1); password++)
+ if (*password == ':') {
+- u->password = strndup(password + 1,
++ u->password = xstrndup(password + 1,
+ host - password - 2);
+ break;
+ }
+- u->user = strndup(user, password - user);
++ u->user = xstrndup(user, password - user);
+ } else
+ host = string;
+
+@@ -106,10 +106,10 @@
+ break;
+
+ if (port < path) {
+- u->port = strndup(port + 1, path - port - 1);
++ u->port = xstrndup(port + 1, path - port - 1);
+ }
+
+- u->host = strndup(host, port - host);
++ u->host = xstrndup(host, port - host);
+ }
+
+ if (path != NULL) {
+@@ -129,12 +129,12 @@
+
+ fragment = strrchr(name, '#');
+ if ((fragment != NULL) && (*fragment != '\0')) {
+- u->fragment = strndup(fragment + 1,
++ u->fragment = xstrndup(fragment + 1,
+ end - fragment - 1);
+ end = fragment;
+ }
+
+- u->path = strndup(path, end - path);
++ u->path = xstrndup(path, end - path);
+ }
+ }
+ } else { /* scheme:scheme_part */
+diff -uNr /home/bms/x/y/papi-1.0_beta.orig/source/libpapi-cups/Makefile.am ./source/libpapi-cups/Makefile.am
+--- /home/bms/x/y/papi-1.0_beta.orig/source/libpapi-cups/Makefile.am 2005-10-31 18:56:45.000000000 +0000
++++ ./source/libpapi-cups/Makefile.am 2010-02-06 19:22:15.000000000 +0000
+@@ -8,7 +8,7 @@
+
+ lib_LTLIBRARIES = psm-cups.la
+
+-psm_cups_la_LIBADD = -ldl -L@CUPS_PREFIX@/lib -lcups
++psm_cups_la_LIBADD = -L@CUPS_PREFIX@/lib -lcups
+ psm_cups_la_LDFLAGS = -module -avoid-version
+
+ psm_cupsincludedir = $(includedir)
+diff -uNr /home/bms/x/y/papi-1.0_beta.orig/source/libpapi-dynamic/Makefile.am ./source/libpapi-dynamic/Makefile.am
+--- /home/bms/x/y/papi-1.0_beta.orig/source/libpapi-dynamic/Makefile.am 2006-03-12 06:15:09.000000000 +0000
++++ ./source/libpapi-dynamic/Makefile.am 2010-02-06 19:22:30.000000000 +0000
+@@ -8,7 +8,7 @@
+
+ lib_LTLIBRARIES = libpapi.la
+
+-libpapi_la_LIBADD = ../libpapi-common/libpapi-common.la -ldl
++libpapi_la_LIBADD = ../libpapi-common/libpapi-common.la
+ libpapi_la_LDFLAGS = @MAPFLAGS@
+
+ libpapiincludedir = $(includedir)
+@@ -23,7 +23,6 @@
+ libpapi_la_SOURCES += nss/nss-emulation.c nss/nss-files.c nss/nss-printcap.c \
+ nss/nss-nis.c
+ AM_CPPFLAGS += -I./nss -DNSS_EMULATION
+-libpapi_la_LIBADD += -lnsl
+ libpapi_la_LDFLAGS += @MAPFLAGS@-emulation
+ endif
+
+diff -uNr /home/bms/x/y/papi-1.0_beta.orig/source/libpapi-dynamic/nss/nss-emulation.h ./source/libpapi-dynamic/nss/nss-emulation.h
+--- /home/bms/x/y/papi-1.0_beta.orig/source/libpapi-dynamic/nss/nss-emulation.h 2005-02-26 06:58:42.000000000 +0000
++++ ./source/libpapi-dynamic/nss/nss-emulation.h 2010-01-31 13:14:18.000000000 +0000
+@@ -18,6 +18,10 @@
+ NSS_RETURN
+ } nss_status_t;
+
++/* FreeBSD doesn't define YPERR_SUCCESS */
++#ifndef YPERR_SUCCESS
++#define YPERR_SUCCESS 0
++#endif /* YPERR_SUCCESS */
+
+ /* Convert YP error number to NSS error number. */
+ static nss_status_t yperr2nss_tab[] =
+diff -uNr /home/bms/x/y/papi-1.0_beta.orig/source/libpapi-dynamic/psm.c ./source/libpapi-dynamic/psm.c
+--- /home/bms/x/y/papi-1.0_beta.orig/source/libpapi-dynamic/psm.c 2006-02-23 19:35:34.000000000 +0000
++++ ./source/libpapi-dynamic/psm.c 2010-01-31 13:52:45.000000000 +0000
+@@ -60,7 +60,7 @@
+ void *
+ psm_sym(service_t *svc, char *name)
+ {
+- char *error = "invalid input";
++ const char *error = "invalid input";
+ void *func = NULL;
+
+ if ((svc != NULL) && (svc->so_handle != NULL) && (name != NULL)) {
+diff -uNr /home/bms/x/y/papi-1.0_beta.orig/source/libpapi-dynamic/service.c ./source/libpapi-dynamic/service.c
+--- /home/bms/x/y/papi-1.0_beta.orig/source/libpapi-dynamic/service.c 2006-02-23 19:35:34.000000000 +0000
++++ ./source/libpapi-dynamic/service.c 2010-01-31 13:11:35.000000000 +0000
+@@ -11,7 +11,9 @@
+ #include <stdio.h>
+ #include <stdarg.h>
+ #include <string.h>
++#ifdef HAVE_ALLOCA_H
+ #include <alloca.h>
++#endif
+ #include <libintl.h>
+ #include <papi_impl.h>
+
+diff -uNr /home/bms/x/y/papi-1.0_beta.orig/source/libpapi-ipp/http-core/md5passwd.c ./source/libpapi-ipp/http-core/md5passwd.c
+--- /home/bms/x/y/papi-1.0_beta.orig/source/libpapi-ipp/http-core/md5passwd.c 2005-08-29 06:07:20.000000000 +0100
++++ ./source/libpapi-ipp/http-core/md5passwd.c 2010-01-31 13:54:46.000000000 +0000
+@@ -35,6 +35,8 @@
+ * Include necessary headers...
+ */
+
++#include <stdio.h>
++
+ #include "http.h"
+ #include "string.h"
+
+diff -uNr /home/bms/x/y/papi-1.0_beta.orig/source/libpapi-ipp/service.c ./source/libpapi-ipp/service.c
+--- /home/bms/x/y/papi-1.0_beta.orig/source/libpapi-ipp/service.c 2006-01-28 07:02:05.000000000 +0000
++++ ./source/libpapi-ipp/service.c 2010-01-31 13:39:58.000000000 +0000
+@@ -11,7 +11,9 @@
+ #include <stdio.h>
+ #include <stdarg.h>
+ #include <string.h>
++#ifdef HAVE_ALLOCA_H
+ #include <alloca.h>
++#endif
+ #include <libintl.h>
+ #include <papi_impl.h>
+
+diff -uNr /home/bms/x/y/papi-1.0_beta.orig/source/libpapi-lpd/job.c ./source/libpapi-lpd/job.c
+--- /home/bms/x/y/papi-1.0_beta.orig/source/libpapi-lpd/job.c 2005-10-31 18:56:45.000000000 +0000
++++ ./source/libpapi-lpd/job.c 2010-01-31 13:31:14.000000000 +0000
+@@ -7,7 +7,7 @@
+
+ #include <stdlib.h>
+ #include <stdio.h>
+-#include <strings.h>
++#include <string.h>
+ #include <errno.h>
+ #include <unistd.h>
+ #include <limits.h>
+diff -uNr /home/bms/x/y/papi-1.0_beta.orig/source/libpapi-lpd/library.c ./source/libpapi-lpd/library.c
+--- /home/bms/x/y/papi-1.0_beta.orig/source/libpapi-lpd/library.c 2005-10-31 18:56:45.000000000 +0000
++++ ./source/libpapi-lpd/library.c 2010-01-31 13:24:20.000000000 +0000
+@@ -9,7 +9,9 @@
+ #include <stdio.h>
+ #include <stdarg.h>
+ #include <string.h>
++#ifdef HAVE_ALLOCA_H
+ #include <alloca.h>
++#endif
+ #include <libintl.h>
+ #include <papi_impl.h>
+
+diff -uNr /home/bms/x/y/papi-1.0_beta.orig/source/libpapi-lpd/lpd-cancel.c ./source/libpapi-lpd/lpd-cancel.c
+--- /home/bms/x/y/papi-1.0_beta.orig/source/libpapi-lpd/lpd-cancel.c 2005-02-26 06:58:42.000000000 +0000
++++ ./source/libpapi-lpd/lpd-cancel.c 2010-01-31 13:32:34.000000000 +0000
+@@ -32,7 +32,7 @@
+
+ memset(buf, 0, sizeof (buf));
+ if (fdgets(buf, sizeof (buf), fd) != NULL) {
+- if (buf[0] == NULL)
++ if (buf[0] == '\0')
+ status = PAPI_NOT_FOUND;
+ else if (strstr(buf, "permission denied") != NULL)
+ status = PAPI_NOT_AUTHORIZED;
+diff -uNr /home/bms/x/y/papi-1.0_beta.orig/source/libpapi-lpd/lpd-job.c ./source/libpapi-lpd/lpd-job.c
+--- /home/bms/x/y/papi-1.0_beta.orig/source/libpapi-lpd/lpd-job.c 2005-02-26 06:58:42.000000000 +0000
++++ ./source/libpapi-lpd/lpd-job.c 2010-01-31 13:31:51.000000000 +0000
+@@ -14,7 +14,7 @@
+ #include <sys/types.h>
+ #include <sys/stat.h>
+ #include <fcntl.h>
+-#include <strings.h>
++#include <string.h>
+ #include <pwd.h>
+ #include <libintl.h>
+ #include <papi_impl.h>
+diff -uNr /home/bms/x/y/papi-1.0_beta.orig/source/libpapi-lpd/lpd-misc.c ./source/libpapi-lpd/lpd-misc.c
+--- /home/bms/x/y/papi-1.0_beta.orig/source/libpapi-lpd/lpd-misc.c 2005-09-21 20:22:10.000000000 +0100
++++ ./source/libpapi-lpd/lpd-misc.c 2010-01-31 13:34:16.000000000 +0000
+@@ -16,8 +16,15 @@
+ #include <signal.h>
+ #include <sys/socket.h>
+ #include <errno.h>
++#ifdef HAVE_WAIT_H
+ #include <wait.h>
++#endif
++/*#ifdef HAVE_SYS_WAIT_H*/
++#include <sys/wait.h>
++/*#endif*/
++#ifdef HAVE_STROPTS_H
+ #include <stropts.h>
++#endif
+ #include <papi_impl.h>
+
+ #include <config-site.h>
+@@ -28,7 +35,7 @@
+ char tmp;
+ int count = 0;
+
+- memset(buf, NULL, len);
++ memset(buf, 0, len);
+ while ((count < len) && (read(fd, &tmp, 1) > 0))
+ if ((buf[count++] = tmp) == '\n') break;
+
+diff -uNr /home/bms/x/y/papi-1.0_beta.orig/source/libpapi-lpd/lpd-port.c ./source/libpapi-lpd/lpd-port.c
+--- /home/bms/x/y/papi-1.0_beta.orig/source/libpapi-lpd/lpd-port.c 2005-09-21 20:22:22.000000000 +0100
++++ ./source/libpapi-lpd/lpd-port.c 2010-01-31 13:29:02.000000000 +0000
+@@ -22,22 +22,35 @@
+ #include <netdb.h>
+ #include <errno.h>
+ #include <syslog.h>
++#ifdef HAVE_VALUES_H
+ #include <values.h>
++#endif
++#ifdef HAVE_STROPTS_H
+ #include <stropts.h> /* for sendfd */
++#endif
+ #include <sys/uio.h> /* for sendmsg stuff */
+ #include <pwd.h>
++#ifdef HAVE_SYS_SENDFILE_H
+ #include <sys/sendfile.h>
++#endif
+ #include <ctype.h>
++#ifdef HAVE_ALLOCA_H
+ #include <alloca.h>
++#endif
+ #ifdef HAVE_PRIV_H
+ #include <priv.h>
+ #endif
+ #include <papi_impl.h>
++#include <limits.h>
+
+ #ifndef JOB_ID_FILE
+ #define JOB_ID_FILE "/var/run/rfc-1179.seq"
+ #endif /* JOB_ID_FILE */
+
++#ifndef MAXINT
++#define MAXINT INT_MAX
++#endif
++
+ static int
+ sendfd(int sockfd, int fd)
+ {
+@@ -109,7 +122,7 @@
+ }
+
+ /* linux style NULL usage */
+- (void) memset((char *)&sin, (int)NULL, sizeof (sin));
++ (void) memset((char *)&sin, (int)0, sizeof (sin));
+
+ #if defined(HAVE_GETIPNODEBYNAME) && defined(HAVE_RRESVPORT_AF)
+ if ((hp = getipnodebyname(uri->host, AF_INET6, AI_DEFAULT,
+@@ -381,8 +394,14 @@
+
+ if (fd != -1) {
+ /* write the data */
++#ifdef __FreeBSD__
++ if (sendfile(sock, fd, off, st.st_size, NULL, NULL, 0) !=
++ st.st_size)
++ return (-1);
++#else
+ if (sendfile(sock, fd, &off, st.st_size) != st.st_size)
+ return (-1);
++#endif
+ close(fd);
+
+ /* request ack/nack after the data transfer */
+@@ -502,7 +521,7 @@
+ errno = err;
+ return (-1);
+ }
+- if (strcmp(name, "standard input") != NULL)
++ if (strcmp(name, "standard input") != 0)
+ sent_files++;
+ }
+
+diff -uNr /home/bms/x/y/papi-1.0_beta.orig/source/libpapi-lpd/lpd-query.c ./source/libpapi-lpd/lpd-query.c
+--- /home/bms/x/y/papi-1.0_beta.orig/source/libpapi-lpd/lpd-query.c 2005-10-01 06:49:10.000000000 +0100
++++ ./source/libpapi-lpd/lpd-query.c 2010-01-31 13:33:04.000000000 +0000
+@@ -82,7 +82,7 @@
+ do { q--; } while (isdigit(*q) != 0);
+
+ /* seperate the name and size */
+- *q = NULL;
++ *q = '\0';
+ q++;
+
+ size = atoi(q);
+diff -uNr /home/bms/x/y/papi-1.0_beta.orig/source/libpapi-lpd/service.c ./source/libpapi-lpd/service.c
+--- /home/bms/x/y/papi-1.0_beta.orig/source/libpapi-lpd/service.c 2005-10-31 18:56:45.000000000 +0000
++++ ./source/libpapi-lpd/service.c 2010-01-31 13:21:20.000000000 +0000
+@@ -9,7 +9,9 @@
+ #include <stdio.h>
+ #include <string.h>
+ #include <stdarg.h>
++#ifdef HAVE_ALLOCA_H
+ #include <alloca.h>
++#endif
+ #include <uri.h>
+ #include <papi_impl.h>
+
+Files /home/bms/x/y/papi-1.0_beta.orig/source/mod_ipp/.mod_ipp.c.swp and ./source/mod_ipp/.mod_ipp.c.swp differ
+diff -uNr /home/bms/x/y/papi-1.0_beta.orig/source/mod_ipp/mod_ipp.c ./source/mod_ipp/mod_ipp.c
+--- /home/bms/x/y/papi-1.0_beta.orig/source/mod_ipp/mod_ipp.c 2006-02-14 06:36:49.000000000 +0000
++++ ./source/mod_ipp/mod_ipp.c 2010-01-31 13:49:30.000000000 +0000
+@@ -14,9 +14,13 @@
+ #include <stdio.h>
+ #include <time.h>
+ #include <sys/time.h>
++#ifdef HAVE_VALUES_H
+ #include <values.h>
++#endif
+ #include <libintl.h>
++#ifdef HAVE_ALLOCA_H
+ #include <alloca.h>
++#endif
+
+ #include "httpd.h"
+ #include "http_config.h"
+@@ -170,7 +174,7 @@
+ va_end(args);
+
+ #ifdef APACHE2
+- ap_log_rerror(file, line, level, NULL, r, message);
++ ap_log_rerror(file, line, level, 0, r, message);
+ #else
+ ap_log_rerror(file, line, level, r, message);
+ #endif
+@@ -264,6 +268,7 @@
+ config->default_svc);
+ }
+
++#if defined(sun)
+ /*
+ * For Trusted Solaris, pass the fd number of the socket connection
+ * to the backend so the it can be forwarded to the backend print
+@@ -272,6 +277,7 @@
+ */
+ (void) papiAttributeListAddInteger(&request, PAPI_ATTR_EXCL,
+ "peer-socket", ap_bfileno(r->connection->client, B_RD));
++#endif
+
+ /* process the request */
+ status = ipp_process_request(request, &response, read_data, r);
diff --git a/print/openprinting/pkg-descr b/print/openprinting/pkg-descr
new file mode 100644
index 000000000000..69fc37acdf4c
--- /dev/null
+++ b/print/openprinting/pkg-descr
@@ -0,0 +1,11 @@
+This package contains implentations of the Free Standards Group (FSG)
+Open Printing API (PAPI) (v1.0) and client software that uses it.
+The implemenations of the API are designed so that they can be used
+individually to support client application interaction with a particular
+type of print service or together to interact with a variety of different
+print service types.
+
+WWW: http://openprinting.sourceforge.net/
+
+Bruce
+bms@FreeBSD.org
diff --git a/print/openprinting/pkg-message b/print/openprinting/pkg-message
new file mode 100644
index 000000000000..61d840c9b1ba
--- /dev/null
+++ b/print/openprinting/pkg-message
@@ -0,0 +1,11 @@
+==================================================================
+
+USE THIS PORT STRICTLY AT YOUR OWN RISK!
+
+The mod_ipp module dumps core, and the psm_cups.so does not
+compile with these sources as shipped. Therefore, this port
+defaults to shipping the include files and libraries only.
+
+USE THIS PORT STRICTLY AT YOUR OWN RISK!
+
+==================================================================