[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