Hello community,

here is the log from the commit of package cups-filters for openSUSE:Factory 
checked in at 2018-02-22 14:58:19
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/cups-filters (Old)
 and      /work/SRC/openSUSE:Factory/.cups-filters.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "cups-filters"

Thu Feb 22 14:58:19 2018 rev:30 rq:578634 version:1.20.0

Changes:
--------
--- /work/SRC/openSUSE:Factory/cups-filters/cups-filters.changes        
2018-01-24 15:25:34.932175284 +0100
+++ /work/SRC/openSUSE:Factory/.cups-filters.new/cups-filters.changes   
2018-02-22 14:58:22.390795575 +0100
@@ -1,0 +2,16 @@
+Wed Feb 21 10:12:31 CET 2018 - jsm...@suse.de
+
+- Version upgrade to 1.20.0:
+  * Mainly enhancements and fixes for the PPD generator.
+  * For detailed info see the NEWS file.
+- fix_upstream_bug_1421.patch is the upstream fix for
+  https://bugs.linuxfoundation.org/show_bug.cgi?id=1421
+- Use 'BuildRequires python3-cups' only if suse_version >= 1330
+  (cf. "Do not require python-cups but rather python3-cups" below)
+  which means after any SLE12 service pack and after any Leap 42.x
+  i.e. for Tumbleweed, Leap 15.x, and the upcoming SLE15 and later
+  otherwise still use 'BuildRequires python-cups' to make it build
+  and usable again not only on some newest systems according to
+  https://en.opensuse.org/openSUSE:How_to_contribute_to_the_Printing_project
+
+-------------------------------------------------------------------
@@ -4 +20 @@
-- Update to 1.19.0:
+- Version upgrade to 1.19.0:

Old:
----
  cups-filters-1.19.0.tar.xz

New:
----
  cups-filters-1.20.0.tar.xz
  fix_upstream_bug_1421.patch

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ cups-filters.spec ++++++
--- /var/tmp/diff_new_pack.gmOEWu/_old  2018-02-22 14:58:23.294763050 +0100
+++ /var/tmp/diff_new_pack.gmOEWu/_new  2018-02-22 14:58:23.294763050 +0100
@@ -1,7 +1,7 @@
 #
 # spec file for package cups-filters
 #
-# Copyright (c) 2018 SUSE LINUX GmbH, Nuernberg, Germany.
+# Copyright (c) 2018 SUSE LINUX Products GmbH, Nuernberg, Germany.
 #
 # All modifications and additions to the file contributed by third parties
 # remain the property of their copyright owners, unless otherwise agreed
@@ -17,9 +17,9 @@
 
 
 Summary:        OpenPrinting CUPS filters, backends, and cups-browsed
-# See also 
http://www.linuxfoundation.org/collaborate/workgroups/openprinting/pdf_as_standard_print_job_format
 License:        GPL-2.0 and GPL-2.0+ and GPL-3.0 and MIT
 Group:          Hardware/Printing
+# See also 
http://www.linuxfoundation.org/collaborate/workgroups/openprinting/pdf_as_standard_print_job_format
 Url:            
http://www.linuxfoundation.org/collaborate/workgroups/openprinting/cups-filters
 # For a breakdown of the licensing, see COPYING file
 # GPLv2:   filters: commandto*, imagetoraster, pdftops, rasterto*,
@@ -37,9 +37,16 @@
 #       and also run: zypper vcmp 'next version' 'current version'
 # e.g. zypper vcmp '1.0.49' '1.0.49.20140326' -> 1.0.49 is older than 
1.0.49.20140326
 #  and zypper vcmp '1.0.50' '1.0.49.20140326' -> 1.0.50 is newer than 
1.0.49.20140326
-Version:        1.19.0
+Version:        1.20.0
 Release:        0
 Source0:        
http://www.openprinting.org/download/cups-filters/cups-filters-%{version}.tar.xz
+# Upstream fix for https://bugs.linuxfoundation.org/show_bug.cgi?id=1421
+# in 
https://github.com/OpenPrinting/cups-filters/commit/6db3b08d3b20332b1525b8dd1a47950381b8f637
+# dowloaded via
+# wget -O fix_upstream_bug_1421.patch 
https://github.com/OpenPrinting/cups-filters/commit/6db3b08d3b20332b1525b8dd1a47950381b8f637.patch
+# and then removed the changes of the NEWS file from that patch because
+# the NEWS changes do not apply on the sources of the pristine 1.20.0 release:
+Patch100:       fix_upstream_bug_1421.patch
 # Since cups-filters version 1.0.42 foomatic-rip is also provided by 
cups-filters.
 # The foomatic-rip version that is provided by cups-filters is not specified 
in the cups-filters sources
 # but on http://www.openprinting.org/download/foomatic/ the 
foomatic-filters-4.0-current.tar.gz
@@ -76,7 +83,14 @@
 # braille embossers
 BuildRequires:  liblouis-devel
 # Make sure we get postscriptdriver tags.
+# suse_version >= 1330 means "after any SLE12 service pack and after any Leap 
42.x"
+# see https://en.opensuse.org/openSUSE:Build_Service_cross_distribution_howto
+# and cf. cups.spec where the same test is used:
+%if 0%{?suse_version} >= 1330
 BuildRequires:  python3-cups
+%else
+BuildRequires:  python-cups
+%endif
 # cups-browsed
 # "BuildRequires libavahi-devel" is insufficient
 # (build fails at configure "checking for AVAHI_GLIB")
@@ -205,6 +219,9 @@
 
 %prep
 %setup -q
+# Upstream fix for https://bugs.linuxfoundation.org/show_bug.cgi?id=1421
+# in 
https://github.com/OpenPrinting/cups-filters/commit/6db3b08d3b20332b1525b8dd1a47950381b8f637
+%patch100 -p1 -b fix_upstream_bug_1421.orig
 
 %build
 # Just do what is described in the upstream INSTALL file

++++++ cups-filters-1.19.0.tar.xz -> cups-filters-1.20.0.tar.xz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/cups-filters-1.19.0/INSTALL 
new/cups-filters-1.20.0/INSTALL
--- old/cups-filters-1.19.0/INSTALL     2018-01-15 18:10:42.000000000 +0100
+++ new/cups-filters-1.20.0/INSTALL     2018-01-29 19:14:59.000000000 +0100
@@ -1,4 +1,4 @@
-INSTALL - OpenPrinting CUPS Filters v1.19.0 - 2018-01-15
+INSTALL - OpenPrinting CUPS Filters v1.20.0 - 2018-01-29
 --------------------------------------------------------
 
 This file describes how to compile and install OpenPrinting CUPS
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/cups-filters-1.19.0/Makefile.in 
new/cups-filters-1.20.0/Makefile.in
--- old/cups-filters-1.19.0/Makefile.in 2018-01-15 18:15:04.000000000 +0100
+++ new/cups-filters-1.20.0/Makefile.in 2018-01-29 19:51:29.000000000 +0100
@@ -1,7 +1,7 @@
-# Makefile.in generated by automake 1.15 from Makefile.am.
+# Makefile.in generated by automake 1.15.1 from Makefile.am.
 # @configure_input@
 
-# Copyright (C) 1994-2014 Free Software Foundation, Inc.
+# Copyright (C) 1994-2017 Free Software Foundation, Inc.
 
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -5059,7 +5059,7 @@
          ! -type d ! -perm -444 -exec $(install_sh) -c -m a+r {} {} \; \
        || chmod -R a+r "$(distdir)"
 dist-gzip: distdir
-       tardir=$(distdir) && $(am__tar) | GZIP=$(GZIP_ENV) gzip -c 
>$(distdir).tar.gz
+       tardir=$(distdir) && $(am__tar) | eval GZIP= gzip $(GZIP_ENV) -c 
>$(distdir).tar.gz
        $(am__post_remove_distdir)
 dist-bzip2: distdir
        tardir=$(distdir) && $(am__tar) | BZIP2=$${BZIP2--9} bzip2 -c 
>$(distdir).tar.bz2
@@ -5083,7 +5083,7 @@
        @echo WARNING: "Support for shar distribution archives is" \
                       "deprecated." >&2
        @echo WARNING: "It will be removed altogether in Automake 2.0" >&2
-       shar $(distdir) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).shar.gz
+       shar $(distdir) | eval GZIP= gzip $(GZIP_ENV) -c >$(distdir).shar.gz
        $(am__post_remove_distdir)
 
 dist-zip: distdir
@@ -5101,7 +5101,7 @@
 distcheck: dist
        case '$(DIST_ARCHIVES)' in \
        *.tar.gz*) \
-         GZIP=$(GZIP_ENV) gzip -dc $(distdir).tar.gz | $(am__untar) ;;\
+         eval GZIP= gzip $(GZIP_ENV) -dc $(distdir).tar.gz | $(am__untar) ;;\
        *.tar.bz2*) \
          bzip2 -dc $(distdir).tar.bz2 | $(am__untar) ;;\
        *.tar.lz*) \
@@ -5111,7 +5111,7 @@
        *.tar.Z*) \
          uncompress -c $(distdir).tar.Z | $(am__untar) ;;\
        *.shar.gz*) \
-         GZIP=$(GZIP_ENV) gzip -dc $(distdir).shar.gz | unshar ;;\
+         eval GZIP= gzip $(GZIP_ENV) -dc $(distdir).shar.gz | unshar ;;\
        *.zip*) \
          unzip $(distdir).zip ;;\
        esac
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/cups-filters-1.19.0/NEWS new/cups-filters-1.20.0/NEWS
--- old/cups-filters-1.19.0/NEWS        2018-01-15 18:10:20.000000000 +0100
+++ new/cups-filters-1.20.0/NEWS        2018-01-29 19:14:59.000000000 +0100
@@ -1,6 +1,26 @@
-NEWS - OpenPrinting CUPS Filters v1.19.0 - 2018-01-15
+NEWS - OpenPrinting CUPS Filters v1.20.0 - 2018-01-29
 -----------------------------------------------------
 
