Colin Walters [Thu, 10 May 2012 18:29:23 +0000 (14:29 -0400)]
ostbuild: Add ostree-revision in buildroots, bin-to-src
First, for binary snapshots we need to include the exact revision of
the architecture buildroot. To do that, introduce
"architecture-buildroots2".
Second, for bin-to-src, we'd like to allow "partial" builds. So while
we do expand everything to source, *also* include the binary
ostree-revision. This will allow building just one component, while
reusing the previously built binaries.
Colin Walters [Thu, 10 May 2012 03:20:36 +0000 (23:20 -0400)]
core: pack: Keep loose objects which are referenced externally
By default, don't delete loose objects which have hard links. This
has the natural semantics that if you delete all the checkouts, you
probably want it packed.
Conversely, if it has a hard link, we do want further checkouts to
share storage, even if we pack in between them.
Adrian Perez [Wed, 9 May 2012 15:49:03 +0000 (18:49 +0300)]
ostree-pull: Fix segfault by initializing pull_data earlier
In the case of not being able to check the repository or not being able
to parse command line arguments, attributes from "pull_data" would be used
with garbage in them. This patch makes initialization of the sctructure to
happen earlier so it is safe to use in those cases.
Colin Walters [Mon, 7 May 2012 21:51:12 +0000 (17:51 -0400)]
ostbuild: Default to (previous) --skip-built
For components specified on the command line, we now force a rebuild.
There's also a new option to skip if the git revision matches, but
metadata changed (useful for now to avoid cascading builds if you know
you don't need it).
Matthias Clasen [Sun, 6 May 2012 02:40:03 +0000 (22:40 -0400)]
ostbuild: make pull-components work
This builtin did not work for me. It did not initialize self.repo,
it used the nonexisting parse_active_branch function unconditionally,
and it did not actually find the list of components in contents.json.
Adrian Perez [Thu, 26 Apr 2012 15:21:27 +0000 (18:21 +0300)]
ostbuild: Fix DB saving with /tmp and builddir in different volumes
This fixes the case where /tmp resides in one volume, and the build
directory in a different one: by storing the temporary file in the
same directory as the target one, we avoid the case in which os.rename()
would cross file system boundaries.
Colin Walters [Fri, 4 May 2012 19:38:21 +0000 (15:38 -0400)]
core: Avoid checksumming hardlinks that point into repository
By default, when doing a commit, scan all of our loose objects and
build up a (device,inode) -> checksum hash. Then when we're doing a
commit, if we see a file with that (device,inode) pair, we can avoid
checksumming it.
Colin Walters [Fri, 4 May 2012 15:02:15 +0000 (11:02 -0400)]
core: [INCOMPATIBLE CHANGE] Re-split archive content into .file and .filecontent
This will allow us to use hard links again for user-mode checkouts,
rather than the hackish link cache. It was pretty silly anyways to
have file objects be stored with just a small metadata header
prepended, but uncompressed.
Either they should be hardlinkable, or compressed (in pack files).
Colin Walters [Thu, 3 May 2012 23:57:05 +0000 (19:57 -0400)]
core: Clean up object storage API
Rather than passing xattr/file_info for all objects, change the API to
assume we're passing the defined object stream for each type. Namely,
for OSTREE_OBJECT_TYPE_FILE, we're now giving the "archive file" data.
This significantly cleans up the code for committing to archive mode
repositories, at the cost of having to (at present) create an
intermediate temporary file when committing to raw repositories.
Colin Walters [Thu, 3 May 2012 17:40:23 +0000 (13:40 -0400)]
build: Link with -Bsymbolic-functions
Avoids indirecting through PLT for internal calls, at the cost that we
can't use LD_PRELOAD to override internal functions (but we never
really want that, use a debugger).
Colin Walters [Tue, 17 Apr 2012 01:21:50 +0000 (21:21 -0400)]
core: Add ability for repositories to have a "parent"
This will be useful for ostbuild; a user can create their own archive
mode repository which transparently inherits objects from the
root-owned one in /ostree.