Colin Walters
62c2a204c9
trivial: commit: Fix docstring typos
2014-05-26 17:57:36 -04:00
Colin Walters
78726244a0
deploy: Convert remaining g_print() to systemd journal messages
...
These bits should be logged more sanely.
2014-05-24 13:19:29 -04:00
Colin Walters
bf37a9c741
deploy: Remove deployment root print
...
It doesn't look very professional; in the future though we should have
a progress bar here or something.
2014-05-24 12:30:56 -04:00
Colin Walters
f47a20fb81
Support /etc/ostree/remotes.d
...
For many OS install scenarios, one runs through an installer which may
come with embedded data, and then the OS is configured post-install to
receive updates.
In this model, it'd be nice to avoid the post-install having to rewrite
the /ostree/repo/config file.
Additionally, it feels weird for admins to interact with "/ostree" -
let's make the system feel more like Unix and have our important
configuration in /etc.
https://bugzilla.gnome.org/show_bug.cgi?id=729343
2014-05-08 18:59:24 -04:00
Colin Walters
25ad4a9f65
pull: Add tls-client-cert-{path,key} (if we have new enough libsoup)
...
This is an actually working version of client-side certificates.
Depends on:
See: https://bugzilla.gnome.org/show_bug.cgi?id=334021
We detect whether libsoup is new enough for this.
https://bugzilla.gnome.org/show_bug.cgi?id=729356
2014-05-01 17:13:13 -04:00
Colin Walters
64b4ec6ef0
Revert "pull: Add tls-client-cert-{path,key}"
...
This reverts commit 94f9ee7bce .
Doesn't actually work, see
https://bugzilla.gnome.org/show_bug.cgi?id=334021
2014-05-01 10:23:11 -04:00
Colin Walters
94f9ee7bce
pull: Add tls-client-cert-{path,key}
...
These can be used to present a client certificate when making requests
to a repository.
2014-05-01 07:57:06 -04:00
Colin Walters
7cc4a20f3b
pull: Correctly handle error state when fetching optional data
...
For the static deltas work, we're using the already-extant internal
API to perform a HTTP fetch for optional data - static deltas are
optional.
Except that we didn't correctly unset the error if we were doing an
optional fetch and the data wasn't found.
2014-04-29 10:59:57 -04:00
Colin Walters
626fc8519b
pull: Stay in mainloop if we're synchronously fetching URI
...
The static deltas work will be doing some synchronous fetching even
after refs are downloaded.
2014-04-29 10:59:57 -04:00
Colin Walters
006e8f0073
deltas: Link to liblzma, add internal API to use it
...
For future static deltas work, we'll be linking to liblzma. Since
it's fairly widespread, let's just make it a hard dependency.
2014-04-29 10:59:57 -04:00
Colin Walters
f040c02048
libostree: Add _finish() API to async progress
...
Since OstreeAsyncProgress queues to the mainloop, we might "lose" the
last message. Give callers a way to force a flush.
2014-04-29 10:59:57 -04:00
Colin Walters
959db9f0de
core: Add _STRING variants of GVariant object formats
...
For the static deltas work, we're going to embed a commit in the delta
superblock, so we need a format string without the G_VARIANT_TYPE().
2014-04-29 08:51:00 -04:00
Colin Walters
22ab7b3e79
core: Use posix_fallocate() when writing objects
...
This helps ensure the filesystem allocates space efficiently.
2014-04-28 19:42:12 -04:00
Colin Walters
2c5d726076
deploy: fsync() copy of /etc
...
This unfortunately requires reimplementing gs_shutil_cp_a(), except
while we're here, we also use the *at calls.
2014-04-11 18:43:58 -04:00
Colin Walters
b423d9e9cf
deploy: fsync() kernel/initramfs and bootloader config parent directories
...
Ensure they've hit disk.
2014-04-11 18:43:27 -04:00
Colin Walters
646c8be8dc
deploy: fdatasync() bootloader configuration files
...
Yet more data we're writing out that needs to be sync'd.
2014-04-11 18:43:27 -04:00
Colin Walters
053dd72649
deploy: Ensure .origin file is fsync()ed on disk
...
Along with its parent directory.
2014-04-11 18:43:27 -04:00
Colin Walters
0b8495f09a
deploy: Also fsync parent directory of modified config files
2014-04-11 18:43:13 -04:00
Colin Walters
38feca0e4d
deploy: Ensure that any modified config files are fsync()d
...
It really wouldn't do for one to be missing one's ssh keys for
example...
2014-04-11 18:43:13 -04:00
Colin Walters
1b16553600
checkout: fsync() directory on checkouts
...
We want to be really sure that our deployment roots have hit the disk.
2014-04-11 18:43:13 -04:00
Colin Walters
7acad0a2e5
deploy: Ensure that all directories we create are fsync()d
...
There's two halves to this; first, when we create an hierarchy, we
need to call fsync(). Second, we need to fsync again anytime after
we've modified a directory.
2014-04-11 18:43:13 -04:00
Colin Walters
d27c78eab5
pull: Display download progress of individual objects as we get it
...
It was kind of annoying at least for rpm-ostree upgrades since /boot
happens to be first and we eat a 21MB initramfs with no download
progress.
https://bugzilla.gnome.org/show_bug.cgi?id=726348
2014-04-11 01:31:14 -04:00
Colin Walters
829e0382ab
bootloader: fdatasync() bootloader configuration
...
Let's be a bit more conservative here and actually fdatasync() the
configurations we're generating.
I'm seeing an issue at the moment where syslinux isn't finding the
config sometimes, and while I don't think this is the issue, let's try
it.
2014-04-03 22:32:30 -04:00
Colin Walters
cc8bacf8b4
bootloaders: Always write out bootloader config file
...
There was an attempted optimization to only write if changed, but this
is broken - we always write the bootloader config into a new
directory.
In theory we should only be writing if it changed, but let's not do a
broken optimization.
2014-04-03 21:08:03 -04:00
Colin Walters
ac40de5773
deploy: Add a debug message for which bootloader is used
...
Debugging something...
2014-04-03 19:39:08 -04:00
Colin Walters
890d685c79
deploy: Add an assertion that deployment directory exists
...
I may be seeing something going wrong in rpm-ostree, just adding this
assertion for my own sanity.
2014-04-03 18:29:07 -04:00
Colin Walters
edc8665206
fetcher: Honor http_proxy environment variable
...
https://bugzilla.gnome.org/show_bug.cgi?id=706809
2014-04-01 19:12:40 -04:00
Colin Walters
7bd00e3005
checkout: Always do chmod even in _MODE_USER
...
The previous commit here changed things so that we do mkdir(x, 0700),
then fchmod later only if we created the directory.
However the logic was incorrect; we still need to chmod even in
MODE_USER if we created the directory.
2014-04-01 13:07:17 -04:00
Colin Walters
5bca569506
upgrade: Support --allow-downgrade again
...
This was unintentially dropped with the OstreeSysrootUpgrader rebase.
2014-03-31 22:27:56 -04:00
Colin Walters
913337c557
sysroot-upgrader: Check merge deployment, not ref for differences
...
Otherwise this broke atomicity; we could fetch/store the ref, then
crash, and then not upgrade the next time we tried upgrading.
The correct model is: the tree has changed if the new ref is different
from the merge deployment.
2014-03-31 14:41:13 -04:00
Colin Walters
8d13e5bb74
sysroot: Be more conservative with bootlink optimization
...
Trying to implement "rpm-ostree rollback", in the case where we have 2
deployments with the same bootconfig that we're reordering, we need to
write bootconfig, not just swap the bootlinks.
2014-03-28 21:06:23 -04:00
Colin Walters
11ecf9267e
libostree/upgrader: Don't pull if there is no remote
...
In this case we're just reading the local repo.
2014-03-27 07:36:50 -04:00
Colin Walters
9389b7961c
libostree/upgrader: Add an API to retrieve an origin description
...
This will be used by "rpm-ostree upgrade".
2014-03-25 16:46:39 -04:00
Colin Walters
90883674a9
libostree/upgrader: Throw an error if osname is empty
...
This shouldn't happen; I'm just adding the check to force a rebuild.
2014-03-25 15:47:20 -04:00
Colin Walters
7baa600e23
Add an OstreeSysrootUpgrader API
...
This moves some utility code from the ostree tool into the shared
library, which will make it easier to consume by external tools.
2014-03-24 18:08:22 -04:00
Colin Walters
ffb9d34671
Move basic commit API into ostree_sysroot_simple_write_deployment()
...
The admin commands had this shared in tool common, but we want to
encourage external programs to do this as well.
2014-03-23 11:36:09 -04:00
Colin Walters
a80872afa0
pull: Don't print, just use progress callback
...
More work on removing g_print() from the library.
2014-03-21 14:52:56 -04:00
Colin Walters
4309b49866
libostree: Add ostree_sysroot_deployment_set_kargs()
...
It turns out people sometimes want to be able to change the kernel
arguments. Add a convenient API to do so for the current deployment.
This will be used by Anaconda.
2014-03-19 09:49:55 -04:00
Colin Walters
9fed088d6e
libostree: Fix ostree_deployment_clone() to also clone bootconfig
...
This way one can easily mutate it for a new deployment list.
2014-03-19 09:49:55 -04:00
Colin Walters
606918e763
libostree: Add ostree_bootconfig_parser_clone()
...
This will be necessary to fix ostree_deployment_clone(), but is
potentially useful on its own for other consumers.
2014-03-19 09:49:55 -04:00
Colin Walters
fbc232d72b
TODO: update
2014-03-15 19:05:52 -04:00
Colin Walters
b6b7d37c9d
libostree: Fix crash if output is not a tty
...
This was a recent regression.
2014-03-14 21:59:36 -04:00
Colin Walters
cbc11f42e5
libostree: Add API to append a GPG signature
...
This will be used by rpm-ostree which needs to use an external program
to sign commits.
2014-03-14 21:57:48 -04:00
Colin Walters
4995352fe0
libostree: Add a better error if we fail to read keyring directory
...
I had accidentally put it in the -devel package and not noticed.
2014-03-14 14:42:46 -04:00
Colin Walters
1f7f7382b1
deploy: Less usage of g_print
...
No need to spam the console here.
2014-03-11 13:16:38 -04:00
Colin Walters
bf918f1586
libostree: Remove g_print() from bootloader code
...
No need to be so chatty.
2014-03-11 13:15:57 -04:00
Colin Walters
5c839f0267
pull: Drop some g_print(), replace others with async progress
...
We shouldn't g_print() from a library, particularly when the
expectation is that the client has an async progress set up.
This should fix the pull output extending the status line.
2014-03-11 09:36:54 -04:00
Colin Walters
c2123bfc71
pull: Ensure temporary data that appears corrupted is deleted
...
If a MITM attacker (or just network corruption) causes a temporary
downloaded object in tmp/ to be corrupted, we'll end up
continually trying to commit it, and fail.
Fix this unlinking the temp file immediately after opening it. This
will ensure that if we exit due to an error (or crash), the kernel
will clean up the space for us.
https://bugzilla.gnome.org/show_bug.cgi?id=725924
2014-03-07 19:36:55 -05:00
Colin Walters
d8852d099a
checkout: Use fd-relative open of newly created directory
...
We were walking the full path again on our directories, no need to do
that.
2014-02-27 11:49:49 -05:00
Colin Walters
b6704f8346
checkout: Only fchown/fchmod directories after we're done populating them
...
See https://mail.gnome.org/archives/ostree-list/2014-February/msg00020.html
2014-02-27 11:19:33 -05:00