+CHANGES IN V1.20.0
+
+       - libcupsfilters: Let the PPD generator prefer the English
+         translation file from CUPS for the human-readable strings in
+         the PPD files.
+       - libcupsfilters: The PPD generator lists all page sizes with
+         human-readable names now, including proprietary names of the
+         printer.
+       - cups-browsed, driverless: Fixed get-printer-attributes call
+         on driverless printers for generating the PPD, explicitly
+         requesting the media-col-database attribute as otherwise
+         borderless page sizes do not appear.
+       - libcupsfilters: Fixed loading option/choice strings lists
+         from driverless printers for PPD file generation. Especially
+         proprietary media types appear correctly now.
+       - libcupsfilters: Completed color space support in the PPD
+         generator: Added DeviceGray/RGB/CMYK, default to 8 bit for
+         SRGB and to 16 bit for AdobeRGB, avoid duplicate listings of
+         the same color space.
+
 CHANGES IN V1.19.0
 
        - libcupsfilters: Let the PPD generator add the options "Print
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/cups-filters-1.19.0/README 
new/cups-filters-1.20.0/README
--- old/cups-filters-1.19.0/README      2018-01-15 18:10:12.000000000 +0100
+++ new/cups-filters-1.20.0/README      2018-01-29 19:14:59.000000000 +0100
@@ -1,4 +1,4 @@
-README - OpenPrinting CUPS Filters v1.19.0 - 2018-01-15
+README - OpenPrinting CUPS Filters v1.20.0 - 2018-01-29
 -------------------------------------------------------
 
 Looking for compile instructions?  Read the file "INSTALL.txt"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/cups-filters-1.19.0/aclocal.m4 
new/cups-filters-1.20.0/aclocal.m4
--- old/cups-filters-1.19.0/aclocal.m4  2018-01-15 18:15:03.000000000 +0100
+++ new/cups-filters-1.20.0/aclocal.m4  2018-01-29 19:51:27.000000000 +0100
@@ -1,6 +1,6 @@
-# generated automatically by aclocal 1.15 -*- Autoconf -*-
+# generated automatically by aclocal 1.15.1 -*- Autoconf -*-
 
-# Copyright (C) 1996-2014 Free Software Foundation, Inc.
+# Copyright (C) 1996-2017 Free Software Foundation, Inc.
 
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -334,7 +334,7 @@
 AS_VAR_IF([$1], [""], [$5], [$4])dnl
 ])dnl PKG_CHECK_VAR
 
-# Copyright (C) 2002-2014 Free Software Foundation, Inc.
+# Copyright (C) 2002-2017 Free Software Foundation, Inc.
 #
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -349,7 +349,7 @@
 [am__api_version='1.15'
 dnl Some users find AM_AUTOMAKE_VERSION and mistake it for a way to
 dnl require some minimum version.  Point them to the right macro.
-m4_if([$1], [1.15], [],
+m4_if([$1], [1.15.1], [],
       [AC_FATAL([Do not call $0, use AM_INIT_AUTOMAKE([$1]).])])dnl
 ])
 
@@ -365,14 +365,14 @@
 # Call AM_AUTOMAKE_VERSION and AM_AUTOMAKE_VERSION so they can be traced.
 # This function is AC_REQUIREd by AM_INIT_AUTOMAKE.
 AC_DEFUN([AM_SET_CURRENT_AUTOMAKE_VERSION],
-[AM_AUTOMAKE_VERSION([1.15])dnl
+[AM_AUTOMAKE_VERSION([1.15.1])dnl
 m4_ifndef([AC_AUTOCONF_VERSION],
   [m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl
 _AM_AUTOCONF_VERSION(m4_defn([AC_AUTOCONF_VERSION]))])
 
 # AM_AUX_DIR_EXPAND                                         -*- Autoconf -*-
 
-# Copyright (C) 2001-2014 Free Software Foundation, Inc.
+# Copyright (C) 2001-2017 Free Software Foundation, Inc.
 #
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -424,7 +424,7 @@
 
 # AM_CONDITIONAL                                            -*- Autoconf -*-
 
-# Copyright (C) 1997-2014 Free Software Foundation, Inc.
+# Copyright (C) 1997-2017 Free Software Foundation, Inc.
 #
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -455,7 +455,7 @@
 Usually this means the macro was only invoked conditionally.]])
 fi])])
 
-# Copyright (C) 1999-2014 Free Software Foundation, Inc.
+# Copyright (C) 1999-2017 Free Software Foundation, Inc.
 #
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -646,7 +646,7 @@
 
 # Generate code to set up dependency tracking.              -*- Autoconf -*-
 
-# Copyright (C) 1999-2014 Free Software Foundation, Inc.
+# Copyright (C) 1999-2017 Free Software Foundation, Inc.
 #
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -722,7 +722,7 @@
 
 # Do all the work for Automake.                             -*- Autoconf -*-
 
-# Copyright (C) 1996-2014 Free Software Foundation, Inc.
+# Copyright (C) 1996-2017 Free Software Foundation, Inc.
 #
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -919,7 +919,7 @@
 done
 echo "timestamp for $_am_arg" 
>`AS_DIRNAME(["$_am_arg"])`/stamp-h[]$_am_stamp_count])
 
-# Copyright (C) 2001-2014 Free Software Foundation, Inc.
+# Copyright (C) 2001-2017 Free Software Foundation, Inc.
 #
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -940,7 +940,7 @@
 fi
 AC_SUBST([install_sh])])
 
-# Copyright (C) 2003-2014 Free Software Foundation, Inc.
+# Copyright (C) 2003-2017 Free Software Foundation, Inc.
 #
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -961,7 +961,7 @@
 
 # Check to see how 'make' treats includes.                 -*- Autoconf -*-
 
-# Copyright (C) 2001-2014 Free Software Foundation, Inc.
+# Copyright (C) 2001-2017 Free Software Foundation, Inc.
 #
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -1011,7 +1011,7 @@
 
 # Fake the existence of programs that GNU maintainers use.  -*- Autoconf -*-
 
-# Copyright (C) 1997-2014 Free Software Foundation, Inc.
+# Copyright (C) 1997-2017 Free Software Foundation, Inc.
 #
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -1050,7 +1050,7 @@
 
 # Helper functions for option handling.                     -*- Autoconf -*-
 
-# Copyright (C) 2001-2014 Free Software Foundation, Inc.
+# Copyright (C) 2001-2017 Free Software Foundation, Inc.
 #
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -1079,7 +1079,7 @@
 AC_DEFUN([_AM_IF_OPTION],
 [m4_ifset(_AM_MANGLE_OPTION([$1]), [$2], [$3])])
 
-# Copyright (C) 1999-2014 Free Software Foundation, Inc.
+# Copyright (C) 1999-2017 Free Software Foundation, Inc.
 #
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -1126,7 +1126,7 @@
 # For backward compatibility.
 AC_DEFUN_ONCE([AM_PROG_CC_C_O], [AC_REQUIRE([AC_PROG_CC])])
 
-# Copyright (C) 2001-2014 Free Software Foundation, Inc.
+# Copyright (C) 2001-2017 Free Software Foundation, Inc.
 #
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -1145,7 +1145,7 @@
 
 # Check to make sure that the build environment is sane.    -*- Autoconf -*-
 
-# Copyright (C) 1996-2014 Free Software Foundation, Inc.
+# Copyright (C) 1996-2017 Free Software Foundation, Inc.
 #
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -1226,7 +1226,7 @@
 rm -f conftest.file
 ])
 
-# Copyright (C) 2009-2014 Free Software Foundation, Inc.
+# Copyright (C) 2009-2017 Free Software Foundation, Inc.
 #
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -1286,7 +1286,7 @@
 _AM_SUBST_NOTMAKE([AM_BACKSLASH])dnl
 ])
 
-# Copyright (C) 2001-2014 Free Software Foundation, Inc.
+# Copyright (C) 2001-2017 Free Software Foundation, Inc.
 #
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -1314,7 +1314,7 @@
 INSTALL_STRIP_PROGRAM="\$(install_sh) -c -s"
 AC_SUBST([INSTALL_STRIP_PROGRAM])])
 
-# Copyright (C) 2006-2014 Free Software Foundation, Inc.
+# Copyright (C) 2006-2017 Free Software Foundation, Inc.
 #
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -1333,7 +1333,7 @@
 
 # Check how to create a tarball.                            -*- Autoconf -*-
 
-# Copyright (C) 2004-2014 Free Software Foundation, Inc.
+# Copyright (C) 2004-2017 Free Software Foundation, Inc.
 #
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/cups-filters-1.19.0/config.guess 
new/cups-filters-1.20.0/config.guess
--- old/cups-filters-1.19.0/config.guess        2018-01-15 18:15:04.000000000 
+0100
+++ new/cups-filters-1.20.0/config.guess        2018-01-29 19:51:28.000000000 
+0100
@@ -1,8 +1,8 @@
 #! /bin/sh
 # Attempt to guess a canonical system name.
-#   Copyright 1992-2016 Free Software Foundation, Inc.
+#   Copyright 1992-2017 Free Software Foundation, Inc.
 
-timestamp='2016-10-02'
+timestamp='2017-11-07'
 
 # This file is free software; you can redistribute it and/or modify it
 # under the terms of the GNU General Public License as published by
@@ -15,7 +15,7 @@
 # General Public License for more details.
 #
 # You should have received a copy of the GNU General Public License
-# along with this program; if not, see <http://www.gnu.org/licenses/>.
+# along with this program; if not, see <https://www.gnu.org/licenses/>.
 #
 # As a special exception to the GNU General Public License, if you
 # distribute this file as part of a program that contains a
@@ -27,7 +27,7 @@
 # Originally written by Per Bothner; maintained since 2000 by Ben Elliston.
 #
 # You can get the latest version of this script from:
-# http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.guess
+# https://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.guess
 #
 # Please send patches to <config-patc...@gnu.org>.
 
