Commit Graph

661 Commits

Author SHA1 Message Date
Colin Walters 09707780b9 ostadmin: Add --ostree-dir directory
This will be used by the qemu deployment script.
2012-08-05 16:39:57 -04:00
Colin Walters 5284d21f8d ostadmin: Print an error message if run as non-root
See https://bugzilla.gnome.org/show_bug.cgi?id=680823
2012-07-30 10:29:45 -04:00
Colin Walters a179138a23 ostadmin: [incompat syntax change] Allow deploying any revision
The old command line syntax assumed you wanted the latest from
a given revision, but to bisect, you really want the ability
to deploy any given one.

Old:
$ ostadmin deploy gnomeos-3.6-i686-{runtime,devel}

New:

$ ostadmin deploy trees/gnomeos-3.6-i686-runtime
$ ostadmin deploy trees/gnomeos-3.6-i686-devel

And note that the deploy directory now changes to:
/ostree/trees/gnomeos-3.6-i686-devel

And now it's possible to:

$ ostadmin deploy trees/gnomeos-3.6-i686-devel trees/gnomeos-3.6-i686-devel^^^
2012-07-26 10:56:32 -04:00
Colin Walters 5bbdce2c06 pull: When --depth is specified, ensure we have all requested objects
We were previously optimizing by skipping object traversal if the refs
were unchanged, but if the user specifies a deeper depth than they did
before.
2012-07-26 10:17:41 -04:00
Colin Walters a310eb861b core: Add context when we fail to chmod()/chown()
This helps make things less confusing when we try to create a file not
owned by our uid, such as running ostree-pull as non-root on a
repository owned by root.
2012-07-19 11:01:39 -04:00
Colin Walters 0d86702115 core: Drop ot_clear_hashtable for g_clear_pointer() 2012-07-17 08:18:43 -04:00
Colin Walters 43a2fec6a8 core: Drop ot_clear_ptrarray in favor of g_clear_pointer 2012-07-17 08:16:54 -04:00
Colin Walters 2ced4abf11 core: Drop ot_clear_gvariant() in favor of g_clear_pointer 2012-07-17 08:14:33 -04:00
Colin Walters 57fcafd1ab core: Remove ot_clear_checksum() in favor of g_clear_pointer() 2012-07-17 08:08:57 -04:00
Colin Walters c8d7fc216d core: Use g_spawn_check_exit_status() 2012-07-17 08:06:20 -04:00
Colin Walters 6b31c580ca pull: Only take up one terminal line for status output
And print total bytes transferred at the end.
2012-07-16 22:35:18 -04:00
Colin Walters b2c2bf7e04 Fix libgsystem submodule 2012-07-15 18:29:15 -04:00
Colin Walters da43fb6db5 Hard require GLib 2.34
Anyone wanting to build against an earlier version can use the
embedded-dependencies system.
2012-07-15 18:22:41 -04:00
Colin Walters 464f4a81c9 Add libgsystem as git external
Don't replace ot_lfree and stuff yet though...to much code churn.
2012-07-15 11:59:05 -04:00
Colin Walters 95921bcbf0 pull: Correctly display concurrent libsoup requests
The "status text" code was assuming that libsoup was only doing one
thing at a time, but that's never been the case.  Change the code to
display the status of all active requests.
2012-07-12 11:19:15 -04:00
Colin Walters 664e9b404d core: drop dead/unused code
The daemon is a nice idea but needs a lot more thought.  Let's just
delete the unused code for now and come back to it later.
2012-06-30 13:49:25 -04:00
Colin Walters 311493338e core: Drop ot_gfile_new_for_path
Not necessary anymore since we switched to GIO_USE_VFS=local in the
binaries.
2012-06-30 13:42:24 -04:00
Colin Walters d5a1f1deda pull: Fix a memory leak 2012-06-28 15:18:10 -04:00
Colin Walters a98ca05676 pull: Fix use-after-free in async fetcher
Refcount the pending data structure.
2012-06-28 15:06:18 -04:00
Colin Walters d596615bab main: Fix a format string error 2012-06-27 22:26:16 -04:00
Colin Walters a7b917c856 core: Check out asynchronously
This can be a large performance win in certain circumstances:

 * Cold buffer cache (we don't block the whole process)
 * Requiring a copy instead of hardlink
2012-06-21 18:05:13 -04:00
Colin Walters 7cce6e5ba1 pull: Properly propagate errors 2012-06-20 15:42:41 -04:00
Colin Walters ee98a0b4f7 core: Don't silence output of ostree-run-triggers
We want to see which triggers are being run by default.
2012-06-19 16:14:31 -04:00
Colin Walters 4d59080f46 triggers: Quiet GConf trigger
The default is just way, way too verbose.
2012-06-19 15:03:16 -04:00
Adrian Perez bdc57338c1 Add fontconfig trigger
This wil regenerate the fontconfig caches, accounting for modifications in
the system font directories.
2012-06-13 17:58:53 +03:00
Colin Walters 35a80c8e39 core: Fall back to copying checkouts on EMLINK/EXDEV
The previous fix to just ignore symbolic links for hard linking isn't
really good enough, since it can happen for empty files too.

Since this is an optimization, when we get EMLINK, let's instead just
fall back to copying.  This also applies to EXDEV.
2012-06-12 14:50:41 -04:00
Colin Walters 270dc05176 ostbuild: Move to gnome-ostree module
Since we want to keep "ostree" buildsystem-independent, let's move
ostbuild out into the gnome-ostree module.

http://git.gnome.org/browse/gnome-ostree/commit/?id=04ba1926e33b442af1e357460e4415d4c0311e87
2012-06-08 19:01:25 -04:00
Colin Walters 6aaa2089f0 ostbuild: Fix previous commit (this should have been amended) 2012-06-08 16:51:51 -04:00
Colin Walters f4b6d88254 ostbuild: Fix -k option to git-mirror 2012-06-08 16:47:23 -04:00
Colin Walters 13b37ddaa2 ostbuild: Allow specifying components to git fetch 2012-06-07 10:19:28 -04:00
Colin Walters 210fbc3daf ostbuild: Add rootdir argument to deploy-qemu 2012-06-06 15:43:42 -04:00
Colin Walters 2c385c0078 ostbuild: Fix circular dependency between resolve and git-mirror
git-mirror was looking for the latest snapshot, which we don't
have until we resolve.

This leads to some code duplication.
2012-06-06 12:56:48 -04:00
Colin Walters a14ff0aeab core: Fix mkdtemp invocation 2012-06-06 10:03:15 -04:00
Colin Walters c436f8ac61 ostbuild: Add -k option to git-mirror
libwacom's sourceforge git server was down...
2012-06-05 22:55:53 -04:00
Colin Walters e485bace01 pull: Download and checksum asynchronously
This is quite a noticeable speedup when downloading loose objects.
2012-06-05 22:38:17 -04:00
Colin Walters df54408e5d core: Fix memory leak 2012-06-05 22:32:03 -04:00
Colin Walters 8f2dda3e25 core: Just require libsoup, not libsoup-gnome 2012-05-31 10:25:41 -04:00
Colin Walters cbd4ade053 core: Switch to using mkdtemp() so we only depend on GLib 2.28
We claim to build against 2.28, let's actually make it work.
2012-05-29 22:34:11 -04:00
Colin Walters f438d9aaa6 core: Drop some dead temporary file code 2012-05-29 22:09:31 -04:00
Matthias Clasen 90aff4f2f6 Trivial: fix a typo 2012-05-26 18:48:06 -04:00
Colin Walters d3b063cec0 ostbuild: Have resolve use git-mirror rather than duplicating code
This also brings us back to a sensible world of:

ostbuild resolve --fetch

Doing both fetch *and* writing out the updated revisions.
2012-05-26 12:10:51 -04:00
Colin Walters 9582effb8d core: Don't checkout symbolic links via hardlink
Doing so can easily get us up to the maximum ext4 hardlink count.
2012-05-26 11:55:12 -04:00
Colin Walters 1ef6bb0ef6 ostbuild: add --diffstat option for source-diff 2012-05-25 15:01:41 -04:00
Colin Walters 9c27f1de99 core: Remove leftover debug print 2012-05-25 09:55:10 -04:00
Colin Walters 88b3440eef core: ostree-pull: Add --depth option
This is useful for getting say the last 10 builds.
2012-05-24 20:58:20 -04:00
Colin Walters fb71519cd6 core: Attempt direct link() and fallback on EEXIST
Rather than always doing:

1) make temporary link
2) unlink() target
3) rename()

