File-Unpack2

 view release on metacpan or  search on metacpan

Changes  view on Meta::CPAN

	- 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'

Changes  view on Meta::CPAN

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 Unpack2.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.

Changes  view on Meta::CPAN

	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

TODO  view on Meta::CPAN

				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_unpack2 -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, 

TODO  view on Meta::CPAN

# 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 0.481 second using v1.01-cache-2.11-cpan-49f99fa48dc )