-CHANGES - 2.2.9 - 2018-06-29
+CHANGES - 2.2.9 - 2018-07-17
============================
- Fixed a crash bug in the Epson dot matrix driver (Issue #5323)
- Automatic debug logging of job errors did not work with systemd (Issue #5337)
- The web interface did not list the IPP Everywhere "driver" (Issue #5338)
+- The scheduler was being backgrounded on macOS, causing applications to spin
+ (rdar://40436080)
- Authentication in the web interface did not work on macOS (rdar://41444473)
- Dropped non-working RSS subscriptions UI from web interface templates.
- Fixed a memory leak for some IPP (extension) syntaxes.
/*
* Main loop for the CUPS scheduler.
*
- * Copyright 2007-2017 by Apple Inc.
+ * Copyright 2007-2018 by Apple Inc.
* Copyright 1997-2007 by Easy Software Products, all rights reserved.
*
* These coded instructions, statements, and computer programs are the
#define _MAIN_C_
#include "cupsd.h"
#include <sys/resource.h>
+#ifdef __APPLE__
+# include <xpc/xpc.h>
+#endif /* __APPLE__ */
#ifdef HAVE_ASL_H
# include <asl.h>
#elif defined(HAVE_SYSTEMD_SD_JOURNAL_H)
service_add_listener(ld_sockets[i], (int)i);
free(ld_sockets);
+
+# ifdef __APPLE__
+ xpc_transaction_begin();
+# endif /* __APPLE__ */
}
#elif defined(HAVE_SYSTEMD)
else
cupsdLogMessage(CUPSD_LOG_ERROR, "Unable to create KeepAlive/PID file \"%s\": %s", pidfile, strerror(errno));
}
+
+
+# ifdef __APPLE__
+ if (shutdown)
+ xpc_transaction_end();
+# endif /* __APPLE__ */
}
<string>Adaptive</string>
<key>EnableTransactions</key>
<true/>
- <key>EnablePressuredExit</key>
- <false/>
<key>ExitTimeOut</key>
<integer>60</integer>
<key>KeepAlive</key>
/*
* System management functions for the CUPS scheduler.
*
- * Copyright 2007-2017 by Apple Inc.
+ * Copyright 2007-2018 by Apple Inc.
* Copyright 2006 by Easy Software Products.
*
* These coded instructions, statements, and computer programs are the
#include "cupsd.h"
#ifdef __APPLE__
-# include <xpc/xpc.h>
# include <IOKit/pwr_mgt/IOPMLib.h>
#endif /* __APPLE__ */
"Active clients, printing jobs, and dirty files"
};
#ifdef __APPLE__
- static int tran = 0; /* Current busy transaction */
static IOPMAssertionID keep_awake = 0;/* Keep the system awake while printing */
#endif /* __APPLE__ */
*/
if (newbusy != busy)
- {
busy = newbusy;
-#ifdef __APPLE__
- if (busy && !tran)
- {
- xpc_transaction_begin();
- tran = 1;
- }
- else if (!busy && tran)
- {
- xpc_transaction_end();
- tran = 0;
- }
-#endif /* __APPLE__ */
- }
-
#ifdef __APPLE__
if (cupsArrayCount(PrintingJobs) > 0 && !keep_awake)
{