1/* 2 * "$Id: config.h 11093 2013-07-03 20:48:42Z msweet $" 3 * 4 * Configuration file for CUPS on Windows. 5 * 6 * Copyright 2007-2013 by Apple Inc. 7 * Copyright 1997-2007 by Easy Software Products. 8 * 9 * These coded instructions, statements, and computer programs are the 10 * property of Apple Inc. and are protected by Federal copyright 11 * law. Distribution and use rights are outlined in the file "LICENSE.txt" 12 * which should have been included with this file. If this file is 13 * file is missing or damaged, see the license at "http://www.cups.org/". 14 */ 15 16#ifndef _CUPS_CONFIG_H_ 17#define _CUPS_CONFIG_H_ 18 19/* 20 * Include necessary headers... 21 */ 22 23#include <stdio.h> 24#include <stdlib.h> 25#include <string.h> 26#include <stdarg.h> 27#include <io.h> 28#include <direct.h> 29 30 31/* 32 * Microsoft renames the POSIX functions to _name, and introduces 33 * a broken compatibility layer using the original names. As a result, 34 * random crashes can occur when, for example, strdup() allocates memory 35 * from a different heap than used by malloc() and free(). 36 * 37 * To avoid moronic problems like this, we #define the POSIX function 38 * names to the corresponding non-standard Microsoft names. 39 */ 40 41#define access _access 42#define close _close 43#define fileno _fileno 44#define lseek _lseek 45#define mkdir(d,p) _mkdir(d) 46#define open _open 47#define read _read 48#define rmdir _rmdir 49#define snprintf _snprintf 50#define strdup _strdup 51#define unlink _unlink 52#define vsnprintf _vsnprintf 53#define write _write 54 55 56/* 57 * Map the POSIX sleep() and usleep() functions to the Win32 Sleep() function... 58 */ 59 60#define sleep(X) Sleep(1000 * (X)) 61#define usleep(X) Sleep((X)/1000) 62 63 64/* 65 * Map various parameters to Posix style system calls 66 */ 67 68# define F_OK 00 69# define W_OK 02 70# define R_OK 04 71# define O_RDONLY _O_RDONLY 72# define O_WRONLY _O_WRONLY 73# define O_CREATE _O_CREAT 74# define O_TRUNC _O_TRUNC 75 76 77/* 78 * Compiler stuff... 79 */ 80 81#undef const 82#undef __CHAR_UNSIGNED__ 83 84 85/* 86 * Version of software... 87 */ 88 89#define CUPS_SVERSION "CUPS v1.7.0" 90#define CUPS_MINIMAL "CUPS/1.7.0" 91 92 93/* 94 * Default user and groups... 95 */ 96 97#define CUPS_DEFAULT_USER "" 98#define CUPS_DEFAULT_GROUP "" 99#define CUPS_DEFAULT_SYSTEM_GROUPS "" 100#define CUPS_DEFAULT_PRINTOPERATOR_AUTH "" 101 102 103/* 104 * Default file permissions... 105 */ 106 107#define CUPS_DEFAULT_CONFIG_FILE_PERM 0640 108#define CUPS_DEFAULT_LOG_FILE_PERM 0644 109 110 111/* 112 * Default logging settings... 113 */ 114 115#define CUPS_DEFAULT_LOG_LEVEL "warn" 116#define CUPS_DEFAULT_ACCESS_LOG_LEVEL "actions" 117 118 119/* 120 * Default fatal error settings... 121 */ 122 123#define CUPS_DEFAULT_FATAL_ERRORS "config" 124 125 126/* 127 * Default browsing settings... 128 */ 129 130#define CUPS_DEFAULT_BROWSING 1 131#define CUPS_DEFAULT_BROWSE_LOCAL_PROTOCOLS "" 132#define CUPS_DEFAULT_DEFAULT_SHARED 1 133 134 135/* 136 * Default IPP port... 137 */ 138 139#define CUPS_DEFAULT_IPP_PORT 631 140 141 142/* 143 * Default printcap file... 144 */ 145 146#define CUPS_DEFAULT_PRINTCAP "" 147 148 149/* 150 * Default Samba and LPD config files... 151 */ 152 153#define CUPS_DEFAULT_SMB_CONFIG_FILE "" 154#define CUPS_DEFAULT_LPD_CONFIG_FILE "" 155 156 157/* 158 * Default MaxCopies value... 159 */ 160 161#define CUPS_DEFAULT_MAX_COPIES 9999 162 163 164/* 165 * Do we have domain socket support? 166 */ 167 168#undef CUPS_DEFAULT_DOMAINSOCKET 169 170 171/* 172 * Default WebInterface value... 173 */ 174 175#undef CUPS_DEFAULT_WEBIF 176 177 178/* 179 * Where are files stored? 180 * 181 * Note: These are defaults, which can be overridden by environment 182 * variables at run-time... 183 */ 184 185#define CUPS_BINDIR "C:/CUPS/bin" 186#define CUPS_CACHEDIR "C:/CUPS/cache" 187#define CUPS_DATADIR "C:/CUPS/share" 188#define CUPS_DOCROOT "C:/CUPS/share/doc" 189#define CUPS_FONTPATH "C:/CUPS/share/fonts" 190#define CUPS_LOCALEDIR "C:/CUPS/locale" 191#define CUPS_LOGDIR "C:/CUPS/logs" 192#define CUPS_REQUESTS "C:/CUPS/spool" 193#define CUPS_SBINDIR "C:/CUPS/sbin" 194#define CUPS_SERVERBIN "C:/CUPS/lib" 195#define CUPS_SERVERROOT "C:/CUPS/etc" 196#define CUPS_STATEDIR "C:/CUPS/run" 197 198 199/* 200 * Do we have ZLIB? 201 */ 202 203#define HAVE_LIBZ 1 204#define HAVE_INFLATECOPY 1 205 206 207/* 208 * Do we have PAM stuff? 209 */ 210 211#ifndef HAVE_LIBPAM 212#define HAVE_LIBPAM 0 213#endif /* !HAVE_LIBPAM */ 214 215/* #undef HAVE_PAM_PAM_APPL_H */ 216/* #undef HAVE_PAM_SET_ITEM */ 217/* #undef HAVE_PAM_SETCRED */ 218 219 220/* 221 * Do we have <shadow.h>? 222 */ 223 224/* #undef HAVE_SHADOW_H */ 225 226 227/* 228 * Do we have <crypt.h>? 229 */ 230 231/* #undef HAVE_CRYPT_H */ 232 233 234/* 235 * Use <stdint.h>? 236 */ 237 238/* #undef HAVE_STDINT_H */ 239 240 241/* 242 * Use <string.h>, <strings.h>, and/or <bstring.h>? 243 */ 244 245#define HAVE_STRING_H 1 246/* #undef HAVE_STRINGS_H */ 247/* #undef HAVE_BSTRING_H */ 248 249 250/* 251 * Do we have the long long type? 252 */ 253 254/* #undef HAVE_LONG_LONG */ 255 256#ifdef HAVE_LONG_LONG 257# define CUPS_LLFMT "%lld" 258# define CUPS_LLCAST (long long) 259#else 260# define CUPS_LLFMT "%ld" 261# define CUPS_LLCAST (long) 262#endif /* HAVE_LONG_LONG */ 263 264 265/* 266 * Do we have the strtoll() function? 267 */ 268 269/* #undef HAVE_STRTOLL */ 270 271#ifndef HAVE_STRTOLL 272# define strtoll(nptr,endptr,base) strtol((nptr), (endptr), (base)) 273#endif /* !HAVE_STRTOLL */ 274 275 276/* 277 * Do we have the strXXX() functions? 278 */ 279 280#define HAVE_STRDUP 1 281/* #undef HAVE_STRLCAT */ 282/* #undef HAVE_STRLCPY */ 283 284 285/* 286 * Do we have the geteuid() function? 287 */ 288 289/* #undef HAVE_GETEUID */ 290 291 292/* 293 * Do we have the setpgid() function? 294 */ 295 296/* #undef HAVE_SETPGID */ 297 298 299/* 300 * Do we have the vsyslog() function? 301 */ 302 303/* #undef HAVE_VSYSLOG */ 304 305 306/* 307 * Do we have the (v)snprintf() functions? 308 */ 309 310#define HAVE_SNPRINTF 1 311#define HAVE_VSNPRINTF 1 312 313 314/* 315 * What signal functions to use? 316 */ 317 318/* #undef HAVE_SIGSET */ 319/* #undef HAVE_SIGACTION */ 320 321 322/* 323 * What wait functions to use? 324 */ 325 326/* #undef HAVE_WAITPID */ 327/* #undef HAVE_WAIT3 */ 328 329 330/* 331 * Do we have the mallinfo function and malloc.h? 332 */ 333 334/* #undef HAVE_MALLINFO */ 335/* #undef HAVE_MALLOC_H */ 336 337 338/* 339 * Do we have the POSIX ACL functions? 340 */ 341 342/* #undef HAVE_ACL_INIT */ 343 344 345/* 346 * Do we have the langinfo.h header file? 347 */ 348 349/* #undef HAVE_LANGINFO_H */ 350 351 352/* 353 * Which encryption libraries do we have? 354 */ 355 356/* #undef HAVE_CDSASSL */ 357/* #undef HAVE_GNUTLS */ 358/* #undef HAVE_LIBSSL */ 359#define HAVE_SSPISSL 360#define HAVE_SSL 361 362 363/* 364 * Do we have the SSL_set_tlsext_host_name function? 365 */ 366 367/* #undef HAVE_SSL_SET_TLSEXT_HOST_NAME */ 368 369 370/* 371 * What Security framework headers do we have? 372 */ 373 374/* #undef HAVE_AUTHORIZATION_H */ 375/* #undef HAVE_SECBASEPRIV_H */ 376/* #undef HAVE_SECCERTIFICATE_H */ 377/* #undef HAVE_SECIDENTITYSEARCHPRIV_H */ 378/* #undef HAVE_SECITEM_H */ 379/* #undef HAVE_SECITEMPRIV_H */ 380/* #undef HAVE_SECPOLICY_H */ 381/* #undef HAVE_SECPOLICYPRIV_H */ 382/* #undef HAVE_SECURETRANSPORTPRIV_H */ 383 384 385/* 386 * Do we have the cssmErrorString function? 387 */ 388 389/* #undef HAVE_CSSMERRORSTRING */ 390 391 392/* 393 * Do we have libpaper? 394 */ 395 396/* #undef HAVE_LIBPAPER */ 397 398 399/* 400 * Do we have mDNSResponder for DNS Service Discovery (aka Bonjour)? 401 */ 402 403#define HAVE_DNSSD 1 404 405 406/* 407 * Do we have Avahi for DNS Service Discovery (aka Bonjour)? 408 */ 409 410#undef HAVE_AVAHI 411 412 413/* 414 * Do we have <sys/ioctl.h>? 415 */ 416 417#undef HAVE_SYS_IOCTL_H 418 419 420/* 421 * Does the "stat" structure contain the "st_gen" member? 422 */ 423 424/* #undef HAVE_ST_GEN */ 425 426 427/* 428 * Does the "tm" structure contain the "tm_gmtoff" member? 429 */ 430 431/* #undef HAVE_TM_GMTOFF */ 432 433 434/* 435 * Do we have rresvport_af()? 436 */ 437 438/* #undef HAVE_RRESVPORT_AF */ 439 440 441/* 442 * Do we have getaddrinfo()? 443 */ 444 445#define HAVE_GETADDRINFO 1 446 447 448/* 449 * Do we have getnameinfo()? 450 */ 451 452#define HAVE_GETNAMEINFO 1 453 454 455/* 456 * Do we have getifaddrs()? 457 */ 458 459/* #undef HAVE_GETIFADDRS */ 460 461 462/* 463 * Do we have hstrerror()? 464 */ 465 466/* #undef HAVE_HSTRERROR */ 467 468 469/* 470 * Do we have res_init()? 471 */ 472 473/* #undef HAVE_RES_INIT */ 474 475 476/* 477 * Do we have <resolv.h> 478 */ 479 480/* #undef HAVE_RESOLV_H */ 481 482 483/* 484 * Do we have the <sys/sockio.h> header file? 485 */ 486 487/* #undef HAVE_SYS_SOCKIO_H */ 488 489 490/* 491 * Does the sockaddr structure contain an sa_len parameter? 492 */ 493 494/* #undef HAVE_STRUCT_SOCKADDR_SA_LEN */ 495 496 497/* 498 * Do we have the AIX usersec.h header file? 499 */ 500 501/* #undef HAVE_USERSEC_H */ 502 503 504/* 505 * Do we have pthread support? 506 */ 507 508/* #undef HAVE_PTHREAD_H */ 509 510 511/* 512 * Do we have launchd support? 513 */ 514 515/* #undef HAVE_LAUNCH_H */ 516/* #undef HAVE_LAUNCHD */ 517 518 519/* 520 * Various scripting languages... 521 */ 522 523/* #undef HAVE_JAVA */ 524#define CUPS_JAVA "" 525/* #undef HAVE_PERL */ 526#define CUPS_PERL "" 527/* #undef HAVE_PHP */ 528#define CUPS_PHP "" 529/* #undef HAVE_PYTHON */ 530#define CUPS_PYTHON "" 531 532 533/* 534 * Location of the poppler/Xpdf pdftops program... 535 */ 536 537/* #undef HAVE_PDFTOPS */ 538/* #undef HAVE_PDFTOPS_WITH_ORIGPAGESIZES */ 539#define CUPS_PDFTOPS "" 540 541 542/* 543 * Location of the Ghostscript gs program... 544 */ 545 546/* #undef HAVE_GHOSTSCRIPT */ 547#define CUPS_GHOSTSCRIPT "" 548 549 550/* 551 * Do we have CoreFoundation public and private headers? 552 */ 553 554/* #undef HAVE_COREFOUNDATION_H */ 555/* #undef HAVE_CFPRIV_H */ 556/* #undef HAVE_CFBUNDLEPRIV_H */ 557 558 559/* 560 * Do we have ApplicationServices public headers? 561 */ 562 563/* #undef HAVE_APPLICATIONSERVICES_H */ 564 565 566/* 567 * Do we have the SCDynamicStoreCopyComputerName function? 568 */ 569 570/* #undef HAVE_SCDYNAMICSTORECOPYCOMPUTERNAME */ 571 572 573/* 574 * Do we have OS X 10.4's mbr_XXX functions? 575 */ 576 577/* #undef HAVE_MEMBERSHIP_H */ 578/* #undef HAVE_MEMBERSHIPPRIV_H */ 579/* #undef HAVE_MBR_UID_TO_UUID */ 580 581 582/* 583 * Do we have Darwin's notify_post header and function? 584 */ 585 586/* #undef HAVE_NOTIFY_H */ 587/* #undef HAVE_NOTIFY_POST */ 588 589 590/* 591 * Do we have Darwin's IOKit private headers? 592 */ 593 594/* #undef HAVE_IOKIT_PWR_MGT_IOPMLIBPRIVATE_H */ 595 596 597/* 598 * Do we have DBUS? 599 */ 600 601/* #undef HAVE_DBUS */ 602/* #undef HAVE_DBUS_MESSAGE_ITER_INIT_APPEND */ 603 604 605/* 606 * Do we have the GSSAPI support library (for Kerberos support)? 607 */ 608 609/* #undef HAVE_GSS_ACQUIRE_CRED_EX_F */ 610/* #undef HAVE_GSS_C_NT_HOSTBASED_SERVICE */ 611/* #undef HAVE_GSS_GSSAPI_H */ 612/* #undef HAVE_GSS_GSSAPI_SPI_H */ 613/* #undef HAVE_GSSAPI */ 614/* #undef HAVE_GSSAPI_GSSAPI_H */ 615/* #undef HAVE_GSSAPI_H */ 616 617 618/* 619 * Default GSS service name... 620 */ 621 622#define CUPS_DEFAULT_GSSSERVICENAME "host" 623 624 625/* 626 * Select/poll interfaces... 627 */ 628 629/* #undef HAVE_POLL */ 630/* #undef HAVE_EPOLL */ 631/* #undef HAVE_KQUEUE */ 632 633 634/* 635 * Do we have the <dlfcn.h> header? 636 */ 637 638/* #undef HAVE_DLFCN_H */ 639 640 641/* 642 * Do we have <sys/param.h>? 643 */ 644 645/* #undef HAVE_SYS_PARAM_H */ 646 647 648/* 649 * Do we have <sys/ucred.h>? 650 */ 651 652/* #undef HAVE_SYS_UCRED_H */ 653 654 655/* 656 * Do we have removefile()? 657 */ 658 659/* #undef HAVE_REMOVEFILE */ 660 661 662/* 663 * Do we have <sandbox.h>? 664 */ 665 666/* #undef HAVE_SANDBOX_H */ 667 668 669/* 670 * Which random number generator function to use... 671 */ 672 673/* #undef HAVE_ARC4RANDOM */ 674/* #undef HAVE_RANDOM */ 675/* #undef HAVE_LRAND48 */ 676 677#ifdef HAVE_ARC4RANDOM 678# define CUPS_RAND() arc4random() 679# define CUPS_SRAND(v) arc4random_stir() 680#elif defined(HAVE_RANDOM) 681# define CUPS_RAND() random() 682# define CUPS_SRAND(v) srandom(v) 683#elif defined(HAVE_LRAND48) 684# define CUPS_RAND() lrand48() 685# define CUPS_SRAND(v) srand48(v) 686#else 687# define CUPS_RAND() rand() 688# define CUPS_SRAND(v) srand(v) 689#endif /* HAVE_ARC4RANDOM */ 690 691 692/* 693 * Do we have vproc_transaction_begin/end? 694 */ 695 696/* #undef HAVE_VPROC_TRANSACTION_BEGIN */ 697 698 699/* 700 * Do we have libusb? 701 */ 702 703/* #undef HAVE_LIBUSB */ 704 705 706/* 707 * Do we have libwrap and tcpd.h? 708 */ 709 710/* #undef HAVE_TCPD_H */ 711 712 713/* 714 * Do we have <iconv.h>? 715 */ 716 717/* #undef HAVE_ICONV_H */ 718 719 720/* 721 * Do we have statfs or statvfs and one of the corresponding headers? 722 */ 723 724/* #undef HAVE_STATFS */ 725/* #undef HAVE_STATVFS */ 726/* #undef HAVE_SYS_MOUNT_H */ 727/* #undef HAVE_SYS_STATFS_H */ 728/* #undef HAVE_SYS_STATVFS_H */ 729/* #undef HAVE_SYS_VFS_H */ 730 731 732/* 733 * Location of OS X localization bundle, if any. 734 */ 735 736/* #undef CUPS_BUNDLEDIR */ 737 738 739/* 740 * Do we have XPC? 741 */ 742 743/* #undef HAVE_XPC */ 744/* #undef HAVE_XPC_PRIVATE_H */ 745 746 747/* 748 * Do we have Mini-XML? 749 */ 750 751/* #undef HAVE_MXML_H */ 752 753 754/* 755 * Do we have the C99 abs() function? 756 */ 757 758/* #undef HAVE_ABS */ 759#if !defined(HAVE_ABS) && !defined(abs) 760# if defined(__GNUC__) || __STDC_VERSION__ >= 199901L 761# define abs(x) _cups_abs(x) 762static inline int _cups_abs(int i) { return (i < 0 ? -i : i); } 763# elif defined(_MSC_VER) 764# define abs(x) _cups_abs(x) 765static __inline int _cups_abs(int i) { return (i < 0 ? -i : i); } 766# else 767# define abs(x) ((x) < 0 ? -(x) : (x)) 768# endif /* __GNUC__ || __STDC_VERSION__ */ 769#endif /* !HAVE_ABS && !abs */ 770 771#endif /* !_CUPS_CONFIG_H_ */ 772 773/* 774 * End of "$Id: config.h 11093 2013-07-03 20:48:42Z msweet $". 775 */ 776