/*1* Configuration file for CUPS and Xcode.2*3* Copyright © 2021-2022 by OpenPrinting4* Copyright © 2007-2019 by Apple Inc.5* Copyright © 1997-2007 by Easy Software Products.6*7* Licensed under Apache License v2.0. See the file "LICENSE" for more information.8*/910#ifndef _CUPS_CONFIG_H_11#define _CUPS_CONFIG_H_1213#include <AvailabilityMacros.h>14#include <TargetConditionals.h>151617/*18* Version of software...19*/2021#define CUPS_SVERSION "CUPS v2.4.2"22#define CUPS_MINIMAL "CUPS/2.4.2"232425/*26* Default user and groups...27*/2829#define CUPS_DEFAULT_USER "_lp"30#define CUPS_DEFAULT_GROUP "_lp"31#define CUPS_DEFAULT_SYSTEM_GROUPS "admin"32#define CUPS_DEFAULT_PRINTOPERATOR_AUTH "@AUTHKEY(system.print.operator) @admin @lpadmin"33#define CUPS_DEFAULT_SYSTEM_AUTHKEY "system.print.admin"343536/*37* Default file permissions...38*/3940#define CUPS_DEFAULT_CONFIG_FILE_PERM 064441#define CUPS_DEFAULT_LOG_FILE_PERM 0644424344/*45* Default logging settings...46*/4748#define CUPS_DEFAULT_LOG_LEVEL "warn"49#define CUPS_DEFAULT_ACCESS_LOG_LEVEL "none"50#define CUPS_DEFAULT_MAX_LOG_SIZE "1m"515253/*54* Default fatal error settings...55*/5657#define CUPS_DEFAULT_FATAL_ERRORS "config"585960/*61* Default browsing settings...62*/6364#define CUPS_DEFAULT_BROWSING 165#define CUPS_DEFAULT_BROWSE_LOCAL_PROTOCOLS "dnssd"66#define CUPS_DEFAULT_DEFAULT_SHARED 1676869/*70* Default IPP port...71*/7273#define CUPS_DEFAULT_IPP_PORT 631747576/*77* Default printcap file...78*/7980#define CUPS_DEFAULT_PRINTCAP "/Library/Preferences/org.cups.printers.plist"818283/*84* Default ErrorPolicy value...85*/8687#define CUPS_DEFAULT_ERROR_POLICY "stop-printer"888990/*91* Default MaxCopies value...92*/9394#define CUPS_DEFAULT_MAX_COPIES 9999959697/*98* Default SyncOnClose value...99*/100101/* #undef CUPS_DEFAULT_SYNC_ON_CLOSE */102103104/*105* Do we have domain socket support, and if so what is the default one?106*/107108#define CUPS_DEFAULT_DOMAINSOCKET "/private/var/run/cupsd"109110111/*112* Default WebInterface value...113*/114115#define CUPS_DEFAULT_WEBIF 0116117118/*119* Where are files stored?120*121* Note: These are defaults, which can be overridden by environment122* variables at run-time...123*/124125#define CUPS_BINDIR "/usr/bin"126#define CUPS_CACHEDIR "/private/var/spool/cups/cache"127#define CUPS_DATADIR "/usr/share/cups"128#define CUPS_DOCROOT "/usr/share/doc/cups"129#define CUPS_LOCALEDIR "/usr/share/locale"130#define CUPS_LOGDIR "/private/var/log/cups"131#define CUPS_REQUESTS "/private/var/spool/cups"132#define CUPS_SBINDIR "/usr/sbin"133#define CUPS_SERVERBIN "/usr/libexec/cups"134#define CUPS_SERVERROOT "/private/etc/cups"135#define CUPS_STATEDIR "/private/etc/cups"136137138/*139* Do we have posix_spawn?140*/141142#define HAVE_POSIX_SPAWN 1143144145/*146* Do we have ZLIB?147*/148149#define HAVE_LIBZ 1150#define HAVE_INFLATECOPY 1151152153/*154* Do we have PAM stuff?155*/156157#if TARGET_OS_OSX158# define HAVE_LIBPAM 1159/* #undef HAVE_PAM_PAM_APPL_H */160# define HAVE_PAM_SET_ITEM 1161# define HAVE_PAM_SETCRED 1162#endif /* TARGET_OS_OSX */163164165/*166* Do we have <shadow.h>?167*/168169/* #undef HAVE_SHADOW_H */170171172/*173* Do we have <crypt.h>?174*/175176/* #undef HAVE_CRYPT_H */177178179/*180* Use <stdint.h>?181*/182183#define HAVE_STDINT_H 1184185186/*187* Use <string.h>, <strings.h>, and/or <bstring.h>?188*/189190#define HAVE_STRING_H 1191#define HAVE_STRINGS_H 1192/* #undef HAVE_BSTRING_H */193194195/*196* Do we have the long long type?197*/198199#define HAVE_LONG_LONG 1200201#ifdef HAVE_LONG_LONG202# define CUPS_LLFMT "%lld"203# define CUPS_LLCAST (long long)204#else205# define CUPS_LLFMT "%ld"206# define CUPS_LLCAST (long)207#endif /* HAVE_LONG_LONG */208209210/*211* Do we have the strtoll() function?212*/213214#define HAVE_STRTOLL 1215216#ifndef HAVE_STRTOLL217# define strtoll(nptr,endptr,base) strtol((nptr), (endptr), (base))218#endif /* !HAVE_STRTOLL */219220221/*222* Do we have the strXXX() functions?223*/224225#define HAVE_STRDUP 1226#define HAVE_STRLCAT 1227#define HAVE_STRLCPY 1228229230/*231* Do we have the geteuid() function?232*/233234#define HAVE_GETEUID 1235236237/*238* Do we have the setpgid() function?239*/240241#define HAVE_SETPGID 1242243244/*245* Do we have the vsyslog() function?246*/247248#define HAVE_VSYSLOG 1249250251/*252* Do we have the systemd journal functions?253*/254255/* #undef HAVE_SYSTEMD_SD_JOURNAL_H */256257258/*259* Do we have the (v)snprintf() functions?260*/261262#define HAVE_SNPRINTF 1263#define HAVE_VSNPRINTF 1264265266/*267* What signal functions to use?268*/269270#define HAVE_SIGSET 1271#define HAVE_SIGACTION 1272273274/*275* What wait functions to use?276*/277278#define HAVE_WAITPID 1279#define HAVE_WAIT3 1280281282/*283* Do we have the mallinfo function and malloc.h?284*/285286/* #undef HAVE_MALLINFO */287/* #undef HAVE_MALLOC_H */288289290/*291* Do we have the POSIX ACL functions?292*/293294#define HAVE_ACL_INIT 1295296297/*298* Do we have the langinfo.h header file?299*/300301#define HAVE_LANGINFO_H 1302303304/*305* Which encryption libraries do we have?306*/307308#define HAVE_TLS 1309#define HAVE_CDSASSL 1310/* #undef HAVE_OPENSSL */311/* #undef HAVE_GNUTLS */312/* #undef HAVE_SSPISSL */313314315/*316* Do we have the gnutls_transport_set_pull_timeout_function function?317*/318319/* #undef HAVE_GNUTLS_TRANSPORT_SET_PULL_TIMEOUT_FUNCTION */320321322/*323* Do we have the gnutls_priority_set_direct function?324*/325326/* #undef HAVE_GNUTLS_PRIORITY_SET_DIRECT */327328329/*330* What Security framework headers do we have?331*/332333#if TARGET_OS_OSX334# define HAVE_AUTHORIZATION_H 1335#endif /* TARGET_OS_OSX */336337#define HAVE_SECCERTIFICATE_H 1338#define HAVE_SECITEM_H 1339#define HAVE_SECPOLICY_H 1340341342/*343* Do we have the SecGenerateSelfSignedCertificate function?344*/345346#if !TARGET_OS_OSX347# define HAVE_SECGENERATESELFSIGNEDCERTIFICATE 1348#endif /* !TARGET_OS_OSX */349350351/*352* Do we have libpaper?353*/354355/* #undef HAVE_LIBPAPER */356357358/*359* Do we have DNS Service Discovery (aka Bonjour) support?360*/361362#define HAVE_DNSSD 1363364365/*366* Do we have mDNSResponder for DNS-SD?367*/368369#define HAVE_MDNSRESPONDER 1370371372/*373* Do we have Avahi for DNS-SD?374*/375376/* #undef HAVE_AVAHI */377378379/*380* Do we have <sys/ioctl.h>?381*/382383#define HAVE_SYS_IOCTL_H 1384385386/*387* Does the "stat" structure contain the "st_gen" member?388*/389390#define HAVE_ST_GEN 1391392393/*394* Does the "tm" structure contain the "tm_gmtoff" member?395*/396397#define HAVE_TM_GMTOFF 1398399400/*401* Do we have rresvport_af()?402*/403404#define HAVE_RRESVPORT_AF 1405406407/*408* Do we have getaddrinfo()?409*/410411#define HAVE_GETADDRINFO 1412413414/*415* Do we have getnameinfo()?416*/417418#define HAVE_GETNAMEINFO 1419420421/*422* Do we have getifaddrs()?423*/424425#define HAVE_GETIFADDRS 1426427428/*429* Do we have hstrerror()?430*/431432#define HAVE_HSTRERROR 1433434435/*436* Do we have res_init()?437*/438439#define HAVE_RES_INIT 1440441442/*443* Do we have <resolv.h>444*/445446#define HAVE_RESOLV_H 1447448449/*450* Do we have the <sys/sockio.h> header file?451*/452453#define HAVE_SYS_SOCKIO_H 1454455456/*457* Does the sockaddr structure contain an sa_len parameter?458*/459460/* #undef HAVE_STRUCT_SOCKADDR_SA_LEN */461462463/*464* Do we have pthread support?465*/466467#define HAVE_PTHREAD_H 1468469470/*471* Do we have on-demand support (launchd/systemd/upstart)?472*/473474#define HAVE_ONDEMAND 1475476477/*478* Do we have launchd support?479*/480481#define HAVE_LAUNCH_H 1482#define HAVE_LAUNCHD 1483484485/*486* Do we have systemd support?487*/488489/* #undef HAVE_SYSTEMD */490491492/*493* Do we have upstart support?494*/495496/* #undef HAVE_UPSTART */497498499/*500* Do we have CoreFoundation public headers?501*/502503#define HAVE_COREFOUNDATION_H 1504505506/*507* Do we have ApplicationServices public headers?508*/509510#if TARGET_OS_OSX511# define HAVE_APPLICATIONSERVICES_H 1512#endif /* TARGET_OS_OSX */513514515/*516* Do we have the SCDynamicStoreCopyComputerName function?517*/518519#if TARGET_OS_OSX520# define HAVE_SCDYNAMICSTORECOPYCOMPUTERNAME 1521#endif /* TARGET_OS_OSX */522523524/*525* Do we have the getgrouplist() function?526*/527528#define HAVE_GETGROUPLIST 1529530531/*532* Do we have macOS 10.4's mbr_XXX functions?533*/534535#define HAVE_MEMBERSHIP_H 1536#define HAVE_MBR_UID_TO_UUID 1537538539/*540* Do we have Darwin's notify_post header and function?541*/542543#define HAVE_NOTIFY_H 1544#define HAVE_NOTIFY_POST 1545546547/*548* Do we have DBUS?549*/550551/* #undef HAVE_DBUS */552/* #undef HAVE_DBUS_MESSAGE_ITER_INIT_APPEND */553/* #undef HAVE_DBUS_THREADS_INIT */554555556/*557* Do we have the GSSAPI support library (for Kerberos support)?558*/559560#if TARGET_OS_OSX561# define HAVE_GSS_ACQUIRE_CRED_EX_F 1562# define HAVE_GSS_C_NT_HOSTBASED_SERVICE 1563# define HAVE_GSS_GSSAPI_H 1564/* #undef HAVE_GSS_GSSAPI_SPI_H */565# define HAVE_GSSAPI 1566/* #undef HAVE_GSSAPI_GSSAPI_H */567/* #undef HAVE_GSSAPI_H */568#endif /* TARGET_OS_OSX */569570571/*572* Default GSS service name...573*/574575#define CUPS_DEFAULT_GSSSERVICENAME "host"576577578/*579* Select/poll interfaces...580*/581582#define HAVE_POLL 1583/* #undef HAVE_EPOLL */584#define HAVE_KQUEUE 1585586587/*588* Do we have the <dlfcn.h> header?589*/590591#define HAVE_DLFCN_H 1592593594/*595* Do we have <sys/param.h>?596*/597598#define HAVE_SYS_PARAM_H 1599600601/*602* Do we have <sys/ucred.h>?603*/604605#define HAVE_SYS_UCRED_H 1606607608/*609* Do we have removefile()?610*/611612#define HAVE_REMOVEFILE 1613614615/*616* Do we have <sandbox.h>?617*/618619#define HAVE_SANDBOX_H 1620621622/*623* Which random number generator function to use...624*/625626#define HAVE_ARC4RANDOM 1627#define HAVE_RANDOM 1628#define HAVE_LRAND48 1629630#ifdef HAVE_ARC4RANDOM631# define CUPS_RAND() arc4random()632# define CUPS_SRAND(v)633#elif defined(HAVE_RANDOM)634# define CUPS_RAND() random()635# define CUPS_SRAND(v) srandom(v)636#elif defined(HAVE_LRAND48)637# define CUPS_RAND() lrand48()638# define CUPS_SRAND(v) srand48(v)639#else640# define CUPS_RAND() rand()641# define CUPS_SRAND(v) srand(v)642#endif /* HAVE_ARC4RANDOM */643644645/*646* Do we have libusb?647*/648649/* #undef HAVE_LIBUSB */650651652/*653* Do we have libwrap and tcpd.h?654*/655656/* #undef HAVE_TCPD_H */657658659/*660* Do we have <iconv.h>?661*/662663#define HAVE_ICONV_H 1664665666/*667* Do we have statfs or statvfs and one of the corresponding headers?668*/669670#define HAVE_STATFS 1671#define HAVE_STATVFS 1672#define HAVE_SYS_MOUNT_H 1673/* #undef HAVE_SYS_STATFS_H */674#define HAVE_SYS_STATVFS_H 1675/* #undef HAVE_SYS_VFS_H */676677678/*679* Location of localization bundle, if any.680*/681682#if TARGET_OS_OSX683# define CUPS_BUNDLEDIR "/System/Library/Frameworks/ApplicationServices.framework/Versions/A/Frameworks/PrintCore.framework/Versions/A"684#else685# define CUPS_BUNDLEDIR "/System/Library/PrivateFrameworks/PrintKit.framework/Versions/A"686#endif /* TARGET_OS_OSX */687688689/*690* Do we have XPC?691*/692693#define HAVE_XPC 1694695696/*697* Do we have the C99 abs() function?698*/699700#define HAVE_ABS 1701#if !defined(HAVE_ABS) && !defined(abs)702# if defined(__GNUC__) || __STDC_VERSION__ >= 199901L703# define abs(x) _cups_abs(x)704static inline int _cups_abs(int i) { return (i < 0 ? -i : i); }705# elif defined(_MSC_VER)706# define abs(x) _cups_abs(x)707static __inline int _cups_abs(int i) { return (i < 0 ? -i : i); }708# else709# define abs(x) ((x) < 0 ? -(x) : (x))710# endif /* __GNUC__ || __STDC_VERSION__ */711#endif /* !HAVE_ABS && !abs */712713#endif /* !_CUPS_CONFIG_H_ */714715716