Script 'mail_helper' called by obssrc
Hello community,

here is the log from the commit of package pappl for openSUSE:Factory checked 
in at 2026-08-21 17:01:29
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/pappl (Old)
 and      /work/SRC/openSUSE:Factory/.pappl.new.1258 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "pappl"

Fri Aug 21 17:01:29 2026 rev:14 rq:1372824 version:1.4.12

Changes:
--------
--- /work/SRC/openSUSE:Factory/pappl/pappl.changes      2026-06-08 
14:25:30.125509997 +0200
+++ /work/SRC/openSUSE:Factory/.pappl.new.1258/pappl.changes    2026-08-21 
17:02:55.679465418 +0200
@@ -1,0 +2,15 @@
+Fri Aug 21 10:32:45 UTC 2026 - Jan Engelhardt <[email protected]>
+
+- Update to release 1.4.12
+  * Added overflow protection to the dithering code paths and for
+    setting ready media values.
+  * Added logging of the USB port status byte for USB-connected
+    printers.
+  * Now clears USB errors after a failed get device ID request.
+  * Updated poll error handling and forced sleep to be consistent
+    throughout.
+  * Now closes HTTP connections immediately after returning an
+    error.
+  * Fixed a locking issue when deleting a printer.
+
+-------------------------------------------------------------------

Old:
----
  pappl-1.4.11.tar.gz
  pappl-1.4.11.tar.gz.sig

New:
----
  pappl-1.4.12.tar.gz
  pappl-1.4.12.tar.gz.sig

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

Other differences:
------------------
++++++ pappl.spec ++++++
--- /var/tmp/diff_new_pack.6tdh3E/_old  2026-08-21 17:02:57.324523661 +0200
+++ /var/tmp/diff_new_pack.6tdh3E/_new  2026-08-21 17:02:57.329523838 +0200
@@ -18,7 +18,7 @@
 
 Name:           pappl
 %define lname   libpappl1
-Version:        1.4.11
+Version:        1.4.12
 Release:        0
 Summary:        A printer application framework
 License:        Apache-2.0

++++++ _scmsync.obsinfo ++++++
--- /var/tmp/diff_new_pack.6tdh3E/_old  2026-08-21 17:02:57.434527556 +0200
+++ /var/tmp/diff_new_pack.6tdh3E/_new  2026-08-21 17:02:57.448528052 +0200
@@ -1,5 +1,5 @@
-mtime: 1780822106
-commit: 190099eaeac9c60c09f3177d3ce9de3807063c663ffc2aca4cfb03b7930a6b7e
+mtime: 1787312112
+commit: fee84632c6e7051e113c81066bfea2183be4e5160b2ecc0f27873d2505f39dd0
 url: https://src.opensuse.org/jengelh/pappl
 revision: master
 

++++++ build.specials.obscpio ++++++

++++++ build.specials.obscpio ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/.gitignore new/.gitignore
--- old/.gitignore      1970-01-01 01:00:00.000000000 +0100
+++ new/.gitignore      2026-08-21 13:35:12.000000000 +0200
@@ -0,0 +1 @@
+.osc

++++++ pappl-1.4.11.tar.gz -> pappl-1.4.12.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/pappl-1.4.11/CHANGES.md new/pappl-1.4.12/CHANGES.md
--- old/pappl-1.4.11/CHANGES.md 2026-06-05 21:37:58.000000000 +0200
+++ new/pappl-1.4.12/CHANGES.md 2026-08-21 00:14:41.000000000 +0200
@@ -2,6 +2,18 @@
 ================
 
 
