Author: pierre
Date: Thu May 1 00:26:12 2014
New Revision: 2886
Log:
Patch for disabling the dependency on avahi for cups
Added:
trunk/cups/cups-1.7.2-avahi_optional-1.patch
Added: trunk/cups/cups-1.7.2-avahi_optional-1.patch
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ trunk/cups/cups-1.7.2-avahi_optional-1.patch Thu May 1 00:26:12
2014 (r2886)
@@ -0,0 +1,186 @@
+Submitted By: Pierre Labastie <pierre at higgs dot linuxfromscratch
dot com>
+Date: 2014-04-30
+Initial Package Version: 1.7.2
+Upstream Status: Submitted
+Origin: Ferran Selles in cups bug tracker
+Description: Remove dependency on avahi for CUPS
+
+--- a/scheduler/dirsvc.c 2014-04-24 16:45:32.000000000 +0200
++++ b/scheduler/dirsvc.c 2014-04-24 16:21:44.000000000 +0200
+@@ -50,6 +50,9 @@ static int get_hostconfig(const char *n
+ static void update_lpd(int onoff);
+ static void update_smb(int onoff);
+
++static void deregister_all_printers(int from_callback);
++static void register_all_printers(int from_callback);
++
+
+ #if defined(HAVE_DNSSD) || defined(HAVE_AVAHI)
+ # ifdef __APPLE__
+@@ -60,12 +63,10 @@ static cupsd_txt_t dnssdBuildTxtRecord(c
+ # ifdef HAVE_AVAHI
+ static void dnssdClientCallback(AvahiClient *c, AvahiClientState
state, void *userdata);
+ # endif /* HAVE_AVAHI */
+-static void dnssdDeregisterAllPrinters(int from_callback);
+ static void dnssdDeregisterInstance(cupsd_srv_t *srv, int
from_callback);
+ static void dnssdDeregisterPrinter(cupsd_printer_t *p, int
clear_name, int from_callback);
+ static const char *dnssdErrorString(int error);
+ static void dnssdFreeTxtRecord(cupsd_txt_t *txt);
+-static void dnssdRegisterAllPrinters(int from_callback);
+ # ifdef HAVE_DNSSD
+ static void dnssdRegisterCallback(DNSServiceRef sdRef,
+ DNSServiceFlags flags,
+@@ -241,7 +242,7 @@ cupsdStartBrowsing(void)
+ * Register the individual printers
+ */
+
+- dnssdRegisterAllPrinters(0);
++ register_all_printers(0);
+ }
+
+
+@@ -259,7 +260,7 @@ cupsdStopBrowsing(void)
+ * De-register the individual printers
+ */
+
+- dnssdDeregisterAllPrinters(0);
++ deregister_all_printers(0);
+
+ /*
+ * Shut down browsing sockets...
+@@ -540,7 +541,7 @@ dnssdClientCallback(
+ * Register the individual printers
+ */
+
+- dnssdRegisterAllPrinters(1);
++ register_all_printers(1);
+ break;
+
+ case AVAHI_CLIENT_FAILURE:
+@@ -552,7 +553,7 @@ dnssdClientCallback(
+ * Unregister everything and close the client...
+ */
+
+- dnssdDeregisterAllPrinters(1);
++ deregister_all_printers(1);
+ dnssdDeregisterInstance(&WebIFSrv, 1);
+ avahi_client_free(DNSSDClient);
+ DNSSDClient = NULL;
+@@ -592,28 +593,6 @@ dnssdClientCallback(
+
+
+ /*
+- * 'dnssdDeregisterAllPrinters()' - Deregister all printers.
+- */
+-
+-static void
+-dnssdDeregisterAllPrinters(
+- int from_callback) /* I - Deregistering because of
callback? */
+-{
+- cupsd_printer_t *p; /* Current printer */
+-
+-
+- if (!DNSSDMaster)
+- return;
+-
+- for (p = (cupsd_printer_t *)cupsArrayFirst(Printers);
+- p;
+- p = (cupsd_printer_t *)cupsArrayNext(Printers))
+- if (!(p->type & (CUPS_PRINTER_REMOTE | CUPS_PRINTER_SCANNER)))
+- dnssdDeregisterPrinter(p, 1, from_callback);
+-}
+-
+-
+-/*
+ * 'dnssdDeregisterInstance()' - Deregister a DNS-SD service instance.
+ */
+
+@@ -819,27 +798,6 @@ dnssdFreeTxtRecord(cupsd_txt_t *txt) /*
+
+
+ /*
+- * 'dnssdRegisterAllPrinters()' - Register all printers.
+- */
+-
+-static void
+-dnssdRegisterAllPrinters(int from_callback) /* I - Called from callback? */
+-{
+- cupsd_printer_t *p; /* Current printer */
+-
+-
+- if (!DNSSDMaster)
+- return;
+-
+- for (p = (cupsd_printer_t *)cupsArrayFirst(Printers);
+- p;
+- p = (cupsd_printer_t *)cupsArrayNext(Printers))
+- if (!(p->type & (CUPS_PRINTER_REMOTE | CUPS_PRINTER_SCANNER)))
+- dnssdRegisterPrinter(p, from_callback);
+-}
+-
+-
+-/*
+ * 'dnssdRegisterCallback()' - DNSServiceRegister callback.
+ */
+
+@@ -1775,5 +1733,60 @@ update_smb(int onoff) /* I - 1 = turn
+
+
+ /*
++ * 'deregister_all_printers()' - Deregister all printers.
++ */
++
++static void
++deregister_all_printers(
++ int from_callback) /* I - Deregistering because of
callback? */
++{
++ cupsd_printer_t *p; /* Current printer */
++
++
++#if defined(HAVE_DNSSD) || defined(HAVE_AVAHI)
++ if (!DNSSDMaster)
++ return;
++#endif /* HAVE_DNSSD || HAVE_AVAHI */
++
++ for (p = (cupsd_printer_t *)cupsArrayFirst(Printers);
++ p;
++ p = (cupsd_printer_t *)cupsArrayNext(Printers))
++ if (!(p->type & (CUPS_PRINTER_REMOTE | CUPS_PRINTER_SCANNER)))
++#if defined(HAVE_DNSSD) || defined(HAVE_AVAHI)
++ dnssdDeregisterPrinter(p, 1, from_callback);
++#else
++ cupsdDeregisterPrinter(p, 1);
++#endif /* HAVE_DNSSD || HAVE_AVAHI */
++}
++
++
++/*
++ * 'register_all_printers()' - Register all printers.
++ */
++
++static void
++register_all_printers(int from_callback) /* I - Called from callback? */
++{
++ cupsd_printer_t *p; /* Current printer */
++
++
++#if defined(HAVE_DNSSD) || defined(HAVE_AVAHI)
++ if (!DNSSDMaster)
++ return;
++#endif /* HAVE_DNSSD || HAVE_AVAHI */
++
++ for (p = (cupsd_printer_t *)cupsArrayFirst(Printers);
++ p;
++ p = (cupsd_printer_t *)cupsArrayNext(Printers))
++ if (!(p->type & (CUPS_PRINTER_REMOTE | CUPS_PRINTER_SCANNER)))
++#if defined(HAVE_DNSSD) || defined(HAVE_AVAHI)
++ dnssdRegisterPrinter(p, from_callback);
++#else
++ cupsdRegisterPrinter(p);
++#endif /* HAVE_DNSSD || HAVE_AVAHI */
++}
++
++
++/*
+ * End of "$Id: dirsvc.c 11688 2014-03-05 21:11:32Z msweet $".
+ */
--
http://lists.linuxfromscratch.org/listinfo/patches
FAQ: http://www.linuxfromscratch.org/blfs/faq.html
Unsubscribe: See the above information page