David Oberhollenzer
858779e42c
Add pkg2sqfs utility stub
...
The goal is to transform a package file to a squashfs image. The mksquashfs
utility is a PITA with all kinds of idiotic not-thought-through corner
cases (e.g. the way "pseudo file definitions" have been tacked on, the
inabillity to set UID/GID for / *AND* have files not owned by root, the
way xattrs are handled, .....).
It would be preferable to fix mksquashfs itself, but the source code itself
is a horrid, unmaintained garbage pile. Its easier to write a small utility
instead that can turn a pkg file into a squashfs image in a way that
propperly treats file permissions and ownership, and is deterministic
(i.e. reproducable).
The utility currently generates an uncompressed squashfs image that
unsquashfs can unpack, but the kernel refuses the mount. The exact
problem still needs to be determined.
Furthermore, compression has to be implemented and some cleanup shoul
be done.
Signed-off-by: David Oberhollenzer <goliath@infraroot.at>
2019-04-17 01:33:57 +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
aa6bbf2ef4
Move pkg-tool internal headers out of global include directory
...
Signed-off-by: David Oberhollenzer <goliath@infraroot.at>
2019-04-05 12:36:47 +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
63bad9786a
Release version 0.3
...
Signed-off-by: David Oberhollenzer <goliath@infraroot.at>
2019-03-31 13:39:21 +02:00
David Oberhollenzer
4d48e374d8
Add option to buildstrategy to produce a dot graph
...
Signed-off-by: David Oberhollenzer <goliath@infraroot.at>
2019-03-30 23:40:19 +01:00
David Oberhollenzer
52f7bdc5c8
minor cleanup
...
Signed-off-by: David Oberhollenzer <goliath@infraroot.at>
2019-03-30 18:31:40 +01:00
David Oberhollenzer
b7e81c081b
cleanup: split package provider code out of buildstrategy.c
...
Signed-off-by: David Oberhollenzer <goliath@infraroot.at>
2019-03-30 18:20:33 +01:00
David Oberhollenzer
46f340b20f
cleanup: split source package code out of buildstrategy.c
...
Signed-off-by: David Oberhollenzer <goliath@infraroot.at>
2019-03-30 17:57:34 +01:00
David Oberhollenzer
8a52ea6717
Allow multiple source packages to provide the same binary package
...
In build strategy, record a linked list of providers instead of just
one per binary package. Add an option to scan a preference list in
addition.
When looking up the provider and there is more than one, choose the
preferred one. Produce an error if none is given.
Signed-off-by: David Oberhollenzer <goliath@infraroot.at>
2019-03-29 23:55:12 +01:00
David Oberhollenzer
b2f1b5ef58
cleanup: buildstrategy
...
Split utility function to get a source package by name out from
handle provides.
Signed-off-by: David Oberhollenzer <goliath@infraroot.at>
2019-03-29 21:57:48 +01:00
David Oberhollenzer
48d74777e7
Fix buildstrategy command argument handlin
...
Signed-off-by: David Oberhollenzer <goliath@infraroot.at>
2019-03-29 21:54:08 +01:00
David Oberhollenzer
680b1bb7f9
Bump version number
...
Signed-off-by: David Oberhollenzer <goliath@infraroot.at>
2019-03-09 15:25:34 +01:00
David Oberhollenzer
db6c2118c4
Add missing colon to optarg listing flag
...
Signed-off-by: David Oberhollenzer <goliath@infraroot.at>
2019-03-09 15:25:34 +01:00
David Oberhollenzer
19e2f8aa8c
Fix file list removal of input line
...
Signed-off-by: David Oberhollenzer <goliath@infraroot.at>
2019-03-09 14:57:59 +01:00
David Oberhollenzer
bba2e4c536
Update e-mail address
...
Signed-off-by: David Oberhollenzer <goliath@infraroot.at>
2019-03-09 14:00:19 +01:00
David Oberhollenzer
d71366bbdd
Distribute LICENSE and README.md with source packages
...
Signed-off-by: David Oberhollenzer <goliath@infraroot.at>
2019-03-09 13:52:22 +01:00
David Oberhollenzer
e3edcea895
Add missing options to install documentation
...
Signed-off-by: David Oberhollenzer <goliath@infraroot.at>
2019-03-09 13:51:44 +01:00
David Oberhollenzer
88f4dd00d7
Add README file
...
Signed-off-by: David Oberhollenzer <goliath@infraroot.at>
2019-03-09 13:51:33 +01:00
David Oberhollenzer
1a84276bf6
Add writeup on package file structure
...
Signed-off-by: David Oberhollenzer <goliath@infraroot.at>
2019-03-09 12:31:16 +01:00
David Oberhollenzer
f11c9df330
Add a pkg command for producing a dependency graph
...
Signed-off-by: David Oberhollenzer <goliath@infraroot.at>
2019-03-09 00:56:32 +01:00
David Oberhollenzer
90667fbf8a
Move dependency graph handling out of install command
...
Signed-off-by: David Oberhollenzer <goliath@infraroot.at>
2019-03-09 00:23:06 +01:00
David Oberhollenzer
f038cc52b3
cleanup: merge listing & format flags for dump and install commands
...
Signed-off-by: David Oberhollenzer <goliath@infraroot.at>
2019-03-08 23:53:30 +01: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
af7c6f09df
Add buildstrategy command
...
Basically an improved port of the makeshift depgraph from the pygos build
system.
Signed-off-by: David Oberhollenzer <goliath@infraroot.at>
2019-03-08 00:39:05 +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
00c8946497
pack: deduce package name from input file name
...
Signed-off-by: David Oberhollenzer <goliath@infraroot.at>
2019-03-07 15:17:19 +01:00
David Oberhollenzer
55b2d2f0c0
Allow '+' characters in package names
...
Signed-off-by: David Oberhollenzer <goliath@infraroot.at>
2019-03-01 09:58:44 +01:00
David Oberhollenzer
82c888bcbf
install: make sure package dependencies have no trivial cycles
...
Signed-off-by: David Oberhollenzer <goliath@infraroot.at>
2019-02-21 15:11:32 +01:00
David Oberhollenzer
98b655f133
Cleanup: split sort_by_dependencies function up
...
Signed-off-by: David Oberhollenzer <goliath@infraroot.at>
2019-02-21 15:04:27 +01:00
David Oberhollenzer
f2627b8933
Add option to forcefully overwrite packages in pack command
...
Signed-off-by: David Oberhollenzer <goliath@infraroot.at>
2019-02-15 09:05:12 +01:00
David Oberhollenzer
4141e666b6
Move file compressors details from command line to desc file instead
...
Signed-off-by: David Oberhollenzer <goliath@infraroot.at>
2019-02-08 11:20:12 +01:00
David Oberhollenzer
95c7302d25
Allow empty packages, i.e. packages not containing any files
...
Signed-off-by: David Oberhollenzer <goliath@infraroot.at>
2019-02-08 11:20:12 +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
6f32c6b883
Add flag to surpress creation of symlinks when unpacking
...
Signed-off-by: David Oberhollenzer <goliath@infraroot.at>
2019-02-04 16:26:47 +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
David Oberhollenzer
618aaf4278
Make sure toc printers and IDs are propperly assigned
...
Signed-off-by: David Oberhollenzer <goliath@infraroot.at>
2019-02-04 15:12:06 +01:00
David Oberhollenzer
8754729cb1
Improve unpack error handling, ignore mkdir failure on EEXIST
...
Signed-off-by: David Oberhollenzer <goliath@infraroot.at>
2019-02-03 16:18:34 +01:00
David Oberhollenzer
dd6022b686
optarg fixup
...
Signed-off-by: David Oberhollenzer <goliath@infraroot.at>
2019-02-03 15:02:37 +01:00
David Oberhollenzer
391e69eceb
Fix mkdir_p for absolute directories
...
Signed-off-by: David Oberhollenzer <goliath@infraroot.at>
2019-02-03 15:02:37 +01:00
David Oberhollenzer
c23a2c8c33
Add listing modes to install command
...
Allow the install command to either list the packages it wants to install,
or to list the files it would install.
Optionally allow the command to ignore dependencies.
Signed-off-by: David Oberhollenzer <goliath@infraroot.at>
2019-02-03 15:02:37 +01:00