Commit Graph

2073 Commits

Author SHA1 Message Date
Joan Lledó 14374c19f3 Fix failure creating read-only view of rescued file systems (#680740)
The mount of lost file systems that were larger than a 32 bit integer
could hold (~2 GiB), or started after the first ~2 GiB of disk, would
fail.

Closes Bug #680740 - Gparted fails when mounting the read-only view of
                     lost filesystems
2012-07-31 10:34:14 -06:00
Baurzhan Muftakhidinov eb74ed69b8 Updated Kazakh translation 2012-07-26 09:16:32 +06:00
Wylmer Wang c472b60046 Update Chinese translation 2012-07-17 21:40:49 +08:00
Christian Kirbach 204a3448f2 Updated German translation 2012-07-15 13:39:27 +02:00
Enrico Nicoletto ba3e44c52f Updated Brazilian Portuguese translation 2012-07-13 17:36:15 -03:00
Curtis Gedak 3d7ea276c5 Minor spelling and word changes to NEWS for last release 2012-07-13 10:39:41 -06:00
Curtis Gedak 6a68734a1e Append -git to version for continuing development 2012-07-13 10:38:04 -06:00
Curtis Gedak 09761dd0d4 ========== gparted-0.13.0 ========== 2012-07-13 09:21:19 -06:00
Curtis Gedak e5c7172440 Add more contributors to AUTHORS
Scanned ChangeLog and added some GParted code contributors that had
been accidentally missed from being included in the AUTHORS file.
2012-07-12 15:12:59 -06:00
Aleksej Kabanov 0f0af430e6 Updated Russian translation 2012-07-11 23:40:10 +04:00
Aleksej Kabanov 49c3bfea29 Updated Russian translation 2012-07-11 12:57:01 +04:00
Alexander Shopov ce1bf8693b Updated Bulgarian translation 2012-07-10 21:14:36 +03:00
Alexander Shopov a921e65cec Updated Bulgarian translation 2012-07-10 20:40:19 +03:00
Mike Fleetwood a6ff181faf Make btrfs_size_*() static member functions
The member functions btrfs_size_to_num(), btrfs_size_max_delta() and
btrfs_size_to_gdouble() don't access any member variables.  Therefore
they don't need the const qualifier allowing them to be called when the
btrfs object is const for read-only access to member variables, but
instead need to be static member functions with no access to member
variables.
2012-07-08 12:12:16 -06:00
Milo Casagrande 9020d6cced [l10n] Updated Italian translation. 2012-07-05 22:28:31 +02:00
Andika Triwidada ff441f85b9 Updated Indonesian translation 2012-07-05 23:08:39 +07:00
Piotr Drąg 7bae117213 Updated Polish translation 2012-07-05 17:50:57 +02:00
Curtis Gedak 9591b2de08 Provide credit in About dialog for significant contributions (#678486)
Closes Bug #678486 - Provide Credit in About Dialog for Significant
                     Contributions
2012-06-30 11:27:25 -06:00
Curtis Gedak 66961a9057 Reorder names and add significant contribution reminder to AUTHORS 2012-06-30 11:15:44 -06:00
Curtis Gedak 14f48809ff Update AUTHORS
Update email address for Seth Heeren
2012-06-30 11:02:59 -06:00
Curtis Gedak 6a6607e1c6 Avoid end partition overlap when resizing extended partition (#678831)
When resizing an extended partition, a problem can occur with MiB
alignment wherein the requested end sector could be less than the end
sector of the last logical partition.  This would be an invalid
geometry because all the logical partitions must be wholly contained
within the extended partition.

Check for this situation and if found then set requested end for
the extended partition to the end of the last logical partition.

Closes Bug #678831 - Partition End Overlap when Resizing Extended
                     Partition
2012-06-30 10:47:40 -06:00
Mike Fleetwood 367945bbb2 Restore original logic regarding negative values in get_usage_triple()
Restore intended logic accidentally changed by my recent commit:

    Simplify calc_usage_triple() interface and rename
    6c96ab34b3

Set each display integer to zero if the associated usage value is
negative, rather than setting 100% unused for unknown usage.  Graphical
display of partition usage for unknown and unsupported file system types
is not affected and continues to be all white because of the logic in
the callers.
2012-06-30 10:37:13 -06:00
Mike Fleetwood d9e314f82f Remove and rename local variables in Display_Info()
Local variables used, unused and unallocated were hiding class member
variables of the same name.  Remove first two local variables as they
were only accessed once and rename third.
2012-06-26 14:13:31 -06:00
Mike Fleetwood 6c96ab34b3 Simplify calc_usage_triple() interface and rename
Now that every call to calc_usage_triple() just passes usage figures
returned by get_sectors_*(), remove those parameters, call
get_sectors_*() internally and rename to get_usage_triple().
2012-06-26 14:13:31 -06:00
Mike Fleetwood ac3ce5ec2b Simplify main window partition usage graphic code
Stop using fraction_unallocated and fraction_used member variables of
the DrawingAreaVisualDisk class as intermediate storage of partition
usage fractions.  Instead get the figures straight from the partition
class and use the new calc_usage_triple() to directly set pixels widths
for the partition usage graphic.
2012-06-26 14:13:31 -06:00
Mike Fleetwood 67f334a8ac Fix minor unallocated space display issue in the Info dialog (#499202)
For specific partition usage values the right hand border of the
partition graphic in the Information dialog would be displayed as grey
rather than the color assigned to the partition.

Steps to reproduce fault:
    Create 1024 MiB partition
    # lvm pvcreate /dev/sda12
    # lvm vgcreate GParted-VG1 /dev/sda12
    View partition information

Fragment from Dialog_Partition_Info::init_drawingarea():
    139  else if ( partition .sector_usage_known() )
    140  {
    141          used        = Utils::round( ( 400 - BORDER *2 ) / ( dlength / partition .get_sectors_used()   ) ) ;
    142          unused      = Utils::round( ( 400 - BORDER *2 ) / ( dlength / partition .get_sectors_unused() ) ) ;
    143          unallocated = 400 - BORDER *2 - used - unused ;
    144  }

For this issue the above values are both exactly x.5 and both round
upwards, resulting in unallocated being -1.
    used        = round((400 - 8*2)/(2097152.0/8192))    = round(1.5)
    unused      = round((400 - 8*2)/(2097152.0/2088960)) = round(382.5)
    unallocated = 400 - 8*2 - 2 - 383 = -1

The simple fix would be to use floor() instead of round() in the
calculation of either used or unused.  The same fix would also need to
be applied in Display_Info() for the calculation of the percentage
figures.  Unfortunately this simple fix can lead to odd figures when the
used or unused is close to zero and floor() or ceil() is effectively
applied rather than round().  For example:
    Size:           227.23 GiB
    Used:           28.00 KiB   ( 1% )
    Unused:         180.00 GiB  ( 79% )
    Unallocated:    47.23 GiB   ( 20% )
Used figure of 28 KiB in 227 GiB partition should be rounded to 0% but
wasn't.

Write Partition::calc_usage_triple() which calculates the "best" figures
by rounding the smaller two figures and subtracts them from the desired
total for the largest figure.  Apply to the calculation of the partition
usage percentage figures in the Information dialog and the partition
usage graphic in the same dialog and the main window.

Bug #499202 - gparted does not see the difference if partition size
              differs from filesystem size
2012-06-26 14:13:31 -06:00
Wylmer Wang 747d08f2e4 update Simplified Chinese (zh_CN) translation 2012-06-24 01:19:13 +08:00
Curtis Gedak d631c93607 Update credits in about dialog for artwork
Provide credit for the Tango themed icons designed by Sebastian Kraft.
2012-06-21 14:52:04 -06:00
Curtis Gedak 42faca3ef0 Fix one spelling mistake in en_CA translation
"file sysem" --> "file system"
2012-06-20 20:29:17 -04:00
Rūdolfs Mazurs 1d06c94c2a Updated Latvian translation 2012-06-20 22:06:30 +03:00
Daniel Mustieles cab7276365 Updated Spanish translation 2012-06-19 15:47:27 +02:00
Rogier Goossens e8f44cd61c Updated Dutch translation 2012-06-18 21:35:52 +02:00
Matej Urbančič 077cd075fd Updated Slovenian translation 2012-06-18 21:14:05 +02:00
Curtis Gedak 52043cd717 Update AUTHORS
Provide credit for patch set by Mike Fleetwood to show when partition
size differs from file system size.
2012-06-18 13:11:25 -06:00
Mike Fleetwood 7ebedc4bb3 Don't show intrinsic unallocated space (#499202)
Most file systems report intrinsic unallocated space using the statvfs()
system call when mounted, but not using their own tools.  They are:
ext2/3/4, fat16/32, hfs, nilfs2, reiserfs and xfs.  Showing either a
little or no unallocated space, depending on whether a file system is
mounted or not, could be confusing to the user.

When all file systems are created filling their partitions the unused
figure reported by statvfs() and their own tools are the same or very
close.  Also the used plus unallocated figure from statvfs() agrees with
the used figure from their own tools.

For all file systems don't display intrinsic unallocated space (that
below the threshold of 2 to 5%), instead include it as used space.  As
soon as the amount of unallocated space becomes significant display it
everywhere and also trigger the warning.

For display purposes always use the new Partition methods:
get_sectors_used(), get_sectors_unused(), and get_sectors_unallocated().
When calculating new usage figures during Paste and Resize/Move
operations directly access sectors_used, sectors_unused and
sectors_unallocated members.

Bug #499202 - gparted does not see the difference if partition size
              differs from filesystem size
2012-06-18 12:41:59 -06:00
Mike Fleetwood b5c80f18a9 Enhance calculation of significant unallocated space (#499202)
Many file systems report differing percentages of unallocated space over
a range of sizes, as well differing figures using their own specific
tools or using statvfs() system call when mounted.

File systems reporting intrinsic unallocated space using their specific
tools are: jfs, lvm2 pv and ntfs.  LVM2 PV has the largest amount of
unallocated space with its default Physical Extent size of 4 MiB.  For a
100 MiB partition it has 4.0% unallocated space.

File systems reporting intrinsic unallocated space using the statvfs()
system call when mounted are: ext2/3/4, fat16/32, hfs, jfs, nilfs2,
ntfs, reiserfs, and xfs.  Xfs has the worst identified unallocated space
of ~4.7% in a 100 MiB partition.  Ext2/3 exhibit unusual behaviour by
reporting unallocated space of ~4.6% in a 100 MiB partition falling to a
constant percentage of ~1.8% for sizes of 1 GiB and above.

Update the calculation for used to estimate the maximum size of
intrinsic unallocated space.  Limit is now 5% for partitions smaller
than 100 MiB, 2% for partitions larger than 1 GiB and linear scaling of
the percentage between.  Will still get false unallocated space warnings
for mounted xfs file systems and lvm2 pvs smaller than 100 MiB.

Also add a short note and worked example calculation of unallocated
space to the HACKING file.

Bug #499202 - gparted does not see the difference if partition size
              differs from filesystem size
2012-06-18 10:24:29 -06:00
Mike Fleetwood 3737224028 Include intrinsic unallocated space for resizing purposes (#499202)
A number of file systems report intrinsic unallocated space even when
they are created filling the partition.  As reported using their own
specific tools, they are: jfs, lvm2 pv and ntfs.  Therefore when
resizing a partition estimate its minimum size to be used sectors plus
any unallocated sectors up to the significant amount.

Bug #499202 - gparted does not see the difference if partition size
              differs from filesystem size
2012-06-18 10:24:29 -06:00
Mike Fleetwood 7fc16a1b69 Handle btrfs tools rounding of figures (#499202)
The btrfs programs only provide approximations of file system sizes
because they display figures using binary prefix multipliers to two
decimal places of precision.  E.g. 2.00GB.  For partition sizes where
the contained file system size rounds upwards, GParted will fail to read
the file system usage and report a warning because the file system will
appear to be larger than the partition.

For example, create a 2047 MiB partition containing a btrfs file system
and display its size.

    # btrfs filesystem show
    Label: none  uuid: 92535375-5e76-4a70-896a-8d796a577993
            Total devices 1 FS bytes used 28.00KB
            devid    1 size 2.00GB used 240.62MB path /dev/sda12

The file system size appears to be 2048 MiB, but that is larger than the
partition, hence the issue GParted has.  (Actually uses the btrfs devid
size which is the size of the btrfs file system within the partition in
question).

This issue is new with the fix for Bug #499202 because it queries the
file system sizes for the first time.  The same issue could
theoretically occur previously, but with the used figure (FS bytes
used).  This would have been virtually impossible to trigger because
btrfs file system would have to have been greater than 99% full, but
btrfs has been notorious for early reporting of file system full.

The fix is that if a btrfs file system size appears larger than the
partition size, but the minimum possible size which could have been
rounded to the reported figure is within the partition size use the
smaller partition size instead.  Apply the method to the used figure
too, in case the file system is 100% full.  Also if the btrfs file
system size appears smaller than the partition size, but the maximum
possible size which could have been rounded to the reported figure is
within the partition size use the larger partition size instead to avoid
reporting, presumably false, unallocated space.  Not applied to file
system used figure.

Bug 499202 - gparted does not see the difference if partition size
             differs from filesystem size
2012-06-18 10:24:29 -06:00
Mike Fleetwood 7ddbc9bd92 Set unallocated space for paste or resize/move operations (#499202)
When pasting a copied partition into free space or move/resizing a
partition set its space utilisation so that any unallocated space within
the partition is displayed correctly before the operation is applied.

NOTE:
If the file system does not support file system resizing the Paste and
Move/Resize dialogs don't allow resizing the partition so the preview
will always be correct, unlike the case in the previous patch:
    Set unallocated space when performing simple operations (#499202)

Also remove the deprecated and no longer used Partition::Set_Unused()
and Partition::set_used() methods.

Bug #499202 - gparted does not see the difference if partition size
              differs from filesystem size
2012-06-18 10:24:29 -06:00
Mike Fleetwood 04f5250644 Set unallocated space when performing simple operations (#499202)
When pasting a copied partition into an existing partition set its space
utilisation so that any unallocated space is displayed correctly before
the operation is applied.  If the destination partition is larger the
file system will be grown to fill the partition.

NOTE:
GParted will attempt to grow the the file system in this situation
regardless of whether the file system supports it or not.  These file
systems: exfat, hfs, hfs+, reiser4 and ufs can't be grown and will fail
with "growing is not available for this file system".  The preview will
also be wrong in this case for the same reason.  Everything will be
depicted correctly after the refresh.

When formatting an existing partition default its space utilisation to
unknown for display before the operation is applied.

Bug 499202 - gparted does not see the difference if partition size
             differs from filesystem size
2012-06-18 10:24:28 -06:00
Mike Fleetwood 2b9c6425b5 Display unallocated space in the main window (#499202)
Display the unallocated space within a partition in the main window's
graphical disk representation.

Bug #499202 - gparted does not see the difference if partition size
              differs from filesystem size
2012-06-18 10:24:28 -06:00
Mike Fleetwood 30385cbd37 Query unallocated space via libparted (#499202)
Update the implementation using libparted to set the file system size
and free space, thus allowing the unallocated space in the partition to
be calculated, for the following unmounted file systems:
    hfs, hfs+
(Requires libparted <= 2.4 or libparted >= 3.1, as the needed
functionality did not exist in libparted 3.0).

Bug #499202 - gparted does not see the difference if partition size
              differs from filesystem size
2012-06-18 10:24:28 -06:00
Mike Fleetwood e6290dbbcf Query unallocated space for LVM2 PVs (#499202)
Add reporting of the LVM2 Physical Volume size allowing the unallocated
space in the partition to be calculated.

Bug #499202 - gparted does not see the difference if partition size
              differs from filesystem size
2012-06-18 10:24:28 -06:00
Mike Fleetwood 719e73e335 Query unallocated space for unmounted file systems (#499202)
Update file system specific implementations to set the size and free
space, thus allowing the unallocated space in the partition to be
calculated, for the following unmounted file systems:
    btrfs, ext2, ext3, ext4, fat16, fat32, jfs, nilfs2, ntfs, reiserfs,
    reiser4, xfs

Bug #499202 - gparted does not see the difference if partition size
              differs from filesystem size
2012-06-18 10:24:28 -06:00
Mike Fleetwood 8ffd68b012 Display unallocated space in the information dialog (#499202)
Display the unallocated space in the graphical partition representation
and numeric figures in the Partition Information dialog.

Bug #499202 - gparted does not see the difference if partition size
              differs from filesystem size
2012-06-18 10:24:28 -06:00
Mike Fleetwood 8093ba2ebd Record unallocated space within a partition (#499202)
Currently GParted assumes that a file system fills its containing
partition.  This is not always true and can occur when resizing is
performed outside of GParted or a resize operation fails.  GParted
doesn't display any information about unallocated space to the user
and in most cases it is simply included in used space.

Add partition unallocated space accounting.  Make GParted record the
unallocated space for mounted file system and display a warning in the
Partition Information dialog when too much unallocated space is found.

Partition::set_sector_usage( fs_size, fs_unused ), is the new preferred
method of recording file system usage because it allows the unallocated
space in a partition to be calculated.  Partition::Set_Unused() and
Partition::set_used() are now deprecated.

NOTES:

1)  Set the minimum unallocated space to be 5% before considering it
    significant to avoid false reporting.  Worst case found was a
    mounted xfs file system in a 100MiB partition, which reports as
    ~4.7% unallocated according to file system size from statvfs().
    However, it reports as having no unallocated space using xfs
    specific tools.

2)  Unallocated space is only a graphical representation for the user.
    GParted must still use relevant tools to resize file systems before
    shrinking the data and can't assume all unallocated space exists
    after the file system at the end of the partition.

Bug #499202 - gparted does not see the difference if partition size
              differs from filesystem size
2012-06-18 10:24:28 -06:00
Curtis Gedak 9aac0ae6e7 Fix more spelling mistakes in en_CA translation
"couln"    --> "could"
"fromt he" --> "from the"
"pendingi" --> "pending"
2012-06-17 10:59:18 -04:00
Curtis Gedak 39e82f82a4 Fix spelling mistake in two sentences in en_CA translation
"fil esystem" --> "file system"
2012-06-17 10:57:09 -04:00
Curtis Gedak e48ed15b18 Minor indentation change to NEWS for last release 2012-05-22 11:15:42 -06:00
Pavol Klačanský 03331616a2 Updated Slovak translation 2012-04-16 16:32:57 +02:00