The appc spec has moved! Its new home is at https://github.com/appc/spec
This removes the spec (since it has already been migrated), and adds
placeholders linking to the new repo. It also updates rocket to
reference the spec repo _directly_ (i.e. NOT godepped). This means that
people will need to maintain the spec in their gopath for now when
building rocket.
strings.TrimPrefix was not correct since it resulted in different
behaviour depending on whether the directory passed had a trailing slash
or not (this meant for example that `actool validate foo/` would succeed
but `actool validate foo` would fail)
Go has a function for the correct behaviour in filepath.Rel, so use it.
Also small style updates to keep up with the recent
appmanifest+filesetmanifest --> ImageManifest change
Changes to schema:
- removing FilesetManifest
- update example manifest to match that in spec
- splitting out App into a dedicated type embedded in AppImageManifest
Changes to tools:
- update aci writer (no more filesets)
- update actool build (no more filesets)
- update actool validate (no more filesets)
- update ace validator to use new types
- update rocket stage0/stage1 to new schema
- update ace app manifests to new spec
- fix a bug in build_aci (double compressing aci)
This reworks the app image and fileset concepts to collapse them into a
single manifest, the App Image Manifest. The execution details are now
optional. It also describes a dependency retrieval/matching process
based on labels.
This introduces an inode "cache" that can be used when populating a tar
header (pkg/tarheader.Populate), so that any inodes already seen can be
linked to instead of inserting an entire copy of the file into the tar.
Originally we thought that this would be used for making correctly
hashed ACI reassembly possible but we realized that if you are storing
the on-disk ACI then you can also store the ordered list too; for later
verification against a key.
This wires up image discovery to fetch and run. Now you can do something
like:
./bin/rkt -debug fetch users.developer.core-os.net/rocket/ace-validator-main