Move calling of the privilege escalation program which allows a normal
user to run GParted as root from the desktop file into the gparted
wrapper script. This is in preparation for further changes needed to
grant root access to the X11 display under Wayland.
Don't introduce yet another script so that there aren't two different
names to run GParted by for normal users and root. Using the same
gparted name but placing two different scripts at /usr/bin/gparted and
/usr/sbin/gparted is not possible because on Arch Linux /usr/sbin is a
symbolic link to /usr/bin.
Frequently asked questions, Does Arch follow the FHS?
https://wiki.archlinux.org/index.php/Frequently_asked_questions#Does_Arch_follow_the_FHS.3F
"Arch Linux follows the file system hierarchy for operating systems
using the systemd service manager. See file-hierarchy(7) for an
explanation of each directory along with their designations. In
particular, /bin, /sbin, and /usr/sbin are symbolic links to
/usr/bin, and /lib (and /lib64 if applicable) are symbolic links to
/usr/lib".
Bug 776437 - GParted fails to run as root under Wayland
Add support for detecting UDF file systems and formatting hard disks
with revision 2.01 UDF file systems using udftools. Formatting optical
disks or any other media types is not supported yet. Changing label or
UUID after formatting is not supported as the tools do not yet exist.
Bug 784533 - Add support for UDF file system
Vol_id has been retired and removed from all supported distributions.
See earlier commit "Remove use of retired vol_id from FS_Info module
(#767842)" for more details. Therefore remove it's use from GParted
entirely.
When configuring GParted build with a custom install of libparted the
configure script is using the wrong version number for the version of
libparted. It uses the version of the system install of libparted,
rather that the version of the specified custom install of libparted.
For example configuring GParted build on CentOS 7 with system provided
libparted 3.1 and custom install of libparted 3.2 from GIT in
/tmp/parted-3.2-git:
$ export CPPFLAGS=-I/tmp/parted-3.2-git/include
$ export LDFLAGS=-L/tmp/parted-3.2-git/lib
$ export LD_RUN_PATH=/tmp/parted-3.2-git/lib
$ ./configure
...
checking for libparted >= 1.7.1 (querying pkg-config)... 3.1
checking for 2.0 <= libparted <= 3.0 (loop table creation doesn't delete old partitions)... (cached) no
checking for libparted >= 2.2 (improved pt re-read)... (cached) yes
checking for ped_file_system_resize in -lparted... no
checking for ped_file_system_resize in -lparted-fs-resize... yes
checking for libparted >= 3.2 (online resize)... (cached) no
...
$ make
$ ldd src/gpartedbin | fgrep libparted
libparted-fs-resize.so.0 => /tmp/parted-3.2-git/lib/libparted-fs-resize.so.0 (0x00007f9a460ee000)
libparted.so.2 => /tmp/parted-3.2-git/lib/libparted.so.2 (0x00007f9a45ea3000)
Configure script used version 3.1 as reported by pkg-config to make most
of the decisions (those version related checks with cached results) but
the executable was still linked with the custom libparted 3.2 install.
Temporarily rename the system libparted pkg-config file out of the way:
# cd /usr/lib64/pkgconfig
# mv libparted.pc libparted.pc-NOT
and reconfigure the GParted build:
$ ./configure
...
checking for libparted >= 1.7.1 (querying pkg-config)... not found
checking for libparted >= 1.7.1 (querying libparted)... 3.2.25-5a92
checking for 2.0 <= libparted <= 3.0 (loop table creation doesn't delete old partitions)... (cached) no
checking for libparted >= 2.2 (improved pt re-read)... (cached) yes
checking for ped_file_system_resize in -lparted... no
checking for ped_file_system_resize in -lparted-fs-resize... yes
checking for libparted >= 3.2 (online resize)... (cached) yes
...
Now configure is having to compile a program with the custom install of
libparted and gets the correct version.
Restore libparted pkg-config file:
# mv libparted.pc-NOT libparted.pc
and this time set environment variable PKG_CONFIG_PATH to inform
pkg-config of the additional directory to search for .pc files before
the default system location:
$ export PKG_CONFIG_PATH=/tmp/parted-3.2-git/lib/pkgconfig
$ ./configure
...
checking for libparted >= 1.7.1 (querying pkg-config)... 3.2.25-5a92
checking for 2.0 <= libparted <= 3.0 (loop table creation doesn't delete old partitions)... (cached) no
checking for libparted >= 2.2 (improved pt re-read)... (cached) yes
checking for ped_file_system_resize in -lparted... no
checking for ped_file_system_resize in -lparted-fs-resize... yes
checking for libparted >= 3.2 (online resize)... (cached) yes
...
Now configure is getting the correct version of the custom install of
libparted when querying pkg-config and thus making the correct
decisions.
Update the README file to reflect the need to also set the
PKG_CONFIG_PATH environment variable when building GParted with a custom
install of libparted.
Bug 753525 - Configuration issues when using non-system location or
non-released versions of libparted
The ntfs-3g package previously provided the FUSE based NTFS driver to
mount the file system and ntfsprogs provided the user space tools. In
April 2011 the packages have merged [1] forming ntfs-3g_ntfsprogs. Arch
Linux / Debian / Slackware / Ubuntu now just have an ntfs-3g package
with everything; where as CentOS / Fedora / openSUSE are sticking with
the original two package names. Reverse the order of the needed
packages to:
ntfs-3g / ntfsprogs
[1] Release: NTFS-3G + NTFSPROGS 2011.4.12
http://www.tuxera.com/release-ntfs-3g-ntfsprogs-2011-4-12/
For reiserfs the upstream package is named reiserfsprogs. Arch Linux /
Debian / Slackware / Ubuntu use this name; but CentOS / Fedora name it
reiserfs-utils and openSUSE names it just reiserfs. Update the README
file with all 3 package names.
reiserfsprogs / reiserfs-utils / reiserfs
In the File System Support dialog just use the first 2 package names as
we don't want to make the dialog too wide with all 3 names and hopefully
on openSUSE it is more obvious that the reiserfs package is needed to
support the reiserfs file system.
NOTE:
Again this slightly increases the width of the File System Support
dialog on my CentOS 6 desktop with default fonts, now from 676 to 707
pixels. Again still well within the 800 wide target and still narrower
than the main window.
Bug 753436 - Update documentation of GParted software dependencies
In Fedora bug report:
Bug 1176108 - Warning shown on BTRFS partition because of missing btrfs-tools package
https://bugzilla.redhat.com/show_bug.cgi?id=1176108#c0
The user said:
However there is no btrfs-tools package in the standard Fedora repo.
There is a btrfs-progs package, which is already installed. It's
unclear whether this is a real error or simply a mismatched package
name.
The upstream software is named btrfs-progs. Arch Linux / CentOS /
Fedora / Slackware use the upstream name. Debian / Ubuntu name it
btrfs-tools and openSUSE calls it btrfsprogs (no dash).
Rename the needed software to:
btrfs-progs / btrfs-tools
Upstream name first separated by slash from alternative names
distributions use.
NOTE:
This slightly increases the width of the File System Support dialog on
my CentOS 6 desktop with default fonts, from 655 to 676 pixels. Still
well within the 800 wide target and still narrower that the main window.
Bug 753436 - Update documentation of GParted software dependencies
Update the README file to document the blkid command as a mandatory
requirement for GParted. GParted will run without blkid but it is
needed to detect a number of file systems which libparted doesn't and in
a number of other situations.
Blkid is needed to detect these file systems:
exfat
f2fs
ReFS
SWRaid
ZFS
Blkid also detects these file systems (for which GParted has simple
internal detection but libparted, mostly, doesn't detect):
btrfs (detected by libparted >= 3.2)
LVM2 PV
LUKS
nilfs2 (detected by libparted >= 2.4)
reiser4
Blkid is also needed for these commits:
1) f8faee6377
Avoid whole disk FAT being detected as MSDOS partition table (#743181)
(with libparted 1.9.0 to 2.3 inclusive)
2) 9e5e9f5627
Enhance file system detection to use FS_Info method - blkid
(Detect file systems with sector sizes other than 512 bytes with
libparted 2.2)
Other changes to the DISTRIBUTION NOTES section of the README file:
* Drop NOTE about vol_id and blkid being used to read volume labels for
specific file systems and read the UUIDs. Vol_id was deprecated in
May 2009 and is not included in any currently supported distribution.
Blkid is now mandatory. List of optional commands at the end of the
section seems to cover everything that is necessary.
* Indent description of optional commands at the end of the section to
match the indentation earlier in the section.
* Line wrap the section at column 72 to match the rest of the file.
Bug 753436 - Update documentation of GParted software dependencies
Run "hdparm -I /dev/DISK" to get the hard drive serial number of
every device which has one and display it in the Device Information.
The displayed value can either be the actual serial number, "none" or
blank. "none" means the device doesn't have a hard drive serial number,
such as for Linux software RAID arrays, BIOS fake RAID arrays or USB
flash drives. Blank means something went wrong getting the serial
number. Either it couldn't be found in the hdparm output or the hdparm
command wasn't installed.
Example real hard drive:
# hdparm -I /dev/sda
...
ATA device, with non-removable media
Model Number: SAMSUNG HM500JI
Serial Number: S1WFJDSZ123732
...
Example Linux software RAID array:
# hdparm -I /dev/md127
/dev/md127:
HDIO_DRIVE_CMD(identify) failed: Inappropriate ioctl for device
On my desktop with 4 internal hard drives 2 Linux software RAID arrays
on those hard drives, 2 USB flash drives and 1 USB hard drive attached,
running hdparm 9 times added 0.07 seconds to the device refresh time.
Bug 751251 - Show serial number in device information
CPPFLAGS - Needed to instruct the compiler to use libparted include
files, <parted/parted.h> etc, from the non-default location.
LD_LIBRARY_PATH - Not needed to specify an additional directory to find
libparted shared libraries at run time, as the linker build the
additional directory into the executable based on the LD_RUN_PATH
environment variable.
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
The gnome-common package is needed when building from the git
repository. This package was missed in the list of dependencies for
the Fedora GNU/Linux distribution.
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 possible programs used to acquire root
privileges in the gparted.desktop file.
Bug #699626 - Enable gparted.desktop to prompt for root on default
openSUSE installation
Only supports detection and creation of f2fs file systems. Requires
f2fs-tools and a blkid with f2fs support, util-linux > 2.22.2.
f2fs-tools v1.1.0 only supports file system creation.
Currently requires util-linux directly from the git repository as f2fs
support was only committed on 5 Feb 2013 and it has not yet been
released.
Closes Bug #695396 - Please apply f2fs patch
The w3C has implemented measures to discourage excessive DTD traffic
and to encourage caching the XML. See,
The W3C servers are slow to return DTDs. Is the delay intentional?
http://www.w3.org/Help/Webmaster.html#slowdtd
Caching XML data at install time
http://www.w3.org/QA/2008/09/caching_xml_data_at_install_ti.html
Many GNU/Linux distributions conveniently include these docbook
style sheets in a package. This package has been added to the
dependencies for building from source.
Also added and updated are commands related to installation on
OpenSUSE.
Active Linux software RAID devices are detected in the
Proc_Partitions_Info method. Hence the SWRaid method is no longer
required.
Removal of the SWRaid method fixes the problem with the error message:
Could not stat device /dev/md/0 - No such file or directory
This fixes the problem because we no longer use "mdadm --examine
--scan" in an attempt to detect Linux software RAID devices. The
mdadm command was returning device names such as /dev/md/0, which are
incorrect for GParted.
NOTE: With this change, GParted no longer requires the mdadm command
to detect Linux software RAID devices.
Closes Bug #678379 - Could not stat device /dev/md/0 - No such file or
directory
If gksu was installed on a KDE system (tested with kubuntu 12.04 LTS),
then gksu would prompt for the password three times and always fail to
load gparted. In a prior version of kubuntu 8.04 LTS, gksu would
properly invoke gparted from the "K --> System --> GParted" menu
entry.
Since gksudo also works on KDE (and kubuntu 12.04 LTS), add gksudo to
the root privilege invocation search list ahead of gksu.
Note that gksu has been kept for backwards compatibility with systems
that provide only gksu and not gksudo.
Related to Bug #687813 - Use kdesudo on KDE, as gksu is not
installed by default
Normally gksu is not installed by default on KDE systems. When
compiling and installing gparted on a KDE system without gksu, the
desktop menu entry would try to run gparted as the user, and not with
root privileges.
To fix this, add kdesudo to the search list of root privilege
invocation programs.
Closes Bug #687813 - Use kdesudo on KDE, as gksu is not installed by
default
Requires libparted 2.4 or higher, or blkid from utils-linux 2.20 or
higher for nilfs2 file system detection.
Requires nilfs-utils for nilfs2 file system support.
Closes Bug #642842 - nilfs is not detected
Usage of the kpartx package to create partition names has been
completely removed. Hence kpartx is no longer even an optionally used
package by gparted.
This change is related to the following bug report:
Ubuntu launchpad bug 719129 - [Natty] Gparted duplicates dmraid
partition devices
https://bugs.launchpad.net/ubuntu/+source/gparted/+bug/719129
The new configure option --enable-libparted-dmraid enables the native
use of /dev/mapper dmraid support in the libparted library.
If this option is not specified, or is disabled, then gparted code
will be used to support dmraid. The gparted code uses the old dmraid
partition naming scheme of always appending the partition number to
the device name. The letter 'p' is not inserted between the device
name and the partition number. The gparted code is particularly
useful when used with older versions of libparted that do not support
/dev/mapper dmraid.
Ubuntu launchpad bug 719129 - [Natty] Gparted duplicates dmraid
partition devices
https://bugs.launchpad.net/ubuntu/+source/gparted/+bug/719129
With this patch the commands required to support motherboard BIOS
RAID, also known as fake RAID, are dmraid and dmsetup.
If the kpartx command is available, it will be used to maintain
device entries that follow the naming convention used by kpartx.
Closes Ubuntu launchpad bug 554582 - GParted does not list dmraid
devices
https://bugs.launchpad.net/ubuntu/+source/gparted/+bug/554582
Perform direct update of Number of Hidden Sectors in NTFS boot record.
This change removes the need for /usr/bin/xxd and /bin/dd.
Related to GParted bug #574389