On Thu, Jan 06, 2011 at 03:48:42PM +0100, Jakub Wilk wrote: > # Let me fix mess I made > forcemerge 609108 609052 > notforwarded 609108 > tags 609108 + patch > thanks
Thanks! I've attached my latest patch for this bug. It's from the schroot-1.4 branch of the git repository. This is what I intend to upload to fix the kfreebsd mount problems for squeeze. If you could possibly test it and let me know if it works, that would be great. Note that if you autoreconf to update the autotools, you'll need to set the version to 1.4.18 in VERSION [./bootstrap does this automatically if building from the git repo]. Thanks, Roger -- .''`. Roger Leigh : :' : Debian GNU/Linux http://people.debian.org/~rleigh/ `. `' Printing on GNU/Linux? http://gutenprint.sourceforge.net/ `- GPG Public Key: 0x25BFB848 Please GPG sign your mail.
diff --git a/NEWS b/NEWS index bdc5677..6f89e07 100644 --- a/NEWS +++ b/NEWS @@ -1,12 +1,16 @@ NEWS -*- outline -*- ---- -Welcome to schroot 1.4.17. Please read these release notes carefully. +Welcome to schroot 1.4.18. Please read these release notes carefully. Full installation instructions are provided in the INSTALL file. The README file also contains more specific notes regarding building and configuration. +* Major changes in 1.4.18: + + None. + * Major changes in 1.4.17: None. diff --git a/configure.ac b/configure.ac index 351e678..b598960 100644 --- a/configure.ac +++ b/configure.ac @@ -331,8 +331,7 @@ AC_DEFINE_UNQUOTED(SBUILD_HOST_CPU, ["$host_cpu"]) # Checks for libraries. PKG_CHECK_MODULES([UUID], [uuid], - [AC_DEFINE(HAVE_UUID) - HAVE_UUID=yes], + [HAVE_UUID=yes], [HAVE_UUID=no]) AM_PATH_CPPUNIT([1.10.0], [HAVE_CPPUNIT=yes]) @@ -418,17 +417,25 @@ fi AC_MSG_CHECKING([whether to build UUID support]) BUILD_UUID="yes" -if test "$enable_uuid" = "yes"; then - BUILD_UUID="no" -fi -if test "$HAVE_UUID" = "no"; then +if test "$enable_uuid" = "no"; then BUILD_UUID="no" +elif test "$enable_uuid" = "yes"; then + if test "$HAVE_UUID" = "no"; then + AC_MSG_FAILURE([libuuid (e2fsprogs) is not installed, but is required by schroot]) + fi +elif test "$enable_uuid" = "auto"; then + if test "$HAVE_UUID" = "no"; then + BUILD_UUID="no" + fi fi AC_MSG_RESULT([$BUILD_UUID]) -AH_TEMPLATE(HAVE_UUID, [Set if UUID support is available]) +AM_CONDITIONAL([BUILD_UUID], [test "$BUILD_UUID" = "yes"]) +AH_TEMPLATE(SBUILD_USE_UUID, [Set if uuid support is present]) if test "$BUILD_UUID" = "yes"; then - AC_DEFINE(HAVE_UUID, 1) + AC_DEFINE(SBUILD_USE_UUID, 1) +else + UUID_LIBS="" fi AC_MSG_CHECKING([whether to build PAM support]) @@ -458,6 +465,8 @@ AM_CONDITIONAL([BUILD_PAM], [test "$BUILD_PAM" = "yes"]) AH_TEMPLATE(SBUILD_FEATURE_PAM, [Set if PAM support is available]) if test "$BUILD_PAM" = "yes"; then AC_DEFINE(SBUILD_FEATURE_PAM, 1) +else + PAM_LIBS="" fi AC_MSG_CHECKING([whether to build block-device support]) diff --git a/debian/changelog b/debian/changelog index fdb1c7f..2a05e9a 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,3 +1,22 @@ +schroot (1.4.18-1) unstable; urgency=low + + * New upstream stable release. + * Disable the use of long UUIDs in automatically-generated session + names on kfreebsd kernels (Closes: #609108). Use the time and + process ID instead, which are far shorter than the UUID. This is + required due to FreeBSD kernels using fixed-length character arrays + in their struct statfs structure which limits the mount and umount + commands to paths less than 88 characters in length (80 in + practice). Disabling UUID support reduces the likelihood of mount + and umount failure when beginning and ending sessions, but can not + fix the underlying bug in FreeBSD. It can still be triggered if + long session names are used, or filesystems are mounted deep inside + the chroot directory hierarchy. Thanks to Guillem Jover, Julián + Moreno Patiño and Jakub Wilk for help fixing the configure script, + Debian packaging and testing. + + -- Roger Leigh <rle...@debian.org> Thu, 06 Jan 2011 22:09:13 +0000 + schroot (1.4.17-1) unstable; urgency=low * New upstream stable release. diff --git a/debian/control b/debian/control index a7f3e98..4064d70 100644 --- a/debian/control +++ b/debian/control @@ -3,7 +3,7 @@ Section: admin Priority: optional Maintainer: Debian buildd-tools Developers <buildd-tools-de...@lists.alioth.debian.org> Uploaders: Roger Leigh <rle...@debian.org> -Build-Depends: debhelper (>= 7.0.0), autotools-dev, pkg-config (>= 0.20), libpam0g-dev (>= 0.79-3.1), uuid-dev, liblockdev1-dev (>= 1.0.2), libboost-dev (>= 1.39.0), libboost-program-options-dev (>= 1.39.0), libboost-regex-dev (>= 1.39.0), libboost-filesystem-dev (>= 1.39.0), gettext, libcppunit-dev +Build-Depends: debhelper (>= 7.0.0), autotools-dev, pkg-config (>= 0.20), libpam0g-dev (>= 0.79-3.1), uuid-dev [!kfreebsd-any], liblockdev1-dev (>= 1.0.2), libboost-dev (>= 1.39.0), libboost-program-options-dev (>= 1.39.0), libboost-regex-dev (>= 1.39.0), libboost-filesystem-dev (>= 1.39.0), gettext, libcppunit-dev Build-Depends-Indep: doxygen, graphviz Standards-Version: 3.9.1 Vcs-Browser: http://git.debian.org/?p=buildd-tools/schroot.git diff --git a/debian/rules b/debian/rules index 16d93b4..2cc89bd 100755 --- a/debian/rules +++ b/debian/rules @@ -19,6 +19,12 @@ else BTRFSSNAP_OPTIONS = --enable-btrfs-snapshot endif +ifneq ($(DEB_HOST_ARCH_OS),kfreebsd) + UUID_OPTIONS = --enable-uuid +else + UUID_OPTIONS = --disable-uuid +endif + CFLAGS = -Wall -g ifneq (,$(findstring noopt,$(DEB_BUILD_OPTIONS))) @@ -44,7 +50,7 @@ debian/build/config.status: configure --enable-dchroot --enable-dchroot-dsa \ --enable-static --disable-shared \ --with-bash-completion-dir=/etc/bash_completion.d \ - $(LVMSNAP_OPTIONS) $(BTRFSSNAP_OPTIONS) \ + $(LVMSNAP_OPTIONS) $(BTRFSSNAP_OPTIONS) $(UUID_OPTIONS) \ BTRFS=/sbin/btrfs \ BTRFSCTL=/sbin/btrfsctl \ LVCREATE=/sbin/lvcreate \ diff --git a/sbuild/sbuild-util.cc b/sbuild/sbuild-util.cc index 987ee96..0635867 100644 --- a/sbuild/sbuild-util.cc +++ b/sbuild/sbuild-util.cc @@ -29,7 +29,7 @@ #include <sys/stat.h> #include <unistd.h> -#ifdef HAVE_UUID +#ifdef SBUILD_USE_UUID #include <uuid/uuid.h> #else #include <time.h> @@ -237,7 +237,7 @@ sbuild::unique_identifier () std::ostringstream id; id.imbue(std::locale::classic()); -#ifdef HAVE_UUID +#ifdef SBUILD_USE_UUID uuid_t uuid; char uuid_str[37]; uuid_generate(uuid);
signature.asc
Description: Digital signature