#
# Common makefile definitions for CUPS.
#
-# Copyright 2007-2013 by Apple Inc.
+# Copyright 2007-2014 by Apple Inc.
# Copyright 1997-2007 by Easy Software Products, all rights reserved.
#
# These coded instructions, statements, and computer programs are the
#
ALL_CFLAGS = -I.. -D_CUPS_SOURCE $(CFLAGS) $(SSLFLAGS) \
- @LARGEFILE@ @PTHREAD_FLAGS@ $(OPTIONS)
+ @LARGEFILE@ @PTHREAD_FLAGS@ $(ONDEMANDFLAGS) $(OPTIONS)
ALL_CXXFLAGS = -I.. -D_CUPS_SOURCE $(CXXFLAGS) $(SSLFLAGS) \
- @LARGEFILE@ @PTHREAD_FLAGS@ $(OPTIONS)
+ @LARGEFILE@ @PTHREAD_FLAGS@ $(ONDEMANDFLAGS) $(OPTIONS)
ARCHFLAGS = @ARCHFLAGS@
ARFLAGS = @ARFLAGS@
BACKLIBS = @BACKLIBS@
DNSSDLIBS = @DNSSDLIBS@
IPPFIND_BIN = @IPPFIND_BIN@
IPPFIND_MAN = @IPPFIND_MAN@
-LAUNCHDLIBS = @LAUNCHDLIBS@
LDFLAGS = -L../cgi-bin -L../cups -L../filter -L../ppdc \
-L../scheduler @LDARCHFLAGS@ \
@LDFLAGS@ @RELROFLAGS@ @PIEFLAGS@ $(OPTIM)
LINKCUPS = @LINKCUPS@ $(LIBGSSAPI) $(DNSSDLIBS) $(LIBZ)
LINKCUPSIMAGE = @LINKCUPSIMAGE@
LIBS = $(LINKCUPS) $(COMMONLIBS)
+ONDEMANDFLAGS = @ONDEMANDFLAGS@
+ONDEMANDLIBS = @ONDEMANDLIBS@
OPTIM = @OPTIM@
OPTIONS =
PAMLIBS = @PAMLIBS@
DOCDIR = $(BUILDROOT)@CUPS_DOCROOT@
ICONDIR = @ICONDIR@
INCLUDEDIR = $(BUILDROOT)$(includedir)
-INITDIR = @INITDIR@
-INITDDIR = @INITDDIR@
LIBDIR = $(BUILDROOT)$(libdir)
LOCALEDIR = $(BUILDROOT)@CUPS_LOCALEDIR@
LOGDIR = $(BUILDROOT)@CUPS_LOGDIR@
SBINDIR = $(BUILDROOT)@sbindir@
SERVERBIN = $(BUILDROOT)@CUPS_SERVERBIN@
SERVERROOT = $(BUILDROOT)@CUPS_SERVERROOT@
-SMFMANIFESTDIR = @SMFMANIFESTDIR@
STATEDIR = $(BUILDROOT)@CUPS_STATEDIR@
-USBQUIRKS = @USBQUIRKS@
-XINETD = @XINETD@
MAN1EXT = @MAN1EXT@
MAN5EXT = @MAN5EXT@
PAMDIR = @PAMDIR@
PAMFILE = @PAMFILE@
-DEFAULT_LAUNCHD_CONF = @DEFAULT_LAUNCHD_CONF@
DBUSDIR = @DBUSDIR@
+INITDIR = @INITDIR@
+INITDDIR = @INITDDIR@
+LAUNCHD_DIR = @LAUNCHD_DIR@
+SMFMANIFESTDIR = @SMFMANIFESTDIR@
+SYSTEMD_DIR = @SYSTEMD_DIR@
+XINETD = @XINETD@
+
+USBQUIRKS = @USBQUIRKS@
#
dnl
dnl Directory stuff for CUPS.
dnl
-dnl Copyright 2007-2013 by Apple Inc.
+dnl Copyright 2007-2014 by Apple Inc.
dnl Copyright 1997-2007 by Easy Software Products, all rights reserved.
dnl
dnl These coded instructions, statements, and computer programs are the
case "$uname" in
Darwin*)
# Darwin and MacOS X...
- if test -x /sbin/launchd; then
- INITDDIR="/System/Library/LaunchDaemons"
- else
+ if test ! -x /sbin/launchd; then
INITDDIR="/System/Library/StartupItems/PrintingServices"
fi
;;
dnl
dnl "$Id$"
dnl
-dnl launchd stuff for CUPS.
+dnl Launch-on-demand stuff for CUPS.
dnl
dnl Copyright 2007-2014 by Apple Inc.
dnl Copyright 1997-2005 by Easy Software Products, all rights reserved.
dnl file is missing or damaged, see the license at "http://www.cups.org/".
dnl
+ONDEMANDFLAGS=""
+ONDEMANDLIBS=""
+AC_SUBST(ONDEMANDFLAGS)
+AC_SUBST(ONDEMANDLIBS)
+dnl Launchd is used on OS X/Darwin...
AC_ARG_ENABLE(launchd, [ --disable-launchd disable launchd support])
-
-DEFAULT_LAUNCHD_CONF=""
-LAUNCHDLIBS=""
+LAUNCHD_DIR=""
+AC_SUBST(LAUNCHD_DIR)
if test x$enable_launchd != xno; then
AC_CHECK_FUNC(launch_msg, AC_DEFINE(HAVE_LAUNCHD))
case "$uname" in
Darwin*)
# Darwin, MacOS X
- DEFAULT_LAUNCHD_CONF="/System/Library/LaunchDaemons/org.cups.cupsd.plist"
+ LAUNCHD_DIR="/System/Library/LaunchDaemons/org.cups.cupsd.plist"
# liblaunch is already part of libSystem
;;
*)
esac
fi
-AC_SUBST(DEFAULT_LAUNCHD_CONF)
-AC_SUBST(LAUNCHDLIBS)
+dnl Systemd is used on Linux...
+AC_ARG_ENABLE(systemd, [ --disable-systemd disable systemd support])
+AC_ARG_WITH(systemd, [ --with-systemd set directory for systemd service files],
+ SYSTEMD_DIR="$withval", SYSTEMD_DIR="")
+AC_SUBST(SYSTEMD_DIR)
+
+if test x$enable_systemd != xno; then
+ if test "x$PKGCONFIG" = x; then
+ if test x$enable_systemd = xyes; then
+ AC_MSG_ERROR(Need pkg-config to enable systemd support.)
+ fi
+ else
+ AC_MSG_CHECKING(for libsystemd-daemon)
+ if $PKGCONFIG --exists libsystemd-daemon; then
+ AC_MSG_RESULT(yes)
+ ONDEMANDFLAGS=`$PKGCONFIG --cflags libsystemd-daemon`
+ ONDEMANDLIBS=`$PKGCONFIG --libs libsystemd-daemon`
+ AC_DEFINE(HAVE_SYSTEMD)
+ if test "x$SYSTEMD_DIR" = x; then
+ SYSTEMD_DIR="`$PKGCONFIG --variable=systemdsystemunitdir systemd`"
+ fi
+ else
+ AC_MSG_RESULT(no)
+ fi
+ fi
+fi
dnl
dnl End of "$Id$".
scheduler/cups.sh
scheduler/cups.xml
scheduler/org.cups.cups-lpd.plist
+ scheduler/org.cups.cupsd.path
+ scheduler/org.cups.cupsd.service
+ scheduler/org.cups.cupsd.socket
templates/header.tmpl
packaging/cups.list
$LANGFILES)
$(INSTALL_DIR) -m 755 $(BUILDROOT)$(INITDIR)/rc0.d; \
$(LN) ../init.d/cups $(BUILDROOT)$(INITDIR)/rc0.d/K$(RCSTOP)cups; \
fi
- if test "x$(INITDIR)" = x -a "x$(INITDDIR)" != x; then \
- $(INSTALL_DIR) $(BUILDROOT)$(INITDDIR); \
- if test "$(INITDDIR)" = "/System/Library/LaunchDaemons"; then \
- echo Installing LaunchDaemons configuration files...; \
- $(INSTALL_DATA) org.cups.cupsd.plist $(BUILDROOT)$(DEFAULT_LAUNCHD_CONF); \
- $(INSTALL_DATA) org.cups.cups-lpd.plist $(BUILDROOT)/System/Library/LaunchDaemons; \
- else \
- echo Installing RC script...; \
- $(INSTALL_SCRIPT) cups.sh $(BUILDROOT)$(INITDDIR)/cups; \
- fi \
+ if test "x$(INITDDIR)" != x; then \
+ echo Installing init script...; \
+ $(INSTALL_DIR) -m 755 $(BUILDROOT)$(INITDDIR); \
+ $(INSTALL_SCRIPT) cups.sh $(BUILDROOT)$(INITDDIR); \
+ fi
+ if test "x$(LAUNCHD_DIR)" != x; then \
+ echo Installing launchd configuration files...; \
+ $(INSTALL_DIR) $(BUILDROOT)$(LAUNCHD_DIR); \
+ $(INSTALL_DATA) org.cups.cupsd.plist $(BUILDROOT)$(LAUNCHD_DIR); \
+ $(INSTALL_DATA) org.cups.cups-lpd.plist $(BUILDROOT)$(LAUNCHD_DIR); \
fi
if test "x$(SMFMANIFESTDIR)" != x; then \
echo Installing SMF manifest in $(SMFMANIFESTDIR)...;\
$(INSTALL_DIR) $(BUILDROOT)/$(SMFMANIFESTDIR); \
$(INSTALL_SCRIPT) cups.xml $(BUILDROOT)$(SMFMANIFESTDIR)/cups.xml; \
fi
+ if test "x$(SYSTEMD_DIR)" != x; then \
+ echo Installing systemd configuration files...; \
+ $(INSTALL_DIR) $(BUILDROOT)$(SYSTEMD_DIR); \
+ $(INSTALL_DATA) org.cups.cupsd.path $(BUILDROOT)$(SYSTEMD_DIR); \
+ $(INSTALL_DATA) org.cups.cupsd.service $(BUILDROOT)$(SYSTEMD_DIR); \
+ $(INSTALL_DATA) org.cups.cupsd.socket $(BUILDROOT)$(SYSTEMD_DIR); \
+ fi
if test "x$(XINETD)" != x; then \
echo Installing xinetd configuration file for cups-lpd...; \
$(INSTALL_DIR) -m 755 $(BUILDROOT)$(XINETD); \
--- /dev/null
+[Unit]
+Description=CUPS Scheduler
+
+[Path]
+PathExists=@CUPS_CACHEDIR@/org.cups.cupsd
+
+[Install]
+WantedBy=multi-user.target
--- /dev/null
+[Unit]
+Description=CUPS Scheduler
+
+[Service]
+ExecStart=@sbindir@/cupsd -l
+Type=simple
+
+[Install]
+Also=org.cups.cupsd.socket org.cups.cupsd.path
+WantedBy=printer.target
--- /dev/null
+[Unit]
+Description=CUPS Scheduler
+
+[Socket]
+ListenStream=@CUPS_DEFAULT_DOMAINSOCKET@
+ListenStream=[::1]:631
+ListenStream=127.0.0.1:631
+BindIPv6Only=ipv6-only
+
+[Install]
+WantedBy=sockets.target
72E65BD218DC7A9800097E89 /* raster-driver.shtml */ = {isa = PBXFileReference; lastKnownFileType = text.html.other; name = "raster-driver.shtml"; path = "../filter/raster-driver.shtml"; sourceTree = "<group>"; };
72E65BD318DC7A9800097E89 /* spec-ppd.header */ = {isa = PBXFileReference; lastKnownFileType = text; name = "spec-ppd.header"; path = "../filter/spec-ppd.header"; sourceTree = "<group>"; };
72E65BD418DC7A9800097E89 /* spec-ppd.shtml */ = {isa = PBXFileReference; lastKnownFileType = text.html.other; name = "spec-ppd.shtml"; path = "../filter/spec-ppd.shtml"; sourceTree = "<group>"; };
+ 72E65BD518DC818400097E89 /* org.cups.cups-lpd.plist.in */ = {isa = PBXFileReference; lastKnownFileType = text.xml; name = "org.cups.cups-lpd.plist.in"; path = "../scheduler/org.cups.cups-lpd.plist.in"; sourceTree = SOURCE_ROOT; };
+ 72E65BD618DC818400097E89 /* org.cups.cupsd.path.in */ = {isa = PBXFileReference; lastKnownFileType = text; name = org.cups.cupsd.path.in; path = ../scheduler/org.cups.cupsd.path.in; sourceTree = SOURCE_ROOT; };
+ 72E65BD718DC818400097E89 /* org.cups.cupsd.service.in */ = {isa = PBXFileReference; lastKnownFileType = text; name = org.cups.cupsd.service.in; path = ../scheduler/org.cups.cupsd.service.in; sourceTree = SOURCE_ROOT; };
+ 72E65BD818DC818400097E89 /* org.cups.cupsd.socket.in */ = {isa = PBXFileReference; lastKnownFileType = text; name = org.cups.cupsd.socket.in; path = ../scheduler/org.cups.cupsd.socket.in; sourceTree = SOURCE_ROOT; };
+ 72E65BD918DC850A00097E89 /* Makefile */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.make; name = Makefile; path = ../Makefile; sourceTree = "<group>"; };
+ 72E65BDA18DC852700097E89 /* api-mime.header */ = {isa = PBXFileReference; lastKnownFileType = text; name = "api-mime.header"; path = "../scheduler/api-mime.header"; sourceTree = SOURCE_ROOT; };
+ 72E65BDB18DC852700097E89 /* api-mime.shtml */ = {isa = PBXFileReference; lastKnownFileType = text.html.other; name = "api-mime.shtml"; path = "../scheduler/api-mime.shtml"; sourceTree = SOURCE_ROOT; };
+ 72E65BDC18DC852700097E89 /* Makefile */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.make; name = Makefile; path = ../scheduler/Makefile; sourceTree = SOURCE_ROOT; };
72F75A521336F950004BB496 /* cupstestppd */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.executable"; includeInIndex = 0; path = cupstestppd; sourceTree = BUILT_PRODUCTS_DIR; };
72F75A5B1336F988004BB496 /* cupstestppd.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = cupstestppd.c; path = ../systemv/cupstestppd.c; sourceTree = "<group>"; };
72F75A611336F9A3004BB496 /* libcupsimage.dylib */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.dylib"; includeInIndex = 0; path = libcupsimage.dylib; sourceTree = BUILT_PRODUCTS_DIR; };
72220F5D13330A5A00FCA411 /* cupsd */ = {
isa = PBXGroup;
children = (
+ 72E65BDC18DC852700097E89 /* Makefile */,
7226369B18AE6D19004ED309 /* org.cups.cups-lpd.plist */,
+ 72E65BD518DC818400097E89 /* org.cups.cups-lpd.plist.in */,
+ 72E65BD618DC818400097E89 /* org.cups.cupsd.path.in */,
7226369C18AE6D19004ED309 /* org.cups.cupsd.plist */,
+ 72E65BD718DC818400097E89 /* org.cups.cupsd.service.in */,
+ 72E65BD818DC818400097E89 /* org.cups.cupsd.socket.in */,
72D53A3615B4929D003F877F /* colorman.c */,
72D53A3715B4929D003F877F /* colorman.h */,
72220F6913330B0C00FCA411 /* auth.c */,
72E65BA218DC796500097E89 /* Autoconf Files */ = {
isa = PBXGroup;
children = (
+ 72E65BD918DC850A00097E89 /* Makefile */,
72E65BB718DC79CC00097E89 /* Makedefs.in */,
72E65BA318DC797E00097E89 /* configure.ac */,
7226369D18AE73BB004ED309 /* config.h.in */,
72E65BC218DC7A6B00097E89 /* api-filter.shtml */,
72E65BC318DC7A6B00097E89 /* api-httpipp.header */,
72E65BC418DC7A6B00097E89 /* api-httpipp.shtml */,
+ 72E65BDA18DC852700097E89 /* api-mime.header */,
+ 72E65BDB18DC852700097E89 /* api-mime.shtml */,
72E65BC518DC7A6B00097E89 /* api-overview.header */,
72E65BC618DC7A6B00097E89 /* api-overview.shtml */,
72E65BC718DC7A6B00097E89 /* api-ppd.header */,