From e72de8aa48bb4f8017dbf032b4d480676af809d8 Mon Sep 17 00:00:00 2001 From: Steve Sakoman Date: Sat, 2 Apr 2011 08:33:48 -0700 Subject: cups: Add recipe for 1.4.6 Signed-off-by: Steve Sakoman Signed-off-by: Koen Kooi --- recipes/cups/cups-1.4.6/configure.patch | 117 +++++++++++++++++++ recipes/cups/cups-1.4.6/skip_tools.patch | 51 +++++++++ recipes/cups/cups-1.4.6/text.convs | 6 + recipes/cups/cups-1.4.6/textonly | 124 +++++++++++++++++++++ recipes/cups/cups-1.4.6/textonly.ppd | 47 ++++++++ .../cups/cups-1.4.6/use_echo_only_in_init.patch | 11 ++ recipes/cups/cups_1.4.6.bb | 114 +++++++++++++++++++ 7 files changed, 470 insertions(+) create mode 100644 recipes/cups/cups-1.4.6/configure.patch create mode 100644 recipes/cups/cups-1.4.6/skip_tools.patch create mode 100644 recipes/cups/cups-1.4.6/text.convs create mode 100644 recipes/cups/cups-1.4.6/textonly create mode 100644 recipes/cups/cups-1.4.6/textonly.ppd create mode 100644 recipes/cups/cups-1.4.6/use_echo_only_in_init.patch create mode 100644 recipes/cups/cups_1.4.6.bb (limited to 'recipes/cups') 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 +## 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: "<>setpagedevice" +*CloseUI: *PageSize +*OpenUI *PageRegion: PickOne +*OrderDependency: 10 AnySetup *PageRegion +*DefaultPageRegion: Letter +*PageRegion Letter/Letter: "<>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) +} -- cgit 1.2.3-korg