Review Request: Add support for The Unarchiver command line utilities (unar/lsar) to operate on RARv3 files

Luke Shumaker lukeshu at sbcglobal.net
Mon Jun 20 23:21:42 CEST 2011


-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
http://svn.reviewboard.kde.org/r/6730/
-----------------------------------------------------------

Review request for kdeutils.


Summary
-------

This patch will allow Ark to use The Unarchiver command line utilities
(unar/lsar) to operate on RAR files, particularly RARv3.

Now, Ark selects which plugin to use based on MIME type, and the
X-KDE-Priority of the plugin.  Unfortunately, there is currently no
mechanism for a fallback, say one plugin doesn't work, to use
another.  So, for right now users wishing to use Ark with RAR files
must either choose between clirarplugin (which either uses unrar-free
or unrar-nonfree), and cliunarchiverplugin (which uses unar and lsar),
with Ark not being able to just detect which is installed.

To change the X-KDE-Priority, you just need to edit some .desktop
files.  In the source they are
`ark/plugins/*plugin/kerfuffle_*.desktop', which on many systems get
installed to `/usr/share/kde4/services/kerfuffle_*.desktop'. The
plugin with the highest priority is used. The clirarplugin has a
defualt priority of 120, I've given cliunarchiverplugin a priority of
150.  This is probably best set by the package maintainer of an OS;
for example, many systems will prefer unrar-nonfree, but I created
this with Parabola in mind, on which unrar-nonfree does not exist, and
this is the only way that RARv3 files will be opened.

Honestly though, this setup sucks, because unrar-free and unar/lsar
both have their own stengths (basically, unar/lsar suck, but
unrar-free doesn't work on RARv3), and the ideal setup would be to use
unrar-free in most cases, but to fall back to unar/lsar for RARv3
files that unrar-free can't handle.  Actually, I guess the ideal setup
would be to make unar/lsar suck less, or to add RARv3 to rar-free.

=== Known Bugs ===

The whole thing will bork (segfault?) if there is a file in the
archive contains a file with the filename
  "some regexp that nothing will ever _ever_ match"

The program should be able to look at which version of RAR the file
is, but currently doesn't.  (I mean just within lsar) This is simply
because I don't know which field to look at.

I'm pretty sure password protected files will do something weird and
not work.

Those last two bugs do could be easily fixed if people send me RAR
files to test this with; I can't create RARv3 files because I don't
have rar-nonfree.

=== Troubleshooting ===

If you have trouble applying the patch, try first running
$ mkdir ark/plugins/cliunarchiverplugin

=== ChangeLog ===

00 - Initial patch
01 - Enable clirar, but make cliunarchiver higher priority
02 - Reformat patch
03 - Reformat patch so that ReviewBoard recognizes it

Happy Hacking!
~ Luke Shumaker <LukeShu at sbcglobal.net>


Diffs
-----

  /trunk/KDE/kdeutils/ark/plugins/CMakeLists.txt 1237729 
  /trunk/KDE/kdeutils/ark/plugins/cliunarchiverplugin/CMakeLists.txt PRE-CREATION 
  /trunk/KDE/kdeutils/ark/plugins/cliunarchiverplugin/cliplugin.cpp PRE-CREATION 
  /trunk/KDE/kdeutils/ark/plugins/cliunarchiverplugin/kerfuffle_cliunarchiver.desktop PRE-CREATION 

Diff: http://svn.reviewboard.kde.org/r/6730/diff


Testing
-------


Thanks,

Luke

-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://mail.kde.org/pipermail/kde-utils-devel/attachments/20110620/584628b9/attachment.htm 


More information about the Kde-utils-devel mailing list