From: Andrew Bartlett Date: Wed, 5 Sep 2012 05:03:31 +0000 (+1000) Subject: s3-printing: Restrict printing=cups to systems with cups development headers at build... X-Git-Tag: samba-4.0.0rc1~202 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=f453117569e04087ae461677717b14cdd65a4cd4;p=thirdparty%2Fsamba.git s3-printing: Restrict printing=cups to systems with cups development headers at build time This means that instead of failing due to the default commandline values not being quite correct that we clearly fail at loadparm and testparm time when parsing the printing= line. Andrew Bartlett --- diff --git a/docs-xml/smbdotconf/printing/printing.xml b/docs-xml/smbdotconf/printing/printing.xml index c365594e1f1..eb5925f740f 100644 --- a/docs-xml/smbdotconf/printing/printing.xml +++ b/docs-xml/smbdotconf/printing/printing.xml @@ -18,7 +18,11 @@ LPRNG, PLP, SYSV, HPUX, QNX, SOFTQ, - and CUPS. + CUPS and IPRINT. + + Be aware that CUPS and IPRINT are only available if the CUPS + development library was available at the time Samba was compiled + or packaged. To see what the defaults are for the other print commands when using the various options use the testparm diff --git a/lib/param/param_table.c b/lib/param/param_table.c index 4126d89c65c..2aa392a683b 100644 --- a/lib/param/param_table.c +++ b/lib/param/param_table.c @@ -186,8 +186,12 @@ static const struct enum_list enum_printing[] = { {PRINT_QNX, "qnx"}, {PRINT_PLP, "plp"}, {PRINT_LPRNG, "lprng"}, +#ifdef HAVE_CUPS {PRINT_CUPS, "cups"}, +#endif +#ifdef HAVE_IPRINT {PRINT_IPRINT, "iprint"}, +#endif {PRINT_LPRNT, "nt"}, {PRINT_LPROS2, "os2"}, #if defined(DEVELOPER) || defined(ENABLE_SELFTEST) diff --git a/source3/param/loadparm.c b/source3/param/loadparm.c index 1e418258d49..2c77691373d 100644 --- a/source3/param/loadparm.c +++ b/source3/param/loadparm.c @@ -408,7 +408,6 @@ static void init_printer_values(struct loadparm_service *pService) case PRINT_CUPS: case PRINT_IPRINT: -#ifdef HAVE_CUPS /* set the lpq command to contain the destination printer name only. This is used by cups_queue_get() */ string_set(&pService->szLpqcommand, "%p"); @@ -418,15 +417,6 @@ static void init_printer_values(struct loadparm_service *pService) string_set(&pService->szLpresumecommand, ""); string_set(&pService->szQueuepausecommand, ""); string_set(&pService->szQueueresumecommand, ""); -#else - string_set(&pService->szLpqcommand, "lpq -P'%p'"); - string_set(&pService->szLprmcommand, "lprm -P'%p' %j"); - string_set(&pService->szPrintcommand, "lpr -P'%p' %s; rm %s"); - string_set(&pService->szLppausecommand, "lp -i '%p-%j' -H hold"); - string_set(&pService->szLpresumecommand, "lp -i '%p-%j' -H resume"); - string_set(&pService->szQueuepausecommand, "disable '%p'"); - string_set(&pService->szQueueresumecommand, "enable '%p'"); -#endif /* HAVE_CUPS */ break; case PRINT_SYSV: @@ -5284,11 +5274,7 @@ const char *lp_printcapname(void) return Globals.szPrintcapname; if (sDefault.iPrinting == PRINT_CUPS) { -#ifdef HAVE_CUPS return "cups"; -#else - return "lpstat"; -#endif } if (sDefault.iPrinting == PRINT_BSD) diff --git a/source3/utils/testparm.c b/source3/utils/testparm.c index 105f1c5746e..a9793ab4cd7 100644 --- a/source3/utils/testparm.c +++ b/source3/utils/testparm.c @@ -333,13 +333,11 @@ static void do_per_share_checks(int s) "%s. Map system can only work if force create mode " "excludes octal 010 (S_IXGRP).\n", lp_servicename(talloc_tos(), s)); } -#ifdef HAVE_CUPS if (lp_printing(s) == PRINT_CUPS && *(lp_printcommand(talloc_tos(), s)) != '\0') { fprintf(stderr,"Warning: Service %s defines a print command, but \ rameter is ignored when using CUPS libraries.\n", lp_servicename(talloc_tos(), s) ); } -#endif } int main(int argc, const char *argv[])