summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRichard Jones <rjones@redhat.com>2011-03-18 14:54:23 +0000
committerRichard Jones <rjones@redhat.com>2011-03-18 14:54:23 +0000
commit48ba44a6751f5455a3afb37fb5809abc507696e1 (patch)
tree55bb17ba2ad34836252960d4492c847d8ea1d7ca
parentfb6a900047ba372ec933ebf1b3d7339c4f33243c (diff)
downloadfebootstrap-48ba44a6751f5455a3afb37fb5809abc507696e1.tar.gz
febootstrap-48ba44a6751f5455a3afb37fb5809abc507696e1.tar.xz
febootstrap-48ba44a6751f5455a3afb37fb5809abc507696e1.zip
Allow config files from different packages if both files have zero size.
Fairly recurrent bug in Fedora. It need not cause us to fail, provided that both config files are empty.
-rw-r--r--febootstrap.ml22
1 files changed, 15 insertions, 7 deletions
diff --git a/febootstrap.ml b/febootstrap.ml
index 3c634c4..dc44d3d 100644
--- a/febootstrap.ml
+++ b/febootstrap.ml
@@ -79,16 +79,24 @@ let () =
let combine (name1, ft1, pkg1) (name2, ft2, pkg2) =
(* Rules for combining files. *)
if ft1.ft_config || ft2.ft_config then (
- eprintf "febootstrap: error: %s is a config file which is listed in two packages (%s, %s)\n"
- name1 pkg1 pkg2;
- exit 1
- );
- if (ft1.ft_dir || ft2.ft_dir) && (not (ft1.ft_dir && ft2.ft_dir)) then (
+ (* It's a fairly frequent bug in Fedora for two packages to
+ * incorrectly list the same config file. Allow this, provided
+ * the size of both files is 0.
+ *)
+ if ft1.ft_size = 0 && ft2.ft_size = 0 then
+ (name1, ft1, pkg1)
+ else (
+ eprintf "febootstrap: error: %s is a config file which is listed in two packages (%s, %s)\n"
+ name1 pkg1 pkg2;
+ exit 1
+ )
+ )
+ else if (ft1.ft_dir || ft2.ft_dir) && (not (ft1.ft_dir && ft2.ft_dir)) then (
eprintf "febootstrap: error: %s appears as both directory and ordinary file (%s, %s)\n"
name1 pkg1 pkg2;
exit 1
- );
- if ft1.ft_ghost then
+ )
+ else if ft1.ft_ghost then
(name2, ft2, pkg2)
else
(name1, ft1, pkg1)