Just try making the link, and only do the second two if the file
already exists.  This reduces system call traffic a lot.
2012-05-24 20:14:51 -04:00
Colin Walters f7bbf41132 ostbuild: Add 'tag' concept to manifest, improve git mirroring
We should explicitly distinguish between the case where we have a git
branch we're following, versus an immutable tag.  In the latter case,
we can entirely avoid running 'git fetch' for it once we have it.
This is a noticeable speedup in our current scenario of pinning WebKit
to a tag.

The git mirroring code now has a --fetch-skip-secs=X option which
allows us to basically run it in a loop, without hitting remote git
repositories too often.
2012-05-24 19:54:36 -04:00
Colin Walters 0d1ba45c73 ostbuild: git-mirror: Also fetch patches git 2012-05-24 18:11:06 -04:00
Colin Walters 1a5ea54aff core: Make OstreeRepo struct private 2012-05-23 18:08:52 -04:00
Colin Walters 6c006815ce ostbuild: Fix --debug-shell option 2012-05-23 18:02:08 -04:00
Colin Walters 893774aab5 core: Make device/inode loose object cache work for parent repos too
Otherwise ostbuild suddenly becomes significantly slower when using a
shadow repo.
2012-05-23 07:48:16 -04:00
Colin Walters b45a0803fe ostbuild: Few more misc fixes 2012-05-22 08:26:17 -04:00
Colin Walters 95f66e1157 ostbuild: Fix typos in component lookup path 2012-05-21 18:41:59 -04:00
Colin Walters 9bd36f9bff ostbuild: Enhance source-diff with --log and --logp options 2012-05-18 20:25:02 -04:00
Colin Walters 6d59b4077c ostbuild: Add source-diff builtin
OMG OMG OMG
2012-05-18 20:12:35 -04:00
Colin Walters 58d28ad5a6 core: Rearrange code for clarity (doesn't actually fix leaks) 2012-05-18 20:12:17 -04:00
Colin Walters 790d2757f6 ostbuild: Drop dead branch-prefix and pull-components
And other various tweaks.
2012-05-18 16:30:45 -04:00
Colin Walters 32020e55c8 ostbuild: Various fixes, removal of dead code 2012-05-18 16:30:45 -04:00
Colin Walters ecfd9b2cf3 ostbuild: Remove /var from components
We expect them to create on demand.
2012-05-18 16:30:45 -04:00
Colin Walters a3246d590e ostbuild: Fix git-mirror 2012-05-18 16:30:45 -04:00
Colin Walters bcab6748a5 ostbuild: Some work on qemu deployment 2012-05-18 16:30:45 -04:00
Colin Walters 3a20f6a913 ostadmin: Update for new trees/ location of trees 2012-05-18 16:30:45 -04:00
Colin Walters 6e2efc6134 ostbuild: Add import-tree
This is the new workflow:

$ ostbuild import-tree wip-gnome-menus-3.6
$ $EDITOR ~/build/ostbuild/snapshots/wip-gnome-menus-3.6-2012.1-abcd.json
$ ostbuild build
2012-05-18 16:30:45 -04:00
Colin Walters f4aba2a339 ostbuild: Tighten build process significantly
First, "resolve" now just picks git commits.  We don't expand
config-opts and patches, nor do we generate tree contents.  This makes
the generated files *much* more human editable.

Next, fold "build-components" and "compose" into just "build".  One
never really wants to just build components.  This lets us eliminate
binary snapshots as a concept; instead we always have a combination of
source snapshot and component/ refs.
2012-05-18 16:30:45 -04:00
Colin Walters 92244c80cc ostbuild: More work on partial builds 2012-05-18 16:30:44 -04:00
Colin Walters eae69513a7 ostbuild: Make partial builds work
If we have component-revisions in our source+binary snapshot, then
we can skip them.
2012-05-18 16:30:44 -04:00
Colin Walters 5d0744ea29 ostbuild: Write out related objects on composes 2012-05-18 16:30:44 -04:00
Colin Walters 829a760b56 ostbuild: Minor fixes 2012-05-18 16:30:44 -04:00
Colin Walters 65165ff1df ostbuild: Make binary snapshots an extension of source
This significantly simplifies things; we no longer need to retrieve
individual components via 'pull-components', etc.
2012-05-18 16:30:44 -04:00
Colin Walters 4f95106cda core: Prefer packed metadata 2012-05-18 16:30:44 -04:00
Colin Walters f95090095e core: Map metadata from repository as trusted
ot_util_variant_map() assumed untrusted; add a boolean, and use it for
the repository internals.
2012-05-18 16:30:44 -04:00
Colin Walters cf53ed5cef core: Limit recursion during traversal
The related objects commit introduced OSTREE_MAX_RECURSION; use it.
2012-05-18 16:30:44 -04:00
Colin Walters cd38cb1489 core: Add write-refs builtin
This will be used by import-tree to pipe refs to write.
2012-05-14 21:58:22 -04:00
Colin Walters d7a15b381e core: Allow adding related objects to commits
This will be used to store the set of components.
2012-05-14 21:58:22 -04:00
Colin Walters 50cc2356f4 core: Really fix saving variants with REPLACE_DESTINATION 2012-05-14 20:49:00 -04:00
Colin Walters 6d9de91672 core: Make argument parsing more robust against "lt-ostree" name
When running uninstalled, we were parsing our argv[0] incorrectly.
2012-05-14 11:31:53 -04:00
Colin Walters 102180c5f2 core: Replace pack superindex via rename() rather than truncating
This helps allow cloning repositories via "cp -al".
2012-05-14 11:22:18 -04:00
Colin Walters 2fbf864251 core: Clarify error message 2012-05-14 11:22:18 -04:00
Matthias Clasen 5a1a300892 ostree-pull: Avoid an uninitialized variable warning 2012-05-12 10:51:01 -04:00
Matthias Clasen 225cebd5ef core: fix a typo
ostree config had two 'set' subcommands, but no 'get'.
2012-05-12 10:50:53 -04:00
Colin Walters 4fa14eb712 core: Don't look in packs if we found loose object
Unless the caller wants us to; which at present none do, but let's be
forward looking and add an option.
2012-05-12 10:46:25 -04:00
Colin Walters 6fbe15fc05 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.
2012-05-10 14:29:23 -04:00
Colin Walters d1b23f0807 ostbuild: Fix pull-components
We need to pull the actual commits, not the refs.
2012-05-10 10:30:02 -04:00
Colin Walters 488ce33795 pull: Use API to stage files with length
Not doing so at the moment triggers a bug in the staging path, and
it's more efficient anyways.
2012-05-10 10:29:26 -04:00
Colin Walters c6df0b0ae0 pull: Add --prefer-loose option
This is a hack...
2012-05-10 09:54:56 -04:00
Colin Walters efc2810f02 core: unpack: Add --keep-packs option
Matches the pack --keep-all-loose.
2012-05-10 09:47:24 -04:00
Colin Walters a04ef7ba10 core: Fix ostree-pull to be able to look up remotes in parent repo
We should probably add a generalized inheritance mechanism.
2012-05-10 08:50:37 -04:00
Colin Walters f33a2f9a08 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.
2012-05-09 23:20:36 -04:00
Colin Walters d8b97316d9 core: unpack: Actually delete no-longer-needed pack files 2012-05-09 23:19:54 -04:00
Colin Walters fdf05be216 ostbuild: resolve: Add --fetch-patches option
This is kind of lame, but...
2012-05-09 19:46:29 -04:00
Colin Walters 7149530976 ostbuild: Allow using dirty-git: for patches too 2012-05-09 19:40:24 -04:00
Colin Walters 92891e60ca ostbuild: Use .lastfetch file per branch
This way we don't try to update gtk+ twice, once for gtk master and
once for gtk-2-22.
2012-05-09 19:36:46 -04:00
Adrian Perez bd6bd0eed5 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.
2012-05-09 14:10:23 -04:00
Colin Walters d9bc7e0acd ostbuild: build-components: Ensure specifying components forces rebuild 2012-05-09 12:46:04 -04:00
Colin Walters d2da92be07 Move gnomeos/ to "gnome-ostree" module
Now that we're hopefully going to be changing the format less.  The
layering here is now more clear, rather than having things entangled.
2012-05-09 09:29:27 -04:00
Colin Walters dfbf1f7ac6 ostadmin: Use /ostree for current working directory of checkouts
Otherwise we put them in the wrong place.
2012-05-08 10:21:38 -04:00
Colin Walters 9179d1b27a ostadmin: Make a /ostree/current symbolic link 2012-05-08 09:14:03 -04:00
Colin Walters 18b6f5fd0c ostadmin: Initial code 2012-05-07 20:43:03 -04:00
Carl-Anton Ingmarsson 1de0cc238b ostbuild: further fixes to pull-components
Call self.parse_config() so that all necessary directories are parsed.

Also don't call nonexistant self.parse_active_branch() and just use
self.active_branch since it's already have been initialized.
2012-05-07 17:54:04 -04:00
Colin Walters f487500e50 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).
2012-05-07 17:51:12 -04:00
Matthias Clasen 2ca6f04265 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.

