]> git.ipfire.org Git - thirdparty/cups.git/commitdiff
Add configure options to set the default values of various cupsd.conf settings.
authormike <mike@7a7537e8-13f0-0310-91df-b6672ffda945>
Fri, 27 Jan 2006 19:30:34 +0000 (19:30 +0000)
committermike <mike@7a7537e8-13f0-0310-91df-b6672ffda945>
Fri, 27 Jan 2006 19:30:34 +0000 (19:30 +0000)
Fix the OSX test package script to update the web interface files before
doing the install into the package directory - that way the revision
number appears.

Generate template/header.tmpl so that the version number is shown correctly
on all pages.

In cupsdStartBrowsing(), decouple the socket creation from the socket
"broadcast" and "close on exec" options, since launchd will be providing
the BrowseSocket for us on MacOS X.

git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@5008 7a7537e8-13f0-0310-91df-b6672ffda945

Makedefs.in
conf/Makefile
config-scripts/cups-defaults.m4 [new file with mode: 0644]
config.h.in
configure.in
doc/help/standard.html.in
scheduler/conf.c
scheduler/dirsvc.c
templates/header.tmpl.in [moved from templates/header.tmpl with 98% similarity]
tools/testosx

index a945ad8db20e1bc026c5ad1667db05d35fde6e59..0deab99d8d8f7bdbc5fcd5c0e0bd01cbefe96af0 100644 (file)
@@ -47,6 +47,7 @@ STRIP         =       @STRIP@
 #
 
 INSTALL_BIN    =       $(LIBTOOL) $(INSTALL) -m 755 -s
+INSTALL_CONFIG =       $(INSTALL) -m @CUPS_CONFIG_FILE_PERM@
 INSTALL_DATA   =       $(INSTALL) -m 644
 INSTALL_DIR    =       $(INSTALL) -d
 INSTALL_LIB    =       $(LIBTOOL) $(INSTALL) -m 755
@@ -54,11 +55,19 @@ INSTALL_MAN =       $(INSTALL) -m 644
 INSTALL_SCRIPT =       $(INSTALL) -m 755
 
 #
-# Default user and group for the scheduler...
+# Default user, group, and system groups for the scheduler...
 #
 
 CUPS_USER      =       @CUPS_USER@
 CUPS_GROUP     =       @CUPS_GROUP@
+CUPS_SYSTEM_GROUPS =   @CUPS_SYSTEM_GROUPS@
+
+#
+# Default permissions...
+#
+
+CUPS_CONFIG_FILE_PERM = @CUPS_CONFIG_FILE_PERM@
+CUPS_LOG_FILE_PERM = @CUPS_LOG_FILE_PERM@
 
 #
 # Libraries...
index e66b09e2b160fcbf144f3fead9734a2d72f93163..d1796f918afa83fc7089425a20efbcd78ec1ad00 100644 (file)
@@ -54,17 +54,17 @@ install:    all
        $(INSTALL_DIR) $(SERVERROOT)
        for file in $(KEEP); do \
                if test -r $(SERVERROOT)/$$file ; then \
-                       $(INSTALL_DATA) $$file $(SERVERROOT)/$$file.N ; \
+                       $(INSTALL_CONFIG) $$file $(SERVERROOT)/$$file.N ; \
                else \
-                       $(INSTALL_DATA) $$file $(SERVERROOT) ; \
+                       $(INSTALL_CONFIG) $$file $(SERVERROOT) ; \
                fi ; \
        done
-       $(INSTALL_DATA) cupsd.conf $(SERVERROOT)/cupsd.conf.default
+       $(INSTALL_CONFIG) cupsd.conf $(SERVERROOT)/cupsd.conf.default
        for file in $(REPLACE); do \
                if test -r $(SERVERROOT)/$$file ; then \
                        $(MV) $(SERVERROOT)/$$file $(SERVERROOT)/$$file.O ; \
                fi ; \
-               $(INSTALL_DATA) $$file $(SERVERROOT) ; \
+               $(INSTALL_CONFIG) $$file $(SERVERROOT) ; \
        done
        -if test x$(PAMDIR) != x$(BUILDROOT); then \
                $(INSTALL_DIR) $(PAMDIR); \