+v1.4.12 - 2026-08-20
+--------------------
+
+- CVE-2026-NNNNN: Added overflow protection to the dithering code paths.
+- CVE-2026-NNNNN: Added overflow protection for setting ready media values.
+- Added logging of the USB port status byte for USB-connected printers.
+- Now clear USB errors after a failed get device ID request.
+- Updated poll error handling and forced sleep to be consistent throughout.
+- Now close HTTP connections immediately after returning an error (Issue #431)
+- Fixed a locking issue when deleting a printer (Issue #433)
+
+
 v1.4.11 - 2026-06-05
 --------------------
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/pappl-1.4.11/SECURITY.md new/pappl-1.4.12/SECURITY.md
--- old/pappl-1.4.11/SECURITY.md        2026-06-05 21:37:58.000000000 +0200
+++ new/pappl-1.4.12/SECURITY.md        2026-08-21 00:14:41.000000000 +0200
@@ -5,45 +5,12 @@
 expectations are for security issues reported to this project.
 
 
-Reporting a Security Bug
-------------------------
-
-For the purposes of this project, a security bug is a software defect that
-allows a *local or remote user* to gain unauthorized access or privileges on 
the
-host computer or to cause the software to crash.  Such defects should be
-reported to the project security advisory page at
-<https://github.com/michaelrsweet/pappl/security/advisories>.
-
-Alternately, security bugs can be reported to "security AT msweet.org" using 
the
-PGP public key below.  Expect a response within 5 business days.  Any proposed
-embargo date should be at least 30 days and no more than 90 days in the future.
-
-> *Note:* If you've found a software defect that allows a *program* to gain
-> unauthorized access or privileges on the host computer or causes the program
-> to crash, that defect should be reported as an ordinary project issue at
-> <https://github.com/michaelrsweet/pappl/issues>.
-
-
-Responsible Disclosure
-----------------------
-
-With *responsible disclosure*, a security issue (and its fix) is disclosed only
-after a mutually-agreed period of time (the "embargo date").  The issue and fix
-are shared amongst and reviewed by the key stakeholders (Linux distributions,
-OS vendors, etc.) and the CERT/CC.  Fixes are released to the public on the
-agreed-upon date.
-
-> Responsible disclosure applies only to production releases.  A security
-> vulnerability that only affects unreleased code can be fixed immediately
-> without coordination.  Vendors *should not* package and release unstable
-> snapshots, beta releases, or release candidates of this software.
-
-
 Supported Versions
 ------------------
 
-All production releases of this software are subject to this security policy.  
A
-production release is tagged and given a semantic version number of the form:
+All production releases of this software are subject to this security policy.
+A production release is tagged and given a semantic version number of the
+form:
 
     MAJOR.MINOR.PATCH
 
@@ -69,64 +36,50 @@
     1.0rc1
 
 
-PGP Public Key
---------------
+What is a Security Bug?
+-----------------------
+
+The following kinds of issues are generally treated as security
+vulnerabilities:
 
-The following PGP public key can be used for signing security messages.
+- Daemon/service crashes/hangs caused by a network request,
+- Remote code execution through an API or other interface used by PAPPL,
+- Privilege escalation that allows unauthorized actions or information
+  disclosure, and
+- Common weaknesses (buffer overflow, divide-by-zero, input validation,
+  use-after-free, etc.) that lead to a demonstrated (not theoretical) exploit.
+
+The following kinds of issues are generally treated as regular bugs:
+
+- Vulnerabilities caused by mis-configuration,
+- Issues caused by incorrect API usage, and
+- Issues that only exist in non-production software.
+
+Regular bugs should be reported to the project using the GitHub (public) issue
+tracker page at <https://github.com/michaelrsweet/pappl/issues>.
+
+
+Reporting a Security Bug
+------------------------
+
+Vulnerabilities should be reported to the project security advisory page at
+<https://github.com/michaelrsweet/pappl/security/advisories>.
+
+Provide details, impact, reproducer, affected versions, workarounds, and a
+patch for the vulnerability, if applicable.
+
+You can expect a response within 5 business days.
+
+
+Responsible Disclosure
+----------------------
 
-```
------BEGIN PGP PUBLIC KEY BLOCK-----
-Comment: GPGTools - https://gpgtools.org
-
-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
-WkiKlA==
-=0GzT
------END PGP PUBLIC KEY BLOCK-----
-```
+With *responsible disclosure*, a security issue (and its fix) is disclosed
+only after a mutually-agreed period of time (the "embargo date").  The issue
+and fix are shared amongst and reviewed by the key stakeholders and the
+CERT/CC.  Fixes are released to the public on the agreed-upon date.
+
+Responsible disclosure is used for security issues in production releases
+whose CVSS score is 7 or more.  Fixes for lesser security issues are typically
+pushed to the public GitHub repository after review and included in the next
+scheduled production release.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/pappl-1.4.11/configure new/pappl-1.4.12/configure
--- old/pappl-1.4.11/configure  2026-06-05 21:37:58.000000000 +0200
+++ new/pappl-1.4.12/configure  2026-08-21 00:14:41.000000000 +0200
@@ -1,6 +1,6 @@
 #! /bin/sh
 # Guess values for system-dependent variables and create Makefiles.
-# Generated by GNU Autoconf 2.71 for pappl 1.4.11.
+# Generated by GNU Autoconf 2.71 for pappl 1.4.12.
 #
 # Report bugs to <https://github.com/michaelrsweet/pappl/issues>.
 #
@@ -610,8 +610,8 @@
 # Identity of this package.
 PACKAGE_NAME='pappl'
 PACKAGE_TARNAME='pappl'
-PACKAGE_VERSION='1.4.11'
-PACKAGE_STRING='pappl 1.4.11'
+PACKAGE_VERSION='1.4.12'
+PACKAGE_STRING='pappl 1.4.12'
 PACKAGE_BUGREPORT='https://github.com/michaelrsweet/pappl/issues'
 PACKAGE_URL='https://www.msweet.org/pappl'
 
@@ -1310,7 +1310,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 pappl 1.4.11 to adapt to many kinds of systems.
+\`configure' configures pappl 1.4.12 to adapt to many kinds of systems.
 
 Usage: $0 [OPTION]... [VAR=VALUE]...
 
@@ -1376,7 +1376,7 @@
 
 if test -n "$ac_init_help"; then
   case $ac_init_help in
-     short | recursive ) echo "Configuration of pappl 1.4.11:";;
+     short | recursive ) echo "Configuration of pappl 1.4.12:";;
    esac
   cat <<\_ACEOF
 
@@ -1485,7 +1485,7 @@
 test -n "$ac_init_help" && exit $ac_status
 if $ac_init_version; then
   cat <<\_ACEOF
-pappl configure 1.4.11
+pappl configure 1.4.12
 generated by GNU Autoconf 2.71
 
 Copyright (C) 2021 Free Software Foundation, Inc.
@@ -1703,7 +1703,7 @@
 This file contains any messages produced by compilers while
 running configure, to aid debugging if configure makes a mistake.
 
-It was created by pappl $as_me 1.4.11, which was
+It was created by pappl $as_me 1.4.12, which was
 generated by GNU Autoconf 2.71.  Invocation command line was
 
   $ $0$ac_configure_args_raw
@@ -2461,9 +2461,9 @@
 ac_config_headers="$ac_config_headers config.h"
 
 
-PAPPL_VERSION="1.4.11"
-PAPPL_VERSION_MAJOR="`echo 1.4.11 | awk -F. '{print $1}'`"
-PAPPL_VERSION_MINOR="`echo 1.4.11 | awk -F. '{printf("%d\n",$2);}'`"
+PAPPL_VERSION="1.4.12"
+PAPPL_VERSION_MAJOR="`echo 1.4.12 | awk -F. '{print $1}'`"
+PAPPL_VERSION_MINOR="`echo 1.4.12 | awk -F. '{printf("%d\n",$2);}'`"
 
 
 
@@ -6009,7 +6009,7 @@
 # report actual input values of CONFIG_FILES etc. instead of their
 # values after options handling.
 ac_log="
-This file was extended by pappl $as_me 1.4.11, which was
+This file was extended by pappl $as_me 1.4.12, which was
 generated by GNU Autoconf 2.71.  Invocation command line was
 
   CONFIG_FILES    = $CONFIG_FILES
@@ -6074,7 +6074,7 @@
 cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
 ac_cs_config='$ac_cs_config_escaped'
 ac_cs_version="\\
-pappl config.status 1.4.11
+pappl config.status 1.4.12
 configured by $0, generated by GNU Autoconf 2.71,
   with options \\"\$ac_cs_config\\"
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/pappl-1.4.11/configure.ac 
new/pappl-1.4.12/configure.ac
--- old/pappl-1.4.11/configure.ac       2026-06-05 21:37:58.000000000 +0200
+++ new/pappl-1.4.12/configure.ac       2026-08-21 00:14:41.000000000 +0200
@@ -21,7 +21,7 @@
 
 
 dnl Package name and version...
-AC_INIT([pappl], [1.4.11], [https://github.com/michaelrsweet/pappl/issues], 
[pappl], [https://www.msweet.org/pappl])
+AC_INIT([pappl], [1.4.12], [https://github.com/michaelrsweet/pappl/issues], 
[pappl], [https://www.msweet.org/pappl])
 AC_CONFIG_HEADERS([config.h])
 
 PAPPL_VERSION="AC_PACKAGE_VERSION"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/pappl-1.4.11/doc/pappl.html 
new/pappl-1.4.12/doc/pappl.html
--- old/pappl-1.4.11/doc/pappl.html     2026-06-05 21:37:58.000000000 +0200
+++ new/pappl-1.4.12/doc/pappl.html     2026-08-21 00:14:41.000000000 +0200
@@ -7,7 +7,7 @@
 <meta name="author" content="Michael R Sweet">
 <meta name="language" content="en-US">
 <meta name="copyright" content="Copyright © 2020-2026 by Michael R Sweet">
-<meta name="version" content="1.4.11">
+<meta name="version" content="1.4.12">
 <style type="text/css"><!--
 body {
   background: white;
@@ -2131,6 +2131,8 @@
 <li><code>HTTP_STATUS_METHOD_NOT_ALLOWED</code>: The HTTP method is not 
supported for the
   given URI.
 </li>
+<li><code>HTTP_STATUS_NOT_FOUND</code>: The resource was not found.
+</li>
 <li><code>HTTP_STATUS_UNAUTHORIZED</code>: Not authenticated.
 </li>
 <li><code>HTTP_STATUS_UPGRADE_REQUIRED</code>: Redirects the client to a 
secure page.</li>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/pappl-1.4.11/man/pappl-client.3 
new/pappl-1.4.12/man/pappl-client.3
--- old/pappl-1.4.11/man/pappl-client.3 2026-06-05 21:37:58.000000000 +0200
+++ new/pappl-1.4.12/man/pappl-client.3 2026-08-21 00:14:41.000000000 +0200
@@ -1,4 +1,4 @@
-.TH pappl-client 3 "pappl client functions" "2026-05-18" "pappl client 
functions"
+.TH pappl-client 3 "pappl client functions" "2026-08-11" "pappl client 
functions"
 .SH NAME
 pappl-client \- pappl client functions
 .SH LIBRARY
@@ -689,6 +689,8 @@
 \fBHTTP_STATUS_METHOD_NOT_ALLOWED\fR: The HTTP method is not supported for the
   given URI.
 .IP \(bu 5
+\fBHTTP_STATUS_NOT_FOUND\fR: The resource was not found.
+.IP \(bu 5
 \fBHTTP_STATUS_UNAUTHORIZED\fR: Not authenticated.
 .IP \(bu 5
 \fBHTTP_STATUS_UPGRADE_REQUIRED\fR: Redirects the client to a secure page.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/pappl-1.4.11/man/pappl-device.3 
new/pappl-1.4.12/man/pappl-device.3
--- old/pappl-1.4.11/man/pappl-device.3 2026-06-05 21:37:58.000000000 +0200
+++ new/pappl-1.4.12/man/pappl-device.3 2026-08-21 00:14:41.000000000 +0200
@@ -1,4 +1,4 @@
-.TH pappl-device 3 "pappl device functions" "2026-05-18" "pappl device 
functions"
+.TH pappl-device 3 "pappl device functions" "2026-08-11" "pappl device 
functions"
 .SH NAME
 pappl-device \- pappl device functions
 .SH LIBRARY
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/pappl-1.4.11/man/pappl-job.3 
new/pappl-1.4.12/man/pappl-job.3
--- old/pappl-1.4.11/man/pappl-job.3    2026-06-05 21:37:58.000000000 +0200
+++ new/pappl-1.4.12/man/pappl-job.3    2026-08-21 00:14:41.000000000 +0200
@@ -1,4 +1,4 @@
-.TH pappl-job 3 "pappl job functions" "2026-05-18" "pappl job functions"
+.TH pappl-job 3 "pappl job functions" "2026-08-11" "pappl job functions"
 .SH NAME
 pappl-job \- pappl job functions
 .SH LIBRARY
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/pappl-1.4.11/man/pappl-log.3 
new/pappl-1.4.12/man/pappl-log.3
--- old/pappl-1.4.11/man/pappl-log.3    2026-06-05 21:37:58.000000000 +0200
+++ new/pappl-1.4.12/man/pappl-log.3    2026-08-21 00:14:41.000000000 +0200
@@ -1,4 +1,4 @@
-.TH pappl-log 3 "pappl logging functions" "2026-05-18" "pappl logging 
functions"
+.TH pappl-log 3 "pappl logging functions" "2026-08-11" "pappl logging 
functions"
 .SH NAME
 pappl-log \- pappl logging functions
 .SH LIBRARY
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/pappl-1.4.11/man/pappl-mainloop.3 
new/pappl-1.4.12/man/pappl-mainloop.3
--- old/pappl-1.4.11/man/pappl-mainloop.3       2026-06-05 21:37:58.000000000 
+0200
+++ new/pappl-1.4.12/man/pappl-mainloop.3       2026-08-21 00:14:41.000000000 
+0200
@@ -1,4 +1,4 @@
-.TH pappl-mainloop 3 "pappl main loop functions" "2026-05-18" "pappl main loop 
functions"
+.TH pappl-mainloop 3 "pappl main loop functions" "2026-08-11" "pappl main loop 
functions"
 .SH NAME
 pappl-mainloop \- pappl main loop functions
 .SH LIBRARY
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/pappl-1.4.11/man/pappl-printer.3 
new/pappl-1.4.12/man/pappl-printer.3
--- old/pappl-1.4.11/man/pappl-printer.3        2026-06-05 21:37:58.000000000 
+0200
+++ new/pappl-1.4.12/man/pappl-printer.3        2026-08-21 00:14:41.000000000 
+0200
@@ -1,4 +1,4 @@
-.TH pappl-printer 3 "pappl printer functions" "2026-05-18" "pappl printer 
functions"
+.TH pappl-printer 3 "pappl printer functions" "2026-08-11" "pappl printer 
functions"
 .SH NAME
 pappl-printer \- pappl printer functions
 .SH LIBRARY
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/pappl-1.4.11/man/pappl-resource.3 
new/pappl-1.4.12/man/pappl-resource.3
--- old/pappl-1.4.11/man/pappl-resource.3       2026-06-05 21:37:58.000000000 
+0200
+++ new/pappl-1.4.12/man/pappl-resource.3       2026-08-21 00:14:41.000000000 
+0200
@@ -1,4 +1,4 @@
-.TH pappl-resource 3 "pappl resource functions" "2026-05-18" "pappl resource 
functions"
+.TH pappl-resource 3 "pappl resource functions" "2026-08-11" "pappl resource 
functions"
 .SH NAME
 pappl-resource \- pappl resource functions
 .SH LIBRARY
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/pappl-1.4.11/man/pappl-system.3 
new/pappl-1.4.12/man/pappl-system.3
--- old/pappl-1.4.11/man/pappl-system.3 2026-06-05 21:37:58.000000000 +0200
+++ new/pappl-1.4.12/man/pappl-system.3 2026-08-21 00:14:41.000000000 +0200
@@ -1,4 +1,4 @@
-.TH pappl-system 3 "pappl system functions" "2026-05-18" "pappl system 
functions"
+.TH pappl-system 3 "pappl system functions" "2026-08-11" "pappl system 
functions"
 .SH NAME
 pappl-system \- pappl system functions
 .SH LIBRARY
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/pappl-1.4.11/pappl/client-ipp.c 
new/pappl-1.4.12/pappl/client-ipp.c
--- old/pappl-1.4.11/pappl/client-ipp.c 2026-06-05 21:37:58.000000000 +0200
+++ new/pappl-1.4.12/pappl/client-ipp.c 2026-08-21 00:14:41.000000000 +0200
@@ -1,7 +1,7 @@
 //
 // Common client IPP processing for the Printer Application Framework
 //
-// Copyright © 2019-2024 by Michael R Sweet.
+// Copyright © 2019-2026 by Michael R Sweet.
 // Copyright © 2010-2019 by Apple Inc.
 //
 // Licensed under Apache License v2.0.  See the file "LICENSE" for more
@@ -148,6 +148,13 @@
        attr = ippCopyAttribute(client->response, charset, false);
        ippSetGroupTag(client->response, &attr, IPP_TAG_UNSUPPORTED_GROUP);
       }
+      else if (language && !ippValidateAttribute(language))
+      {
+        // Bad natural language...
+       papplClientRespondIPP(client, IPP_STATUS_ERROR_BAD_REQUEST, "Bad 
\"attributes-natural-language\" value '%s'.", ippGetString(language, 0, NULL));
+       attr = ippCopyAttribute(client->response, language, false);
+       ippSetGroupTag(client->response, &attr, IPP_TAG_UNSUPPORTED_GROUP);
+      }
       else if (!charset || !language || (!uri && op != IPP_OP_CUPS_GET_DEFAULT 
&& op != IPP_OP_CUPS_GET_PRINTERS))
       {
         // Return an error, since attributes-charset,
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/pappl-1.4.11/pappl/client.c 
new/pappl-1.4.12/pappl/client.c
--- old/pappl-1.4.11/pappl/client.c     2026-06-05 21:37:58.000000000 +0200
+++ new/pappl-1.4.12/pappl/client.c     2026-08-21 00:14:41.000000000 +0200
@@ -1,7 +1,7 @@
 //
 // Client processing code for the Printer Application Framework
 //
-// Copyright © 2019-2025 by Michael R Sweet.
+// Copyright © 2019-2026 by Michael R Sweet.
 // Copyright © 2010-2019 by Apple Inc.
 //
 // Licensed under Apache License v2.0.  See the file "LICENSE" for more
@@ -364,7 +364,8 @@
        }
 
         // If we get here the resource wasn't found...
-       return (papplClientRespond(client, HTTP_STATUS_NOT_FOUND, NULL, NULL, 
0, 0));
+       papplClientRespond(client, HTTP_STATUS_NOT_FOUND, NULL, NULL, 0, 0);
+       return (false);
 
     case HTTP_STATE_GET :
         // See if we have a matching resource to serve...
@@ -417,7 +418,8 @@
        }
 
         // If we get here then the resource wasn't found...
-       return (papplClientRespond(client, HTTP_STATUS_NOT_FOUND, NULL, NULL, 
0, 0));
+       papplClientRespond(client, HTTP_STATUS_NOT_FOUND, NULL, NULL, 0, 0);
+       return (false);
 
     case HTTP_STATE_POST :
         if (!strcmp(httpGetField(client->http, HTTP_FIELD_CONTENT_TYPE), 
"application/ipp"))
@@ -449,13 +451,15 @@
           else
           {
             // Otherwise you can't POST to a resource...
-           return (papplClientRespond(client, HTTP_STATUS_BAD_REQUEST, NULL, 
NULL, 0, 0));
+           papplClientRespond(client, HTTP_STATUS_BAD_REQUEST, NULL, NULL, 0, 
0);
+           return (false);
           }
         }
         else
         {
          // Not an IPP request or form, return an error...
-         return (papplClientRespond(client, HTTP_STATUS_BAD_REQUEST, NULL, 
NULL, 0, 0));
+         papplClientRespond(client, HTTP_STATUS_BAD_REQUEST, NULL, NULL, 0, 0);
+         return (false);
        }
 
     default :
@@ -479,6 +483,7 @@
 // - `HTTP_STATUS_FORBIDDEN`: Authenticated but not allowed.
 // - `HTTP_STATUS_METHOD_NOT_ALLOWED`: The HTTP method is not supported for the
 //   given URI.
+// - `HTTP_STATUS_NOT_FOUND`: The resource was not found.
 // - `HTTP_STATUS_UNAUTHORIZED`: Not authenticated.
 // - `HTTP_STATUS_UPGRADE_REQUIRED`: Redirects the client to a secure page.
 //
@@ -526,7 +531,8 @@
   httpSetField(client->http, HTTP_FIELD_SERVER, 
papplSystemGetServerHeader(client->system));
   if (last_modified)
     httpSetField(client->http, HTTP_FIELD_LAST_MODIFIED, 
httpGetDateString(last_modified, last_str, sizeof(last_str)));
-
+  if (code >= HTTP_STATUS_BAD_REQUEST)
+     httpSetField(client->http, HTTP_FIELD_CONNECTION, "close");
   if (code == HTTP_STATUS_METHOD_NOT_ALLOWED || client->operation == 
HTTP_STATE_OPTIONS)
     httpSetField(client->http, HTTP_FIELD_ALLOW, "GET, HEAD, OPTIONS, POST");
 
@@ -680,6 +686,9 @@
       break;
 
     _papplClientCleanTempFiles(client);
+
+    // Limit maximum CPU usage by a single client...
+    usleep(1000);
   }
 
   // Close the connection to the client and return...
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/pappl-1.4.11/pappl/device-network.c 
new/pappl-1.4.12/pappl/device-network.c
--- old/pappl-1.4.11/pappl/device-network.c     2026-06-05 21:37:58.000000000 
+0200
+++ new/pappl-1.4.12/pappl/device-network.c     2026-08-21 00:14:41.000000000 
+0200
@@ -1,7 +1,7 @@
 //
 // Network device support code for the Printer Application Framework
 //
-// Copyright © 2019-2024 by Michael R Sweet.
+// Copyright © 2019-2026 by Michael R Sweet.
 // Copyright © 2007-2019 by Apple Inc.
 //
 // Licensed under Apache License v2.0.  See the file "LICENSE" for more
@@ -1764,7 +1764,7 @@
   if ((sock = papplDeviceGetData(device)) == NULL)
     return (-1);
 
-  // Only read if we have data to read within 100ms...
+  // Only read if we have data to read within 10 seconds...
   data.fd      = sock->fd;
   data.events  = POLLIN;
   data.revents = 0;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/pappl-1.4.11/pappl/device-usb.c 
new/pappl-1.4.12/pappl/device-usb.c
--- old/pappl-1.4.11/pappl/device-usb.c 2026-06-05 21:37:58.000000000 +0200
+++ new/pappl-1.4.12/pappl/device-usb.c 2026-08-21 00:14:41.000000000 +0200
@@ -598,6 +598,9 @@
   // Get the 1284 Device ID...
   if ((error = libusb_control_transfer(usb->handle, 
(uint8_t)LIBUSB_REQUEST_TYPE_CLASS | (uint8_t)LIBUSB_ENDPOINT_IN | 
(uint8_t)LIBUSB_RECIPIENT_INTERFACE, 0, (uint16_t)usb->conf, 
(uint16_t)((usb->iface << 8) | usb->altset), (unsigned char *)buffer, 
(uint16_t)bufsize, 5000)) < 0)
   {
+    if (error == LIBUSB_ERROR_PIPE)
+      libusb_clear_halt(usb->handle, usb->read_endp);
+
     papplDeviceError(device, "Unable to get IEEE-1284 device ID from USB port: 
%s", libusb_strerror((enum libusb_error)error));
     buffer[0] = '\0';
     return (NULL);
@@ -763,6 +766,8 @@
   }
   else
   {
+    papplDeviceError(device, "DEBUG: USB port status is 0x%02X.", port_status 
& 255);
+
     if (!(port_status & 0x08))
       status |= PAPPL_PREASON_OTHER;
     if (port_status & 0x20)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/pappl-1.4.11/pappl/dnssd.c 
new/pappl-1.4.12/pappl/dnssd.c
--- old/pappl-1.4.11/pappl/dnssd.c      2026-06-05 21:37:58.000000000 +0200
+++ new/pappl-1.4.12/pappl/dnssd.c      2026-08-21 00:14:41.000000000 +0200
@@ -1,7 +1,7 @@
 //
 // DNS-SD support for the Printer Application Framework
 //
-// Copyright © 2019-2024 by Michael R Sweet.
+// Copyright © 2019-2026 by Michael R Sweet.
 // Copyright © 2010-2019 by Apple Inc.
 //
 // Licensed under Apache License v2.0.  See the file "LICENSE" for more
@@ -1319,7 +1319,8 @@
 static void *                          // O - Exit status
 dns_sd_run(void *data)                 // I - System object
 {
-  int          err;                    // Status
+  int          count,                  // Number of poll file descriptors
+               err;                    // Status
   pappl_system_t *system = (pappl_system_t *)data;
                                        // System object
   struct pollfd        pfd;                    // Poll data
@@ -1332,14 +1333,19 @@
   {
     // Wait up to 1 second for new data...
 #  if _WIN32
-    if (poll(&pfd, 1, 1000) < 0 && WSAGetLastError() == WSAEINTR)
+    if ((count = poll(&pfd, 1, 1000)) < 0 && WSAGetLastError() == WSAEINTR)
 #  else
-    if (poll(&pfd, 1, 1000) < 0 && errno != EINTR && errno != EAGAIN)
+    if ((count = poll(&pfd, 1, 1000)) < 0 && errno != EINTR && errno != EAGAIN)
 #  endif // _WIN32
     {
       papplLog(system, PAPPL_LOGLEVEL_ERROR, "DNS-SD poll failed: %s", 
strerror(errno));
       break;
     }
+    else if (count <= 0)
+    {
+      usleep(1);
+      continue;
+    }
 
     if (pfd.revents & POLLIN)
     {
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/pappl-1.4.11/pappl/job-process.c 
new/pappl-1.4.12/pappl/job-process.c
--- old/pappl-1.4.11/pappl/job-process.c        2026-06-05 21:37:58.000000000 
+0200
+++ new/pappl-1.4.12/pappl/job-process.c        2026-08-21 00:14:41.000000000 
+0200
@@ -725,7 +725,7 @@
           if (header.cupsColorSpace == CUPS_CSPACE_K)
           {
             // Black...
-           for (x = 0, lineptr = line, pixptr = pixels, bit = 128, byte = 0; x 
< header.cupsWidth; x ++, pixptr ++)
+           for (x = 0, lineptr = line, pixptr = pixels, bit = 128, byte = 0; x 
< header.cupsWidth && x < options->header.cupsWidth; x ++, pixptr ++)
            {
              if (*pixptr > dither[x & 15])
                byte |= bit;
@@ -746,7 +746,7 @@
          else
          {
            // Grayscale to black...
-           for (x = 0, lineptr = line, pixptr = pixels, bit = 128, byte = 0; x 
< header.cupsWidth; x ++, pixptr ++)
+           for (x = 0, lineptr = line, pixptr = pixels, bit = 128, byte = 0; x 
< header.cupsWidth && x < options->header.cupsWidth; x ++, pixptr ++)
            {
              if (*pixptr <= dither[x & 15])
                byte |= bit;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/pappl-1.4.11/pappl/log.c new/pappl-1.4.12/pappl/log.c
--- old/pappl-1.4.11/pappl/log.c        2026-06-05 21:37:58.000000000 +0200
+++ new/pappl-1.4.12/pappl/log.c        2026-08-21 00:14:41.000000000 +0200
@@ -1,7 +1,7 @@
 //
 // Logging functions for the Printer Application Framework
 //
-// Copyright © 2019-2024 by Michael R Sweet.
+// Copyright © 2019-2026 by Michael R Sweet.
 //
 // Licensed under Apache License v2.0.  See the file "LICENSE" for more
 // information.
@@ -233,7 +233,10 @@
                                        // System
 
 
-  papplLog(system, PAPPL_LOGLEVEL_ERROR, "[Device] %s", message);
+  if (!strncmp(message, "DEBUG: ", 7))
+    papplLog(system, PAPPL_LOGLEVEL_DEBUG, "[Device] %s", message + 7);
+  else
+    papplLog(system, PAPPL_LOGLEVEL_ERROR, "[Device] %s", message);
 }
 
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/pappl-1.4.11/pappl/printer-ipp.c 
new/pappl-1.4.12/pappl/printer-ipp.c
--- old/pappl-1.4.11/pappl/printer-ipp.c        2026-06-05 21:37:58.000000000 
+0200
+++ new/pappl-1.4.12/pappl/printer-ipp.c        2026-08-21 00:14:41.000000000 
+0200
@@ -1120,7 +1120,7 @@
     {
       count = ippGetCount(rattr);
 
-      for (i = 0; i < count; i ++)
+      for (i = 0; i < count && i < driver_data.num_source; i ++)
         _papplMediaColImport(ippGetCollection(rattr, i), 
driver_data.media_ready + i);
 
       for (; i < PAPPL_MAX_SOURCE; i ++)
@@ -1143,7 +1143,7 @@
     {
       count = ippGetCount(rattr);
 
-      for (i = 0; i < count; i ++)
+      for (i = 0; i < count && i < driver_data.num_source; i ++)
       {
         if ((pwg = pwgMediaForPWG(ippGetString(rattr, i, NULL))) != NULL)
         {
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/pappl-1.4.11/pappl/printer-raw.c 
new/pappl-1.4.12/pappl/printer-raw.c
--- old/pappl-1.4.11/pappl/printer-raw.c        2026-06-05 21:37:58.000000000 
+0200
+++ new/pappl-1.4.12/pappl/printer-raw.c        2026-08-21 00:14:41.000000000 
+0200
@@ -1,7 +1,7 @@
 //
 // Raw printing support for the Printer Application Framework
 //
-// Copyright © 2019-2025 by Michael R Sweet.
+// Copyright © 2019-2026 by Michael R Sweet.
 //
 // Licensed under Apache License v2.0.  See the file "LICENSE" for more
 // information.
@@ -76,7 +76,7 @@
     pappl_printer_t *printer)          // I - Printer
 {
   int          i;                      // Looping var
-  int          count;                  // Return value from poll()
+  int          pcount;                 // Return value from poll()
 
 
   papplLogPrinter(printer, PAPPL_LOGLEVEL_DEBUG, "Socket listener thread 
starting with %d listeners.", printer->num_raw_listeners);
@@ -103,12 +103,31 @@
     if (papplPrinterIsDeleted(printer) || 
_papplSystemIsShutdownNoLock(printer->system))
       break;
 
-    // Wait 1 second for new connections...
-    if ((count = poll(printer->raw_listeners, 
(nfds_t)printer->num_raw_listeners, 250)) > 0)
+    // Wait a second for new connections...
+    if ((pcount = poll(printer->raw_listeners, 
(nfds_t)printer->num_raw_listeners, 1000)) < 0)
     {
+      if (errno != EAGAIN && errno != EINTR)
+      {
+       papplLogPrinter(printer, PAPPL_LOGLEVEL_ERROR, "Raw poll failed: %s", 
strerror(errno));
+       break;
+      }
+
       if (papplPrinterIsDeleted(printer) || 
_papplSystemIsShutdownNoLock(printer->system))
        break;
 
+      sleep(1);
+    }
+    else if (papplPrinterIsDeleted(printer) || 
_papplSystemIsShutdownNoLock(printer->system))
+    {
+      break;
+    }
+    else if (pcount == 0)
+    {
+      // No new connections, sleep for 1ms to avoid hogging the CPU...
+      usleep(1000);
+    }
+    else if (pcount > 0)
+    {
       // Got a new connection request, accept from the corresponding 
listener...
       for (i = 0; i < printer->num_raw_listeners; i ++)
       {
@@ -170,10 +189,16 @@
 
             if ((bytes = poll(&sockp, 1, 1000)) <= 0)
            {
+             if (bytes < 0 && errno != EAGAIN && errno != EINTR)
+               break;
+
              if ((time(NULL) - activity) >= 60)
                break;
-             else
-               continue;
+
+             if (bytes < 0)
+                usleep(1);
+
+             continue;
            }
 
             if (sockp.revents & POLLIN)
@@ -231,8 +256,6 @@
         }
       }
     }
-    else if (count < 0 && errno != EAGAIN)
-      break;
   }
 
   _papplRWLockWrite(printer);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/pappl-1.4.11/pappl/printer-usb.c 
new/pappl-1.4.12/pappl/printer-usb.c
--- old/pappl-1.4.11/pappl/printer-usb.c        2026-06-05 21:37:58.000000000 
+0200
+++ new/pappl-1.4.12/pappl/printer-usb.c        2026-08-21 00:14:41.000000000 
+0200
@@ -103,7 +103,7 @@
   int          i;                      // Looping var
   struct pollfd        data[NUM_IPP_USB + 1];  // USB printer gadget listeners
   _ipp_usb_iface_t ifaces[NUM_IPP_USB];        // IPP-USB gadget interfaces
-  int          count;                  // Number of file descriptors from 
poll()
+  int          pcount;                 // Number of file descriptors from 
poll()
   pappl_device_t *device = NULL;       // Printer port data
   char         buffer[8192];           // Print data buffer
   ssize_t      bytes;                  // Bytes in buffer
@@ -156,9 +156,10 @@
 
     while (!papplPrinterIsDeleted(printer) && 
!_papplSystemIsShutdownNoLock(printer->system))
     {
-      if ((count = poll(data, NUM_IPP_USB + 1, 1000)) < 0)
+      if ((pcount = poll(data, NUM_IPP_USB + 1, 1000)) < 0)
       {
-       papplLogPrinter(printer, PAPPL_LOGLEVEL_ERROR, "USB poll failed: %s", 
strerror(errno));
+        if (errno != EAGAIN && errno != EINTR)
+         papplLogPrinter(printer, PAPPL_LOGLEVEL_ERROR, "USB poll failed: %s", 
strerror(errno));
 
        if (papplPrinterIsDeleted(printer) || 
_papplSystemIsShutdownNoLock(printer->system))
          break;
@@ -169,9 +170,15 @@
       {
        break;
       }
-      else if (count > 0)
+      else if (pcount == 0)
       {
-       papplLogPrinter(printer, PAPPL_LOGLEVEL_DEBUG, "USB poll returned %d, 
revents=[%d %d %d %d].", count, data[0].revents, data[1].revents, 
data[2].revents, data[3].revents);
+       // No new data, sleep 1ms to prevent excessive CPU usage...
+       usleep(1000);
+      }
+      else
+      {
+        // Check for new data
+       papplLogPrinter(printer, PAPPL_LOGLEVEL_DEBUG, "USB poll returned %d, 
revents=[%d %d %d %d].", pcount, data[0].revents, data[1].revents, 
data[2].revents, data[3].revents);
 
         if (data[0].revents & (POLLERR | POLLHUP))
         {
@@ -329,11 +336,6 @@
          }
        }
       }
-      else
-      {
-       // No new data, sleep 1ms to prevent excessive CPU usage...
-       usleep(1000);
-      }
 
       if (device && (time(NULL) - device_time) > 5)
       {
@@ -1302,6 +1304,10 @@
 
       pthread_setcancelstate(cstate, NULL);
     }
+    else
+    {
+      sleep(1);
+    }
   }
 
   error:
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/pappl-1.4.11/pappl/printer.c 
new/pappl-1.4.12/pappl/printer.c
--- old/pappl-1.4.11/pappl/printer.c    2026-06-05 21:37:58.000000000 +0200
+++ new/pappl-1.4.12/pappl/printer.c    2026-08-21 00:14:41.000000000 +0200
@@ -781,7 +781,9 @@
 
   // Remove the printer from the system object...
   _papplRWLockWrite(system);
+  pthread_rwlock_wrlock(&system->printers_rwlock);
   cupsArrayRemove(system->printers, printer);
+  pthread_rwlock_unlock(&system->printers_rwlock);
   _papplRWUnlock(system);
 
   _papplPrinterDelete(printer);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/pappl-1.4.11/pappl/system.c 
new/pappl-1.4.12/pappl/system.c
--- old/pappl-1.4.11/pappl/system.c     2026-06-05 21:37:58.000000000 +0200
+++ new/pappl-1.4.12/pappl/system.c     2026-08-21 00:14:41.000000000 +0200
@@ -655,8 +655,22 @@
       papplLog(system, PAPPL_LOGLEVEL_ERROR, "Unable to accept new 
connections: %s", strerror(errno));
       break;
     }
+    else if (pcount <= 0)
+    {
+      // Limit CPU usage
+      if (ptimeout > 0)
+       usleep(1000);
+
+      // Resume listening
+      _papplRWLockRead(system);
 
-    if (pcount > 0)
+      if (system->num_clients < system->max_clients)
+      {
+       for (i = 0; i < system->num_listeners; i ++)
+         system->listeners[i].events = POLLIN;
+      }
+    }
+    else if (pcount > 0)
     {
       // Accept client connections as needed...
       for (i = 0; i < (cups_len_t)system->num_listeners; i ++)
@@ -687,16 +701,6 @@
          system->listeners[i].events = 0;
       }
     }
-    else
-    {
-      _papplRWLockRead(system);
-
-      if (system->num_clients < system->max_clients)
-      {
-       for (i = 0; i < system->num_listeners; i ++)
-         system->listeners[i].events = POLLIN;
-      }
-    }
 
     dns_sd_host_changes = _papplDNSSDGetHostChanges();
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/pappl-1.4.11/pappl.spec new/pappl-1.4.12/pappl.spec
--- old/pappl-1.4.11/pappl.spec 2026-06-05 21:37:58.000000000 +0200
+++ new/pappl-1.4.12/pappl.spec 2026-08-21 00:14:41.000000000 +0200
@@ -9,7 +9,7 @@
 
 Summary: Printer Application Framework (PAPPL)
 Name: pappl
-Version: 1.4.11
+Version: 1.4.12
 Release: 1
 License: Apache 2.0
 Group: Development/Libraries
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/pappl-1.4.11/vcnet/config.h 
new/pappl-1.4.12/vcnet/config.h
--- old/pappl-1.4.11/vcnet/config.h     2026-06-05 21:37:58.000000000 +0200
+++ new/pappl-1.4.12/vcnet/config.h     2026-08-21 00:14:41.000000000 +0200
@@ -76,7 +76,7 @@
 
 typedef unsigned long useconds_t;
 #define sleep(X)       Sleep(1000 * (X))
-#define usleep(X)      Sleep((X)/1000)
+#define usleep(X)      Sleep((X+999)/1000)
 
 
 //
@@ -107,7 +107,7 @@
 
 
 // Version numbers
-#define PAPPL_VERSION "1.4.11"
+#define PAPPL_VERSION "1.4.12"
 #define PAPPL_VERSION_MAJOR 1
 #define PAPPL_VERSION_MINOR 4
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/pappl-1.4.11/vcnet/copy-dlls.bat 
new/pappl-1.4.12/vcnet/copy-dlls.bat
--- old/pappl-1.4.11/vcnet/copy-dlls.bat        2026-06-05 21:37:58.000000000 
+0200
+++ new/pappl-1.4.12/vcnet/copy-dlls.bat        2026-08-21 00:14:41.000000000 
+0200
@@ -1,5 +1,5 @@
 :: Script to copy dependent DLLs to the named build directory
-copy packages\libcups2_native.redist.2.4.11.1\build\native\bin\x64\Debug\*.dll 
%1
+copy packages\libcups2_native.redist.2.4.20\build\native\bin\x64\Debug\*.dll %1
 copy packages\libjpeg-turbo-v142.2.0.4.3\build\native\bin\x64\v142\Debug\*.dll 
%1
 copy packages\libressl_native.redist.3.7.3\build\native\bin\x64\Debug\*.dll %1
 copy packages\libpng_native.redist.1.6.30\build\native\bin\x64\Debug\*.dll %1
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/pappl-1.4.11/vcnet/libpappl1.vcxproj 
new/pappl-1.4.12/vcnet/libpappl1.vcxproj
--- old/pappl-1.4.11/vcnet/libpappl1.vcxproj    2026-06-05 21:37:58.000000000 
+0200
+++ new/pappl-1.4.12/vcnet/libpappl1.vcxproj    2026-08-21 00:14:41.000000000 
+0200
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="utf-8"?>
 <Project DefaultTargets="Build" ToolsVersion="15.0" 
xmlns="http://schemas.microsoft.com/developer/msbuild/2003";>
-  <Import 
Project="packages\libcups2_native.2.4.11.1\build\native\libcups2_native.props" 
Condition="Exists('packages\libcups2_native.2.4.11.1\build\native\libcups2_native.props')"
 />
+  <Import 
Project="packages\libcups2_native.2.4.20\build\native\libcups2_native.props" 
Condition="Exists('packages\libcups2_native.2.4.20\build\native\libcups2_native.props')"
 />
   <Import 
Project="packages\libjpeg-turbo-v142.2.0.4.3\build\native\libjpeg-turbo-v142.props"
 
Condition="Exists('packages\libjpeg-turbo-v142.2.0.4.3\build\nativelinjpeg-turbo-v142.props')"
 />
   <ItemGroup Label="ProjectConfigurations">
     <ProjectConfiguration Include="Debug-Messages|x64">
@@ -88,7 +88,7 @@
       <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
     </ClCompile>
     <Link>
-      
<AdditionalDependencies>packages\libcups2_native.2.4.11.1\build\native\lib\x64\Debug\libcups2.lib;packages\libressl_native.3.7.3\build\native\lib\x64\Release\ssl.lib;packages\libressl_native.3.7.3\build\native\lib\x64\Release\crypto.lib;packages\libpng_native.1.6.30\build\native\lib\x64\Debug\libpng16d.lib;packages\libjpeg-turbo-v142.2.0.4.3\build\native\lib\x64\v142\Debug\jpeg.lib;ws2_32.lib;advapi32.lib;%(AdditionalDependencies)</AdditionalDependencies>
+      
<AdditionalDependencies>packages\libcups2_native.2.4.20\build\native\lib\x64\Debug\libcups2.lib;packages\libressl_native.3.7.3\build\native\lib\x64\Release\ssl.lib;packages\libressl_native.3.7.3\build\native\lib\x64\Release\crypto.lib;packages\libpng_native.1.6.30\build\native\lib\x64\Debug\libpng16d.lib;packages\libjpeg-turbo-v142.2.0.4.3\build\native\lib\x64\v142\Debug\jpeg.lib;ws2_32.lib;advapi32.lib;%(AdditionalDependencies)</AdditionalDependencies>
       <OutputFile>$(OutDir)libpappl1.dll</OutputFile>
       <ModuleDefinitionFile>..\pappl\libpappl1.def</ModuleDefinitionFile>
       <GenerateDebugInformation>true</GenerateDebugInformation>
@@ -115,7 +115,7 @@
       <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
     </ClCompile>
     <Link>
-      
<AdditionalDependencies>packages\libcups2_native.2.4.11.1\build\native\lib\x64\Debug\libcups2.lib;packages\libressl_native.3.7.3\build\native\lib\x64\Release\ssl.lib;packages\libressl_native.3.7.3\build\native\lib\x64\Release\crypto.lib;packages\libpng_native.1.6.30\build\native\lib\x64\Debug\libpng16d.lib;packages\libjpeg-turbo-v142.2.0.4.3\build\native\lib\x64\v142\Debug\jpeg.lib;ws2_32.lib;advapi32.lib;%(AdditionalDependencies)</AdditionalDependencies>
+      
<AdditionalDependencies>packages\libcups2_native.2.4.20\build\native\lib\x64\Debug\libcups2.lib;packages\libressl_native.3.7.3\build\native\lib\x64\Release\ssl.lib;packages\libressl_native.3.7.3\build\native\lib\x64\Release\crypto.lib;packages\libpng_native.1.6.30\build\native\lib\x64\Debug\libpng16d.lib;packages\libjpeg-turbo-v142.2.0.4.3\build\native\lib\x64\v142\Debug\jpeg.lib;ws2_32.lib;advapi32.lib;%(AdditionalDependencies)</AdditionalDependencies>
       <OutputFile>$(OutDir)libpappl1.dll</OutputFile>
       <ModuleDefinitionFile>..\pappl\libpappl1.def</ModuleDefinitionFile>
       <GenerateDebugInformation>true</GenerateDebugInformation>
@@ -139,7 +139,7 @@
       <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
     </ClCompile>
     <Link>
-      
<AdditionalDependencies>packages\libcups2_native.2.4.11.1\build\native\lib\x64\Release\libcups2.lib;packages\libressl_native.3.7.3\build\native\lib\x64\Release\ssl.lib;packages\libressl_native.3.7.3\build\native\lib\x64\Release\crypto.lib;packages\libpng_native.1.6.30\build\native\lib\x64\Release\libpng16.lib;packages\libjpeg-turbo-v142.2.0.4.3\build\native\lib\x64\v142\Release\jpeg.lib;ws2_32.lib;advapi32.lib;%(AdditionalDependencies)</AdditionalDependencies>
+      
<AdditionalDependencies>packages\libcups2_native.2.4.20\build\native\lib\x64\Release\libcups2.lib;packages\libressl_native.3.7.3\build\native\lib\x64\Release\ssl.lib;packages\libressl_native.3.7.3\build\native\lib\x64\Release\crypto.lib;packages\libpng_native.1.6.30\build\native\lib\x64\Release\libpng16.lib;packages\libjpeg-turbo-v142.2.0.4.3\build\native\lib\x64\v142\Release\jpeg.lib;ws2_32.lib;advapi32.lib;%(AdditionalDependencies)</AdditionalDependencies>
       <OutputFile>$(OutDir)libpappl1.dll</OutputFile>
       <ModuleDefinitionFile>..\pappl\libpappl1.def</ModuleDefinitionFile>
       <GenerateDebugInformation>true</GenerateDebugInformation>
@@ -252,6 +252,6 @@
     </PropertyGroup>
     <Error 
Condition="!Exists('packages\zlib_native.redist.1.2.11\build\native\zlib_native.redist.targets')"
 Text="$([System.String]::Format('$(ErrorText)', 
'packages\zlib_native.redist.1.2.11\build\native\zlib_native.redist.targets'))" 
/>
     <Error 
Condition="!Exists('packages\zlib_native.1.2.11\build\native\zlib_native.targets')"
 Text="$([System.String]::Format('$(ErrorText)', 
'packages\zlib_native.1.2.11\build\native\zlib_native.targets'))" />
-    <Error 
Condition="!Exists('packages\libcups2_native.2.4.11.1\build\native\libcups2_native.props')"
 Text="$([System.String]::Format('$(ErrorText)', 
'packages\libcups2_native.2.4.11.1\build\native\libcups2_native.props'))" />
+    <Error 
Condition="!Exists('packages\libcups2_native.2.4.20\build\native\libcups2_native.props')"
 Text="$([System.String]::Format('$(ErrorText)', 
'packages\libcups2_native.2.4.20\build\native\libcups2_native.props'))" />
   </Target>
 </Project>
\ No newline at end of file
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/pappl-1.4.11/vcnet/libpappl1_native.nuspec 
new/pappl-1.4.12/vcnet/libpappl1_native.nuspec
--- old/pappl-1.4.11/vcnet/libpappl1_native.nuspec      2026-06-05 
21:37:58.000000000 +0200
+++ new/pappl-1.4.12/vcnet/libpappl1_native.nuspec      2026-08-21 
00:14:41.000000000 +0200
@@ -3,7 +3,7 @@
     <metadata>
         <id>libpappl1_native</id>
         <title>Printer Application Framework (PAPPL) for VS2019+</title>
-        <version>1.4.11.0</version>
+        <version>1.4.12.0</version>
         <authors>Michael R Sweet</authors>
         <owners>michaelrsweet</owners>
         <projectUrl>https://github.com/michaelrsweet/pappl</projectUrl>
@@ -14,11 +14,11 @@
         <description>Printer Application Framework (PAPPL) for 
VS2019+</description>
         <summary>PAPPL is a simple C-based framework/library for developing 
CUPS Printer
 Applications, which are the recommended replacement for printer drivers. PAPPL 
is licensed under the Apache License Version 2.0 with an exception to allow 
linking against GNU GPL2-only software.</summary>
-        <copyright>Copyright © 2019-2025 by Michael R Sweet</copyright>
+        <copyright>Copyright © 2019-2026 by Michael R Sweet</copyright>
         <tags>airprint everywhere http ipp mopria native</tags>
        <dependencies>
-           <dependency id="libcups2_native" version="2.4.11.1" />
-           <dependency id="libpappl1_native.redist" version="1.4.11.0" />
+           <dependency id="libcups2_native" version="2.4.20" />
+           <dependency id="libpappl1_native.redist" version="1.4.12.0" />
        </dependencies>
     </metadata>
     <files>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/pappl-1.4.11/vcnet/libpappl1_native.redist.nuspec 
new/pappl-1.4.12/vcnet/libpappl1_native.redist.nuspec
--- old/pappl-1.4.11/vcnet/libpappl1_native.redist.nuspec       2026-06-05 
21:37:58.000000000 +0200
+++ new/pappl-1.4.12/vcnet/libpappl1_native.redist.nuspec       2026-08-21 
00:14:41.000000000 +0200
@@ -3,7 +3,7 @@
     <metadata>
         <id>libpappl1_native.redist</id>
         <title>Printer Application Framework (PAPPL) for VS2019+ Redist</title>
-        <version>1.4.11.0</version>
+        <version>1.4.12.0</version>
         <authors>Michael R Sweet</authors>
         <owners>michaelrsweet</owners>
         <projectUrl>https://github.com/michaelrsweet/pappl</projectUrl>
@@ -14,10 +14,10 @@
         <description>Redistributable components for package 
'libpappl1_native'. This package should only be installed as a 
dependency.</description>
         <summary>PAPPL is a simple C-based framework/library for developing 
CUPS Printer
 Applications, which are the recommended replacement for printer drivers. This 
package provides the redistributable content for PAPPL. PAPPL is licensed under 
the Apache License Version 2.0 with an exception to allow linking against GNU 
GPL2-only software.</summary>
-        <copyright>Copyright © 2019-2025 by Michael R Sweet</copyright>
+        <copyright>Copyright © 2019-2026 by Michael R Sweet</copyright>
         <tags>airprint everywhere http ipp mopria native</tags>
        <dependencies>
-           <dependency id="libcups2_native.redist" version="2.4.11.1" />
+           <dependency id="libcups2_native.redist" version="2.4.20" />
            <dependency id="libjpeg-turbo-v142" version="2.0.4.3" />
            <dependency id="libpng_native.redist" version="1.6.30" />
            <dependency id="libressl_native.redist" version="3.7.3.0" />
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/pappl-1.4.11/vcnet/packages.config 
new/pappl-1.4.12/vcnet/packages.config
--- old/pappl-1.4.11/vcnet/packages.config      2026-06-05 21:37:58.000000000 
+0200
+++ new/pappl-1.4.12/vcnet/packages.config      2026-08-21 00:14:41.000000000 
+0200
@@ -1,7 +1,7 @@
 <?xml version="1.0" encoding="utf-8"?>
 <packages>
-  <package id="libcups2_native" version="2.4.11.1" targetFramework="native" />
-  <package id="libcups2_native.redist" version="2.4.11.1" 
targetFramework="native" />
+  <package id="libcups2_native" version="2.4.20" targetFramework="native" />
+  <package id="libcups2_native.redist" version="2.4.20" 
targetFramework="native" />
   <package id="libjpeg-turbo-v142" version="2.0.4.3" targetFramework="native" 
/>
   <package id="libpng_native" version="1.6.30" targetFramework="native" />
   <package id="libpng_native.redist" version="1.6.30" targetFramework="native" 
/>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/pappl-1.4.11/vcnet/testpappl.vcxproj 
new/pappl-1.4.12/vcnet/testpappl.vcxproj
--- old/pappl-1.4.11/vcnet/testpappl.vcxproj    2026-06-05 21:37:58.000000000 
+0200
+++ new/pappl-1.4.12/vcnet/testpappl.vcxproj    2026-08-21 00:14:41.000000000 
+0200
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="utf-8"?>
 <Project DefaultTargets="Build" ToolsVersion="15.0" 
xmlns="http://schemas.microsoft.com/developer/msbuild/2003";>
-  <Import 
Project="packages\libcups2_native.2.4.11.1\build\native\libcups2_native.props" 
Condition="Exists('packages\libcups2_native.2.4.11.1\build\native\libcups2_native.props')"
 />
+  <Import 
Project="packages\libcups2_native.2.4.20\build\native\libcups2_native.props" 
Condition="Exists('packages\libcups2_native.2.4.20\build\native\libcups2_native.props')"
 />
   <Import 
Project="packages\libjpeg-turbo-v142.2.0.4.3\build\native\libjpeg-turbo-v142.props"
 
Condition="Exists('packages\libjpeg-turbo-v142.2.0.4.3\build\nativelinjpeg-turbo-v142.props')"
 />
   <ItemGroup Label="ProjectConfigurations">
     <ProjectConfiguration Include="Debug-Messages|x64">
@@ -91,7 +91,7 @@
       <RandomizedBaseAddress>false</RandomizedBaseAddress>
       <DataExecutionPrevention>
       </DataExecutionPrevention>
-      
<AdditionalDependencies>packages\libcups2_native.2.4.11.1\build\native\lib\x64\Debug\libcups2.lib;packages\libressl_native.3.7.3\build\native\lib\x64\Release\ssl.lib;packages\libressl_native.3.7.3\build\native\lib\x64\Release\crypto.lib;packages\libjpeg-turbo-v142.2.0.4.3\build\native\lib\x64\v142\Debug\jpeg.lib;ws2_32.lib;advapi32.lib;%(AdditionalDependencies)</AdditionalDependencies>
+      
<AdditionalDependencies>packages\libcups2_native.2.4.20\build\native\lib\x64\Debug\libcups2.lib;packages\libressl_native.3.7.3\build\native\lib\x64\Release\ssl.lib;packages\libressl_native.3.7.3\build\native\lib\x64\Release\crypto.lib;packages\libjpeg-turbo-v142.2.0.4.3\build\native\lib\x64\v142\Debug\jpeg.lib;ws2_32.lib;advapi32.lib;%(AdditionalDependencies)</AdditionalDependencies>
     </Link>
   </ItemDefinitionGroup>
   <ItemDefinitionGroup 
Condition="'$(Configuration)|$(Platform)'=='Debug-Messages|x64'">
@@ -114,7 +114,7 @@
       <RandomizedBaseAddress>false</RandomizedBaseAddress>
       <DataExecutionPrevention>
       </DataExecutionPrevention>
-      
<AdditionalDependencies>packages\libcups2_native.2.4.11.1\build\native\lib\x64\Debug\libcups2.lib;packages\libressl_native.3.7.3\build\native\lib\x64\Release\ssl.lib;packages\libressl_native.3.7.3\build\native\lib\x64\Release\crypto.lib;packages\libjpeg-turbo-v142.2.0.4.3\build\native\lib\x64\v142\Debug\jpeg.lib;ws2_32.lib;advapi32.lib;%(AdditionalDependencies)</AdditionalDependencies>
+      
<AdditionalDependencies>packages\libcups2_native.2.4.20\build\native\lib\x64\Debug\libcups2.lib;packages\libressl_native.3.7.3\build\native\lib\x64\Release\ssl.lib;packages\libressl_native.3.7.3\build\native\lib\x64\Release\crypto.lib;packages\libjpeg-turbo-v142.2.0.4.3\build\native\lib\x64\v142\Debug\jpeg.lib;ws2_32.lib;advapi32.lib;%(AdditionalDependencies)</AdditionalDependencies>
     </Link>
   </ItemDefinitionGroup>
   <ItemDefinitionGroup 
Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
@@ -137,7 +137,7 @@
       <RandomizedBaseAddress>false</RandomizedBaseAddress>
       <DataExecutionPrevention>
       </DataExecutionPrevention>
-      
<AdditionalDependencies>packages\libcups2_native.2.4.11.1\build\native\lib\x64\Release\libcups2.lib;packages\libressl_native.3.7.3\build\native\lib\x64\Release\ssl.lib;packages\libressl_native.3.7.3\build\native\lib\x64\Release\crypto.lib;packages\libjpeg-turbo-v142.2.0.4.3\build\native\lib\x64\v142\Release\jpeg.lib;ws2_32.lib;advapi32.lib;%(AdditionalDependencies)</AdditionalDependencies>
+      
<AdditionalDependencies>packages\libcups2_native.2.4.20\build\native\lib\x64\Release\libcups2.lib;packages\libressl_native.3.7.3\build\native\lib\x64\Release\ssl.lib;packages\libressl_native.3.7.3\build\native\lib\x64\Release\crypto.lib;packages\libjpeg-turbo-v142.2.0.4.3\build\native\lib\x64\v142\Release\jpeg.lib;ws2_32.lib;advapi32.lib;%(AdditionalDependencies)</AdditionalDependencies>
     </Link>
   </ItemDefinitionGroup>
   <ItemGroup>
@@ -170,6 +170,6 @@
     <Error 
Condition="!Exists('packages\zlib_native.1.2.11\build\native\zlib_native.targets')"
 Text="$([System.String]::Format('$(ErrorText)', 
'packages\zlib_native.1.2.11\build\native\zlib_native.targets'))" />
     <Error 
Condition="!Exists('packages\libpng_native.redist.1.6.30\build\native\libpng_native.redist.targets')"
 Text="$([System.String]::Format('$(ErrorText)', 
'packages\libpng_native.redist.1.6.30\build\native\libpng_native.redist.targets'))"
 />
     <Error 
Condition="!Exists('packages\libpng_native.1.6.30\build\native\libpng_native.targets')"
 Text="$([System.String]::Format('$(ErrorText)', 
'packages\libpng_native.1.6.30\build\native\libpng_native.targets'))" />
-    <Error 
Condition="!Exists('packages\libcups2_native.2.4.11.1\build\native\libcups2_native.props')"
 Text="$([System.String]::Format('$(ErrorText)', 
'packages\libcups2_native.2.4.11.1\build\native\libcups2_native.props'))" />
+    <Error 
Condition="!Exists('packages\libcups2_native.2.4.20\build\native\libcups2_native.props')"
 Text="$([System.String]::Format('$(ErrorText)', 
'packages\libcups2_native.2.4.20\build\native\libcups2_native.props'))" />
   </Target>
 </Project>
\ No newline at end of file
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/pappl-1.4.11/xcode/config.h 
new/pappl-1.4.12/xcode/config.h
--- old/pappl-1.4.11/xcode/config.h     2026-06-05 21:37:58.000000000 +0200
+++ new/pappl-1.4.12/xcode/config.h     2026-08-21 00:14:41.000000000 +0200
@@ -8,7 +8,7 @@
 //
 
 // Version numbers
-#define PAPPL_VERSION          "1.4.11"
+#define PAPPL_VERSION          "1.4.12"
 #define PAPPL_VERSION_MAJOR    1
 #define PAPPL_VERSION_MINOR    4
 

Reply via email to