OSDN Git Service

android-x86/external-parted.git
12 years agobuild: revert the recent "fix" to avoid make warnings about linux.lo
Jim Meyering [Fri, 13 Jan 2012 22:02:21 +0000 (23:02 +0100)]
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.

12 years agobuild: don't use -version for convenience libraries
Jim Meyering [Fri, 13 Jan 2012 18:10:46 +0000 (19:10 +0100)]
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.

12 years agobuild: use LT_INIT, to make bootstrap run libtoolize
Jim Meyering [Fri, 13 Jan 2012 18:03:48 +0000 (19:03 +0100)]
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.

12 years agomaint: remove useless BUILD_LINUX conditional
Jim Meyering [Thu, 12 Jan 2012 16:45:57 +0000 (17:45 +0100)]
maint: remove useless BUILD_LINUX conditional

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

12 years agomaint: avoid long-standing warnings from make:
Jim Meyering [Thu, 12 Jan 2012 18:03:20 +0000 (19:03 +0100)]
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.

12 years agolibparted: provide a new convenience function: ptt_geom_clear_sectors
Jim Meyering [Wed, 21 Dec 2011 15:56:17 +0000 (16:56 +0100)]
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.

12 years agomaint: remove "MAINTAINERCLEANFILES = Makefile.in" from Makefile.am's
Jim Meyering [Wed, 11 Jan 2012 08:45:17 +0000 (09:45 +0100)]
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.

12 years agobuild: insert -I$(top_builddir)/include before -I$(top_srcdir)/include
Keshav P R [Tue, 10 Jan 2012 11:38:31 +0000 (12:38 +0100)]
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.

12 years agobuild: .gitignore: ignore more
Jim Meyering [Tue, 10 Jan 2012 11:38:50 +0000 (12:38 +0100)]
build: .gitignore: ignore more