diff --git a/config-scripts/cups-defaults.m4 b/config-scripts/cups-defaults.m4
new file mode 100644 (file)
index 0000000..26bfae8
--- /dev/null
@@ -0,0 +1,105 @@
+dnl
+dnl "$Id$"
+dnl
+dnl   Default cupsd configuration settings for the Common UNIX Printing System
+dnl   (CUPS).
+dnl
+dnl   Copyright 2006 by Easy Software Products, all rights reserved.
+dnl
+dnl   These coded instructions, statements, and computer programs are the
+dnl   property of Easy Software Products and are protected by Federal
+dnl   copyright law.  Distribution and use rights are outlined in the file
+dnl   "LICENSE.txt" which should have been included with this file.  If this
+dnl   file is missing or damaged please contact Easy Software Products
+dnl   at:
+dnl
+dnl       Attn: CUPS Licensing Information
+dnl       Easy Software Products
+dnl       44141 Airport View Drive, Suite 204
+dnl       Hollywood, Maryland 20636 USA
+dnl
+dnl       Voice: (301) 373-9600
+dnl       EMail: cups-info@cups.org
+dnl         WWW: http://www.cups.org
+dnl
+
+dnl Default ConfigFilePerm
+AC_ARG_WITH(config_perm, [  --with-config-file-perm set default ConfigFilePerm value, default=0640],
+            CUPS_CONFIG_FILE_PERM="$withval",
+           CUPS_CONFIG_FILE_PERM="0640")
+AC_SUBST(CUPS_CONFIG_FILE_PERM)
+AC_DEFINE_UNQUOTED(CUPS_DEFAULT_CONFIG_FILE_PERM, $CUPS_CONFIG_FILE_PERM)
+
+dnl Default LogFilePerm
+AC_ARG_WITH(log_perm, [  --with-log-file-perm    set default LogFilePerm value, default=0644],
+            CUPS_LOG_FILE_PERM="$withval",
+           CUPS_LOG_FILE_PERM="0644")
+AC_SUBST(CUPS_LOG_FILE_PERM)
+AC_DEFINE_UNQUOTED(CUPS_DEFAULT_LOG_FILE_PERM, $CUPS_LOG_FILE_PERM)
+
+dnl Default Browsing
+AC_ARG_ENABLE(browsing, [  --enable-browsing       enable Browsing by default, default=yes])
+if test "x$enable_browsing" = xno; then
+       CUPS_BROWSING="No"
+       AC_DEFINE_UNQUOTED(CUPS_DEFAULT_BROWSING, 0)
+else
+       CUPS_BROWSING="Yes"
+       AC_DEFINE_UNQUOTED(CUPS_DEFAULT_BROWSING, 1)
+fi
+AC_SUBST(CUPS_BROWSING)
+
+dnl Default BrowseLocalProtocols
+AC_ARG_WITH(browse_local, [  --with-local-protocols  set default BrowseLocalProtocols, default="CUPS"],
+            CUPS_BROWSE_LOCAL_PROTOCOLS="$withval",
+           CUPS_BROWSE_LOCAL_PROTOCOLS="CUPS")
+AC_SUBST(CUPS_BROWSE_LOCAL_PROTOCOLS)
+AC_DEFINE_UNQUOTED(CUPS_DEFAULT_BROWSE_LOCAL_PROTOCOLS,
+                   "$CUPS_BROWSE_LOCAL_PROTOCOLS")
+
+dnl Default BrowseRemoteProtocols
+AC_ARG_WITH(browse_remote, [  --with-remote-protocols set default BrowseRemoteProtocols, default="CUPS"],
+            CUPS_BROWSE_REMOTE_PROTOCOLS="$withval",
+           CUPS_BROWSE_REMOTE_PROTOCOLS="CUPS")
+AC_SUBST(CUPS_BROWSE_REMOTE_PROTOCOLS)
+AC_DEFINE_UNQUOTED(CUPS_DEFAULT_BROWSE_REMOTE_PROTOCOLS,
+                   "$CUPS_BROWSE_REMOTE_PROTOCOLS")
+
+dnl Default BrowseShortNames
+AC_ARG_ENABLE(browse_short, [  --enable-browse-short-names
+                          enable BrowseShortNames by default, default=yes])
+if test "x$enable_browse_short" = xno; then
+       CUPS_BROWSE_SHORT_NAMES="No"
+       AC_DEFINE_UNQUOTED(CUPS_DEFAULT_BROWSE_SHORT_NAMES, 0)
+else
+       CUPS_BROWSE_SHORT_NAMES="Yes"
+       AC_DEFINE_UNQUOTED(CUPS_DEFAULT_BROWSE_SHORT_NAMES, 1)
+fi
+AC_SUBST(CUPS_BROWSE_SHORT_NAMES)
+
+dnl Default DefaultShared
+AC_ARG_ENABLE(default_shared, [  --enable-default-shared enable DefaultShared by default, default=yes])
+if test "x$enable_default_shared" = xno; then
+       CUPS_DEFAULT_SHARED="No"
+       AC_DEFINE_UNQUOTED(CUPS_DEFAULT_DEFAULT_SHARED, 0)
+else
+       CUPS_DEFAULT_SHARED="Yes"
+       AC_DEFINE_UNQUOTED(CUPS_DEFAULT_DEFAULT_SHARED, 1)
+fi
+AC_SUBST(CUPS_DEFAULT_SHARED)
+
+dnl Default ImplicitClasses
+AC_ARG_ENABLE(implicit, [  --enable-implicit-classes
+                          enable ImplicitClasses by default, default=yes])
+if test "x$enable_implicit" = xno; then
+       CUPS_IMPLICIT_CLASSES="No"
+       AC_DEFINE_UNQUOTED(CUPS_DEFAULT_IMPLICIT_CLASSES, 0)
+else
+       CUPS_IMPLICIT_CLASSES="Yes"
+       AC_DEFINE_UNQUOTED(CUPS_DEFAULT_IMPLICIT_CLASSES, 1)
+fi
+AC_SUBST(CUPS_IMPLICIT_CLASSES)
+
+
+dnl
+dnl End of "$Id$".
+dnl
index 7faf778ce613e8e803e4e3a463ac7fb453a622a0..e75436acbecea32265cc7f456f22ab0f8db9edbd 100644 (file)
@@ -5,7 +5,7 @@
  *
  *   @configure_input@
  *
