First use of PKG_CHECK_EXISTS causes additional checking messages to be
reported which splits the libparted version check message from it's
result, like this:
checking for libparted >= 1.7.1 (querying pkg-config)... checking for pkg-config... /usr/bin/pkg-config
checking pkg-config is at least version 0.9.0... yes
2.3
Call PKG_CHECK_EXISTS early, before first use to avoid this. Output
now looks like:
checking for pkg-config... /usr/bin/pkg-config
checking pkg-config is at least version 0.9.0... yes
:
checking for libparted >= 1.7.1 (querying pkg-config)... 2.3
Bug 740004 - use pkg-config to check for version of libparted
Currently ./configure links and runs a program to query the libparted
library version, which is used to determine the availability of some
features. This makes cross-compiling harder because the compile host
has to fake a virtual installation target in which to run the check.
Because of this, pkg-config based Autoconf checks are preferred.
Switch to using a pkg-config based Autoconf check first to determine the
version of libparted, falling back to the previous method for older
distributions which don't provide a pkg-config file for libparted.
Also small comment tidy-up elsewhere.
Bug 740004 - use pkg-config to check for version of libparted
Use AC_ARG_ENABLE() and AS_HELP_STRING() macros to improve handling of
the --disable-doc option.
Change the names, and sence, of the Autoconf and Automake definitions
used to control building of the help documentation. Reasons are:
(1) Switch from negative to positive statements which are more natural
to comprehend.
(2) Insert HELP in the names from *_DOC to *_HELP_DOC as they control
building of the documentation in the help subdirectory, not the
manual page in the doc directory.
Autoconf: HAVE_DISABLE_DOC -> ENABLE_HELP_DOC
Automake: DISABLE_DOC -> BUILD_HELP_DOC
Bug #734076 - Autodetect parted online partition resizing capability
Use AC_ARG_ENABLE() Autoconf macro to set enable_libparted_dmraid
variable to either yes or no in all cases, whether set on the command
line or not. Use AS_HELP_STRING() macro to format the option help text.
Bug #734076 - Autodetect parted online partition resizing capability
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:
de2844d02d
Add online resize support (#694622)
Bug #734076 - Autodetect parted online partition resizing capability
Currently -lparted is passed to the linker by being hard coded in the
gpartedbin_LDFLAGS variable in src/Makefile.am and -lparted-fs-resize
by conditionally being appended to the gpartedbin_LDFLAGS.
Add an Autoconf AC_CHECK_LIB check for the parted library using it's
default action-if-found to extend LIBS. Update the existing
AC_CHECK_LIB check for the parted-fs-resize library so that the
overridden action-if-found also extends LIBS with -lparted-fs-resize.
These libraries are then assigned via the LIBS variable in the
generated Makefiles.
This matches how the other libraries, dl and uuid, were found in the
configure script and passed to the Makefiles.
Bug #734718 - Update Autoconf version specific libparted checks and
defines to feature specific ones
Configure.ac still builds and runs very similar test executables twice
to determine in the version of libparted is >= minimum require 1.7.1 and
2.2 for improved partition re-read code.
Build and run a single test to determine the version of libparted and
cache the result. Use this cached version number when testing the
version of libparted. Inspired by the version checking for intltool
from /usr/share/aclocal/intltool.m4.
Bug #734718 - Update Autoconf version specific libparted checks and
defines to feature specific ones
If ped_file_system_resize() function is found in the parted library
don't bother to go on to check for it in the parted-fs-resize library.
Bug #734718 - Update Autoconf version specific libparted checks and
defines to feature specific ones
Remove HAVE_LIBPARTED_2_2_0_PLUS definition
Rename version specific #define HAVE_LIBPARTED_2_2_0_PLUS into two
separate feature specific names set as required:
Name Set when?
ENABLE_PT_REREAD_WORKAROUND (libparted < 2.2)
USE_LIBPARTED_LARGE_SECTOR_SUPPORT (libparted >= 2.2)
Using feature specific #defines is the standard Autoconf way and makes
the resultant conditional code easier to understand. Still have to
check the version of libparted though.
Bug #734718 - Update Autoconf version specific libparted checks and
defines to feature specific ones
Replace Autoconf check for libparted >= 3.0
Currently uses a custom check which compiles an executable to check for
libparted version >= 3.0 to determine if the ped_file_system_resize()
function exists in the parted library.
Change to use a direct Autoconf check to determine the availability of
the ped_file_system_resize() function in the parted library.
Bug #734718 - Update Autoconf version specific libparted checks and
defines to feature specific ones
Remove HAVE_LIBPARTED_3_0_0_PLUS definition
The #define only controls whether fat16 and fat32 file systems are moved
by libparted (for versions <= 2.4) or the GParted internal algorithm
(for libparted versions >= 3.0). See this commit for more details:
0fda1d011d
Enable new fs resize library available with parted-3.1 (#668281)
As nearly all other file system are moved using the GParted internal
algorithm, just always use it to move fat16 and fat32 file systems too.
Bug #734718 - Update Autoconf version specific libparted checks and
defines to feature specific ones
Remove HAVE_LIBPARTED_3_1_0_PLUS definition and replace Autoconf
check for libparted >= 3.1
Currently uses custom check which compiles an executable to check for
libparted version >= 3.1 to determine the availability of the library
parted-fs-resize and the need to include the header <parted/filesys.h>.
Change to use a direct Autoconf check to determine the availability of
the ped_file_system_resize() function in the parted-fs-resize library.
Remove inclusion of the header <parted/filesys.h> as it has always been
included via <parted/parted.h>, at least as far back as parted 1.8.0,
and even in parted 3.0 when ped_file_system_resize() and libparted file
system resize capability didn't exist.
Bug #734718 - Update Autoconf version specific libparted checks and
defines to feature specific ones
AM_PROG_LIBTOOL is an old name and alias for AC_PROG_LIBTOOL. Update.
NOTE:
In turn AC_PROG_LIBTOOL is an old name and alias for LT_INIT, but
CentOS 5.x with libtool 1.5.22 doesn't have LT_INIT defined in
/usr/share/aclocal/libtool.m4 serial 48, only AC_PROG_LIBTOOL and
AM_PROG_LIBTOOL. Therefore only update to AC_PROG_LIBTOOL and not
LT_INIT while CentOS 5.x is supported.
Bug #734718 - Update Autoconf version specific libparted checks and
defines to feature specific ones
Currently ./configure passes successfully even if a C++ compiler is not
installed. The first time building the code fails is when make tries
to compile the first C++ source file and the compiler executable is not
found.
Also because there is no C++ compiler the autoconf generated test for
Gtk::Window::set_default_icon_name() will always fail, leaving
HAVE_SET_DEFAULT_ICON_NAME unset. Therefore as well as installing a
C++ compiler, ./configure must be run again to correctly test for
set_default_icon_name().
This is as a result of a little known consequence of having AC_PROG_CC
proceed AC_PROG_CXX in the autoconf file configure.ac.
Subject: AC_PROG_CXX behaviour when no C++ compiler is found
http://lists.gnu.org/archive/html/bug-autoconf/2010-05/msg00001.html
Reverse the order, placing AC_PROG_CXX before AC_PROG_CC, so that the
generated ./configure script fails with an error if there is no C++
compiler available.
Bug #732803 - ./configure is successful even when C++ compile is missing
Many file systems are capable of growing while mounted, and a few can
even shrink. This support must be explicitly enabled at configure time
with the --enable-online-resize flag and depends on a patched libparted.
Also requires kernel >= 3.6 for partition resizing, even if the
partition is in use (BLKPG_RESIZE_PARTITION).
Thanks to Mike Fleetwood for double check mark idea instead of a second
column to show the online grow/shrink.
Bug #694622 - Add support for online resize
Add xdg-su to list of graphical switch-to-root programs to be
considered for gparted.desktop file.
The openSUSE GNU/Linux distribution includes the program xdg-su by
default for graphically prompting for root privilege.
This enhancement enables a user to compile and install gparted from
source code on openSUSE and have the gparted menu entry graphically
prompt for root privilege.
Bug #699626 - Enable gparted.desktop to prompt for root on default
openSUSE installation
The autoconf check for the Gtk::Window::set_default_icon_name() method
was failing to detect its availability, but only on Ubuntu >= 11.10.
Turns out that the autoconf check incorrectly defined the link libraries
via the C++ flags variable CXXFLAGS, rather than the LIBS variable.
This resulted in the libraries being specified in the wrong order on the
command line. The test only failed when Ubuntu also added the
"--as-needed" flag to the linker by default [1] which required the
libraries to be correctly specified at the end of the command line.
[1] Ubuntu 11.10 Release Notes, GCC 4.6 Toolchain
https://wiki.ubuntu.com/OneiricOcelot/ReleaseNotes#GCC_4.6_Toolchain
This fixes commit:
a042107883
Only use Gtk::Window::set_default_icon_name method when available
Bug #695279 - GParted doesn't compile on RHEL / CentOS 5.9
Applications are moving away from storing icons in /usr/share/pixmaps,
instead preferring /usr/share/icons/hicolor/$SIZE/apps, so only install
the fallback icon when GParted requires it.
Bug #695279 - GParted doesn't compile on RHEL / CentOS 5.9
Make the generated configure script additionally report these two checks
with their outcome:
checking for gtk_show_uri function... yes
checking for Gtk::MessageDialog::get_message_area() method... yes
1) Require autoconf >= 2.50
(Released May 2001).
2) Rename file to configure.ac
(Recommended with autoconf >= 2.50).
3) Update macro from AC_TRY_RUN to AC_RUN_IFELSE
(As wanted by the autoupdate program).