-
Notifications
You must be signed in to change notification settings - Fork 2
/
ChangeLog
141 lines (126 loc) · 8.76 KB
/
ChangeLog
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
Version 0.2.99.0
- Complete rewrite in Python to make unball more extensible, maintainable, and flexible.
- Addition of a fallback system for extractors. (Unit tests still being updated to test fallbacks as well as the first available choice)
- Experimental built-in extractors for Zip, Tar, BZip2, GZip, UUEncode, Base64, and BinHex.
- Temporary directories are now created in the target so extraction completion doesn't risk an inter-partition copy operation.
- Elusive tr-related filename-handling bug fixed by Python rewrite
- Cleanup routines made more resilient using try/finally and subprocess.Popen (most of the original unball in three or four lines)
- Switched stdin for subprocesses over to an internal /bin/yes clone. (Safer than feeding /dev/urandom to unace and less prone to subprocesses stopping for input)
- Proper handling of Ctrl+C in unball and all signals in subprocesses. (Other signals within unball still to be tested)
- Full, test-verified support and preferential use of unzoo for extracting .zoo archives.
- Python rewrite should fix portability issues with BSD-based userland tools but not yet tested.
- Beginnings of a plan to rework unball's internals for use as an extraction library for arbitrary Python programs.
- Noticed that COPYING had been emptied somewhere along the way. Re-downloaded the GPL 2.0.
- Now continuous integration tested by Travis-CI.
Version 0.2.11
- Started bundling unzoo.c for the benefit of x86_64/IA64 users. Unfortunately, actual support didn't make it in.
- Added support for extension-based recognition of UMOD, BioZip, Uz2, and Dzip files. (Extraction support still pending)
- Oops! Looks like I accidentally wiped the contents of the Konqueror ServiceMenu definition before releasing 0.2.10. Fixed!
- Added a message for GCF files.
- Fixed the header detection so it gets priority.
Version 0.2.10
- Moved ChangeLog to it's own file and clarified a few things.
- Added an easy-install script and ebuild. (will handle Konqueror/Nautilus/Thunar integration)
- Added a moveToZip script for easily converting folders that were created by unballing RAR and ACE files.
- Added support for --version and altered unball to play nice with help2man (which install.sh will try)
- Began working on the internal changes needed for recursive support.
- Format Support:
- Added untested support for ADF, ADZ, ALZ, and DMS files.
- Added support for the macunpack utility as an alternative to unstuff for extracting MacBinary.
- Added support for unpacking bzip2-compressed zip files using p7zip.
- Added support for the "unace-bin" binary from Gentoo Linux's Sunrise overlay as an ACE extractor.
- Bug Fixes:
- Confirmed that 0.2.9 emptied the old list of known bugs.
- Got rid of the meaningless "realpath not found errors" from richiefrich's pastebin dump.
- Fixed header detection for a few formats.
- Fixed support for extensionless archives with --samedir
- Made sure unball returns a nonzero exit code on error
- Found and fixed a bug where extracting single-file/folder archives which
preserved the name of the files inside (eg. a single-file zip or rar) would
discard the preserved name of the contents, overwriting it with the name of
the archive, sans extension.
- Fixed a previously unknown problem where lzop would refuse to extract if stdin, stdout, or stderr were
closed. (which is true when unball is called from Konqueror)
- Fixed support for ACE archives (again, but I think I finally got it)
- Improved the automated handling of RAR archives. (eg. ensured it won't freeze on passworded archives)
- Removed a superfluous sorted() call that prevented the unit tests from working under Python 2.3.
- Removed the need for `egrep -o` for --samedir (should fix it for MacOS X 10.3)
- Unit Tests:
- Added an option parser to the unit test system for more flexibility.
- Added a pre-test to ensure that unball is visible from the PATH.
- Added unit tests for the header-based format detection.
- Pruned out some duplicate tests and added tests for Windows zip, rar, and 7-zip self-extractors.
- Added unit tests for -D and immediately caught a bug. (ignoring the first argument)
- Made sure that every unit test doubles as a test of space handling in paths since that's a common
source of bugs in bash scripting when compared to languages like Perl, PHP, and Python.
- Added a unit test to ensure the correct number of files are extracted when testing all formats which
don't currently have a special internal layout. (currently everything except j/jar/ear/war files)
- Added an ignore for ".svn" inside the test sources directory.
- Added tests for .Z, .tar.Z, .taz, and .tz (as well as the appropriate header detection)
- Cleaned up the unit test output on failure (Disconnected unball's stderr from the console)
- Altered the tests so they close stdin, stdout, and stderr like Konqueror does
- Fixed the mscompress test so it doesn't give a false failure.
- Added a test for extensionless archives
- Added support for testoob with a fallback to the regular pyunit framework.
Version 0.2.9
- Added support for unball being sourced via a `source unball --source` command
in preparation for my automated RAR/ACE/CBR/EXE-to-Zip converter.
- Added support for base64 encoded files with a .b64 extension.
- Fixed an "always extracts to the source dir" bug I hadn't noticed.
- Wrote some Python-based unit tests and cleaned out a bunch of other annoyances.
Version 0.2.8
- Fixed handling of ACE archives in most cases. The unace binary is unpredictable.
- Fixed compatibility with systems that don't install bash in /bin
- Switched from sed-based extension removal to internal bash functions.
Version 0.2.7
- Added recognition of PackIt (.pit) and Compact Pro archives (.cpt), MacOS Disk Images (.dmg),
PAQ6 (.pq6), GCA, DGCA (.dgc), ZZip (.zz), and DAR archives, Microsoft Installers (.msi),
BlakHole (.bh) archives, WinRK (.rk) archives, and PartImage (.partimg) disk images.
- Added support for rzip-compressed (.rz) files.
- Added explicit support for CPIO files with .cp extensions, JAR files with .j extensions
Itsy Packages (renamed gzipped tarballs with specific contents), Python eggs (.egg)
- Added PC-BSD Installers (.pbi), MacOS X .pkg, and .mpkg files, and Ruby gems (.gem) to the TODO list.
Version 0.2.6
- Added support for yydecode
Version 0.2.5 changes:
- unball now silently skips common non-archives unless passed --verbose
- Fixed the message displayed when extracting CAB files.
- Added by-extension support for RSN (RAR containing SPC files) archives.
Version 0.2.4 changes:
- Fixed the "risk of deleting source if the 'strip extension to create target' process fails" bug.
Version 0.2.3 changes:
- Added the --samedir option.
Version 0.2.2 changes:
- Fixed a harmless bug causing the wrong message while unpacking .zip files
and forcing the use of the "check the headers" fallback for .cbz files.
- Added support for sfArk files and recognition of SFPack files.
Version 0.2.1 changes:
- Added more explicit (extension) and fallback (header) entries to the list of supported formats.
- Added some entries which will identify unsupported formats without unpacking them.
- Added recognition and messages for CloneCD and ISO9660 CD images.
- Corrected a TODO. "lha for UNIX" is now open source and hosted on SourceForge Japan.
- Added a more helpful failure message to the routine which attempts to extract self-extractors
without running them.
- unball will now exit with error code 2 if the target directory is not writeable.
Version 0.2.0 changes:
- Added support for .Z (UNIX compress) files. I'm surprised I forgot about them.
- Added support for several more "renamed zip file" formats
- There is now support for using the "file" command as a fallback if unball
doesn't recognize a file's extension. (This allows unball to unpack OpenOffice
and KOffice documents without needing an explicit entry for them.
Version 0.1.2 bugfixes:
- Now the old abspath() is just a fallback and it will try two proven path
canonicalization tools before resorting to my code.
Version 0.1.1 bugfixes:
- Works if the directory has spaces in the name (bug fixed in abspath())
- Actually obeys the target dir specified with --dir
Unball 0.1.0 enhancements over maitre's script as of version 1.0.0:
- Works with filenames containing spaces.
- Support for a great many more formats. (In fact, more formats than most people even know of)
- Ignores case when matching archive extensions to programs. (I can't find any reason not to)
- Creates containing folders as needed regardless of archive format and only when necessary.
(Much better than the old method)
- Silencing extraction tools is now centralized. (And adds support for --verbose)
- Code is much cleaner (once you compensate for it's greater complexity)
- Should work as a drop-in replacement for maitre's unball script.
- Some other stuff but I can't remember what it was.