aonez / Keka

The macOS & iOS file archiver
https://www.keka.io
4.71k stars 236 forks source link

RAR Archiving Support #123

Open COOLIRON2311 opened 6 years ago

COOLIRON2311 commented 6 years ago

At the moment with sandbox requirement and limitations RAR compression is not officially supported. You can 👉 un-sandbox Keka and run it with RAR support, however.

Original issue

It is well known that RAR is not free. But I know that it is possible to make Keka use terminal version of RAR for it. Like in BetterZip:

2017-12-11 20 47 28

"BetterZip can use additional application for creating RAR formatted archives (for example, it can be obtained at win.rar GmbH)."

Anyway, I use Keka a lot and hope for its future development!

aonez commented 6 years ago

I’m glad I can point you here: https://github.com/aonez/Keka/wiki/Rar-compression

Try the latest beta and let me know how it goes :)

COOLIRON2311 commented 6 years ago

@aonez Everything works fine. Except for RAR icons. Somehow they disappeared º_º

aonez commented 6 years ago

Except for RAR icons. Somehow they disappeared º_º

Yep, this has to do with #92... Not sure why yet :(

aonez commented 6 years ago

Since sandbox is coming, this should be fixed again. Latest version working with RAR compression is 1.1.0-rc.1, later versions of 1.1.0 won't have compression support. Moving this to 1.2.0.

aonez commented 6 years ago

@gingerbeardman responding to https://github.com/aonez/Keka/issues/247#issuecomment-413156122:

So, could we use https://github.com/aonez/Keka/wiki/Default-application to manage the RAR compression? With inter-app communication?

Sadly communication between apps while sandboxed is very limited, monitoring the RAR operation will be very hacky using this method.

Or have RAR compression support only in non-MAS version of Keka?

The WEB version is also sandboxed, so it suffers the same issue.

And following https://github.com/aonez/Keka/issues/247#issuecomment-413158761:

Also, it seems the helper app can be distributed inside of the main app? I use Context Menu, which does this for its helper so it can run things outside of sandbox...

I'll love to check that application 👍

aonez commented 5 years ago

@gingerbeardman just tested Context Menu, and it uses Automator workflows to elude sandbox. This is very interesting, not sure if it's useful for Keka, but it surprised me that a sandboxed app can launch commands outside the sandbox with this trick.

aonez commented 5 years ago

By the way, another app from the Context Menu developer seems like The Unarchiver for me...

gingerbeardman commented 5 years ago

the app in the previous comment is no longer available in the UK store 😮

aonez commented 5 years ago

@gingerbeardman not surprising...

ExperiBass commented 5 years ago

Not available in the US store either

TCB13 commented 5 years ago

Can't we already get an un-sandbox version as Archiver did here https://github.com/aonez/Keka/issues/295 ? Or a path bar as BetterZip does?

Sorry for bothering you again about this @aonez .

aonez commented 5 years ago

@TCB13 not that I recommend that, but you can un-sandbox Keka yourself. Just create an entitlements file setting off the sandbox, and code-sign Keka with that file.

codesign -f -s "Signature" --entitlements "custom.entitlements" "/Applications/Keka.app"

Replace the Signature with your certificate name. You can create one if needed using the Keychain or also use none doing -s -. The entitlements XML should contain something like this:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>com.apple.security.app-sandbox</key>
    <false/>
</dict>
</plist>

This only works for the WEB version.

gingerbeardman commented 4 years ago

An alternative is to use RAR-Archive Utility.app (10-years-old and unmaintained)

I just built a 64-bit version of it: https://github.com/gingerbeardman/RAR-Archive-Utility/releases/tag/64-bit