This commit fixes all three of these issues.
2012-05-06 14:09:28 -04:00
Matthias Clasen ae0b4ac628 Fix a typo 2012-05-06 13:57:09 -04:00
Matthias Clasen 07f67f3baf ostree: avoid a segfault
When running ostree --repo=/ostree/repo without further arguments,
we end up calling strcmp with one argument being NULL.
2012-05-06 13:56:57 -04:00
Matthias Clasen 4a03176489 checkout: Deal gracefully with bad input
I had a /ostree/gnomeos-3.4-i686-devel directory, and this caused
ostree --repo=repo checkout gnomeos-3.5-i686-devel
to segfault.
2012-05-06 09:23:49 -04:00
Colin Walters c0e73c9fa0 core: pack: Fix calculation of size of pack objects
In archive mode, due to the previous change, we're now only
looking at metadata size, which is clearly wrong.
2012-05-05 16:00:53 -04:00
Colin Walters a0ad28c16c core: pull: Fix regression from memory leak fixes 2012-05-05 14:59:14 -04:00
Colin Walters 38dd179017 core: Compile again on GLib 2.28 2012-05-05 11:45:19 -04:00
Colin Walters ba1c75c61b ostbuild: Drop use of link cache, it's gone now 2012-05-05 09:54:42 -04:00
Colin Walters 9aa9397e42 ostbuild: Create deploy-qemu subcommand 2012-05-04 16:16:16 -04:00
Colin Walters a2d937c2f0 triggers: Print name of each trigger we're running 2012-05-04 16:16:16 -04:00
Adrian Perez 5835bb72b4 ostbuild: Make --shell-on-failure flag to work
Fixes an issue which would cause ostbuild to fail to spawn the
debug shell and print a traceback instead.
2012-05-04 16:16:16 -04:00
Colin Walters 0597a3f71c ostbuild: More work on deploy commands 2012-05-04 16:16:16 -04:00
Colin Walters 3a365521a8 ostbuild: Use --from-file for buildroot compose for easier debugging 2012-05-04 16:16:16 -04:00
Colin Walters 8785fefda8 ostbuild: Rename shadow-repo-init -> init 2012-05-04 16:16:16 -04:00
Colin Walters 851a9c2ce9 ostbuild: Checksum full component metadata for --skip-built
If we're using --skip-built, we really do want to rebuild if anything
changed (like the build dependency, configure arguments etc.)
2012-05-04 16:16:16 -04:00
Colin Walters 29b230107e ostbuild: Break out git-mirror from resolve
Other bits
2012-05-04 16:16:16 -04:00
Colin Walters 986cd2172b ostbuild: Use expanduser 2012-05-04 16:16:16 -04:00
Colin Walters 938f4eaf44 ostbuild: Lots more 2012-05-04 16:16:16 -04:00
Colin Walters b845e0a2bb ostbuild: Resolve takes --manifest arg 2012-05-04 16:16:16 -04:00
Colin Walters a6a8e00edf ostbuild: Add tree-to-bin and bin-to-src 2012-05-04 16:16:16 -04:00
Adrian Perez 0e266d3f92 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.

