generator: Rewrite UUIDs that begin with zero byte.
authorRichard W.M. Jones <rjones@redhat.com>
Mon, 13 Jun 2011 17:58:53 +0000 (18:58 +0100)
committerRichard W.M. Jones <rjones@redhat.com>
Mon, 13 Jun 2011 18:00:17 +0000 (19:00 +0100)
In util-linux <= 2.19, mkswap -U cannot handle the first byte of the
UUID being zero, so we artificially rewrite such UUIDs.

See: http://article.gmane.org/gmane.linux.utilities.util-linux-ng/4273
(cherry picked from commit 4ee190628bc05f0c8fad1f6d9c3e85619a91e8b8)

generator/generator_utils.ml

index f62b195..4180c0d 100644 (file)
@@ -55,6 +55,14 @@ let string_of_errcode = function
  *)
 let uuidgen () =
   let s = Digest.to_hex (Digest.file "generator/generator_actions.ml") in
+
+  (* In util-linux <= 2.19, mkswap -U cannot handle the first byte of
+   * the UUID being zero, so we artificially rewrite such UUIDs.
+   * http://article.gmane.org/gmane.linux.utilities.util-linux-ng/4273
+   *)
+  if s.[0] = '0' && s.[1] = '0' then
+    s.[0] <- '1';
+
   String.sub s 0 8 ^ "-"
   ^ String.sub s 8 4 ^ "-"
   ^ String.sub s 12 4 ^ "-"