[120511] users/devans/GNOME-3/unstable/dports
devans at macports.org
devans at macports.org
Fri May 30 13:50:43 PDT 2014
Revision: 120511
https://trac.macports.org/changeset/120511
Author: devans at macports.org
Date: 2014-05-30 13:50:43 -0700 (Fri, 30 May 2014)
Log Message:
-----------
GNOME-3/unstable: update ports to unstable 3.13.2 release vertsions:
* devel/atk 2.13.2
* devel/glib2 2.41.0
* gnome/baobab 3.13.1
* gnome/eog 3.13.2
* gnome/evolution-data-server 3.13.2
* gnome/gedit 3.12.2
* gnome/gnome-desktop 3.13.2
* gnome/gnome-maps 3.13.2
* gnome/gnome-music 3.13.2
* gnome/gnome-online-accounts 3.13.2
* gnome/gnome-photos 3.12.1
* gnome/gnome-system-monitor 3.13.2
* gnome/gnome-terminal 3.13.1
* gnome/gnome3-apps 3.13.2
* gnome/gnome3-core 3.13.2
* gnome/gsettings-desktop-schemas 3.13.2
* gnome/gtk3 3.13.2
* gnome/tracker 1.0.1
* gnome/vte 0.37.1
* graphics/clutter 1.19.2
* net/libgweather 3.13.2
* python/py-gobject3 3.13.2
Modified Paths:
--------------
users/devans/GNOME-3/unstable/dports/devel/atk/Portfile
users/devans/GNOME-3/unstable/dports/devel/glib2/Portfile
users/devans/GNOME-3/unstable/dports/devel/glib2/files/patch-glib-2.0.pc.in.diff
users/devans/GNOME-3/unstable/dports/gnome/baobab/Portfile
users/devans/GNOME-3/unstable/dports/gnome/eog/Portfile
users/devans/GNOME-3/unstable/dports/gnome/evolution-data-server/Portfile
users/devans/GNOME-3/unstable/dports/gnome/gedit/Portfile
users/devans/GNOME-3/unstable/dports/gnome/gnome-desktop/Portfile
users/devans/GNOME-3/unstable/dports/gnome/gnome-desktop/files/patch-libgnome-destktop-libgsystem.diff
users/devans/GNOME-3/unstable/dports/gnome/gnome-maps/Portfile
users/devans/GNOME-3/unstable/dports/gnome/gnome-music/Portfile
users/devans/GNOME-3/unstable/dports/gnome/gnome-online-accounts/Portfile
users/devans/GNOME-3/unstable/dports/gnome/gnome-photos/Portfile
users/devans/GNOME-3/unstable/dports/gnome/gnome-system-monitor/Portfile
users/devans/GNOME-3/unstable/dports/gnome/gnome-terminal/Portfile
users/devans/GNOME-3/unstable/dports/gnome/gnome-terminal/files/patch-uuid.diff
users/devans/GNOME-3/unstable/dports/gnome/gnome3-apps/Portfile
users/devans/GNOME-3/unstable/dports/gnome/gnome3-apps/files/versions.txt
users/devans/GNOME-3/unstable/dports/gnome/gnome3-core/Portfile
users/devans/GNOME-3/unstable/dports/gnome/gnome3-core/files/versions.txt
users/devans/GNOME-3/unstable/dports/gnome/gsettings-desktop-schemas/Portfile
users/devans/GNOME-3/unstable/dports/gnome/gtk3/Portfile
users/devans/GNOME-3/unstable/dports/gnome/tracker/Portfile
users/devans/GNOME-3/unstable/dports/gnome/vte/Portfile
users/devans/GNOME-3/unstable/dports/graphics/clutter/Portfile
users/devans/GNOME-3/unstable/dports/net/libgweather/Portfile
users/devans/GNOME-3/unstable/dports/python/py-gobject3/Portfile
Added Paths:
-----------
users/devans/GNOME-3/unstable/dports/devel/glib2/
users/devans/GNOME-3/unstable/dports/gnome/baobab/
users/devans/GNOME-3/unstable/dports/gnome/gedit/
users/devans/GNOME-3/unstable/dports/gnome/gnome-maps/
users/devans/GNOME-3/unstable/dports/gnome/gnome-photos/
users/devans/GNOME-3/unstable/dports/gnome/tracker/
users/devans/GNOME-3/unstable/dports/graphics/clutter/
Modified: users/devans/GNOME-3/unstable/dports/devel/atk/Portfile
===================================================================
--- users/devans/GNOME-3/unstable/dports/devel/atk/Portfile 2014-05-30 20:42:12 UTC (rev 120510)
+++ users/devans/GNOME-3/unstable/dports/devel/atk/Portfile 2014-05-30 20:50:43 UTC (rev 120511)
@@ -5,7 +5,7 @@
name atk
epoch 2
-version 2.13.1
+version 2.13.2
set branch [join [lrange [split ${version} .] 0 1] .]
categories devel
license LGPL
@@ -19,8 +19,8 @@
homepage http://projects.gnome.org/accessibility/
master_sites gnome:sources/${name}/${branch}/
-checksums rmd160 b0e7aeae32a65ad9d78ed66cc12652ba6784214e \
- sha256 71baf41d5b01f550e63601baf8589cacf9ccec7f3fa6638924d9100def51fa62
+checksums rmd160 1a2cf65a2f16f4392d73f74a2bb128e6d3f297d3 \
+ sha256 ebe1be3123da5aaa9a2e95821268ea31e955949cd56f5e1e65ec73e5b292b8f6
use_xz yes
Property changes on: users/devans/GNOME-3/unstable/dports/devel/glib2
___________________________________________________________________
Added: svn:mergeinfo
+ /branches/mld-qt-481/dports/devel/glib2:92720,92813,92891,92963,93522,93556,93699,93743,93771-93773,93806,93817-93818,93856
/trunk/dports/devel/glib2:52045-52046,62644,64476,72697,91791
/trunk/dports/devel/glib2-devel:51739-120463
/users/cal/ports/devel/glib2:96570-97031
Modified: users/devans/GNOME-3/unstable/dports/devel/glib2/Portfile
===================================================================
--- trunk/dports/devel/glib2/Portfile 2014-05-29 02:45:21 UTC (rev 120463)
+++ users/devans/GNOME-3/unstable/dports/devel/glib2/Portfile 2014-05-30 20:50:43 UTC (rev 120511)
@@ -10,8 +10,7 @@
name glib2
conflicts glib2-devel
set my_name glib
-version 2.40.0
-revision 1
+version 2.41.0
set branch [join [lrange [split ${version} .] 0 1] .]
categories devel
maintainers ryandesign openmaintainer
@@ -32,8 +31,8 @@
master_sites gnome:sources/${my_name}/${branch}/ \
ftp://ftp.gtk.org/pub/${my_name}/${branch}/
-checksums rmd160 c50eed34bf8df127b959af27b02d6036934f758e \
- sha256 0d27f195966ecb1995dcce0754129fd66ebe820c7cd29200d264b02af1aa28b5
+checksums rmd160 3ca4e66fecf1c25cf7d8e143fb17813e94cf9f1c \
+ sha256 e85e2714147928e3f6410a3f9a5c11ebfcfc7b3b11706e3374636b091dc7c3f7
# ${prefix}/include/glib-2.0/glib/gi18n.h requires -I${prefix}/include to find libintl.h
# See https://trac.macports.org/changeset/27148
@@ -124,5 +123,5 @@
configure.python ${prefix}/bin/python2.7
}
-livecheck.type gnome
+livecheck.type gnome-with-unstable
livecheck.name ${my_name}
Modified: users/devans/GNOME-3/unstable/dports/devel/glib2/files/patch-glib-2.0.pc.in.diff
===================================================================
--- trunk/dports/devel/glib2/files/patch-glib-2.0.pc.in.diff 2014-05-29 02:45:21 UTC (rev 120463)
+++ users/devans/GNOME-3/unstable/dports/devel/glib2/files/patch-glib-2.0.pc.in.diff 2014-05-30 20:50:43 UTC (rev 120511)
@@ -1,8 +1,8 @@
---- glib-2.0.pc.in.orig 2012-01-15 21:12:06.000000000 -0600
-+++ glib-2.0.pc.in 2012-01-19 22:29:43.000000000 -0600
+--- glib-2.0.pc.in.orig 2014-04-07 08:01:32.000000000 -0500
++++ glib-2.0.pc.in 2014-05-27 20:44:09.000000000 -0500
@@ -13,4 +13,4 @@
Requires.private: @PCRE_REQUIRES@
Libs: -L${libdir} -lglib-2.0 @INTLLIBS@
- Libs.private: @G_THREAD_LIBS@ @G_LIBS_EXTRA@ @PCRE_LIBS@ @INTLLIBS@ @ICONV_LIBS@
+ Libs.private: @G_THREAD_LIBS@ @G_LIBS_EXTRA@ @PCRE_LIBS@ @INTLLIBS@ @ICONV_LIBS@ @CARBON_LIBS@ @COCOA_LIBS@
-Cflags: -I${includedir}/glib-2.0 -I${libdir}/glib-2.0/include @GLIB_EXTRA_CFLAGS@
+Cflags: -I${includedir}/glib-2.0 -I${libdir}/glib-2.0/include -I${includedir} @GLIB_EXTRA_CFLAGS@
Modified: users/devans/GNOME-3/unstable/dports/gnome/baobab/Portfile
===================================================================
--- users/devans/GNOME-3/stable/dports/gnome/baobab/Portfile 2014-05-27 20:16:06 UTC (rev 120409)
+++ users/devans/GNOME-3/unstable/dports/gnome/baobab/Portfile 2014-05-30 20:50:43 UTC (rev 120511)
@@ -4,7 +4,7 @@
PortSystem 1.0
name baobab
-version 3.12.1
+version 3.13.1
license GPL-2 GFDL-1.1
set branch [join [lrange [split ${version} .] 0 1] .]
description GNOME disk usage analyzer.
@@ -23,8 +23,8 @@
use_xz yes
-checksums rmd160 2d013486e10472031275b004a4570e1785c5a6e7 \
- sha256 494808d8a5b1776377749a1dcd5b251eb399208a4c90380dc8b8c789811e514c
+checksums rmd160 882954212bdc02ad3416e081fc6e1d5e96f6635d \
+ sha256 06c786a60e9e4a80b87ace6a18d9efbc475f4f61743862567ba415b27e8cf7db
depends_build port:pkgconfig \
port:intltool \
@@ -78,4 +78,4 @@
system "${prefix}/bin/glib-compile-schemas ${prefix}/share/glib-2.0/schemas"
}
-livecheck.type gnome
+livecheck.type gnome-with-unstable
Modified: users/devans/GNOME-3/unstable/dports/gnome/eog/Portfile
===================================================================
--- users/devans/GNOME-3/unstable/dports/gnome/eog/Portfile 2014-05-30 20:42:12 UTC (rev 120510)
+++ users/devans/GNOME-3/unstable/dports/gnome/eog/Portfile 2014-05-30 20:50:43 UTC (rev 120511)
@@ -4,7 +4,7 @@
PortSystem 1.0
name eog
-version 3.13.1
+version 3.13.2
license GPL-2+
set branch [join [lrange [split ${version} .] 0 1] .]
description An image viewing and cataloging program.
@@ -20,8 +20,8 @@
use_xz yes
-checksums rmd160 2ed089b3727d8f60b8409ef5f1078d13b98cefd5 \
- sha256 7e5be753bb7ef0ce53ec0153ff0addc2e12b956909576ac3d14d5f68f6e371c2
+checksums rmd160 30e9ab1a33ce754915b5343a77da250a9c70bed0 \
+ sha256 62497739dacfc108e03554d2e2321a8feb2c2b169d2422349c009dab114ba22f
depends_build port:pkgconfig \
port:intltool \
Modified: users/devans/GNOME-3/unstable/dports/gnome/evolution-data-server/Portfile
===================================================================
--- users/devans/GNOME-3/unstable/dports/gnome/evolution-data-server/Portfile 2014-05-30 20:42:12 UTC (rev 120510)
+++ users/devans/GNOME-3/unstable/dports/gnome/evolution-data-server/Portfile 2014-05-30 20:50:43 UTC (rev 120511)
@@ -4,7 +4,7 @@
PortSystem 1.0
name evolution-data-server
-version 3.13.1
+version 3.13.2
set branch [join [lrange [split ${version} .] 0 1] .]
description Addressbook and calender libs for GNOME.
long_description Evolution Data Server provides a central location for \
@@ -18,8 +18,8 @@
use_xz yes
-checksums rmd160 0c469cad142877ed4bf4f7532901017e9d148aa2 \
- sha256 b3c90a802d7019d7cfb1e17b47e12513c684f00ad9c1c6e9cbeb1a9c9a419755
+checksums rmd160 58f371e8dd4d1e6245420b5b996b7ebaa3bbf60a \
+ sha256 b4cca149d421ab44f0ced52e8a9f3e54ffbd1e40e77b28f76706fc63be2a90ab
depends_build port:pkgconfig \
port:gnome-common \
Modified: users/devans/GNOME-3/unstable/dports/gnome/gedit/Portfile
===================================================================
--- users/devans/GNOME-3/stable/dports/gnome/gedit/Portfile 2014-05-28 18:05:36 UTC (rev 120451)
+++ users/devans/GNOME-3/unstable/dports/gnome/gedit/Portfile 2014-05-30 20:50:43 UTC (rev 120511)
@@ -102,4 +102,4 @@
system "${prefix}/bin/glib-compile-schemas ${prefix}/share/glib-2.0/schemas"
}
-livecheck.type gnome
+livecheck.type gnome-with-unstable
Modified: users/devans/GNOME-3/unstable/dports/gnome/gnome-desktop/Portfile
===================================================================
--- users/devans/GNOME-3/unstable/dports/gnome/gnome-desktop/Portfile 2014-05-30 20:42:12 UTC (rev 120510)
+++ users/devans/GNOME-3/unstable/dports/gnome/gnome-desktop/Portfile 2014-05-30 20:50:43 UTC (rev 120511)
@@ -4,7 +4,7 @@
PortSystem 1.0
name gnome-desktop
-version 3.13.1
+version 3.13.2
set branch [join [lrange [split ${version} .] 0 1] .]
maintainers devans openmaintainer
categories gnome
@@ -24,8 +24,8 @@
use_xz yes
-checksums rmd160 e224b37ddaf066571c43135892f158a102e45792 \
- sha256 cc62cc5e5f4f03221cbbd36d6c5098fff7f0d6330137af8010cab0aa294f81a1
+checksums rmd160 10e91055c4f15731e1d8494f9dbbf30527e4c3fd \
+ sha256 ea4b26a778e2732b6515cc45787ae0720c7cbe4172a0ee4037a7bfefbbd1df9e
depends_build port:pkgconfig \
port:intltool \
Modified: users/devans/GNOME-3/unstable/dports/gnome/gnome-desktop/files/patch-libgnome-destktop-libgsystem.diff
===================================================================
--- users/devans/GNOME-3/unstable/dports/gnome/gnome-desktop/files/patch-libgnome-destktop-libgsystem.diff 2014-05-30 20:42:12 UTC (rev 120510)
+++ users/devans/GNOME-3/unstable/dports/gnome/gnome-desktop/files/patch-libgnome-destktop-libgsystem.diff 2014-05-30 20:50:43 UTC (rev 120511)
@@ -53,1636 +53,6 @@
return TRUE;
}
-diff -urN libgnome-desktop/libgsystem.orig/gsystem-file-utils.c.orig libgnome-desktop/libgsystem/gsystem-file-utils.c.orig
---- libgnome-desktop/libgsystem.orig/gsystem-file-utils.c.orig 1969-12-31 16:00:00.000000000 -0800
-+++ libgnome-desktop/libgsystem/gsystem-file-utils.c.orig 2014-01-15 13:06:25.000000000 -0800
-@@ -0,0 +1,1626 @@
-+/* -*- mode: C; c-file-style: "gnu"; indent-tabs-mode: nil; -*-
-+ *
-+ * Copyright (C) 2012 William Jon McCann <mccann at redhat.com>
-+ * Copyright (C) 2012 Colin Walters <walters at verbum.org>
-+ *
-+ * This library is free software; you can redistribute it and/or
-+ * modify it under the terms of the GNU Lesser General Public
-+ * License as published by the Free Software Foundation; either
-+ * version 2 of the License, or (at your option) any later version.
-+ *
-+ * This library is distributed in the hope that it will be useful,
-+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
-+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-+ * Lesser General Public License for more details.
-+ *
-+ * You should have received a copy of the GNU Lesser General Public
-+ * License along with this library; if not, write to the
-+ * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
-+ * Boston, MA 02111-1307, USA.
-+ */
-+
-+#include "config.h"
-+
-+#ifndef _GNU_SOURCE
-+#define _GNU_SOURCE
-+#endif
-+
-+#include <string.h>
-+
-+#define _GSYSTEM_NO_LOCAL_ALLOC
-+#include "libgsystem.h"
-+#include "gsystem-glib-compat.h"
-+#include <glib/gstdio.h>
-+#include <gio/gunixinputstream.h>
-+#include <gio/gfiledescriptorbased.h>
-+#include <gio/gunixoutputstream.h>
-+#include <glib-unix.h>
-+#include <limits.h>
-+#include <dirent.h>
-+#ifdef GSYSTEM_CONFIG_XATTRS
-+#include <attr/xattr.h>
-+#endif
-+
-+static int
-+close_nointr (int fd)
-+{
-+ int res;
-+ /* Note this is NOT actually a retry loop.
-+ * See: https://bugzilla.gnome.org/show_bug.cgi?id=682819
-+ */
-+ res = close (fd);
-+ /* Just ignore EINTR...on Linux, retrying is wrong. */
-+ if (res == EINTR)
-+ res = 0;
-+ return res;
-+}
-+
-+static void
-+close_nointr_noerror (int fd)
-+{
-+ (void) close_nointr (fd);
-+}
-+
-+static int
-+open_nointr (const char *path, int flags, mode_t mode)
-+{
-+ int res;
-+ do
-+ res = open (path, flags, mode);
-+ while (G_UNLIKELY (res == -1 && errno == EINTR));
-+ return res;
-+}
-+
-+static inline void
-+_set_error_from_errno (GError **error)
-+{
-+ int errsv = errno;
-+ g_set_error_literal (error, G_IO_ERROR, g_io_error_from_errno (errsv),
-+ g_strerror (errsv));
-+}
-+
-+/**
-+ * gs_file_openat_noatime:
-+ * @dfd: File descriptor for directory
-+ * @name: Pathname, relative to @dfd
-+ * @ret_fd: (out): Returned file descriptor
-+ * @cancellable: Cancellable
-+ * @error: Error
-+ *
-+ * Wrapper for openat() using %O_RDONLY with %O_NOATIME if available.
-+ */
-+gboolean
-+gs_file_openat_noatime (int dfd,
-+ const char *name,
-+ int *ret_fd,
-+ GCancellable *cancellable,
-+ GError **error)
-+{
-+ int fd;
-+
-+#ifdef O_NOATIME
-+ do
-+ fd = openat (dfd, name, O_RDONLY | O_NOATIME, 0);
-+ while (G_UNLIKELY (fd == -1 && errno == EINTR));
-+ /* Only the owner or superuser may use O_NOATIME; so we may get
-+ * EPERM. EINVAL may happen if the kernel is really old...
-+ */
-+ if (fd == -1 && (errno == EPERM || errno == EINVAL))
-+#endif
-+ do
-+ fd = openat (dfd, name, O_RDONLY, 0);
-+ while (G_UNLIKELY (fd == -1 && errno == EINTR));
-+
-+ if (fd == -1)
-+ {
-+ _set_error_from_errno (error);
-+ return FALSE;
-+ }
-+ else
-+ {
-+ *ret_fd = fd;
-+ return TRUE;
-+ }
-+}
-+
-+/**
-+ * gs_file_read_noatime:
-+ * @file: a #GFile
-+ * @cancellable: a #GCancellable
-+ * @error: a #GError
-+ *
-+ * Like g_file_read(), but try to avoid updating the file's
-+ * access time. This should be used by background scanning
-+ * components such as search indexers, antivirus programs, etc.
-+ *
-+ * Returns: (transfer full): A new input stream, or %NULL on error
-+ */
-+GInputStream *
-+gs_file_read_noatime (GFile *file,
-+ GCancellable *cancellable,
-+ GError **error)
-+{
-+ const char *path = NULL;
-+ int fd;
-+
-+ if (g_cancellable_set_error_if_cancelled (cancellable, error))
-+ return NULL;
-+
-+ path = gs_file_get_path_cached (file);
-+ if (path == NULL)
-+ {
-+ char *uri;
-+ uri = g_file_get_uri (file);
-+ g_set_error (error, G_FILE_ERROR, G_FILE_ERROR_NOENT,
-+ "%s has no associated path", uri);
-+ g_free (uri);
-+ return NULL;
-+ }
-+
-+ if (!gs_file_openat_noatime (AT_FDCWD, path, &fd, cancellable, error))
-+ return NULL;
-+
-+ return g_unix_input_stream_new (fd, TRUE);
-+}
-+
-+/**
-+ * gs_stream_fstat:
-+ * @stream: A stream containing a Unix file descriptor
-+ * @stbuf: Memory location to write stat buffer
-+ * @cancellable:
-+ * @error:
-+ *
-+ * Some streams created via libgsystem are #GUnixInputStream; these do
-+ * not support e.g. g_file_input_stream_query_info(). This function
-+ * allows dropping to the raw unix fstat() call for these types of
-+ * streams, while still conveniently wrapped with the normal GLib
-+ * handling of @cancellable and @error.
-+ */
-+gboolean
-+gs_stream_fstat (GFileDescriptorBased *stream,
-+ struct stat *stbuf,
-+ GCancellable *cancellable,
-+ GError **error)
-+{
-+ gboolean ret = FALSE;
-+ int fd;
-+
-+ if (g_cancellable_set_error_if_cancelled (cancellable, error))
-+ goto out;
-+
-+ fd = g_file_descriptor_based_get_fd (stream);
-+
-+ if (fstat (fd, stbuf) == -1)
-+ {
-+ _set_error_from_errno (error);
-+ goto out;
-+ }
-+
-+ ret = TRUE;
-+ out:
-+ return ret;
-+}
-+
-+/**
-+ * gs_file_map_noatime: (skip)
-+ * @file: a #GFile
-+ * @cancellable: a #GCancellable
-+ * @error: a #GError
-+ *
-+ * Like g_mapped_file_new(), but try to avoid updating the file's
-+ * access time. This should be used by background scanning
-+ * components such as search indexers, antivirus programs, etc.
-+ *
-+ * Returns: (transfer full): A new mapped file, or %NULL on error
-+ */
-+GMappedFile *
-+gs_file_map_noatime (GFile *file,
-+ GCancellable *cancellable,
-+ GError **error)
-+{
-+ const char *path;
-+ int fd;
-+ GMappedFile *ret;
-+
-+ if (g_cancellable_set_error_if_cancelled (cancellable, error))
-+ return NULL;
-+
-+ path = gs_file_get_path_cached (file);
-+ if (path == NULL)
-+ return NULL;
-+
-+ if (!gs_file_openat_noatime (AT_FDCWD, path, &fd, cancellable, error))
-+ return NULL;
-+
-+ ret = g_mapped_file_new_from_fd (fd, FALSE, error);
-+ close_nointr_noerror (fd); /* Ignore errors - we always want to close */
-+
-+ return ret;
-+}
-+
-+#if GLIB_CHECK_VERSION(2,34,0)
-+/**
-+ * gs_file_map_readonly:
-+ * @file: a #GFile
-+ * @cancellable:
-+ * @error:
-+ *
-+ * Return a #GBytes which references a readonly view of the contents of
-+ * @file. This function uses #GMappedFile internally.
-+ *
-+ * Returns: (transfer full): a newly referenced #GBytes
-+ */
-+GBytes *
-+gs_file_map_readonly (GFile *file,
-+ GCancellable *cancellable,
-+ GError **error)
-+{
-+ GMappedFile *mfile;
-+ GBytes *ret;
-+
-+ if (g_cancellable_set_error_if_cancelled (cancellable, error))
-+ return NULL;
-+
-+ mfile = g_mapped_file_new (gs_file_get_path_cached (file), FALSE, error);
-+ if (!mfile)
-+ return NULL;
-+
-+ ret = g_mapped_file_get_bytes (mfile);
-+ g_mapped_file_unref (mfile);
-+ return ret;
-+}
-+#endif
-+
-+/**
-+ * gs_file_sync_data:
-+ * @file: a #GFile
-+ * @cancellable:
-+ * @error:
-+ *
-+ * Wraps the UNIX fsync() function (or fdatasync(), if available), which
-+ * ensures that the data in @file is on non-volatile storage.
-+ */
-+gboolean
-+gs_file_sync_data (GFile *file,
-+ GCancellable *cancellable,
-+ GError **error)
-+{
-+ gboolean ret = FALSE;
-+ int res;
-+ int fd = -1;
-+
-+ if (!gs_file_openat_noatime (AT_FDCWD, gs_file_get_path_cached (file), &fd,
-+ cancellable, error))
-+ goto out;
-+
-+ do
-+ {
-+#ifdef __linux
-+ res = fdatasync (fd);
-+#else
-+ res = fsync (fd);
-+#endif
-+ }
-+ while (G_UNLIKELY (res != 0 && errno == EINTR));
-+ if (res != 0)
-+ {
-+ _set_error_from_errno (error);
-+ goto out;
-+ }
-+
-+ res = close_nointr (fd);
-+ if (res != 0)
-+ {
-+ _set_error_from_errno (error);
-+ goto out;
-+ }
-+ fd = -1;
-+
-+ ret = TRUE;
-+ out:
-+ if (fd != -1)
-+ close_nointr_noerror (fd);
-+ return ret;
-+}
-+
-+/**
-+ * gs_file_create:
-+ * @file: Path to non-existent file
-+ * @mode: Unix access permissions
-+ * @out_stream: (out) (transfer full) (allow-none): Newly created output, or %NULL
-+ * @cancellable: a #GCancellable
-+ * @error: a #GError
-+ *
-+ * Like g_file_create(), except this function allows specifying the
-+ * access mode. This allows atomically creating private files.
-+ */
-+gboolean
-+gs_file_create (GFile *file,
-+ int mode,
-+ GOutputStream **out_stream,
-+ GCancellable *cancellable,
-+ GError **error)
-+{
-+ gboolean ret = FALSE;
-+ int fd;
-+ GOutputStream *ret_stream = NULL;
-+
-+ fd = open_nointr (gs_file_get_path_cached (file), O_WRONLY | O_CREAT | O_EXCL, mode);
-+ if (fd < 0)
-+ {
-+ _set_error_from_errno (error);
-+ goto out;
-+ }
-+
-+ if (fchmod (fd, mode) < 0)
-+ {
-+ close (fd);
-+ _set_error_from_errno (error);
-+ goto out;
-+ }
-+
-+ ret_stream = g_unix_output_stream_new (fd, TRUE);
-+
-+ ret = TRUE;
-+ gs_transfer_out_value (out_stream, &ret_stream);
-+ out:
-+ g_clear_object (&ret_stream);
-+ return ret;
-+}
-+
-+static const char *
-+get_default_tmp_prefix (void)
-+{
-+ static char *tmpprefix = NULL;
-+
-+ if (g_once_init_enter (&tmpprefix))
-+ {
-+ const char *prgname = g_get_prgname ();
-+ const char *p;
-+ char *prefix;
-+ char *iter;
-+
-+ if (prgname)
-+ {
-+ p = strrchr (prgname, '/');
-+ if (p)
-+ prgname = p + 1;
-+ }
-+ else
-+ prgname = "";
-+
-+ prefix = g_strdup_printf ("tmp-%s%u-", prgname, getuid ());
-+ for (iter = prefix; *iter; iter++)
-+ {
-+ char c = *iter;
-+ if (c == ' ')
-+ *iter = '_';
-+ }
-+
-+ g_once_init_leave (&tmpprefix, prefix);
-+ }
-+
-+ return tmpprefix;
-+}
-+
-+/**
-+ * gs_fileutil_gen_tmp_name:
-+ * @prefix: (allow-none): String prepended to the result
-+ * @suffix: (allow-none): String suffixed to the result
-+ *
-+ * Generate a name suitable for use as a temporary file. This
-+ * function does no I/O; it is not guaranteed that a file with that
-+ * name does not exist.
-+ */
-+char *
-+gs_fileutil_gen_tmp_name (const char *prefix,
-+ const char *suffix)
-+{
-+ static const char table[] = "ABCEDEFGHIJKLMNOPQRSTUVWXYZabcedefghijklmnopqrstuvwxyz0123456789";
-+ GString *str = g_string_new ("");
-+ guint i;
-+
-+ if (!prefix)
-+ prefix = get_default_tmp_prefix ();
-+ if (!suffix)
-+ suffix = "tmp";
-+
-+ g_string_append (str, prefix);
-+ for (i = 0; i < 8; i++)
-+ {
-+ int offset = g_random_int_range (0, sizeof (table) - 1);
-+ g_string_append_c (str, (guint8)table[offset]);
-+ }
-+ g_string_append_c (str, '.');
-+ g_string_append (str, suffix);
-+
-+ return g_string_free (str, FALSE);
-+}
-+
-+/**
-+ * gs_file_open_dir_fd:
-+ * @path: Directory name
-+ * @out_fd: (out): File descriptor for directory
-+ * @cancellable: Cancellable
-+ * @error: Error
-+ *
-+ * On success, sets @out_fd to a file descriptor for the directory
-+ * that can be used with UNIX functions such as openat().
-+ */
-+gboolean
-+gs_file_open_dir_fd (GFile *path,
-+ int *out_fd,
-+ GCancellable *cancellable,
-+ GError **error)
-+{
-+ /* Linux specific probably */
-+ *out_fd = open (gs_file_get_path_cached (path), O_RDONLY | O_NONBLOCK | O_DIRECTORY | O_CLOEXEC);
-+ if (*out_fd == -1)
-+ {
-+ _set_error_from_errno (error);
-+ return FALSE;
-+ }
-+ return TRUE;
-+}
-+
-+/**
-+ * gs_file_open_in_tmpdir_at:
-+ * @tmpdir_fd: Directory to place temporary file
-+ * @mode: Default mode (will be affected by umask)
-+ * @out_name: (out) (transfer full): Newly created file name
-+ * @out_stream: (out) (transfer full) (allow-none): Newly created output stream
-+ * @cancellable:
-+ * @error:
-+ *
-+ * Like g_file_open_tmp(), except the file will be created in the
-+ * provided @tmpdir, and allows specification of the Unix @mode, which
-+ * means private files may be created. Return values will be stored
-+ * in @out_name, and optionally @out_stream.
-+ */
-+gboolean
-+gs_file_open_in_tmpdir_at (int tmpdir_fd,
-+ int mode,
-+ char **out_name,
-+ GOutputStream **out_stream,
-+ GCancellable *cancellable,
-+ GError **error)
-+{
-+ gboolean ret = FALSE;
-+ const int max_attempts = 128;
-+ int i;
-+ char *tmp_name = NULL;
-+ int fd;
-+
-+ /* 128 attempts seems reasonable... */
-+ for (i = 0; i < max_attempts; i++)
-+ {
-+ g_free (tmp_name);
-+ tmp_name = gs_fileutil_gen_tmp_name (NULL, NULL);
-+
-+ do
-+ fd = openat (tmpdir_fd, tmp_name, O_WRONLY | O_CREAT | O_EXCL, mode);
-+ while (fd == -1 && errno == EINTR);
-+ if (fd < 0 && errno != EEXIST)
-+ {
-+ _set_error_from_errno (error);
-+ goto out;
-+ }
-+ else if (fd != -1)
-+ break;
-+ }
-+ if (i == max_attempts)
-+ {
-+ g_set_error (error, G_IO_ERROR, G_IO_ERROR_FAILED,
-+ "Exhausted attempts to open temporary file");
-+ goto out;
-+ }
-+
-+ ret = TRUE;
-+ gs_transfer_out_value (out_name, &tmp_name);
-+ if (out_stream)
-+ *out_stream = g_unix_output_stream_new (fd, TRUE);
-+ else
-+ (void) close (fd);
-+ out:
-+ g_free (tmp_name);
-+ return ret;
-+}
-+
-+/**
-+ * gs_file_open_in_tmpdir:
-+ * @tmpdir: Directory to place temporary file
-+ * @mode: Default mode (will be affected by umask)
-+ * @out_file: (out) (transfer full): Newly created file path
-+ * @out_stream: (out) (transfer full) (allow-none): Newly created output stream
-+ * @cancellable:
-+ * @error:
-+ *
-+ * Like g_file_open_tmp(), except the file will be created in the
-+ * provided @tmpdir, and allows specification of the Unix @mode, which
-+ * means private files may be created. Return values will be stored
-+ * in @out_file, and optionally @out_stream.
-+ */
-+gboolean
-+gs_file_open_in_tmpdir (GFile *tmpdir,
-+ int mode,
-+ GFile **out_file,
-+ GOutputStream **out_stream,
-+ GCancellable *cancellable,
-+ GError **error)
-+{
-+ gboolean ret = FALSE;
-+ DIR *d = NULL;
-+ int dfd = -1;
-+ char *tmp_name = NULL;
-+ GOutputStream *ret_stream = NULL;
-+
-+ d = opendir (gs_file_get_path_cached (tmpdir));
-+ if (!d)
-+ {
-+ _set_error_from_errno (error);
-+ goto out;
-+ }
-+ dfd = dirfd (d);
-+
-+ if (!gs_file_open_in_tmpdir_at (dfd, mode, &tmp_name,
-+ out_stream ? &ret_stream : NULL,
-+ cancellable, error))
-+ goto out;
-+
-+ ret = TRUE;
-+ *out_file = g_file_get_child (tmpdir, tmp_name);
-+ gs_transfer_out_value (out_stream, &ret_stream);
-+ out:
-+ if (d) (void) closedir (d);
-+ g_clear_object (&ret_stream);
-+ g_free (tmp_name);
-+ return ret;
-+}
-+
-+static gboolean
-+linkcopy_internal_attempt (GFile *src,
-+ GFile *dest,
-+ GFile *dest_parent,
-+ GFileCopyFlags flags,
-+ gboolean sync_data,
-+ gboolean enable_guestfs_fuse_workaround,
-+ gboolean *out_try_again,
-+ GCancellable *cancellable,
-+ GError **error)
-+{
-+ gboolean ret = FALSE;
-+ int res;
-+ char *tmp_name = NULL;
-+ GFile *tmp_dest = NULL;
-+
-+ if (g_cancellable_set_error_if_cancelled (cancellable, error))
-+ goto out;
-+
-+ tmp_name = gs_fileutil_gen_tmp_name (NULL, NULL);
-+ tmp_dest = g_file_get_child (dest_parent, tmp_name);
-+
-+ res = link (gs_file_get_path_cached (src), gs_file_get_path_cached (tmp_dest));
-+ if (res == -1)
-+ {
-+ if (errno == EEXIST)
-+ {
-+ /* Nothing, fall through */
-+ *out_try_again = TRUE;
-+ ret = TRUE;
-+ goto out;
-+ }
-+ else if (errno == EXDEV || errno == EMLINK || errno == EPERM
-+ || (enable_guestfs_fuse_workaround && errno == ENOENT))
-+ {
-+ if (!g_file_copy (src, tmp_dest, flags,
-+ cancellable, NULL, NULL, error))
-+ goto out;
-+ }
-+ else
-+ {
-+ _set_error_from_errno (error);
-+ goto out;
-+ }
-+ }
-+
-+ if (sync_data)
-+ {
-+ /* Now, we need to fsync */
-+ if (!gs_file_sync_data (tmp_dest, cancellable, error))
-+ goto out;
-+ }
-+
-+ if (!gs_file_rename (tmp_dest, dest, cancellable, error))
-+ goto out;
-+
-+ ret = TRUE;
-+ *out_try_again = FALSE;
-+ out:
-+ g_clear_pointer (&tmp_name, g_free);
-+ g_clear_object (&tmp_dest);
-+ return ret;
-+}
-+
-+static gboolean
-+linkcopy_internal (GFile *src,
-+ GFile *dest,
-+ GFileCopyFlags flags,
-+ gboolean sync_data,
-+ GCancellable *cancellable,
-+ GError **error)
-+{
-+ gboolean ret = FALSE;
-+ gboolean dest_exists;
-+ int i;
-+ gboolean enable_guestfs_fuse_workaround;
-+ struct stat src_stat;
-+ struct stat dest_stat;
-+ GFile *dest_parent = NULL;
-+
-+ flags |= G_FILE_COPY_NOFOLLOW_SYMLINKS;
-+
-+ g_return_val_if_fail ((flags & (G_FILE_COPY_BACKUP | G_FILE_COPY_TARGET_DEFAULT_PERMS)) == 0, FALSE);
-+
-+ dest_parent = g_file_get_parent (dest);
-+
-+ if (lstat (gs_file_get_path_cached (src), &src_stat) == -1)
-+ {
-+ int errsv = errno;
-+ g_set_error_literal (error, G_IO_ERROR, g_io_error_from_errno (errno),
-+ g_strerror (errsv));
-+ goto out;
-+ }
-+
-+ if (lstat (gs_file_get_path_cached (dest), &dest_stat) == -1)
-+ dest_exists = FALSE;
-+ else
-+ dest_exists = TRUE;
-+
-+ if (((flags & G_FILE_COPY_OVERWRITE) == 0) && dest_exists)
-+ {
-+ g_set_error_literal (error, G_IO_ERROR, G_IO_ERROR_EXISTS,
-+ "File exists");
-+ goto out;
-+ }
-+
-+ /* Work around the behavior of link() where it's a no-op if src and
-+ * dest are the same.
-+ */
-+ if (dest_exists &&
-+ src_stat.st_dev == dest_stat.st_dev &&
-+ src_stat.st_ino == dest_stat.st_ino)
-+ {
-+ ret = TRUE;
-+ goto out;
-+ }
-+
-+ enable_guestfs_fuse_workaround = getenv ("LIBGSYSTEM_ENABLE_GUESTFS_FUSE_WORKAROUND") != NULL;
-+
-+ /* 128 attempts seems reasonable... */
-+ for (i = 0; i < 128; i++)
-+ {
-+ gboolean tryagain = FALSE;
-+
-+ if (!linkcopy_internal_attempt (src, dest, dest_parent,
-+ flags, sync_data,
-+ enable_guestfs_fuse_workaround,
-+ &tryagain,
-+ cancellable, error))
-+ goto out;
-+
-+ if (!tryagain)
-+ break;
-+ }
-+
-+ ret = TRUE;
-+ out:
-+ g_clear_object (&dest_parent);
-+ return ret;
-+
-+}
-+
-+/**
-+ * gs_file_linkcopy:
-+ * @src: Source file
-+ * @dest: Destination file
-+ * @flags: flags
-+ * @cancellable:
-+ * @error:
-+ *
-+ * First tries to use the UNIX link() call, but if the files are on
-+ * separate devices, fall back to copying via g_file_copy().
-+ *
-+ * The given @flags have different semantics than those documented
-+ * when hardlinking is used. Specifically, both
-+ * #G_FILE_COPY_TARGET_DEFAULT_PERMS and #G_FILE_COPY_BACKUP are not
-+ * supported. #G_FILE_COPY_NOFOLLOW_SYMLINKS treated as if it was
-+ * always given - if you want to follow symbolic links, you will need
-+ * to resolve them manually.
-+ *
-+ * Beware - do not use this function if @src may be modified, and it's
-+ * undesirable for the changes to also be reflected in @dest. The
-+ * best use of this function is in the case where @src and @dest are
-+ * read-only, or where @src is a temporary file, and you want to put
-+ * it in the final place.
-+ */
-+gboolean
-+gs_file_linkcopy (GFile *src,
-+ GFile *dest,
-+ GFileCopyFlags flags,
-+ GCancellable *cancellable,
-+ GError **error)
-+{
-+ return linkcopy_internal (src, dest, flags, FALSE, cancellable, error);
-+}
-+
-+/**
-+ * gs_file_linkcopy_sync_data:
-+ * @src: Source file
-+ * @dest: Destination file
-+ * @flags: flags
-+ * @cancellable:
-+ * @error:
-+ *
-+ * This function is similar to gs_file_linkcopy(), except it also uses
-+ * gs_file_sync_data() to ensure that @dest is in stable storage
-+ * before it is moved into place.
-+ */
-+gboolean
-+gs_file_linkcopy_sync_data (GFile *src,
-+ GFile *dest,
-+ GFileCopyFlags flags,
-+ GCancellable *cancellable,
-+ GError **error)
-+{
-+ return linkcopy_internal (src, dest, flags, TRUE, cancellable, error);
-+}
-+
-+static char *
-+gs_file_get_target_path (GFile *file)
-+{
-+ GFileInfo *info;
-+ const char *target;
-+ char *path;
-+
-+ info = g_file_query_info (file, G_FILE_ATTRIBUTE_STANDARD_TARGET_URI, G_FILE_QUERY_INFO_NONE, NULL, NULL);
-+ if (info == NULL)
-+ return NULL;
-+ target = g_file_info_get_attribute_string (info, G_FILE_ATTRIBUTE_STANDARD_TARGET_URI);
-+ path = g_filename_from_uri (target, NULL, NULL);
-+ g_object_unref (info);
-+
-+ return path;
-+}
-+
-+G_LOCK_DEFINE_STATIC (pathname_cache);
-+
-+/**
-+ * gs_file_get_path_cached:
-+ *
-+ * Like g_file_get_path(), but returns a constant copy so callers
-+ * don't need to free the result.
-+ */
-+const char *
-+gs_file_get_path_cached (GFile *file)
-+{
-+ const char *path;
-+ static GQuark _file_path_quark = 0;
-+
-+ if (G_UNLIKELY (_file_path_quark) == 0)
-+ _file_path_quark = g_quark_from_static_string ("gsystem-file-path");
-+
-+ G_LOCK (pathname_cache);
-+
-+ path = g_object_get_qdata ((GObject*)file, _file_path_quark);
-+ if (!path)
-+ {
-+ if (g_file_has_uri_scheme (file, "trash") ||
-+ g_file_has_uri_scheme (file, "recent"))
-+ path = gs_file_get_target_path (file);
-+ else
-+ path = g_file_get_path (file);
-+ if (path == NULL)
-+ {
-+ G_UNLOCK (pathname_cache);
-+ return NULL;
-+ }
-+ g_object_set_qdata_full ((GObject*)file, _file_path_quark, (char*)path, (GDestroyNotify)g_free);
-+ }
-+
-+ G_UNLOCK (pathname_cache);
-+
-+ return path;
-+}
-+
-+/**
-+ * gs_file_get_basename_cached:
-+ *
-+ * Like g_file_get_basename(), but returns a constant copy so callers
-+ * don't need to free the result.
-+ */
-+const char *
-+gs_file_get_basename_cached (GFile *file)
-+{
-+ const char *name;
-+ static GQuark _file_name_quark = 0;
-+
-+ if (G_UNLIKELY (_file_name_quark) == 0)
-+ _file_name_quark = g_quark_from_static_string ("gsystem-file-name");
-+
-+ G_LOCK (pathname_cache);
-+
-+ name = g_object_get_qdata ((GObject*)file, _file_name_quark);
-+ if (!name)
-+ {
-+ name = g_file_get_basename (file);
-+ g_object_set_qdata_full ((GObject*)file, _file_name_quark, (char*)name, (GDestroyNotify)g_free);
-+ }
-+
-+ G_UNLOCK (pathname_cache);
-+
-+ return name;
-+}
-+
-+/**
-+ * gs_file_enumerator_iterate:
-+ * @direnum: an open #GFileEnumerator
-+ * @out_info: (out) (transfer none) (allow-none): Output location for the next #GFileInfo
-+ * @out_child: (out) (transfer none) (allow-none): Output location for the next #GFile, or %NULL
-+ * @cancellable: a #GCancellable
-+ * @error: a #GError
-+ *
-+ * This is a version of g_file_enumerator_next_file() that's easier to
-+ * use correctly from C programs. With g_file_enumerator_next_file(),
-+ * the gboolean return value signifies "end of iteration or error", which
-+ * requires allocation of a temporary #GError.
-+ *
-+ * In contrast, with this function, a %FALSE return from
-+ * gs_file_enumerator_iterate() <emphasis>always</emphasis> means
-+ * "error". End of iteration is signaled by @out_info being %NULL.
-+ *
-+ * Another crucial difference is that the references for @out_info and
-+ * @out_child are owned by @direnum (they are cached as hidden
-+ * properties). You must not unref them in your own code. This makes
-+ * memory management significantly easier for C code in combination
-+ * with loops.
-+ *
-+ * Finally, this function optionally allows retrieving a #GFile as
-+ * well.
-+ *
-+ * The code pattern for correctly using gs_file_enumerator_iterate() from C
-+ * is:
-+ *
-+ * |[
-+ * direnum = g_file_enumerate_children (file, ...);
-+ * while (TRUE)
-+ * {
-+ * GFileInfo *info;
-+ * if (!gs_file_enumerator_iterate (direnum, &info, NULL, cancellable, error))
-+ * goto out;
-+ * if (!info)
-+ * break;
-+ * ... do stuff with "info"; do not unref it! ...
-+ * }
-+ *
-+ * out:
-+ * g_object_unref (direnum); // Note: frees the last @info
-+ * ]|
-+ */
-+gboolean
-+gs_file_enumerator_iterate (GFileEnumerator *direnum,
-+ GFileInfo **out_info,
-+ GFile **out_child,
-+ GCancellable *cancellable,
-+ GError **error)
-+{
-+ gboolean ret = FALSE;
-+ GError *temp_error = NULL;
-+
-+ static GQuark cached_info_quark;
-+ static GQuark cached_child_quark;
-+ static gsize quarks_initialized;
-+
-+ g_return_val_if_fail (direnum != NULL, FALSE);
-+ g_return_val_if_fail (out_info != NULL, FALSE);
-+
-+ if (g_once_init_enter (&quarks_initialized))
-+ {
-+ cached_info_quark = g_quark_from_static_string ("gsystem-cached-info");
-+ cached_child_quark = g_quark_from_static_string ("gsystem-cached-child");
-+ g_once_init_leave (&quarks_initialized, 1);
-+ }
-+
-+
-+ *out_info = g_file_enumerator_next_file (direnum, cancellable, &temp_error);
-+ if (out_child)
-+ *out_child = NULL;
-+ if (temp_error != NULL)
-+ {
-+ g_propagate_error (error, temp_error);
-+ goto out;
-+ }
-+ else if (*out_info != NULL)
-+ {
-+ g_object_set_qdata_full ((GObject*)direnum, cached_info_quark, *out_info, (GDestroyNotify)g_object_unref);
-+ if (out_child != NULL)
-+ {
-+ const char *name = g_file_info_get_name (*out_info);
-+ *out_child = g_file_get_child (g_file_enumerator_get_container (direnum), name);
-+ g_object_set_qdata_full ((GObject*)direnum, cached_child_quark, *out_child, (GDestroyNotify)g_object_unref);
-+ }
-+ }
-+
-+ ret = TRUE;
-+ out:
-+ return ret;
-+}
-+
-+/**
-+ * gs_file_rename:
-+ * @from: Current path
-+ * @to: New path
-+ * @cancellable: a #GCancellable
-+ * @error: a #GError
-+ *
-+ * This function wraps the raw Unix function rename().
-+ *
-+ * Returns: %TRUE on success, %FALSE on error
-+ */
-+gboolean
-+gs_file_rename (GFile *from,
-+ GFile *to,
-+ GCancellable *cancellable,
-+ GError **error)
-+{
-+ if (g_cancellable_set_error_if_cancelled (cancellable, error))
-+ return FALSE;
-+
-+ if (rename (gs_file_get_path_cached (from),
-+ gs_file_get_path_cached (to)) < 0)
-+ {
-+ _set_error_from_errno (error);
-+ return FALSE;
-+ }
-+ return TRUE;
-+}
-+
-+/**
-+ * gs_file_unlink:
-+ * @path: Path to file
-+ * @cancellable: a #GCancellable
-+ * @error: a #GError
-+ *
-+ * Like g_file_delete(), except this function does not follow Unix
-+ * symbolic links, and will delete a symbolic link even if it's
-+ * pointing to a nonexistent file. In other words, this function
-+ * merely wraps the raw Unix function unlink().
-+ *
-+ * Returns: %TRUE on success, %FALSE on error
-+ */
-+gboolean
-+gs_file_unlink (GFile *path,
-+ GCancellable *cancellable,
-+ GError **error)
-+{
-+ if (g_cancellable_set_error_if_cancelled (cancellable, error))
-+ return FALSE;
-+
-+ if (unlink (gs_file_get_path_cached (path)) < 0)
-+ {
-+ _set_error_from_errno (error);
-+ return FALSE;
-+ }
-+ return TRUE;
-+}
-+
-+static gboolean
-+chown_internal (GFile *path,
-+ gboolean dereference_links,
-+ guint32 owner,
-+ guint32 group,
-+ GCancellable *cancellable,
-+ GError **error)
-+{
-+ gboolean ret = FALSE;
-+ int res;
-+
-+ if (g_cancellable_set_error_if_cancelled (cancellable, error))
-+ return FALSE;
-+
-+ do
-+ if (dereference_links)
-+ res = chown (gs_file_get_path_cached (path), owner, group);
-+ else
-+ res = lchown (gs_file_get_path_cached (path), owner, group);
-+ while (G_UNLIKELY (res != 0 && errno == EINTR));
-+
-+ if (res < 0)
-+ {
-+ _set_error_from_errno (error);
-+ goto out;
-+ }
-+
-+ ret = TRUE;
-+ out:
-+ return ret;
-+}
-+
-+/**
-+ * gs_file_chown:
-+ * @path: Path to file
-+ * @owner: UNIX owner
-+ * @group: UNIX group
-+ * @cancellable: a #GCancellable
-+ * @error: a #GError
-+ *
-+ * Merely wraps UNIX chown().
-+ *
-+ * Returns: %TRUE on success, %FALSE on error
-+ */
-+gboolean
-+gs_file_chown (GFile *path,
-+ guint32 owner,
-+ guint32 group,
-+ GCancellable *cancellable,
-+ GError **error)
-+{
-+ return chown_internal (path, TRUE, owner, group, cancellable, error);
-+}
-+
-+/**
-+ * gs_file_lchown:
-+ * @path: Path to file
-+ * @owner: UNIX owner
-+ * @group: UNIX group
-+ * @cancellable: a #GCancellable
-+ * @error: a #GError
-+ *
-+ * Merely wraps UNIX lchown().
-+ *
-+ * Returns: %TRUE on success, %FALSE on error
-+ */
-+gboolean
-+gs_file_lchown (GFile *path,
-+ guint32 owner,
-+ guint32 group,
-+ GCancellable *cancellable,
-+ GError **error)
-+{
-+ return chown_internal (path, FALSE, owner, group, cancellable, error);
-+}
-+
-+/**
-+ * gs_file_chmod:
-+ * @path: Path to file
-+ * @mode: UNIX mode
-+ * @cancellable: a #GCancellable
-+ * @error: a #GError
-+ *
-+ * Merely wraps UNIX chmod().
-+ *
-+ * Returns: %TRUE on success, %FALSE on error
-+ */
-+gboolean
-+gs_file_chmod (GFile *path,
-+ guint mode,
-+ GCancellable *cancellable,
-+ GError **error)
-+{
-+ gboolean ret = FALSE;
-+ int res;
-+
-+ if (g_cancellable_set_error_if_cancelled (cancellable, error))
-+ return FALSE;
-+
-+ do
-+ res = chmod (gs_file_get_path_cached (path), mode);
-+ while (G_UNLIKELY (res != 0 && errno == EINTR));
-+
-+ if (res < 0)
-+ {
-+ _set_error_from_errno (error);
-+ goto out;
-+ }
-+
-+ ret = TRUE;
-+ out:
-+ return ret;
-+}
-+
-+/**
-+ * gs_file_ensure_directory:
-+ * @dir: Path to create as directory
-+ * @with_parents: Also create parent directories
-+ * @cancellable: a #GCancellable
-+ * @error: a #GError
-+ *
-+ * Like g_file_make_directory(), except does not throw an error if the
-+ * directory already exists.
-+ */
-+gboolean
-+gs_file_ensure_directory (GFile *dir,
-+ gboolean with_parents,
-+ GCancellable *cancellable,
-+ GError **error)
-+{
-+ gboolean ret = FALSE;
-+ GError *temp_error = NULL;
-+ GFile *parent = NULL;
-+
-+ if (!g_file_make_directory (dir, cancellable, &temp_error))
-+ {
-+ if (with_parents &&
-+ g_error_matches (temp_error, G_IO_ERROR, G_IO_ERROR_NOT_FOUND))
-+ {
-+ g_clear_error (&temp_error);
-+
-+ parent = g_file_get_parent (dir);
-+ if (parent)
-+ {
-+ if (!gs_file_ensure_directory (parent, TRUE, cancellable, error))
-+ goto out;
-+ }
-+ if (!gs_file_ensure_directory (dir, FALSE, cancellable, error))
-+ goto out;
-+ }
-+ else if (!g_error_matches (temp_error, G_IO_ERROR, G_IO_ERROR_EXISTS))
-+ {
-+ g_propagate_error (error, temp_error);
-+ goto out;
-+ }
-+ else
-+ g_clear_error (&temp_error);
-+ }
-+
-+ ret = TRUE;
-+ out:
-+ g_clear_object (&parent);
-+ return ret;
-+}
-+
-+/**
-+ * gs_file_ensure_directory_mode:
-+ * @dir: Path to create as directory
-+ * @mode: Create directory with these permissions
-+ * @cancellable: a #GCancellable
-+ * @error: a #GError
-+ *
-+ * Wraps UNIX mkdir() function with support for @cancellable, and
-+ * uses @error instead of errno.
-+ */
-+gboolean
-+gs_file_ensure_directory_mode (GFile *dir,
-+ guint mode,
-+ GCancellable *cancellable,
-+ GError **error)
-+{
-+ if (g_cancellable_set_error_if_cancelled (cancellable, error))
-+ return FALSE;
-+
-+ if (mkdir (gs_file_get_path_cached (dir), mode) == -1 && errno != EEXIST)
-+ {
-+ _set_error_from_errno (error);
-+ return FALSE;
-+ }
-+ return TRUE;
-+}
-+
-+/**
-+ * gs_file_load_contents_utf8:
-+ * @file: Path to file whose contents must be UTF-8
-+ * @cancellable:
-+ * @error:
-+ *
-+ * Like g_file_load_contents(), except validates the contents are
-+ * UTF-8.
-+ */
-+gchar *
-+gs_file_load_contents_utf8 (GFile *file,
-+ GCancellable *cancellable,
-+ GError **error)
-+{
-+ gboolean ret = FALSE;
-+ gsize len;
-+ char *ret_contents = NULL;
-+
-+ if (!g_file_load_contents (file, cancellable, &ret_contents, &len,
-+ NULL, error))
-+ goto out;
-+ if (!g_utf8_validate (ret_contents, len, NULL))
-+ {
-+ g_set_error (error,
-+ G_IO_ERROR,
-+ G_IO_ERROR_INVALID_DATA,
-+ "Invalid UTF-8");
-+ goto out;
-+ }
-+
-+ ret = TRUE;
-+ out:
-+ if (!ret)
-+ {
-+ g_free (ret_contents);
-+ return NULL;
-+ }
-+ return ret_contents;
-+}
-+
-+static int
-+path_common_directory (char *one,
-+ char *two)
-+{
-+ int dir_index = 0;
-+ int i = 0;
-+
-+ while (*one && *two)
-+ {
-+ if (*one != *two)
-+ break;
-+ if (*one == '/')
-+ dir_index = i + 1;
-+
-+ one++;
-+ two++;
-+ i++;
-+ }
-+
-+ return dir_index;
-+}
-+
-+/**
-+ * gs_file_get_relpath:
-+ * @one: The first #GFile
-+ * @two: The second #GFile
-+ *
-+ * Like gs_file_get_relative_path(), but does not mandate that
-+ * the two files have any parent in common. This function will
-+ * instead insert "../" where appropriate.
-+ *
-+ * Returns: (transfer full): The relative path between the two.
-+ */
-+gchar *
-+gs_file_get_relpath (GFile *one,
-+ GFile *two)
-+{
-+ gchar *simple_path;
-+ gchar *one_path, *one_suffix;
-+ gchar *two_path, *two_suffix;
-+ GString *path;
-+ int i;
-+
-+ simple_path = g_file_get_relative_path (one, two);
-+ if (simple_path)
-+ return simple_path;
-+
-+ one_path = g_file_get_path (one);
-+ two_path = g_file_get_path (two);
-+
-+ i = path_common_directory (one_path, two_path);
-+ one_suffix = one_path + i;
-+ two_suffix = two_path + i;
-+
-+ path = g_string_new ("");
-+
-+ /* For every leftover path segment one has, append "../" so
-+ * that we reach the same directory. */
-+ while (*one_suffix)
-+ {
-+ g_string_append (path, "../");
-+ one_suffix = strchr (one_suffix, '/');
-+ if (one_suffix == NULL)
-+ break;
-+ one_suffix++;
-+ }
-+
-+ /* And now append the leftover stuff on two's side. */
-+ g_string_append (path, two_suffix);
-+
-+ g_free (one_path);
-+ g_free (two_path);
-+
-+ return g_string_free (path, FALSE);
-+}
-+
-+/**
-+ * gs_file_realpath:
-+ * @file: A #GFile
-+ *
-+ * Return a #GFile that contains the same path with symlinks
-+ * followed. That is, it's a #GFile whose path is the result
-+ * of calling realpath() on @file.
-+ *
-+ * Returns: (allow-none) (transfer full): A new #GFile or %NULL if @file is invalid
-+ */
-+GFile *
-+gs_file_realpath (GFile *file)
-+{
-+ gchar *path;
-+ gchar path_real[PATH_MAX];
-+
-+ path = g_file_get_path (file);
-+
-+ if (realpath ((const char *) path, path_real) == NULL)
-+ {
-+ g_free (path);
-+ return NULL;
-+ }
-+
-+ g_free (path);
-+ return g_file_new_for_path (path_real);
-+}
-+
-+#ifdef GSYSTEM_CONFIG_XATTRS
-+static char *
-+canonicalize_xattrs (char *xattr_string,
-+ size_t len)
-+{
-+ char *p;
-+ GSList *xattrs = NULL;
-+ GSList *iter;
-+ GString *result;
-+
-+ result = g_string_new (0);
-+
-+ p = xattr_string;
-+ while (p < xattr_string+len)
-+ {
-+ xattrs = g_slist_prepend (xattrs, p);
-+ p += strlen (p) + 1;
-+ }
-+
-+ xattrs = g_slist_sort (xattrs, (GCompareFunc) strcmp);
-+ for (iter = xattrs; iter; iter = iter->next) {
-+ g_string_append (result, iter->data);
-+ g_string_append_c (result, '\0');
-+ }
-+
-+ g_slist_free (xattrs);
-+ return g_string_free (result, FALSE);
-+}
-+
-+static GVariant *
-+variant_new_ay_bytes (GBytes *bytes)
-+{
-+ gsize size;
-+ gconstpointer data;
-+ data = g_bytes_get_data (bytes, &size);
-+ g_bytes_ref (bytes);
-+ return g_variant_new_from_data (G_VARIANT_TYPE ("ay"), data, size,
-+ TRUE, (GDestroyNotify)g_bytes_unref, bytes);
-+}
-+
-+static gboolean
-+read_xattr_name_array (const char *path,
-+ const char *xattrs,
-+ size_t len,
-+ GVariantBuilder *builder,
-+ GError **error)
-+{
-+ gboolean ret = FALSE;
-+ const char *p;
-+
-+ p = xattrs;
-+ while (p < xattrs+len)
-+ {
-+ ssize_t bytes_read;
-+ char *buf;
-+ GBytes *bytes = NULL;
-+
-+ bytes_read = lgetxattr (path, p, NULL, 0);
-+ if (bytes_read < 0)
-+ {
-+ _set_error_from_errno (error);
-+ g_prefix_error (error, "lgetxattr (%s, %s) failed: ", path, p);
-+ goto out;
-+ }
-+ if (bytes_read == 0)
-+ continue;
-+
-+ buf = g_malloc (bytes_read);
-+ bytes = g_bytes_new_take (buf, bytes_read);
-+ if (lgetxattr (path, p, buf, bytes_read) < 0)
-+ {
-+ g_bytes_unref (bytes);
-+ _set_error_from_errno (error);
-+ g_prefix_error (error, "lgetxattr (%s, %s) failed: ", path, p);
-+ goto out;
-+ }
-+
-+ g_variant_builder_add (builder, "(@ay at ay)",
-+ g_variant_new_bytestring (p),
-+ variant_new_ay_bytes (bytes));
-+
-+ p = p + strlen (p) + 1;
-+ g_bytes_unref (bytes);
-+ }
-+
-+ ret = TRUE;
-+ out:
-+ return ret;
-+}
-+
-+#endif
-+
-+/**
-+ * gs_file_get_all_xattrs:
-+ * @f: a #GFile
-+ * @out_xattrs: (out): A new #GVariant containing the extended attributes
-+ * @cancellable: Cancellable
-+ * @error: Error
-+ *
-+ * Read all extended attributes of @f in a canonical sorted order, and
-+ * set @out_xattrs with the result.
-+ *
-+ * If the filesystem does not support extended attributes, @out_xattrs
-+ * will have 0 elements, and this function will return successfully.
-+ */
-+gboolean
-+gs_file_get_all_xattrs (GFile *f,
-+ GVariant **out_xattrs,
-+ GCancellable *cancellable,
-+ GError **error)
-+{
-+ gboolean ret = FALSE;
-+ const char *path;
-+ ssize_t bytes_read;
-+ GVariant *ret_xattrs = NULL;
-+ char *xattr_names = NULL;
-+ char *xattr_names_canonical = NULL;
-+ GVariantBuilder builder;
-+ gboolean builder_initialized = FALSE;
-+
-+ path = gs_file_get_path_cached (f);
-+
-+ g_variant_builder_init (&builder, G_VARIANT_TYPE ("a(ayay)"));
-+ builder_initialized = TRUE;
-+
-+#ifdef GSYSTEM_CONFIG_XATTRS
-+ bytes_read = llistxattr (path, NULL, 0);
-+
-+ if (bytes_read < 0)
-+ {
-+ if (errno != ENOTSUP)
-+ {
-+ _set_error_from_errno (error);
-+ g_prefix_error (error, "llistxattr (%s) failed: ", path);
-+ goto out;
-+ }
-+ }
-+ else if (bytes_read > 0)
-+ {
-+ xattr_names = g_malloc (bytes_read);
-+ if (llistxattr (path, xattr_names, bytes_read) < 0)
-+ {
-+ _set_error_from_errno (error);
-+ g_prefix_error (error, "llistxattr (%s) failed: ", path);
-+ goto out;
-+ }
-+ xattr_names_canonical = canonicalize_xattrs (xattr_names, bytes_read);
-+
-+ if (!read_xattr_name_array (path, xattr_names_canonical, bytes_read, &builder, error))
-+ goto out;
-+ }
-+
-+#endif
-+
-+ ret_xattrs = g_variant_builder_end (&builder);
-+ g_variant_ref_sink (ret_xattrs);
-+
-+ ret = TRUE;
-+ gs_transfer_out_value (out_xattrs, &ret_xattrs);
-+ out:
-+ g_clear_pointer (&ret_xattrs, g_variant_unref);
-+ g_clear_pointer (&xattr_names, g_free);
-+ g_clear_pointer (&xattr_names_canonical, g_free);
-+ if (!builder_initialized)
-+ g_variant_builder_clear (&builder);
-+ return ret;
-+}
-+
-+/**
-+ * gs_fd_set_all_xattrs:
-+ * @fd: File descriptor
-+ * @xattrs: Extended attributes
-+ * @cancellable: Cancellable
-+ * @error: Error
-+ *
-+ * For each attribute in @xattrs, set its value on the file or
-+ * directory referred to by @fd. This function does not remove any
-+ * attributes not in @xattrs.
-+ */
-+gboolean
-+gs_fd_set_all_xattrs (int fd,
-+ GVariant *xattrs,
-+ GCancellable *cancellable,
-+ GError **error)
-+{
-+#ifdef GSYSTEM_CONFIG_XATTRS
-+ gboolean ret = FALSE;
-+ int i, n;
-+
-+ n = g_variant_n_children (xattrs);
-+ for (i = 0; i < n; i++)
-+ {
-+ const guint8* name;
-+ const guint8* value_data;
-+ GVariant *value = NULL;
-+ gsize value_len;
-+ int res;
-+
-+ g_variant_get_child (xattrs, i, "(^&ay at ay)",
-+ &name, &value);
-+ value_data = g_variant_get_fixed_array (value, &value_len, 1);
-+
-+ do
-+ res = fsetxattr (fd, (char*)name, (char*)value_data, value_len, 0);
-+ while (G_UNLIKELY (res == -1 && errno == EINTR));
-+ g_variant_unref (value);
-+ if (G_UNLIKELY (res == -1))
-+ {
-+ _set_error_from_errno (error);
-+ goto out;
-+ }
-+ }
-+
-+ ret = TRUE;
-+ out:
-+ return ret;
-+#else
-+ return TRUE;
-+#endif
-+}
-+
-+/**
-+ * gs_file_set_all_xattrs:
-+ * @file: File descriptor
-+ * @xattrs: Extended attributes
-+ * @cancellable: Cancellable
-+ * @error: Error
-+ *
-+ * For each attribute in @xattrs, set its value on the file or
-+ * directory referred to by @file. This function does not remove any
-+ * attributes not in @xattrs.
-+ */
-+gboolean
-+gs_file_set_all_xattrs (GFile *file,
-+ GVariant *xattrs,
-+ GCancellable *cancellable,
-+ GError **error)
-+{
-+#ifdef GSYSTEM_CONFIG_XATTRS
-+ gboolean ret = FALSE;
-+ const char *path;
-+ int i, n;
-+
-+ path = gs_file_get_path_cached (file);
-+
-+ n = g_variant_n_children (xattrs);
-+ for (i = 0; i < n; i++)
-+ {
-+ const guint8* name;
-+ GVariant *value;
-+ const guint8* value_data;
-+ gsize value_len;
-+ gboolean loop_err;
-+
-+ g_variant_get_child (xattrs, i, "(^&ay at ay)",
-+ &name, &value);
-+ value_data = g_variant_get_fixed_array (value, &value_len, 1);
-+
-+ loop_err = lsetxattr (path, (char*)name, (char*)value_data, value_len, 0) < 0;
-+ g_clear_pointer (&value, (GDestroyNotify) g_variant_unref);
-+ if (loop_err)
-+ {
-+ _set_error_from_errno (error);
-+ g_prefix_error (error, "lsetxattr (%s, %s) failed: ", path, name);
-+ goto out;
-+ }
-+ }
-+
-+ ret = TRUE;
-+ out:
-+ return ret;
-+#else
-+ return TRUE;
-+#endif
-+}
diff -urN libgnome-desktop/libgsystem.orig/gsystem-osx-compat.c libgnome-desktop/libgsystem/gsystem-osx-compat.c
--- libgnome-desktop/libgsystem.orig/gsystem-osx-compat.c 1969-12-31 16:00:00.000000000 -0800
+++ libgnome-desktop/libgsystem/gsystem-osx-compat.c 2014-01-24 17:02:13.000000000 -0800
@@ -2441,469 +811,6 @@
{
d = fdopendir (dfd);
if (!d)
-diff -urN libgnome-desktop/libgsystem.orig/gsystem-shutil.c.orig libgnome-desktop/libgsystem/gsystem-shutil.c.orig
---- libgnome-desktop/libgsystem.orig/gsystem-shutil.c.orig 1969-12-31 16:00:00.000000000 -0800
-+++ libgnome-desktop/libgsystem/gsystem-shutil.c.orig 2014-01-15 13:06:25.000000000 -0800
-@@ -0,0 +1,459 @@
-+/* -*- mode: C; c-file-style: "gnu"; indent-tabs-mode: nil; -*-
-+ *
-+ * Copyright (C) 2012 William Jon McCann <mccann at redhat.com>
-+ * Copyright (C) 2012 Colin Walters <walters at verbum.org>
-+ *
-+ * This library is free software; you can redistribute it and/or
-+ * modify it under the terms of the GNU Lesser General Public
-+ * License as published by the Free Software Foundation; either
-+ * version 2 of the License, or (at your option) any later version.
-+ *
-+ * This library is distributed in the hope that it will be useful,
-+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
-+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-+ * Lesser General Public License for more details.
-+ *
-+ * You should have received a copy of the GNU Lesser General Public
-+ * License along with this library; if not, write to the
-+ * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
-+ * Boston, MA 02111-1307, USA.
-+ */
-+
-+#include "config.h"
-+
-+#ifndef _GNU_SOURCE
-+#define _GNU_SOURCE
-+#endif
-+
-+#define _GSYSTEM_NO_LOCAL_ALLOC
-+#include "libgsystem.h"
-+#include <glib-unix.h>
-+#include <string.h>
-+#include <sys/stat.h>
-+#include <dirent.h>
-+#include <fcntl.h>
-+
-+/* Taken from systemd/src/shared/util.h */
-+union dirent_storage {
-+ struct dirent dent;
-+ guint8 storage[offsetof(struct dirent, d_name) +
-+ ((NAME_MAX + 1 + sizeof(long)) & ~(sizeof(long) - 1))];
-+};
-+
-+static inline void
-+_set_error_from_errno (GError **error)
-+{
-+ int errsv = errno;
-+ g_set_error_literal (error, G_IO_ERROR, g_io_error_from_errno (errsv),
-+ g_strerror (errsv));
-+}
-+
-+static gboolean
-+copy_xattrs_from_file_to_fd (GFile *src,
-+ int dest_fd,
-+ GCancellable *cancellable,
-+ GError **error)
-+{
-+ gboolean ret = FALSE;
-+ GVariant *src_xattrs = NULL;
-+
-+ if (!gs_file_get_all_xattrs (src, &src_xattrs, cancellable, error))
-+ goto out;
-+
-+ if (src_xattrs)
-+ {
-+ if (!gs_fd_set_all_xattrs (dest_fd, src_xattrs, cancellable, error))
-+ goto out;
-+ }
-+
-+ ret = TRUE;
-+ out:
-+ g_clear_pointer (&src_xattrs, g_variant_unref);
-+ return ret;
-+}
-+
-+typedef enum {
-+ GS_CP_MODE_NONE,
-+ GS_CP_MODE_HARDLINK,
-+ GS_CP_MODE_COPY_ALL
-+} GsCpMode;
-+
-+static gboolean
-+cp_internal (GFile *src,
-+ GFile *dest,
-+ GsCpMode mode,
-+ GCancellable *cancellable,
-+ GError **error)
-+{
-+ gboolean ret = FALSE;
-+ GFileEnumerator *enumerator = NULL;
-+ GFileInfo *src_info = NULL;
-+ GFile *dest_child = NULL;
-+ int dest_dfd = -1;
-+ int r;
-+
-+ enumerator = g_file_enumerate_children (src, "standard::type,standard::name,unix::uid,unix::gid,unix::mode",
-+ G_FILE_QUERY_INFO_NOFOLLOW_SYMLINKS,
-+ cancellable, error);
-+ if (!enumerator)
-+ goto out;
-+
-+ src_info = g_file_query_info (src, "standard::name,unix::mode,unix::uid,unix::gid," \
-+ "time::modified,time::modified-usec,time::access,time::access-usec",
-+ G_FILE_QUERY_INFO_NOFOLLOW_SYMLINKS,
-+ cancellable, error);
-+ if (!src_info)
-+ goto out;
-+
-+ do
-+ r = mkdir (gs_file_get_path_cached (dest), 0755);
-+ while (G_UNLIKELY (r == -1 && errno == EINTR));
-+ if (r == -1)
-+ {
-+ _set_error_from_errno (error);
-+ goto out;
-+ }
-+
-+ if (mode != GS_CP_MODE_NONE)
-+ {
-+ if (!gs_file_open_dir_fd (dest, &dest_dfd,
-+ cancellable, error))
-+ goto out;
-+
-+ do
-+ r = fchown (dest_dfd,
-+ g_file_info_get_attribute_uint32 (src_info, "unix::uid"),
-+ g_file_info_get_attribute_uint32 (src_info, "unix::gid"));
-+ while (G_UNLIKELY (r == -1 && errno == EINTR));
-+ if (r == -1)
-+ {
-+ _set_error_from_errno (error);
-+ goto out;
-+ }
-+
-+ do
-+ r = fchmod (dest_dfd, g_file_info_get_attribute_uint32 (src_info, "unix::mode"));
-+ while (G_UNLIKELY (r == -1 && errno == EINTR));
-+
-+ if (!copy_xattrs_from_file_to_fd (src, dest_dfd, cancellable, error))
-+ goto out;
-+
-+ if (dest_dfd != -1)
-+ {
-+ (void) close (dest_dfd);
-+ dest_dfd = -1;
-+ }
-+ }
-+
-+ while (TRUE)
-+ {
-+ GFileInfo *file_info = NULL;
-+ GFile *src_child = NULL;
-+
-+ if (!gs_file_enumerator_iterate (enumerator, &file_info, &src_child,
-+ cancellable, error))
-+ goto out;
-+ if (!file_info)
-+ break;
-+
-+ if (dest_child) g_object_unref (dest_child);
-+ dest_child = g_file_get_child (dest, g_file_info_get_name (file_info));
-+
-+ if (g_file_info_get_file_type (file_info) == G_FILE_TYPE_DIRECTORY)
-+ {
-+ if (!cp_internal (src_child, dest_child, mode,
-+ cancellable, error))
-+ goto out;
-+ }
-+ else
-+ {
-+ gboolean did_link = FALSE;
-+ (void) unlink (gs_file_get_path_cached (dest_child));
-+ if (mode == GS_CP_MODE_HARDLINK)
-+ {
-+ if (link (gs_file_get_path_cached (src_child), gs_file_get_path_cached (dest_child)) == -1)
-+ {
-+ if (!(errno == EMLINK || errno == EXDEV))
-+ {
-+ int errsv = errno;
-+ g_set_error_literal (error, G_IO_ERROR, g_io_error_from_errno (errsv),
-+ g_strerror (errsv));
-+ goto out;
-+ }
-+ /* We failed to hardlink; fall back to copying all; this will
-+ * affect subsequent directory copies too.
-+ */
-+ mode = GS_CP_MODE_COPY_ALL;
-+ }
-+ else
-+ did_link = TRUE;
-+ }
-+ if (!did_link)
-+ {
-+ GFileCopyFlags copyflags = G_FILE_COPY_OVERWRITE | G_FILE_COPY_NOFOLLOW_SYMLINKS;
-+ if (mode == GS_CP_MODE_COPY_ALL)
-+ copyflags |= G_FILE_COPY_ALL_METADATA;
-+ if (!g_file_copy (src_child, dest_child, copyflags,
-+ cancellable, NULL, NULL, error))
-+ goto out;
-+ }
-+ }
-+ }
-+
-+ ret = TRUE;
-+ out:
-+ if (dest_dfd != -1)
-+ (void) close (dest_dfd);
-+ g_clear_object (&src_info);
-+ g_clear_object (&enumerator);
-+ g_clear_object (&dest_child);
-+ return ret;
-+}
-+
-+/**
-+ * gs_shutil_cp_al_or_fallback:
-+ * @src: Source path
-+ * @dest: Destination path
-+ * @cancellable:
-+ * @error:
-+ *
-+ * Recursively copy path @src (which must be a directory) to the
-+ * target @dest. If possible, hardlinks are used; if a hardlink is
-+ * not possible, a regular copy is created. Any existing files are
-+ * overwritten.
-+ *
-+ * Returns: %TRUE on success
-+ */
-+gboolean
-+gs_shutil_cp_al_or_fallback (GFile *src,
-+ GFile *dest,
-+ GCancellable *cancellable,
-+ GError **error)
-+{
-+ return cp_internal (src, dest, GS_CP_MODE_HARDLINK,
-+ cancellable, error);
-+}
-+
-+/**
-+ * gs_shutil_cp_a:
-+ * @src: Source path
-+ * @dest: Destination path
-+ * @cancellable:
-+ * @error:
-+ *
-+ * Recursively copy path @src (which must be a directory) to the
-+ * target @dest. Any existing files are overwritten.
-+ *
-+ * Returns: %TRUE on success
-+ */
-+gboolean
-+gs_shutil_cp_a (GFile *src,
-+ GFile *dest,
-+ GCancellable *cancellable,
-+ GError **error)
-+{
-+ return cp_internal (src, dest, GS_CP_MODE_COPY_ALL,
-+ cancellable, error);
-+}
-+
-+static unsigned char
-+struct_stat_to_dt (struct stat *stbuf)
-+{
-+ if (S_ISDIR (stbuf->st_mode))
-+ return DT_DIR;
-+ if (S_ISREG (stbuf->st_mode))
-+ return DT_REG;
-+ if (S_ISCHR (stbuf->st_mode))
-+ return DT_CHR;
-+ if (S_ISBLK (stbuf->st_mode))
-+ return DT_BLK;
-+ if (S_ISFIFO (stbuf->st_mode))
-+ return DT_FIFO;
-+ if (S_ISLNK (stbuf->st_mode))
-+ return DT_LNK;
-+ if (S_ISSOCK (stbuf->st_mode))
-+ return DT_SOCK;
-+ return DT_UNKNOWN;
-+}
-+
-+static gboolean
-+gs_shutil_rm_rf_children (DIR *dir,
-+ GCancellable *cancellable,
-+ GError **error)
-+{
-+ gboolean ret = FALSE;
-+ int dfd;
-+ DIR *child_dir = NULL;
-+ struct dirent *dent;
-+ union dirent_storage buf;
-+
-+ if (g_cancellable_set_error_if_cancelled (cancellable, error))
-+ goto out;
-+
-+ dfd = dirfd (dir);
-+
-+ while (readdir_r (dir, &buf.dent, &dent) == 0)
-+ {
-+ if (dent == NULL)
-+ break;
-+ if (dent->d_type == DT_UNKNOWN)
-+ {
-+ struct stat stbuf;
-+ if (fstatat (dfd, dent->d_name, &stbuf, AT_SYMLINK_NOFOLLOW) == -1)
-+ {
-+ int errsv = errno;
-+ if (errsv == ENOENT)
-+ continue;
-+ else
-+ {
-+ g_set_error_literal (error, G_IO_ERROR, g_io_error_from_errno (errsv),
-+ g_strerror (errsv));
-+ goto out;
-+ }
-+ }
-+ dent->d_type = struct_stat_to_dt (&stbuf);
-+ /* Assume unknown types are just treated like regular files */
-+ if (dent->d_type == DT_UNKNOWN)
-+ dent->d_type = DT_REG;
-+ }
-+
-+ if (strcmp (dent->d_name, ".") == 0 || strcmp (dent->d_name, "..") == 0)
-+ continue;
-+
-+ if (dent->d_type == DT_DIR)
-+ {
-+ int child_dfd = openat (dfd, dent->d_name, O_RDONLY | O_NONBLOCK | O_DIRECTORY | O_CLOEXEC | O_NOFOLLOW);
-+
-+ if (child_dfd == -1)
-+ {
-+ if (errno == ENOENT)
-+ continue;
-+ else
-+ {
-+ int errsv = errno;
-+ g_set_error_literal (error, G_IO_ERROR, g_io_error_from_errno (errsv),
-+ g_strerror (errsv));
-+ goto out;
-+ }
-+ }
-+
-+ child_dir = fdopendir (child_dfd);
-+ if (!child_dir)
-+ {
-+ int errsv = errno;
-+ g_set_error_literal (error, G_IO_ERROR, g_io_error_from_errno (errsv),
-+ g_strerror (errsv));
-+ goto out;
-+ }
-+
-+ if (!gs_shutil_rm_rf_children (child_dir, cancellable, error))
-+ goto out;
-+
-+ if (unlinkat (dfd, dent->d_name, AT_REMOVEDIR) == -1)
-+ {
-+ int errsv = errno;
-+ g_set_error_literal (error, G_IO_ERROR, g_io_error_from_errno (errsv),
-+ g_strerror (errsv));
-+ goto out;
-+ }
-+
-+ (void) closedir (child_dir);
-+ child_dir = NULL;
-+ }
-+ else
-+ {
-+ if (unlinkat (dfd, dent->d_name, 0) == -1)
-+ {
-+ int errsv = errno;
-+ if (errno != ENOENT)
-+ {
-+ g_set_error_literal (error, G_IO_ERROR, g_io_error_from_errno (errsv),
-+ g_strerror (errsv));
-+ goto out;
-+ }
-+ }
-+ }
-+ }
-+ /* Ignore error result from readdir_r, that's what others
-+ * seem to do =(
-+ */
-+
-+ ret = TRUE;
-+ out:
-+ if (child_dir) (void) closedir (child_dir);
-+ return ret;
-+}
-+
-+/**
-+ * gs_shutil_rm_rf:
-+ * @path: A file or directory
-+ * @cancellable:
-+ * @error:
-+ *
-+ * Recursively delete the filename referenced by @path; it may be a
-+ * file or directory. No error is thrown if @path does not exist.
-+ */
-+gboolean
-+gs_shutil_rm_rf (GFile *path,
-+ GCancellable *cancellable,
-+ GError **error)
-+{
-+ gboolean ret = FALSE;
-+ int dfd = -1;
-+ DIR *d = NULL;
-+
-+ /* With O_NOFOLLOW first */
-+ dfd = openat (AT_FDCWD, gs_file_get_path_cached (path),
-+ O_RDONLY | O_NONBLOCK | O_DIRECTORY | O_CLOEXEC | O_NOFOLLOW);
-+
-+ if (dfd == -1)
-+ {
-+ int errsv = errno;
-+ if (errsv == ENOENT)
-+ {
-+ ;
-+ }
-+ else if (errsv == ENOTDIR || errsv == ELOOP)
-+ {
-+ if (!gs_file_unlink (path, cancellable, error))
-+ goto out;
-+ }
-+ else
-+ {
-+ g_set_error_literal (error, G_IO_ERROR, g_io_error_from_errno (errsv),
-+ g_strerror (errsv));
-+ goto out;
-+ }
-+ }
-+ else
-+ {
-+ d = fdopendir (dfd);
-+ if (!d)
-+ {
-+ int errsv = errno;
-+ g_set_error_literal (error, G_IO_ERROR, g_io_error_from_errno (errsv),
-+ g_strerror (errsv));
-+ goto out;
-+ }
-+
-+ if (!gs_shutil_rm_rf_children (d, cancellable, error))
-+ goto out;
-+
-+ if (rmdir (gs_file_get_path_cached (path)) == -1)
-+ {
-+ int errsv = errno;
-+ if (errsv != ENOENT)
-+ {
-+ g_set_error_literal (error, G_IO_ERROR, g_io_error_from_errno (errsv),
-+ g_strerror (errsv));
-+ goto out;
-+ }
-+ }
-+ }
-+
-+ ret = TRUE;
-+ out:
-+ if (d) (void) closedir (d);
-+ return ret;
-+}
-+
diff -urN libgnome-desktop/libgsystem.orig/gsystem-subprocess.c libgnome-desktop/libgsystem/gsystem-subprocess.c
--- libgnome-desktop/libgsystem.orig/gsystem-subprocess.c 2014-01-15 13:06:25.000000000 -0800
+++ libgnome-desktop/libgsystem/gsystem-subprocess.c 2014-01-24 17:02:13.000000000 -0800
Modified: users/devans/GNOME-3/unstable/dports/gnome/gnome-maps/Portfile
===================================================================
--- users/devans/GNOME-3/stable/dports/gnome/gnome-maps/Portfile 2014-05-27 17:47:38 UTC (rev 120405)
+++ users/devans/GNOME-3/unstable/dports/gnome/gnome-maps/Portfile 2014-05-30 20:50:43 UTC (rev 120511)
@@ -4,7 +4,7 @@
PortSystem 1.0
name gnome-maps
-version 3.12.2
+version 3.13.2
license GPL-2
set branch [join [lrange [split ${version} .] 0 1] .]
description Map application for GNOME 3.
@@ -19,8 +19,8 @@
use_xz yes
-checksums rmd160 7a06f495ac50acecbff5741c9736309a1c9389d2 \
- sha256 3e91f0dfd034ff374f03adbc3a204faf6f85e03b02d7d250a1af7b1fc442c0cf
+checksums rmd160 fb7d1fa603f436bfd792674a319af348e8225391 \
+ sha256 6f227ba3278811bce0f043e5687ebb15249920e1af6ae2b2fb1d3e31b9dace71
depends_build port:pkgconfig \
port:intltool
@@ -55,4 +55,4 @@
system "${prefix}/bin/glib-compile-schemas ${prefix}/share/glib-2.0/schemas"
}
-livecheck.type gnome
+livecheck.type gnome-with-unstable
Modified: users/devans/GNOME-3/unstable/dports/gnome/gnome-music/Portfile
===================================================================
--- users/devans/GNOME-3/unstable/dports/gnome/gnome-music/Portfile 2014-05-30 20:42:12 UTC (rev 120510)
+++ users/devans/GNOME-3/unstable/dports/gnome/gnome-music/Portfile 2014-05-30 20:50:43 UTC (rev 120511)
@@ -4,7 +4,7 @@
PortSystem 1.0
name gnome-music
-version 3.13.1
+version 3.13.2
license GPL-2
set branch [join [lrange [split ${version} .] 0 1] .]
description Music is the GNOME music playing application.
@@ -18,8 +18,8 @@
use_xz yes
-checksums rmd160 a2b463544311ec950cbb258892761dc83c7154ee \
- sha256 a024c92e62424883756ca7d72518a480679d3fef091aefaf84454f63512b85d6
+checksums rmd160 b2c3c1429054f2f34cbbbf742d77caa60bfb1072 \
+ sha256 d72dcc55226ef2b768bd706d207f23e13b9addd301ca5fd7a238c8e527ddb8f2
depends_build port:pkgconfig \
port:intltool \
Modified: users/devans/GNOME-3/unstable/dports/gnome/gnome-online-accounts/Portfile
===================================================================
--- users/devans/GNOME-3/unstable/dports/gnome/gnome-online-accounts/Portfile 2014-05-30 20:42:12 UTC (rev 120510)
+++ users/devans/GNOME-3/unstable/dports/gnome/gnome-online-accounts/Portfile 2014-05-30 20:50:43 UTC (rev 120511)
@@ -8,7 +8,7 @@
if {${os.platform} eq "darwin" && ${os.major} >= 13} {
set mavericks_or_better yes
-version 3.13.1
+version 3.13.2
} else {
@@ -33,8 +33,8 @@
if {$mavericks_or_better} {
-checksums rmd160 b2710a2142dcd63e9641b1c151a22f2e136f7224 \
- sha256 cbeebfe6888b346292c6392c0b642e81f2c5d4db60346450fdc906bb55aa4eae
+checksums rmd160 13ca610837a6dba25905de858fe912db48a888ee \
+ sha256 e05e6d18082f58d35274931009c0eec9754bb0b14ecf4bd71a85893f9b3be094
depends_build port:pkgconfig \
port:intltool \
@@ -77,7 +77,6 @@
--enable-pocket \
--disable-kerberos \
--disable-maintainer-mode \
- --disable-gtk-doc \
--disable-silent-rules
} else {
Modified: users/devans/GNOME-3/unstable/dports/gnome/gnome-photos/Portfile
===================================================================
--- users/devans/GNOME-3/stable/dports/gnome/gnome-photos/Portfile 2014-05-29 02:45:21 UTC (rev 120463)
+++ users/devans/GNOME-3/unstable/dports/gnome/gnome-photos/Portfile 2014-05-30 20:50:43 UTC (rev 120511)
@@ -70,4 +70,4 @@
system "${prefix}/bin/glib-compile-schemas ${prefix}/share/glib-2.0/schemas"
}
-livecheck.type gnome
+livecheck.type gnome-with-unstable
Modified: users/devans/GNOME-3/unstable/dports/gnome/gnome-system-monitor/Portfile
===================================================================
--- users/devans/GNOME-3/unstable/dports/gnome/gnome-system-monitor/Portfile 2014-05-30 20:42:12 UTC (rev 120510)
+++ users/devans/GNOME-3/unstable/dports/gnome/gnome-system-monitor/Portfile 2014-05-30 20:50:43 UTC (rev 120511)
@@ -4,7 +4,7 @@
PortSystem 1.0
name gnome-system-monitor
-version 3.13.1
+version 3.13.2
license GPL-2+
set branch [join [lrange [split ${version} .] 0 1] .]
description A system monitor.
@@ -20,8 +20,8 @@
use_xz yes
-checksums rmd160 0a6eb420c4b117ba0c7dfb083be8e9af55c4db9a \
- sha256 851a179e7181b63275ec55776f085f956e43c6b0720983ab3f486b23f7a9b563
+checksums rmd160 70d55f56c719d3a388db4ca4d8ca838ba75dfdeb \
+ sha256 28b3b2992b2f625768a9d329039f2415183c5849b07863b8574c97077581a8f9
depends_build port:pkgconfig \
port:intltool \
Modified: users/devans/GNOME-3/unstable/dports/gnome/gnome-terminal/Portfile
===================================================================
--- users/devans/GNOME-3/unstable/dports/gnome/gnome-terminal/Portfile 2014-05-30 20:42:12 UTC (rev 120510)
+++ users/devans/GNOME-3/unstable/dports/gnome/gnome-terminal/Portfile 2014-05-30 20:50:43 UTC (rev 120511)
@@ -4,7 +4,7 @@
PortSystem 1.0
name gnome-terminal
-version 3.13.0
+version 3.13.1
set branch [join [lrange [split ${version} .] 0 1] .]
description Terminal component for the GNOME 3 Desktop
long_description \
@@ -18,8 +18,8 @@
use_xz yes
-checksums rmd160 4368f55b0ea49426adaa2264b2f19b8979106d10 \
- sha256 1d2c43e928f26d344a17d6767f27910aa01d17bc659728cccc520724009466d0
+checksums rmd160 0bc53edcaf3c23543a861ce76b4aeb4ccc526aec \
+ sha256 677c83c0bcab3cdc64c3946d927b99a6ec846107728bc69a1788f1c205f5bf4f
depends_build port:pkgconfig \
port:intltool \
Modified: users/devans/GNOME-3/unstable/dports/gnome/gnome-terminal/files/patch-uuid.diff
===================================================================
--- users/devans/GNOME-3/unstable/dports/gnome/gnome-terminal/files/patch-uuid.diff 2014-05-30 20:42:12 UTC (rev 120510)
+++ users/devans/GNOME-3/unstable/dports/gnome/gnome-terminal/files/patch-uuid.diff 2014-05-30 20:50:43 UTC (rev 120511)
@@ -44,9 +44,9 @@
#include "terminal-app.h"
#include "terminal-debug.h"
---- configure.ac.orig 2014-02-19 11:59:55.000000000 -0800
-+++ configure.ac 2014-03-14 09:33:28.000000000 -0700
-@@ -78,7 +78,6 @@
+--- configure.ac.orig 2014-05-28 10:42:49.000000000 -0700
++++ configure.ac 2014-05-28 11:52:45.000000000 -0700
+@@ -75,7 +75,6 @@
gtk+-$GTK_API_VERSION >= $GTK_REQUIRED
gsettings-desktop-schemas >= $GSETTINGS_DESKTOP_SCHEMAS_REQUIRED
dconf >= $DCONF_REQUIRED
Modified: users/devans/GNOME-3/unstable/dports/gnome/gnome3-apps/Portfile
===================================================================
--- users/devans/GNOME-3/unstable/dports/gnome/gnome3-apps/Portfile 2014-05-30 20:42:12 UTC (rev 120510)
+++ users/devans/GNOME-3/unstable/dports/gnome/gnome3-apps/Portfile 2014-05-30 20:50:43 UTC (rev 120511)
@@ -4,7 +4,7 @@
PortSystem 1.0
name gnome3-apps
-version 3.13.1
+version 3.13.2
categories gnome
license Permissive
maintainers devans openmaintainer
@@ -45,7 +45,6 @@
# gnome-initial-setup
# gnome-klotski (previously part of gnome-games)
# gnome-mahjongg (previously part of gnome-games)
-# gnome-maps
# gnome-mines (previously part of gnome-games)
# gnome-nettool
# gnome-nibbles (previously part of gnome-games)
@@ -80,6 +79,7 @@
port:gitg \
port:glade \
port:gnome-devel-docs \
+ port:gnome-maps \
port:gnome-music \
port:gnome-photos \
port:rygel \
Modified: users/devans/GNOME-3/unstable/dports/gnome/gnome3-apps/files/versions.txt
===================================================================
--- users/devans/GNOME-3/unstable/dports/gnome/gnome3-apps/files/versions.txt 2014-05-30 20:42:12 UTC (rev 120510)
+++ users/devans/GNOME-3/unstable/dports/gnome/gnome3-apps/files/versions.txt 2014-05-30 20:50:43 UTC (rev 120511)
@@ -1,50 +1,50 @@
apps:accerciser:3.12.0:
-apps:aisleriot:3.12.0:
+apps:aisleriot:3.12.1:
apps:anjuta:3.13.1:
-apps:bijiben:3.13.1:
+apps:bijiben:3.13.2:
apps:brasero:3.11.3:
apps:cheese:3.13.1:
apps:devhelp:3.12.1:
-apps:evolution:3.13.1:
+apps:evolution:3.12.2:
apps:file-roller:3.13.1:
-apps:five-or-more:3.12.1:
-apps:four-in-a-row:3.12.1:
-apps:gedit:3.12.1:
+apps:five-or-more:3.12.2:
+apps:four-in-a-row:3.12.2:
+apps:gedit:3.12.2:
apps:gitg:0.3.2:
-apps:glade:3.18.2:
-apps:gnome-boxes:3.12.1:
+apps:glade:3.18.3:
+apps:gnome-boxes:3.12.2:
apps:gnome-chess:3.13.1:
apps:gnome-clocks:3.12.0:
apps:gnome-color-manager:3.13.1:
-apps:gnome-devel-docs:3.12.1:
-apps:gnome-documents:3.12.0:
-apps:gnome-getting-started-docs:3.12.0:
-apps:gnome-initial-setup:3.12.0:
-apps:gnome-klotski:3.12.1:
-apps:gnome-logs:3.13.1:
+apps:gnome-devel-docs:3.12.2:
+apps:gnome-documents:3.13.1:
+apps:gnome-getting-started-docs:3.12.1:
+apps:gnome-initial-setup:3.12.1:
+apps:gnome-klotski:3.12.2:
+apps:gnome-logs:3.13.2:
apps:gnome-mahjongg:3.13.1:
-apps:gnome-maps:3.12.1:
-apps:gnome-mines:3.13.1:
-apps:gnome-music:3.13.1:
+apps:gnome-maps:3.13.2:
+apps:gnome-mines:3.13.2:
+apps:gnome-music:3.13.2:
apps:gnome-nettool:3.8.1:
-apps:gnome-nibbles:3.12.1:
+apps:gnome-nibbles:3.12.2:
apps:gnome-photos:3.12.1:
-apps:gnome-robots:3.12.1:
-apps:gnome-software:3.13.1:
-apps:gnome-sound-recorder:3.12.1:
-apps:gnome-sudoku:3.12.1:
+apps:gnome-robots:3.12.2:
+apps:gnome-software:3.13.2:
+apps:gnome-sound-recorder:3.12.2:
+apps:gnome-sudoku:3.12.2:
apps:gnome-tetravex:3.13.1:
apps:gnome-tweak-tool:3.12.0:
-apps:gnome-weather:3.13.1:
-apps:iagno:3.12.1:
+apps:gnome-weather:3.13.2:
+apps:iagno:3.12.2:
apps:lightsoff:3.13.1:
apps:nautilus-sendto:3.8.1:
apps:nemiver:0.9.5:
apps:orca:3.13.1:
-apps:polari:3.13.1:
+apps:polari:3.13.2:
apps:quadrapassel:3.13.1:
apps:rygel:0.22.1:
-apps:seahorse:3.12.0:
+apps:seahorse:3.12.2:
apps:swell-foop:3.13.1:
apps:tali:3.13.1:
-apps:vinagre:3.12.1:
+apps:vinagre:3.13.2:
Modified: users/devans/GNOME-3/unstable/dports/gnome/gnome3-core/Portfile
===================================================================
--- users/devans/GNOME-3/unstable/dports/gnome/gnome3-core/Portfile 2014-05-30 20:42:12 UTC (rev 120510)
+++ users/devans/GNOME-3/unstable/dports/gnome/gnome3-core/Portfile 2014-05-30 20:50:43 UTC (rev 120511)
@@ -4,7 +4,7 @@
PortSystem 1.0
name gnome3-core
-version 3.13.1
+version 3.13.2
categories gnome
license Permissive
maintainers devans openmaintainer
@@ -90,9 +90,6 @@
port:gnome-desktop \
port:gnome-dictionary \
port:gnome-font-viewer \
- port:gnome-icon-theme \
- port:gnome-icon-theme-extras \
- port:gnome-icon-theme-symbolic \
port:gnome-js-common \
port:gnome-keyring \
port:gnome-menus \
@@ -108,9 +105,6 @@
port:grilo-plugins \
port:gsettings-desktop-schemas \
port:gssdp \
- port:gstreamer1-gst-plugins-base \
- port:gstreamer1-gst-plugins-good \
- port:gstreamer1 \
port:gtk3 \
port:gtk2 \
port:gtk-doc \
Modified: users/devans/GNOME-3/unstable/dports/gnome/gnome3-core/files/versions.txt
===================================================================
--- users/devans/GNOME-3/unstable/dports/gnome/gnome3-core/files/versions.txt 2014-05-30 20:42:12 UTC (rev 120510)
+++ users/devans/GNOME-3/unstable/dports/gnome/gnome3-core/files/versions.txt 2014-05-30 20:50:43 UTC (rev 120511)
@@ -2,9 +2,9 @@
core:adwaita-icon-theme:3.13.1:
core:at-spi2-atk:2.13.1:
core:at-spi2-core:2.13.1:
-core:atk:2.13.1:
+core:atk:2.13.2:
core:atkmm:2.22.7:
-core:baobab:3.12.1:
+core:baobab:3.13.1:
core:cantarell-fonts:0.0.15:
core:caribou:0.4.13:
core:clutter:1.18.2:
@@ -12,47 +12,44 @@
core:clutter-gtk:1.5.2:
core:cogl:1.18.0:
core:dconf:0.20.0:
-core:empathy:3.12.1:
-core:eog:3.13.1:
-core:epiphany:3.12.0:
+core:empathy:3.12.2:
+core:eog:3.13.2:
+core:epiphany:3.12.1:
core:evince:3.12.1:
-core:evolution-data-server:3.13.1:
+core:evolution-data-server:3.12.2:
core:folks:0.9.6:
-core:gcr:3.12.0:
-core:gdk-pixbuf:2.30.7:
-core:gdm:3.12.1:
-core:geocode-glib:3.12.0:
+core:gcr:3.12.2:
+core:gdk-pixbuf:2.30.8:
+core:gdm:3.12.2:
+core:geocode-glib:3.12.2:
core:gjs:1.40.1:
-core:glib:2.40.0:
+core:glib:2.41.0:
core:glib-networking:2.40.1:
core:glibmm:2.40.0:
core:gmime:2.6.20:
-core:gnome-backgrounds:3.12.1:
+core:gnome-backgrounds:3.12.2:
core:gnome-bluetooth:3.12.0:
core:gnome-calculator:3.12.1:
core:gnome-contacts:3.12.0:
core:gnome-control-center:3.13.1:
-core:gnome-desktop:3.12.1:
+core:gnome-desktop:3.13.2:
core:gnome-dictionary:3.10.0:
core:gnome-disk-utility:3.12.1:
core:gnome-font-viewer:3.12.0:
-core:gnome-icon-theme:3.12.0:
-core:gnome-icon-theme-extras:3.12.0:
-core:gnome-icon-theme-symbolic:3.12.0:
core:gnome-js-common:0.1.2:
-core:gnome-keyring:3.12.0:
+core:gnome-keyring:3.12.2:
core:gnome-menus:3.10.1:
-core:gnome-online-accounts:3.13.1:
+core:gnome-online-accounts:3.13.2:
core:gnome-online-miners:3.12.0:
-core:gnome-packagekit:3.12.1:
+core:gnome-packagekit:3.12.2:
core:gnome-screenshot:3.12.0:
core:gnome-session:3.12.1:
core:gnome-settings-daemon:3.13.1:
-core:gnome-shell:3.13.1:
-core:gnome-shell-extensions:3.13.1:
+core:gnome-shell:3.13.2:
+core:gnome-shell-extensions:3.13.2:
core:gnome-system-log:3.9.90:
-core:gnome-system-monitor:3.13.1:
-core:gnome-terminal:3.13.0:
+core:gnome-system-monitor:3.13.2:
+core:gnome-terminal:3.13.1:
core:gnome-themes-standard:3.13.1:
core:gnome-user-docs:3.12.1:
core:gnome-user-share:3.10.2:
@@ -60,31 +57,28 @@
core:gobject-introspection:1.40.0:
core:grilo:0.2.10:
core:grilo-plugins:0.2.12:
-core:gsettings-desktop-schemas:3.13.1:
-core:gssdp:0.14.7:
-core:gst-plugins-base:1.2.4:
-core:gst-plugins-good:1.2.4:
-core:gstreamer:1.2.4:
-core:gtk+:3.13.1:
+core:gsettings-desktop-schemas:3.13.2:
+core:gssdp:0.14.8:
+core:gtk+:3.13.2:
core:gtk+:2.24.23:
core:gtk-doc:1.20:
core:gtk-engines:2.20.2:
core:gtkmm:3.12.0:
-core:gtksourceview:3.12.1:
-core:gucharmap:3.12.0:
-core:gupnp:0.20.10:
+core:gtksourceview:3.12.2:
+core:gucharmap:3.12.1:
+core:gupnp:0.20.11:
core:gupnp-igd:0.2.3:
-core:gvfs:1.21.1:
+core:gvfs:1.21.2:
core:json-glib:1.0.0:
core:libchamplain:0.12.7:
core:libcroco:0.6.8:
-core:libgdata:0.15.0:
+core:libgdata:0.15.1:
core:libgee:0.14.0:
core:libgnomekbd:3.6.0:
core:libgsf:1.14.30:
core:libgsystem:2014.1:
core:libgtop:2.30.0:
-core:libgweather:3.13.1:
+core:libgweather:3.13.2:
core:libgxps:0.2.2:
core:libmediaart:0.4.0:
core:libnotify:0.7.6:
@@ -98,20 +92,20 @@
core:libzapojit:0.0.3:
core:mm-common:0.9.6:
core:mousetweaks:3.12.0:
-core:mutter:3.13.1:
+core:mutter:3.13.2:
core:nautilus:3.13.1:
core:network-manager-applet:0.9.8.10:
core:pango:1.36.3:
core:pangomm:2.34.0:
-core:pygobject:3.13.1:
+core:pygobject:3.13.2:
core:seed:3.8.1:
core:sushi:3.12.0:
core:totem:3.12.1:
core:totem-pl-parser:3.10.2:
-core:tracker:1.0.0:
+core:tracker:1.0.1:
core:vala:0.24.0:
core:vino:3.12.0:
-core:vte:0.37.0:
+core:vte:0.37.1:
core:yelp:3.12.0:
core:yelp-tools:3.12.1:
core:yelp-xsl:3.12.0:
Modified: users/devans/GNOME-3/unstable/dports/gnome/gsettings-desktop-schemas/Portfile
===================================================================
--- users/devans/GNOME-3/unstable/dports/gnome/gsettings-desktop-schemas/Portfile 2014-05-30 20:42:12 UTC (rev 120510)
+++ users/devans/GNOME-3/unstable/dports/gnome/gsettings-desktop-schemas/Portfile 2014-05-30 20:50:43 UTC (rev 120511)
@@ -4,7 +4,7 @@
PortSystem 1.0
name gsettings-desktop-schemas
-version 3.13.1
+version 3.13.2
license LGPL-2.1
set branch [join [lrange [split ${version} .] 0 1] .]
@@ -22,8 +22,8 @@
use_xz yes
-checksums rmd160 5f024a23beab6bd1e438791bdf2da747a70eb4cd \
- sha256 ce8a561a2a9b90ed2a1d76a3d7148fdd558143ab6338d325cf887c201a1ee11a
+checksums rmd160 1c295612105b81e6e12d4e40cf8bb680a70990fb \
+ sha256 a2069893becc25c5f18ff08467c78d6093740e14adf3ff35ec790bd552fe9324
supported_archs noarch
Modified: users/devans/GNOME-3/unstable/dports/gnome/gtk3/Portfile
===================================================================
--- users/devans/GNOME-3/unstable/dports/gnome/gtk3/Portfile 2014-05-30 20:42:12 UTC (rev 120510)
+++ users/devans/GNOME-3/unstable/dports/gnome/gtk3/Portfile 2014-05-30 20:50:43 UTC (rev 120511)
@@ -10,15 +10,15 @@
name gtk3
set real_name gtk+
epoch 1
-version 3.13.1
+version 3.13.2
set branch [join [lrange [split ${version} .] 0 1] .]
categories gnome x11
license LGPL-2.1+
maintainers cal openmaintainer
platforms darwin
-checksums rmd160 f7a634e5d1adc25546975727871009cbc6ebb297 \
- sha256 96258f26d2f49651d440175c285d4a06c05b0c4b4e08baa218dc0f58ad0c2ccb
+checksums rmd160 9b4fe4e1629706007335e51fd6c64c2653ae67d7 \
+ sha256 7414ed9114631ecb562842507c4b55fd4d4454b72e19f03287ab38d7f66878d5
description GTK+ widget toolkit
Modified: users/devans/GNOME-3/unstable/dports/gnome/tracker/Portfile
===================================================================
--- users/devans/GNOME-3/stable/dports/gnome/tracker/Portfile 2014-05-29 02:45:21 UTC (rev 120463)
+++ users/devans/GNOME-3/unstable/dports/gnome/tracker/Portfile 2014-05-30 20:50:43 UTC (rev 120511)
@@ -144,4 +144,4 @@
system "${prefix}/bin/glib-compile-schemas ${prefix}/share/glib-2.0/schemas"
}
-livecheck.type gnome
+livecheck.type gnome-with-unstable
Modified: users/devans/GNOME-3/unstable/dports/gnome/vte/Portfile
===================================================================
--- users/devans/GNOME-3/unstable/dports/gnome/vte/Portfile 2014-05-30 20:42:12 UTC (rev 120510)
+++ users/devans/GNOME-3/unstable/dports/gnome/vte/Portfile 2014-05-30 20:50:43 UTC (rev 120511)
@@ -4,7 +4,7 @@
PortSystem 1.0
name vte
-version 0.37.0
+version 0.37.1
set branch [join [lrange [split $version .] 0 1] .]
maintainers nomaintainer
categories gnome
@@ -22,8 +22,8 @@
use_xz yes
-checksums rmd160 1ae98a06d38bc96eac7834386069fbe93c05f420 \
- sha256 cde755dabcbf7553501181ae6e423be4159d99b8d60b2f070c4662be6f865fab
+checksums rmd160 c9737d8a9a1e765355d55dfdb63c4841f9d5a928 \
+ sha256 03d7e1109b78bbf6d23f3dd5d5474449a4abdc35ab73d09d88fe538474ed6ac2
depends_build port:pkgconfig \
port:intltool \
@@ -34,8 +34,12 @@
patchfiles patch-src-vteutils.c.diff
-# autoreconf with our intltool.m4
+# update m4/intltool.m4 and autoreconf
+pre-configure {
+ copy -force ${prefix}/share/aclocal/intltool.m4 ${worksrcpath}/m4
+}
+
use_autoreconf yes
autoreconf.args -fvi
Modified: users/devans/GNOME-3/unstable/dports/graphics/clutter/Portfile
===================================================================
--- trunk/dports/graphics/clutter/Portfile 2014-05-29 02:45:21 UTC (rev 120463)
+++ users/devans/GNOME-3/unstable/dports/graphics/clutter/Portfile 2014-05-30 20:50:43 UTC (rev 120511)
@@ -4,7 +4,7 @@
PortSystem 1.0
name clutter
-version 1.18.2
+version 1.19.2
license LGPL-2.1
set branch [join [lrange [split ${version} .] 0 1] .]
categories graphics
@@ -19,8 +19,8 @@
use_xz yes
-checksums rmd160 7c2bacaf795d33cce8d9ee2cd40488255225d2fe \
- sha256 f9fe12e6148426063c90e67dfaeb56013bf1aea224ef502223d13eab6c1add63
+checksums rmd160 8f3f3aceb4d8a576b77d1bacb48cca306784a649 \
+ sha256 192506c26f51208d46ba1ee6a28105c30bf1b2a7dff29da184882a2e9f3e0f6b
depends_build port:pkgconfig
@@ -68,4 +68,4 @@
default_variants +x11
-livecheck.type gnome
+livecheck.type gnome-with-unstable
Modified: users/devans/GNOME-3/unstable/dports/net/libgweather/Portfile
===================================================================
--- users/devans/GNOME-3/unstable/dports/net/libgweather/Portfile 2014-05-30 20:42:12 UTC (rev 120510)
+++ users/devans/GNOME-3/unstable/dports/net/libgweather/Portfile 2014-05-30 20:50:43 UTC (rev 120511)
@@ -4,7 +4,7 @@
PortSystem 1.0
name libgweather
-version 3.13.1
+version 3.13.2
set branch [join [lrange [split ${version} .] 0 1] .]
maintainers devans openmaintainer
categories net gnome
@@ -22,8 +22,8 @@
use_xz yes
-checksums rmd160 318a9aa905bd6e40e2c0eff2d4a0f25613291a44 \
- sha256 b9820ef1d2c3818250b06b7a042898b6ebb63d1db8e0df16a3c0aec6e41ef7fd
+checksums rmd160 4988302e64c4f14cacf80643d8bd9f308e201ace \
+ sha256 ebf990d95a47b10e504326b83b50dadb47bfa94c93898c9da6ca103bbff7f98d
depends_build port:pkgconfig \
port:intltool \
Modified: users/devans/GNOME-3/unstable/dports/python/py-gobject3/Portfile
===================================================================
--- users/devans/GNOME-3/unstable/dports/python/py-gobject3/Portfile 2014-05-30 20:42:12 UTC (rev 120510)
+++ users/devans/GNOME-3/unstable/dports/python/py-gobject3/Portfile 2014-05-30 20:50:43 UTC (rev 120511)
@@ -6,7 +6,7 @@
name py-gobject3
set my_name pygobject
-version 3.13.1
+version 3.13.2
set branch [join [lrange [split ${version} .] 0 1] .]
categories-append gnome
license LGPL-2.1+
@@ -23,8 +23,8 @@
distname ${my_name}-${version}
use_xz yes
-checksums sha256 47f16a9736c109fa71653832f776f78aef01f6469834d985e5f504cdd4c7089e \
- rmd160 b4cc70625eb1dfae95cb5d1e9a8f46f268a6f131
+checksums sha256 69eb8b642463ca26644a64019ed539c5185ed2abd06600dfc83e793cd028a8de \
+ rmd160 2b94a29d3e5fd48fce02746b0127510e20a036ac
python.versions 27 32 33 34
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.macosforge.org/pipermail/macports-changes/attachments/20140530/03d21a68/attachment-0001.html>
More information about the macports-changes
mailing list