@@ -39,7 +39,7 @@
 
 Output the configuration name of the system \`$me' is run on.
 
-Operation modes:
+Options:
   -h, --help         print this help, then exit
   -t, --time-stamp   print date of last modification, then exit
   -v, --version      print version number, then exit
@@ -50,7 +50,7 @@
 GNU config.guess ($timestamp)
 
 Originally written by Per Bothner.
-Copyright 1992-2016 Free Software Foundation, Inc.
+Copyright 1992-2017 Free Software Foundation, Inc.
 
 This is free software; see the source for copying conditions.  There is NO
 warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE."
@@ -244,6 +244,9 @@
        UNAME_MACHINE_ARCH=`arch | sed 's/^.*BSD\.//'`
        echo ${UNAME_MACHINE_ARCH}-unknown-libertybsd${UNAME_RELEASE}
        exit ;;
+    *:MidnightBSD:*:*)
+       echo ${UNAME_MACHINE}-unknown-midnightbsd${UNAME_RELEASE}
+       exit ;;
     *:ekkoBSD:*:*)
        echo ${UNAME_MACHINE}-unknown-ekkobsd${UNAME_RELEASE}
        exit ;;
@@ -259,6 +262,9 @@
     *:Sortix:*:*)
        echo ${UNAME_MACHINE}-unknown-sortix
        exit ;;
+    *:Redox:*:*)
+       echo ${UNAME_MACHINE}-unknown-redox
+       exit ;;
     alpha:OSF1:*:*)
        case $UNAME_RELEASE in
        *4.0)
@@ -315,15 +321,6 @@
        exitcode=$?
        trap '' 0
        exit $exitcode ;;
-    Alpha\ *:Windows_NT*:*)
-       # How do we know it's Interix rather than the generic POSIX subsystem?
-       # Should we change UNAME_MACHINE based on the output of uname instead
-       # of the specific Alpha model?
-       echo alpha-pc-interix
-       exit ;;
-    21064:Windows_NT:50:3)
-       echo alpha-dec-winnt3.5
-       exit ;;
     Amiga*:UNIX_System_V:4.0:*)
        echo m68k-unknown-sysv4
        exit ;;
@@ -485,13 +482,13 @@
 #endif
        #if defined (host_mips) && defined (MIPSEB)
        #if defined (SYSTYPE_SYSV)
-         printf ("mips-mips-riscos%ssysv\n", argv[1]); exit (0);
+         printf ("mips-mips-riscos%ssysv\\n", argv[1]); exit (0);
        #endif
        #if defined (SYSTYPE_SVR4)
-         printf ("mips-mips-riscos%ssvr4\n", argv[1]); exit (0);
+         printf ("mips-mips-riscos%ssvr4\\n", argv[1]); exit (0);
        #endif
        #if defined (SYSTYPE_BSD43) || defined(SYSTYPE_BSD)
-         printf ("mips-mips-riscos%sbsd\n", argv[1]); exit (0);
+         printf ("mips-mips-riscos%sbsd\\n", argv[1]); exit (0);
        #endif
        #endif
          exit (-1);
@@ -614,7 +611,7 @@
     *:AIX:*:*)
        echo rs6000-ibm-aix
        exit ;;
-    ibmrt:4.4BSD:*|romp-ibm:BSD:*)
+    ibmrt:4.4BSD:*|romp-ibm:4.4BSD:*)
        echo romp-ibm-bsd4.4
        exit ;;
     ibmrt:*BSD:*|romp-ibm:BSD:*)            # covers RT/PC BSD and
@@ -635,8 +632,8 @@
     9000/[34678]??:HP-UX:*:*)
        HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'`
        case "${UNAME_MACHINE}" in
-           9000/31? )            HP_ARCH=m68000 ;;
-           9000/[34]?? )         HP_ARCH=m68k ;;
+           9000/31?)            HP_ARCH=m68000 ;;
+           9000/[34]??)         HP_ARCH=m68k ;;
            9000/[678][0-9][0-9])
                if [ -x /usr/bin/getconf ]; then
                    sc_cpu_version=`/usr/bin/getconf SC_CPU_VERSION 2>/dev/null`
@@ -749,7 +746,7 @@
                { echo "$SYSTEM_NAME"; exit; }
        echo unknown-hitachi-hiuxwe2
        exit ;;
-    9000/7??:4.3bsd:*:* | 9000/8?[79]:4.3bsd:*:* )
+    9000/7??:4.3bsd:*:* | 9000/8?[79]:4.3bsd:*:*)
        echo hppa1.1-hp-bsd
        exit ;;
     9000/8??:4.3bsd:*:*)
@@ -758,7 +755,7 @@
     *9??*:MPE/iX:*:* | *3000*:MPE/iX:*:*)
        echo hppa1.0-hp-mpeix
        exit ;;
-    hp7??:OSF1:*:* | hp8?[79]:OSF1:*:* )
+    hp7??:OSF1:*:* | hp8?[79]:OSF1:*:*)
        echo hppa1.1-hp-osf
        exit ;;
     hp8??:OSF1:*:*)
@@ -837,10 +834,11 @@
        UNAME_PROCESSOR=`/usr/bin/uname -p`
        case ${UNAME_PROCESSOR} in
            amd64)
-               echo x86_64-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 
's/[-(].*//'` ;;
-           *)
-               echo ${UNAME_PROCESSOR}-unknown-freebsd`echo 
${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;;
+               UNAME_PROCESSOR=x86_64 ;;
+           i386)
+               UNAME_PROCESSOR=i586 ;;
        esac
+       echo ${UNAME_PROCESSOR}-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 
's/[-(].*//'`
        exit ;;
     i*:CYGWIN*:*)
        echo ${UNAME_MACHINE}-pc-cygwin
@@ -854,10 +852,6 @@
     *:MSYS*:*)
        echo ${UNAME_MACHINE}-pc-msys
        exit ;;
-    i*:windows32*:*)
-       # uname -m includes "-pc" on this system.
-       echo ${UNAME_MACHINE}-mingw32
-       exit ;;
     i*:PW*:*)
        echo ${UNAME_MACHINE}-pc-pw32
        exit ;;
@@ -873,27 +867,12 @@
                echo ia64-unknown-interix${UNAME_RELEASE}
                exit ;;
        esac ;;
-    [345]86:Windows_95:* | [345]86:Windows_98:* | [345]86:Windows_NT:*)
-       echo i${UNAME_MACHINE}-pc-mks
-       exit ;;
-    8664:Windows_NT:*)
-       echo x86_64-pc-mks
-       exit ;;
-    i*:Windows_NT*:* | Pentium*:Windows_NT*:*)
-       # How do we know it's Interix rather than the generic POSIX subsystem?
-       # It also conflicts with pre-2.0 versions of AT&T UWIN. Should we
-       # UNAME_MACHINE based on the output of uname instead of i386?
-       echo i586-pc-interix
-       exit ;;
     i*:UWIN*:*)
        echo ${UNAME_MACHINE}-pc-uwin
        exit ;;
     amd64:CYGWIN*:*:* | x86_64:CYGWIN*:*:*)
        echo x86_64-unknown-cygwin
        exit ;;
-    p*:CYGWIN*:*)
-       echo powerpcle-unknown-cygwin
-       exit ;;
     prep*:SunOS:5.*:*)
        echo powerpcle-unknown-solaris2`echo ${UNAME_RELEASE}|sed -e 
