aboutsummaryrefslogtreecommitdiffstats
path: root/recipes/cups
diff options
context:
space:
mode:
authorSteve Sakoman <steve@sakoman.com>2011-04-02 08:33:48 -0700
committerKoen Kooi <koen@openembedded.org>2011-05-08 20:24:24 +0200
commite72de8aa48bb4f8017dbf032b4d480676af809d8 (patch)
treea94808fb2dfa8bef20eed700ff9e981f1b01d222 /recipes/cups
parentf73affe12718ef91a2dc9932565b31c00fce9cd5 (diff)
downloadopenembedded-e72de8aa48bb4f8017dbf032b4d480676af809d8.tar.gz
cups: Add recipe for 1.4.6
Signed-off-by: Steve Sakoman <steve@sakoman.com> Signed-off-by: Koen Kooi <koen@openembedded.org>
Diffstat (limited to 'recipes/cups')
-rw-r--r--recipes/cups/cups-1.4.6/configure.patch117
-rw-r--r--recipes/cups/cups-1.4.6/skip_tools.patch51
-rw-r--r--recipes/cups/cups-1.4.6/text.convs6
-rw-r--r--recipes/cups/cups-1.4.6/textonly124
-rw-r--r--recipes/cups/cups-1.4.6/textonly.ppd47
-rw-r--r--recipes/cups/cups-1.4.6/use_echo_only_in_init.patch11
-rw-r--r--recipes/cups/cups_1.4.6.bb114
7 files changed, 470 insertions, 0 deletions
diff --git a/recipes/cups/cups-1.4.6/configure.patch b/recipes/cups/cups-1.4.6/configure.patch
new file mode 100644
index 0000000000..877e8d3232
--- /dev/null
+++ b/recipes/cups/cups-1.4.6/configure.patch
@@ -0,0 +1,117 @@
+--- cups-1.4.3/configure.orig 2010-04-08 11:14:19.092296014 +0200
++++ cups-1.4.3/configure 2010-04-08 11:19:02.661417938 +0200
+@@ -10940,114 +10940,6 @@
+ OPTIM="-fPIC $OPTIM"
+ fi
+
+- # The -fstack-protector option is available with some versions of
+- # GCC and adds "stack canaries" which detect when the return address
+- # has been overwritten, preventing many types of exploit attacks.
+- { echo "$as_me:$LINENO: checking if GCC supports -fstack-protector" >&5
+-echo $ECHO_N "checking if GCC supports -fstack-protector... $ECHO_C" >&6; }
+- OLDCFLAGS="$CFLAGS"
+- CFLAGS="$CFLAGS -fstack-protector"
+- cat >conftest.$ac_ext <<_ACEOF
+-/* confdefs.h. */
+-_ACEOF
+-cat confdefs.h >>conftest.$ac_ext
+-cat >>conftest.$ac_ext <<_ACEOF
+-/* end confdefs.h. */
+-
+-int
+-main ()
+-{
+-
+- ;
+- return 0;
+-}
+-_ACEOF
+-rm -f conftest.$ac_objext conftest$ac_exeext
+-if { (ac_try="$ac_link"
+-case "(($ac_try" in
+- *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+- *) ac_try_echo=$ac_try;;
+-esac
+-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+- (eval "$ac_link") 2>conftest.er1
+- ac_status=$?
+- grep -v '^ *+' conftest.er1 >conftest.err
+- rm -f conftest.er1
+- cat conftest.err >&5
+- echo "$as_me:$LINENO: \$? = $ac_status" >&5
+- (exit $ac_status); } && {
+- test -z "$ac_c_werror_flag" ||
+- test ! -s conftest.err
+- } && test -s conftest$ac_exeext &&
+- $as_test_x conftest$ac_exeext; then
+- OPTIM="$OPTIM -fstack-protector"
+- { echo "$as_me:$LINENO: result: yes" >&5
+-echo "${ECHO_T}yes" >&6; }
+-else
+- echo "$as_me: failed program was:" >&5
+-sed 's/^/| /' conftest.$ac_ext >&5
+-
+- { echo "$as_me:$LINENO: result: no" >&5
+-echo "${ECHO_T}no" >&6; }
+-fi
+-
+-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
+- conftest$ac_exeext conftest.$ac_ext
+- CFLAGS="$OLDCFLAGS"
+-
+- # The -pie option is available with some versions of GCC and adds
+- # randomization of addresses, which avoids another class of exploits
+- # that depend on a fixed address for common functions.
+- { echo "$as_me:$LINENO: checking if GCC supports -pie" >&5
+-echo $ECHO_N "checking if GCC supports -pie... $ECHO_C" >&6; }
+- OLDCFLAGS="$CFLAGS"
+- CFLAGS="$CFLAGS -pie -fPIE"
+- cat >conftest.$ac_ext <<_ACEOF
+-/* confdefs.h. */
+-_ACEOF
+-cat confdefs.h >>conftest.$ac_ext
+-cat >>conftest.$ac_ext <<_ACEOF
+-/* end confdefs.h. */
+-
+-int
+-main ()
+-{
+-
+- ;
+- return 0;
+-}
+-_ACEOF
+-rm -f conftest.$ac_objext
+-if { (ac_try="$ac_compile"
+-case "(($ac_try" in
+- *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+- *) ac_try_echo=$ac_try;;
+-esac
+-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+- (eval "$ac_compile") 2>conftest.er1
+- ac_status=$?
+- grep -v '^ *+' conftest.er1 >conftest.err
+- rm -f conftest.er1
+- cat conftest.err >&5
+- echo "$as_me:$LINENO: \$? = $ac_status" >&5
+- (exit $ac_status); } && {
+- test -z "$ac_c_werror_flag" ||
+- test ! -s conftest.err
+- } && test -s conftest.$ac_objext; then
+- PIEFLAGS="-pie -fPIE"
+- { echo "$as_me:$LINENO: result: yes" >&5
+-echo "${ECHO_T}yes" >&6; }
+-else
+- echo "$as_me: failed program was:" >&5
+-sed 's/^/| /' conftest.$ac_ext >&5
+-
+- { echo "$as_me:$LINENO: result: no" >&5
+-echo "${ECHO_T}no" >&6; }
+-fi
+-
+-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+- CFLAGS="$OLDCFLAGS"
+-
+ if test "x$with_optim" = x; then
+ # Add useful warning options for tracking down problems...
+ OPTIM="-Wall -Wno-format-y2k $OPTIM"
diff --git a/recipes/cups/cups-1.4.6/skip_tools.patch b/recipes/cups/cups-1.4.6/skip_tools.patch
new file mode 100644
index 0000000000..8351f40f51
--- /dev/null
+++ b/recipes/cups/cups-1.4.6/skip_tools.patch
@@ -0,0 +1,51 @@
+--- cups-1.4.6/ppdc/Makefile-orig 2011-01-06 14:21:05.000000000 -0800
++++ cups-1.4.6/ppdc/Makefile 2011-04-02 08:22:23.000000000 -0700
+@@ -243,8 +243,8 @@ genstrings: genstrings.o libcupsppdc.a
+ $(CXX) $(ARCHFLAGS) $(LDFLAGS) -o genstrings genstrings.o \
+ libcupsppdc.a ../cups/libcups.a $(LIBGSSAPI) $(SSLLIBS) \
+ $(DNSSDLIBS) $(COMMONLIBS) $(LIBZ)
+- echo Generating localization strings...
+- ./genstrings >sample.c
++# echo Generating localization strings...
++# ./genstrings >sample.c
+
+
+ #
+@@ -261,9 +261,9 @@ ppdc-static: ppdc.o libcupsppdc.a ../c
+ $(CXX) $(ARCHFLAGS) $(LDFLAGS) -o ppdc-static ppdc.o libcupsppdc.a \
+ ../cups/libcups.a $(LIBGSSAPI) $(SSLLIBS) $(DNSSDLIBS) \
+ $(COMMONLIBS) $(LIBZ)
+- echo Testing PPD compiler...
+- ./ppdc-static -l en,fr -I ../data foo.drv
+- ./ppdc-static -l en,fr -z -I ../data foo.drv
++# echo Testing PPD compiler...
++# ./ppdc-static -l en,fr -I ../data foo.drv
++# ./ppdc-static -l en,fr -z -I ../data foo.drv
+
+
+ #
+@@ -291,15 +291,15 @@ ppdi-static: ppdc-static ppdi.o libcups
+ $(COMMONLIBS) $(LIBZ)
+ echo Testing PPD importer...
+ $(RM) -r ppd ppd2 sample-import.drv
+- ./ppdc-static -I ../data sample.drv
+- ./ppdi-static -I ../data -o sample-import.drv ppd/*
+- ./ppdc-static -I ../data -d ppd2 sample-import.drv
+- if diff -r ppd ppd2 >/dev/null; then \
+- echo PPD import OK; \
+- else \
+- echo PPD import FAILED; \
+- exit 1; \
+- fi
++# ./ppdc-static -I ../data sample.drv
++# ./ppdi-static -I ../data -o sample-import.drv ppd/*
++# ./ppdc-static -I ../data -d ppd2 sample-import.drv
++# if diff -r ppd ppd2 >/dev/null; then \
++# echo PPD import OK; \
++# else \
++# echo PPD import FAILED; \
++# exit 1; \
++# fi
+
+
+ #
diff --git a/recipes/cups/cups-1.4.6/text.convs b/recipes/cups/cups-1.4.6/text.convs
new file mode 100644
index 0000000000..20a845dd7c
--- /dev/null
+++ b/recipes/cups/cups-1.4.6/text.convs
@@ -0,0 +1,6 @@
+application/x-cshell text/plain 100 -
+application/x-csource text/plain 100 -
+application/x-perl text/plain 100 -
+application/x-shell text/plain 100 -
+text/html text/plain 100 -
+text/css text/plain 100 -
diff --git a/recipes/cups/cups-1.4.6/textonly b/recipes/cups/cups-1.4.6/textonly
new file mode 100644
index 0000000000..25850cc740
--- /dev/null
+++ b/recipes/cups/cups-1.4.6/textonly
@@ -0,0 +1,124 @@
+#!/bin/bash
+## Copyright (C) 2003-2006 Red Hat, Inc.
+## Copyright (C) 2003-2006 Tim Waugh <twaugh@redhat.com>
+## Changed on 2007/05/17, Opher Shachar, LADPC Ltd.
+## Added support for page-ranges option.
+## Added page accounting.
+
+## This program is free software; you can redistribute it and/or modify
+## it under the terms of the GNU General Public License as published by
+## the Free Software Foundation; either version 2 of the License, or
+## (at your option) any later version.
+
+## This program is distributed in the hope that it will be useful,
+## but WITHOUT ANY WARRANTY; without even the implied warranty of
+## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+## GNU General Public License for more details.
+
+## You should have received a copy of the GNU General Public License
+## along with this program; if not, write to the Free Software
+## Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+
+if [ $# == 0 ]; then
+ echo >&2 "ERROR: $0 job-id user title copies options [file]"
+ exit 1
+fi
+
+# Extract the papersize
+SENDFF=`grep '^\*DefaultSendFF' "$PPD" | cut -d\ -f2`
+COPIES=1
+if [ $# -ge 4 ]; then
+ COPIES="$4"
+fi
+
+if [ "$COPIES" -gt 1 ] && [ $# -lt 6 ]; then
+ unset TMPFILE
+ trap -- 'rm -f "$TMPFILE"' EXIT
+ TMPFILE=$(mktemp ${TMPDIR:-/tmp}/textonly.XXXXXX)
+ cat > "$TMPFILE"
+else
+ TMPFILE="$6"
+fi
+
+PR=${5#*page-ranges=}
+# Do options specify page-ranges?
+if [[ "$PR" != "$5" ]]; then
+ PR=${PR%% *}
+else
+ #unset PR
+ PR=1-999999
+fi
+
+if [[ "$PR" ]]; then
+ TMPFILE2=$(mktemp ${TMPDIR:-/tmp}/textonly2.XXXXXX)
+ pagenum=0
+ EOF=
+ {
+ while [[ "$PR" ]]; do
+ pl=${PR%%,*} ;# take first subrange
+ PR=${PR#$pl};PR=${PR#,} ;# remove from range list
+ pu=${pl#*-} ;# extract upper and lower
+ pl=${pl%-*} ;# pages of subrange
+ # Allows interpreting 0-5,3-10 as 1-5,6-10 rejects 5-1 or 1-
+ (( pagenum >= pl )) && pl=$(( pagenum + 1 ))
+ (( pl > pu )) && continue
+
+ # Loop reading pages until at or over lower page of subrange.
+ while read -d `echo -ne '\f'` -r; do
+ (( pagenum++ ))
+ (( pagenum == pl )) && break
+ done
+ # Did we reach lower page of subrange or EOF?
+ if (( pagenum < pl )); then
+ [[ ! "$REPLY" ]] && break ;# empty last page - we're done.
+ (( pagenum++ ))
+ EOF=y
+ fi
+ # Output page and report to page log
+ if (( pagenum == pl )); then
+ echo -n "${REPLY}" >>"$TMPFILE2"
+ # If EOF then page has no final FF
+ [[ ! "$EOF" ]] && echo -ne '\f' >>"$TMPFILE2"
+ echo "PAGE: $pagenum $COPIES" >&2
+ fi
+ [[ "$EOF" ]] && break
+ # Is the current subrange a single page?
+ (( pagenum == pu )) && continue
+ while read -d `echo -ne '\f'` -r; do
+ (( pagenum++ ))
+ echo -ne "${REPLY}\f" >>"$TMPFILE2"
+ echo "PAGE: $pagenum $COPIES" >&2
+ (( pagenum == pu )) && break
+ done
+ # Could be that we reached EOF before page boundry
+ if (( pagenum < pu )); then
+ if [[ "$REPLY" ]]; then
+ (( pagenum++ ))
+ echo -n "${REPLY}" >>"$TMPFILE2"
+ echo "PAGE: $pagenum $COPIES" >&2
+ fi
+ break
+ fi
+ done
+ } <"$TMPFILE"
+else
+ TMPFILE2="$TMPFILE"
+ pc=$(grep -co `echo -ne '\f'` "$TMPFILE2")
+ pc=$(( pc * $COPIES ))
+ echo "PAGE: $pc" >&2
+fi
+
+while [ "$COPIES" -gt 0 ]; do
+ # Just translate LF->CRLF at the moment, until the PPD has options added.
+ sed -e 's/$/'`echo -ne '\r'`'/g' "$TMPFILE2"
+
+ if [ "$SENDFF" == "True" ]
+ then
+ echo -ne \\14
+ fi
+
+ COPIES=$(($COPIES - 1))
+done
+# Cleanup
+[[ "$TMPFILE" != "$TMPFILE2" ]] && rm -f "$TMPFILE2"
+exit 0
diff --git a/recipes/cups/cups-1.4.6/textonly.ppd b/recipes/cups/cups-1.4.6/textonly.ppd
new file mode 100644
index 0000000000..89060bc51e
--- /dev/null
+++ b/recipes/cups/cups-1.4.6/textonly.ppd
@@ -0,0 +1,47 @@
+*PPD-Adobe: "4.3"
+*%
+*% Text-only printer definition
+*%
+*FormatVersion: "4.3"
+*FileVersion: "1.1"
+*LanguageVersion: English
+*LanguageEncoding: ISOLatin1
+*PCFileName: "TEXTONLY.PPD"
+*Manufacturer: "Generic"
+*Product: "(Generic)"
+*cupsVersion: 1.0
+*cupsManualCopies: True
+*cupsModelNumber: 2
+*cupsFilter: "text/plain 0 textonly"
+*ModelName: "Generic text-only printer"
+*ShortNickName: "Generic text-only printer"
+*NickName: "Generic text-only printer"
+*PSVersion: "(2017.000) 0"
+*LanguageLevel: "2"
+*ColorDevice: False
+*DefaultColorSpace: Gray
+*FileSystem: False
+*Throughput: "8"
+*LandscapeOrientation: Plus90
+*VariablePaperSize: False
+*TTRasterizer: Type42
+*DefaultImageableArea: Letter
+*ImageableArea Letter/US Letter: "18 36 594 756"
+*DefaultPaperDimension: Letter
+*PaperDimension Letter/Letter: "612 792"
+*OpenUI *PageSize/Media Size: PickOne
+*OrderDependency: 10 AnySetup *PageSize
+*DefaultPageSize: Letter
+*PageSize Letter/Letter: "<</PageSize[612 792]/ImagingBBox null>>setpagedevice"
+*CloseUI: *PageSize
+*OpenUI *PageRegion: PickOne
+*OrderDependency: 10 AnySetup *PageRegion
+*DefaultPageRegion: Letter
+*PageRegion Letter/Letter: "<</PageSize[612 792]/ImagingBBox null>>setpagedevice"
+*CloseUI: *PageRegion
+
+*OpenUI *SendFF: Boolean
+*DefaultSendFF: False
+*SendFF True/True: ""
+*SendFF False/False: ""
+*CloseUI: *SendFF
diff --git a/recipes/cups/cups-1.4.6/use_echo_only_in_init.patch b/recipes/cups/cups-1.4.6/use_echo_only_in_init.patch
new file mode 100644
index 0000000000..21ff0e535b
--- /dev/null
+++ b/recipes/cups/cups-1.4.6/use_echo_only_in_init.patch
@@ -0,0 +1,11 @@
+--- a/init/cups.sh.in.orig 2008-10-04 16:50:46.000000000 -0300
++++ b/init/cups.sh.in 2008-10-04 16:51:39.000000000 -0300
+@@ -68,7 +68,7 @@
+ ECHO_ERROR=:
+ ;;
+
+- Linux*)
++ DISABLELinux*)
+ IS_ON=/bin/true
+ if test -f /etc/init.d/functions; then
+ . /etc/init.d/functions
diff --git a/recipes/cups/cups_1.4.6.bb b/recipes/cups/cups_1.4.6.bb
new file mode 100644
index 0000000000..4053186c01
--- /dev/null
+++ b/recipes/cups/cups_1.4.6.bb
@@ -0,0 +1,114 @@
+#package the html for the webgui inside the main packages (~1MB uncompressed)
+DESCRIPTION = "An Internet printing system for Unix."
+SECTION = "console/utils"
+LICENSE = "GPL LGPL"
+DEPENDS = "gnutls libpng jpeg dbus dbus-glib zlib fakeroot-native"
+DEPENDS += "virtual/libusb0"
+PROVIDES = "cups14"
+
+SRC_URI = "ftp://ftp.easysw.com/pub/cups/${PV}/cups-${PV}-source.tar.bz2 \
+ file://use_echo_only_in_init.patch \
+ file://skip_tools.patch \
+ file://configure.patch \
+ file://textonly.ppd \
+ file://textonly \
+ file://text.convs \
+ "
+SRC_URI[md5sum] = "de8fb5a29c36554925c0c6a6e2c0dae1"
+SRC_URI[sha256sum] = "f08711702a77b52c7150f96fe1f45482f6151cb95ef601268c528607fe6ad514"
+
+inherit autotools binconfig
+
+EXTRA_OECONF = "--enable-gnutls \
+ --enable-dbus \
+ --enable-browsing \
+ --disable-openssl \
+ --disable-tiff \
+ --without-php \
+ --without-perl \
+ --without-python \
+ --without-java \
+ --disable-gssapi \
+ --disable-largefile \
+ --enable-debug \
+ --disable-relro \
+ --enable-libusb \
+ "
+
+do_configure() {
+ gnu-configize
+ libtoolize --force
+ DSOFLAGS="${LDFLAGS}" oe_runconf
+}
+do_compile () {
+ sed -i s:STRIP:NOSTRIP: Makedefs
+ sed -i s:serial:: backend/Makefile
+ echo "all:" > man/Makefile
+ echo "libs:" >> man/Makefile
+ echo "install:" >> man/Makefile
+ echo "install-data:" >> man/Makefile
+ echo "install-exec:" >> man/Makefile
+ echo "install-headers:" >> man/Makefile
+ echo "install-libs:" >> man/Makefile
+ oe_runmake "SSLLIBS=-lgnutls -L${STAGING_LIBDIR}" \
+ "LIBPNG=-lpng -lm -L${STAGING_LIBDIR}" \
+ "LIBJPEG=-ljpeg -L${STAGING_LIBDIR}" \
+ "LIBZ=-lz -L${STAGING_LIBDIR}" \
+ "-I."
+}
+
+PACKAGES =+ "${PN}-lib ${PN}-libimage ${PN}-filter-textonly ${PN}-filters ${PN}-models"
+
+PACKAGES_DYNAMIC += "${PN}-backend-*"
+
+python populate_packages_prepend() {
+ backend_dir = bb.data.expand('${libdir}/cups/backend/', d)
+ do_split_packages(d, backend_dir, '^(.*)$', 'cups-backend-%s',
+ '${PN} backend for %s', prepend=True, allow_links=True)
+}
+
+FILES_${PN}-lib = "${libdir}/libcups.so.*"
+FILES_${PN}-libimage = "${libdir}/libcupsimage.so.*"
+FILES_${PN}-filter-textonly += "${datadir}/ppd/cups-included/textonly.ppd \
+ ${datadir}/cups/mime/text.convs \
+ ${libdir}/cups/filter/textonly \
+ "
+FILES_${PN}-filters += "${libdir}/cups/filter/*"
+FILES_${PN}-models += "${datadir}/cups/model/*"
+FILES_${PN}-dbg += "${libdir}/cups/backend/.debug \
+ ${libdir}/cups/cgi-bin/.debug \
+ ${libdir}/cups/filter/.debug \
+ ${libdir}/cups/monitor/.debug \
+ ${libdir}/cups/notifier/.debug \
+ ${libdir}/cups/daemon/.debug \
+ "
+FILES_${PN} += "${datadir}/doc/cups/images \
+ ${datadir}/doc/cups/*html \
+ ${datadir}/doc/cups/*.css \
+ ${datadir}/icons/ \
+ "
+
+CONFFILES_${PN} += "${sysconfdir}/cups/cupsd.conf"
+
+LEAD_SONAME = "libcupsdriver.so"
+
+fakeroot do_install () {
+ oe_runmake "DSTROOT=${D}" install
+ # This directory gets installed with perms 511, which makes packaging fail
+ chmod 0711 "${D}/${localstatedir}/run/cups/certs"
+
+ install -d ${D}/${libdir}/cups/filter
+ install -m 755 ${WORKDIR}/textonly ${D}/${libdir}/cups/filter
+
+ install -d ${D}/${datadir}/cups/mime
+ install -m 644 ${WORKDIR}/text.convs ${D}/${datadir}/cups/mime
+
+ install -d ${D}/${datadir}/ppd/cups-included
+ install -m 644 ${WORKDIR}/textonly.ppd ${D}/${datadir}/ppd/cups-included
+}
+
+python do_package_append() {
+ # Change permissions back the way they were, they probably had a reason...
+ workdir = bb.data.getVar('WORKDIR', d, 1)
+ os.system('chmod 0511 %s/install/cups/var/run/cups/certs' % workdir)
+}