diff --git a/.gitignore b/.gitignore index e405378..66e4d6c 100644 --- a/.gitignore +++ b/.gitignore @@ -1 +1,2 @@ xarchiver-0.5.2.tar.bz2 +/xarchiver-0.5.4.tar.bz2 diff --git a/sources b/sources index 8fb34f5..08113e4 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -2bc7f06403cc6582dd4a8029ec9d038d xarchiver-0.5.2.tar.bz2 +1b4cd37a6af03afc957a8e307417e8d0 xarchiver-0.5.4.tar.bz2 diff --git a/xarchiver-0.5.2-add_xz_support.patch b/xarchiver-0.5.2-add_xz_support.patch deleted file mode 100644 index e992cf1..0000000 --- a/xarchiver-0.5.2-add_xz_support.patch +++ /dev/null @@ -1,309 +0,0 @@ -diff -Nur 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 04:41:31.000000000 -0600 -+++ xarchiver-0.5.2/src/add_dialog.c 2009-11-30 13:17:54.983349491 -0600 -@@ -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 -Nur 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 02:49:41.000000000 -0600 -+++ xarchiver-0.5.2/src/archive.h 2009-11-30 13:17:54.984326164 -0600 -@@ -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 -Nur 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 05:17:48.000000000 -0600 -+++ xarchiver-0.5.2/src/bzip2.c 2009-11-30 13:17:54.984326164 -0600 -@@ -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 -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 04:28:11.000000000 -0600 -+++ xarchiver-0.5.2/src/extract_dialog.c 2009-11-30 13:17:54.985326653 -0600 -@@ -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 -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 05:21:43.000000000 -0600 -+++ xarchiver-0.5.2/src/main.c 2009-11-30 13:17:54.986351656 -0600 -@@ -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,6 +311,7 @@ - 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; -@@ -325,7 +327,7 @@ - add[XARCHIVETYPE_BZIP2] = add[XARCHIVETYPE_GZIP] = add[XARCHIVETYPE_LZMA] = &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; -@@ -337,7 +339,7 @@ - extract[XARCHIVETYPE_BZIP2] = extract[XARCHIVETYPE_GZIP] = extract[XARCHIVETYPE_LZMA] = &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; -@@ -348,7 +350,7 @@ - test[XARCHIVETYPE_DEB] = test[XARCHIVETYPE_BZIP2] = test[XARCHIVETYPE_GZIP] = test[XARCHIVETYPE_LZMA] = 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 -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 02:28:46.000000000 -0600 -+++ xarchiver-0.5.2/src/new_dialog.c 2009-11-30 13:17:54.987349701 -0600 -@@ -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 -Nur 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 04:28:34.000000000 -0600 -+++ xarchiver-0.5.2/src/tar.c 2009-11-30 13:19:34.037344951 -0600 -@@ -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); -@@ -449,6 +460,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"; -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 02:31:45.000000000 -0600 -+++ xarchiver-0.5.2/src/window.c 2009-11-30 13:17:54.990326583 -0600 -@@ -1125,6 +1125,8 @@ - xx = XARCHIVETYPE_GZIP; - else if (memcmp ( magic,"\x5d\x00\x00\x80",4) == 0) - xx = XARCHIVETYPE_LZMA; -+ else if (memcmp ( magic,"\xFD7zXZ\x00\0x00",3) == 0 || memcmp ( magic, "\xFD7zXZ\x00\0x10",3) == 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/xarchiver-0.5.2-default-archive-format.patch b/xarchiver-0.5.2-default-archive-format.patch deleted file mode 100644 index a3fce10..0000000 --- a/xarchiver-0.5.2-default-archive-format.patch +++ /dev/null @@ -1,12 +0,0 @@ ---- xarchiver-0.5.2.orig/src/pref_dialog.c 2008-11-10 09:05:07.000000000 +0100 -+++ xarchiver-0.5.2/src/pref_dialog.c 2009-03-22 23:50:47.000000000 +0100 -@@ -102,7 +102,8 @@ - archive_type = g_list_first (ArchiveType); - while ( archive_type != NULL ) - { -- if (strcmp(archive_type->data, "tgz") == 0 || -+ if (strcmp(archive_type->data, "arj") == 0 || -+ strcmp(archive_type->data, "tgz") == 0 || - strcmp(archive_type->data, "rpm") == 0 || - (strcmp(archive_type->data, "rar") == 0 && unrar) ) - goto next; diff --git a/xarchiver-0.5.2-drag-n-drop_escaped_path.patch b/xarchiver-0.5.2-drag-n-drop_escaped_path.patch deleted file mode 100644 index 10def7d..0000000 --- a/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/xarchiver-0.5.2-fix_7z_support.patch b/xarchiver-0.5.2-fix_7z_support.patch deleted file mode 100644 index f7ff098..0000000 --- a/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/xarchiver-0.5.2-format-security.patch b/xarchiver-0.5.2-format-security.patch deleted file mode 100644 index d1ae516..0000000 --- a/xarchiver-0.5.2-format-security.patch +++ /dev/null @@ -1,23 +0,0 @@ ---- a/src/window.c -+++ b/src/window.c -@@ -231,9 +231,9 @@ int xa_show_message_dialog (GtkWindow *window,int mode,int type,int button,const - { - int response; - -- dialog = gtk_message_dialog_new (window,mode,type,button,message1); -+ dialog = gtk_message_dialog_new (window,mode,type,button,"%s",message1); - gtk_dialog_set_default_response (GTK_DIALOG (dialog),GTK_RESPONSE_NO); -- gtk_message_dialog_format_secondary_text (GTK_MESSAGE_DIALOG (dialog),message2); -+ gtk_message_dialog_format_secondary_text (GTK_MESSAGE_DIALOG (dialog),"%s",message2); - response = gtk_dialog_run (GTK_DIALOG (dialog)); - gtk_widget_destroy (GTK_WIDGET (dialog)); - return response; -@@ -509,7 +509,7 @@ void xa_list_archive (GtkMenuItem *menuitem,gpointer data) - g_fprintf (stream,_("Comment:\n")); - if (bp) - g_fprintf(stream,"
");
--			g_fprintf (stream,archive[idx]->comment->str);
-+			g_fprintf (stream,"%s",archive[idx]->comment->str);
- 			if (bp)
- 				g_fprintf(stream,"
"); - g_fprintf (stream,"\n"); diff --git a/xarchiver-0.5.2-no-donators-menu.patch b/xarchiver-0.5.2-no-donators-menu.patch deleted file mode 100644 index aa2283a..0000000 --- a/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/xarchiver-0.5.2-rpm2cpio.patch b/xarchiver-0.5.2-rpm2cpio.patch deleted file mode 100644 index d962a44..0000000 --- a/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/xarchiver-0.5.2-segfault-open-with.patch b/xarchiver-0.5.2-segfault-open-with.patch deleted file mode 100644 index e29d40c..0000000 --- a/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/xarchiver-0.5.4-version-fix.patch b/xarchiver-0.5.4-version-fix.patch new file mode 100644 index 0000000..07c5fea --- /dev/null +++ b/xarchiver-0.5.4-version-fix.patch @@ -0,0 +1,12 @@ +diff -Naur xarchiver-0.5.4.orig/configure.in xarchiver-0.5.4/configure.in +--- xarchiver-0.5.4.orig/configure.in 2014-02-09 16:29:23.000000000 +0100 ++++ xarchiver-0.5.4/configure.in 2015-03-31 21:35:17.450044488 +0200 +@@ -11,7 +11,7 @@ + dnl *************************** + m4_define([xarchiver_version_major], [0]) + m4_define([xarchiver_version_minor], [5]) +-m4_define([xarchiver_version_micro], [3]) ++m4_define([xarchiver_version_micro], [4]) + m4_define([xarchiver_version_nano], []) # Leave empty for no nano version + m4_define([xarchiver_version_build], [r28705]) + m4_define([xarchiver_version_tag], []) # Leave empty for releases diff --git a/xarchiver.spec b/xarchiver.spec index e42fce7..19df67c 100644 --- a/xarchiver.spec +++ b/xarchiver.spec @@ -1,36 +1,14 @@ Name: xarchiver -Version: 0.5.2 -Release: 22%{?dist} +Version: 0.5.4 +Release: 1%{?dist} Summary: Archive manager for Xfce Group: Applications/Archiving License: GPLv2+ URL: http://xarchiver.xfce.org/ Source0: http://downloads.sourceforge.net/xarchiver/xarchiver-%{version}.tar.bz2 -Patch0: xarchiver-0.5.2-no-donators-menu.patch -Patch1: xarchiver-0.5.2-default-archive-format.patch -# add_xz_support.patch by Robby Workman taken from -# http://slackbuilds.org/slackbuilds/13.1/system/xarchiver/xarchiver-0.5.2-add_xz_support.patch -# sent upstream through -# https://sourceforge.net/tracker/?func=detail&aid=2847624&group_id=140153&atid=745600 -Patch2: xarchiver-0.5.2-add_xz_support.patch -# rpm2cpio.patch by Daniel Hokka Zakrisson -# taken from https://bugzilla.redhat.com/show_bug.cgi?id=577480 -# sent upstream through -# https://sourceforge.net/tracker/?func=detail&aid=3310768&group_id=140153&atid=745602 -Patch3: xarchiver-0.5.2-rpm2cpio.patch -# segfault-open-with.patch by Bastiaan Jacques -# taken from https://bugzilla.redhat.com/show_bug.cgi?id=690012 -# sent upstream through -# https://sourceforge.net/tracker/?func=detail&aid=3310778&group_id=140153&atid=745600 -Patch4: xarchiver-0.5.2-segfault-open-with.patch -# fix-7z-support.patch by taken from -# https://sourceforge.net/tracker/?func=detail&aid=3137589&group_id=140153&atid=745602 -Patch5: xarchiver-0.5.2-fix_7z_support.patch -# rhbz#784075 - extraction fails when the Drag'n'Drop target path contains spaces -Patch6: xarchiver-0.5.2-drag-n-drop_escaped_path.patch -# -Werror=format-security -Patch7: xarchiver-0.5.2-format-security.patch + +Patch0: xarchiver-0.5.4-version-fix.patch BuildRequires: gtk2-devel, libxml2-devel, gettext, desktop-file-utils BuildRequires: xfce4-dev-tools >= 4.3.90.2 @@ -50,16 +28,10 @@ archives in the arj, 7z, rar, and zip formats are supported. %prep %setup -q +%patch0 -p1 # fix spurious executable permissions of some debug files chmod -x src/mime.* -%patch0 -p2 -b .no-donators-menu -%patch1 -p1 -b .default-archive-format -%patch2 -p1 -b .add_xz_support -%patch3 -p1 -b .rpm2cpio -%patch4 -p1 -b .segfault-open-with -%patch5 -p1 -b .fix_7z_support -%patch6 -p1 -b .dnd_escaped_path -%patch7 -p1 -b .formatsec + %build autoreconf -vif @@ -126,6 +98,9 @@ gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null || : %changelog +* Tue Mar 31 2015 Jaromir Capik - 0.5.4-1 +- Update to 0.5.4 (#1147466) + * Sat Feb 21 2015 Till Maas - 0.5.2-22 - Rebuilt for Fedora 23 Change https://fedoraproject.org/wiki/Changes/Harden_all_packages_with_position-independent_code