12 years agomaint: hoist libparted/fs/*/Makefile.am into parent Makefile.am
Jim Meyering [Tue, 10 Jan 2012 10:48:52 +0000 (11:48 +0100)]
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.

12 years agobuild: correct my typo in preceding commit
Jim Meyering [Tue, 10 Jan 2012 10:21:52 +0000 (11:21 +0100)]
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.

12 years agobuild: update AC_CONFIG_SRCDIR for non-srcdir-from-clone builds
Keshav P R [Tue, 10 Jan 2012 10:10:59 +0000 (11:10 +0100)]
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.

12 years agomaint: rename public .h files to .in.h
Jim Meyering [Mon, 9 Jan 2012 18:42:49 +0000 (19:42 +0100)]
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.

12 years agoparted.h: use _GL_ATTRIBUTE_CONST and _GL_ATTRIBUTE_PURE in VC'd files
Jim Meyering [Mon, 9 Jan 2012 18:11:23 +0000 (19:11 +0100)]
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.

12 years agotests: root-only test would fail to remove its loop device
Jim Meyering [Mon, 9 Jan 2012 14:29:45 +0000 (15:29 +0100)]
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.

12 years agobuild: fix "make distcheck" failure
Jim Meyering [Mon, 9 Jan 2012 14:04:40 +0000 (15:04 +0100)]
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.

12 years agobuild: appease gcc's -Werror=suggest-attribute=pure
Jim Meyering [Mon, 9 Jan 2012 13:45:34 +0000 (14:45 +0100)]
build: appease gcc's -Werror=suggest-attribute=pure

* parted/strlist.c (wchar_strcasecmp): Add pure attribute; make static.
(wchar_strncasecmp): Likewise.
(wchar_strdup): Likewise.

12 years agobuild: update to latest from gnulib
Jim Meyering [Mon, 9 Jan 2012 11:07:20 +0000 (12:07 +0100)]
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.

12 years agolibparted: gpt: a smaller device need not render both headers invalid
Jim Meyering [Mon, 9 Jan 2012 08:21:09 +0000 (09:21 +0100)]
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.

12 years agogpt: eliminate four PED_ASSERT uses
Jim Meyering [Fri, 30 Dec 2011 20:03:06 +0000 (21:03 +0100)]
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

12 years agolibparted: don't use _GL_ATTRIBUTE_CONST in public parted.h, ...
Jim Meyering [Sun, 8 Jan 2012 19:43:26 +0000 (20:43 +0100)]
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.

12 years agotests: fix misleading mkpart usage
Jim Meyering [Sun, 8 Jan 2012 17:03:34 +0000 (18:03 +0100)]
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.

12 years agotests: skip loop-partitioning tests when ext_range is < 2
Jim Meyering [Wed, 4 Jan 2012 13:26:20 +0000 (14:26 +0100)]
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.

12 years agolibparted: remove _blkpg_get_partition
Jim Meyering [Thu, 5 Jan 2012 19:48:19 +0000 (20:48 +0100)]
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.

12 years agolibparted: avoid the HDIO_GETGEO ioctl when possible
Phillip Susi [Sat, 17 Dec 2011 04:05:40 +0000 (23:05 -0500)]
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.

12 years agolibparted: remove has_partitions check to allow loopback partitions
Phillip Susi [Sat, 17 Dec 2011 04:05:39 +0000 (23:05 -0500)]
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.

12 years agolibparted: remove _loop_get_partition_range
Phillip Susi [Sat, 17 Dec 2011 03:40:04 +0000 (22:40 -0500)]
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.

12 years agotests: fix a bug in wait_for_dev_to_disappear_ helper function
Jim Meyering [Thu, 5 Jan 2012 17:24:41 +0000 (18:24 +0100)]
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.

12 years agolibparted: linux: exclude floppy from device scan
Phillip Susi [Wed, 4 Jan 2012 19:40:13 +0000 (14:40 -0500)]
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.

12 years agotests: try harder to clean up scsi_debug
Phillip Susi [Tue, 3 Jan 2012 01:12:42 +0000 (20:12 -0500)]
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_.

12 years agomaint: update all copyright year number ranges
Jim Meyering [Sun, 1 Jan 2012 09:17:25 +0000 (10:17 +0100)]
maint: update all copyright year number ranges

Run "make update-copyright".

12 years agodoc: add NEWS entry for "Add partition separator only when required"
Phillip Susi [Wed, 14 Dec 2011 20:32:36 +0000 (15:32 -0500)]
doc: add NEWS entry for "Add partition separator only when required"

12 years agoAdd partition separator only when required
Phillip Susi [Wed, 7 Dec 2011 04:20:50 +0000 (23:20 -0500)]
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".

12 years agobuild: update gnulib submodule to latest
Jim Meyering [Sat, 3 Dec 2011 13:10:48 +0000 (14:10 +0100)]
build: update gnulib submodule to latest

12 years agobuild: address a new "noreturn" suggestion
Jim Meyering [Sat, 3 Dec 2011 14:24:35 +0000 (15:24 +0100)]
build: address a new "noreturn" suggestion

* parted/ui.h (help_msg): Declare as __noreturn__.

12 years agobuild: configure.ac: use -Wno-format-nonliteral
Jim Meyering [Sat, 3 Dec 2011 14:16:16 +0000 (15:16 +0100)]
build: configure.ac: use -Wno-format-nonliteral

12 years agobuild: mark functions with "const" or "pure" attribute, per gcc warnings
Jim Meyering [Sat, 3 Dec 2011 13:57:26 +0000 (14:57 +0100)]
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.

12 years agobuild: avoid new float-to-double warnings
Jim Meyering [Sat, 3 Dec 2011 13:28:41 +0000 (14:28 +0100)]
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.

12 years agobuild: tweak how bootstrap manages ChangeLog
Jim Meyering [Sat, 3 Dec 2011 14:35:12 +0000 (15:35 +0100)]
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).

12 years agotests: two more of these: use "compare exp out", not "compare out exp"
Jim Meyering [Sat, 3 Dec 2011 14:36:36 +0000 (15:36 +0100)]
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.

12 years agotests: use "compare exp out", not "compare out exp"
Jim Meyering [Tue, 29 Nov 2011 17:05:31 +0000 (18:05 +0100)]
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,'

12 years agotests: test for partitions on mdraid
Petr Uzel [Sat, 26 Nov 2011 14:45:09 +0000 (15:45 +0100)]
tests: test for partitions on mdraid

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

12 years agolibparted: use ext_range to find out largest possible partition
Petr Uzel [Sat, 26 Nov 2011 14:45:08 +0000 (15:45 +0100)]
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

12 years agobuild: gitignore tests/duplicate
Petr Uzel [Sat, 26 Nov 2011 14:47:28 +0000 (15:47 +0100)]
build: gitignore tests/duplicate

.gitignore: Add tests/duplicate.

12 years agomaint: a little defensive programming in a test script
Jim Meyering [Fri, 11 Nov 2011 08:50:51 +0000 (09:50 +0100)]
maint: a little defensive programming in a test script

* tests/gpt-header-munge: Use "local *F;" to limit scope of
file handles.

12 years agotests: skip a test if Perl's Digest::CRC module is not installed
Jim Meyering [Thu, 10 Nov 2011 18:15:29 +0000 (19:15 +0100)]
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

12 years agotests: fix test for udevadm
Jim Meyering [Thu, 10 Nov 2011 11:14:08 +0000 (12:14 +0100)]
tests: fix test for udevadm

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

12 years agomaint: "make distcheck" now runs the root-only tests
Jim Meyering [Thu, 10 Nov 2011 11:11:24 +0000 (12:11 +0100)]
maint: "make distcheck" now runs the root-only tests

* Makefile.am (root-check): New overridable variable and rule.
(distcheck-hook): Depend on it.

12 years agobuild: update gnulib submodule to latest
Jim Meyering [Thu, 10 Nov 2011 10:55:23 +0000 (11:55 +0100)]
build: update gnulib submodule to latest

12 years agomaint: adjust the URL that will appear in the generated announcement
Jim Meyering [Thu, 10 Nov 2011 10:54:50 +0000 (11:54 +0100)]
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.

12 years agobuild: update gnulib submodule to latest
Jim Meyering [Sun, 6 Nov 2011 18:10:49 +0000 (19:10 +0100)]
build: update gnulib submodule to latest

12 years agobuild: stop distributing gzip'd releases; xz is enough
Jim Meyering [Sun, 6 Nov 2011 18:09:56 +0000 (19:09 +0100)]
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.

12 years agotests: exercise and document the HFS-probe bug fix
Jim Meyering [Sat, 5 Nov 2011 19:49:18 +0000 (20:49 +0100)]
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.

12 years agolibparted: HFS/HFS+ probe: don't let a corrupt FS evoke failed assertion
Brian C. Lane [Fri, 7 Oct 2011 23:53:48 +0000 (16:53 -0700)]
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

12 years agotests: t9030 wait for partition removal
Brian C. Lane [Fri, 21 Oct 2011 20:46:53 +0000 (13:46 -0700)]
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.

12 years agotests: add a helper function
Jim Meyering [Fri, 4 Nov 2011 20:28:51 +0000 (21:28 +0100)]
tests: add a helper function

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

12 years agotests: exercise the "GPT vs other-sized partition entry arrays" fixes
Jim Meyering [Thu, 3 Nov 2011 10:09:47 +0000 (11:09 +0100)]
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.

12 years agotests: rewrite/complete GPT-munging perl script
Jim Meyering [Fri, 28 Oct 2011 18:05:15 +0000 (20:05 +0200)]
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.

12 years agogpt: don't misbehave with e.g., a 9-entry partition array
Jim Meyering [Thu, 3 Nov 2011 12:51:40 +0000 (13:51 +0100)]
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.

12 years agogpt: prepare for tables with n_partition_array_entries != 128
Robert Herndon [Sat, 29 Oct 2011 21:03:49 +0000 (23:03 +0200)]
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

12 years agoparted: exit nonzero for certain failures already diagnosed as "Error"
Jim Meyering [Thu, 3 Nov 2011 16:57:19 +0000 (17:57 +0100)]
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.

12 years agotests: adjust a test to make its failure easier to diagnose
Jim Meyering [Thu, 3 Nov 2011 15:59:07 +0000 (16:59 +0100)]
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.

12 years agomaint: correct two comments in gpt.c
Jim Meyering [Sat, 29 Oct 2011 20:34:14 +0000 (22:34 +0200)]
maint: correct two comments in gpt.c

* libparted/labels/gpt.c (gpt_read_headers): Correct the comment.
(_header_is_valid): Fix a harmless typo.

12 years agotests: add new test to check ped_disk_duplicate
Brian C. Lane [Mon, 31 Oct 2011 23:35:17 +0000 (16:35 -0700)]
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.

12 years agolibparted: copy flags when duplicating GPT partitions
Brian C. Lane [Mon, 31 Oct 2011 23:35:16 +0000 (16:35 -0700)]
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.

12 years agotests: exercise the new feature
Petr Uzel [Sat, 22 Oct 2011 13:22:09 +0000 (15:22 +0200)]
tests: exercise the new feature

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

12 years agoparted: mkpart: DWIM for IEC ending sector numbers like 2MiB and 9GiB
Petr Uzel [Sat, 22 Oct 2011 13:22:09 +0000 (15:22 +0200)]
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.

12 years agotests: add tests for new pc98 signatures (#646053)
Brian C. Lane [Fri, 7 Oct 2011 23:53:50 +0000 (16:53 -0700)]
tests: add tests for new pc98 signatures (#646053)

 * tests/t2201-pc98-label-recog.sh: New file
 * tests/Makefile.am: Add test

12 years agolibparted: make pc98 detection depend on signatures
Brian C. Lane [Fri, 7 Oct 2011 23:53:49 +0000 (16:53 -0700)]
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

12 years agotests: use more portable fd redirection in TESTS_ENVIRONMENT
Stefano Lattarini [Wed, 12 Oct 2011 09:18:47 +0000 (11:18 +0200)]
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.

12 years agotests: TEST_ENVIRONMENT simplified and made more robust
Stefano Lattarini [Mon, 10 Oct 2011 23:11:08 +0000 (01:11 +0200)]
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)'.

12 years agotests: fix the tests for the case where stdout/stderr is different
Richard W.M. Jones [Wed, 12 Oct 2011 20:54:24 +0000 (21:54 +0100)]
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.

12 years agoparted: write a few errors and warnings to stderr instead of stdout
Richard W.M. Jones [Wed, 12 Oct 2011 21:16:35 +0000 (22:16 +0100)]
parted: write a few errors and warnings to stderr instead of stdout

12 years agoparted: strlist print functions can now send output to any FILE *
Richard W.M. Jones [Wed, 12 Oct 2011 21:16:34 +0000 (22:16 +0100)]
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.

12 years agoparted: make a warning message more informative
Petr Uzel [Mon, 10 Oct 2011 13:53:09 +0000 (15:53 +0200)]
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.

12 years agodoc: update manpage
Petr Uzel [Mon, 3 Oct 2011 15:15:32 +0000 (17:15 +0200)]
doc: update manpage

Remove documentation for removed commands, adjust general description to
match parted's capabilities, add documentation for 'toggle' and
'align-check' commands. Remove 'KNOWN ISSUES' section since it no longer
applies.

12 years agotests: verify that 'udevadm settle' is available
Petr Uzel [Mon, 3 Oct 2011 13:00:58 +0000 (15:00 +0200)]
tests: verify that 'udevadm settle' is available

* tests/init.cfg (require_udevadm_settle_): New function.
* tests/t8001-loop-blkpg.sh: Call it.

12 years agolibparted: do not omit last sector when creating full-dev geometry
Petr Uzel [Wed, 28 Sep 2011 08:45:02 +0000 (10:45 +0200)]
libparted: do not omit last sector when creating full-dev geometry

Note that ped_constraint_solve_max() is currently not used anywhere.

* libparted/cs/constraint.c (ped_constraint_solve_max): full_dev now
really represents whole device.

Signed-off-by: Petr Uzel <petr.uzel@suse.cz>
12 years agomaint: unmark PedDeviceType as deprecated
Petr Uzel [Wed, 28 Sep 2011 08:45:07 +0000 (10:45 +0200)]
maint: unmark PedDeviceType as deprecated

PedDeviceType was marked as deprecated before parted started using
git. Since it proved to be useful to differentiate between different
device types, and nobody seems interested in removing it from the API,
let's clear the deprecated flag.

12 years agolibparted: do not call _device_get_partition_range() twice
Petr Uzel [Wed, 28 Sep 2011 08:45:08 +0000 (10:45 +0200)]
libparted: do not call _device_get_partition_range() twice

PED_MIN can evaluate its arguments twice.

* libparted/arch/linux.c (_disk_sync_part_table): Call
_device_get_partition_range() outside PED_MIN.

12 years agolibparted: optimize _disk_sync_part_table
Petr Uzel [Wed, 28 Sep 2011 08:45:09 +0000 (10:45 +0200)]
libparted: optimize _disk_sync_part_table

In _disk_sync_part_table, if the largest partition number (lpn) is 0,
it does not make sense to go through the loops below.  Return
immediately instead.
* libparted/arch/linux.c (_disk_sync_part_table): Return immediately
if lpn == 0.

12 years agobuild: ignore more generated files
Petr Uzel [Wed, 28 Sep 2011 08:45:03 +0000 (10:45 +0200)]
build: ignore more generated files

12 years agoparted: remove obsolete comments
Petr Uzel [Wed, 28 Sep 2011 08:45:06 +0000 (10:45 +0200)]
parted: remove obsolete comments

is_start_exact and is_end_exact were removed from the source.
* parted/parted.c (constraint_from_start_end): Remove obsolete
documentation of the function.

12 years agolibparted: check return value from ped_geometry_init
Petr Uzel [Wed, 28 Sep 2011 08:45:05 +0000 (10:45 +0200)]
libparted: check return value from ped_geometry_init

If ped_geometry_init() failed in ped_disk_set_partition_geom(),
then new_geom remains uninitialized, but still later used, which
leads to unexpected results.
* libparted/disk.c (ped_disk_set_partition_geom): Check return
value from ped_geometry_init().

12 years agotests: add test for partitionable loop devices
Petr Uzel [Thu, 29 Sep 2011 13:14:24 +0000 (15:14 +0200)]
tests: add test for partitionable loop devices

* tests/t8001-loop-blkpg.sh: New file.
* tests/Makefile.am: Add test.

12 years agolibparted: improve support for partitions on loopback devices
Petr Uzel [Thu, 29 Sep 2011 13:14:23 +0000 (15:14 +0200)]
libparted: improve support for partitions on loopback devices

Since linux-2.6.26, the kernel allows partitions on loopback devices.
Implement support for this feature in parted.
* libparted/arch/linux.c (_sysfs_int_entry_from_dev): New function.
(_loop_get_partition_range): New function.
(_device_get_partition_range): Add special handling for loop devices.
* NEWS: Mention this change.

12 years agolibparted: differentiate between plain files and loop devices
Petr Uzel [Thu, 29 Sep 2011 13:45:23 +0000 (15:45 +0200)]
libparted: differentiate between plain files and loop devices

Stop using PED_DEVICE_FILE for loopback devices;
loopback are significantly different from plain files.
* include/parted/device.h (PedDeviceType): Add PED_DEVICE_LOOP.
* libparted/arch/linux.c (_device_probe_type): Detect loopback device.
* parted/parted.c (do_print): Add "loopback" to list of transports.

12 years agodvh: factor out read_sector and use ptt_read_sector
Petr Uzel [Thu, 29 Sep 2011 09:38:30 +0000 (11:38 +0200)]
dvh: factor out read_sector and use ptt_read_sector

* libparted/labels/dvh.c (read_sector): Factor out this function.
(dvh_probe): Use ptt_read_sector instead of read_sector.
(dvh_read): Likewise.

12 years agobuild: update gnulib to latest; adapt use of _GL_ATTRIBUTE_FORMAT
Jim Meyering [Wed, 28 Sep 2011 13:19:52 +0000 (15:19 +0200)]
build: update gnulib to latest; adapt use of _GL_ATTRIBUTE_FORMAT

* libparted/arch/linux.c (_GL_ATTRIBUTE_FORMAT): Define here,
now that it's no longer defined by gnulib.

12 years agobuild: avoid new syntax-check failure
Jim Meyering [Wed, 28 Sep 2011 19:46:56 +0000 (21:46 +0200)]
build: avoid new syntax-check failure

* cfg.mk: Exempt libparted/arch/beos.c from the PATH_MAX check.
I suspect that this is ok, because parted compiles only on systems
that define PATH_MAX to something reasonable.

12 years agodoc: mention the origin of the other two bugs
Jim Meyering [Sat, 25 Jun 2011 06:52:04 +0000 (08:52 +0200)]
doc: mention the origin of the other two bugs

* NEWS: Mention that the other two bugs were introduced long ago.

12 years agotests: test for the nilfs2 bug
Jim Meyering [Wed, 28 Sep 2011 17:43:40 +0000 (19:43 +0200)]
tests: test for the nilfs2 bug

* tests/t4300-nilfs2-tiny.sh: New test.
* tests/Makefile.am (TESTS): Add it.

12 years agolibparted: fix a bug in the nilfs2 probe function
Jim Meyering [Sat, 25 Jun 2011 06:49:58 +0000 (08:49 +0200)]
libparted: fix a bug in the nilfs2 probe function

* libparted/fs/nilfs2/nilfs2.c (nilfs2_probe): Reject this partition
if we get a negative sb2 offset.  Passing a negative offset to
ped_geometry_read_alloc would evoke a failed assertion.
Bug introduced by 2010-07-09 commit d463e7de.
* NEWS: (Bug fixes): Mention it.
Reported by Daniel Fandrich in
http://thread.gmane.org/gmane.comp.gnu.parted.bugs/10466/focus=10472

12 years agogpt: don't abort for a truncated GPT-formatted device
Jim Meyering [Fri, 24 Jun 2011 11:32:33 +0000 (13:32 +0200)]
gpt: don't abort for a truncated GPT-formatted device

This fixes the problem two ways.  The first fix (via gpt_alloc)
rejects any device that is too small, but it is insufficient.
Choose a slightly larger truncated device with an otherwise intact
primary GPT header and you can still trigger the failed assertion.
To fix it in general, we make _header_is_valid detect the problem.
* libparted/labels/gpt.c (gpt_alloc): Reject a device that is so
small that there is no room for a single partition.
(_header_is_valid): Validate LastUsableLBA here, as well, so that
we now reject as invalid any GPT header that specifies a
LastUsableLBA larger than the device size.
Leave the assertion in _parse_header.
* tests/t0203-gpt-tiny-device-abort.sh: Test for this.
* tests/Makefile.am (TESTS): Add it.
* NEWS: (Bug fixes): Mention it.
Reported by Daniel Fandrich in
http://thread.gmane.org/gmane.comp.gnu.parted.bugs/10466

12 years agolibparted: avoid invalid diagnostic in interactive mode
Jim Meyering [Fri, 24 Jun 2011 13:51:57 +0000 (15:51 +0200)]
libparted: avoid invalid diagnostic in interactive mode

* libparted/arch/linux.c (linux_read): In interactive mode,
a truncated device with a preexisting GPT could evoke this:
  Error: end of file while reading Success
it should have been like this:
  Error: end of file while reading /full/name/of/device
Use %0.0s to discard the strerror argument.

12 years agotests: add test for value less than 1
Brian C. Lane [Tue, 21 Jun 2011 17:44:18 +0000 (10:44 -0700)]
tests: add test for value less than 1

* tests/t9023-value-lt-one.sh: New file.
* tests/Makefile.am (TESTS): Add it.

12 years agotests: add test for radius divide by 2 fix
Brian C. Lane [Tue, 21 Jun 2011 17:44:17 +0000 (10:44 -0700)]
tests: add test for radius divide by 2 fix

* tests/t9022-one-unit-snap.sh: New file.
* tests/Makefile.am (TESTS): Add it.

12 years agolibparted: don't allow values less than 1 (#665496)
Brian C. Lane [Tue, 21 Jun 2011 17:44:16 +0000 (10:44 -0700)]
libparted: don't allow values less than 1 (#665496)

When a value < 1 is used there is the possibility that the range can
overlap sector 0. The user should use smaller units instead. 0 is a
special case and is still allowed.

* libparted/unit.c (ped_unit_parse_custom): Throw error if a value
between 0 and 1 is used.

12 years agolibparted: fix snap radius so that it is using half (#665496)
Brian C. Lane [Tue, 21 Jun 2011 17:44:15 +0000 (10:44 -0700)]
libparted: fix snap radius so that it is using half (#665496)

The snap radius didn't match the documentation, it has been using +/-
unit size instead +/- 0.5 * unit (eg. 500KB for a MB unit). This caused
problems when specifying 1MB, 1GB, etc. as a partition start or end
resulting in partitions being created that were nowhere near the
specified size.

* libparted/unit.c (ped_unit_parse_custom): divide radius by 2
This addresses http://bugzilla.redhat.com/665496

12 years agomaint: prefer AC_PROG_LIBTOOL over slightly deprecated AM_PROG_LIBTOOL
Jim Meyering [Fri, 10 Jun 2011 10:13:02 +0000 (12:13 +0200)]
maint: prefer AC_PROG_LIBTOOL over slightly deprecated AM_PROG_LIBTOOL

* configure.ac: Use AC_PROG_LIBTOOL rather than slightly deprecated
AM_PROG_LIBTOOL.