- *   Copyright 1997-2005 by Easy Software Products.
+ *   Copyright 1997-2006 by Easy Software Products.
  *
  *   These coded instructions, statements, and computer programs are the
  *   property of Easy Software Products and are protected by Federal
 
 
 /*
- * Default user and group...
+ * Default user and groups...
  */
 
 #define CUPS_DEFAULT_USER      "lp"
 #define CUPS_DEFAULT_GROUP     "sys"
+#define CUPS_DEFAULT_SYSTEM_GROUPS     "sys root system"
+
+
+/*
+ * Default file permissions...
+ */
+
+#define CUPS_DEFAULT_CONFIG_FILE_PERM  0640
+#define CUPS_DEFAULT_LOG_FILE_PERM     0644
+
+
+/*
+ * Default browsing settings...
+ */
+
+#define CUPS_DEFAULT_BROWSING  1
+#define CUPS_DEFAULT_BROWSE_LOCAL_PROTOCOLS    "CUPS"
+#define CUPS_DEFAULT_BROWSE_REMOTE_PROTOCOLS   "CUPS"
+#define CUPS_DEFAULT_BROWSE_SHORT_NAMES        1
+#define CUPS_DEFAULT_DEFAULT_SHARED 1
+#define CUPS_DEFAULT_IMPLICIT_CLASSES  1
 
 
 /*
index 2eab599ebac3a1957bfb0a2477c2f2d911c794b9..264e678ef4ca569f6f57467e6cf0e344d719a908 100644 (file)
@@ -26,6 +26,7 @@ AC_INIT(cups/cups.h)
 
 sinclude(config-scripts/cups-opsys.m4)
 sinclude(config-scripts/cups-common.m4)
+sinclude(config-scripts/cups-defaults.m4)
 sinclude(config-scripts/cups-directories.m4)
 sinclude(config-scripts/cups-manpages.m4)
 
@@ -48,7 +49,8 @@ sinclude(config-scripts/cups-scripting.m4)
 
 AC_OUTPUT(Makedefs packaging/cups.list init/cups.sh cups-config
           conf/cupsd.conf conf/pam.std doc/index.html
-         doc/help/standard.html templates/edit-config.tmpl)
+         doc/help/standard.html templates/edit-config.tmpl
+         templates/header.tmpl)
 
 chmod +x cups-config
 
index cbfa9d328e9fe434a8bd29d6eca910469f25570b..5003acec90a9c4914e7b310b870249c658a70bc6 100644 (file)
@@ -19,7 +19,7 @@ by Easy Software Products, the creator of CUPS.</P>
 </BLOCKQUOTE>
 
 
-<H2><A NAME="CUPSD">cupsd Configuration</A></H2>
+<H2 CLASS="title"><A NAME="CUPSD">cupsd Configuration</A></H2>
 
 <P><CODE>cupsd(8)</CODE> is configured by default to show
 printers shared by other systems and only allow local access to
@@ -31,8 +31,49 @@ Basic authentication with membership in the group
 (<VAR>@CUPS_DEFAULT_DOMAINSOCKET@</VAR>) or "localhost"
 (127.0.0.1).</P>
 
+<H3><A NAME="SETTINGS">Settings</A></H3>
+
+<DIV CLASS="table"><TABLE WIDTH="80%">
+<TR>
+       <TH>Directive</TH>
+       <TH>Value</TH>
+</TR>
+<TR>
+       <TD><CODE><A HREF="cupsd-conf-reference.html#Browsing">Browsing</A></CODE></TD>
+       <TD><CODE>@CUPS_BROWSING@</CODE></TD>
+</TR>
+<TR>
+       <TD><CODE><A HREF="cupsd-conf-reference.html#BrowseLocalProtocols">BrowseLocalProtocols</A></CODE></TD>
+       <TD><CODE>@CUPS_BROWSE_LOCAL_PROTOCOLS@</CODE></TD>
+</TR>
+<TR>
+       <TD><CODE><A HREF="cupsd-conf-reference.html#BrowseRemoteProtocols">BrowseRemoteProtocols</A></CODE></TD>
+       <TD><CODE>@CUPS_BROWSE_REMOTE_PROTOCOLS@</CODE></TD>
+</TR>
+<TR>
+       <TD><CODE><A HREF="cupsd-conf-reference.html#BrowseShortNames">BrowseShortNames</A></CODE></TD>
+       <TD><CODE>@CUPS_BROWSE_SHORT_NAMES@</CODE></TD>
+</TR>
+<TR>
+       <TD><CODE><A HREF="cupsd-conf-reference.html#ConfigFilePerm">ConfigFilePerm</A></CODE></TD>
+       <TD><CODE>@CUPS_CONFIG_FILE_PERM@</CODE></TD>
+</TR>
+<TR>
+       <TD><CODE><A HREF="cupsd-conf-reference.html#DefaultShared">DefaultShared</A></CODE></TD>
+       <TD><CODE>@CUPS_DEFAULT_SHARED@</CODE></TD>
+</TR>
+<TR>
+       <TD><CODE><A HREF="cupsd-conf-reference.html#ImplicitClasses">ImplicitClasses</A></CODE></TD>
+       <TD><CODE>@CUPS_IMPLICIT_CLASSES@</CODE></TD>
+</TR>
+<TR>
+       <TD><CODE><A HREF="cupsd-conf-reference.html#LogFilePerm">LogFilePerm</A></CODE></TD>
+       <TD><CODE>@CUPS_LOG_FILE_PERM@</CODE></TD>
+</TR>
+</TABLE></DIV>
 
-<H2><A NAME="DIRECTORIES">Directories</A></H2>
+
+<H2 CLASS="title"><A NAME="DIRECTORIES">Directories</A></H2>
 
 <DIV CLASS="table"><TABLE WIDTH="80%">
 <TR>
@@ -123,6 +164,5 @@ Basic authentication with membership in the group
 </TR>
 </TABLE></DIV>
 
-
 </BODY>
 </HTML>
index d9b42011d4db3e524f570fcacaa6090d879a42ce..89124846f5c5bec982c7b4d8b7659da52c617967 100644 (file)
@@ -392,7 +392,7 @@ cupsdReadConfiguration(void)
   * Numeric options...
   */
 
