summaryrefslogtreecommitdiff
path: root/man
Commit message (Collapse)AuthorAgeFilesLines
* man: Add missing repo mode in config docsfix-repo-modes-docsPhaedrus Leeds2021-03-081-1/+1
|
* pull: Allow disabling commit binding verificationDan Nicholson2020-12-172-0/+16
| | | | | | | | | | | | | | | | In some cases such as backups or mirroring you may want to pull commits from one repo to another even if there commits that have incorrect bindings. Fixing the commits in the source repository to have correct bindings may not be feasible, so provide a pull option to disable verification. For Endless we have several repositories that predate collection IDs and ref bindings. Later these repositories gained collection IDs to support the features they provide and ref bindings as the ostree tooling was upgraded. These repositories contain released commits that were valid to the clients they were targeting at the time. Correcting the bindings is not really an option as it would mean invalidating the repository history.
* Add support for explicitly requesting any specific bootloader typeWilliam Manley2020-10-261-1/+8
| | | | | | | | | ...with the `sysroot.bootloader` configuration option. This can be useful when converting a system to use `ostree` which doesn't currently have a bootloader configuration that `ostree` can automatically detect, and is also useful in combination with the `--sysroot` option when provisioning a rootfs for systems other than the one you're running `ostree admin deploy` on.
* deltas: Add and document no-deltas-in-summary config optionAlexander Larsson2020-10-231-0/+14
| | | | By default this is FALSE to keep existing clients working.
* Merge pull request #2198 from cgwalters/no-hardlink-zerosizeOpenShift Merge Robot2020-10-051-1/+1
|\ | | | | checkout: Don't hardlink zero sized files
| * checkout: Don't hardlink zero sized filesColin Walters2020-10-011-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Alternative to https://github.com/ostreedev/ostree/pull/2197 Python's (usually) zero-sized `__init__.py` files can provoke us hitting the hardlink limits on some filesystems (`EMLINK`). At least one Fedora rpm-ostree user hit this. The benefits of hardlinking here are quite marginal; lots of hardlinks can behave suboptimally in particular filesystems like BTRFS too. This builds on prior code which made this an option, introduced in https://github.com/ostreedev/ostree/commit/673cacd633f9d6b653cdea530657d3e780a41bbd Now we just do it uncondtionally. Also this provoked a different bug in a very obscure user mode checkout case; when the "real" permissions were different from the "physical" permissions, we would still hardlink. Fix the test case for this.
* | bin/static-delta: Add signature parameters to apply-offlineFrédéric Danis2020-09-141-1/+60
| | | | | | | | | | | | This allows to check the delta signature before applying it. Signed-off-by: Frédéric Danis <frederic.danis@collabora.com>
* | bin/static-delta: Add command to verify delta signatureFrédéric Danis2020-09-141-0/+64
| | | | | | | | | | | | | | Add new "static-delta verify" sub-command. This supports multiple keys to verify the static-delta file. Signed-off-by: Frédéric Danis <frederic.danis@collabora.com>
* | bin/static-delta: Add support to sign superblockFrédéric Danis2020-09-141-0/+33
|/ | | | | | Add signing ability to "static-delta generate" builtin. Signed-off-by: Frédéric Danis <frederic.danis@collabora.com>
* man: add missing options to the ostree-commit man pageStefan Agner2020-07-311-1/+33
| | | | | | Add missing parameter to the ostree-commit man page. Signed-off-by: Stefan Agner <stefan.agner@toradex.com>
* man: add glossary to main man pageStefan Agner2020-07-311-0/+64
| | | | | | | Add glossary to define some commonly used literals throughout the ostree man pages. Signed-off-by: Stefan Agner <stefan.agner@toradex.com>
* pull: Add --per-object-fsyncColin Walters2020-07-181-0/+12
| | | | | | | | | | | | This is the opposite of https://github.com/ostreedev/ostree/issues/1184 Motivated by OpenShift seeing etcd performance issues during OS updates: https://github.com/openshift/machine-config-operator/issues/1897 Basically, if we switch to invoking `fsync()` as we go, it makes ostree performance worse (in my tests, 31s to write 2G versus 7s if we delay sync) but it avoids *huge* outliers in `fsync()` time for etcd.
* man/checkout: document missing optionsStefan Agner2020-06-081-0/+71
| | | | | | Document missing options in the ostree checkout man page. Signed-off-by: Stefan Agner <stefan.agner@toradex.com>
* man/checkout: fix short name option of --user-modeStefan Agner2020-06-081-1/+1
| | | | | | The short name option of --user-mode is -U. Signed-off-by: Stefan Agner <stefan.agner@toradex.com>
* commit: Add --base argumentColin Walters2020-04-061-0/+9
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | I was trying to followup the `--selinux-policy-from-base` work to add a `cosa build --fast=overlay` for coreos-assembler, but hit on the fact that using e.g. `--owner-uid` disables commit optimizations. A while ago, https://github.com/ostreedev/ostree/pull/1643 landed which optimized this for the case where no modifications are provided. But, we really need the SELinux policy bits, and it's super convenient to run `ostree commit` as non-root. It's fairly surprising actually that it's taken us so long to iterate on a good interface for this "commit changes on top of a base" model. In practice, many nontrivial cases really end up needing to do a (hardlink) checkout, and that case is optimized. But for this coreos-assembler work I want to directly overlay onto a commit object another commit object. That previous PR above added exactly the API we need, so let's expose it in the CLI. What you can see happening in the test is that we provide `--owner-uid 42`, but that only applies to directories/files that were added in the commit. And now that I look at this, I think what we really want here is to avoid changing directories that exist in the base, but eh; in practice the main use here is for `--owner-uid 0` while committing as non-root; and that works fine with this since the baseline uid will be zero as well.
* Merge pull request #1878 from d4s/wip/d4s/no_gpgOpenShift Merge Robot2020-04-043-1/+219
|\ | | | | Alternative signing system
| * man: add signature options for ostree summaryDenis Pynkin2020-03-251-1/+34
| | | | | | | | | | | | | | Add a description of new options `--sign-type` and `--sign` for `ostree summary` command. Signed-off-by: Denis Pynkin <denis.pynkin@collabora.com>
| * man: document commit signingDenis Pynkin2020-03-251-0/+33
| | | | | | | | | | | | | | Added options descriptions for `ostree-commit` allowing to sign the commit. Signed-off-by: Denis Pynkin <denis.pynkin@collabora.com>
| * man: document `ostree sign`Denis Pynkin2020-03-251-0/+152
| | | | | | | | | | | | Add man page for `ostree sign`. Signed-off-by: Denis Pynkin <denis.pynkin@collabora.com>
* | find-remotes: Add a --mirror optionMatthew Leeds2020-03-281-0/+10
|/ | | | | | This will be useful in the unit test added by the next commit. It just passes OSTREE_REPO_PULL_FLAGS_MIRROR to the call to ostree_repo_pull_from_remotes_async().
* bin/diff: Clarify documentation around REV and DIR syntaxJonathan Lebon2020-03-181-2/+2
| | | | Related: #2032
* Update ostree-pull.xml with info about pulled refs location and accessclime2020-02-191-0/+8
|
* bin/show: Add --print-sizes option to show sizes metadataDan Nicholson2020-01-201-0/+11
| | | | | Use the new `ostree_commit_get_object_sizes()` API to read the `ostree.sizes` commit metadata and print a summary.
* bin/refs: Allow overwriting existing refDan Nicholson2019-06-121-0/+10
| | | | | | | | | | | | | | Currently if you want to update a non-alias ref, you need to first check if it exists and use either `ostree refs --create` or `ostree reset` as appropriate. That's unnecessarily complicated and is much less convenient than the old `write-refs` builtin that simply called `ostree_repo_set_ref_immediate()` without any checks. Add a `--force` option to be used with `--create` that does not raise an error when the destination ref already exists. Closes: #1870 Approved by: jlebon
* man: Document ability to commit archives from stdinTristan Van Berkom2019-05-281-1/+1
| | | | | Closes: #1862 Approved by: jlebon
* Add sysroot.bootloader repo config keyRobert Fairley2019-03-011-16/+52
| | | | | | | | | | | | | | | | | | | | | | | | | | | | The sysroot.bootloader key configures the bootloader that OSTree uses when deploying a sysroot. Having this key allows specifying behavior not to use the default bootloader backend code, which is preferable when creating a first deployment from the sysroot (#1774). As of now, the key can take the values "auto" or "none". If the key is not given, the value defaults to "auto". "auto" causes _ostree_sysroot_query_bootloader() to be used when writing a new deployment, which is the original behavior that dynamically detects which bootloader to use. "none" avoids querying the bootloader dynamically. The BLS config fragments are still written to sysroot/boot/loader/entries for use by higher-level software. More values can be supported in future to specify a single bootloader, different behavior for the bootloader code, or a list of bootloaders to try. Resolves: #1774 Closes: #1814 Approved by: jlebon
* man/ostree-config: Consistently use GROUPNAME placeholderMatthew Leeds2019-03-011-5/+3
| | | | | | | | It doesn't make much sense to use SECTIONNAME in some places and GROUPNAME in others when they mean the same thing. Closes: #1743 Approved by: cgwalters
* ostree/config: Add an "unset" operationMatthew Leeds2019-03-011-3/+27
| | | | | | | | | | | | | | | Currently there's a way to set a key to the empty string but there's no way to unset it completely (remove the key from the group). This might be helpful for instance if you want to temporarily set "core.lock-timeout-secs" to a specific value for the duration of one operation and then return it to the default after that operation completes. This commit implements an "unset" operation for the config command, adds a unit test, and updates the man page. Closes: #1743 Approved by: cgwalters
* man: Document ostree --versionMatthew Leeds2019-02-141-0/+9
| | | | | Closes: #1820 Approved by: rfairley
* remote-add: Add --force option to add or replace remoteDan Nicholson2019-02-081-0/+8
| | | | | | | | | This uses the OSTREE_REPO_REMOTE_CHANGE_REPLACE operation to add a remote or replace an existing one. This is roughly the opposite of --if-not-exists and will raise an error if both options are passed. Closes: #1166 Approved by: cgwalters
* man: Document remote add --if-not-exists optionDan Nicholson2019-02-081-0/+8
| | | | | Closes: #1166 Approved by: cgwalters
* man/ostree.repo-config: Update min-free-space-* docsUmang Jain2018-12-121-2/+9
| | | | | | | | Docs should reflect the changes done in PR: https://github.com/ostreedev/ostree/pull/1779 Closes: #1786 Approved by: jlebon
* lib/repo: Search a list of paths in gpgkeypath for gpg keysrfairley2018-11-211-16/+21
| | | | | | | | | | | | | | | | | | This allows specifying gpgpath as list of paths that can point to a file or a directory. If a directory path is given, paths to all regular files in the directory are added to the remote as gpg ascii keys. If the path is not a directory, the file is directly added (whether regular file, empty - errors will be reported later when verifying gpg keys e.g. when pulling). Adding the gpgkeypath property looks like: ostree --repo=repo remote add --set=gpgpath="/path/key1.asc,/path/keys.d" R1 https://example.com/some/remote/ostree/repo Closes #773 Closes: #1773 Approved by: cgwalters
* Rename core.repo-finders to core.default-repo-findersMatthew Leeds2018-10-231-1/+1
| | | | | | | | | | | This renames a config key to make its semantics more obvious. Despite what the commit message says, it only applies when a set of repo finders is not specified (either on the command line or in a library API call). This also renames the corresponding ostree_repo_get function. We can do this since it hasn't been released yet. Closes: #1763 Approved by: pwithnall
* lib/repo-pull: Disable LAN updates by defaultMatthew Leeds2018-10-211-2/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This commit disables searching on the local network for refs, unless explicitly requested by the user either by changing the value of the "core.repo-finders" config option, or by passing an OstreeRepoFinderAvahi to ostree_repo_find_remotes_async() / ostree_repo_finder_resolve_async(), or by specifying "lan" in the --finders option of the find-remotes command. The primary reason for this is that ostree_repo_find_remotes_async() takes about 40% longer to complete with the LAN finder enabled, and that API is used widely (e.g. in every flatpak operation). It's also probable that some users don't want ostree doing potentially unexpected traffic on the local network, even though everything pulled from a peer is GPG verified. Flathub will soon deploy collection IDs to everyone[1] so these code paths will soon see a lot more use and that's why this change is being made now. Endless is the only potential user of the LAN updates feature, and we can revert this patch on our fork of ostree. For it to be used outside Endless OS we will need to upstream eos-updater-avahi and eos-update-server into ostree. [1] https://github.com/flathub/flathub/issues/676 Closes: #1758 Approved by: cgwalters
* Allow disabling pulling from LAN/USB/InternetMatthew Leeds2018-10-211-0/+14
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Currently libostree essentially has two modes when it's pulling refs: the "legacy" code paths pull only from the Internet, and the code paths that are aware of collection IDs try to pull from the Internet, the local network, and mounted filesystems (such as USB drives). The problem is that while we eventually want to migrate everyone to using collection IDs, we don't want to force checking LAN and USB sources if the user just wants to pull from the Internet, since the LAN/USB code paths can have privacy[1], security[2], and performance[3] implications. So this commit implements a new repo config option called "repo-finders" which can be configured to, for example, "config;lan;mount;" to check all three sources or "config;mount;" to disable searching the LAN. The set of values mirror those used for the --finders option of the find-remotes command. This configuration affects pulls in three places: 1. the ostree_repo_find_remotes_async() API, regardless of whether or not the user of the API provided a list of OstreeRepoFinders 2. the ostree_repo_finder_resolve_async() / ostree_repo_finder_resolve_all_async() API 3. the find-remotes command This feature is especially important right now since we soon want to have Flathub publish a metadata key which will have Flatpak clients update the remote config to add a collection ID.[4] This effectively fixes https://github.com/flatpak/flatpak/issues/1863 but I'll patch Flatpak too, so it doesn't pass finders to libostree only to then have them be removed. [1] https://github.com/flatpak/flatpak/issues/1863#issuecomment-404128824 [2] https://github.com/ostreedev/ostree/issues/1527 [3] Based on how long the "ostree find-remotes" command takes to complete, having the LAN finder enabled slows down that step of the pull process by about 40%. See also https://github.com/flatpak/flatpak/issues/1862 [4] https://github.com/flathub/flathub/issues/676 Closes: #1758 Approved by: cgwalters
* man/create-usb: Don't recommend summary updatesMatthew Leeds2018-10-021-5/+0
| | | | | | | | | | | | | | | | | This commit removes the recommendation in the create-usb man page for the user to update the summary in the source repo before using the create-usb command. I'm not sure where I got the idea that create-usb depends on a summary in the source repo. I went back to the first commit that introduced the create-usb command and even using that a summary isn't required, so it seems unlikely that this changed recently. This is good news because the exclusive lock that's taken for summary updates has been causing problems on Endless (due to other processes having a lock for the duration of the 30 second acquire time out period). Closes: #1746 Approved by: cgwalters
* man/ostree.repo-config: Document locking optionsMatthew Leeds2018-09-281-0/+17
| | | | | | | | This commit documents the "locking" and "lock-timeout-secs" options which have been around for a few releases. Closes: #1737 Approved by: jlebon
* create-usb: Add a --commit optionMatthew Leeds2018-09-251-0/+9
| | | | | | | | | | | | | | | | | | | | | | | Currently on Endless OS, the OSTree ref for the operating system is something like os/eos/amd64/eos3, so that's what gets passed to `ostree create-usb` when copying the OS to a USB drive (for offline updates). However, when eos-updater checks for updates it pulls the metadata for a candidate commit and in so doing updates that eos3 ref to point to the partial commit being examined as a potential update rather than the deployed commit. This causes `ostree create-usb` to fail with an error like "No such metadata object 7fb045cb2d1f1f3a81bfc157c6128ff443eb56350315b9536bdb56aee0659863.dirtree". OSTree creates deployment refs that look like "ostree/1/1/0" to maintain a pointer to the deployed commit, but create-usb can't use these because it shows up in the summary as just a ref, not a collection-ref. So this commit adds a --commit option to the create-usb command, so we can use the appropriate ref but copy the deployed commit rather than a (potentially partial) update commit. Closes: #1735 Approved by: cgwalters
* man/config: Keep cmdsynopsis for GROUP.KEY versionJonathan Lebon2018-08-211-1/+8
| | | | | | | | It's nice to still show the previous usage since it's easier to type in trivial cases like `core.mode`. Closes: #1710 Approved by: sinnykumari
* src/ostree: Add --group option to ostree configSinny Kumari2018-08-201-3/+3
| | | | | | | | | | | | | | | | | | | | | Fetching value from a repo config using 'ostree config get SECTIONNAME.KEYNAME' didn't work in some cases like when having dots in Group Name entry. As per Desktop entry file specification, Group Name may contain all ASCII characters except for [ and ] and control characters. Link - https://specifications.freedesktop.org/desktop-entry-spec/desktop-entry-spec-1.1.html Having --group option will help user to clearly specify Group Name and get desired result. It also adds test for ostree config get|set and bash completion for --group option Fixes https://github.com/ostreedev/ostree/issues/1565 Closes: #1696 Approved by: cgwalters
* man/ostree.repo-config: improve min-free-space-* docsWill Thompson2018-08-191-14/+26
| | | | | | | | | | | | | | | | 0 is not a valid value (the units are required), and 1MB is taken to mean 1048576 bytes, not 1000000 bytes (unlike other human-readable sizes in libostree, which are formatted by g_format_size(), and hence use power-of-10 units). It's probably a bit late to change this latter point, but the documentation should mention it. Define 'MB' etc. more precisely; include the byte counts in the examples; and improve the formatting of the min-free-space-* paragraphs. Signed-off-by: Will Thompson <wjt@endlessm.com> Closes: #1706 Approved by: mwleeds
* lib/config: Deprecate commit-update-summary optionJonathan Lebon2018-08-011-10/+10
| | | | | | | | | | | | | | | | Now that we have `auto-update-summary`, there is no point in having `commit-update-summary`. The latter also only had an effect through the `commit` CLI command, whereas the former is embedded directly in libostree. There is one corner case that slips through: `commit` would update the summary file even if orphan commits were created, which we no longer do here. I can't imagine anyone relying on this, so it seems safe to drop. Closes: #1689 Closes: #1693 Approved by: mwleeds
* lib/config: Rename change-update-summary to auto-...Jonathan Lebon2018-08-011-1/+1
| | | | | | | | | Mildly bikeshed, though I find the name `auto-update-summary` to be easier to grok than `change-update-summary`. I think it's because it can be read as "verb-verb-noun" rather than "noun-verb-noun". Closes: #1693 Approved by: mwleeds
* config: Add a core/change-update-summary optionMatthew Leeds2018-07-301-0/+10
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | This commits adds and implements a boolean repo config option called "change-update-summary" which updates the summary file every time a ref changes (additions, updates, and deletions). The main impetus for this feature is that the `ostree create-usb` and `flatpak create-usb` commands depend on the repo summary being up to date. On the command line you can work around this by asking the user to run `ostree summary --update` but in the case of GNOME Software calling out to `flatpak create-usb` this wouldn't work because it's running as a user and the repo is owned by root. That strategy also means flatpak can't update the repo metadata refs for fear of invalidating the summary. Another use case for this relates to LAN updates. Specifically, the component of eos-updater that generates DNS-SD records advertising ostree refs depends on the repo summary being up to date. Since ostree_repo_regenerate_summary() now takes an exclusive lock, this should be safe to enable. However it's not enabled by default because of the performance cost, and because it's more useful on clients than servers (which likely have another mechanism for updating the summary). Fixes https://github.com/ostreedev/ostree/issues/1664 Closes: #1681 Approved by: jlebon
* man/ostree.repo-config: Update min-free-space-* docsMatthew Leeds2018-07-251-5/+8
| | | | | | | | | Now that it's possible to have both min-free-space-size and min-free-space-percent set in a repo config, update the docs to make the behavior clear in that case. Closes: #1687 Approved by: jlebon
* lib/repo: Allow min-free-space-size and -percent to co-existUmang Jain2018-07-201-1/+4
| | | | | | | | | | | | | | | | | | | | | | Previously, we would error out if both of the options were mentioned in the config file (even if one of them is disabled with 0). There were few suggestions that this behavior was not quite right. Therefore, instead of throwing error and exiting, it's preferred to warn the user. Hence, the solution that worked out is: * Allow both options to exist simulateneously * Check each config's value and decide: * If both are present and are non-zero, warn the user. Also, prefer to use min-free-space-size over the another. * If both are absent, then use -percent=3% as fallback * Every other case is valid hence, no warning https://phabricator.endlessm.com/T13698 (cherry picked from commit be68991cf80f0aa1da7d36ab6e1d2c4d6c7cd3fb) Signed-off-by: Robert McQueen <rob@endlessm.com> Closes: #1685 Approved by: cgwalters
* ostree/pull: Add network-retries command line optionRobert Fairley2018-07-051-0/+8
| | | | | | | | | | | | This exposes a way to specify from the command line the number of times to retry each download after a network error. If a negative value is given, then the default number of retries (5) is used. If 0 is given, then errors are returned without retrying. closes #1659 Closes: #1669 Approved by: jlebon
* lib/repo: Minor fixes around min-free-spaceUmang Jain2018-07-031-3/+3
| | | | | | | | | | | Summary: * Remove a useless if condition in prepare_transaction() * Fix glnx_throw error propagation * Integer overflow check while parsing min-free-space-size config * Documentation fixes Closes: #1663 Approved by: jlebon
* man/ostree.repo-config: Document collection-idMatthew Leeds2018-06-261-0/+9
| | | | | | | | The collection-id option in the core section was recently made public but not documented. Closes: #1646 Approved by: cgwalters