's/[^.]*//'`
        exit ;;
@@ -1096,7 +1075,7 @@
     i*86:*DOS:*:*)
        echo ${UNAME_MACHINE}-pc-msdosdjgpp
        exit ;;
-    i*86:*:4.*:* | i*86:SYSTEM_V:4.*:*)
+    i*86:*:4.*:*)
        UNAME_REL=`echo ${UNAME_RELEASE} | sed 's/\/MP$//'`
        if grep Novell /usr/include/link.h >/dev/null 2>/dev/null; then
                echo ${UNAME_MACHINE}-univel-sysv${UNAME_REL}
@@ -1303,14 +1282,21 @@
        if test `echo "$UNAME_RELEASE" | sed -e 's/\..*//'` -le 10 ; then
            if [ "$CC_FOR_BUILD" != no_compiler_found ]; then
                if (echo '#ifdef __LP64__'; echo IS_64BIT_ARCH; echo '#endif') 
| \
-                   (CCOPTS="" $CC_FOR_BUILD -E - 2>/dev/null) | \
-                   grep IS_64BIT_ARCH >/dev/null
+                      (CCOPTS="" $CC_FOR_BUILD -E - 2>/dev/null) | \
+                      grep IS_64BIT_ARCH >/dev/null
                then
                    case $UNAME_PROCESSOR in
                        i386) UNAME_PROCESSOR=x86_64 ;;
                        powerpc) UNAME_PROCESSOR=powerpc64 ;;
                    esac
                fi
+               # On 10.4-10.6 one might compile for PowerPC via gcc -arch ppc
+               if (echo '#ifdef __POWERPC__'; echo IS_PPC; echo '#endif') | \
+                      (CCOPTS="" $CC_FOR_BUILD -E - 2>/dev/null) | \
+                      grep IS_PPC >/dev/null
+               then
+                   UNAME_PROCESSOR=powerpc
+               fi
            fi
        elif test "$UNAME_PROCESSOR" = i386 ; then
            # Avoid executing cc on OS X 10.9, as it ships with a stub
@@ -1334,15 +1320,18 @@
     *:QNX:*:4*)
        echo i386-pc-qnx
        exit ;;
-    NEO-?:NONSTOP_KERNEL:*:*)
+    NEO-*:NONSTOP_KERNEL:*:*)
        echo neo-tandem-nsk${UNAME_RELEASE}
        exit ;;
     NSE-*:NONSTOP_KERNEL:*:*)
        echo nse-tandem-nsk${UNAME_RELEASE}
        exit ;;
-    NSR-?:NONSTOP_KERNEL:*:*)
+    NSR-*:NONSTOP_KERNEL:*:*)
        echo nsr-tandem-nsk${UNAME_RELEASE}
        exit ;;
+    NSX-*:NONSTOP_KERNEL:*:*)
+       echo nsx-tandem-nsk${UNAME_RELEASE}
+       exit ;;
     *:NonStop-UX:*:*)
        echo mips-compaq-nonstopux
        exit ;;
@@ -1414,16 +1403,28 @@
        exit ;;
 esac
 
+echo "$0: unable to guess system type" >&2
+
+case "${UNAME_MACHINE}:${UNAME_SYSTEM}" in
+    mips:Linux | mips64:Linux)
+       # If we got here on MIPS GNU/Linux, output extra information.
+       cat >&2 <<EOF
+
+NOTE: MIPS GNU/Linux systems require a C compiler to fully recognize
+the system type. Please install a C compiler and try again.
+EOF
+       ;;
+esac
+
 cat >&2 <<EOF
-$0: unable to guess system type
 
 This script (version $timestamp), has failed to recognize the
-operating system you are using. If your script is old, overwrite
-config.guess and config.sub with the latest versions from:
+operating system you are using. If your script is old, overwrite *all*
+copies of config.guess and config.sub with the latest versions from:
 
-  http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.guess
+  https://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.guess
 and
-  http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.sub
+  https://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.sub
 
 If $0 has already been updated, send the following data and any
 information you think might be pertinent to config-patc...@gnu.org to
@@ -1455,7 +1456,7 @@
 exit 1
 
 # Local variables:
-# eval: (add-hook 'write-file-hooks 'time-stamp)
+# eval: (add-hook 'write-file-functions 'time-stamp)
 # time-stamp-start: "timestamp='"
 # time-stamp-format: "%:y-%02m-%02d"
 # time-stamp-end: "'"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/cups-filters-1.19.0/config.sub 
new/cups-filters-1.20.0/config.sub
--- old/cups-filters-1.19.0/config.sub  2018-01-15 18:15:04.000000000 +0100
+++ new/cups-filters-1.20.0/config.sub  2018-01-29 19:51:28.000000000 +0100
@@ -1,8 +1,8 @@
 #! /bin/sh
 # Configuration validation subroutine script.
-#   Copyright 1992-2016 Free Software Foundation, Inc.
+#   Copyright 1992-2017 Free Software Foundation, Inc.
 
-timestamp='2016-11-04'
+timestamp='2017-11-23'
 
 # This file is free software; you can redistribute it and/or modify it
 # under the terms of the GNU General Public License as published by
@@ -15,7 +15,7 @@
 # General Public License for more details.
 #
 # You should have received a copy of the GNU General Public License
-# along with this program; if not, see <http://www.gnu.org/licenses/>.
+# along with this program; if not, see <https://www.gnu.org/licenses/>.
 #
 # As a special exception to the GNU General Public License, if you
 # distribute this file as part of a program that contains a
@@ -33,7 +33,7 @@
 # Otherwise, we print the canonical config type on stdout and succeed.
 
 # You can get the latest version of this script from:
-# http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.sub
+# https://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.sub
 
 # This file is supposed to be the same for all GNU packages
 # and recognize all the CPU types, system types and aliases
@@ -57,7 +57,7 @@
 
 Canonicalize a configuration name.
 
-Operation modes:
+Options:
   -h, --help         print this help, then exit
   -t, --time-stamp   print date of last modification, then exit
   -v, --version      print version number, then exit
@@ -67,7 +67,7 @@
 version="\
 GNU config.sub ($timestamp)
 
-Copyright 1992-2016 Free Software Foundation, Inc.
+Copyright 1992-2017 Free Software Foundation, Inc.
 
 This is free software; see the source for copying conditions.  There is NO
 warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE."
@@ -229,9 +229,6 @@
        -ptx*)
                basic_machine=`echo $1 | sed -e 's/86-.*/86-sequent/'`
                ;;
-       -windowsnt*)
-               os=`echo $os | sed -e 's/windowsnt/winnt/'`
-               ;;
        -psos*)
                os=-psos
                ;;
@@ -263,7 +260,7 @@
        | fido | fr30 | frv | ft32 \
        | h8300 | h8500 | hppa | hppa1.[01] | hppa2.0 | hppa2.0[nw] | hppa64 \
        | hexagon \
-       | i370 | i860 | i960 | ia64 \
+       | i370 | i860 | i960 | ia16 | ia64 \
        | ip2k | iq2000 \
        | k1om \
        | le32 | le64 \
@@ -315,7 +312,7 @@
        | ubicom32 \
        | v850 | v850e | v850e1 | v850e2 | v850es | v850e2v3 \
        | visium \
-       | we32k \
+       | wasm32 \
        | x86 | xc16x | xstormy16 | xtensa \
        | z8k | z80)
                basic_machine=$basic_machine-unknown
@@ -388,7 +385,7 @@
        | h8300-* | h8500-* \
        | hppa-* | hppa1.[01]-* | hppa2.0-* | hppa2.0[nw]-* | hppa64-* \
        | hexagon-* \
-       | i*86-* | i860-* | i960-* | ia64-* \
+       | i*86-* | i860-* | i960-* | ia16-* | ia64-* \
        | ip2k-* | iq2000-* \
        | k1om-* \
        | le32-* | le64-* \
@@ -446,6 +443,7 @@
        | v850-* | v850e-* | v850e1-* | v850es-* | v850e2-* | v850e2v3-* \
        | vax-* \
        | visium-* \
+       | wasm32-* \
        | we32k-* \
        | x86-* | x86_64-* | xc16x-* | xps100-* \
        | xstormy16-* | xtensa*-* \
@@ -641,7 +639,7 @@
                basic_machine=rs6000-bull
                os=-bosx
                ;;
-       dpx2* | dpx2*-bull)
+       dpx2*)
                basic_machine=m68k-bull
                os=-sysv3
                ;;
@@ -903,7 +901,7 @@
                basic_machine=v70-nec
                os=-sysv
                ;;
-       next | m*-next )
+       next | m*-next)
                basic_machine=m68k-next
                case $os in
                    -nextstep* )
@@ -948,6 +946,9 @@
        nsr-tandem)
                basic_machine=nsr-tandem
                ;;
+       nsx-tandem)
+               basic_machine=nsx-tandem
+               ;;
        op50n-* | op60c-*)
                basic_machine=hppa1.1-oki
                os=-proelf
@@ -1243,6 +1244,9 @@
                basic_machine=a29k-wrs
                os=-vxworks
                ;;
+       wasm32)
+               basic_machine=wasm32-unknown
+               ;;
        w65*)
                basic_machine=w65-wdc
                os=-none
@@ -1251,6 +1255,9 @@
                basic_machine=hppa1.1-winbond
                os=-proelf
                ;;
+       x64)
+               basic_machine=x86_64-pc
+               ;;
        xbox)
                basic_machine=i686-pc
                os=-mingw32
@@ -1358,8 +1365,8 @@
 if [ x"$os" != x"" ]
 then
 case $os in
-       # First match some system type aliases
-       # that might get confused with valid system types.
+       # First match some system type aliases that might get confused
+       # with valid system types.
        # -solaris* is a basic system type, with this one exception.
        -auroraux)
                os=-auroraux
@@ -1379,9 +1386,9 @@
        -gnu/linux*)
                os=`echo $os | sed -e 's|gnu/linux|linux-gnu|'`
                ;;
-       # First accept the basic system types.
+       # Now accept the basic system types.
        # The portable systems comes first.
-       # Each alternative MUST END IN A *, to match a version number.
+       # Each alternative MUST end in a * to match a version number.
        # -sysv* is not here because it comes later, after sysvr4.
        -gnu* | -bsd* | -mach* | -minix* | -genix* | -ultrix* | -irix* \
              | -*vms* | -sco* | -esix* | -isc* | -aix* | -cnk* | -sunos | 
-sunos[34]*\
@@ -1397,7 +1404,7 @@
              | -bosx* | -nextstep* | -cxux* | -aout* | -elf* | -oabi* \
              | -ptx* | -coff* | -ecoff* | -winnt* | -domain* | -vsta* \
              | -udi* | -eabi* | -lites* | -ieee* | -go32* | -aux* \
-             | -chorusos* | -chorusrdb* | -cegcc* \
+             | -chorusos* | -chorusrdb* | -cegcc* | -glidix* \
              | -cygwin* | -msys* | -pe* | -psos* | -moss* | -proelf* | -rtems* 
\
              | -midipix* | -mingw32* | -mingw64* | -linux-gnu* | 
-linux-android* \
              | -linux-newlib* | -linux-musl* | -linux-uclibc* \
@@ -1409,7 +1416,7 @@
              | -morphos* | -superux* | -rtmk* | -rtmk-nova* | -windiss* \
              | -powermax* | -dnix* | -nx6 | -nx7 | -sei* | -dragonfly* \
              | -skyos* | -haiku* | -rdos* | -toppers* | -drops* | -es* \
-             | -onefs* | -tirtos* | -phoenix* | -fuchsia*)
+             | -onefs* | -tirtos* | -phoenix* | -fuchsia* | -redox*)
        # Remember, each alternative MUST END IN *, to match a version number.
                ;;
        -qnx*)
@@ -1484,7 +1491,7 @@
        -nova*)
                os=-rtmk-nova
                ;;
-       -ns2 )
+       -ns2)
                os=-nextstep2
                ;;
        -nsk*)
@@ -1539,6 +1546,19 @@
        -dicos*)
                os=-dicos
                ;;
+       -pikeos*)
+               # Until real need of OS specific support for
+               # particular features comes up, bare metal
+               # configurations are quite functional.
+               case $basic_machine in
+                   arm*)
+                       os=-eabi
+                       ;;
+                   *)
+                       os=-elf
+                       ;;
+               esac
+               ;;
        -nacl*)
                ;;
        -ios)
@@ -1638,6 +1658,9 @@
        sparc-* | *-sun)
                os=-sunos4.1.1
                ;;
+       pru-*)
+               os=-elf
+               ;;
        *-be)
                os=-beos
                ;;
@@ -1683,7 +1706,7 @@
        m88k-omron*)
                os=-luna
                ;;
-       *-next )
+       *-next)
                os=-nextstep
                ;;
        *-sequent)
@@ -1818,7 +1841,7 @@
 exit
 
 # Local variables:
-# eval: (add-hook 'write-file-hooks 'time-stamp)
+# eval: (add-hook 'write-file-functions 'time-stamp)
 # time-stamp-start: "timestamp='"
 # time-stamp-format: "%:y-%02m-%02d"
 # time-stamp-end: "'"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/cups-filters-1.19.0/configure 
new/cups-filters-1.20.0/configure
--- old/cups-filters-1.19.0/configure   2018-01-15 18:15:04.000000000 +0100
+++ new/cups-filters-1.20.0/configure   2018-01-29 19:51:29.000000000 +0100
@@ -1,6 +1,6 @@
 #! /bin/sh
 # Guess values for system-dependent variables and create Makefiles.
-# Generated by GNU Autoconf 2.69 for cups-filters 1.19.0.
+# Generated by GNU Autoconf 2.69 for cups-filters 1.20.0.
 #
 #
 # Copyright (C) 1992-1996, 1998-2012 Free Software Foundation, Inc.
@@ -587,8 +587,8 @@
 # Identity of this package.
 PACKAGE_NAME='cups-filters'
 PACKAGE_TARNAME='cups-filters'
-PACKAGE_VERSION='1.19.0'
-PACKAGE_STRING='cups-filters 1.19.0'
+PACKAGE_VERSION='1.20.0'
+PACKAGE_STRING='cups-filters 1.20.0'
 PACKAGE_BUGREPORT=''
 PACKAGE_URL=''
 
@@ -1500,7 +1500,7 @@
   # Omit some internal or obsolete options to make the list less imposing.
   # This message is too long to be a string in the A/UX 3.1 sh.
   cat <<_ACEOF
-\`configure' configures cups-filters 1.19.0 to adapt to many kinds of systems.
+\`configure' configures cups-filters 1.20.0 to adapt to many kinds of systems.
 
 Usage: $0 [OPTION]... [VAR=VALUE]...
 
@@ -1571,7 +1571,7 @@
 
 if test -n "$ac_init_help"; then
   case $ac_init_help in
-     short | recursive ) echo "Configuration of cups-filters 1.19.0:";;
+     short | recursive ) echo "Configuration of cups-filters 1.20.0:";;
    esac
   cat <<\_ACEOF
 
@@ -1801,7 +1801,7 @@
 test -n "$ac_init_help" && exit $ac_status
 if $ac_init_version; then
   cat <<\_ACEOF
-cups-filters configure 1.19.0
+cups-filters configure 1.20.0
 generated by GNU Autoconf 2.69
 
 Copyright (C) 2012 Free Software Foundation, Inc.
@@ -2439,7 +2439,7 @@
 This file contains any messages produced by compilers while
 running configure, to aid debugging if configure makes a mistake.
 
-It was created by cups-filters $as_me 1.19.0, which was
+It was created by cups-filters $as_me 1.20.0, which was
 generated by GNU Autoconf 2.69.  Invocation command line was
 
   $ $0 $@
@@ -3474,7 +3474,7 @@
 
 # Define the identity of the package.
  PACKAGE='cups-filters'
- VERSION='1.19.0'
+ VERSION='1.20.0'
 
 
 cat >>confdefs.h <<_ACEOF
@@ -21808,7 +21808,7 @@
 # report actual input values of CONFIG_FILES etc. instead of their
 # values after options handling.
 ac_log="
-This file was extended by cups-filters $as_me 1.19.0, which was
+This file was extended by cups-filters $as_me 1.20.0, which was
 generated by GNU Autoconf 2.69.  Invocation command line was
 
   CONFIG_FILES    = $CONFIG_FILES
@@ -21874,7 +21874,7 @@
 cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
 ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; 
s/[\\""\`\$]/\\\\&/g'`"
 ac_cs_version="\\