Reviewed-by: Colin Walters <walters@verbum.org>
2012-05-04 16:16:16 -04:00
Colin Walters 717cec46c3 ostbuild: Major rework 2012-05-04 16:16:16 -04:00
Colin Walters 7280ce358d ostbuild: Show ostbuild log messages in warningfilter again 2012-05-04 16:16:16 -04:00
Colin Walters d040b61d19 core: checkout: Add --from-file option too
Easier for debugging if we don't have to redirect stdin.

Conflicts:

	src/ostree/ot-builtin-checkout.c
2012-05-04 16:15:20 -04:00
Colin Walters 0660d9e5cf core: Improve error message if we hit an unreadable file 2012-05-04 16:14:47 -04:00
Colin Walters 26c484faed core: Add a mutex to cache data structures in preparation for threading
Conflicts:

	src/libostree/ostree-repo.c
2012-05-04 16:14:28 -04:00
Colin Walters 6cdbedf4e6 core: pull-local: Be a bit more verbose, don't open objects we already have 2012-05-04 16:13:44 -04:00
Colin Walters ac38a7e1b1 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.
2012-05-04 16:10:30 -04:00
Colin Walters 0fc291b954 core: Drop --link-cache option, we do it by default now for archives 2012-05-04 16:10:30 -04:00
Colin Walters 27358a8de6 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).
2012-05-04 16:10:30 -04:00
Colin Walters 3321fa08d7 core: Handle zero-sized archives, improve fsck error message 2012-05-04 13:40:25 -04:00
Colin Walters 8d926c3e36 core: Add valgrind framework, plug various memory leaks 2012-05-04 10:04:32 -04:00
Colin Walters 7ce587da30 core: Optimize commits to raw repositories
Avoid creating a temporary intermediate file in the case where we have
the total object length available.
2012-05-04 06:15:47 -04:00
Colin Walters 67f61976f4 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.
2012-05-03 19:59:13 -04:00
Colin Walters 99cb8a80fa daemon: Use g_thread_new() for GLib 2.32 2012-05-03 16:07:18 -04:00
Colin Walters ff3867c052 core: Increase type safety of some local alloc functions 2012-05-03 16:05:53 -04:00
Colin Walters 749bf56917 core: Fix gcc uninitialized-variable warning 2012-05-01 18:53:00 -04:00
Colin Walters d4321629f4 core: Rename local-clone to pull-local
Also change it to copy selective refs, rather than enumerating
all objects.
2012-05-01 17:44:29 -04:00
Colin Walters 8d6bdaedfe core: Fix 32/8 bit confusion in pack index listing 2012-05-01 17:44:14 -04:00
Colin Walters 233558d230 core: diff: Fast path unmodified directories 2012-04-29 12:15:12 -04:00
Colin Walters 9cb87ffc07 core: pack: Add --metadata-only argument
Useful for bare repositories.
2012-04-29 12:15:12 -04:00
Colin Walters da3b17be1e core: Fix uninitialized variable 2012-04-26 11:52:26 -04:00
Colin Walters bf3abd02cd core: local-clone: Delete leftover code assuming file objects are loose 2012-04-25 09:44:46 -04:00
Colin Walters 5947b5b145 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.
2012-04-18 23:12:34 -04:00
Adrian Perez 99142ef417 switchroot: Properly check for number of arguments
The ostree-switch-root tool expects three arguments (argc=4): new root, OS
tree target, and init(8) binary to launch inside it. Also, the error message
when not enough arguments are passed now tells about the second argument
being the target OS tree.

