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