GNU parted NEWS                                    -*- outline -*-

* Noteworthy changes in release 3.4 (2021-01-27) [stable]

  Include local gnulib change to version-etc.c date.
  This means including a non-public gnulib commit in this release.
  cfg.mk: disable submodule checks to work around broken upstream gnulib

* Noteworthy changes in release 3.3.52 (2020-12-14) [alpha]

** New Features

  Add a new partition type flag, chromeos_kernel, for use with ChromeOS
  machines. This is a GPT-only flag and sets the type GUID to
  FE3A2A5D-4F32-41A7-B725-ACCC3285A309.

  Add a new partition flag for Linux Boot Loader Specification /boot
  partitions. The bls_boot flag will set the msdos partition type to 0xea
  and the GPT partition type GUID to bc13c2ff-59e6-4262-a352-b275fd6f7172.

* Noteworthy changes in release 3.3 (2019-10-10) [stable]

** Bug Fixes

  s390: Re-enabled virtio-attached DASD heuristics by using
  HDIO_GETGEO when probing device geometry. Fixes a bug with
  KVM virtio-blk backed by a DASD.

* Noteworthy changes in release 3.2.153 (2019-08-12) [alpha]

  Parted now recognizes NVMe devices, NVDIMM, and RAM drives.

** Bug Fixes

  Fix atari disklabel false positives by probing other labels first.

  Fix resizepart to adjust the end to be -1 sector when using iec
  power of 2 units so that the next partition can start immediately
  following the new end, just like mkpart does.

  Fix set and disk_set to not crash when there are no flags to set.

  Fix a udev cookie leak when using resizepart on device-mapper devices.

  Fix a gettext crash/error sometimes when using localized languages.

  Fix fat resize to preverve boot code, and thus not render the
  filesystem unreconized by Windows.

  Fix rescue command: the rescue command often failed to find
  filesystems due to leaving on cylinder alignment.

  libparted-fs-resize: Prevent crash resizing FAT file systems with very
  deep directories with path names over 512 bytes long.

  Use 512b sector size when communicating with device-mapper. Fixes
  problems with partitions being created too small on dm devices
  with sector sizes > 5121b

  Don't crash in the disk_set command when a disk label is not found

  libparted-fs-resize: Prevent crash resizing FAT16 file systems.

  libparted-fs-resize: Prevent crash resizing FAT16 file systems.

  If the user specifies start/end of the partition as cylinders
  and a cylinder has a size which is power of 2, then such address
  does not trigger exact placement.

  mkpart: Allow negative start value when FS-TYPE is not given

* Noteworthy changes in release 3.2 (2014-07-28) [stable]

** New Features

  Add support for MBR id, GPT GUID and detection of UDF filesystem.

  libparted-fs-resize: Work on non 512 byte sectors.

  Add resizepart command to resize a partition.  This works even on
  mounted partitions.

  Add support for EAV DASD partitions, which are ECKD's with more than
  65520 cylinders.

  Add support for implicit FBA DASD partitions with a single immutable
  partition.

  Added support for recognizing btrfs filesystem. This simply displays
  btrfs in the 'file system' column of the parted output.

  Added new partition type flag, esp, to set the type to 0xEF on MS-DOS.
  Also aliased to boot on GPT to set the UEFI ESP GUID.

  Added new partition type flag, irst, for use with Intel Rapid Start
  Technology. On MS-DOS disk labels it sets the type to 0x84 and on GPT
  it sets the GUID to D3BFE2DE-3DAF-11DF-BA-40-E3A556D89593.

  You can now choose to ignore errors about partitions that overlap,
  or are longer than the disk.  This allows you to use parted to
  repair the problem.

  Add support for prep flag to GPT to select PowerPC Reference Platform
  boot partition type.

