summaryrefslogtreecommitdiff
path: root/src/ostree/ot-builtin-create-usb.c
Commit message (Collapse)AuthorAgeFilesLines
* tree-wide: Run clang-formatColin Walters2023-05-021-43/+52
| | | | | This is a one-time tree wide reformatting to ensure consistency going forward.
* Update FSF license notices to use URL instead of addressJoseph Marrero2021-12-071-3/+1
|
* create-usb: Add a --commit optionMatthew Leeds2018-09-251-1/+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
* create-usb: Always use archive modeMatthew Leeds2018-09-251-10/+6
| | | | | | | | | | | | | | | | | | | | | | | Change the create-usb command so that it always creates the destination repository using the "archive" mode, rather than using archive mode when xattrs aren't supported and bare-user otherwise. This has a few advantages: 1. The archive mode works with FAT filesystems, which is what most USB drives are, and which doesn't support xattrs. 2. At least in some quick testing I did, archive mode is about twice as performant as bare-user mode, in terms of how long it takes for the create-usb command to complete. 3. This ensures that a tool can safely change the permissions on ".ostree/repo" and subdirectories after create-usb completes, which is important for Endless since otherwise you can't use `ostree create-usb` as root and then `flatpak create-usb` as a non-root user on the same USB drive (or in other words copy OS updates and apps to the same USB). Closes: #1733 Approved by: cgwalters
* create-usb: Tweak docs for --destination-repoMatthew Leeds2018-06-281-1/+1
| | | | | | | | Make it show up in the help output as --destination-repo=DEST so it's clear that it takes an argument. Closes: #1656 Approved by: jlebon
* man: Add man page for create-usbMatthew Leeds2018-04-191-1/+0
| | | | | Closes: #1543 Approved by: cgwalters
* create-usb: Update summary in destination repoMatthew Leeds2018-04-191-5/+1
| | | | | | | | | | | | | | | | | | | | | | | | Currently the create-usb command only generates a summary file in the destination repo if one doesn't already exist, which means if one does exist it becomes out of date after the new refs are pulled. This commit makes ostree regenerate the summary regardless of whether it exists, so that consumers such as ostree_repo_find_remotes_async() (and at a higher level, GNOME Software) get an accurate picture of the refs available on the mount. This commit also updates one of the unit tests to check that the summary is accurate after a second pull into the same repo. Since any user of the create-usb command is using collection IDs they are new enough to be using the unsigned summary support. While it would technically be possible to use summary signatures on a repo and use the create-usb command on it (a scenario broken by this commit), the create-usb command is designed for P2P distribution of refs, which requires use of unsigned summary support. So this is a legitimate narrowing of the tool. Fixes https://github.com/ostreedev/ostree/issues/1465 Closes: #1543 Approved by: cgwalters
* Add SPDX-License-Identifier to source filesMarcus Folkesson2018-01-301-0/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | SPDX License List is a list of (common) open source licenses that can be referred to by a “short identifier”. It has several advantages compared to the common "license header texts" usually found in source files. Some of the advantages: * It is precise; there is no ambiguity due to variations in license header text * It is language neutral * It is easy to machine process * It is concise * It is simple and can be used without much cost in interpreted environments like java Script, etc. * An SPDX license identifier is immutable. * It provides simple guidance for developers who want to make sure the license for their code is respected See http://spdx.org for further reading. Signed-off-by: Marcus Folkesson <marcus.folkesson@gmail.com> Closes: #1439 Approved by: cgwalters
* ostree: provide command description in a better placeRuixin Bao2017-10-201-1/+1
| | | | | | | | | | | | | | | | | | | This is similar idea as https://github.com/projectatomic/rpm-ostree/pull/916/commits/5c0bf889155573feec108501ce849ac09a0c9567, The duplicated description is now removed, and the description of the command is now displayed beneath the Usage. For example: ostree cat -h will output the following: "Usage: ostree cat [OPTION?] COMMIT PATH... Concatenate contents of files" Closes: #1267 Approved by: cgwalters
* ostree: move flags into command struct, pass down through builtinsRuixin Bao2017-10-201-1/+2
| | | | | | | | | | | | | | | | | | | | This is a similar approach as https://github.com/projectatomic/rpm-ostree/commit/12c34bb2491a07079c911ef26401fee939e5573c. One thing to note is when we parse the admin related functions, we still keep the old admin related flags, and added a new parameter to represent the command struct. This allows us to identify the caller of the function, making it easier for us to possibly deduplicate the subcommand handling in the future. A similar approach is done in rpm-ostree: https://github.com/projectatomic/rpm-ostree/commit/83aeb018c1012c7a43783c09b74ec71bc9c45826 This also makes it easier for us to change the prototype of the function. If we want to add something new in the future, we won't need to touch every prototype. Closes: #1267 Approved by: cgwalters
* Cope with xattr syscalls raising EOPNOTSUPPSimon McVittie2017-10-161-1/+1
| | | | | | | | | | | ENOTSUP and EOPNOTSUPP are numerically equal on most Linux ports, but inexplicably differ on PA-RISC (hppa) and possibly other rare architectures. Signed-off-by: Simon McVittie <smcv@collabora.com> Closes: #1275 Approved by: cgwalters
* tree-wide: Update to new libglnx fd APIsColin Walters2017-10-111-1/+1
| | | | | | | | | | | | | | | | | | | This ends up a lot better IMO. This commit is *mostly* just `s/glnx_close_fd/glnx_autofd`, but there's also a number of hunks like: ``` - if (self->sysroot_fd != -1) - { - (void) close (self->sysroot_fd); - self->sysroot_fd = -1; - } + glnx_close_fd (&self->sysroot_fd); ``` Update submodule: libglnx Closes: #1259 Approved by: jlebon
* create-usb: Add a create-usb command to complement OstreeRepoFinderMountPhilip Withnall2017-09-271-0/+276
This can be used to put OSTree repositories on USB sticks in a format recognised by OstreeRepoFinderMount. Signed-off-by: Philip Withnall <withnall@endlessm.com> Closes: #1182 Approved by: cgwalters