File-Unpack
view release on metacpan or search on metacpan
- Semantics change of file_unpack.pl:
Default to one_shot unless $0 contains 'deep'. New --deep option to also switch this one.
This is a move towards least surprise. No other unpacker has this deep feature.
- Fixed builtin helper for application=x-lzip to conform to IPC::Run::run() semantics.
- Added an example how to write a mime helper script to the documentation.
- Fixed diagnostics in case a helper script fails.
- Several smallish doku improvements.
- Updated test suite to accept encoding 'unknown' as a synonym to 'binary'.
0.66 jw Mon Jan 27 18:57:16 CET 2014
- harmful filename test removed, fixing bnc#860561.
The name may not match, when symlinking back. Readlink is the only thing that counts.
- _run_mime_helper() now returns diagnostics even when 'successful' so that we
can see reasoning for 'passed'.
- added t/08-survive-corrupt.t to define behavoiur for good10.pdf and bad34.pdf
- registered the two new test files with t/02-mime.t and t/07-cmdline.t
0.65 jw Tue Aug 6 11:23:43 CEST 2013
- CPAN no longer fails with 'Using $< in a non-suffix rule context is
a GNUmake idiom'
0.62 jw Tue May 7 20:04:15 CEST 2013
- support mac pax files. They are gzipped cpio:
'ASCII cpio archive (pre-SVR4 or odc)' and are reported by flm
as application/octet-stream.
(0.61 had a defunct testsuite)
0.60 jw, Mon Apr 29 16:22:33 CEST 2013
- report text/x-application-xml instead of application/xml
0.59 jw, Tue Mar 26 22:53:51 CET 2013
- helping upx to survive symlinks. "%{lsrc}s" format added.
- POD fixes from from anirvan/patch-1
- application/msword helper added. Using antiword.
- helper diagnostics improved: first line of stderr is captured in
the log.
- {verbose} control improved.
0.58 jw, Fri Feb 8 11:15:33 CET 2013
- bugfix: {inside_archives} was not decremented after leaving an
archive.
0.57 jw, Thu Feb 7 19:01:36 CET 2013
- fixed -f to really allow crawling symlinks.
* the logfile will contain the link name, not the link target.
* it thus preserves the illusion that all is inside the destination
tree.
- The following command can now be used to recreate the logfile (and
retry more unpacking) in $DIR:
file_unpack -D $DIR -f -L $DIR.unpack.log $DIR
- _run_mime_helper(): cleanup $jail_base added when cmd fails to run.
Helper failure may still may result in missing files.
- t/07-cmdline.t added.
0.56 jw, Tue Feb 5 18:58:06 CET 2013
- guard _my_shell_quote against undef.
- no 'running as root warning' when !{verbose}
- Relax testsuite on test.mht
- relax DESTROY to not start a logfile, when none is requested.
- testsuite really silent now.
0.55 jw, Fri Jan 25 22:09:04 CET 2013
- option --follow-file-symlinks or new(follow_file_symlinks => $yes) added;
where $yes is 0, 1, or 2.
We may want to use '1', if we are e.g. inside a legaldb_unpacked
tree, where everything is a symlink. This usage is experimental.
A value of '2' is hideous and requires studying perldoc Unpack.pm
first.
- tracking $self->{inside_archives} added. Also experimental.
0.54 jw, Fri Mar 9 17:13:48 CET 2012
- no longer add special files like fifos, sockets, dev nodes to the logfile.
- loggable_pathname adds {srcdir => 'input'} if path is in
$self->{input}
0.53 jw, Thu Feb 16 22:26:06 UTC 2012
- new parameter -A and new(archive_name_as_dir=>1) added.
- new(log_type => 'PLAIN') added, used unless -L
0.52 jw, Wed Feb 1 00:35:47 UTC 2012
- logfile: input menitoned on 'passed' items.
- Makefile.PL now actually installs file_unpack (rt#73670).
Man page is a hack. Sorry.
- file_unpack can now unpack multiple archives on the command line.
- helper/handler wording now consistently speaks of helpers.
0.51 jw, Wed Jan 25 20:23:22 CET 2012
- input archives that do not exist in destdir (because they were
unpacked)
now show up in the log prefixed with './input/./' unless fullpath.
- added loggable_pathname()
0.50 jw, Tue Jan 24 18:43:01 CET 2012
- made testsuite survive on SLE11_SP1, put IO::Handle::tell() inside
eval to survive SLES11_SP1
0.49 jw, Mon Jan 23 19:12:44 CET 2012
- made survive ntop, in{file} must not modify, so that reopen inside
mime() works.
0.48 jw, Tue Nov 29 11:23:30 UTC 2011
- fixed Use of qw(...) as parentheses. This is deprecated with newer
perl.
0.47 jw, Wed Oct 5 00:58:11 CEST 2011
- fixed rt#70885, new(logfile => \$log); now works as advertised.
- somewhat experimental code: we now assert there is no utf8 in the log.
Minor cleanup.
0.36 removed dependency on lsof, in favour of /proc and builtin
_children_fuser(). tick-tick now shows the percentage of the fastest
moving fd.
0.35 tick-tick now shows file offsets via crude lsof.
tested with gcc-ejc, parsing lsof output with $u->run() during
$u->run(). Yeah!
0.34 jw, Thu Mar 24 09:24:42 CET 2011
Libmagic perl module explodes with malformed utf8, assert LC_ALL=C.
0.33 jw, Fri Mar 11 18:04:09 CET 2011
run() untaint argv0. needed for running helpers under -T
Empty file is text/x-empty now. not application/x-empty.
0.32 jw, Thu Mar 10 01:52:53 CET 2011
Fixed setlimit code, to be more robust.
Fixed logfile JSON syntax, with a dummy Element in the epilog.
Added 06-logfile.t to test the logfile syntax.
0.31 jw, Wed Mar 9 00:01:50 CET 2011
Added list() method.
Spellchecked pod.
0.30 jw, Fri Nov 19 19:13:53 CET 2010
Run through perlcritic.
Switch back to gz to help smoke testers
(walde.christian@googlemail.com)
0.29 jw, Tue Dec 14 23:19:02 CET 2010
Mention /usr/bin/file_unpack in perldoc
0.28 jw, Fri Oct 22 14:29:09 CEST 2010
Look only at files and dirs, ignore special files.
Reading a pipe could block us endlessly.
0.27 jw, Sat Sep 11 22:01:49 CEST 2010
new feature in mime(): attempt full file access
not only if flm reports currupt, but also when it reports
a/octet-stream. this helps to recognize a/x-iso9660-image
jw, Mon 2. Dez 00:24:27 CET 2013
Implement least surprise:
Option -1 should be default.
A new option -r should make it recursive.
jw, Tue Jun 18 15:09:19 CEST 2013
Feature: support *.phar files. Example: install-pear-nozlib.phar from package php5.
This example wants write access to /usr/share/php5/PEAR/*
No idea... (Forget fakeroot. It fakes a root user, not a root filesystem)
jw, Thu Mar 14 19:51:33 CET 2013
file_unpack -L logfile.log .
would list the logfile within itself. Avoid this!
jw, Thu Jan 24 11:39:37 CET 2013
According to: https://rt.cpan.org/Ticket/Display.html?id=73670#txn-1039064
With multipart rar archives we extract the same thing multiple times.
A test archive can be created with: rar a -v10M test.rar *.webm
Ideas:
- post process the result tree, and see if there are multiple indentical
(colliding!) subtrees. That would be quite generic, but not so efficient.
- preprocess the input files, so that an ignore list prevents us from
touching the other parts again. This would need rar specific code, which I
am not so happy about. Maybe call rar in a tv mode first, and learn from there,
# we truncate at the , or ;
#
# If $fname ends in '|' we assume it is a command like 'gzip -dc file.gz|'
#
# vim-7.0-extra.tar.bz2/vim70/csdpmi4b.zip~ldig/BIN/CWSDPMI.DOC
# is a text file, but file says: application/x-shockwave-flash
# vim70/runtime/macros/maze/poster: message/news\0118bit
#
# FIXME: DELTA rpms have DLT3 magic after unrpm. How do we handle this?
jw, Wed Dec 15 20:31:41 CET 2010
Browse through this list of formats
http://legroom.net/software/uniextract#formats
and see what we can do.
jw, Wed Nov 24 18:15:15 CET 2010
unshield
--------
try unshield for .cab files that do not extract with cabextract.
Those would be Installshield CAB files rather than Microsoft CAB files.
jw, 2010-09-26 20:21
How to decode Metamail contents?
================================
( run in 1.082 second using v1.01-cache-2.11-cpan-49f99fa48dc )