Date: Tuesday, September 30, 2014 @ 16:21:21 Author: bgyorgy Revision: 119883
upgpkg: xarchiver 0.5.4-1 Update to version 0.5.4 Added: xarchiver/trunk/add-mime-types.patch xarchiver/trunk/fix-password-protected.patch xarchiver/trunk/fix-rpm-support.patch Modified: xarchiver/trunk/PKGBUILD Deleted: xarchiver/trunk/rar5-withespace.patch xarchiver/trunk/xarchiver-0.5.3-add-mime-types.patch xarchiver/trunk/xarchiver-0.5.3-fix-double-escaping.patch xarchiver/trunk/xarchiver-0.5.3-fix-password-protected.patch xarchiver/trunk/xarchiver-0.5.3-fix-rpm-support.patch ----------------------------------------------+ PKGBUILD | 32 +++------ add-mime-types.patch | 17 ++++ fix-password-protected.patch | 42 ++++++++++++ fix-rpm-support.patch | 86 +++++++++++++++++++++++++ rar5-withespace.patch | 44 ------------ xarchiver-0.5.3-add-mime-types.patch | 17 ---- xarchiver-0.5.3-fix-double-escaping.patch | 32 --------- xarchiver-0.5.3-fix-password-protected.patch | 42 ------------ xarchiver-0.5.3-fix-rpm-support.patch | 86 ------------------------- 9 files changed, 156 insertions(+), 242 deletions(-) Modified: PKGBUILD =================================================================== --- PKGBUILD 2014-09-30 14:13:54 UTC (rev 119882) +++ PKGBUILD 2014-09-30 14:21:21 UTC (rev 119883) @@ -4,8 +4,8 @@ # Contributor: Andrew Simmons <andrew.simm...@gmail.com> pkgname=xarchiver -pkgver=0.5.3 -pkgrel=4 +pkgver=0.5.4 +pkgrel=1 pkgdesc="GTK+ frontend to various command line archivers" arch=('i686' 'x86_64') url="http://xarchiver.sourceforge.net/" @@ -21,35 +21,25 @@ 'unrar: RAR support') install=xarchiver.install source=(http://downloads.sourceforge.net/xarchiver/xarchiver-$pkgver.tar.bz2 - 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 - rar5-withespace.patch) -md5sums=('fd390bbd2df76a5f8a007bdeae82d4aa' + fix-rpm-support.patch + fix-password-protected.patch + add-mime-types.patch) +md5sums=('1b4cd37a6af03afc957a8e307417e8d0' '812b93339f5e3332621f3c5abebfe277' - '6178d7ab679b761469c880a8db991907' '35ab96d98521a0a36f3e9e9ec0969107' - '0cee887b3c989ba2cdce9154813843fb' - '77a4aead93f0b2c9cf44647101a85742') + '0cee887b3c989ba2cdce9154813843fb') prepare() { cd $pkgname-$pkgver # Fix RPM support - patch -Np1 -i ../xarchiver-0.5.3-fix-rpm-support.patch + patch -Np1 -i ../fix-rpm-support.patch - # Fix error when trying to create archives with spaces - patch -Np1 -i ../xarchiver-0.5.3-fix-double-escaping.patch - # Fix segfault when handling password protected files - patch -Np1 -i ../xarchiver-0.5.3-fix-password-protected.patch + patch -Np1 -i ../fix-password-protected.patch - # Add more MIME types in the desktop file - patch -Np1 -i ../xarchiver-0.5.3-add-mime-types.patch - - # Fix RAR5 files containing white space - patch -Np1 -i ../rar5-withespace.patch + # Add more MIME types to the desktop file, fix exec line + patch -Np1 -i ../add-mime-types.patch } build() { Added: add-mime-types.patch =================================================================== --- add-mime-types.patch (rev 0) +++ add-mime-types.patch 2014-09-30 14:21:21 UTC (rev 119883) @@ -0,0 +1,17 @@ +diff -Naur xarchiver-0.5.3.orig/xarchiver.desktop.in xarchiver-0.5.3/xarchiver.desktop.in +--- xarchiver-0.5.3.orig/xarchiver.desktop.in 2014-05-12 01:08:12.159131913 +0000 ++++ xarchiver-0.5.3/xarchiver.desktop.in 2014-05-12 01:09:02.585526393 +0000 +@@ -4,11 +4,11 @@ + _Name=Xarchiver + _Comment=A GTK+2 only archive manager + _GenericName=Archive manager +-Exec=xarchiver ++Exec=xarchiver %f + Icon=xarchiver + Terminal=false + Type=Application + 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-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-deb;application/x-rpm; Added: fix-password-protected.patch =================================================================== --- fix-password-protected.patch (rev 0) +++ fix-password-protected.patch 2014-09-30 14:21:21 UTC (rev 119883) @@ -0,0 +1,42 @@ +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) + { +- archive->passwd = xa_create_password_dialog(NULL); ++ archive->passwd = xa_create_password_dialog(archive); + if ( archive->passwd == NULL) + { + gtk_drag_finish (dc,FALSE,FALSE,t); +@@ -2702,9 +2702,12 @@ + + if (entry->is_encrypted) + { +- archive[idx]->passwd = xa_create_password_dialog(archive[idx]); + if (archive[idx]->passwd == NULL) +- return; ++ { ++ archive[idx]->passwd = xa_create_password_dialog(archive[idx]); ++ if (archive[idx]->passwd == NULL) ++ return; ++ } + } + filename = g_strconcat(archive[idx]->tmp,"/",entry->filename,NULL); + if (g_file_test(filename,G_FILE_TEST_EXISTS)) +@@ -2768,8 +2771,12 @@ + { + 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) + { Added: fix-rpm-support.patch =================================================================== --- fix-rpm-support.patch (rev 0) +++ fix-rpm-support.patch 2014-09-30 14:21:21 UTC (rev 119883) @@ -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); Deleted: rar5-withespace.patch =================================================================== --- rar5-withespace.patch 2014-09-30 14:13:54 UTC (rev 119882) +++ rar5-withespace.patch 2014-09-30 14:21:21 UTC (rev 119883) @@ -1,44 +0,0 @@ ---- xarchiver-0.5.3.orig/src/rar.c -+++ xarchiver-0.5.3/src/rar.c -@@ -345,7 +345,7 @@ - unsigned short int i = 0; - unsigned int linesize,n,a; - gboolean dir = FALSE; -- static gchar *filename; -+ static gchar *filename, *end; - - if (last_line) - return; -@@ -388,7 +388,6 @@ - last_line = TRUE; - return; - } -- - archive->nr_of_files++; - - /* Permissions */ -@@ -453,15 +452,15 @@ - 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); -+ -+ /* FileName */ -+ line[linesize - 1] = '\0'; -+ filename = g_strdup(line+64); -+ -+ /* Strip trailing whitespace */ -+ end = filename + strlen(filename) - 1; -+ while(end >= filename && *end == ' ') end--; -+ *(end + 1) = '\0'; - - /* Work around for rar which doesn't - * output / with directories */ Deleted: xarchiver-0.5.3-add-mime-types.patch =================================================================== --- xarchiver-0.5.3-add-mime-types.patch 2014-09-30 14:13:54 UTC (rev 119882) +++ xarchiver-0.5.3-add-mime-types.patch 2014-09-30 14:21:21 UTC (rev 119883) @@ -1,17 +0,0 @@ -diff -Naur xarchiver-0.5.3.orig/xarchiver.desktop.in xarchiver-0.5.3/xarchiver.desktop.in ---- xarchiver-0.5.3.orig/xarchiver.desktop.in 2014-05-12 01:08:12.159131913 +0000 -+++ xarchiver-0.5.3/xarchiver.desktop.in 2014-05-12 01:09:02.585526393 +0000 -@@ -4,11 +4,11 @@ - _Name=Xarchiver - _Comment=A GTK+2 only archive manager - _GenericName=Archive manager --Exec=xarchiver -+Exec=xarchiver %f - Icon=xarchiver - Terminal=false - Type=Application - 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-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-deb;application/x-rpm; Deleted: xarchiver-0.5.3-fix-double-escaping.patch =================================================================== --- xarchiver-0.5.3-fix-double-escaping.patch 2014-09-30 14:13:54 UTC (rev 119882) +++ xarchiver-0.5.3-fix-double-escaping.patch 2014-09-30 14:21:21 UTC (rev 119883) @@ -1,32 +0,0 @@ -From: =?UTF-8?q?Guido=20Berh=C3=B6rster?= <g...@opensuse.org> -Date: Sat, 19 Jan 2013 09:27:36 +0100 -Subject: fix-double-escaping - -Do not escape file names twice. Fixes an error when trying to create archives -with spaces. - -Bug: http://bugs.debian.org/697493. ---- - src/main.c | 4 ++-- - 1 file changed, 2 insertions(+), 2 deletions(-) - -diff --git a/src/main.c b/src/main.c -index a13d737..a6a7f93 100644 ---- a/src/main.c -+++ b/src/main.c -@@ -208,13 +208,13 @@ int main (int argc, char **argv) - g_free(_current_dir); - GSList *files = NULL; - _current_dir = g_path_get_basename(add_files); -- files = g_slist_append(files,xa_escape_filename(_current_dir,"$'`\"\\!?* ()[]&|:;<>#")); -+ files = g_slist_append(files,g_strdup(_current_dir)); - g_free(_current_dir); - g_free(add_files); - for (x = 1; x< argc; x++) - { - _current_dir = g_path_get_basename(argv[x]); -- files = g_slist_append(files,xa_escape_filename(_current_dir,"$'`\"\\!?* ()[]&|:;<>#")); -+ files = g_slist_append(files,g_strdup(_current_dir)); - g_free (_current_dir); - } - xa_execute_add_commands(archive,files,NULL); Deleted: xarchiver-0.5.3-fix-password-protected.patch =================================================================== --- xarchiver-0.5.3-fix-password-protected.patch 2014-09-30 14:13:54 UTC (rev 119882) +++ xarchiver-0.5.3-fix-password-protected.patch 2014-09-30 14:21:21 UTC (rev 119883) @@ -1,42 +0,0 @@ -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) - { -- archive->passwd = xa_create_password_dialog(NULL); -+ archive->passwd = xa_create_password_dialog(archive); - if ( archive->passwd == NULL) - { - gtk_drag_finish (dc,FALSE,FALSE,t); -@@ -2702,9 +2702,12 @@ - - if (entry->is_encrypted) - { -- archive[idx]->passwd = xa_create_password_dialog(archive[idx]); - if (archive[idx]->passwd == NULL) -- return; -+ { -+ archive[idx]->passwd = xa_create_password_dialog(archive[idx]); -+ if (archive[idx]->passwd == NULL) -+ return; -+ } - } - filename = g_strconcat(archive[idx]->tmp,"/",entry->filename,NULL); - if (g_file_test(filename,G_FILE_TEST_EXISTS)) -@@ -2768,8 +2771,12 @@ - { - 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) - { Deleted: xarchiver-0.5.3-fix-rpm-support.patch =================================================================== --- xarchiver-0.5.3-fix-rpm-support.patch 2014-09-30 14:13:54 UTC (rev 119882) +++ xarchiver-0.5.3-fix-rpm-support.patch 2014-09-30 14:21:21 UTC (rev 119883) @@ -1,86 +0,0 @@ -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);