[supermin] Add upstream patch to ignore ghost non-regular files.
Richard W.M. Jones
rjones at fedoraproject.org
Wed Jun 26 21:03:48 UTC 2013
commit f1d732d5916aa08233b40121e6ac0ab2b0586208
Author: Richard W.M. Jones <rjones at redhat.com>
Date: Wed Jun 26 21:53:01 2013 +0100
Add upstream patch to ignore ghost non-regular files.
- This fixes builds on Fedora 20 because the filesystem package has
been changed so /var/lock and /var/run are marked as ghost.
0001-Ignore-ghost-non-regular-files.patch | 52 +++++++++++++++++++++++++++++
supermin.spec | 12 ++++++-
2 files changed, 63 insertions(+), 1 deletions(-)
---
diff --git a/0001-Ignore-ghost-non-regular-files.patch b/0001-Ignore-ghost-non-regular-files.patch
new file mode 100644
index 0000000..1d45bc5
--- /dev/null
+++ b/0001-Ignore-ghost-non-regular-files.patch
@@ -0,0 +1,52 @@
+From ee7eec04fe5be5387168e43e546ec05f1c4372fe Mon Sep 17 00:00:00 2001
+From: "Richard W.M. Jones" <rjones at redhat.com>
+Date: Wed, 26 Jun 2013 21:40:26 +0100
+Subject: [PATCH] Ignore ghost non-regular files.
+
+RPMs in Fedora 20 contain /var/run and /var/lock, as symlinks, marked
+%ghost. The old code would create these as regular files which would
+then cause a failure if something was created inside them.
+
+You would see an error like this:
+
+Fatal error: exception Unix.Unix_error(8, "mkdir", "/tmp/supermineab65b098ada401348c6f448e9119504.tmp/root//var/run")
+
+The new code just ignores these files. With -v it will print a
+message like this:
+
+ignoring ghost non-regular file /var/lock (mode 0120777) from package /tmp/supermin63b9e24946f33f9b16247d063fa7e488.tmp/filesystem-3.2-16.fc20.x86_64.rpm
+ignoring ghost non-regular file /var/run (mode 0120777) from package /tmp/supermin63b9e24946f33f9b16247d063fa7e488.tmp/filesystem-3.2-16.fc20.x86_64.rpm
+---
+ src/supermin.ml | 16 ++++++++++++++++
+ 1 file changed, 16 insertions(+)
+
+diff --git a/src/supermin.ml b/src/supermin.ml
+index f87ad6f..251c13e 100644
+--- a/src/supermin.ml
++++ b/src/supermin.ml
+@@ -129,6 +129,22 @@ let () =
+ in
+ loop files in
+
++ (* Ignore %ghost non-regular files. RPMs in Fedora 20 contain these.
++ * It's not clear what they are meant to signify. XXX
++ *)
++ let files = List.filter (
++ function
++ | name, { ft_dir = false; ft_ghost = true; ft_mode = mode }, pkg ->
++ if (mode land 0o170_000) = 0o100_000 then
++ true
++ else (
++ debug "ignoring ghost non-regular file %s (mode 0%o) from package %s"
++ name mode pkg;
++ false
++ )
++ | _ -> true
++ ) files in
++
+ (* Because we may have excluded some packages, and also because of
+ * distribution packaging errors, it's not necessarily true that a
+ * directory is created before each file in that directory.
+--
+1.8.3.1
+
diff --git a/supermin.spec b/supermin.spec
index a6c5ffa..70c7765 100644
--- a/supermin.spec
+++ b/supermin.spec
@@ -1,12 +1,15 @@
Summary: Tool for creating supermin appliances
Name: supermin
Version: 4.1.1
-Release: 1%{?dist}
+Release: 2%{?dist}
License: GPLv2+
URL: http://people.redhat.com/~rjones/supermin/
Source0: http://libguestfs.org/download/supermin/%{name}-%{version}.tar.gz
+# Upstream after 4.1.1.
+Patch1: 0001-Ignore-ghost-non-regular-files.patch
+
%if 0%{?rhel} >= 7
ExclusiveArch: x86_64
%endif
@@ -56,6 +59,8 @@ Obsoletes: febootstrap-supermin-helper <= 3.21-1
%prep
%setup -q
+%patch1 -p1
+
%build
%configure
@@ -86,6 +91,11 @@ execstack -c $RPM_BUILD_ROOT%{_bindir}/supermin-helper
%changelog
+* Wed Jun 26 2013 Richard W.M. Jones <rjones at redhat.com> - 4.1.1-2
+- Add upstream patch to ignore ghost non-regular files.
+- This fixes builds on Fedora 20 because the filesystem package has
+ been changed so /var/lock and /var/run are marked as ghost.
+
* Tue Feb 5 2013 Richard W.M. Jones <rjones at redhat.com> - 4.1.1-1
- New upstream version 4.1.1.
- The program has been renamed 'supermin' from 'febootstrap'.
More information about the scm-commits
mailing list