-  ConfigFilePerm      = 0640; /* TODO: Add configure option */
+  ConfigFilePerm      = CUPS_DEFAULT_CONFIG_FILE_PERM;
   DefaultAuthType     = AUTH_BASIC;
   JobRetryLimit       = 5;
   JobRetryInterval    = 300;
@@ -401,13 +401,13 @@ cupsdReadConfiguration(void)
   FilterLimit         = 0;
   FilterNice          = 0;
   HostNameLookups     = FALSE;
-  ImplicitClasses     = TRUE;
+  ImplicitClasses     = CUPS_DEFAULT_IMPLICIT_CLASSES;
   ImplicitAnyClasses  = FALSE;
   HideImplicitMembers = TRUE;
   KeepAlive           = TRUE;
   KeepAliveTimeout    = DEFAULT_KEEPALIVE;
   ListenBackLog       = SOMAXCONN;
-  LogFilePerm         = 0644;
+  LogFilePerm         = CUPS_DEFAULT_LOG_FILE_PERM;
   LogLevel            = CUPSD_LOG_ERROR;
   MaxClients          = 100;
   MaxClientsPerHost   = 0;
@@ -421,12 +421,12 @@ cupsdReadConfiguration(void)
 
   BrowseInterval        = DEFAULT_INTERVAL;
   BrowsePort            = ippPort();
