aboutsummaryrefslogtreecommitdiffstats
path: root/www/epiphany
diff options
context:
space:
mode:
authormarcus <marcus@FreeBSD.org>2008-03-24 11:52:36 +0800
committermarcus <marcus@FreeBSD.org>2008-03-24 11:52:36 +0800
commit7f7d1cea729a5815af0f4db6edfc5ba0f62a57e3 (patch)
tree862f96db414616c771eb64412d27d795591004f0 /www/epiphany
parent6c3349d5db64bb9ea320c30d23ba353e2f013754 (diff)
downloadfreebsd-ports-gnome-7f7d1cea729a5815af0f4db6edfc5ba0f62a57e3.tar.gz
freebsd-ports-gnome-7f7d1cea729a5815af0f4db6edfc5ba0f62a57e3.tar.zst
freebsd-ports-gnome-7f7d1cea729a5815af0f4db6edfc5ba0f62a57e3.zip
The FreeBSD GNOME team is proud to annunce the release of GNOME 2.22.0 for
FreeBSD. The official GNOME 2.22 release notes can be found at http://library.gnome.org/misc/release-notes/2.22/ . On the FreeBSD front, this release features an updated hal port with support for video4linux devices, DRM (Direct Rendering), and better support of removable media. Work is also underway to tie webkit more closely into GNOME. As part of the GNOME 2.22 upgrade, GStreamer received a rather large upgrade as well. Be sure to consult UPDATING on the proper steps to upgrade all of your GNOME ports. This release would not have been possible without the contributions and testing efforts of the following people: Pawel Worach kan edwin Peter Ulrich Kruppa J. W. Ballantine Yasuda Keisuke Andriy Gapon
Diffstat (limited to 'www/epiphany')
-rw-r--r--www/epiphany/Makefile34
-rw-r--r--www/epiphany/distinfo6
-rw-r--r--www/epiphany/files/patch-lib_ephy-spell-check.c20
-rw-r--r--www/epiphany/files/patch-src_bookmarks_ephy-bookmarks.c512
-rw-r--r--www/epiphany/pkg-plist72
5 files changed, 583 insertions, 61 deletions
diff --git a/www/epiphany/Makefile b/www/epiphany/Makefile
index a8fac99902e6..56940c94f261 100644
--- a/www/epiphany/Makefile
+++ b/www/epiphany/Makefile
@@ -3,20 +3,22 @@
# Whom: Joe Marcus Clarke <marcus@FreeBSD.org>
#
# $FreeBSD$
-# $MCom: ports-stable/www/epiphany/Makefile,v 1.8 2007/12/01 19:54:36 marcus Exp $
+# $MCom: ports/www/epiphany/Makefile,v 1.168 2008/03/17 05:00:09 marcus Exp $
#
PORTNAME= epiphany
-PORTVERSION= 2.20.3
+PORTVERSION= 2.22.0
+PORTREVISION= 1
CATEGORIES= www gnome
MASTER_SITES= GNOME
DIST_SUBDIR= gnome2
MAINTAINER= gnome@FreeBSD.org
-COMMENT= An extremely lightweight and simple web browser for GNOME 2
+COMMENT?= An extremely lightweight and simple web browser for GNOME 2
BUILD_DEPENDS= ${LOCALBASE}/libdata/pkgconfig/iso-codes.pc:${PORTSDIR}/misc/iso-codes
-LIB_DEPENDS= dbus-glib-1.2:${PORTSDIR}/devel/dbus-glib
+LIB_DEPENDS= dbus-glib-1.2:${PORTSDIR}/devel/dbus-glib \
+ notify.1:${PORTSDIR}/devel/libnotify
RUN_DEPENDS= ${LOCALBASE}/libdata/pkgconfig/iso-codes.pc:${PORTSDIR}/misc/iso-codes \
${LOCALBASE}/share/themes/LowContrast/index.theme:${PORTSDIR}/x11-themes/gnome-themes
@@ -27,21 +29,18 @@ USE_BZIP2= yes
USE_XLIB= yes
USE_PYTHON= yes
GNOME_DESKTOP_VERSION=2
-USE_GECKO= firefox seamonkey firefox15<->firefox xulrunner
USE_GNOME= gnomeprefix gnomehack intlhack gnomedesktop desktopfileutils
WANT_GNOME= yes
GNU_CONFIGURE= yes
USE_GMAKE= yes
INSTALLS_OMF= yes
-CONFIGURE_ARGS= --with-gecko=${GECKO}
-CONFIGURE_ENV= CPPFLAGS="-I${LOCALBASE}/include ${PTHREAD_CFLAGS}" \
- LIBS="-L${LOCALBASE}/lib ${PTHREAD_LIBS}"
+CONFIGURE_ENV= CPPFLAGS="-I${LOCALBASE}/include ${PTHREAD_CFLAGS} ${EXTRA_CFLAGS}" \
+ LIBS="-L${LOCALBASE}/lib ${PTHREAD_LIBS} ${EXTRA_LIBS}"
GCONF_SCHEMAS= epiphany-lockdown.schemas epiphany.schemas \
epiphany-fonts.schemas epiphany-pango.schemas
-PLIST_SUB+= EPHY_VERSION="${PORTVERSION:C/\.[0-9]+$//}" \
- EPHY_PREFIX="${PREFIX}"
+PLIST_SUB+= EPHY_VERSION="${PORTVERSION:C/\.[0-9]+$//}"
MAN1= epiphany.1
@@ -53,8 +52,20 @@ WITH_GNOME= yes
.endif
.include <bsd.port.pre.mk>
+
+.if defined(EPHY_SLAVE) && ${EPHY_SLAVE}=="webkit"
+LIB_DEPENDS+= WebKitGtk.1:${PORTSDIR}/www/webkit-gtk2
+CONFIGURE_ARGS+= --with-engine=webkit
+EXTRA_CFLAGS+= `pkg-config --cflags WebKitGtk` -I${LOCALBASE}/include/WebKit/webkit
+EXTRA_LIBS+= `pkg-config --libs WebKitGtk`
+CONFLICTS= epiphany-[1-9]*
+.else
+USE_GECKO+= firefox seamonkey firefox15<->firefox xulrunner
+CONFIGURE_ARGS+= --with-gecko=${GECKO} \
+ --with-engine=mozilla
.include "${PORTSDIR}/www/mozilla/bsd.gecko.mk"
-#.include "${.CURDIR}/../../www/mozilla/bsd.gecko.mk"
+CONFLICTS= epiphany-webkit-[1-9]*
+.endif
NO_WERROR= yes
# allow build with more warnings enabled
@@ -79,6 +90,7 @@ CONFIGURE_ARGS+=--enable-spell-checker
.endif
post-patch:
+ @${REINPLACE_CMD} -e 's|WebKitGdk|WebKitGtk|' ${WRKSRC}/configure
@${FIND} ${WRKSRC} -name "Makefile.in*" | ${XARGS} ${REINPLACE_CMD} -e \
's|-lpthread|${PTHREAD_LIBS}|g'
@${REINPLACE_CMD} -e 's|execinfo.h|#|g' \
diff --git a/www/epiphany/distinfo b/www/epiphany/distinfo
index e9e986d6f7be..20a0b5c1e39a 100644
--- a/www/epiphany/distinfo
+++ b/www/epiphany/distinfo
@@ -1,3 +1,3 @@
-MD5 (gnome2/epiphany-2.20.3.tar.bz2) = df2861b3e91bef6d365f50187b6170cb
-SHA256 (gnome2/epiphany-2.20.3.tar.bz2) = a76268f0b842b9f9f2545717273062aeba84351208110064da55f3fe5277a9ca
-SIZE (gnome2/epiphany-2.20.3.tar.bz2) = 4945544
+MD5 (gnome2/epiphany-2.22.0.tar.bz2) = 81ad67d1ad706930a295a7ed9887bf5f
+SHA256 (gnome2/epiphany-2.22.0.tar.bz2) = 692c642f99ea52ac86acf1c00c31f2567cba1e155e5d93462625bd208dca7122
+SIZE (gnome2/epiphany-2.22.0.tar.bz2) = 5163182
diff --git a/www/epiphany/files/patch-lib_ephy-spell-check.c b/www/epiphany/files/patch-lib_ephy-spell-check.c
new file mode 100644
index 000000000000..bd68a07d94df
--- /dev/null
+++ b/www/epiphany/files/patch-lib_ephy-spell-check.c
@@ -0,0 +1,20 @@
+--- lib/ephy-spell-check.c.orig 2008-03-17 00:41:47.000000000 -0400
++++ lib/ephy-spell-check.c 2008-03-17 00:47:22.000000000 -0400
+@@ -69,8 +69,15 @@ ephy_spell_check_init (EphySpellCheck *s
+ priv->dict = enchant_broker_request_dict (priv->broker, *locale);
+ if (priv->dict != NULL) break;
+ }
+- if (priv->dict == NULL)
+- g_warning (enchant_broker_get_error (priv->broker));
++ if (priv->dict == NULL) {
++ g_warning ("No dictionary found for current locale; trying 'en'");
++ priv->dict = enchant_broker_request_dict (priv->broker, "en");
++
++ if (priv->dict == NULL) {
++ g_warning (enchant_broker_get_error (priv->broker));
++ g_warning ("No dictionary found; expect a crash until LANG is properly set");
++ }
++ }
+ }
+
+ static void
diff --git a/www/epiphany/files/patch-src_bookmarks_ephy-bookmarks.c b/www/epiphany/files/patch-src_bookmarks_ephy-bookmarks.c
index 146b9e594529..afe4f26f1a41 100644
--- a/www/epiphany/files/patch-src_bookmarks_ephy-bookmarks.c
+++ b/www/epiphany/files/patch-src_bookmarks_ephy-bookmarks.c
@@ -1,14 +1,498 @@
---- src/bookmarks/ephy-bookmarks.c.orig Sat Apr 15 04:11:39 2006
-+++ src/bookmarks/ephy-bookmarks.c Sat Apr 15 04:13:43 2006
-@@ -92,7 +92,10 @@ static const EphyBookmarksBookmarkInfo d
- * For instance in .nl these should be
- * "http://www.google.nl" and "http://www.google.nl/search?q=%s"
- */
-- { N_("Search the web"), N_("http://www.google.com/search?q=%s&ie=UTF-8&oe=UTF-8") }
-+ { N_("Search the web"), N_("http://www.google.com/search?q=%s&ie=UTF-8&oe=UTF-8") },
-+ { N_("The FreeBSD Project"), N_("http://www.freebsd.org/") },
-+ { N_("Daemon News"), N_("http://daemonnews.org/") },
-+ { N_("BSD News"), N_("http://bsdnews.com/") }
- };
-
- static const char *default_topics [] =
+--- src/bookmarks/ephy-bookmarks.c 2008/01/14 19:29:31 7863
++++ src/bookmarks/ephy-bookmarks.c 2008/03/13 14:09:36 8102
+@@ -136,39 +136,10 @@
+ static void ephy_bookmarks_finalize (GObject *object);
+ static char *impl_resolve_address (EphyBookmarks*, const char*, const char*);
+
+-static GObjectClass *parent_class = NULL;
+-
+-GType
+-ephy_bookmarks_get_type (void)
+-{
+- static GType type = 0;
+-
+- if (G_UNLIKELY (type == 0))
+- {
+- const GTypeInfo our_info =
+- {
+- sizeof (EphyBookmarksClass),
+- NULL, /* base_init */
+- NULL, /* base_finalize */
+- (GClassInitFunc) ephy_bookmarks_class_init,
+- NULL,
+- NULL, /* class_data */
+- sizeof (EphyBookmarks),
+- 0, /* n_preallocs */
+- (GInstanceInitFunc) ephy_bookmarks_init
+- };
+- volatile GType flags_type; /* work around gcc's optimiser */
+-
+- /* make sure the flags type is known */
+- flags_type = EPHY_TYPE_BOOKMARK_PROPERTY;
+-
+- type = g_type_register_static (G_TYPE_OBJECT,
+- "EphyBookmarks",
+- &our_info, 0);
+- }
+-
+- return type;
+-}
++G_DEFINE_TYPE_WITH_CODE (EphyBookmarks, ephy_bookmarks, G_TYPE_OBJECT,
++ volatile GType flags_type; /* work around gcc's optimiser */
++ /* make sure the flags type is known */
++ flags_type = EPHY_TYPE_BOOKMARK_PROPERTY;)
+
+ static void
+ ephy_bookmarks_init_defaults (EphyBookmarks *eb)
+@@ -194,8 +165,6 @@
+ {
+ GObjectClass *object_class = G_OBJECT_CLASS (klass);
+
+- parent_class = g_type_class_peek_parent (klass);
+-
+ object_class->finalize = ephy_bookmarks_finalize;
+
+ klass->resolve_address = impl_resolve_address;
+@@ -799,7 +768,10 @@
+ char *key_dup, *value_dup;
+ char *raw_txt;
+ size_t raw_txt_len;
+-
++
++ if (!input_text)
++ return NULL;
++
+ raw_txt_len = avahi_string_list_serialize (input_text, NULL, 0);
+ raw_txt = g_malloc (raw_txt_len);
+ raw_txt_len = avahi_string_list_serialize (input_text, raw_txt, raw_txt_len);
+@@ -868,41 +840,14 @@
+ name);
+ }
+
+-static EphyNode *
+-get_node_for_id (EphyBookmarks *bookmarks,
+- char *node_id)
+-{
+- EphyBookmarksPrivate *priv = bookmarks->priv;
+- EphyNode *kid, *node = NULL;
+- GPtrArray *children;
+- const char *id;
+- guint i;
+-
+- children = ephy_node_get_children (priv->local);
+- for (i = 0; i < children->len; i++)
+- {
+- kid = g_ptr_array_index (children, i);
+-
+- id = ephy_node_get_property_string (kid,
+- EPHY_NODE_BMK_PROP_SERVICE_ID);
+-
+- if (g_str_equal (id, node_id))
+- {
+- node = kid;
+- break;
+- }
+- }
+-
+- g_free (node_id);
+-
+- return node;
+-}
+-
+ typedef struct
+ {
+ EphyBookmarks *bookmarks;
++ GaServiceResolver *resolver;
+ EphyNode *node;
+- guint new_node : 1;
++ char *name;
++ char *type;
++ char *domain;
+ } ResolveData;
+
+ static void
+@@ -921,20 +866,20 @@
+ {
+ EphyBookmarks *bookmarks = data->bookmarks;
+ EphyBookmarksPrivate *priv = bookmarks->priv;
+- EphyNode *node = data->node;
+ GValue value = { 0, };
+ const char *path = NULL;
+ char host[128];
+ GHashTable *text_table;
+ char *url;
+ gboolean was_immutable;
++ gboolean is_new_node = FALSE;
+ guint i;
+
++ LOG ("resolver_found_cb resolver %p\n", resolver);
++
+ was_immutable = ephy_node_db_is_immutable (priv->db);
+ ephy_node_db_set_immutable (priv->db, FALSE);
+
+- g_hash_table_steal (priv->resolve_handles, node);
+-
+ /* Find the protocol */
+ for (i = 0; i < G_N_ELEMENTS (zeroconf_protos); ++i)
+ {
+@@ -945,6 +890,12 @@
+ }
+ if (i == G_N_ELEMENTS (zeroconf_protos)) return;
+
++ if (address == NULL)
++ {
++ g_warning ("Zeroconf failed to resolve host %s", name);
++ return;
++ }
++
+ text_table = decode_txt_record (txt);
+
+ if (text_table != NULL)
+@@ -956,32 +907,60 @@
+ path = "/";
+ }
+
+- if (address == NULL)
+- {
+- g_warning ("Zeroconf failed to resolve host %s", name);
+- return;
+- }
+ avahi_address_snprint (host, sizeof (host), address);
+
+ LOG ("0conf RESOLVED type=%s domain=%s name=%s => proto=%s host=%s port=%d path=%s\n",
+ type, domain, name,
+ zeroconf_protos[i], host, port, path);
+
++ was_immutable = ephy_node_db_is_immutable (priv->db);
++ ephy_node_db_set_immutable (priv->db, FALSE);
++
++ if (data->node == NULL)
++ {
++ is_new_node = TRUE;
++
++ data->node = ephy_node_new (priv->db);
++ g_assert (data->node != NULL);
++
++ /* don't allow dragging this node */
++ ephy_node_set_is_drag_source (data->node, FALSE);
++
++ g_value_init (&value, G_TYPE_STRING);
++ g_value_take_string (&value,
++ get_id_for_response (data->type,
++ data->domain,
++ data->name));
++ ephy_node_set_property (data->node, EPHY_NODE_BMK_PROP_SERVICE_ID, &value);
++ g_value_unset (&value);
++
++ /* FIXME: limit length! */
++ ephy_node_set_property_string (data->node,
++ EPHY_NODE_BMK_PROP_TITLE,
++ name);
++
++ ephy_node_set_property_boolean (data->node,
++ EPHY_NODE_BMK_PROP_IMMUTABLE,
++ TRUE);
++ }
++
+ /* FIXME: limit length! */
+ url = g_strdup_printf ("%s://%s:%d%s", zeroconf_protos[i], host, port, path);
+
+ g_value_init (&value, G_TYPE_STRING);
+ g_value_take_string (&value, url);
+- ephy_node_set_property (node, EPHY_NODE_BMK_PROP_LOCATION, &value);
++ ephy_node_set_property (data->node, EPHY_NODE_BMK_PROP_LOCATION, &value);
+ g_value_unset (&value);
+
+- if (data->new_node)
++ if (is_new_node)
+ {
+- ephy_node_add_child (priv->bookmarks, node);
+- ephy_node_add_child (priv->local, node);
++ ephy_node_add_child (priv->bookmarks, data->node);
++ ephy_node_add_child (priv->local, data->node);
+ }
+
+ ephy_node_db_set_immutable (priv->db, was_immutable);
++
++ g_hash_table_unref (text_table);
+ }
+
+ static void
+@@ -989,53 +968,33 @@
+ GError *error,
+ ResolveData *data)
+ {
+- EphyBookmarks *bookmarks = data->bookmarks;
+- EphyBookmarksPrivate *priv = bookmarks->priv;
+- EphyNode *node = data->node;
+- gboolean was_immutable;
++ LOG ("resolver_failure_cb resolver %p: %s\n", resolver, error?error->message:"(null)");
+
+- was_immutable = ephy_node_db_is_immutable (priv->db);
+- ephy_node_db_set_immutable (priv->db, FALSE);
+-
+- g_hash_table_steal (priv->resolve_handles, node);
+-
+- /* Error, don't add the service */
+- ephy_node_unref (node);
+- ephy_node_db_set_immutable (priv->db, was_immutable);
+-
+- return;
+-}
++ /* Remove the node, if present */
++ if (data->node != NULL)
++ {
++ EphyBookmarks *bookmarks = data->bookmarks;
++ EphyBookmarksPrivate *priv = bookmarks->priv;
++ gboolean was_immutable;
+
+-static void
+-free_resolve_cb_data (gpointer data)
+-{
+- g_slice_free (ResolveData, data);
++ was_immutable = ephy_node_db_is_immutable (priv->db);
++ ephy_node_db_set_immutable (priv->db, FALSE);
++ ephy_node_unref (data->node);
++ data->node = NULL;
++ ephy_node_db_set_immutable (priv->db, was_immutable);
++ }
+ }
+
+ static void
+-browser_removed_service_cb (GaServiceBrowser *browser,
+- int interface,
+- GaProtocol protocol,
+- const char *name,
+- const char *type,
+- const char *domain,
+- glong flags,
+- EphyBookmarks *bookmarks)
++resolve_data_free (ResolveData* data)
+ {
+- EphyBookmarksPrivate *priv = bookmarks->priv;
+- EphyNode *node;
+- char *node_id;
+-
+- node_id = get_id_for_response (type, domain, name);
+- node = get_node_for_id (bookmarks, node_id);
++ if (data->resolver)
++ g_object_unref (data->resolver);
+
+- if (node != NULL)
+- {
+- g_hash_table_remove (priv->resolve_handles, node);
+- ephy_node_unref (node);
+- }
+-
+- return;
++ g_free (data->type);
++ g_free (data->name);
++ g_free (data->domain);
++ g_slice_free (ResolveData, data);
+ }
+
+ static void
+@@ -1049,81 +1008,88 @@
+ EphyBookmarks *bookmarks)
+ {
+ EphyBookmarksPrivate *priv = bookmarks->priv;
+- EphyNode *node;
+- GValue value = { 0, };
+- gboolean new_node = FALSE;
+- GaServiceResolver *resolver = NULL;
+ ResolveData *data;
+ char *node_id;
++ GError *error = NULL;
+
+ node_id = get_id_for_response (type, domain, name);
+- node = get_node_for_id (bookmarks, node_id);
+
+ LOG ("0conf ADD: type=%s domain=%s name=%s\n",
+ type, domain, name);
+
+- if (node != NULL &&
+- g_hash_table_lookup (priv->resolve_handles, node) != NULL) return;
+-
+- if (node == NULL)
++ if (g_hash_table_lookup (priv->resolve_handles, node_id) != NULL)
+ {
+- gboolean was_immutable;
+-
+- was_immutable = ephy_node_db_is_immutable (priv->db);
+- ephy_node_db_set_immutable (priv->db, FALSE);
+-
+- node = ephy_node_new (priv->db);
+- g_assert (node != NULL);
+-
+- new_node = TRUE;
+-
+- /* don't allow dragging this node */
+- ephy_node_set_is_drag_source (node, FALSE);
+-
+- g_value_init (&value, G_TYPE_STRING);
+- g_value_take_string (&value, get_id_for_response (type, domain, name));
+- ephy_node_set_property (node, EPHY_NODE_BMK_PROP_SERVICE_ID, &value);
+- g_value_unset (&value);
+-
+- /* FIXME: limit length! */
+- ephy_node_set_property_string (node,
+- EPHY_NODE_BMK_PROP_TITLE,
+- name);
+-
+- ephy_node_set_property_boolean (node,
+- EPHY_NODE_BMK_PROP_IMMUTABLE,
+- TRUE);
+-
+- ephy_node_db_set_immutable (priv->db, was_immutable);
++ g_free (node_id);
++ return;
+ }
+
+ data = g_slice_new0 (ResolveData);
+ data->bookmarks = bookmarks;
+- data->node = node;
+- data->new_node = new_node;
+-
+- resolver = ga_service_resolver_new (AVAHI_IF_UNSPEC,
+- AVAHI_PROTO_UNSPEC,
+- name, type, domain,
+- AVAHI_PROTO_UNSPEC,
+- GA_LOOKUP_USE_MULTICAST);
+- g_signal_connect_data (resolver, "found",
+- G_CALLBACK (resolver_found_cb), data,
+- (GClosureNotify) free_resolve_cb_data, 0);
+- g_signal_connect_data (resolver, "failure",
+- G_CALLBACK (resolver_failure_cb), data,
+- (GClosureNotify) free_resolve_cb_data, 0);
+- if (!ga_service_resolver_attach (resolver,
++ data->node = NULL;
++ data->type = g_strdup (type);
++ data->name = g_strdup (name);
++ data->domain = g_strdup (domain);
++
++ data->resolver = ga_service_resolver_new (AVAHI_IF_UNSPEC,
++ AVAHI_PROTO_UNSPEC,
++ name, type, domain,
++ AVAHI_PROTO_UNSPEC,
++ GA_LOOKUP_USE_MULTICAST);
++ g_signal_connect (data->resolver, "found",
++ G_CALLBACK (resolver_found_cb), data);
++ g_signal_connect (data->resolver, "failure",
++ G_CALLBACK (resolver_failure_cb), data);
++ if (!ga_service_resolver_attach (data->resolver,
+ priv->ga_client,
+- NULL))
++ &error))
+ {
+- g_warning ("Unable to resolve Zeroconf service %s", name);
+- ephy_node_unref (node);
+- free_resolve_cb_data (data);
++ g_warning ("Unable to resolve Zeroconf service %s: %s", name, error ? error->message : "(null)");
++ g_clear_error (&error);
++ resolve_data_free (data);
++ g_free (node_id);
+ return;
+ }
++
+ g_hash_table_insert (priv->resolve_handles,
+- node, resolver);
++ node_id /* transfer ownership */, data);
++}
++
++static void
++browser_removed_service_cb (GaServiceBrowser *browser,
++ int interface,
++ GaProtocol protocol,
++ const char *name,
++ const char *type,
++ const char *domain,
++ glong flags,
++ EphyBookmarks *bookmarks)
++{
++ EphyBookmarksPrivate *priv = bookmarks->priv;
++ char *node_id;
++ ResolveData *data;
++
++ node_id = get_id_for_response (type, domain, name);
++ data = g_hash_table_lookup (priv->resolve_handles, node_id);
++ /* shouldn't really happen, but let's play safe */
++ if (!data)
++ {
++ g_free (node_id);
++ return;
++ }
++
++ if (data->node != NULL)
++ {
++ gboolean was_immutable;
++
++ was_immutable = ephy_node_db_is_immutable (priv->db);
++ ephy_node_db_set_immutable (priv->db, FALSE);
++ ephy_node_unref (data->node);
++ data->node = NULL;
++ ephy_node_db_set_immutable (priv->db, was_immutable);
++ }
++
++ g_hash_table_remove (priv->resolve_handles, node_id);
++ g_free (node_id);
+ }
+
+ static void
+@@ -1150,9 +1116,10 @@
+ NULL))
+ {
+ g_warning ("Unable to start Zeroconf subsystem");
++ g_object_unref (browser);
+ return;
+ }
+-
++
+ priv->browse_handles[i] = browser;
+ }
+ }
+@@ -1166,6 +1133,7 @@
+ {
+ if (avahi_client_errno (ga_client->avahi_client) == AVAHI_ERR_DISCONNECTED)
+ {
++ /* FIXMEchpe: is this correct */
+ /* Destroy and reconnect */
+ avahi_client_free (ga_client->avahi_client);
+ ga_client->avahi_client = NULL;
+@@ -1197,7 +1165,9 @@
+ return;
+ }
+ priv->ga_client = ga_client;
+- priv->resolve_handles = g_hash_table_new (g_direct_hash, g_direct_equal);
++ priv->resolve_handles = g_hash_table_new_full (g_str_hash, g_str_equal,
++ g_free,
++ (GDestroyNotify) resolve_data_free);
+ }
+
+ static void
+@@ -1210,6 +1180,7 @@
+ {
+ if (priv->browse_handles[i] != NULL)
+ {
++ g_object_unref (priv->browse_handles[i]);
+ priv->browse_handles[i] = NULL;
+ }
+ }
+@@ -1222,7 +1193,8 @@
+
+ if (priv->local != NULL)
+ {
+- ephy_node_remove_child (priv->keywords, priv->local);
++ ephy_node_unref (priv->local);
++ priv->local = NULL;
+ }
+
+ if (priv->ga_client != NULL)
+@@ -1431,7 +1403,7 @@
+
+ LOG ("Bookmarks finalized");
+
+- G_OBJECT_CLASS (parent_class)->finalize (object);
++ G_OBJECT_CLASS (ephy_bookmarks_parent_class)->finalize (object);
+ }
+
+ EphyBookmarks *
diff --git a/www/epiphany/pkg-plist b/www/epiphany/pkg-plist
index d6d6bdc1e198..bfa3c00ccd56 100644
--- a/www/epiphany/pkg-plist
+++ b/www/epiphany/pkg-plist
@@ -1,12 +1,14 @@
bin/epiphany
include/epiphany/%%EPHY_VERSION%%/epiphany/ephy-adblock-manager.h
include/epiphany/%%EPHY_VERSION%%/epiphany/ephy-adblock.h
+include/epiphany/%%EPHY_VERSION%%/epiphany/ephy-base-embed.h
include/epiphany/%%EPHY_VERSION%%/epiphany/ephy-bookmarks-type-builtins.h
include/epiphany/%%EPHY_VERSION%%/epiphany/ephy-bookmarks.h
include/epiphany/%%EPHY_VERSION%%/epiphany/ephy-command-manager.h
include/epiphany/%%EPHY_VERSION%%/epiphany/ephy-cookie-manager.h
include/epiphany/%%EPHY_VERSION%%/epiphany/ephy-dbus.h
include/epiphany/%%EPHY_VERSION%%/epiphany/ephy-dialog.h
+include/epiphany/%%EPHY_VERSION%%/epiphany/ephy-embed-container.h
include/epiphany/%%EPHY_VERSION%%/epiphany/ephy-embed-event.h
include/epiphany/%%EPHY_VERSION%%/epiphany/ephy-embed-factory.h
include/epiphany/%%EPHY_VERSION%%/epiphany/ephy-embed-persist.h
@@ -14,9 +16,11 @@ include/epiphany/%%EPHY_VERSION%%/epiphany/ephy-embed-prefs.h
include/epiphany/%%EPHY_VERSION%%/epiphany/ephy-embed-shell.h
include/epiphany/%%EPHY_VERSION%%/epiphany/ephy-embed-single.h
include/epiphany/%%EPHY_VERSION%%/epiphany/ephy-embed-type-builtins.h
+include/epiphany/%%EPHY_VERSION%%/epiphany/ephy-embed-utils.h
include/epiphany/%%EPHY_VERSION%%/epiphany/ephy-embed.h
include/epiphany/%%EPHY_VERSION%%/epiphany/ephy-extension.h
include/epiphany/%%EPHY_VERSION%%/epiphany/ephy-extensions-manager.h
+include/epiphany/%%EPHY_VERSION%%/epiphany/ephy-history-item.h
include/epiphany/%%EPHY_VERSION%%/epiphany/ephy-history.h
include/epiphany/%%EPHY_VERSION%%/epiphany/ephy-lib-type-builtins.h
include/epiphany/%%EPHY_VERSION%%/epiphany/ephy-link.h
@@ -30,8 +34,8 @@ include/epiphany/%%EPHY_VERSION%%/epiphany/ephy-session.h
include/epiphany/%%EPHY_VERSION%%/epiphany/ephy-shell.h
include/epiphany/%%EPHY_VERSION%%/epiphany/ephy-state.h
include/epiphany/%%EPHY_VERSION%%/epiphany/ephy-statusbar.h
-include/epiphany/%%EPHY_VERSION%%/epiphany/ephy-tab.h
include/epiphany/%%EPHY_VERSION%%/epiphany/ephy-type-builtins.h
+include/epiphany/%%EPHY_VERSION%%/epiphany/ephy-version.h
include/epiphany/%%EPHY_VERSION%%/epiphany/ephy-window.h
lib/epiphany/%%EPHY_VERSION%%/plugins/libdesktopfileplugin.la
lib/epiphany/%%EPHY_VERSION%%/plugins/libdesktopfileplugin.so
@@ -43,7 +47,6 @@ share/dbus-1/services/org.gnome.Epiphany.service
%%DOCSDIR%%/EphyCommandManager.html
%%DOCSDIR%%/EphyEmbed.html
%%DOCSDIR%%/EphyNodeDb.html
-%%DOCSDIR%%/EphyTab.html
%%DOCSDIR%%/EphyWindow.html
%%DOCSDIR%%/ch01.html
%%DOCSDIR%%/ch02.html
@@ -220,6 +223,7 @@ share/icons/hicolor/48x48/apps/epiphany-bookmarks.png
share/icons/hicolor/scalable/apps/gnome-web-browser.svg
share/locale/am/LC_MESSAGES/epiphany.mo
share/locale/ar/LC_MESSAGES/epiphany.mo
+share/locale/as/LC_MESSAGES/epiphany.mo
share/locale/az/LC_MESSAGES/epiphany.mo
share/locale/be/LC_MESSAGES/epiphany.mo
share/locale/be@latin/LC_MESSAGES/epiphany.mo
@@ -254,6 +258,7 @@ share/locale/is/LC_MESSAGES/epiphany.mo
share/locale/it/LC_MESSAGES/epiphany.mo
share/locale/ja/LC_MESSAGES/epiphany.mo
share/locale/ka/LC_MESSAGES/epiphany.mo
+share/locale/kn/LC_MESSAGES/epiphany.mo
share/locale/ko/LC_MESSAGES/epiphany.mo
share/locale/ku/LC_MESSAGES/epiphany.mo
share/locale/li/LC_MESSAGES/epiphany.mo
@@ -292,8 +297,6 @@ share/locale/th/LC_MESSAGES/epiphany.mo
share/locale/tk/LC_MESSAGES/epiphany.mo
share/locale/tr/LC_MESSAGES/epiphany.mo
share/locale/uk/LC_MESSAGES/epiphany.mo
-share/locale/uz/LC_MESSAGES/epiphany.mo
-share/locale/uz@cyrillic/LC_MESSAGES/epiphany.mo
share/locale/vi/LC_MESSAGES/epiphany.mo
share/locale/wa/LC_MESSAGES/epiphany.mo
share/locale/zh_CN/LC_MESSAGES/epiphany.mo
@@ -318,6 +321,9 @@ share/omf/epiphany/epiphany-sv.omf
share/omf/epiphany/epiphany-uk.omf
share/pygtk/2.0/defs/epiphany.defs
@dirrm share/omf/epiphany
+@dirrmtry share/icons/LowContrastLargePrint/48x48/apps
+@dirrmtry share/icons/LowContrastLargePrint/48x48
+@dirrmtry share/icons/LowContrastLargePrint
@dirrm share/gnome/help/epiphany/uk/figures
@dirrm share/gnome/help/epiphany/uk
@dirrm share/gnome/help/epiphany/sv/figures
@@ -353,38 +359,39 @@ share/pygtk/2.0/defs/epiphany.defs
@dirrm share/gnome/help/epiphany/C/figures
@dirrm share/gnome/help/epiphany/C
@dirrm share/gnome/help/epiphany
-@dirrm %%DATADIR%%/icons/hicolor/scalable/status
-@dirrm %%DATADIR%%/icons/hicolor/scalable/actions
-@dirrm %%DATADIR%%/icons/hicolor/scalable
-@dirrm %%DATADIR%%/icons/hicolor/48x48/status
-@dirrm %%DATADIR%%/icons/hicolor/48x48
-@dirrm %%DATADIR%%/icons/hicolor/32x32/status
-@dirrm %%DATADIR%%/icons/hicolor/32x32/actions
-@dirrm %%DATADIR%%/icons/hicolor/32x32
-@dirrm %%DATADIR%%/icons/hicolor/24x24/status
-@dirrm %%DATADIR%%/icons/hicolor/24x24/places
-@dirrm %%DATADIR%%/icons/hicolor/24x24/actions
-@dirrm %%DATADIR%%/icons/hicolor/24x24
-@dirrm %%DATADIR%%/icons/hicolor/22x22/status
-@dirrm %%DATADIR%%/icons/hicolor/22x22/places
-@dirrm %%DATADIR%%/icons/hicolor/22x22/actions
-@dirrm %%DATADIR%%/icons/hicolor/22x22
-@dirrm %%DATADIR%%/icons/hicolor/16x16/status
-@dirrm %%DATADIR%%/icons/hicolor/16x16/places
-@dirrm %%DATADIR%%/icons/hicolor/16x16/actions
-@dirrm %%DATADIR%%/icons/hicolor/16x16
-@dirrm %%DATADIR%%/icons/hicolor
-@dirrm %%DATADIR%%/icons
+@dirrmtry %%DATADIR%%/icons/hicolor/scalable/status
+@dirrmtry %%DATADIR%%/icons/hicolor/scalable/actions
+@dirrmtry %%DATADIR%%/icons/hicolor/scalable
+@dirrmtry %%DATADIR%%/icons/hicolor/48x48/status
+@dirrmtry %%DATADIR%%/icons/hicolor/48x48
+@dirrmtry %%DATADIR%%/icons/hicolor/32x32/status
+@dirrmtry %%DATADIR%%/icons/hicolor/32x32/actions
+@dirrmtry %%DATADIR%%/icons/hicolor/32x32
+@dirrmtry %%DATADIR%%/icons/hicolor/24x24/status
+@dirrmtry %%DATADIR%%/icons/hicolor/24x24/places
+@dirrmtry %%DATADIR%%/icons/hicolor/24x24/actions
+@dirrmtry %%DATADIR%%/icons/hicolor/24x24
+@dirrmtry %%DATADIR%%/icons/hicolor/22x22/status
+@dirrmtry %%DATADIR%%/icons/hicolor/22x22/places
+@dirrmtry %%DATADIR%%/icons/hicolor/22x22/actions
+@dirrmtry %%DATADIR%%/icons/hicolor/22x22
+@dirrmtry %%DATADIR%%/icons/hicolor/16x16/status
+@dirrmtry %%DATADIR%%/icons/hicolor/16x16/places
+@dirrmtry %%DATADIR%%/icons/hicolor/16x16/actions
+@dirrmtry %%DATADIR%%/icons/hicolor/16x16
+@dirrmtry %%DATADIR%%/icons/hicolor
+@dirrmtry %%DATADIR%%/icons
@dirrm %%DATADIR%%/glade
@dirrm %%DATADIR%%/chrome/global
@dirrm %%DATADIR%%/chrome/branding
@dirrm %%DATADIR%%/chrome
@dirrm %%DATADIR%%/art
-@dirrm %%DATADIR%%
+@dirrmtry %%DATADIR%%
@dirrm %%DOCSDIR%%
-@dirrm lib/epiphany/%%EPHY_VERSION%%/plugins
-@dirrm lib/epiphany/%%EPHY_VERSION%%
-@dirrm lib/epiphany
+@dirrmtry share/applications
+@dirrmtry lib/epiphany/%%EPHY_VERSION%%/plugins
+@dirrmtry lib/epiphany/%%EPHY_VERSION%%
+@dirrmtry lib/epiphany
@dirrm include/epiphany/%%EPHY_VERSION%%/epiphany
@dirrm include/epiphany/%%EPHY_VERSION%%
@dirrm include/epiphany
@@ -392,8 +399,6 @@ share/pygtk/2.0/defs/epiphany.defs
@unexec %%LOCALBASE%%/bin/update-desktop-database > /dev/null || /usr/bin/true
@dirrmtry share/locale/zh_HK/LC_MESSAGES
@dirrmtry share/locale/zh_HK
-@dirrmtry share/locale/uz@cyrillic/LC_MESSAGES
-@dirrmtry share/locale/uz@cyrillic
@dirrmtry share/locale/te/LC_MESSAGES
@dirrmtry share/locale/te
@dirrmtry share/locale/si/LC_MESSAGES
@@ -416,4 +421,5 @@ share/pygtk/2.0/defs/epiphany.defs
@dirrmtry share/locale/bn_IN
@dirrmtry share/locale/be@latin/LC_MESSAGES
@dirrmtry share/locale/be@latin
-@dirrmtry share/applications
+@dirrmtry share/locale/as/LC_MESSAGES
+@dirrmtry share/locale/as