aonez / Keka

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

[REQ] Support for Stratus OpenVOS EVF archives #1150

Open vmlemon opened 2 years ago

vmlemon commented 2 years ago

Is your feature request related to a problem? Please describe

It may be useful, to support extracting Stratus OpenVOS EVF archives, to support data exchange, with systems running this OS. These archives aren't supported by Keka, or any UNIX utiity, at present.

Examples of these files, are available from Archive.org (the "save.evf.gz" files).

Describe the solution you'd like

It should be possible to extract files from these archives, to a directory, with a name matching the archive. OpenVOS-style paths (e.g. *%es#lang3>vos_ftp_site>pub>vos>tools>tcl74, or :%es#lang>vos_ftp_site>pub>vos>posix>alpha>posix>build1.out) should probably be translated to POSIX ones.

Describe alternatives you've considered

I have tried manually pulling files out of archives, using "strings", "photorec", and "binwalk", although this is not always reliable, as some files have non-obvious structures/headers/boundaries. A C implementation, for OpenVOS, which probably contains enough information, to understand the file format, is available, at https://archive.org/download/ftp-ftp_stratus_com/ftp.stratus.com.tar/ftp.stratus.com%2Fvos%2Futility%2Fevf-2.0.tar.gz.

Additional context

I am using Keka 1.2.13, on MacOS 12.4, on an ARM64-based system.

aonez commented 2 years ago

Do you know any Windows or Linux app that supports that format?

vmlemon commented 2 years ago

Do you know any Windows or Linux app that supports that format?

Nothing supports it, under Linux/Windows, to my knowledge, apart from the OpenVOS implementation. I had a look into trying to adapt that implementation, a few years ago, to the seemingly-abandoned "unar", and gave up, since I'm unfamiliar with Objective-C.

Cognitum commented 1 year ago

I've done some work on an EVF extractor before. Main problem I see with it is that it could only support stream files - indexed or sequential files assume semantics not present on Unix filesystems, which really reduces the usefulness. (To a certain degree, being able to flatten those record semantics down to a flat byte-oriented container is why the EVF format exists in the first place!)