Reviewed-by: Colin Walters <walters@verbum.org>
2012-04-18 15:20:46 -04:00
Colin Walters 255b7d1309 core: Pull pack files individually 2012-04-16 18:17:11 -04:00
Colin Walters 3f02a1fd56 core: Cache pack indexes
This is a 10x speedup on heavy users of ostree_repo_find_object(),
such as ostree-pull.
2012-04-16 18:17:06 -04:00
Colin Walters 920cbbc242 triggers: Test for gconftool-2
This was done for the rest of the triggers.
2012-04-13 16:11:03 -04:00
Colin Walters 863384b90d ostbuild: Take advantage of link cache
This greatly speeds up construction of buildroots.
2012-04-13 16:10:40 -04:00
Colin Walters 262f426997 core: Add --link-cache option to checkout
This is a convenient way to have a lookaside directory of hard links,
which can greatly speed up checkouts.  In the future we probably want
to push this down into the repository.
2012-04-13 14:33:38 -04:00
Colin Walters 38ef75e6e0 core: Re-unify on one OSTREE_OBJECT_TYPE_FILE
Having the archived vs not distinction in the object system wasn't
useful in light of pack files.  In fact, we should probably move
towards generating a pack file per commit by default.
2012-04-11 22:27:59 -04:00
Colin Walters f15c184584 core: Clean up checksumming
Don't expose GChecksum in APIs.  Add a new stream class which allows
us to pass an input stream somewhere, but gather a checksum as it's
read.