-cups-filters config.status 1.19.0
+cups-filters config.status 1.20.0
 configured by $0, generated by GNU Autoconf 2.69,
   with options \\"\$ac_cs_config\\"
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/cups-filters-1.19.0/configure.ac 
new/cups-filters-1.20.0/configure.ac
--- old/cups-filters-1.19.0/configure.ac        2018-01-15 18:11:10.000000000 
+0100
+++ new/cups-filters-1.20.0/configure.ac        2018-01-29 19:14:59.000000000 
+0100
@@ -6,7 +6,7 @@
 # Version informations
 # ====================
 m4_define([cups_filters_version_major],[1])
-m4_define([cups_filters_version_minor],[19])
+m4_define([cups_filters_version_minor],[20])
 m4_define([cups_filters_version_micro],[0])
 
m4_define([cups_filters_version],[cups_filters_version_major.cups_filters_version_minor.cups_filters_version_micro])
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/cups-filters-1.19.0/cupsfilters/ppdgenerator.c 
new/cups-filters-1.20.0/cupsfilters/ppdgenerator.c
--- old/cups-filters-1.19.0/cupsfilters/ppdgenerator.c  2018-01-15 
18:08:03.000000000 +0100
+++ new/cups-filters-1.20.0/cupsfilters/ppdgenerator.c  2018-01-29 
15:22:03.000000000 +0100
@@ -448,6 +448,14 @@
   if (dirname == NULL)
     return NULL;
 
+  /* Check first whether we have an English file and prefer this */
+  snprintf(catalogpath, sizeof(catalogpath), "%s/en/cups_en.po", dirname);
+  if (access(catalogpath, R_OK) == 0) {
+    /* Found */
+    catalog = strdup(catalogpath);
+    return catalog;
+  }
+
   if ((dir = cupsDirOpen(dirname)) == NULL)
     return NULL;
 
@@ -492,7 +500,7 @@
        if (access(catalogpath, R_OK) != 0)
          continue;
        /* Found */
-       catalog = catalogpath;
+       catalog = strdup(catalogpath);
        break;
       }
       cupsDirClose(subdir);
@@ -745,8 +753,8 @@
                    10: EOF, save last entry */
   int digit;
 
-  if (location == NULL || strncasecmp(location, "http:", 5) ||
-      strncasecmp(location, "https:", 6)) {
+  if (location == NULL || (strncasecmp(location, "http:", 5) &&
+                          strncasecmp(location, "https:", 6))) {
     if (location == NULL ||
        (stat(location, &statbuf) == 0 && S_ISDIR(statbuf.st_mode))) /* 
directory? */
       filename = _findCUPSMessageCatalog(location);
@@ -844,7 +852,7 @@
        continue;
       }
       /* Check line if it is a valid IPP attribute:
-        No spaces, only lowercae letters, digits, '-', '_',
+        No spaces, only lowercase letters, digits, '-', '_',
         "option" or "option.choice" */
       for (ptr = start, sep = NULL; ptr < end; ptr ++)
        if (*ptr == '.') { /* Separator between option and choice */
@@ -868,10 +876,8 @@
       }
       if (sep && strlen(sep) > 0) /* Choice name found */
        choice_name = strdup(sep);
-      else { /* Empty choice name */
-       part = -1;
-       continue;
-      }
+      else /* Empty choice name */
+       choice_name = NULL;
       if (part == 2) { /* Human-readable string in the same line */
        start = start2;
        end = end2;
@@ -1722,51 +1728,8 @@
          max_length = upper;
       }
     }
-
-    if ((max_width == 0 || max_length == 0) && (attr = 
ippFindAttribute(response, "media-size-supported", IPP_TAG_BEGIN_COLLECTION)) 
!= NULL)
-    {
-     /*
-      * Some printers don't list custom size support in media-col-database...
-      */
-
-      for (i = 0, count = ippGetCount(attr); i < count; i ++)
-      {
-       media_size  = ippGetCollection(attr, i);
-       x_dim       = ippFindAttribute(media_size, "x-dimension", IPP_TAG_ZERO);
-       y_dim       = ippFindAttribute(media_size, "y-dimension", IPP_TAG_ZERO);
-
-       if (ippGetValueTag(x_dim) == IPP_TAG_RANGE || ippGetValueTag(y_dim) == 
IPP_TAG_RANGE)
-       {
-        /*
-         * Custom size - record the min/max values...
-         */
-
-         int lower, upper;             /* Range values */
-
-         if (ippGetValueTag(x_dim) == IPP_TAG_RANGE)
-           lower = ippGetRange(x_dim, 0, &upper);
-         else
-           lower = upper = ippGetInteger(x_dim, 0);
-
-         if (lower < min_width)
-           min_width = lower;
-         if (upper > max_width)
-           max_width = upper;
-
-         if (ippGetValueTag(y_dim) == IPP_TAG_RANGE)
-           lower = ippGetRange(y_dim, 0, &upper);
-         else
-           lower = upper = ippGetInteger(y_dim, 0);
-
-         if (lower < min_length)
-           min_length = lower;
-         if (upper > max_length)
-           max_length = upper;
-       }
-      }
-    }
   }
-  else if ((attr = ippFindAttribute(response, "media-size-supported", 
IPP_TAG_BEGIN_COLLECTION)) != NULL)
+  if ((attr = ippFindAttribute(response, "media-size-supported", 
IPP_TAG_BEGIN_COLLECTION)) != NULL)
   {
     for (i = 0, count = ippGetCount(attr); i < count; i ++)
     {
@@ -1824,13 +1787,13 @@
       }
     }
   }
