diff options
author | Andrew Bartlett <abartlet@samba.org> | 2012-09-05 15:03:31 +1000 |
---|---|---|
committer | Andrew Bartlett <abartlet@samba.org> | 2012-09-06 11:16:11 +1000 |
commit | f453117569e04087ae461677717b14cdd65a4cd4 (patch) | |
tree | 65fcd1816e2edb947fa736752ed237e04b65af34 | |
parent | e00ac55994ad7d067f7f628ae4157f0d23f819c4 (diff) | |
download | samba-f453117569e04087ae461677717b14cdd65a4cd4.tar.gz samba-f453117569e04087ae461677717b14cdd65a4cd4.tar.bz2 samba-f453117569e04087ae461677717b14cdd65a4cd4.zip |
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
-rw-r--r-- | docs-xml/smbdotconf/printing/printing.xml | 6 | ||||
-rw-r--r-- | lib/param/param_table.c | 4 | ||||
-rw-r--r-- | source3/param/loadparm.c | 14 | ||||
-rw-r--r-- | source3/utils/testparm.c | 2 |
4 files changed, 9 insertions, 17 deletions
diff --git a/docs-xml/smbdotconf/printing/printing.xml b/docs-xml/smbdotconf/printing/printing.xml index c365594e1f..eb5925f740 100644 --- a/docs-xml/smbdotconf/printing/printing.xml +++ b/docs-xml/smbdotconf/printing/printing.xml @@ -18,7 +18,11 @@ <constant>LPRNG</constant>, <constant>PLP</constant>, <constant>SYSV</constant>, <constant>HPUX</constant>, <constant>QNX</constant>, <constant>SOFTQ</constant>, - and <constant>CUPS</constant>.</para> + <constant>CUPS</constant> and <constant>IPRINT</constant>.</para> + + <para>Be aware that CUPS and IPRINT are only available if the CUPS + development library was available at the time Samba was compiled + or packaged.</para> <para>To see what the defaults are for the other print commands when using the various options use the <citerefentry><refentrytitle>testparm</refentrytitle> diff --git a/lib/param/param_table.c b/lib/param/param_table.c index 4126d89c65..2aa392a683 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 1e418258d4..2c77691373 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 105f1c5746..a9793ab4cd 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[]) |