Commit graph

74 commits

Author SHA1 Message Date
Moinak Ghosh
1db822d866 Add Dispack file-level filter in the libarchive chain.
Add new file type for Win32-PE executables (Dispack).
Reset file type flag after filter processing for better compression.
Fix array index handling for file type list.
2014-12-20 11:24:09 +05:30
Moinak Ghosh
29b5efc988 Add couple of mozilla file extensions.
Check for files > INT64_T when sorting.
Makefile targets to help development.
2014-11-15 19:17:33 +05:30
Moinak Ghosh
ffa7f9cff8 Evict libiconv for Linux plaforms. 2014-11-03 21:14:23 +05:30
Moinak Ghosh
e7081eb5a3 Git commit - rehash. Incorrect earlier commit.
Implement Separate metadata stream.
Fix blatant wrong check in Bzip2 compressor.
Implement E8E9 filter fallback in Dispack.
Improve dict buffer size checks.
Reduce thread count to control memory usage in archive mode.
2014-10-24 23:30:40 +05:30
Moinak Ghosh
071a9e2b26 Update,simplify analyzer function to indicate text data for Dict filter.
Fix archive header writing bug.
Strip ^M chars from dict filter files.
Include DICT preprocessing type.
Fix a bunch of bugs found by Xcode.
2014-09-20 12:49:00 +05:30
Moinak Ghosh
4fedebc607 Dict filter work in progress. 2014-09-18 22:51:25 +05:30
Moinak Ghosh
fd087a8949 Step 0 of adding WavPack filter - does not work yet.
WAV file detection.
Rename libarchive dir to be generic.
2014-09-14 23:56:38 +05:30
Moinak Ghosh
9ecbbbafd0 Pull in private copy of libarchive to add pcmpress-specific functionality.
First step to add packPNM support.
2014-09-11 18:34:43 +05:30
Moinak Ghosh
10f40e1c6f Part 1 changes to allow dual licensing to MPLV2.
Make external LGPL code/features disabled in MPLV2 variant.
Nuke some unwanted whitespace (cstyle).
2014-07-24 22:20:30 +05:30
Moinak Ghosh
0433452b37 Miscellaneous refactoring.
Add some headers for OSX.
2014-05-24 23:52:30 +05:30
Moinak Ghosh
a6676698fa Configurable optimization level for libbsc. 2014-05-09 22:58:51 +05:30
Moinak Ghosh
63509327e4 Tweak optimization flags for libbsc.
Reduce max opt level on OS X to avoid crashes due to Gcc code generation quirks.
2014-05-09 22:53:47 +05:30
Moinak Ghosh
7055a8fc71 Add AVX detection and usage of -mavx[2] flags.
Force GCC to use Clang assembler always on MAC OS X for AVX support.
2014-05-04 22:03:40 +05:30
Moinak Ghosh
7830473c65 Avoid cleaning buildtmp for make clean. Causes subsequent make to fail. 2014-05-04 19:55:01 +05:30
Moinak Ghosh
9cbdd7ce8c Fix Libbsc and dynamic lib builds. 2014-05-04 14:45:07 +05:30
Moinak Ghosh
4a9cd8c48e More portability tweaks.
Fix compiler warnings.
2014-05-04 13:32:11 +05:30
Moinak Ghosh
4b037f0ed7 More portability tweaks. 2014-05-04 11:54:33 +05:30
Moinak Ghosh
f2da433188 More portability tweaks.
Handle platform specific yasm parameters.
Resolve namespace conflict on OSX.
Do not build Skein ASM code on OSX.
2014-04-30 22:46:24 +05:30
Moinak Ghosh
8b52f7ccb8 Some initial tidbits for the start of an OSX/Windows port. 2014-04-26 23:05:14 +05:30
Moinak Ghosh
f22a80f5e2 Really fix issue #12. 2013-12-28 21:49:55 +05:30
Moinak Ghosh
733e6f8245 Do not use Libbsc for TIFFs. Not all TIFFs compress well with Libbsc.
Fix DEBUG-STATS build for Dispack.
2013-12-06 22:53:41 +05:30
Moinak Ghosh
36ed5d5a78 Use adapt2 as default compression in archive mode.
Add more filter auto-selection by compression level in archive mode.
Replace odd stride lengths in Delta2 with standard numeric type lengths and improve performance.
2013-12-05 22:20:01 +05:30
Moinak Ghosh
fb25e53b4f Add forked and optimized copy of LGPL version of Libbsc.
Strip out Sort Transform from Libbsc copy.
Reduce Libbsc memory use.
Avoid redundant adler32 of data block in Libbsc.
2013-11-30 22:13:33 +05:30
Moinak Ghosh
306f145f22 Use libbsc/ppmd for BMP files.
Fix extension based hashing.
Do not append .pz extension to filenames already having it.
Some code formatting changes.
2013-11-28 22:42:51 +05:30
Moinak Ghosh
bd530e3393 Get rid of nagging warning. 2013-11-26 21:43:17 +05:30
Moinak Ghosh
0192790c02 Add Dispack filter with auto-detection of x86 executables in archive mode.
More elaborate magic header based detection of 32-bit and 64-bit x86 binaries.
Always use fast-mode LZ4 in Adaptive modes.
2013-11-24 19:45:58 +05:30
Moinak Ghosh
75dfa6a6fb Add basic framework for file type based filters during libarchive stage.
Add packJPG filter for Jpeg files (not active yet).
Directory format changes for clarity.
2013-11-10 23:09:42 +05:30
Moinak Ghosh
991482403b Add extension based file type detection and setting segment data type.
Use Bob Jenkins Minimal Perfect Hash to check for known extensions.
Use semaphore signaling and direct buffer copy for extraction.
Miscellaneous fixes.
2013-11-07 21:48:54 +05:30
Moinak Ghosh
7f81869874 Archiving support using Libarchive: Work in progress changes.
Change all perror() calls to use logger.
Make the config script a little verbose.
2013-10-20 23:54:27 +05:30
Moinak Ghosh
8c1f4ebe61 Add a simple log facility.
Refactor all printfs to use log facility.
2013-10-02 20:45:33 +05:30
Moinak Ghosh
fe18afbcf4 Use wrapper script to set paths when launching pcompress from build directory.
Use smaller max block size when doing global dedupe.
Fix init of executable name.
2013-08-07 22:03:52 +05:30
Moinak Ghosh
63370caee9 Remove an rpath entry meant for testing. 2013-06-03 21:28:20 +05:30
Moinak Ghosh
7743792018 Make default symbol visibility to hidden with explicit public visibility specified.
Add missing static scope to a few more places.
2013-06-03 20:51:00 +05:30
Moinak Ghosh
c859cf35d5 Make Pcompress functionality into a library - initial changes. 2013-06-02 20:54:33 +05:30
Moinak Ghosh
ddaa3b6b6d Drastic simplification of Min-heap code and resultant Delta speedup. 2013-05-25 17:34:38 +05:30
Moinak Ghosh
0cf94c308a Add a qsort variant optimized for integers and use in global dedupe.
Cleanup LZMA CRC64/32 declarations and add a header.
Fix heapq header.
2013-05-03 22:06:55 +05:30
Moinak Ghosh
50251107de Work in progress changes for Segmented Global Deduplication. 2013-04-09 22:23:51 +05:30
Moinak Ghosh
f8f23e5200 Major License text cleanup. 2013-03-07 20:26:48 +05:30
Moinak Ghosh
20250aa5dc Add XSalsa20 encryption algorithm from the NaCL library.
Include 128-bit key support based on the Salsa20 eSTREAM submission.
Allow variable-length nonces.
Use random bytes for initial nonce value.
Increase PBE hash rounds to 50000.
2013-03-04 21:56:07 +05:30
Moinak Ghosh
7a29c7be1e Change default encryption key length to 256 bits.
Add optional ability to change key length at runtime via cli option.
Include key length property in archive header.
Fix header HMAC to include salt, nonce and key length properties.
Retain backward compatibility to handle older format archives.
Fix compilation of AES ASM code.
2013-03-03 20:02:14 +05:30
Moinak Ghosh
72b23dac1a Add AES-NI optimized code derived from latest OpenSSL upstream.
Add AES instruction set detection.
Add missing license headers to a few files.
2013-02-25 19:23:51 +05:30
Moinak Ghosh
532cd2a941 Add Vector Permute AES from OpenSSL 1.0.1e. Remain compatible with older OpenSSL versions. 2013-02-24 23:52:34 +05:30
Moinak Ghosh
efe5232cdc Add compatibility to decode old-format parallel hashes created with version 1.2.
Bump archive version to 7 as parallel hashes are now merkle style hashes.
2013-02-24 20:05:16 +05:30
Moinak Ghosh
5f6217bb1f Add lookup and insert functionality for global index.
Make global dedupe code buildable.
2013-02-21 23:07:07 +05:30
Moinak Ghosh
468044d816 Add parallel versions of various checksums for single-segment, single-thread compression. 2013-01-27 23:47:55 +05:30
Moinak Ghosh
d08b5ea399 Add optimized BLAKE2 implementations with runtime detection of CPU capability (SSE/AVX).
Minor cleanups.
2013-01-26 15:39:10 +05:30
Moinak Ghosh
43af97042a Major changes to use Intel's optimized SHA512 code for SHA512 and SHA512/256.
Remove earlier SHA256 code which is slower than SHA512/256 (on 64-bit CPU).
Use HMAC from Alan Saddi's implementation for cleaner, faster code.
2013-01-25 22:55:55 +05:30
Moinak Ghosh
26bb137257 Changes for generalized runtime SSE/AVX/XOP detection.
Multi instruction set XXhash build with runtime selection.
Extend CPUID code to detect more instruction sets.
Add options for BLAKE2 hash.
Move GCC builtins into utils header.
Bump file format version number due to extended digest flags.
Add descriptions to digest list.
2013-01-25 00:10:12 +05:30
Moinak Ghosh
e9e3e1e632 Improve SSE version detection.
Add SSE4 detection.
Fix setting of some opt flags in Makefile.in.
2013-01-20 22:53:36 +05:30
Moinak Ghosh
a8fd60fb06 Fix issue #1 and issue #2.
Enable building with older openssl (at least 0.9.8e).
Add variants of missing functions in older openssl versions.
Allow proper linking with libraries in alternate locations and setting RUNPATH.
Increase hash rounds for nonce generation.
2013-01-05 00:16:15 +05:30