ib / xarchiver Goto Github PK
View Code? Open in Web Editor NEW(continuation of the Xfce master branch)
License: GNU General Public License v2.0
(continuation of the Xfce master branch)
License: GNU General Public License v2.0
I created 3 folders (A, B and C), each one containing 3 empty text files (x1.txt, x2.txt and x3.txt), when I try to create a .7z file Xarchiver crash with the last one.
All the folders and the .7z file are located in the home directory.
GLib-CRITICAL **: g_string_insert_len: assertion 'len == 0 || val != NULL' failed
Xarchive 0.5.4.13
Xubuntu 17.10
I recently got AES encrypted ZIP archive, and with the xarchiver 0.5.4.10
i got:
skipping: XYZ.pdf need PK compat. v5.1 (can do v4.6)
The same result i got with unzip
, but i have no problem to extract it with 7z
. I don't know how it is handled by xarchiver
, but i cannot find any configuration option for this. AFAIK unzip is not AES capable...
The contextual menu for select the specific compression format and the menu for the default compressed format and also the uncompression not support lrzip [1], this format can even produce smaller .zst
files than most other formats so so that btrfs will add support to it.
It could be nice for Xarchiver to add this format to the supported ones; also I think this could make xarchiver a real competitor to other compress frontends since aparently not even file-roller support .zst
files.
If ~/.config/xarchiver/xarchiverrc
is missing, defaults are loaded on launch as expected and they are shown in the Preferences dialog. Upon changing some option, pressing OK and restarting the application, I see that the change isn't remembered.
When I do
$ touch ~/.config/xarchiver/xarchiverrc
and change some setting, I see that the changes are remembered on a application restart.
Irrespective of the presence of the config file, changes should be persisted across sessions i.e. if the file is missing, one should be created instead of not saving the preferences.
Here're the details of my installation
xarchiver 0.5.4.13 (binary install through
pacman
)
Xfce 4.12
Archlinux
@ib, many compressors have this interesting feature (and I miss it in xarchiver):
Imagine that you have a compressed file with text files inside. You double-click on one of them. You modify the text. After you save the results in the temporary directory, xarchiver could ask whether you want to update the file.
It is an extremely useful feature.
Many thanks for your work.
Please consider to add keywords to xarchiver's desktop file like
Keywords=GTK;archiver;frontend;compression;zip;bz2;7z;gzip;deb;rpm;arj;lzma;rar;xz;
This will allow modern desktop environments to provide better search results to users.
Hi, I'm using LXLE and have unrar installed so I can unrar files from the command line, but not from Xarchiver.
Thanks.
configure script doesn't check for xmlto tool required for building documentation.
Please consider to support autoreconf. At the moment xarchiver will fail to build from source if someone tries to recreate the autoconf configuration files. Currently it fails with the following output:
aclocal: warning: couldn't open directory 'm4': No such file or directory
libtoolize: putting auxiliary files in '.'.
libtoolize: copying file './ltmain.sh'
libtoolize: putting macros in AC_CONFIG_MACRO_DIRS, 'm4'.
libtoolize: copying file 'm4/libtool.m4'
libtoolize: copying file 'm4/ltoptions.m4'
libtoolize: copying file 'm4/ltsugar.m4'
libtoolize: copying file 'm4/ltversion.m4'
libtoolize: copying file 'm4/lt~obsolete.m4'
libtoolize: Consider adding '-I m4' to ACLOCAL_AMFLAGS in Makefile.am.
configure.ac:38: installing './compile'
configure.ac:30: installing './missing'
Makefile.am: installing './INSTALL'
Makefile.am: error: required file './NEWS' not found
Makefile.am: error: required file './AUTHORS' not found
src/Makefile.am: installing './depcomp'
autoreconf: automake failed with exit status: 1
dh_autoreconf: autoreconf -f -i returned exit code 1
Select, unselect checkbox "Confirm deletion of files" ignored.
In archives tar.* (e.g. *.tar.gz, *.tar.bz2) always deleted *.gz or *.bz2.
Only *.tar remains.
It would be nice if Xarchiver could use the bsdtar
command (or the libarchive library) to manage archive files. It supports various formats, including RAR files. More details: http://libarchive.org/
I'll announce here msgid message strings new to the next version of xarchiver which need to be translated prior to the release.
If you can translate any of them and would like to contribute, just leave a comment with your translation (and language code).
If you would like to complete an existing but incomplete translation, get the respective language file, translate as much as you can and attach the result to a comment here.
Any help is appreciated.
Previous contributors: @micrococo (es), @welaq (lt), @cybercop-montana (bg).
I'm trying to update xarchiver to 0.5.4.12 on OpenBSD, last known working version is 0.5.4.8. In later versions, opening an archive only shows a black window, busy looping on something. Same thing if opening the archive from the started UI, or opening it from the cmdline.
Debugging with gdb shows that xa_process_stdout/xa_process_stderr keep being called even when all the stdout/stderr content has been parsed, so maybe something isnt properly drained somewhere ? Or an error condition is not handled ?
On top of this i'd remove the 3 occurences of
while (gtk_events_pending())
gtk_main_iteration();
Which seem deeply wrong to me.
I am hereby forwarding Debian bug #748159.
https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=748159
As the subject implies, please consider to use the free unar tool instead of unrar when extracting rar archives.
Latest release of xarchiver (0.5.4.12) does not build on MacOS; here is the error message:
CC xarchiver-window.o
window.c:20:10: fatal error: 'endian.h' file not found
#include <endian.h>
^~~~~~~~~~
1 error generated.
Since this header seems to be used only to provide the le32toh
function, here is a patch that I could use to successfully build xarchiver
:
diff --git a/src/window.c b/src/window.c
index 8c62e80..8a63205 100644
--- a/src/window.c
+++ b/src/window.c
@@ -17,7 +17,6 @@
*/
#include "config.h"
-#include <endian.h>
#include <errno.h>
#include <stdint.h>
#include <string.h>
@@ -39,6 +38,13 @@
#include "support.h"
#include "tar.h"
+#ifdef __APPLE__
+#include <libkern/OSByteOrder.h>
+#define le32toh(x) OSSwapLittleToHostInt32(x)
+#else
+#include <endian.h>
+#endif
+
#ifdef HAVE_SOCKET
#include "socket.h"
#endif
Hi,
On a system running Mageia Cauldron, xarchiver (latest snapshot) crashes.
After some searches, I found that, since 4a93a6e, launching xarchiver causes a segmentation fault because it tries to use a function named 'open' from the glibc.
The provided patch rename open to open_archive.
Xarchiver currently doesn't work with unar to unpack rar and other file formats but instead uses the proprietary unrar.
Unar 1.10 does support RAR 5.0 archives.
I am hereby forwarding Debian bug #757600.
https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=757600
This is still reprocubible with 0.5.4.10. Steps to reproduce:
Hi,
When running the command "xarchiver --extract-to [a_directory] [a_RPM_archive]", I get a segmentation fault whereas extracting from the GUI succeeds. The provided patch corrects the problem.
Best regards,
Nico.
xarchiver-0.5.4.6-fix-sigsegv-when-directly-extracting-rpm.patch.txt
When I click on Archive -> New menu item, I always get a crash with the current git master version of xarchiver. It happens with both GTK+ versions. (Probably unrelated to the GTK+ 3 port.)
Here is the backtrace:
#0 0x00007ffff65dd60a in __strcmp_sse2_unaligned () from /usr/lib/libc.so.6
#1 0x000000000041ceef in xa_get_suffix (types=0x70fce0, type=type@entry=0x0) at new_dialog.c:38
#2 0x000000000041d427 in xa_new_archive_dialog (path=path@entry=0x0, archive_open=archive_open@entry=0x63e6e0 <archive>, flag=flag@entry=0)
at new_dialog.c:177
#3 0x0000000000427a82 in xa_new_archive (menuitem=<optimized out>, user_data=<optimized out>) at window.c:228
#4 0x00007ffff6e2d1d4 in ?? () from /usr/lib/libgobject-2.0.so.0
#5 0x00007ffff6e4790d in g_signal_emit_valist () from /usr/lib/libgobject-2.0.so.0
#6 0x00007ffff6e484ab in g_signal_emit_by_name () from /usr/lib/libgobject-2.0.so.0
#7 0x00007ffff6e2d1d4 in ?? () from /usr/lib/libgobject-2.0.so.0
#8 0x00007ffff6e4790d in g_signal_emit_valist () from /usr/lib/libgobject-2.0.so.0
#9 0x00007ffff6e47fff in g_signal_emit () from /usr/lib/libgobject-2.0.so.0
#10 0x00007ffff7822ee5 in ?? () from /usr/lib/libgtk-x11-2.0.so.0
#11 0x00007ffff6e2cfa5 in g_closure_invoke () from /usr/lib/libgobject-2.0.so.0
#12 0x00007ffff6e3e98b in ?? () from /usr/lib/libgobject-2.0.so.0
#13 0x00007ffff6e47c1c in g_signal_emit_valist () from /usr/lib/libgobject-2.0.so.0
#14 0x00007ffff6e47fff in g_signal_emit () from /usr/lib/libgobject-2.0.so.0
#15 0x00007ffff7821e29 in ?? () from /usr/lib/libgtk-x11-2.0.so.0
#16 0x00007ffff78c891c in ?? () from /usr/lib/libgtk-x11-2.0.so.0
#17 0x00007ffff6e2cfa5 in g_closure_invoke () from /usr/lib/libgobject-2.0.so.0
#18 0x00007ffff6e3f3ad in ?? () from /usr/lib/libgobject-2.0.so.0
#19 0x00007ffff6e476bf in g_signal_emit_valist () from /usr/lib/libgobject-2.0.so.0
#20 0x00007ffff6e47fff in g_signal_emit () from /usr/lib/libgobject-2.0.so.0
#21 0x00007ffff79e02dc in ?? () from /usr/lib/libgtk-x11-2.0.so.0
#22 0x00007ffff78c70b4 in gtk_propagate_event () from /usr/lib/libgtk-x11-2.0.so.0
#23 0x00007ffff78c746b in gtk_main_do_event () from /usr/lib/libgtk-x11-2.0.so.0
#24 0x00007ffff753c3ac in ?? () from /usr/lib/libgdk-x11-2.0.so.0
#25 0x00007ffff6b57dd7 in g_main_context_dispatch () from /usr/lib/libglib-2.0.so.0
#26 0x00007ffff6b58040 in ?? () from /usr/lib/libglib-2.0.so.0
#27 0x00007ffff6b58362 in g_main_loop_run () from /usr/lib/libglib-2.0.so.0
#28 0x00007ffff78c64e7 in gtk_main () from /usr/lib/libgtk-x11-2.0.so.0
#29 0x000000000040bbdc in main (argc=<optimized out>, argv=<optimized out>) at main.c:330
Actually hte contextual menu for select the specific compression format and the menu for the default compressed format and also the uncompression not support lrzip [1] where even package managers (like pacman [not by default]) support compression as lrzip so it could be nice support this compression option
[1] http://ck.kolivas.org/apps/lrzip/
EDIT: also please update the Changelog file to know what new,
Hi,
I tried the latest release but it fails to build from source. System: Debian GNU/Linux, sid, amd64. The error is
open-with-dlg.c:122:42: error: unknown type name 'GtkObject'
Relevant output below (hopefully)
gcc -DHAVE_CONFIG_H -I. -I.. -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -Wextra -Wno-unused-parameter -pthread -I/usr/include/gtk-3.0 -I/usr/include/at-spi2-atk/2.0 -I/usr/include/at-spi-2.0 -I/usr/include/dbus-1.0 -I/usr/lib/x86_64-linux-gnu/dbus-1.0/include -I/usr/include/gtk-3.0 -I/usr/include/gio-unix-2.0/ -I/usr/include/cairo -I/usr/include/pango-1.0 -I/usr/include/harfbuzz -I/usr/include/pango-1.0 -I/usr/include/atk-1.0 -I/usr/include/cairo -I/usr/include/pixman-1 -I/usr/include/freetype2 -I/usr/include/libpng16 -I/usr/include/gdk-pixbuf-2.0 -I/usr/include/libpng16 -I/usr/include/glib-2.0 -I/usr/lib/x86_64-linux-gnu/glib-2.0/include -DHTMLDIR="/usr/share/doc/xarchiver" -DLOCALEDIR="/usr/share/locale" -DPIXMAPSDIR="/usr/share/pixmaps/xarchiver" -Wno-deprecated-declarations -g -O2 -fdebug-prefix-map=/build/xarchiver-0.5.4.11=. -fstack-protector-strong -Wformat -Werror=format-security -c -o xarchiver-new_dialog.o test -f 'new_dialog.c' || echo './'
new_dialog.c
gcc -DHAVE_CONFIG_H -I. -I.. -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -Wextra -Wno-unused-parameter -pthread -I/usr/include/gtk-3.0 -I/usr/include/at-spi2-atk/2.0 -I/usr/include/at-spi-2.0 -I/usr/include/dbus-1.0 -I/usr/lib/x86_64-linux-gnu/dbus-1.0/include -I/usr/include/gtk-3.0 -I/usr/include/gio-unix-2.0/ -I/usr/include/cairo -I/usr/include/pango-1.0 -I/usr/include/harfbuzz -I/usr/include/pango-1.0 -I/usr/include/atk-1.0 -I/usr/include/cairo -I/usr/include/pixman-1 -I/usr/include/freetype2 -I/usr/include/libpng16 -I/usr/include/gdk-pixbuf-2.0 -I/usr/include/libpng16 -I/usr/include/glib-2.0 -I/usr/lib/x86_64-linux-gnu/glib-2.0/include -DHTMLDIR="/usr/share/doc/xarchiver" -DLOCALEDIR="/usr/share/locale" -DPIXMAPSDIR="/usr/share/pixmaps/xarchiver" -Wno-deprecated-declarations -g -O2 -fdebug-prefix-map=/build/xarchiver-0.5.4.11=. -fstack-protector-strong -Wformat -Werror=format-security -c -o xarchiver-open-with-dlg.o test -f 'open-with-dlg.c' || echo './'
open-with-dlg.c
open-with-dlg.c:122:42: error: unknown type name 'GtkObject'
static void xa_destroy_open_with_dialog (GtkObject *object, Open_with_data *data)
^~~~~~~~~
In file included from /usr/include/glib-2.0/gobject/gobject.h:28:0,
from /usr/include/glib-2.0/gobject/gbinding.h:29,
from /usr/include/glib-2.0/glib-object.h:23,
from /usr/include/glib-2.0/gio/gioenums.h:28,
from /usr/include/glib-2.0/gio/giotypes.h:28,
from /usr/include/glib-2.0/gio/gio.h:26,
from /usr/include/gtk-3.0/gdk/gdkapplaunchcontext.h:28,
from /usr/include/gtk-3.0/gdk/gdk.h:32,
from /usr/include/gtk-3.0/gtk/gtk.h:30,
from open-with-dlg.c:20:
open-with-dlg.c: In function 'xa_create_open_with_dialog':
open-with-dlg.c:460:69: error: 'xa_destroy_open_with_dialog' undeclared (first use in this function)
g_signal_connect (G_OBJECT (data->dialog1), "destroy", G_CALLBACK(xa_destroy_open_with_dialog),data);
^
/usr/include/glib-2.0/gobject/gsignal.h:475:60: note: in definition of macro 'g_signal_connect'
g_signal_connect_data ((instance), (detailed_signal), (c_handler), (data), NULL, (GConnectFlags) 0)
^~~~~~~~~
open-with-dlg.c:460:58: note: in expansion of macro 'G_CALLBACK'
g_signal_connect (G_OBJECT (data->dialog1), "destroy", G_CALLBACK(xa_destroy_open_with_dialog),data);
^~~~~~~~~~
open-with-dlg.c:460:69: note: each undeclared identifier is reported only once for each function it appears in
g_signal_connect (G_OBJECT (data->dialog1), "destroy", G_CALLBACK(xa_destroy_open_with_dialog),data);
^
/usr/include/glib-2.0/gobject/gsignal.h:475:60: note: in definition of macro 'g_signal_connect'
g_signal_connect_data ((instance), (detailed_signal), (c_handler), (data), NULL, (GConnectFlags) 0)
^~~~~~~~~
open-with-dlg.c:460:58: note: in expansion of macro 'G_CALLBACK'
g_signal_connect (G_OBJECT (data->dialog1), "destroy", G_CALLBACK(xa_destroy_open_with_dialog),data);
^~~~~~~~~~
At top level:
open-with-dlg.c:57:13: warning: 'xa_app_free' defined but not used [-Wunused-function]
static void xa_app_free (App *app, gpointer user_data)
^~~~~~~~~~~
Makefile:748: recipe for target 'xarchiver-open-with-dlg.o' failed
desktop-file-validate does not like "multipart/x-zip" being included in mimetypes:
# update-desktop-database
Warning in file "/usr/share/applications/xarchiver.desktop": usage of MIME type "multipart/x-zip" is discouraged ("multipart" is a media type that probably does not make sense in this context)
i suggest to remove it
Hi.
I'd like to have this option already available for KDE's Ark added to Xarchiver. You never know whether an archive has a subfolder inside or a bunch of files without checking its content first.
Thanks in advance.
Can't run the archiver executable: child process execution «/usr/bin/unzip» (argument list too long)
I suggest to revert commit bb5fce0 as these files are auto-generated, and no need to be tracked in git. Instead of that, if you want to provide configure script for the users, then I recommend make a package for each release with "make dist", create a new release on GitHub, and upload the package. This is the way how other projects do this.
I'll announce here msgid
message strings new to the next version of xarchiver which need to be translated prior to the release.
If you can translate any of them and would like to contribute, just leave a comment with your translation (and language code).
If you would like to complete an existing but incomplete translation, get the respective language file, translate as much as you can and attach the result to a comment here.
Any help is appreciated.
Previous contributors: @micrococo (es), @welaq (lt).
Trying to extract a zip with xarchiver I received an error message:
xarchiver 0.5.4.17
An error occurred while accessing the archive:
/bin/tar: This does not look like a tar archive
/bin/tar: Skipping to next header
/bin/tar: Exiting with failure status due to previous errors
But the zip file extracts correctly with unzip:
unzip crucial-m4-070h-07-00.zip
The Crucial SSD firmware update extracts to:
crucial-m4-070h-07-00.iso
http://www.crucial.com/wcsstore/CrucialSAS/firmware/m4/070H/crucial-m4-070h-07-00.zip
Bill
Santa Cruz CA
Hi.
When you open the Preferences dialog, there is no option selected in the left side list. In addition, the current options panel displayed is the third one (Advanced), not the first one. I think that the first options panel should be the default selected and the item in the list should be highlighted too.
Greetings.
It would be very comfortable :)
This happens on xarchiver-gtk2-0.5.4.13-1-x86_64 and didn't happen on xarchiver-gtk2-0.5.4.12-1-x86_64, the issue disappeared after I downgraded back to 0.5.4.12-1.
I open a .jar file in Xarchiver and drag and drop a file into it, overwriting an old file of the same name. Then I press "Up" a few times to navigate into a different subfolder, however what happens is that I cannot access any folder from the main window anymore. I can go back, forward, up and to root, but doubleclick or pressing Enter on a folder in the main window does nothing. If I close the current archive and open it again, I can navigate it as normal until I update it again.
@ib,
I’m afraid that both links to latest stable (either https://github.com/ib/xarchiver/archive/xarchiver-0.5.4.8.zip or https://github.com/ib/xarchiver/archive/xarchiver-0.5.4.8.tar.gz) download xarchiver-xarchiver-0.5.4.8.zip
or xarchiver-xarchiver-0.5.4.8.tar.gz
.
At least the second file contains a xarchiver-xarchiver-0.5.4.8
directory.
Just in case it helps.
To fix this issue, add in string_utils.c:
gchar *xa_remove_level_from_path (const gchar *path)
{
gchar *local_path;
gchar *_local_path;
if (!path) return NULL; //prevents crash if path is null
if (path[strlen(path)-1] == '/')
{
_local_path = g_strndup(path,(unsigned)strlen(path)-1);
local_path = g_path_get_dirname(_local_path);
g_free(_local_path);
}
else
local_path = g_path_get_dirname(path);
return local_path;
}
But why is path NULL when dnd to desktop?
Hi.
With cpio 2.11 (default on openSUSE Leap 42.3) Xarchiver fails to extract rpm files. cpio 2.12 is fine (default on openSUSE Tumbleweed). The error message is:
/usr/bin/cpio: invalid option -- 'D'
Try 'cpio --help' or 'cpio --usage' for more information.
Greetings.
I.e. every archive is opened in a different window
As the description says, I can't open any archives that have a hash sign in them. I assume it's calling a script that is seeing them as comment markers.
Say I have to extract a big folder from an archive.
I drag and drop this from inside the thing to thunar window...
*nothing happens*
After awhile the extracted folder finally appears, once finished.
But in the meantime there's no way to realize xarchiver is even doing something (except maybe indirectly checking cpu usage - or repeating the action and being told that's already underway)
In version 0.5.4.13 the add and extract icons are missing from the interface for me. Only small dots appear, though these are clickable. Occurs in gtk3 and gtk2 versions. Changing icon themes (or icon sizes) does not seem to affect it.
Reverting this commit restores add and extract icons: b19a332
Xarchiver crashes if you click any file/folder in "Archive tree" while it's loading a second tarball.
In my case I opened one linux kernel tarball, opened a different linux tarball and while the second is loading I clicked on a folder in the Archive tree menu.
You can see some debug information here: https://gist.github.com/daniloegea/7800ec456a59f8b5ac89e85125973910
I opened two files, linux-4.17.tar.xz and linux-4.16.13.tar.xz. The archive struct has information about both for some reason. Lines 116 and 119.
I'm using FreeBSD.
Settings are not saved after xarchiver restarting in my 0.5.4.13 environment.
Hi,
Sometimes i do click through subdirectories in xarchiver and get confused about missing files.
I click through every directory in the tree view, and, my files are missing!
Of course... it's not possible to click "root" or "top" in the tree view to get a top-level directory...
Regards
mappu
As a lot of distros and repositories still make xarchiver from its old place i.e. http://xarchiver.sourceforge.net/
please take over the project there and synchronize both places. The former developer has already declared that he is looking for a substitute: https://sourceforge.net/p/xarchiver/bugs/93/
Regards
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.