-  BrowseLocalProtocols  = BROWSE_CUPS;
-  BrowseRemoteProtocols = BROWSE_CUPS;
-  BrowseShortNames      = TRUE;
+  BrowseLocalProtocols  = BROWSE_CUPS; /* TODO: Use configure option */
+  BrowseRemoteProtocols = BROWSE_CUPS; /* TODO: Use configure option */
+  BrowseShortNames      = CUPS_DEFAULT_BROWSE_SHORT_NAMES;
   BrowseTimeout         = DEFAULT_TIMEOUT;
-  Browsing              = TRUE;
-  DefaultShared         = TRUE; /* TODO: Add configure option */
+  Browsing              = CUPS_DEFAULT_BROWSING;
+  DefaultShared         = CUPS_DEFAULT_DEFAULT_SHARED;
 
   cupsdClearString(&BrowseLocalOptions);
   cupsdClearString(&BrowseRemoteOptions);
index e86e7003cf1ef9019cfab1de69c7139aa6d89326..00fd870c4c319e2f2d3e5b9ef68b3eb3e301f532 100644 (file)
@@ -1702,59 +1702,61 @@ cupsdStartBrowsing(void)
   if (!Browsing || !(BrowseLocalProtocols | BrowseRemoteProtocols))
     return;
 