** Bug Fixes

  libparted: fix mac partition tables on > 512 byte sector sizes

  libparted: ped_partition_get_path() was returning "/dev/foo1" instead
  of "/dev/foo" for loop labels.

  partprobe: when called on a disk that has become a loop label,
  remove any partitions left over from a previous label.

  libparted: The loop label represents an unpartitioned disk, but creates
  a dummy partition to represent the whole disk.  This dummy partition
  was actually being loaded into the kernel.  Don't do that.

  libparted: fix loop labels to not vanish if you don't create
  a filesystem, and to not return an error syncing when you do.

  libparted: remove all old partitions, even if new label does not allow
  as many.

  libparted: fat and ntfs boot sectors were misdetected as dos
  partition tables instead of being treated as a loop label.

  libparted: previously if you chose to ignore the warning about
  the gpt thinking the disk was smaller than it appears to be on
  disk, subsequent warnings on other disks would be suppressed.
  Now parted will warn once per disk.

  Fix filesystem detection on non 512 byte sector sizes

  Fix linux partition sync code to flush partitions > 16

  Do not reject a FAT boot sector as invalid because it has no
  system ID string.

  libparted: /dev/md/ symlink can change after libparted dereferences it,
  instead it should just use the symlink as given by the caller in the
  same way we do with /dev/mapper/.

  libparted: On multipath systems new partitions would sometimes not
  appear, reporting 'device-mapper: create ioctl failed: Device or
  resource busy' until the system was rebooted. Added dm_udev_wait
  calls to synchronize parted with udev.

  Fix help text for disk_{set,toggle} to show *disk* flags instead
  of partition flags.

  Fix gpt to correctly handle non ASCII charcters in partition names

  If a drive was 100 times an even multiple of two, sizes specified as
  a percentage would trigger the exact placement rule and refuse to round
  to the nearest half percent.

  Avoid generating udev add/remove events for all unmodified partitions
  when writing a new table.

  Fix cache coherency issue by flushing partition block devices.
  This had been mistakenly disabled in parted 2.0, and resulted
  in parted sometimes identifying the previous filesystem type
  after running an mkfs to format a partition to a new type.

  libparted: fix gpt end of disk handling.  Previously if the backup
  copy of the gpt was not at the end of the disk and you chose to
  ignore this error, parted would move it to the end of the disk
  anyhow.  It will now leave the backup in the same location if
  you chose to ignore this error.

  libparted: handle logical partitions starting immediately after
  the EBR.  Creating a logical partition one sector after the EBR
  used to cause parted to complain that it could not inform the
  kernel of the changes, but after a reboot, everything was fine.
  Parted will now correctly inform the kernel of the changes, but
  only set the length of the extended partition to 1 sector instead
  of two, which would cause it to overlap the logical partition.

  parted: fix EOF and ctrl-c handling.  parted used to refuse to exit
  in response to ctrl-c and would get stuck in an infinite loop
  prompting for more input when it reached EOF on stdin.

  libparted: Don't fail to manipulate partitions on dmraid disks that
  have other partitions in use.

  libparted: mac: a MAC partition table could have a block_size larger
  than the one the kernel told us about.  Upon reading that partition
  table, libparted would ask if it's ok to use the larger block size.
  If you were to respond in the affirmative, libparted would read the
  larger number of bytes into a buffer of the shorter length,
  overrunning it.

  libparted: gpt: fix gpt_get_max_supported_partition_count to work
  also on little-endian systems.

  libparted: treat a disk with no pMBR as an msdos-labeled disk
  even when it has valid GPT headers.

  partprobe now tells the kernel to forget about any partitions
  on a device that has no recognizable partition table.

  dos: the range of random MBR signature values was artificially limited
  to 0..999999, which mistakenly included 0.  Now, we use the full 32-bit
  range, but exclude 0.

** Changes in behavior

  When attempting to manipulate a mounted partition, parted now issues
  a warning that you can choose to ignore, instead of an error.

  When creating a loop label, it automatically comes with a partition
  using the whole disk.

  parted -l no longer lists device-mapper devices other than
  dmraid whole disks.

  Added new Linux-specific partition GUID type code
  (0FC63DAF-8483-4772-8E79-3D69D8477DE4) for Linux filesystem data on GPT
  disks.  This type code is now assigned as the default partition type code
  for new partitions holding Linux filesystems.

  Added new "msftdata" flag to identify partitions holding NTFS or FAT
  filesystems on GPT disks.  This flag corresponds to a GPT type code of
  EBD0A0A2-B9E5-4433-87C0-68B6B72699C7 ("Microsoft Basic Data").  Since
  Linux filesystem partitions formerly used this type code, this flag may
  optionally be set on Linux partitions to make the partition table type
  codes match former configurations in case the new Linux filesystem type
  code causes problems with some utility.  Note that this flag cannot be
  removed from NTFS or FAT partitions within parted except by setting a
  competing flag, such as "boot" (which sets the type code used by EFI
  System partitions) or "msftres" (which sets the "Microsoft Reserved" type
  code).


* Noteworthy changes in release 3.1 (2012-03-02) [stable]

