[gparted] Automatically enable online resize with libparted >= 3.2 (#734076)
- From: Curtis Gedak <gedakc src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gparted] Automatically enable online resize with libparted >= 3.2 (#734076)
- Date: Sun, 31 Aug 2014 17:07:05 +0000 (UTC)
commit af05344095cdae77686cb33e4899aa280a07104c
Author: Mike Fleetwood <mike fleetwood googlemail com>
Date: Sun Aug 10 22:35:27 2014 +0100
Automatically enable online resize with libparted >= 3.2 (#734076)
Configure script checks for libparted version >= 3.2 to automatically
determine the availability of online resize capability in libparted.
This can be overridden from the ./configure command line. Override
enable when an older version of libparted has been patched to include
online resize support with:
./configure --enable-online-resize
Override disable with libparted 3.2 or later to disable the feature when
it is not wanted with:
./configure --disable-online-resize
Note that GParted also requires, and checks for at runtime, Linux
kernel >= 3.6 for online resize support. See commit for more details:
de2844d02df02ad6ccf0f2caf7f63622cf4d25de
Add online resize support (#694622)
Bug #734076 - Autodetect parted online partition resizing capability
README | 18 +++++++++++-------
configure.ac | 35 +++++++++++++++++++++++++++--------
2 files changed, 38 insertions(+), 15 deletions(-)
---
diff --git a/README b/README
index 458373f..f36b8b2 100644
--- a/README
+++ b/README
@@ -114,13 +114,17 @@ b. Building from Source
If you wish to build this package with online resize support then
the following is required:
- a) A version of libparted that includes the online resize patch.
- At time of writing (November 2013), this patch was only
- included in Debian and derived distros with parted package
- version 2.3-14 or higher.
- b) Linux kernel version 3.6 or higher.
- Enable with the --enable-online-resize flag:
- E.g., ./configure --enable-online-resize
+ a) Linux kernel version 3.6 or higher.
+ b) Libparted with online resize support. Either:
+ i) Libparted version 3.2 or later which includes online
+ resize support as standard. In this case GParted is
+ automatically built with online resize support.
+ ii) Online resize support back ported into an earlier version
+ of libparted. This is only known to be included in Debian
+ and derived distributions with parted version 2.3-14 and
+ higher. In this case online resize support must be
+ specifically enabled with the --enable-online-resize flag:
+ E.g., ./configure --enable-online-resize
Please note that more than one configure flag can be used:
E.g., ./configure --disable-doc --enable-libparted-dmraid
diff --git a/configure.ac b/configure.ac
index 16f3197..5790380 100644
--- a/configure.ac
+++ b/configure.ac
@@ -133,6 +133,20 @@ AS_IF(
)
+dnl Check for libparted >= 3.2 for online resize support.
+LIBPARTED_WANTED_VERSION='3.2'
+AC_MSG_CHECKING([for libparted >= $LIBPARTED_WANTED_VERSION (online resize)])
+LIBPARTED_WANTED_INT=`echo "$LIBPARTED_WANTED_VERSION" |
+ $AWK -F. '{print $1 * 10000 + $2 * 100 + $3}'`
+if test "$LIBPARTED_FOUND_INT" -ge "$LIBPARTED_WANTED_INT"; then
+ have_online_resize=yes
+ AC_MSG_RESULT([(cached) yes])
+else
+ have_online_resize=no
+ AC_MSG_RESULT([(cached) no])
+fi
+
+
dnl Check if have libparted fs resize capability
if test [ ${have_old_lp_fs_resize_api} = yes -o ${have_new_lp_fs_resize_lib} = yes ]; then
AC_DEFINE([HAVE_LIBPARTED_FS_RESIZE], [1], [Define to 1 if have libparted fs resize capability])
@@ -265,23 +279,28 @@ else
AC_MSG_RESULT([no])
fi
+
dnl======================
dnl check whether to enable online resize support
dnl======================
-AC_ARG_ENABLE([online_resize],
- [ --enable-online-resize enable online resize support],,)
-if test "x${enable_online_resize}" = "x" ; then
- enable_online_resize=no
-fi
+AC_ARG_ENABLE(
+ [online-resize],
+ AS_HELP_STRING(
+ [--enable-online-resize],
+ [enable online resize support @<:@default=auto@:>@]),
+ [enable_online_resize=$enableval],
+ [enable_online_resize=$have_online_resize]
+)
AC_MSG_CHECKING([whether online resize support is enabled])
-if test ${enable_online_resize} = yes; then
+if test "x$enable_online_resize" = xyes; then
+ AC_DEFINE([ENABLE_ONLINE_RESIZE], [1], [Define to 1 if online resize is enabled])
AC_MSG_RESULT([yes])
- AC_DEFINE([ENABLE_ONLINE_RESIZE], [1], [Define to 1 if --enable-online-resize specified])
else
AC_MSG_RESULT([no])
fi
+
AC_CONFIG_FILES([
Makefile
compose/Makefile
@@ -308,13 +327,13 @@ echo ""
echo " Build documentation? : $enable_doc"
echo ""
echo " Use native libparted dmraid support? : $enable_libparted_dmraid"
-echo " Enable online resize support? : $enable_online_resize"
echo ""
echo " --- Features Based On Libparted Version ---"
echo " Need partition table re-read workaround? : $need_pt_reread_workaround"
echo " Supports large sector sizes (> 512 bytes)? : $support_large_sector_sizes"
echo " Have old libparted file system resizing API? : $have_old_lp_fs_resize_api"
echo " Have new libparted file system resizing LIB? : $have_new_lp_fs_resize_lib"
+echo " Enable online resize support? : $enable_online_resize"
echo ""
echo " If all settings are OK, type make and then (as root) make install"
echo "========================================================================"
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]