Add patch that should fix bodhis use of --workdir-tmpfs

This commit is contained in:
Colin Walters 2015-10-30 21:50:34 -04:00
parent 145a0580a3
commit dfe6d9e4b5
2 changed files with 50 additions and 1 deletions

View File

@ -0,0 +1,44 @@
From b7e8c7bdc573ed87aa0787b2c829db58d9697a65 Mon Sep 17 00:00:00 2001
From: Colin Walters <walters@verbum.org>
Date: Fri, 30 Oct 2015 21:40:14 -0400
Subject: [PATCH] compose: Ensure we've cleaned up references to tmpfs workdir
before umount
Otherwise the `umount()` will always fail. This hasn't been a problem
so far while running in a external container (docker/systemd-nspawn),
but is when running in `mock` because it doesn't set its namespace to
be private.
This should help Fedora's Bodhi, which uses rpm-ostree inside mock.
---
src/app/rpmostree-compose-builtin-tree.c | 10 +++++++++-
1 file changed, 9 insertions(+), 1 deletion(-)
diff --git a/src/app/rpmostree-compose-builtin-tree.c b/src/app/rpmostree-compose-builtin-tree.c
index 42691de..8cb6463 100644
--- a/src/app/rpmostree-compose-builtin-tree.c
+++ b/src/app/rpmostree-compose-builtin-tree.c
@@ -945,11 +945,19 @@ rpmostree_compose_builtin_tree (int argc,
}
out:
+ /* Move back out of the workding directory to ensure unmount works */
+ (void )chdir ("/");
+
+ if (self->workdir_dfd != -1)
+ (void) close (self->workdir_dfd);
if (workdir_is_tmp)
{
if (opt_workdir_tmpfs)
- (void) umount (gs_file_get_path_cached (self->workdir));
+ if (umount (gs_file_get_path_cached (self->workdir)) != 0)
+ {
+ fprintf (stderr, "warning: umount failed: %m\n");
+ }
(void) gs_shutil_rm_rf (self->workdir, NULL, NULL);
}
if (self)
--
1.8.3.1

View File

@ -1,7 +1,7 @@
Summary: Client side upgrade program and server side compose tool Summary: Client side upgrade program and server side compose tool
Name: rpm-ostree Name: rpm-ostree
Version: 2015.9 Version: 2015.9
Release: 2%{?dist} Release: 3%{?dist}
#VCS: https://github.com/cgwalters/rpm-ostree #VCS: https://github.com/cgwalters/rpm-ostree
# This tarball is generated via "make -f Makefile.dist-packaging dist-snapshot" # This tarball is generated via "make -f Makefile.dist-packaging dist-snapshot"
Source0: rpm-ostree-%{version}.tar.xz Source0: rpm-ostree-%{version}.tar.xz
@ -24,6 +24,8 @@ BuildRequires: libattr-devel
Requires: ostree >= 2014.6 Requires: ostree >= 2014.6
Patch0: 0001-compose-Ensure-we-ve-cleaned-up-references-to-tmpfs-.patch
%description %description
This tool binds together the world of RPM packages with the OSTree This tool binds together the world of RPM packages with the OSTree
model of bootable filesystem trees. It provides commands usable both model of bootable filesystem trees. It provides commands usable both
@ -94,6 +96,9 @@ python autofiles.py > files.devel \
%files -f files.devel %files -f files.devel
%changelog %changelog
* Sat Oct 31 2015 Colin Walters <walters@redhat.com> - 2015.9-3
- Add patch that should fix bodhis use of --workdir-tmpfs
* Sat Sep 05 2015 Kalev Lember <klember@redhat.com> - 2015.9-2 * Sat Sep 05 2015 Kalev Lember <klember@redhat.com> - 2015.9-2
- Rebuilt for librpm soname bump - Rebuilt for librpm soname bump