Commit Graph

27 Commits

Author SHA1 Message Date
David Oberhollenzer 80f298de55 Always quote files when producing a listing
Signed-off-by: David Oberhollenzer <goliath@infraroot.at>
2019-07-17 18:13:29 +02:00
David Oberhollenzer 4a7b1d3b3c cleanup: move package dependency management to libpkg.a
Signed-off-by: David Oberhollenzer <goliath@infraroot.at>
2019-07-17 12:45:23 +02:00
David Oberhollenzer a632656a60 cleanup: remove compressor block processing functions
Signed-off-by: David Oberhollenzer <goliath@infraroot.at>
2019-07-17 12:34:14 +02:00
David Oberhollenzer f426e4ef91 Remove pkg2sqfs
Rewritten and moved to a seperate project.

Signed-off-by: David Oberhollenzer <goliath@infraroot.at>
2019-06-09 02:18:27 +02:00
David Oberhollenzer 5df2d5f730 Remove squashfs pseudo file listing generator
We no longer need this, since we can now produce our own squashfs images
directly from package files.

Signed-off-by: David Oberhollenzer <goliath@infraroot.at>
2019-04-28 16:04:54 +02:00
David Oberhollenzer ed6841ed17 fix: flush SquashFS meta block if *exactely* filled
Otherwise we can get really funky corner cases where an inode offset is
indicated as just 1 byte after the end of a block. The unsquashfs program
doesn't complain but the kernel implementation really doesn't like that.

Signed-off-by: David Oberhollenzer <goliath@infraroot.at>
2019-04-23 13:54:17 +02:00
David Oberhollenzer 7a70868fcd cleanup: move generic squashfs code to library
Signed-off-by: David Oberhollenzer <goliath@infraroot.at>
2019-04-23 12:36:12 +02:00
David Oberhollenzer 00db5541e9 file list sort: remove duplicate directory entries
Can happen when merging multiple packages. But make sure they actually
are duplicates.

Signed-off-by: David Oberhollenzer <goliath@infraroot.at>
2019-04-18 14:08:43 +02:00
David Oberhollenzer 96d4d353d4 Remove unnecessary flush from unpacking loop
The uncompressor will know when end of file is reached. Flushing
prematurely won't help. Especially the way the loop was constructed,
using an external buffer that is a lot larger than the internal
buffer of the compressor will cause multiple erroneous flushes.

Signed-off-by: David Oberhollenzer <goliath@infraroot.at>
2019-04-18 14:08:43 +02:00
David Oberhollenzer 214a5e917e Add a way to pass options to compressors
Currently only used by lzma compressor to set the dictionary size.

Signed-off-by: David Oberhollenzer <goliath@infraroot.at>
2019-04-18 14:08:03 +02:00
David Oberhollenzer 26b3683f7a Add block processing function to compressors
Signed-off-by: David Oberhollenzer <goliath@infraroot.at>
2019-04-18 14:08:02 +02:00
David Oberhollenzer cd79a4fccf make file list sorting more robust
If entries are sorted by length and some have the same length, sort
them asciibetically.

Signed-off-by: David Oberhollenzer <goliath@infraroot.at>
2019-04-17 16:30:01 +02:00
David Oberhollenzer c78dc2255f pkg reader: try to read *entire* requested chunk
Signed-off-by: David Oberhollenzer <goliath@infraroot.at>
2019-04-09 16:02:31 +02:00
David Oberhollenzer 6cfd9a37bf Move all the package I/O code to libpkg library
Signed-off-by: David Oberhollenzer <goliath@infraroot.at>
2019-04-05 12:33:50 +02:00
David Oberhollenzer 1205ca0f3b Move compressors to utility library
- Remove compressor registration interface. Doesn't work in a static
   library, since all the files containing no exported members are
   optimized away at link time.
 - Repack as seperate utility library.

Signed-off-by: David Oberhollenzer <goliath@infraroot.at>
2019-04-05 12:22:47 +02:00
David Oberhollenzer 20aea96396 Add license
Signed-off-by: David Oberhollenzer <goliath@infraroot.at>
2019-03-08 18:18:31 +01:00
David Oberhollenzer 4a682b83f1 cleanup: reimplement process_file using foreach_line_in_file
Signed-off-by: David Oberhollenzer <goliath@infraroot.at>
2019-03-08 17:32:59 +01:00
David Oberhollenzer b688a39149 cleanup: move input file open/close into process_file function
Signed-off-by: David Oberhollenzer <goliath@infraroot.at>
2019-03-08 17:32:59 +01:00
David Oberhollenzer f7e4aec2ea Add utility function to iterate over lines in a file
Signed-off-by: David Oberhollenzer <goliath@infraroot.at>
2019-03-08 17:32:59 +01:00
David Oberhollenzer 6dd9ae94bd Add simple hash table implementation
Signed-off-by: David Oberhollenzer <goliath@infraroot.at>
2019-03-08 00:28:41 +01:00
David Oberhollenzer d55ee9bd72 Add a toc format that is also valid input for `pkg pack`
Signed-off-by: David Oberhollenzer <goliath@infraroot.at>
2019-02-04 18:52:11 +01:00
David Oberhollenzer 27c802fed0 Cleanup/fix order of toc entries
- Make sure we always sort the list when reading it from a package
 - Cleanup and clarify order of elements

Signed-off-by: David Oberhollenzer <goliath@infraroot.at>
2019-02-04 18:08:32 +01:00
David Oberhollenzer 16bf7172fe Add support for device special files in packages
Signed-off-by: David Oberhollenzer <goliath@infraroot.at>
2019-02-04 17:57:10 +01:00
David Oberhollenzer deb7bb0d4e Cleanup automakefile structure
Signed-off-by: David Oberhollenzer <goliath@infraroot.at>
2019-02-04 15:51:55 +01:00
David Oberhollenzer 6a80140c59 Move abstract file list handling code to seperate utility library
Signed-off-by: David Oberhollenzer <goliath@infraroot.at>
2019-02-04 15:39:43 +01:00
David Oberhollenzer 4d8b8f52d5 Split utility code up into translation-unit per function
Signed-off-by: David Oberhollenzer <goliath@infraroot.at>
2019-02-04 15:29:16 +01:00
David Oberhollenzer 16f3e4d97c Move utility source code to libuitil.a
Signed-off-by: David Oberhollenzer <goliath@infraroot.at>
2019-02-04 15:26:31 +01:00