From dfe6d9e4b537fdd8d56cbc51be439606d97b3c72 Mon Sep 17 00:00:00 2001 From: Colin Walters Date: Fri, 30 Oct 2015 21:50:34 -0400 Subject: [PATCH] Add patch that should fix bodhis use of --workdir-tmpfs --- ...e-ve-cleaned-up-references-to-tmpfs-.patch | 44 +++++++++++++++++++ rpm-ostree.spec | 7 ++- 2 files changed, 50 insertions(+), 1 deletion(-) create mode 100644 0001-compose-Ensure-we-ve-cleaned-up-references-to-tmpfs-.patch diff --git a/0001-compose-Ensure-we-ve-cleaned-up-references-to-tmpfs-.patch b/0001-compose-Ensure-we-ve-cleaned-up-references-to-tmpfs-.patch new file mode 100644 index 0000000..224ceef --- /dev/null +++ b/0001-compose-Ensure-we-ve-cleaned-up-references-to-tmpfs-.patch @@ -0,0 +1,44 @@ +From b7e8c7bdc573ed87aa0787b2c829db58d9697a65 Mon Sep 17 00:00:00 2001 +From: Colin Walters +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 + diff --git a/rpm-ostree.spec b/rpm-ostree.spec index 44008f9..1115e4f 100644 --- a/rpm-ostree.spec +++ b/rpm-ostree.spec @@ -1,7 +1,7 @@ Summary: Client side upgrade program and server side compose tool Name: rpm-ostree Version: 2015.9 -Release: 2%{?dist} +Release: 3%{?dist} #VCS: https://github.com/cgwalters/rpm-ostree # This tarball is generated via "make -f Makefile.dist-packaging dist-snapshot" Source0: rpm-ostree-%{version}.tar.xz @@ -24,6 +24,8 @@ BuildRequires: libattr-devel Requires: ostree >= 2014.6 +Patch0: 0001-compose-Ensure-we-ve-cleaned-up-references-to-tmpfs-.patch + %description This tool binds together the world of RPM packages with the OSTree model of bootable filesystem trees. It provides commands usable both @@ -94,6 +96,9 @@ python autofiles.py > files.devel \ %files -f files.devel %changelog +* Sat Oct 31 2015 Colin Walters - 2015.9-3 +- Add patch that should fix bodhis use of --workdir-tmpfs + * Sat Sep 05 2015 Kalev Lember - 2015.9-2 - Rebuilt for librpm soname bump