-  if (((BrowseLocalProtocols | BrowseRemoteProtocols) & BROWSE_CUPS) &&
-      BrowseSocket < 0)
+  if ((BrowseLocalProtocols | BrowseRemoteProtocols) & BROWSE_CUPS)
   {
-   /*
-    * Create the broadcast socket...
-    */
-
-    if ((BrowseSocket = socket(AF_INET, SOCK_DGRAM, 0)) < 0)
+    if (BrowseSocket < 0)
     {
-      cupsdLogMessage(CUPSD_LOG_ERROR,
-                      "cupsdStartBrowsing: Unable to create broadcast socket - %s.",
-                     strerror(errno));
-      BrowseLocalProtocols &= ~BROWSE_CUPS;
-      BrowseRemoteProtocols &= ~BROWSE_CUPS;
-      return;
-    }
+     /*
+      * Create the broadcast socket...
+      */
 
-   /*
-    * Set the "broadcast" flag...
-    */
+      if ((BrowseSocket = socket(AF_INET, SOCK_DGRAM, 0)) < 0)
+      {
+       cupsdLogMessage(CUPSD_LOG_ERROR,
+                       "cupsdStartBrowsing: Unable to create broadcast "
+                       "socket - %s.", strerror(errno));
+       BrowseLocalProtocols &= ~BROWSE_CUPS;
+       BrowseRemoteProtocols &= ~BROWSE_CUPS;
+       return;
+      }
 
-    val = 1;
-    if (setsockopt(BrowseSocket, SOL_SOCKET, SO_BROADCAST, &val, sizeof(val)))
-    {
-      cupsdLogMessage(CUPSD_LOG_ERROR,
-                      "cupsdStartBrowsing: Unable to set broadcast mode - %s.",
-                     strerror(errno));
+     /*
+      * Bind the socket to browse port...
+      */
+
+      memset(&addr, 0, sizeof(addr));
+      addr.sin_addr.s_addr = htonl(INADDR_ANY);
+      addr.sin_family      = AF_INET;
+      addr.sin_port        = htons(BrowsePort);
+
+      if (bind(BrowseSocket, (struct sockaddr *)&addr, sizeof(addr)))
+      {
+       cupsdLogMessage(CUPSD_LOG_ERROR,
+                       "cupsdStartBrowsing: Unable to bind broadcast "
+                       "socket - %s.", strerror(errno));
 
 #ifdef WIN32
-      closesocket(BrowseSocket);
+       closesocket(BrowseSocket);
 #else
-      close(BrowseSocket);
+       close(BrowseSocket);
 #endif /* WIN32 */
 
-      BrowseSocket = -1;
-      BrowseLocalProtocols &= ~BROWSE_CUPS;
-      BrowseRemoteProtocols &= ~BROWSE_CUPS;
-      return;
+       BrowseSocket = -1;
+       BrowseLocalProtocols &= ~BROWSE_CUPS;
+       BrowseRemoteProtocols &= ~BROWSE_CUPS;
+       return;
+      }
     }
 
    /*
-    * Bind the socket to browse port...
+    * Set the "broadcast" flag...
     */
 
-    memset(&addr, 0, sizeof(addr));
-    addr.sin_addr.s_addr = htonl(INADDR_ANY);
-    addr.sin_family      = AF_INET;
-    addr.sin_port        = htons(BrowsePort);
-
-    if (bind(BrowseSocket, (struct sockaddr *)&addr, sizeof(addr)))
+    val = 1;
+    if (setsockopt(BrowseSocket, SOL_SOCKET, SO_BROADCAST, &val, sizeof(val)))
     {
       cupsdLogMessage(CUPSD_LOG_ERROR,
-                      "cupsdStartBrowsing: Unable to bind broadcast socket - %s.",
+                      "cupsdStartBrowsing: Unable to set broadcast mode - %s.",
                      strerror(errno));
 
 #ifdef WIN32
similarity index 98%
rename from templates/header.tmpl
rename to templates/header.tmpl.in
index 7f5ab2375f6807615d88754dc5f9462c663dc852..bba6e90c20104f77c6623d00b6390fe346b6355d 100644 (file)
@@ -2,7 +2,7 @@
 <HTML>
 <HEAD>
        <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=utf-8">
-       <TITLE>{title} - {cups_version}</TITLE>
+       <TITLE>{title} - @CUPS_VERSION@</TITLE>
        <!-- Prevent caching of CGI content -->
        <META HTTP-EQUIV="Expires" CONTENT="now">
        <META HTTP-EQUIV="Pragma" CONTENT="no-cache"> 
index d96e9f472cfd321d4b88af3bfbfa377858788453..8729d53cf9d75840b8e5bb3662747921bc30e267 100755 (executable)
@@ -25,10 +25,6 @@ rm -rf $pkgdir
 mkdir -p $pkgdir/Package
 mkdir -p $pkgdir/Resources
 
-# Install CUPS into the Package directory...
-#make INSTALL=$topdir/install-sh BUILDROOT=$pkgdir/Package install
-make BUILDROOT=$pkgdir/Package install
-
 # Install resource files into the Resources directory...
 echo Installing resource files...
 cp packaging/LICENSE.rtf $pkgdir/Resources/ReadMe.rtf
@@ -56,6 +52,12 @@ sed -e '1,$s/@CUPS_VERSION@/1.2svn-r'$rev'/g' \
        <packaging/cups-info.plist.in >packaging/cups-info.plist
 sed -e '1,$s/@CUPS_VERSION@/1.2svn-r'$rev'/g' \
        <doc/index.html.in >doc/index.html
+sed -e '1,$s/@CUPS_VERSION@/1.2svn-r'$rev'/g' \
+       <templates/header.tmpl.in >templates/header.tmpl
+
+# Install CUPS into the Package directory...
+#make INSTALL=$topdir/install-sh BUILDROOT=$pkgdir/Package install
+make BUILDROOT=$pkgdir/Package install
 
 # Figure out where PackageMaker is installled...
 if test -d /Developer/Applications/Utilities/PackageMaker.app; then