Move some bits of the internals towards binary csums.
2012-04-11 22:04:06 -04:00
Colin Walters fa4cbc8b89 core: Drop wrapping of metadata variants 2012-04-11 22:04:05 -04:00
Colin Walters 5a82b141ae core: Split pack files into data/metadata
This will allow us to download metadata first (separately), and in the
future we can have an improved metadata pack format that compresses
heavily.
2012-04-11 22:04:05 -04:00
Colin Walters 11c0fbc738 core: Switch to 'ay' for checksums, drop versions/metadata 2012-04-11 22:04:00 -04:00
Colin Walters 188621f0b2 core: Drop 'compose' builtin
We'll just add this functionality to commit.
2012-04-11 19:54:55 -04:00
Colin Walters 0e8149eb83 core: Clean up checksum API
We want to move towards guchar * for binary checksums.
2012-04-11 19:54:55 -04:00
Colin Walters 6542b8f5c9 core: unpack: Regenerate pack index after unpacking 2012-04-11 19:54:30 -04:00
Colin Walters d63ec5c2ff core: Fix uninitialized variables 2012-04-11 19:54:30 -04:00
Colin Walters 394fe75471 core: Port builtins to local alloc macros 2012-04-09 15:57:46 -04:00
Colin Walters 8b6bf09d7a core: Port libostree to local alloc 2012-04-09 15:57:46 -04:00
Colin Walters 87f45052af core: Port libotutil to local-alloc 2012-04-09 15:57:46 -04:00
Colin Walters ca08ad6c5e core: Add macros for local allocation
This is GCC-specific, but it makes the code significantly
cleaner.
2012-04-09 15:56:28 -04:00
Colin Walters 72398ab62c core: Fix xattr API to conform to coding style 2012-04-09 15:56:27 -04:00
Colin Walters 3c39a5bfa7 core: Fix a minor memory leak 2012-04-09 14:18:00 -04:00
Colin Walters 74485bed35 core: pull: Add progress bar, allow pulling individual commits 2012-04-08 17:26:02 -04:00
Colin Walters a69e4452b4 core: checkout: Add --from-stdin option
This allows checking out many branches in one go, useful in
combination with the --union flag for ostbuild to combine a lot of
components.
2012-04-06 15:11:11 -04:00
Colin Walters 92ab820c0b ls: Add mode to print filenames as binary
This is useful to extract the file listing to another program.
2012-04-06 15:10:20 -04:00
Diego Escalante Urrelo b64cd799dc ostree-pull: GOptionEntry must be NULL terminated 2012-04-05 09:05:22 -04:00
Colin Walters bae584c64a core: Associate branches with remotes, move trigger runs into checkout
Also add --atomic-retarget option to checkout. This does the magical
symlink dance to do atomic swaps between trees.
2012-04-03 23:46:34 -04:00
Colin Walters 3f23ac156a core: Clean up stale packfiles 2012-04-03 23:46:34 -04:00
Colin Walters 8792007bc1 core: Validate structure of objects in fsck 2012-04-03 08:52:58 -04:00
Colin Walters 10b2f30165 core: Make pull slightly more verbose 2012-04-03 08:52:44 -04:00
Colin Walters 9c7a47434d core: Drop "staged" state for objects, refactor pull to split metadata/data
Previously we had the "staged" state to ensure we didn't add a commit
object without the associated dirtree, etc.  However it's
easier/better to just ensure in the pull command that we have all
referenced objects.

