summaryrefslogtreecommitdiff
path: root/src/libostree/ostree-autocleanups.h
Commit message (Collapse)AuthorAgeFilesLines
* tree-wide: Run clang-formatColin Walters2023-05-021-1/+2
| | | | | 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
|
* lib/sign: allow to build with glib version less than 2.44Denis Pynkin2020-03-251-0/+1
| | | | | | | Ubuntu 14.04 uses glib-2.40 which have no some shiny macroses for interface declaration. Signed-off-by: Denis Pynkin <denis.pynkin@collabora.com>
* core: Add OstreeCommitSizesEntry typeDan Nicholson2020-01-201-0/+1
| | | | | This will be used when reading out entries in the `ostree.sizes` metadata. Each entry corresponds to an object in the metadata array.
* lib/kargs: Don't expose OstreeKernelArgs autoptr cleanup on old glibDan Nicholson2019-07-271-0/+1
| | | | | | | | | | | | | | Move the OstreeKernelArgs autoptr cleanup definition to ostree-autocleanups.h, which will only expose the definitions when building ostree or if glib is new enough. The include of ostree-kernel-args.h needs to be moved before ostree-autocleanups.h in ostree.h so that the OstreeKernelArgs type is declared when the autoptr cleanup is defined. All the places it's used already pull in libglnx.h first so that the compat macros are picked up if glib it too old during the ostree build. Closes: #1892 Approved by: jlebon
* Revert "lib: Fix building against old glib versions"Matthew Leeds2018-06-071-1/+0
| | | | | | | | | | This reverts commit f1d9196076d4aea1f64e0d2cbd17bfa2891b8c4c. Since libglnx.h does not get installed, it can't be included in ostree-autocleanups.h, which is included by ostree.h. Closes: #1615 Approved by: jlebon
* Make P2P API public (no longer experimental)Matthew Leeds2018-06-041-2/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Currently the API that allows P2P operations (e.g. pulling an ostree ref from a LAN or USB source) is hidden behind the configure flag --enable-experimental-api. This commit makes the API public and makes that flag essentially a no-op (leaving it in place in case we want to use it again in the future). The P2P API has been tested over the last several months and proven to work. This means that since we're no longer using the "experimental" feature flag, P2P builds of Flatpak will fail when using versions of OSTree from this commit onwards, until Flatpak is patched in the near future. If you want to build Flatpak < 0.11.8 with P2P enabled and link against OSTree 2018.6, you'll have to patch Flatpak. However, since Flatpak won't yet have a hard dependency on OSTree 2018.6, it needs a new way to determine if the P2P API in OSTree is available, so this commit adds a "p2p" feature flag. This way the feature set is more semantically correct than if we had continued to use the "experimental" feature flag. In addition to making the P2P API public, this commit makes the P2P unit tests run by default, removes the f27-experimental CI instance that's no longer needed, changes a few man pages to reflect the changes, and updates the bash completion script to accept the new commands and options. Closes: #1596 Approved by: cgwalters
* lib: Fix building against old glib versionsMatthew Leeds2018-06-041-0/+1
| | | | | | | | | This commit includes libglnx.h in ostree-autocleanups.h, so we get the g_autoptr backports wherever they're needed. Also, remove the "#include libglnx.h" lines elsewhere that are no longer needed. Closes: #1596 Approved by: cgwalters
* lib/repo: Enable locking by default, but drop external APIColin Walters2018-04-301-1/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The code has been sitting around for a while but since I disabled it by default, I doubt anyone is really using it or relying on it. This patch and turns on locking by default, and also drops the API which was only public in the experimental API builds. Conceptually these are two distinct things, and we may actually want to split up the patches. I don't think this will break anyone, but it's hard to say for sure. It's also going to be hard to find out until we actually release I suspect... But anyone who is broken should be able to add `locking=false` into their repo config. On the flip side Endless has been shipping with this enabled and it is reported to help. The reason to drop the APIs: I'm a bit concerned about the interactions over time between libostree's use of the API and any apps that start using it. For example, if an app specifies a SHARED lock in their code, then later internally we decide to temporarily grab an `EXCLUSIVE`, but the app had a second thread/process that was `EXCLUSIVE` already, and that process was waiting on the first bit of code, then we could deadlock. I can't think of a real world situation where this would happen yet though. We are likely to in the future have say `fsck` take an external lock, `checkout` grab a shared one, etc. Closes: #1555 Approved by: jlebon
* 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
* lib/repo: Add locking auto cleanup handlerDan Nicholson2017-12-051-0/+1
| | | | | | | | | | | | | | | | | Define an auto cleanup handler for use with repo locking. This is based on the existing auto transaction cleanup. A wrapper for ostree_repo_lock_push() is added with it. The intended usage is like so: g_autoptr(OstreeRepoAutoLock) lock = NULL; lock = ostree_repo_auto_lock_push (repo, lock_type, cancellable, error); if (!lock) return FALSE; The functions and type are marked to be skipped by introspection since I can't see them being usable from bindings. Closes: #1343 Approved by: cgwalters
* lib/repo-finder: Add OstreeRepoFinderOverridePhilip Withnall2017-10-191-0/+1
| | | | | | | | | | | This is another OstreeRepoFinder implementation; it returns results from a given set of URIs. It’s designed to be used for implementing user overrides to other repo-finders, or for implementing unit tests. Signed-off-by: Philip Withnall <withnall@endlessm.com> Closes: #1281 Approved by: mwleeds
* tree-wide: Remove Emacs modelinesColin Walters2017-09-211-2/+1
| | | | | | | | | We added a `.dir-locals.el` in commit: 9a77017d87b74c5e2895cdd64ad098018929403f There's no need to have it per-file, with that people might think to add other editors, which is the wrong direction. Closes: #1206 Approved by: jlebon
* lib/repo-finder: Add Avahi based OstreeRepoFinder implementationPhilip Withnall2017-06-261-0/+1
| | | | | | | | | | | | | | | | | | | | | This is a more complex implementation of OstreeRepoFinder which resolves ref names to remote URIs by looking for refs advertised by peers on the local network using DNS-SD records and mDNS (Avahi). The idea is to allow OS and app updates to be propagated over local networks, without the internet. It requires an OSTree server and code to generate the DNS-SD adverts in order to be fully functional — support for this will be added separately. Unit tests are included. Includes fixes by Krzesimir Nowak <krzesimir@kinvolk.io>. Signed-off-by: Philip Withnall <withnall@endlessm.com> Closes: #924 Approved by: cgwalters
* lib/repo-finder: Add mount based OstreeRepoFinder implementationPhilip Withnall2017-06-261-0/+1
| | | | | | | | | | | | | | | | | | | | This is a basic implementation of OstreeRepoFinder which resolves ref names to remote URIs by looking for them on any currently mounted removable storage volumes. The idea is to support OS and app updates via USB stick. Unit tests are included. This bumps libostree’s maximum GLib dependency from 2.44 to 2.50 for g_drive_is_removable(). If GLib 2.50 is not available, the call which needs it will be omitted and the OstreeRepoFinderMount implementation will scan all volumes (not just removable ones); this is a performance hit, but not a functionality hit. Signed-off-by: Philip Withnall <withnall@endlessm.com> Closes: #924 Approved by: cgwalters
* lib/repo-finder: Add config-file based OstreeRepoFinder implementationPhilip Withnall2017-06-261-0/+1
| | | | | | | | | | | | | This is a basic implementation of OstreeRepoFinder which resolves ref names to remote URIs by looking their collection IDs up in the local configuration of remotes who have their collection-id key set. Unit tests are included. Signed-off-by: Philip Withnall <withnall@endlessm.com> Closes: #924 Approved by: cgwalters
* lib/repo-finder: Add basic support for finding remote URIs by ref namePhilip Withnall2017-06-261-0/+3
| | | | | | | | | | | | | | | | | | | | Add an initial OstreeRepoFinder interface (but no implementations), which will find remote URIs by ref names and collection IDs, the combination of which is globally unique. The new API is used in a new ostree_repo_find_updates() function, which resolves a list of ref names to update into a set of remote URIs to pull them from, which can be treated as mirrors. It is an attempt to generalise resolution of the URIs to pull from, and to generalise determination of the order and parallelisation which they should be downloaded from in. Includes fixes by Krzesimir Nowak <krzesimir@kinvolk.io>. Signed-off-by: Philip Withnall <withnall@endlessm.com> Closes: #924 Approved by: cgwalters
* lib/ref: Add OstreeCollectionRef type for globally unique refsPhilip Withnall2017-06-261-0/+2
| | | | | | | | | | | | | | | | | | This is a type representing the tuple (collection ID, ref name), which is guaranteed to be globally unique. It will be used in upcoming commits. It introduces the concept of a ‘collection’ which is a unique, curated set of refs which lie in the same trust domain (i.e. all signed by the same key and validated by the same developer). Flathub might be a collection, for example; or the set of OS refs coming from a particular OS vendor. It includes a function for validating collection IDs. Signed-off-by: Philip Withnall <withnall@endlessm.com> Closes: #924 Approved by: cgwalters
* libostree: Make OstreeRemote a public and internal APIPhilip Withnall2017-05-081-0/+4
| | | | | | | | | | | | | Previously it was static to ostree-repo.c. Make it usable throughout libostree so it can be used by an upcoming commit, but also expose the typedef and reference counting functions so that opaque OstreeRemote pointers can be used by user code, in anticipation of exposing more of its API publicly in future. Signed-off-by: Philip Withnall <withnall@endlessm.com> Closes: #832 Approved by: cgwalters
* build: Expose autocleanups unconditionally, start using themColin Walters2017-03-281-5/+1
| | | | | | | | | | | | | | | | | I'd like to do this in rpm-ostree at least. Originally I was looking at porting to `G_DECLARE_FINAL_TYPE` but eh, this is easier for now and won't bump our GLib dependency which might matter for our embedded users. For now I just did a few replacements in the `remote` command line. A full port can come as we do other code cleanups. This will actually break the flatpak build right now, but that's easy to fix. And we concluded in e.g. https://bugs.freedesktop.org/show_bug.cgi?id=95065#c5 it's a bug for downstream projects to do that. Closes: #756 Approved by: jlebon
* build: Allow ostree to use g_autoptr on its types internallyKrzesimir Nowak2016-05-171-1/+4
| | | | | | | | As an example, I g_autoptred one OstreeRepo in the "ostree init" command. Closes: #295 Approved by: cgwalters
* libostree: Add g_autoptr() support for the public typesKrzesimir Nowak2016-05-171-0/+65
To avoid breaking the ostree users we hide the autoptr setup behind an OSTREE_WITH_AUTOCLEANUPS variable. The variable is set to 0 by default, so users that want to start using them, have to define the variable themselves to 1. Probably after some transition period, the variable will be set 1 by default. This is conditional on GLib >= 2.44.0 being available. It does not bump ostree's dependency on GLib. Closes: #295 Approved by: cgwalters