2012-03-02  Jim Meyering  <meyering@redhat.com>

	version 3.1
	* NEWS: Record release date.

	maint: bump library version to 2.0.0
	* libparted/Makefile.am (CURRENT): Increment, since I removed
	ped_realloc.

	maint: update README-release to reflect we now have two libraries
	* README-release: Two sets of library version triples to adjust.
	* bootstrap: Tiny fix from gnulib.

	lib-fs-resize: remove unused probe-related code
	* libparted/fs/r/hfs/probe.c: Remove probe-related functions.
	There are not used.
	* libparted/fs/r/fat/fat.c: Likewise.
	* libparted/fs/r/hfs/probe.h: ...and declarations.

2012-02-26  Jim Meyering  <meyering@redhat.com>

	libparted: avoid unwarranted failed assertion during mklabel
	This could happen when running "parted -s $dev mklabel $type" for
	nearly any $type, assuming the underlying disk's sector size is
	larger than 512 bytes.  This particular failure was noticed by
	running tests/t9050-partition-table-types.sh with a simulated
	sector size of 1024, as is done as part of a top-level "make check",
	but so far, this failure has shown up only on RHEL-6.2.
	That test attempts to exercise an ugly part of partition table
	creation: during creation, parted checks for an existing
	partition table by iterating through its list of known types and
	attempting to read the disk, looking for a preexisting table.
	Knowing this, the test takes all pairs of partition table types,
	<A,B> and first creates a type of type A, and then creates on top
	of that (erasing the original) a table of type B.
	* libparted/labels/mac.c (_disk_analyse_ghost_size): Remove bogus
	assertion.  If the number of the sector with a matching signature
	is too large, simply reject it by returning 0.
	* NEWS (Bug fixes): Mention this.

2012-02-25  Jim Meyering  <meyering@redhat.com>

	doc: improve NEWS
	* NEWS: Expand/adjust wording in two entries.

2012-02-21  Jim Meyering  <meyering@redhat.com>

	tests: sanitize PATH; do not discard mkswap output
	* tests/init.cfg (sanitize_path_): New function, from coreutils.
	Use it.
	* tests/t9050-partition-table-types.sh: Do not discard mkswap output
	and diagnostics.  This test would fail (e.g., on OpenSUSE 12.1), when
	run with PATH not including /sbin.  Reported by Bruno Haible.

2012-02-18  Jim Meyering  <meyering@redhat.com>

	tests: skip failing use of mkfs.hfs unless using newer, fixed version
	The old, segfaulting version does not recognize the -v option, while
	the new one does.  Use that to skip the test when it seems that
	fsck.hfs is broken.
	* tests/t3000-resize-fs.sh: Skip part of this root-only test
	when fsck.hfs is the always-segfaulting version.

	build,test: update gnulib, bootstrap and init.sh
	* bootstrap: Update.
	* tests/init.sh: Update.
	* gnulib: Update.
	* doc/po4a.mk: Updating gnulib pulls in newer syntax-check rules,
	including one that rejects @lower_case@ variables in Makefiles.
	Fix the sole violation: s/@mandir@/$(mandir)/

	build: avoid non-srcdir build failure
	* libparted/fs/Makefile.am: s!fsresize.sym!$(srcdir)/fsresize.sym!

2012-02-10  Jim Meyering  <meyering@redhat.com>

	maint: placate syntax-check wrt tests/fs-resize.c
	* tests/fs-resize.c (main): Remove unused #includes.
	Do use set_program_name, to placate syntax-check.

	doc: mention HFS+/FAT file system resizing in NEWS
	* NEWS (New features): Mention it.

	tests: test FAT and HFS file system resizing
	* tests/t3000-resize-fs.sh: New test.
	* tests/Makefile.am (TESTS): Add it.
	(check_PROGRAMS): Add fs-resize.
	(fs_resize_LDADD): Define, so it links with both libraries.

2012-02-10  Christoph Hellwig  <hch@lst.de>

	tests: add FS-resize test driver
	* tests/fs-resize.c: New file, to test FAT/HFS resizing.

2012-02-10  Jim Meyering  <meyering@redhat.com>

	lib-fs-resize: use linker script to expose only selected functions
	* libparted/fs/Makefile.am (libparted_fs_resize_la_LDFLAGS): Define.
	(EXTRA_DIST): Distribute the new file.
	(libparted_fs_resize_la_DEPENDENCIES): Make the library depend on it.
	* libparted/fs/fsresize.sym: New file.

	maint: remove r/hfs/DOC,HISTORY,TODO; add VERSION for new library

	lib-fs-resize: rewrite ped_file_system_clobber
	Before, it would probe for an existing file system type and then,
	according to what it found, call the corresponding <FS_TYPE>_clobber
	function.  Now that we have restored only HFS and FAT FS-writing
	support, only those few types have a corresponding _clobber function.
	We would obviously fail to clear common types of file systems, and even
	if we were to restore all previous _clobber functions, none of those
	were able to handle sector sizes larger than 512.  Not worth it.
	* libparted/fs/r/filesys.c: Include pt-tools.h.
	(MIN): Define.
	(ped_file_system_clobber): Rewrite not to use hfs*_clobber or
	fat_clobber.  Instead, simply clear the first three and last two
	sectors of the specified "device".
	* libparted/fs/Makefile.am (INCLUDES): Add
	-I$(top_srcdir)/libparted/labels for new use of a ptt_* function.

	lib-fs-resize: add wrappers for open,close,resize,get_resize_constraint
	* libparted/fs/r/filesys.c: Implement ped_file_system_resize,
	ped_file_system_open, ped_file_system_close and
	ped_file_system_get_resize_constraint.
	* libparted/fs/r/hfs/hfs.c: Give a few functions global scope,
	so we can use them from the above.
	* libparted/fs/Makefile.am: Use automake's subdir-objects option.
	This avoids conflicts with multiple *.o file names
	(e.g., fat.o), now that two directories provide that name.
	(AM_CFLAGS): Disable $(WERROR_CFLAGS), for now.

	maint: update copyrights in r/