-  else if ((attr = ippFindAttribute(response, "media-supported", 
IPP_TAG_ZERO)) != NULL)
+  if ((attr = ippFindAttribute(response, "media-supported", IPP_TAG_ZERO)) != 
NULL)
   {
     for (i = 0, count = ippGetCount(attr); i < count; i ++)
     {
       const char       *pwg_size = ippGetString(attr, i, NULL);
                                        /* PWG size name */
-      cups_size_t      temp;           /* Current size */
+      cups_size_t      temp, *temp2;   /* Current size, found size */
 
       if ((pwg = pwgMediaForPWG(pwg_size)) != NULL)
       {
@@ -1862,7 +1825,19 @@
          else
            strlcpy(temp.media, pwg->ppd, sizeof(temp.media));
 
-         if (!cupsArrayFind(sizes, &temp))
+         /* Add the printer's original IPP name to an already found size */
+         if ((temp2 = cupsArrayFind(sizes, &temp)) != NULL) {
+           snprintf(temp2->media + strlen(temp2->media),
+                    sizeof(temp2->media) - strlen(temp2->media),
+                    " %s", pwg_size);
+           /* Check if we have also a borderless version of the size and add
+              the original IPP name also there */
+           snprintf(temp.media, sizeof(temp.media), "%s.Borderless", pwg->ppd);
+           if ((temp2 = cupsArrayFind(sizes, &temp)) != NULL)
+             snprintf(temp2->media + strlen(temp2->media),
+                    sizeof(temp2->media) - strlen(temp2->media),
+                    " %s", pwg_size);
+         } else
            cupsArrayAdd(sizes, &temp);
        }
       }
@@ -1880,8 +1855,9 @@
                tright[256],            /* Right string */
                ttop[256],              /* Top string */
                twidth[256],            /* Width string */
-               tlength[256];           /* Length string */
-
+               tlength[256],           /* Length string */
+               ppdsizename[128];
+    char        *ippsizename;
     cupsFilePrintf(fp, "*OpenUI *PageSize/%s: PickOne\n"
                       "*OrderDependency: 10 AnySetup *PageSize\n"
                       "*DefaultPageSize: %s\n", "Media Size", ppdname);
@@ -1889,16 +1865,28 @@
     {
       _cupsStrFormatd(twidth, twidth + sizeof(twidth), size->width * 72.0 / 
2540.0, loc);
       _cupsStrFormatd(tlength, tlength + sizeof(tlength), size->length * 72.0 
/ 2540.0, loc);
+      strlcpy(ppdsizename, size->media, sizeof(ppdsizename));
+      if ((ippsizename = strchr(ppdsizename, ' ')) != NULL) {
+       *ippsizename = '\0';
+       ippsizename ++;
+      }
 
-      pwg = pwgMediaForSize(size->width, size->length);
-      if (pwg)
-       human_readable = lookup_choice((char *)pwg->pwg, "media", 
opt_strings_catalog,
+      if (ippsizename)
+       human_readable = lookup_choice(ippsizename, "media", 
opt_strings_catalog,
                                       printer_opt_strings_catalog);
       else
        human_readable = NULL;
-      cupsFilePrintf(fp, "*PageSize %s%s%s: \"<</PageSize[%s 
%s]>>setpagedevice\"\n", size->media,
+      if (!human_readable) {
+       pwg = pwgMediaForSize(size->width, size->length);
+       if (pwg)
+         human_readable = lookup_choice((char *)pwg->pwg, "media", 
opt_strings_catalog,
+                                        printer_opt_strings_catalog);
+      }
+      cupsFilePrintf(fp, "*PageSize %s%s%s%s: \"<</PageSize[%s 
%s]>>setpagedevice\"\n", ppdsizename,
                     (human_readable ? "/" : ""),
                     (human_readable ? human_readable : ""),
+                    (human_readable && strstr(ppdsizename, ".Borderless") ?
+                     " (Borderless)" : ""),
                     twidth, tlength);
     }
     cupsFilePuts(fp, "*CloseUI: *PageSize\n");
@@ -1910,16 +1898,28 @@
     {
       _cupsStrFormatd(twidth, twidth + sizeof(twidth), size->width * 72.0 / 
2540.0, loc);
       _cupsStrFormatd(tlength, tlength + sizeof(tlength), size->length * 72.0 
/ 2540.0, loc);
+      strlcpy(ppdsizename, size->media, sizeof(ppdsizename));
+      if ((ippsizename = strchr(ppdsizename, ' ')) != NULL) {
+       *ippsizename = '\0';
+       ippsizename ++;
+      }
 
-      pwg = pwgMediaForSize(size->width, size->length);
-      if (pwg)
-       human_readable = lookup_choice((char *)pwg->pwg, "media", 
opt_strings_catalog,
+      if (ippsizename)
+       human_readable = lookup_choice(ippsizename, "media", 
opt_strings_catalog,
                                       printer_opt_strings_catalog);
       else
        human_readable = NULL;
-      cupsFilePrintf(fp, "*PageRegion %s%s%s: \"<</PageSize[%s 
%s]>>setpagedevice\"\n", size->media,
+      if (!human_readable) {
+       pwg = pwgMediaForSize(size->width, size->length);
+       if (pwg)
+         human_readable = lookup_choice((char *)pwg->pwg, "media", 
opt_strings_catalog,
+                                        printer_opt_strings_catalog);
+      }
+      cupsFilePrintf(fp, "*PageRegion %s%s%s%s: \"<</PageSize[%s 
%s]>>setpagedevice\"\n", ppdsizename,
                     (human_readable ? "/" : ""),
                     (human_readable ? human_readable : ""),
+                    (human_readable && strstr(ppdsizename, ".Borderless") ?
+                     " (Borderless)" : ""),
                     twidth, tlength);
     }
     cupsFilePuts(fp, "*CloseUI: *PageRegion\n");
@@ -1935,9 +1935,12 @@
       _cupsStrFormatd(ttop, ttop + sizeof(ttop), (size->length - size->top) * 
72.0 / 2540.0, loc);
       _cupsStrFormatd(twidth, twidth + sizeof(twidth), size->width * 72.0 / 
2540.0, loc);
       _cupsStrFormatd(tlength, tlength + sizeof(tlength), size->length * 72.0 
/ 2540.0, loc);
+      strlcpy(ppdsizename, size->media, sizeof(ppdsizename));
+      if ((ippsizename = strchr(ppdsizename, ' ')) != NULL)
+       *ippsizename = '\0';
 
-      cupsFilePrintf(fp, "*ImageableArea %s: \"%s %s %s %s\"\n", size->media, 
tleft, tbottom, tright, ttop);
-      cupsFilePrintf(fp, "*PaperDimension %s: \"%s %s\"\n", size->media, 
twidth, tlength);
+      cupsFilePrintf(fp, "*ImageableArea %s: \"%s %s %s %s\"\n", ppdsizename, 
tleft, tbottom, tright, ttop);
+      cupsFilePrintf(fp, "*PaperDimension %s: \"%s %s\"\n", ppdsizename, 
twidth, tlength);
     }
 
     cupsArrayDelete(sizes);
@@ -2327,8 +2330,8 @@
   * ColorModel...
   */
 
-  if ((attr = ippFindAttribute(response, "pwg-raster-document-type-supported", 
IPP_TAG_KEYWORD)) == NULL)
-    if ((attr = ippFindAttribute(response, "urf-supported", IPP_TAG_KEYWORD)) 
== NULL)
+  if ((attr = ippFindAttribute(response, "urf-supported", IPP_TAG_KEYWORD)) == 
NULL)
+    if ((attr = ippFindAttribute(response, 
"pwg-raster-document-type-supported", IPP_TAG_KEYWORD)) == NULL)
       if ((attr = ippFindAttribute(response, "print-color-mode-supported", 
IPP_TAG_KEYWORD)) == NULL)
         attr = ippFindAttribute(response, "output-mode-supported", 
IPP_TAG_KEYWORD);
 
