diff options
author | André Fabian Silva Delgado <emulatorman@parabola.nu> | 2014-02-20 05:17:36 -0200 |
---|---|---|
committer | André Fabian Silva Delgado <emulatorman@parabola.nu> | 2014-02-20 05:17:36 -0200 |
commit | 7dc82889a77f38450a1116363d91d085b307e009 (patch) | |
tree | c9f324c500328c7258fb05de8d9fe0c8d8d3cba6 | |
parent | f0078a2177e50f86f41a79a328249ddcd584a3c8 (diff) | |
download | abslibre-7dc82889a77f38450a1116363d91d085b307e009.tar.gz abslibre-7dc82889a77f38450a1116363d91d085b307e009.tar.bz2 abslibre-7dc82889a77f38450a1116363d91d085b307e009.zip |
xarchiver-libre-0.5.3-1: updating version
14 files changed, 436 insertions, 938 deletions
diff --git a/libre/xarchiver-libre/PKGBUILD b/libre/xarchiver-libre/PKGBUILD index e606e65f4..a718b8252 100644 --- a/libre/xarchiver-libre/PKGBUILD +++ b/libre/xarchiver-libre/PKGBUILD @@ -1,4 +1,4 @@ -# $Id: PKGBUILD 104651 2014-01-24 08:23:36Z bgyorgy $ +# $Id: PKGBUILD 105928 2014-02-19 11:27:15Z bgyorgy $ # Maintainer: Balló György <ballogyor+arch at gmail dot com> # Contributor: Alexander Fehr <pizzapunk gmail com> # Contributor: Andrew Simmons <andrew.simmons@gmail.com> @@ -6,8 +6,8 @@ _pkgname=xarchiver pkgname=xarchiver-libre -pkgver=0.5.2 -pkgrel=6 +pkgver=0.5.3 +pkgrel=1 pkgdesc="GTK+ frontend to various command line archivers, with unar support" arch=('i686' 'x86_64' 'mips64el') url="http://xarchiver.sourceforge.net/" @@ -19,78 +19,42 @@ depends=('gtk2' 'desktop-file-utils') makedepends=('intltool') optdepends=('zip: ZIP support' 'unzip: ZIP support' - 'unar: RAR support' 'p7zip: 7z support' 'arj: ARJ support' 'lzop: LZOP support' - 'cpio: RPM support') + 'cpio: RPM support' + 'unar: RAR support') install=xarchiver.install source=(http://downloads.sourceforge.net/xarchiver/xarchiver-$pkgver.tar.bz2 - xarchiver-0.5.2-no-donators-menu.patch - xarchiver-0.5.2-add_xz_support.patch - xarchiver-0.5.2-segfault-open-with.patch - xarchiver-0.5.2-fix_7z_support.patch - xarchiver-0.5.2-drag-n-drop_escaped_path.patch - xarchiver-0.5.2-fix-double-escaping.patch - xarchiver-0.5.2-fix-non-existent-archive.patch - xarchiver-0.5.2-segfault-delete-file.patch - xarchiver-0.5.2-segfault-password-protected.patch - xarchiver-0.5.2-add_unar_support.patch - xarchiver-0.5.2-add_mime_types.patch) -md5sums=('2bc7f06403cc6582dd4a8029ec9d038d' - '7ef9fe9aee9f0fbc141ed9683e91ea1c' - '5d5ef8dd1b8b7790af4ece5fcedcd370' - 'f9036a44157b318cbc59ed012b04974b' - '782f55c1f1021dc02c7739bf8a47336e' - 'fcd9e04222c5e0ef459977bd7cd0ae4e' + xarchiver-0.5.3-fix-rpm-support.patch + xarchiver-0.5.3-fix-double-escaping.patch + xarchiver-0.5.3-fix-password-protected.patch + xarchiver-0.5.3-add-mime-types.patch + xarchiver-0.5.3-add-unar-support.patch) +md5sums=('fd390bbd2df76a5f8a007bdeae82d4aa' + '812b93339f5e3332621f3c5abebfe277' '6178d7ab679b761469c880a8db991907' - '22ed2783e72684a102243c5834bf5ca3' - 'e518b1e0bc4407383aae2783c0c19a04' - 'c46daf2ee9fce7ece608eca33174db6b' - '1bfed3e1a9f8f4858ec90f0d66cfc5ba' - '36a4c3181230aab1e0ce1596acc5ef88') + '35ab96d98521a0a36f3e9e9ec0969107' + 'f9119f5290caa195a56b7d3c63d9137d' + '5f0b21efd0159d41f207e664b72210b8') prepare() { cd $_pkgname-$pkgver - # Fix donators menu item (upstream patch) - patch -Np2 -i ../xarchiver-0.5.2-no-donators-menu.patch - - # Add XZ support - # http://sourceforge.net/p/xarchiver/bugs/28/ - patch -Np1 -i ../xarchiver-0.5.2-add_xz_support.patch - - # Fix segfault on open with dialog - # http://sourceforge.net/p/xarchiver/bugs/52/ - patch -Np1 -i ../xarchiver-0.5.2-segfault-open-with.patch - - # Fix 7z support - # http://sourceforge.net/p/xarchiver/patches/5/ - patch -Np1 -i ../xarchiver-0.5.2-fix_7z_support.patch - - # Fix extraction when the Drag'n'Drop target path contains spaces - patch -Np1 -i ../xarchiver-0.5.2-drag-n-drop_escaped_path.patch + # Fix RPM support + patch -Np1 -i ../xarchiver-0.5.3-fix-rpm-support.patch # Fix error when trying to create archives with spaces - patch -Np1 -i ../xarchiver-0.5.2-fix-double-escaping.patch - - # Fix segfault when non-existent archive specified - patch -Np1 -i ../xarchiver-0.5.2-fix-non-existent-archive.patch - - # Fix segfault when deleting a file - patch -Np1 -i ../xarchiver-0.5.2-segfault-delete-file.patch + patch -Np1 -i ../xarchiver-0.5.3-fix-double-escaping.patch # Fix segfault when handling password protected files - patch -Np1 -i ../xarchiver-0.5.2-segfault-password-protected.patch - - # Add unar support - patch -Np1 -i ../xarchiver-0.5.2-add_unar_support.patch + patch -Np1 -i ../xarchiver-0.5.3-fix-password-protected.patch # Add more MIME types in the desktop file - patch -Np1 -i ../xarchiver-0.5.2-add_mime_types.patch + patch -Np1 -i ../xarchiver-0.5.3-add-mime-types.patch - # Update upstream URL - find -type f | xargs sed -i 's|http://xarchiver.xfce.org|http://xarchiver.sf.net|' + # Add unar support + patch -Np1 -i ../xarchiver-0.5.3-add-unar-support.patch } build() { diff --git a/libre/xarchiver-libre/xarchiver-0.5.2-add_xz_support.patch b/libre/xarchiver-libre/xarchiver-0.5.2-add_xz_support.patch deleted file mode 100644 index d246a8e19..000000000 --- a/libre/xarchiver-libre/xarchiver-0.5.2-add_xz_support.patch +++ /dev/null @@ -1,397 +0,0 @@ -diff -uNr xarchiver-0.5.2.orig/src/add_dialog.c xarchiver-0.5.2/src/add_dialog.c ---- xarchiver-0.5.2.orig/src/add_dialog.c 2008-11-10 19:41:31.000000000 +0900 -+++ xarchiver-0.5.2/src/add_dialog.c 2013-05-11 10:01:47.887094708 +0900 -@@ -209,7 +209,7 @@ - else - gtk_widget_set_size_request (add_dialog->dialog1,530,420); - -- if (archive->type == XARCHIVETYPE_BZIP2 || archive->type == XARCHIVETYPE_GZIP || archive->type == XARCHIVETYPE_LZMA || archive->type == XARCHIVETYPE_LZOP) -+ if (archive->type == XARCHIVETYPE_BZIP2 || archive->type == XARCHIVETYPE_GZIP || archive->type == XARCHIVETYPE_LZMA || archive->type == XARCHIVETYPE_XZ || archive->type == XARCHIVETYPE_LZOP) - gtk_file_chooser_set_select_multiple(GTK_FILE_CHOOSER(add_dialog->filechooserwidget1),FALSE); - else - gtk_file_chooser_set_select_multiple(GTK_FILE_CHOOSER(add_dialog->filechooserwidget1),TRUE); -@@ -222,7 +222,7 @@ - else - gtk_widget_set_sensitive(add_dialog->store_path,TRUE); - /* 7z doesn't appear to let the user chooses if storing full paths */ -- if (archive->type == XARCHIVETYPE_7ZIP || archive->type == XARCHIVETYPE_LZOP || archive->type == XARCHIVETYPE_BZIP2 || archive->type == XARCHIVETYPE_GZIP || archive->type == XARCHIVETYPE_LZMA) -+ if (archive->type == XARCHIVETYPE_7ZIP || archive->type == XARCHIVETYPE_LZOP || archive->type == XARCHIVETYPE_BZIP2 || archive->type == XARCHIVETYPE_GZIP || archive->type == XARCHIVETYPE_LZMA || archive->type == XARCHIVETYPE_XZ ) - { - flag = FALSE; - } -@@ -244,7 +244,7 @@ - flag = TRUE; - gtk_widget_set_sensitive(add_dialog->solid_archive,flag); - -- if (archive->type != XARCHIVETYPE_TAR && archive->type != XARCHIVETYPE_TAR_GZ && archive->type != XARCHIVETYPE_TAR_LZMA && archive->type != XARCHIVETYPE_TAR_BZ2 && archive->type != XARCHIVETYPE_TAR_LZOP) -+ if (archive->type != XARCHIVETYPE_TAR && archive->type != XARCHIVETYPE_TAR_GZ && archive->type != XARCHIVETYPE_TAR_LZMA && archive->type != XARCHIVETYPE_TAR_XZ && archive->type != XARCHIVETYPE_TAR_BZ2 && archive->type != XARCHIVETYPE_TAR_LZOP) - { - flag = TRUE; - if (archive->type == XARCHIVETYPE_7ZIP) -@@ -306,7 +306,7 @@ - g_signal_connect (G_OBJECT (add_dialog->compression_value),"value-changed",G_CALLBACK (fix_adjustment_value), NULL); - gtk_tooltips_set_tip (add_dialog->option_tooltip,add_dialog->compression_scale, compression_msg, NULL ); - -- if (archive->type == XARCHIVETYPE_TAR || archive->type == XARCHIVETYPE_TAR_GZ || archive->type == XARCHIVETYPE_TAR_LZMA || archive->type == XARCHIVETYPE_TAR_BZ2 || archive->type == XARCHIVETYPE_TAR_LZOP) -+ if (archive->type == XARCHIVETYPE_TAR || archive->type == XARCHIVETYPE_TAR_GZ || archive->type == XARCHIVETYPE_TAR_LZMA || archive->type == XARCHIVETYPE_TAR_XZ || archive->type == XARCHIVETYPE_TAR_BZ2 || archive->type == XARCHIVETYPE_TAR_LZOP) - flag = FALSE; - else - flag = TRUE; -diff -uNr xarchiver-0.5.2.orig/src/archive.h xarchiver-0.5.2/src/archive.h ---- xarchiver-0.5.2.orig/src/archive.h 2008-11-07 17:49:41.000000000 +0900 -+++ xarchiver-0.5.2/src/archive.h 2013-05-11 10:01:47.888094708 +0900 -@@ -30,6 +30,7 @@ - XARCHIVETYPE_BZIP2, - XARCHIVETYPE_GZIP, - XARCHIVETYPE_LZMA, -+ XARCHIVETYPE_XZ, - XARCHIVETYPE_LZOP, - XARCHIVETYPE_RAR, - XARCHIVETYPE_RPM, -@@ -37,6 +38,7 @@ - XARCHIVETYPE_TAR_BZ2, - XARCHIVETYPE_TAR_GZ, - XARCHIVETYPE_TAR_LZMA, -+ XARCHIVETYPE_TAR_XZ, - XARCHIVETYPE_TAR_LZOP, - XARCHIVETYPE_ZIP, - XARCHIVETYPE_LHA, -diff -uNr xarchiver-0.5.2.orig/src/bzip2.c xarchiver-0.5.2/src/bzip2.c ---- xarchiver-0.5.2.orig/src/bzip2.c 2008-11-10 20:17:48.000000000 +0900 -+++ xarchiver-0.5.2/src/bzip2.c 2013-05-11 10:01:47.888094708 +0900 -@@ -54,6 +54,15 @@ - archive->extract = extract[archive->type]; - xa_open_tar_compressed_file(archive); - } -+ else if (g_str_has_suffix(archive->escaped_path,".tar.xz") || g_str_has_suffix (archive->escaped_path,".txz")) -+ { -+ archive->type = XARCHIVETYPE_TAR_XZ; -+ archive->format = "TAR.XZ"; -+ archive->delete = delete[archive->type]; -+ archive->add = add[archive->type]; -+ archive->extract = extract[archive->type]; -+ xa_open_tar_compressed_file(archive); -+ } - else if (g_str_has_suffix(archive->escaped_path,".tar.lzop") || - g_str_has_suffix (archive->escaped_path,".tzo") || - g_str_has_suffix(archive->escaped_path,".tar.lzo")) -@@ -85,6 +94,12 @@ - executable = "lzma "; - len = 5; - } -+ else if (archive->type == XARCHIVETYPE_XZ) -+ { -+ archive->format = "XZ"; -+ executable = "xz "; -+ len = 5; -+ } - else if (archive->type == XARCHIVETYPE_LZOP) - { - archive->format = "LZOP"; -@@ -163,6 +178,8 @@ - command = g_strconcat(tar," tfjv ",archive->escaped_path,NULL); - else if (archive->type == XARCHIVETYPE_TAR_LZMA) - command = g_strconcat(tar," tv --use-compress-program=lzma -f ",archive->escaped_path,NULL); -+ else if (archive->type == XARCHIVETYPE_TAR_XZ) -+ command = g_strconcat(tar," tv --use-compress-program=xz -f ",archive->escaped_path,NULL); - else if (archive->type == XARCHIVETYPE_TAR_LZOP) - command = g_strconcat(tar," tv --use-compress-program=lzop -f ",archive->escaped_path,NULL); - /* else fail? */ -@@ -205,6 +222,11 @@ - executable = "lzma "; - len = 5; - } -+ else if (archive->type == XARCHIVETYPE_XZ) -+ { -+ executable = "xz "; -+ len = 5; -+ } - else if (archive->type == XARCHIVETYPE_LZOP) - { - executable = "lzop "; -diff -uNr xarchiver-0.5.2.orig/src/extract_dialog.c xarchiver-0.5.2/src/extract_dialog.c ---- xarchiver-0.5.2.orig/src/extract_dialog.c 2008-11-10 19:28:11.000000000 +0900 -+++ xarchiver-0.5.2/src/extract_dialog.c 2013-05-11 10:01:47.889094708 +0900 -@@ -815,6 +815,11 @@ - archive->type = XARCHIVETYPE_TAR_LZMA; - archive->extract = extract[XARCHIVETYPE_TAR_LZMA]; - } -+ else if (g_str_has_suffix(archive->escaped_path,".tar.xz")|| g_str_has_suffix (archive->escaped_path,".txz")) -+ { -+ archive->type = XARCHIVETYPE_TAR_XZ; -+ archive->extract = extract[XARCHIVETYPE_TAR_XZ]; -+ } - else if (g_str_has_suffix(archive->escaped_path,".tar.lzop") || - g_str_has_suffix (archive->escaped_path,".tzo") || - g_str_has_suffix(archive->escaped_path,".tar.lzo")) -diff -uNr xarchiver-0.5.2.orig/src/main.c xarchiver-0.5.2/src/main.c ---- xarchiver-0.5.2.orig/src/main.c 2008-11-10 20:21:43.000000000 +0900 -+++ xarchiver-0.5.2/src/main.c 2013-05-11 10:17:01.696094044 +0900 -@@ -296,9 +296,10 @@ - open_archive[XARCHIVETYPE_BZIP2] = &xa_open_bzip2_lzma; - open_archive[XARCHIVETYPE_GZIP] = &xa_open_gzip; - open_archive[XARCHIVETYPE_LZMA] = &xa_open_bzip2_lzma; -+ open_archive[XARCHIVETYPE_XZ] = &xa_open_bzip2_lzma; - open_archive[XARCHIVETYPE_RAR] = &xa_open_rar; - open_archive[XARCHIVETYPE_RPM] = &xa_open_rpm; -- open_archive[XARCHIVETYPE_TAR] = open_archive[XARCHIVETYPE_TAR_BZ2] = open_archive[XARCHIVETYPE_TAR_GZ] = open_archive[XARCHIVETYPE_TAR_LZMA] = open_archive[XARCHIVETYPE_TAR_LZOP] = &xa_open_tar; -+ open_archive[XARCHIVETYPE_TAR] = open_archive[XARCHIVETYPE_TAR_BZ2] = open_archive[XARCHIVETYPE_TAR_GZ] = open_archive[XARCHIVETYPE_TAR_LZMA] = open_archive[XARCHIVETYPE_TAR_XZ] = open_archive[XARCHIVETYPE_TAR_LZOP] = &xa_open_tar; - open_archive[XARCHIVETYPE_ZIP] = &xa_open_zip; - open_archive[XARCHIVETYPE_LHA] = &xa_open_lha; - open_archive[XARCHIVETYPE_LZOP] = &xa_open_bzip2_lzma; -@@ -310,9 +311,10 @@ - delete[XARCHIVETYPE_BZIP2] = 0; - delete[XARCHIVETYPE_GZIP] = 0; - delete[XARCHIVETYPE_LZMA] = 0; -+ delete[XARCHIVETYPE_XZ] = 0; - delete[XARCHIVETYPE_RAR] = &xa_rar_delete; - delete[XARCHIVETYPE_RPM] = 0; -- delete[XARCHIVETYPE_TAR] = delete[XARCHIVETYPE_TAR_BZ2] = delete[XARCHIVETYPE_TAR_GZ] = delete[XARCHIVETYPE_TAR_LZMA] = delete[XARCHIVETYPE_TAR_LZOP] = &xa_tar_delete; -+ delete[XARCHIVETYPE_TAR] = delete[XARCHIVETYPE_TAR_BZ2] = delete[XARCHIVETYPE_TAR_GZ] = delete[XARCHIVETYPE_TAR_LZMA] = delete[XARCHIVETYPE_TAR_XZ] = delete[XARCHIVETYPE_TAR_LZOP] = &xa_tar_delete; - delete[XARCHIVETYPE_ZIP] = &xa_zip_delete; - delete[XARCHIVETYPE_LHA] = &xa_lha_delete; - delete[XARCHIVETYPE_LZOP] = 0; -@@ -322,10 +324,10 @@ - add[XARCHIVETYPE_7ZIP] = &xa_7zip_add; - add[XARCHIVETYPE_ARJ] = &xa_arj_add; - add[XARCHIVETYPE_DEB] = 0; -- add[XARCHIVETYPE_BZIP2] = add[XARCHIVETYPE_GZIP] = add[XARCHIVETYPE_LZMA] = &xa_tar_add; -+ add[XARCHIVETYPE_BZIP2] = add[XARCHIVETYPE_GZIP] = add[XARCHIVETYPE_LZMA] = add[XARCHIVETYPE_XZ] = &xa_tar_add; - add[XARCHIVETYPE_RAR] = &xa_rar_add; - add[XARCHIVETYPE_RPM] = 0; -- add[XARCHIVETYPE_TAR] = add[XARCHIVETYPE_TAR_BZ2] = add[XARCHIVETYPE_TAR_GZ] = add[XARCHIVETYPE_TAR_LZMA] = add[XARCHIVETYPE_TAR_LZOP] = &xa_tar_add; -+ add[XARCHIVETYPE_TAR] = add[XARCHIVETYPE_TAR_BZ2] = add[XARCHIVETYPE_TAR_GZ] = add[XARCHIVETYPE_TAR_LZMA] = add[XARCHIVETYPE_TAR_XZ] = add[XARCHIVETYPE_TAR_LZOP] = &xa_tar_add; - add[XARCHIVETYPE_ZIP] = &xa_zip_add; - add[XARCHIVETYPE_LHA] = &xa_lha_add; - add[XARCHIVETYPE_LZOP] = &xa_tar_add; -@@ -334,10 +336,10 @@ - extract[XARCHIVETYPE_7ZIP] = &xa_7zip_extract; - extract[XARCHIVETYPE_ARJ] = &xa_arj_extract; - extract[XARCHIVETYPE_DEB] = &xa_deb_extract;; -- extract[XARCHIVETYPE_BZIP2] = extract[XARCHIVETYPE_GZIP] = extract[XARCHIVETYPE_LZMA] = &xa_tar_extract; -+ extract[XARCHIVETYPE_BZIP2] = extract[XARCHIVETYPE_GZIP] = extract[XARCHIVETYPE_LZMA] = extract[XARCHIVETYPE_XZ] = &xa_tar_extract; - extract[XARCHIVETYPE_RAR] = &xa_rar_extract; - extract[XARCHIVETYPE_RPM] = &xa_rpm_extract; -- extract[XARCHIVETYPE_TAR] = extract[XARCHIVETYPE_TAR_BZ2] = extract[XARCHIVETYPE_TAR_GZ] = extract[XARCHIVETYPE_TAR_LZMA] = extract[XARCHIVETYPE_TAR_LZOP] = &xa_tar_extract; -+ extract[XARCHIVETYPE_TAR] = extract[XARCHIVETYPE_TAR_BZ2] = extract[XARCHIVETYPE_TAR_GZ] = extract[XARCHIVETYPE_TAR_LZMA] = extract[XARCHIVETYPE_TAR_XZ] = extract[XARCHIVETYPE_TAR_LZOP] = &xa_tar_extract; - extract[XARCHIVETYPE_ZIP] = &xa_zip_extract; - extract[XARCHIVETYPE_LHA] = &xa_lha_extract; - extract[XARCHIVETYPE_LZOP] = &xa_tar_extract; -@@ -345,10 +347,10 @@ - test[0] = 0; - test[XARCHIVETYPE_7ZIP] = &xa_7zip_test; - test[XARCHIVETYPE_ARJ] = &xa_arj_test; -- test[XARCHIVETYPE_DEB] = test[XARCHIVETYPE_BZIP2] = test[XARCHIVETYPE_GZIP] = test[XARCHIVETYPE_LZMA] = 0; -+ test[XARCHIVETYPE_DEB] = test[XARCHIVETYPE_BZIP2] = test[XARCHIVETYPE_GZIP] = test[XARCHIVETYPE_LZMA] = test[XARCHIVETYPE_XZ] = 0; - test[XARCHIVETYPE_RAR] = &xa_rar_test; - test[XARCHIVETYPE_RPM] = 0; -- test[XARCHIVETYPE_TAR] = test[XARCHIVETYPE_TAR_BZ2] = test[XARCHIVETYPE_TAR_GZ] = test[XARCHIVETYPE_TAR_LZMA] = test[XARCHIVETYPE_TAR_LZOP] = 0; -+ test[XARCHIVETYPE_TAR] = test[XARCHIVETYPE_TAR_BZ2] = test[XARCHIVETYPE_TAR_GZ] = test[XARCHIVETYPE_TAR_LZMA] = test[XARCHIVETYPE_TAR_XZ] = test[XARCHIVETYPE_TAR_LZOP] = 0; - test[XARCHIVETYPE_ZIP] = &xa_zip_test; - test[XARCHIVETYPE_LHA] = &xa_lha_test; - test[XARCHIVETYPE_LZOP] = 0; -@@ -392,6 +394,14 @@ - g_free (absolute_path); - } - -+ absolute_path = g_find_program_in_path("xz"); -+ if ( absolute_path ) -+ { -+ ArchiveType = g_list_append(ArchiveType, "xz"); -+ ArchiveSuffix = g_list_append(ArchiveSuffix, "*.xz"); -+ g_free (absolute_path); -+ } -+ - absolute_path = g_find_program_in_path("lzop"); - if ( absolute_path ) - { -@@ -460,6 +470,11 @@ - ArchiveType = g_list_append(ArchiveType, "tar.lzma"); - ArchiveSuffix = g_list_append(ArchiveSuffix, "*.tlz"); - } -+ if ( g_list_find ( ArchiveType , "xz") ) -+ { -+ ArchiveType = g_list_append(ArchiveType, "tar.xz"); -+ ArchiveSuffix = g_list_append(ArchiveSuffix, "*.txz"); -+ } - if ( g_list_find ( ArchiveType , "lzo") ) - { - ArchiveType = g_list_append(ArchiveType, "tar.lzo"); -@@ -528,6 +543,8 @@ - archive->type = XARCHIVETYPE_TAR_GZ; - else if ( g_str_has_suffix ( archive->escaped_path , ".tar.lzma") || g_str_has_suffix ( archive->escaped_path , ".tlz") ) - archive->type = XARCHIVETYPE_TAR_LZMA; -+ else if ( g_str_has_suffix ( archive->escaped_path , ".tar.xz") || g_str_has_suffix ( archive->escaped_path , ".txz") ) -+ archive->type = XARCHIVETYPE_TAR_XZ; - else if ( g_str_has_suffix ( archive->escaped_path , ".tar.lzo") || - g_str_has_suffix ( archive->escaped_path , ".tzo") || - g_str_has_suffix ( archive->escaped_path , ".tar.lzop")) -diff -uNr xarchiver-0.5.2.orig/src/new_dialog.c xarchiver-0.5.2/src/new_dialog.c ---- xarchiver-0.5.2.orig/src/new_dialog.c 2008-11-11 17:28:46.000000000 +0900 -+++ xarchiver-0.5.2/src/new_dialog.c 2013-05-11 10:01:47.890094708 +0900 -@@ -202,6 +202,8 @@ - type = XARCHIVETYPE_GZIP; - else if (strcmp ( ComboArchiveType,"lzma") == 0) - type = XARCHIVETYPE_LZMA; -+ else if (strcmp ( ComboArchiveType,"xz") == 0) -+ type = XARCHIVETYPE_XZ; - else if (strcmp ( ComboArchiveType,"lzo") == 0) - type = XARCHIVETYPE_LZOP; - else if (strcmp ( ComboArchiveType,"rar") == 0) -@@ -214,6 +216,8 @@ - type = XARCHIVETYPE_TAR_GZ; - else if (strcmp ( ComboArchiveType,"tar.lzma") == 0) - type = XARCHIVETYPE_TAR_LZMA; -+ else if (strcmp ( ComboArchiveType,"tar.xz") == 0) -+ type = XARCHIVETYPE_TAR_XZ; - else if (strcmp ( ComboArchiveType,"tar.lzo") == 0) - type = XARCHIVETYPE_TAR_LZOP; - else if (strcmp ( ComboArchiveType,"jar") == 0 || strcmp ( ComboArchiveType,"zip") == 0 ) -diff -Naur xarchiver-0.5.2.orig/src/rpm.c xarchiver-0.5.2/src/rpm.c ---- xarchiver-0.5.2.orig/src/rpm.c 2014-01-24 03:07:47.729711000 +0100 -+++ xarchiver-0.5.2/src/rpm.c 2014-01-24 03:12:43.717122918 +0100 -@@ -111,8 +111,10 @@ - } - if (xa_detect_archive_type (gzip_tmp) == XARCHIVETYPE_GZIP) - executable = "gzip -dc "; -- else -+ else if (xa_detect_archive_type (gzip_tmp) == XARCHIVETYPE_BZIP2) - executable = "bzip2 -dc "; -+ else -+ executable = "xz -dc "; - - command = g_strconcat("sh -c \"",executable,gzip_tmp," > ",archive->tmp,"/file.cpio\"",NULL); - g_free(gzip_tmp);diff -uNr xarchiver-0.5.2.orig/src/tar.c xarchiver-0.5.2/src/tar.c ---- xarchiver-0.5.2.orig/src/tar.c 2008-11-10 19:28:34.000000000 +0900 -+++ xarchiver-0.5.2/src/tar.c 2013-05-11 10:12:01.027094262 +0900 -@@ -242,6 +242,17 @@ - files->str , NULL ); - break; - -+ case XARCHIVETYPE_TAR_XZ: -+ if ( g_file_test ( archive->escaped_path , G_FILE_TEST_EXISTS ) ) -+ xa_add_delete_bzip2_gzip_lzma_compressed_tar (files,archive,1); -+ else -+ command = g_strconcat (tar, " ", -+ archive->add_recurse ? "" : "--no-recursion ", -+ archive->remove_files ? "--remove-files " : "", -+ "--use-compress-program=xz -cvvf ",archive->escaped_path, -+ files->str , NULL ); -+ break; -+ - case XARCHIVETYPE_TAR_LZOP: - if ( g_file_test ( archive->escaped_path , G_FILE_TEST_EXISTS ) ) - xa_add_delete_bzip2_gzip_lzma_compressed_tar (files,archive,1); -@@ -265,6 +276,10 @@ - command = g_strconcat("sh -c \"lzma -c ",files->str,"> ",archive->escaped_path,"\"",NULL); - break; - -+ case XARCHIVETYPE_XZ: -+ command = g_strconcat("sh -c \"xz -c ",files->str,"> ",archive->escaped_path,"\"",NULL); -+ break; -+ - case XARCHIVETYPE_LZOP: - command = g_strconcat("sh -c \"lzop -c ",files->str,"> ",archive->escaped_path,"\"",NULL); - break; -@@ -378,6 +393,25 @@ - } - break; - -+ case XARCHIVETYPE_TAR_XZ: -+ if (archive->full_path == 1) -+ { -+ command = g_strconcat (tar, " --use-compress-program=xz -xvf " , archive->escaped_path, -+ #ifdef __FreeBSD__ -+ archive->overwrite ? " " : " -k", -+ #else -+ archive->overwrite ? " --overwrite" : " --keep-old-files", -+ #endif -+ archive->tar_touch ? " --touch" : "", -+ " -C ",archive->extraction_path," ",names->str,NULL); -+ } -+ else -+ { -+ result = xa_extract_tar_without_directories ( "tar --use-compress-program=xz -xvf ",archive,names->str); -+ command = NULL; -+ } -+ break; -+ - case XARCHIVETYPE_TAR_LZOP: - if (archive->full_path == 1) - { -@@ -402,6 +436,11 @@ - command = NULL; - break; - -+ case XARCHIVETYPE_XZ: -+ result = lzma_bzip2_extract(archive,NULL); -+ command = NULL; -+ break; -+ - case XARCHIVETYPE_LZOP: - result = lzma_bzip2_extract(archive,NULL); - command = NULL; -@@ -449,6 +488,10 @@ - executable = "lzma -f "; - filename = "dummy.lzma"; - break; -+ case XARCHIVETYPE_TAR_XZ: -+ executable = "xz -f "; -+ filename = "dummy.xz"; -+ break; - case XARCHIVETYPE_TAR_LZOP: - executable = "lzop -f "; - filename = "dummy.lzo"; -@@ -493,7 +536,7 @@ - - gboolean is_tar_compressed (gint type) - { -- return (type == XARCHIVETYPE_TAR_BZ2 || type == XARCHIVETYPE_TAR_GZ || type == XARCHIVETYPE_TAR_LZMA || type == XARCHIVETYPE_TAR_LZOP); -+ return (type == XARCHIVETYPE_TAR_BZ2 || type == XARCHIVETYPE_TAR_GZ || type == XARCHIVETYPE_TAR_LZMA || type == XARCHIVETYPE_TAR_XZ || type == XARCHIVETYPE_TAR_LZOP); - } - - gboolean xa_extract_tar_without_directories (gchar *string,XArchive *archive,gchar *files_to_extract) -diff -uNr xarchiver-0.5.2.orig/src/window.c xarchiver-0.5.2/src/window.c ---- xarchiver-0.5.2.orig/src/window.c 2008-11-11 17:31:45.000000000 +0900 -+++ xarchiver-0.5.2/src/window.c 2013-05-11 10:01:47.892094708 +0900 -@@ -1125,6 +1125,8 @@ - xx = XARCHIVETYPE_GZIP; - else if (memcmp ( magic,"\x5d\x00\x00\x80",4) == 0) - xx = XARCHIVETYPE_LZMA; -+ else if ((memcmp ( magic,"\xFD" "7zXZ\x00\x00",7) == 0) || (memcmp ( magic,"\xFD" "7zXZ\x00\x10",7) == 0)) -+ xx = XARCHIVETYPE_XZ; - else if (memcmp ( magic,"\211LZO",4) == 0) - xx = XARCHIVETYPE_LZOP; - else if (memcmp ( magic,"\xed\xab\xee\xdb",4) == 0) -@@ -1462,6 +1464,7 @@ - case XARCHIVETYPE_GZIP: - case XARCHIVETYPE_BZIP2: - case XARCHIVETYPE_LZMA: -+ case XARCHIVETYPE_XZ: - case XARCHIVETYPE_LZOP: - case XARCHIVETYPE_RPM: - pos = 3; -@@ -1481,6 +1484,7 @@ - case XARCHIVETYPE_TAR_GZ: - case XARCHIVETYPE_TAR_BZ2: - case XARCHIVETYPE_TAR_LZMA: -+ case XARCHIVETYPE_TAR_XZ: - case XARCHIVETYPE_TAR_LZOP: - case XARCHIVETYPE_TAR: - case XARCHIVETYPE_ZIP: -@@ -1525,6 +1529,7 @@ - case XARCHIVETYPE_GZIP: - case XARCHIVETYPE_BZIP2: - case XARCHIVETYPE_LZMA: -+ case XARCHIVETYPE_XZ: - case XARCHIVETYPE_LZOP: - case XARCHIVETYPE_RPM: - pos = 3; -@@ -1544,6 +1549,7 @@ - case XARCHIVETYPE_TAR_GZ: - case XARCHIVETYPE_TAR_BZ2: - case XARCHIVETYPE_TAR_LZMA: -+ case XARCHIVETYPE_TAR_XZ: - case XARCHIVETYPE_TAR_LZOP: - case XARCHIVETYPE_TAR: - case XARCHIVETYPE_ZIP: diff --git a/libre/xarchiver-libre/xarchiver-0.5.2-drag-n-drop_escaped_path.patch b/libre/xarchiver-libre/xarchiver-0.5.2-drag-n-drop_escaped_path.patch deleted file mode 100644 index 10def7d21..000000000 --- a/libre/xarchiver-libre/xarchiver-0.5.2-drag-n-drop_escaped_path.patch +++ /dev/null @@ -1,13 +0,0 @@ -diff -Naur xarchiver-0.5.2.orig/src/window.c xarchiver-0.5.2/src/window.c ---- xarchiver-0.5.2.orig/src/window.c 2012-01-12 13:28:54.000000000 +0100 -+++ xarchiver-0.5.2/src/window.c 2012-01-23 20:43:49.622745851 +0100 -@@ -1724,6 +1724,9 @@ - gtk_tree_selection_selected_foreach (selection,(GtkTreeSelectionForeachFunc) xa_concat_selected_filenames,&names); - archive->full_path = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON (extract_window->extract_full)); - archive->overwrite = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON (extract_window->overwrite_check)); -+ gchar *unescaped_extraction_path = archive->extraction_path; -+ archive->extraction_path = xa_escape_filename(unescaped_extraction_path, "$'`\"\\!?* ()[]&|:;<>#"); -+ g_free(unescaped_extraction_path); - (*archive->extract) (archive,names); - - g_list_foreach (row_list,(GFunc) gtk_tree_path_free,NULL); diff --git a/libre/xarchiver-libre/xarchiver-0.5.2-fix-non-existent-archive.patch b/libre/xarchiver-libre/xarchiver-0.5.2-fix-non-existent-archive.patch deleted file mode 100644 index e63687579..000000000 --- a/libre/xarchiver-libre/xarchiver-0.5.2-fix-non-existent-archive.patch +++ /dev/null @@ -1,26 +0,0 @@ -From: Markus Koschany <apo@gambaru.de> -Date: Thu, 28 Feb 2013 17:45:50 +0100 -Subject: fix segfault non-existent archive cmdl switch x - -If using the command line switch -x, the user needs to specify a valid/existent -archive. If the name of the archive is mistyped, xarchiver will segfault. This -patch fixes the issue. - -Bug: http://bugs.debian.org/701909 ---- - src/main.c | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/src/main.c b/src/main.c -index a6a7f93..a6e05e3 100644 ---- a/src/main.c -+++ b/src/main.c -@@ -141,7 +141,7 @@ int main (int argc, char **argv) - /* Switch -x */ - if (extract_path != NULL) - { -- if (argv[1] == NULL) -+ if (argv[1] == NULL || archive == NULL) - { - response = xa_show_message_dialog (NULL,GTK_DIALOG_MODAL,GTK_MESSAGE_ERROR,GTK_BUTTONS_OK,_("Can't extract files from the archive:"),_("You missed the archive name!\n")); - return -1; diff --git a/libre/xarchiver-libre/xarchiver-0.5.2-fix_7z_support.patch b/libre/xarchiver-libre/xarchiver-0.5.2-fix_7z_support.patch deleted file mode 100644 index f7ff098c0..000000000 --- a/libre/xarchiver-libre/xarchiver-0.5.2-fix_7z_support.patch +++ /dev/null @@ -1,110 +0,0 @@ -diff -Nur xarchiver-0.5.2.orig/src/7zip.c xarchiver-0.5.2/src/7zip.c ---- xarchiver-0.5.2.orig/src/7zip.c 2008-10-25 00:41:17.000000000 +1300 -+++ xarchiver-0.5.2/src/7zip.c 2010-12-15 11:24:26.000000000 +1300 -@@ -64,15 +64,14 @@ - XEntry *entry; - gchar *filename; - gpointer item[5]; -- gint linesize = 0,n = 0,a = 0; -- gboolean dir = FALSE; -+ gint linesize = 0,a = 0; - - if (last_line) - return; - - if (jump_header == FALSE) - { -- if (line[0] == '-') -+ if ((line[0] == '-') && (line[3] != NULL)) - { - jump_header = TRUE; - return; -@@ -93,71 +92,42 @@ - item[4] = line; - - /* Time */ -- for(n=13; n < linesize; ++n) -- if(line[n] == ' ') -- break; -- line[n] = '\0'; -+ line[19] = '\0'; - item[3] = line + 11; -- a = ++n; - - /* Permissions */ -- for(; n < linesize; n++) -- if(line[n] == ' ') -- break; -- line[n] = '\0'; -- if ((line+a)[0] == 'D') -- dir = TRUE; -- item[2] = line + a; -+ line[25] = '\0'; -+ item[2] = line + 20; - - /* Size */ -- for(++n; n < linesize; ++n) -- if(line[n] >= '0' && line[n] <= '9') -+ for(a=26; a < linesize; ++a) -+ if(line[a] >= '0' && line[a] <= '9') - break; -- a = n; - -- for(; n < linesize; ++n) -- if(line[n] == ' ') -- break; -- -- line[n] = '\0'; -+ line[38] = '\0'; - item[0] = line + a; - archive->dummy_size += g_ascii_strtoull(item[0],NULL,0); - - /* Compressed */ -- for(++n; n < linesize; ++n) -- if(line[n] >= '0' && line[n] <= '9') -- break; -- a = n; -- -- for(; n < linesize; ++n) -- if(line[n] == ' ') -- break; -- -- line[n] = '\0'; -- -- if (line[50] != ' ') -+ /* Is this item solid? */ -+ if (line[50] == ' ') - { -- n+=2; -- item[1] = line + a; - line[linesize-1] = '\0'; -- filename = g_strdup(line + n); -+ filename = g_strdup(line + 53); - } -- /* Is this a solid archive? */ -+ - else - { -- item[1] = "0"; -- line[n-1] = '\0'; -+ for(a=39; a < linesize; ++a) -+ if(line[a] >= '0' && line[a] <= '9') -+ break; -+ -+ line[51] = '\0'; -+ item[1] = line + a; -+ line[linesize-1] = '\0'; - filename = g_strdup(line + 53); - } - -- /* Work around for 7za which doesn't -- * output / with directories */ -- if (dir) -- { -- gchar *filename_with_slash = g_strconcat (filename,"/",NULL); -- g_free (filename); -- filename = filename_with_slash; -- } - entry = xa_set_archive_entries_for_each_row (archive,filename,item); - g_free(filename); - } diff --git a/libre/xarchiver-libre/xarchiver-0.5.2-no-donators-menu.patch b/libre/xarchiver-libre/xarchiver-0.5.2-no-donators-menu.patch deleted file mode 100644 index aa2283a7e..000000000 --- a/libre/xarchiver-libre/xarchiver-0.5.2-no-donators-menu.patch +++ /dev/null @@ -1,50 +0,0 @@ ---- xarchiver/trunk/src/interface.c 2009/03/19 18:03:52 29676 -+++ xarchiver/trunk/src/interface.c 2009/03/19 20:48:19 29677 -@@ -310,22 +310,14 @@ - gtk_widget_show (tmp_image); - gtk_image_menu_item_set_image (GTK_IMAGE_MENU_ITEM (help1),tmp_image); - -+ donate = gtk_image_menu_item_new_with_mnemonic (_("_Donate")); -+ gtk_widget_show (donate); -+ gtk_container_add (GTK_CONTAINER (menuitem4_menu),donate); -+ - about1 = gtk_image_menu_item_new_from_stock ("gtk-about",accel_group); - gtk_widget_show (about1); - gtk_container_add (GTK_CONTAINER (menuitem4_menu),about1); - -- thanks_to = gtk_image_menu_item_new_with_mnemonic (_("_Thanks to")); -- gtk_widget_show (thanks_to); -- gtk_container_add (GTK_CONTAINER (menuitem4_menu),thanks_to); -- -- thanks_to_submenu = gtk_menu_new(); -- gtk_widget_show (thanks_to_submenu); -- gtk_menu_item_set_submenu (GTK_MENU_ITEM (thanks_to),thanks_to_submenu); -- -- donators = gtk_image_menu_item_new_with_mnemonic ("Your name and website here"); -- gtk_widget_show (donators); -- gtk_container_add (GTK_CONTAINER (thanks_to_submenu),donators); -- - /* Create the toolbar */ - toolbar1 = gtk_toolbar_new (); - gtk_widget_show (toolbar1); -@@ -543,7 +535,7 @@ - g_signal_connect ((gpointer) multi_extract_menu,"activate",G_CALLBACK (xa_show_multi_extract_dialog),NULL); - g_signal_connect ((gpointer) help1,"activate",G_CALLBACK (xa_show_help),NULL); - g_signal_connect ((gpointer) about1,"activate",G_CALLBACK (xa_about),NULL); -- g_signal_connect ((gpointer) donators,"activate",G_CALLBACK (xa_show_donate_page_on_the_web),NULL); -+ g_signal_connect ((gpointer) donate,"activate",G_CALLBACK (xa_show_donate_page_on_the_web),NULL); - - g_signal_connect ((gpointer) New_button, "clicked",G_CALLBACK (xa_new_archive),NULL); - g_signal_connect ((gpointer) Open_button, "clicked",G_CALLBACK (xa_open_archive),NULL); ---- xarchiver/trunk/src/interface.h 2008/11/04 10:06:17 28603 -+++ xarchiver/trunk/src/interface.h 2009/03/19 20:48:19 29677 -@@ -48,8 +48,8 @@ - *name_label, *type_label, *compression_data, *encrypted_data, *encrypted_label,*number_of_files_data, *content_data, *comment_data, *size_data, *modified_data, *path_data, *type_data, - *name_data, *separatormenuitem1, *separatormenuitem2, *separatormenuitem3, *separatormenuitem4, *separatormenuitem5, *separatormenuitem6, *quit1, - *close1, *check_menu, *properties, *menuitem2, *menuitem2_menu, *addfile, *extract_menu, *delete_menu, *comment_menu, *multi_extract_menu,*view_shell_output1, --*prefs_menu,*password_entry_menu, *image1, *image2, *menuitem4, *thanks_to,*thanks_to_submenu,*select_all,*deselect_all,*select_pattern, *exe_menu, *menuitem4_menu, --*about1, *help1, *donators,*toolbar1, *toolbar2, *hbox1, *tmp_image, *pad_image, *New_button, *Open_button, *back_button, *home_button, *forward_button, -+*prefs_menu,*password_entry_menu, *image1, *image2, *menuitem4, *donate,*select_all,*deselect_all,*select_pattern, *exe_menu, *menuitem4_menu, -+*about1, *help1,*toolbar1, *toolbar2, *hbox1, *tmp_image, *pad_image, *New_button, *Open_button, *back_button, *home_button, *forward_button, - *up_button,*separatortoolitem1,*separatortoolitem2,*separatortoolitem3,*AddFile_button,*Extract_button,*Stop_button,*toolitem1,*location_label, - *location_entry,*hpaned1,*archive_dir_treeview,*scrolledwindow2,*ddelete,*rename_menu,*rrename,*cut,*copy,*paste,*view,*open_popupmenu; diff --git a/libre/xarchiver-libre/xarchiver-0.5.2-rpm2cpio.patch b/libre/xarchiver-libre/xarchiver-0.5.2-rpm2cpio.patch deleted file mode 100644 index d962a44af..000000000 --- a/libre/xarchiver-libre/xarchiver-0.5.2-rpm2cpio.patch +++ /dev/null @@ -1,84 +0,0 @@ -diff -up ./src/rpm.c.rpm2cpio ./src/rpm.c ---- ./src/rpm.c.rpm2cpio 2008-10-24 13:43:04.000000000 +0200 -+++ ./src/rpm.c 2011-03-27 03:14:20.225742237 +0200 -@@ -23,11 +23,8 @@ extern gboolean batch_mode; - - void xa_open_rpm (XArchive *archive) - { -- unsigned char bytes[8]; - unsigned short int i; -- int dl,il,sigsize,offset,response; -- gchar *ibs,*executable; -- gchar *gzip_tmp = NULL; -+ int response; - GSList *list = NULL; - FILE *stream; - gboolean result; -@@ -56,66 +53,14 @@ void xa_open_rpm (XArchive *archive) - archive->column_types[i] = types[i]; - - xa_create_liststore (archive,names); -- if (fseek ( stream, 104 , SEEK_CUR ) ) -- { -- fclose (stream); -- response = xa_show_message_dialog (GTK_WINDOW (xa_main_window),GTK_DIALOG_MODAL,GTK_MESSAGE_ERROR,GTK_BUTTONS_OK,_("Can't fseek to position 104:"),g_strerror(errno)); -- return; -- } -- if ( fread ( bytes, 1, 8, stream ) == 0 ) -- { -- fclose ( stream ); -- response = xa_show_message_dialog (GTK_WINDOW (xa_main_window),GTK_DIALOG_MODAL,GTK_MESSAGE_ERROR,GTK_BUTTONS_OK,_("Can't read data from file:"),g_strerror(errno)); -- return; -- } -- il = 256 * ( 256 * ( 256 * bytes[0] + bytes[1]) + bytes[2] ) + bytes[3]; -- dl = 256 * ( 256 * ( 256 * bytes[4] + bytes[5]) + bytes[6] ) + bytes[7]; -- sigsize = 8 + 16 * il + dl; -- offset = 104 + sigsize + ( 8 - ( sigsize % 8 ) ) % 8 + 8; -- if (fseek ( stream, offset , SEEK_SET ) ) -- { -- fclose (stream); -- response = xa_show_message_dialog (GTK_WINDOW (xa_main_window),GTK_DIALOG_MODAL,GTK_MESSAGE_ERROR,GTK_BUTTONS_OK,_("Can't fseek in file:"),g_strerror(errno)); -- return; -- } -- if ( fread ( bytes, 1, 8, stream ) == 0 ) -- { -- fclose ( stream ); -- response = xa_show_message_dialog (GTK_WINDOW (xa_main_window),GTK_DIALOG_MODAL,GTK_MESSAGE_ERROR,GTK_BUTTONS_OK,_("Can't read data from file:"),g_strerror(errno)); -- return; -- } -- il = 256 * ( 256 * ( 256 * bytes[0] + bytes[1]) + bytes[2] ) + bytes[3]; -- dl = 256 * ( 256 * ( 256 * bytes[4] + bytes[5]) + bytes[6] ) + bytes[7]; -- sigsize = 8 + 16 * il + dl; -- offset = offset + sigsize; -- fclose (stream); - - /* Create a unique temp dir in /tmp */ - result = xa_create_temp_directory (archive); - if (!result) - return; - -- gzip_tmp = g_strconcat (archive->tmp,"/file.gz_bz",NULL); -- ibs = g_strdup_printf ( "%u" , offset ); -- - /* Now I run dd to have the bzip2 / gzip compressed cpio archive in /tmp */ -- gchar *command = g_strconcat ( "dd if=",archive->escaped_path," ibs=",ibs," skip=1 of=",gzip_tmp,NULL); -- g_free (ibs); -- list = g_slist_append(list,command); -- batch_mode = TRUE; -- result = xa_run_command (archive,list); -- if (result == FALSE) -- { -- g_free (gzip_tmp); -- return; -- } -- if (xa_detect_archive_type (gzip_tmp) == XARCHIVETYPE_GZIP) -- executable = "gzip -dc "; -- else -- executable = "bzip2 -dc "; -- -- command = g_strconcat("sh -c \"",executable,gzip_tmp," > ",archive->tmp,"/file.cpio\"",NULL); -- g_free(gzip_tmp); -+ gchar *command = g_strconcat ( "sh -c \"rpm2cpio ",archive->escaped_path," > ",archive->tmp, "/file.cpio\"",NULL); - list = NULL; - list = g_slist_append(list,command); - result = xa_run_command (archive,list); diff --git a/libre/xarchiver-libre/xarchiver-0.5.2-segfault-delete-file.patch b/libre/xarchiver-libre/xarchiver-0.5.2-segfault-delete-file.patch deleted file mode 100644 index b8052544b..000000000 --- a/libre/xarchiver-libre/xarchiver-0.5.2-segfault-delete-file.patch +++ /dev/null @@ -1,21 +0,0 @@ -diff -Naur xarchiver-0.5.2.orig/src/window.c xarchiver-0.5.2/src/window.c ---- xarchiver-0.5.2.orig/src/window.c 2014-01-24 01:22:27.931903000 +0100 -+++ xarchiver-0.5.2/src/window.c 2014-01-24 01:24:49.952825715 +0100 -@@ -1573,7 +1573,7 @@ - gtk_widget_show(selected_frame); - gtk_widget_set_sensitive(deselect_all,TRUE); - } -- if ( (archive->type == XARCHIVETYPE_RAR && unrar) || archive->type == XARCHIVETYPE_BZIP2 || archive->type == XARCHIVETYPE_GZIP) -+ if ( (archive->type == XARCHIVETYPE_RAR && unrar) || archive->type == XARCHIVETYPE_BZIP2 || archive->type == XARCHIVETYPE_GZIP || archive->type == XARCHIVETYPE_LZMA || archive->type == XARCHIVETYPE_XZ || archive->type == XARCHIVETYPE_LZOP) - { - gtk_widget_set_sensitive (delete_menu,FALSE); - gtk_widget_set_sensitive (rename_menu,FALSE); -@@ -2287,7 +2287,7 @@ - else - value = TRUE; - } -- if (archive->type == XARCHIVETYPE_BZIP2 || archive->type == XARCHIVETYPE_GZIP || archive->type == XARCHIVETYPE_DEB || archive->type == XARCHIVETYPE_RPM) -+ if (archive->type == XARCHIVETYPE_BZIP2 || archive->type == XARCHIVETYPE_GZIP || archive->type == XARCHIVETYPE_LZMA || archive->type == XARCHIVETYPE_XZ || archive->type == XARCHIVETYPE_LZOP || archive->type == XARCHIVETYPE_DEB || archive->type == XARCHIVETYPE_RPM) - { - gtk_widget_set_sensitive(ddelete,FALSE); - gtk_widget_set_sensitive(rrename,FALSE); diff --git a/libre/xarchiver-libre/xarchiver-0.5.2-segfault-open-with.patch b/libre/xarchiver-libre/xarchiver-0.5.2-segfault-open-with.patch deleted file mode 100644 index e29d40c41..000000000 --- a/libre/xarchiver-libre/xarchiver-0.5.2-segfault-open-with.patch +++ /dev/null @@ -1,15 +0,0 @@ -diff -pur xarchiver-0.5.2/src/open-with-dlg.c xarchiver-0.5.2.new/src/open-with-dlg.c ---- xarchiver-0.5.2/src/open-with-dlg.c 2008-10-17 14:06:03.000000000 +0200 -+++ xarchiver-0.5.2.new/src/open-with-dlg.c 2011-05-16 21:48:49.042839556 +0200 -@@ -289,7 +289,10 @@ static void xa_open_with_dialog_selectio - GtkTreeIter iter; - GtkTreeModel *model; - -- gtk_tree_selection_get_selected(selection,&model,&iter); -+ if (!gtk_tree_selection_get_selected(selection,&model,&iter)) { -+ return; -+ } -+ - gtk_tree_model_get(model,&iter,2,&exec,-1); - - gtk_entry_set_text(GTK_ENTRY(data->custom_command_entry),exec); diff --git a/libre/xarchiver-libre/xarchiver-0.5.2-add_mime_types.patch b/libre/xarchiver-libre/xarchiver-0.5.3-add-mime-types.patch index 3b510fcb8..4552e5b96 100644 --- a/libre/xarchiver-libre/xarchiver-0.5.2-add_mime_types.patch +++ b/libre/xarchiver-libre/xarchiver-0.5.3-add-mime-types.patch @@ -1,9 +1,9 @@ -diff -Naur xarchiver-0.5.2.orig/xarchiver.desktop.in xarchiver-0.5.2/xarchiver.desktop.in ---- xarchiver-0.5.2.orig/xarchiver.desktop.in 2014-01-24 04:05:33.438561000 +0100 -+++ xarchiver-0.5.2/xarchiver.desktop.in 2014-01-24 04:44:00.625750394 +0100 +diff -Naur xarchiver-0.5.3.orig/xarchiver.desktop.in xarchiver-0.5.2/xarchiver.desktop.in +--- xarchiver-0.5.3.orig/xarchiver.desktop.in 2014-01-24 04:05:33.438561000 +0100 ++++ xarchiver-0.5.3/xarchiver.desktop.in 2014-01-24 04:44:00.625750394 +0100 @@ -11,4 +11,4 @@ X-MultipleArgs=false Categories=GTK;Archiving;Utility; StartupNotify=true -MimeType=application/x-arj;application/arj;application/x-bzip;application/x-bzip-compressed-tar;application/x-gzip;application/x-rar;application/x-rar-compressed;application/x-tar;application/x-zip;application/x-zip-compressed;application/zip;multipart/x-zip;application/x-7z-compressed;application/x-compressed-tar;application/x-bzip2;application/x-bzip2-compressed-tar; -+MimeType=application/x-arj;application/arj;application/x-bzip;application/x-bzip-compressed-tar;application/x-gzip;application/x-tar;application/x-zip;application/x-zip-compressed;application/zip;application/x-7z-compressed;application/x-compressed-tar;application/x-bzip2;application/x-bzip2-compressed-tar;application/x-lzma;application/x-lzma-compressed-tar;application/x-lzop;application/x-lzop-compressed-tar;application/x-xz;application/x-xz-compressed-tar;application/x-debian-package;application/x-rpm; ++MimeType=application/x-arj;application/arj;application/x-bzip;application/x-bzip-compressed-tar;application/x-gzip;application/x-rar;application/x-rar-compressed;application/x-tar;application/x-zip;application/x-zip-compressed;application/zip;application/x-7z-compressed;application/x-compressed-tar;application/x-bzip2;application/x-bzip2-compressed-tar;application/x-lzma;application/x-lzma-compressed-tar;application/x-lzop;application/x-lzop-compressed-tar;application/x-xz;application/x-xz-compressed-tar;application/x-debian-package;application/x-rpm; diff --git a/libre/xarchiver-libre/xarchiver-0.5.2-add_unar_support.patch b/libre/xarchiver-libre/xarchiver-0.5.3-add-unar-support.patch index 0168f4e63..0b54cacc1 100644 --- a/libre/xarchiver-libre/xarchiver-0.5.2-add_unar_support.patch +++ b/libre/xarchiver-libre/xarchiver-0.5.3-add-unar-support.patch @@ -1,6 +1,6 @@ -diff -Nur xarchiver-0.5.2.orig/doc/html/ch03s03.html xarchiver-0.5.2/doc/html/ch03s03.html ---- xarchiver-0.5.2.orig/doc/html/ch03s03.html 2008-11-03 04:49:49.000000000 -0200 -+++ xarchiver-0.5.2/doc/html/ch03s03.html 2014-01-24 11:02:20.640986656 -0200 +diff -Nur xarchiver-0.5.3.orig/doc/html/ch03s03.html xarchiver-0.5.3/doc/html/ch03s03.html +--- xarchiver-0.5.3.orig/doc/html/ch03s03.html 2008-11-03 04:49:49.000000000 -0200 ++++ xarchiver-0.5.3/doc/html/ch03s03.html 2014-02-20 04:35:34.820373529 -0200 @@ -1,7 +1,7 @@ <?xml version="1.0" encoding="UTF-8" standalone="no"?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> @@ -10,9 +10,9 @@ diff -Nur xarchiver-0.5.2.orig/doc/html/ch03s03.html xarchiver-0.5.2/doc/html/ch </p></div><div class="section" lang="en" xml:lang="en"><div class="titlepage"><div><div><h3 class="title"><a id="how_it_works"></a>How it works</h3></div></div></div><p> Xarchiver will run in the background the cmd-line executable of the archiver with the archiver's proper switches to perform the selected operation. If something goes wrong Xarchiver reports the full output of the archiver executable in the command line output window. From the release 0.5 the files in the archive can be opened within Xarchiver. The script <i>xdg-open</i> will detect the file type and run the proper application to handle it. If you don't have such script installed in your system (it's found in the xdg-utils package) Xarchiver will recognize HTML, txt and images files only. The Preferences dialog will notify this to you when you click the Advanced section inside it. </p></div><div class="section" lang="en" xml:lang="en"><div class="titlepage"><div><div><h3 class="title"><a id="dnd"></a>Drag and Drop</h3></div></div></div><p> -diff -Nur xarchiver-0.5.2.orig/doc/xarchiver.docbook xarchiver-0.5.2/doc/xarchiver.docbook ---- xarchiver-0.5.2.orig/doc/xarchiver.docbook 2007-08-22 07:49:19.000000000 -0300 -+++ xarchiver-0.5.2/doc/xarchiver.docbook 2014-01-24 11:01:17.088748863 -0200 +diff -Nur xarchiver-0.5.3.orig/doc/xarchiver.docbook xarchiver-0.5.3/doc/xarchiver.docbook +--- xarchiver-0.5.3.orig/doc/xarchiver.docbook 2007-08-22 07:49:19.000000000 -0300 ++++ xarchiver-0.5.3/doc/xarchiver.docbook 2014-02-20 04:35:34.820373529 -0200 @@ -204,7 +204,7 @@ <section id="general_startup"> <title>Startup</title> @@ -22,34 +22,9 @@ diff -Nur xarchiver-0.5.2.orig/doc/xarchiver.docbook xarchiver-0.5.2/doc/xarchiv </para> </section> <section id="how_it_works"> -diff -Nur xarchiver-0.5.2.orig/src/extract_dialog.c xarchiver-0.5.2/src/extract_dialog.c ---- xarchiver-0.5.2.orig/src/extract_dialog.c 2008-11-10 08:28:11.000000000 -0200 -+++ xarchiver-0.5.2/src/extract_dialog.c 2014-01-24 10:55:28.209263885 -0200 -@@ -24,7 +24,7 @@ - #include "string_utils.h" - #include "support.h" - --extern gboolean unrar,batch_mode; -+extern gboolean unar,batch_mode; - extern Prefs_dialog_data *prefs_window; - extern Progress_bar_data *pb; - extern extract_func extract [XARCHIVETYPE_COUNT]; -@@ -290,11 +290,7 @@ - GSList *names = NULL; - GtkTreeModel *model; - int response; -- -- if (unrar) -- rar = "unrar"; -- else -- rar = "rar"; -+ rar = "unar"; - - while (! done) - { -diff -Nur xarchiver-0.5.2.orig/src/interface.c xarchiver-0.5.2/src/interface.c ---- xarchiver-0.5.2.orig/src/interface.c 2008-11-11 06:09:01.000000000 -0200 -+++ xarchiver-0.5.2/src/interface.c 2014-01-24 10:56:03.893317117 -0200 +diff -Nur xarchiver-0.5.3.orig/src/interface.c xarchiver-0.5.3/src/interface.c +--- xarchiver-0.5.3.orig/src/interface.c 2014-02-09 13:26:24.000000000 -0200 ++++ xarchiver-0.5.3/src/interface.c 2014-02-20 04:58:54.470139199 -0200 @@ -45,7 +45,7 @@ { "text/uri-list",0,0 }, }; @@ -59,18 +34,18 @@ diff -Nur xarchiver-0.5.2.orig/src/interface.c xarchiver-0.5.2/src/interface.c static gboolean xa_progress_dialog_delete_event (GtkWidget *caller,GdkEvent *event,GPid pid); static void xa_progress_dialog_stop_action (GtkWidget *widget,GPid pid); -@@ -629,7 +629,7 @@ +@@ -623,7 +623,7 @@ { gtk_widget_show(selected_frame); gtk_widget_set_sensitive(deselect_all,TRUE); -- if (archive[id]->type == XARCHIVETYPE_RAR && unrar) -+ if (archive[id]->type == XARCHIVETYPE_RAR && unar) +- if ((archive[id]->type == XARCHIVETYPE_RAR || archive[id]->type == XARCHIVETYPE_RAR5) && unrar) ++ if ((archive[id]->type == XARCHIVETYPE_RAR) && unar) { gtk_widget_set_sensitive (delete_menu,FALSE); gtk_widget_set_sensitive (rename_menu,FALSE); -diff -Nur xarchiver-0.5.2.orig/src/main.c xarchiver-0.5.2/src/main.c ---- xarchiver-0.5.2.orig/src/main.c 2008-11-10 09:21:43.000000000 -0200 -+++ xarchiver-0.5.2/src/main.c 2014-01-24 12:18:53.211684553 -0200 +diff -Nur xarchiver-0.5.3.orig/src/main.c xarchiver-0.5.3/src/main.c +--- xarchiver-0.5.3.orig/src/main.c 2014-02-20 03:24:20.406301116 -0200 ++++ xarchiver-0.5.3/src/main.c 2014-02-20 04:43:27.247666292 -0200 @@ -33,7 +33,7 @@ gchar *add_files; gboolean error_output, file_to_open, ask_and_extract, ask_and_add, multi_extract; @@ -78,44 +53,50 @@ diff -Nur xarchiver-0.5.2.orig/src/main.c xarchiver-0.5.2/src/main.c -gboolean unrar = FALSE; +gboolean unar = FALSE; gboolean sevenzr = FALSE, sevenza = FALSE, xdg_open = FALSE; + static gboolean show_version = FALSE; int response; - extern gchar *current_open_directory; -@@ -312,7 +312,6 @@ +@@ -330,7 +330,6 @@ delete[XARCHIVETYPE_GZIP] = 0; delete[XARCHIVETYPE_LZMA] = 0; delete[XARCHIVETYPE_XZ] = 0; -- delete[XARCHIVETYPE_RAR] = &xa_rar_delete; +- delete[XARCHIVETYPE_RAR] = delete[XARCHIVETYPE_RAR5] = &xa_rar_delete; delete[XARCHIVETYPE_RPM] = 0; delete[XARCHIVETYPE_TAR] = delete[XARCHIVETYPE_TAR_BZ2] = delete[XARCHIVETYPE_TAR_GZ] = delete[XARCHIVETYPE_TAR_LZMA] = delete[XARCHIVETYPE_TAR_XZ] = delete[XARCHIVETYPE_TAR_LZOP] = &xa_tar_delete; delete[XARCHIVETYPE_ZIP] = &xa_zip_delete; -@@ -325,7 +324,6 @@ +@@ -343,7 +342,6 @@ add[XARCHIVETYPE_ARJ] = &xa_arj_add; add[XARCHIVETYPE_DEB] = 0; - add[XARCHIVETYPE_BZIP2] = add[XARCHIVETYPE_GZIP] = add[XARCHIVETYPE_LZMA] = add[XARCHIVETYPE_XZ] = &xa_tar_add; -- add[XARCHIVETYPE_RAR] = &xa_rar_add; + add[XARCHIVETYPE_BZIP2] = add[XARCHIVETYPE_GZIP] = add[XARCHIVETYPE_LZMA] = add[XARCHIVETYPE_XZ] = add[XARCHIVETYPE_LZOP] = &xa_tar_add; +- add[XARCHIVETYPE_RAR] = add[XARCHIVETYPE_RAR5] = &xa_rar_add; add[XARCHIVETYPE_RPM] = 0; add[XARCHIVETYPE_TAR] = add[XARCHIVETYPE_TAR_BZ2] = add[XARCHIVETYPE_TAR_GZ] = add[XARCHIVETYPE_TAR_LZMA] = add[XARCHIVETYPE_TAR_XZ] = add[XARCHIVETYPE_TAR_LZOP] = &xa_tar_add; add[XARCHIVETYPE_ZIP] = &xa_zip_add; -@@ -348,7 +346,6 @@ +@@ -364,7 +362,6 @@ test[XARCHIVETYPE_7ZIP] = &xa_7zip_test; test[XARCHIVETYPE_ARJ] = &xa_arj_test; - test[XARCHIVETYPE_DEB] = test[XARCHIVETYPE_BZIP2] = test[XARCHIVETYPE_GZIP] = test[XARCHIVETYPE_LZMA] = test[XARCHIVETYPE_XZ] = 0; -- test[XARCHIVETYPE_RAR] = &xa_rar_test; + test[XARCHIVETYPE_DEB] = test[XARCHIVETYPE_BZIP2] = test[XARCHIVETYPE_GZIP] = test[XARCHIVETYPE_LZMA] = test[XARCHIVETYPE_XZ] = test[XARCHIVETYPE_LZOP] = &xa_tar_test; +- test[XARCHIVETYPE_RAR] = test[XARCHIVETYPE_RAR5] = &xa_rar_test; test[XARCHIVETYPE_RPM] = 0; - test[XARCHIVETYPE_TAR] = test[XARCHIVETYPE_TAR_BZ2] = test[XARCHIVETYPE_TAR_GZ] = test[XARCHIVETYPE_TAR_LZMA] = test[XARCHIVETYPE_TAR_XZ] = test[XARCHIVETYPE_TAR_LZOP] = 0; + test[XARCHIVETYPE_TAR] = test[XARCHIVETYPE_TAR_BZ2] = test[XARCHIVETYPE_TAR_GZ] = test[XARCHIVETYPE_TAR_LZMA] = test[XARCHIVETYPE_TAR_XZ] = test[XARCHIVETYPE_TAR_LZOP] = &xa_tar_test; test[XARCHIVETYPE_ZIP] = &xa_zip_test; -@@ -420,24 +417,14 @@ +@@ -435,38 +432,14 @@ //ArchiveSuffix = g_list_append(ArchiveSuffix, ""); } - absolute_path = g_find_program_in_path ("rar"); -- if ( absolute_path ) -+ absolute_path = g_find_program_in_path("unar"); -+ if ( absolute_path ) ++ absolute_path = g_find_program_in_path ("unar"); + if ( absolute_path ) { + unar = TRUE; ArchiveType = g_list_append(ArchiveType, "rar"); ArchiveSuffix = g_list_append(ArchiveSuffix, "*.rar"); +- // Is RAR v5 ? +- xa_rar_checkversion (absolute_path); +- if (rar_version == 5) +- { +- ArchiveType = g_list_append(ArchiveType, "rar5"); +- ArchiveSuffix = g_list_append(ArchiveSuffix, "*.rar5"); +- } g_free (absolute_path); } - else @@ -126,15 +107,22 @@ diff -Nur xarchiver-0.5.2.orig/src/main.c xarchiver-0.5.2/src/main.c - unrar = TRUE; - ArchiveType = g_list_append(ArchiveType, "rar"); - ArchiveSuffix = g_list_append(ArchiveSuffix, "*.rar"); +- // Is RAR v5 ? +- xa_rar_checkversion (absolute_path); +- if (rar_version == 5) +- { +- ArchiveType = g_list_append(ArchiveType, "rar5"); +- ArchiveSuffix = g_list_append(ArchiveSuffix, "*.rar5"); +- } - g_free (absolute_path); - } - } absolute_path = g_find_program_in_path("cpio"); if ( absolute_path ) -diff -Nur xarchiver-0.5.2.orig/src/new_dialog.c xarchiver-0.5.2/src/new_dialog.c ---- xarchiver-0.5.2.orig/src/new_dialog.c 2008-11-11 06:28:46.000000000 -0200 -+++ xarchiver-0.5.2/src/new_dialog.c 2014-01-24 10:56:34.274491565 -0200 +diff -Nur xarchiver-0.5.3.orig/src/new_dialog.c xarchiver-0.5.3/src/new_dialog.c +--- xarchiver-0.5.3.orig/src/new_dialog.c 2014-02-09 13:26:24.000000000 -0200 ++++ xarchiver-0.5.3/src/new_dialog.c 2014-02-20 05:13:00.058263839 -0200 @@ -24,7 +24,7 @@ #include "string_utils.h" #include "main.h" @@ -144,9 +132,18 @@ diff -Nur xarchiver-0.5.2.orig/src/new_dialog.c xarchiver-0.5.2/src/new_dialog.c extern Prefs_dialog_data *prefs_window; gchar *current_new_directory = NULL; gint new_combo_box = -1; -diff -Nur xarchiver-0.5.2.orig/src/pref_dialog.c xarchiver-0.5.2/src/pref_dialog.c ---- xarchiver-0.5.2.orig/src/pref_dialog.c 2008-11-10 06:05:07.000000000 -0200 -+++ xarchiver-0.5.2/src/pref_dialog.c 2014-01-24 10:54:07.611853842 -0200 +@@ -101,7 +101,7 @@ + + while (Name) + { +- if (!(strncmp(Name->data, "rar", 3) == 0 && unrar)) ++ if (!(strncmp(Name->data, "rar", 3) == 0 && unar)) + gtk_combo_box_append_text(GTK_COMBO_BOX(combo_box),Name->data); + Name = g_list_next (Name); + } +diff -Nur xarchiver-0.5.3.orig/src/pref_dialog.c xarchiver-0.5.3/src/pref_dialog.c +--- xarchiver-0.5.3.orig/src/pref_dialog.c 2014-02-09 13:26:24.000000000 -0200 ++++ xarchiver-0.5.3/src/pref_dialog.c 2014-02-20 04:44:40.225947167 -0200 @@ -23,7 +23,7 @@ #include "main.h" #include "support.h" @@ -160,14 +157,14 @@ diff -Nur xarchiver-0.5.2.orig/src/pref_dialog.c xarchiver-0.5.2/src/pref_dialog { if (strcmp(archive_type->data, "tgz") == 0 || strcmp(archive_type->data, "rpm") == 0 || -- (strcmp(archive_type->data, "rar") == 0 && unrar) ) -+ (strcmp(archive_type->data, "rar") == 0 && unar) ) +- (strncmp(archive_type->data, "rar", 3) == 0 && unrar) ) ++ (strncmp(archive_type->data, "rar", 3) == 0 && unar) ) goto next; else gtk_combo_box_append_text (GTK_COMBO_BOX (prefs_data->combo_prefered_format),archive_type->data ); -diff -Nur xarchiver-0.5.2.orig/src/rar.c xarchiver-0.5.2/src/rar.c ---- xarchiver-0.5.2.orig/src/rar.c 2008-11-10 06:05:07.000000000 -0200 -+++ xarchiver-0.5.2/src/rar.c 2014-01-24 13:09:12.838038687 -0200 +diff -Nur xarchiver-0.5.3.orig/src/rar.c xarchiver-0.5.3/src/rar.c +--- xarchiver-0.5.3.orig/src/rar.c 2014-02-09 13:26:24.000000000 -0200 ++++ xarchiver-0.5.3/src/rar.c 2014-02-20 05:11:19.611884642 -0200 @@ -20,7 +20,7 @@ #include "rar.h" #include <unistd.h> @@ -176,14 +173,12 @@ diff -Nur xarchiver-0.5.2.orig/src/rar.c xarchiver-0.5.2/src/rar.c +extern gboolean unar; extern void xa_reload_archive_content(XArchive *archive); extern void xa_create_liststore ( XArchive *archive, gchar *columns_names[]); - -@@ -30,19 +30,10 @@ + extern int rar_version; +@@ -36,44 +36,15 @@ gchar *command = NULL; gchar *rar = NULL; jump_header = read_filename = last_line = encrypted = FALSE; -+ rar = "unar"; -+ archive->can_add = archive->has_sfx = FALSE; - +- - if (unrar) - { - rar = "unrar"; @@ -194,13 +189,41 @@ diff -Nur xarchiver-0.5.2.orig/src/rar.c xarchiver-0.5.2/src/rar.c - rar = "rar"; - archive->can_add = archive->has_sfx = TRUE; - } -- ++ rar = "unar"; ++ archive->can_add = archive->has_sfx = FALSE; + - command = g_strconcat ( rar," v " , archive->escaped_path, NULL ); + command = g_strconcat ( rar, archive->escaped_path, NULL ); - archive->can_extract = archive->has_test = archive->has_properties = TRUE; + archive->has_sfx = archive->has_properties = archive->can_extract = archive->has_test = TRUE; archive->dummy_size = 0; archive->nr_of_files = 0; -@@ -222,71 +213,6 @@ + +- if (archive->type == XARCHIVETYPE_RAR5) +- archive->format = "RAR5"; +- else +- archive->format = "RAR"; +- +- +- if (rar_version == 5) +- { +- archive->nc = 8; +- archive->parse_output = xa_get_rar5_line_content; +- xa_spawn_async_process (archive,command); +- g_free ( command ); +- if ( archive->child_pid == 0 ) +- return; +- archive->column_types = g_malloc0(sizeof(types5)); +- for (i = 0; i < archive->nc+2; i++) +- archive->column_types[i] = types5[i]; +- +- xa_create_liststore (archive, names5); +- } +- else ++ archive->format = "RAR"; + { + archive->nc = 10; + archive->parse_output = xa_get_rar_line_content; +@@ -247,32 +218,6 @@ } } @@ -230,49 +253,10 @@ diff -Nur xarchiver-0.5.2.orig/src/rar.c xarchiver-0.5.2/src/rar.c - xa_reload_archive_content(archive); -} - --void xa_rar_add (XArchive *archive,GString *files,gchar *compression_string) --{ -- GSList *list = NULL; -- gchar *command = NULL; -- -- if (archive->location_entry_path != NULL) -- archive->working_dir = g_strdup(archive->tmp); -- -- if (compression_string == NULL) -- compression_string = "3"; -- if (archive->passwd != NULL) -- command = g_strconcat ( "rar a ", -- archive->update ? "-u " : "", -- archive->freshen ? "-f " : "", -- archive->solid_archive ? "-s " : "", -- archive->remove_files ? "-df " : "", -- "-p" , archive->passwd, -- " -idp ", -- "-m",compression_string," ", -- archive->escaped_path, -- files->str,NULL); -- else -- command = g_strconcat ( "rar a ", -- archive->update ? "-u " : "", -- archive->freshen ? "-f " : "", -- archive->solid_archive ? "-s " : " ", -- archive->remove_files ? "-df " : " ", -- "-idp ", -- "-m",compression_string," ", -- archive->escaped_path, -- files->str,NULL); -- -- g_string_free(files,TRUE); -- list = g_slist_append(list,command); -- -- xa_run_command (archive,list); -- xa_reload_archive_content(archive); --} -- gboolean xa_rar_extract(XArchive *archive,GSList *files) { gchar *rar, *command, *e_filename = NULL; -@@ -295,10 +221,7 @@ +@@ -281,10 +226,7 @@ gboolean result = FALSE; _files = files; @@ -284,32 +268,7 @@ diff -Nur xarchiver-0.5.2.orig/src/rar.c xarchiver-0.5.2/src/rar.c while (_files) { -@@ -311,42 +234,16 @@ - g_slist_free(_files); - - if (archive->passwd != NULL) -- command = g_strconcat (rar," ",archive->full_path ? "x " : "e ", -- archive->freshen ? "-f " : "" , archive->update ? "-u " : "", -- " -p",archive->passwd, -- archive->overwrite ? " -o+" : " -o-", -- " -idp ", -- archive->escaped_path,names->str," ",archive->extraction_path , NULL ); -- else -- command = g_strconcat (rar," ",archive->full_path ? "x " : "e ", -- archive->freshen ? "-f " : "" , archive->update ? "-u " : "", -- archive->overwrite ? "-o+" : "-o-", -- " -idp ", -- archive->escaped_path,names->str," ",archive->extraction_path , NULL ); -+ command = g_strconcat (rar," -p",archive->passwd, -+ archive->overwrite ? " -f" : "" , -+ archive->escaped_path,names->str," ",archive->extraction_path , NULL ); -+ else -+ command = g_strconcat (rar," ", -+ archive->overwrite ? " -f" : "" , -+ archive->escaped_path,names->str," ",archive->extraction_path , NULL ); - g_string_free(names,TRUE); - list = g_slist_append(list,command); - +@@ -315,230 +257,3 @@ result = xa_run_command (archive,list); return result; } @@ -334,9 +293,215 @@ diff -Nur xarchiver-0.5.2.orig/src/rar.c xarchiver-0.5.2/src/rar.c - list = g_slist_append(list,command); - xa_run_command (archive,list); - } -diff -Nur xarchiver-0.5.2.orig/src/rar.h xarchiver-0.5.2/src/rar.h ---- xarchiver-0.5.2.orig/src/rar.h 2008-08-22 05:12:38.000000000 -0300 -+++ xarchiver-0.5.2/src/rar.h 2014-01-24 10:49:13.140141939 -0200 +- +-void xa_get_rar5_line_content (gchar *line, gpointer data) +-{ +- XArchive *archive = data; +- XEntry *entry; +- gpointer item[7]; +- unsigned short int i = 0; +- unsigned int linesize,n,a; +- gboolean dir = FALSE; +- static gchar *filename; +- +- if (last_line) +- return; +- +- if (jump_header == FALSE) +- { +- if (strncmp(line,"Comment:",8) == 0) +- { +- jump_comment = archive->has_comment = TRUE; +- archive->comment = g_string_new(""); +- archive->comment = g_string_append(archive->comment,&line[9]); +- return; +- } +- if (jump_comment == TRUE) +- { +- if (strncmp(line,"Name",4) != 0) +- { archive->comment = g_string_append(archive->comment,line); +- return; +- } +- jump_comment = FALSE; +- } +- if (line[0] == '-') +- { +- jump_header = TRUE; +- return; +- } +- return; +- } +- +- linesize = strlen(line); +- line[linesize - 1] = '\0'; +- +- if(line[0] == '*') +- { +- archive->has_passwd = TRUE; +- encrypted = TRUE; +- } +- else if (line[0] == '-') +- { +- last_line = TRUE; +- return; +- } +- +- archive->nr_of_files++; +- +- /* Permissions */ +- for(n=0; n < linesize && line[n] == ' '; n++); +- a = n; +- for(; n < linesize && line[n] != ' '; n++); +- line[n] = '\0'; +- if ((line+a)[0] == 'd') +- dir = TRUE; +- item[5] = line + a; +- n++; +- +- /* Size */ +- for(; n < linesize && line[n] == ' '; n++); +- a = n; +- for(; n < linesize && line[n] != ' '; n++); +- line[n]='\0'; +- item[i] = line + a; +- archive->dummy_size += g_ascii_strtoull(item[i],NULL,0); +- i++; +- n++; +- +- /* Compressed */ +- for(; n < linesize && line[n] == ' '; n++); +- a = n; +- for(; n < linesize && line[n] != ' '; n++); +- line[n]='\0'; +- item[i] = line + a; +- i++; +- n++; +- +- /* Ratio */ +- for(; n < linesize && line[n] == ' '; n++); +- a = n; +- for(; n < linesize && line[n] != ' '; n++); +- line[n] = '\0'; +- item[i] = line + a; +- i++; +- n++; +- +- /* Date */ +- for(; n < linesize && line[n] == ' '; n++); +- a = n; +- for(; n < linesize && line[n] != ' '; n++); +- line[n] = '\0'; +- item[i] = line + a; +- i++; +- n++; +- +- /* Time */ +- for(; n < linesize && line[n] == ' '; n++); +- a = n; +- for(; n < linesize && line[n] != ' '; n++); +- line[n] = '\0'; +- item[i] = line + a; +- i+=2; +- n++; +- +- /* CRC */ +- for(; n < linesize && line[n] == ' '; n++); +- a = n; +- for(; n < linesize && line[n] != ' '; n++); +- line[n] = '\0'; +- item[i] = line + a; +- i++; +- n++; +- +- /* fileName */ +- for(n=64; n < linesize && line[n] == ' '; n++); +- a = n; +- for(; n < linesize && line[n] != ' ' && line[n] != '\n'; n++); +- line[n]='\0'; +- filename = g_strdup(line + a); +- +- /* Work around for rar which doesn't +- * output / with directories */ +- if (dir) +- { +- gchar *filename_with_slash = g_strconcat (filename,"/",NULL); +- g_free (filename); +- filename = filename_with_slash; +- } +- +- entry = xa_set_archive_entries_for_each_row (archive,filename,item); +- if (entry != NULL) +- entry->is_encrypted = encrypted; +- g_free(filename); +- encrypted = FALSE; +-} +- +-void xa_rar_add (XArchive *archive,GString *files,gchar *compression_string) +-{ +- GSList *list = NULL; +- gchar *command, *rar_version = NULL; +- +- +- if (archive->location_entry_path != NULL) +- archive->working_dir = g_strdup(archive->tmp); +- +- if (archive->type == XARCHIVETYPE_RAR5) +- rar_version = "5"; +- else +- rar_version = "4"; +- +- if (compression_string == NULL) +- compression_string = "3"; +- +- if (archive->passwd != NULL) +- command = g_strconcat ( "rar a -ma", rar_version, " ", +- archive->update ? "-u " : "", +- archive->freshen ? "-f " : "", +- archive->solid_archive ? "-s " : "", +- archive->remove_files ? "-df " : "", +- "-p" , archive->passwd, +- " -idp ", +- "-m",compression_string," ", +- archive->escaped_path, +- files->str,NULL); +- else +- command = g_strconcat ( "rar a -ma", rar_version, " ", +- archive->update ? "-u " : "", +- archive->freshen ? "-f " : "", +- archive->solid_archive ? "-s " : " ", +- archive->remove_files ? "-df " : " ", +- "-idp ", +- "-m",compression_string," ", +- archive->escaped_path, +- files->str,NULL); +- +- g_string_free(files,TRUE); +- list = g_slist_append(list,command); +- +- xa_run_command (archive,list); +- xa_reload_archive_content(archive); +-} +- +-int xa_rar_checkversion (gchar *absolute_path) +-{ +- //gchar *command; +- gchar *output = NULL; +- +- rar_version = 4; // Default version +- +- //command = g_strconcat (absolute_path, "" , NULL); +- g_spawn_command_line_sync (absolute_path, &output, NULL, NULL, NULL); +- +- if (g_ascii_strncasecmp ("\nRAR 5", output, 6) == 0 || g_ascii_strncasecmp ("\nUNRAR 5", output, 8) == 0) +- rar_version = 5; +- +- g_free(output); +- //g_free(command); +- return rar_version; +-} +diff -Nur xarchiver-0.5.3.orig/src/rar.h xarchiver-0.5.3/src/rar.h +--- xarchiver-0.5.3.orig/src/rar.h 2014-02-09 13:26:24.000000000 -0200 ++++ xarchiver-0.5.3/src/rar.h 2014-02-20 04:35:34.823706631 -0200 @@ -26,10 +26,7 @@ #include "support.h" #include "archive.h" @@ -348,9 +513,9 @@ diff -Nur xarchiver-0.5.2.orig/src/rar.h xarchiver-0.5.2/src/rar.h void xa_get_rar_line_content (gchar *line, gpointer data); void xa_open_rar ( XArchive *archive ); #endif -diff -Nur xarchiver-0.5.2.orig/src/window.c xarchiver-0.5.2/src/window.c ---- xarchiver-0.5.2.orig/src/window.c 2008-11-11 06:31:45.000000000 -0200 -+++ xarchiver-0.5.2/src/window.c 2014-01-24 10:54:28.673636196 -0200 +diff -Nur xarchiver-0.5.3.orig/src/window.c xarchiver-0.5.3/src/window.c +--- xarchiver-0.5.3.orig/src/window.c 2014-02-20 03:24:30.795581843 -0200 ++++ xarchiver-0.5.3/src/window.c 2014-02-20 05:08:49.982243849 -0200 @@ -26,7 +26,7 @@ extern GList *ArchiveType; @@ -360,21 +525,21 @@ diff -Nur xarchiver-0.5.2.orig/src/window.c xarchiver-0.5.2/src/window.c extern gboolean xdg_open; extern Prefs_dialog_data *prefs_window; extern Extract_dialog_data *extract_window; -@@ -1567,7 +1567,7 @@ +@@ -1584,7 +1584,7 @@ gtk_widget_show(selected_frame); gtk_widget_set_sensitive(deselect_all,TRUE); } -- if ( (archive->type == XARCHIVETYPE_RAR && unrar) || archive->type == XARCHIVETYPE_BZIP2 || archive->type == XARCHIVETYPE_GZIP || archive->type == XARCHIVETYPE_LZMA || archive->type == XARCHIVETYPE_XZ || archive->type == XARCHIVETYPE_LZOP) +- if ( (archive->type == XARCHIVETYPE_RAR && unrar) || (archive->type == XARCHIVETYPE_RAR5 && unrar) || archive->type == XARCHIVETYPE_BZIP2 || archive->type == XARCHIVETYPE_GZIP || archive->type == XARCHIVETYPE_LZMA || archive->type == XARCHIVETYPE_XZ || archive->type == XARCHIVETYPE_LZOP) + if ( (archive->type == XARCHIVETYPE_RAR && unar) || archive->type == XARCHIVETYPE_BZIP2 || archive->type == XARCHIVETYPE_GZIP || archive->type == XARCHIVETYPE_LZMA || archive->type == XARCHIVETYPE_XZ || archive->type == XARCHIVETYPE_LZOP) { gtk_widget_set_sensitive (delete_menu,FALSE); gtk_widget_set_sensitive (rename_menu,FALSE); -@@ -1781,7 +1781,7 @@ +@@ -1801,7 +1801,7 @@ else idx = xa_find_archive_index (current_page); -- if (archive[idx]->type == XARCHIVETYPE_RAR && unrar) -+ if (archive[idx]->type == XARCHIVETYPE_RAR && unar) +- if ((archive[idx]->type == XARCHIVETYPE_RAR || archive[idx]->type == XARCHIVETYPE_RAR5) && unrar) ++ if ((archive[idx]->type == XARCHIVETYPE_RAR) && unar) { response = xa_show_message_dialog (GTK_WINDOW (xa_main_window),GTK_DIALOG_MODAL,GTK_MESSAGE_ERROR,GTK_BUTTONS_OK,_("Can't perform this action:"),_("You have to install rar package!")); return; diff --git a/libre/xarchiver-libre/xarchiver-0.5.2-fix-double-escaping.patch b/libre/xarchiver-libre/xarchiver-0.5.3-fix-double-escaping.patch index 8b44d91a0..8b44d91a0 100644 --- a/libre/xarchiver-libre/xarchiver-0.5.2-fix-double-escaping.patch +++ b/libre/xarchiver-libre/xarchiver-0.5.3-fix-double-escaping.patch diff --git a/libre/xarchiver-libre/xarchiver-0.5.2-segfault-password-protected.patch b/libre/xarchiver-libre/xarchiver-0.5.3-fix-password-protected.patch index a1fa1f2ca..00969349d 100644 --- a/libre/xarchiver-libre/xarchiver-0.5.2-segfault-password-protected.patch +++ b/libre/xarchiver-libre/xarchiver-0.5.3-fix-password-protected.patch @@ -1,6 +1,6 @@ -diff -Naur xarchiver-0.5.2.orig/src/window.c xarchiver-0.5.2/src/window.c ---- xarchiver-0.5.2.orig/src/window.c 2014-01-24 08:10:09.305990000 +0100 -+++ xarchiver-0.5.2/src/window.c 2014-01-24 08:42:45.110729290 +0100 +diff -Naur xarchiver-0.5.3.orig/src/window.c xarchiver-0.5.2/src/window.c +--- xarchiver-0.5.3.orig/src/window.c 2014-01-24 08:10:09.305990000 +0100 ++++ xarchiver-0.5.3/src/window.c 2014-01-24 08:42:45.110729290 +0100 @@ -1694,7 +1694,7 @@ { if (archive->passwd == NULL) @@ -25,19 +25,18 @@ diff -Naur xarchiver-0.5.2.orig/src/window.c xarchiver-0.5.2/src/window.c } filename = g_strconcat(archive[idx]->tmp,"/",entry->filename,NULL); if (g_file_test(filename,G_FILE_TEST_EXISTS)) -@@ -2766,6 +2769,15 @@ - /* The selected entry it's not a dir so extract it to the tmp dir and send it to xa_determine_program_to_run() */ - else +@@ -2768,8 +2771,12 @@ { -+ if (entry->is_encrypted) -+ { + if (entry->is_encrypted) + { +- if (archive->passwd == NULL) +- return; + if (archive->passwd == NULL) + { + archive->passwd = xa_create_password_dialog(archive); + if (archive->passwd == NULL) + return; + } -+ } + } if (archive->extraction_path) { - dummy = g_strdup(archive->extraction_path); diff --git a/libre/xarchiver-libre/xarchiver-0.5.3-fix-rpm-support.patch b/libre/xarchiver-libre/xarchiver-0.5.3-fix-rpm-support.patch new file mode 100644 index 000000000..cf17ff738 --- /dev/null +++ b/libre/xarchiver-libre/xarchiver-0.5.3-fix-rpm-support.patch @@ -0,0 +1,86 @@ +diff -Naur xarchiver-0.5.3.orig/src/rpm.c xarchiver-0.5.3/src/rpm.c +--- xarchiver-0.5.3.orig/src/rpm.c 2014-02-09 16:26:24.000000000 +0100 ++++ xarchiver-0.5.3/src/rpm.c 2014-02-19 07:54:27.744136749 +0100 +@@ -23,8 +23,11 @@ + + void xa_open_rpm (XArchive *archive) + { ++ unsigned char bytes[8]; + unsigned short int i; +- int response; ++ int dl,il,sigsize,offset,response; ++ gchar *ibs,*executable; ++ gchar *gzip_tmp = NULL; + GSList *list = NULL; + FILE *stream; + gboolean result; +@@ -53,14 +56,68 @@ + archive->column_types[i] = types[i]; + + xa_create_liststore (archive,names); ++ if (fseek ( stream, 104 , SEEK_CUR ) ) ++ { ++ fclose (stream); ++ response = xa_show_message_dialog (GTK_WINDOW (xa_main_window),GTK_DIALOG_MODAL,GTK_MESSAGE_ERROR,GTK_BUTTONS_OK,_("Can't fseek to position 104:"),g_strerror(errno)); ++ return; ++ } ++ if ( fread ( bytes, 1, 8, stream ) == 0 ) ++ { ++ fclose ( stream ); ++ response = xa_show_message_dialog (GTK_WINDOW (xa_main_window),GTK_DIALOG_MODAL,GTK_MESSAGE_ERROR,GTK_BUTTONS_OK,_("Can't read data from file:"),g_strerror(errno)); ++ return; ++ } ++ il = 256 * ( 256 * ( 256 * bytes[0] + bytes[1]) + bytes[2] ) + bytes[3]; ++ dl = 256 * ( 256 * ( 256 * bytes[4] + bytes[5]) + bytes[6] ) + bytes[7]; ++ sigsize = 8 + 16 * il + dl; ++ offset = 104 + sigsize + ( 8 - ( sigsize % 8 ) ) % 8 + 8; ++ if (fseek ( stream, offset , SEEK_SET ) ) ++ { ++ fclose (stream); ++ response = xa_show_message_dialog (GTK_WINDOW (xa_main_window),GTK_DIALOG_MODAL,GTK_MESSAGE_ERROR,GTK_BUTTONS_OK,_("Can't fseek in file:"),g_strerror(errno)); ++ return; ++ } ++ if ( fread ( bytes, 1, 8, stream ) == 0 ) ++ { ++ fclose ( stream ); ++ response = xa_show_message_dialog (GTK_WINDOW (xa_main_window),GTK_DIALOG_MODAL,GTK_MESSAGE_ERROR,GTK_BUTTONS_OK,_("Can't read data from file:"),g_strerror(errno)); ++ return; ++ } ++ il = 256 * ( 256 * ( 256 * bytes[0] + bytes[1]) + bytes[2] ) + bytes[3]; ++ dl = 256 * ( 256 * ( 256 * bytes[4] + bytes[5]) + bytes[6] ) + bytes[7]; ++ sigsize = 8 + 16 * il + dl; ++ offset = offset + sigsize; ++ fclose (stream); + + /* Create a unique temp dir in /tmp */ + result = xa_create_temp_directory (archive); + if (!result) + return; + ++ gzip_tmp = g_strconcat (archive->tmp,"/file.gz_bz",NULL); ++ ibs = g_strdup_printf ( "%u" , offset ); ++ + /* Now I run dd to have the bzip2 / gzip compressed cpio archive in /tmp */ +- gchar *command = g_strconcat ( "sh -c \"rpm2cpio ",archive->escaped_path," > ",archive->tmp, "/file.cpio\"",NULL); ++ gchar *command = g_strconcat ( "dd if=",archive->escaped_path," ibs=",ibs," skip=1 of=",gzip_tmp,NULL); ++ g_free (ibs); ++ list = g_slist_append(list,command); ++ batch_mode = TRUE; ++ result = xa_run_command (archive,list); ++ if (result == FALSE) ++ { ++ g_free (gzip_tmp); ++ return; ++ } ++ if (xa_detect_archive_type (gzip_tmp) == XARCHIVETYPE_GZIP) ++ executable = "gzip -dc "; ++ else if (xa_detect_archive_type (gzip_tmp) == XARCHIVETYPE_BZIP2) ++ executable = "bzip2 -dc "; ++ else ++ executable = "xz -dc "; ++ ++ command = g_strconcat("sh -c \"",executable,gzip_tmp," > ",archive->tmp,"/file.cpio\"",NULL); ++ g_free(gzip_tmp); + list = NULL; + list = g_slist_append(list,command); + result = xa_run_command (archive,list); |