[arch-commits] CVS update of extra/network/gnomemeeting (3 files)
Jan de Groot
jgc at archlinux.org
Sun Apr 22 16:31:04 UTC 2007
Date: Sunday, April 22, 2007 @ 12:31:04
Author: jgc
Path: /home/cvs-extra/extra/network/gnomemeeting
Removed: PKGBUILD (1.18) gnomemeeting-bonjour-support.patch (1.1)
gnomemeeting.install (1.5)
Kill, crush and destroy.
------------------------------------+
PKGBUILD | 32
gnomemeeting-bonjour-support.patch | 1295 -----------------------------------
gnomemeeting.install | 51 -
3 files changed, 1378 deletions(-)
Index: extra/network/gnomemeeting/PKGBUILD
diff -u extra/network/gnomemeeting/PKGBUILD:1.18 extra/network/gnomemeeting/PKGBUILD:removed
--- extra/network/gnomemeeting/PKGBUILD:1.18 Fri Feb 10 17:06:52 2006
+++ extra/network/gnomemeeting/PKGBUILD Sun Apr 22 12:31:04 2007
@@ -1,32 +0,0 @@
-# $Id: PKGBUILD,v 1.18 2006/02/10 22:06:52 jgc Exp $
-# Maintainer: Jan de Groot <jgc at archlinux.org>
-# Contributer: Jason Chu <jason at archlinux.org>
-
-pkgname=gnomemeeting
-pkgver=1.2.2
-pkgrel=3
-force=y
-pkgdesc="A VoIP client"
-depends=('openh323>=1.15.6-2' 'evolution-data-server>=1.4.2.1-2')
-makedepends=(intltool pkgconfig)
-source=(http://ftp.gnome.org/pub/GNOME/sources/gnomemeeting/1.2/gnomemeeting-${pkgver}.tar.bz2)
-install=gnomemeeting.install
-url="http://www.gnomemeeting.org"
-md5sums=(d31506651c6d86764ed66b7b9f711809)
-
-build() {
- [ -z "${GNOMEDIR}" ] && . /etc/profile.d/gnome.sh
-
- cd ${startdir}/src/gnomemeeting-${pkgver}
- find . -name Makefile.in -exec sed -i -e 's/-scrollkeeper-update.*//' {} \;
- if [ -f omf.make ]; then
- sed -i -e 's/-scrollkeeper-update.*//' omf.make
- fi
-
- export CFLAGS="${CFLAGS} -DLDAP_DEPRECATED"
- export CXXFLAGS="${CXXFLAGS} -DLDAP_DEPRECATED"
- #Disable zeroconf until gnomemeeting supports native Avahi
- ./configure --prefix=/opt/gnome --disable-howl
- make || return 1
- make GCONF_DISABLE_MAKEFILE_SCHEMA_INSTALL=1 DESTDIR=${startdir}/pkg install
-}
Index: extra/network/gnomemeeting/gnomemeeting-bonjour-support.patch
diff -u extra/network/gnomemeeting/gnomemeeting-bonjour-support.patch:1.1 extra/network/gnomemeeting/gnomemeeting-bonjour-support.patch:removed
--- extra/network/gnomemeeting/gnomemeeting-bonjour-support.patch:1.1 Fri Sep 23 07:54:36 2005
+++ extra/network/gnomemeeting/gnomemeeting-bonjour-support.patch Sun Apr 22 12:31:04 2007
@@ -1,1295 +0,0 @@
-? autom4te.cache
-? depcomp
-? gnomemeeting-bonjour-support.patch
-? gnomemeeting.diff
-? gnomemeeting.schemas
-? gnomemeeting.schemas.in
-? gnomemeeting.service
-? stamp-h1
-? help/Makefile
-? help/Makefile.in
-? help/C/Makefile
-? help/C/Makefile.in
-? help/C/gnomemeeting-C.omf.out
-? help/C/omf_timestamp
-? help/fr/Makefile
-? help/fr/Makefile.in
-? help/fr/gnomemeeting-fr.omf.out
-? help/fr/omf_timestamp
-? lib/Makefile
-? lib/Makefile.in
-? lib/gm_events_marshalers.h
-? lib/about/Makefile
-? lib/about/Makefile.in
-? lib/contacts/Makefile
-? lib/contacts/Makefile.in
-? lib/contacts/gm_contacts-zeroconf-bonjour.cpp
-? lib/contacts/gm_contacts-zeroconf-bonjour.h
-? lib/druid/Makefile
-? lib/druid/Makefile.in
-? lib/widgets/Makefile
-? lib/widgets/Makefile.in
-? lib/xdap/Makefile
-? lib/xdap/Makefile.in
-? man/Makefile
-? man/Makefile.in
-? pixmaps/inline_emoticons.h
-? pixmaps/inlines.h
-? src/gnomemeeting-config-tool
-? xdap_data/Makefile
-? xdap_data/Makefile.in
-Index: configure.in
-===================================================================
-RCS file: /cvs/gnome/gnomemeeting/configure.in,v
-retrieving revision 1.329
-diff -u -p -r1.329 configure.in
---- configure.in 18 Jul 2005 15:45:08 -0000 1.329
-+++ configure.in 8 Aug 2005 23:52:23 -0000
-@@ -449,13 +449,72 @@ else
- AC_MSG_RESULT([yes])
- fi
-
-+ZEROCONF="disabled"
-+
- if test x"${disable_howl}" = xno ; then
- PKG_CHECK_MODULES(HOWL, howl >= 0.9.7)
-- GNOMEMEETING_CFLAGS="$GNOMEMEETING_CFLAGS $HOWL_CFLAGS -DHAS_HOWL"
-+ GNOMEMEETING_CFLAGS="$GNOMEMEETING_CFLAGS $HOWL_CFLAGS -DHAS_HOWL -DHAS_ZEROCONF"
- GNOMEMEETING_LIBS="$GNOMEMEETING_LIBS $HOWL_LIBS"
-+ ZEROCONF="howl"
- fi
- AM_CONDITIONAL(HAS_HOWL, test x"${disable_howl}" = xno)
-
-+dnl #########################################################################
-+dnl Check for Bonjour
-+dnl #########################################################################
-+AC_ARG_ENABLE(bonjour,
-+ [ --enable-bonjour Enable the Bonjour component.],
-+ enable_bonjour=yes, enable_bonjour=no)
-+
-+AC_MSG_CHECKING(whether the Bonjour component should be compiled in)
-+if test x"${enable_bonjour}" = xno ; then
-+ AC_MSG_RESULT([no])
-+else
-+ AC_MSG_RESULT([yes])
-+fi
-+
-+if test x"${enable_bonjour}" = xyes ; then
-+ if test x"${disable_howl}" = xno ; then
-+ AC_MSG_ERROR([*** Can't use both howl and bonjour at the same time. Please pick one only. ***])
-+ fi
-+
-+ CPPFLAGS_save="$CPPFLAGS"
-+ LDFLAGS_save="$LDFLAGS"
-+
-+ AC_ARG_WITH(bonjour-includes, [ --with-bonjour-includes=PREFIX Location of Bonjour includes.],
-+ with_bonjour_includes="$withval", with_bonjour_includes="/usr/include")
-+
-+ CPPFLAGS="$CPPFLAGS -I$with_bonjour_includes"
-+ AC_CHECK_HEADER(dns_sd.h, , AC_MSG_ERROR([Unable to find Bonjour includes]))
-+ CPPFLAGS="$CPPFLAGS_save"
-+
-+ if test x$with_bonjour_includes != x/usr/include; then
-+ BONJOUR_CFLAGS="-I$with_bonjour_includes"
-+ else
-+ BONJOUR_CFLAGS=""
-+ fi
-+
-+ AC_ARG_WITH(bonjour-libs, [ --with-bonjour-libs=PREFIX Location of Bonjour libs.],
-+ with_bonjour_libs="$withval", with_bonjour_libs="/usr/lib")
-+
-+ LDFLAGS="$LDFLAGS -L$with_bonjour_libs -ldns_sd"
-+ AC_TRY_LINK_FUNC(DNSServiceResolve, , AC_MSG_ERROR([Unable to find Bonjour libs]))
-+ LDFLAGS="$LDFLAGS_save"
-+
-+ if test x$with_bonjour_libs != x/usr/lib; then
-+ BONJOUR_LIBS="-L$with_bonjour_libs -ldns_sd"
-+ else
-+ BONJOUR_LIBS="-ldns_sd"
-+ fi
-+
-+ ZEROCONF="bonjour"
-+
-+ GNOMEMEETING_CFLAGS="$GNOMEMEETING_CFLAGS $BONJOUR_CFLAGS -DHAS_BONJOUR -DHAS_ZEROCONF"
-+ GNOMEMEETING_LIBS="$GNOMEMEETING_LIBS $BONJOUR_LIBS"
-+fi
-+AM_CONDITIONAL(HAS_BONJOUR, test x"${enable_bonjour}" = xyes)
-+
-+AM_CONDITIONAL(HAS_ZEROCONF, test x"${disable_howl}" = xno -o x"${enable_bonjour}" = xyes)
-
- dnl ###########################################################################
- dnl The various CFLAGS are merged into GNOMEMEETING_CFLAGS and
-@@ -547,7 +606,7 @@ echo ""
- echo " Quicknet support : $HAS_IXJ"
- echo " SDL Fullscreen support : $HAS_SDL"
- echo " DBUS support : $DBUS"
--echo " Zeroconf support : $HOWL"
-+echo " Zeroconf support : $ZEROCONF"
- echo ""
- echo " OS Type : $target_os"
- echo " Machine Type : $target_cpu"
-Index: lib/contacts/Makefile.am
-===================================================================
-RCS file: /cvs/gnome/gnomemeeting/lib/contacts/Makefile.am,v
-retrieving revision 1.12
-diff -u -p -r1.12 Makefile.am
---- lib/contacts/Makefile.am 26 Dec 2004 14:45:59 -0000 1.12
-+++ lib/contacts/Makefile.am 8 Aug 2005 23:52:23 -0000
-@@ -21,7 +21,7 @@ else
- libgmcontacts_la_SOURCES += gm_contacts-eds.cpp
- endif
-
--if HAS_HOWL
-+if HAS_ZEROCONF
- libgmcontacts_la_SOURCES += gm_contacts-zeroconf.cpp gm_contacts-zeroconf.h
- endif
-
-Index: lib/contacts/gm_contacts-remote.cpp
-===================================================================
-RCS file: /cvs/gnome/gnomemeeting/lib/contacts/gm_contacts-remote.cpp,v
-retrieving revision 1.26
-diff -u -p -r1.26 gm_contacts-remote.cpp
---- lib/contacts/gm_contacts-remote.cpp 14 Nov 2004 18:43:44 -0000 1.26
-+++ lib/contacts/gm_contacts-remote.cpp 8 Aug 2005 23:52:23 -0000
-@@ -49,7 +49,7 @@
- #define _GM_CONTACTS_H_INSIDE__
- #include "gm_contacts-remote.h"
- #include "gm_contacts-ldap.h"
--#ifdef HAS_HOWL
-+#ifdef HAS_ZEROCONF
- #include "gm_contacts-zeroconf.h"
- #endif
- #undef _GM_CONTACTS_H_INSIDE__
-@@ -63,7 +63,7 @@ gnomemeeting_get_remote_addressbooks ()
-
- l = gnomemeeting_get_ldap_addressbooks ();
-
--#ifdef HAS_HOWL
-+#ifdef HAS_ZEROCONF
- GSList *h = NULL;
-
- h = gnomemeeting_get_zero_addressbooks ();
-@@ -91,7 +91,7 @@ gnomemeeting_remote_addressbook_get_cont
- url,
- categorie,
- speeddial);
--#ifdef HAS_HOWL /* If it is not an ldap addressbook, then it is a ZC one */
-+#ifdef HAS_ZEROCONF /* If it is not an ldap addressbook, then it is a ZC one */
- else
- return gnomemeeting_zero_addressbook_get_contacts (addressbook,
- nbr,
-@@ -252,7 +252,7 @@ gnomemeeting_remote_addressbook_is_edita
- void
- gnomemeeting_remote_addressbook_init ()
- {
--#ifdef HAS_HOWL
-+#ifdef HAS_ZEROCONF
- gnomemeeting_zero_addressbook_init ();
- #endif
- }
-Index: lib/contacts/gm_contacts-zeroconf.cpp
-===================================================================
-RCS file: /cvs/gnome/gnomemeeting/lib/contacts/gm_contacts-zeroconf.cpp,v
-retrieving revision 1.9
-diff -u -p -r1.9 gm_contacts-zeroconf.cpp
---- lib/contacts/gm_contacts-zeroconf.cpp 15 Nov 2004 21:10:26 -0000 1.9
-+++ lib/contacts/gm_contacts-zeroconf.cpp 8 Aug 2005 23:52:24 -0000
-@@ -37,16 +37,20 @@
- */
-
-
--#include <howl.h>
-+#ifdef HAS_BONJOUR
-+# include <dns_sd.h>
-+#else
-+# include <howl.h>
-
- /* HOWL bug */
--#undef PACKAGE
--#undef PACKAGE_STRING
--#undef PACKAGE_NAME
--#undef PACKAGE_TARNAME
--#undef PACKAGE_VERSION
--#undef PACKAGE_BUGREPORT
--#undef VERSION
-+# undef PACKAGE
-+# undef PACKAGE_STRING
-+# undef PACKAGE_NAME
-+# undef PACKAGE_TARNAME
-+# undef PACKAGE_VERSION
-+# undef PACKAGE_BUGREPORT
-+# undef VERSION
-+#endif
-
- #include <stdio.h>
-
-@@ -78,6 +82,46 @@
- static gint compare_func (gconstpointer,
- gconstpointer);
-
-+#ifdef HAS_BONJOUR
-+
-+/* DESCRIPTION : Callback function used when the zeroconf service
-+ * is resolved.
-+ * BEHAVIOR : Returns ok.
-+ * This function appends the new contact in list this->contacts
-+ * PRE : extra is (void *). It can be used to configure
-+ * the function.
-+ */
-+static void resolve_reply (DNSServiceRef session,
-+ DNSServiceFlags flags,
-+ uint32_t interface_index,
-+ DNSServiceErrorType error_code,
-+ const char *full_name,
-+ const char *host_name,
-+ uint16_t port,
-+ uint16_t text_record_len,
-+ const char *text_record,
-+ void *context);
-+
-+/* DESCRIPTION : /
-+ * BEHAVIOR : Return ok.
-+ * Callback function used when the zeroconf service
-+ * is browsed.
-+ * This function removes the old contact of the list
-+ * this->contacts.
-+ * This function resolves the new contact.
-+ * PRE : extra is (void *). It can be used to configure
-+ * the function.
-+ */
-+static void browse_reply (DNSServiceRef session,
-+ DNSServiceFlags flags,
-+ uint32_t interface_index,
-+ DNSServiceErrorType error_code,
-+ const char *name,
-+ const char *type,
-+ const char *domain,
-+ void *context);
-+
-+#else
-
- /* DESCRIPTION : Callback function used when the zeroconf service
- * is resolved.
-@@ -118,6 +162,7 @@ static sw_result HOWL_API browse_reply (
- sw_const_string domain,
- sw_opaque_t extra);
-
-+#endif
-
- /* Callbacks: Implementation */
- gint
-@@ -133,6 +178,166 @@ compare_func (gconstpointer a,
- return (strcmp (contact1->fullname, contact2->fullname));
- }
-
-+#ifdef HAS_BONJOUR
-+
-+static void
-+resolve_reply (DNSServiceRef session,
-+ DNSServiceFlags flags,
-+ uint32_t interface_index,
-+ DNSServiceErrorType error_code,
-+ const char *full_name,
-+ const char *host_name,
-+ uint16_t port,
-+ uint16_t text_record_len,
-+ const char *text_record,
-+ void *context)
-+{
-+ gint i;
-+
-+ GMZeroconfBrowser *zero = (GMZeroconfBrowser *) context;
-+
-+ GmContact *contact = NULL;
-+ GSList *tmp_list = NULL;
-+
-+ if (error_code != kDNSServiceErr_NoError)
-+ return;
-+
-+ /* Init of the new contact with the service name that we just discovered */
-+ contact = gm_contact_new ();
-+ contact->fullname = g_strdup (host_name);
-+
-+
-+ /* Try to find if the service name that we discovered
-+ * is already in our contact list */
-+ zero->mutex.Wait ();
-+ tmp_list = g_slist_find_custom (zero->contacts,
-+ contact,
-+ compare_func);
-+
-+
-+ /* If tmp_list is not NULL it means that the service name was
-+ * in the contact list */
-+ if (tmp_list && tmp_list->data) {
-+
-+ gm_contact_delete ((GmContact *) tmp_list->data);
-+ tmp_list->data = contact;
-+ }
-+
-+ /* creation of the call url */
-+ contact->url =
-+ g_strdup_printf("h323:%s:%d",
-+ host_name,
-+ g_ntohs (port));
-+ zero->mutex.Signal ();
-+
-+ contact->state = 0;
-+
-+ for (i = 0; i < TXTRecordGetCount (text_record_len, text_record); i++) {
-+ char key [256];
-+ const char *value;
-+ uint8_t value_len;
-+
-+ if (TXTRecordGetItemAtIndex (text_record_len, text_record,
-+ i, 256, key, &value_len, (const void **) &value) != kDNSServiceErr_NoError)
-+ continue;
-+
-+ if (value_len < 1 || !value)
-+ continue;
-+
-+ if (!strcasecmp (key, "email"))
-+ contact->email = g_strndup (value, value_len);
-+ if (!strcasecmp (key, "location"))
-+ contact->location = g_strndup (value, value_len);
-+ if (!strcasecmp (key, "comment"))
-+ contact->comment = g_strndup (value, value_len);
-+ if (!strcasecmp (key, "software"))
-+ contact->software = g_strndup (value, value_len);
-+ if (!strcasecmp (key, "state"))
-+ {
-+ gchar *temp_str = g_strndup (value, value_len);
-+ contact->state = (atoi ((const char *) temp_str) == 2 ? 1 : 0);
-+ g_free (temp_str);
-+ }
-+ }
-+
-+ /* If the list wasn't NULL it means that we found the contact
-+ * so we just updated his info (email/location etc...) but we don't add it
-+ * because it was already in the list.
-+ */
-+ if (tmp_list)
-+ return;
-+
-+ /* Add the new contact in the contacts list.
-+ * The mutex preserve contacts from concurent access */
-+ zero->mutex.Wait();
-+ zero->contacts = g_slist_append (zero->contacts, (gpointer) contact);
-+ zero->mutex.Signal();
-+}
-+
-+static void
-+browse_reply (DNSServiceRef session,
-+ DNSServiceFlags flags,
-+ uint32_t interface_index,
-+ DNSServiceErrorType error_code,
-+ const char *name,
-+ const char *type,
-+ const char *domain,
-+ void *context)
-+{
-+ GMZeroconfBrowser *zero = (GMZeroconfBrowser *) context;
-+
-+ GmContact *contact = NULL;
-+ GSList *l = NULL;
-+
-+ if (error_code != kDNSServiceErr_NoError)
-+ return;
-+
-+ if (flags & kDNSServiceFlagsAdd) {
-+ DNSServiceRef *resolve_session;
-+ DNSServiceErrorType res;
-+
-+ /* We discovered a new service,
-+ * we must resolve its IP and TXT record */
-+
-+ resolve_session = g_new (DNSServiceRef, 1);
-+
-+ res = DNSServiceResolve (resolve_session,
-+ 0 /* flags (none needed) */,
-+ 0 /* interface (-1 for local, 0 for all) */,
-+ name,
-+ type,
-+ domain,
-+ resolve_reply,
-+ context);
-+
-+ if (res == kDNSServiceErr_NoError) {
-+ zero->resolve_session_list = g_list_prepend (zero->resolve_session_list, resolve_session);
-+ } else {
-+ g_free (resolve_session);
-+ }
-+ } else {
-+ /* A service dissappeared, we must remove it from the list */
-+ zero->mutex.Wait();
-+ for (l = zero->contacts; l && l->data; l = g_slist_next (l)) {
-+
-+ contact = (GmContact *) l->data;
-+ if (contact && contact->fullname) {
-+
-+ if (!strcmp (contact->fullname, name)) {
-+
-+ zero->contacts =
-+ g_slist_remove (zero->contacts,
-+ (gpointer) contact);
-+ gm_contact_delete (contact);
-+ }
-+ }
-+ }
-+
-+ zero->mutex.Signal();
-+ }
-+}
-+
-+#else
-
- static sw_result HOWL_API
- resolve_reply (sw_discovery discovery,
-@@ -292,6 +497,7 @@ browse_reply (sw_discovery discovery,
- return SW_OKAY;
- }
-
-+#endif
-
- /* The GmContact API function */
- /* We can not do it without this global */
-@@ -457,6 +663,13 @@ void gnomemeeting_zero_addressbook_init
- GMZeroconfBrowser::GMZeroconfBrowser ()
- :PThread (1000, NoAutoDeleteThread)
- {
-+#ifdef HAS_BONJOUR
-+ resolve_session_list = NULL;
-+ is_browsing = FALSE;
-+
-+ Start ();
-+ thread_sync_point.Wait ();
-+#else
- if (sw_discovery_init(&discovery) != SW_OKAY)
- PTRACE (1, "GMZeroconfBrowser: Can't browse!");
-
-@@ -468,16 +681,24 @@ GMZeroconfBrowser::GMZeroconfBrowser ()
- Start ();
- thread_sync_point.Wait ();
- }
-+#endif
- }
-
-
- GMZeroconfBrowser::~GMZeroconfBrowser ()
- {
-+#ifdef HAS_BONJOUR
-+ if (is_browsing) {
-+ is_browsing = FALSE;
-+ DNSServiceRefDeallocate (browse_session);
-+ }
-+#else
- if (discovery) {
-
- sw_discovery_stop_run (discovery);
- sw_discovery_fina (discovery);
- }
-+#endif
-
- g_slist_foreach (contacts, (GFunc) gm_contact_delete, NULL);
- g_slist_free (contacts);
-@@ -489,11 +710,33 @@ GMZeroconfBrowser::~GMZeroconfBrowser ()
- int
- GMZeroconfBrowser::Browse ()
- {
-+#ifdef HAS_BONJOUR
-+ DNSServiceErrorType err;
-+
-+ if (is_browsing)
-+ return 0;
-+
-+ is_browsing = TRUE;
-+
-+ err = DNSServiceBrowse (&browse_session,
-+ 0 /* flags (none needed) */,
-+ 0 /* interface (-1 for local, 0 for all) */,
-+ ZC_H323,
-+ "local",
-+ browse_reply,
-+ this);
-+
-+ if (err == kDNSServiceErr_NoError)
-+ return 0;
-+
-+ return -1;
-+#else
- sw_result err = SW_FALSE;
-
- if (discovery)
- err = sw_discovery_browse (discovery, 0, ZC_H323, NULL,
- browse_reply, this, &browse_id);
-+#endif
-
- return err;
- }
-@@ -531,18 +774,129 @@ GMZeroconfBrowser::GetContacts ()
- void
- GMZeroconfBrowser::Main()
- {
-+#ifdef HAS_BONJOUR
-+ GList *l, *l_next;
-+#endif
-+
- PWaitAndSignal m(quit_mutex);
- thread_sync_point.Signal ();
-
-+#ifdef HAS_BONJOUR
-+ for ( ; is_browsing; ) {
-+ struct timeval tv;
-+ gint n_ready;
-+ fd_set read_fds;
-+ gint high_fd = -1;
-+ gint fd;
-+
-+ FD_ZERO (&read_fds);
-+
-+ /* Listen for browse events */
-+
-+ fd = DNSServiceRefSockFD (browse_session);
-+ if (fd < 0)
-+ break;
-+
-+ FD_SET (fd, &read_fds);
-+ high_fd = MAX (high_fd, fd);
-+
-+ /* Listen for name resolution events */
-+
-+ for (l = resolve_session_list; l; l = g_list_next (l)) {
-+ DNSServiceRef *resolve_session = (DNSServiceRef *) l->data;
-+
-+ fd = DNSServiceRefSockFD (*resolve_session);
-+ if (fd < 0)
-+ continue;
-+
-+ FD_SET (fd, &read_fds);
-+ high_fd = MAX (high_fd, fd);
-+ }
-+
-+ /* Block to listen */
-+
-+ tv.tv_sec = 1;
-+ tv.tv_usec = 0;
-+
-+ n_ready = select (high_fd + 1, &read_fds, NULL, NULL, &tv);
-+
-+ if (n_ready < 1)
-+ continue;
-+
-+ /* Process browse events */
-+
-+ fd = DNSServiceRefSockFD (browse_session);
-+ if (fd < 0)
-+ break;
-+
-+ if (FD_ISSET (fd, &read_fds)) {
-+ DNSServiceErrorType err;
-+
-+ FD_CLR (fd, &read_fds);
-+ err = DNSServiceProcessResult (browse_session);
-+ if (err != kDNSServiceErr_NoError) {
-+ DNSServiceRefDeallocate (browse_session);
-+ break;
-+ }
-+ }
-+
-+ /* Process name resolution events */
-+
-+ for (l = resolve_session_list; l; l = l_next) {
-+ DNSServiceRef *resolve_session = (DNSServiceRef *) l->data;
-+ DNSServiceErrorType err;
-+
-+ l_next = g_list_next (l);
-+
-+ fd = DNSServiceRefSockFD (*resolve_session);
-+ if (fd < 0) {
-+ DNSServiceRefDeallocate (*resolve_session);
-+ resolve_session_list = g_list_delete_link (resolve_session_list, l);
-+ continue;
-+ }
-+
-+ if (!FD_ISSET (fd, &read_fds))
-+ continue;
-+
-+ FD_CLR (fd, &read_fds);
-+ err = DNSServiceProcessResult (*resolve_session);
-+ if (err != kDNSServiceErr_NoError) {
-+ DNSServiceRefDeallocate (*resolve_session);
-+ resolve_session_list = g_list_delete_link (resolve_session_list, l);
-+ }
-+ }
-+ }
-+
-+ /* Free resolution contexts */
-+
-+ for (l = resolve_session_list; l; l = g_list_next (l)) {
-+ DNSServiceRef *resolve_session = (DNSServiceRef *) l->data;
-+ DNSServiceRefDeallocate (*resolve_session);
-+ }
-+
-+ g_list_free (resolve_session_list);
-+
-+ /* Reset to initial state */
-+
-+ resolve_session_list = NULL;
-+ is_browsing = FALSE;
-+
-+#else
- sw_discovery_run (discovery);
-+#endif
- }
-
-
- int
- GMZeroconfBrowser::Start()
- {
-+#ifdef HAS_BONJOUR
-+ Browse ();
-+ Resume ();
-+#else
- if (discovery)
- Resume ();
-+#endif
-
- return 0;
- }
-@@ -551,10 +905,18 @@ GMZeroconfBrowser::Start()
- int
- GMZeroconfBrowser::Stop ()
- {
-+#ifdef HAS_BONJOUR
-+ if (!is_browsing)
-+ return 0;
-+
-+ DNSServiceRefDeallocate (browse_session);
-+ return 0;
-+#else
- sw_result err = SW_FALSE;
-
- if (discovery)
- err = sw_discovery_cancel (discovery, browse_id);
-
- return err;
-+#endif
- }
-Index: lib/contacts/gm_contacts-zeroconf.h
-===================================================================
-RCS file: /cvs/gnome/gnomemeeting/lib/contacts/gm_contacts-zeroconf.h,v
-retrieving revision 1.2
-diff -u -p -r1.2 gm_contacts-zeroconf.h
---- lib/contacts/gm_contacts-zeroconf.h 14 Nov 2004 18:43:44 -0000 1.2
-+++ lib/contacts/gm_contacts-zeroconf.h 8 Aug 2005 23:52:24 -0000
-@@ -46,7 +46,9 @@
- #include <ptlib.h>
- #include <lib/gm_conf.h>
-
--
-+#ifdef HAS_BONJOUR
-+# include <dns_sd.h>
-+#else
- /*
- * Redefine some howl struct because of a bug in howl
- * including config.h that conflish with GM config.h
-@@ -54,6 +56,7 @@
- struct _sw_discovery;
- typedef struct _sw_discovery* sw_discovery;
- typedef unsigned int sw_discovery_oid;
-+#endif
-
- #define PERSONAL_DATA_KEY "/apps/gnomemeeting/general/personal_data/"
- #define PORTS_KEY "/apps/gnomemeeting/protocols/h323/ports/"
-@@ -132,6 +135,15 @@ public:
- GSList *contacts;
- PMutex mutex;
-
-+#ifdef HAS_BONJOUR
-+ guint is_browsing : 1;
-+ DNSServiceRef browse_session;
-+ GList *resolve_session_list;
-+#else
-+ sw_discovery discovery; /* HOWL discovery session */
-+ sw_discovery_oid browse_id; /* Id of the publisher */
-+#endif
-+
- private:
-
- /* DESCRIPTION : /
-@@ -140,9 +152,6 @@ private:
- *
- */
- void Main();
--
-- sw_discovery discovery; /* HOWL discovery session */
-- sw_discovery_oid browse_id; /* Id of the publisher */
-
- PMutex quit_mutex;
- PSyncPoint thread_sync_point;
-Index: src/Makefile.am
-===================================================================
-RCS file: /cvs/gnome/gnomemeeting/src/Makefile.am,v
-retrieving revision 1.63
-diff -u -p -r1.63 Makefile.am
---- src/Makefile.am 13 Nov 2004 18:36:12 -0000 1.63
-+++ src/Makefile.am 8 Aug 2005 23:52:24 -0000
-@@ -65,7 +65,7 @@ if HAS_DBUS
- gnomemeeting_SOURCES += dbus_component.cpp dbus_component.h
- endif
-
--if HAS_HOWL
-+if HAS_ZEROCONF
- gnomemeeting_SOURCES += zeroconf_publisher.cpp zeroconf_publisher.h
- endif
-
-Index: src/config.cpp
-===================================================================
-RCS file: /cvs/gnome/gnomemeeting/src/config.cpp,v
-retrieving revision 1.276
-diff -u -p -r1.276 config.cpp
---- src/config.cpp 26 Dec 2004 14:45:58 -0000 1.276
-+++ src/config.cpp 8 Aug 2005 23:52:25 -0000
-@@ -1213,7 +1213,7 @@ incoming_call_mode_changed_nt (gpointer
- /* Update the main window and its menu */
- gm_main_window_set_incoming_call_mode (main_window, i);
-
--#ifdef HAS_HOWL
-+#ifdef HAS_ZEROCONF
- ep->ZeroconfUpdate ();
- #endif
-
-Index: src/endpoint.cpp
-===================================================================
-RCS file: /cvs/gnome/gnomemeeting/src/endpoint.cpp,v
-retrieving revision 1.438
-diff -u -p -r1.438 endpoint.cpp
---- src/endpoint.cpp 14 Feb 2005 19:17:37 -0000 1.438
-+++ src/endpoint.cpp 8 Aug 2005 23:52:26 -0000
-@@ -79,7 +79,7 @@ GMH323EndPoint::GMH323EndPoint ()
- #ifdef HAS_IXJ
- lid = NULL;
- #endif
--#ifdef HAS_HOWL
-+#ifdef HAS_ZEROCONF
- zcp = NULL;
- #endif
- ils_client = NULL;
-@@ -161,7 +161,7 @@ GMH323EndPoint::~GMH323EndPoint ()
- delete (audio_tester);
-
- /* Stop the zeroconf publishing thread */
--#ifdef HAS_HOWL
-+#ifdef HAS_ZEROCONF
- zcp_access_mutex.Wait ();
- if (zcp)
- delete (zcp);
-@@ -683,7 +683,7 @@ GMH323EndPoint::CreateConnection (unsign
- }
-
-
--#ifdef HAS_HOWL
-+#ifdef HAS_ZEROCONF
- void
- GMH323EndPoint::ZeroconfUpdate (void)
- {
-@@ -1125,7 +1125,7 @@ GMH323EndPoint::OnConnectionEstablished
- if (reg)
- ILSRegister ();
-
--#ifdef HAS_HOWL
-+#ifdef HAS_ZEROCONF
- ZeroconfUpdate ();
- #endif
-
-@@ -1474,7 +1474,7 @@ GMH323EndPoint::OnConnectionCleared (H32
- if (reg)
- ILSRegister ();
-
--#ifdef HAS_HOWL
-+#ifdef HAS_ZEROCONF
- ZeroconfUpdate ();
- #endif
- }
-@@ -1674,7 +1674,7 @@ GMH323EndPoint::Init ()
- SetSTUNServer ();
-
-
--#ifdef HAS_HOWL
-+#ifdef HAS_ZEROCONF
- zcp_access_mutex.Wait ();
- zcp = new GMZeroconfPublisher ();
- ZeroconfUpdate ();
-Index: src/endpoint.h
-===================================================================
-RCS file: /cvs/gnome/gnomemeeting/src/endpoint.h,v
-retrieving revision 1.127
-diff -u -p -r1.127 endpoint.h
---- src/endpoint.h 13 Nov 2004 18:36:12 -0000 1.127
-+++ src/endpoint.h 8 Aug 2005 23:52:26 -0000
-@@ -44,7 +44,7 @@
-
- #include "common.h"
-
--#ifdef HAS_HOWL
-+#ifdef HAS_ZEROCONF
- #include "zeroconf_publisher.h"
- #endif
-
-@@ -422,7 +422,7 @@ class GMH323EndPoint : public H323EndPoi
- void SetSTUNServer (void);
-
-
--#ifdef HAS_HOWL
-+#ifdef HAS_ZEROCONF
- /* DESCRIPTION : /
- * BEHAVIOR : Update the information published by zeroconf.
- * PRE : /
-@@ -797,7 +797,7 @@ class GMH323EndPoint : public H323EndPoi
- GMLid *lid;
- #endif
-
--#ifdef HAS_HOWL
-+#ifdef HAS_ZEROCONF
- GMZeroconfPublisher *zcp;
- PMutex zcp_access_mutex;
- #endif
-Index: src/pref_window.cpp
-===================================================================
-RCS file: /cvs/gnome/gnomemeeting/src/pref_window.cpp,v
-retrieving revision 1.239
-diff -u -p -r1.239 pref_window.cpp
---- src/pref_window.cpp 26 Dec 2004 14:45:58 -0000 1.239
-+++ src/pref_window.cpp 8 Aug 2005 23:52:27 -0000
-@@ -1416,7 +1416,7 @@ static void personal_data_update_cb (Gtk
- /* Both are able to not register if the option is not active */
- endpoint->ILSRegister ();
- endpoint->GatekeeperRegister ();
--#ifdef HAS_HOWL
-+#ifdef HAS_ZEROCONF
- endpoint->ZeroconfUpdate ();
- #endif
-
-Index: src/zeroconf_publisher.cpp
-===================================================================
-RCS file: /cvs/gnome/gnomemeeting/src/zeroconf_publisher.cpp,v
-retrieving revision 1.7
-diff -u -p -r1.7 zeroconf_publisher.cpp
---- src/zeroconf_publisher.cpp 19 Nov 2004 11:09:55 -0000 1.7
-+++ src/zeroconf_publisher.cpp 8 Aug 2005 23:52:27 -0000
-@@ -36,7 +36,11 @@
- *
- */
-
-+#ifdef HAS_BONJOUR
-
-+#include <dns_sd.h>
-+
-+#else
-
- #include <howl.h>
-
-@@ -49,6 +53,8 @@
- #undef PACKAGE_BUGREPORT
- #undef VERSION
-
-+#endif
-+
- #include <stdio.h>
-
- #include <gm_conf.h>
-@@ -58,6 +64,37 @@
- #include "gnomemeeting.h"
- #include "misc.h"
-
-+#ifdef HAS_BONJOUR
-+
-+/* Declarations */
-+
-+/* DESCRIPTION : Callback function used when the zeroconf service
-+ * is published.
-+ * BEHAVIOR : Do nothing.
-+ * PRE : context is (void *). it can be used to configure
-+ * the function.
-+ */
-+static void
-+publish_reply (DNSServiceRef sdRef,
-+ DNSServiceFlags flags,
-+ DNSServiceErrorType errorCode,
-+ const char *name,
-+ const char *regtype,
-+ const char *domain,
-+ void *context);
-+
-+/* Implementation */
-+static void
-+publish_reply (DNSServiceRef sdRef,
-+ DNSServiceFlags flags,
-+ DNSServiceErrorType errorCode,
-+ const char *name,
-+ const char *regtype,
-+ const char *domain,
-+ void *context)
-+{
-+}
-+#else
-
- /* Declarations */
-
-@@ -83,6 +120,7 @@ publish_reply (sw_discovery discovery,
- return SW_OKAY;
- }
-
-+#endif
-
- /* Start of GMZeroconfPublisher definition */
-
-@@ -91,19 +129,27 @@ publish_reply (sw_discovery discovery,
- GMZeroconfPublisher::GMZeroconfPublisher()
- :PThread (1000, NoAutoDeleteThread)
- {
-+ name = NULL;
-+ port = 1720;
-+
-+#ifdef HAS_BONJOUR
-+ is_publishing = FALSE;
-+
-+ Start ();
-+ thread_sync_point.Wait ();
-+#else
- if (sw_discovery_init (&discovery) != SW_OKAY)
- PTRACE (1, "GMZeroconfPublisher: Can't publish!");
-
- publish_id = 0;
- text_record = NULL;
-- name = NULL;
-- port = 1720;
-
- if (discovery) {
-
- Start ();
- thread_sync_point.Wait ();
- }
-+#endif
- }
-
-
-@@ -115,11 +161,15 @@ GMZeroconfPublisher::GMZeroconfPublisher
-
- GMZeroconfPublisher::~GMZeroconfPublisher()
- {
-+#if HAS_BONJOUR
-+ is_publishing = FALSE;
-+#else
- if (discovery) {
-
- sw_discovery_stop_run (discovery);
- sw_discovery_fina (discovery);
- }
-+#endif
-
- PWaitAndSignal m(quit_mutex);
- }
-@@ -128,6 +178,35 @@ GMZeroconfPublisher::~GMZeroconfPublishe
- int
- GMZeroconfPublisher::Publish()
- {
-+#ifdef HAS_BONJOUR
-+ DNSServiceErrorType err = kDNSServiceErr_NoError;
-+
-+ if (is_publishing)
-+ Stop ();
-+
-+ GetPersonalData ();
-+
-+ if (name) {
-+ err = DNSServiceRegister (&publish_session,
-+ 0 /* flags */,
-+ 0 /* interface; 0 for all */,
-+ name /* name */,
-+ ZC_H323 /* type */,
-+ NULL /* domain */,
-+ NULL /* hostname */,
-+ g_htons (port) /* port in network byte order */,
-+ TXTRecordGetLength (&text_record),
-+ TXTRecordGetBytesPtr (&text_record),
-+ publish_reply /* callback */,
-+ NULL /* context */);
-+
-+ if (err == kDNSServiceErr_NoError) {
-+ is_publishing = TRUE;
-+ } else {
-+ g_warning ("Could not do zeroconf publish; error %d\n", err);
-+ }
-+ }
-+#else
- sw_result err = SW_OKAY;
-
- if (!discovery)
-@@ -144,10 +223,33 @@ GMZeroconfPublisher::Publish()
- sw_text_record_bytes (text_record),
- sw_text_record_len (text_record),
- publish_reply, NULL, &publish_id);
-+#endif
-
- return err;
- }
-
-+#ifdef HAS_BONJOUR
-+
-+#define check_okay(err, label) if (err != 0) goto label
-+
-+static gint
-+add_to_text_record (TXTRecordRef *text_record, gchar *key, gchar *value)
-+{
-+ TXTRecordSetValue (text_record, key, strlen (value), value);
-+ return 0;
-+}
-+
-+#else
-+
-+#define check_okay(err, label) sw_check_okay (err, label)
-+
-+static gint
-+add_to_text_record (sw_text_record *text_record, gchar *key, gchar *value)
-+{
-+ return sw_text_record_add_key_and_string_value (*text_record, key, value);
-+}
-+
-+#endif
-
- int
- GMZeroconfPublisher::GetPersonalData()
-@@ -159,7 +261,11 @@ GMZeroconfPublisher::GetPersonalData()
- gchar *gm_conf_gchar = NULL;
- int gm_conf_int = 0;
-
-+#ifdef HAS_BONJOUR
-+ gint err = 0;
-+#else
- sw_result err = SW_OKAY;
-+#endif
-
- gnomemeeting_threads_enter ();
- /* fetch first and last name to create a fullname */
-@@ -189,8 +295,12 @@ GMZeroconfPublisher::GetPersonalData()
-
-
- /* Init of text_record: it will publish the Txt record in mDns */
-+#ifdef HAS_BONJOUR
-+ TXTRecordCreate (&text_record, 128, NULL);
-+#else
- err = sw_text_record_init (&text_record);
- sw_check_okay (err, exit);
-+#endif
-
- gnomemeeting_threads_enter ();
- /* Email */
-@@ -198,10 +308,10 @@ GMZeroconfPublisher::GetPersonalData()
- && gm_conf_gchar && strcmp (gm_conf_gchar, "")) {
-
- err =
-- sw_text_record_add_key_and_string_value (text_record, "email",
-- gm_conf_gchar);
-+ add_to_text_record (&text_record, "email",
-+ gm_conf_gchar);
- g_free (gm_conf_gchar);
-- sw_check_okay (err, exit);
-+ check_okay (err, exit);
-
- }
-
-@@ -210,10 +320,10 @@ GMZeroconfPublisher::GetPersonalData()
- && gm_conf_gchar && strcmp (gm_conf_gchar, "")) {
-
- err =
-- sw_text_record_add_key_and_string_value (text_record, "location",
-- gm_conf_gchar);
-+ add_to_text_record (&text_record, "location",
-+ gm_conf_gchar);
- g_free (gm_conf_gchar);
-- sw_check_okay (err, exit);
-+ check_okay (err, exit);
- }
-
- /* Comment */
-@@ -221,10 +331,10 @@ GMZeroconfPublisher::GetPersonalData()
- && gm_conf_gchar && strcmp (gm_conf_gchar, ""))
- {
- err =
-- sw_text_record_add_key_and_string_value (text_record, "comment",
-- gm_conf_gchar);
-+ add_to_text_record (&text_record, "comment",
-+ gm_conf_gchar);
- g_free (gm_conf_gchar);
-- sw_check_okay (err, exit);
-+ check_okay (err, exit);
- }
-
- /* Incoming Call Mode */
-@@ -235,18 +345,18 @@ GMZeroconfPublisher::GetPersonalData()
- if ((gm_conf_gchar = g_strdup_printf ("%d", gm_conf_int)))
- {
- err =
-- sw_text_record_add_key_and_string_value (text_record, "state",
-- gm_conf_gchar);
-+ add_to_text_record (&text_record, "state",
-+ gm_conf_gchar);
- g_free (gm_conf_gchar);
-- sw_check_okay (err, exit);
-+ check_okay (err, exit);
- }
- gnomemeeting_threads_leave ();
-
- /* H323 Software */
- err =
-- sw_text_record_add_key_and_string_value (text_record, "software",
-- "GnomeMeeting");
-- sw_check_okay (err, exit);
-+ add_to_text_record (&text_record, "software",
-+ "GnomeMeeting");
-+ check_okay (err, exit);
-
- exit:
- return err;
-@@ -259,15 +369,68 @@ GMZeroconfPublisher::Main ()
- PWaitAndSignal m(quit_mutex);
- thread_sync_point.Signal ();
-
-+#ifdef HAS_BONJOUR
-+ for ( ; is_publishing; ) {
-+ struct timeval tv;
-+ gint n_ready;
-+ fd_set read_fds;
-+ gint fd;
-+
-+ FD_ZERO (&read_fds);
-+
-+ /* Listen for browse events */
-+
-+ fd = DNSServiceRefSockFD (publish_session);
-+ if (fd < 0)
-+ break;
-+
-+ FD_SET (fd, &read_fds);
-+
-+ /* Block to listen */
-+
-+ tv.tv_sec = 1;
-+ tv.tv_usec = 0;
-+
-+ n_ready = select (fd + 1, &read_fds, NULL, NULL, &tv);
-+
-+ if (n_ready < 1)
-+ continue;
-+
-+ /* Process publish events */
-+
-+ fd = DNSServiceRefSockFD (publish_session);
-+ if (fd < 0)
-+ break;
-+
-+ if (FD_ISSET (fd, &read_fds)) {
-+ DNSServiceErrorType err;
-+
-+ FD_CLR (fd, &read_fds);
-+ err = DNSServiceProcessResult (publish_session);
-+ if (err != kDNSServiceErr_NoError)
-+ break;
-+ }
-+ }
-+
-+ /* Reset to initial state */
-+
-+ is_publishing = FALSE;
-+
-+#else
- sw_discovery_run (discovery);
-+#endif
- }
-
-
- int
- GMZeroconfPublisher::Start ()
- {
-+#ifdef HAS_BONJOUR
-+ Resume ();
-+#else
- if (discovery)
- Resume ();
-+#endif
-
- return 0;
- }
-@@ -276,17 +439,27 @@ GMZeroconfPublisher::Start ()
- int
- GMZeroconfPublisher::Stop ()
- {
-+#ifdef HAS_BONJOUR
-+ gint err = 0;
-+
-+ if (is_publishing) {
-+ DNSServiceRefDeallocate (publish_session);
-+ TXTRecordDeallocate (&text_record);
-+ is_publishing = FALSE;
-+ }
-+#else
- sw_result err = SW_FALSE;
-
- if (discovery) {
-
- err = sw_discovery_cancel (discovery, publish_id);
-- sw_check_okay (err, exit);
-+ check_okay (err, exit);
- }
-
-
- if (text_record)
- err = sw_text_record_fina (text_record);
-+#endif
-
- exit:
- g_free (name);
-Index: src/zeroconf_publisher.h
-===================================================================
-RCS file: /cvs/gnome/gnomemeeting/src/zeroconf_publisher.h,v
-retrieving revision 1.3
-diff -u -p -r1.3 zeroconf_publisher.h
---- src/zeroconf_publisher.h 19 Nov 2004 11:09:55 -0000 1.3
-+++ src/zeroconf_publisher.h 8 Aug 2005 23:52:27 -0000
-@@ -47,7 +47,9 @@
- /* Zeroconf Service Type */
- #define ZC_H323 "_h323._tcp."
-
--
-+#ifdef HAS_BONJOUR
-+# include <dns_sd.h>
-+#else
- /*
- * Redefine some howl struct because of a bug in howl
- * including config.h that conflicts with GM config.h
-@@ -57,6 +59,7 @@ typedef struct _sw_discovery *sw_discove
- typedef unsigned int sw_discovery_oid;
- struct _sw_text_record;
- typedef struct _sw_text_record *sw_text_record;
-+#endif
-
-
- class GMZeroconfPublisher : public PThread
-@@ -130,9 +133,16 @@ class GMZeroconfPublisher : public PThre
- PMutex quit_mutex;
- PSyncPoint thread_sync_point;
-
-+#ifdef HAS_BONJOUR
-+ guint is_publishing : 1;
-+ TXTRecordRef text_record;
-+ DNSServiceRef publish_session;
-+#else
- sw_discovery discovery; /* HOWL discovery session */
- sw_discovery_oid publish_id; /* Id of the publisher */
- sw_text_record text_record; /* Txt Record */
-+#endif
-+
- gchar *name; /* Srv Record */
- int port; /* port number of Srv Record */
- };
Index: extra/network/gnomemeeting/gnomemeeting.install
diff -u extra/network/gnomemeeting/gnomemeeting.install:1.5 extra/network/gnomemeeting/gnomemeeting.install:removed
--- extra/network/gnomemeeting/gnomemeeting.install:1.5 Wed Aug 31 14:01:09 2005
+++ extra/network/gnomemeeting/gnomemeeting.install Sun Apr 22 12:31:04 2007
@@ -1,51 +0,0 @@
-pkgname=gnomemeeting
-
-post_install() {
- schemas=(`pacman -Ql $pkgname | grep 'gconf/schemas/.*schemas$' | awk '{ print $2 }'`)
- scrolls=(`pacman -Ql $pkgname | grep 'share/omf/.*\.omf$' | awk '{ print $2 }'`)
-
- export GCONF_CONFIG_SOURCE=`opt/gnome/bin/gconftool-2 --get-default-source`
- for schema in "${schemas[@]}" ; do
- opt/gnome/bin/gconftool-2 --makefile-install-rule "$schema" >/dev/null 2>&1
- done
-
- for scroll in "${scrolls[@]}" ; do
- scrollkeeper-install -q -p var/lib/scrollkeeper "$scroll"
- done
-
- kill -s HUP `pidof /opt/gnome/bin/gconfd-2` >/dev/null 2>&1
- update-desktop-database -q
-}
-
-pre_upgrade() {
- pre_remove $1
-}
-
-post_upgrade() {
- post_install $1
-}
-
-pre_remove() {
- schemas=(`pacman -Ql $pkgname | grep 'gconf/schemas/.*schemas$' | awk '{ print $2 }'`)
- scrolls=(`pacman -Ql $pkgname | grep 'share/omf/.*\.omf$' | awk '{ print $2 }'`)
-
- export GCONF_CONFIG_SOURCE=`opt/gnome/bin/gconftool-2 --get-default-source`
- for schema in "${schemas[@]}" ; do
- opt/gnome/bin/gconftool-2 --makefile-uninstall-rule "$schema" >/dev/null 2>&1
- done
-
- for scroll in "${scrolls[@]}" ; do
- scrollkeeper-uninstall -q -p var/lib/scrollkeeper "$scroll"
- done
-
- kill -s HUP `pidof /opt/gnome/bin/gconfd-2` >/dev/null 2>&1
-}
-
-post_remove() {
- update-desktop-database -q
-}
-
-op=$1
-shift
-
-$op $*
More information about the arch-commits
mailing list