** New features

  parted now supports up to 64 msdos partitions (was 16).  The partition
  table format imposes no limit (it's simply a linked list), so we may
  raise it further, if needed.

  parted has improved support for partitionable loopback devices

  parted provides a new library, libparted-fs-resize, for resizing
  HFS+ and FAT file systems.  This is the subset of the FS-manipulation
  functionality removed in parted-3.0 for which we have found no free
  alternative.  That library provides only these entry points:
    ped_file_system_close
    ped_file_system_get_resize_constraint
    ped_file_system_open
    ped_file_system_resize
  so when using it you must also link with libparted.

** Bug fixes

  libparted: avoid an invalid free when creating many partitions in
  a GPT partition table.  [bug introduced in parted-1.9.0]

  The msdos partition table claimed a maximum partition count of 16
  but would allow you to go beyond that.  This resulted in the kernel
  not being informed of those partitions.  Corrected to enforce the
  limit.

  parted now exits nonzero for certain failures already diagnosed as "Error".
  For example, before this change, parted would exit successfully in spite
  of "Error: ...unrecognised disk label" and "Error:... both GPT primary
  and backup partition tables are corrupted".

  libparted: given a GPT table with a partition table array of length, say 9,
  (usually, there are at least 128 entries) and when run in interactive mode
  with the backup header not at the end of the device where it belongs, parted
  would offer to fix it by moving the backup header to the end.  If you
  accepted, parted could corrupt both headers, truncating their on-disk
  PTE arrays.  Now, parted handles this case.

  libparted: gpt_disk_duplicate now copies the flags over to the new
  disk object. Previously the flags would be undefined.

  libparted can now read partition tables with a number of partition
  array entries that is different from the default of 128.  Before,
  it would fail to recognize them and could even read beyond the end
  of a heap-allocated buffer.

  libparted: no longer aborts (failed assertion) due to a nilfs2_probe bug
  [bug introduced in parted-2.4 with the addition of nilfs2 support]

  libparted: no longer aborts when reading a truncated GPT-formatted device
  [bug present at least as far back as RHEL4's parted-1.6.19]

  libparted: works with a two-component linux kernel version number like 3.0
  [bug present since the beginning]

  libparted: strengthen the pc98 test so that it is much less likely to
  cause an MSDOS partition table to be mistakenly identified as pc98.
  [bug present since the beginning]

  libparted no longer gets a failed assertion when probing a partition
  with an HFS or HFS+ signature, but with invalid ->total_blocks and/or
  ->block_size values.

  parted now uses ext_range device sysfs attribute to determine maximum number
  of partitions the device can hold.  With this change, parted now correctly
  informs kernel about new partitions on partitionable MD RAID devices.

  libparted: creating a new partition table on a device with an existing
  mac partition table could result in a failed assertion.

** Changes in behavior

  Floppy drives are no longer scanned on linux: they cannot be partitioned
  anyhow, and some users have a misconfigured BIOS that claims to have a
  floppy when they don't, and scanning gets hung up.

  parted: the mkpart command has changed semantics with regard to specifying
  the end of the partition.  If the end is specified using units of MiB, GiB,
  etc., parted subtracts one sector from the specified value.  With this
  change, it is now possible to create partitions like 1MiB-2MiB, 2MiB-3MiB
  and so on.

  Device-mapper devices ( LVM, dmraid ) no longer insert a 'p' between the
  base device name and the partition number unless the last character of
  the base device name is a digit.  This brings parted into compliance with
  the partition naming of kpartx and "linux since the dawn of time", but
  differs from the way that dmraid 1.0.0-rc16-3 operates.  A patch to
  correct dmraid has been submitted to ataraid-list@redhat.com.  Without
  this patch, parted and dmraid will both create duplicate partition devices
  named /dev/mapper/foo1 and /dev/mapper/foop1.

  Add the ability to set the boot flag on the GPT PMBR. This is needed
  for some BIOS systems that refuse to boot from GPT unless this is set.
  disk_set and disk_toggle commands can be used to set the pmbr_boot
  flag on the disk.

  The flag is also displayed in a new line, 'Disk Flags:' like this:

    Model:  (file)
    Disk /home/bcl/disk.img: 4295MB
    Sector size (logical/physical): 512B/512B
    Partition Table: gpt
    Disk Flags: pmbr_boot

  Using -m the flags are added after the model name field:

    /root/disk.img:4295MB:file:512:512:gpt::pmbr_boot;

** Build-related

  "make dist" no longer builds .tar.gz files.
  xz is portable enough and in wide-enough use that distributing
  only .tar.xz files is enough.


* Noteworthy changes in release 3.0 (2011-05-30) [stable]

** Bug fixes

  Fix numerous small leaks in both the library and the UI.

** Changes in behavior

  Remove all FS-related (file system-related) sub-commands; these commands
  are no longer recognized because they were all dependent on parted "knowing"
  too much about file system: mkpartfs, mkfs, cp, move, check, resize.
  This change removes not just the user interface bits, but also the
  library functions and nearly all of the underlying FS-munging code.
  The code embedded in Parted by which it knew about those file systems
  was so old, unmaintainable and buggy that while seemingly drastic,
  this change is like removing a gangrenous toe.

  Here is the list of removed functions:

    ped_file_system_clobber
    ped_file_system_open
    ped_file_system_create
    ped_file_system_close
    ped_file_system_check
    ped_file_system_copy
    ped_file_system_resize
    ped_file_system_get_create_constraint
    ped_file_system_get_resize_constraint
    ped_file_system_get_copy_constraint

  This change also removes the corresponding function members
  from "struct _PedFileSystemOps":

    clobber open create close check copy resize get_create_constraint
    get_resize_constraint get_copy_constraint


* Noteworthy changes in release 2.4 (2011-05-18) [stable]

** Bug fixes

  parted no longer allows the modification of certain in-use partitions.
  In particular, before this fix, parted would permit removal or modification
  of any in-use partition on a dmraid and any in-use partition beyond the 15th
  on a regular scsi disk.

  Improve support of DASD devices on the s390 architecture.
  Parted now supports all DASD types (CKD and FBA), DASD formats (CDL,
  LDL, CMS non-reserved, and CMS reserved), and DASD drivers (ECKD, FBA,
  and DIAG) in all combinations supported by the Linux kernel.  As before,
  only CDL format on CKD DASD using the ECKD driver is supported for
  read-write operations (create, delete, move, re-size, etc.).  However,
  the implicit partition present on LDL- and CMS-formatted disks is now
  correctly recognized for read-only operations.  In detail:

  - parted now correctly handles LDL-format disks with a block
    size other than 4096 (bug fix)

  - parted now recognizes the CMS disk format, both reserved
    and non-reserved (enhancement)

  - parted now supports FBA DASD devices (enhancement)

  - parted now supports the DIAG driver when running in a
    virtual machine under z/VM (enhancement)

  libparted: raise the limit on the maximum start sector and the
  maximum number of sectors in a "loop" partition table from 2^32 to 2^64.
  [bug introduced in parted-2.1]

  libparted once again recognizes a whole-disk FAT partition
  [bug introduced in parted-1.9.0]

  libparted now recognizes scsi disks with a high major (128-135) as scsi
  disks

  an msdos partition table on a very small device (smaller than one cylinder)
  is now recognized.  [bug introduced in parted-2.2]

  libparted: zero-length devices (other than files) are ignored rather than
  throwing an exception.

  libparted: gpt label creation can no longer divide by zero with a
  defective device or when a concurrent writer modifies the PE-size
  bytes in the small interval between the write and subsequent read
  of the primary GPT header.

** Changes in behavior

  "parted $dev print" now prints information about the device (model, size,
  transport, sector size) even when it fails to recognize the disk label.

  specifying partition start or end values using MiB, GiB, etc. suffixes
  now makes parted do what I want, i.e., use that precise value, and not
  some other that is up to 500KiB or 500MiB away from what I specified.
  Before, to get that behavior, you would have had to use carefully chosen
  values with units of bytes ("B") or sectors ("s") to obtain the same
  result, and with sectors, your usage would not be portable between devices
  with varying sector sizes.  This change does not affect how parted handles
  suffixes like KB, MB, GB, etc.


* Noteworthy changes in release 2.3 (2010-05-28) [stable]

** New features

  parted now recognizes ATA over Ethernet (AoE) devices

  parted now recognizes Linux Software RAID Arrays

  libparted has a new partition flag to check for diagnostic (aka recovery
  or reserved) partitions: PED_PARTITION_DIAG

** Bug fixes

  When libparted deferenced a /dev/mapper/foo symlink, it would keep the
  resulting /dev/dm-N name and sometimes use it later, even though it
  had since become stale and invalid.  It no longer stores the result
  of dereferencing a /dev/mapper symlink.

  libparted's msdos_partition_is_flag_available function now always reports
  that the "hidden" flag is not available for an extended partition.
  Similarly, msdos_partition_get_flag(p,PED_PARTITION_HIDDEN) always returns 0
  for an extended partition.

  libparted uses a more accurate heuristic to distinguish between
  ext4 and ext3 partitions.

  libparted now properly checks the return value of dm_task_run when
  operating on devicemapper devices.

  allow using ped_device_cache_remove(dev) followed by a (later)
  ped_device_destroy() without corrupting the device cache.

  when creating an ext2 file system[*], Parted no longer creates an
  invalid one when its size is 2TiB or larger.
  [*] Remember, now all FS-creation operations are deprecated in Parted.
  This is not an indicator that we'll be supporting this code.
  On the contrary, it is slated to be removed.

** Changes in behavior

  libparted no longer issues an exception/warning about >512-byte
  sector support being "HIGHLY EXPERIMENTAL".  It seems to have matured
  enough to be usable at least with GPT and MSDOS partition tables.


* Noteworthy changes in release 2.2 (2010-02-26) [stable]

** Changes in behavior

  The default alignment (--align option) for newly created partitions has
  been changed to optimal.

** New features

  The ped_device_get_*_alignment() functions now return a sane default
  value instead of NULL when the so called topology information is incomplete.
  The default minimum alignment aligns to physical sector size, the default
  optimal alignment is 1MiB, which is what vista and windows 7 do.

** Bug fixes

  Parted no longer uses a physical sector size of 0 or of any other
  value smaller than the logical sector size.

  dos: creating an HFS or HFS+ partition in an msdos partition table
  used to set the partition type to 0x83.  That is wrong.  The required
  number is 0xaf, and that is what is used now.

  gpt: read-only operation could clobber MBR part of hybrid GPT+MBR table
  [bug introduced in parted-2.1]

  gpt: a read-only operation like "parted $dev print" would overwrite $dev's
  protective MBR when exactly one of the primary and backup GPT tables was
  found to be corrupt.
  [bug introduced prior to parted-1.8.0]

  sun: the version, sanity and nparts VTOC fields were ignored by libparted.
  Those fields are properly initialized now. The nparts (number of partitions)
  field is initialized to 8 (max. number of sun partitions) rather that to a
  real number of partitions. This solution is compatible with Linux kernel
  and Linux fdisk.

  "make install" no longer installs tests programs named disk and label

  libparted: try harder to inform kernel of partition changes.
  Previously when editing partitions, occasionally the kernel would
  fail to be informed of partition changes.  When this happened future
  problems would occur because the kernel had incorrect information.
  For example, if this problem arose when resizing or creating a
  new partition, then an incorrect partition size might be displayed
  or a user might encounter a failure to format or delete a newly
  created partition, respectively.

  libparted: committing a disk that was returned by ped_disk_duplicate
  would always result in ped_disk_clobber being called (and thus the first
  and last 9KiB of the disk being zeroed), even if the duplicated disk,
  was not returned by ped_disk_fresh().


* Noteworthy changes in release 2.1 (2009-12-20) [stable]

** New features

  new --align=<align> commandline option which can have the following values:
  none:     Use the minimum alignment allowed by the disk type
  cylinder: Align partitions to cylinders (the default)
  minimal:  Use minimum alignment as given by the disk topology information
  optimal:  Use optimum alignment as given by the disk topology information
  The minimal and optimal  values will use layout information provided by the
  disk to align the logical partition table addresses to actual physical
  blocks on the disks. The mininal value uses the minimum aligment needed to
  align the partition properly to physical blocks, which avoids performance
  degradation. Where as the optimal value uses a multiple of the physical
  block size in a way that guarantees optimal performance.
  The min and opt values will only work when compiled with
  libblkid >= 2.17 and running on a kernel >= 2.6.31, otherwise they will
  behave as the none --align value.

  libparted: new functions to set per disk (instead of per partition) flags:
  ped_disk_set_flag()
  ped_disk_get_flag()
  ped_disk_is_flag_available()
  ped_disk_flag_get_name()
  ped_disk_flag_get_by_name()
  ped_disk_flag_next()

  libparted: new per disk flag: PED_DISK_CYLINDER_ALIGNMENT. This flag
  (which defaults to true) controls if disk types for which cylinder alignment
  is optional do cylinder alignment when a new partition gets added.

  libparted: new functions to return per-partition-table-type limits:
    - ped_disk_max_partition_start_sector: Return the largest representable
    start sector number for a given "disk".
    - ped_disk_max_partition_length: Return the maximum partition length
    for a given "disk".

  new command "align-check TYPE N" to determine whether the starting sector
  of partition N is TYPE(minimal|optimal)-aligned for the disk.  E.g.,
      parted -s /dev/sda align-check min 1 && echo partition 1 is min-aligned
      parted -s /dev/sda align-check opt 2 && echo partition 2 is opt-aligned
  The same libblkid and kernel version requirements apply as for --align

  Add functions to libparted to get minimal and optimal alignment
  information from devices:
  ped_device_get_minimal_aligned_constraint()
  ped_device_get_optimal_aligned_constraint()
  ped_device_get_minimum_alignment()
  ped_device_get_optimum_alignment()
  The same libblkid and kernel version requirements apply as for --align

  Add ped_disk_get_partition_alignment() function to libparted to get
  information about alignment enforced by the disk type.

** Bug fixes

  parted can once again create partition tables on loop devices.
  Before, "parted -s /dev/loop0 mklabel gpt" would fail.
  [bug introduced in parted-1.9.0]

  improved >512-byte sector support: for example, printing a table on a
  4k-sector disk would show "Sector size (logical/physical): 4096B/512B",
  when the sizes should have been "4096B/4096B".

  gpt tables are more rigorously checked; before, partition entry array CRCs
  were not checked, and we would mistakenly use the AlternateLBA member of a
  known-corrupt primary table.

  improved dasd disk support, in previous versions calling
  ped_disk_new_fresh() or ped_disk_duplicate() on a dasd type PedDisk
  would fail.  This is fixed now.

  handle device nodes created by lvm build with udev synchronisation enabled
  properly.

  when printing tables, parted no longer truncates flag names


* Noteworthy changes in release 2.0 (2009-10-06) [beta]

** Improvements

  Parted now supports disks with sector size larger than 512 bytes.
  Before this release, Parted could operate only on disks with a sector
  size of 512 bytes.  However, disk manufacturers are already making disks
  with an exposed hardware sector size of 4096 bytes.  Prior versions of
  Parted cannot even read a partition table on such a device, not to
  mention create or manipulate existing partition tables.
  Due to internal design and time constraints, the following
  less-common partition table types are currently disabled:
    amiga, bsd, aix, pc98
  "bsd" and "amiga" are mostly done, but had a few minor problems,
  so may remain disabled until someone requests that they be revived.

** Bug fixes

  big-endian systems can once again read GPT partition tables
  [bug introduced in parted-1.9.0]

  ped_partition_is_busy no longer calls libparted's exception handler,
  since doing so caused trouble with anaconda/pyparted when operating on
  dmraid devices.

  Partitions in a GPT table are no longer assigned the "microsoft
  reserved partition" type.  Before this change, each partition would
  be listed with a type of "msftres" by default.


* Noteworthy changes in release 1.9.0 (2009-07-23) [stable]

** Bug fixes

  parted now preserves the protective MBR (PMBR) in GPT type labels.
  http://lists.alioth.debian.org/pipermail/parted-devel/2008-December/\
    002473.html
  http://lists.gnu.org/archive/html/bug-parted/2008-12/msg00015.html

  gpt_read now uses SizeOfPartitionEntry instead of the size of
  GuidPartitionEntry_t.  This ensures that *all* of the partition
  entries are correctly read.
  http://lists.alioth.debian.org/pipermail/parted-devel/2008-December/\
    002465.html
  http://lists.alioth.debian.org/pipermail/parted-devel/attachments/\
    20081202/b7c0528d/attachment.txt

  mklabel (interactive mode) now correctly asks for confirmation, when
  replacing an existent label, without outputting an error message.
  http://lists.alioth.debian.org/pipermail/parted-devel/2009-January/\
    002739.html

  resize now handles FAT16 file systems with a 64k cluster.  This
  configuration is not common, but it is possible.
  http://parted.alioth.debian.org/cgi-bin/trac.cgi/ticket/207

  parted now ignores devices of the type /dev/md* when probing.  These
  types of devices should be handled by the device-mapper capabilities
  of parted.
  http://lists.alioth.debian.org/pipermail/parted-devel/2009-April/\
    002781.html

  The parted documentation now describes the differences in the options
  passed to mkpart for the label types.
  http://lists.alioth.debian.org/pipermail/parted-devel/2009-April/\
    002782.html

** Changes in behavior

  include/parted/beos.h, include/parted/gnu.h and include/parted/linux.h
  have been removed.  The symbols contained in these files (GNUSpecific,
  ped_device_new_from_store, BEOSSpecific, LinuxSpecific,  LINUX_SPECIFIC)
  were moved to the individual files that need them.

  In libparted, the linux-swap "filesystem" types are now called
  "linux-swap(v0)" and "linux-swap(v1)" rather than "linux-swap(old)"
  and "linux-swap(new)" as in parted 1.8, or "linux-swap" as in older
  versions; "old" and "new" generally make poor names, and v1 is the
  only format supported by current Linux kernels. Aliases for all
  previous names are available.

* Noteworthy changes in release 1.8.8.1 (2007-12-17) [stable]

** FIXME: fill in details

* Noteworthy changes in release 1.8.8 (2007-08-09) [stable]

** GNU parted is now licensed under the GNU General Public License version 3
   or higher.  See the COPYING file for more details.

** libparted:
  - Add compute_block_counts() to improve ext2fs support.
  - Properly detect 'ext2 fs too small' cases.
  - Move formatting commands out of translatable strings.
  - Read an msdos partition table from a device with 2K sectors.
  - Remove always-false "Unable to open" diagnostic in ped_disk_new(),
    leave the "unrecognized disk label" diagnostic.
  - Don't leak partition table buffer in amiga_read().
  - Don't read/write initialized memory with DEBUG turned on off for
    'mklabel bsd' and 'mklabel amiga' command calls.
  - Turn off DEBUG in libparted.c to avoid initializing all allocated
    memory to '1' bits.
  - Correct handling of HeaderSize field in GPT labels.
  - Fix block number used when checking for ext2 fs state.
  - Add detection support for Xen virtual block devices (/dev/xvd*).
  - When reading DASD labels, check the filesystem type as well as
    partition flags to determine what's on the partition.
  - Add _dm_probe_all() from Debian to probe for all device-mapper
    devices.

** parted:
  - Fixed exception handling in mkpart and mkpartfs commands.
  - Add the --dry-run option to the partprobe command.
  - Update docs: cannot specify 'primary' for a partition on a loop
    device.
  - Remove unused functions (get_spaces).
  - Fix off-by-one error in str_list_print_wrap().
  - Use xmalloc() and xrealloc() to check return values.
  - Fix invalid command line argument handling.
  - Close memory leaks in parted.c and table.c.
  - Fix warnings when compiling with translation support enabled.
  - Use a consistent prompt when asking for a file system type.
  - Update docs: don't reference old versions of gzip.

** misc:
  - Improve the testing framework in the tests/ subdirectory.  Build out
    more of the testing scripts so we can start using that to ensure we
    don't introduce regressions in releases.
  - Support testing with tmpfs filesystems on Linux.
  - Work around inadequate libreadline in the configure script.
  - Don't include config.h from internal headers.

* Noteworthy changes in release 1.8.7 (2007-05-09) [stable]

** libparted:
  - Prevent compilation of DASD code on GNU Hurd systems.
  - Integrate new unit testing framework for parted and libparted.
  - Fix primary partition cylinder alignment error for DOS disk labels.
  - Use PED_PARTITION_NORMAL in place of PED_PARTITION_PRIMARY.
  - Avoid segfault due to a double free on reiserfs support.

** parted:
  - Fix script mode (-s) for mkfs command in parted.
  - Suppress "you are not superuser..." warning in script mode.
  - Fix off-by-one bug in parted when displaying information about the
    disk.
  - Do not translate partition names in the 'parted print' command.
    This causes problems for non-Latin-based character sets.
  - Send errors to stderr rather than stdout.
  - Handle command line options independent of the order.
  - Abort on any invalid option and handle -v and -h first.
  - Only display the update /etc/fstab message when there has been a
    change to the disk (a shorter and more direct message too).

* Noteworthy changes in release 1.8.6 (2007-03-20) [stable]

** Revert the implementation of the linux-swap(new) and linux-swap(old) types.
   The type is 'linux-swap' for v1, v2, and s1suspend swap partitions on Linux.

* Noteworthy changes in release 1.8.5 (2007-03-20) [stable]

** Another minor update.  Both versions 1.8.3 and 1.8.4 lacked po translation
   files.  These are included with version 1.8.5.

* Noteworthy changes in release 1.8.4 (2007-03-19) [stable]

** Minor bug fix release for 1.8.3 to fix build issues on various
   platforms:
  - Use 'uname -m' to determine if we build on System Z or not.
  - Include <parted/vtoc.h> in <parted/fdasd.h> for format1_label_t
    definition.
  - Remove unused variables in libparted/arch/linux.c (-Werror).
  - Check return values on fgets() and asprint() in libparted/arch/linux.c
    (-Werror).
  - Check for tgetent() in libtinfo in the configure script.
  - Move some macro definitions in <parted/disk.h> to fix a compile
    problem with gcc-4.1.2 as indicated here:
    http://lists.gnu.org/archive/html/bug-parted/2007-03/msg00008.html

* Noteworthy changes in release 1.8.3 (2007-03-16) [stable]

** libparted:
  - Header file clean ups.
  - Sync the linux-swap header according to the Linux kernel sources.
  - Enable support for swsusp partitions and the ability to differentiate
    between old and new versions of linux-swap partitions.
  - Renaming PARTITION_EXT to PARTITION_DOS_EXT in the DOS disklabel
    code (consitency with Linux kernel source).
  - Added libparted.pc pkg-config file.
  - Remove unused functions, ifdefs, and other code.
  - Deprecate ped_[register|unregister]_disk_type in favor of
    ped_disk_type_[register|unregister].
  - Small test program fixes (in label.c and common.c).
  - Make functions const-correct.
  - Handle systems where libreadline is not available.
  - Preserve starting sector for primary NTFS 3.1 partitions on DOS
    disklabel.
  - Handle 2048-byte logical sectors in linux_read().
  - Use PED_SECTOR_SIZE_DEFAULT macro in place of 512.
  - Don't assume logical sector size is <= 512B on AIX.
  - Detect HFS write failure.
  - Use mkstemp() in place of mktemp().
  - Added HFS+ resize support.
  - Don't build DASD support on non-zSeries hardware.

** parted/partprobe:
  - Use fputs() and putchar() in place for printf(), when possible.
  - Detect/report stdout write errors.
  - Accept the --version and --help options.
  - Fix memory leaks in parted(8).

** general:
  - Synchronize the manual page and --help documentation.
  - GNU autoconf and automake updates.
  - 'gcc -Wall -Wshadow' warning cleanups.
  - Don't define _GNU_SOURCE manually.
  - Documentation updates and cleanups (AUTHORS, copyright notices,
    etc).
  - Use gnulib (http://www.gnu.org/software/gnulib/).

* Noteworthy changes in release 1.8.2 (2007-01-12) [stable]

** libparted:
  - Add the ped_device_cache_remove() function to remove a device from
    the cache.  This is necessary for some things that use libparted,
    including pyparted.
  - Fix a segfault in ped_assert() where the wrong pointer is freed in
    the backtrace handler.
  - Only call _disk_warn_loss(disk) in do_mklabel() if disk is not NULL.
    Fixes a segfault when initializing new volumes.
  - Dynamically allocate space for exception messages.
  - Output a backtrace when catching SEGV_MAPPER or a general SIGSEGV.

** parted:
  - Destroy all objects before return when called with --list or --all
    option.
  - Zero sized device is shown as 0.00B and not -0.00kB.
  - Implement 'print devices' command.
  - Alias 'print list' to 'print all'.
  - Alias 'mktable' to 'mklabel'.

** misc:
  - Other bug fixes, documentation updates, and translation improvements.
  - Code and API clean-ups.

* Noteworthy changes in release 1.8.1 (2006-12-04) [stable]

** libparted:
  - Rework backtrace support.
  - Code cleanups.
  - Added --enable-selinux configure option to enable linking libparted with
    libselinux and libsepol.
  - Disable ext2fs resize for now, tell user to use resize2fs.

** parted:
  - Fix loop in print_all().
  - Introduce the -list command-line switch.
  - Make mktable aliased to mklabel.
  - Warn before mklabel and mkfs.
  - Code cleanups in _partition_warn_busy(), _disk_warn_busy(),
    _partition_warn_loss(), and _disk_warn_loss().
  - Avoid warning about user permissions when using --version.
  - Fix 'print' command help.
  - Proper print when there are no extended partitions, but partition names.

** misc:
  - Generate SHA-1 digest of the archive files and upload those along with the
    actual archive files.
  - Update translation files.
  - Remove automatically generated files from version control.

* Noteworthy changes in release 1.8.0 (2006-11-17) [stable]

** libparted:
  - GPT fixes:
       - Correctly handle disks with non-512 byte sector sizes
       - Support LUN resizing (see new space, allow parted to use it)
       - Prevent overlap of LastUsableLBA and PartitionEntryLBA in backup GPT
  - Prevent SIGFPE when FAT sector size is 0
  - Add ped_exception_get_handler()
  - DASD support for IBM zSeries systems
  - AIX disk label support
  - Detect Promise SX8 storage devices
  - Macintosh (ppc and x86) disk label improvements:
       - Prevent LVM and RAID partition types from corrupting the table
       - Fix removal of driver partition
  - Add support binary units (MiB, KiB, GiB)
  - In ped_register_disk_type(), handle disk_types==NULL case
  - In ped_unregister_disk_type(), handle case where type is not registered
  - Fix geometry read problems on 64-bit Macs (and probably other 64-bit systems)
  - Add support for /dev/mapper devices via libdevmapper library
  - Detect Apple_Boot partition types correctly on MacOS X 10.4 systems

** parted:
  - Various bug fixes, signal handling fixes, and spelling error fixes
  - UI improvements to display more information about the disk and transport
    layer

========================================================================

Copyright (C) 2001-2014, 2019-2021 Free Software Foundation, Inc.

Permission is granted to copy, distribute and/or modify this document
under the terms of the GNU Free Documentation License, Version 1.3 or
any later version published by the Free Software Foundation; with no
Invariant Sections, with no Front-Cover Texts, and with no Back-Cover
Texts.  A copy of the license is included in the ``GNU Free
Documentation License'' file as part of this distribution.