@@ -2337,21 +2340,28 @@
   if (attr && ippGetCount(attr) > 0)
   {
     const char *default_color = NULL;  /* Default */
+    int first_choice = 1,
+        have_bi_level = 0,
+        have_mono = 0;
 
     for (i = 0, count = ippGetCount(attr); i < count; i ++)
     {
       keyword = ippGetString(attr, i, NULL);
                                        /* Keyword for color/bit depth */
 
-      if (!strcasecmp(keyword, "black_1") || !strcmp(keyword, "bi-level") || 
!strcmp(keyword, "process-bi-level"))
+      if (!have_bi_level &&
+         (!strcasecmp(keyword, "black_1") || !strcmp(keyword, "bi-level") || 
!strcmp(keyword, "process-bi-level")))
       {
-        if (!default_color)
+       have_bi_level = 1;
+        if (first_choice) {
+         first_choice = 0;
          cupsFilePrintf(fp, "*OpenUI *ColorModel/%s: PickOne\n"
                             "*OrderDependency: 10 AnySetup *ColorModel\n",
                             (human_readable ? human_readable :
                              _cupsLangString(lang, _("Color Mode"))));
+       }
 
-       human_readable2 = lookup_choice("bi-level", "media-type", 
opt_strings_catalog,
+       human_readable2 = lookup_choice("bi-level", "print-color-mode", 
opt_strings_catalog,
                                        printer_opt_strings_catalog);
         cupsFilePrintf(fp, "*ColorModel FastGray/%s: \"<</cupsColorSpace 
3/cupsBitsPerColor 1/cupsColorOrder 0/cupsCompression 0>>setpagedevice\"\n",
                           (human_readable2 ? human_readable2 :
@@ -2360,56 +2370,192 @@
         if (!default_color)
          default_color = "FastGray";
       }
-      else if (!strncasecmp(keyword, "sgray_", 6) || !strncmp(keyword, "W8", 
2) || !strncmp(keyword, "W16", 3) || !strcmp(keyword, "monochrome") || 
!strcmp(keyword, "process-monochrome"))
+      else if (!have_mono &&
+              (!strcasecmp(keyword, "sgray_8") || !strncmp(keyword, "W8", 2) 
|| !strcmp(keyword, "monochrome") || !strcmp(keyword, "process-monochrome")))
       {
-        if (!default_color)
+       have_mono = 1;
+        if (first_choice) {
+         first_choice = 0;
          cupsFilePrintf(fp, "*OpenUI *ColorModel/%s: PickOne\n"
                             "*OrderDependency: 10 AnySetup *ColorModel\n",
                             (human_readable ? human_readable :
                              _cupsLangString(lang, _("Color Mode"))));
+       }
 
-       human_readable2 = lookup_choice("monochrome", "media-type", 
opt_strings_catalog,
+       human_readable2 = lookup_choice("monochrome", "print-color-mode", 
opt_strings_catalog,
                                        printer_opt_strings_catalog);
-        cupsFilePrintf(fp, "*ColorModel Gray/%s: \"<</cupsColorSpace 
18/cupsBitsPerColor %s/cupsColorOrder 0/cupsCompression 0>>setpagedevice\"\n",
+        cupsFilePrintf(fp, "*ColorModel Gray/%s: \"<</cupsColorSpace 
18/cupsBitsPerColor 8/cupsColorOrder 0/cupsCompression 0>>setpagedevice\"\n",
                           (human_readable2 ? human_readable2 :
-                           _cupsLangString(lang, _("Grayscale"))),
-                          (strstr(keyword, "16") ? "16" : "8"));
+                           _cupsLangString(lang, _("Grayscale"))));
 
         if (!default_color || !strcmp(default_color, "FastGray"))
          default_color = "Gray";
       }
-      else if (!strncasecmp(keyword, "srgb_", 5) || !strncmp(keyword, "SRGB", 
4) || !strcmp(keyword, "color"))
+      else if (!strcasecmp(keyword, "sgray_16") || !strncmp(keyword, "W8-16", 
5) || !strncmp(keyword, "W16", 3))
       {
-        if (!default_color)
+        if (first_choice) {
+         first_choice = 0;
+         cupsFilePrintf(fp, "*OpenUI *ColorModel/%s: PickOne\n"
+                            "*OrderDependency: 10 AnySetup *ColorModel\n",
+                            (human_readable ? human_readable :
+                             _cupsLangString(lang, _("Color Mode"))));
+       }
+
+        cupsFilePrintf(fp, "*ColorModel Gray16/%s: \"<</cupsColorSpace 
18/cupsBitsPerColor 16/cupsColorOrder 0/cupsCompression 0>>setpagedevice\"\n",
+                          _cupsLangString(lang, _("Deep Gray (High Definition 
Grayscale)")));
+
+        if (!default_color || !strcmp(default_color, "FastGray"))
+         default_color = "Gray16";
+      }
+      else if (!strcasecmp(keyword, "srgb_8") || !strncmp(keyword, "SRGB24", 
6) || !strcmp(keyword, "color"))
+      {
+        if (first_choice) {
+         first_choice = 0;
          cupsFilePrintf(fp, "*OpenUI *ColorModel/%s: PickOne\n"
                             "*OrderDependency: 10 AnySetup *ColorModel\n",
                             (human_readable ? human_readable :
                              _cupsLangString(lang, _("Color Mode"))));
+       }
+
+       human_readable2 = lookup_choice("color", "print-color-mode", 
opt_strings_catalog,
+                                       printer_opt_strings_catalog);
+        cupsFilePrintf(fp, "*ColorModel RGB/%s: \"<</cupsColorSpace 
19/cupsBitsPerColor 8/cupsColorOrder 0/cupsCompression 0>>setpagedevice\"\n",
+                          (human_readable2 ? human_readable2 :
+                           _cupsLangString(lang, _("Color"))));
+
+       default_color = "RGB";
+      }
+      else if ((!strcasecmp(keyword, "srgb_16") || !strncmp(keyword, "SRGB48", 
6)) &&
+              !ippContainsString(attr, "srgb_8"))
+      {
+        if (first_choice) {
+         first_choice = 0;
+         cupsFilePrintf(fp, "*OpenUI *ColorModel/%s: PickOne\n"
+                            "*OrderDependency: 10 AnySetup *ColorModel\n",
+                            (human_readable ? human_readable :
+                             _cupsLangString(lang, _("Color Mode"))));
+       }
 
-       human_readable2 = lookup_choice("color", "media-type", 
opt_strings_catalog,
+       human_readable2 = lookup_choice("color", "print-color-mode", 
opt_strings_catalog,
                                        printer_opt_strings_catalog);
-        cupsFilePrintf(fp, "*ColorModel RGB/%s: \"<</cupsColorSpace 
19/cupsBitsPerColor %s/cupsColorOrder 0/cupsCompression 0>>setpagedevice\"\n",
+        cupsFilePrintf(fp, "*ColorModel RGB/%s: \"<</cupsColorSpace 
19/cupsBitsPerColor 16/cupsColorOrder 0/cupsCompression 0>>setpagedevice\"\n",
                           (human_readable2 ? human_readable2 :
-                           _cupsLangString(lang, _("Color"))),
-                          (strstr(keyword, "16") || strstr(keyword, "48") ? 
"16" : "8"));
+                           _cupsLangString(lang, _("Color"))));
 
        default_color = "RGB";
       }
-      else if (!strncasecmp(keyword, "adobe-rgb_", 10) || !strncmp(keyword, 
"ADOBERGB", 8))
+      else if (!strcasecmp(keyword, "adobe-rgb_16") || !strncmp(keyword, 
"ADOBERGB48", 10) ||
+              !strncmp(keyword, "ADOBERGB24-48", 13))
       {
+        if (first_choice) {
+         first_choice = 0;
+         cupsFilePrintf(fp, "*OpenUI *ColorModel/%s: PickOne\n"
+                            "*OrderDependency: 10 AnySetup *ColorModel\n",
+                            (human_readable ? human_readable :
+                             _cupsLangString(lang, _("Color Mode"))));
+       }
+
+        cupsFilePrintf(fp, "*ColorModel AdobeRGB/%s: \"<</cupsColorSpace 
20/cupsBitsPerColor 16/cupsColorOrder 0/cupsCompression 0>>setpagedevice\"\n",
+                          _cupsLangString(lang, _("Deep Color (Wide Color 
Gamut, AdobeRGB)")));
+
         if (!default_color)
+         default_color = "AdobeRGB";
+      }
+      else if ((!strcasecmp(keyword, "adobe-rgb_8") || !strcmp(keyword, 
"ADOBERGB24")) &&
+              !ippContainsString(attr, "adobe-rgb_16"))
+      {
+        if (first_choice) {
+         first_choice = 0;
          cupsFilePrintf(fp, "*OpenUI *ColorModel/%s: PickOne\n"
                             "*OrderDependency: 10 AnySetup *ColorModel\n",
                             (human_readable ? human_readable :
                              _cupsLangString(lang, _("Color Mode"))));
+       }
 
-        cupsFilePrintf(fp, "*ColorModel AdobeRGB/%s: \"<</cupsColorSpace 
20/cupsBitsPerColor %s/cupsColorOrder 0/cupsCompression 0>>setpagedevice\"\n",
-                          _cupsLangString(lang, _("Deep Color (Wide Gamut, 
AdobeRGB)")),
-                          (strstr(keyword, "16") || strstr(keyword, "48") ? 
"16" : "8"));
+        cupsFilePrintf(fp, "*ColorModel AdobeRGB/%s: \"<</cupsColorSpace 
20/cupsBitsPerColor 8/cupsColorOrder 0/cupsCompression 0>>setpagedevice\"\n",
+                          _cupsLangString(lang, _("Deep Color (Wide Color 
Gamut, AdobeRGB)")));
 
         if (!default_color)
          default_color = "AdobeRGB";
       }
+      else if ((!strcasecmp(keyword, "black_8") && !ippContainsString(attr, 
"black_16")) || !strcmp(keyword, "DEVW8"))
+      {
+        if (first_choice) {
+         first_choice = 0;
+         cupsFilePrintf(fp, "*OpenUI *ColorModel/%s: PickOne\n"
+                            "*OrderDependency: 10 AnySetup *ColorModel\n",
+                            (human_readable ? human_readable :
+                             _cupsLangString(lang, _("Color Mode"))));
+       }
+
+        cupsFilePrintf(fp, "*ColorModel DeviceGray/%s: \"<</cupsColorSpace 
0/cupsBitsPerColor 8/cupsColorOrder 0/cupsCompression 0>>setpagedevice\"\n",
+                          _cupsLangString(lang, _("Device Gray")));
+      }
+      else if (!strcasecmp(keyword, "black_16") || !strcmp(keyword, "DEVW16") 
|| !strcmp(keyword, "DEVW8-16"))
+      {
+        if (first_choice) {
+         first_choice = 0;
+         cupsFilePrintf(fp, "*OpenUI *ColorModel/%s: PickOne\n"
+                            "*OrderDependency: 10 AnySetup *ColorModel\n",
+                            (human_readable ? human_readable :
+                             _cupsLangString(lang, _("Color Mode"))));
+       }
+
+        cupsFilePrintf(fp, "*ColorModel DeviceGray/%s: \"<</cupsColorSpace 
0/cupsBitsPerColor 16/cupsColorOrder 0/cupsCompression 0>>setpagedevice\"\n",
+                          _cupsLangString(lang, _("Device Gray")));
+      }
+      else if ((!strcasecmp(keyword, "cmyk_8") && !ippContainsString(attr, 
"cmyk_16")) || !strcmp(keyword, "DEVCMYK32"))
+      {
+        if (first_choice) {
+         first_choice = 0;
+         cupsFilePrintf(fp, "*OpenUI *ColorModel/%s: PickOne\n"
+                            "*OrderDependency: 10 AnySetup *ColorModel\n",
+                            (human_readable ? human_readable :
+                             _cupsLangString(lang, _("Color Mode"))));
+       }
+
+        cupsFilePrintf(fp, "*ColorModel CMYK/%s: \"<</cupsColorSpace 
6/cupsBitsPerColor 8/cupsColorOrder 0/cupsCompression 0>>setpagedevice\"\n",
+                          _cupsLangString(lang, _("Device CMYK")));
+      }
+      else if (!strcasecmp(keyword, "cmyk_16") || !strcmp(keyword, 
"DEVCMYK32-64") || !strcmp(keyword, "DEVCMYK64"))
+      {
+        if (first_choice) {
+         first_choice = 0;
+         cupsFilePrintf(fp, "*OpenUI *ColorModel/%s: PickOne\n"
+                            "*OrderDependency: 10 AnySetup *ColorModel\n",
+                            (human_readable ? human_readable :
+                             _cupsLangString(lang, _("Color Mode"))));
+       }
+
+        cupsFilePrintf(fp, "*ColorModel CMYK/%s: \"<</cupsColorSpace 
6/cupsBitsPerColor 16/cupsColorOrder 0/cupsCompression 0>>setpagedevice\"\n",
+                          _cupsLangString(lang, _("Device CMYK")));
+      }
+      else if ((!strcasecmp(keyword, "rgb_8") && !ippContainsString(attr, 
"rgb_16")) || !strcmp(keyword, "DEVRGB24"))
+      {
+        if (first_choice) {
+         first_choice = 0;
+         cupsFilePrintf(fp, "*OpenUI *ColorModel/%s: PickOne\n"
+                            "*OrderDependency: 10 AnySetup *ColorModel\n",
+                            (human_readable ? human_readable :
+                             _cupsLangString(lang, _("Color Mode"))));
+       }
+
+        cupsFilePrintf(fp, "*ColorModel DeviceRGB/%s: \"<</cupsColorSpace 
1/cupsBitsPerColor 8/cupsColorOrder 0/cupsCompression 0>>setpagedevice\"\n",
+                          _cupsLangString(lang, _("Device RGB")));
+      }
+      else if (!strcasecmp(keyword, "rgb_16") || !strcmp(keyword, 
"DEVRGB24-48") || !strcmp(keyword, "DEVRGB48"))
+      {
+        if (first_choice) {
+         first_choice = 0;
+         cupsFilePrintf(fp, "*OpenUI *ColorModel/%s: PickOne\n"
+                            "*OrderDependency: 10 AnySetup *ColorModel\n",
+                            (human_readable ? human_readable :
+                             _cupsLangString(lang, _("Color Mode"))));
+       }
+
+        cupsFilePrintf(fp, "*ColorModel DeviceRGB/%s: \"<</cupsColorSpace 
1/cupsBitsPerColor 16/cupsColorOrder 0/cupsCompression 0>>setpagedevice\"\n",
+                          _cupsLangString(lang, _("Device RGB")));
+      }
     }
 
     if (default_color)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/cups-filters-1.19.0/depcomp 
new/cups-filters-1.20.0/depcomp
--- old/cups-filters-1.19.0/depcomp     2018-01-15 18:15:04.000000000 +0100
+++ new/cups-filters-1.20.0/depcomp     2018-01-29 19:51:28.000000000 +0100
@@ -1,9 +1,9 @@
 #! /bin/sh
 # depcomp - compile a program generating dependencies as side-effects
 
-scriptversion=2013-05-30.07; # UTC
+scriptversion=2016-01-11.22; # UTC
 
-# Copyright (C) 1999-2014 Free Software Foundation, Inc.
+# Copyright (C) 1999-2017 Free Software Foundation, Inc.
 
 # 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
@@ -786,6 +786,6 @@
 # eval: (add-hook 'write-file-hooks 'time-stamp)
 # time-stamp-start: "scriptversion="
 # time-stamp-format: "%:y-%02m-%02d.%02H"
-# time-stamp-time-zone: "UTC"
+# time-stamp-time-zone: "UTC0"
 # time-stamp-end: "; # UTC"
 # End:
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/cups-filters-1.19.0/utils/cups-browsed.c 
new/cups-filters-1.20.0/utils/cups-browsed.c
--- old/cups-filters-1.19.0/utils/cups-browsed.c        2017-12-21 
22:13:28.000000000 +0100
+++ new/cups-filters-1.20.0/utils/cups-browsed.c        2018-01-27 
00:09:09.000000000 +0100
@@ -3298,6 +3298,13 @@
   int is_appleraster = 0;
   int is_pclm = 0;
   int is_pdf = 0;
+  static const char * const pattrs[] =
+  {
+    "job-template",
+    "printer-defaults",
+    "printer-description",
+    "media-col-database"
+  };
 #endif /* HAVE_CUPS_1_6 */
 
   if (!queue_name || !location || !info || !uri || !host || !service_name ||
@@ -3523,6 +3530,9 @@
     }
     request = ippNewRequest(IPP_OP_GET_PRINTER_ATTRIBUTES);
     ippAddString(request, IPP_TAG_OPERATION, IPP_TAG_URI, "printer-uri", NULL, 
uri);
+    ippAddStrings(request, IPP_TAG_OPERATION, IPP_TAG_KEYWORD,
+                 "requested-attributes", sizeof(pattrs) / sizeof(pattrs[0]),
+                 NULL, pattrs);
     response = cupsDoRequest(http_printer, request, resource);
 
     /* Log all printer attributes for debugging */
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/cups-filters-1.19.0/utils/driverless.c 
new/cups-filters-1.20.0/utils/driverless.c
--- old/cups-filters-1.19.0/utils/driverless.c  2017-10-05 00:09:29.000000000 
+0200
+++ new/cups-filters-1.20.0/utils/driverless.c  2018-01-27 00:09:09.000000000 
+0100
@@ -466,6 +466,13 @@
   ipp_attribute_t *attr;
   char buffer[65536], ppdname[1024];
   int i, fd, bytes;
+  static const char * const pattrs[] =
+  {
+    "job-template",
+    "printer-defaults",
+    "printer-description",
+    "media-col-database"
+  };
 
   /* Request printer properties via IPP to generate a PPD file for the
      printer (mainly IPP Everywhere printers)
@@ -490,6 +497,9 @@
   request = ippNewRequest(IPP_OP_GET_PRINTER_ATTRIBUTES);
   ippAddString(request, IPP_TAG_OPERATION, IPP_TAG_URI, "printer-uri",
               NULL, uri);
+  ippAddStrings(request, IPP_TAG_OPERATION, IPP_TAG_KEYWORD,
+               "requested-attributes", sizeof(pattrs) / sizeof(pattrs[0]),
+               NULL, pattrs);
   response = cupsDoRequest(http, request, resource);
 
   /* Log all printer attributes for debugging */

++++++ fix_upstream_bug_1421.patch ++++++
>From 6db3b08d3b20332b1525b8dd1a47950381b8f637 Mon Sep 17 00:00:00 2001
From: Till Kamppeter <till.kamppe...@gmail.com>
Date: Tue, 20 Feb 2018 20:24:33 +0100
Subject: [PATCH] libcupsfilters: Eliminated unneeded call of httpAddrPort()
 CUPS library function.

diff --git a/cupsfilters/ppdgenerator.c b/cupsfilters/ppdgenerator.c
index 052e3c5e..112723d9 100644
--- a/cupsfilters/ppdgenerator.c
+++ b/cupsfilters/ppdgenerator.c
@@ -360,15 +360,14 @@ pwg_copy_size(cups_size_t *size)  /* I - Media size to 
copy */
 }
 
 static int                             /* O  - 1 on success, 0 on failure */
-cups_get_url(http_t     **http,                /* IO - Current HTTP connection 
*/
-             const char *url,          /* I  - URL to get */
-             char       *name,         /* I  - Temporary filename */
-             size_t     namesize)      /* I  - Size of temporary filename 
buffer */
+get_url(const char *url,               /* I  - URL to get */
+       char       *name,               /* I  - Temporary filename */
+       size_t     namesize)            /* I  - Size of temporary filename 
buffer */
 {
+  http_t               *http = NULL;
   char                 scheme[32],     /* URL scheme */
                        userpass[256],  /* URL username:password */
                        host[256],      /* URL host */
-                       curhost[256],   /* Current host */
                        resource[256];  /* URL resource */
   int                  port;           /* URL port */
   http_encryption_t    encryption;     /* Type of encryption to use */
@@ -384,21 +383,18 @@ cups_get_url(http_t     **http,           /* IO - Current 
HTTP connection */
   else
     encryption = HTTP_ENCRYPTION_IF_REQUESTED;
 
-  if (!*http || strcasecmp(host, httpGetHostname(*http, curhost, 
sizeof(curhost))) || httpAddrPort(httpGetAddress(*http)) != port)
-  {
-    httpClose(*http);
-    *http = httpConnect2(host, port, NULL, AF_UNSPEC, encryption, 1, 5000, 
NULL);
-  }
+  http = httpConnect2(host, port, NULL, AF_UNSPEC, encryption, 1, 5000, NULL);
 
-  if (!*http)
+  if (!http)
     return (0);
 
   if ((fd = cupsTempFd(name, (int)namesize)) < 0)
     return (0);
 
-  status = cupsGetFd(*http, resource, fd);
+  status = cupsGetFd(http, resource, fd);
 
   close(fd);
+  httpClose(http);
 
   if (status != HTTP_STATUS_OK)
   {
@@ -736,7 +732,6 @@ lookup_choice(char *name, char *opt_name, cups_array_t 
*options,
 void
 load_opt_strings_catalog(const char *location, cups_array_t *options)
 {
-  http_t *http = NULL;
   char tmpfile[1024];
   const char *filename = NULL;
   struct stat statbuf;
@@ -761,10 +756,8 @@ load_opt_strings_catalog(const char *location, 
cups_array_t *options)
     else
       filename = location;
   } else {
-    if (cups_get_url(&http, location, tmpfile, sizeof(tmpfile)))
+    if (get_url(location, tmpfile, sizeof(tmpfile)))
       filename = tmpfile;
-    if (http)
-      httpClose(http);
   }
   if (!filename)
     return;

Reply via email to