[buildd-tools-devel] [PATCH 10/11] Some cleanup for directory and union chroots

Jan-Marek Glogowski glogow at fbihome.de
Thu Jul 30 19:10:59 UTC 2009


Introduces own error messages when sesstion underlay and overlay
directories. Remove a duplicated / superfluous ifdef from the
directory chroot file and drops an unnecessary variable usage
from the session code.
---
 sbuild/sbuild-chroot-directory.cc |    3 +--
 sbuild/sbuild-chroot-session.cc   |    4 ++--
 sbuild/sbuild-chroot-union.cc     |    8 ++++----
 sbuild/sbuild-chroot.cc           |    4 +++-
 sbuild/sbuild-chroot.h            |    4 +++-
 5 files changed, 13 insertions(+), 10 deletions(-)

diff --git a/sbuild/sbuild-chroot-directory.cc b/sbuild/sbuild-chroot-directory.cc
index d78eadc..36218d5 100644
--- a/sbuild/sbuild-chroot-directory.cc
+++ b/sbuild/sbuild-chroot-directory.cc
@@ -74,12 +74,11 @@ chroot_directory::clone_source () const
 {
   ptr clone;
 
-#ifdef SBUILD_FEATURE_UNION
   if (get_union_configured()) {
     clone = ptr(new chroot_directory(*this));
     clone_source_setup(clone);
   }
-#endif // SBUILD_FEATURE_UNION
+
   return ptr(clone);
 }
 #endif // SBUILD_FEATURE_UNION
diff --git a/sbuild/sbuild-chroot-session.cc b/sbuild/sbuild-chroot-session.cc
index 0329795..312a515 100644
--- a/sbuild/sbuild-chroot-session.cc
+++ b/sbuild/sbuild-chroot-session.cc
@@ -96,8 +96,8 @@ chroot_session::clone_session_setup (chroot::ptr&       clone,
   std::tr1::shared_ptr<chroot_lvm_snapshot> snapshot(std::tr1::dynamic_pointer_cast<chroot_lvm_snapshot>(clone));
   if (snapshot)
     {
-      std::string dir(dirname(snapshot->get_device(), '/'));
-      std::string device(dir + "/" + clone->get_session_id());
+      std::string device(dirname(snapshot->get_device(), '/'));
+      device += "/" + clone->get_session_id();
       snapshot->set_snapshot_device(device);
     }
 #endif // SBUILD_FEATURE_LVMSNAP
diff --git a/sbuild/sbuild-chroot-union.cc b/sbuild/sbuild-chroot-union.cc
index e2ed197..8c776cd 100644
--- a/sbuild/sbuild-chroot-union.cc
+++ b/sbuild/sbuild-chroot-union.cc
@@ -98,8 +98,8 @@ void
 chroot_union::set_union_overlay_directory
 (std::string const& directory)
 {
-  if (!is_absname(union_overlay_directory))
-    throw chroot::error(union_overlay_directory, chroot::LOCATION_ABS);
+  if (!is_absname(directory))
+    throw chroot::error(directory, chroot::OVERLAY_ABS);
 
   this->union_overlay_directory = directory;
 }
@@ -114,8 +114,8 @@ void
 chroot_union::set_union_underlay_directory
 (std::string const& directory)
 {
-  if (!is_absname(union_underlay_directory))
-    throw chroot::error(union_underlay_directory, chroot::LOCATION_ABS);
+  if (!is_absname(directory))
+    throw chroot::error(directory, chroot::UNDERLAY_ABS);
 
   this->union_underlay_directory = directory;
 }
diff --git a/sbuild/sbuild-chroot.cc b/sbuild/sbuild-chroot.cc
index ab96f1c..5a09286 100644
--- a/sbuild/sbuild-chroot.cc
+++ b/sbuild/sbuild-chroot.cc
@@ -75,9 +75,11 @@ namespace
       emap(sbuild::chroot::FILE_PERMS,      N_("File has write permissions for others")),
       emap(sbuild::chroot::FILE_UNLOCK,     N_("Failed to discard file lock")),
       emap(sbuild::chroot::LOCATION_ABS,    N_("Location must have an absolute path")),
+      emap(sbuild::chroot::OVERLAY_ABS,     N_("Union overlay must have an absolute path")),
       // TRANSLATORS: unlink refers to the C function which removes a file
       emap(sbuild::chroot::SESSION_UNLINK,  N_("Failed to unlink session file")),
-      emap(sbuild::chroot::SESSION_WRITE,   N_("Failed to write session file"))
+      emap(sbuild::chroot::SESSION_WRITE,   N_("Failed to write session file")),
+      emap(sbuild::chroot::UNDERLAY_ABS,    N_("Union underlay must have an absolute path"))
     };
 
 }
diff --git a/sbuild/sbuild-chroot.h b/sbuild/sbuild-chroot.h
index cb82c05..fe6c3ed 100644
--- a/sbuild/sbuild-chroot.h
+++ b/sbuild/sbuild-chroot.h
@@ -82,8 +82,10 @@ namespace sbuild
 	FILE_PERMS,      ///< File has write permissions for others.
 	FILE_UNLOCK,     ///< Failed to discard lock.
 	LOCATION_ABS,    ///< Location must have an absolute path.
+	OVERLAY_ABS,     ///< Union overlay must have an absolute path.
 	SESSION_UNLINK,  ///< Failed to unlink session file.
-	SESSION_WRITE    ///< Failed to write session file.
+	SESSION_WRITE,   ///< Failed to write session file.
+	UNDERLAY_ABS     ///< Union underlay must have an absolute path.
       };
 
     /// Exception type.
-- 
1.6.3.2




More information about the Buildd-tools-devel mailing list