summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
* Release 2016.9v2016.9Colin Walters2016-08-312-2/+4
| | | | | Closes: #481 Approved by: jlebon
* repo-pull: properly store the cancellableGeorges Basile Stavracas Neto2016-08-311-0/+2
| | | | | | | | | | | | | | | | | | | | | OSTree function ostree_repo_pull_with_options starts a series of operations that makes heavy use of the PullData's cancellable. This isn't effective, however, since nowhere in the code the OtPullData.cancellable field is set. This is visible, for example, when trying to cancel a Flatpak pull and nothing happens, because the cancellable is not properly passed to the pull data. Fix that by setting the cancellable field of the pull data. It owns a reference for safety reasons, and unreferences it at the end of the operation. ostreedev/ostree#482 Closes: #483 Approved by: cgwalters
* switchroot: Move `path_is_on_readonly_fs` to header fileWilliam Manley2016-08-303-53/+22
| | | | | | | | | | This simplifies the build system by removing the need for `libswitchroot-mountutil.la`. Original idea by @cgwalters in #477. Closes: #478 Approved by: cgwalters
* switchroot: Replace custom error printing with err/warn functions from libcWilliam Manley2016-08-304-135/+29
| | | | | | | | | | | | | | | | The `warn()` libc extension has exactly the same behaviour as our own `perrorv` function, but is available in (at least) glibc and musl. As an added bonus the similar function `err()` which will exit with an error code afterwards. This implementation is tidier and allows us to get rid of our own `perrorv`. It paves the way to removing `ostree-mount-util.c` to simplify the build scripts. Original idea by @cgwalters in #477. Closes: #478 Approved by: cgwalters
* ostree-prepare-root: Allow building statically with muslWilliam Manley2016-08-302-4/+34
| | | | | | | | | | | | | | | | | | | | | If the `--with-static-compiler=musl-gcc` configure flag is given. ostree-prepare-root can be used as init in a system without a populated /lib. To support this use case we need to link statically as we will be unable to locate libc.so at run time if it's not installed in /lib. We support building ostree-prepare-root with a different compiler to the rest of ostree so we can use musl rather than glibc. This reduces the size of the executable significantly: from ~700K -> ~30K. We have to use `_SCRIPTS` here to get autotools to install this as an executable but without generating rules to make it itself which we have specified manually. See https://lists.gnu.org/archive/html/help-gnu-utils/2007-01/msg00007.html for advice on using autotools in this manner. Closes: #477 Approved by: cgwalters
* switchroot: Fix building with musl libcWilliam Manley2016-08-301-0/+6
| | | | | | | | | | | | | | | POSIX and GNU define conflicting versions of `strerror_r`. The GNU version returns the string but doesn't necessilary write into buf. The POSIX version writes into buf and returns the length but doesn't necessilary append a terminate the string with a NUL if it's too long to fit in buf. This commit fixes building ostree-prepare-root with musl libc. The stripped static build with musl on my machine is 30K vs. 724K with glibc static and 11K with glibc shared. Closes: #477 Approved by: cgwalters
* commit: Don't delete tmp/cache dirColin Walters2016-08-291-0/+6
| | | | | | | | | | | | | | | We hold a fd open on this, and it's basically now expected to be immortal. Confer that status. This was showing up in flatpak crashers, because we'd get an unexpected errno. (I didn't test this fixes the crasher, but it's clearly right) https://bugzilla.redhat.com/show_bug.cgi?id=1347293 Closes: #476 Approved by: alexlarsson
* sysroot: Add a flag to suppress post-deploy cleanupColin Walters2016-08-292-3/+8
| | | | | | | | | | | | | I noticed seeing the output of `prune` twice in rpm-ostree, and had always wondered why. When reading the rpm-ostree code to fix something else, reasons, I noticed the reason - we were pruning once here, and then once after rpm-ostree regenerates its "base" refs. There's no reason to clean twice, so let's add a flag so rpm-ostree can suppress doing it inside libostree. Closes: #474 Approved by: giuseppe
* sysroot: Drop unnecessary `dup()` invocationColin Walters2016-08-281-13/+1
| | | | | | | | | | | It's close-on-exec, not close-on-fork. I was clearly confused when writing this; it works just fine to reference the fd in the child and `fchdir()` before exec. So drop the unnecessary duplication. Just noticed this while reading the code for a random other reason. Closes: #473 Approved by: giuseppe
* u-boot: Merge ostree's and systems uEnv.txtGatis Paeglis2016-08-275-3/+61
| | | | | | | | | | | | | | | | | | | This is a proper fix for: https://bugzilla.gnome.org/show_bug.cgi?id=755787 With this patch, an admin (system builder) can now: 1) Edit /usr/lib/ostree-boot/uEnv.txt 2) Deploy the new tree. OSTree will append system's uEnv.txt to the OSTree's managed uEnv.txt (loader/uEnv.txt). It is common for u-boot systems to read in an extra env from external /uEnv.txt. The same file OSTree uses to pass in its env. With this patch /uEnv.txt now contains OSTree's env + custom env added by system builders. Closes: #466 Approved by: cgwalters
* pull: use same name for parameter and documentation commentGiuseppe Scrivano2016-08-272-2/+2
| | | | | | | | | | | Fixes this warning: src/libostree/ostree-repo-pull.c:2162: Warning: OSTree: ostree_repo_pull_with_options: unknown parameter 'remote_name_or_baseurl' in documentation comment, should be 'remote_name' Signed-off-by: Giuseppe Scrivano <gscrivan@redhat.com> Closes: #472 Approved by: jlebon
* lib: Add an API to list only "our" objects, fix prune to use itColin Walters2016-08-254-5/+43
| | | | | | | | | | | | When doing a prune, we should not try to delete objects in parent repos, since it'll fail. There is a bigger discussion about the semantics of `parent=` to be had, but this will fix trying to use `ostree prune --repo=/ostree/repo/extensions/rpmostree/pkgcache`. Closes: https://github.com/ostreedev/ostree/issues/467 Closes: #471 Approved by: jlebon
* repo: Add prefixes to errors for querying size/deletingColin Walters2016-08-251-2/+2
| | | | | | | | I hit these while causing errors in prune. Let's add the specific object we were looking for. Closes: #471 Approved by: jlebon
* pull: Make .commitpartial files world readableColin Walters2016-08-251-1/+1
| | | | | | | | | | | In CentOS, these happened to appear in a repo that is served via rsync, and having them not be world-readable caused mirroring tools to fail. They aren't secret, so don't make them so. Closes: #468 Approved by: giuseppe
* pull_with_options: fix stray return FALSEJonathan Lebon2016-08-181-1/+1
| | | | | Closes: #465 Approved by: cgwalters
* pull_with_options: allow GPG verification overrideJonathan Lebon2016-08-181-13/+18
| | | | | | | | | We used to only look at the "gpg-verify" and "gpg-verify-summary" options when we're passed a local URL. Make these options also have an effect in the configured remote case. Closes: #465 Approved by: cgwalters
* pull_with_options: fix remote parameter name & descJonathan Lebon2016-08-181-1/+1
| | | | | Closes: #465 Approved by: cgwalters
* rofiles-fuse: Rework to be based on nlinkColin Walters2016-08-161-88/+43
| | | | | | | | | | | | | Programs like `useradd` try to `open(/etc/passwd, O_RDWR)` to append, which didn't work with rofiles-fuse. Thinking about this, I realized that there's a simpler algorithm for "can we write to this file" which is "does it have a hardlink count <= 1"? Switching to this both drops complexity (we no longer need to keep a hash table of files we created), and also lets useradd work. Closes: #462 Approved by: jlebon
* test-rofiles-fuse: Actually check out via hardlinksColin Walters2016-08-161-1/+1
| | | | | | | | | | | | | The test suite was actually doing something before, just not quite what I intended. Without `-U` for bare-user checkouts we end up doing a copy. Now, a future commit will change how rofiles work, which would cause the test suite to permit inplace mutation for non-hardlinked files. So let's ensure they *are* hardlinked. Closes: #462 Approved by: jlebon
* fixup! fix typo in docs/manual/atomic-upgrades.mdColin Walters2016-08-121-1/+1
| | | | | Closes: #461 Approved by: giuseppe
* prune: Elaborate on what formats are accepted by datesColin Walters2016-08-121-2/+5
| | | | | | | Inquiring minds want to know. Closes: #461 Approved by: giuseppe
* fix typo in docs/manual/atomic-upgrades.mdAdam Miller2016-08-121-1/+1
| | | | | | | Signed-off-by: Adam Miller <maxamillion@fedoraproject.org> Closes: #460 Approved by: cgwalters
* repo: Really ignore progress changed user dataDan Nicholson2016-08-121-4/+0
| | | | | | | | | The documentation says this is ignored, implying that you should pass NULL to it. However, the function immediately returns in this case even though the argument isn't used anywhere. Closes: #458 Approved by: cgwalters
* manual/repo.md: reword bits about the summary fileJonathan Lebon2016-08-111-7/+7
| | | | | Closes: #459 Approved by: cgwalters
* ostree_bootdir: properly preprend $(prefix)Jonathan Lebon2016-08-111-1/+1
| | | | | Closes: #457 Approved by: cgwalters
* ostree_bootdir: prepend $(prefix) to pathJonathan Lebon2016-08-111-1/+1
| | | | | | | Otherwise we break local installs. Closes: #456 Approved by: cgwalters
* Move ostree-* executables to /usr/lib/ostreeGatis Paeglis2016-08-118-10/+14
| | | | | | | | | | | | | | | | | Why not to use libexecdir? Because this directory does not exist on some distros or paths between distros varies. There are several reasons why a well known path is prefered, for example when generating a kernel command line: init=${ostree}/usr/lib/ostree-boot/ostree-prepare-root In addition this saves us some typing in a console when wanting to access the "ostree" cmd line. Closes: #449 Approved by: cgwalters
* tests: Test that local pulls do not use deltasDan Nicholson2016-08-101-1/+11
| | | | | | | | | | | Pulls from local repos now default to disabling static deltas so that objects are copied. To check this is the case, see if the object files are hardlinked after pulling. Closes: #447 Closes: #448 Approved by: cgwalters
* pull: Disable static deltas by default for local pullsDan Nicholson2016-08-101-0/+6
| | | | | | | | | | | | | | For local pulls there's no benefit pulling the static delta over the individual object files since there's no HTTP overhead. Furthermore, processing deltas always generates the objects whereas a standard pull ensures that the exact object files are copied. Using deltas also prevents hardlinking the objects if the repos exist on the same filesystem. Closes: #447 Closes: #448 Approved by: cgwalters
* tests: Ensure deltas for pulling when neededDan Nicholson2016-08-101-2/+6
| | | | | | | | | | | | When testing pulling of deltas, use the new --require-static-deltas option to pull-local to ensure that deltas are actually used. To support the require-static-deltas mode, the summary in the remote repo must be generated. Closes: #447 Closes: #448 Approved by: cgwalters
* pull-local: Support requiring static deltasDan Nicholson2016-08-101-0/+4
| | | | | | | | | | Add the --require-static-deltas option like pull to ensure static deltas are processed for local pulls. Closes: #447 Closes: #448 Approved by: cgwalters
* deltas: Use F_DUPFD_CLOEXEC properlyDan Nicholson2016-08-101-1/+1
| | | | | | | | | | You need to supply an argument to F_DUPFD_CLOEXEC or fcntl will return EINVAL. Use 3 as the minimum fd number as is standard. Closes: #454 Closes: #448 Approved by: cgwalters
* deltas: Handle cleanup of fd array properlyDan Nicholson2016-08-101-7/+8
| | | | | | | | | | If there's an early error, part_temp_fds will be NULL and dereferencing the len member will segfault. Closes: #454 Closes: #448 Approved by: cgwalters
* libostree.sym: Add 2016.9 sectionColin Walters2016-08-092-5/+13
| | | | | | | We should remember to do this in the commit updating configure.ac. Closes: #453 Approved by: jlebon
* Release 2016.8v2016.8Colin Walters2016-08-091-1/+1
| | | | | | | | It's time for a new release, there's enough queued and it's been ~a month. Closes: #452 Approved by: jlebon
* tests: Port sysroot.js away from libgsystemColin Walters2016-08-091-8/+2
| | | | | | | | My case-sensitive `git grep` didn't find this one originally, but the Travis+Debian setup was configured to run it. Closes: #451 Approved by: jlebon
* travis: Disable email notificationsColin Walters2016-08-091-0/+3
| | | | | | | I'm getting spammed. We'll see the results in the status. Closes: #450 Approved by: jlebon
* Final excision of libgsystem dependencyColin Walters2016-08-0911-28/+49
| | | | | | | | | | | | | | Lots and lots of preparation led to this moment - when nothing apparent changes for users! Woo! But seriously, having the extra dependency is a minor annoyance, and in the big picture I think the libgsystem idea was wrong - we need to land things in GLib, and use git submodules for API-unstable or Linux-specific sharing. For a lot of OSTree, the libgsystem `GFile*` orientation was also wrong, we really want fd-relative. Closes: #444 Approved by: jlebon
* prune: Retain the tip of each ref even with date pruningColin Walters2016-08-092-5/+31
| | | | | | | | | | | | | | I hit an error with [CAHC](https://wiki.centos.org/SpecialInterestGroup/Atomic/Devel) where we were doing time-based pruning. `ostree summary -u` started failing, and it took me a bit to realize it was because we were pruning even the tip of old branches, which I was not at all expecting, and I don't think users will too. Perhaps in the future we could add some sort of --prune-ref-tips or something if people wanted it, but I doubt it. Closes: #445 Approved by: jlebon
* build: Update .gitignoreColin Walters2016-08-091-0/+1
| | | | | | | The patch to add more symlink bits also needed CLEANFILES updates. Closes: #446 Approved by: jlebon
* deploy: Use internal recursive copy rather than libgsystemColin Walters2016-08-081-2/+7
| | | | | | | | | Since we already had a "recursive copy" implementation here, let's reuse it rather than the libgsystem `gs_shutil_cp_a()`. Part of the libglnx porting. Closes: #428 Approved by: jlebon
* deploy: Port file copying code to GLnxDirFdIteratorColin Walters2016-08-081-37/+21
| | | | | | | | | | | It handles ownership of the `DIR*` for us more cleanly, and is just a better API. This is in preparation for further changes to this code to do SELinux labeling while copying. Closes: #428 Approved by: jlebon
* repo: Fix an uninitialized variableColin Walters2016-08-081-1/+1
| | | | | Closes: #431 Approved by: giuseppe
* build: Make -Werror=int-conversion fatalColin Walters2016-08-081-0/+1
| | | | | | | | This should hopefully avoid me accidentally passing NULL for an `int` file descriptor in the future. Closes: #431 Approved by: giuseppe
* build: Import attributes.m4, detect CFLAGS at build timeColin Walters2016-08-082-10/+307
| | | | | | | | | I want to add `-Werror=int-conversion`, but it's only available in newer GCC versions. So let's start autodetecting available compiler flags. Closes: #431 Approved by: giuseppe
* repo: Drop more internally unused GFile membersColin Walters2016-08-082-7/+0
| | | | | | | | | I forgot to actually remove `config_file` in the previous commit, the txn lock hasn't been used in a long time, and for the uncompressed cache, everything uses the fd already. Closes: #433 Approved by: giuseppe
* travis: run the test suite on various distributionsSimon McVittie2016-08-054-0/+195
| | | | | | | | | | | | | | .travis.yml is obviously still Travis-specific, but tests/ci-* are designed to be shareable with other CI environments if there is interest in doing so. At the moment I'm only testing on Debian and Ubuntu. In principle we could try a non-Debian-derived Docker container such as Fedora or CentOS inside travis-ci's Ubuntu environment, similar to what I'm doing for Debian, but I don't know the correct setup commands to use there. Closes: #438 Approved by: cgwalters
* .travis.yml: Delete, we aren't using it right nowColin Walters2016-08-051-24/+0
| | | | | | | @smcv will re-add a new version. Closes: #439 Approved by: smcv
* Skip tests that use whiteouts under Docker/aufsSimon McVittie2016-08-051-32/+35
| | | | | | | | | | | | ostree's naming convention for whiteouts is similar to what is done in aufs, which means we can't compose the trees to test this feature under Docker with the aufs storage driver, as used on travis-ci. Signed-off-by: Simon McVittie <smcv@debian.org> Closes: #437 Approved by: cgwalters
* Update libglnx: Add missing files to libglnx distributionSimon McVittie2016-08-051-0/+0
| | | | | | | | | This fixes distcheck. Signed-off-by: Simon McVittie <smcv@debian.org> Closes: #436 Approved by: cgwalters