Revision bump to add .tar.xz support, bug 320849 (Patch from slackware). Small style...
authorJeremy Olexa <darkside@gentoo.org>
Sun, 13 Jun 2010 01:32:25 +0000 (01:32 +0000)
committerJeremy Olexa <darkside@gentoo.org>
Sun, 13 Jun 2010 01:32:25 +0000 (01:32 +0000)
Package-Manager: portage-2.1.8.3/cvs/Linux x86_64

app-arch/xarchiver/ChangeLog
app-arch/xarchiver/Manifest
app-arch/xarchiver/files/xarchiver-0.5.2-add_xz_support.patch [new file with mode: 0644]
app-arch/xarchiver/xarchiver-0.5.2-r2.ebuild [new file with mode: 0644]

index ac353690d6b07a33a69ac5a93ed8daf82468fcaf..2a60ef3e2dc21cee2ac24888609876b2ef3f7ba2 100644 (file)
@@ -1,6 +1,13 @@
 # ChangeLog for app-arch/xarchiver
 # Copyright 1999-2010 Gentoo Foundation; Distributed under the GPL v2
-# $Header: /var/cvsroot/gentoo-x86/app-arch/xarchiver/ChangeLog,v 1.22 2010/04/14 17:45:52 jer Exp $
+# $Header: /var/cvsroot/gentoo-x86/app-arch/xarchiver/ChangeLog,v 1.23 2010/06/13 01:32:24 darkside Exp $
+
+*xarchiver-0.5.2-r2 (13 Jun 2010)
+
+  13 Jun 2010; Jeremy Olexa <darkside@gentoo.org>
+  +xarchiver-0.5.2-r2.ebuild, +files/xarchiver-0.5.2-add_xz_support.patch:
+  Revision bump to add .tar.xz support, bug 320849 (Patch from slackware).
+  Small style changes to DOCS installation and xfconf_use_debug.
 
   14 Apr 2010; Jeroen Roovers <jer@gentoo.org> xarchiver-0.5.2-r1.ebuild:
   Stable for HPPA (bug #305657).
index 1be22164a5036e6a8d2ba431b7ed5448fffb4269..3c2161007c58123863f3a407f8a901e374a4bb99 100644 (file)
@@ -1,5 +1,7 @@
+AUX xarchiver-0.5.2-add_xz_support.patch 14741 RMD160 fc0883c2c9f43bb74c68259bcdbfb26d8fe7e0ce SHA1 095d30622d22d1834290a95c8f82e7e650e5d8fb SHA256 ee5c761073b0065fa62e11302e5f7c81a90d5c896b8bcdadbc0753531fd15a02
 AUX xarchiver-0.5.2-stack-smash.patch 581 RMD160 fec3a7501eaa584295c0118ba27f4ac85baa238b SHA1 990c62541b183594f76b523ba2e7c5c2d6a59307 SHA256 2032d3a7cdafc23b2577a6798af5ca93a913ff2a10ac4cf5adaf176433e9e424
 DIST xarchiver-0.5.2.tar.bz2 755418 RMD160 77b1daadd39fd86c5582c75f774282f4bec41bf7 SHA1 8c8f0ee82c93abcdcf9974fa30611aa05fa51bd0 SHA256 cea932ff9d505969201fd502470bbebbc5726ab3d6765e142fc8295aa677ad2a
 EBUILD xarchiver-0.5.2-r1.ebuild 1312 RMD160 ebfa4c734e15676e8c4ee3acc2f646c32a61ef38 SHA1 dbca8f7b0395f0db5d249458954360bbb958ba73 SHA256 f073aee5402255db3b95b7eba2214999f7bc51c7c8a242f2c05a6018e5fbf5a0
-MISC ChangeLog 6761 RMD160 9da416468ed09b9d3a66e19d2a0c11aa1fd7abde SHA1 fba3d602f8f5bfdd975e73710297d2e5ec2f3a22 SHA256 d4d64cbd4e88074919f970b47e39cf6798efc4c8d8fe289a9e798eef8157bba6
+EBUILD xarchiver-0.5.2-r2.ebuild 1719 RMD160 fce2d733fc5d0a46f20878ee3945943ec0a3117f SHA1 7dc88f046e40716c2364fadbcb110b09c67a46a3 SHA256 7b1827000c78bfa1442926247ed3302872de19819ed6a43dc0732219a2bc218e
+MISC ChangeLog 7067 RMD160 8c0321f00bcbe0109f6c5e21d932fc9b9beb65bc SHA1 51226dc46e9b820d6e190e972d28409b74de22b5 SHA256 da420b5630dcd3aea730237213bf4ef0cf9cd705e4ef6bf5b30a4122abe17bfc
 MISC metadata.xml 282 RMD160 91094ad401347628de4ab3e48ebbb5d620d6e2dd SHA1 cae64548911eb2bcbaca4e9ffd107b55404080f3 SHA256 e4c094365dccc476d8033116d416b8c037c870c34df1b13260dca4552b0826eb
diff --git a/app-arch/xarchiver/files/xarchiver-0.5.2-add_xz_support.patch b/app-arch/xarchiver/files/xarchiver-0.5.2-add_xz_support.patch
new file mode 100644 (file)
index 0000000..0936113
--- /dev/null
@@ -0,0 +1,314 @@
+Patch from: http://slackbuilds.org/repository/13.1/system/xarchiver/
+
+Not submitted upstream because the upstream author rewrote the code. So, this
+patch may be dropped when/if upstream releases a new version
+
+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) || 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/app-arch/xarchiver/xarchiver-0.5.2-r2.ebuild b/app-arch/xarchiver/xarchiver-0.5.2-r2.ebuild
new file mode 100644 (file)
index 0000000..65032b5
--- /dev/null
@@ -0,0 +1,57 @@
+# Copyright 1999-2010 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Header: /var/cvsroot/gentoo-x86/app-arch/xarchiver/xarchiver-0.5.2-r2.ebuild,v 1.1 2010/06/13 01:32:24 darkside Exp $
+
+EAPI=2
+inherit xfconf
+
+DESCRIPTION="a GTK+ based and advanced archive manager that can be used with Thunar"
+HOMEPAGE="http://xarchiver.sourceforge.net"
+SRC_URI="mirror://sourceforge/${PN}/${P}.tar.bz2"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~hppa ~ia64 ~ppc ~ppc64 ~sparc ~x86 ~x86-fbsd ~x86-freebsd ~amd64-linux ~x86-linux"
+IUSE="debug"
+
+RDEPEND=">=x11-libs/gtk+-2.10:2
+       >=dev-libs/glib-2.10:2"
+DEPEND="${RDEPEND}
+       dev-util/intltool
+       dev-util/pkgconfig"
+
+pkg_setup() {
+       PATCHES=( "${FILESDIR}"/${P}-stack-smash.patch
+               "${FILESDIR}"/${P}-add_xz_support.patch )
+       XFCONF="--disable-dependency-tracking
+               $(xfconf_use_debug)"
+       DOCS="AUTHORS ChangeLog NEWS README TODO"
+}
+
+src_prepare() {
+       # Don't install the COPYING file.
+       sed -i -e '/COPYING/d' doc/Makefile.in || die
+       xfconf_src_prepare
+}
+
+src_install() {
+       # xfconf_src_install will not work here because you cannot add variables to
+       # the emake call. Yay for code duplication.
+       emake DESTDIR="${D}" DOCDIR="${D}/usr/share/doc/${PF}" install || die "emake install failed"
+
+       if [[ -n ${DOCS} ]]; then
+               dodoc ${DOCS} || die "dodoc failed"
+       fi
+}
+
+pkg_postinst() {
+       xfconf_pkg_postinst
+       elog "You need external programs for some formats, including"
+       elog "7zip - app-arch/p7zip"
+       elog "arj - app-arch/unarj app-arch/arj"
+       elog "lha - app-arch/lha"
+       elog "lzop - app-arch/lzop"
+       elog "rar - app-arch/unrar app-arch/rar"
+       elog "zip - app-arch/unzip app-arch/zip"
+       elog "Make sure to install xfce-extra/thunar-archive-plugin."
+}