2012-02-07  Jim Meyering  <meyering@redhat.com>

	lib-fs-resize: re-add HFS and FAT file-system-related code
	This just adds the code, without hooking it up yet.
	* po/POTFILES.in: Add all libparted/fs/r/**.c files.

	maint: remove now-unused fat-related functions
	* libparted/fs/fat/bootsector.c (fat_boot_sector_generate)
	(fat_boot_sector_write, fat_info_sector_write): Remove functions.
	(fat_boot_sector_set_boot_code): Likewise.
	* libparted/fs/fat/bootsector.h: Remove declarations.
	* libparted/fs/fat/fat.c (fat_set_frag_sectors, fat_free_buffers):
	Remove function.
	* libparted/fs/fat/fat.h: Remove declarations.

	tests: set PARTED_TEST_NAME, for valgrind
	* tests/Makefile.am (PARTED_TEST_NAME): Define.
	* tests/t0211-gpt-rewrite-header.sh: Clarify a comment.

	libparted: gpt: avoid heap-read-overrun when rewriting 9-PTE table
	Now that parted can rewrite a corrupt-or-misaligned 9-PTE table,
	we have to be careful to allocate space for slightly more data
	when the byte-count required for a PTE table is smaller than
	the whole number of sectors would imply.  I.e., when the PTE table
	size is not a multiple of the sector size, there is a fraction of
	that final sector for which we do not read data, but we do write.
	Ensure we have space for the buffer we'll write and that it is
	initialized (to 0's).
	* libparted/labels/gpt.c (gpt_write): Allocate the right amount of
	space.  Use calloc, not malloc+memset.

2012-02-03  Jim Meyering  <meyering@redhat.com>

	maint: adjust the URL that will appear in the generated announcement
	* cfg.mk (url_dir_list): Use this http://ftp.gnu.org/gnu/$(PACKAGE)
	for the first link listed in the generated announcement.
	announce-gen now provides the faster mirror link automatically.

	ui: rewrite disk_print_flags and partition_print_flags
	* parted/parted.c (disk_print_flags): Avoid NULL-dereference on
	failed malloc.  Use xrealloc, not ped_realloc.
	(partition_print_flags): Likewise; nearly identical code.

	tests: avoid relatively harmless new "make syntax-check" failure
	* tests/t0209-gpt-pmbr_boot.sh: Reverse compare arguments.

	libparted: remove ped_realloc, now unused
	* include/parted/parted.in.h (ped_realloc): Remove declaration.
	* libparted/libparted.c (ped_realloc): Remove definition.

2012-02-02  Brian C. Lane  <bcl@redhat.com>

	doc: update parted documentation
	* doc/parted.text: Add disk_set command.

	tests: add test for GPT PMBR pmbr_boot flag
	* tests/t0209-gpt-pmbr_boot.sh: New test
	* tests/Makefile.am: Add new test
	* NEWS: Add information about the GPT PMBR pmbr_boot flag

	tests: update tests for new disk flags output
	* tests/t0010-script-no-ctrl-chars.sh: Updated
	* tests/t0100-print.sh: Updated
	* tests/t0101-print-empty.sh: Updated
	* tests/t0220-gpt-msftres.sh: Updated
	* tests/t0250-gpt.sh: Updated
	* tests/t0280-gpt-corrupt.sh: Updated
	* tests/t2310-dos-extended-2-sector-min-offset.sh: Updated
	* tests/t4000-sun-raid-type.sh: Updated
	* tests/t4100-dvh-partition-limits.sh: Updated
	* tests/t4100-msdos-partition-limits.sh: Updated
	* tests/t4100-msdos-starting-sector.sh: Updated
	* tests/t4200-partprobe.sh: Updated
	* tests/t5000-tags.sh: Updated
	* tests/t6000-dm.sh: Updated
	* tests/t9040-many-partitions.sh: Updated
	* tests/t9041-undetected-in-use-16th-partition.sh: Updated

2012-02-02  Brian C. Lane  <bcl@redhat.com>

	parted: when printing, also print the new disk flags
	This adds a 'Disk Flags:' line the displays the active disk flags.
	In machine mode this is appended to the disk info line, after the
	device model.

	* parted/parted.c (disk_print_flags): New function
	(_print_disk_info): Add Disk Flags information.

2012-02-02  Matthew Garrett  <mjg@redhat.com>

	gpt: add commands to manipulate pMBR boot flag
	Some BIOS systems will only boot from GPT partitions if the boot flag is
	set on the protective MBR partition. This adds the ability to set this
	flag using the disk_set and disk_toggle commands.
	* include/parted/disk.in.h (_PedDiskFlag): Add PED_DISK_GPT_PMBR_BOOT
	* libparted/disk.c (ped_disk_flag_get_name): Add PED_DISK_GPT_PMBR_BOOT
	* libparted/labels/gpt.c (_GPTDiskData): Add pmbr_boot flag.
	(gpt_alloc): Init pmbr_boot to 0.
	(gpt_read_headers): Set pmbr_boot state from PMBR boot flag.
	(_write_pmbr): Add pmbr_boot flag and set PMBR boot flag from it.
	(gpt_write): Pass pmbr_boot flag through to _write_pmbr
	(gpt_disk_set_flag): New function
	(gpt_disk_is_flag_available): New function
	(gpt_disk_get_flag): New function
	(gpt_disk_ops): Add disk_set_flag, disk_get_flag, disk_is_flag_available
	* parted/parted.c (do_disk_set): New function
	(do_disk_toggle): New function
	(_init_commands): Add do_disk_set and do_disk_toggle
	* parted/ui.c (command_line_get_disk_flag): New function
	* parted/ui.h: Add command_line_get_disk_flag prototype.

2012-01-23  Jim Meyering  <meyering@redhat.com>

	tests: create 128 partitions also in the scsi-backed test
	* tests/t9040-many-partitions.sh: Tighten up: use less memory:
	1 sector per partition rather than 256.
	Exec parted just once, not once per partition.
	With that, we can increase the number of partitions to create
	from 60 (which used to take 2.5 minutes on an F12-era kernel)
	to the standard-GPT-header-imposed maximum of 128.
	Suggested by Phillip Susi.

	tests: exercise today's bug fix, creating a GPT table with 128 entries
	* tests/t0212-gpt-many-partitions.sh: New test.
	* tests/Makefile.am (TESTS): Add it.

	libparted: gpt: avoid invalid free with many (~100) partitions
	* parted/parted.c (do_print): Remove invalid free.
	Bug introduced via v1.8.8.1-19-gb56d69c.
	* NEWS (Bug fixes): Mention this.

2012-01-22  Jim Meyering  <meyering@redhat.com>

	tests: test for yesterday's bug fix
	* tests/Makefile.am (TESTS): Add it.
	* tests/t0211-gpt-rewrite-header.sh: New test.

	libparted: gpt: rewrite even a 9-partition-entry table properly
	The vast majority of GPT partition tables have 128 PTEs (partition
	table entries.  However, zfs-related ones have only 9, and when
	rewriting one (which can happen only in interactive mode), parted
	would fail to write the full PTE array whenever the PTE array size
	was not a multiple of the sector size.  This fixes the same type
	of bug as v3.0-45-gce85c51.
	* libparted/labels/gpt.c (gpt_write): When computing how many sectors
	to write for the PTE array, round up rather than truncating.  This
	matters only when n_PTEs * 128 is not a multiple of the sector size.
	For details on how to reproduce see the test or
	http://thread.gmane.org/gmane.comp.gnu.parted.bugs/10691/focus=10695
	* NEWS (Bug fixes): Mention it.

2012-01-21  Jim Meyering  <meyering@redhat.com>

	maint: clean-up preparing for bug fix
	* libparted/labels/gpt.c (gpt_write): Rename local:
	s/ptes_size/ptes_bytes/; declare as size_t, not "int".
	Move decls "down".

2012-01-19  Phillip Susi  <psusi@cfl.rr.com>

	libparted: raise dos partition limit from 16 to 64
	* NEWS (Bug fixes): Mention it.
	* libparted/labels/dos.c (MAX_TOTAL_PART): s/16/64/
	* tests/t9042-dos-partition-limit.sh: s/13/61/ (MAX_TOTAL_PART-3)
	(adjust/factor some of the logic - jmm)

2012-01-18  Phillip Susi  <psusi@cfl.rr.com>

	libparted: enforce dos partition limit
	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.

	* NEWS (Bug fixes): Mention it.
	* libparted/labels/dos.c (next_primary): Return -1 upon failure.
	(next_logical): Stop no later than MAX_TOTAL_PART.
	Throw exception and return -1 upon failure.
	(msdos_partition_enumerate): Convert a negative partition number
	return value from either of the above two to failure (return 0).
	* tests/t9042-dos-partition-limit.sh: New file.
	* tests/Makefile.am (TESTS): Add it.

2012-01-13  Jim Meyering  <meyering@redhat.com>

	build: revert the recent "fix" to avoid make warnings about linux.lo
	It avoided the warning, but introduced a real problem
	when building from a clean directory.
	The real solution will have to wait, since it appears to
	depend on a fix in automake.

	This reverts commit a3c351c2d1cf2c0000bbc681959695c612bd19a0.

2012-01-13  Jim Meyering  <meyering@redhat.com>

	build: don't use -version for convenience libraries
	Don't use -release, either.  This avoids warnings from libtool.
	* libparted/fs/Makefile.am (libfs_la_LDFLAGS): Remove.

	build: use LT_INIT, to make bootstrap run libtoolize
	* configure.ac: Use LT_INIT, so that bootstrap runs libtoolize,
	which creates build-aux/ltmain.sh.

2012-01-12  Jim Meyering  <meyering@redhat.com>

	maint: remove useless BUILD_LINUX conditional
	* configure.ac (BUILD_LINUX): Don't set it.
	* libparted/Makefile.am (BUILD_LINUX): Remove useless use.

2012-01-12  Jim Meyering  <meyering@redhat.com>

	maint: avoid long-standing warnings from make:
	  Makefile:1274: warning: overriding recipe for target `linux.lo'
	  Makefile:1267: warning: ignoring old recipe for target `linux.lo'

	* libparted/Makefile.am (EXTRA_DIST): Rename from
	EXTRA_libparted_la_SOURCES.

2012-01-12  Jim Meyering  <meyering@redhat.com>

	libparted: provide a new convenience function: ptt_geom_clear_sectors
	* libparted/labels/pt-tools.c (ptt_geom_clear_sectors): New function.
	* libparted/labels/pt-tools.h: Declare it.

2012-01-11  Jim Meyering  <meyering@redhat.com>

	maint: remove "MAINTAINERCLEANFILES = Makefile.in" from Makefile.am's
	* debug/Makefile.am: As above.
	* debug/test/Makefile.am: Likewise.
	* doc/C/Makefile.am: Likewise.
	* doc/pt_BR/Makefile.am: Likewise.
	* include/Makefile.am: Likewise.
	* include/parted/Makefile.am: Likewise.
	* libparted/Makefile.am: Likewise.
	* libparted/fs/Makefile.am: Likewise.
	* libparted/tests/Makefile.am: Likewise.
	* partprobe/Makefile.am: Likewise.
	* doc/Makefile.am: Likewise, for mdate-sh and texinfo.tex.

2012-01-10  Keshav P R  <the.ridikulus.rat@gmail.com>

	build: insert -I$(top_builddir)/include before -I$(top_srcdir)/include
	everywhere, for those who perform non-srcdir builds from a pristine
	cloned directory.  There is no problem when building from a tarball,
	since that includes include/parted/*.h files under $(top_srcdir).
	* libparted/Makefile.am: Insert it.
	* libparted/fs/Makefile.am: Likewise.
	* libparted/labels/Makefile.am: Likewise.
	* libparted/tests/Makefile.am: Likewise.
	* parted/Makefile.am: Likewise.
	* partprobe/Makefile.am: Likewise.
	* tests/Makefile.am: Likewise.

2012-01-10  Jim Meyering  <meyering@redhat.com>

	build: .gitignore: ignore more

	maint: hoist libparted/fs/*/Makefile.am into parent Makefile.am
	There was no need to have a separate Makefile.am for each file system
	type, and a good reason *not* to do that (reduce duplication).
	* configure.ac (AC_OUTPUT): Remove Makefiles.
	* libparted/fs/Makefile.am (SUBDIRS): Remove.
	(EXTRA_DIST): List the two non-src files: hfs/DOC hfs/HISTORY.
	(libfs_la_SOURCES): Hoist file names to here from...
	* libparted/fs/amiga/Makefile.am: ...here.
	* libparted/fs/ext2/Makefile.am: Likewise.
	* libparted/fs/fat/Makefile.am: Likewise.
	* libparted/fs/hfs/Makefile.am: Likewise.
	* libparted/fs/jfs/Makefile.am: Likewise.
	* libparted/fs/linux_swap/Makefile.am: Likewise.
	* libparted/fs/nilfs2/Makefile.am: Likewise.
	* libparted/fs/ntfs/Makefile.am: Likewise.
	* libparted/fs/reiserfs/Makefile.am: Likewise.
	* libparted/fs/ufs/Makefile.am: Likewise.
	* libparted/fs/xfs/Makefile.am: Likewise.
	* libparted/fs/*/Makefile.am: Remove files.
	* libparted/fs/amiga/a-interface.c: Now that the .o files are all
	in the same place, rename from interface.c, to avoid collision with
	name of .o file from ext2/interface.c.

	build: correct my typo in preceding commit
	* configure.ac (AC_CONFIG_SRCDIR): Correct preceding commit.
	Keshav's patch was correct, but when I attempted to do the same
	thing manually I wrote .h.in rather than .in.h.

2012-01-10  Keshav P R  <the.ridikulus.rat@gmail.com>

	build: update AC_CONFIG_SRCDIR for non-srcdir-from-clone builds
	* configure.ac (AC_CONFIG_SRCDIR): List parted.h.in, rather than
	the now-generated parted.h, for those who run configure not from
	a distribution tarball, but from a non-srcdir build using a pristine
	clone.

2012-01-09  Jim Meyering  <meyering@redhat.com>

	maint: rename public .h files to .in.h
	Generate .h files from .in.h files, so that we can continue
	to use _GL_ATTRIBUTE_PURE and _GL_ATTRIBUTE_CONST in the primary
	sources, without including them in publicly-installed files.
	Each generated (and later installed) header file gets expansions
	of those macros.
	* include/parted/Makefile.am: New rules.
	* .gitignore: Ignore the generated files.
	* Makefile.am (SUBDIRS): Reorder so we build in include/ before
	libparted, i.e., so that we generate the .h files we'll need.

	parted.h: use _GL_ATTRIBUTE_CONST and _GL_ATTRIBUTE_PURE in VC'd files
	However, we will replace those strings with their expansions when
	installing them.
	* include/parted/parted.h: Revert part of commit v3.0-83-gd51bfc0.

	tests: root-only test would fail to remove its loop device
	* tests/t8001-loop-blkpg.sh: Ironically, when skipping this test,
	there was a race condition where in more than 7 out of 10 trials,
	this test's "losetup -d $dev" command would fail with "device in use".
	Hence, with enough testing, I would eventually use up all loop devices
	and start getting new test failures due to losetup *creation* failure.

	build: fix "make distcheck" failure
	Ever since "make distcheck" began using sudo (i.e., running "make check"
	as root, and then running it as non-root), the build-after-root would
	often fail due to some derived files being owned by root.
	This change adds a "chown -R $USER ." to restore order.
	* Makefile.am (root-check): Run "chown -R $USER ." after sudo run.
	(root_check): Rename variable from root-check, to avoid a warning
	from automake about non-POSIX variable.

	build: appease gcc's -Werror=suggest-attribute=pure
	* parted/strlist.c (wchar_strcasecmp): Add pure attribute; make static.
	(wchar_strncasecmp): Likewise.
	(wchar_strdup): Likewise.

2012-01-09  Jim Meyering  <meyering@redhat.com>

	build: update to latest from gnulib
	* bootstrap: Update.
	* tests/init.sh: Likewise.
	* gnulib: Update submodule to latest.

	maint: remove two generated files in doc/
	* doc/fdl.texi: Remove file from version control.  It is generated.
	* doc/gendocs_template: Likewise.
	* doc/parted.texi: Add @node ... before inclusion of fdl.texi,
	since fdl.texi dropped that part.
	* doc/parted-pt_BR.texi: Likewise.
	* doc/.gitignore: Update.

	build: accommodate newer bootstrap from gnulib
	* bootstrap.conf (gnulib_tool_option_extras): Add both --symlink
	and --makefile-name=gnulib.mk.  Remove stray use of $bt.
	* lib/Makefile.am: Initialize all of the following so that
	generated code in gnulib.mk may use += to append to those variables:
	AM_CFLAGS, AM_CPPFLAGS, BUILT_SOURCES, CLEANFILES, EXTRA_DIST,
	MAINTAINERCLEANFILES, MOSTLYCLEANDIRS, MOSTLYCLEANFILES, SUFFIXES,
	noinst_LTLIBRARIES.

2012-01-09  Jim Meyering  <meyering@redhat.com>

	libparted: gpt: a smaller device need not render both headers invalid
	Putting a valid GPT-labeled image on a smaller device, (i.e., one that
	truncates the backup GPT header, but that does not impact the primary
	one) should not render the primary header invalid.
	* libparted/labels/gpt.c (_header_is_valid): Do *not* reject a header
	when its last_usable value is larger than the device length.
	This reverts part of commit v3.0-10-g99f9c6a, "gpt: don't abort for a
	truncated GPT-formatted device".  With this change, running parted in
	interactive mode with such an image/device combination will recognize
	that only the backup header is corrupt, and will offer to correct it.
	Before, it would report that both headers were corrupt.
	* tests/t0203-gpt-shortened-device-primary-valid.sh: New file.
	* tests/Makefile.am (TESTS): Add it.

	gpt: eliminate four PED_ASSERT uses
	* libparted/labels/gpt.c (_parse_header): Convert a few PED_ASSERT
	uses to friendlier 'test-and-return-0's. Reported by Graham Markall
	in http://thread.gmane.org/gmane.comp.gnu.parted.bugs/10653

2012-01-08  Jim Meyering  <meyering@redhat.com>

	libparted: don't use _GL_ATTRIBUTE_CONST in public parted.h, ...
	Instead, use the bare __attribute__((__const__)).
	* include/parted/parted.h (__attribute): Define.
	(ped_get_version): Use open-coded __attribute.
	Prompted by a report from Keshav P R.

	tests: fix misleading mkpart usage
	Using "primary" is fine (and common) as a partition *type* for dos
	partition tables, but with a partition table of type GPT, it is
	downright misleading to specify the partition *name* as "primary".
	* tests/t0220-gpt-msftres.sh: Use "p-name" as partition name,
	rather than misleading "primary".
	* tests/t7000-scripting.sh: Likewise.

2012-01-05  Jim Meyering  <meyering@redhat.com>

	tests: skip loop-partitioning tests when ext_range is < 2
	* tests/init.cfg (require_partitionable_loop_device_): New function.
	* tests/t8001-loop-blkpg.sh: Use it.
	* tests/t8000-loop.sh: Use it.

	libparted: remove _blkpg_get_partition
	[I applied Phillip's initial patch, omitting both my adjustments
	and his own v2 changes.  This addresses both of those omissions. ]
	* libparted/arch/linux.c (_blkpg_get_partition): Remove function
	and sole use, per patch from Phillip Susi.
	(_kernel_get_partition_start_and_length): Adjust formatting,
	remove unnecessary test and correct a diagnostic.

2012-01-05  Phillip Susi  <psusi@cfl.rr.com>

	libparted: avoid the HDIO_GETGEO ioctl when possible
	We were using the long depreciated HDIO_GETGEO ioctl on the
	partition to get its start sector.  Use the new BLKPG_GET_PARTITION
	ioctl instead.  This allows for disks > 2TB and partitioned loop
	devices, which don't support HDIO_GETGEO.  As a fallback when
	BLKPG_GET_PARTITION fails or is not availible, try getting the
	values from sysfs, and finally use BLKGETSIZE64 and HDIO_GETGEO
	as a last resort.

	libparted: remove has_partitions check to allow loopback partitions
	Commit 1b766b69 added the _has_partitions function to check if a device
	was a loop device and if so, skip updating the kernel partition table
	because loop devices did not support partitions.  This function never
	worked anyway, and loop devices now (since linux 3.2) support
	partitions, so remove this crufty code.
	* libparted/arch/linux.c (_has_partitions): Remove function and
	all uses.

	libparted: remove _loop_get_partition_range
	Commit 1eb0cc30 added support for loop devices to be partitioned,
	but it only enabled that support if the kernel parameter max_part
	was non zero.  This parameter just reserves minor numbers for
	partitions in the traditional sequence that hard disks used.
	When it is zero, it is still possible to add partitions, they
	just will get minor numbers from another pool.  Removing this
	check allows partitions to be used on loop devices even when the
	loop module was not loaded with the max_part argument.
	* libparted/arch/linux.c (_loop_get_partition_range): Remove function
	and all uses.

2012-01-05  Jim Meyering  <meyering@redhat.com>

	tests: fix a bug in wait_for_dev_to_disappear_ helper function
	* tests/t-lib-helpers.sh (wait_for_dev_to_disappear_): Correct
	typo: missing expr in subshell.

2012-01-04  Phillip Susi  <phillsusi@gmail.com>

	libparted: linux: exclude floppy from device scan
	Floppies can't be partitioned anyhow, and some people have a
	misconfigured BIOS that thinks there is a floppy when there
	actually isn't, and trying to scan it causes hanging.

2012-01-03  Phillip Susi  <phillsusi@gmail.com>

	tests: try harder to clean up scsi_debug
	Tests were failing because the previous test gave up while trying to
	unload the scsi_debug module.  Try longer to remove it, and then throw
	in a call to udevadm settle for good measure.
	* tests/t-local.sh: Try harder to release resources here, rather than...
	* tests/t9040-many-partitions.sh: ...in this one test.
	* tests/t-local.sh (require_scsi_debug_module_): Now that
	cleanup requires "udevadm settle", add that requirement here:
	call require_udevadm_settle_.

2012-01-01  Jim Meyering  <meyering@redhat.com>

	maint: update all copyright year number ranges
	Run "make update-copyright".

2011-12-15  Phillip Susi  <psusi@cfl.rr.com>

	doc: add NEWS entry for "Add partition separator only when required"

2011-12-12  Phillip Susi  <psusi@cfl.rr.com>

	Add partition separator only when required
	Device mapper type should not automatically
	mean add 'p' before the partition number.  Fall back to
	adding it only if the previous character is a digit.
	This complies with kpartx behavior and linux behavior
	"since the dawn of time".

2011-12-03  Jim Meyering  <meyering@redhat.com>

	build: update gnulib submodule to latest

	build: address a new "noreturn" suggestion
	* parted/ui.h (help_msg): Declare as __noreturn__.

	build: configure.ac: use -Wno-format-nonliteral

	build: mark functions with "const" or "pure" attribute, per gcc warnings
	Use _GL_ATTRIBUTE_PURE or _GL_ATTRIBUTE_CONST.  Mark static functions at
	point of definition; extern ones at point of declaration.
	* include/parted/crc32.h:
	* include/parted/device.h: Likewise.
	* include/parted/disk.h: Likewise.
	* include/parted/exception.h: Likewise.
	* include/parted/filesys.h: Likewise.
	* include/parted/geom.h: Likewise.
	* include/parted/natmath.h: Likewise.
	* include/parted/parted.h: Likewise.
	* include/parted/unit.h: Likewise.
	* libparted/arch/linux.c: Likewise.
	* libparted/disk.c: Likewise.
	* libparted/exception.c: Likewise.
	* libparted/fs/amiga/amiga.h: Likewise.
	* libparted/labels/aix.c: Likewise.
	* libparted/labels/bsd.c: Likewise.
	* libparted/labels/dos.c: Likewise.
	* libparted/labels/dvh.c: Likewise.
	* libparted/labels/efi_crc32.c: Likewise.
	* libparted/labels/gpt.c: Likewise.
	* libparted/labels/mac.c: Likewise.
	* libparted/labels/pc98.c: Likewise.
	* libparted/labels/rdb.c: Likewise.
	* libparted/labels/sun.c: Likewise.
	* libparted/unit.c: Likewise.
	* parted/ui.c: Likewise.
	* parted/strlist.c: Likewise.
	* parted/strlist.h: Likewise.
	* libparted/tests/common.h (_implemented_disk_label): Mark as pure.
	* libparted/cs/natmath.c (extended_euclid): Mark as pure.

	build: avoid new float-to-double warnings
	* libparted/timer.c (ped_timer_new_nested): Mark literal floating point
	constants with "f" suffix, since they are compared against "float"s.
	* parted/parted.c (_timer_handler): Likewise.

	build: tweak how bootstrap manages ChangeLog
	* bootstrap.conf: Create ChangeLog only by touching it, so that
	it doesn't ever remove my in-use symlink (w/vc-dwim).

	tests: two more of these: use "compare exp out", not "compare out exp"
	* tests/t7000-scripting.sh: Reverse compare arguments.
	* tests/t2310-dos-extended-2-sector-min-offset.sh: Likewise.

2011-11-29  Jim Meyering  <meyering@redhat.com>

	tests: use "compare exp out", not "compare out exp"
	Likewise, when an empty file is expected, use "compare /dev/null out",
	not "compare out /dev/null". I.e., specify the expected/desired contents
	via the first file name.  Prompted by a suggestion from Bruno Haible
	in http://thread.gmane.org/gmane.comp.gnu.grep.bugs/4020/focus=29154

	Run these commands:

	    git grep -l -E 'compare [^ ]+ exp' \
	      |xargs perl -pi -e 's/\b(compare) (\S+) (exp\S*)/$1 $3 $2/'
	    git grep -l -E 'compare [^ ]+ /dev/null' \
	      |xargs perl -pi -e 's,\b(compare) (\S+) (/dev/null),$1 $3 $2,'

2011-11-27  Petr Uzel  <petr.uzel@suse.cz>

	tests: test for partitions on mdraid
	* tests/t6100-mdraid-partitions.sh: New file.
	* tests/Makefile.am: Run this test.

2011-11-26  Petr Uzel  <petr.uzel@suse.cz>

	libparted: use ext_range to find out largest possible partition
	Parted uses /sys/block/DEV/range file to find out how many partitions
	can the blockdevice hold and uses this number in its algorithm
	for informing the kernel about modified partitions. This works
	fine for most devices, however, it fails on partitionable MD arrays,
	because these have 1 in range file. Using ext_range should be safer
	and work for all devices.

	* libparted/arch/linux.c (_device_get_partition_range): Use
	/sys/block/DEV/ext_range instead of range sysfs file
	* NEWS: Mention the change.

	Addresses: http://bugzilla.novell.com/567652

2011-11-26  Petr Uzel  <petr.uzel@suse.cz>

	build: gitignore tests/duplicate
	.gitignore: Add tests/duplicate.

2011-11-11  Jim Meyering  <meyering@redhat.com>

	maint: a little defensive programming in a test script
	* tests/gpt-header-munge: Use "local *F;" to limit scope of
	file handles.

2011-11-10  Jim Meyering  <meyering@redhat.com>

	tests: skip a test if Perl's Digest::CRC module is not installed
	* tests/init.cfg (require_perl_digest_crc_): New function.
	* tests/t0210-gpt-resized-partition-entry-array.sh: Use it.
	Reported by Keshav P R in
	http://thread.gmane.org/gmane.comp.gnu.parted.bugs/10530/focus=10589

	tests: fix test for udevadm
	* tests/init.cfg (sector_size_): Fix syntax error in test invocation.

	maint: "make distcheck" now runs the root-only tests
	* Makefile.am (root-check): New overridable variable and rule.
	(distcheck-hook): Depend on it.

	build: update gnulib submodule to latest

	maint: adjust the URL that will appear in the generated announcement
	* cfg.mk (url_dir_list): Use this http://ftp.gnu.org/gnu/$(PACKAGE)
	for the first link listed in the generated announcement.
	announce-gen now provides the faster mirror link automatically.
	Remove now-unnecessary release-related URLs.

2011-11-06  Jim Meyering  <meyering@redhat.com>

	build: update gnulib submodule to latest

	build: stop distributing gzip'd releases;  xz is enough
	* configure.ac (AM_INIT_AUTOMAKE): Add no-dist-gzip.
	* NEWS (Build-related): Mention that we're dropping .tar.gz.

2011-11-05  Jim Meyering  <meyering@redhat.com>

	tests: exercise and document the HFS-probe bug fix
	Simply zeroing out the total_blocks and block_size members of the
	on-disk _HfsMasterDirectoryBlock would provoke a failed assertion
	any time parted tried to probe that partition.
	* tests/t2500-probe-corrupt-hfs.sh: New script.
	* tests/Makefile.am (TESTS): Add it.
	* NEWS (Bug fixes): Mention this.

2011-11-05  Brian C. Lane  <bcl@redhat.com>

	libparted: HFS/HFS+ probe: don't let a corrupt FS evoke failed assertion
	* libparted/fs/hfs/probe.c (hfsplus_probe): Add a check on the
	search value and reject it if it is negative.
	(hfsx_probe): Likewise.
	(hfs_and_wrapper_probe): Likewise.
	Reported by Flos Lonicerae in http://bugzilla.redhat.com/714758

2011-11-04  Brian C. Lane  <bcl@redhat.com>

	tests: t9030 wait for partition removal
	The removal of the partition may take enough time that the next
	mkpart will fail.  Wait for it to be removed.

	Remove scsi_debug size and set the end of the partition to 800s so that
	it will fit inside the default scsi_debug size of 8M, even when sector
	size is 4Kb. This prevents failures on machines with limited memory.

	* tests/t9030-align-check.sh: Wait for partition removal and use
	a smaller disk.

2011-11-04  Jim Meyering  <meyering@redhat.com>

	tests: add a helper function
	* tests/t-lib-helpers.sh (wait_for_dev_to_disappear_): New function.

	tests: exercise the "GPT vs other-sized partition entry arrays" fixes
	* tests/t0210-gpt-resized-partition-entry-array.sh: New file.
	* tests/Makefile.am (TESTS): Add it.
	(EXTRA_DIST): Add gpt-header-munge.

	tests: rewrite/complete GPT-munging perl script
	Rewrite and complete this script.
	It was incomplete and buggy.  Now it works.
	* tests/gpt-header-munge: Rename from ...
	* tests/perl-munge-9-PTE-table: ...this.

2011-11-03  Jim Meyering  <meyering@redhat.com>

	gpt: don't misbehave with e.g., a 9-entry partition array
	* libparted/labels/gpt.c (_generate_header): Correct size of
	partition array entries to round up to nearest multiple of
	sector size, so that we set gpt->PartitionEntryLBA correctly
	also when the number of partition entries is not a multiple
	of sector_size / 128.  Problem diagnosed by Robert Herndon
	in http://thread.gmane.org/gmane.comp.gnu.parted.bugs/10173.

2011-11-03  Robert Herndon  <Robert.Herndon@quantum.com>

	gpt: prepare for tables with n_partition_array_entries != 128
	* libparted/labels/gpt.c (gpt_read_PE_array): When computing the size
	of the partition array entry, use the value of "number of partition
	array entries" read from a GPT header, not the default of 128 that we
	use when creating new headers.  Details here:
	http://thread.gmane.org/gmane.comp.gnu.parted.bugs/10173

2011-11-03  Jim Meyering  <meyering@redhat.com>

	parted: exit nonzero for certain failures already diagnosed as "Error"
	* parted/parted.c (do_print): Do not exit successfully when issuing
	an error about an "unrecognised disk label" or when both GPT primary
	and backup tables are corrupted.
	* tests/t0101-print-empty.sh: Adjust expected exit code to match
	new behavior.
	* NEWS (Bug fixes): Mention this.

	tests: adjust a test to make its failure easier to diagnose
	* tests/t0203-gpt-tiny-device-abort.sh: When failing, also
	emit parted's diagnostics.

2011-11-02  Jim Meyering  <meyering@redhat.com>

	maint: correct two comments in gpt.c
	* libparted/labels/gpt.c (gpt_read_headers): Correct the comment.
	(_header_is_valid): Fix a harmless typo.

2011-11-02  Brian C. Lane  <bcl@redhat.com>

	tests: add new test to check ped_disk_duplicate
	* tests/duplicate.c: New test.
	* tests/t0501-duplicate.sh: New test program.
	* tests/Makefile.am (TEST): Add new test.
	(check_PROGRAMS): Add new test program.

	libparted: copy flags when duplicating GPT partitions
	* libparted/labels/gpt.c (gpt_partition_duplicate): Copy flags to new
	partition.
	* NEWS: Mention this fix.
	Reported by Chris Murphy in https://bugzilla.redhat.com/747497.

2011-11-02  Petr Uzel  <petr.uzel@suse.cz>

	tests: exercise the new feature
	* tests/t0208-mkpart-end-in-IEC.sh: New file.
	* tests/Makefile.am: Add it.

2011-11-02  Petr Uzel  <petr.uzel@suse.cz>

	parted: mkpart: DWIM for IEC ending sector numbers like 2MiB and 9GiB
	Before, if the user specified start and end in mkpart command using
	IEC units, parted created a partition that starts and ends exactly on
	these positions. With such behavior, it is impossible to create
	partitions as follows: 1MiB-2MiB, 2MiB-3MiB - parted would complain
	that it cannot create the second partition, because the first one
	occupied sectors 2048-4096 and the second one sectors 4096-3072,
	so they would overlap at sector 4096.

	With this patch, if the user uses IEC units to specify end of the
	partition, parted creates the partition which ends one sector before
	the specified position.

	See also
	https://lists.gnu.org/archive/html/bug-parted/2011-10/msg00009.html

	* parted/ui.c (command_line_get_sector): Add parameter to retrieve
	raw input from user.
	* parted/ui.h (command_line_get_sector): Adjust prototype of function.
	* parted/parted.c (_adjust_end_if_iec): New function.
	(_strip_trailing_spaces): New function.
	(_string_ends_with_iec_unit): New function.
	(do_mkpart): Call _adjust_end_if_iec(). Use new parameter of
	command_line_get_sector function.
	(do_rescue): Adjust call to command_line_get_sector.
	* bootstrap.conf (gnulib_modules): Add these: c-ctype, c-strcase.
	* tests/t0207-IEC-binary-notation.sh: Adjust to new semantics.
	* NEWS: Mention the changed behavior.

	Notable adjustments:
	- s/isspace/c_isblank/ so that parsing is locale-independent
	- avoid an array-bounds error:
	  * parted/parted.c (_strip_trailing_spaces): Don't deref str[-1]
	  for an empty string.

2011-10-19  Brian C. Lane  <bcl@redhat.com>

	tests: add tests for new pc98 signatures (#646053)
	 * tests/t2201-pc98-label-recog.sh: New file
	 * tests/Makefile.am: Add test

2011-10-19  Brian C. Lane  <bcl@redhat.com>

	libparted: make pc98 detection depend on signatures
	pc98 is not a common disk label. Change pc98_probe to only return true
	if one of the recognized signatures is present.
	Currently these include:

	IPL1
	Linux 98
	GRUB/98

	This prevents false-positive detection on msdos labeled disks.

	* libparted/labels/pc98.c (pc98_probe): Change to require signature
	(pc98_check_ipl_signature): Add more signatures
	(check_partition_consistency): Remove unused function
	Reported by Zach Carter in http://bugzilla.redhat.com/646053

2011-10-15  Stefano Lattarini  <stefano.lattarini@gmail.com>

	tests: use more portable fd redirection in TESTS_ENVIRONMENT
	* tests/Makefile.am (TESTS_ENVIRONMENT): Redirection with `exec 9>&2'
	is not portable to various Korn shells, and to (at least) HP-UX 11
	/bin/sh.  Use a more portable idiom.
	See <http://thread.gmane.org/gmane.comp.gnu.coreutils.bugs/22488> for
	lots of discussion.

2011-10-15  Stefano Lattarini  <stefano.lattarini@gmail.com>

	tests: TEST_ENVIRONMENT simplified and made more robust
	The test scripts in tests/ are shell scripts, so the current
	definition of TESTS_ENVIRONMENT, which adaptively run tests using
	either perl or the shell depending on their kind, is overkill.

	Moreover, this change is required in order for the testsuite to
	continue to work with the new testsuite harness that is planned
	to be introduced in Automake 1.12 (which, as of the writing date,
	is still under development and in late alpha state).

	See also related discussion on bug-coreutils:
	  <http://debbugs.gnu.org/cgi/bugreport.cgi?bug=8887>

	* tests/help-version: Moved ...
	* tests/help-version.sh: ... to this.
	* tests/Makefile.am (TESTS): Update.
	(TESTS_ENVIRONMENT): Remove definition of the `shell_or_perl_' shell
	function, which is not required anymore.
	(SH_LOG_COMPILER): New, define to `$(SHELL)'.

2011-10-14  Richard W.M. Jones  <rjones@redhat.com>

	tests: fix the tests for the case where stdout/stderr is different
	tests/t0000-basic.sh:
	 - More than one bogus ^M[[:space:]]*^M had to be removed, hence
	   use s,,,g sed expression.

	tests/t0203-gpt-tiny-device-abort.sh:
	 - Test was not expecting any output to stderr.  No longer true.

	tests/t1100-busy-label.sh:
	 - Another case of s,,,g as above.

	tests/t7000-scripting.sh:
	 - Only testing output to stdout.  Fold stdout & stderr together
	   and test both.
	 - Another case of s,,,g as above.

	Some root tests still fail even with these fixes.  The failures appear
	to be unrelated to these changes.

2011-10-14  Richard W.M. Jones  <rjones@redhat.com>

	parted: write a few errors and warnings to stderr instead of stdout

	parted: strlist print functions can now send output to any FILE *
	This changes the two strlist print functions so that instead of just
	sending output to stdout, they can send it to any FILE *.  Now the
	caller can send errors to stderr instead of stdout.

2011-10-12  Petr Uzel  <petr.uzel@suse.cz>

	parted: make a warning message more informative
	The following parted message is not very useful:

	  Error: You requested a partition from 2.00MiB to 3.00MiB.
	  The closest location we can manage is 2.00MiB to 3.00MiB.

	Improve the message by including exact geometry (in sectors):

	  ...requested a partition from 2.00MiB to 3.00MiB (sectors 2048..3072).
	  ... location we can manage is 2.00MiB to 3.00MiB (sectors 2049..3072).

	* parted/parted.c (do_mkpart): Include exact partition geometry in
	the warning message.
	* tests/t-lib-helpers.sh (normalize_part_diag_): Adapt to
	handle the new form of the diagnostic.
	* tests/t7000-scripting.sh: Adapt and change the name
	of a temporary file.

2011-10-03  Petr Uzel  <petr.uzel@suse.cz>
[--snip--]