Also change pull to download metadata first.  This will allow adding
a progress bar later.
2012-04-02 19:52:22 -04:00
Colin Walters 56089abd43 core: Make fsck verify from commit objects
Rather than verifying every object, traverse all commit objects we
find.  This is a better check, since primarily we care about being
able to check out trees.  In the new packfile regime, this ensures
validity of packed data.

It also means we aren't checking loose objects that we most likely
don't care about.
2012-04-02 18:32:40 -04:00
Colin Walters d8173a5125 core: Move commit/dirtree traversal into library
So it can more easily be reused by other builtins.
2012-04-02 18:32:40 -04:00
Colin Walters a0b7d94cb6 core: Fix a few memory leaks 2012-04-02 18:32:40 -04:00
Colin Walters ea4d2be39c core: Return input stream for raw repositories too
This bug is more obvious when fsck is rebased on top of
ostree_repo_load_file().
2012-04-02 18:32:40 -04:00
Colin Walters b971ce0dfa core: Only depend on GLib 2.30 2012-04-02 13:42:09 -04:00
Colin Walters 80bdfd7f42 core: Add pack files
This concept is also directly inspired by git.  At present, our
implementation is quite similar, except we don't have delta
compression.
2012-03-31 11:51:47 -04:00
Colin Walters 68cce01556 core: Add stream->variant helper, as well as clear macros for ptrarray/hashtable 2012-03-31 10:32:26 -04:00
Colin Walters b221b0fdd6 core: Add a few more GIO utility functions 2012-03-31 10:32:02 -04:00
Colin Walters 70afd6011f core: Add helper functions to convert (checksum, objtype) pair to/from string 2012-03-14 09:37:00 -04:00
Colin Walters 277843f3a2 ostbuild: Add preserve_net config option
This is going to be necessary for the builder.
2012-03-13 17:06:06 -04:00
Colin Walters 8e3a3c5667 ostbuild: Re-unify into one snapshot.json file
This is actually easier.  Now add 'ostbuild query-content' which can
extract the JSON data we stuff into builds.
2012-03-13 10:39:31 -04:00
Colin Walters 4d1d6789c2 ostbuild: Rework again, split into components.json and targets.json
The "resolve" builtin now does a lot more heavy lifting; we expand the
manifest.json, and "build" consequently is less intelligent now, more
of a low-level implementation.
2012-03-13 10:39:31 -04:00
Colin Walters ee49c8098c ostbuild: Only check out source if we need to
When using --skip-built, we shouldn't do a checkout if we're not going
to build.
2012-03-13 10:39:31 -04:00
Colin Walters addbdb619c ostbuild: Stop generating git mirror config
Nothing's using it right now and it's a little buggy.
2012-03-13 10:39:31 -04:00
Colin Walters 87e9a29f11 ostbuild: Further work on regenerating a snapshot from a compose 2012-03-13 10:39:26 -04:00
Colin Walters 07e93bd326 ostbuild: Change to name-prefix and base-prefix in manifest
This makes it clearer that we're using this as a prefix, when we
generate the snapshots.
2012-03-13 10:39:26 -04:00
Colin Walters 76f7bf2060 ostbuild: Switch to composing via checkouts+commit
Store the compose contents as a JSON file in the filesystem tree.
This is more flexible compared to defining "compose" as just a literal
layering of filesystem trees.  For example, we might want to run
prelink.
2012-03-13 10:39:26 -04:00
Colin Walters 5dd62af628 ostbuild: Stop using "compose" to make buildroots
It pollutes the repository with a combinatorial explosion of .dirtree
metadata files, and we don't really need to track buildroots at that
level.
2012-03-13 10:39:25 -04:00
Colin Walters 5275e8d6b2 ostbuild: Drop "commit-artifacts" builtin
It's long since dead.
2012-03-13 10:39:25 -04:00
Colin Walters c11cefb99b ostbuild: Kill "autodiscover-meta"
No longer needed.
2012-03-13 10:39:25 -04:00
Colin Walters d3059d254b ostbuild: Adapt "status" to expanded manifest 2012-03-13 10:39:25 -04:00
Colin Walters ff81b21bcf ostbuild: Adapt "build" to newly updated expanded manifest 2012-03-13 10:39:25 -04:00
Colin Walters c71770c08c ostbuild: Write out separate arch-component snapshots 2012-03-13 10:39:25 -04:00
Colin Walters c3debe0fb6 ostbuild: 'checkout' command now also applies patches 2012-03-13 10:39:25 -04:00
Colin Walters d8eebaa2d1 ostbuild: Pull patches from specified patches git repository
We need to be more formal about where we get patches from, and more
specifically what version.  Let's assume they're also stored in a git
repository that we fetch, instead of copying them from "wherever the
manifest is".

This meshes nicely with splitting between manifest.json and
snapshot.json.
2012-03-13 10:39:25 -04:00
Colin Walters 6890444f28 ostbuild: Change metadata keys for artifacts
"ostbuild-name" is important to tie back in to the snapshot.
"ostbuild-revision" is shorter than ostbuild-artifact-version.
2012-03-13 10:39:25 -04:00