summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPacho Ramos <pacho@gentoo.org>2013-10-26 19:09:37 +0000
committerPacho Ramos <pacho@gentoo.org>2013-10-26 19:09:37 +0000
commit27b96eb590cf97781b16228e1e019b7954fe3239 (patch)
tree7f0383166f84893c239c40adb476a1e3201090ca /app-arch/file-roller
parentFix python dependencies, bug #489230 by Mark R. Pariente and mgorny. Drop old. (diff)
downloadhistorical-27b96eb590cf97781b16228e1e019b7954fe3239.tar.gz
historical-27b96eb590cf97781b16228e1e019b7954fe3239.tar.bz2
historical-27b96eb590cf97781b16228e1e019b7954fe3239.zip
Apply upstream patches fixing some problems when unpacking (#489074 by Philipp Leonhardt), drop old.
Package-Manager: portage-2.2.7/cvs/Linux x86_64 Manifest-Sign-Key: 0xA188FBD4
Diffstat (limited to 'app-arch/file-roller')
-rw-r--r--app-arch/file-roller/ChangeLog12
-rw-r--r--app-arch/file-roller/Manifest20
-rw-r--r--app-arch/file-roller/file-roller-3.8.4-r2.ebuild (renamed from app-arch/file-roller/file-roller-3.8.4-r1.ebuild)11
-rw-r--r--app-arch/file-roller/file-roller-3.8.4.ebuild99
-rw-r--r--app-arch/file-roller/files/file-roller-3.8.4-extract-failure.patch43
-rw-r--r--app-arch/file-roller/files/file-roller-3.8.4-ignore-errors.patch40
-rw-r--r--app-arch/file-roller/files/file-roller-3.8.4-modifications-time.patch186
7 files changed, 299 insertions, 112 deletions
diff --git a/app-arch/file-roller/ChangeLog b/app-arch/file-roller/ChangeLog
index 0a6cef783982..a9b3babf579d 100644
--- a/app-arch/file-roller/ChangeLog
+++ b/app-arch/file-roller/ChangeLog
@@ -1,6 +1,16 @@
# ChangeLog for app-arch/file-roller
# Copyright 1999-2013 Gentoo Foundation; Distributed under the GPL v2
-# $Header: /var/cvsroot/gentoo-x86/app-arch/file-roller/ChangeLog,v 1.325 2013/09/09 00:40:44 tetromino Exp $
+# $Header: /var/cvsroot/gentoo-x86/app-arch/file-roller/ChangeLog,v 1.326 2013/10/26 19:09:33 pacho Exp $
+
+*file-roller-3.8.4-r2 (26 Oct 2013)
+
+ 26 Oct 2013; Pacho Ramos <pacho@gentoo.org> +file-roller-3.8.4-r2.ebuild,
+ +files/file-roller-3.8.4-extract-failure.patch,
+ +files/file-roller-3.8.4-ignore-errors.patch,
+ +files/file-roller-3.8.4-modifications-time.patch,
+ -file-roller-3.8.4-r1.ebuild, -file-roller-3.8.4.ebuild:
+ Apply upstream patches fixing some problems when unpacking (#489074 by Philipp
+ Leonhardt), drop old.
*file-roller-3.8.4-r1 (09 Sep 2013)
diff --git a/app-arch/file-roller/Manifest b/app-arch/file-roller/Manifest
index 64670a3c02e3..61f8cbe3ace9 100644
--- a/app-arch/file-roller/Manifest
+++ b/app-arch/file-roller/Manifest
@@ -3,22 +3,20 @@ Hash: SHA256
AUX 3.6.0-packages.match 571 SHA256 3888ee8a6cb163d0e7813fde1d0ea028f2e47410aff8bec1e52c219e6bb7296d SHA512 899ff4ae7a8df9790ff3eb74f85b7d4b6ab7e7cd22cb2e3f5fcbf7006f9a327dfff799ecf30fae66c24097b81afaa8167ea972f37a8b983b09a2ebf1ee044212 WHIRLPOOL afd71f74d2776db559c5a60342f1c26e9d718321bc433ff7b99d98b6e22d42ede7f67901ff0c5b1d172a3ebd3ef5a067506085818f8514b0f15ece5ddf2684aa
AUX file-roller-2.10.3-use_bin_tar.patch 504 SHA256 c22e742893800c4302df40af66b1eabeab700fea7326eada849f919bdd76c052 SHA512 e93b69af0e281590a362930580f13f2b85efec98d9a40c6b8becf3731c70713be106dbfbff9f4a7e783fc0dc0f72fdb78a063d5ab7d0c9c280a90fc58b778667 WHIRLPOOL 13e8bfa47665be629119adaeaa0b31092aa409916410bdf39caca11b2f87c4f949e2153037d0d52d51ee88c1009dd1b6265a4cc525da8f7e9621d4931d15887c
+AUX file-roller-3.8.4-extract-failure.patch 2066 SHA256 cc8881bc92c4d79accd9dfcc7056c80be5de86f50182a5553d782f3a4b62da7a SHA512 3f125d71e2ea31e84d336cb9b0366290e5f7d155183b9564ce9d6635ca6b3b38782191691246807bac772be41d0e4f4945a8bee4363a95d74022cef25f16c759 WHIRLPOOL 84081c28a5f1898fb10d8b13431a0935de4d5c988b37dbefafb82b9d094627b37cbfbca09b4f06d02daacbee76615933a8d1a632094edacda452fa8f8b85ae8e
+AUX file-roller-3.8.4-ignore-errors.patch 1706 SHA256 b76e46fb4f5f1fff50f3baac058924e0c7e3ee9ad504fa49eb963dd3b0752267 SHA512 04ef3dabfdd23a48ac43d2cc5dd70a7b7de87a9e4dfe9450bff128a96c91bb79eecef474bd4905fa235af6ecd4124a77b3cc91d23dc4a85392e3902c8187fed2 WHIRLPOOL a3eed01cef6c223763c5d5cc44360820f091877f9ca73235fe7f4406acfdb3bb179fca17219d217cad93101ad74c4f4e10d0f3bc9fd52d6431b0c595dbe54b9b
+AUX file-roller-3.8.4-modifications-time.patch 6482 SHA256 c1446b30f51a9f78042b73e0418ad66d55fe99c5db4d9c78583581f64382d4df SHA512 e4a3f0905c24c1a16a6bbc0f60c7d2ca8e4730c486c06815aec49e2c4a0e6dcc6181c107ca1609a8f05885e7b4b4ff257ec596fdc12762969d2ab3df7451c3dd WHIRLPOOL 94e523b2883532192581fa6af026f35627ac2bda2b04244c2d49ca96031fa5de14eb3484a1d8e9f6ec0da08e0b3000b7c7ad167cb17765e3f98ebbd140f57878
AUX file-roller-3.8.4-rar-5.patch 6831 SHA256 45105e2460a8ef18bffcf00a798f323dee1d761a9a87633bdac40b967c805fde SHA512 af0acef83dea0ee007f6c3db2f6a72552049f25a6131b3b31943c1c4a4beb31435af776cc7d252b91270302bf0f878c9e4f2ffde40e7fcf83ee16b817acc0181 WHIRLPOOL 543dc3ff03a1ac5bc630f4d5749335b06c597f463669b86896610e92b3d6a7c6a1d824867679b8921ca24e53b4dceb959a2c0485e8068bb9a54b20ea4393b1dc
DIST file-roller-2.32.2.tar.bz2 1901661 SHA256 3ddbe4e4134eab4ff8e97789a1626aec6cbc588190f2f520850d0697037e5755 SHA512 c62153871ed0210972d45ed0fa71eb177602cbc48894907c50ff45e8798d07979377ce4cbe1fbc1c37e5762cd005c5846dd9ac9f5ee93fe860de2babdc0933f0 WHIRLPOOL ea0af0538616532fc644f019d133bf5bfff876c95a3998d63ef58b3fa1b5b3d449c29589125ccdaeea18a1c0c1cafb872e996dd2b174b507c2c804d9c73e32dc
DIST file-roller-3.8.4.tar.xz 1517092 SHA256 3615bc41bbe28030d16ee414a8f5f9a3e37f745733c39032ef1559a06be3eea8 SHA512 3e901a6f7a48dab925995c1ca9dde3327a4b6c575e7e307f8d8f2dc36fc452a486a4f6068873864affe7256862de6001dce546ededd261aeaf2d9ab0dcb8ccf6 WHIRLPOOL 2d6d0a99bfeacd5ec21551cda91ef73810348b17a82d308e625234647d0c9d6babdef361c41217f799fd50df034304c637672ced66ca5ab1e1030f0b0e044e9a
EBUILD file-roller-2.32.2.ebuild 2439 SHA256 e831af3708694be41a1f51130d4779490493ae6515ce07fcb055cada4453b26a SHA512 b4089c5dc7193b47de92fc22fd276470219d66e24df31e05b7bf2bade64ed92ff41280957d387db7a2ed0c12fa02cb3bc27f752f0a3f0ed1f16b361d0df6aa67 WHIRLPOOL b1bb0dc560ccc9313c1d397323aa375e5055cc65dfeeb7691f7110d7b5e84f07b17d133f737c9f4f725bf7e7d0853a17d18310598a6e762f273a911f99acac28
-EBUILD file-roller-3.8.4-r1.ebuild 2757 SHA256 2043b6ecd1c3570b2c10f4a151774ed06fe8b04270e634bfd37735eeff144761 SHA512 14c873cd2e27c30f17a4de546af803dc889fb8427286bf77e1f68ffb446ad7165ee854a11ec640e2d0dbf1fea3a5029f8dd792e40da0ea9113f5bbd5f2b891f2 WHIRLPOOL 52899b1397f5f3f7f9e4f27d3fe1ffccfecdc57ea009c7b9296ce651a0a919b98cb142c7759dc0a640f38c4a6c89d704dd7f35fb3cffba2a439f326715a6b87f
-EBUILD file-roller-3.8.4.ebuild 2619 SHA256 d78b673f8308b6a7abbb0f2ee94e74ef614d716b47967ecfd8056708ee174d7c SHA512 0e34edc756837be8713d127f3acd963aee894406d3d5e378b37e648af969731be7fa1860d464a485f4d5abf737f50c07d4edacda2c3dee6150b6687cb6830f57 WHIRLPOOL 3498a0f94447b16d10f2414f5510032726e7cc19211a3ced7ccc0dcaabeac5aface238f817f859daca5360d55db90b9d6227df55ddc71ec6439967d2ea5a3d49
-MISC ChangeLog 43884 SHA256 d8300ae415a80d1886f76d7d6131601622052bd8f629830c869bce5f96dfbe15 SHA512 a28f2600cefd82de97d4d9b3eb2b3fbba80729a892ec1d854950d8b40d09044c14dde2c726c4afd630b21c168b36dc2239bcbda0d830751e166094ea6ad33d31 WHIRLPOOL 7fef104214969ea14e0b30e10947a2061e1eecf50384a06114f492195bcc3d75c5fc52d9eda533b09e3d67a0b6c300af88a4bcd63cd5c75275295893e54d9f52
+EBUILD file-roller-3.8.4-r2.ebuild 3097 SHA256 e8f80a5647fe76f1932df1d568e116f6b3e0eaca6b4754679d35a6b3e203ab13 SHA512 4a9349f27181f02015651e0775ac479f80edda68e28f603cf438f998deccab8aa95025f2d40efab965e141f3d3280c277aeca1d2fef5863f0153d019d2f90432 WHIRLPOOL 64c93055f67bd23ac7d8841ca6daedca1e7b99086de989f8930a203b6140cad4ad8f6e63d56fd73a8c9b6d44f9684f8432ec4b6073337a1e8a0d16315098d012
+MISC ChangeLog 44309 SHA256 f65630c78ba6c1de5f7c484542123f8898807491f72fc69298063eaad5da0862 SHA512 f41e9bc06392d89893ca5995c7936a26aec82178884e816a473a5b9321590d1d19597e624e7e09e9bfda9d0208a64319764e16383824381e28d2a9f7f0296a1f WHIRLPOOL b4ef0b6d62bf458f2c2df2cb1306208e13e95fb919b900dd38bd6acdbfc965d8f48af3c572bc4f530d6bd9a2d68bc01054f00d688e60d46e38fcb90ab9a488e9
MISC metadata.xml 446 SHA256 855d22d9ec6384bbec09562c5aebd68e043a50f002ba277818e3b7755b824f50 SHA512 fb6974a3cc457bfc0c9a17d8c160ff6997e9dafe5f4a4f863316e8e8b7b7a7d246612411eeaf890dce783b01ae74abb15bbda3a095dc3a9ad0c8c9118ee19931 WHIRLPOOL f65ab1874181cbb6c71e145f6ba51562899876bcfcf8bd93624f725455a4731090f64611ef122f6c777cce9a701af73d858ac53f3a90ca3a4ee61abd778a8026
-----BEGIN PGP SIGNATURE-----
-Version: GnuPG v2.0.21 (GNU/Linux)
+Version: GnuPG v2.0.22 (GNU/Linux)
-iQEcBAEBCAAGBQJSLRkZAAoJEJ0WA1zPCt1hML8H/jaZWSLNgd25Zdvpy9Vsmg1T
-jiULIj+0HbRqI0ve1m07/FWOcM7IiZX8tJwLgeynzomg6e3N/rSQtOuYyyfvwr2q
-3hdzhNwVzqIpWrB+NXozTQENAJocMe4xG5RJZQrjXR9t5pOdlyfoL9FhKp5+W1AV
-WLxYRoCAi+Y0LWXa1W82tDPX1IBGq4JWtacSDGjstNwTuGFxMXpsdKK3PTq+lCuz
-cE9O8y0seEITJ16ED6nNj+OPnJqio+hsrlVNu4R/LaoeWs+BeqLFj7JWiCItVncY
-NqNWKeNp6PGg8KvHPPHBRzWUDnIHXrS6XWyJicdnfIH50pptqjxaUH04kEvRofM=
-=pNHc
+iEYEAREIAAYFAlJsE24ACgkQCaWpQKGI+9SuDQCfeUttni15HIPVTH3MlJhWtaMx
+uZ4An0AtjmMvYKsYhNU2NHmCU2+d6px2
+=Ds3Q
-----END PGP SIGNATURE-----
diff --git a/app-arch/file-roller/file-roller-3.8.4-r1.ebuild b/app-arch/file-roller/file-roller-3.8.4-r2.ebuild
index 8b682ea4152e..c72417f4cb78 100644
--- a/app-arch/file-roller/file-roller-3.8.4-r1.ebuild
+++ b/app-arch/file-roller/file-roller-3.8.4-r2.ebuild
@@ -1,6 +1,6 @@
# Copyright 1999-2013 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
-# $Header: /var/cvsroot/gentoo-x86/app-arch/file-roller/file-roller-3.8.4-r1.ebuild,v 1.1 2013/09/09 00:40:44 tetromino Exp $
+# $Header: /var/cvsroot/gentoo-x86/app-arch/file-roller/file-roller-3.8.4-r2.ebuild,v 1.1 2013/10/26 19:09:33 pacho Exp $
EAPI="5"
GCONF_DEBUG="no"
@@ -70,6 +70,15 @@ src_prepare() {
# app-arch/{un,}rar-5 support, https://bugzilla.gnome.org/show_bug.cgi?id=707568
epatch "${FILESDIR}"/${PN}-3.8.4-rar-5.patch
+ # libarchive: fixed failure when extracting some tar archives
+ epatch "${FILESDIR}"/${PN}-3.8.4-extract-failure.patch
+
+ # libarchive: restore the folders modification time correctly
+ epatch "${FILESDIR}"/${PN}-3.8.4-modifications-time.patch
+
+ # Ignore errors when setting file attributes
+ epatch "${FILESDIR}"/${PN}-3.8.4-ignore-errors.patch
+
# File providing Gentoo package names for various archivers
cp -f "${FILESDIR}/3.6.0-packages.match" data/packages.match || die
diff --git a/app-arch/file-roller/file-roller-3.8.4.ebuild b/app-arch/file-roller/file-roller-3.8.4.ebuild
deleted file mode 100644
index 13aeef25efd2..000000000000
--- a/app-arch/file-roller/file-roller-3.8.4.ebuild
+++ /dev/null
@@ -1,99 +0,0 @@
-# Copyright 1999-2013 Gentoo Foundation
-# Distributed under the terms of the GNU General Public License v2
-# $Header: /var/cvsroot/gentoo-x86/app-arch/file-roller/file-roller-3.8.4.ebuild,v 1.1 2013/08/25 18:43:45 eva Exp $
-
-EAPI="5"
-GCONF_DEBUG="no"
-GNOME2_LA_PUNT="yes"
-
-inherit eutils gnome2 readme.gentoo
-
-DESCRIPTION="Archive manager for GNOME"
-HOMEPAGE="http://fileroller.sourceforge.net/"
-
-LICENSE="GPL-2+ CC-BY-SA-3.0"
-SLOT="0"
-IUSE="nautilus packagekit"
-KEYWORDS="~alpha ~amd64 ~arm ~ia64 ~ppc ~ppc64 ~sparc ~x86 ~x86-fbsd ~x86-freebsd ~amd64-linux ~x86-linux"
-
-# gdk-pixbuf used extensively in the source
-# cairo used in eggtreemultidnd.c
-# pango used in fr-window
-RDEPEND="
- >=app-arch/libarchive-3:=
- >=dev-libs/glib-2.29.14:2
- >=dev-libs/json-glib-0.14
- >=x11-libs/gtk+-3.6:3
- >=x11-libs/libnotify-0.4.3:=
- sys-apps/file
- x11-libs/cairo
- x11-libs/gdk-pixbuf:2
- x11-libs/libICE
- x11-libs/libSM
- x11-libs/pango
- nautilus? ( >=gnome-base/nautilus-3 )
- packagekit? ( app-admin/packagekit-base )
-"
-DEPEND="${RDEPEND}
- dev-util/desktop-file-utils
- >=dev-util/intltool-0.40.0
- sys-devel/gettext
- virtual/pkgconfig
-"
-# eautoreconf needs:
-# gnome-base/gnome-common
-
-DISABLE_AUTOFORMATTING="yes"
-DOC_CONTENTS="
-${PN} is a frontend for several archiving utilities. If you want a
-particular achive format support, see ${HOMEPAGE}
-and install the relevant package. For example:
-7-zip - app-arch/p7zip
-ace - app-arch/unace
-arj - app-arch/arj
-cpio - app-arch/cpio
-deb - app-arch/dpkg
-iso - app-cdr/cdrtools
-jar,zip - app-arch/zip and app-arch/unzip
-lha - app-arch/lha
-lzop - app-arch/lzop
-rar - app-arch/unrar or app-arch/unar
-rpm - app-arch/rpm
-unstuff - app-arch/stuffit
-zoo - app-arch/zoo"
-
-src_prepare() {
- # Use absolute path to GNU tar since star doesn't have the same
- # options. On Gentoo, star is /usr/bin/tar, GNU tar is /bin/tar
- epatch "${FILESDIR}"/${PN}-2.10.3-use_bin_tar.patch
-
- # File providing Gentoo package names for various archivers
- cp -f "${FILESDIR}/3.6.0-packages.match" data/packages.match || die
-
- gnome2_src_prepare
-}
-
-src_configure() {
- DOCS="AUTHORS ChangeLog HACKING MAINTAINERS NEWS README* TODO"
- # --disable-debug because enabling it adds -O0 to CFLAGS
- gnome2_src_configure \
- --disable-run-in-place \
- --disable-static \
- --disable-debug \
- --enable-magic \
- --enable-libarchive \
- --with-smclient=xsmp \
- $(use_enable nautilus nautilus-actions) \
- $(use_enable packagekit) \
- ITSTOOL=$(type -P true)
-}
-
-src_install() {
- gnome2_src_install
- readme.gentoo_create_doc
-}
-
-pkg_postinst() {
- gnome2_pkg_postinst
- readme.gentoo_print_elog
-}
diff --git a/app-arch/file-roller/files/file-roller-3.8.4-extract-failure.patch b/app-arch/file-roller/files/file-roller-3.8.4-extract-failure.patch
new file mode 100644
index 000000000000..fa9d68d2b7bd
--- /dev/null
+++ b/app-arch/file-roller/files/file-roller-3.8.4-extract-failure.patch
@@ -0,0 +1,43 @@
+From 40d2c298a7b938a974fe83b609293348a7d59bbd Mon Sep 17 00:00:00 2001
+From: Paolo Bacchilega <paobac@src.gnome.org>
+Date: Sun, 29 Sep 2013 16:30:29 +0000
+Subject: libarchive: fixed failure when extracting some tar archives
+
+do not try to restore the creation time;
+do not set the G_FILE_ATTRIBUTE_TIME_CREATED_USEC attribute
+
+[bug #709035]
+---
+diff --git a/src/fr-archive-libarchive.c b/src/fr-archive-libarchive.c
+index 37e3008..e465fe8 100644
+--- a/src/fr-archive-libarchive.c
++++ b/src/fr-archive-libarchive.c
+@@ -428,15 +428,8 @@ _g_file_info_create_from_entry (struct archive_entry *entry,
+
+ /* times */
+
+- if (archive_entry_ctime_is_set (entry)) {
+- g_file_info_set_attribute_uint64 (info, G_FILE_ATTRIBUTE_TIME_CREATED, archive_entry_ctime (entry));
+- g_file_info_set_attribute_uint32 (info, G_FILE_ATTRIBUTE_TIME_CREATED_USEC, archive_entry_ctime_nsec (entry));
+- }
+-
+- if (archive_entry_mtime_is_set (entry)) {
++ if (archive_entry_mtime_is_set (entry))
+ g_file_info_set_attribute_uint64 (info, G_FILE_ATTRIBUTE_TIME_MODIFIED, archive_entry_mtime (entry));
+- g_file_info_set_attribute_uint32 (info, G_FILE_ATTRIBUTE_TIME_MODIFIED_USEC, archive_entry_mtime_nsec (entry));
+- }
+
+ /* username */
+
+@@ -529,7 +522,8 @@ restore_modification_time (GHashTable *created_folders,
+
+ info = g_file_info_new ();
+ g_file_info_set_attribute_uint64 (info, G_FILE_ATTRIBUTE_TIME_MODIFIED, g_file_info_get_attribute_uint64 (original_info, G_FILE_ATTRIBUTE_TIME_MODIFIED));
+- g_file_info_set_attribute_uint32 (info, G_FILE_ATTRIBUTE_TIME_MODIFIED_USEC, g_file_info_get_attribute_uint32 (original_info, G_FILE_ATTRIBUTE_TIME_MODIFIED_USEC));
++ if (g_file_info_get_attribute_status (original_info, G_FILE_ATTRIBUTE_TIME_MODIFIED_USEC) == G_FILE_ATTRIBUTE_STATUS_SET)
++ g_file_info_set_attribute_uint32 (info, G_FILE_ATTRIBUTE_TIME_MODIFIED_USEC, g_file_info_get_attribute_uint32 (original_info, G_FILE_ATTRIBUTE_TIME_MODIFIED_USEC));
+ result = _g_file_set_attributes_from_info (file, info, cancellable, error);
+
+ g_object_unref (info);
+--
+cgit v0.9.2
diff --git a/app-arch/file-roller/files/file-roller-3.8.4-ignore-errors.patch b/app-arch/file-roller/files/file-roller-3.8.4-ignore-errors.patch
new file mode 100644
index 000000000000..712ba7497001
--- /dev/null
+++ b/app-arch/file-roller/files/file-roller-3.8.4-ignore-errors.patch
@@ -0,0 +1,40 @@
+From 80c36ae3c84dce8716eb5b74ddb8c73da5824f13 Mon Sep 17 00:00:00 2001
+From: Paolo Bacchilega <paobac@src.gnome.org>
+Date: Fri, 11 Oct 2013 19:38:27 +0000
+Subject: ignore errors when setting file attributes
+
+[bug #709932]
+---
+diff --git a/src/fr-archive-libarchive.c b/src/fr-archive-libarchive.c
+index 44aaad2..19c5a1d 100644
+--- a/src/fr-archive-libarchive.c
++++ b/src/fr-archive-libarchive.c
+@@ -751,7 +751,7 @@ extract_archive_thread (GSimpleAsyncResult *result,
+ GFileInfo *info;
+
+ info = _g_file_info_create_from_entry (entry, extract_data);
+- _g_file_set_attributes_from_info (file, info, cancellable, &load_data->error);
++ _g_file_set_attributes_from_info (file, info, cancellable, NULL);
+ g_hash_table_insert (created_folders, g_object_ref (file), g_object_ref (info));
+
+ g_object_unref (info);
+@@ -774,7 +774,7 @@ extract_archive_thread (GSimpleAsyncResult *result,
+ if (r != ARCHIVE_EOF)
+ load_data->error = g_error_new_literal (FR_ERROR, FR_ERROR_COMMAND_ERROR, archive_error_string (a));
+ else
+- _g_file_set_attributes_from_entry (file, entry, extract_data, cancellable, &load_data->error);
++ _g_file_set_attributes_from_entry (file, entry, extract_data, cancellable, NULL);
+ break;
+
+ case AE_IFLNK:
+@@ -805,7 +805,7 @@ extract_archive_thread (GSimpleAsyncResult *result,
+ }
+
+ if (load_data->error == NULL)
+- restore_modification_time (created_folders, cancellable, &load_data->error);
++ restore_modification_time (created_folders, cancellable, NULL);
+
+ if ((load_data->error == NULL) && (r != ARCHIVE_EOF))
+ load_data->error = g_error_new_literal (FR_ERROR, FR_ERROR_COMMAND_ERROR, archive_error_string (a));
+--
+cgit v0.9.2
diff --git a/app-arch/file-roller/files/file-roller-3.8.4-modifications-time.patch b/app-arch/file-roller/files/file-roller-3.8.4-modifications-time.patch
new file mode 100644
index 000000000000..d6c7baa882fe
--- /dev/null
+++ b/app-arch/file-roller/files/file-roller-3.8.4-modifications-time.patch
@@ -0,0 +1,186 @@
+From 4bf8552f8e60c8d4ec65e360451c6998198052db Mon Sep 17 00:00:00 2001
+From: Paolo Bacchilega <paobac@src.gnome.org>
+Date: Wed, 04 Sep 2013 10:02:11 +0000
+Subject: libarchive: restore the folders modification time correctly
+
+when honoring the skip_older and overwrite flags ignore the
+directories created during the extraction process.
+
+[bug #697756]
+---
+diff --git a/src/fr-archive-libarchive.c b/src/fr-archive-libarchive.c
+index 3b73c48..37e3008 100644
+--- a/src/fr-archive-libarchive.c
++++ b/src/fr-archive-libarchive.c
+@@ -33,6 +33,7 @@
+ #include "file-utils.h"
+ #include "fr-error.h"
+ #include "fr-archive-libarchive.h"
++#include "gio-utils.h"
+ #include "glib-utils.h"
+ #include "typedefs.h"
+
+@@ -547,6 +548,7 @@ extract_archive_thread (GSimpleAsyncResult *result,
+ LoadData *load_data;
+ GHashTable *checked_folders;
+ GHashTable *created_folders;
++ GHashTable *folders_created_during_extraction;
+ struct archive *a;
+ struct archive_entry *entry;
+ int r;
+@@ -556,6 +558,7 @@ extract_archive_thread (GSimpleAsyncResult *result,
+
+ checked_folders = g_hash_table_new_full (g_file_hash, (GEqualFunc) g_file_equal, g_object_unref, NULL);
+ created_folders = g_hash_table_new_full (g_file_hash, (GEqualFunc) g_file_equal, g_object_unref, g_object_unref);
++ folders_created_during_extraction = g_hash_table_new_full (g_file_hash, (GEqualFunc) g_file_equal, g_object_unref, NULL);
+ fr_archive_progress_set_total_files (load_data->archive, extract_data->n_files_to_extract);
+
+ a = archive_read_new ();
+@@ -590,11 +593,14 @@ extract_archive_thread (GSimpleAsyncResult *result,
+ archive_read_data_skip (a);
+ continue;
+ }
++
+ file = g_file_get_child (extract_data->destination, relative_path);
+
+ /* honor the skip_older and overwrite options */
+
+- if (extract_data->skip_older || ! extract_data->overwrite) {
++ if ((g_hash_table_lookup (folders_created_during_extraction, file) == NULL)
++ && (extract_data->skip_older || ! extract_data->overwrite))
++ {
+ GFileInfo *info;
+
+ info = g_file_query_info (file,
+@@ -652,7 +658,18 @@ extract_archive_thread (GSimpleAsyncResult *result,
+ && (g_hash_table_lookup (checked_folders, parent) == NULL)
+ && ! g_file_query_exists (parent, cancellable))
+ {
+- if (g_file_make_directory_with_parents (parent, cancellable, &load_data->error)) {
++ if (! _g_file_make_directory_with_parents (parent,
++ folders_created_during_extraction,
++ cancellable,
++ &local_error))
++ {
++ if (! g_error_matches (local_error, G_IO_ERROR, G_IO_ERROR_EXISTS))
++ load_data->error = local_error;
++ else
++ g_clear_error (&local_error);
++ }
++
++ if (load_data->error == NULL) {
+ GFile *grandparent;
+
+ grandparent = g_object_ref (parent);
+@@ -736,7 +753,7 @@ extract_archive_thread (GSimpleAsyncResult *result,
+ load_data->error = g_error_copy (local_error);
+ g_error_free (local_error);
+ }
+- else {
++ if (load_data->error == NULL) {
+ GFileInfo *info;
+
+ info = _g_file_info_create_from_entry (entry, extract_data);
+@@ -803,6 +820,7 @@ extract_archive_thread (GSimpleAsyncResult *result,
+ if (load_data->error != NULL)
+ g_simple_async_result_set_from_error (result, load_data->error);
+
++ g_hash_table_unref (folders_created_during_extraction);
+ g_hash_table_unref (created_folders);
+ g_hash_table_unref (checked_folders);
+ archive_read_free (a);
+diff --git a/src/gio-utils.c b/src/gio-utils.c
+index 9d9f708..b317694 100644
+--- a/src/gio-utils.c
++++ b/src/gio-utils.c
+@@ -1483,3 +1483,73 @@ _g_file_load_buffer_finish (GFile *file,
+
+ return TRUE;
+ }
++
++
++static gboolean
++_g_file_make_directory_and_add_to_created_folders (GFile *file,
++ GHashTable *created_folders,
++ GCancellable *cancellable,
++ GError **error)
++{
++ gboolean result;
++
++ result = g_file_make_directory (file, cancellable, error);
++ if (result && (g_hash_table_lookup (created_folders, file) == NULL))
++ g_hash_table_insert (created_folders, g_object_ref (file), GINT_TO_POINTER (1));
++
++ return result;
++}
++
++
++gboolean
++_g_file_make_directory_with_parents (GFile *file,
++ GHashTable *created_folders,
++ GCancellable *cancellable,
++ GError **error)
++{
++ GError *local_error = NULL;
++ GFile *work_file = NULL;
++ GList *list = NULL, *l;
++
++ g_return_val_if_fail (G_IS_FILE (file), FALSE);
++
++ _g_file_make_directory_and_add_to_created_folders (file, created_folders, cancellable, &local_error);
++ if ((local_error == NULL) || (local_error->code != G_IO_ERROR_NOT_FOUND)) {
++ if (local_error != NULL)
++ g_propagate_error (error, local_error);
++ return local_error == NULL;
++ }
++
++ work_file = g_object_ref (file);
++ while ((local_error != NULL) && (local_error->code == G_IO_ERROR_NOT_FOUND)) {
++ GFile *parent_file;
++
++ parent_file = g_file_get_parent (work_file);
++ if (parent_file == NULL)
++ break;
++
++ g_clear_error (&local_error);
++ _g_file_make_directory_and_add_to_created_folders (parent_file, created_folders, cancellable, &local_error);
++
++ g_object_unref (work_file);
++ work_file = g_object_ref (parent_file);
++
++ if ((local_error != NULL) && (local_error->code == G_IO_ERROR_NOT_FOUND))
++ list = g_list_prepend (list, parent_file); /* Transfer ownership of ref */
++ else
++ g_object_unref (parent_file);
++ }
++
++ for (l = list; (local_error == NULL) && (l != NULL); l = l->next)
++ _g_file_make_directory_and_add_to_created_folders ((GFile *) l->data, created_folders, cancellable, &local_error);
++
++ _g_object_unref (work_file);
++ _g_object_list_unref (list);
++
++ if (local_error != NULL) {
++ g_propagate_error (error, local_error);
++ return FALSE;
++ }
++
++ return _g_file_make_directory_and_add_to_created_folders (file, created_folders, cancellable, error);
++}
+diff --git a/src/gio-utils.h b/src/gio-utils.h
+index f784c41..0d7dd3c 100644
+--- a/src/gio-utils.h
++++ b/src/gio-utils.h
+@@ -177,5 +177,10 @@ gboolean _g_file_load_buffer_finish (GFile *file,
+ char **buffer,
+ gsize *buffer_size,
+ GError **error);
++gboolean _g_file_make_directory_with_parents
++ (GFile *file,
++ GHashTable *created_folders,
++ GCancellable *cancellable,
++ GError **error);
+
+ #endif /* _GIO_UTILS_H */
+--
+cgit v0.9.2