1dnl
2dnl Default cupsd configuration settings for CUPS.
3dnl
4dnl Copyright © 2007-2018 by Apple Inc.
5dnl Copyright © 2006-2007 by Easy Software Products, all rights reserved.
6dnl
7dnl Licensed under Apache License v2.0.  See the file "LICENSE" for more
8dnl information.
9dnl
10
11dnl Default languages...
12LANGUAGES="`ls -1 locale/cups_*.po 2>/dev/null | sed -e '1,$s/locale\/cups_//' -e '1,$s/\.po//' | tr '\n' ' '`"
13
14AC_ARG_WITH(languages, [  --with-languages        set installed languages, default=all ],[
15	case "$withval" in
16		none | no) LANGUAGES="" ;;
17		all) ;;
18		*) LANGUAGES="$withval" ;;
19	esac])
20AC_SUBST(LANGUAGES)
21
22dnl macOS bundle-based localization support
23AC_ARG_WITH(bundledir, [  --with-bundledir        set localization bundle directory ],
24	CUPS_BUNDLEDIR="$withval",[
25	if test "x$host_os_name" = xdarwin -a $host_os_version -ge 100; then
26		CUPS_BUNDLEDIR="/System/Library/Frameworks/ApplicationServices.framework/Versions/A/Frameworks/PrintCore.framework/Versions/A"
27		LANGUAGES=""
28	else
29		CUPS_BUNDLEDIR=""
30	fi])
31
32AC_SUBST(CUPS_BUNDLEDIR)
33if test "x$CUPS_BUNDLEDIR" != x; then
34	AC_DEFINE_UNQUOTED(CUPS_BUNDLEDIR, "$CUPS_BUNDLEDIR")
35fi
36
37AC_ARG_WITH(bundlelang, [  --with-bundlelang       set localization bundle base language (English or en) ],
38	cups_bundlelang="$withval",[
39	if test $host_os_version -ge 190; then
40		cups_bundlelang="en"
41	else
42		cups_bundlelang="English"
43	fi])
44
45if test "x$cups_bundlelang" != x -a "x$CUPS_BUNDLEDIR" != x; then
46	CUPS_RESOURCEDIR="$CUPS_BUNDLEDIR/Resources/$cups_bundlelang.lproj"
47else
48	CUPS_RESOURCEDIR=""
49fi
50AC_SUBST(CUPS_RESOURCEDIR)
51
52dnl Default executable file permissions
53AC_ARG_WITH(exe_file_perm, [  --with-exe-file-perm    set default executable permissions value, default=0555],
54	CUPS_EXE_FILE_PERM="$withval",
55	[case "$host_os_name" in
56		linux* | gnu* | *-gnu)
57			CUPS_EXE_FILE_PERM="755"
58			;;
59		*)
60			CUPS_EXE_FILE_PERM="555"
61			;;
62	esac])
63AC_SUBST(CUPS_EXE_FILE_PERM)
64
65dnl Default ConfigFilePerm
66AC_ARG_WITH(config_file_perm, [  --with-config-file-perm set default ConfigFilePerm value, default=0640],
67	CUPS_CONFIG_FILE_PERM="$withval",
68	[if test "x$host_os_name" = xdarwin; then
69		CUPS_CONFIG_FILE_PERM="644"
70	else
71		CUPS_CONFIG_FILE_PERM="640"
72	fi])
73AC_SUBST(CUPS_CONFIG_FILE_PERM)
74AC_DEFINE_UNQUOTED(CUPS_DEFAULT_CONFIG_FILE_PERM, 0$CUPS_CONFIG_FILE_PERM)
75
76dnl Default permissions for cupsd
77AC_ARG_WITH(cupsd_file_perm, [  --with-cupsd-file-perm  set default cupsd permissions, default=0500],
78	CUPS_CUPSD_FILE_PERM="$withval",
79	[case "$host_os_name" in
80		linux* | gnu*)
81			CUPS_CUPSD_FILE_PERM="700"
82			;;
83		*)
84			CUPS_CUPSD_FILE_PERM="500"
85			;;
86	esac])
87AC_SUBST(CUPS_CUPSD_FILE_PERM)
88
89dnl Default LogFilePerm
90AC_ARG_WITH(log_file_perm, [  --with-log-file-perm    set default LogFilePerm value, default=0644],
91	CUPS_LOG_FILE_PERM="$withval",
92	CUPS_LOG_FILE_PERM="644")
93AC_SUBST(CUPS_LOG_FILE_PERM)
94AC_DEFINE_UNQUOTED(CUPS_DEFAULT_LOG_FILE_PERM, 0$CUPS_LOG_FILE_PERM)
95
96dnl Default MaxLogSize
97AC_ARG_WITH(max_log_size, [  --with-max-log-size     set default MaxLogSize value, default=1m],
98	CUPS_MAX_LOG_SIZE="$withval",
99	CUPS_MAX_LOG_SIZE="1m")
100AC_SUBST(CUPS_MAX_LOG_SIZE)
101AC_DEFINE_UNQUOTED(CUPS_DEFAULT_MAX_LOG_SIZE, "$CUPS_MAX_LOG_SIZE")
102
103dnl Default ErrorPolicy
104AC_ARG_WITH(error_policy, [  --with-error-policy     set default ErrorPolicy value, default=stop-printer],
105	CUPS_ERROR_POLICY="$withval",
106	CUPS_ERROR_POLICY="stop-printer")
107AC_SUBST(CUPS_ERROR_POLICY)
108AC_DEFINE_UNQUOTED(CUPS_DEFAULT_ERROR_POLICY, "$CUPS_ERROR_POLICY")
109
110dnl Default FatalErrors
111AC_ARG_WITH(fatal_errors, [  --with-fatal-errors     set default FatalErrors value, default=config],
112	CUPS_FATAL_ERRORS="$withval",
113	CUPS_FATAL_ERRORS="config")
114AC_SUBST(CUPS_FATAL_ERRORS)
115AC_DEFINE_UNQUOTED(CUPS_DEFAULT_FATAL_ERRORS, "$CUPS_FATAL_ERRORS")
116
117dnl Default LogLevel
118AC_ARG_WITH(log_level, [  --with-log-level        set default LogLevel value, default=warn],
119	CUPS_LOG_LEVEL="$withval",
120	CUPS_LOG_LEVEL="warn")
121AC_SUBST(CUPS_LOG_LEVEL)
122AC_DEFINE_UNQUOTED(CUPS_DEFAULT_LOG_LEVEL, "$CUPS_LOG_LEVEL")
123
124dnl Default AccessLogLevel
125AC_ARG_WITH(access_log_level, [  --with-access-log-level set default AccessLogLevel value, default=none],
126	CUPS_ACCESS_LOG_LEVEL="$withval",
127	CUPS_ACCESS_LOG_LEVEL="none")
128AC_SUBST(CUPS_ACCESS_LOG_LEVEL)
129AC_DEFINE_UNQUOTED(CUPS_DEFAULT_ACCESS_LOG_LEVEL, "$CUPS_ACCESS_LOG_LEVEL")
130
131dnl Default PageLogFormat
132AC_ARG_ENABLE(page_logging, [  --enable-page-logging   enable page_log by default])
133if test "x$enable_page_logging" = xyes; then
134	CUPS_PAGE_LOG_FORMAT=""
135else
136	CUPS_PAGE_LOG_FORMAT="PageLogFormat"
137fi
138AC_SUBST(CUPS_PAGE_LOG_FORMAT)
139
140dnl Default SyncOnClose
141AC_ARG_ENABLE(sync_on_close, [  --enable-sync-on-close  enable SyncOnClose (off by default)])
142if test "x$enable_sync_on_close" = xyes; then
143	CUPS_SYNC_ON_CLOSE="Yes"
144	AC_DEFINE(CUPS_DEFAULT_SYNC_ON_CLOSE)
145else
146	CUPS_SYNC_ON_CLOSE="No"
147fi
148AC_SUBST(CUPS_SYNC_ON_CLOSE)
149
150dnl Default Browsing
151AC_ARG_ENABLE(browsing, [  --disable-browsing      disable Browsing by default])
152if test "x$enable_browsing" = xno; then
153	CUPS_BROWSING="No"
154	AC_DEFINE_UNQUOTED(CUPS_DEFAULT_BROWSING, 0)
155else
156	CUPS_BROWSING="Yes"
157	AC_DEFINE_UNQUOTED(CUPS_DEFAULT_BROWSING, 1)
158fi
159AC_SUBST(CUPS_BROWSING)
160
161dnl Default BrowseLocalProtocols
162AC_ARG_WITH(local_protocols, [  --with-local-protocols  set default BrowseLocalProtocols, default=""],
163	default_local_protocols="$withval",
164	default_local_protocols="default")
165
166if test x$with_local_protocols != xno; then
167	if test "x$default_local_protocols" = "xdefault"; then
168		if test "x$DNSSD_BACKEND" != "x"; then
169			CUPS_BROWSE_LOCAL_PROTOCOLS="dnssd"
170		else
171			CUPS_BROWSE_LOCAL_PROTOCOLS=""
172		fi
173	else
174		CUPS_BROWSE_LOCAL_PROTOCOLS="$default_local_protocols"
175	fi
176else
177	CUPS_BROWSE_LOCAL_PROTOCOLS=""
178fi
179
180AC_SUBST(CUPS_BROWSE_LOCAL_PROTOCOLS)
181AC_DEFINE_UNQUOTED(CUPS_DEFAULT_BROWSE_LOCAL_PROTOCOLS,
182	"$CUPS_BROWSE_LOCAL_PROTOCOLS")
183
184dnl Default DefaultShared
185AC_ARG_ENABLE(default_shared, [  --disable-default-shared
186			  disable DefaultShared by default])
187if test "x$enable_default_shared" = xno; then
188	CUPS_DEFAULT_SHARED="No"
189	AC_DEFINE_UNQUOTED(CUPS_DEFAULT_DEFAULT_SHARED, 0)
190else
191	CUPS_DEFAULT_SHARED="Yes"
192	AC_DEFINE_UNQUOTED(CUPS_DEFAULT_DEFAULT_SHARED, 1)
193fi
194AC_SUBST(CUPS_DEFAULT_SHARED)
195
196dnl Determine the correct username and group for this OS...
197AC_ARG_WITH(cups_user, [  --with-cups-user        set default user for CUPS],
198	CUPS_USER="$withval",
199	AC_MSG_CHECKING(for default print user)
200	if test x$host_os_name = xdarwin; then
201		if test x`id -u _lp 2>/dev/null` = x; then
202			CUPS_USER="lp";
203		else
204			CUPS_USER="_lp";
205		fi
206		AC_MSG_RESULT($CUPS_USER)
207	elif test -f /etc/passwd; then
208		CUPS_USER=""
209		for user in lp lpd guest daemon nobody; do
210			if test "`grep \^${user}: /etc/passwd`" != ""; then
211				CUPS_USER="$user"
212				AC_MSG_RESULT($user)
213				break;
214			fi
215		done
216
217		if test x$CUPS_USER = x; then
218			CUPS_USER="nobody"
219			AC_MSG_RESULT(not found, using "$CUPS_USER")
220		fi
221	else
222		CUPS_USER="nobody"
223		AC_MSG_RESULT(no password file, using "$CUPS_USER")
224	fi)
225
226if test "x$CUPS_USER" = "xroot" -o "x$CUPS_USER" = "x0"; then
227	AC_MSG_ERROR([The default user for CUPS cannot be root!])
228fi
229
230AC_ARG_WITH(cups_group, [  --with-cups-group       set default group for CUPS],
231	CUPS_GROUP="$withval",
232	AC_MSG_CHECKING(for default print group)
233	if test x$host_os_name = xdarwin; then
234		if test x`id -g _lp 2>/dev/null` = x; then
235			CUPS_GROUP="lp";
236		else
237			CUPS_GROUP="_lp";
238		fi
239		AC_MSG_RESULT($CUPS_GROUP)
240	elif test -f /etc/group; then
241		GROUP_LIST="_lp lp nobody"
242		CUPS_GROUP=""
243		for group in $GROUP_LIST; do
244			if test "`grep \^${group}: /etc/group`" != ""; then
245				CUPS_GROUP="$group"
246				AC_MSG_RESULT($group)
247				break;
248			fi
249		done
250
251		if test x$CUPS_GROUP = x; then
252			CUPS_GROUP="nobody"
253			AC_MSG_RESULT(not found, using "$CUPS_GROUP")
254		fi
255	else
256		CUPS_GROUP="nobody"
257		AC_MSG_RESULT(no group file, using "$CUPS_GROUP")
258	fi)
259
260if test "x$CUPS_GROUP" = "xroot" -o "x$CUPS_GROUP" = "xwheel" -o "x$CUPS_GROUP" = "x0"; then
261	AC_MSG_ERROR([The default group for CUPS cannot be root!])
262fi
263
264AC_ARG_WITH(system_groups, [  --with-system-groups    set default system groups for CUPS],
265	CUPS_SYSTEM_GROUPS="$withval",
266	if test x$host_os_name = xdarwin; then
267		CUPS_SYSTEM_GROUPS="admin"
268	else
269		AC_MSG_CHECKING(for default system groups)
270		if test -f /etc/group; then
271			CUPS_SYSTEM_GROUPS=""
272			GROUP_LIST="lpadmin sys system root wheel"
273			for group in $GROUP_LIST; do
274				if test "`grep \^${group}: /etc/group`" != ""; then
275					if test "x$CUPS_SYSTEM_GROUPS" = x; then
276						CUPS_SYSTEM_GROUPS="$group"
277					else
278						CUPS_SYSTEM_GROUPS="$CUPS_SYSTEM_GROUPS $group"
279					fi
280				fi
281			done
282
283			if test "x$CUPS_SYSTEM_GROUPS" = x; then
284				CUPS_SYSTEM_GROUPS="$GROUP_LIST"
285				AC_MSG_RESULT(no groups found, using "$CUPS_SYSTEM_GROUPS")
286			else
287				AC_MSG_RESULT("$CUPS_SYSTEM_GROUPS")
288			fi
289		else
290			CUPS_SYSTEM_GROUPS="$GROUP_LIST"
291			AC_MSG_RESULT(no group file, using "$CUPS_SYSTEM_GROUPS")
292		fi
293	fi)
294
295CUPS_PRIMARY_SYSTEM_GROUP="`echo $CUPS_SYSTEM_GROUPS | awk '{print $1}'`"
296
297for group in $CUPS_SYSTEM_GROUPS; do
298	if test "x$CUPS_GROUP" = "x$group"; then
299		AC_MSG_ERROR([The default system groups cannot contain the default CUPS group!])
300	fi
301done
302
303AC_SUBST(CUPS_USER)
304AC_SUBST(CUPS_GROUP)
305AC_SUBST(CUPS_SYSTEM_GROUPS)
306AC_SUBST(CUPS_PRIMARY_SYSTEM_GROUP)
307
308AC_DEFINE_UNQUOTED(CUPS_DEFAULT_USER, "$CUPS_USER")
309AC_DEFINE_UNQUOTED(CUPS_DEFAULT_GROUP, "$CUPS_GROUP")
310AC_DEFINE_UNQUOTED(CUPS_DEFAULT_SYSTEM_GROUPS, "$CUPS_SYSTEM_GROUPS")
311
312dnl Default printcap file...
313AC_ARG_WITH(printcap, [  --with-printcap         set default printcap file],
314	default_printcap="$withval",
315	default_printcap="default")
316
317if test x$default_printcap != xno; then
318	if test "x$default_printcap" = "xdefault"; then
319		case $host_os_name in
320			darwin*)
321				if test $host_os_version -ge 90; then
322					CUPS_DEFAULT_PRINTCAP="/Library/Preferences/org.cups.printers.plist"
323				else
324					CUPS_DEFAULT_PRINTCAP="/etc/printcap"
325				fi
326				;;
327			sunos*)
328				CUPS_DEFAULT_PRINTCAP="/etc/printers.conf"
329				;;
330			*)
331				CUPS_DEFAULT_PRINTCAP="/etc/printcap"
332				;;
333		esac
334	else
335		CUPS_DEFAULT_PRINTCAP="$default_printcap"
336	fi
337else
338	CUPS_DEFAULT_PRINTCAP=""
339fi
340
341AC_SUBST(CUPS_DEFAULT_PRINTCAP)
342AC_DEFINE_UNQUOTED(CUPS_DEFAULT_PRINTCAP, "$CUPS_DEFAULT_PRINTCAP")
343
344dnl Default LPD config file...
345AC_ARG_WITH(lpdconfigfile, [  --with-lpdconfigfile    set default LPDConfigFile URI],
346	default_lpdconfigfile="$withval",
347	default_lpdconfigfile="default")
348
349if test x$default_lpdconfigfile != xno; then
350	if test "x$default_lpdconfigfile" = "xdefault"; then
351		case $host_os_name in
352			darwin*)
353				CUPS_DEFAULT_LPD_CONFIG_FILE="launchd:///System/Library/LaunchDaemons/org.cups.cups-lpd.plist"
354				;;
355			*)
356				if test "x$XINETD" != x; then
357					CUPS_DEFAULT_LPD_CONFIG_FILE="xinetd://$XINETD/cups-lpd"
358				else
359					CUPS_DEFAULT_LPD_CONFIG_FILE=""
360				fi
361				;;
362		esac
363	else
364		CUPS_DEFAULT_LPD_CONFIG_FILE="$default_lpdconfigfile"
365	fi
366else
367	CUPS_DEFAULT_LPD_CONFIG_FILE=""
368fi
369
370AC_DEFINE_UNQUOTED(CUPS_DEFAULT_LPD_CONFIG_FILE, "$CUPS_DEFAULT_LPD_CONFIG_FILE")
371AC_SUBST(CUPS_DEFAULT_LPD_CONFIG_FILE)
372
373dnl Default SMB config file...
374AC_ARG_WITH(smbconfigfile, [  --with-smbconfigfile    set default SMBConfigFile URI],
375	default_smbconfigfile="$withval",
376	default_smbconfigfile="default")
377
378if test x$default_smbconfigfile != xno; then
379	if test "x$default_smbconfigfile" = "xdefault"; then
380		if test -f /etc/smb.conf; then
381			CUPS_DEFAULT_SMB_CONFIG_FILE="samba:///etc/smb.conf"
382		else
383			CUPS_DEFAULT_SMB_CONFIG_FILE=""
384		fi
385	else
386		CUPS_DEFAULT_SMB_CONFIG_FILE="$default_smbconfigfile"
387	fi
388else
389	CUPS_DEFAULT_SMB_CONFIG_FILE=""
390fi
391
392AC_DEFINE_UNQUOTED(CUPS_DEFAULT_SMB_CONFIG_FILE, "$CUPS_DEFAULT_SMB_CONFIG_FILE")
393AC_SUBST(CUPS_DEFAULT_SMB_CONFIG_FILE)
394
395dnl Default MaxCopies value...
396AC_ARG_WITH(max-copies, [  --with-max-copies       set default max copies value, default=9999 ],
397	CUPS_MAX_COPIES="$withval",
398	CUPS_MAX_COPIES="9999")
399
400AC_SUBST(CUPS_MAX_COPIES)
401AC_DEFINE_UNQUOTED(CUPS_DEFAULT_MAX_COPIES, $CUPS_MAX_COPIES)
402
403dnl Default raw printing state
404AC_ARG_ENABLE(raw_printing, [  --disable-raw-printing  do not allow raw printing by default])
405if test "x$enable_raw_printing" != xno; then
406	DEFAULT_RAW_PRINTING=""
407else
408	DEFAULT_RAW_PRINTING="#"
409fi
410AC_SUBST(DEFAULT_RAW_PRINTING)
411
412dnl Default SNMP options...
413AC_ARG_WITH(snmp-address, [  --with-snmp-address     set SNMP query address, default=auto ],
414	if test "x$withval" = x; then
415		CUPS_SNMP_ADDRESS=""
416	else
417		CUPS_SNMP_ADDRESS="Address $withval"
418	fi,
419	if test "x$host_os_name" = xdarwin; then
420		CUPS_SNMP_ADDRESS=""
421	else
422		CUPS_SNMP_ADDRESS="Address @LOCAL"
423	fi)
424
425AC_ARG_WITH(snmp-community, [  --with-snmp-community   set SNMP community, default=public ],
426	CUPS_SNMP_COMMUNITY="Community $withval",
427	CUPS_SNMP_COMMUNITY="Community public")
428
429AC_SUBST(CUPS_SNMP_ADDRESS)
430AC_SUBST(CUPS_SNMP_COMMUNITY)
431
432dnl New default port definition for IPP...
433AC_ARG_WITH(ipp-port, [  --with-ipp-port         set port number for IPP, default=631 ],
434	DEFAULT_IPP_PORT="$withval",
435	DEFAULT_IPP_PORT="631")
436
437AC_SUBST(DEFAULT_IPP_PORT)
438AC_DEFINE_UNQUOTED(CUPS_DEFAULT_IPP_PORT,$DEFAULT_IPP_PORT)
439
440dnl Web interface...
441AC_ARG_ENABLE(webif, [  --enable-webif          enable the web interface by default, default=no for macOS])
442case "x$enable_webif" in
443	xno)
444		CUPS_WEBIF=No
445		CUPS_DEFAULT_WEBIF=0
446		;;
447	xyes)
448		CUPS_WEBIF=Yes
449		CUPS_DEFAULT_WEBIF=1
450		;;
451	*)
452		if test $host_os_name = darwin; then
453			CUPS_WEBIF=No
454			CUPS_DEFAULT_WEBIF=0
455		else
456			CUPS_WEBIF=Yes
457			CUPS_DEFAULT_WEBIF=1
458		fi
459		;;
460esac
461
462AC_SUBST(CUPS_WEBIF)
463AC_DEFINE_UNQUOTED(CUPS_DEFAULT_WEBIF, $CUPS_DEFAULT_WEBIF)
464