Commit Graph

2265 Commits

Author SHA1 Message Date
Mike Fleetwood 18941e24d3 Avoid reading trailing junk for a reiser4 label (#689318)
For a reiser4 file system with exactly the maximum size 16 character
label, debugfs.reiser4 may include junk at the end of the label it
prints.  (It reads the label into a 16 character array and prints it as
a string, but there isn't a nul terminating character).

    # mkfs.reiser4 --yes --label abcdefghij123456 /dev/sda13
    # debugfs.reiser4 /dev/sda13 2> /dev/null | grep label:
    label:          abcdefghij123456!

Trim the read label to at most 16 characters.

Bug #689318 - filesystem type specific support for partition name
              maximum length
2013-01-02 11:33:32 -07:00
Pau Iranzo aed5ef2b6f [l10n] Updated Catalan translation 2012-12-31 14:07:12 +01:00
sinlu bes ecb1f57594 Make the partition label length dependent from the file system (#689318)
fixes Bug #689318 - filesystem type specific support for partition name
                    maximum length
2012-12-30 16:55:03 +00:00
Yaron Shahrabani 2eb50f9590 Updated Hebrew translation. 2012-12-28 14:33:58 +02:00
Yuri Myasoedov 6edf9d7000 Updated Russian translation 2012-12-14 22:35:02 +04:00
Curtis Gedak c9e6dca42e Append -git to version for continuing development 2012-12-12 11:19:14 -07:00
Curtis Gedak 42705496a6 ========== gparted-0.14.1 ========== 2012-12-12 10:02:48 -07:00
Dušan Kazik 70be3961f2 Updated slovak translation 2012-12-11 23:11:45 +01:00
Curtis Gedak de99c530d4 Remove SWRaid method as it is no longer needed (#678379)
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
2012-12-05 09:51:50 -07:00
Curtis Gedak c600095912 Add regexp for Linux SW RAID devices in /proc/partitions (#678379)
Add regular expression to detect the device entry only (e.g., md127)
and not the partitions (e.g., md127p1).

Linux software RAID devices are listed in /proc/partitions as follows:

# cat /proc/partitions
major minor  #blocks  name
   9   127     523968 md127
 259     0     131072 md127p1
 259     1     262144 md127p2

Part of Bug #678379 - Could not stat device /dev/md/0 - No such file
                      or directory
2012-12-05 09:51:50 -07:00
Curtis Gedak f003b3c4f2 Tighten up regexp for HP Smart Array Devices
HP Smart Array Devices are listed in /proc/partitions as follows:

major minor  #blocks  name
 104     0  143338560 cciss/c0d0
 104     1     104391 cciss/c0d0p1
 104     2      24097 cciss/c0d0p2
 104     3  143203410 cciss/c0d0p3

The previous regular expression was too broad, and would match many
other forms, including Linux software RAID devices such as md127.

Linux software RAID devices are listed in /proc/partitions as follows:

major minor  #blocks  name
   9   127     523968 md127
 259     0     131072 md127p1
 259     1     262144 md127p2

This problem with the regexp was discovered while investigating a
problem with Linux software RAID device detection.

The regular expression has been tightened up to match the following
hardware RAID controllers:

  Compaq/HP Smartarray RAID controller
    E.g., device = /dev/cciss/c0d0, partition = /dev/cciss/c0d0p1
    (linux-x.y.z/Documentation/blockdev/cciss.txt)

  Compaq SMART2 Intelligent Disk Array controller
    E.g., device = /dev/ida/c0d0, partition = /dev/ida/c0d0p1
    (linux-x.y.z/Documentation/blockdev/cpqarray.txt)

  Mylex DAC960/AcceleRAID/eXtremeRAID PCI RAID Controllers
    E.g., device = /dev/rd/c0d0,  partition = /dev/rd/c0d0p1
    (linux-x.y.z/Documentation/blockdev/README.DAC960)

Related to Bug #678379 - Could not stat device /dev/md/0 - No such
                         file or directory
2012-12-05 09:51:50 -07:00
Curtis Gedak 83ccbce199 Fix logical partition grow overlaps extended partition end (#686668)
In certain situations with a mixture of partition alignments, the MiB
alignment option would try to set the end of a logical partition
beyond the end of the extended partition.  This, of course, is an
invalid partition geometry and the libparted library correctly reports
failure when this is attempted.

This enhancement to MiB alignment adds a check to see if the end of
the logical partition would be beyond the extended partition, and
adjusts the end of the logical partition if required.

Closes Bug #686668 - Growing logical partition overlaps end of
                     extended partition
2012-12-03 13:07:53 +00:00
Curtis Gedak fd96328920 Prevent file system grow when partition grow fails (#686668)
Prior to this enhancement, GParted ignored the status of the partition
grow operation, and attempted to grow the file system.

Now we check the status of the partition grow operation prior to
growing the file system.

Part of Bug #686668 - Growing logical partition overlaps end of
                      extended partition
2012-12-03 13:07:53 +00:00
Curtis Gedak c17959e200 Provide credit in About dialog for contributions
Recognize contributions by Matthias Gehre.
2012-11-30 13:32:31 -07:00
Curtis Gedak c22dec619b Update AUTHORS
Provide credit for patches by Matthias Gehre to clean up GParted Core
global variables.
2012-11-30 13:26:28 -07:00
Curtis Gedak cffe5c0626 Add *.mo to .gitignore file 2012-11-30 13:13:54 -07:00
Mike Fleetwood f5c153099b Treat reiser4 label "<none>" as meaning blank (#688760)
A reiser4 file system with a blank label is displayed as "<none>" by
debugfs.reiser4 and therefore GParted too.

    # mkfs.reiser4 -y -L "" -f /dev/sda14
    # debugfs.reiser4 /dev/sda14 2> /dev/null | grep label:
    label:		<none>

Additionally when displaying the Partition Information the following
warning is written to the terminal:

    (gpartedbin:19609): Gtk-WARNING **: Failed to set text from markup
    due to error parsing markup: Error on line 1 char 23: Element
    'markup' was closed, but the currently open element is 'none'

Fix by just assuming "<none>" always means blank.  If someone really
does set the label to "<none>" it won't be displayed.  This is equlivant
to how btrfs and nilfs2 are already handled.

Closes bug 688760 - GParted displays blank resier4 label as <none>
2012-11-21 10:45:44 -07:00
Dimitris Spingos d9ddd2c0f5 Updated Greek translation 2012-11-15 12:35:48 +02:00
Curtis Gedak 88a2939880 Use gksudo, if available, in gparted.desktop
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
2012-11-11 12:19:39 +00:00
Curtis Gedak ec4a2ac09b Use kdesudo in gparted.desktop when gksu is not installed (#687813)
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
2012-11-11 12:19:39 +00:00
Matthias Gehre 1f3b11748e Remove GParted_Core::p_filesystem (#683149)
Bug #683149 - Cleanup(?): Remove lp_device and lp_disk from GParted_Core
2012-11-11 11:47:59 +00:00
Matthias Gehre 52af838df2 Remove GParted_Core::fs (#683149)
Bug #683149 - Cleanup(?): Remove lp_device and lp_disk from GParted_Core
2012-11-11 11:47:59 +00:00
Matthias Gehre d2ced08355 Remove GParted_Core::partition_temp (#683149)
Bug #683149 - Cleanup(?): Remove lp_device and lp_disk from GParted_Core
2012-11-11 11:47:59 +00:00
Matthias Gehre a13bed6424 Remove GParted_Core::temp (#683149)
Bug #683149 - Cleanup(?): Remove lp_device and lp_disk from GParted_Core
2012-11-11 11:47:59 +00:00
Matthias Gehre 6a3b17adc0 Remove lp_partition from GParted_Core (#683149)
Bug #683149 - Cleanup(?): Remove lp_device and lp_disk from GParted_Core
2012-11-11 11:47:59 +00:00
Matthias Gehre 7dd46df954 Remove unnecessary close_device_and_disk()
1) lp_disk is not used and assigned NULL so doesn't need closing.
2) lp_device is already ped_device_open()ed and ped_device_close()d
within the above while loop.  lp_device will be set to NULL when the
while loop ends so this doesn't need closing either.  Hence
close_device_and_disk() is always passed with two NULL pointers and is a
no operation so can be removed.
2012-11-11 11:47:59 +00:00
Matthias Gehre 500f1bcd9b Remove lp_device and lp_disk from GParted_Core (#683149)
They were used like global variables.  Now they are moved to the
functions that actually use them to make clearer how the data flow is.

Bug #683149 - Cleanup(?): Remove lp_device and lp_disk from GParted_Core
2012-11-11 11:47:59 +00:00
Mike Fleetwood 5ca702019e Recognise when Linux swap label is changed to blank (#685656)
Use swaplabel to read the Linux swap label so that 1) a blank label can
be read, and 2) to replace deprecated and removed vol_id.

Vol_id was deprecated in May 2009, superseded by blkid and soon
thereafter removed.  Swaplabel is available in util-linux 2.18 from Jun
2010.

If the swaplabel command is not available GParted falls back on reading
the label through the FS_Info cache which uses the blkid command.  If
the blkid command is also not available FS_Info cache will *NOT* return
any label and GParted will display blank.

Bug 685656 - GParted doesn't notice when file system label is changed to
             blank
2012-11-04 12:26:09 +00:00
Mike Fleetwood 686ec8f713 Make GParted recognise reading blank file system labels (#685656)
GParted doesn't notice when a file system label is changed to blank.
GParted first calls the file system specific read_label() method.  When
the label is blank read_label() correctly sets partition.label to the
zero length string.  Second GParted_Core::set_device_partitions() treats
the zero length string to mean that the label is unset and calls
FS_Info::get_label() to retrieve it from the cache of blkid output.
Blkid also doesn't notice when the file system label has been changed to
blank so reports the previous label.  Hence GParted displays the
previous file system label.

Fix by making label a private member variable of the class Partition and
providing access methods set_label(), get_label() and label_known()
which track whether the label has been set or not.  This only fixes the
fault for file systems which use file system specific commands to read
the label and when these tools are installed.  Otherwise GParted uses,
or has to fall back on using, the buggy blkid command to read the file
system label.

NOTE:
Many of the file system specific read_label() methods use a tool which
outputs more than just the label and use Utils::regexp_label() to match
leading text and the label itself.  If the surrounding text changes or
disappears altogether to indicated a blank label, regexp_label() doesn't
match anything and returns the zero length string.  This  is exactly
what is required and is passed to set_label() to set the label to blank.

Bug 685656 - GParted doesn't notice when file system label is changed to
             blank
2012-11-04 12:26:09 +00:00
Christian Kirbach e2a04d32d3 Updated German translation 2012-10-30 18:56:06 +01:00
Yngve Spjeld Landro 31e3e7f387 Updated Norwegian Nynorsk translation 2012-10-16 21:08:30 +02:00
Rūdolfs Mazurs 3c56801ace Updated Latvian translation 2012-10-14 01:28:02 +03:00
Chao-Hsiung Liao 325fbdd8e6 Updated Traditional Chinese translation(Hong Kong and Taiwan) 2012-10-11 22:39:03 +08:00
Curtis Gedak c49edb369f Append -git to version for continuing development 2012-10-10 11:00:58 -06:00
Curtis Gedak d553b148a6 ========== gparted-0.14.0 ========== 2012-10-10 09:59:42 -06:00
Gabor Kelemen 8531b103bb Updated Hungarian translation 2012-10-08 12:33:43 +02:00
Daniel Korostil ea7c85b714 Uploaded Ukranian 2012-10-04 21:57:20 +03:00
Claude Paroz 858172d24c Updated French translation 2012-10-04 19:45:03 +02:00
Milo Casagrande 6b3ec7887d [l10n] Updated Italian translation. 2012-10-04 11:25:40 +02:00
Piotr Drąg 320ecff46c Updated Polish translation 2012-10-03 21:11:45 +02:00
Mike Fleetwood eaeaebb421 Remove old FIXME comment from reiserfs::read_label()
Traced debugreiserfs on a 10GiB reiserfs file system which was 100% full
full with nearly 900,000 files.  It read exactly three 4KiB blocks from
different offsets and the program never took more than 0.1 seconds.
2012-10-02 13:19:30 -06:00
Mike Fleetwood e7bfd52a4d Remove old #include <cerrno> from jfs and xfs modules
Use of errno disappeared from jfs and xfs when they switched to using
helper functions for file system resizing.
2012-10-02 13:19:30 -06:00
Mike Fleetwood 3828019030 Read file system size for mounted ext2/3/4 from superblock (#683255)
A user had a 190 MiB partition containing an old ext2 file system.  When
unmounted it was reported as filling the partition, but when mounted it
was reported as having 6% unallocated space.  The file system's inode
tables were approximately twice the size of those created by default
with the current mkfs.ext2 defaults.

To create an equivalent file system in a 190 MiB partition:
    mkfs.ext2 -N 97344 /dev/sda15

It turns out that for ext2, ext3 and ext4 file systems what was
described as intrinsic unallocated space during the development of
Bug #499202 is actually file system overhead.  When mounted the ext2/3/4
kernel code reports the size of the file system after subtracting the
overhead.  Overhead is made up of superblock backups, group descriptors,
allocation bitmaps and largest of all inode tables.  E2fsprogs tools
don't subtract this overhead when reporting the file system size.

References:

 *  The Second Extended File System, Internal Layout, by Dave Poirier
    http://www.nongnu.org/ext2-doc/ext2.html

 *  Linux ext2_statfs() function
    http://lxr.linux.no/#linux+v3.5.3/fs/ext2/super.c#L1311

Call the file system specific method for reading the usage of ext2, ext3
and ext4 file systems while mounted.  Make it read the file system size
from the on disk superblock to avoid subtraction of overhead and use the
statvfs() system call to return an up to date free space figure.

Bug #683255 - ext2: statvfs differs from dumpe2fs (x MB unallocated
              space within the partition)
2012-10-02 13:19:29 -06:00
Mike Fleetwood 01150758c3 Make mounted partition usage method selectable per file system (#683255)
Each file system class can now choose how the size and free space of the
file system is determined when it is mounted.

    .fs.online_read = FS::NONE  (default)
        Do nothing.  Don't get the file system size and free space.

    .fs.online_read = FS::GPARTED
        Use internal GParted method which calls statvfs() system call on
        the mounted file system.

    .fs.online_read = FS::EXTERNAL
        Call the file system's member function set_used_sectors().  This
        is the same function as called when the file system is not
        mounted.   It can determine if the file system is mounted or not
        by testing partition.busy and acting accordingly.

This means that determining the size and free space of active LVM2
Physical Volumes is no longer a special case.  Instead the lvm2_pv class
just elects to have its set_used_sectors() method called for both the
active and deactive cases.

Bug #683255 - ext2: statvfs differs from dumpe2fs (x MB unallocated
              space within the partition)
2012-10-02 13:19:29 -06:00
Akom Chotiphantawanon e6365a79eb Updated Thai translation 2012-10-02 21:22:08 +07:00
Mike Fleetwood e282b78b4a Switch to using debugfs.reiser4 to read the label
Vol_id command was deprecated in May 2009 and superseded by the blkid
command.  Replace the generic vol_id command with the file system
specific debugfs.reiser4 command to read the file system label.
Debugfs.reiser4 will exist as it's already required to read the file
system usage and UUID.
2012-09-28 16:45:43 -06:00
Mike Fleetwood 4f235ecb06 Update file system specific validation of RFC 4122 UUIDs
Use the new RFC 4122 none Nil UUID regular expression to validate the
UUID read in all the Linux native file system specific read_uuid()
methods.  No longer need to explicitly exclude "<none>" or all zeros Nil
UUID as the regular expression does this.
2012-09-28 16:45:43 -06:00
Mike Fleetwood aa16bf5451 Switch to using jfs_tune to read the UUID
Not necessary but use the simpler file system tune command rather than
the file system debug command where possible.  Also saves creating an
echo process.
2012-09-28 16:45:43 -06:00
Mike Fleetwood ee87cee96f Switch to using debugreiserfs to read the UUID (#684115)
For a mounted reiserfs file system with a Nil UUID (all zeros) GParted
will display a partition specific warning.  This comes from the reiserfs
specific read_uuid() method.  Error demonstration:

    # blkid /dev/sda15
    /dev/sda15: LABEL="test-reiserfs-2" TYPE="reiserfs"
    # mount | grep sda15
    /dev/sda15 on /mnt/2 type reiserfs (rw,relatime)
    # reiserfstune /dev/sda15
    reiserfstune: Reiserfstune is not allowed to be run on mounted filesystem.

Switch to using debugreiserfs to read the UUID as it can be used on a
mounted file system.

    # debugreiserfs /dev/sda15 2> /dev/null | grep UUI
    UUID: 00000000-0000-0000-0000-000000000000

Bug #684115 - Reiserfs UUID reading issues on Fedora and CentOS
2012-09-28 16:45:43 -06:00
Mike Fleetwood eca986c96d Ignore invalid reiserfs UUIDs (#684115)
On Fedora up to and including Fedora 16 and Red Hat and CentOS up to the
current 6.3 release the UUID of an unmounted reiserfs file system is
displayed as "<no" and a GTK markup warning is written to the terminal.

This was because the reiserfs-utils package isn't linked with libuuid
support so reiserfs file systems were created with a Nil UUID (all
zeros).  To read the UUID GParted first tries to retrieve the UUID from
the blkid command output via the FS_Info cache.  Secondly it tries the
reiserfs file system specific read_uuid() method which uses the first
space separated word following the text "UUID:", hence it gets "<no".

    # debugreiserfs /dev/sda15 2> /dev/null | grep UUID
    UUID: <no libuuid installed>

In September 2012 Red Hat bug 660285 "reiserfstune compiled without UUID
support" was fixed for Fedora 16 and later releases.  On Fedora with
this fix applied GParted will display the Nil UUID (all zeros) for a
previously created reiserfs file system rather than suppressing it.

Only accept valid, none Nil UUIDs in the reiserfs file system specific
read_uuid() method.

Bug #684115 - Reiserfs UUID reading issues on Fedora and CentOS
2012-09-28 16:45:42 -06:00