[parted] - Rebasing Fedora patches with upstream master since v3.1 release - Summary of important changes fro

Brian C. Lane bcl at fedoraproject.org
Tue Sep 3 18:39:33 UTC 2013


commit a24876918378b87540e33d7da485727e7ee8a69e
Author: Brian C. Lane <bcl at redhat.com>
Date:   Wed Aug 28 09:13:40 2013 -0700

    - Rebasing Fedora patches with upstream master since v3.1 release
    - Summary of important changes from upstream:
      - add support for a new Linux-specific GPT partition type code
      - partprobe: remove partitions when there is no partition table
      - libparted: refactor device-mapper partition sync code
      - libparted: remove extraneous blkpg add partition ped exception
      - libparted: don't probe every dm device in probe_all
    - New Fedora changes:
      - libparted: Add Intel Rapid Start Technology partition flag.
      - libparted: Add UEFI System Partition flag.
      - libparted: Add hfs_esp partition flag to GPT.
      - libparted: Recognize btrfs filesystem
      - tests: Add btrfs and xfs to the fs probe test

 0001-maint-post-release-administrivia.patch        |   50 +
 ...ted-check-PMBR-before-GPT-partition-table.patch |   45 +-
 0003-tests-add-t0301-overwrite-gpt-pmbr.sh.patch   |   98 +
 ...e-bogus-envvar-setting-from-t0300-dos-on-.patch |   37 +
 ...ianness-bug-in-gpt_get_max_supported_part.patch |   51 +
 ...ts-add-a-test-to-exercise-just-fixed-code.patch |  110 +
 ...nt-avoid-new-syntax-check-failure-re-xref.patch |   51 +
 0008-maint-don-t-prohibit-strncpy-just-yet.patch   |   28 +
 ...build-update-gnulib-bootstrap-and-init.sh.patch |  576 ++++
 0010-build-prefer-AM_CPPFLAGS-over-INCLUDES.patch  |   86 +
 ...-list-files-with-unknown-suffix-in-_SOURC.patch |   47 +
 ...ld-prefer-pattern-rules-over-suffix-rules.patch |   36 +
 ...e-subdir-objects-Automake-option-globally.patch |   53 +
 ...r-AM_TESTS_ENVIRONMENT-over-TESTS_ENVIRON.patch |   32 +
 ...emove-unused-AM_TESTS_ENVIRONMENT-entries.patch |   41 +
 0016-build-require-Automake-1.11.6.patch           |   51 +
 ...e-Autoconf-version-requirement-consistent.patch |   29 +
 0018-maint-tighten-per-version-requirement.patch   |   30 +
 0019-maint-remove-unnecessary-wcslen-use.patch     |   31 +
 ...fy-a-comment-_reading_-gpt-tables-on-tiny.patch |   27 +
 ...-require-first_usable_LBA-last_usable_LBA.patch |   31 +
 ...update-t7000-scripting.sh-to-avoid-new-FP.patch |   38 +
 ...-permit-mklabel-gpt-on-a-67-sector-device.patch |   37 +
 ...label-gpt-fails-always-provide-a-diagnost.patch |   38 +
 ...that-small-dev-now-evokes-mklabel-gpt-dia.patch |   82 +
 ...-syntax-check-failure-for-reversed-compar.patch |   27 +
 ...et-larger-partition-table-specified-block.patch |   78 +
 0028-tests-mac-exercise-the-just-fixed-bug.patch   |   83 +
 ...-for-a-new-Linux-specific-GPT-partition-t.patch |  333 +++
 0030-tests-clean-up-tests.patch                    |  341 +++
 ...arted-disk.c-correct-doxygen-comment-typo.patch |   27 +
 ...p-using-private-dev-directory-for-losetup.patch |   47 +
 ...-fix-an-error-in-the-preceding-commit-log.patch |   59 +
 ...prove-test-for-partitionable-loop-devices.patch |   30 +
 ...-tests-t8001-do-not-rely-on-modprobe-loop.patch |   58 +
 ...t-rely-on-automake-s-AM_TESTS_ENVIRONMENT.patch |   30 +
 0037-build-.gitignore-ignore-tests-fs-resize.patch |   24 +
 0038-partprobe-remove-no-update-long-option.patch  |   28 +
 0039-doc-update-partprobe-manpage.patch            |   48 +
 ...emove-partitions-when-there-is-no-partiti.patch |   67 +
 ...t-use-AM_V_GEN-to-cut-down-on-build-noise.patch |   65 +
 0042-maint-regenerate-.po-.pot-files.patch         |  337 +++
 0043-tests-cleanup-losetup-usage.patch             |   83 +
 ...ault-to-enable-gcc-warnings-in-a-git-tree.patch |   34 +
 ...efactor-device-mapper-partition-sync-code.patch |  638 +++++
 ...emove-extraneous-blkpg-add-partition-ped-.patch |   71 +
 ...-don-t-probe-every-dm-device-in-probe_all.patch |  225 ++
 ...s-make-t6003-dm-hide-work-reliably-on-F17.patch |   71 +
 ...ignment-is-not-enough-for-cheap-flash-dri.patch |   77 +
 0050-build-update-gnulib-submodule-to-latest.patch |   19 +
 ...t-update-all-copyright-year-number-ranges.patch | 2870 ++++++++++++++++++++
 ...-new-warning-error-with-gcc-4.8.0-2013010.patch |   26 +
 ...-copy-pmbr_boot-when-duplicating-GPT-disk.patch |   14 +-
 ...creating-20-device-mapper-partitions-8031.patch |   31 +-
 0055-libparted-use-dm_udev_wait-698121.patch       |  168 ++
 ...preserve-the-uuid-on-dm-partitions-832145.patch |   80 +
 ...7-tests-Make-sure-dm-UUIDs-are-not-erased.patch |   41 +-
 ...dd-support-for-implicit-FBA-DASD-partitio.patch |   31 +-
 ...arted-add-support-for-EAV-DASD-partitions.patch |  137 +-
 ...060-libparted-mklabel-to-support-EAV-DASD.patch |   36 +-
 ...void-dasd-as-default-disk-type-while-prob.patch |   28 +-
 ...62-libparted-mklabel-to-support-EDEV-DASD.patch |   34 +-
 ...ed-don-t-canonicalize-dev-md-paths-872361.patch |    6 +-
 ...064-tests-rewrite-t6001-to-use-dev-mapper.patch |   36 +-
 ...dd-Intel-Rapid-Start-Technology-partition.patch |  384 +++
 ...-libparted-Add-UEFI-System-Partition-flag.patch |  241 ++
 ...bparted-Add-hfs_esp-partition-flag-to-GPT.patch |  286 ++
 0068-libparted-Recognize-btrfs-filesystem.patch    |  184 ++
 ...ts-Add-btrfs-and-xfs-to-the-fs-probe-test.patch |   26 +
 parted-2.1-libparted-use-dm_udev_wait-698121.patch |   86 -
 parted-2.3-lpn.patch                               |   68 -
 ...rted-Fix-endian-error-with-FirstUsableLBA.patch |   54 -
 ...parted-preserve-the-uuid-on-dm-partitions.patch |   71 -
 ...eallocate-buf-after-_disk_analyse_block_s.patch |   36 -
 ...se-largest_partnum-in-dm_reread_part_tabl.patch |   41 -
 ...3.1-tests-add-t0301-overwrite-gpt-pmbr.sh.patch |   34 -
 parted-3.1-tests-cleanup-losetup-usage.patch       |  137 -
 parted.spec                                        |  112 +-
 78 files changed, 9191 insertions(+), 742 deletions(-)
---
diff --git a/0001-maint-post-release-administrivia.patch b/0001-maint-post-release-administrivia.patch
new file mode 100644
index 0000000..e5ca89d
--- /dev/null
+++ b/0001-maint-post-release-administrivia.patch
@@ -0,0 +1,50 @@
+From f6835518a7a8722b247079799a9145c3101f9a8a Mon Sep 17 00:00:00 2001
+From: Jim Meyering <meyering at redhat.com>
+Date: Fri, 2 Mar 2012 17:59:32 +0100
+Subject: [PATCH 01/69] maint: post-release administrivia
+
+* NEWS: Add header line for next release.
+* .prev-version: Record previous version.
+* cfg.mk (old_NEWS_hash): Auto-update.
+---
+ .prev-version | 2 +-
+ NEWS          | 3 +++
+ cfg.mk        | 2 +-
+ 3 files changed, 5 insertions(+), 2 deletions(-)
+
+diff --git a/.prev-version b/.prev-version
+index 9f55b2c..8c50098 100644
+--- a/.prev-version
++++ b/.prev-version
+@@ -1 +1 @@
+-3.0
++3.1
+diff --git a/NEWS b/NEWS
+index fe0fcdd..3bef20e 100644
+--- a/NEWS
++++ b/NEWS
+@@ -1,5 +1,8 @@
+ GNU parted NEWS                                    -*- outline -*-
+ 
++* Noteworthy changes in release ?.? (????-??-??) [?]
++
++
+ * Noteworthy changes in release 3.1 (2012-03-02) [stable]
+ 
+ ** New features
+diff --git a/cfg.mk b/cfg.mk
+index ba8ba77..c6a00c8 100644
+--- a/cfg.mk
++++ b/cfg.mk
+@@ -42,7 +42,7 @@ local-checks-to-skip = \
+ # Now that we have better (check.mk) tests, make this the default.
+ export VERBOSE = yes
+ 
+-old_NEWS_hash = 04810d10a532cf2e75d602ddda0d64b1
++old_NEWS_hash = bd453bcf049e292a9677c094d24a29dd
+ 
+ include $(srcdir)/dist-check.mk
+ 
+-- 
+1.8.3.1
+
diff --git a/parted-3.1-libparted-check-PMBR-before-GPT-partition-table-8052.patch b/0002-libparted-check-PMBR-before-GPT-partition-table.patch
similarity index 65%
rename from parted-3.1-libparted-check-PMBR-before-GPT-partition-table-8052.patch
rename to 0002-libparted-check-PMBR-before-GPT-partition-table.patch
index 11687b3..37223b0 100644
--- a/parted-3.1-libparted-check-PMBR-before-GPT-partition-table-8052.patch
+++ b/0002-libparted-check-PMBR-before-GPT-partition-table.patch
@@ -1,8 +1,7 @@
-From 9343e79fee796a142a4bd12674aa3fdb56526eb6 Mon Sep 17 00:00:00 2001
+From b55724f291fa405f652fbbc5cae6e36cc8a2d200 Mon Sep 17 00:00:00 2001
 From: "Brian C. Lane" <bcl at redhat.com>
-Date: Tue, 20 Mar 2012 16:08:25 -0700
-Subject: [PATCH 1/2] libparted: check PMBR before GPT partition table
- (#805272)
+Date: Tue, 20 Mar 2012 17:25:22 -0700
+Subject: [PATCH 02/69] libparted: check PMBR before GPT partition table
 
 The UEFI spec requires that a valid GPT disk label have a PMBR
 partition. This moves the PMBR check to before the GPT check,
@@ -12,20 +11,29 @@ The previous behavior would cause problems in the following situation:
  1. format a disk as GPT
  2. re-format it as MSDOS using tools that don't understand GPT
 
-Subsequent operations with parted would then complain about the invlid
-PMBR, but would not allow the disk to be used as a msdos disk. This
-change causes parted to tread the disk as a msdos disk.
+Subsequent operations with parted would then complain about the invalid
+PMBR, but would not allow the disk to be used as an msdos disk. This
+change causes parted to recognize the msdos partition table.
 
-* libparted/labels/gpt.c (gpt_probe): Move _pmbr_is_valid test
+* libparted/labels/gpt.c (gpt_probe): Move _pmbr_is_valid test.
+Reported by Chris Murphy in http://bugzilla.redhat.com/805272
 ---
- libparted/labels/gpt.c |   44 +++++++++++++-------------------------------
- 1 files changed, 13 insertions(+), 31 deletions(-)
+ libparted/labels/gpt.c | 47 ++++++++++++++---------------------------------
+ 1 file changed, 14 insertions(+), 33 deletions(-)
 
 diff --git a/libparted/labels/gpt.c b/libparted/labels/gpt.c
-index 84bdc12..e57b3a2 100644
+index 84bdc12..91ad71a 100644
 --- a/libparted/labels/gpt.c
 +++ b/libparted/labels/gpt.c
-@@ -465,6 +465,17 @@ gpt_probe (const PedDevice *dev)
+@@ -457,7 +457,6 @@ _pmbr_is_valid (const LegacyMBR_t *mbr)
+ static int
+ gpt_probe (const PedDevice *dev)
+ {
+-  GuidPartitionTableHeader_t *gpt = NULL;
+   int gpt_sig_found = 0;
+ 
+   PED_ASSERT (dev != NULL);
+@@ -465,47 +464,29 @@ gpt_probe (const PedDevice *dev)
    if (dev->length <= 1)
      return 0;
  
@@ -33,18 +41,19 @@ index 84bdc12..e57b3a2 100644
 +  if (!ptt_read_sector (dev, 0, &label))
 +    return 0;
 +
-+  if (!_pmbr_is_valid ((const LegacyMBR_t *) label))
++  if (!_pmbr_is_valid (label))
 +    {
-+        free (label);
-+        return 0;
++      free (label);
++      return 0;
 +    }
 +  free (label);
 +
    void *pth_raw = ped_malloc (pth_get_size (dev));
    if (ped_device_read (dev, pth_raw, 1, GPT_HEADER_SECTORS)
        || ped_device_read (dev, pth_raw, dev->length - 1, GPT_HEADER_SECTORS))
-@@ -472,40 +483,11 @@ gpt_probe (const PedDevice *dev)
-       gpt = pth_new_from_raw (dev, pth_raw);
+     {
+-      gpt = pth_new_from_raw (dev, pth_raw);
++      GuidPartitionTableHeader_t *gpt = pth_new_from_raw (dev, pth_raw);
        if (gpt->Signature == PED_CPU_TO_LE64 (GPT_HEADER_SIGNATURE))
          gpt_sig_found = 1;
 +      pth_free (gpt);
@@ -87,5 +96,5 @@ index 84bdc12..e57b3a2 100644
  
  static PedDisk *
 -- 
-1.7.7.6
+1.8.3.1
 
diff --git a/0003-tests-add-t0301-overwrite-gpt-pmbr.sh.patch b/0003-tests-add-t0301-overwrite-gpt-pmbr.sh.patch
new file mode 100644
index 0000000..85fbd55
--- /dev/null
+++ b/0003-tests-add-t0301-overwrite-gpt-pmbr.sh.patch
@@ -0,0 +1,98 @@
+From 5021bbdc6ee892890c2c6fede806b9ad6a6a9378 Mon Sep 17 00:00:00 2001
+From: "Brian C. Lane" <bcl at redhat.com>
+Date: Tue, 20 Mar 2012 17:25:23 -0700
+Subject: [PATCH 03/69] tests: add t0301-overwrite-gpt-pmbr.sh
+
+Make sure parted checks the PMBR before the GPT partition table.
+
+* NEWS: Update with new GPT behavior.
+* tests/overwrite-gpt-pmbr.sh: New test.
+* tests/Makefile.am (TESTS): Add it.
+---
+ NEWS                              |  5 +++++
+ tests/Makefile.am                 |  1 +
+ tests/t0301-overwrite-gpt-pmbr.sh | 44 +++++++++++++++++++++++++++++++++++++++
+ 3 files changed, 50 insertions(+)
+ create mode 100755 tests/t0301-overwrite-gpt-pmbr.sh
+
+diff --git a/NEWS b/NEWS
+index 3bef20e..3969c44 100644
+--- a/NEWS
++++ b/NEWS
+@@ -2,6 +2,11 @@ GNU parted NEWS                                    -*- outline -*-
+ 
+ * Noteworthy changes in release ?.? (????-??-??) [?]
+ 
++** Bug Fixes
++
++  libparted: treat a disk with no pMBR as an msdos-labeled disk
++  even when it has valid GPT headers.
++
+ 
+ * Noteworthy changes in release 3.1 (2012-03-02) [stable]
+ 
+diff --git a/tests/Makefile.am b/tests/Makefile.am
+index 1b37fd9..1264812 100644
+--- a/tests/Makefile.am
++++ b/tests/Makefile.am
+@@ -28,6 +28,7 @@ TESTS = \
+   t0250-gpt.sh \
+   t0280-gpt-corrupt.sh \
+   t0300-dos-on-gpt.sh \
++  t0301-overwrite-gpt-pmbr.sh \
+   t0400-loop-clobber-infloop.sh \
+   t0500-dup-clobber.sh \
+   t0501-duplicate.sh \
+diff --git a/tests/t0301-overwrite-gpt-pmbr.sh b/tests/t0301-overwrite-gpt-pmbr.sh
+new file mode 100755
+index 0000000..e7edb66
+--- /dev/null
++++ b/tests/t0301-overwrite-gpt-pmbr.sh
+@@ -0,0 +1,44 @@
++#!/bin/sh
++# Test creating a msdos partition over a GPT partition with
++# fdisk which doesn't remove the GPT partitions, only the PMBR
++
++# Copyright (C) 2009-2012 Free Software Foundation, Inc.
++
++# This program is free software; you can redistribute it and/or modify
++# it under the terms of the GNU General Public License as published by
++# the Free Software Foundation; either version 3 of the License, or
++# (at your option) any later version.
++
++# This program is distributed in the hope that it will be useful,
++# but WITHOUT ANY WARRANTY; without even the implied warranty of
++# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
++# GNU General Public License for more details.
++
++# You should have received a copy of the GNU General Public License
++# along with this program.  If not, see <http://www.gnu.org/licenses/>.
++
++. "${srcdir=.}/init.sh"; path_prepend_ ../parted
++
++ss=$sector_size_
++dev=loop-file
++
++# Create a GPT partition table.
++dd if=/dev/null of=$dev bs=$ss seek=80 2> /dev/null || framework_failure
++parted -s $dev mklabel gpt > out 2>&1 || framework_failure_
++compare /dev/null out || framework_failure_
++
++# Create an MSDOS partition table in another file.
++dd if=/dev/null of=m bs=$ss seek=80 2> /dev/null || framework_failure
++parted -s m mklabel msdos > out 2>&1 || framework_failure_
++compare /dev/null out || framework_failure_
++
++# Transplant the MSDOS MBR into the GPT-formatted image.
++dd if=m of=$dev bs=$ss count=1 conv=notrunc || framework_failure_
++
++# Now, try to create a GPT partition table in $dev.
++# Before, parted would prompt, asking about the apparent inconsistency.
++parted -s $dev mklabel gpt > out 2>&1 || fail=1
++# expect no output
++compare /dev/null out || fail=1
++
++Exit $fail
+-- 
+1.8.3.1
+
diff --git a/0004-tests-remove-bogus-envvar-setting-from-t0300-dos-on-.patch b/0004-tests-remove-bogus-envvar-setting-from-t0300-dos-on-.patch
new file mode 100644
index 0000000..020113b
--- /dev/null
+++ b/0004-tests-remove-bogus-envvar-setting-from-t0300-dos-on-.patch
@@ -0,0 +1,37 @@
+From 7fd33a6d24da6a82b830552999b2332140f556d4 Mon Sep 17 00:00:00 2001
+From: Jim Meyering <meyering at redhat.com>
+Date: Mon, 26 Mar 2012 21:52:08 +0200
+Subject: [PATCH 04/69] tests: remove bogus envvar setting from
+ t0300-dos-on-gpt.sh
+
+* tests/t0300-dos-on-gpt.sh: Remove envvar setting that effectively
+disabled testing(only in this test) of simulated sector sizes smaller
+than 4KiB.
+Also, use a much smaller backing file.
+---
+ tests/t0300-dos-on-gpt.sh | 6 ++----
+ 1 file changed, 2 insertions(+), 4 deletions(-)
+
+diff --git a/tests/t0300-dos-on-gpt.sh b/tests/t0300-dos-on-gpt.sh
+index 41bc391..fbe8d7c 100755
+--- a/tests/t0300-dos-on-gpt.sh
++++ b/tests/t0300-dos-on-gpt.sh
+@@ -17,13 +17,11 @@
+ # along with this program.  If not, see <http://www.gnu.org/licenses/>.
+ 
+ . "${srcdir=.}/init.sh"; path_prepend_ ../parted
+-
+-PARTED_SECTOR_SIZE=4096
+-export PARTED_SECTOR_SIZE
++ss=$sector_size_
+ 
+ dev=loop-file
+ # create a backing file large enough for a GPT partition table
+-dd if=/dev/null of=$dev seek=4001 2> /dev/null || framework_failure
++dd if=/dev/null of=$dev bs=$ss seek=80 2> /dev/null || framework_failure
+ 
+ # create a GPT partition table
+ parted -s $dev mklabel gpt > out 2>&1 || fail=1
+-- 
+1.8.3.1
+
diff --git a/0005-gpt-fix-endianness-bug-in-gpt_get_max_supported_part.patch b/0005-gpt-fix-endianness-bug-in-gpt_get_max_supported_part.patch
new file mode 100644
index 0000000..8807feb
--- /dev/null
+++ b/0005-gpt-fix-endianness-bug-in-gpt_get_max_supported_part.patch
@@ -0,0 +1,51 @@
+From 4ac1c02b590668c93afdb48900e0858de58cda3a Mon Sep 17 00:00:00 2001
+From: "Richard W.M. Jones" <rjones at redhat.com>
+Date: Fri, 8 Jun 2012 13:19:25 +0100
+Subject: [PATCH 05/69] gpt: fix endianness bug in
+ gpt_get_max_supported_partition_count
+
+* libparted/labels/gpt.c (gpt_get_max_supported_partition_count):
+Take endianness of pth->FirstUsableLBA into account (64-bit,
+little endian) when calculating the maximum number of partitions.
+* NEWS (Bug fixes): Mention it.
+---
+ NEWS                   | 3 +++
+ libparted/labels/gpt.c | 4 ++--
+ 2 files changed, 5 insertions(+), 2 deletions(-)
+
+diff --git a/NEWS b/NEWS
+index 3969c44..f929b99 100644
+--- a/NEWS
++++ b/NEWS
+@@ -4,6 +4,9 @@ GNU parted NEWS                                    -*- outline -*-
+ 
+ ** Bug Fixes
+ 
++  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.
+ 
+diff --git a/libparted/labels/gpt.c b/libparted/labels/gpt.c
+index 91ad71a..6032e3f 100644
+--- a/libparted/labels/gpt.c
++++ b/libparted/labels/gpt.c
+@@ -1785,12 +1785,12 @@ gpt_get_max_supported_partition_count (const PedDisk *disk, int *max_n)
+ 
+   if (!_header_is_valid (disk, pth, 1))
+     {
+-      pth->FirstUsableLBA = 34;
++      pth->FirstUsableLBA = PED_CPU_TO_LE64 (34);
+       pth->SizeOfPartitionEntry
+         = PED_CPU_TO_LE32 (sizeof (GuidPartitionEntry_t));
+     }
+ 
+-  *max_n = (disk->dev->sector_size * (pth->FirstUsableLBA - 2)
++  *max_n = (disk->dev->sector_size * (PED_LE64_TO_CPU (pth->FirstUsableLBA) - 2)
+             / PED_LE32_TO_CPU (pth->SizeOfPartitionEntry));
+   pth_free (pth);
+   return true;
+-- 
+1.8.3.1
+
diff --git a/0006-tests-add-a-test-to-exercise-just-fixed-code.patch b/0006-tests-add-a-test-to-exercise-just-fixed-code.patch
new file mode 100644
index 0000000..1487895
--- /dev/null
+++ b/0006-tests-add-a-test-to-exercise-just-fixed-code.patch
@@ -0,0 +1,110 @@
+From e38df2d81f0a4647711ffeb92a32c99e7ce9a92d Mon Sep 17 00:00:00 2001
+From: Jim Meyering <meyering at redhat.com>
+Date: Sat, 9 Jun 2012 17:26:21 +0200
+Subject: [PATCH 06/69] tests: add a test to exercise just-fixed code
+
+* tests/print-max.c: Extend to provide coverage of
+ped_disk_get_max_supported_partition_count, too.
+* tests/t9021-maxima.sh (max_n_partitions): New function, with
+naively hard-coded max-number-of-partitions-per-partition-table-type
+values.
+Use it to ensure that each expected value matches the actual one.
+* cfg.mk: Exempt this test's use of error from the syntax-check
+for unmarked diagnostics.
+---
+ cfg.mk                |  2 ++
+ tests/print-max.c     | 10 ++++++++++
+ tests/t9021-maxima.sh | 26 +++++++++++++++++++++++++-
+ 3 files changed, 37 insertions(+), 1 deletion(-)
+
+diff --git a/cfg.mk b/cfg.mk
+index c6a00c8..45d2ac2 100644
+--- a/cfg.mk
++++ b/cfg.mk
+@@ -69,3 +69,5 @@ exclude_file_name_regexp--sc_prohibit_always-defined_macros = \
+ 
+ exclude_file_name_regexp--sc_prohibit_path_max_allocation = \
+   ^libparted/arch/beos\.c$$
++
++exclude_file_name_regexp--sc_unmarked_diagnostics = ^tests/print-max\.c$$
+diff --git a/tests/print-max.c b/tests/print-max.c
+index 7560d49..41aa8c6 100644
+--- a/tests/print-max.c
++++ b/tests/print-max.c
+@@ -2,9 +2,11 @@
+ #include <parted/parted.h>
+ #include <stdio.h>
+ #include <stdlib.h>
++#include <errno.h>
+ 
+ #include "closeout.h"
+ #include "progname.h"
++#include "error.h"
+ 
+ int
+ main (int argc, char **argv)
+@@ -26,8 +28,16 @@ main (int argc, char **argv)
+   PedSector max_length = ped_disk_max_partition_length (disk);
+   PedSector max_start_sector = ped_disk_max_partition_start_sector (disk);
+ 
++  if (!ped_device_open(dev))
++    error (EXIT_FAILURE, errno, "failed to open %s\n", dev_name);
++  int max_n_partitions;
++  bool ok = ped_disk_get_max_supported_partition_count (disk,
++							&max_n_partitions);
++
+   printf ("max len: %llu\n", (unsigned long long) max_length);
+   printf ("max start sector: %llu\n", (unsigned long long) max_start_sector);
++  printf ("max number of partitions: %d\n",
++	  ok ? max_n_partitions : -1);
+ 
+   ped_disk_destroy (disk);
+   ped_device_destroy (dev);
+diff --git a/tests/t9021-maxima.sh b/tests/t9021-maxima.sh
+index 0570585..ca10d17 100755
+--- a/tests/t9021-maxima.sh
++++ b/tests/t9021-maxima.sh
+@@ -23,6 +23,27 @@ dev=dev-file
+ PATH="..:$PATH"
+ export PATH
+ 
++max_n_partitions()
++{
++  case $1 in
++
++    # Technically, msdos partition tables have no limit on the maximum number
++    # of partitions, but we pretend it is 64 due to implementation details.
++    msdos) m=64;;
++
++    gpt) m=128;;
++    dvh) m=16;;
++    sun) m=8;;
++    mac) m=65536;;
++    bsd) m=8;;
++    amiga) m=128;;
++    loop) m=1;;
++    pc98) case $ss in 512) m=16;; *) m=64;; esac;;
++    *) warn_ invalid partition table type: $1 1>&2; exit 1;;
++  esac
++  echo $m
++}
++
+ # FIXME: add aix when/if it's supported again
+ for t in msdos gpt dvh sun mac bsd amiga loop pc98; do
+     echo $t
+@@ -40,8 +61,11 @@ for t in msdos gpt dvh sun mac bsd amiga loop pc98; do
+     esac
+ 
+     print-max $dev > out 2>&1 || fail=1
++    m=$(max_n_partitions $t) || fail=1
+     printf '%s\n' "max len: $max_len" \
+-	"max start sector: $max_start" > exp || fail=1
++	"max start sector: $max_start" \
++	"max number of partitions: $m" \
++      > exp || fail=1
+     compare exp out || fail=1
+ done
+ 
+-- 
+1.8.3.1
+
diff --git a/0007-maint-avoid-new-syntax-check-failure-re-xref.patch b/0007-maint-avoid-new-syntax-check-failure-re-xref.patch
new file mode 100644
index 0000000..f6eec59
--- /dev/null
+++ b/0007-maint-avoid-new-syntax-check-failure-re-xref.patch
@@ -0,0 +1,51 @@
+From 89377f99947391c081df6dad27edf6ac3daec5c0 Mon Sep 17 00:00:00 2001
+From: Jim Meyering <meyering at redhat.com>
+Date: Tue, 28 Aug 2012 19:47:54 +0200
+Subject: [PATCH 07/69] maint: avoid new syntax-check failure re @xref
+
+* doc/parted.texi: Adjust @xref usage: it must be used only
+at start of sentence.
+* doc/parted-pt_BR.texi: Likewise.
+---
+ doc/parted-pt_BR.texi | 4 ++--
+ doc/parted.texi       | 2 +-
+ 2 files changed, 3 insertions(+), 3 deletions(-)
+
+diff --git a/doc/parted-pt_BR.texi b/doc/parted-pt_BR.texi
+index 8eb5cec..8878f83 100644
+--- a/doc/parted-pt_BR.texi
++++ b/doc/parted-pt_BR.texi
+@@ -1094,7 +1094,7 @@ de sistemas operacionais Microsoft.
+ 
+ @item raid
+ (MSDOS) - este sinalizador pode ser habilitado para dizer ao Linux que
+-essa partição é uma partição de software RAID @xref{LVM e RAID}.
++essa partição é uma partição de software RAID. @xref{LVM e RAID}.
+ 
+ @item LVM
+ (MSDOS) - este sinalizador pode ser habilitado para dizer à partição
+@@ -1994,7 +1994,7 @@ mudan
+ com o kernel 2.4, e quando nós adicionarmos suporte a ele.)
+ 
+ Se você quer redimensionar sua partição root ou de boot, use um disco
+-de boot @xref{Discos de boot do Parted}, ou use o redimensionador
++de boot @pxref{Discos de boot do Parted}, ou use o redimensionador
+ online do Andreas Dilger, incluído no pacote ext2resize @ref{Ext2}.
+ 
+ @menu
+diff --git a/doc/parted.texi b/doc/parted.texi
+index 6561d0e..1601151 100644
+--- a/doc/parted.texi
++++ b/doc/parted.texi
+@@ -348,7 +348,7 @@ specify the location in ``G''). Use the sector unit ``s'' to specify exact
+ locations.  With parted-2.4 and newer,
+ IEC binary units like ``MiB'', ``GiB'', ``TiB'', etc., specify
+ exact locations as well.
+-See @xref{IEC binary units}.
++ at xref{IEC binary units}.
+ 
+ If you don't give a parameter to a command, Parted will prompt you for it.
+ For example:
+-- 
+1.8.3.1
+
diff --git a/0008-maint-don-t-prohibit-strncpy-just-yet.patch b/0008-maint-don-t-prohibit-strncpy-just-yet.patch
new file mode 100644
index 0000000..d61e0b6
--- /dev/null
+++ b/0008-maint-don-t-prohibit-strncpy-just-yet.patch
@@ -0,0 +1,28 @@
+From 00a5736ff2220229d75d4259c582ae0a62539915 Mon Sep 17 00:00:00 2001
+From: Jim Meyering <meyering at redhat.com>
+Date: Tue, 28 Aug 2012 19:49:25 +0200
+Subject: [PATCH 08/69] maint: don't prohibit strncpy just yet
+
+* cfg.mk (local-checks-to-skip): Add sc_prohibit_strncpy,
+so that we do not yet enable the strncpy prohibition.
+There are many uses, and it will be a lot of work to remove
+all of them.
+---
+ cfg.mk | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/cfg.mk b/cfg.mk
+index 45d2ac2..3d3014c 100644
+--- a/cfg.mk
++++ b/cfg.mk
+@@ -34,6 +34,7 @@ local-checks-to-skip = \
+   sc_error_message_period \
+   sc_file_system \
+   sc_prohibit_strcmp \
++  sc_prohibit_strncpy \
+   sc_prohibit_atoi_atof \
+   sc_require_test_exit_idiom \
+   sc_space_tab \
+-- 
+1.8.3.1
+
diff --git a/0009-build-update-gnulib-bootstrap-and-init.sh.patch b/0009-build-update-gnulib-bootstrap-and-init.sh.patch
new file mode 100644
index 0000000..674ed7f
--- /dev/null
+++ b/0009-build-update-gnulib-bootstrap-and-init.sh.patch
@@ -0,0 +1,576 @@
+From 92154e8dfb35c70f6792c4efed9cd97b4c84cbcb Mon Sep 17 00:00:00 2001
+From: Jim Meyering <meyering at redhat.com>
+Date: Tue, 28 Aug 2012 19:50:48 +0200
+Subject: [PATCH 09/69] build: update gnulib, bootstrap and init.sh
+
+---
+ bootstrap     | 267 ++++++++++++++++++++++++++++++++++++++--------------------
+ gnulib        |   2 +-
+ tests/init.sh |  13 ++-
+ 3 files changed, 185 insertions(+), 97 deletions(-)
+
+diff --git a/bootstrap b/bootstrap
+index 31eb651..e3e270b 100755
+--- a/bootstrap
++++ b/bootstrap
+@@ -1,6 +1,6 @@
+ #! /bin/sh
+ # Print a version string.
+-scriptversion=2012-02-11.09; # UTC
++scriptversion=2012-07-19.14; # UTC
+ 
+ # Bootstrap this package from checked-out sources.
+ 
+@@ -36,6 +36,10 @@ nl='
+ LC_ALL=C
+ export LC_ALL
+ 
++# Ensure that CDPATH is not set.  Otherwise, the output from cd
++# would cause trouble in at least one use below.
++(unset CDPATH) >/dev/null 2>&1 && unset CDPATH
++
+ local_gl_dir=gl
+ 
+ me=$0
+@@ -73,6 +77,33 @@ Running without arguments will suffice in most cases.
+ EOF
+ }
+ 
++# warnf_ FORMAT-STRING ARG1...
++warnf_ ()
++{
++  warnf_format_=$1
++  shift
++  nl='
++'
++  case $* in
++    *$nl*) me_=$(printf "$me"|tr "$nl|" '??')
++       printf "$warnf_format_" "$@" | sed "s|^|$me_: |" ;;
++    *) printf "$me: $warnf_format_" "$@" ;;
++  esac >&2
++}
++
++# warn_ WORD1...
++warn_ ()
++{
++  # If IFS does not start with ' ', set it and emit the warning in a subshell.
++  case $IFS in
++    ' '*) warnf_ '%s\n' "$*";;
++    *)    (IFS=' '; warn_ "$@");;
++  esac
++}
++
++# die WORD1...
++die() { warn_ "$@"; exit 1; }
++
+ # Configuration.
+ 
+ # Name of the Makefile.am
+@@ -126,7 +157,8 @@ extract_package_name='
+      p
+   }
+ '
+-package=`sed -n "$extract_package_name" configure.ac` || exit
++package=$(sed -n "$extract_package_name" configure.ac) \
++  || die 'cannot find package name in configure.ac'
+ gnulib_name=lib$package
+ 
+ build_aux=build-aux
+@@ -182,6 +214,8 @@ use_git=true
+ # otherwise find the first of the NAMES that can be run (i.e.,
+ # supports --version).  If found, set ENVVAR to the program name,
+ # die otherwise.
++#
++# FIXME: code duplication, see also gnu-web-doc-update.
+ find_tool ()
+ {
+   find_tool_envvar=$1
+@@ -199,19 +233,15 @@ find_tool ()
+   else
+     find_tool_error_prefix="\$$find_tool_envvar: "
+   fi
+-  if test x"$find_tool_res" = x; then
+-    echo >&2 "$me: one of these is required: $find_tool_names"
+-    exit 1
+-  fi
+-  ($find_tool_res --version </dev/null) >/dev/null 2>&1 || {
+-    echo >&2 "$me: ${find_tool_error_prefix}cannot run $find_tool_res --version"
+-    exit 1
+-  }
++  test x"$find_tool_res" != x \
++    || die "one of these is required: $find_tool_names"
++  ($find_tool_res --version </dev/null) >/dev/null 2>&1 \
++    || die "${find_tool_error_prefix}cannot run $find_tool_res --version"
+   eval "$find_tool_envvar=\$find_tool_res"
+   eval "export $find_tool_envvar"
+ }
+ 
+-# Find sha1sum, named gsha1sum on MacPorts, and shasum on MacOS 10.6.
++# Find sha1sum, named gsha1sum on MacPorts, and shasum on Mac OS X 10.6.
+ find_tool SHA1SUM sha1sum gsha1sum shasum
+ 
+ # Override the default configuration, if necessary.
+@@ -226,7 +256,6 @@ esac
+ test -z "${gnulib_extra_files}" && \
+   gnulib_extra_files="
+         $build_aux/install-sh
+-        $build_aux/missing
+         $build_aux/mdate-sh
+         $build_aux/texinfo.tex
+         $build_aux/depcomp
+@@ -252,7 +281,7 @@ do
+     usage
+     exit;;
+   --gnulib-srcdir=*)
+-    GNULIB_SRCDIR=`expr "X$option" : 'X--gnulib-srcdir=\(.*\)'`;;
++    GNULIB_SRCDIR=${option#--gnulib-srcdir=};;
+   --skip-po)
+     SKIP_PO=t;;
+   --force)
+@@ -266,21 +295,15 @@ do
+   --no-git)
+     use_git=false;;
+   *)
+-    echo >&2 "$0: $option: unknown option"
+-    exit 1;;
++    die "$option: unknown option";;
+   esac
+ done
+ 
+-if $use_git || test -d "$GNULIB_SRCDIR"; then
+-  :
+-else
+-  echo "$0: Error: --no-git requires --gnulib-srcdir" >&2
+-  exit 1
+-fi
++$use_git || test -d "$GNULIB_SRCDIR" \
++  || die "Error: --no-git requires --gnulib-srcdir"
+ 
+ if test -n "$checkout_only_file" && test ! -r "$checkout_only_file"; then
+-  echo "$0: Bootstrapping from a non-checked-out distribution is risky." >&2
+-  exit 1
++  die "Bootstrapping from a non-checked-out distribution is risky."
+ fi
+ 
+ # Ensure that lines starting with ! sort last, per gitignore conventions
+@@ -303,10 +326,10 @@ insert_sorted_if_absent() {
+   file=$1
+   str=$2
+   test -f $file || touch $file
+-  echo "$str" | sort_patterns - $file | cmp - $file > /dev/null \
++  echo "$str" | sort_patterns - $file | cmp -s - $file > /dev/null \
+     || { echo "$str" | sort_patterns - $file > $file.bak \
+       && mv $file.bak $file; } \
+-    || exit 1
++    || die "insert_sorted_if_absent $file $str: failed"
+ }
+ 
+ # Adjust $PATTERN for $VC_IGNORE_FILE and insert it with
+@@ -319,7 +342,7 @@ insert_vc_ignore() {
+     # A .gitignore entry that does not start with '/' applies
+     # recursively to subdirectories, so prepend '/' to every
+     # .gitignore entry.
+-    pattern=`echo "$pattern" | sed s,^,/,`;;
++    pattern=$(echo "$pattern" | sed s,^,/,);;
+   esac
+   insert_sorted_if_absent "$vc_ignore_file" "$pattern"
+ }
+@@ -330,11 +353,8 @@ grep '^[	 ]*AC_CONFIG_AUX_DIR(\['"$build_aux"'\])' configure.ac \
+     >/dev/null && found_aux_dir=yes
+ grep '^[	 ]*AC_CONFIG_AUX_DIR('"$build_aux"')' configure.ac \
+     >/dev/null && found_aux_dir=yes
+-if test $found_aux_dir = no; then
+-  echo "$0: expected line not found in configure.ac. Add the following:" >&2
+-  echo "  AC_CONFIG_AUX_DIR([$build_aux])" >&2
+-  exit 1
+-fi
++test $found_aux_dir = yes \
++  || die "configure.ac lacks 'AC_CONFIG_AUX_DIR([$build_aux])'; add it"
+ 
+ # If $build_aux doesn't exist, create it now, otherwise some bits
+ # below will malfunction.  If creating it, also mark it as ignored.
+@@ -423,31 +443,48 @@ check_versions() {
+       $use_git || continue
+     fi
+     # Honor $APP variables ($TAR, $AUTOCONF, etc.)
+-    appvar=`echo $app | LC_ALL=C tr '[a-z]-' '[A-Z]_'`
++    appvar=$(echo $app | LC_ALL=C tr '[a-z]-' '[A-Z]_')
+     test "$appvar" = TAR && appvar=AMTAR
+     case $appvar in
+         GZIP) ;; # Do not use $GZIP:  it contains gzip options.
+         *) eval "app=\${$appvar-$app}" ;;
+     esac
++
++    # Handle the still-experimental Automake-NG programs specially.
++    # They remain named as the mainstream Automake programs ("automake",
++    # and "aclocal") to avoid gratuitous incompatibilities with
++    # pre-existing usages (by, say, autoreconf, or custom autogen.sh
++    # scripts), but correctly identify themselves (as being part of
++    # "GNU automake-ng") when asked their version.
++    case $app in
++      automake-ng|aclocal-ng)
++        app=${app%-ng}
++        ($app --version | grep '(GNU automake-ng)') >/dev/null 2>&1 || {
++          warn_ "Error: '$app' not found or not from Automake-NG"
++          ret=1
++          continue
++        } ;;
++    esac
+     if [ "$req_ver" = "-" ]; then
+       # Merely require app to exist; not all prereq apps are well-behaved
+       # so we have to rely on $? rather than get_version.
+       $app --version >/dev/null 2>&1
+       if [ 126 -le $? ]; then
+-        echo "$me: Error: '$app' not found" >&2
++        warn_ "Error: '$app' not found"
+         ret=1
+       fi
+     else
+       # Require app to produce a new enough version string.
+       inst_ver=$(get_version $app)
+       if [ ! "$inst_ver" ]; then
+-        echo "$me: Error: '$app' not found" >&2
++        warn_ "Error: '$app' not found"
+         ret=1
+       else
+         latest_ver=$(sort_ver $req_ver $inst_ver | cut -d' ' -f2)
+         if [ ! "$latest_ver" = "$inst_ver" ]; then
+-          echo "$me: Error: '$app' version == $inst_ver is too old" >&2
+-          echo "       '$app' version >= $req_ver is required" >&2
++          warnf_ '%s\n'                                        \
++              "Error: '$app' version == $inst_ver is too old"  \
++              "       '$app' version >= $req_ver is required"
+           ret=1
+         fi
+       fi
+@@ -492,10 +529,8 @@ esac
+ 
+ # When we can deduce that gnulib-tool will require patch,
+ # and when patch is not already listed as a prerequisite, add it, too.
+-if test ! -d "$local_gl_dir" \
+-    || find "$local_gl_dir" -name '*.diff' -exec false {} +; then
+-  :
+-else
++if test -d "$local_gl_dir" \
++    && ! find "$local_gl_dir" -name '*.diff' -exec false {} +; then
+   case $buildreq in
+     *patch*) ;;
+     *) buildreq="patch -
+@@ -506,11 +541,10 @@ fi
+ if ! printf "$buildreq" | check_versions; then
+   echo >&2
+   if test -f README-prereq; then
+-    echo "$0: See README-prereq for how to get the prerequisite programs" >&2
++    die "See README-prereq for how to get the prerequisite programs"
+   else
+-    echo "$0: Please install the prerequisite programs" >&2
++    die "Please install the prerequisite programs"
+   fi
+-  exit 1
+ fi
+ 
+ echo "$0: Bootstrapping from checked-out $package sources..."
+@@ -539,7 +573,7 @@ git_modules_config () {
+   test -f .gitmodules && git config --file .gitmodules "$@"
+ }
+ 
+-gnulib_path=`git_modules_config submodule.gnulib.path`
++gnulib_path=$(git_modules_config submodule.gnulib.path)
+ test -z "$gnulib_path" && gnulib_path=gnulib
+ 
+ # Get gnulib files.
+@@ -612,10 +646,10 @@ download_po_files() {
+   subdir=$1
+   domain=$2
+   echo "$me: getting translations into $subdir for $domain..."
+-  cmd=`printf "$po_download_command_format" "$domain" "$subdir"`
++  cmd=$(printf "$po_download_command_format" "$domain" "$subdir")
+   eval "$cmd" && return
+   # Fallback to HTTP.
+-  cmd=`printf "$po_download_command_format2" "$subdir" "$domain"`
++  cmd=$(printf "$po_download_command_format2" "$subdir" "$domain")
+   eval "$cmd"
+ }
+ 
+@@ -638,7 +672,7 @@ update_po_files() {
+     && ls "$ref_po_dir"/*.po 2>/dev/null |
+       sed 's|.*/||; s|\.po$||' > "$po_dir/LINGUAS" || return
+ 
+-  langs=`cd $ref_po_dir && echo *.po|sed 's/\.po//g'`
++  langs=$(cd $ref_po_dir && echo *.po | sed 's/\.po//g')
+   test "$langs" = '*' && langs=x
+   for po in $langs; do
+     case $po in x) continue;; esac
+@@ -675,18 +709,18 @@ symlink_to_dir()
+ 
+     # If the destination directory doesn't exist, create it.
+     # This is required at least for "lib/uniwidth/cjk.h".
+-    dst_dir=`dirname "$dst"`
++    dst_dir=$(dirname "$dst")
+     if ! test -d "$dst_dir"; then
+       mkdir -p "$dst_dir"
+ 
+       # If we've just created a directory like lib/uniwidth,
+       # tell version control system(s) it's ignorable.
+       # FIXME: for now, this does only one level
+-      parent=`dirname "$dst_dir"`
++      parent=$(dirname "$dst_dir")
+       for dot_ig in x $vc_ignore; do
+         test $dot_ig = x && continue
+         ig=$parent/$dot_ig
+-        insert_vc_ignore $ig `echo "$dst_dir"|sed 's,.*/,,'`
++        insert_vc_ignore $ig "${dst_dir##*/}"
+       done
+     fi
+ 
+@@ -710,10 +744,10 @@ symlink_to_dir()
+       # so that broken tools aren't confused into skipping needed builds.  See
+       # <http://lists.gnu.org/archive/html/bug-gnulib/2011-05/msg00326.html>.
+       test -h "$dst" &&
+-      src_ls=`ls -diL "$src" 2>/dev/null` && set $src_ls && src_i=$1 &&
+-      dst_ls=`ls -diL "$dst" 2>/dev/null` && set $dst_ls && dst_i=$1 &&
++      src_ls=$(ls -diL "$src" 2>/dev/null) && set $src_ls && src_i=$1 &&
++      dst_ls=$(ls -diL "$dst" 2>/dev/null) && set $dst_ls && dst_i=$1 &&
+       test "$src_i" = "$dst_i" &&
+-      both_ls=`ls -dt "$src" "$dst"` &&
++      both_ls=$(ls -dt "$src" "$dst") &&
+       test "X$both_ls" = "X$dst$nl$src" || {
+         dot_dots=
+         case $src in
+@@ -721,11 +755,10 @@ symlink_to_dir()
+         *)
+           case /$dst/ in
+           *//* | */../* | */./* | /*/*/*/*/*/)
+-             echo >&2 "$me: invalid symlink calculation: $src -> $dst"
+-             exit 1;;
+-          /*/*/*/*/)	dot_dots=../../../;;
+-          /*/*/*/)	dot_dots=../../;;
+-          /*/*/)	dot_dots=../;;
++             die "invalid symlink calculation: $src -> $dst";;
++          /*/*/*/*/)    dot_dots=../../../;;
++          /*/*/*/)      dot_dots=../../;;
++          /*/*/)        dot_dots=../;;
+           esac;;
+         esac
+ 
+@@ -736,6 +769,22 @@ symlink_to_dir()
+   }
+ }
+ 
++version_controlled_file() {
++  parent=$1
++  file=$2
++  if test -d .git; then
++    git rm -n "$file" > /dev/null 2>&1
++  elif test -d .svn; then
++    svn log -r HEAD "$file" > /dev/null 2>&1
++  elif test -d CVS; then
++    grep -F "/${file##*/}/" "$parent/CVS/Entries" 2>/dev/null |
++             grep '^/[^/]*/[0-9]' > /dev/null
++  else
++    warn_ "no version control for $file?"
++    false
++  fi
++}
++
+ # NOTE: we have to be careful to run both autopoint and libtoolize
+ # before gnulib-tool, since gnulib-tool is likely to provide newer
+ # versions of files "installed" by these two programs.
+@@ -748,37 +797,54 @@ with_gettext=yes
+ grep '^[	 ]*AM_GNU_GETTEXT_VERSION(' configure.ac >/dev/null || \
+     with_gettext=no
+ 
+-if test $with_gettext = yes; then
+-  # Released autopoint has the tendency to install macros that have been
+-  # obsoleted in current gnulib, so run this before gnulib-tool.
+-  echo "$0: $AUTOPOINT --force"
+-  $AUTOPOINT --force || exit
+-fi
++if test $with_gettext = yes || test $use_libtool = 1; then
+ 
+-# Autoreconf runs aclocal before libtoolize, which causes spurious
+-# warnings if the initial aclocal is confused by the libtoolized
+-# (or worse out-of-date) macro directory.
+-if test $use_libtool = 1; then
+-  echo "running: $LIBTOOLIZE --copy --install"
+-  $LIBTOOLIZE --copy --install
+-fi
++  tempbase=.bootstrap$$
++  trap "rm -f $tempbase.0 $tempbase.1" 1 2 13 15
+ 
+-version_controlled_file() {
+-  dir=$1
+-  file=$2
+-  found=no
+-  if test -d CVS; then
+-    grep -F "/$file/" $dir/CVS/Entries 2>/dev/null |
+-             grep '^/[^/]*/[0-9]' > /dev/null && found=yes
+-  elif test -d .git; then
+-    git rm -n "$dir/$file" > /dev/null 2>&1 && found=yes
+-  elif test -d .svn; then
+-    svn log -r HEAD "$dir/$file" > /dev/null 2>&1 && found=yes
+-  else
+-    echo "$me: no version control for $dir/$file?" >&2
++  > $tempbase.0 > $tempbase.1 &&
++  find . ! -type d -print | sort > $tempbase.0 || exit
++
++  if test $with_gettext = yes; then
++    # Released autopoint has the tendency to install macros that have been
++    # obsoleted in current gnulib, so run this before gnulib-tool.
++    echo "$0: $AUTOPOINT --force"
++    $AUTOPOINT --force || exit
+   fi
+-  test $found = yes
+-}
++
++  # Autoreconf runs aclocal before libtoolize, which causes spurious
++  # warnings if the initial aclocal is confused by the libtoolized
++  # (or worse out-of-date) macro directory.
++  # libtoolize 1.9b added the --install option; but we support back
++  # to libtoolize 1.5.22, where the install action was default.
++  if test $use_libtool = 1; then
++    install=
++    case $($LIBTOOLIZE --help) in
++      *--install*) install=--install ;;
++    esac
++    echo "running: $LIBTOOLIZE $install --copy"
++    $LIBTOOLIZE $install --copy
++  fi
++
++  find . ! -type d -print | sort >$tempbase.1
++  old_IFS=$IFS
++  IFS=$nl
++  for file in $(comm -13 $tempbase.0 $tempbase.1); do
++    IFS=$old_IFS
++    parent=${file%/*}
++    version_controlled_file "$parent" "$file" || {
++      for dot_ig in x $vc_ignore; do
++        test $dot_ig = x && continue
++        ig=$parent/$dot_ig
++        insert_vc_ignore "$ig" "${file##*/}"
++      done
++    }
++  done
++  IFS=$old_IFS
++
++  rm -f $tempbase.0 $tempbase.1
++  trap - 1 2 13 15
++fi
+ 
+ # Import from gnulib.
+ 
+@@ -804,11 +870,12 @@ echo "$0: $gnulib_tool $gnulib_tool_options --import ..."
+ $gnulib_tool $gnulib_tool_options --import $gnulib_modules &&
+ 
+ for file in $gnulib_files; do
+-  symlink_to_dir "$GNULIB_SRCDIR" $file || exit
++  symlink_to_dir "$GNULIB_SRCDIR" $file \
++    || die "failed to symlink $file"
+ done
+ 
+ bootstrap_post_import_hook \
+-  || { echo >&2 "$me: bootstrap_post_import_hook failed"; exit 1; }
++  || die "bootstrap_post_import_hook failed"
+ 
+ # Remove any dangling symlink matching "*.m4" or "*.[ch]" in some
+ # gnulib-populated directories.  Such .m4 files would cause aclocal to fail.
+@@ -836,16 +903,17 @@ echo "running: AUTOPOINT=true LIBTOOLIZE=true " \
+     "$AUTORECONF --verbose --install $no_recursive -I $m4_base $ACLOCAL_FLAGS"
+ AUTOPOINT=true LIBTOOLIZE=true \
+     $AUTORECONF --verbose --install $no_recursive -I $m4_base $ACLOCAL_FLAGS \
+-  || exit 1
++  || die "autoreconf failed"
+ 
+ # Get some extra files from gnulib, overriding existing files.
+ for file in $gnulib_extra_files; do
+   case $file in
+   */INSTALL) dst=INSTALL;;
+-  build-aux/*) dst=$build_aux/`expr "$file" : 'build-aux/\(.*\)'`;;
++  build-aux/*) dst=$build_aux/${file#build-aux/};;
+   *) dst=$file;;
+   esac
+-  symlink_to_dir "$GNULIB_SRCDIR" $file $dst || exit
++  symlink_to_dir "$GNULIB_SRCDIR" $file $dst \
++    || die "failed to symlink $file"
+ done
+ 
+ if test $with_gettext = yes; then
+@@ -861,7 +929,19 @@ if test $with_gettext = yes; then
+       a\
+           '"$XGETTEXT_OPTIONS"' $${end_of_xgettext_options+}
+     }
+-  ' po/Makevars.template >po/Makevars || exit 1
++  ' po/Makevars.template >po/Makevars \
++    || die 'cannot generate po/Makevars'
++
++  # If the 'gettext' module is in use, grab the latest Makefile.in.in.
++  # If only the 'gettext-h' module is in use, assume autopoint already
++  # put the correct version of this file into place.
++  case $gnulib_modules in
++  *gettext-h*) ;;
++  *gettext*)
++    cp $GNULIB_SRCDIR/build-aux/po/Makefile.in.in po/Makefile.in.in \
++      || die "cannot create po/Makefile.in.in"
++    ;;
++  esac
+ 
+   if test -d runtime-po; then
+     # Similarly for runtime-po/Makevars, but not quite the same.
+@@ -875,7 +955,8 @@ if test $with_gettext = yes; then
+         a\
+             '"$XGETTEXT_OPTIONS_RUNTIME"' $${end_of_xgettext_options+}
+       }
+-    ' po/Makevars.template >runtime-po/Makevars || exit 1
++    ' po/Makevars.template >runtime-po/Makevars \
++    || die 'cannot generate runtime-po/Makevars'
+ 
+     # Copy identical files from po to runtime-po.
+     (cd po && cp -p Makefile.in.in *-quot *.header *.sed *.sin ../runtime-po)
+diff --git a/gnulib b/gnulib
+index 50bb21e..e1abd50 160000
+--- a/gnulib
++++ b/gnulib
+@@ -1 +1 @@
+-Subproject commit 50bb21eab7dfc87bbfcbc75f0232407110cdd296
++Subproject commit e1abd50b01d6bd61bd0c996ca17378cd569c0aa1
+diff --git a/tests/init.sh b/tests/init.sh
+index ae86714..5f6e638 100644
+--- a/tests/init.sh
++++ b/tests/init.sh
+@@ -207,6 +207,14 @@ else
+   fi
+ fi
+ 
++# If this is bash, turn off all aliases.
++test -n "$BASH_VERSION" && unalias -a
++
++# Note that when supporting $EXEEXT (transparently mapping from PROG_NAME to
++# PROG_NAME.exe), we want to support hyphen-containing names like test-acos.
++# That is part of the shell-selection test above.  Why use aliases rather
++# than functions?  Because support for hyphen-containing aliases is more
++# widespread than that for hyphen-containing function names.
+ test -n "$EXEEXT" && shopt -s expand_aliases
+ 
+ # Enable glibc's malloc-perturbing option.
+@@ -403,8 +411,7 @@ path_prepend_ ()
+     case $path_dir_ in
+       '') fail_ "invalid path dir: '$1'";;
+       /*) abs_path_dir_=$path_dir_;;
+-      *) abs_path_dir_=`cd "$initial_cwd_/$path_dir_" && echo "$PWD"` \
+-           || fail_ "invalid path dir: $path_dir_";;
++      *) abs_path_dir_=$initial_cwd_/$path_dir_;;
+     esac
+     case $abs_path_dir_ in
+       *:*) fail_ "invalid path dir: '$abs_path_dir_'";;
+@@ -440,7 +447,7 @@ setup_ ()
+   pfx_=`testdir_prefix_`
+   test_dir_=`mktempd_ "$initial_cwd_" "$pfx_-$ME_.XXXX"` \
+     || fail_ "failed to create temporary directory in $initial_cwd_"
+-  cd "$test_dir_"
++  cd "$test_dir_" || fail_ "failed to cd to temporary directory"
+ 
+   # As autoconf-generated configure scripts do, ensure that IFS
+   # is defined initially, so that saving and restoring $IFS works.
+-- 
+1.8.3.1
+
diff --git a/0010-build-prefer-AM_CPPFLAGS-over-INCLUDES.patch b/0010-build-prefer-AM_CPPFLAGS-over-INCLUDES.patch
new file mode 100644
index 0000000..5c55d00
--- /dev/null
+++ b/0010-build-prefer-AM_CPPFLAGS-over-INCLUDES.patch
@@ -0,0 +1,86 @@
+From a185e958b5614ea7e606e85d3de879c5ffc127c0 Mon Sep 17 00:00:00 2001
+From: Stefano Lattarini <stefano.lattarini at gmail.com>
+Date: Thu, 30 Aug 2012 18:53:13 +0200
+Subject: [PATCH 10/69] build: prefer $(AM_CPPFLAGS) over $(INCLUDES)
+
+The latter is obsolete, and might be removed in future Automake versions.
+Moreover, it's already been removed in Automake-NG, so its use would make
+a port to Automake-NG more difficult.
+
+* parted/Makefile.am (INCLUDES): Rename ...
+(AM_CPPFLAGS): ... like this.
+* partprobe/Makefile.am: Likewise.
+* libparted/fs/Makefile.am: Likewise.
+* libparted/Makefile.am: Likewise.
+* libparted/labels/Makefile.am: Likewise.
+
+Copyright-paperwork-exempt: yes
+---
+ libparted/Makefile.am        | 2 +-
+ libparted/fs/Makefile.am     | 2 +-
+ libparted/labels/Makefile.am | 2 +-
+ parted/Makefile.am           | 2 +-
+ partprobe/Makefile.am        | 2 +-
+ 5 files changed, 5 insertions(+), 5 deletions(-)
+
+diff --git a/libparted/Makefile.am b/libparted/Makefile.am
+index 7cf35b2..bdc7976 100644
+--- a/libparted/Makefile.am
++++ b/libparted/Makefile.am
+@@ -62,4 +62,4 @@ libparted_la_LIBADD =	\
+ 
+ EXTRA_DIST	      = mbr.s
+ 
+-INCLUDES = $(partedincludedir) $(INTLINCS)
++AM_CPPFLAGS = $(partedincludedir) $(INTLINCS)
+diff --git a/libparted/fs/Makefile.am b/libparted/fs/Makefile.am
+index 8d48ea1..7fe364a 100644
+--- a/libparted/fs/Makefile.am
++++ b/libparted/fs/Makefile.am
+@@ -114,7 +114,7 @@ libparted_fs_resize_la_SOURCES = \
+   r/hfs/reloc_plus.c		\
+   r/hfs/reloc_plus.h
+ 
+-INCLUDES = \
++AM_CPPFLAGS = \
+   -I$(top_srcdir)/libparted/labels	\
+   $(partedincludedir)			\
+   $(INTLINCS)
+diff --git a/libparted/labels/Makefile.am b/libparted/labels/Makefile.am
+index 7fe347b..ec8abeb 100644
+--- a/libparted/labels/Makefile.am
++++ b/libparted/labels/Makefile.am
+@@ -37,7 +37,7 @@ liblabels_la_SOURCES = \
+ 
+ liblabels_la_LIBADD = $(OS_LIBS) $(INTLLIBS)
+ 
+-INCLUDES = $(partedincludedir) $(INTLINCS)
++AM_CPPFLAGS = $(partedincludedir) $(INTLINCS)
+ 
+ BUILT_SOURCES = pt-limit.c
+ MAINTAINERCLEANFILES = $(BUILT_SOURCES)
+diff --git a/parted/Makefile.am b/parted/Makefile.am
+index 0b23693..e7bba2e 100644
+--- a/parted/Makefile.am
++++ b/parted/Makefile.am
+@@ -48,6 +48,6 @@ parted_LDFLAGS = $(PARTEDLDFLAGS)
+ # Tell the linker to omit references to unused shared libraries.
+ parted_LDFLAGS += $(IGNORE_UNUSED_LIBRARIES_CFLAGS)
+ 
+-INCLUDES	= $(partedincludedir) $(INTLINCS)
++AM_CPPFLAGS = $(partedincludedir) $(INTLINCS)
+ 
+ MAINTAINERCLEANFILES += Makefile.in
+diff --git a/partprobe/Makefile.am b/partprobe/Makefile.am
+index dbe2c9f..c0304a0 100644
+--- a/partprobe/Makefile.am
++++ b/partprobe/Makefile.am
+@@ -13,4 +13,4 @@ partprobe_LDADD = \
+ 
+ partprobe_LDFLAGS = $(PARTEDLDFLAGS)
+ 
+-INCLUDES	= $(partedincludedir) $(INTLINCS)
++AM_CPPFLAGS = $(partedincludedir) $(INTLINCS)
+-- 
+1.8.3.1
+
diff --git a/0011-build-don-t-list-files-with-unknown-suffix-in-_SOURC.patch b/0011-build-don-t-list-files-with-unknown-suffix-in-_SOURC.patch
new file mode 100644
index 0000000..acbabc7
--- /dev/null
+++ b/0011-build-don-t-list-files-with-unknown-suffix-in-_SOURC.patch
@@ -0,0 +1,47 @@
+From 605c53ad0f209b9f62a15c3f89a9930860153489 Mon Sep 17 00:00:00 2001
+From: Stefano Lattarini <stefano.lattarini at gmail.com>
+Date: Thu, 30 Aug 2012 18:53:14 +0200
+Subject: [PATCH 11/69] build: don't list files with unknown suffix in _SOURCES
+
+While this works with mainline Automake (which blindly treats source
+files with an unknown extension as if they were header files), it is
+undocumented (albeit admittedly unlikely to change).  Moreover, it no
+longer works with Automake-NG (and that's by design), so the use of
+such feature would make a port to Automake-NG more difficult.
+
+* libparted/labels/Makefile.am (liblabels_la_SOURCES): ... don't
+list 'pt-limit.gperf' here; rather ...
+(EXTRA_DIST): ... list 'pt-limit.c' and 'pt-limit.gperf' here.
+(EXTRA_DIST, BUILT_SOURCES): Enhance few comments.
+
+Copyright-paperwork-exempt: yes
+---
+ libparted/labels/Makefile.am | 6 ++++--
+ 1 file changed, 4 insertions(+), 2 deletions(-)
+
+diff --git a/libparted/labels/Makefile.am b/libparted/labels/Makefile.am
+index ec8abeb..f4e4d27 100644
+--- a/libparted/labels/Makefile.am
++++ b/libparted/labels/Makefile.am
+@@ -39,10 +39,11 @@ liblabels_la_LIBADD = $(OS_LIBS) $(INTLLIBS)
+ 
+ AM_CPPFLAGS = $(partedincludedir) $(INTLINCS)
+ 
++# Included by 'pt-tools.c', so needs to be built early.
+ BUILT_SOURCES = pt-limit.c
+ MAINTAINERCLEANFILES = $(BUILT_SOURCES)
+-liblabels_la_SOURCES += pt-limit.gperf
+-EXTRA_DIST = $(BUILT_SOURCES)
++# DOn't add this to '_SOURCES', because it's not to be compiled!
++EXTRA_DIST= pt-limit.c
+ 
+ GPERF = gperf
+ GPERF_OPTIONS = \
+@@ -55,3 +56,4 @@ pt-limit.c: pt-limit.gperf
+ 	  > $@-tmp
+ 	chmod a-w $@-tmp
+ 	mv $@-tmp $@
++EXTRA_DIST += pt-limit.gperf
+-- 
+1.8.3.1
+
diff --git a/0012-build-prefer-pattern-rules-over-suffix-rules.patch b/0012-build-prefer-pattern-rules-over-suffix-rules.patch
new file mode 100644
index 0000000..18eb7e0
--- /dev/null
+++ b/0012-build-prefer-pattern-rules-over-suffix-rules.patch
@@ -0,0 +1,36 @@
+From 904a8d31d2906e8e653d670e508c4c6bd4b264c1 Mon Sep 17 00:00:00 2001
+From: Stefano Lattarini <stefano.lattarini at gmail.com>
+Date: Thu, 30 Aug 2012 18:53:15 +0200
+Subject: [PATCH 12/69] build: prefer pattern rules over suffix rules
+
+That is acceptable, because the GNU parted build system already
+requires GNU make anyway: the $(subst ...) built-in is used in the
+common recipe for the 'ss-1024', 'ss-2048' and 'ss-4096' targets
+in Makefile.am.
+
+* include/parted/Makefile.am (.in.h.h): Rename ...
+(%.h: %.in.h): ... as this pattern rule.
+(SUFFIXES): Delete, no more needed.
+
+Copyright-paperwork-exempt: yes
+---
+ include/parted/Makefile.am | 3 +--
+ 1 file changed, 1 insertion(+), 2 deletions(-)
+
+diff --git a/include/parted/Makefile.am b/include/parted/Makefile.am
+index 19236f0..6f808c6 100644
+--- a/include/parted/Makefile.am
++++ b/include/parted/Makefile.am
+@@ -44,8 +44,7 @@ subst_pure_attr = \
+ 
+ $(BUILT_SOURCES): Makefile.am
+ 
+-SUFFIXES = .in.h .h
+-.in.h.h:
++%.h: %.in.h
+ 	$(AM_V_GEN)rm -f $@ $@-t
+ 	$(AM_V_at)perl -p \
+ 	    -e '$(subst_const_attr);' \
+-- 
+1.8.3.1
+
diff --git a/0013-build-enable-subdir-objects-Automake-option-globally.patch b/0013-build-enable-subdir-objects-Automake-option-globally.patch
new file mode 100644
index 0000000..f9d83ef
--- /dev/null
+++ b/0013-build-enable-subdir-objects-Automake-option-globally.patch
@@ -0,0 +1,53 @@
+From 803b2f58760ed82e5eb182df75ba18c00c9f43bf Mon Sep 17 00:00:00 2001
+From: Stefano Lattarini <stefano.lattarini at gmail.com>
+Date: Thu, 30 Aug 2012 18:53:16 +0200
+Subject: [PATCH 13/69] build: enable subdir-objects Automake option globally
+
+That option is enabled unconditionally in Automake-NG, and enabling
+it also for mainline Automake will help to ensure no unexpected
+incompatibilities is introduced in a potential port to Automake-NG.
+
+Moreover, if we have a source file 'sub/foo.c', having it compiled
+in 'sub/foo.o' rather than in 'foo.o' is undeniably cleaner and more
+natural.
+
+* configure.ac (AM_INIT_AUTOMAKE): Add 'subdir-objects'.
+* libparted/fs/Makefile.am (AUTOMAKE_OPTIONS): No need to declare
+'subdir-objects' explicitly now.
+
+Copyright-paperwork-exempt: yes
+---
+ configure.ac             | 3 ++-
+ libparted/fs/Makefile.am | 2 --
+ 2 files changed, 2 insertions(+), 3 deletions(-)
+
+diff --git a/configure.ac b/configure.ac
+index 1444279..49ef75c 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -52,7 +52,8 @@ AC_SUBST([LT_CURRENT])
+ AC_SUBST([LT_REVISION])
+ AC_SUBST([LT_AGE])
+ 
+-AM_INIT_AUTOMAKE([1.11 no-dist-gzip dist-xz color-tests parallel-tests])
++AM_INIT_AUTOMAKE([1.11 no-dist-gzip dist-xz color-tests parallel-tests
++                  subdir-objects])
+ AM_SILENT_RULES([yes]) # make --enable-silent-rules the default.
+ 
+ AC_CANONICAL_HOST
+diff --git a/libparted/fs/Makefile.am b/libparted/fs/Makefile.am
+index 7fe364a..064f11a 100644
+--- a/libparted/fs/Makefile.am
++++ b/libparted/fs/Makefile.am
+@@ -3,8 +3,6 @@
+ #
+ # This file may be modified and/or distributed without restriction.
+ 
+-AUTOMAKE_OPTIONS = subdir-objects
+-
+ partedincludedir = -I$(top_builddir)/include -I$(top_srcdir)/include
+ 
+ AM_CFLAGS = $(WARN_CFLAGS)
+-- 
+1.8.3.1
+
diff --git a/0014-tests-prefer-AM_TESTS_ENVIRONMENT-over-TESTS_ENVIRON.patch b/0014-tests-prefer-AM_TESTS_ENVIRONMENT-over-TESTS_ENVIRON.patch
new file mode 100644
index 0000000..937628a
--- /dev/null
+++ b/0014-tests-prefer-AM_TESTS_ENVIRONMENT-over-TESTS_ENVIRON.patch
@@ -0,0 +1,32 @@
+From 2bd66d7d3e5a1924c65c051d4b639c5ab48bbb99 Mon Sep 17 00:00:00 2001
+From: Stefano Lattarini <stefano.lattarini at gmail.com>
+Date: Thu, 30 Aug 2012 18:53:17 +0200
+Subject: [PATCH 14/69] tests: prefer AM_TESTS_ENVIRONMENT over
+ TESTS_ENVIRONMENT
+
+The latter should be reserved for user overrides.
+
+* tests/Makefile.am (TESTS_ENVIRONMENT): Rename ...
+(AM_TESTS_ENVIRONMENT): ... like this.
+
+Copyright-paperwork-exempt: yes
+---
+ tests/Makefile.am | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/tests/Makefile.am b/tests/Makefile.am
+index 1264812..33e8f8e 100644
+--- a/tests/Makefile.am
++++ b/tests/Makefile.am
+@@ -96,7 +96,7 @@ sep = $(PATH_SEPARATOR)
+ # variables that can perturb tests are unset or set to expected values.
+ # The rest are envvar settings that propagate build-related Makefile
+ # variables to test scripts.
+-TESTS_ENVIRONMENT =				\
++AM_TESTS_ENVIRONMENT =				\
+   tmp__=$$TMPDIR; test -d "$$tmp__" || tmp__=.;	\
+   TMPDIR=$$tmp__; export TMPDIR;		\
+   export					\
+-- 
+1.8.3.1
+
diff --git a/0015-tests-remove-unused-AM_TESTS_ENVIRONMENT-entries.patch b/0015-tests-remove-unused-AM_TESTS_ENVIRONMENT-entries.patch
new file mode 100644
index 0000000..cd62e20
--- /dev/null
+++ b/0015-tests-remove-unused-AM_TESTS_ENVIRONMENT-entries.patch
@@ -0,0 +1,41 @@
+From af4d0f5706740848c3fef67a7ea0b78cf31ddb90 Mon Sep 17 00:00:00 2001
+From: Stefano Lattarini <stefano.lattarini at gmail.com>
+Date: Thu, 30 Aug 2012 18:53:18 +0200
+Subject: [PATCH 15/69] tests: remove unused AM_TESTS_ENVIRONMENT entries
+
+Probably a copy&paste errors, likely from the TESTS_ENVIRONMENT
+definition in the 'tests/Makefile.am' in GNU coreutils.
+
+* tests/Makefile.am (AM_TESTS_ENVIRONMENT): Don't define nor export
+any of the variables PREFERABLY_POSIX_SHELL, REPLACE_GETCWD, CC,
+MAKE, PERL.
+
+Copyright-paperwork-exempt: yes
+---
+ tests/Makefile.am | 5 -----
+ 1 file changed, 5 deletions(-)
+
+diff --git a/tests/Makefile.am b/tests/Makefile.am
+index 33e8f8e..c97400b 100644
+--- a/tests/Makefile.am
++++ b/tests/Makefile.am
+@@ -107,16 +107,11 @@ AM_TESTS_ENVIRONMENT =				\
+   srcdir='$(srcdir)'				\
+   top_srcdir='$(top_srcdir)'			\
+   AWK='$(AWK)'					\
+-  CC='$(CC)'					\
+-  MAKE=$(MAKE)					\
+   PACKAGE_BUGREPORT='$(PACKAGE_BUGREPORT)'	\
+   PACKAGE_VERSION=$(PACKAGE_VERSION)		\
+   CONFIG_HEADER='$(abs_top_builddir)/lib/config.h' \
+   ENABLE_DEVICE_MAPPER=$(ENABLE_DEVICE_MAPPER)	\
+   PARTED_TEST_NAME=`basename '$(abs_srcdir)'`,`echo $$tst|sed 's,^\./,,;s,/,-,g'`\
+-  PERL='$(PERL)'				\
+-  PREFERABLY_POSIX_SHELL='$(PREFERABLY_POSIX_SHELL)' \
+-  REPLACE_GETCWD=$(REPLACE_GETCWD)		\
+   PATH='$(abs_top_builddir)/parted$(PATH_SEPARATOR)'"$$PATH" \
+   VERSION=$(VERSION)				\
+   ; 9>&2
+-- 
+1.8.3.1
+
diff --git a/0016-build-require-Automake-1.11.6.patch b/0016-build-require-Automake-1.11.6.patch
new file mode 100644
index 0000000..6fa41ef
--- /dev/null
+++ b/0016-build-require-Automake-1.11.6.patch
@@ -0,0 +1,51 @@
+From b2338d71549462c1dfbb434111b5c46701f54261 Mon Sep 17 00:00:00 2001
+From: Stefano Lattarini <stefano.lattarini at gmail.com>
+Date: Thu, 30 Aug 2012 18:53:19 +0200
+Subject: [PATCH 16/69] build: require Automake >= 1.11.6
+
+Now that we use AM_TESTS_ENVIRONMENT, we should require at least
+Automake >= 1.11.2; but since all the Automake version until 1.11.5
+are vulnerable to CVE-2012-3386:
+
+    <https://lists.gnu.org/archive/html/automake/2012-07/msg00023.html>
+
+it's even better to require 1.11.6.
+
+* configure.ac (AM_INIT_AUTOMAKE): Bump version requirement to 1.11.6.
+* bootstrap.conf ($buildreq): Likewise.
+
+Copyright-paperwork-exempt: yes
+---
+ bootstrap.conf | 2 +-
+ configure.ac   | 2 +-
+ 2 files changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/bootstrap.conf b/bootstrap.conf
+index b4456b2..39a5506 100644
+--- a/bootstrap.conf
++++ b/bootstrap.conf
+@@ -130,7 +130,7 @@ mkdir -p gnulib-tests
+ # Build prerequisites
+ buildreq="\
+ autoconf   2.61
+-automake   1.11
++automake   1.11.6
+ autopoint  -
+ bc         -
+ gettext    -
+diff --git a/configure.ac b/configure.ac
+index 49ef75c..832fc20 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -52,7 +52,7 @@ AC_SUBST([LT_CURRENT])
+ AC_SUBST([LT_REVISION])
+ AC_SUBST([LT_AGE])
+ 
+-AM_INIT_AUTOMAKE([1.11 no-dist-gzip dist-xz color-tests parallel-tests
++AM_INIT_AUTOMAKE([1.11.6 no-dist-gzip dist-xz color-tests parallel-tests
+                   subdir-objects])
+ AM_SILENT_RULES([yes]) # make --enable-silent-rules the default.
+ 
+-- 
+1.8.3.1
+
diff --git a/0017-maint-make-Autoconf-version-requirement-consistent.patch b/0017-maint-make-Autoconf-version-requirement-consistent.patch
new file mode 100644
index 0000000..3502b66
--- /dev/null
+++ b/0017-maint-make-Autoconf-version-requirement-consistent.patch
@@ -0,0 +1,29 @@
+From c7c9978f0bbf05517437ccc76ea8eff5d811aaef Mon Sep 17 00:00:00 2001
+From: Stefano Lattarini <stefano.lattarini at gmail.com>
+Date: Thu, 30 Aug 2012 18:53:20 +0200
+Subject: [PATCH 17/69] maint: make Autoconf version requirement consistent
+
+* bootstrap.conf ($buildreq): Require Autoconf >= 2.63, not >= 2.61,
+for consistency with what is done in AC_INIT in configure.ac
+
+Copyright-paperwork-exempt: yes
+---
+ bootstrap.conf | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/bootstrap.conf b/bootstrap.conf
+index 39a5506..a5d5910 100644
+--- a/bootstrap.conf
++++ b/bootstrap.conf
+@@ -129,7 +129,7 @@ mkdir -p gnulib-tests
+ 
+ # Build prerequisites
+ buildreq="\
+-autoconf   2.61
++autoconf   2.63
+ automake   1.11.6
+ autopoint  -
+ bc         -
+-- 
+1.8.3.1
+
diff --git a/0018-maint-tighten-per-version-requirement.patch b/0018-maint-tighten-per-version-requirement.patch
new file mode 100644
index 0000000..af4b449
--- /dev/null
+++ b/0018-maint-tighten-per-version-requirement.patch
@@ -0,0 +1,30 @@
+From 0406b2ce14fb86ede506c51d6b603b1f4a1ff42d Mon Sep 17 00:00:00 2001
+From: Stefano Lattarini <stefano.lattarini at gmail.com>
+Date: Thu, 30 Aug 2012 18:53:21 +0200
+Subject: [PATCH 18/69] maint: tighten per version requirement
+
+* bootstrap.conf ($buildreq): Require Perl >= 5.6 (not merely >= 5.5),
+because that's the minimal version required by modern Automake and
+Autoconf.
+
+Copyright-paperwork-exempt: yes
+---
+ bootstrap.conf | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/bootstrap.conf b/bootstrap.conf
+index a5d5910..7f4ee53 100644
+--- a/bootstrap.conf
++++ b/bootstrap.conf
+@@ -138,7 +138,7 @@ git        1.4.4
+ gperf      3.0.3
+ gzip       -
+ makeinfo   -
+-perl       5.5
++perl       5.6
+ rsync      -
+ tar        -
+ "
+-- 
+1.8.3.1
+
diff --git a/0019-maint-remove-unnecessary-wcslen-use.patch b/0019-maint-remove-unnecessary-wcslen-use.patch
new file mode 100644
index 0000000..a8b6e60
--- /dev/null
+++ b/0019-maint-remove-unnecessary-wcslen-use.patch
@@ -0,0 +1,31 @@
+From 464c0f9ae4af8346cd494c6434f4addabdd76e9d Mon Sep 17 00:00:00 2001
+From: Jim Meyering <meyering at redhat.com>
+Date: Tue, 11 Sep 2012 17:22:52 +0200
+Subject: [PATCH 19/69] maint: remove unnecessary wcslen use
+
+* parted/strlist.c (gettext_to_wchar): Tighten up test for
+mbsrtowcs failure and remove unnecessary wcslen use.
+---
+ parted/strlist.c | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/parted/strlist.c b/parted/strlist.c
+index d34fb56..1f90c0e 100644
+--- a/parted/strlist.c
++++ b/parted/strlist.c
+@@ -112,10 +112,10 @@ gettext_to_wchar (const char* str)
+ 
+ 	memset(&ps, 0, sizeof (ps));
+ 	status = mbsrtowcs(result, &str, count, &ps);
+-	if (status == (size_t) -1)
++	if (str != NULL)
+ 		goto error;
+ 
+-	result = xrealloc (result, (wcslen (result) + 1) * sizeof (wchar_t));
++	result = xrealloc (result, (status + 1) * sizeof (wchar_t));
+ 	return result;
+ 
+ error:
+-- 
+1.8.3.1
+
diff --git a/0020-tests-clarify-a-comment-_reading_-gpt-tables-on-tiny.patch b/0020-tests-clarify-a-comment-_reading_-gpt-tables-on-tiny.patch
new file mode 100644
index 0000000..192c5c9
--- /dev/null
+++ b/0020-tests-clarify-a-comment-_reading_-gpt-tables-on-tiny.patch
@@ -0,0 +1,27 @@
+From 1d67e37ef257d3d3847126f3b899b8b0e11aa186 Mon Sep 17 00:00:00 2001
+From: Jim Meyering <meyering at redhat.com>
+Date: Wed, 12 Sep 2012 10:02:46 +0200
+Subject: [PATCH 20/69] tests: clarify a comment: _reading_ gpt tables on tiny
+ devices
+
+* tests/t0203-gpt-tiny-device-abort.sh: Clarify.
+---
+ tests/t0203-gpt-tiny-device-abort.sh | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/tests/t0203-gpt-tiny-device-abort.sh b/tests/t0203-gpt-tiny-device-abort.sh
+index 7283c55..bf281ff 100644
+--- a/tests/t0203-gpt-tiny-device-abort.sh
++++ b/tests/t0203-gpt-tiny-device-abort.sh
+@@ -1,6 +1,6 @@
+ #!/bin/sh
+-# parted before 3.1 could abort for a pathologically small device with
+-# a valid primary GPT header but no room for the backup header.
++# parted before 3.1 could abort while reading a pathologically small device
++# with a valid primary GPT header but no room for the backup header.
+ 
+ # Copyright (C) 2009-2012 Free Software Foundation, Inc.
+ 
+-- 
+1.8.3.1
+
diff --git a/0021-gpt-require-first_usable_LBA-last_usable_LBA.patch b/0021-gpt-require-first_usable_LBA-last_usable_LBA.patch
new file mode 100644
index 0000000..1d2289c
--- /dev/null
+++ b/0021-gpt-require-first_usable_LBA-last_usable_LBA.patch
@@ -0,0 +1,31 @@
+From 46d9108009ccb9ac567cc285a15efb05864932d5 Mon Sep 17 00:00:00 2001
+From: Davidlohr Bueso <dave at gnu.org>
+Date: Tue, 11 Sep 2012 19:22:32 +0200
+Subject: [PATCH 21/69] gpt: require first_usable_LBA <= last_usable_LBA
+
+When verifying GPT header integrity, ensure that the
+first usable LBA is no larger than the last usable LBA.
+* libparted/labels/gpt.c (_header_is_valid): Reject a header
+with last_usable < first_usable.
+---
+ libparted/labels/gpt.c | 4 ++++
+ 1 file changed, 4 insertions(+)
+
+diff --git a/libparted/labels/gpt.c b/libparted/labels/gpt.c
+index 6032e3f..83e518f 100644
+--- a/libparted/labels/gpt.c
++++ b/libparted/labels/gpt.c
+@@ -653,6 +653,10 @@ _header_is_valid (PedDisk const *disk, GuidPartitionTableHeader_t *gpt,
+   if (first_usable < 3)
+     return 0;
+ 
++  PedSector last_usable = PED_LE64_TO_CPU (gpt->LastUsableLBA);
++  if (last_usable < first_usable)
++    return 0;
++
+   origcrc = gpt->HeaderCRC32;
+   gpt->HeaderCRC32 = 0;
+   if (pth_crc32 (dev, gpt, &crc) != 0)
+-- 
+1.8.3.1
+
diff --git a/0022-tests-update-t7000-scripting.sh-to-avoid-new-FP.patch b/0022-tests-update-t7000-scripting.sh-to-avoid-new-FP.patch
new file mode 100644
index 0000000..57d1559
--- /dev/null
+++ b/0022-tests-update-t7000-scripting.sh-to-avoid-new-FP.patch
@@ -0,0 +1,38 @@
+From 81faa9b3b957781871ec3ef0df6e357388f857a1 Mon Sep 17 00:00:00 2001
+From: Jim Meyering <meyering at redhat.com>
+Date: Wed, 12 Sep 2012 20:34:48 +0200
+Subject: [PATCH 22/69] tests: update t7000-scripting.sh to avoid new FP
+
+* tests/t7000-scripting.sh: Use -34s as the endpoint, not -1s,
+to avoid a spurious difference.  Also, remove quoting artifacts.
+---
+ tests/t7000-scripting.sh | 6 +++---
+ 1 file changed, 3 insertions(+), 3 deletions(-)
+
+diff --git a/tests/t7000-scripting.sh b/tests/t7000-scripting.sh
+index e64814b..859acda 100755
+--- a/tests/t7000-scripting.sh
++++ b/tests/t7000-scripting.sh
+@@ -47,7 +47,7 @@ for mkpart in mkpart; do
+   dd if=/dev/zero of=testfile bs=${ss}c count=$N 2> /dev/null || fail=1
+ 
+   # Test the scripting mode of $mkpart.
+-  parted -s testfile -- mklabel gpt "$mkpart" p-name ext3 1s -1s > out 2>&1
++  parted -s testfile -- mklabel gpt "$mkpart" p-name ext3 1s -34s > out 2>&1
+   test $? = 1 || fail=1
+ 
+   # Compare the real error and the expected one
+@@ -60,8 +60,8 @@ for mkpart in mkpart; do
+   dd if=/dev/zero of=testfile bs=${ss}c count=$N 2> /dev/null || fail=1
+   # Test the interactive mode of $mkpart
+   echo n | \
+-    parted ---pretend-input-tty testfile \
+-      "mklabel gpt '$mkpart' p-name ext3 1s -1s" > out 2>&1 && fail=1
++    parted ---pretend-input-tty -- testfile \
++      mklabel gpt $mkpart p-name ext3 1s -34s > out 2>&1 && fail=1
+ 
+   # We have to format the output before comparing.
+   # normalize the actual output
+-- 
+1.8.3.1
+
diff --git a/0023-gpt-permit-mklabel-gpt-on-a-67-sector-device.patch b/0023-gpt-permit-mklabel-gpt-on-a-67-sector-device.patch
new file mode 100644
index 0000000..0923988
--- /dev/null
+++ b/0023-gpt-permit-mklabel-gpt-on-a-67-sector-device.patch
@@ -0,0 +1,37 @@
+From 48f236f9cf1bbcd4c9cc29ebaecee7ed189580e3 Mon Sep 17 00:00:00 2001
+From: Jim Meyering <meyering at redhat.com>
+Date: Wed, 12 Sep 2012 10:01:53 +0200
+Subject: [PATCH 23/69] gpt: permit "mklabel gpt" on a 67-sector device
+
+* libparted/labels/gpt.c (gpt_alloc): Correct checks in order to
+allow creation of a GPT partition table on a 67-sector device.
+The computation of the "data_end" sector number was one too low.
+Whereas there are two sectors at the beginning of the disk (pMBR
+and the GPT header sector), there is only one at the end: the
+backup GPT header.  That (67) is the size of the smallest GPT
+partition table, allowing for *no* partition table sectors.
+---
+ libparted/labels/gpt.c | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/libparted/labels/gpt.c b/libparted/labels/gpt.c
+index 83e518f..564a889 100644
+--- a/libparted/labels/gpt.c
++++ b/libparted/labels/gpt.c
+@@ -501,11 +501,11 @@ gpt_alloc (const PedDevice *dev)
+     goto error;
+ 
+   data_start = 2 + GPT_DEFAULT_PARTITION_ENTRY_ARRAY_SIZE / dev->sector_size;
+-  data_end = dev->length - 2
++  data_end = dev->length - 1
+     - GPT_DEFAULT_PARTITION_ENTRY_ARRAY_SIZE / dev->sector_size;
+ 
+   /* If the device is too small to have room for data, reject it.  */
+-  if (data_end <= data_start)
++  if (data_end < data_start)
+     goto error_free_disk;
+ 
+   disk->disk_specific = gpt_disk_data = ped_malloc (sizeof (GPTDiskData));
+-- 
+1.8.3.1
+
diff --git a/0024-gpt-when-mklabel-gpt-fails-always-provide-a-diagnost.patch b/0024-gpt-when-mklabel-gpt-fails-always-provide-a-diagnost.patch
new file mode 100644
index 0000000..002c59d
--- /dev/null
+++ b/0024-gpt-when-mklabel-gpt-fails-always-provide-a-diagnost.patch
@@ -0,0 +1,38 @@
+From 7ca7f595e4cef589db852394687a6ca0c2925fa7 Mon Sep 17 00:00:00 2001
+From: Jim Meyering <meyering at redhat.com>
+Date: Wed, 12 Sep 2012 10:48:33 +0200
+Subject: [PATCH 24/69] gpt: when "mklabel gpt" fails, always provide a
+ diagnostic
+
+* libparted/labels/gpt.c (gpt_alloc): When rejecting a device because
+it is too small, give a diagnostic, as is done in every other failure
+path through this function.
+---
+ libparted/labels/gpt.c | 10 ++++++++--
+ 1 file changed, 8 insertions(+), 2 deletions(-)
+
+diff --git a/libparted/labels/gpt.c b/libparted/labels/gpt.c
+index 564a889..63b30b9 100644
+--- a/libparted/labels/gpt.c
++++ b/libparted/labels/gpt.c
+@@ -504,9 +504,15 @@ gpt_alloc (const PedDevice *dev)
+   data_end = dev->length - 1
+     - GPT_DEFAULT_PARTITION_ENTRY_ARRAY_SIZE / dev->sector_size;
+ 
+-  /* If the device is too small to have room for data, reject it.  */
++  /* If the device is too small to accommodate GPT headers, reject it.  */
+   if (data_end < data_start)
+-    goto error_free_disk;
++    {
++      ped_exception_throw (PED_EXCEPTION_ERROR,
++			   PED_EXCEPTION_OK,
++			   _("device is so small it cannot even"
++			     " accommodate GPT headers"));
++      goto error_free_disk;
++    }
+ 
+   disk->disk_specific = gpt_disk_data = ped_malloc (sizeof (GPTDiskData));
+   if (!disk->disk_specific)
+-- 
+1.8.3.1
+
diff --git a/0025-tests-show-that-small-dev-now-evokes-mklabel-gpt-dia.patch b/0025-tests-show-that-small-dev-now-evokes-mklabel-gpt-dia.patch
new file mode 100644
index 0000000..2c36ced
--- /dev/null
+++ b/0025-tests-show-that-small-dev-now-evokes-mklabel-gpt-dia.patch
@@ -0,0 +1,82 @@
+From 42c1964bdc2311ec142453cf43a8737da81b2f0d Mon Sep 17 00:00:00 2001
+From: Jim Meyering <meyering at redhat.com>
+Date: Wed, 12 Sep 2012 10:43:17 +0200
+Subject: [PATCH 25/69] tests: show that small dev now evokes "mklabel gpt"
+ diagnostic
+
+* tests/t0203-gpt-create-on-min-sized-device.sh: New test.
+* tests/Makefile.am (TESTS): Add it.
+---
+ tests/Makefile.am                             |  1 +
+ tests/t0203-gpt-create-on-min-sized-device.sh | 47 +++++++++++++++++++++++++++
+ 2 files changed, 48 insertions(+)
+ create mode 100644 tests/t0203-gpt-create-on-min-sized-device.sh
+
+diff --git a/tests/Makefile.am b/tests/Makefile.am
+index c97400b..66b9361 100644
+--- a/tests/Makefile.am
++++ b/tests/Makefile.am
+@@ -16,6 +16,7 @@ TESTS = \
+   t0202-gpt-pmbr.sh \
+   t0203-gpt-tiny-device-abort.sh \
+   t0203-gpt-shortened-device-primary-valid.sh \
++  t0203-gpt-create-on-min-sized-device.sh \
+   t0205-gpt-list-clobbers-pmbr.sh \
+   t0206-gpt-print-with-corrupt-primary-clobbers-pmbr.sh \
+   t0207-IEC-binary-notation.sh \
+diff --git a/tests/t0203-gpt-create-on-min-sized-device.sh b/tests/t0203-gpt-create-on-min-sized-device.sh
+new file mode 100644
+index 0000000..113e191
+--- /dev/null
++++ b/tests/t0203-gpt-create-on-min-sized-device.sh
+@@ -0,0 +1,47 @@
++#!/bin/sh
++# parted 3.1 and prior would exit with no diagnostic when failing
++# to create a GPT partition table on a device that was too small.
++
++# Copyright (C) 2012 Free Software Foundation, Inc.
++
++# This program is free software; you can redistribute it and/or modify
++# it under the terms of the GNU General Public License as published by
++# the Free Software Foundation; either version 3 of the License, or
++# (at your option) any later version.
++
++# This program is distributed in the hope that it will be useful,
++# but WITHOUT ANY WARRANTY; without even the implied warranty of
++# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
++# GNU General Public License for more details.
++
++# You should have received a copy of the GNU General Public License
++# along with this program.  If not, see <http://www.gnu.org/licenses/>.
++
++. "${srcdir=.}/init.sh"; path_prepend_ ../parted
++require_512_byte_sector_size_
++
++dev=loop-file
++ss=$sector_size_
++
++# Create the smallest file that can accommodate a GPT partition table.
++dd if=/dev/null of=$dev bs=$ss seek=67 || framework_failure
++
++# create a GPT partition table
++parted -s $dev mklabel gpt > out 2>&1 || fail=1
++# expect no output
++compare /dev/null out || fail=1
++
++# Create a file that is 1 sector smaller, and require failure,
++# *with* a diagnostic.
++rm -f $dev
++dd if=/dev/null of=$dev bs=$ss seek=66 || framework_failure
++
++echo Error: device is so small it cannot even accommodate GPT headers \
++  > exp || framework_failure
++
++# Try to create a GPT partition table in too little space.  This must fail.
++parted -s $dev mklabel gpt > out 2>&1 && fail=1
++# There must be a diagnostic.
++compare out exp || fail=1
++
++Exit $fail
+-- 
+1.8.3.1
+
diff --git a/0026-tests-avoid-syntax-check-failure-for-reversed-compar.patch b/0026-tests-avoid-syntax-check-failure-for-reversed-compar.patch
new file mode 100644
index 0000000..399d9df
--- /dev/null
+++ b/0026-tests-avoid-syntax-check-failure-for-reversed-compar.patch
@@ -0,0 +1,27 @@
+From bcc6517853c09f979951ab483bd6560d45bf8e3f Mon Sep 17 00:00:00 2001
+From: Jim Meyering <meyering at redhat.com>
+Date: Thu, 20 Sep 2012 20:22:13 +0200
+Subject: [PATCH 26/69] tests: avoid syntax-check failure for reversed compare
+ args
+
+* tests/t0203-gpt-create-on-min-sized-device.sh: Reverse args,
+so that any diff output (upon failed test) looks sensible.
+---
+ tests/t0203-gpt-create-on-min-sized-device.sh | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/tests/t0203-gpt-create-on-min-sized-device.sh b/tests/t0203-gpt-create-on-min-sized-device.sh
+index 113e191..4cec64c 100644
+--- a/tests/t0203-gpt-create-on-min-sized-device.sh
++++ b/tests/t0203-gpt-create-on-min-sized-device.sh
+@@ -42,6 +42,6 @@ echo Error: device is so small it cannot even accommodate GPT headers \
+ # Try to create a GPT partition table in too little space.  This must fail.
+ parted -s $dev mklabel gpt > out 2>&1 && fail=1
+ # There must be a diagnostic.
+-compare out exp || fail=1
++compare exp out || fail=1
+ 
+ Exit $fail
+-- 
+1.8.3.1
+
diff --git a/0027-mac-don-t-let-larger-partition-table-specified-block.patch b/0027-mac-don-t-let-larger-partition-table-specified-block.patch
new file mode 100644
index 0000000..ddea183
--- /dev/null
+++ b/0027-mac-don-t-let-larger-partition-table-specified-block.patch
@@ -0,0 +1,78 @@
+From 6c7932b90a9d078ffaf8ec9482b272c67d75a01d Mon Sep 17 00:00:00 2001
+From: "Brian C. Lane" <bcl at redhat.com>
+Date: Tue, 4 Sep 2012 16:42:34 -0700
+Subject: [PATCH 27/69] mac: don't let larger partition-table-specified block
+ size evoke UB
+
+For example, in reading a MAC partition table on a 512-byte sector-size
+disk, _disk_analyse_block_size could find reason to ask if it's ok to
+increase that to e.g., 2048.  Upon a positive reply, we would read 2048
+bytes into a 512-byte buffer.
+
+* libparted/labels/mac.c (mac_read): If needed, reallocate "buf"
+to accommodate a new, larger sector size.
+* NEWS (Bug fixes): Mention it.
+---
+ NEWS                   |  7 +++++++
+ libparted/labels/mac.c | 14 +++++++++++++-
+ 2 files changed, 20 insertions(+), 1 deletion(-)
+
+diff --git a/NEWS b/NEWS
+index f929b99..bab3afb 100644
+--- a/NEWS
++++ b/NEWS
+@@ -4,6 +4,13 @@ GNU parted NEWS                                    -*- outline -*-
+ 
+ ** Bug Fixes
+ 
++  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.
+ 
+diff --git a/libparted/labels/mac.c b/libparted/labels/mac.c
+index 1f59a1a..2485187 100644
+--- a/libparted/labels/mac.c
++++ b/libparted/labels/mac.c
+@@ -738,13 +738,16 @@ mac_read (PedDisk* disk)
+ 	if (!ptt_read_sector (disk->dev, 0, &buf))
+ 		return 0;
+ 
+-	MacRawDisk *raw_disk = (MacRawDisk *) buf;
++	MacRawDisk *raw_disk = buf;
+ 
+ 	if (!_check_signature (raw_disk))
+ 		goto error;
+ 
++	/* Record the original sector size;  this function may change it.  */
++	PedSector ss0 = disk->dev->sector_size;
+ 	if (!_disk_analyse_block_size (disk, raw_disk))
+ 		goto error;
++
+ 	if (!_disk_analyse_ghost_size (disk))
+ 		goto error;
+ 	ghost_size = mac_disk_data->ghost_size;
+@@ -759,6 +762,15 @@ mac_read (PedDisk* disk)
+ 		mac_disk_data->block_size = raw_disk->block_size;
+ 	}
+ 
++	/* If _disk_analyse_block_size has increased the sector_size,
++	   reallocate this buffer, so we can still read a sector into it.  */
++	if (ss0 < disk->dev->sector_size) {
++		free (buf);
++		buf = ped_malloc (disk->dev->sector_size);
++		if (buf == NULL)
++			goto error;
++	}
++
+ 	for (num=1; num==1 || num <= last_part_entry_num; num++) {
+ 		void *raw_part = buf;
+ 		if (!ped_device_read (disk->dev, raw_part,
+-- 
+1.8.3.1
+
diff --git a/0028-tests-mac-exercise-the-just-fixed-bug.patch b/0028-tests-mac-exercise-the-just-fixed-bug.patch
new file mode 100644
index 0000000..46d1622
--- /dev/null
+++ b/0028-tests-mac-exercise-the-just-fixed-bug.patch
@@ -0,0 +1,83 @@
+From 6499402a18baf22f08084acb289431b731d3afda Mon Sep 17 00:00:00 2001
+From: Jim Meyering <meyering at redhat.com>
+Date: Thu, 20 Sep 2012 20:18:50 +0200
+Subject: [PATCH 28/69] tests: mac: exercise the just-fixed bug
+
+* tests/t0350-mac-PT-increases-sector-size.sh: New test.
+* tests/Makefile.am (TESTS): Add it.
+---
+ tests/Makefile.am                           |  1 +
+ tests/t0350-mac-PT-increases-sector-size.sh | 49 +++++++++++++++++++++++++++++
+ 2 files changed, 50 insertions(+)
+ create mode 100644 tests/t0350-mac-PT-increases-sector-size.sh
+
+diff --git a/tests/Makefile.am b/tests/Makefile.am
+index 66b9361..96abecb 100644
+--- a/tests/Makefile.am
++++ b/tests/Makefile.am
+@@ -30,6 +30,7 @@ TESTS = \
+   t0280-gpt-corrupt.sh \
+   t0300-dos-on-gpt.sh \
+   t0301-overwrite-gpt-pmbr.sh \
++  t0350-mac-PT-increases-sector-size.sh \
+   t0400-loop-clobber-infloop.sh \
+   t0500-dup-clobber.sh \
+   t0501-duplicate.sh \
+diff --git a/tests/t0350-mac-PT-increases-sector-size.sh b/tests/t0350-mac-PT-increases-sector-size.sh
+new file mode 100644
+index 0000000..2dbd8cd
+--- /dev/null
++++ b/tests/t0350-mac-PT-increases-sector-size.sh
+@@ -0,0 +1,49 @@
++#!/bin/sh
++# With parted-3.1, a MAC partition table that specified a sector size (B)
++# larger than what the kernel told us (SS) would cause parted to read B
++# bytes into a smaller, SS-byte buffer, clobbering heap storage.
++
++# Copyright (C) 2012 Free Software Foundation, Inc.
++
++# This program is free software; you can redistribute it and/or modify
++# it under the terms of the GNU General Public License as published by
++# the Free Software Foundation; either version 3 of the License, or
++# (at your option) any later version.
++
++# This program is distributed in the hope that it will be useful,
++# but WITHOUT ANY WARRANTY; without even the implied warranty of
++# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
++# GNU General Public License for more details.
++
++# You should have received a copy of the GNU General Public License
++# along with this program.  If not, see <http://www.gnu.org/licenses/>.
++
++. "${srcdir=.}/init.sh"; path_prepend_ ../parted
++require_512_byte_sector_size_
++
++dev=loop-file
++ss=$sector_size_
++
++dd if=/dev/null of=$dev bs=$ss seek=2000 || framework_failure
++parted -s $dev mklabel mac > out 2>&1 || fail=1
++# expect no output
++compare /dev/null out || fail=1
++
++# Poke a big-endian 1024 into the 2-byte block_size slot.
++perl -e 'print pack("S>", 1024)'|dd of=$dev bs=1 seek=2 count=2 conv=notrunc \
++  || fail=1
++
++printf 'ignore\ncancel\n' > in || framework_failure
++
++cat <<EOF > exp
++BYT;
++FILE:2000s:file:1024:512:unknown::;
++EOF
++
++parted -m ---pretend-input-tty $dev u s p < in > err 2>&1 || fail=1
++sed 's,
   *
,,g;s!^/[^:]*:!FILE:!' err \
++  | grep -Evi '^(ignore|fix|error|warning)' \
++  > k && mv k err || fail=1
++compare exp err || fail=1
++
++Exit $fail
+-- 
+1.8.3.1
+
diff --git a/0029-add-support-for-a-new-Linux-specific-GPT-partition-t.patch b/0029-add-support-for-a-new-Linux-specific-GPT-partition-t.patch
new file mode 100644
index 0000000..7965021
--- /dev/null
+++ b/0029-add-support-for-a-new-Linux-specific-GPT-partition-t.patch
@@ -0,0 +1,333 @@
+From e6536360bd4496cee1f1bf2dfb0b11f6bdbbfd4b Mon Sep 17 00:00:00 2001
+From: "Roderick W. Smith" <rodsmith at rodsbooks.com>
+Date: Sun, 23 Sep 2012 21:29:10 +0200
+Subject: [PATCH 29/69] add support for a new Linux-specific GPT partition type
+ code
+
+* NEWS: Describe the new Linux-specific partition type code
+and the new msftres flag that can be used to override this type
+code, should it be necessary.
+* doc/parted.texi: Describe of the new msftres flag.
+* include/parted/disk.in.h [_PedPartitionFlag]: Add
+PED_PARTITION_MSFT_DATA.
+* libparted/disk.c: Add check for PED_PARTITION_MSFT_DATA, with
+return of "msftdata", to ped_partition_flag_get_name()
+* libparted/labels/gpt.c (PARTITION_LINUX_DATA_GUID): Define.
+[_GPTPartitionData]: New member, "int msftdata".
+(_parse_part_entry): Set the msftdata flag if and only if the
+PARTITION_BASIC_DATA_GUID type code is in use;
+(gpt_partition_new): Use the PARTITION_LINUX_DATA_GUID
+type as the default type code
+(gpt_partition_set_system): Set the PARTITION_BASIC_DATA_GUID type
+code on partitions on which the msftdata flag is set and set
+PARTITION_LINUX_DATA_GUID as the type by default.
+Clear the msftdata flag in most tests in gpt_partition_set_flag()
+(gpt_partition_set_flag): Add test for PED_PARTITION_MSFT_DATA, which
+sets msftdata and other flags appropriately
+(gpt_partition_get_flag): Add test for the PED_PARTITION_MSFT_DATA
+item that returns the status of the msftdata flag
+(gpt_partition_is_flag_available): Add test for
+PED_PARTITION_MSFT_DATA item to
+* tests/t0220-gpt-msftres.sh: Accommodate the fact that now,
+partition table listings include "msftdata" for file systems
+of type NTFS and FAT*.
+For more discussion and justification, see
+http://thread.gmane.org/gmane.comp.gnu.parted.bugs/10456
+---
+ NEWS                       | 19 +++++++++++++++++++
+ doc/parted.texi            | 16 +++++++++++++++-
+ include/parted/disk.in.h   |  5 +++--
+ libparted/disk.c           |  2 ++
+ libparted/labels/gpt.c     | 45 +++++++++++++++++++++++++++++++++++++++++++--
+ tests/t0220-gpt-msftres.sh |  3 ++-
+ 6 files changed, 84 insertions(+), 6 deletions(-)
+
+diff --git a/NEWS b/NEWS
+index bab3afb..4c4716d 100644
+--- a/NEWS
++++ b/NEWS
+@@ -17,6 +17,25 @@ GNU parted NEWS                                    -*- outline -*-
+   libparted: treat a disk with no pMBR as an msdos-labeled disk
+   even when it has valid GPT headers.
+ 
++** Changes in behavior
++
++  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]
+ 
+diff --git a/doc/parted.texi b/doc/parted.texi
+index 1601151..b8db19d 100644
+--- a/doc/parted.texi
++++ b/doc/parted.texi
+@@ -793,6 +793,20 @@ on a partition that partition must be bootable.
+ For PC98 disk labels, all ext2 partitions must be bootable (this is
+ enforced by Parted).
+ 
++ at item msftdata
++(GPT) - This flag identifies partitions that contain Microsoft filesystems
++(NTFS or FAT).  It may optionally be set on Linux filesystems to mimic the
++type of configuration created by parted 3.0 and earlier, in which a
++separate Linux filesystem type code was not available on GPT disks.  This
++flag can only be removed within parted by replacing it with a competing
++flag, such as boot or msftres.
++
++ at item msftres
++(GPT) - This flag identifies a "Microsoft Reserved" partition, which is
++used by Windows on GPT disks.  Note that this flag should not normally be
++set on Windows filesystem partitions (those that contain NTFS or FAT
++filesystems).
++
+ @item lba
+ (MS-DOS) - this flag can be enabled to tell MS DOS, MS Windows 9x and
+ MS Windows ME based operating systems to use Linear (LBA) mode.
+@@ -907,7 +921,7 @@ which case this unit apply instead of the default unit for this
+ particular number, but CHS and cylinder units are not supported as
+ a suffix.  If no suffix is given, then the default unit is assumed.
+ Parted will compute sensible ranges for the locations you specify
+-(e.g. a range of +/- 500 MB when you specify the location in ``G'',
++(e.g., a range of +/- 500 MB when you specify the location in ``G'',
+ and a range of +/- 500 KB when you specify the location in ``M'')
+ and will select the nearest location in this range from the one you
+ wrote that satisfies constraints from both the operation, the
+diff --git a/include/parted/disk.in.h b/include/parted/disk.in.h
+index 9734edd..a34e11e 100644
+--- a/include/parted/disk.in.h
++++ b/include/parted/disk.in.h
+@@ -72,10 +72,11 @@ enum _PedPartitionFlag {
+         PED_PARTITION_BIOS_GRUB=12,
+         PED_PARTITION_APPLE_TV_RECOVERY=13,
+         PED_PARTITION_DIAG=14,
+-        PED_PARTITION_LEGACY_BOOT=15
++        PED_PARTITION_LEGACY_BOOT=15,
++        PED_PARTITION_MSFT_DATA=16
+ };
+ #define PED_PARTITION_FIRST_FLAG        PED_PARTITION_BOOT
+-#define PED_PARTITION_LAST_FLAG         PED_PARTITION_LEGACY_BOOT
++#define PED_PARTITION_LAST_FLAG         PED_PARTITION_MSFT_DATA
+ 
+ enum _PedDiskTypeFeature {
+         PED_DISK_TYPE_EXTENDED=1,       /**< supports extended partitions */
+diff --git a/libparted/disk.c b/libparted/disk.c
+index f9b5fd2..c4b1a01 100644
+--- a/libparted/disk.c
++++ b/libparted/disk.c
+@@ -2433,6 +2433,8 @@ ped_partition_flag_get_name (PedPartitionFlag flag)
+ 		return N_("prep");
+ 	case PED_PARTITION_MSFT_RESERVED:
+ 		return N_("msftres");
++	case PED_PARTITION_MSFT_DATA:
++		return N_("msftdata");
+         case PED_PARTITION_APPLE_TV_RECOVERY:
+                 return N_("atvrecv");
+         case PED_PARTITION_DIAG:
+diff --git a/libparted/labels/gpt.c b/libparted/labels/gpt.c
+index 63b30b9..490de70 100644
+--- a/libparted/labels/gpt.c
++++ b/libparted/labels/gpt.c
+@@ -122,6 +122,10 @@ typedef struct
+     ((efi_guid_t) { PED_CPU_TO_LE32 (0x0657fd6d), PED_CPU_TO_LE16 (0xa4ab), \
+                     PED_CPU_TO_LE16 (0x43c4), 0x84, 0xe5, \
+                     { 0x09, 0x33, 0xc8, 0x4b, 0x4f, 0x4f }})
++#define PARTITION_LINUX_DATA_GUID \
++    ((efi_guid_t) { PED_CPU_TO_LE32 (0x0FC63DAF), PED_CPU_TO_LE16 (0x8483), \
++                    PED_CPU_TO_LE16 (0x4772), 0x8E, 0x79, \
++                    { 0x3D, 0x69, 0xD8, 0x47, 0x7D, 0xE4 }})
+ #define PARTITION_LVM_GUID \
+     ((efi_guid_t) { PED_CPU_TO_LE32 (0xe6d6d379), PED_CPU_TO_LE16 (0xf507), \
+                     PED_CPU_TO_LE16 (0x44c2), 0xa2, 0x3c, \
+@@ -280,6 +284,7 @@ typedef struct _GPTPartitionData
+   int hp_service;
+   int hidden;
+   int msftres;
++  int msftdata;
+   int atvrecv;
+   int msftrecv;
+   int legacy_boot;
+@@ -788,6 +793,7 @@ _parse_part_entry (PedDisk *disk, GuidPartitionEntry_t *pte)
+   gpt_part_data->lvm = gpt_part_data->raid
+     = gpt_part_data->boot = gpt_part_data->hp_service
+     = gpt_part_data->hidden = gpt_part_data->msftres
++    = gpt_part_data->msftdata
+     = gpt_part_data->msftrecv
+     = gpt_part_data->legacy_boot
+     = gpt_part_data->bios_grub = gpt_part_data->atvrecv = 0;
+@@ -809,6 +815,8 @@ _parse_part_entry (PedDisk *disk, GuidPartitionEntry_t *pte)
+     gpt_part_data->hp_service = 1;
+   else if (!guid_cmp (gpt_part_data->type, PARTITION_MSFT_RESERVED_GUID))
+     gpt_part_data->msftres = 1;
++  else if (!guid_cmp (gpt_part_data->type, PARTITION_BASIC_DATA_GUID))
++    gpt_part_data->msftdata = 1;
+   else if (!guid_cmp (gpt_part_data->type, PARTITION_MSFT_RECOVERY))
+     gpt_part_data->msftrecv = 1;
+   else if (!guid_cmp (gpt_part_data->type, PARTITION_APPLE_TV_RECOVERY_GUID))
+@@ -1318,7 +1326,7 @@ gpt_partition_new (const PedDisk *disk,
+   if (!gpt_part_data)
+     goto error_free_part;
+ 
+-  gpt_part_data->type = PARTITION_BASIC_DATA_GUID;
++  gpt_part_data->type = PARTITION_LINUX_DATA_GUID;
+   gpt_part_data->lvm = 0;
+   gpt_part_data->raid = 0;
+   gpt_part_data->boot = 0;
+@@ -1326,6 +1334,7 @@ gpt_partition_new (const PedDisk *disk,
+   gpt_part_data->hp_service = 0;
+   gpt_part_data->hidden = 0;
+   gpt_part_data->msftres = 0;
++  gpt_part_data->msftdata = 0;
+   gpt_part_data->msftrecv = 0;
+   gpt_part_data->atvrecv = 0;
+   gpt_part_data->legacy_boot = 0;
+@@ -1422,6 +1431,11 @@ gpt_partition_set_system (PedPartition *part,
+       gpt_part_data->type = PARTITION_MSFT_RESERVED_GUID;
+       return 1;
+     }
++  if (gpt_part_data->msftdata)
++    {
++      gpt_part_data->type = PARTITION_BASIC_DATA_GUID;
++      return 1;
++    }
+   if (gpt_part_data->msftrecv)
+     {
+       gpt_part_data->type = PARTITION_MSFT_RECOVERY;
+@@ -1453,7 +1467,7 @@ gpt_partition_set_system (PedPartition *part,
+         }
+     }
+ 
+-  gpt_part_data->type = PARTITION_BASIC_DATA_GUID;
++  gpt_part_data->type = PARTITION_LINUX_DATA_GUID;
+   return 1;
+ }
+ 
+@@ -1571,6 +1585,7 @@ gpt_partition_set_flag (PedPartition *part, PedPartitionFlag flag, int state)
+           = gpt_part_data->bios_grub
+           = gpt_part_data->hp_service
+           = gpt_part_data->msftres
++          = gpt_part_data->msftdata
+           = gpt_part_data->msftrecv
+           = gpt_part_data->atvrecv = 0;
+       return gpt_partition_set_system (part, part->fs_type);
+@@ -1582,6 +1597,7 @@ gpt_partition_set_flag (PedPartition *part, PedPartitionFlag flag, int state)
+           = gpt_part_data->boot
+           = gpt_part_data->hp_service
+           = gpt_part_data->msftres
++          = gpt_part_data->msftdata
+           = gpt_part_data->msftrecv
+           = gpt_part_data->atvrecv = 0;
+       return gpt_partition_set_system (part, part->fs_type);
+@@ -1593,6 +1609,7 @@ gpt_partition_set_flag (PedPartition *part, PedPartitionFlag flag, int state)
+           = gpt_part_data->bios_grub
+           = gpt_part_data->hp_service
+           = gpt_part_data->msftres
++          = gpt_part_data->msftdata
+           = gpt_part_data->msftrecv
+           = gpt_part_data->atvrecv = 0;
+       return gpt_partition_set_system (part, part->fs_type);
+@@ -1604,6 +1621,7 @@ gpt_partition_set_flag (PedPartition *part, PedPartitionFlag flag, int state)
+           = gpt_part_data->bios_grub
+           = gpt_part_data->hp_service
+           = gpt_part_data->msftres
++          = gpt_part_data->msftdata
+           = gpt_part_data->msftrecv
+           = gpt_part_data->atvrecv = 0;
+       return gpt_partition_set_system (part, part->fs_type);
+@@ -1615,6 +1633,7 @@ gpt_partition_set_flag (PedPartition *part, PedPartitionFlag flag, int state)
+           = gpt_part_data->lvm
+           = gpt_part_data->bios_grub
+           = gpt_part_data->msftres
++          = gpt_part_data->msftdata
+           = gpt_part_data->msftrecv
+           = gpt_part_data->atvrecv = 0;
+       return gpt_partition_set_system (part, part->fs_type);
+@@ -1626,8 +1645,25 @@ gpt_partition_set_flag (PedPartition *part, PedPartitionFlag flag, int state)
+           = gpt_part_data->lvm
+           = gpt_part_data->bios_grub
+           = gpt_part_data->hp_service
++          = gpt_part_data->msftdata
++          = gpt_part_data->msftrecv
++          = gpt_part_data->atvrecv = 0;
++      return gpt_partition_set_system (part, part->fs_type);
++    case PED_PARTITION_MSFT_DATA:
++      gpt_part_data->msftres = state;
++      if (state) {
++        gpt_part_data->boot
++          = gpt_part_data->raid
++          = gpt_part_data->lvm
++          = gpt_part_data->bios_grub
++          = gpt_part_data->hp_service
++          = gpt_part_data->msftres
+           = gpt_part_data->msftrecv
+           = gpt_part_data->atvrecv = 0;
++        gpt_part_data->msftdata = 1;
++      } else {
++        gpt_part_data->msftdata = 0;
++      }
+       return gpt_partition_set_system (part, part->fs_type);
+     case PED_PARTITION_DIAG:
+       gpt_part_data->msftrecv = state;
+@@ -1637,6 +1673,7 @@ gpt_partition_set_flag (PedPartition *part, PedPartitionFlag flag, int state)
+           = gpt_part_data->lvm
+           = gpt_part_data->bios_grub
+           = gpt_part_data->hp_service
++          = gpt_part_data->msftdata
+           = gpt_part_data->msftres
+           = gpt_part_data->atvrecv = 0;
+       return gpt_partition_set_system (part, part->fs_type);
+@@ -1649,6 +1686,7 @@ gpt_partition_set_flag (PedPartition *part, PedPartitionFlag flag, int state)
+           = gpt_part_data->bios_grub
+           = gpt_part_data->hp_service
+           = gpt_part_data->msftres
++          = gpt_part_data->msftdata
+           = gpt_part_data->msftrecv = 0;
+       return gpt_partition_set_system (part, part->fs_type);
+     case PED_PARTITION_HIDDEN:
+@@ -1687,6 +1725,8 @@ gpt_partition_get_flag (const PedPartition *part, PedPartitionFlag flag)
+       return gpt_part_data->hp_service;
+     case PED_PARTITION_MSFT_RESERVED:
+       return gpt_part_data->msftres;
++    case PED_PARTITION_MSFT_DATA:
++      return gpt_part_data->msftdata;
+     case PED_PARTITION_DIAG:
+       return gpt_part_data->msftrecv;
+     case PED_PARTITION_APPLE_TV_RECOVERY:
+@@ -1716,6 +1756,7 @@ gpt_partition_is_flag_available (const PedPartition *part,
+     case PED_PARTITION_BIOS_GRUB:
+     case PED_PARTITION_HPSERVICE:
+     case PED_PARTITION_MSFT_RESERVED:
++    case PED_PARTITION_MSFT_DATA:
+     case PED_PARTITION_DIAG:
+     case PED_PARTITION_APPLE_TV_RECOVERY:
+     case PED_PARTITION_HIDDEN:
+diff --git a/tests/t0220-gpt-msftres.sh b/tests/t0220-gpt-msftres.sh
+index d522aec..bd14c84 100755
+--- a/tests/t0220-gpt-msftres.sh
++++ b/tests/t0220-gpt-msftres.sh
+@@ -56,7 +56,8 @@ printf "BYT;\n$dev:${n_sectors}s:file:$ss:$ss:gpt::;\n" > exp
+ i=1
+ for type in $fs_types; do
+   end=$(expr $start + $part_size - 1)
+-  echo "$i:${start}s:${end}s:${part_size}s::$type:;" >> exp || fail=1
++  case $type in fat*|NTFS) flag=msftdata;; *) flag=;; esac
++  echo "$i:${start}s:${end}s:${part_size}s::$type:$flag;" >> exp || fail=1
+   parted -s $dev mkpart p-name $type ${start}s ${end}s > err 2>&1 || fail=1
+   compare /dev/null err || fail=1
+   parted -s $dev name $i $type > err 2>&1 || fail=1
+-- 
+1.8.3.1
+
diff --git a/0030-tests-clean-up-tests.patch b/0030-tests-clean-up-tests.patch
new file mode 100644
index 0000000..63ea8de
--- /dev/null
+++ b/0030-tests-clean-up-tests.patch
@@ -0,0 +1,341 @@
+From c987c73cbe773dfa3b14b911ffc243137195bbb3 Mon Sep 17 00:00:00 2001
+From: Jim Meyering <meyering at redhat.com>
+Date: Sat, 29 Sep 2012 12:10:35 +0200
+Subject: [PATCH 30/69] tests: clean up tests
+
+Use warn_ and $ME_ in place of warn and $ME; remove definitions of
+the latter two.  Remove unused code.
+* tests/lvm-utils.sh: Remove file.  All functions were either unused
+or duplicated/better in t-lvm.sh.
+* tests/Makefile.am (EXTRA_DIST): Remove it.
+* tests/t-local.sh (scsi_debug_setup_): Use echo 1>&2, not warn_, to
+emit to log file only, not console.  The diagnostic it emitted (in
+verbose mode) was more "informational" than a warning.
+* tests/t9030-align-check.sh: Use warn_, not warn.
+* tests/t-lvm.sh: Likewise, and use fail_, not error (undefined!).
+* tests/t-lib-helpers.sh (device_mapper_required_): Use t-lvm.sh
+and an explicit lvm_init_root_dir_ in place of lvm-utils.sh.
+---
+ tests/Makefile.am          |   2 +-
+ tests/lvm-utils.sh         | 208 ---------------------------------------------
+ tests/t-lib-helpers.sh     |   4 +-
+ tests/t-local.sh           |   2 +-
+ tests/t-lvm.sh             |  11 +--
+ tests/t9030-align-check.sh |   3 +-
+ 6 files changed, 10 insertions(+), 220 deletions(-)
+ delete mode 100644 tests/lvm-utils.sh
+
+diff --git a/tests/Makefile.am b/tests/Makefile.am
+index 96abecb..80d5525 100644
+--- a/tests/Makefile.am
++++ b/tests/Makefile.am
+@@ -74,7 +74,7 @@ TESTS = \
+   t9050-partition-table-types.sh
+ 
+ EXTRA_DIST = \
+-  $(TESTS) lvm-utils.sh t-local.sh t-lvm.sh \
++  $(TESTS) t-local.sh t-lvm.sh \
+   init.cfg init.sh t-lib-helpers.sh gpt-header-munge
+ 
+ check_PROGRAMS = print-align print-max dup-clobber duplicate fs-resize
+diff --git a/tests/lvm-utils.sh b/tests/lvm-utils.sh
+deleted file mode 100644
+index 456d265..0000000
+--- a/tests/lvm-utils.sh
++++ /dev/null
+@@ -1,208 +0,0 @@
+-# Put lvm-related utilities here.
+-# This file is sourced from test infrastructure.
+-
+-# Copyright (C) 2007-2010 Red Hat, Inc. All rights reserved.
+-#
+-# This copyrighted material is made available to anyone wishing to use,
+-# modify, copy, or redistribute it subject to the terms and conditions
+-# of the GNU General Public License v.2.
+-#
+-# You should have received a copy of the GNU General Public License
+-# along with this program; if not, write to the Free Software Foundation,
+-# Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+-
+-export LVM_SUPPRESS_FD_WARNINGS=1
+-
+-ME=$(basename "$0")
+-warn() { echo >&2 "$ME: $@"; }
+-
+-unsafe_losetup_()
+-{
+-  f=$1
+-
+-  test -n "$G_dev_" \
+-    || fail_ "Internal error: unsafe_losetup_ called before init_root_dir_"
+-
+-  # Iterate through $G_dev_/loop{,/}{0,1,2,3,4,5,6,7,8,9}
+-  for slash in '' /; do
+-    for i in 0 1 2 3 4 5 6 7 8 9; do
+-      dev=$G_dev_/loop$slash$i
+-      losetup $dev > /dev/null 2>&1 && continue;
+-      losetup "$dev" "$f" > /dev/null && { echo "$dev"; return 0; }
+-      break
+-    done
+-  done
+-
+-  return 1
+-}
+-
+-loop_setup_()
+-{
+-  file=$1
+-  dd if=/dev/zero of="$file" bs=1M count=1 seek=1000 > /dev/null 2>&1 \
+-    || { warn "loop_setup_ failed: Unable to create tmp file $file"; return 1; }
+-
+-  # NOTE: this requires a new enough version of losetup
+-  dev=$(unsafe_losetup_ "$file") \
+-    || { warn "loop_setup_ failed: Unable to create loopback device"; return 1; }
+-
+-  echo "$dev"
+-  return 0;
+-}
+-
+-compare_two_fields_()
+-{
+-    local cmd1=$1;
+-    local obj1=$2;
+-    local field1=$3;
+-    local cmd2=$4;
+-    local obj2=$5;
+-    local field2=$6;
+-    local val1;
+-    local val2;
+-
+-    val1=$($cmd1 --noheadings -o $field1 $obj1)
+-    val2=$($cmd2 --noheadings -o $field2 $obj2)
+-if test "$verbose" = "t"
+-then
+-  echo "compare_two_fields_ $obj1($field1): $val1 $obj2($field2): $val2"
+-fi
+-  test $val1 = $val2
+-}
+-
+-compare_vg_field_()
+-{
+-    local vg1=$1;
+-    local vg2=$2;
+-    local field=$3;
+-    local val1;
+-    local val2;
+-
+-    val1=$(vgs --noheadings -o $field $vg1)
+-    val2=$(vgs --noheadings -o $field $vg2)
+-if test "$verbose" = "t"
+-then
+-  echo "compare_vg_field_ VG1: $val1 VG2: $val2"
+-fi
+-  test $val1 = $val2
+-}
+-
+-check_vg_field_()
+-{
+-    local vg=$1;
+-    local field=$2;
+-    local expected=$3;
+-    local actual;
+-
+-    actual=$(vgs --noheadings -o $field $vg)
+-if test "$verbose" = "t"
+-then
+-  echo "check_vg_field_ VG=$vg, field=$field, actual=$actual, expected=$expected"
+-fi
+-  test $actual = $expected
+-}
+-
+-check_pv_field_()
+-{
+-    local pv=$1;
+-    local field=$2;
+-    local expected=$3;
+-    local actual;
+-
+-    actual=$(pvs --noheadings -o $field $pv)
+-if test "$verbose" = "t"
+-then
+-  echo "check_pv_field_ PV=$pv, field=$field, actual=$actual, expected=$expected"
+-fi
+-    test $actual = $expected
+-}
+-
+-check_lv_field_()
+-{
+-    local lv=$1;
+-    local field=$2;
+-    local expected=$3;
+-    local actual;
+-
+-    actual=$(lvs --noheadings -o $field $lv)
+-if test "$verbose" = "t"
+-then
+-  echo "check_lv_field_ LV=$lv, field=$field, actual=$actual, expected=$expected"
+-fi
+-  test $actual = $expected
+-}
+-
+-vg_validate_pvlv_counts_()
+-{
+-	local local_vg=$1
+-	local num_pvs=$2
+-	local num_lvs=$3
+-	local num_snaps=$4
+-
+-	check_vg_field_ $local_vg pv_count $num_pvs &&
+-	check_vg_field_ $local_vg lv_count $num_lvs &&
+-	check_vg_field_ $local_vg snap_count $num_snaps
+-}
+-
+-dmsetup_has_dm_devdir_support_()
+-{
+-  # Detect support for the envvar.  If it's supported, the
+-  # following command will fail with the expected diagnostic.
+-  out=$(DM_DEV_DIR=j dmsetup version 2>&1)
+-  test "$?:$out" = "1:Invalid DM_DEV_DIR envvar value." ||
+-  test "$?:$out" = "1:Invalid DM_DEV_DIR environment variable value."
+-}
+-
+-# set up private /dev and /etc
+-init_root_dir_()
+-{
+-  test -n "$test_dir_" \
+-    || fail_ "Internal error: called init_root_dir_ before" \
+-      "defining \$test_dir_"
+-
+-  # Define these two globals.
+-  G_root_=$test_dir_/root
+-  G_dev_=$G_root_/dev
+-
+-  export LVM_SYSTEM_DIR=$G_root_/etc
+-  export DM_DEV_DIR=$G_dev_
+-
+-  # Only the first caller does anything.
+-  mkdir -p $G_root_/etc $G_dev_ $G_dev_/mapper $G_root_/lib
+-  for i in 0 1 2 3 4 5 6 7; do
+-    mknod $G_root_/dev/loop$i b 7 $i
+-  done
+-  for i in $abs_top_builddir/dmeventd/mirror/*.so $abs_top_builddir/dmeventd/snapshot/*.so
+-  do
+-    # NOTE: This check is necessary because the loop above will give us the value
+-    # "$abs_top_builddir/dmeventd/mirror/*.so" if no files ending in 'so' exist.
+-    # This is the best way I could quickly determine to skip over this bogus value.
+-    if [ -f $i ]; then
+-      echo Setting up symlink from $i to $G_root_/lib
+-      ln -s $i $G_root_/lib
+-    fi
+-  done
+-  cat > $G_root_/etc/lvm.conf <<-EOF
+-  devices {
+-    dir = "$G_dev_"
+-    scan = "$G_dev_"
+-    filter = [ "a/loop/", "a/mirror/", "a/mapper/", "r/.*/" ]
+-    cache_dir = "$G_root_/etc"
+-    sysfs_scan = 0
+-  }
+-  log {
+-    verbose = $verboselevel
+-    syslog = 0
+-    indent = 1
+-  }
+-  backup {
+-    backup = 0
+-    archive = 0
+-  }
+-  global {
+-    library_dir = "$G_root_/lib"
+-  }
+-EOF
+-}
+-
+-init_root_dir_
+diff --git a/tests/t-lib-helpers.sh b/tests/t-lib-helpers.sh
+index 4b3c122..6721003 100644
+--- a/tests/t-lib-helpers.sh
++++ b/tests/t-lib-helpers.sh
+@@ -395,6 +395,6 @@ wait_for_dev_to_disappear_()
+ 
+ device_mapper_required_()
+ {
+-  . "$abs_top_srcdir/tests/lvm-utils.sh" \
+-       || fail_ "device mapper setup failed"
++  . "$abs_top_srcdir/tests/t-lvm.sh"
++  lvm_init_root_dir_ || fail_ "device mapper setup failed"
+ }
+diff --git a/tests/t-local.sh b/tests/t-local.sh
+index dde1b8d..b40a5a0 100644
+--- a/tests/t-local.sh
++++ b/tests/t-local.sh
+@@ -100,7 +100,7 @@ scsi_debug_setup_()
+   modprobe scsi_debug "$@" || { rm -f stamp; return 1; }
+   scsi_debug_modprobe_succeeded_=1
+   test "$VERBOSE" = yes \
+-    && warn_ $ME_ modprobe scsi_debug succeeded
++    && echo $ME_ modprobe scsi_debug succeeded 1>&2
+ 
+   # Wait up to 2s (via .1s increments) for the list of devices to change.
+   # Sleeping for a fraction of a second requires GNU sleep, so fall
+diff --git a/tests/t-lvm.sh b/tests/t-lvm.sh
+index b08f934..9cee155 100644
+--- a/tests/t-lvm.sh
++++ b/tests/t-lvm.sh
+@@ -1,7 +1,7 @@
+ # Put lvm-related utilities here.
+ # This file is sourced from test infrastructure.
+ 
+-# Copyright (C) 2007, 2008, 2010 Red Hat, Inc. All rights reserved.
++# Copyright (C) 2007-2012 Red Hat, Inc. All rights reserved.
+ #
+ # This copyrighted material is made available to anyone wishing to use,
+ # modify, copy, or redistribute it subject to the terms and conditions
+@@ -13,15 +13,12 @@
+ 
+ export LVM_SUPPRESS_FD_WARNINGS=1
+ 
+-ME=$(basename "$0")
+-warn() { echo >&2 "$ME: $@"; }
+-
+ unsafe_losetup_()
+ {
+   f=$1
+ 
+   test -n "$G_dev_" \
+-    || error "Internal error: unsafe_losetup_ called before init_root_dir_"
++    || fail_ "Internal error: unsafe_losetup_ called before init_root_dir_"
+ 
+   # Iterate through $G_dev_/loop{,/}{0,1,2,3,4,5,6,7,8,9}
+   for slash in '' /; do
+@@ -40,11 +37,11 @@ loop_setup_()
+ {
+   file=$1
+   dd if=/dev/zero of="$file" bs=1M count=1 seek=1000 > /dev/null 2>&1 \
+-    || { warn "loop_setup_ failed: Unable to create tmp file $file"; return 1; }
++    || { warn_ "loop_setup_ failed: Unable to create tmp file $file"; return 1; }
+ 
+   # NOTE: this requires a new enough version of losetup
+   dev=$(unsafe_losetup_ "$file" 2>/dev/null) \
+-    || { warn "loop_setup_ failed: Unable to create loopback device"; return 1; }
++    || { warn_ "loop_setup_ failed: Unable to create loopback device"; return 1; }
+ 
+   echo "$dev"
+   return 0;
+diff --git a/tests/t9030-align-check.sh b/tests/t9030-align-check.sh
+index b3618a7..f0830f0 100644
+--- a/tests/t9030-align-check.sh
++++ b/tests/t9030-align-check.sh
+@@ -49,7 +49,8 @@ while :; do
+   test $i = 70 && break
+ 
+   # Wait up to 10s for the partition file to disappear.
+-  wait_for_dev_to_disappear_ $p1 10 || { fail=1; warn $p1 failed to disappear; }
++  wait_for_dev_to_disappear_ $p1 10 \
++    || { fail=1; warn_ $ME_ $p1 failed to disappear; }
+ done
+ 
+ Exit $fail
+-- 
+1.8.3.1
+
diff --git a/0031-doc-libparted-disk.c-correct-doxygen-comment-typo.patch b/0031-doc-libparted-disk.c-correct-doxygen-comment-typo.patch
new file mode 100644
index 0000000..ab5bd73
--- /dev/null
+++ b/0031-doc-libparted-disk.c-correct-doxygen-comment-typo.patch
@@ -0,0 +1,27 @@
+From fb1faafaae67c328a34117573a71d1f02ef9f6fe Mon Sep 17 00:00:00 2001
+From: Bob Beers <bob.beers.gmail.com>
+Date: Thu, 4 Oct 2012 06:00:25 +0200
+Subject: [PATCH 31/69] doc: libparted/disk.c: correct doxygen comment typo
+
+* libparted/disk.c: s/PedPartition/PedDisk/
+Copyright-paperwork-exempt: yes
+---
+ libparted/disk.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/libparted/disk.c b/libparted/disk.c
+index c4b1a01..d283674 100644
+--- a/libparted/disk.c
++++ b/libparted/disk.c
+@@ -1968,7 +1968,7 @@ _check_partition (PedDisk* disk, PedPartition* part)
+ }
+ 
+ /**
+- * Adds PedPartition \p part to PedPartition \p disk.
++ * Adds PedPartition \p part to PedDisk \p disk.
+  *
+  * \warning The partition's geometry may be changed, subject to \p constraint.
+  * You could set \p constraint to <tt>ped_constraint_exact(&part->geom)</tt>,
+-- 
+1.8.3.1
+
diff --git a/0032-tests-stop-using-private-dev-directory-for-losetup.patch b/0032-tests-stop-using-private-dev-directory-for-losetup.patch
new file mode 100644
index 0000000..df63995
--- /dev/null
+++ b/0032-tests-stop-using-private-dev-directory-for-losetup.patch
@@ -0,0 +1,47 @@
+From 478e472bf9f1c76b66a35ea75b45110152e5207d Mon Sep 17 00:00:00 2001
+From: Jim Meyering <meyering at redhat.com>
+Date: Sat, 6 Oct 2012 11:11:32 +0200
+Subject: [PATCH 32/69] tests: stop using private "dev" directory for losetup
+
+Something about Fedora 17's losetup changed so that using a private
+dev directory no longer worked.  Now, simply use /dev/ directly.
+* tests/t-lvm.sh: Don't use $G_dev_.  Not needed, and actually
+caused the t6000-dm root-only test to fail on Fedora 17.
+Also, redirect less to stderr: that helps diagnose failure.
+---
+ tests/t-lvm.sh | 7 +++----
+ 1 file changed, 3 insertions(+), 4 deletions(-)
+
+diff --git a/tests/t-lvm.sh b/tests/t-lvm.sh
+index 9cee155..cf1b8b8 100644
+--- a/tests/t-lvm.sh
++++ b/tests/t-lvm.sh
+@@ -17,14 +17,13 @@ unsafe_losetup_()
+ {
+   f=$1
+ 
+-  test -n "$G_dev_" \
+-    || fail_ "Internal error: unsafe_losetup_ called before init_root_dir_"
++  G_dev_=/dev
+ 
+   # Iterate through $G_dev_/loop{,/}{0,1,2,3,4,5,6,7,8,9}
+   for slash in '' /; do
+     for i in 0 1 2 3 4 5 6 7 8 9; do
+       dev=$G_dev_/loop$slash$i
+-      losetup $dev > /dev/null 2>&1 && continue;
++      losetup $dev 1>&2 && continue;
+       losetup "$dev" "$f" > /dev/null && { echo "$dev"; return 0; }
+       break
+     done
+@@ -40,7 +39,7 @@ loop_setup_()
+     || { warn_ "loop_setup_ failed: Unable to create tmp file $file"; return 1; }
+ 
+   # NOTE: this requires a new enough version of losetup
+-  dev=$(unsafe_losetup_ "$file" 2>/dev/null) \
++  dev=$(unsafe_losetup_ "$file") \
+     || { warn_ "loop_setup_ failed: Unable to create loopback device"; return 1; }
+ 
+   echo "$dev"
+-- 
+1.8.3.1
+
diff --git a/0033-maint-fix-an-error-in-the-preceding-commit-log.patch b/0033-maint-fix-an-error-in-the-preceding-commit-log.patch
new file mode 100644
index 0000000..419722a
--- /dev/null
+++ b/0033-maint-fix-an-error-in-the-preceding-commit-log.patch
@@ -0,0 +1,59 @@
+From 718ac7342412aa7f32aaf3e9f379beb84883406e Mon Sep 17 00:00:00 2001
+From: Jim Meyering <meyering at redhat.com>
+Date: Sat, 6 Oct 2012 15:09:56 +0200
+Subject: [PATCH 33/69] maint: fix an error in the preceding commit log
+
+Stefano Lattarini noticed an error in the log for
+commit v3.1-32-g478e472.  Arrange for that error
+to be fixed in the generated ChangeLog file.
+* build-aux/git-log-fix: New file.
+* Makefile.am (gen-ChangeLog): Adjust rule to use it.
+---
+ .gitignore            | 3 ++-
+ Makefile.am           | 1 +
+ build-aux/git-log-fix | 7 +++++++
+ 3 files changed, 10 insertions(+), 1 deletion(-)
+ create mode 100644 build-aux/git-log-fix
+
+diff --git a/.gitignore b/.gitignore
+index 054d9ea..5bb95d4 100644
+--- a/.gitignore
++++ b/.gitignore
+@@ -32,7 +32,8 @@ Makefile.in
+ TAGS
+ aclocal.m4
+ autom4te.cache
+-build-aux
++/build-aux/*
++!/build-aux/git-log-fix
+ config.cache
+ config.h
+ config.hin
+diff --git a/Makefile.am b/Makefile.am
+index 5e52a42..686b61c 100644
+--- a/Makefile.am
++++ b/Makefile.am
+@@ -107,6 +107,7 @@ gen_start_date = 2000-01-01
+ gen-ChangeLog:
+ 	if test -d .git; then						\
+ 	  $(top_srcdir)/build-aux/gitlog-to-changelog			\
++	    --amend=$(srcdir)/build-aux/git-log-fix			\
+ 	    --since=$(gen_start_date) > $(distdir)/cl-t;		\
+ 	  rm -f $(distdir)/ChangeLog;					\
+ 	  mv $(distdir)/cl-t $(distdir)/ChangeLog;			\
+diff --git a/build-aux/git-log-fix b/build-aux/git-log-fix
+new file mode 100644
+index 0000000..e2a68ee
+--- /dev/null
++++ b/build-aux/git-log-fix
+@@ -0,0 +1,7 @@
++# This file is expected to be used via gitlog-to-changelog's --amend=FILE
++# option.  It specifies what changes to make to each given SHA1's commit
++# log and metadata, using Perl-eval'able expressions.
++
++478e472bf9f1c76b66a35ea75b45110152e5207d
++# Fix the log message:
++s,stderr,/dev/null,
+-- 
+1.8.3.1
+
diff --git a/0034-tests-improve-test-for-partitionable-loop-devices.patch b/0034-tests-improve-test-for-partitionable-loop-devices.patch
new file mode 100644
index 0000000..07a8f0c
--- /dev/null
+++ b/0034-tests-improve-test-for-partitionable-loop-devices.patch
@@ -0,0 +1,30 @@
+From 5fc054beb415344a0ce44c19e554937c9158d08e Mon Sep 17 00:00:00 2001
+From: Jim Meyering <meyering at redhat.com>
+Date: Tue, 9 Oct 2012 14:02:15 +0200
+Subject: [PATCH 34/69] tests: improve test for partitionable loop devices
+
+* tests/init.cfg (require_partitionable_loop_device_): Skip
+when cat fails.
+---
+ tests/init.cfg | 5 +++--
+ 1 file changed, 3 insertions(+), 2 deletions(-)
+
+diff --git a/tests/init.cfg b/tests/init.cfg
+index 24b10bc..dc8b2bc 100644
+--- a/tests/init.cfg
++++ b/tests/init.cfg
+@@ -120,8 +120,9 @@ require_erasable_()
+ # At least Fedora 16 (kernel 3.1.6-1.fc16.x86_64) fails this test.
+ require_partitionable_loop_device_()
+ {
+-  case $(cat /sys/devices/virtual/block/$(basename $1)/ext_range) in
+-    0|1) skip_ your system does not support loop partitioning;;
++  local f=/sys/devices/virtual/block/$(basename $1)/ext_range
++  case $(cat "$f") in
++    ''|0|1) skip_ your system is not configured to partition loop devices;;
+   esac
+ }
+ 
+-- 
+1.8.3.1
+
diff --git a/0035-tests-t8001-do-not-rely-on-modprobe-loop.patch b/0035-tests-t8001-do-not-rely-on-modprobe-loop.patch
new file mode 100644
index 0000000..2f51981
--- /dev/null
+++ b/0035-tests-t8001-do-not-rely-on-modprobe-loop.patch
@@ -0,0 +1,58 @@
+From 569e59d08fe2ec5e836536371e0a974a58e83166 Mon Sep 17 00:00:00 2001
+From: Gilles Espinasse <g.esp at free.fr>
+Date: Sun, 7 Oct 2012 15:40:23 +0200
+Subject: [PATCH 35/69] tests: t8001: do not rely on "modprobe loop"
+
+Remove 'rmmod loop' and 'modprobe loop max_part=7' commands.
+The latter command may fail after the first command has run,
+leaving the machine with no loop support.
+
+This happens on my chroot, because:
+- rmmod does not depend on the availability of the loop module,
+- modprobe fails, since the kernel compiled inside the chroot
+  is different from the running kernel.
+
+Instead, rely on t-lvm loop_setup_ to load the loop module, if required.
+---
+ tests/t8001-loop-blkpg.sh | 12 +++---------
+ 1 file changed, 3 insertions(+), 9 deletions(-)
+
+diff --git a/tests/t8001-loop-blkpg.sh b/tests/t8001-loop-blkpg.sh
+index deef18b..9afde4a 100755
+--- a/tests/t8001-loop-blkpg.sh
++++ b/tests/t8001-loop-blkpg.sh
+@@ -20,6 +20,7 @@
+ 
+ require_root_
+ require_udevadm_settle_
++lvm_init_root_dir_
+ 
+ cleanup_fn_()
+ {
+@@ -27,21 +28,14 @@ cleanup_fn_()
+     && { udevadm settle --timeout=3; losetup -d "$loopdev"; }
+ }
+ 
+-# If the loop module is loaded, unload it first
+-if lsmod | grep '^loop[[:space:]]'; then
+-    rmmod loop || fail=1
+-fi
+-
+-# Insert loop module with max_part > 1
+-modprobe loop max_part=7 || fail=1
+-
+ # Create backing file
+ dd if=/dev/zero of=backing_file bs=1M count=4 >/dev/null 2>&1 || fail=1
+ 
+ # Set up loop device on top of backing file
+-loopdev=$(losetup -f --show backing_file)
++loopdev=$(loop_setup_ backing_file)
+ test -z "$loopdev" && fail=1
+ 
++# Skip this test if loop devices are not partitionable.
+ require_partitionable_loop_device_ $loopdev
+ 
+ # Expect this to succeed
+-- 
+1.8.3.1
+
diff --git a/0036-build-do-not-rely-on-automake-s-AM_TESTS_ENVIRONMENT.patch b/0036-build-do-not-rely-on-automake-s-AM_TESTS_ENVIRONMENT.patch
new file mode 100644
index 0000000..b969b1b
--- /dev/null
+++ b/0036-build-do-not-rely-on-automake-s-AM_TESTS_ENVIRONMENT.patch
@@ -0,0 +1,30 @@
+From 319e7cd590ae16460cfecb70715bf41ceec81d1e Mon Sep 17 00:00:00 2001
+From: Jim Meyering <meyering at redhat.com>
+Date: Tue, 9 Oct 2012 15:40:33 +0200
+Subject: [PATCH 36/69] build: do not rely on automake's AM_TESTS_ENVIRONMENT
+
+* tests/Makefile.am (TESTS_ENVIRONMENT): Rename from
+AM_TESTS_ENVIRONMENT, since it is not honored in automake-1.11.3
+after all.  This reverts commit v3.1-14-g2bd66d7.  For now, I'll
+leave the following commit that made bootstrap.conf require 1.11.2.
+Prompted by a report of test failure from Phillip Susi.
+---
+ tests/Makefile.am | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/tests/Makefile.am b/tests/Makefile.am
+index 80d5525..cdc1c4b 100644
+--- a/tests/Makefile.am
++++ b/tests/Makefile.am
+@@ -98,7 +98,7 @@ sep = $(PATH_SEPARATOR)
+ # variables that can perturb tests are unset or set to expected values.
+ # The rest are envvar settings that propagate build-related Makefile
+ # variables to test scripts.
+-AM_TESTS_ENVIRONMENT =				\
++TESTS_ENVIRONMENT =				\
+   tmp__=$$TMPDIR; test -d "$$tmp__" || tmp__=.;	\
+   TMPDIR=$$tmp__; export TMPDIR;		\
+   export					\
+-- 
+1.8.3.1
+
diff --git a/0037-build-.gitignore-ignore-tests-fs-resize.patch b/0037-build-.gitignore-ignore-tests-fs-resize.patch
new file mode 100644
index 0000000..63718ae
--- /dev/null
+++ b/0037-build-.gitignore-ignore-tests-fs-resize.patch
@@ -0,0 +1,24 @@
+From 6a535214131b25b0f90dfff618ef6cf8083bb390 Mon Sep 17 00:00:00 2001
+From: Petr Uzel <petr.uzel at suse.cz>
+Date: Mon, 15 Oct 2012 10:31:50 +0200
+Subject: [PATCH 37/69] build: .gitignore: ignore tests/fs-resize
+
+---
+ .gitignore | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/.gitignore b/.gitignore
+index 5bb95d4..c2ccd4b 100644
+--- a/.gitignore
++++ b/.gitignore
+@@ -76,6 +76,7 @@ stamp-h1
+ tags
+ tests/dup-clobber
+ tests/duplicate
++tests/fs-resize
+ tests/help-version.log
+ tests/old-init.sh
+ tests/print-align
+-- 
+1.8.3.1
+
diff --git a/0038-partprobe-remove-no-update-long-option.patch b/0038-partprobe-remove-no-update-long-option.patch
new file mode 100644
index 0000000..3fc9c4d
--- /dev/null
+++ b/0038-partprobe-remove-no-update-long-option.patch
@@ -0,0 +1,28 @@
+From baa2ebd111d4f8df66254bc94ee79aeaae2a3f3e Mon Sep 17 00:00:00 2001
+From: Petr Uzel <petr.uzel at suse.cz>
+Date: Mon, 15 Oct 2012 10:31:54 +0200
+Subject: [PATCH 38/69] partprobe: remove --no-update long option
+
+It was deprecated and scheduled for removal in 2009.
+* partprobe/partprobe.c (long_options): Remove "no-update" entry.
+---
+ partprobe/partprobe.c | 3 ---
+ 1 file changed, 3 deletions(-)
+
+diff --git a/partprobe/partprobe.c b/partprobe/partprobe.c
+index 8bccc4f..b8dca5e 100644
+--- a/partprobe/partprobe.c
++++ b/partprobe/partprobe.c
+@@ -57,9 +57,6 @@
+ 
+ static struct option const long_options[] =
+   {
+-    /* Note: the --no-update option is deprecated, and deliberately
+-     * not documented.  FIXME: remove --no-update in 2009. */
+-    {"no-update", no_argument, NULL, 'd'},
+     {"dry-run", no_argument, NULL, 'd'},
+     {"summary", no_argument, NULL, 's'},
+     {"help", no_argument, NULL, 'h'},
+-- 
+1.8.3.1
+
diff --git a/0039-doc-update-partprobe-manpage.patch b/0039-doc-update-partprobe-manpage.patch
new file mode 100644
index 0000000..73fdaf0
--- /dev/null
+++ b/0039-doc-update-partprobe-manpage.patch
@@ -0,0 +1,48 @@
+From aec4b5228d1536452b1816731c41d9b37de2a25c Mon Sep 17 00:00:00 2001
+From: Petr Uzel <petr.uzel at suse.cz>
+Date: Mon, 15 Oct 2012 10:31:53 +0200
+Subject: [PATCH 39/69] doc: update partprobe manpage
+
+* doc/C/partprobe.8: Add long options, REPORTING BUGS section
+and adjust DESCRIPTION section because it wasn't quite correct.
+---
+ doc/C/partprobe.8 | 13 +++++++------
+ 1 file changed, 7 insertions(+), 6 deletions(-)
+
+diff --git a/doc/C/partprobe.8 b/doc/C/partprobe.8
+index 6abf97d..48ae5dc 100644
+--- a/doc/C/partprobe.8
++++ b/doc/C/partprobe.8
+@@ -31,22 +31,23 @@ command.
+ .\" \fI<whatever>\fP escape sequences to invode bold face and italics,
+ .\" respectively.
+ \fBpartprobe\fP is a program that informs the operating system kernel of
+-partition table changes, by requesting that the operating system re-read
+-the partition table.
++partition table changes.
+ .SH OPTIONS
+ This program uses short UNIX style options.
+ .TP
+-.B \-d
++.B -d, --dry-run
+ Don't update the kernel.
+ .TP
+-.B \-s
++.B -s, --summary
+ Show a summary of devices and their partitions.
+ .TP
+-.B \-h
++.B -h, --help
+ Show summary of options.
+ .TP
+-.B \-v
++.B -v, --version
+ Show version of program.
++.SH REPORTING BUGS
++Report bugs to <bug-parted at gnu.org>
+ .SH SEE ALSO
+ .BR parted (8).
+ .SH AUTHOR
+-- 
+1.8.3.1
+
diff --git a/0040-partprobe-remove-partitions-when-there-is-no-partiti.patch b/0040-partprobe-remove-partitions-when-there-is-no-partiti.patch
new file mode 100644
index 0000000..b50064d
--- /dev/null
+++ b/0040-partprobe-remove-partitions-when-there-is-no-partiti.patch
@@ -0,0 +1,67 @@
+From 05917368a7867a17d6b2e0df16bf54239aa52107 Mon Sep 17 00:00:00 2001
+From: Petr Uzel <petr.uzel at suse.cz>
+Date: Mon, 15 Oct 2012 10:31:52 +0200
+Subject: [PATCH 40/69] partprobe: remove partitions when there is no partition
+ table
+
+When partprobe detects no partition table on a device, it should
+tell the kernel to drop partitions on that device, but it did not.
+* parted/partprobe.c (process_dev): When ped_disk_probe fails,
+create a dummy (empty) partition table and use that.
+* NEWS (Bug fixes): Mention it.
+Addresses: https://bugzilla.novell.com/783419
+---
+ NEWS                  |  3 +++
+ partprobe/partprobe.c | 21 ++++++++++++++++-----
+ 2 files changed, 19 insertions(+), 5 deletions(-)
+
+diff --git a/NEWS b/NEWS
+index 4c4716d..293f5e4 100644
+--- a/NEWS
++++ b/NEWS
+@@ -17,6 +17,9 @@ GNU parted NEWS                                    -*- outline -*-
+   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.
++
+ ** Changes in behavior
+ 
+   Added new Linux-specific partition GUID type code
+diff --git a/partprobe/partprobe.c b/partprobe/partprobe.c
+index b8dca5e..0919d3f 100644
+--- a/partprobe/partprobe.c
++++ b/partprobe/partprobe.c
+@@ -106,12 +106,23 @@ process_dev (PedDevice* dev)
+ 	PedDisk*	disk;
+ 
+ 	disk_type = ped_disk_probe (dev);
+-	if (!disk_type || !strcmp (disk_type->name, "loop"))
++	if (disk_type && !strcmp (disk_type->name, "loop"))
+ 		return 1;
+-
+-	disk = ped_disk_new (dev);
+-	if (!disk)
+-		goto error;
++	else if (!disk_type) {
++		/* Partition table not found, so create dummy,
++		   empty one */
++		disk_type = ped_disk_type_get("msdos");
++		if (!disk_type)
++			goto error;
++
++		disk = ped_disk_new_fresh (dev, disk_type);
++		if (!disk)
++			goto error_destroy_disk;
++	} else {
++		disk = ped_disk_new (dev);
++		if (!disk)
++			goto error;
++	}
+ 	if (!opt_no_inform) {
+ 		if (!ped_disk_commit_to_os (disk))
+ 			goto error_destroy_disk;
+-- 
+1.8.3.1
+
diff --git a/0041-maint-use-AM_V_GEN-to-cut-down-on-build-noise.patch b/0041-maint-use-AM_V_GEN-to-cut-down-on-build-noise.patch
new file mode 100644
index 0000000..f946286
--- /dev/null
+++ b/0041-maint-use-AM_V_GEN-to-cut-down-on-build-noise.patch
@@ -0,0 +1,65 @@
+From c897203a7f65a05e57c67e6cddee3f70110d0824 Mon Sep 17 00:00:00 2001
+From: Jim Meyering <jim at meyering.net>
+Date: Wed, 17 Oct 2012 16:55:02 +0200
+Subject: [PATCH 41/69] maint: use $(AM_V_GEN) to cut down on build noise
+
+* doc/Makefile.am: Prefix each rule with $(AM_V_GEN).
+* doc/po4a.mk (dist_man_MANS): Likewise.
+---
+ doc/Makefile.am | 2 +-
+ doc/po4a.mk     | 8 ++++----
+ 2 files changed, 5 insertions(+), 5 deletions(-)
+
+diff --git a/doc/Makefile.am b/doc/Makefile.am
+index 08046d1..e773efa 100644
+--- a/doc/Makefile.am
++++ b/doc/Makefile.am
+@@ -12,6 +12,6 @@ EXTRA_DIST = FAT		\
+ 
+ .PHONY: updatepo
+ updatepo:
+-	list='$(SUBDIRS)'; for dir in $$list; do \
++	$(AM_V_GEN)list='$(SUBDIRS)'; for dir in $$list; do \
+ 		$(MAKE) -C "$$dir" updatepo; \
+ 	done
+diff --git a/doc/po4a.mk b/doc/po4a.mk
+index b378121..aaf4024 100644
+--- a/doc/po4a.mk
++++ b/doc/po4a.mk
+@@ -41,13 +41,13 @@ install-man: install-man1 install-man5 install-man8
+ 
+ # For each .po, try to generate the man page
+ all-local:
+-	for po in `ls -1 $(srcdir)/*.$(lang).po 2>/dev/null`; do \
++	$(AM_V_GEN)for po in `ls -1 $(srcdir)/*.$(lang).po 2>/dev/null`; do \
+ 		$(MAKE) $$(basename $${po%.$(lang).po}); \
+ 	done
+ 
+ # Remove the man pages that were generated from a .po
+ clean-local:
+-	for po in `ls -1 $(srcdir)/*.$(lang).po 2>/dev/null`; do \
++	$(AM_V_GEN)for po in `ls -1 $(srcdir)/*.$(lang).po 2>/dev/null`; do \
+ 		rm -f $$(basename $${po%.$(lang).po}); \
+ 	done
+ 
+@@ -55,7 +55,7 @@ clean-local:
+ # Update the PO in srcdir, according to the POT in C.
+ # Based on the gettext po/Makefile.in.in
+ updatepo:
+-	tmpdir=`pwd`; \
++	$(AM_V_GEN)tmpdir=`pwd`; \
+ 	cd $(srcdir); \
+ 	for po in *.$(lang).po; do \
+ 	  case "$$po" in '*'*) continue;; esac; \
+@@ -83,7 +83,7 @@ dist-hook: updatepo
+ 
+ # Build the pages
+ partprobe.8:
+-	for locale in pt_BR ; do \
++	$(AM_V_GEN)for locale in pt_BR ; do \
+ 		po4a-translate -f man -m $(srcdir)/../C/$@ -p $@.$$locale.po -l $@ $(po4a_translate_options) ; \
+ 		if [ -f $(srcdir)/$@.$$locale.po.addendum ]; then \
+ 			po4a-translate -f man -m $(srcdir)/../C/$@ -p $@.$$locale.po -l $@ -a $(srcdir)/$@.$$locale.po.addendum $(po4a_translate_options) ; \
+-- 
+1.8.3.1
+
diff --git a/0042-maint-regenerate-.po-.pot-files.patch b/0042-maint-regenerate-.po-.pot-files.patch
new file mode 100644
index 0000000..988e37d
--- /dev/null
+++ b/0042-maint-regenerate-.po-.pot-files.patch
@@ -0,0 +1,337 @@
+From d9f34625df17b30013e141516c2722b77b4b6eea Mon Sep 17 00:00:00 2001
+From: Jim Meyering <jim at meyering.net>
+Date: Wed, 17 Oct 2012 23:07:55 +0200
+Subject: [PATCH 42/69] maint: regenerate .po, .pot files
+
+---
+ doc/C/po/partprobe.8.pot       | 59 ++++++++++++++++--------------
+ doc/pt_BR/partprobe.8.pt_BR.po | 83 +++++++++++++++++++++++++++---------------
+ 2 files changed, 85 insertions(+), 57 deletions(-)
+
+diff --git a/doc/C/po/partprobe.8.pot b/doc/C/po/partprobe.8.pot
+index 19bd79f..d061382 100644
+--- a/doc/C/po/partprobe.8.pot
++++ b/doc/C/po/partprobe.8.pot
+@@ -6,7 +6,7 @@
+ msgid ""
+ msgstr ""
+ "Project-Id-Version: PACKAGE VERSION\n"
+-"POT-Creation-Date: 2011-02-26 06:06+0100\n"
++"POT-Creation-Date: 2012-10-17 21:43+0300\n"
+ "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+ "Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+ "Language-Team: LANGUAGE <LL at li.org>\n"
+@@ -93,106 +93,111 @@ msgstr ""
+ msgid "This manual page documents briefly the B<partprobe> command."
+ msgstr ""
+ 
+-# type: Plain text
+ #.  TeX users may be more comfortable with the \fB<whatever>\fP and
+ #.  \fI<whatever>\fP escape sequences to invode bold face and italics,
+ #.  respectively.
+ #. type: Plain text
+-#: partprobe.8:36
++#: partprobe.8:35
+ msgid ""
+ "B<partprobe> is a program that informs the operating system kernel of "
+-"partition table changes, by requesting that the operating system re-read the "
+-"partition table."
++"partition table changes."
+ msgstr ""
+ 
+ # type: SH
+ #. type: SH
+-#: partprobe.8:36
++#: partprobe.8:35
+ #, no-wrap
+ msgid "OPTIONS"
+ msgstr ""
+ 
+ # type: Plain text
+ #. type: Plain text
+-#: partprobe.8:38
++#: partprobe.8:37
+ msgid "This program uses short UNIX style options."
+ msgstr ""
+ 
+-# type: TP
+ #. type: TP
+-#: partprobe.8:38
++#: partprobe.8:37
+ #, no-wrap
+-msgid "B<-d>"
++msgid "B<-d, --dry-run>"
+ msgstr ""
+ 
+ # type: Plain text
+ #. type: Plain text
+-#: partprobe.8:41
++#: partprobe.8:40
+ msgid "Don't update the kernel."
+ msgstr ""
+ 
+-# type: TP
+ #. type: TP
+-#: partprobe.8:41
++#: partprobe.8:40
+ #, no-wrap
+-msgid "B<-s>"
++msgid "B<-s, --summary>"
+ msgstr ""
+ 
+ # type: Plain text
+ #. type: Plain text
+-#: partprobe.8:44
++#: partprobe.8:43
+ msgid "Show a summary of devices and their partitions."
+ msgstr ""
+ 
+-# type: TP
+ #. type: TP
+-#: partprobe.8:44
++#: partprobe.8:43
+ #, no-wrap
+-msgid "B<-h>"
++msgid "B<-h, --help>"
+ msgstr ""
+ 
+ # type: Plain text
+ #. type: Plain text
+-#: partprobe.8:47
++#: partprobe.8:46
+ msgid "Show summary of options."
+ msgstr ""
+ 
+-# type: TP
+ #. type: TP
+-#: partprobe.8:47
++#: partprobe.8:46
+ #, no-wrap
+-msgid "B<-v>"
++msgid "B<-v, --version>"
+ msgstr ""
+ 
+ # type: Plain text
+ #. type: Plain text
+-#: partprobe.8:50
++#: partprobe.8:49
+ msgid "Show version of program."
+ msgstr ""
+ 
++#. type: SH
++#: partprobe.8:49
++#, no-wrap
++msgid "REPORTING BUGS"
++msgstr ""
++
++#. type: Plain text
++#: partprobe.8:51
++msgid "Report bugs to E<lt>bug-parted at gnu.orgE<gt>"
++msgstr ""
++
+ # type: SH
+ #. type: SH
+-#: partprobe.8:50
++#: partprobe.8:51
+ #, no-wrap
+ msgid "SEE ALSO"
+ msgstr ""
+ 
+ # type: Plain text
+ #. type: Plain text
+-#: partprobe.8:52
++#: partprobe.8:53
+ msgid "B<parted>(8)."
+ msgstr ""
+ 
+ # type: SH
+ #. type: SH
+-#: partprobe.8:52
++#: partprobe.8:53
+ #, no-wrap
+ msgid "AUTHOR"
+ msgstr ""
+ 
+ # type: Plain text
+ #. type: Plain text
+-#: partprobe.8:54
++#: partprobe.8:55
+ msgid ""
+ "This manual page was written by Timshel Knoll E<lt>timshel at debian.orgE<gt>, "
+ "for the Debian GNU/Linux system (but may be used by others)."
+diff --git a/doc/pt_BR/partprobe.8.pt_BR.po b/doc/pt_BR/partprobe.8.pt_BR.po
+index ffa47d7..4870d09 100644
+--- a/doc/pt_BR/partprobe.8.pt_BR.po
++++ b/doc/pt_BR/partprobe.8.pt_BR.po
+@@ -5,7 +5,7 @@
+ msgid ""
+ msgstr ""
+ "Project-Id-Version: PACKAGE VERSION\n"
+-"POT-Creation-Date: 2011-02-26 06:06+0100\n"
++"POT-Creation-Date: 2012-10-17 21:43+0300\n"
+ "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+ "Last-Translator: Tassia Camoes Araujo <tassia at debian-ba.org>\n"
+ "Language-Team: l10n portuguese <debian-l10n-portuguese at lists.debian.org>\n"
+@@ -100,11 +100,11 @@ msgstr "Esta página de manual documenta brevemente o comando B<partprobe>"
+ #.  \fI<whatever>\fP escape sequences to invode bold face and italics,
+ #.  respectively.
+ #. type: Plain text
+-#: partprobe.8:36
++#: partprobe.8:35
++#, fuzzy
+ msgid ""
+ "B<partprobe> is a program that informs the operating system kernel of "
+-"partition table changes, by requesting that the operating system re-read the "
+-"partition table."
++"partition table changes."
+ msgstr ""
+ "B<partprobe> é uma programa que informa ao kernel do sistema operacional "
+ "sobre mudanças na tabela de partição, requisitando que o sistema operacional "
+@@ -112,95 +112,118 @@ msgstr ""
+ 
+ # type: SH
+ #. type: SH
+-#: partprobe.8:36
++#: partprobe.8:35
+ #, no-wrap
+ msgid "OPTIONS"
+ msgstr "OPÇÕES"
+ 
+ # type: Plain text
+ #. type: Plain text
+-#: partprobe.8:38
++#: partprobe.8:37
+ msgid "This program uses short UNIX style options."
+ msgstr "Este programa usa opções de estilo curtas do UNIX."
+ 
+-# type: TP
+ #. type: TP
+-#: partprobe.8:38
++#: partprobe.8:37
+ #, no-wrap
+-msgid "B<-d>"
+-msgstr "B<-d>"
++msgid "B<-d, --dry-run>"
++msgstr ""
+ 
+ # type: Plain text
+ #. type: Plain text
+-#: partprobe.8:41
++#: partprobe.8:40
+ msgid "Don't update the kernel."
+ msgstr "Não atualiza o kernel."
+ 
+-# type: TP
+ #. type: TP
+-#: partprobe.8:41
++#: partprobe.8:40
+ #, no-wrap
+-msgid "B<-s>"
+-msgstr "B<-s>"
++msgid "B<-s, --summary>"
++msgstr ""
+ 
+ # type: Plain text
+ #. type: Plain text
+-#: partprobe.8:44
++#: partprobe.8:43
+ msgid "Show a summary of devices and their partitions."
+ msgstr "Mostra um sumário dos dispositivos e suas partições."
+ 
+-# type: TP
+ #. type: TP
+-#: partprobe.8:44
++#: partprobe.8:43
+ #, no-wrap
+-msgid "B<-h>"
+-msgstr "B<-h>"
++msgid "B<-h, --help>"
++msgstr ""
+ 
+ # type: Plain text
+ #. type: Plain text
+-#: partprobe.8:47
++#: partprobe.8:46
+ msgid "Show summary of options."
+ msgstr "Mostra sumário de opções."
+ 
+-# type: TP
+ #. type: TP
+-#: partprobe.8:47
++#: partprobe.8:46
+ #, no-wrap
+-msgid "B<-v>"
+-msgstr "B<-v>"
++msgid "B<-v, --version>"
++msgstr ""
+ 
+ # type: Plain text
+ #. type: Plain text
+-#: partprobe.8:50
++#: partprobe.8:49
+ msgid "Show version of program."
+ msgstr "Mostra versão do programa."
+ 
++#. type: SH
++#: partprobe.8:49
++#, no-wrap
++msgid "REPORTING BUGS"
++msgstr ""
++
++#. type: Plain text
++#: partprobe.8:51
++msgid "Report bugs to E<lt>bug-parted at gnu.orgE<gt>"
++msgstr ""
++
+ # type: SH
+ #. type: SH
+-#: partprobe.8:50
++#: partprobe.8:51
+ #, no-wrap
+ msgid "SEE ALSO"
+ msgstr "VEJA TAMBÉM"
+ 
+ # type: Plain text
+ #. type: Plain text
+-#: partprobe.8:52
++#: partprobe.8:53
+ msgid "B<parted>(8)."
+ msgstr "B<parted>(8)."
+ 
+ # type: SH
+ #. type: SH
+-#: partprobe.8:52
++#: partprobe.8:53
+ #, no-wrap
+ msgid "AUTHOR"
+ msgstr "AUTOR"
+ 
+ # type: Plain text
+ #. type: Plain text
+-#: partprobe.8:54
++#: partprobe.8:55
+ msgid ""
+ "This manual page was written by Timshel Knoll E<lt>timshel at debian.orgE<gt>, "
+ "for the Debian GNU/Linux system (but may be used by others)."
+ msgstr ""
+ "Esta página de manual foi escrita por Timshel Knoll E<lt>timshel at debian."
+ "orgE<gt>, para o sistema Debian GNU/Linux (mas pode ser usado por outros)."
++
++# type: TP
++#~ msgid "B<-d>"
++#~ msgstr "B<-d>"
++
++# type: TP
++#~ msgid "B<-s>"
++#~ msgstr "B<-s>"
++
++# type: TP
++#~ msgid "B<-h>"
++#~ msgstr "B<-h>"
++
++# type: TP
++#~ msgid "B<-v>"
++#~ msgstr "B<-v>"
+-- 
+1.8.3.1
+
diff --git a/0043-tests-cleanup-losetup-usage.patch b/0043-tests-cleanup-losetup-usage.patch
new file mode 100644
index 0000000..d31f1d1
--- /dev/null
+++ b/0043-tests-cleanup-losetup-usage.patch
@@ -0,0 +1,83 @@
+From 2ab9f04692e74c8b1daae68f1c22c5723f6c39ef Mon Sep 17 00:00:00 2001
+From: "Brian C. Lane" <bcl at redhat.com>
+Date: Wed, 17 Oct 2012 21:42:12 +0200
+Subject: [PATCH 43/69] tests: cleanup losetup usage
+
+The unsafe_losetup_ function was failing because losetup didn't
+recognize that the 'private' /dev/loopX devices were the same as
+/dev/loopX, it would fail even if one was in use. Switch to using
+losetup --show which is a cleaner solution.
+Also use sparse file for loop_setup to save space.
+* tests/t-lvm.sh (unsafe_losetup_): Remove function.
+(loop_setup_): Use losetup's --show option instead.
+Use dd with /dev/null, not /dev/zero.
+* tests/t6001-psep.sh: Use loop_setup_ rather than losetup --show.
+---
+ tests/t-lvm.sh      | 23 ++---------------------
+ tests/t6001-psep.sh |  8 ++------
+ 2 files changed, 4 insertions(+), 27 deletions(-)
+
+diff --git a/tests/t-lvm.sh b/tests/t-lvm.sh
+index cf1b8b8..001523b 100644
+--- a/tests/t-lvm.sh
++++ b/tests/t-lvm.sh
+@@ -13,33 +13,14 @@
+ 
+ export LVM_SUPPRESS_FD_WARNINGS=1
+ 
+-unsafe_losetup_()
+-{
+-  f=$1
+-
+-  G_dev_=/dev
+-
+-  # Iterate through $G_dev_/loop{,/}{0,1,2,3,4,5,6,7,8,9}
+-  for slash in '' /; do
+-    for i in 0 1 2 3 4 5 6 7 8 9; do
+-      dev=$G_dev_/loop$slash$i
+-      losetup $dev 1>&2 && continue;
+-      losetup "$dev" "$f" > /dev/null && { echo "$dev"; return 0; }
+-      break
+-    done
+-  done
+-
+-  return 1
+-}
+-
+ loop_setup_()
+ {
+   file=$1
+-  dd if=/dev/zero of="$file" bs=1M count=1 seek=1000 > /dev/null 2>&1 \
++  dd if=/dev/null of="$file" bs=1M count=1 seek=1000 > /dev/null 2>&1 \
+     || { warn_ "loop_setup_ failed: Unable to create tmp file $file"; return 1; }
+ 
+   # NOTE: this requires a new enough version of losetup
+-  dev=$(unsafe_losetup_ "$file") \
++  dev=$(losetup --show -f "$file") \
+     || { warn_ "loop_setup_ failed: Unable to create loopback device"; return 1; }
+ 
+   echo "$dev"
+diff --git a/tests/t6001-psep.sh b/tests/t6001-psep.sh
+index 490c6d2..1859ac9 100644
+--- a/tests/t6001-psep.sh
++++ b/tests/t6001-psep.sh
+@@ -44,14 +44,10 @@ cleanup_fn_() {
+ # create a file of size N bytes
+ N=10M
+ 
+-# create the test file
+-f1=$(pwd)/1; dd if=/dev/null of=$f1 bs=1 seek=$N 2> /dev/null || fail=1
+-f2=$(pwd)/2; dd if=/dev/null of=$f2 bs=1 seek=$N 2> /dev/null || fail=1
+-
+-d1=$(loop_setup_ "$f1") \
++f1=$(pwd)/1; d1=$(loop_setup_ "$f1") \
+   || skip_ "is this partition mounted with 'nodev'?"
+ 
+-d2=$(loop_setup_ "$f2") \
++f2=$(pwd)/2 ;d2=$(loop_setup_ "$f2") \
+   || skip_ "is this partition mounted with 'nodev'?"
+ 
+ dmsetup_cmd="0 `blockdev --getsz $d1` linear $d1 0"
+-- 
+1.8.3.1
+
diff --git a/0044-build-default-to-enable-gcc-warnings-in-a-git-tree.patch b/0044-build-default-to-enable-gcc-warnings-in-a-git-tree.patch
new file mode 100644
index 0000000..18535a6
--- /dev/null
+++ b/0044-build-default-to-enable-gcc-warnings-in-a-git-tree.patch
@@ -0,0 +1,34 @@
+From d3a81337ff149294b7cf63c45a61ffa24fa542c5 Mon Sep 17 00:00:00 2001
+From: Eric Blake <eblake at redhat.com>
+Date: Tue, 23 Oct 2012 11:07:29 +0200
+Subject: [PATCH 44/69] build: default to --enable-gcc-warnings in a git tree
+
+Anyone building from cloned sources can be assumed to have a new
+enough environment, such that enabling gcc warnings by default will
+be useful.  Tarballs still default to no warnings, and the default
+can still be overridden with --disable-gcc-warnings.
+* configure.ac (gl_gcc_warnings): Set default based on environment.
+---
+ configure.ac | 6 +++++-
+ 1 file changed, 5 insertions(+), 1 deletion(-)
+
+diff --git a/configure.ac b/configure.ac
+index 832fc20..417f325 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -187,7 +187,11 @@ AC_ARG_ENABLE([gcc-warnings],
+      *)      AC_MSG_ERROR([bad value $enableval for gcc-warnings option]) ;;
+    esac
+    gl_gcc_warnings=$enableval],
+-  [gl_gcc_warnings=no]
++  [if test -d "$srcdir"/.git; then
++     gl_gcc_warnings=yes
++   else
++     gl_gcc_warnings=no
++   fi]
+ )
+ 
+ if test "$gl_gcc_warnings" = yes; then
+-- 
+1.8.3.1
+
diff --git a/0045-libparted-refactor-device-mapper-partition-sync-code.patch b/0045-libparted-refactor-device-mapper-partition-sync-code.patch
new file mode 100644
index 0000000..9787107
--- /dev/null
+++ b/0045-libparted-refactor-device-mapper-partition-sync-code.patch
@@ -0,0 +1,638 @@
+From f0c0d53f998964e187f59de32ac92a2c0e2d5da9 Mon Sep 17 00:00:00 2001
+From: Phillip Susi <psusi at ubuntu.com>
+Date: Sun, 14 Oct 2012 23:59:58 -0400
+Subject: [PATCH 45/69] libparted: refactor device-mapper partition sync code
+
+The device-mapper partition sync code was still using the remove all
+partitions, then add new partitions method.  Refactor to use the same
+algorithm as regular disks: try to remove all, and ignore any that could
+not be removed but have not changed.
+---
+ NEWS                   |   3 +
+ libparted/arch/linux.c | 405 ++++++++++++++++++++++---------------------------
+ tests/Makefile.am      |   1 +
+ tests/t6002-dm-busy.sh |  92 +++++++++++
+ 4 files changed, 274 insertions(+), 227 deletions(-)
+ create mode 100644 tests/t6002-dm-busy.sh
+
+diff --git a/NEWS b/NEWS
+index 293f5e4..a40d69b 100644
+--- a/NEWS
++++ b/NEWS
+@@ -4,6 +4,9 @@ GNU parted NEWS                                    -*- outline -*-
+ 
+ ** Bug Fixes
+ 
++  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.
+diff --git a/libparted/arch/linux.c b/libparted/arch/linux.c
+index e2c4139..70b26a9 100644
+--- a/libparted/arch/linux.c
++++ b/libparted/arch/linux.c
+@@ -285,7 +285,7 @@ struct blkdev_ioctl_param {
+ /* Maximum number of partitions supported by linux. */
+ #define MAX_NUM_PARTS		64
+ 
+-static char* _device_get_part_path (PedDevice* dev, int num);
++static char* _device_get_part_path (PedDevice const *dev, int num);
+ static int _partition_is_mounted_by_path (const char* path);
+ 
+ static int
+@@ -2225,28 +2225,53 @@ zasprintf (const char *format, ...)
+   return r < 0 ? NULL : resultp;
+ }
+ 
+-static char*
+-_device_get_part_path (PedDevice *dev, int num)
++static char *
++dm_canonical_path (PedDevice const *dev)
+ {
+-        size_t path_len = strlen (dev->path);
++        LinuxSpecific const *arch_specific = LINUX_SPECIFIC (dev);
+ 
++        /* Get map name from devicemapper */
++        struct dm_task *task = dm_task_create (DM_DEVICE_INFO);
++        if (!task)
++                goto err;
++        if (!dm_task_set_major_minor (task, arch_specific->major,
++                                      arch_specific->minor, 0))
++                goto err;
++        if (!dm_task_run(task))
++                goto err;
++        char *dev_name = zasprintf ("/dev/mapper/%s", dm_task_get_name (task));
++        if (dev_name == NULL)
++                goto err;
++        dm_task_destroy (task);
++        return dev_name;
++err:
++        return NULL;
++}
++
++static char*
++_device_get_part_path (PedDevice const *dev, int num)
++{
++        char *devpath = (dev->type == PED_DEVICE_DM
++                         ? dm_canonical_path (dev) : dev->path);
++        size_t path_len = strlen (devpath);
+         char *result;
+         /* Check for devfs-style /disc => /partN transformation
+            unconditionally; the system might be using udev with devfs rules,
+            and if not the test is harmless. */
+-        if (5 < path_len && !strcmp (dev->path + path_len - 5, "/disc")) {
++        if (5 < path_len && !strcmp (devpath + path_len - 5, "/disc")) {
+                 /* replace /disc with /part%d */
+                 result = zasprintf ("%.*s/part%d",
+-                                    (int) (path_len - 5), dev->path, num);
++                                    (int) (path_len - 5), devpath, num);
+         } else {
+                 char const *p = (dev->type == PED_DEVICE_DAC960
+                                  || dev->type == PED_DEVICE_CPQARRAY
+                                  || dev->type == PED_DEVICE_ATARAID
+-                                 || isdigit (dev->path[path_len - 1])
++                                 || isdigit (devpath[path_len - 1])
+                                  ? "p" : "");
+-                result = zasprintf ("%s%s%d", dev->path, p, num);
++                result = zasprintf ("%s%s%d", devpath, p, num);
+         }
+-
++        if (dev->type == PED_DEVICE_DM)
++                free (devpath);
+         return result;
+ }
+ 
+@@ -2530,6 +2555,8 @@ static unsigned int
+ _device_get_partition_range(PedDevice const* dev)
+ {
+         int range;
++        if (dev->type == PED_DEVICE_DM)
++                return MAX_NUM_PARTS;
+         bool ok = _sysfs_int_entry_from_dev(dev, "ext_range", &range);
+ 
+         if (!ok)
+@@ -2538,6 +2565,128 @@ _device_get_partition_range(PedDevice const* dev)
+         return range > 1 ? range : 0;
+ }
+ 
++#ifdef ENABLE_DEVICE_MAPPER
++static int
++_dm_remove_partition(PedDisk* disk, int partno)
++{
++        int             rc;
++        char            *part_name = _device_get_part_path (disk->dev, partno);
++
++        int fd = open (part_name, O_RDONLY | O_EXCL);
++        if (fd == -1) {
++                if (errno == ENOENT)
++                        errno = ENXIO; /* nothing to remove, device already doesn't exist */
++                free (part_name);
++                return 0;
++        }
++        close (fd);
++        struct dm_task *task = dm_task_create(DM_DEVICE_REMOVE);
++        if (!task) {
++                free (part_name);
++                return 0;
++        }
++        dm_task_set_name (task, part_name);
++        rc = dm_task_run(task);
++        dm_task_update_nodes();
++        dm_task_destroy(task);
++        free (part_name);
++        if (!rc)
++                return 0;
++
++        return 1;
++}
++
++static bool
++_dm_get_partition_start_and_length(PedPartition const *part,
++                                   unsigned long long *start,
++                                   unsigned long long *length)
++{
++        struct dm_task* task = NULL;
++        int             rc = 0;
++
++        if (!(task = dm_task_create(DM_DEVICE_TABLE)))
++                return 0;
++        char *path = _device_get_part_path (part->disk->dev, part->num);
++        PED_ASSERT(path);
++        dm_task_set_name(task, path);
++        if (!dm_task_run(task))
++                goto err;
++
++        int major, minor;
++        char *params;
++        char *target_type;
++        dm_get_next_target(task, NULL, (uint64_t *)start, (uint64_t *)length, &target_type, &params);
++        if (sscanf (params, "%d:%d %Ld", &major, &minor, start) != 3)
++                goto err;
++        rc = 1;
++err:
++        free (path);
++        dm_task_destroy(task);
++        return rc;
++}
++
++
++static int
++_dm_add_partition (PedDisk* disk, const PedPartition* part)
++{
++        LinuxSpecific*  arch_specific = LINUX_SPECIFIC (disk->dev);
++        char *params = NULL;
++        char *vol_name = NULL;
++
++        /* Get map name from devicemapper */
++        struct dm_task *task = dm_task_create (DM_DEVICE_INFO);
++        if (!task)
++                goto err;
++
++        if (!dm_task_set_major_minor (task, arch_specific->major,
++                                      arch_specific->minor, 0))
++                goto err;
++
++        if (!dm_task_run(task))
++                goto err;
++
++        const char *dev_name = dm_task_get_name (task);
++        size_t name_len = strlen (dev_name);
++        vol_name = zasprintf ("%s%s%d",
++                              dev_name,
++                              isdigit (dev_name[name_len - 1]) ? "p" : "",
++                              part->num);
++        if (vol_name == NULL)
++                goto err;
++
++        /* Caution: dm_task_destroy frees dev_name.  */
++        dm_task_destroy (task);
++        task = NULL;
++        if ( ! (params = zasprintf ("%d:%d %lld", arch_specific->major,
++                                    arch_specific->minor, part->geom.start)))
++                goto err;
++
++        task = dm_task_create (DM_DEVICE_CREATE);
++        if (!task)
++                goto err;
++
++        dm_task_set_name (task, vol_name);
++        dm_task_add_target (task, 0, part->geom.length,
++                "linear", params);
++        if (dm_task_run (task)) {
++                dm_task_update_nodes ();
++                dm_task_destroy (task);
++                free (params);
++                free (vol_name);
++                return 1;
++        } else {
++                _dm_remove_partition (disk, part->num);
++        }
++err:
++        dm_task_update_nodes();
++        if (task)
++                dm_task_destroy (task);
++        free (params);
++        free (vol_name);
++        return 0;
++}
++#endif
++
+ /*
+  * Sync the partition table in two step process:
+  * 1. Remove all of the partitions from the kernel's tables, but do not attempt
+@@ -2558,8 +2707,23 @@ _disk_sync_part_table (PedDisk* disk)
+         PED_ASSERT(disk != NULL);
+         PED_ASSERT(disk->dev != NULL);
+         int lpn;
+-
+         unsigned int part_range = _device_get_partition_range(disk->dev);
++        int (*add_partition)(PedDisk* disk, const PedPartition *part);
++        int (*remove_partition)(PedDisk* disk, int partno);
++        bool (*get_partition_start_and_length)(PedPartition const *part,
++                                               unsigned long long *start,
++                                               unsigned long long *length);
++
++
++        if (disk->dev->type == PED_DEVICE_DM) {
++                add_partition = _dm_add_partition;
++                remove_partition = _dm_remove_partition;
++                get_partition_start_and_length = _dm_get_partition_start_and_length;
++        } else {
++                add_partition = _blkpg_add_partition;
++                remove_partition = _blkpg_remove_partition;
++                get_partition_start_and_length = _kernel_get_partition_start_and_length;
++        }
+ 
+         /* lpn = largest partition number. */
+         if (ped_disk_get_max_supported_partition_count(disk, &lpn))
+@@ -2594,7 +2758,7 @@ _disk_sync_part_table (PedDisk* disk)
+             int j;
+             for (j = 0; j < lpn; j++) {
+                 if (!ok[j]) {
+-                    ok[j] = _blkpg_remove_partition (disk, j + 1);
++                    ok[j] = remove_partition (disk, j + 1);
+                     errnums[j] = errno;
+                     if (!ok[j] && errnums[j] == EBUSY)
+                         busy = true;
+@@ -2611,8 +2775,8 @@ _disk_sync_part_table (PedDisk* disk)
+                                 unsigned long long length;
+                                 unsigned long long start;
+                                 /* get start and length of existing partition */
+-                                if (!_kernel_get_partition_start_and_length(part,
+-                                                                &start, &length))
++                                if (!get_partition_start_and_length(part,
++                                                                    &start, &length))
+                                         goto cleanup;
+                                 if (start == part->geom.start
+ 				    && length == part->geom.length)
+@@ -2625,7 +2789,7 @@ _disk_sync_part_table (PedDisk* disk)
+                         }
+ 
+                         /* add the (possibly modified or new) partition */
+-                        if (!_blkpg_add_partition (disk, part)) {
++                        if (!add_partition (disk, part)) {
+                                 ped_exception_throw (
+                                         PED_EXCEPTION_ERROR,
+                                         PED_EXCEPTION_RETRY_CANCEL,
+@@ -2671,215 +2835,6 @@ _disk_sync_part_table (PedDisk* disk)
+         return ret;
+ }
+ 
+-#ifdef ENABLE_DEVICE_MAPPER
+-static int
+-_dm_remove_map_name(char *name)
+-{
+-        struct dm_task  *task = NULL;
+-        int             rc;
+-
+-        task = dm_task_create(DM_DEVICE_REMOVE);
+-        if (!task)
+-                return 1;
+-
+-        dm_task_set_name (task, name);
+-
+-        rc = dm_task_run(task);
+-        dm_task_update_nodes();
+-        dm_task_destroy(task);
+-        if (!rc)
+-                return 1;
+-
+-        return 0;
+-}
+-
+-static int
+-_dm_is_part (struct dm_info *this, char *name)
+-{
+-        struct dm_task* task = NULL;
+-        struct dm_info* info = alloca(sizeof *info);
+-        struct dm_deps* deps = NULL;
+-        int             rc = 0;
+-        unsigned int    i;
+-
+-        task = dm_task_create(DM_DEVICE_DEPS);
+-        if (!task)
+-                return 0;
+-
+-        dm_task_set_name(task, name);
+-        if (!dm_task_run(task))
+-                goto err;
+-
+-        memset(info, '\0', sizeof *info);
+-        dm_task_get_info(task, info);
+-        if (!info->exists)
+-                goto err;
+-
+-        deps = dm_task_get_deps(task);
+-        if (!deps)
+-                goto err;
+-
+-        for (i = 0; i < deps->count; i++) {
+-                unsigned int ma = major(deps->device[i]),
+-                             mi = minor(deps->device[i]);
+-
+-                if (ma == this->major && mi == this->minor)
+-                        rc = 1;
+-        }
+-
+-err:
+-        dm_task_destroy(task);
+-        return rc;
+-}
+-
+-static int
+-_dm_remove_parts (PedDevice* dev)
+-{
+-        struct dm_task*         task = NULL;
+-        struct dm_info*         info = alloca(sizeof *info);
+-        struct dm_names*        names = NULL;
+-        unsigned int            next = 0;
+-        int                     rc;
+-        LinuxSpecific*          arch_specific = LINUX_SPECIFIC (dev);
+-
+-        task = dm_task_create(DM_DEVICE_LIST);
+-        if (!task)
+-                goto err;
+-
+-        if (!dm_task_set_major_minor (task, arch_specific->major,
+-                                      arch_specific->minor, 0))
+-                goto err;
+-
+-        if (!dm_task_run(task))
+-                goto err;
+-
+-        memset(info, '\0', sizeof *info);
+-        dm_task_get_info(task, info);
+-        if (!info->exists)
+-                goto err;
+-
+-        names = dm_task_get_names(task);
+-        if (!names)
+-                goto err;
+-
+-        rc = 0;
+-        do {
+-                names = (void *) ((char *) names + next);
+-
+-                if (_dm_is_part(info, names->name))
+-                        rc += _dm_remove_map_name(names->name);
+-
+-                next = names->next;
+-        } while (next);
+-
+-        dm_task_update_nodes();
+-        dm_task_destroy(task);
+-        task = NULL;
+-
+-        if (!rc)
+-                return 1;
+-err:
+-        if (task)
+-                dm_task_destroy(task);
+-        ped_exception_throw (PED_EXCEPTION_WARNING, PED_EXCEPTION_IGNORE,
+-                _("parted was unable to re-read the partition "
+-                  "table on %s (%s).  This means Linux won't know "
+-                  "anything about the modifications you made. "),
+-                dev->path, strerror (errno));
+-        return 0;
+-}
+-
+-static int
+-_dm_add_partition (PedDisk* disk, PedPartition* part)
+-{
+-        char*           vol_name = NULL;
+-        const char*     dev_name = NULL;
+-        char*           params = NULL;
+-        LinuxSpecific*  arch_specific = LINUX_SPECIFIC (disk->dev);
+-
+-        /* Get map name from devicemapper */
+-        struct dm_task *task = dm_task_create (DM_DEVICE_INFO);
+-        if (!task)
+-                goto err;
+-
+-        if (!dm_task_set_major_minor (task, arch_specific->major,
+-                                      arch_specific->minor, 0))
+-                goto err;
+-
+-        if (!dm_task_run(task))
+-                goto err;
+-
+-        dev_name = dm_task_get_name (task);
+-
+-        if (isdigit (dev_name[strlen (dev_name) - 1])) {
+-                if ( ! (vol_name = zasprintf ("%sp%d", dev_name, part->num)))
+-                        goto err;
+-        } else if ( ! (vol_name = zasprintf ("%s%d", dev_name, part->num)))
+-                goto err;
+-
+-        /* Caution: dm_task_destroy frees dev_name.  */
+-        dm_task_destroy (task);
+-        task = NULL;
+-
+-        if ( ! (params = zasprintf ("%d:%d %lld", arch_specific->major,
+-                                    arch_specific->minor, part->geom.start)))
+-                goto err;
+-
+-        task = dm_task_create (DM_DEVICE_CREATE);
+-        if (!task)
+-                goto err;
+-
+-        dm_task_set_name (task, vol_name);
+-        dm_task_add_target (task, 0, part->geom.length,
+-                "linear", params);
+-        if (dm_task_run (task)) {
+-                //printf("0 %ld linear %s\n", part->geom.length, params);
+-                dm_task_update_nodes();
+-                dm_task_destroy(task);
+-                free(params);
+-                free(vol_name);
+-                return 1;
+-        } else {
+-                _dm_remove_map_name(vol_name);
+-        }
+-err:
+-        dm_task_update_nodes();
+-        if (task)
+-                dm_task_destroy (task);
+-        free (params);
+-        free (vol_name);
+-        return 0;
+-}
+-
+-static int
+-_dm_reread_part_table (PedDisk* disk)
+-{
+-        int largest_partnum = ped_disk_get_last_partition_num (disk);
+-        if (largest_partnum <= 0)
+-          return 1;
+-
+-        int     rc = 1;
+-        int     last = PED_MIN (largest_partnum, 16);
+-        int     i;
+-
+-        sync();
+-        if (!_dm_remove_parts(disk->dev))
+-                rc = 0;
+-
+-        for (i = 1; i <= last; i++) {
+-                PedPartition*      part;
+-
+-                part = ped_disk_get_partition (disk, i);
+-                if (!part)
+-                        continue;
+-
+-                if (!_dm_add_partition (disk, part))
+-                        rc = 0;
+-        }
+-        return rc;
+-}
+-#endif
+-
+ static int
+ _have_blkpg ()
+ {
+@@ -2897,10 +2852,6 @@ _have_blkpg ()
+ static int
+ linux_disk_commit (PedDisk* disk)
+ {
+-#ifdef ENABLE_DEVICE_MAPPER
+-        if (disk->dev->type == PED_DEVICE_DM)
+-                return _dm_reread_part_table (disk);
+-#endif
+         if (disk->dev->type != PED_DEVICE_FILE) {
+ 
+ 		/* We now require BLKPG support.  If this assertion fails,
+diff --git a/tests/Makefile.am b/tests/Makefile.am
+index cdc1c4b..4649c0a 100644
+--- a/tests/Makefile.am
++++ b/tests/Makefile.am
+@@ -58,6 +58,7 @@ TESTS = \
+   t5000-tags.sh \
+   t6000-dm.sh \
+   t6001-psep.sh \
++  t6002-dm-busy.sh \
+   t6100-mdraid-partitions.sh \
+   t7000-scripting.sh \
+   t8000-loop.sh \
+diff --git a/tests/t6002-dm-busy.sh b/tests/t6002-dm-busy.sh
+new file mode 100644
+index 0000000..9807b40
+--- /dev/null
++++ b/tests/t6002-dm-busy.sh
+@@ -0,0 +1,92 @@
++#!/bin/sh
++# ensure that parted can alter a partition on a dmraid disk
++# while another one is mounted
++
++# Copyright (C) 2008-2012 Free Software Foundation, Inc.
++
++# This program is free software; you can redistribute it and/or modify
++# it under the terms of the GNU General Public License as published by
++# the Free Software Foundation; either version 3 of the License, or
++# (at your option) any later version.
++
++# This program is distributed in the hope that it will be useful,
++# but WITHOUT ANY WARRANTY; without even the implied warranty of
++# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
++# GNU General Public License for more details.
++
++# You should have received a copy of the GNU General Public License
++# along with this program.  If not, see <http://www.gnu.org/licenses/>.
++
++. "${srcdir=.}/init.sh"; path_prepend_ ../parted
++
++require_root_
++
++# We could make this work for arbitrary sector size, but I'm lazy.
++require_512_byte_sector_size_
++
++test "x$ENABLE_DEVICE_MAPPER" = xyes \
++  || skip_ "no device-mapper support"
++
++# Device maps names - should be random to not conflict with existing ones on
++# the system
++linear_=plinear-$$
++
++d1=
++f1=
++dev=
++cleanup_fn_() {
++    umount "${dev}p2" > /dev/null 2>&1
++    dmsetup remove ${linear_}p1
++    dmsetup remove ${linear_}p2
++    dmsetup remove $linear_
++    test -n "$d1" && losetup -d "$d1"
++    rm -f "$f1"
++}
++
++f1=$(pwd)/1; d1=$(loop_setup_ "$f1") \
++  || fail=1
++
++# setup: create a mapping
++n=204800
++echo "0 $n linear $d1 0" | dmsetup create $linear_ || fail=1
++dev="/dev/mapper/$linear_"
++
++# Create msdos partition table
++parted -s $dev mklabel msdos > out 2>&1 || fail=1
++compare /dev/null out || fail=1
++
++parted -s $dev -a none mkpart primary fat32 1s 1000s > out 2>&1 || fail=1
++compare /dev/null out || fail=1
++
++parted -s $dev -a none mkpart primary fat32 1001s 200000s > out 2>&1 || fail=1
++compare /dev/null out || fail=1
++
++# wait for new partition device to appear
++wait_for_dev_to_appear_ ${dev}p2 || fail_ ${dev}p2 did not appear
++
++mkfs.vfat -F 32 ${dev}p2 || fail_ mkfs.vfat failed
++
++mount_point=$(pwd)/mnt
++
++mkdir $mount_point || fail=1
++mount "${dev}p2" "$mount_point" || fail=1
++
++# Removal of unmounted partition must succeed.
++parted -s "$dev" rm 1 > /dev/null 2>&1 || fail=1
++
++# Removal of mounted partition must fail.
++parted -s "$dev" rm 2 > /dev/null 2>&1 && fail=1
++
++parted -m -s "$dev" u s print > out 2>&1 || fail=1
++sed "s,^$dev,DEV," out > k; mv k out
++
++# Create expected output file.
++cat <<EOF >> exp || fail=1
++BYT;
++DEV:${n}s:dm:512:512:msdos:Linux device-mapper (linear):;
++2:1001s:200000s:199000s:fat32::lba;
++EOF
++
++compare exp out || fail=1
++
++Exit $fail
+-- 
+1.8.3.1
+
diff --git a/0046-libparted-remove-extraneous-blkpg-add-partition-ped-.patch b/0046-libparted-remove-extraneous-blkpg-add-partition-ped-.patch
new file mode 100644
index 0000000..48fa221
--- /dev/null
+++ b/0046-libparted-remove-extraneous-blkpg-add-partition-ped-.patch
@@ -0,0 +1,71 @@
+From f87ff28d1aa8eff085e737ab22d031b0519e5510 Mon Sep 17 00:00:00 2001
+From: Phillip Susi <psusi at ubuntu.com>
+Date: Sun, 14 Oct 2012 23:59:59 -0400
+Subject: [PATCH 46/69] libparted: remove extraneous blkpg add partition ped
+ exception
+
+_blkpg_add_partition was throwing an exception if it failed to add the
+new partition, in addition to _disk_sync_part_table throwing one, and
+then bailing out.  Instead of bailing out, just log the error for
+reporting later and continue.
+---
+ libparted/arch/linux.c                          | 21 +++------------------
+ tests/t2310-dos-extended-2-sector-min-offset.sh |  3 +--
+ 2 files changed, 4 insertions(+), 20 deletions(-)
+
+diff --git a/libparted/arch/linux.c b/libparted/arch/linux.c
+index 70b26a9..5721d4b 100644
+--- a/libparted/arch/linux.c
++++ b/libparted/arch/linux.c
+@@ -2407,18 +2407,7 @@ _blkpg_add_partition (PedDisk* disk, const PedPartition *part)
+ 
+         if (!_blkpg_part_command (disk->dev, &linux_part,
+                                   BLKPG_ADD_PARTITION)) {
+-                return ped_exception_throw (
+-                        PED_EXCEPTION_ERROR,
+-                        PED_EXCEPTION_IGNORE_CANCEL,
+-                        _("Error informing the kernel about modifications to "
+-                          "partition %s -- %s.  This means Linux won't know "
+-                          "about any changes you made to %s until you reboot "
+-                          "-- so you shouldn't mount it or use it in any way "
+-                          "before rebooting."),
+-                        linux_part.devname,
+-                        strerror (errno),
+-                        linux_part.devname)
+-                                == PED_EXCEPTION_IGNORE;
++                return 0;
+         }
+ 
+         return 1;
+@@ -2790,12 +2779,8 @@ _disk_sync_part_table (PedDisk* disk)
+ 
+                         /* add the (possibly modified or new) partition */
+                         if (!add_partition (disk, part)) {
+-                                ped_exception_throw (
+-                                        PED_EXCEPTION_ERROR,
+-                                        PED_EXCEPTION_RETRY_CANCEL,
+-                                        _("Failed to add partition %d (%s)"),
+-                                        i, strerror (errno));
+-                                goto cleanup;
++                                ok[i - 1] = 0;
++                                errnums[i - 1] = errno;
+                         }
+                 }
+         }
+diff --git a/tests/t2310-dos-extended-2-sector-min-offset.sh b/tests/t2310-dos-extended-2-sector-min-offset.sh
+index 89453ae..17c777c 100644
+--- a/tests/t2310-dos-extended-2-sector-min-offset.sh
++++ b/tests/t2310-dos-extended-2-sector-min-offset.sh
+@@ -39,8 +39,7 @@ $scsi_dev:2048s:scsi:512:512:msdos:Linux scsi_debug:;
+ EOF
+ 
+ cat <<EOF > err.exp || framework_failure
+-Error: Error informing the kernel about modifications to partition $p5 -- Device or resource busy.  This means Linux won't know about any changes you made to $p5 until you reboot -- so you shouldn't mount it or use it in any way before rebooting.
+-Error: Failed to add partition 5 (Device or resource busy)
++Error: Partition(s) 5 on $scsi_dev have been written, but we have been unable to inform the kernel of the change, probably because it/they are in use.  As a result, the old partition(s) will remain in use.  You should reboot now before making further changes.
+ EOF
+ 
+ # Create a DOS label with an extended partition starting at sector 64.
+-- 
+1.8.3.1
+
diff --git a/0047-libparted-don-t-probe-every-dm-device-in-probe_all.patch b/0047-libparted-don-t-probe-every-dm-device-in-probe_all.patch
new file mode 100644
index 0000000..0943fda
--- /dev/null
+++ b/0047-libparted-don-t-probe-every-dm-device-in-probe_all.patch
@@ -0,0 +1,225 @@
+From 3cb820632a13a91e0c2e579aedbe8e86b4f0040e Mon Sep 17 00:00:00 2001
+From: Phillip Susi <psusi at ubuntu.com>
+Date: Fri, 19 Oct 2012 17:32:00 +0200
+Subject: [PATCH 47/69] libparted: don't probe every dm device in probe_all
+
+We were probing every dm device.  Only probe dmraid whole disk
+(non-partition) devices instead.  This removes the clutter of
+LVM logical volumes, and dmraid partitions from the list, which
+usually do not make sense to partition.
+
+* NEWS (Changes in behavior): Mention it.
+* libparted/arch/linux.c (_is_dmraid_device): New function.
+(_dm_is_part): Likewise.
+(_probe_dm_devices): Use the latter.
+* tests/t6003-dm-hide.sh: New test.
+* tests/Makefile.am (TESTS): Add it.
+---
+ NEWS                   |  3 ++
+ libparted/arch/linux.c | 81 +++++++++++++++++++++++++++++++++++++++++++++++++-
+ tests/Makefile.am      |  1 +
+ tests/t6003-dm-hide.sh | 60 +++++++++++++++++++++++++++++++++++++
+ 4 files changed, 144 insertions(+), 1 deletion(-)
+ create mode 100644 tests/t6003-dm-hide.sh
+
+diff --git a/NEWS b/NEWS
+index a40d69b..89541fd 100644
+--- a/NEWS
++++ b/NEWS
+@@ -25,6 +25,9 @@ GNU parted NEWS                                    -*- outline -*-
+ 
+ ** Changes in behavior
+ 
++  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
+diff --git a/libparted/arch/linux.c b/libparted/arch/linux.c
+index 5721d4b..083591f 100644
+--- a/libparted/arch/linux.c
++++ b/libparted/arch/linux.c
+@@ -65,6 +65,8 @@
+ # define _GL_ATTRIBUTE_FORMAT(spec) /* empty */
+ #endif
+ 
++#define STRPREFIX(a, b) (strncmp (a, b, strlen (b)) == 0)
++
+ #define KERNEL_VERSION(a,b,c) (((a) << 16) + ((b) << 8) + (c))
+ 
+ #ifndef __NR__llseek
+@@ -478,6 +480,82 @@ bad:
+         return r;
+ }
+ 
++/* Return nonzero if device-mapper device, DEVPATH, is part of a dmraid
++   array.  Use the heuristic of checking for the string "DMRAID-" at the
++   start of its UUID.  */
++static int
++_is_dmraid_device (const char *devpath)
++{
++        int rc = 0;
++
++        char const *dm_name = strrchr (devpath, '/');
++        char const *dm_basename = dm_name && *(++dm_name) ? dm_name : devpath;
++        struct dm_task *task = dm_task_create (DM_DEVICE_DEPS);
++        if (!task)
++                return 0;
++
++        dm_task_set_name (task, dm_basename);
++        if (!dm_task_run (task))
++                goto err;
++
++        const char *dmraid_uuid = dm_task_get_uuid (task);
++        if (STRPREFIX (dmraid_uuid, "DMRAID-"))
++                rc = 1;
++
++err:
++        dm_task_destroy (task);
++        return rc;
++}
++
++/* We consider a dm device that is a linear mapping with a  *
++ * single target that also is a dm device to be a partition */
++
++static int
++_dm_is_part (const char *path)
++{
++        int rc = 0;
++        struct dm_task *task = dm_task_create (DM_DEVICE_DEPS);
++        if (!task)
++                return 0;
++
++        dm_task_set_name(task, path);
++        if (!dm_task_run(task))
++                goto err;
++
++        struct dm_info *info = alloca (sizeof *info);
++        memset(info, '\0', sizeof *info);
++        dm_task_get_info (task, info);
++        if (!info->exists)
++                goto err;
++
++        struct dm_deps *deps = dm_task_get_deps (task);
++        if (!deps)
++                goto err;
++
++        if (deps->count != 1)
++                goto err;
++        if (!_is_dm_major (major (deps->device[0])))
++                goto err;
++        dm_task_destroy (task);
++        if (!(task = dm_task_create (DM_DEVICE_TABLE)))
++                return 0;
++        dm_task_set_name (task, path);
++        if (!dm_task_run (task))
++                goto err;
++
++        char *target_type = NULL;
++        char *params = NULL;
++        uint64_t start, length;
++
++        dm_get_next_target (task, NULL, &start, &length, &target_type, &params);
++        if (strcmp (target_type, "linear"))
++                goto err;
++        rc = 1;
++
++err:
++        dm_task_destroy(task);
++        return rc;
++}
+ 
+ static int
+ _probe_dm_devices ()
+@@ -504,7 +582,8 @@ _probe_dm_devices ()
+                if (stat (buf, &st) != 0)
+                        continue;
+ 
+-               if (_is_dm_major(major(st.st_rdev)))
++               if (_is_dm_major(major(st.st_rdev)) && _is_dmraid_device (buf)
++                   && !_dm_is_part(buf))
+                        _ped_device_probe (buf);
+        }
+        closedir (mapper_dir);
+diff --git a/tests/Makefile.am b/tests/Makefile.am
+index 4649c0a..4ec08da 100644
+--- a/tests/Makefile.am
++++ b/tests/Makefile.am
+@@ -59,6 +59,7 @@ TESTS = \
+   t6000-dm.sh \
+   t6001-psep.sh \
+   t6002-dm-busy.sh \
++  t6003-dm-hide.sh \
+   t6100-mdraid-partitions.sh \
+   t7000-scripting.sh \
+   t8000-loop.sh \
+diff --git a/tests/t6003-dm-hide.sh b/tests/t6003-dm-hide.sh
+new file mode 100644
+index 0000000..3cfdc43
+--- /dev/null
++++ b/tests/t6003-dm-hide.sh
+@@ -0,0 +1,60 @@
++#!/bin/sh
++# ensure that parted -l only shows dmraid device-mapper devices
++
++# Copyright (C) 2008-2012 Free Software Foundation, Inc.
++
++# This program is free software; you can redistribute it and/or modify
++# it under the terms of the GNU General Public License as published by
++# the Free Software Foundation; either version 3 of the License, or
++# (at your option) any later version.
++
++# This program is distributed in the hope that it will be useful,
++# but WITHOUT ANY WARRANTY; without even the implied warranty of
++# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
++# GNU General Public License for more details.
++
++# You should have received a copy of the GNU General Public License
++# along with this program.  If not, see <http://www.gnu.org/licenses/>.
++
++. "${srcdir=.}/init.sh"; path_prepend_ ../parted
++
++require_root_
++lvm_init_root_dir_
++
++test "x$ENABLE_DEVICE_MAPPER" = xyes \
++  || skip_ "no device-mapper support"
++
++# Device maps names - should be random to not conflict with existing ones on
++# the system
++linear_=plinear-$$
++
++d1=
++f1=
++dev=
++cleanup_fn_() {
++    dmsetup remove $linear_
++    test -n "$d1" && losetup -d "$d1"
++    rm -f "$f1"
++}
++
++f1=$(pwd)/1; d1=$(loop_setup_ "$f1") \
++  || fail=1
++
++# setup: create a mapping
++echo "0 2048 linear $d1 0" | dmsetup create $linear_ || fail=1
++dev="$DM_DEV_DIR/mapper/$linear_"
++
++# device should not show up
++
++parted -l >out 2>&1
++! grep $linear_ out || fail=1
++
++dmsetup remove $linear_
++echo "0 2048 linear $d1 0" | dmsetup create $linear_ -u "DMRAID-fake" || fail=1
++
++# device should now show up
++
++parted -l >out 2>&1
++grep $linear_ out || fail=1
++
++Exit $fail
+-- 
+1.8.3.1
+
diff --git a/0048-tests-make-t6003-dm-hide-work-reliably-on-F17.patch b/0048-tests-make-t6003-dm-hide-work-reliably-on-F17.patch
new file mode 100644
index 0000000..64c7cd0
--- /dev/null
+++ b/0048-tests-make-t6003-dm-hide-work-reliably-on-F17.patch
@@ -0,0 +1,71 @@
+From 2224076fef1a54391cf090149ba9308ae90067eb Mon Sep 17 00:00:00 2001
+From: Jim Meyering <jim at meyering.net>
+Date: Fri, 19 Oct 2012 18:09:19 +0200
+Subject: [PATCH 48/69] tests: make t6003-dm-hide work reliably on F17
+
+* tests/t6003-dm-hide.sh: Adjust to work reliably on Fedora 17.
+---
+ tests/t6003-dm-hide.sh | 27 +++++++++++++++++----------
+ 1 file changed, 17 insertions(+), 10 deletions(-)
+
+diff --git a/tests/t6003-dm-hide.sh b/tests/t6003-dm-hide.sh
+index 3cfdc43..59baae9 100644
+--- a/tests/t6003-dm-hide.sh
++++ b/tests/t6003-dm-hide.sh
+@@ -19,7 +19,6 @@
+ . "${srcdir=.}/init.sh"; path_prepend_ ../parted
+ 
+ require_root_
+-lvm_init_root_dir_
+ 
+ test "x$ENABLE_DEVICE_MAPPER" = xyes \
+   || skip_ "no device-mapper support"
+@@ -32,7 +31,10 @@ d1=
+ f1=
+ dev=
+ cleanup_fn_() {
+-    dmsetup remove $linear_
++    # Insist.  Sometimes the initial removal fails (race?).
++    # When that happens, a second removal appears to be sufficient.
++    dmsetup remove $linear_ || dmsetup remove $linear_
++
+     test -n "$d1" && losetup -d "$d1"
+     rm -f "$f1"
+ }
+@@ -41,20 +43,25 @@ f1=$(pwd)/1; d1=$(loop_setup_ "$f1") \
+   || fail=1
+ 
+ # setup: create a mapping
+-echo "0 2048 linear $d1 0" | dmsetup create $linear_ || fail=1
+-dev="$DM_DEV_DIR/mapper/$linear_"
+-
+-# device should not show up
++echo 0 2048 linear $d1 0 | dmsetup create $linear_ || fail=1
++dev=/dev/mapper/$linear_
+ 
++# No "DMRAID-" UUID prefix, hence the device should not show up.
+ parted -l >out 2>&1
+-! grep $linear_ out || fail=1
++grep "^Disk $dev:" out && fail=1
+ 
++# Unless we perform both dmsetup-remove *and* losetup -d,
++# the following dmsetup-create would fail with EBUSY.
+ dmsetup remove $linear_
+-echo "0 2048 linear $d1 0" | dmsetup create $linear_ -u "DMRAID-fake" || fail=1
++losetup -d "$d1" || fail=1
++# Reopen (or get new) loop device.
++d1=$(loop_setup_ "$f1") || fail=1
+ 
+-# device should now show up
++# This time, use a fake UUID.
++echo 0 2048 linear $d1 0 | dmsetup create $linear_ -u "DMRAID-fake-$$" || fail=1
+ 
++# Thus, the device should now show up.
+ parted -l >out 2>&1
+-grep $linear_ out || fail=1
++grep "^Disk $dev:" out || fail=1
+ 
+ Exit $fail
+-- 
+1.8.3.1
+
diff --git a/0049-doc-1MiB-alignment-is-not-enough-for-cheap-flash-dri.patch b/0049-doc-1MiB-alignment-is-not-enough-for-cheap-flash-dri.patch
new file mode 100644
index 0000000..8bead39
--- /dev/null
+++ b/0049-doc-1MiB-alignment-is-not-enough-for-cheap-flash-dri.patch
@@ -0,0 +1,77 @@
+From 21be64fc6ef60a1e9dc7bc352131be58cc59d61d Mon Sep 17 00:00:00 2001
+From: Jim Meyering <jim at meyering.net>
+Date: Wed, 2 Jan 2013 12:52:14 +0100
+Subject: [PATCH 49/69] doc: 1MiB-alignment is not enough for cheap flash
+ drives
+
+* doc/parted.texi: Add an example that aligns to 4GiB, and
+reference Arnd Bergman's LWN article.
+---
+ doc/parted.texi | 39 ++++++++++++++++++++++++++++++++++-----
+ 1 file changed, 34 insertions(+), 5 deletions(-)
+
+diff --git a/doc/parted.texi b/doc/parted.texi
+index b8db19d..008c383 100644
+--- a/doc/parted.texi
++++ b/doc/parted.texi
+@@ -14,7 +14,7 @@ and manipulating partition tables.
+ @ifnottex @c texi2pdf don't understand copying and insertcopying ???
+ @c modifications must also be done in the titlepage
+ @copying
+-Copyright @copyright{} 1999-2012 Free Software Foundation, Inc.
++Copyright @copyright{} 1999-2013 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
+@@ -577,15 +577,44 @@ partition table.
+ @item ufs
+ @end itemize
+ 
+-Example:
++For example, the following creates a logical partition that will contain
++an ext2 file system.  The partition will start at the beginning of the disk,
++and end 692.1 megabytes into the disk.
+ 
+ @example
+ (parted) @kbd{mkpart logical 0.0 692.1}
+ @end example
+ 
+-Create a logical partition that will contain an ext2 file system.  The
+-partition will start at the beginning of the disk, and end 692.1
+-megabytes into the disk.
++Now, we will show how to partition a low-end flash
++device (``low-end'', as of 2011/2012).
++For such devices, you should use 4MiB-aligned partitions at footnote{
++Cheap flash drives will be with us for a long time to
++come, and, for them, 1MiB alignment is not enough.
++Use at least 4MiB-aligned partitions.
++For details, see Arnd Bergman's article,
++ at uref{http://http://lwn.net/Articles/428584/} and its many comments.}.
++This command creates a tiny place-holder partition at the beginning, and
++then uses all remaining space to create the partition you'll actually use:
++
++ at example
++$ @kbd{parted -s /dev/sdX -- mklabel msdos \}
++ at kbd{    mkpart primary fat32 64s 4MiB \}
++ at kbd{    mkpart primary fat32 4MiB -1s}
++ at end example
++
++Note the use of @samp{--}, to prevent the following @samp{-1s} last-sector
++indicator from being interpreted as an invalid command-line option.
++The above creates two empty partitions.  The first is unaligned and tiny,
++with length less than 4MiB.
++The second partition starts precisely at the 4MiB mark
++and extends to the end of the device.
++
++The next step is typically to create a file system in the second partition:
++
++ at example
++$ @kbd{mkfs.vfat /dev/sdX2}
++ at end example
++
+ 
+ @end deffn
+ 
+-- 
+1.8.3.1
+
diff --git a/0050-build-update-gnulib-submodule-to-latest.patch b/0050-build-update-gnulib-submodule-to-latest.patch
new file mode 100644
index 0000000..5e60321
--- /dev/null
+++ b/0050-build-update-gnulib-submodule-to-latest.patch
@@ -0,0 +1,19 @@
+From 960eda93fc53ea18e8e98109a00661ac5e8a88f8 Mon Sep 17 00:00:00 2001
+From: Jim Meyering <jim at meyering.net>
+Date: Sun, 6 Jan 2013 11:06:23 +0100
+Subject: [PATCH 50/69] build: update gnulib submodule to latest
+
+---
+ gnulib | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/gnulib b/gnulib
+index e1abd50..164ebfe 160000
+--- a/gnulib
++++ b/gnulib
+@@ -1 +1 @@
+-Subproject commit e1abd50b01d6bd61bd0c996ca17378cd569c0aa1
++Subproject commit 164ebfe612d8460c15d7acf1927faef6943571b6
+-- 
+1.8.3.1
+
diff --git a/0051-maint-update-all-copyright-year-number-ranges.patch b/0051-maint-update-all-copyright-year-number-ranges.patch
new file mode 100644
index 0000000..5e36a34
--- /dev/null
+++ b/0051-maint-update-all-copyright-year-number-ranges.patch
@@ -0,0 +1,2870 @@
+From ab9aecfc64b5a7f6ad70ea93bf76c007614220fd Mon Sep 17 00:00:00 2001
+From: Jim Meyering <jim at meyering.net>
+Date: Sun, 6 Jan 2013 11:08:39 +0100
+Subject: [PATCH 51/69] maint: update all copyright year number ranges
+
+Run "make update-copyright".
+---
+ HACKING                                                     | 2 +-
+ NEWS                                                        | 2 +-
+ README-hacking                                              | 2 +-
+ bootstrap                                                   | 2 +-
+ bootstrap.conf                                              | 2 +-
+ cfg.mk                                                      | 2 +-
+ configure.ac                                                | 2 +-
+ debug/test/HOWTO                                            | 2 +-
+ doc/gendocs.sh                                              | 2 +-
+ doc/parted-pt_BR.texi                                       | 2 +-
+ include/parted/constraint.in.h                              | 2 +-
+ include/parted/crc32.in.h                                   | 2 +-
+ include/parted/debug.in.h                                   | 2 +-
+ include/parted/device.in.h                                  | 2 +-
+ include/parted/disk.in.h                                    | 2 +-
+ include/parted/endian.in.h                                  | 2 +-
+ include/parted/exception.in.h                               | 2 +-
+ include/parted/filesys.in.h                                 | 2 +-
+ include/parted/geom.in.h                                    | 2 +-
+ include/parted/natmath.in.h                                 | 2 +-
+ include/parted/parted.in.h                                  | 2 +-
+ include/parted/timer.in.h                                   | 2 +-
+ include/parted/unit.in.h                                    | 2 +-
+ libparted/Makefile.am                                       | 2 +-
+ libparted/arch/beos.c                                       | 2 +-
+ libparted/arch/gnu.c                                        | 2 +-
+ libparted/arch/linux.c                                      | 2 +-
+ libparted/arch/linux.h                                      | 2 +-
+ libparted/architecture.c                                    | 2 +-
+ libparted/architecture.h                                    | 2 +-
+ libparted/cs/constraint.c                                   | 2 +-
+ libparted/cs/geom.c                                         | 2 +-
+ libparted/cs/natmath.c                                      | 2 +-
+ libparted/debug.c                                           | 2 +-
+ libparted/disk.c                                            | 2 +-
+ libparted/exception.c                                       | 2 +-
+ libparted/filesys.c                                         | 2 +-
+ libparted/fs/Makefile.am                                    | 2 +-
+ libparted/fs/amiga/a-interface.c                            | 2 +-
+ libparted/fs/amiga/affs.c                                   | 2 +-
+ libparted/fs/amiga/affs.h                                   | 2 +-
+ libparted/fs/amiga/amiga.c                                  | 2 +-
+ libparted/fs/amiga/amiga.h                                  | 2 +-
+ libparted/fs/amiga/apfs.c                                   | 2 +-
+ libparted/fs/amiga/apfs.h                                   | 2 +-
+ libparted/fs/amiga/asfs.c                                   | 2 +-
+ libparted/fs/amiga/asfs.h                                   | 2 +-
+ libparted/fs/ext2/ext2.h                                    | 2 +-
+ libparted/fs/ext2/ext2_fs.h                                 | 2 +-
+ libparted/fs/ext2/interface.c                               | 2 +-
+ libparted/fs/fat/bootsector.c                               | 2 +-
+ libparted/fs/fat/bootsector.h                               | 2 +-
+ libparted/fs/fat/count.h                                    | 2 +-
+ libparted/fs/fat/fat.c                                      | 2 +-
+ libparted/fs/fat/fat.h                                      | 2 +-
+ libparted/fs/hfs/hfs.c                                      | 2 +-
+ libparted/fs/hfs/hfs.h                                      | 2 +-
+ libparted/fs/hfs/probe.c                                    | 2 +-
+ libparted/fs/hfs/probe.h                                    | 2 +-
+ libparted/fs/jfs/jfs.c                                      | 2 +-
+ libparted/fs/linux_swap/linux_swap.c                        | 2 +-
+ libparted/fs/nilfs2/nilfs2.c                                | 2 +-
+ libparted/fs/ntfs/ntfs.c                                    | 2 +-
+ libparted/fs/r/fat/bootsector.c                             | 2 +-
+ libparted/fs/r/fat/bootsector.h                             | 2 +-
+ libparted/fs/r/fat/calc.c                                   | 2 +-
+ libparted/fs/r/fat/calc.h                                   | 2 +-
+ libparted/fs/r/fat/clstdup.c                                | 2 +-
+ libparted/fs/r/fat/clstdup.h                                | 2 +-
+ libparted/fs/r/fat/context.c                                | 2 +-
+ libparted/fs/r/fat/context.h                                | 2 +-
+ libparted/fs/r/fat/count.c                                  | 2 +-
+ libparted/fs/r/fat/count.h                                  | 2 +-
+ libparted/fs/r/fat/fat.c                                    | 2 +-
+ libparted/fs/r/fat/fat.h                                    | 2 +-
+ libparted/fs/r/fat/fatio.c                                  | 2 +-
+ libparted/fs/r/fat/fatio.h                                  | 2 +-
+ libparted/fs/r/fat/resize.c                                 | 2 +-
+ libparted/fs/r/fat/table.c                                  | 2 +-
+ libparted/fs/r/fat/table.h                                  | 2 +-
+ libparted/fs/r/fat/traverse.c                               | 2 +-
+ libparted/fs/r/fat/traverse.h                               | 2 +-
+ libparted/fs/r/filesys.c                                    | 2 +-
+ libparted/fs/r/hfs/advfs.c                                  | 2 +-
+ libparted/fs/r/hfs/advfs.h                                  | 2 +-
+ libparted/fs/r/hfs/advfs_plus.c                             | 2 +-
+ libparted/fs/r/hfs/advfs_plus.h                             | 2 +-
+ libparted/fs/r/hfs/cache.c                                  | 2 +-
+ libparted/fs/r/hfs/cache.h                                  | 2 +-
+ libparted/fs/r/hfs/file.c                                   | 2 +-
+ libparted/fs/r/hfs/file.h                                   | 2 +-
+ libparted/fs/r/hfs/file_plus.c                              | 2 +-
+ libparted/fs/r/hfs/file_plus.h                              | 2 +-
+ libparted/fs/r/hfs/hfs.c                                    | 2 +-
+ libparted/fs/r/hfs/hfs.h                                    | 2 +-
+ libparted/fs/r/hfs/journal.c                                | 2 +-
+ libparted/fs/r/hfs/journal.h                                | 2 +-
+ libparted/fs/r/hfs/probe.c                                  | 2 +-
+ libparted/fs/r/hfs/probe.h                                  | 2 +-
+ libparted/fs/r/hfs/reloc.c                                  | 2 +-
+ libparted/fs/r/hfs/reloc.h                                  | 2 +-
+ libparted/fs/r/hfs/reloc_plus.c                             | 2 +-
+ libparted/fs/r/hfs/reloc_plus.h                             | 2 +-
+ libparted/fs/reiserfs/reiserfs.c                            | 2 +-
+ libparted/fs/reiserfs/reiserfs.h                            | 2 +-
+ libparted/fs/ufs/ufs.c                                      | 2 +-
+ libparted/fs/xfs/xfs.c                                      | 2 +-
+ libparted/labels/Makefile.am                                | 2 +-
+ libparted/labels/aix.c                                      | 2 +-
+ libparted/labels/bsd.c                                      | 2 +-
+ libparted/labels/dasd.c                                     | 2 +-
+ libparted/labels/dos.c                                      | 2 +-
+ libparted/labels/dvh.c                                      | 2 +-
+ libparted/labels/loop.c                                     | 2 +-
+ libparted/labels/mac.c                                      | 2 +-
+ libparted/labels/misc.h                                     | 2 +-
+ libparted/labels/pc98.c                                     | 2 +-
+ libparted/labels/pt-tools.c                                 | 2 +-
+ libparted/labels/pt-tools.h                                 | 2 +-
+ libparted/labels/rdb.c                                      | 2 +-
+ libparted/labels/sun.c                                      | 2 +-
+ libparted/libparted.c                                       | 2 +-
+ libparted/mbr.s                                             | 2 +-
+ libparted/tests/Makefile.am                                 | 2 +-
+ libparted/tests/t1000-label.sh                              | 2 +-
+ libparted/tests/t2000-disk.sh                               | 2 +-
+ libparted/tests/t2100-zerolen.sh                            | 2 +-
+ libparted/tests/t3000-symlink.sh                            | 2 +-
+ libparted/timer.c                                           | 2 +-
+ libparted/unit.c                                            | 2 +-
+ m4/o-direct.m4                                              | 2 +-
+ parted/command.c                                            | 2 +-
+ parted/command.h                                            | 2 +-
+ parted/parted.c                                             | 2 +-
+ parted/strlist.c                                            | 2 +-
+ parted/strlist.h                                            | 2 +-
+ parted/table.c                                              | 2 +-
+ parted/table.h                                              | 2 +-
+ parted/ui.c                                                 | 2 +-
+ parted/ui.h                                                 | 2 +-
+ partprobe/partprobe.c                                       | 2 +-
+ po/POTFILES.in                                              | 2 +-
+ scripts/extract_symvers                                     | 2 +-
+ scripts/update-po                                           | 2 +-
+ tests/help-version.sh                                       | 2 +-
+ tests/init.sh                                               | 2 +-
+ tests/t0000-basic.sh                                        | 2 +-
+ tests/t0001-tiny.sh                                         | 2 +-
+ tests/t0010-script-no-ctrl-chars.sh                         | 2 +-
+ tests/t0100-print.sh                                        | 2 +-
+ tests/t0101-print-empty.sh                                  | 2 +-
+ tests/t0200-gpt.sh                                          | 2 +-
+ tests/t0201-gpt.sh                                          | 2 +-
+ tests/t0202-gpt-pmbr.sh                                     | 2 +-
+ tests/t0203-gpt-create-on-min-sized-device.sh               | 2 +-
+ tests/t0203-gpt-shortened-device-primary-valid.sh           | 2 +-
+ tests/t0203-gpt-tiny-device-abort.sh                        | 2 +-
+ tests/t0205-gpt-list-clobbers-pmbr.sh                       | 2 +-
+ tests/t0206-gpt-print-with-corrupt-primary-clobbers-pmbr.sh | 2 +-
+ tests/t0207-IEC-binary-notation.sh                          | 2 +-
+ tests/t0208-mkpart-end-in-IEC.sh                            | 2 +-
+ tests/t0209-gpt-pmbr_boot.sh                                | 2 +-
+ tests/t0210-gpt-resized-partition-entry-array.sh            | 2 +-
+ tests/t0211-gpt-rewrite-header.sh                           | 2 +-
+ tests/t0212-gpt-many-partitions.sh                          | 2 +-
+ tests/t0220-gpt-msftres.sh                                  | 2 +-
+ tests/t0250-gpt.sh                                          | 2 +-
+ tests/t0280-gpt-corrupt.sh                                  | 2 +-
+ tests/t0300-dos-on-gpt.sh                                   | 2 +-
+ tests/t0301-overwrite-gpt-pmbr.sh                           | 2 +-
+ tests/t0350-mac-PT-increases-sector-size.sh                 | 2 +-
+ tests/t0400-loop-clobber-infloop.sh                         | 2 +-
+ tests/t0500-dup-clobber.sh                                  | 2 +-
+ tests/t0501-duplicate.sh                                    | 2 +-
+ tests/t1100-busy-label.sh                                   | 2 +-
+ tests/t1101-busy-partition.sh                               | 2 +-
+ tests/t1700-probe-fs.sh                                     | 2 +-
+ tests/t2200-dos-label-recog.sh                              | 2 +-
+ tests/t2201-pc98-label-recog.sh                             | 2 +-
+ tests/t2300-dos-label-extended-bootcode.sh                  | 2 +-
+ tests/t2310-dos-extended-2-sector-min-offset.sh             | 2 +-
+ tests/t2400-dos-hfs-partition-type.sh                       | 2 +-
+ tests/t2500-probe-corrupt-hfs.sh                            | 2 +-
+ tests/t3000-resize-fs.sh                                    | 2 +-
+ tests/t3200-type-change.sh                                  | 2 +-
+ tests/t3300-palo-prep.sh                                    | 2 +-
+ tests/t3310-flags.sh                                        | 2 +-
+ tests/t3400-whole-disk-FAT-partition.sh                     | 2 +-
+ tests/t4000-sun-raid-type.sh                                | 2 +-
+ tests/t4001-sun-vtoc.sh                                     | 2 +-
+ tests/t4100-dvh-partition-limits.sh                         | 2 +-
+ tests/t4100-msdos-partition-limits.sh                       | 2 +-
+ tests/t4100-msdos-starting-sector.sh                        | 2 +-
+ tests/t4200-partprobe.sh                                    | 2 +-
+ tests/t4300-nilfs2-tiny.sh                                  | 2 +-
+ tests/t5000-tags.sh                                         | 2 +-
+ tests/t6000-dm.sh                                           | 2 +-
+ tests/t6001-psep.sh                                         | 2 +-
+ tests/t6002-dm-busy.sh                                      | 2 +-
+ tests/t6003-dm-hide.sh                                      | 2 +-
+ tests/t6100-mdraid-partitions.sh                            | 2 +-
+ tests/t7000-scripting.sh                                    | 2 +-
+ tests/t8000-loop.sh                                         | 2 +-
+ tests/t8001-loop-blkpg.sh                                   | 2 +-
+ tests/t9010-big-sector.sh                                   | 2 +-
+ tests/t9020-alignment.sh                                    | 2 +-
+ tests/t9021-maxima.sh                                       | 2 +-
+ tests/t9022-one-unit-snap.sh                                | 2 +-
+ tests/t9023-value-lt-one.sh                                 | 2 +-
+ tests/t9030-align-check.sh                                  | 2 +-
+ tests/t9040-many-partitions.sh                              | 2 +-
+ tests/t9041-undetected-in-use-16th-partition.sh             | 2 +-
+ tests/t9042-dos-partition-limit.sh                          | 2 +-
+ tests/t9050-partition-table-types.sh                        | 2 +-
+ 214 files changed, 214 insertions(+), 214 deletions(-)
+
+diff --git a/HACKING b/HACKING
+index 297cbd8..b8e501c 100644
+--- a/HACKING
++++ b/HACKING
+@@ -581,7 +581,7 @@ Then just open the index.html file (in the generated lcov-html directory)
+ in your favorite web browser.
+ 
+ ========================================================================
+-Copyright (C) 2009-2012 Free Software Foundation, Inc.
++Copyright (C) 2009-2013 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
+diff --git a/NEWS b/NEWS
+index 89541fd..98f7c6e 100644
+--- a/NEWS
++++ b/NEWS
+@@ -744,7 +744,7 @@ GNU parted NEWS                                    -*- outline -*-
+ 
+ ========================================================================
+ 
+-Copyright (C) 2001-2012 Free Software Foundation, Inc.
++Copyright (C) 2001-2013 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
+diff --git a/README-hacking b/README-hacking
+index 4aaa222..5aa9ef3 100644
+--- a/README-hacking
++++ b/README-hacking
+@@ -69,7 +69,7 @@ Enjoy!
+ 
+ -----
+ 
+-Copyright (C) 2002-2012 Free Software Foundation, Inc.
++Copyright (C) 2002-2013 Free Software Foundation, Inc.
+ 
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+diff --git a/bootstrap b/bootstrap
+index e3e270b..48181c9 100755
+--- a/bootstrap
++++ b/bootstrap
+@@ -4,7 +4,7 @@ scriptversion=2012-07-19.14; # UTC
+ 
+ # Bootstrap this package from checked-out sources.
+ 
+-# Copyright (C) 2003-2012 Free Software Foundation, Inc.
++# Copyright (C) 2003-2013 Free Software Foundation, Inc.
+ 
+ # This program is free software: you can redistribute it and/or modify
+ # it under the terms of the GNU General Public License as published by
+diff --git a/bootstrap.conf b/bootstrap.conf
+index 7f4ee53..f6f4ff2 100644
+--- a/bootstrap.conf
++++ b/bootstrap.conf
+@@ -1,6 +1,6 @@
+ # Bootstrap configuration.
+ 
+-# Copyright (C) 2006-2012 Free Software Foundation, Inc.
++# Copyright (C) 2006-2013 Free Software Foundation, Inc.
+ 
+ # This program is free software: you can redistribute it and/or modify
+ # it under the terms of the GNU General Public License as published by
+diff --git a/cfg.mk b/cfg.mk
+index 3d3014c..2590a38 100644
+--- a/cfg.mk
++++ b/cfg.mk
+@@ -1,5 +1,5 @@
+ # Customize maint.mk                           -*- makefile -*-
+-# Copyright (C) 2003-2012 Free Software Foundation, Inc.
++# Copyright (C) 2003-2013 Free Software Foundation, Inc.
+ 
+ # This program is free software: you can redistribute it and/or modify
+ # it under the terms of the GNU General Public License as published by
+diff --git a/configure.ac b/configure.ac
+index 417f325..fef0b53 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -1,5 +1,5 @@
+ dnl GNU Parted - a library and front end for manipulation hard disk partitions
+-dnl Copyright (C) 1998-2002, 2005-2012 Free Software Foundation, Inc.
++dnl Copyright (C) 1998-2002, 2005-2013 Free Software Foundation, Inc.
+ dnl
+ dnl This file may be modified and/or distributed without restriction.
+ 
+diff --git a/debug/test/HOWTO b/debug/test/HOWTO
+index 92d59f2..f611e4f 100644
+--- a/debug/test/HOWTO
++++ b/debug/test/HOWTO
+@@ -4,7 +4,7 @@
+ 
+ 	by Andrew Clausen
+ 
+-	Copyright (C) 2002, 2009-2012 Free Software Foundation, Inc.
++	Copyright (C) 2002, 2009-2013 Free Software Foundation, Inc.
+ 	This document may be distributed and/or modified
+ 	without restriction
+ 
+diff --git a/doc/gendocs.sh b/doc/gendocs.sh
+index 0b69819..1d2f9be 100755
+--- a/doc/gendocs.sh
++++ b/doc/gendocs.sh
+@@ -3,7 +3,7 @@
+ #   mentioned in maintain.texi.  See the help message below for usage details.
+ # $Id: gendocs.sh,v 1.16 2005/05/15 00:00:08 karl Exp $
+ #
+-# Copyright (C) 2003-2007, 2009-2012 Free Software Foundation, Inc.
++# Copyright (C) 2003-2007, 2009-2013 Free Software Foundation, Inc.
+ #
+ # This program is free software; you can redistribute it and/or modify
+ # it under the terms of the GNU General Public License as published by
+diff --git a/doc/parted-pt_BR.texi b/doc/parted-pt_BR.texi
+index 8878f83..8858ab5 100644
+--- a/doc/parted-pt_BR.texi
++++ b/doc/parted-pt_BR.texi
+@@ -22,7 +22,7 @@
+ This file documents the use of GNU Parted, a program for creating,
+ resising, checking and copy partitions, and file systems on them.
+ 
+-Copyright 1999-2002, 2009-2012 Free Software Foundation, Inc.
++Copyright 1999-2002, 2009-2013 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
+diff --git a/include/parted/constraint.in.h b/include/parted/constraint.in.h
+index 5f42fa0..4f7855b 100644
+--- a/include/parted/constraint.in.h
++++ b/include/parted/constraint.in.h
+@@ -1,6 +1,6 @@
+ /*
+     libparted - a library for manipulating disk partitions
+-    Copyright (C) 1998-2000, 2007, 2009-2012 Free Software Foundation, Inc.
++    Copyright (C) 1998-2000, 2007, 2009-2013 Free Software Foundation, Inc.
+ 
+     This program is free software; you can redistribute it and/or modify
+     it under the terms of the GNU General Public License as published by
+diff --git a/include/parted/crc32.in.h b/include/parted/crc32.in.h
+index 74941f6..af8de0a 100644
+--- a/include/parted/crc32.in.h
++++ b/include/parted/crc32.in.h
+@@ -1,6 +1,6 @@
+ /*
+     libparted - a library for manipulating disk partitions
+-    Copyright (C) 1998-2000, 2007, 2009-2012 Free Software Foundation, Inc.
++    Copyright (C) 1998-2000, 2007, 2009-2013 Free Software Foundation, Inc.
+ 
+     crc32.h
+ 
+diff --git a/include/parted/debug.in.h b/include/parted/debug.in.h
+index 09b47ab..07c1257 100644
+--- a/include/parted/debug.in.h
++++ b/include/parted/debug.in.h
+@@ -1,6 +1,6 @@
+ /*
+     libparted - a library for manipulating disk partitions
+-    Copyright (C) 1998-2000, 2002, 2007, 2009-2012 Free Software Foundation,
++    Copyright (C) 1998-2000, 2002, 2007, 2009-2013 Free Software Foundation,
+     Inc.
+ 
+     This program is free software; you can redistribute it and/or modify
+diff --git a/include/parted/device.in.h b/include/parted/device.in.h
+index a3d1737..7c06a66 100644
+--- a/include/parted/device.in.h
++++ b/include/parted/device.in.h
+@@ -1,6 +1,6 @@
+ /*
+     libparted - a library for manipulating disk partitions
+-    Copyright (C) 1998-2001, 2005, 2007-2008, 2011-2012 Free Software
++    Copyright (C) 1998-2001, 2005, 2007-2008, 2011-2013 Free Software
+     Foundation, Inc.
+ 
+     This program is free software; you can redistribute it and/or modify
+diff --git a/include/parted/disk.in.h b/include/parted/disk.in.h
+index a34e11e..aa905c5 100644
+--- a/include/parted/disk.in.h
++++ b/include/parted/disk.in.h
+@@ -1,6 +1,6 @@
+ /*
+     libparted - a library for manipulating disk partitions
+-    Copyright (C) 1999-2002, 2007-2012 Free Software Foundation, Inc.
++    Copyright (C) 1999-2002, 2007-2013 Free Software Foundation, Inc.
+ 
+     This program is free software; you can redistribute it and/or modify
+     it under the terms of the GNU General Public License as published by
+diff --git a/include/parted/endian.in.h b/include/parted/endian.in.h
+index 0e7c923..381059f 100644
+--- a/include/parted/endian.in.h
++++ b/include/parted/endian.in.h
+@@ -1,6 +1,6 @@
+ /*
+     libparted - a library for manipulating disk partitions
+-    Copyright (C) 1998-2002, 2007, 2009-2012 Free Software Foundation, Inc.
++    Copyright (C) 1998-2002, 2007, 2009-2013 Free Software Foundation, Inc.
+ 
+     This program is free software; you can redistribute it and/or modify
+     it under the terms of the GNU General Public License as published by
+diff --git a/include/parted/exception.in.h b/include/parted/exception.in.h
+index dd302b8..ef96280 100644
+--- a/include/parted/exception.in.h
++++ b/include/parted/exception.in.h
+@@ -1,6 +1,6 @@
+ /*
+     libparted - a library for manipulating disk partitions
+-    Copyright (C) 1999-2000, 2007, 2009-2012 Free Software Foundation, Inc.
++    Copyright (C) 1999-2000, 2007, 2009-2013 Free Software Foundation, Inc.
+ 
+     This program is free software; you can redistribute it and/or modify
+     it under the terms of the GNU General Public License as published by
+diff --git a/include/parted/filesys.in.h b/include/parted/filesys.in.h
+index c0f72f4..d9f626b 100644
+--- a/include/parted/filesys.in.h
++++ b/include/parted/filesys.in.h
+@@ -1,6 +1,6 @@
+ /*
+     libparted - a library for manipulating disk partitions
+-    Copyright (C) 1999-2001, 2006-2007, 2009-2012 Free Software Foundation,
++    Copyright (C) 1999-2001, 2006-2007, 2009-2013 Free Software Foundation,
+     Inc.
+ 
+     This program is free software; you can redistribute it and/or modify
+diff --git a/include/parted/geom.in.h b/include/parted/geom.in.h
+index 15ad017..9adeee8 100644
+--- a/include/parted/geom.in.h
++++ b/include/parted/geom.in.h
+@@ -1,6 +1,6 @@
+ /*
+     libparted - a library for manipulating disk partitions
+-    Copyright (C) 1998-2001, 2005, 2007, 2009-2012 Free Software Foundation,
++    Copyright (C) 1998-2001, 2005, 2007, 2009-2013 Free Software Foundation,
+     Inc.
+ 
+     This program is free software; you can redistribute it and/or modify
+diff --git a/include/parted/natmath.in.h b/include/parted/natmath.in.h
+index e1d09eb..284db26 100644
+--- a/include/parted/natmath.in.h
++++ b/include/parted/natmath.in.h
+@@ -1,6 +1,6 @@
+ /*
+     libparted - a library for manipulating disk partitions
+-    Copyright (C) 2000, 2007-2012 Free Software Foundation, Inc.
++    Copyright (C) 2000, 2007-2013 Free Software Foundation, Inc.
+ 
+     This program is free software; you can redistribute it and/or modify
+     it under the terms of the GNU General Public License as published by
+diff --git a/include/parted/parted.in.h b/include/parted/parted.in.h
+index 856b7aa..9a4f69c 100644
+--- a/include/parted/parted.in.h
++++ b/include/parted/parted.in.h
+@@ -1,6 +1,6 @@
+ /*
+     libparted - a library for manipulating disk partitions
+-    Copyright (C) 1999-2001, 2007, 2009-2012 Free Software Foundation, Inc.
++    Copyright (C) 1999-2001, 2007, 2009-2013 Free Software Foundation, Inc.
+ 
+     This program is free software; you can redistribute it and/or modify
+     it under the terms of the GNU General Public License as published by
+diff --git a/include/parted/timer.in.h b/include/parted/timer.in.h
+index 7f25b2e..c7c42eb 100644
+--- a/include/parted/timer.in.h
++++ b/include/parted/timer.in.h
+@@ -1,6 +1,6 @@
+ /*
+     libparted - a library for manipulating disk partitions
+-    Copyright (C) 2001-2002, 2007, 2009-2012 Free Software Foundation, Inc.
++    Copyright (C) 2001-2002, 2007, 2009-2013 Free Software Foundation, Inc.
+ 
+     This program is free software; you can redistribute it and/or modify
+     it under the terms of the GNU General Public License as published by
+diff --git a/include/parted/unit.in.h b/include/parted/unit.in.h
+index 584a0c4..119cfe3 100644
+--- a/include/parted/unit.in.h
++++ b/include/parted/unit.in.h
+@@ -1,6 +1,6 @@
+ /*
+     libparted - a library for manipulating disk partitions
+-    Copyright (C) 2005, 2007, 2009-2012 Free Software Foundation, Inc.
++    Copyright (C) 2005, 2007, 2009-2013 Free Software Foundation, Inc.
+ 
+     This program is free software; you can redistribute it and/or modify
+     it under the terms of the GNU General Public License as published by
+diff --git a/libparted/Makefile.am b/libparted/Makefile.am
+index bdc7976..bbb43ae 100644
+--- a/libparted/Makefile.am
++++ b/libparted/Makefile.am
+@@ -1,5 +1,5 @@
+ # This file is part of GNU Parted
+-# Copyright (C) 1999-2001, 2007, 2009-2012 Free Software Foundation, Inc.
++# Copyright (C) 1999-2001, 2007, 2009-2013 Free Software Foundation, Inc.
+ #
+ # This file may be modified and/or distributed without restriction.
+ 
+diff --git a/libparted/arch/beos.c b/libparted/arch/beos.c
+index edd3fd9..6a8a5ae 100644
+--- a/libparted/arch/beos.c
++++ b/libparted/arch/beos.c
+@@ -1,6 +1,6 @@
+ /*
+     libparted - a library for manipulating disk partitions
+-    Copyright (C) 2006-2007, 2009-2012 Free Software Foundation, Inc.
++    Copyright (C) 2006-2007, 2009-2013 Free Software Foundation, Inc.
+ 
+     This program is free software; you can redistribute it and/or modify
+     it under the terms of the GNU General Public License as published by
+diff --git a/libparted/arch/gnu.c b/libparted/arch/gnu.c
+index 62d3fe4..21d1f35 100644
+--- a/libparted/arch/gnu.c
++++ b/libparted/arch/gnu.c
+@@ -1,6 +1,6 @@
+ /*
+     libparted - a library for manipulating disk partitions
+-    Copyright (C) 1999-2001, 2005, 2007, 2009-2012 Free Software Foundation,
++    Copyright (C) 1999-2001, 2005, 2007, 2009-2013 Free Software Foundation,
+     Inc.
+ 
+     This program is free software; you can redistribute it and/or modify
+diff --git a/libparted/arch/linux.c b/libparted/arch/linux.c
+index 083591f..2bb8774 100644
+--- a/libparted/arch/linux.c
++++ b/libparted/arch/linux.c
+@@ -1,5 +1,5 @@
+ /* libparted - a library for manipulating disk partitions
+-    Copyright (C) 1999-2012 Free Software Foundation, Inc.
++    Copyright (C) 1999-2013 Free Software Foundation, Inc.
+ 
+     This program is free software; you can redistribute it and/or modify
+     it under the terms of the GNU General Public License as published by
+diff --git a/libparted/arch/linux.h b/libparted/arch/linux.h
+index cf6a6d8..865134a 100644
+--- a/libparted/arch/linux.h
++++ b/libparted/arch/linux.h
+@@ -1,5 +1,5 @@
+ /* libparted - a library for manipulating disk partitions
+-    Copyright (C) 2009-2012 Free Software Foundation, Inc.
++    Copyright (C) 2009-2013 Free Software Foundation, Inc.
+ 
+     This program is free software; you can redistribute it and/or modify
+     it under the terms of the GNU General Public License as published by
+diff --git a/libparted/architecture.c b/libparted/architecture.c
+index 3b033a1..b339dc4 100644
+--- a/libparted/architecture.c
++++ b/libparted/architecture.c
+@@ -1,6 +1,6 @@
+  /*
+     libparted - a library for manipulating disk partitions
+-    Copyright (C) 2007, 2009-2012 Free Software Foundation, Inc.
++    Copyright (C) 2007, 2009-2013 Free Software Foundation, Inc.
+ 
+     This program is free software; you can redistribute it and/or modify
+     it under the terms of the GNU General Public License as published by
+diff --git a/libparted/architecture.h b/libparted/architecture.h
+index 5fe88e7..98345dd 100644
+--- a/libparted/architecture.h
++++ b/libparted/architecture.h
+@@ -1,6 +1,6 @@
+  /*
+     libparted - a library for manipulating disk partitions
+-    Copyright (C) 2007, 2009-2012 Free Software Foundation, Inc.
++    Copyright (C) 2007, 2009-2013 Free Software Foundation, Inc.
+ 
+     This program is free software; you can redistribute it and/or modify
+     it under the terms of the GNU General Public License as published by
+diff --git a/libparted/cs/constraint.c b/libparted/cs/constraint.c
+index 4b28d63..21e80a7 100644
+--- a/libparted/cs/constraint.c
++++ b/libparted/cs/constraint.c
+@@ -1,6 +1,6 @@
+ /*
+     libparted - a library for manipulating disk partitions
+-    Copyright (C) 2000-2001, 2007, 2009-2012 Free Software Foundation, Inc.
++    Copyright (C) 2000-2001, 2007, 2009-2013 Free Software Foundation, Inc.
+ 
+     This program is free software; you can redistribute it and/or modify
+     it under the terms of the GNU General Public License as published by
+diff --git a/libparted/cs/geom.c b/libparted/cs/geom.c
+index 3eea9e9..65c10c5 100644
+--- a/libparted/cs/geom.c
++++ b/libparted/cs/geom.c
+@@ -1,6 +1,6 @@
+ /*
+     libparted - a library for manipulating disk partitions
+-    Copyright (C) 1999-2000, 2005, 2007-2012 Free Software Foundation, Inc.
++    Copyright (C) 1999-2000, 2005, 2007-2013 Free Software Foundation, Inc.
+ 
+     This program is free software; you can redistribute it and/or modify
+     it under the terms of the GNU General Public License as published by
+diff --git a/libparted/cs/natmath.c b/libparted/cs/natmath.c
+index 2d5e2bf..4ebcb5a 100644
+--- a/libparted/cs/natmath.c
++++ b/libparted/cs/natmath.c
+@@ -1,6 +1,6 @@
+ /*
+     libparted - a library for manipulating disk partitions
+-    Copyright (C) 2000, 2007-2012 Free Software Foundation, Inc.
++    Copyright (C) 2000, 2007-2013 Free Software Foundation, Inc.
+ 
+     This program is free software; you can redistribute it and/or modify
+     it under the terms of the GNU General Public License as published by
+diff --git a/libparted/debug.c b/libparted/debug.c
+index ceca0c5..bbc84dc 100644
+--- a/libparted/debug.c
++++ b/libparted/debug.c
+@@ -1,6 +1,6 @@
+ /*
+     libparted - a library for manipulating disk partitions
+-    Copyright (C) 2000, 2005, 2007, 2009-2012 Free Software Foundation, Inc.
++    Copyright (C) 2000, 2005, 2007, 2009-2013 Free Software Foundation, Inc.
+ 
+     This program is free software; you can redistribute it and/or modify
+     it under the terms of the GNU General Public License as published by
+diff --git a/libparted/disk.c b/libparted/disk.c
+index d283674..d3cd5bb 100644
+--- a/libparted/disk.c
++++ b/libparted/disk.c
+@@ -1,6 +1,6 @@
+  /*
+     libparted - a library for manipulating disk partitions
+-    Copyright (C) 1999-2003, 2005, 2007-2012 Free Software Foundation, Inc.
++    Copyright (C) 1999-2003, 2005, 2007-2013 Free Software Foundation, Inc.
+ 
+     This program is free software; you can redistribute it and/or modify
+     it under the terms of the GNU General Public License as published by
+diff --git a/libparted/exception.c b/libparted/exception.c
+index a71df0e..f4c771d 100644
+--- a/libparted/exception.c
++++ b/libparted/exception.c
+@@ -1,6 +1,6 @@
+ /*
+     libparted - a library for manipulating disk partitions
+-    Copyright (C) 1999-2000, 2007-2012 Free Software Foundation, Inc.
++    Copyright (C) 1999-2000, 2007-2013 Free Software Foundation, Inc.
+ 
+     This program is free software; you can redistribute it and/or modify
+     it under the terms of the GNU General Public License as published by
+diff --git a/libparted/filesys.c b/libparted/filesys.c
+index fd85e5d..1870808 100644
+--- a/libparted/filesys.c
++++ b/libparted/filesys.c
+@@ -1,6 +1,6 @@
+ /*
+     libparted - a library for manipulating disk partitions
+-    Copyright (C) 1999-2001, 2007-2012 Free Software Foundation, Inc.
++    Copyright (C) 1999-2001, 2007-2013 Free Software Foundation, Inc.
+ 
+     This program is free software; you can redistribute it and/or modify
+     it under the terms of the GNU General Public License as published by
+diff --git a/libparted/fs/Makefile.am b/libparted/fs/Makefile.am
+index 064f11a..aac03cc 100644
+--- a/libparted/fs/Makefile.am
++++ b/libparted/fs/Makefile.am
+@@ -1,5 +1,5 @@
+ # This file is part of GNU Parted
+-# Copyright (C) 1999-2001, 2007, 2009-2012 Free Software Foundation, Inc.
++# Copyright (C) 1999-2001, 2007, 2009-2013 Free Software Foundation, Inc.
+ #
+ # This file may be modified and/or distributed without restriction.
+ 
+diff --git a/libparted/fs/amiga/a-interface.c b/libparted/fs/amiga/a-interface.c
+index a084266..f8dd131 100644
+--- a/libparted/fs/amiga/a-interface.c
++++ b/libparted/fs/amiga/a-interface.c
+@@ -1,6 +1,6 @@
+ /*
+     interface.c -- parted support amiga file systems
+-    Copyright (C) 1998-2000, 2007, 2009-2012 Free Software Foundation, Inc.
++    Copyright (C) 1998-2000, 2007, 2009-2013 Free Software Foundation, Inc.
+ 
+     This program is free software; you can redistribute it and/or modify
+     it under the terms of the GNU General Public License as published by
+diff --git a/libparted/fs/amiga/affs.c b/libparted/fs/amiga/affs.c
+index fefead3..6b7624d 100644
+--- a/libparted/fs/amiga/affs.c
++++ b/libparted/fs/amiga/affs.c
+@@ -1,6 +1,6 @@
+ /*
+     affs.c -- parted support for affs file systems
+-    Copyright (C) 1998-2000, 2007, 2009-2012 Free Software Foundation, Inc.
++    Copyright (C) 1998-2000, 2007, 2009-2013 Free Software Foundation, Inc.
+ 
+     This program is free software; you can redistribute it and/or modify
+     it under the terms of the GNU General Public License as published by
+diff --git a/libparted/fs/amiga/affs.h b/libparted/fs/amiga/affs.h
+index 7223faf..5c8cc9c 100644
+--- a/libparted/fs/amiga/affs.h
++++ b/libparted/fs/amiga/affs.h
+@@ -1,7 +1,7 @@
+ 
+ /*
+     affs.h -- parted suppoer for affs filesystems header files
+-    Copyright (C) 1998-2000, 2007, 2009-2012 Free Software Foundation, Inc.
++    Copyright (C) 1998-2000, 2007, 2009-2013 Free Software Foundation, Inc.
+ 
+     This program is free software; you can redistribute it and/or modify
+     it under the terms of the GNU General Public License as published by
+diff --git a/libparted/fs/amiga/amiga.c b/libparted/fs/amiga/amiga.c
+index 7b8462e..31e1a3b 100644
+--- a/libparted/fs/amiga/amiga.c
++++ b/libparted/fs/amiga/amiga.c
+@@ -1,6 +1,6 @@
+ /*
+     libparted/fs_amiga - amiga file system support.
+-    Copyright (C) 2000-2001, 2007, 2009-2012 Free Software Foundation, Inc.
++    Copyright (C) 2000-2001, 2007, 2009-2013 Free Software Foundation, Inc.
+ 
+     This program is free software; you can redistribute it and/or modify
+     it under the terms of the GNU General Public License as published by
+diff --git a/libparted/fs/amiga/amiga.h b/libparted/fs/amiga/amiga.h
+index 9debd30..746030e 100644
+--- a/libparted/fs/amiga/amiga.h
++++ b/libparted/fs/amiga/amiga.h
+@@ -1,6 +1,6 @@
+ /*
+     util.h -- amiga partition table headers.
+-    Copyright (C) 1998-2000, 2007, 2009-2012 Free Software Foundation, Inc.
++    Copyright (C) 1998-2000, 2007, 2009-2013 Free Software Foundation, Inc.
+ 
+     This program is free software; you can redistribute it and/or modify
+     it under the terms of the GNU General Public License as published by
+diff --git a/libparted/fs/amiga/apfs.c b/libparted/fs/amiga/apfs.c
+index 9d2757b..9f9e6e0 100644
+--- a/libparted/fs/amiga/apfs.c
++++ b/libparted/fs/amiga/apfs.c
+@@ -1,6 +1,6 @@
+ /*
+     apfs.c -- parted support for apfs file systems
+-    Copyright (C) 1998-2000, 2007, 2009-2012 Free Software Foundation, Inc.
++    Copyright (C) 1998-2000, 2007, 2009-2013 Free Software Foundation, Inc.
+ 
+     This program is free software; you can redistribute it and/or modify
+     it under the terms of the GNU General Public License as published by
+diff --git a/libparted/fs/amiga/apfs.h b/libparted/fs/amiga/apfs.h
+index ecc1a02..a611db5 100644
+--- a/libparted/fs/amiga/apfs.h
++++ b/libparted/fs/amiga/apfs.h
+@@ -1,6 +1,6 @@
+ /*
+     apfs.h -- parted support for apfs file systems header files
+-    Copyright (C) 1998-2000, 2007, 2009-2012 Free Software Foundation, Inc.
++    Copyright (C) 1998-2000, 2007, 2009-2013 Free Software Foundation, Inc.
+ 
+     This program is free software; you can redistribute it and/or modify
+     it under the terms of the GNU General Public License as published by
+diff --git a/libparted/fs/amiga/asfs.c b/libparted/fs/amiga/asfs.c
+index 3a9dce7..f7b4ed0 100644
+--- a/libparted/fs/amiga/asfs.c
++++ b/libparted/fs/amiga/asfs.c
+@@ -1,6 +1,6 @@
+ /*
+     asfs.c -- parted asfs filesystem support
+-    Copyright (C) 1998-2000, 2007, 2009-2012 Free Software Foundation, Inc.
++    Copyright (C) 1998-2000, 2007, 2009-2013 Free Software Foundation, Inc.
+ 
+     This program is free software; you can redistribute it and/or modify
+     it under the terms of the GNU General Public License as published by
+diff --git a/libparted/fs/amiga/asfs.h b/libparted/fs/amiga/asfs.h
+index 1f5e56c..9b1fb78 100644
+--- a/libparted/fs/amiga/asfs.h
++++ b/libparted/fs/amiga/asfs.h
+@@ -1,6 +1,6 @@
+ /*
+     asfs.h -- parted asfs filesystem support header files
+-    Copyright (C) 1998-2000, 2007, 2009-2012 Free Software Foundation, Inc.
++    Copyright (C) 1998-2000, 2007, 2009-2013 Free Software Foundation, Inc.
+ 
+     This program is free software; you can redistribute it and/or modify
+     it under the terms of the GNU General Public License as published by
+diff --git a/libparted/fs/ext2/ext2.h b/libparted/fs/ext2/ext2.h
+index ee0b121..4559d6a 100644
+--- a/libparted/fs/ext2/ext2.h
++++ b/libparted/fs/ext2/ext2.h
+@@ -1,6 +1,6 @@
+ /*
+     ext2.h -- ext2 header
+-    Copyright (C) 1998-2000, 2007, 2009-2012 Free Software Foundation, Inc.
++    Copyright (C) 1998-2000, 2007, 2009-2013 Free Software Foundation, Inc.
+ 
+     This program is free software; you can redistribute it and/or modify
+     it under the terms of the GNU General Public License as published by
+diff --git a/libparted/fs/ext2/ext2_fs.h b/libparted/fs/ext2/ext2_fs.h
+index fe2a396..b2cd3b2 100644
+--- a/libparted/fs/ext2/ext2_fs.h
++++ b/libparted/fs/ext2/ext2_fs.h
+@@ -15,7 +15,7 @@
+ 
+ /*
+  * EXT2_*_*() convienience macros added by Andrew Clausen <clausen at gnu.org>
+- * Copyright (C) 2000, 2009-2012 Free Software Foundation, Inc.
++ * Copyright (C) 2000, 2009-2013 Free Software Foundation, Inc.
+  */
+ 
+ #ifndef _EXT2_FS_H
+diff --git a/libparted/fs/ext2/interface.c b/libparted/fs/ext2/interface.c
+index 1159375..97220b7 100644
+--- a/libparted/fs/ext2/interface.c
++++ b/libparted/fs/ext2/interface.c
+@@ -1,6 +1,6 @@
+ /*
+     interface.c -- parted binding glue to libext2resize
+-    Copyright (C) 1998-2000, 2007-2012 Free Software Foundation, Inc.
++    Copyright (C) 1998-2000, 2007-2013 Free Software Foundation, Inc.
+ 
+     This program is free software; you can redistribute it and/or modify
+     it under the terms of the GNU General Public License as published by
+diff --git a/libparted/fs/fat/bootsector.c b/libparted/fs/fat/bootsector.c
+index c43940f..d4f8dc4 100644
+--- a/libparted/fs/fat/bootsector.c
++++ b/libparted/fs/fat/bootsector.c
+@@ -1,6 +1,6 @@
+ /*
+     libparted
+-    Copyright (C) 1998-2000, 2002, 2004, 2007, 2009-2012 Free Software
++    Copyright (C) 1998-2000, 2002, 2004, 2007, 2009-2013 Free Software
+     Foundation, Inc.
+ 
+     This program is free software; you can redistribute it and/or modify
+diff --git a/libparted/fs/fat/bootsector.h b/libparted/fs/fat/bootsector.h
+index 2b51cd1..3f84742 100644
+--- a/libparted/fs/fat/bootsector.h
++++ b/libparted/fs/fat/bootsector.h
+@@ -1,6 +1,6 @@
+ /*
+     libparted
+-    Copyright (C) 1998-2000, 2007, 2009-2012 Free Software Foundation, Inc.
++    Copyright (C) 1998-2000, 2007, 2009-2013 Free Software Foundation, Inc.
+ 
+     This program is free software; you can redistribute it and/or modify
+     it under the terms of the GNU General Public License as published by
+diff --git a/libparted/fs/fat/count.h b/libparted/fs/fat/count.h
+index a1c8438..2c675a3 100644
+--- a/libparted/fs/fat/count.h
++++ b/libparted/fs/fat/count.h
+@@ -1,6 +1,6 @@
+ /*
+     libparted
+-    Copyright (C) 1999-2000, 2007-2012 Free Software Foundation, Inc.
++    Copyright (C) 1999-2000, 2007-2013 Free Software Foundation, Inc.
+ 
+     This program is free software; you can redistribute it and/or modify
+     it under the terms of the GNU General Public License as published by
+diff --git a/libparted/fs/fat/fat.c b/libparted/fs/fat/fat.c
+index 62e8790..95cbc8d 100644
+--- a/libparted/fs/fat/fat.c
++++ b/libparted/fs/fat/fat.c
+@@ -1,6 +1,6 @@
+ /*
+     libparted
+-    Copyright (C) 1998-2001, 2007-2012 Free Software Foundation, Inc.
++    Copyright (C) 1998-2001, 2007-2013 Free Software Foundation, Inc.
+ 
+     This program is free software; you can redistribute it and/or modify
+     it under the terms of the GNU General Public License as published by
+diff --git a/libparted/fs/fat/fat.h b/libparted/fs/fat/fat.h
+index b1b96ba..437a020 100644
+--- a/libparted/fs/fat/fat.h
++++ b/libparted/fs/fat/fat.h
+@@ -1,6 +1,6 @@
+ /*
+     libparted
+-    Copyright (C) 1998-2001, 2007, 2009-2012 Free Software Foundation, Inc.
++    Copyright (C) 1998-2001, 2007, 2009-2013 Free Software Foundation, Inc.
+ 
+     This program is free software; you can redistribute it and/or modify
+     it under the terms of the GNU General Public License as published by
+diff --git a/libparted/fs/hfs/hfs.c b/libparted/fs/hfs/hfs.c
+index a03cf48..40c8173 100644
+--- a/libparted/fs/hfs/hfs.c
++++ b/libparted/fs/hfs/hfs.c
+@@ -1,6 +1,6 @@
+ /*
+     libparted - a library for manipulating disk partitions
+-    Copyright (C) 2000, 2003-2005, 2007, 2009-2012 Free Software Foundation,
++    Copyright (C) 2000, 2003-2005, 2007, 2009-2013 Free Software Foundation,
+     Inc.
+ 
+     This program is free software; you can redistribute it and/or modify
+diff --git a/libparted/fs/hfs/hfs.h b/libparted/fs/hfs/hfs.h
+index 4e15e79..c3c79d8 100644
+--- a/libparted/fs/hfs/hfs.h
++++ b/libparted/fs/hfs/hfs.h
+@@ -1,6 +1,6 @@
+ /*
+     libparted - a library for manipulating disk partitions
+-    Copyright (C) 2003-2005, 2007, 2009-2012 Free Software Foundation, Inc.
++    Copyright (C) 2003-2005, 2007, 2009-2013 Free Software Foundation, Inc.
+ 
+     This program is free software; you can redistribute it and/or modify
+     it under the terms of the GNU General Public License as published by
+diff --git a/libparted/fs/hfs/probe.c b/libparted/fs/hfs/probe.c
+index 71b8342..ad79a64 100644
+--- a/libparted/fs/hfs/probe.c
++++ b/libparted/fs/hfs/probe.c
+@@ -1,6 +1,6 @@
+ /*
+     libparted - a library for manipulating disk partitions
+-    Copyright (C) 2004-2005, 2007, 2009-2012 Free Software Foundation, Inc.
++    Copyright (C) 2004-2005, 2007, 2009-2013 Free Software Foundation, Inc.
+ 
+     This program is free software; you can redistribute it and/or modify
+     it under the terms of the GNU General Public License as published by
+diff --git a/libparted/fs/hfs/probe.h b/libparted/fs/hfs/probe.h
+index 0b4a01f..0dc036a 100644
+--- a/libparted/fs/hfs/probe.h
++++ b/libparted/fs/hfs/probe.h
+@@ -1,6 +1,6 @@
+ /*
+     libparted - a library for manipulating disk partitions
+-    Copyright (C) 2004-2005, 2007, 2009-2012 Free Software Foundation, Inc.
++    Copyright (C) 2004-2005, 2007, 2009-2013 Free Software Foundation, Inc.
+ 
+     This program is free software; you can redistribute it and/or modify
+     it under the terms of the GNU General Public License as published by
+diff --git a/libparted/fs/jfs/jfs.c b/libparted/fs/jfs/jfs.c
+index 0959d96..803c241 100644
+--- a/libparted/fs/jfs/jfs.c
++++ b/libparted/fs/jfs/jfs.c
+@@ -1,6 +1,6 @@
+ /*
+     libparted - a library for manipulating disk partitions
+-    Copyright (C) 2001, 2007, 2009-2012 Free Software Foundation, Inc.
++    Copyright (C) 2001, 2007, 2009-2013 Free Software Foundation, Inc.
+ 
+     This program is free software; you can redistribute it and/or modify
+     it under the terms of the GNU General Public License as published by
+diff --git a/libparted/fs/linux_swap/linux_swap.c b/libparted/fs/linux_swap/linux_swap.c
+index 77b97db..bbc034d 100644
+--- a/libparted/fs/linux_swap/linux_swap.c
++++ b/libparted/fs/linux_swap/linux_swap.c
+@@ -1,6 +1,6 @@
+ /*
+     libparted - a library for manipulating disk partitions
+-    Copyright (C) 1999-2000, 2002, 2007-2012 Free Software Foundation, Inc.
++    Copyright (C) 1999-2000, 2002, 2007-2013 Free Software Foundation, Inc.
+ 
+     This program is free software; you can redistribute it and/or modify
+     it under the terms of the GNU General Public License as published by
+diff --git a/libparted/fs/nilfs2/nilfs2.c b/libparted/fs/nilfs2/nilfs2.c
+index a184a36..bb0a84e 100644
+--- a/libparted/fs/nilfs2/nilfs2.c
++++ b/libparted/fs/nilfs2/nilfs2.c
+@@ -3,7 +3,7 @@
+  *
+  *  Written by  Jiro SEKIBA <jir at unicus.jp>
+  *
+- *  Copyright (C) 2011-2012 Free Software Foundation, Inc.
++ *  Copyright (C) 2011-2013 Free Software Foundation, Inc.
+  *
+  *  This program is free software; you can redistribute it and/or modify
+  *  it under the terms of the GNU General Public License as published by
+diff --git a/libparted/fs/ntfs/ntfs.c b/libparted/fs/ntfs/ntfs.c
+index 4c92d9e..05d7f36 100644
+--- a/libparted/fs/ntfs/ntfs.c
++++ b/libparted/fs/ntfs/ntfs.c
+@@ -1,6 +1,6 @@
+ /*
+     libparted - a library for manipulating disk partitions
+-    Copyright (C) 2000, 2007, 2009-2012 Free Software Foundation, Inc.
++    Copyright (C) 2000, 2007, 2009-2013 Free Software Foundation, Inc.
+ 
+     This program is free software; you can redistribute it and/or modify
+     it under the terms of the GNU General Public License as published by
+diff --git a/libparted/fs/r/fat/bootsector.c b/libparted/fs/r/fat/bootsector.c
+index 8c7a8c3..07b39cf 100644
+--- a/libparted/fs/r/fat/bootsector.c
++++ b/libparted/fs/r/fat/bootsector.c
+@@ -1,6 +1,6 @@
+ /*
+     libparted
+-    Copyright (C) 1998-2000, 2002, 2004, 2007, 2009-2012 Free Software
++    Copyright (C) 1998-2000, 2002, 2004, 2007, 2009-2013 Free Software
+     Foundation, Inc.
+ 
+     This program is free software; you can redistribute it and/or modify
+diff --git a/libparted/fs/r/fat/bootsector.h b/libparted/fs/r/fat/bootsector.h
+index 4783649..ec367c3 100644
+--- a/libparted/fs/r/fat/bootsector.h
++++ b/libparted/fs/r/fat/bootsector.h
+@@ -1,6 +1,6 @@
+ /*
+     libparted
+-    Copyright (C) 1998-2000, 2007, 2009-2012 Free Software Foundation, Inc.
++    Copyright (C) 1998-2000, 2007, 2009-2013 Free Software Foundation, Inc.
+ 
+     This program is free software; you can redistribute it and/or modify
+     it under the terms of the GNU General Public License as published by
+diff --git a/libparted/fs/r/fat/calc.c b/libparted/fs/r/fat/calc.c
+index d8f3a98..c4c8dba 100644
+--- a/libparted/fs/r/fat/calc.c
++++ b/libparted/fs/r/fat/calc.c
+@@ -1,6 +1,6 @@
+ /*
+     libparted
+-    Copyright (C) 1998-2000, 2002, 2007, 2009-2012 Free Software Foundation,
++    Copyright (C) 1998-2000, 2002, 2007, 2009-2013 Free Software Foundation,
+     Inc.
+ 
+     This program is free software; you can redistribute it and/or modify
+diff --git a/libparted/fs/r/fat/calc.h b/libparted/fs/r/fat/calc.h
+index 25e36f7..4d80954 100644
+--- a/libparted/fs/r/fat/calc.h
++++ b/libparted/fs/r/fat/calc.h
+@@ -1,6 +1,6 @@
+ /*
+     libparted
+-    Copyright (C) 1998-2000, 2007, 2009-2012 Free Software Foundation, Inc.
++    Copyright (C) 1998-2000, 2007, 2009-2013 Free Software Foundation, Inc.
+ 
+     This program is free software; you can redistribute it and/or modify
+     it under the terms of the GNU General Public License as published by
+diff --git a/libparted/fs/r/fat/clstdup.c b/libparted/fs/r/fat/clstdup.c
+index 73ac8d6..4acbbc8 100644
+--- a/libparted/fs/r/fat/clstdup.c
++++ b/libparted/fs/r/fat/clstdup.c
+@@ -1,6 +1,6 @@
+ /*
+     libparted
+-    Copyright (C) 1998-2001, 2007, 2009-2012 Free Software Foundation, Inc.
++    Copyright (C) 1998-2001, 2007, 2009-2013 Free Software Foundation, Inc.
+ 
+     This program is free software; you can redistribute it and/or modify
+     it under the terms of the GNU General Public License as published by
+diff --git a/libparted/fs/r/fat/clstdup.h b/libparted/fs/r/fat/clstdup.h
+index eee55a0..a811c4c 100644
+--- a/libparted/fs/r/fat/clstdup.h
++++ b/libparted/fs/r/fat/clstdup.h
+@@ -1,6 +1,6 @@
+ /*
+     libparted
+-    Copyright (C) 1999, 2007, 2009-2012 Free Software Foundation, Inc.
++    Copyright (C) 1999, 2007, 2009-2013 Free Software Foundation, Inc.
+ 
+     This program is free software; you can redistribute it and/or modify
+     it under the terms of the GNU General Public License as published by
+diff --git a/libparted/fs/r/fat/context.c b/libparted/fs/r/fat/context.c
+index 2cd933a..7767f14 100644
+--- a/libparted/fs/r/fat/context.c
++++ b/libparted/fs/r/fat/context.c
+@@ -1,6 +1,6 @@
+ /*
+     libparted
+-    Copyright (C) 1998-2000, 2007, 2009-2012 Free Software Foundation, Inc.
++    Copyright (C) 1998-2000, 2007, 2009-2013 Free Software Foundation, Inc.
+ 
+     This program is free software; you can redistribute it and/or modify
+     it under the terms of the GNU General Public License as published by
+diff --git a/libparted/fs/r/fat/context.h b/libparted/fs/r/fat/context.h
+index 0bd8922..5701b1b 100644
+--- a/libparted/fs/r/fat/context.h
++++ b/libparted/fs/r/fat/context.h
+@@ -1,6 +1,6 @@
+ /*
+     libparted
+-    Copyright (C) 1999-2000, 2007, 2009-2012 Free Software Foundation, Inc.
++    Copyright (C) 1999-2000, 2007, 2009-2013 Free Software Foundation, Inc.
+ 
+     This program is free software; you can redistribute it and/or modify
+     it under the terms of the GNU General Public License as published by
+diff --git a/libparted/fs/r/fat/count.c b/libparted/fs/r/fat/count.c
+index abd9e71..e551fef 100644
+--- a/libparted/fs/r/fat/count.c
++++ b/libparted/fs/r/fat/count.c
+@@ -1,6 +1,6 @@
+ /*
+     libparted
+-    Copyright (C) 1998-2000, 2007, 2009-2012 Free Software Foundation, Inc.
++    Copyright (C) 1998-2000, 2007, 2009-2013 Free Software Foundation, Inc.
+ 
+     This program is free software; you can redistribute it and/or modify
+     it under the terms of the GNU General Public License as published by
+diff --git a/libparted/fs/r/fat/count.h b/libparted/fs/r/fat/count.h
+index a1c8438..2c675a3 100644
+--- a/libparted/fs/r/fat/count.h
++++ b/libparted/fs/r/fat/count.h
+@@ -1,6 +1,6 @@
+ /*
+     libparted
+-    Copyright (C) 1999-2000, 2007-2012 Free Software Foundation, Inc.
++    Copyright (C) 1999-2000, 2007-2013 Free Software Foundation, Inc.
+ 
+     This program is free software; you can redistribute it and/or modify
+     it under the terms of the GNU General Public License as published by
+diff --git a/libparted/fs/r/fat/fat.c b/libparted/fs/r/fat/fat.c
+index 9d43e21..2ab9279 100644
+--- a/libparted/fs/r/fat/fat.c
++++ b/libparted/fs/r/fat/fat.c
+@@ -1,6 +1,6 @@
+ /*
+     libparted
+-    Copyright (C) 1998-2001, 2007-2012 Free Software Foundation, Inc.
++    Copyright (C) 1998-2001, 2007-2013 Free Software Foundation, Inc.
+ 
+     This program is free software; you can redistribute it and/or modify
+     it under the terms of the GNU General Public License as published by
+diff --git a/libparted/fs/r/fat/fat.h b/libparted/fs/r/fat/fat.h
+index e90a81e..d2ac2aa 100644
+--- a/libparted/fs/r/fat/fat.h
++++ b/libparted/fs/r/fat/fat.h
+@@ -1,6 +1,6 @@
+ /*
+     libparted
+-    Copyright (C) 1998-2001, 2007, 2009-2012 Free Software Foundation, Inc.
++    Copyright (C) 1998-2001, 2007, 2009-2013 Free Software Foundation, Inc.
+ 
+     This program is free software; you can redistribute it and/or modify
+     it under the terms of the GNU General Public License as published by
+diff --git a/libparted/fs/r/fat/fatio.c b/libparted/fs/r/fat/fatio.c
+index f0b8724..75dca0c 100644
+--- a/libparted/fs/r/fat/fatio.c
++++ b/libparted/fs/r/fat/fatio.c
+@@ -1,6 +1,6 @@
+ /*
+     libparted
+-    Copyright (C) 1998-2000, 2007, 2009-2012 Free Software Foundation, Inc.
++    Copyright (C) 1998-2000, 2007, 2009-2013 Free Software Foundation, Inc.
+ 
+     This program is free software; you can redistribute it and/or modify
+     it under the terms of the GNU General Public License as published by
+diff --git a/libparted/fs/r/fat/fatio.h b/libparted/fs/r/fat/fatio.h
+index c7c6b26..f23ab01 100644
+--- a/libparted/fs/r/fat/fatio.h
++++ b/libparted/fs/r/fat/fatio.h
+@@ -1,6 +1,6 @@
+ /*
+     libparted
+-    Copyright (C) 1998-2000, 2007, 2009-2012 Free Software Foundation, Inc.
++    Copyright (C) 1998-2000, 2007, 2009-2013 Free Software Foundation, Inc.
+ 
+     This program is free software; you can redistribute it and/or modify
+     it under the terms of the GNU General Public License as published by
+diff --git a/libparted/fs/r/fat/resize.c b/libparted/fs/r/fat/resize.c
+index 867448f..2b68a8b 100644
+--- a/libparted/fs/r/fat/resize.c
++++ b/libparted/fs/r/fat/resize.c
+@@ -1,6 +1,6 @@
+ /*
+     libparted
+-    Copyright (C) 1998-2000, 2007-2012 Free Software Foundation, Inc.
++    Copyright (C) 1998-2000, 2007-2013 Free Software Foundation, Inc.
+ 
+     This program is free software; you can redistribute it and/or modify
+     it under the terms of the GNU General Public License as published by
+diff --git a/libparted/fs/r/fat/table.c b/libparted/fs/r/fat/table.c
+index 61092bd..974dea8 100644
+--- a/libparted/fs/r/fat/table.c
++++ b/libparted/fs/r/fat/table.c
+@@ -1,6 +1,6 @@
+ /*
+     libparted
+-    Copyright (C) 1998-2000, 2007-2012 Free Software Foundation, Inc.
++    Copyright (C) 1998-2000, 2007-2013 Free Software Foundation, Inc.
+ 
+     This program is free software; you can redistribute it and/or modify
+     it under the terms of the GNU General Public License as published by
+diff --git a/libparted/fs/r/fat/table.h b/libparted/fs/r/fat/table.h
+index d507fea..16180f1 100644
+--- a/libparted/fs/r/fat/table.h
++++ b/libparted/fs/r/fat/table.h
+@@ -1,6 +1,6 @@
+ /*
+     libparted
+-    Copyright (C) 1998-2000, 2007, 2009-2012 Free Software Foundation, Inc.
++    Copyright (C) 1998-2000, 2007, 2009-2013 Free Software Foundation, Inc.
+ 
+     This program is free software; you can redistribute it and/or modify
+     it under the terms of the GNU General Public License as published by
+diff --git a/libparted/fs/r/fat/traverse.c b/libparted/fs/r/fat/traverse.c
+index a120f4e..623b6a9 100644
+--- a/libparted/fs/r/fat/traverse.c
++++ b/libparted/fs/r/fat/traverse.c
+@@ -1,6 +1,6 @@
+ /*
+     libparted
+-    Copyright (C) 1998-2000, 2005, 2007-2012 Free Software Foundation, Inc.
++    Copyright (C) 1998-2000, 2005, 2007-2013 Free Software Foundation, Inc.
+ 
+     This program is free software; you can redistribute it and/or modify
+     it under the terms of the GNU General Public License as published by
+diff --git a/libparted/fs/r/fat/traverse.h b/libparted/fs/r/fat/traverse.h
+index 1f731b9..95633cb 100644
+--- a/libparted/fs/r/fat/traverse.h
++++ b/libparted/fs/r/fat/traverse.h
+@@ -1,6 +1,6 @@
+ /*
+     libparted
+-    Copyright (C) 1998-2000, 2007-2012 Free Software Foundation, Inc.
++    Copyright (C) 1998-2000, 2007-2013 Free Software Foundation, Inc.
+ 
+     This program is free software; you can redistribute it and/or modify
+     it under the terms of the GNU General Public License as published by
+diff --git a/libparted/fs/r/filesys.c b/libparted/fs/r/filesys.c
+index 7bffea0..4b8b831 100644
+--- a/libparted/fs/r/filesys.c
++++ b/libparted/fs/r/filesys.c
+@@ -1,5 +1,5 @@
+ /* libparted - a library for manipulating disk partitions
+-    Copyright (C) 1999-2001, 2007-2012 Free Software Foundation, Inc.
++    Copyright (C) 1999-2001, 2007-2013 Free Software Foundation, Inc.
+ 
+     This program is free software; you can redistribute it and/or modify
+     it under the terms of the GNU General Public License as published by
+diff --git a/libparted/fs/r/hfs/advfs.c b/libparted/fs/r/hfs/advfs.c
+index 337c449..b5609d6 100644
+--- a/libparted/fs/r/hfs/advfs.c
++++ b/libparted/fs/r/hfs/advfs.c
+@@ -1,6 +1,6 @@
+ /*
+     libparted - a library for manipulating disk partitions
+-    Copyright (C) 2004-2005, 2007, 2009-2012 Free Software Foundation, Inc.
++    Copyright (C) 2004-2005, 2007, 2009-2013 Free Software Foundation, Inc.
+ 
+     This program is free software; you can redistribute it and/or modify
+     it under the terms of the GNU General Public License as published by
+diff --git a/libparted/fs/r/hfs/advfs.h b/libparted/fs/r/hfs/advfs.h
+index 260e432..434d215 100644
+--- a/libparted/fs/r/hfs/advfs.h
++++ b/libparted/fs/r/hfs/advfs.h
+@@ -1,6 +1,6 @@
+ /*
+     libparted - a library for manipulating disk partitions
+-    Copyright (C) 2004, 2007, 2009-2012 Free Software Foundation, Inc.
++    Copyright (C) 2004, 2007, 2009-2013 Free Software Foundation, Inc.
+ 
+     This program is free software; you can redistribute it and/or modify
+     it under the terms of the GNU General Public License as published by
+diff --git a/libparted/fs/r/hfs/advfs_plus.c b/libparted/fs/r/hfs/advfs_plus.c
+index b7f2415..b7a95d1 100644
+--- a/libparted/fs/r/hfs/advfs_plus.c
++++ b/libparted/fs/r/hfs/advfs_plus.c
+@@ -1,6 +1,6 @@
+ /*
+     libparted - a library for manipulating disk partitions
+-    Copyright (C) 2004-2005, 2007, 2009-2012 Free Software Foundation, Inc.
++    Copyright (C) 2004-2005, 2007, 2009-2013 Free Software Foundation, Inc.
+ 
+     This program is free software; you can redistribute it and/or modify
+     it under the terms of the GNU General Public License as published by
+diff --git a/libparted/fs/r/hfs/advfs_plus.h b/libparted/fs/r/hfs/advfs_plus.h
+index 974e421..2825c54 100644
+--- a/libparted/fs/r/hfs/advfs_plus.h
++++ b/libparted/fs/r/hfs/advfs_plus.h
+@@ -1,6 +1,6 @@
+ /*
+     libparted - a library for manipulating disk partitions
+-    Copyright (C) 2004, 2007, 2009-2012 Free Software Foundation, Inc.
++    Copyright (C) 2004, 2007, 2009-2013 Free Software Foundation, Inc.
+ 
+     This program is free software; you can redistribute it and/or modify
+     it under the terms of the GNU General Public License as published by
+diff --git a/libparted/fs/r/hfs/cache.c b/libparted/fs/r/hfs/cache.c
+index 6c5a7c7..45d8d93 100644
+--- a/libparted/fs/r/hfs/cache.c
++++ b/libparted/fs/r/hfs/cache.c
+@@ -1,6 +1,6 @@
+ /*
+     libparted - a library for manipulating disk partitions
+-    Copyright (C) 2004-2005, 2007, 2009-2012 Free Software Foundation, Inc.
++    Copyright (C) 2004-2005, 2007, 2009-2013 Free Software Foundation, Inc.
+ 
+     This program is free software; you can redistribute it and/or modify
+     it under the terms of the GNU General Public License as published by
+diff --git a/libparted/fs/r/hfs/cache.h b/libparted/fs/r/hfs/cache.h
+index afcba62..6196698 100644
+--- a/libparted/fs/r/hfs/cache.h
++++ b/libparted/fs/r/hfs/cache.h
+@@ -1,6 +1,6 @@
+ /*
+     libparted - a library for manipulating disk partitions
+-    Copyright (C) 2004-2005, 2007, 2009-2012 Free Software Foundation, Inc.
++    Copyright (C) 2004-2005, 2007, 2009-2013 Free Software Foundation, Inc.
+ 
+     This program is free software; you can redistribute it and/or modify
+     it under the terms of the GNU General Public License as published by
+diff --git a/libparted/fs/r/hfs/file.c b/libparted/fs/r/hfs/file.c
+index ab6344d..70ad3ab 100644
+--- a/libparted/fs/r/hfs/file.c
++++ b/libparted/fs/r/hfs/file.c
+@@ -1,6 +1,6 @@
+ /*
+     libparted - a library for manipulating disk partitions
+-    Copyright (C) 2004-2005, 2007, 2009-2012 Free Software Foundation, Inc.
++    Copyright (C) 2004-2005, 2007, 2009-2013 Free Software Foundation, Inc.
+ 
+     This program is free software; you can redistribute it and/or modify
+     it under the terms of the GNU General Public License as published by
+diff --git a/libparted/fs/r/hfs/file.h b/libparted/fs/r/hfs/file.h
+index f778745..f8a6594 100644
+--- a/libparted/fs/r/hfs/file.h
++++ b/libparted/fs/r/hfs/file.h
+@@ -1,6 +1,6 @@
+ /*
+     libparted - a library for manipulating disk partitions
+-    Copyright (C) 2004, 2007, 2009-2012 Free Software Foundation, Inc.
++    Copyright (C) 2004, 2007, 2009-2013 Free Software Foundation, Inc.
+ 
+     This program is free software; you can redistribute it and/or modify
+     it under the terms of the GNU General Public License as published by
+diff --git a/libparted/fs/r/hfs/file_plus.c b/libparted/fs/r/hfs/file_plus.c
+index 9a7c905..2a271da 100644
+--- a/libparted/fs/r/hfs/file_plus.c
++++ b/libparted/fs/r/hfs/file_plus.c
+@@ -1,6 +1,6 @@
+ /*
+     libparted - a library for manipulating disk partitions
+-    Copyright (C) 2004-2005, 2007, 2009-2012 Free Software Foundation, Inc.
++    Copyright (C) 2004-2005, 2007, 2009-2013 Free Software Foundation, Inc.
+ 
+     This program is free software; you can redistribute it and/or modify
+     it under the terms of the GNU General Public License as published by
+diff --git a/libparted/fs/r/hfs/file_plus.h b/libparted/fs/r/hfs/file_plus.h
+index 19aedf4..0d0c910 100644
+--- a/libparted/fs/r/hfs/file_plus.h
++++ b/libparted/fs/r/hfs/file_plus.h
+@@ -1,6 +1,6 @@
+ /*
+     libparted - a library for manipulating disk partitions
+-    Copyright (C) 2004, 2007, 2009-2012 Free Software Foundation, Inc.
++    Copyright (C) 2004, 2007, 2009-2013 Free Software Foundation, Inc.
+ 
+     This program is free software; you can redistribute it and/or modify
+     it under the terms of the GNU General Public License as published by
+diff --git a/libparted/fs/r/hfs/hfs.c b/libparted/fs/r/hfs/hfs.c
+index f7f98f4..26c789a 100644
+--- a/libparted/fs/r/hfs/hfs.c
++++ b/libparted/fs/r/hfs/hfs.c
+@@ -1,6 +1,6 @@
+ /*
+     libparted - a library for manipulating disk partitions
+-    Copyright (C) 2000, 2003-2005, 2007, 2009-2012 Free Software Foundation,
++    Copyright (C) 2000, 2003-2005, 2007, 2009-2013 Free Software Foundation,
+     Inc.
+ 
+     This program is free software; you can redistribute it and/or modify
+diff --git a/libparted/fs/r/hfs/hfs.h b/libparted/fs/r/hfs/hfs.h
+index 4e15e79..c3c79d8 100644
+--- a/libparted/fs/r/hfs/hfs.h
++++ b/libparted/fs/r/hfs/hfs.h
+@@ -1,6 +1,6 @@
+ /*
+     libparted - a library for manipulating disk partitions
+-    Copyright (C) 2003-2005, 2007, 2009-2012 Free Software Foundation, Inc.
++    Copyright (C) 2003-2005, 2007, 2009-2013 Free Software Foundation, Inc.
+ 
+     This program is free software; you can redistribute it and/or modify
+     it under the terms of the GNU General Public License as published by
+diff --git a/libparted/fs/r/hfs/journal.c b/libparted/fs/r/hfs/journal.c
+index 80eb6d0..54a065d 100644
+--- a/libparted/fs/r/hfs/journal.c
++++ b/libparted/fs/r/hfs/journal.c
+@@ -1,6 +1,6 @@
+ /*
+     libparted - a library for manipulating disk partitions
+-    Copyright (C) 2004-2005, 2007, 2009-2012 Free Software Foundation, Inc.
++    Copyright (C) 2004-2005, 2007, 2009-2013 Free Software Foundation, Inc.
+ 
+     This program is free software; you can redistribute it and/or modify
+     it under the terms of the GNU General Public License as published by
+diff --git a/libparted/fs/r/hfs/journal.h b/libparted/fs/r/hfs/journal.h
+index b130874..12551c4 100644
+--- a/libparted/fs/r/hfs/journal.h
++++ b/libparted/fs/r/hfs/journal.h
+@@ -1,6 +1,6 @@
+ /*
+     libparted - a library for manipulating disk partitions
+-    Copyright (C) 2004, 2007, 2009-2012 Free Software Foundation, Inc.
++    Copyright (C) 2004, 2007, 2009-2013 Free Software Foundation, Inc.
+ 
+     This program is free software; you can redistribute it and/or modify
+     it under the terms of the GNU General Public License as published by
+diff --git a/libparted/fs/r/hfs/probe.c b/libparted/fs/r/hfs/probe.c
+index 376a821..76b21dc 100644
+--- a/libparted/fs/r/hfs/probe.c
++++ b/libparted/fs/r/hfs/probe.c
+@@ -1,6 +1,6 @@
+ /*
+     libparted - a library for manipulating disk partitions
+-    Copyright (C) 2004-2005, 2007, 2009-2012 Free Software Foundation, Inc.
++    Copyright (C) 2004-2005, 2007, 2009-2013 Free Software Foundation, Inc.
+ 
+     This program is free software; you can redistribute it and/or modify
+     it under the terms of the GNU General Public License as published by
+diff --git a/libparted/fs/r/hfs/probe.h b/libparted/fs/r/hfs/probe.h
+index ba754bb..c779843 100644
+--- a/libparted/fs/r/hfs/probe.h
++++ b/libparted/fs/r/hfs/probe.h
+@@ -1,6 +1,6 @@
+ /*
+     libparted - a library for manipulating disk partitions
+-    Copyright (C) 2004-2005, 2007, 2009-2012 Free Software Foundation, Inc.
++    Copyright (C) 2004-2005, 2007, 2009-2013 Free Software Foundation, Inc.
+ 
+     This program is free software; you can redistribute it and/or modify
+     it under the terms of the GNU General Public License as published by
+diff --git a/libparted/fs/r/hfs/reloc.c b/libparted/fs/r/hfs/reloc.c
+index e3b6b40..abc6b1b 100644
+--- a/libparted/fs/r/hfs/reloc.c
++++ b/libparted/fs/r/hfs/reloc.c
+@@ -1,6 +1,6 @@
+ /*
+     libparted - a library for manipulating disk partitions
+-    Copyright (C) 2004-2005, 2007, 2009-2012 Free Software Foundation, Inc.
++    Copyright (C) 2004-2005, 2007, 2009-2013 Free Software Foundation, Inc.
+ 
+     This program is free software; you can redistribute it and/or modify
+     it under the terms of the GNU General Public License as published by
+diff --git a/libparted/fs/r/hfs/reloc.h b/libparted/fs/r/hfs/reloc.h
+index 294e158..a5fccaf 100644
+--- a/libparted/fs/r/hfs/reloc.h
++++ b/libparted/fs/r/hfs/reloc.h
+@@ -1,6 +1,6 @@
+ /*
+     libparted - a library for manipulating disk partitions
+-    Copyright (C) 2004, 2007, 2009-2012 Free Software Foundation, Inc.
++    Copyright (C) 2004, 2007, 2009-2013 Free Software Foundation, Inc.
+ 
+     This program is free software; you can redistribute it and/or modify
+     it under the terms of the GNU General Public License as published by
+diff --git a/libparted/fs/r/hfs/reloc_plus.c b/libparted/fs/r/hfs/reloc_plus.c
+index c566e72..6c2408c 100644
+--- a/libparted/fs/r/hfs/reloc_plus.c
++++ b/libparted/fs/r/hfs/reloc_plus.c
+@@ -1,6 +1,6 @@
+ /*
+     libparted - a library for manipulating disk partitions
+-    Copyright (C) 2004-2005, 2007, 2009-2012 Free Software Foundation, Inc.
++    Copyright (C) 2004-2005, 2007, 2009-2013 Free Software Foundation, Inc.
+ 
+     This program is free software; you can redistribute it and/or modify
+     it under the terms of the GNU General Public License as published by
+diff --git a/libparted/fs/r/hfs/reloc_plus.h b/libparted/fs/r/hfs/reloc_plus.h
+index afcd750..dc71478 100644
+--- a/libparted/fs/r/hfs/reloc_plus.h
++++ b/libparted/fs/r/hfs/reloc_plus.h
+@@ -1,6 +1,6 @@
+ /*
+     libparted - a library for manipulating disk partitions
+-    Copyright (C) 2004, 2007, 2009-2012 Free Software Foundation, Inc.
++    Copyright (C) 2004, 2007, 2009-2013 Free Software Foundation, Inc.
+ 
+     This program is free software; you can redistribute it and/or modify
+     it under the terms of the GNU General Public License as published by
+diff --git a/libparted/fs/reiserfs/reiserfs.c b/libparted/fs/reiserfs/reiserfs.c
+index 6344152..21d4272 100644
+--- a/libparted/fs/reiserfs/reiserfs.c
++++ b/libparted/fs/reiserfs/reiserfs.c
+@@ -1,6 +1,6 @@
+ /*
+     reiserfs.c -- libparted / libreiserfs glue
+-    Copyright (C) 2001-2002, 2007, 2009-2012 Free Software Foundation, Inc.
++    Copyright (C) 2001-2002, 2007, 2009-2013 Free Software Foundation, Inc.
+ 
+     This program is free software; you can redistribute it and/or modify
+     it under the terms of the GNU General Public License as published by
+diff --git a/libparted/fs/reiserfs/reiserfs.h b/libparted/fs/reiserfs/reiserfs.h
+index 464cd1e..f215b0b 100644
+--- a/libparted/fs/reiserfs/reiserfs.h
++++ b/libparted/fs/reiserfs/reiserfs.h
+@@ -1,6 +1,6 @@
+ /*
+     libparted - a library for manipulating disk partitions
+-    Copyright (C) 2000, 2007, 2009-2012 Free Software Foundation, Inc.
++    Copyright (C) 2000, 2007, 2009-2013 Free Software Foundation, Inc.
+ 
+     This program is free software; you can redistribute it and/or modify
+     it under the terms of the GNU General Public License as published by
+diff --git a/libparted/fs/ufs/ufs.c b/libparted/fs/ufs/ufs.c
+index d9b059d..b668d7b 100644
+--- a/libparted/fs/ufs/ufs.c
++++ b/libparted/fs/ufs/ufs.c
+@@ -1,6 +1,6 @@
+ /*
+     libparted - a library for manipulating disk partitions
+-    Copyright (C) 2001, 2007, 2009-2012 Free Software Foundation, Inc.
++    Copyright (C) 2001, 2007, 2009-2013 Free Software Foundation, Inc.
+ 
+     This program is free software; you can redistribute it and/or modify
+     it under the terms of the GNU General Public License as published by
+diff --git a/libparted/fs/xfs/xfs.c b/libparted/fs/xfs/xfs.c
+index b360abe..0062604 100644
+--- a/libparted/fs/xfs/xfs.c
++++ b/libparted/fs/xfs/xfs.c
+@@ -1,6 +1,6 @@
+ /*
+     libparted - a library for manipulating disk partitions
+-    Copyright (C) 2001, 2009-2012 Free Software Foundation, Inc.
++    Copyright (C) 2001, 2009-2013 Free Software Foundation, Inc.
+ 
+     This program is free software; you can redistribute it and/or modify
+     it under the terms of the GNU General Public License as published by
+diff --git a/libparted/labels/Makefile.am b/libparted/labels/Makefile.am
+index f4e4d27..281dce1 100644
+--- a/libparted/labels/Makefile.am
++++ b/libparted/labels/Makefile.am
+@@ -1,5 +1,5 @@
+ # This file is part of GNU Parted
+-# Copyright (C) 1999-2001, 2007-2012 Free Software Foundation, Inc.
++# Copyright (C) 1999-2001, 2007-2013 Free Software Foundation, Inc.
+ #
+ # This file may be modified and/or distributed without restriction.
+ 
+diff --git a/libparted/labels/aix.c b/libparted/labels/aix.c
+index 897253e..98de112 100644
+--- a/libparted/labels/aix.c
++++ b/libparted/labels/aix.c
+@@ -1,7 +1,7 @@
+ /* -*- Mode: c; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 8 -*-
+ 
+     libparted - a library for manipulating disk partitions
+-    Copyright (C) 2000-2001, 2007-2012 Free Software Foundation, Inc.
++    Copyright (C) 2000-2001, 2007-2013 Free Software Foundation, Inc.
+ 
+     This program is free software; you can redistribute it and/or modify
+     it under the terms of the GNU General Public License as published by
+diff --git a/libparted/labels/bsd.c b/libparted/labels/bsd.c
+index 3970623..79332ab 100644
+--- a/libparted/labels/bsd.c
++++ b/libparted/labels/bsd.c
+@@ -1,7 +1,7 @@
+ /* -*- Mode: c; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 8 -*-
+ 
+     libparted - a library for manipulating disk partitions
+-    Copyright (C) 2000-2001, 2007-2012 Free Software Foundation, Inc.
++    Copyright (C) 2000-2001, 2007-2013 Free Software Foundation, Inc.
+ 
+     This program is free software; you can redistribute it and/or modify
+     it under the terms of the GNU General Public License as published by
+diff --git a/libparted/labels/dasd.c b/libparted/labels/dasd.c
+index c8bd267..a769866 100644
+--- a/libparted/labels/dasd.c
++++ b/libparted/labels/dasd.c
+@@ -1,7 +1,7 @@
+ /* -*- Mode: c; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 8 -*-
+ 
+     libparted - a library for manipulating disk partitions
+-    Copyright (C) 2000-2001, 2007-2012 Free Software Foundation, Inc.
++    Copyright (C) 2000-2001, 2007-2013 Free Software Foundation, Inc.
+ 
+     This program is free software; you can redistribute it and/or modify
+     it under the terms of the GNU General Public License as published by
+diff --git a/libparted/labels/dos.c b/libparted/labels/dos.c
+index 1d3a867..b8c161f 100644
+--- a/libparted/labels/dos.c
++++ b/libparted/labels/dos.c
+@@ -1,6 +1,6 @@
+ /*
+     libparted - a library for manipulating disk partitions
+-    Copyright (C) 1999-2001, 2004-2005, 2007-2012 Free Software Foundation,
++    Copyright (C) 1999-2001, 2004-2005, 2007-2013 Free Software Foundation,
+     Inc.
+ 
+     This program is free software; you can redistribute it and/or modify
+diff --git a/libparted/labels/dvh.c b/libparted/labels/dvh.c
+index f817974..91b9080 100644
+--- a/libparted/labels/dvh.c
++++ b/libparted/labels/dvh.c
+@@ -1,6 +1,6 @@
+ /*
+     libparted - a library for manipulating disk partitions
+-    Copyright (C) 2001-2002, 2005, 2007-2012 Free Software Foundation, Inc.
++    Copyright (C) 2001-2002, 2005, 2007-2013 Free Software Foundation, Inc.
+ 
+     This program is free software; you can redistribute it and/or modify
+     it under the terms of the GNU General Public License as published by
+diff --git a/libparted/labels/loop.c b/libparted/labels/loop.c
+index e96e9e6..ea8f007 100644
+--- a/libparted/labels/loop.c
++++ b/libparted/labels/loop.c
+@@ -1,6 +1,6 @@
+ /*
+     libparted - a library for manipulating disk partitions
+-    Copyright (C) 1999-2000, 2007-2012 Free Software Foundation, Inc.
++    Copyright (C) 1999-2000, 2007-2013 Free Software Foundation, Inc.
+ 
+     This program is free software; you can redistribute it and/or modify
+     it under the terms of the GNU General Public License as published by
+diff --git a/libparted/labels/mac.c b/libparted/labels/mac.c
+index 2485187..f26f8e5 100644
+--- a/libparted/labels/mac.c
++++ b/libparted/labels/mac.c
+@@ -1,6 +1,6 @@
+ /*
+     libparted - a library for manipulating disk partitions
+-    Copyright (C) 2000, 2002, 2004, 2007-2012 Free Software Foundation, Inc.
++    Copyright (C) 2000, 2002, 2004, 2007-2013 Free Software Foundation, Inc.
+ 
+     This program is free software; you can redistribute it and/or modify
+     it under the terms of the GNU General Public License as published by
+diff --git a/libparted/labels/misc.h b/libparted/labels/misc.h
+index cdcc91b..c2ccea1 100644
+--- a/libparted/labels/misc.h
++++ b/libparted/labels/misc.h
+@@ -1,7 +1,7 @@
+ /* -*- Mode: c; indent-tabs-mode: nil -*-
+ 
+     libparted - a library for manipulating disk partitions
+-    Copyright (C) 2007, 2009-2012 Free Software Foundation, Inc.
++    Copyright (C) 2007, 2009-2013 Free Software Foundation, Inc.
+ 
+     This program is free software; you can redistribute it and/or modify
+     it under the terms of the GNU General Public License as published by
+diff --git a/libparted/labels/pc98.c b/libparted/labels/pc98.c
+index 617acab..ad13c0d 100644
+--- a/libparted/labels/pc98.c
++++ b/libparted/labels/pc98.c
+@@ -1,6 +1,6 @@
+ /*
+     libparted - a library for manipulating disk partitions
+-    Copyright (C) 2000-2001, 2007-2012 Free Software Foundation, Inc.
++    Copyright (C) 2000-2001, 2007-2013 Free Software Foundation, Inc.
+ 
+     This program is free software; you can redistribute it and/or modify
+     it under the terms of the GNU General Public License as published by
+diff --git a/libparted/labels/pt-tools.c b/libparted/labels/pt-tools.c
+index 2693151..547b27c 100644
+--- a/libparted/labels/pt-tools.c
++++ b/libparted/labels/pt-tools.c
+@@ -1,5 +1,5 @@
+ /* partition table tools
+-   Copyright (C) 2008-2012 Free Software Foundation, Inc.
++   Copyright (C) 2008-2013 Free Software Foundation, Inc.
+ 
+    This program is free software; you can redistribute it and/or modify
+    it under the terms of the GNU General Public License as published by
+diff --git a/libparted/labels/pt-tools.h b/libparted/labels/pt-tools.h
+index aa31122..7b5c9f5 100644
+--- a/libparted/labels/pt-tools.h
++++ b/libparted/labels/pt-tools.h
+@@ -1,5 +1,5 @@
+ /* libparted - a library for manipulating disk partitions
+-   Copyright (C) 2008-2012 Free Software Foundation, Inc.
++   Copyright (C) 2008-2013 Free Software Foundation, Inc.
+ 
+    This program is free software; you can redistribute it and/or modify
+    it under the terms of the GNU General Public License as published by
+diff --git a/libparted/labels/rdb.c b/libparted/labels/rdb.c
+index 8370351..4cf1463 100644
+--- a/libparted/labels/rdb.c
++++ b/libparted/labels/rdb.c
+@@ -2,7 +2,7 @@
+ 
+     libparted - a library for manipulating disk partitions
+     disk_amiga.c - libparted module to manipulate amiga RDB partition tables.
+-    Copyright (C) 2000-2001, 2004, 2007-2012 Free Software Foundation, Inc.
++    Copyright (C) 2000-2001, 2004, 2007-2013 Free Software Foundation, Inc.
+ 
+     This program is free software; you can redistribute it and/or modify
+     it under the terms of the GNU General Public License as published by
+diff --git a/libparted/labels/sun.c b/libparted/labels/sun.c
+index c7a11b5..245208e 100644
+--- a/libparted/labels/sun.c
++++ b/libparted/labels/sun.c
+@@ -1,7 +1,7 @@
+ /* -*- Mode: c; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 8 -*-
+ 
+     libparted - a library for manipulating disk partitions
+-    Copyright (C) 2000-2001, 2005, 2007-2012 Free Software Foundation, Inc.
++    Copyright (C) 2000-2001, 2005, 2007-2013 Free Software Foundation, Inc.
+ 
+     This program is free software; you can redistribute it and/or modify
+     it under the terms of the GNU General Public License as published by
+diff --git a/libparted/libparted.c b/libparted/libparted.c
+index a6d86f0..9923bfa 100644
+--- a/libparted/libparted.c
++++ b/libparted/libparted.c
+@@ -1,6 +1,6 @@
+ /*
+     libparted - a library for manipulating disk partitions
+-    Copyright (C) 1999-2001, 2007-2012 Free Software Foundation, Inc.
++    Copyright (C) 1999-2001, 2007-2013 Free Software Foundation, Inc.
+ 
+     This program is free software; you can redistribute it and/or modify
+     it under the terms of the GNU General Public License as published by
+diff --git a/libparted/mbr.s b/libparted/mbr.s
+index e30b034..4a1c5dd 100644
+--- a/libparted/mbr.s
++++ b/libparted/mbr.s
+@@ -1,5 +1,5 @@
+ ;   libparted - a library for manipulating disk partitions
+-;   Copyright (C) 1999-2000, 2007, 2009-2012 Free Software Foundation, Inc.
++;   Copyright (C) 1999-2000, 2007, 2009-2013 Free Software Foundation, Inc.
+ ;
+ ;   This program is free software; you can redistribute it and/or modify
+ ;   it under the terms of the GNU General Public License as published by
+diff --git a/libparted/tests/Makefile.am b/libparted/tests/Makefile.am
+index ec01599..bfa5790 100644
+--- a/libparted/tests/Makefile.am
++++ b/libparted/tests/Makefile.am
+@@ -1,5 +1,5 @@
+ # This file is part of GNU Parted
+-# Copyright (C) 1999-2001, 2007-2012 Free Software Foundation, Inc.
++# Copyright (C) 1999-2001, 2007-2013 Free Software Foundation, Inc.
+ #
+ # This file may be modified and/or distributed without restriction.
+ 
+diff --git a/libparted/tests/t1000-label.sh b/libparted/tests/t1000-label.sh
+index 2134721..afa78dd 100755
+--- a/libparted/tests/t1000-label.sh
++++ b/libparted/tests/t1000-label.sh
+@@ -1,7 +1,7 @@
+ #!/bin/sh
+ # run the label unit tests in a directory supporting O_DIRECT
+ 
+-# Copyright (C) 2007-2012 Free Software Foundation, Inc.
++# Copyright (C) 2007-2013 Free Software Foundation, Inc.
+ 
+ # This program is free software; you can redistribute it and/or modify
+ # it under the terms of the GNU General Public License as published by
+diff --git a/libparted/tests/t2000-disk.sh b/libparted/tests/t2000-disk.sh
+index 905ef8b..1f058bd 100755
+--- a/libparted/tests/t2000-disk.sh
++++ b/libparted/tests/t2000-disk.sh
+@@ -1,7 +1,7 @@
+ #!/bin/sh
+ # run the disk unit tests in a directory supporting O_DIRECT
+ 
+-# Copyright (C) 2007-2012 Free Software Foundation, Inc.
++# Copyright (C) 2007-2013 Free Software Foundation, Inc.
+ 
+ # This program is free software; you can redistribute it and/or modify
+ # it under the terms of the GNU General Public License as published by
+diff --git a/libparted/tests/t2100-zerolen.sh b/libparted/tests/t2100-zerolen.sh
+index 6c2d75e..f08c8ad 100755
+--- a/libparted/tests/t2100-zerolen.sh
++++ b/libparted/tests/t2100-zerolen.sh
+@@ -1,7 +1,7 @@
+ #!/bin/sh
+ # run the zerolen unit tests in a directory supporting O_DIRECT
+ 
+-# Copyright (C) 2007-2012 Free Software Foundation, Inc.
++# Copyright (C) 2007-2013 Free Software Foundation, Inc.
+ 
+ # This program is free software; you can redistribute it and/or modify
+ # it under the terms of the GNU General Public License as published by
+diff --git a/libparted/tests/t3000-symlink.sh b/libparted/tests/t3000-symlink.sh
+index 70abec4..338e44a 100755
+--- a/libparted/tests/t3000-symlink.sh
++++ b/libparted/tests/t3000-symlink.sh
+@@ -1,7 +1,7 @@
+ #!/bin/sh
+ # run the /dev/mapper symlink test
+ 
+-# Copyright (C) 2007-2012 Free Software Foundation, Inc.
++# Copyright (C) 2007-2013 Free Software Foundation, Inc.
+ 
+ # This program is free software; you can redistribute it and/or modify
+ # it under the terms of the GNU General Public License as published by
+diff --git a/libparted/timer.c b/libparted/timer.c
+index 390c08e..7999c44 100644
+--- a/libparted/timer.c
++++ b/libparted/timer.c
+@@ -1,6 +1,6 @@
+ /*
+     libparted - a library for manipulating disk partitions
+-    Copyright (C) 2001, 2007, 2009-2012 Free Software Foundation, Inc.
++    Copyright (C) 2001, 2007, 2009-2013 Free Software Foundation, Inc.
+ 
+     This program is free software; you can redistribute it and/or modify
+     it under the terms of the GNU General Public License as published by
+diff --git a/libparted/unit.c b/libparted/unit.c
+index 66f2b6c..e545985 100644
+--- a/libparted/unit.c
++++ b/libparted/unit.c
+@@ -1,6 +1,6 @@
+ /*
+     libparted - a library for manipulating disk partitions
+-    Copyright (C) 2005, 2007, 2009-2012 Free Software Foundation, Inc.
++    Copyright (C) 2005, 2007, 2009-2013 Free Software Foundation, Inc.
+ 
+     This program is free software; you can redistribute it and/or modify
+     it under the terms of the GNU General Public License as published by
+diff --git a/m4/o-direct.m4 b/m4/o-direct.m4
+index a754bf0..f677d37 100644
+--- a/m4/o-direct.m4
++++ b/m4/o-direct.m4
+@@ -3,7 +3,7 @@
+ # The problem is that on systems supporting O_DIRECT, open with O_DIRECT
+ # fails for some file system types (e.g., tmpfs on linux-2.6.21).
+ 
+-# Copyright (C) 2007-2012 Free Software Foundation, Inc.
++# Copyright (C) 2007-2013 Free Software Foundation, Inc.
+ # This file is free software; the Free Software Foundation
+ # gives unlimited permission to copy and/or distribute it,
+ # with or without modifications, as long as this notice is preserved.
+diff --git a/parted/command.c b/parted/command.c
+index 63af343..e91c0c6 100644
+--- a/parted/command.c
++++ b/parted/command.c
+@@ -1,6 +1,6 @@
+ /*
+     parted - a frontend to libparted
+-    Copyright (C) 1999-2000, 2007, 2009-2012 Free Software Foundation, Inc.
++    Copyright (C) 1999-2000, 2007, 2009-2013 Free Software Foundation, Inc.
+ 
+     This program is free software; you can redistribute it and/or modify
+     it under the terms of the GNU General Public License as published by
+diff --git a/parted/command.h b/parted/command.h
+index b602c24..fed7a23 100644
+--- a/parted/command.h
++++ b/parted/command.h
+@@ -1,6 +1,6 @@
+ /*
+     parted - a frontend to libparted
+-    Copyright (C) 1999-2000, 2007, 2009-2012 Free Software Foundation, Inc.
++    Copyright (C) 1999-2000, 2007, 2009-2013 Free Software Foundation, Inc.
+ 
+     This program is free software; you can redistribute it and/or modify
+     it under the terms of the GNU General Public License as published by
+diff --git a/parted/parted.c b/parted/parted.c
+index 789030a..b20d432 100644
+--- a/parted/parted.c
++++ b/parted/parted.c
+@@ -1,6 +1,6 @@
+ /*
+     parted - a frontend to libparted
+-    Copyright (C) 1999-2003, 2005-2012 Free Software Foundation, Inc.
++    Copyright (C) 1999-2003, 2005-2013 Free Software Foundation, Inc.
+ 
+     This program is free software; you can redistribute it and/or modify
+     it under the terms of the GNU General Public License as published by
+diff --git a/parted/strlist.c b/parted/strlist.c
+index 1f90c0e..a7a1b23 100644
+--- a/parted/strlist.c
++++ b/parted/strlist.c
+@@ -1,6 +1,6 @@
+ /*
+     parted - a frontend to libparted
+-    Copyright (C) 1999-2001, 2007, 2009-2012 Free Software Foundation, Inc.
++    Copyright (C) 1999-2001, 2007, 2009-2013 Free Software Foundation, Inc.
+ 
+     This program is free software; you can redistribute it and/or modify
+     it under the terms of the GNU General Public License as published by
+diff --git a/parted/strlist.h b/parted/strlist.h
+index 3808818..6df769b 100644
+--- a/parted/strlist.h
++++ b/parted/strlist.h
+@@ -1,6 +1,6 @@
+ /*
+     parted - a frontend to libparted
+-    Copyright (C) 1999-2001, 2007, 2009-2012 Free Software Foundation, Inc.
++    Copyright (C) 1999-2001, 2007, 2009-2013 Free Software Foundation, Inc.
+ 
+     This program is free software; you can redistribute it and/or modify
+     it under the terms of the GNU General Public License as published by
+diff --git a/parted/table.c b/parted/table.c
+index 8563e3c..6c08fd1 100644
+--- a/parted/table.c
++++ b/parted/table.c
+@@ -3,7 +3,7 @@
+  */
+ /*
+     parted - a frontend to libparted
+-    Copyright (C) 2006-2012 Free Software Foundation, Inc.
++    Copyright (C) 2006-2013 Free Software Foundation, Inc.
+ 
+     This program is free software; you can redistribute it and/or modify
+     it under the terms of the GNU General Public License as published by
+diff --git a/parted/table.h b/parted/table.h
+index 23120c3..12a115a 100644
+--- a/parted/table.h
++++ b/parted/table.h
+@@ -1,6 +1,6 @@
+ /*
+     parted - a frontend to libparted
+-    Copyright (C) 2006-2007, 2009-2012 Free Software Foundation, Inc.
++    Copyright (C) 2006-2007, 2009-2013 Free Software Foundation, Inc.
+ 
+     This program is free software; you can redistribute it and/or modify
+     it under the terms of the GNU General Public License as published by
+diff --git a/parted/ui.c b/parted/ui.c
+index d00c65a..22790bb 100644
+--- a/parted/ui.c
++++ b/parted/ui.c
+@@ -1,6 +1,6 @@
+ /*
+     parted - a frontend to libparted
+-    Copyright (C) 1999-2002, 2006-2012 Free Software Foundation, Inc.
++    Copyright (C) 1999-2002, 2006-2013 Free Software Foundation, Inc.
+ 
+     This program is free software; you can redistribute it and/or modify
+     it under the terms of the GNU General Public License as published by
+diff --git a/parted/ui.h b/parted/ui.h
+index 9c8605a..3c6ebc0 100644
+--- a/parted/ui.h
++++ b/parted/ui.h
+@@ -1,6 +1,6 @@
+ /*
+     parted - a frontend to libparted
+-    Copyright (C) 1999-2001, 2007-2012 Free Software Foundation, Inc.
++    Copyright (C) 1999-2001, 2007-2013 Free Software Foundation, Inc.
+ 
+     This program is free software; you can redistribute it and/or modify
+     it under the terms of the GNU General Public License as published by
+diff --git a/partprobe/partprobe.c b/partprobe/partprobe.c
+index 0919d3f..4da4fb7 100644
+--- a/partprobe/partprobe.c
++++ b/partprobe/partprobe.c
+@@ -1,6 +1,6 @@
+ /*
+     partprobe - informs the OS kernel of partition layout
+-    Copyright (C) 2001-2002, 2007-2012 Free Software Foundation, Inc.
++    Copyright (C) 2001-2002, 2007-2013 Free Software Foundation, Inc.
+ 
+     This program is free software; you can redistribute it and/or modify
+     it under the terms of the GNU General Public License as published by
+diff --git a/po/POTFILES.in b/po/POTFILES.in
+index 6eefa26..a09d7e9 100644
+--- a/po/POTFILES.in
++++ b/po/POTFILES.in
+@@ -1,5 +1,5 @@
+ # libparted
+-# Copyright (C) 1999-2001, 2006-2012 Free Software Foundation, Inc.
++# Copyright (C) 1999-2001, 2006-2013 Free Software Foundation, Inc.
+ # This file may be modified and/or copied without restriction.
+ 
+ # list of files containing translatable strings
+diff --git a/scripts/extract_symvers b/scripts/extract_symvers
+index e62693d..06b2525 100755
+--- a/scripts/extract_symvers
++++ b/scripts/extract_symvers
+@@ -1,6 +1,6 @@
+ #!/bin/sh
+ 
+-# Copyright (C) 2002-2003, 2007, 2009-2012 Free Software Foundation, Inc.
++# Copyright (C) 2002-2003, 2007, 2009-2013 Free Software Foundation, Inc.
+ #
+ # This file is part of the GNU ISO C++ Library.  This library is free
+ # software; you can redistribute it and/or modify it under the
+diff --git a/scripts/update-po b/scripts/update-po
+index 599aef9..e860f65 100755
+--- a/scripts/update-po
++++ b/scripts/update-po
+@@ -2,7 +2,7 @@
+ 
+ # Bootstrap this package from CVS.
+ 
+-# Copyright (C) 2003-2007, 2009-2012 Free Software Foundation, Inc.
++# Copyright (C) 2003-2007, 2009-2013 Free Software Foundation, Inc.
+ 
+ # This program is free software; you can redistribute it and/or modify
+ # it under the terms of the GNU General Public License as published by
+diff --git a/tests/help-version.sh b/tests/help-version.sh
+index 8b11824..b8053d4 100755
+--- a/tests/help-version.sh
++++ b/tests/help-version.sh
+@@ -2,7 +2,7 @@
+ # Make sure all these programs work properly
+ # when invoked with --help or --version.
+ 
+-# Copyright (C) 2000-2012 Free Software Foundation, Inc.
++# Copyright (C) 2000-2013 Free Software Foundation, Inc.
+ 
+ # This program is free software: you can redistribute it and/or modify
+ # it under the terms of the GNU General Public License as published by
+diff --git a/tests/init.sh b/tests/init.sh
+index 5f6e638..bd2048e 100644
+--- a/tests/init.sh
++++ b/tests/init.sh
+@@ -1,6 +1,6 @@
+ # source this file; set up for tests
+ 
+-# Copyright (C) 2009-2012 Free Software Foundation, Inc.
++# Copyright (C) 2009-2013 Free Software Foundation, Inc.
+ 
+ # This program is free software: you can redistribute it and/or modify
+ # it under the terms of the GNU General Public License as published by
+diff --git a/tests/t0000-basic.sh b/tests/t0000-basic.sh
+index 8178ff3..4aca28b 100755
+--- a/tests/t0000-basic.sh
++++ b/tests/t0000-basic.sh
+@@ -1,7 +1,7 @@
+ #!/bin/sh
+ # Ensure that a simple command using -s succeeds with no prompt
+ 
+-# Copyright (C) 2007, 2009-2012 Free Software Foundation, Inc.
++# Copyright (C) 2007, 2009-2013 Free Software Foundation, Inc.
+ 
+ # This program is free software; you can redistribute it and/or modify
+ # it under the terms of the GNU General Public License as published by
+diff --git a/tests/t0001-tiny.sh b/tests/t0001-tiny.sh
+index 977433e..f3d7b6c 100755
+--- a/tests/t0001-tiny.sh
++++ b/tests/t0001-tiny.sh
+@@ -1,7 +1,7 @@
+ #!/bin/sh
+ # operate on a very small (1-sector) "disk"
+ 
+-# Copyright (C) 2009-2012 Free Software Foundation, Inc.
++# Copyright (C) 2009-2013 Free Software Foundation, Inc.
+ 
+ # This program is free software; you can redistribute it and/or modify
+ # it under the terms of the GNU General Public License as published by
+diff --git a/tests/t0010-script-no-ctrl-chars.sh b/tests/t0010-script-no-ctrl-chars.sh
+index 7ee43a1..947f608 100755
+--- a/tests/t0010-script-no-ctrl-chars.sh
++++ b/tests/t0010-script-no-ctrl-chars.sh
+@@ -1,7 +1,7 @@
+ #!/bin/sh
+ # Ensure that printing with -s outputs no readline control chars
+ 
+-# Copyright (C) 2009-2012 Free Software Foundation, Inc.
++# Copyright (C) 2009-2013 Free Software Foundation, Inc.
+ 
+ # This program is free software; you can redistribute it and/or modify
+ # it under the terms of the GNU General Public License as published by
+diff --git a/tests/t0100-print.sh b/tests/t0100-print.sh
+index 41d4060..d23cfea 100755
+--- a/tests/t0100-print.sh
++++ b/tests/t0100-print.sh
+@@ -1,6 +1,6 @@
+ #!/bin/sh
+ # the most basic 'print' test
+-# Copyright (C) 2007, 2009-2012 Free Software Foundation, Inc.
++# Copyright (C) 2007, 2009-2013 Free Software Foundation, Inc.
+ 
+ # This program is free software; you can redistribute it and/or modify
+ # it under the terms of the GNU General Public License as published by
+diff --git a/tests/t0101-print-empty.sh b/tests/t0101-print-empty.sh
+index 7833a6d..75b5aa5 100755
+--- a/tests/t0101-print-empty.sh
++++ b/tests/t0101-print-empty.sh
+@@ -1,6 +1,6 @@
+ #!/bin/sh
+ # test 'parted $dev print' on empty device (without label)
+-# Copyright (C) 2011-2012 Free Software Foundation, Inc.
++# Copyright (C) 2011-2013 Free Software Foundation, Inc.
+ 
+ # This program is free software; you can redistribute it and/or modify
+ # it under the terms of the GNU General Public License as published by
+diff --git a/tests/t0200-gpt.sh b/tests/t0200-gpt.sh
+index 62d6a23..36f6cd4 100755
+--- a/tests/t0200-gpt.sh
++++ b/tests/t0200-gpt.sh
+@@ -1,7 +1,7 @@
+ #!/bin/sh
+ # Ensure that printing a GPT partition table does not modify it.
+ 
+-# Copyright (C) 2009-2012 Free Software Foundation, Inc.
++# Copyright (C) 2009-2013 Free Software Foundation, Inc.
+ 
+ # This program is free software; you can redistribute it and/or modify
+ # it under the terms of the GNU General Public License as published by
+diff --git a/tests/t0201-gpt.sh b/tests/t0201-gpt.sh
+index 4223ab5..edf99b8 100755
+--- a/tests/t0201-gpt.sh
++++ b/tests/t0201-gpt.sh
+@@ -2,7 +2,7 @@
+ # avoid failed assertion when creating a GPT on top of an old one for a
+ # larger device
+ 
+-# Copyright (C) 2009-2012 Free Software Foundation, Inc.
++# Copyright (C) 2009-2013 Free Software Foundation, Inc.
+ 
+ # This program is free software; you can redistribute it and/or modify
+ # it under the terms of the GNU General Public License as published by
+diff --git a/tests/t0202-gpt-pmbr.sh b/tests/t0202-gpt-pmbr.sh
+index 07866f3..f5d5dc8 100755
+--- a/tests/t0202-gpt-pmbr.sh
++++ b/tests/t0202-gpt-pmbr.sh
+@@ -1,7 +1,7 @@
+ #!/bin/sh
+ # Preserve first 446B of the Protected MBR for gpt partitions.
+ 
+-# Copyright (C) 2009-2012 Free Software Foundation, Inc.
++# Copyright (C) 2009-2013 Free Software Foundation, Inc.
+ 
+ # This program is free software; you can redistribute it and/or modify
+ # it under the terms of the GNU General Public License as published by
+diff --git a/tests/t0203-gpt-create-on-min-sized-device.sh b/tests/t0203-gpt-create-on-min-sized-device.sh
+index 4cec64c..da291df 100644
+--- a/tests/t0203-gpt-create-on-min-sized-device.sh
++++ b/tests/t0203-gpt-create-on-min-sized-device.sh
+@@ -2,7 +2,7 @@
+ # parted 3.1 and prior would exit with no diagnostic when failing
+ # to create a GPT partition table on a device that was too small.
+ 
+-# Copyright (C) 2012 Free Software Foundation, Inc.
++# Copyright (C) 2012-2013 Free Software Foundation, Inc.
+ 
+ # This program is free software; you can redistribute it and/or modify
+ # it under the terms of the GNU General Public License as published by
+diff --git a/tests/t0203-gpt-shortened-device-primary-valid.sh b/tests/t0203-gpt-shortened-device-primary-valid.sh
+index f59d869..1c8e48e 100755
+--- a/tests/t0203-gpt-shortened-device-primary-valid.sh
++++ b/tests/t0203-gpt-shortened-device-primary-valid.sh
+@@ -2,7 +2,7 @@
+ # Demonstrate that placing a valid gpt-labeled image on a shorter device
+ # does not invalidate the primary GPT header.
+ 
+-# Copyright (C) 2012 Free Software Foundation, Inc.
++# Copyright (C) 2012-2013 Free Software Foundation, Inc.
+ 
+ # This program is free software; you can redistribute it and/or modify
+ # it under the terms of the GNU General Public License as published by
+diff --git a/tests/t0203-gpt-tiny-device-abort.sh b/tests/t0203-gpt-tiny-device-abort.sh
+index bf281ff..27bb6b1 100644
+--- a/tests/t0203-gpt-tiny-device-abort.sh
++++ b/tests/t0203-gpt-tiny-device-abort.sh
+@@ -2,7 +2,7 @@
+ # parted before 3.1 could abort while reading a pathologically small device
+ # with a valid primary GPT header but no room for the backup header.
+ 
+-# Copyright (C) 2009-2012 Free Software Foundation, Inc.
++# Copyright (C) 2009-2013 Free Software Foundation, Inc.
+ 
+ # This program is free software; you can redistribute it and/or modify
+ # it under the terms of the GNU General Public License as published by
+diff --git a/tests/t0205-gpt-list-clobbers-pmbr.sh b/tests/t0205-gpt-list-clobbers-pmbr.sh
+index 763802b..f12081f 100644
+--- a/tests/t0205-gpt-list-clobbers-pmbr.sh
++++ b/tests/t0205-gpt-list-clobbers-pmbr.sh
+@@ -5,7 +5,7 @@
+ # GPT/MBR table, merely listing the table with Parted-2.1 would clobber
+ # the MBR part.
+ 
+-# Copyright (C) 2010-2012 Free Software Foundation, Inc.
++# Copyright (C) 2010-2013 Free Software Foundation, Inc.
+ 
+ # This program is free software; you can redistribute it and/or modify
+ # it under the terms of the GNU General Public License as published by
+diff --git a/tests/t0206-gpt-print-with-corrupt-primary-clobbers-pmbr.sh b/tests/t0206-gpt-print-with-corrupt-primary-clobbers-pmbr.sh
+index 402451c..ce67880 100755
+--- a/tests/t0206-gpt-print-with-corrupt-primary-clobbers-pmbr.sh
++++ b/tests/t0206-gpt-print-with-corrupt-primary-clobbers-pmbr.sh
+@@ -3,7 +3,7 @@
+ # Much like t0205, but with the addition of a corrupt PTE in primary table,
+ # "parted $device print" would modify $device.
+ 
+-# Copyright (C) 2010-2012 Free Software Foundation, Inc.
++# Copyright (C) 2010-2013 Free Software Foundation, Inc.
+ 
+ # This program is free software; you can redistribute it and/or modify
+ # it under the terms of the GNU General Public License as published by
+diff --git a/tests/t0207-IEC-binary-notation.sh b/tests/t0207-IEC-binary-notation.sh
+index 1298be3..0ff538f 100644
+--- a/tests/t0207-IEC-binary-notation.sh
++++ b/tests/t0207-IEC-binary-notation.sh
+@@ -1,7 +1,7 @@
+ #!/bin/sh
+ # Show how parted treats a starting or ending sector number w/IEC units.
+ 
+-# Copyright (C) 2011-2012 Free Software Foundation, Inc.
++# Copyright (C) 2011-2013 Free Software Foundation, Inc.
+ 
+ # This program is free software; you can redistribute it and/or modify
+ # it under the terms of the GNU General Public License as published by
+diff --git a/tests/t0208-mkpart-end-in-IEC.sh b/tests/t0208-mkpart-end-in-IEC.sh
+index c24818f..33098b4 100644
+--- a/tests/t0208-mkpart-end-in-IEC.sh
++++ b/tests/t0208-mkpart-end-in-IEC.sh
+@@ -2,7 +2,7 @@
+ # Make sure parted mkpart ends the partition one sector before the specified
+ # value if end is specified with IEC units.
+ 
+-# Copyright (C) 2011-2012 Free Software Foundation, Inc.
++# Copyright (C) 2011-2013 Free Software Foundation, Inc.
+ 
+ # This program is free software; you can redistribute it and/or modify
+ # it under the terms of the GNU General Public License as published by
+diff --git a/tests/t0209-gpt-pmbr_boot.sh b/tests/t0209-gpt-pmbr_boot.sh
+index d62d1cd..277a356 100755
+--- a/tests/t0209-gpt-pmbr_boot.sh
++++ b/tests/t0209-gpt-pmbr_boot.sh
+@@ -1,7 +1,7 @@
+ #!/bin/sh
+ # Ensure that pmbr_boot flag can be set
+ 
+-# Copyright (C) 2012 Free Software Foundation, Inc.
++# Copyright (C) 2012-2013 Free Software Foundation, Inc.
+ 
+ # This program is free software; you can redistribute it and/or modify
+ # it under the terms of the GNU General Public License as published by
+diff --git a/tests/t0210-gpt-resized-partition-entry-array.sh b/tests/t0210-gpt-resized-partition-entry-array.sh
+index 29efa16..8854018 100755
+--- a/tests/t0210-gpt-resized-partition-entry-array.sh
++++ b/tests/t0210-gpt-resized-partition-entry-array.sh
+@@ -1,7 +1,7 @@
+ #!/bin/sh
+ # exercise GPT handling of n_partition_array_entries != 128
+ 
+-# Copyright (C) 2009-2012 Free Software Foundation, Inc.
++# Copyright (C) 2009-2013 Free Software Foundation, Inc.
+ 
+ # This program is free software; you can redistribute it and/or modify
+ # it under the terms of the GNU General Public License as published by
+diff --git a/tests/t0211-gpt-rewrite-header.sh b/tests/t0211-gpt-rewrite-header.sh
+index 85fe5a2..58625a2 100644
+--- a/tests/t0211-gpt-rewrite-header.sh
++++ b/tests/t0211-gpt-rewrite-header.sh
+@@ -5,7 +5,7 @@
+ # header to the end of the device.  Before parted-3.1, when it attempted
+ # to do that, starting with a 9-PTE array, it would render the result invalid.
+ 
+-# Copyright (C) 2012 Free Software Foundation, Inc.
++# Copyright (C) 2012-2013 Free Software Foundation, Inc.
+ 
+ # This program is free software; you can redistribute it and/or modify
+ # it under the terms of the GNU General Public License as published by
+diff --git a/tests/t0212-gpt-many-partitions.sh b/tests/t0212-gpt-many-partitions.sh
+index cf0a45d..55591d9 100644
+--- a/tests/t0212-gpt-many-partitions.sh
++++ b/tests/t0212-gpt-many-partitions.sh
+@@ -2,7 +2,7 @@
+ # gpt: create many partitions
+ # Before parted-3.1, this would provoke an invalid free.
+ 
+-# Copyright (C) 2012 Free Software Foundation, Inc.
++# Copyright (C) 2012-2013 Free Software Foundation, Inc.
+ 
+ # This program is free software; you can redistribute it and/or modify
+ # it under the terms of the GNU General Public License as published by
+diff --git a/tests/t0220-gpt-msftres.sh b/tests/t0220-gpt-msftres.sh
+index bd14c84..6ce96e8 100755
+--- a/tests/t0220-gpt-msftres.sh
++++ b/tests/t0220-gpt-msftres.sh
+@@ -1,7 +1,7 @@
+ #!/bin/sh
+ # gpt default "flag" for a partition must not be msftres
+ 
+-# Copyright (C) 2009-2012 Free Software Foundation, Inc.
++# Copyright (C) 2009-2013 Free Software Foundation, Inc.
+ 
+ # This program is free software; you can redistribute it and/or modify
+ # it under the terms of the GNU General Public License as published by
+diff --git a/tests/t0250-gpt.sh b/tests/t0250-gpt.sh
+index 2ab0b69..54b14b3 100755
+--- a/tests/t0250-gpt.sh
++++ b/tests/t0250-gpt.sh
+@@ -1,6 +1,6 @@
+ #!/bin/sh
+ # very basic GPT table
+-# Copyright (C) 2008-2012 Free Software Foundation, Inc.
++# Copyright (C) 2008-2013 Free Software Foundation, Inc.
+ 
+ # This program is free software; you can redistribute it and/or modify
+ # it under the terms of the GNU General Public License as published by
+diff --git a/tests/t0280-gpt-corrupt.sh b/tests/t0280-gpt-corrupt.sh
+index f646a68..80effa0 100755
+--- a/tests/t0280-gpt-corrupt.sh
++++ b/tests/t0280-gpt-corrupt.sh
+@@ -1,7 +1,7 @@
+ #!/bin/sh
+ # corrupt a GPT table; ensure parted takes notice
+ 
+-# Copyright (C) 2009-2012 Free Software Foundation, Inc.
++# Copyright (C) 2009-2013 Free Software Foundation, Inc.
+ 
+ # This program is free software; you can redistribute it and/or modify
+ # it under the terms of the GNU General Public License as published by
+diff --git a/tests/t0300-dos-on-gpt.sh b/tests/t0300-dos-on-gpt.sh
+index fbe8d7c..bd09a93 100755
+--- a/tests/t0300-dos-on-gpt.sh
++++ b/tests/t0300-dos-on-gpt.sh
+@@ -1,7 +1,7 @@
+ #!/bin/sh
+ # avoid segfault creating a dos PT on top of a gpt one
+ 
+-# Copyright (C) 2009-2012 Free Software Foundation, Inc.
++# Copyright (C) 2009-2013 Free Software Foundation, Inc.
+ 
+ # This program is free software; you can redistribute it and/or modify
+ # it under the terms of the GNU General Public License as published by
+diff --git a/tests/t0301-overwrite-gpt-pmbr.sh b/tests/t0301-overwrite-gpt-pmbr.sh
+index e7edb66..30756f6 100755
+--- a/tests/t0301-overwrite-gpt-pmbr.sh
++++ b/tests/t0301-overwrite-gpt-pmbr.sh
+@@ -2,7 +2,7 @@
+ # Test creating a msdos partition over a GPT partition with
+ # fdisk which doesn't remove the GPT partitions, only the PMBR
+ 
+-# Copyright (C) 2009-2012 Free Software Foundation, Inc.
++# Copyright (C) 2009-2013 Free Software Foundation, Inc.
+ 
+ # This program is free software; you can redistribute it and/or modify
+ # it under the terms of the GNU General Public License as published by
+diff --git a/tests/t0350-mac-PT-increases-sector-size.sh b/tests/t0350-mac-PT-increases-sector-size.sh
+index 2dbd8cd..45af404 100644
+--- a/tests/t0350-mac-PT-increases-sector-size.sh
++++ b/tests/t0350-mac-PT-increases-sector-size.sh
+@@ -3,7 +3,7 @@
+ # larger than what the kernel told us (SS) would cause parted to read B
+ # bytes into a smaller, SS-byte buffer, clobbering heap storage.
+ 
+-# Copyright (C) 2012 Free Software Foundation, Inc.
++# Copyright (C) 2012-2013 Free Software Foundation, Inc.
+ 
+ # This program is free software; you can redistribute it and/or modify
+ # it under the terms of the GNU General Public License as published by
+diff --git a/tests/t0400-loop-clobber-infloop.sh b/tests/t0400-loop-clobber-infloop.sh
+index 4e35f75..b1fc32d 100644
+--- a/tests/t0400-loop-clobber-infloop.sh
++++ b/tests/t0400-loop-clobber-infloop.sh
+@@ -1,7 +1,7 @@
+ #!/bin/sh
+ # do not infloop in loop_clobber
+ 
+-# Copyright (C) 2009-2012 Free Software Foundation, Inc.
++# Copyright (C) 2009-2013 Free Software Foundation, Inc.
+ 
+ # This program is free software; you can redistribute it and/or modify
+ # it under the terms of the GNU General Public License as published by
+diff --git a/tests/t0500-dup-clobber.sh b/tests/t0500-dup-clobber.sh
+index a29716d..28c664d 100644
+--- a/tests/t0500-dup-clobber.sh
++++ b/tests/t0500-dup-clobber.sh
+@@ -1,7 +1,7 @@
+ #!/bin/sh
+ # Drive the dup-clobber program.
+ 
+-# Copyright (C) 2009-2012 Free Software Foundation, Inc.
++# Copyright (C) 2009-2013 Free Software Foundation, Inc.
+ 
+ # This program is free software; you can redistribute it and/or modify
+ # it under the terms of the GNU General Public License as published by
+diff --git a/tests/t0501-duplicate.sh b/tests/t0501-duplicate.sh
+index 966e5fb..8affad4 100644
+--- a/tests/t0501-duplicate.sh
++++ b/tests/t0501-duplicate.sh
+@@ -1,7 +1,7 @@
+ #!/bin/sh
+ # Drive the dup-clobber program.
+ 
+-# Copyright (C) 2011-2012 Free Software Foundation, Inc.
++# Copyright (C) 2011-2013 Free Software Foundation, Inc.
+ 
+ # This program is free software; you can redistribute it and/or modify
+ # it under the terms of the GNU General Public License as published by
+diff --git a/tests/t1100-busy-label.sh b/tests/t1100-busy-label.sh
+index 9e371da..a69b1f3 100755
+--- a/tests/t1100-busy-label.sh
++++ b/tests/t1100-busy-label.sh
+@@ -1,7 +1,7 @@
+ #!/bin/sh
+ # partitioning (parted -s DEV mklabel) a busy disk must fail.
+ 
+-# Copyright (C) 2007-2012 Free Software Foundation, Inc.
++# Copyright (C) 2007-2013 Free Software Foundation, Inc.
+ 
+ # This program is free software; you can redistribute it and/or modify
+ # it under the terms of the GNU General Public License as published by
+diff --git a/tests/t1101-busy-partition.sh b/tests/t1101-busy-partition.sh
+index 710c396..81ccdb8 100755
+--- a/tests/t1101-busy-partition.sh
++++ b/tests/t1101-busy-partition.sh
+@@ -2,7 +2,7 @@
+ # test for Debian bug #582818 (http://bugs.debian.org/582818); forbid
+ # the removal of a mounted partition.
+ 
+-# Copyright (C) 2010-2012 Free Software Foundation, Inc.
++# Copyright (C) 2010-2013 Free Software Foundation, Inc.
+ 
+ # This program is free software; you can redistribute it and/or modify
+ # it under the terms of the GNU General Public License as published by
+diff --git a/tests/t1700-probe-fs.sh b/tests/t1700-probe-fs.sh
+index c40bc7a..7ce53d0 100755
+--- a/tests/t1700-probe-fs.sh
++++ b/tests/t1700-probe-fs.sh
+@@ -1,7 +1,7 @@
+ #!/bin/sh
+ # Probe Ext2, Ext3 and Ext4 file systems
+ 
+-# Copyright (C) 2008-2012 Free Software Foundation, Inc.
++# Copyright (C) 2008-2013 Free Software Foundation, Inc.
+ 
+ # This program is free software; you can redistribute it and/or modify
+ # it under the terms of the GNU General Public License as published by
+diff --git a/tests/t2200-dos-label-recog.sh b/tests/t2200-dos-label-recog.sh
+index 478ca67..5ca0010 100755
+--- a/tests/t2200-dos-label-recog.sh
++++ b/tests/t2200-dos-label-recog.sh
+@@ -1,7 +1,7 @@
+ #!/bin/sh
+ # improved MSDOS partition-table recognition
+ 
+-# Copyright (C) 2008-2012 Free Software Foundation, Inc.
++# Copyright (C) 2008-2013 Free Software Foundation, Inc.
+ 
+ # This program is free software; you can redistribute it and/or modify
+ # it under the terms of the GNU General Public License as published by
+diff --git a/tests/t2201-pc98-label-recog.sh b/tests/t2201-pc98-label-recog.sh
+index 8aed7af..83c30df 100755
+--- a/tests/t2201-pc98-label-recog.sh
++++ b/tests/t2201-pc98-label-recog.sh
+@@ -1,7 +1,7 @@
+ #!/bin/sh
+ # Recognize PC98 labeled disks
+ 
+-# Copyright (C) 2011-2012 Free Software Foundation, Inc.
++# Copyright (C) 2011-2013 Free Software Foundation, Inc.
+ 
+ # This program is free software; you can redistribute it and/or modify
+ # it under the terms of the GNU General Public License as published by
+diff --git a/tests/t2300-dos-label-extended-bootcode.sh b/tests/t2300-dos-label-extended-bootcode.sh
+index c2955d4..b0c26bb 100755
+--- a/tests/t2300-dos-label-extended-bootcode.sh
++++ b/tests/t2300-dos-label-extended-bootcode.sh
+@@ -1,7 +1,7 @@
+ #!/bin/sh
+ # Ensure parted preserves bootcode in extended partition.
+ 
+-# Copyright (C) 2009-2012 Free Software Foundation, Inc.
++# Copyright (C) 2009-2013 Free Software Foundation, Inc.
+ 
+ # This program is free software; you can redistribute it and/or modify
+ # it under the terms of the GNU General Public License as published by
+diff --git a/tests/t2310-dos-extended-2-sector-min-offset.sh b/tests/t2310-dos-extended-2-sector-min-offset.sh
+index 17c777c..fe356dd 100644
+--- a/tests/t2310-dos-extended-2-sector-min-offset.sh
++++ b/tests/t2310-dos-extended-2-sector-min-offset.sh
+@@ -4,7 +4,7 @@
+ # Before parted-2.3, it could be made to leave just one, and that
+ # would cause trouble with the Linux kernel.
+ 
+-# Copyright (C) 2010-2012 Free Software Foundation, Inc.
++# Copyright (C) 2010-2013 Free Software Foundation, Inc.
+ 
+ # This program is free software; you can redistribute it and/or modify
+ # it under the terms of the GNU General Public License as published by
+diff --git a/tests/t2400-dos-hfs-partition-type.sh b/tests/t2400-dos-hfs-partition-type.sh
+index 59f2b02..feb43c5 100644
+--- a/tests/t2400-dos-hfs-partition-type.sh
++++ b/tests/t2400-dos-hfs-partition-type.sh
+@@ -1,7 +1,7 @@
+ #!/bin/sh
+ # Ensure that an HFS partition in a dos table gets the right ID
+ 
+-# Copyright (C) 2010-2012 Free Software Foundation, Inc.
++# Copyright (C) 2010-2013 Free Software Foundation, Inc.
+ 
+ # This program is free software; you can redistribute it and/or modify
+ # it under the terms of the GNU General Public License as published by
+diff --git a/tests/t2500-probe-corrupt-hfs.sh b/tests/t2500-probe-corrupt-hfs.sh
+index 9000366..d8a5f1c 100755
+--- a/tests/t2500-probe-corrupt-hfs.sh
++++ b/tests/t2500-probe-corrupt-hfs.sh
+@@ -1,7 +1,7 @@
+ #!/bin/sh
+ # Do not misbehave when probing a corrupt HFS partition.
+ 
+-# Copyright (C) 2011-2012 Free Software Foundation, Inc.
++# Copyright (C) 2011-2013 Free Software Foundation, Inc.
+ 
+ # This program is free software; you can redistribute it and/or modify
+ # it under the terms of the GNU General Public License as published by
+diff --git a/tests/t3000-resize-fs.sh b/tests/t3000-resize-fs.sh
+index 2fd36a5..a518080 100755
+--- a/tests/t3000-resize-fs.sh
++++ b/tests/t3000-resize-fs.sh
+@@ -1,7 +1,7 @@
+ #!/bin/sh
+ # exercise the resize library; FAT and HFS+ only
+ 
+-# Copyright (C) 2009-2012 Free Software Foundation, Inc.
++# Copyright (C) 2009-2013 Free Software Foundation, Inc.
+ 
+ # This program is free software; you can redistribute it and/or modify
+ # it under the terms of the GNU General Public License as published by
+diff --git a/tests/t3200-type-change.sh b/tests/t3200-type-change.sh
+index 2b1ee00..a03fd8c 100755
+--- a/tests/t3200-type-change.sh
++++ b/tests/t3200-type-change.sh
+@@ -1,7 +1,7 @@
+ #!/bin/sh
+ # Ensure parted doesn't change the type of a partition to match its FS.
+ 
+-# Copyright (C) 2009-2012 Free Software Foundation, Inc.
++# Copyright (C) 2009-2013 Free Software Foundation, Inc.
+ 
+ # This program is free software; you can redistribute it and/or modify
+ # it under the terms of the GNU General Public License as published by
+diff --git a/tests/t3300-palo-prep.sh b/tests/t3300-palo-prep.sh
+index c690ad7..4050414 100755
+--- a/tests/t3300-palo-prep.sh
++++ b/tests/t3300-palo-prep.sh
+@@ -1,7 +1,7 @@
+ #!/bin/sh
+ # Ensure that palo and prep types work properly.
+ 
+-# Copyright (C) 2010-2012 Free Software Foundation, Inc.
++# Copyright (C) 2010-2013 Free Software Foundation, Inc.
+ 
+ # This program is free software; you can redistribute it and/or modify
+ # it under the terms of the GNU General Public License as published by
+diff --git a/tests/t3310-flags.sh b/tests/t3310-flags.sh
+index 10997ef..94b2f2a 100644
+--- a/tests/t3310-flags.sh
++++ b/tests/t3310-flags.sh
+@@ -1,7 +1,7 @@
+ #!/bin/sh
+ # Exercise the exclusive, single-bit flags.
+ 
+-# Copyright (C) 2010-2012 Free Software Foundation, Inc.
++# Copyright (C) 2010-2013 Free Software Foundation, Inc.
+ 
+ # This program is free software; you can redistribute it and/or modify
+ # it under the terms of the GNU General Public License as published by
+diff --git a/tests/t3400-whole-disk-FAT-partition.sh b/tests/t3400-whole-disk-FAT-partition.sh
+index d0a1231..68f0479 100755
+--- a/tests/t3400-whole-disk-FAT-partition.sh
++++ b/tests/t3400-whole-disk-FAT-partition.sh
+@@ -1,7 +1,7 @@
+ #!/bin/sh
+ # Ensure that a whole-disk FAT partition is detected.
+ 
+-# Copyright (C) 2010-2012 Free Software Foundation, Inc.
++# Copyright (C) 2010-2013 Free Software Foundation, Inc.
+ 
+ # This program is free software: you can redistribute it and/or modify
+ # it under the terms of the GNU General Public License as published by
+diff --git a/tests/t4000-sun-raid-type.sh b/tests/t4000-sun-raid-type.sh
+index a38000f..66905cf 100755
+--- a/tests/t4000-sun-raid-type.sh
++++ b/tests/t4000-sun-raid-type.sh
+@@ -1,7 +1,7 @@
+ #!/bin/sh
+ # RAID support on sun disk type
+ 
+-# Copyright (C) 2008-2012 Free Software Foundation, Inc.
++# Copyright (C) 2008-2013 Free Software Foundation, Inc.
+ 
+ # This program is free software; you can redistribute it and/or modify
+ # it under the terms of the GNU General Public License as published by
+diff --git a/tests/t4001-sun-vtoc.sh b/tests/t4001-sun-vtoc.sh
+index 328e9ba..090e070 100755
+--- a/tests/t4001-sun-vtoc.sh
++++ b/tests/t4001-sun-vtoc.sh
+@@ -1,7 +1,7 @@
+ #!/bin/sh
+ # Ensure that Sun VTOC is properly initialized.
+ 
+-# Copyright (C) 2009-2012 Free Software Foundation, Inc.
++# Copyright (C) 2009-2013 Free Software Foundation, Inc.
+ 
+ # This program is free software; you can redistribute it and/or modify
+ # it under the terms of the GNU General Public License as published by
+diff --git a/tests/t4100-dvh-partition-limits.sh b/tests/t4100-dvh-partition-limits.sh
+index d885502..a1bc69a 100755
+--- a/tests/t4100-dvh-partition-limits.sh
++++ b/tests/t4100-dvh-partition-limits.sh
+@@ -1,7 +1,7 @@
+ #!/bin/sh
+ # enforce limits on partition start sector and length
+ 
+-# Copyright (C) 2008-2012 Free Software Foundation, Inc.
++# Copyright (C) 2008-2013 Free Software Foundation, Inc.
+ 
+ # This program is free software; you can redistribute it and/or modify
+ # it under the terms of the GNU General Public License as published by
+diff --git a/tests/t4100-msdos-partition-limits.sh b/tests/t4100-msdos-partition-limits.sh
+index ec1854f..65bda25 100755
+--- a/tests/t4100-msdos-partition-limits.sh
++++ b/tests/t4100-msdos-partition-limits.sh
+@@ -1,7 +1,7 @@
+ #!/bin/sh
+ # enforce limits on partition start sector and length
+ 
+-# Copyright (C) 2008-2012 Free Software Foundation, Inc.
++# Copyright (C) 2008-2013 Free Software Foundation, Inc.
+ 
+ # This program is free software; you can redistribute it and/or modify
+ # it under the terms of the GNU General Public License as published by
+diff --git a/tests/t4100-msdos-starting-sector.sh b/tests/t4100-msdos-starting-sector.sh
+index d4facfe..37b9875 100755
+--- a/tests/t4100-msdos-starting-sector.sh
++++ b/tests/t4100-msdos-starting-sector.sh
+@@ -1,7 +1,7 @@
+ #!/bin/sh
+ # Consistency in msdos free space starting sector.
+ 
+-# Copyright (C) 2008-2012 Free Software Foundation, Inc.
++# Copyright (C) 2008-2013 Free Software Foundation, Inc.
+ 
+ # This program is free software; you can redistribute it and/or modify
+ # it under the terms of the GNU General Public License as published by
+diff --git a/tests/t4200-partprobe.sh b/tests/t4200-partprobe.sh
+index 26f0e7e..5ae1a42 100755
+--- a/tests/t4200-partprobe.sh
++++ b/tests/t4200-partprobe.sh
+@@ -1,7 +1,7 @@
+ #!/bin/sh
+ # partprobe must not examine more than 16 partitions
+ 
+-# Copyright (C) 2008-2012 Free Software Foundation, Inc.
++# Copyright (C) 2008-2013 Free Software Foundation, Inc.
+ 
+ # This program is free software; you can redistribute it and/or modify
+ # it under the terms of the GNU General Public License as published by
+diff --git a/tests/t4300-nilfs2-tiny.sh b/tests/t4300-nilfs2-tiny.sh
+index b58e733..523b6bd 100755
+--- a/tests/t4300-nilfs2-tiny.sh
++++ b/tests/t4300-nilfs2-tiny.sh
+@@ -1,7 +1,7 @@
+ #!/bin/sh
+ # Trigger a nilfs2-related bug.
+ 
+-# Copyright (C) 2011-2012 Free Software Foundation, Inc.
++# Copyright (C) 2011-2013 Free Software Foundation, Inc.
+ 
+ # This program is free software; you can redistribute it and/or modify
+ # it under the terms of the GNU General Public License as published by
+diff --git a/tests/t5000-tags.sh b/tests/t5000-tags.sh
+index a5e49a1..1d443c3 100755
+--- a/tests/t5000-tags.sh
++++ b/tests/t5000-tags.sh
+@@ -1,7 +1,7 @@
+ #!/bin/sh
+ # test bios_grub flag in gpt labels
+ 
+-# Copyright (C) 2007-2012 Free Software Foundation, Inc.
++# Copyright (C) 2007-2013 Free Software Foundation, Inc.
+ 
+ # This program is free software; you can redistribute it and/or modify
+ # it under the terms of the GNU General Public License as published by
+diff --git a/tests/t6000-dm.sh b/tests/t6000-dm.sh
+index 8ba0c3e..c301dee 100755
+--- a/tests/t6000-dm.sh
++++ b/tests/t6000-dm.sh
+@@ -1,7 +1,7 @@
+ #!/bin/sh
+ # ensure that parted can distinguish device map types: linear, multipath
+ 
+-# Copyright (C) 2008-2012 Free Software Foundation, Inc.
++# Copyright (C) 2008-2013 Free Software Foundation, Inc.
+ 
+ # This program is free software; you can redistribute it and/or modify
+ # it under the terms of the GNU General Public License as published by
+diff --git a/tests/t6001-psep.sh b/tests/t6001-psep.sh
+index 1859ac9..da6b8a1 100644
+--- a/tests/t6001-psep.sh
++++ b/tests/t6001-psep.sh
+@@ -1,7 +1,7 @@
+ #!/bin/sh
+ # ensure that parted names partitions on dm disks correctly
+ 
+-# Copyright (C) 2011-2012 Free Software Foundation, Inc.
++# Copyright (C) 2011-2013 Free Software Foundation, Inc.
+ 
+ # This program is free software; you can redistribute it and/or modify
+ # it under the terms of the GNU General Public License as published by
+diff --git a/tests/t6002-dm-busy.sh b/tests/t6002-dm-busy.sh
+index 9807b40..c02bf81 100644
+--- a/tests/t6002-dm-busy.sh
++++ b/tests/t6002-dm-busy.sh
+@@ -2,7 +2,7 @@
+ # ensure that parted can alter a partition on a dmraid disk
+ # while another one is mounted
+ 
+-# Copyright (C) 2008-2012 Free Software Foundation, Inc.
++# Copyright (C) 2008-2013 Free Software Foundation, Inc.
+ 
+ # This program is free software; you can redistribute it and/or modify
+ # it under the terms of the GNU General Public License as published by
+diff --git a/tests/t6003-dm-hide.sh b/tests/t6003-dm-hide.sh
+index 59baae9..fce1f31 100644
+--- a/tests/t6003-dm-hide.sh
++++ b/tests/t6003-dm-hide.sh
+@@ -1,7 +1,7 @@
+ #!/bin/sh
+ # ensure that parted -l only shows dmraid device-mapper devices
+ 
+-# Copyright (C) 2008-2012 Free Software Foundation, Inc.
++# Copyright (C) 2008-2013 Free Software Foundation, Inc.
+ 
+ # This program is free software; you can redistribute it and/or modify
+ # it under the terms of the GNU General Public License as published by
+diff --git a/tests/t6100-mdraid-partitions.sh b/tests/t6100-mdraid-partitions.sh
+index aedf69b..e980b5d 100755
+--- a/tests/t6100-mdraid-partitions.sh
++++ b/tests/t6100-mdraid-partitions.sh
+@@ -1,7 +1,7 @@
+ #!/bin/sh
+ # verify that new kernel is informed about partitions on mdraid devices
+ 
+-# Copyright (C) 2011-2012 Free Software Foundation, Inc.
++# Copyright (C) 2011-2013 Free Software Foundation, Inc.
+ 
+ # This program is free software; you can redistribute it and/or modify
+ # it under the terms of the GNU General Public License as published by
+diff --git a/tests/t7000-scripting.sh b/tests/t7000-scripting.sh
+index 859acda..94f5409 100755
+--- a/tests/t7000-scripting.sh
++++ b/tests/t7000-scripting.sh
+@@ -1,7 +1,7 @@
+ #!/bin/sh
+ # Make sure the scripting option works (-s) properly.
+ 
+-# Copyright (C) 2008-2012 Free Software Foundation, Inc.
++# Copyright (C) 2008-2013 Free Software Foundation, Inc.
+ 
+ # This program is free software; you can redistribute it and/or modify
+ # it under the terms of the GNU General Public License as published by
+diff --git a/tests/t8000-loop.sh b/tests/t8000-loop.sh
+index 0939b6f..ca4cdc4 100755
+--- a/tests/t8000-loop.sh
++++ b/tests/t8000-loop.sh
+@@ -1,7 +1,7 @@
+ #!/bin/sh
+ # Test usage of loop devices
+ 
+-# Copyright (C) 2008-2012 Free Software Foundation, Inc.
++# Copyright (C) 2008-2013 Free Software Foundation, Inc.
+ 
+ # This program is free software; you can redistribute it and/or modify
+ # it under the terms of the GNU General Public License as published by
+diff --git a/tests/t8001-loop-blkpg.sh b/tests/t8001-loop-blkpg.sh
+index 9afde4a..ad363ff 100755
+--- a/tests/t8001-loop-blkpg.sh
++++ b/tests/t8001-loop-blkpg.sh
+@@ -1,7 +1,7 @@
+ #!/bin/sh
+ # Test support for partitions on loop devices
+ 
+-# Copyright (C) 2008-2012 Free Software Foundation, Inc.
++# Copyright (C) 2008-2013 Free Software Foundation, Inc.
+ 
+ # This program is free software; you can redistribute it and/or modify
+ # it under the terms of the GNU General Public License as published by
+diff --git a/tests/t9010-big-sector.sh b/tests/t9010-big-sector.sh
+index a81b9ab..4c15327 100755
+--- a/tests/t9010-big-sector.sh
++++ b/tests/t9010-big-sector.sh
+@@ -1,7 +1,7 @@
+ #!/bin/sh
+ # check physical sector size as reported by 'print'
+ 
+-# Copyright (C) 2009-2012 Free Software Foundation, Inc.
++# Copyright (C) 2009-2013 Free Software Foundation, Inc.
+ 
+ # This program is free software; you can redistribute it and/or modify
+ # it under the terms of the GNU General Public License as published by
+diff --git a/tests/t9020-alignment.sh b/tests/t9020-alignment.sh
+index 47b445f..482202f 100755
+--- a/tests/t9020-alignment.sh
++++ b/tests/t9020-alignment.sh
+@@ -1,7 +1,7 @@
+ #!/bin/sh
+ # verify that new alignment-querying functions work
+ 
+-# Copyright (C) 2009-2012 Free Software Foundation, Inc.
++# Copyright (C) 2009-2013 Free Software Foundation, Inc.
+ 
+ # This program is free software; you can redistribute it and/or modify
+ # it under the terms of the GNU General Public License as published by
+diff --git a/tests/t9021-maxima.sh b/tests/t9021-maxima.sh
+index ca10d17..97b5bbe 100755
+--- a/tests/t9021-maxima.sh
++++ b/tests/t9021-maxima.sh
+@@ -1,7 +1,7 @@
+ #!/bin/sh
+ # verify that partition maxima-querying functions work
+ 
+-# Copyright (C) 2009-2012 Free Software Foundation, Inc.
++# Copyright (C) 2009-2013 Free Software Foundation, Inc.
+ 
+ # This program is free software; you can redistribute it and/or modify
+ # it under the terms of the GNU General Public License as published by
+diff --git a/tests/t9022-one-unit-snap.sh b/tests/t9022-one-unit-snap.sh
+index 9ebc53e..844a78f 100644
+--- a/tests/t9022-one-unit-snap.sh
++++ b/tests/t9022-one-unit-snap.sh
+@@ -1,7 +1,7 @@
+ #!/bin/sh
+ # Confirm that specifying 1 unit snaps to the correct value
+ 
+-# Copyright (C) 2011-2012 Free Software Foundation, Inc.
++# Copyright (C) 2011-2013 Free Software Foundation, Inc.
+ 
+ # This program is free software; you can redistribute it and/or modify
+ # it under the terms of the GNU General Public License as published by
+diff --git a/tests/t9023-value-lt-one.sh b/tests/t9023-value-lt-one.sh
+index 8877c7e..cb8fb5f 100644
+--- a/tests/t9023-value-lt-one.sh
++++ b/tests/t9023-value-lt-one.sh
+@@ -1,7 +1,7 @@
+ #!/bin/sh
+ # Confirm that a value between 0 and 1 throws an error
+ 
+-# Copyright (C) 2011-2012 Free Software Foundation, Inc.
++# Copyright (C) 2011-2013 Free Software Foundation, Inc.
+ 
+ # This program is free software; you can redistribute it and/or modify
+ # it under the terms of the GNU General Public License as published by
+diff --git a/tests/t9030-align-check.sh b/tests/t9030-align-check.sh
+index f0830f0..ed88f8b 100644
+--- a/tests/t9030-align-check.sh
++++ b/tests/t9030-align-check.sh
+@@ -1,7 +1,7 @@
+ #!/bin/sh
+ # exercise the align-check command
+ 
+-# Copyright (C) 2009-2012 Free Software Foundation, Inc.
++# Copyright (C) 2009-2013 Free Software Foundation, Inc.
+ 
+ # This program is free software; you can redistribute it and/or modify
+ # it under the terms of the GNU General Public License as published by
+diff --git a/tests/t9040-many-partitions.sh b/tests/t9040-many-partitions.sh
+index 8949310..e9461f6 100644
+--- a/tests/t9040-many-partitions.sh
++++ b/tests/t9040-many-partitions.sh
+@@ -1,7 +1,7 @@
+ #!/bin/sh
+ # Ensure that creating many partitions works.
+ 
+-# Copyright (C) 2010-2012 Free Software Foundation, Inc.
++# Copyright (C) 2010-2013 Free Software Foundation, Inc.
+ 
+ # This program is free software; you can redistribute it and/or modify
+ # it under the terms of the GNU General Public License as published by
+diff --git a/tests/t9041-undetected-in-use-16th-partition.sh b/tests/t9041-undetected-in-use-16th-partition.sh
+index 6ddc7d8..2c4390d 100644
+--- a/tests/t9041-undetected-in-use-16th-partition.sh
++++ b/tests/t9041-undetected-in-use-16th-partition.sh
+@@ -1,7 +1,7 @@
+ #!/bin/sh
+ # Ensure that parted knows when N'th (N>=16) partition is mounted
+ 
+-# Copyright (C) 2010-2012 Free Software Foundation, Inc.
++# Copyright (C) 2010-2013 Free Software Foundation, Inc.
+ 
+ # This program is free software; you can redistribute it and/or modify
+ # it under the terms of the GNU General Public License as published by
+diff --git a/tests/t9042-dos-partition-limit.sh b/tests/t9042-dos-partition-limit.sh
+index 67ea86d..f3f8ced 100644
+--- a/tests/t9042-dos-partition-limit.sh
++++ b/tests/t9042-dos-partition-limit.sh
+@@ -1,7 +1,7 @@
+ #!/bin/sh
+ # Ensure that parted enforces msdos partition limit
+ 
+-# Copyright (C) 2010-2012 Free Software Foundation, Inc.
++# Copyright (C) 2010-2013 Free Software Foundation, Inc.
+ 
+ # This program is free software; you can redistribute it and/or modify
+ # it under the terms of the GNU General Public License as published by
+diff --git a/tests/t9050-partition-table-types.sh b/tests/t9050-partition-table-types.sh
+index 04dc5c6..d73f45e 100755
+--- a/tests/t9050-partition-table-types.sh
++++ b/tests/t9050-partition-table-types.sh
+@@ -3,7 +3,7 @@
+ # I.e., write a partition table of type T, and then overwrite it
+ # with one of type V, for every permutation of T and V.
+ 
+-# Copyright (C) 2011-2012 Free Software Foundation, Inc.
++# Copyright (C) 2011-2013 Free Software Foundation, Inc.
+ 
+ # This program is free software; you can redistribute it and/or modify
+ # it under the terms of the GNU General Public License as published by
+-- 
+1.8.3.1
+
diff --git a/0052-maint-avoid-new-warning-error-with-gcc-4.8.0-2013010.patch b/0052-maint-avoid-new-warning-error-with-gcc-4.8.0-2013010.patch
new file mode 100644
index 0000000..6d631dc
--- /dev/null
+++ b/0052-maint-avoid-new-warning-error-with-gcc-4.8.0-2013010.patch
@@ -0,0 +1,26 @@
+From 1c659d5cc6830c6f4f26660e9049582afbad3fd3 Mon Sep 17 00:00:00 2001
+From: Jim Meyering <jim at meyering.net>
+Date: Sun, 6 Jan 2013 11:37:15 +0100
+Subject: [PATCH 52/69] maint: avoid new warning/error with gcc-4.8.0 20130105
+
+* configure.ac (WERROR_CFLAGS): Disable -Wsuggest-attribute=format.
+It was suggesting to apply the gnu_printf attribute to vsnprintf.
+---
+ configure.ac | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/configure.ac b/configure.ac
+index fef0b53..b04eb3f 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -235,6 +235,7 @@ if test "$gl_gcc_warnings" = yes; then
+   nw="$nw -Wstrict-overflow"        # expr.c, pr.c, tr.c, factor.c
+   nw="$nw -Wstack-protector"        # libparted/label/gpt.c
+   # ?? -Wstrict-overflow
++  nw="$nw -Wsuggest-attribute=format" # suggests to use gnu_printf for vsnprintf
+ 
+   gl_MANYWARN_ALL_GCC([ws])
+   gl_MANYWARN_COMPLEMENT([ws], [$ws], [$nw])
+-- 
+1.8.3.1
+
diff --git a/parted-3.0-libparted-copy-pmbr_boot-when-duplicating-GPT-disk.patch b/0053-libparted-copy-pmbr_boot-when-duplicating-GPT-disk.patch
similarity index 62%
rename from parted-3.0-libparted-copy-pmbr_boot-when-duplicating-GPT-disk.patch
rename to 0053-libparted-copy-pmbr_boot-when-duplicating-GPT-disk.patch
index 4183f7e..0ae35f3 100644
--- a/parted-3.0-libparted-copy-pmbr_boot-when-duplicating-GPT-disk.patch
+++ b/0053-libparted-copy-pmbr_boot-when-duplicating-GPT-disk.patch
@@ -1,18 +1,18 @@
-From 43663f1226da0a6284b5f52f6e2f741473c077b6 Mon Sep 17 00:00:00 2001
+From f29ccfe5b9639d8626db50e9f4ecbe10d6cd7736 Mon Sep 17 00:00:00 2001
 From: "Brian C. Lane" <bcl at redhat.com>
 Date: Fri, 3 Feb 2012 13:03:27 -0800
-Subject: [PATCH] libparted: copy pmbr_boot when duplicating GPT disk
+Subject: [PATCH 53/69] libparted: copy pmbr_boot when duplicating GPT disk
 
 * libparted/labels/gpt.c (gpt_duplicate): copy pmbr_boot flag
 ---
- libparted/labels/gpt.c |    1 +
- 1 files changed, 1 insertions(+), 0 deletions(-)
+ libparted/labels/gpt.c | 1 +
+ 1 file changed, 1 insertion(+)
 
 diff --git a/libparted/labels/gpt.c b/libparted/labels/gpt.c
-index bad9ed4..0f07250 100644
+index 490de70..25490af 100644
 --- a/libparted/labels/gpt.c
 +++ b/libparted/labels/gpt.c
-@@ -562,6 +562,7 @@ gpt_duplicate (const PedDisk *disk)
+@@ -556,6 +556,7 @@ gpt_duplicate (const PedDisk *disk)
                       old_disk_data->data_area.length);
    new_disk_data->entry_count = old_disk_data->entry_count;
    new_disk_data->uuid = old_disk_data->uuid;
@@ -21,5 +21,5 @@ index bad9ed4..0f07250 100644
  }
  
 -- 
-1.7.6.5
+1.8.3.1
 
diff --git a/parted-3.1-test-creating-20-device-mapper-partitions.patch b/0054-tests-test-creating-20-device-mapper-partitions-8031.patch
similarity index 78%
rename from parted-3.1-test-creating-20-device-mapper-partitions.patch
rename to 0054-tests-test-creating-20-device-mapper-partitions-8031.patch
index 8a860e7..2a1e6d0 100644
--- a/parted-3.1-test-creating-20-device-mapper-partitions.patch
+++ b/0054-tests-test-creating-20-device-mapper-partitions-8031.patch
@@ -1,33 +1,34 @@
-From 166491bd870df6877e04831c9da593e2f8e77ca8 Mon Sep 17 00:00:00 2001
+From 516c821481540ca74490ce3374eac2f801c4908d Mon Sep 17 00:00:00 2001
 From: "Brian C. Lane" <bcl at redhat.com>
 Date: Thu, 19 Apr 2012 17:11:09 -0700
-Subject: [PATCH] tests: test creating 20 device-mapper partitions (#803108)
+Subject: [PATCH 54/69] tests: test creating 20 device-mapper partitions
+ (#803108)
 
-* tests/t6002-dm-many-partitions.sh: Make sure > 17 partitions appear in
+* tests/t6004-dm-many-partitions.sh: Make sure > 17 partitions appear in
   device mapper.
 ---
- tests/Makefile.am                 |    1 +
- tests/t6002-dm-many-partitions.sh |   60 +++++++++++++++++++++++++++++++++++++
- 2 files changed, 61 insertions(+), 0 deletions(-)
- create mode 100755 tests/t6002-dm-many-partitions.sh
+ tests/Makefile.am                 |  1 +
+ tests/t6004-dm-many-partitions.sh | 60 +++++++++++++++++++++++++++++++++++++++
+ 2 files changed, 61 insertions(+)
+ create mode 100755 tests/t6004-dm-many-partitions.sh
 
 diff --git a/tests/Makefile.am b/tests/Makefile.am
-index 1b37fd9..57771be 100644
+index 4ec08da..923839d 100644
 --- a/tests/Makefile.am
 +++ b/tests/Makefile.am
-@@ -55,6 +55,7 @@ TESTS = \
-   t5000-tags.sh \
-   t6000-dm.sh \
+@@ -60,6 +60,7 @@ TESTS = \
    t6001-psep.sh \
-+  t6002-dm-many-partitions.sh \
+   t6002-dm-busy.sh \
+   t6003-dm-hide.sh \
++  t6004-dm-many-partitions.sh \
    t6100-mdraid-partitions.sh \
    t7000-scripting.sh \
    t8000-loop.sh \
-diff --git a/tests/t6002-dm-many-partitions.sh b/tests/t6002-dm-many-partitions.sh
+diff --git a/tests/t6004-dm-many-partitions.sh b/tests/t6004-dm-many-partitions.sh
 new file mode 100755
 index 0000000..4d08e72
 --- /dev/null
-+++ b/tests/t6002-dm-many-partitions.sh
++++ b/tests/t6004-dm-many-partitions.sh
 @@ -0,0 +1,60 @@
 +#!/bin/sh
 +# device-mapper: create many partitions
@@ -90,5 +91,5 @@ index 0000000..4d08e72
 +
 +Exit $fail
 -- 
-1.7.7.6
+1.8.3.1
 
diff --git a/0055-libparted-use-dm_udev_wait-698121.patch b/0055-libparted-use-dm_udev_wait-698121.patch
new file mode 100644
index 0000000..4a74202
--- /dev/null
+++ b/0055-libparted-use-dm_udev_wait-698121.patch
@@ -0,0 +1,168 @@
+From d74a3657dcd9341e54aa28deecf3e21d72cb3207 Mon Sep 17 00:00:00 2001
+From: "Brian C. Lane" <bcl at redhat.com>
+Date: Thu, 22 Aug 2013 18:08:30 -0700
+Subject: [PATCH 55/69] libparted: use dm_udev_wait (#698121)
+
+This is based on Peter Rajnoha's patch to use dm_udev_wait to
+synchronize with udev.
+
+This requires libdevmapper v1.02.39 and higher.
+
+mailing list thread:
+https://lists.gnu.org/archive/html/bug-parted/2010-09/msg00007.html
+
+* libparted/arch/linux.c (_dm_task_run_wait): New function
+(_is_dm_major): Add cookie and change call to _dm_task_run_wait
+(_is_dmraid_device): Same
+(_dm_is_part): Same
+(dm_canonical_path): Same
+(_dm_remove_partition): Same
+(_dm_get_partition_start_and_length): Same
+(_dm_add_partition): Same
+(linux_new): Enable udev sync support
+---
+ libparted/arch/linux.c | 52 +++++++++++++++++++++++++++++++++-----------------
+ 1 file changed, 34 insertions(+), 18 deletions(-)
+
+diff --git a/libparted/arch/linux.c b/libparted/arch/linux.c
+index 2bb8774..1c5faa5 100644
+--- a/libparted/arch/linux.c
++++ b/libparted/arch/linux.c
+@@ -438,6 +438,17 @@ _is_virtblk_major (int major)
+ 
+ #ifdef ENABLE_DEVICE_MAPPER
+ static int
++_dm_task_run_wait (struct dm_task *task, uint32_t cookie)
++{
++    int rc = 0;
++
++    rc = dm_task_run (task);
++    dm_udev_wait (cookie);
++
++    return rc;
++}
++
++static int
+ _is_dm_major (int major)
+ {
+         return _major_type_in_devices (major, "device-mapper");
+@@ -466,7 +477,7 @@ _dm_maptype (PedDevice *dev)
+ 
+         dm_task_no_open_count(dmt);
+ 
+-        if (!dm_task_run(dmt))
++        if (!dm_task_run (dmt))
+                 goto bad;
+ 
+         dm_get_next_target(dmt, NULL, &start, &length, &target_type, &params);
+@@ -519,7 +530,7 @@ _dm_is_part (const char *path)
+                 return 0;
+ 
+         dm_task_set_name(task, path);
+-        if (!dm_task_run(task))
++        if (!dm_task_run (task))
+                 goto err;
+ 
+         struct dm_info *info = alloca (sizeof *info);
+@@ -1398,6 +1409,10 @@ linux_new (const char* path)
+         dev->dirty = 0;
+         dev->boot_dirty = 0;
+ 
++#ifdef ENABLE_DEVICE_MAPPER
++        dm_udev_set_sync_support(1);
++#endif
++
+         if (!_device_probe_type (dev))
+                 goto error_free_arch_specific;
+ 
+@@ -2316,7 +2331,7 @@ dm_canonical_path (PedDevice const *dev)
+         if (!dm_task_set_major_minor (task, arch_specific->major,
+                                       arch_specific->minor, 0))
+                 goto err;
+-        if (!dm_task_run(task))
++        if (!dm_task_run (task))
+                 goto err;
+         char *dev_name = zasprintf ("/dev/mapper/%s", dm_task_get_name (task));
+         if (dev_name == NULL)
+@@ -2637,31 +2652,29 @@ _device_get_partition_range(PedDevice const* dev)
+ static int
+ _dm_remove_partition(PedDisk* disk, int partno)
+ {
+-        int             rc;
++        int             rc = 0;
++        uint32_t        cookie = 0;
+         char            *part_name = _device_get_part_path (disk->dev, partno);
+ 
+         int fd = open (part_name, O_RDONLY | O_EXCL);
+         if (fd == -1) {
+                 if (errno == ENOENT)
+                         errno = ENXIO; /* nothing to remove, device already doesn't exist */
+-                free (part_name);
+-                return 0;
++                goto err;
+         }
+         close (fd);
+         struct dm_task *task = dm_task_create(DM_DEVICE_REMOVE);
+-        if (!task) {
+-                free (part_name);
+-                return 0;
+-        }
++        if (!task)
++                goto err;
+         dm_task_set_name (task, part_name);
+-        rc = dm_task_run(task);
++        if (!dm_task_set_cookie (task, &cookie, 0))
++                goto err;
++        rc = _dm_task_run_wait (task, cookie);
+         dm_task_update_nodes();
+         dm_task_destroy(task);
++err:
+         free (part_name);
+-        if (!rc)
+-                return 0;
+-
+-        return 1;
++        return rc;
+ }
+ 
+ static bool
+@@ -2677,7 +2690,7 @@ _dm_get_partition_start_and_length(PedPartition const *part,
+         char *path = _device_get_part_path (part->disk->dev, part->num);
+         PED_ASSERT(path);
+         dm_task_set_name(task, path);
+-        if (!dm_task_run(task))
++        if (!dm_task_run (task))
+                 goto err;
+ 
+         int major, minor;
+@@ -2700,6 +2713,7 @@ _dm_add_partition (PedDisk* disk, const PedPartition* part)
+         LinuxSpecific*  arch_specific = LINUX_SPECIFIC (disk->dev);
+         char *params = NULL;
+         char *vol_name = NULL;
++        uint32_t cookie = 0;
+ 
+         /* Get map name from devicemapper */
+         struct dm_task *task = dm_task_create (DM_DEVICE_INFO);
+@@ -2710,7 +2724,7 @@ _dm_add_partition (PedDisk* disk, const PedPartition* part)
+                                       arch_specific->minor, 0))
+                 goto err;
+ 
+-        if (!dm_task_run(task))
++        if (!dm_task_run (task))
+                 goto err;
+ 
+         const char *dev_name = dm_task_get_name (task);
+@@ -2736,7 +2750,9 @@ _dm_add_partition (PedDisk* disk, const PedPartition* part)
+         dm_task_set_name (task, vol_name);
+         dm_task_add_target (task, 0, part->geom.length,
+                 "linear", params);
+-        if (dm_task_run (task)) {
++        if (!dm_task_set_cookie (task, &cookie, 0))
++                goto err;
++        if (_dm_task_run_wait (task, cookie)) {
+                 dm_task_update_nodes ();
+                 dm_task_destroy (task);
+                 free (params);
+-- 
+1.8.3.1
+
diff --git a/0056-libparted-preserve-the-uuid-on-dm-partitions-832145.patch b/0056-libparted-preserve-the-uuid-on-dm-partitions-832145.patch
new file mode 100644
index 0000000..fbb6dff
--- /dev/null
+++ b/0056-libparted-preserve-the-uuid-on-dm-partitions-832145.patch
@@ -0,0 +1,80 @@
+From 2fb2bce8db7e7ea035bd288a8f1c9ef8ad4c0f5b Mon Sep 17 00:00:00 2001
+From: "Brian C. Lane" <bcl at redhat.com>
+Date: Fri, 23 Aug 2013 11:45:25 -0700
+Subject: [PATCH 56/69] libparted: preserve the uuid on dm partitions (#832145)
+
+* libparted/arch/linux.c (_dm_add_partition): Set the uuid if there was
+  one.
+---
+ libparted/arch/linux.c | 20 ++++++++++++++++----
+ 1 file changed, 16 insertions(+), 4 deletions(-)
+
+diff --git a/libparted/arch/linux.c b/libparted/arch/linux.c
+index 1c5faa5..375be83 100644
+--- a/libparted/arch/linux.c
++++ b/libparted/arch/linux.c
+@@ -2711,9 +2711,12 @@ static int
+ _dm_add_partition (PedDisk* disk, const PedPartition* part)
+ {
+         LinuxSpecific*  arch_specific = LINUX_SPECIFIC (disk->dev);
+-        char *params = NULL;
+-        char *vol_name = NULL;
+-        uint32_t cookie = 0;
++        char*           params = NULL;
++        char*           vol_name = NULL;
++        const char*     dev_name = NULL;
++        char*           vol_uuid = NULL;
++        const char*     dev_uuid = NULL;
++        uint32_t        cookie = 0;
+ 
+         /* Get map name from devicemapper */
+         struct dm_task *task = dm_task_create (DM_DEVICE_INFO);
+@@ -2727,7 +2730,7 @@ _dm_add_partition (PedDisk* disk, const PedPartition* part)
+         if (!dm_task_run (task))
+                 goto err;
+ 
+-        const char *dev_name = dm_task_get_name (task);
++        dev_name = dm_task_get_name (task);
+         size_t name_len = strlen (dev_name);
+         vol_name = zasprintf ("%s%s%d",
+                               dev_name,
+@@ -2736,6 +2739,11 @@ _dm_add_partition (PedDisk* disk, const PedPartition* part)
+         if (vol_name == NULL)
+                 goto err;
+ 
++        dev_uuid = dm_task_get_uuid (task);
++        if (dev_uuid && (strlen(dev_uuid) > 0)
++             && !(vol_uuid = zasprintf ("part%d-%s", part->num, dev_uuid)))
++            goto err;
++
+         /* Caution: dm_task_destroy frees dev_name.  */
+         dm_task_destroy (task);
+         task = NULL;
+@@ -2748,6 +2756,8 @@ _dm_add_partition (PedDisk* disk, const PedPartition* part)
+                 goto err;
+ 
+         dm_task_set_name (task, vol_name);
++        if (vol_uuid)
++                dm_task_set_uuid (task, vol_uuid);
+         dm_task_add_target (task, 0, part->geom.length,
+                 "linear", params);
+         if (!dm_task_set_cookie (task, &cookie, 0))
+@@ -2756,6 +2766,7 @@ _dm_add_partition (PedDisk* disk, const PedPartition* part)
+                 dm_task_update_nodes ();
+                 dm_task_destroy (task);
+                 free (params);
++                free (vol_uuid);
+                 free (vol_name);
+                 return 1;
+         } else {
+@@ -2766,6 +2777,7 @@ err:
+         if (task)
+                 dm_task_destroy (task);
+         free (params);
++        free (vol_uuid);
+         free (vol_name);
+         return 0;
+ }
+-- 
+1.8.3.1
+
diff --git a/parted-3.1-tests-Make-sure-dm-UUIDs-are-not-erased.patch b/0057-tests-Make-sure-dm-UUIDs-are-not-erased.patch
similarity index 72%
rename from parted-3.1-tests-Make-sure-dm-UUIDs-are-not-erased.patch
rename to 0057-tests-Make-sure-dm-UUIDs-are-not-erased.patch
index c24bfaf..515b351 100644
--- a/parted-3.1-tests-Make-sure-dm-UUIDs-are-not-erased.patch
+++ b/0057-tests-Make-sure-dm-UUIDs-are-not-erased.patch
@@ -1,33 +1,33 @@
-From cc96f793bb4fb088123a40fb9d802e7db1fdbffb Mon Sep 17 00:00:00 2001
-From: Brian C. Lane <bcl at redhat.com>
+From 06bbbc8aff0c2d495941b36da1dfa24b00eb2bba Mon Sep 17 00:00:00 2001
+From: "Brian C. Lane" <bcl at redhat.com>
 Date: Tue, 7 Aug 2012 10:14:03 -0700
-Subject: [PATCH] tests: Make sure dm UUIDs are not erased
+Subject: [PATCH 57/69] tests: Make sure dm UUIDs are not erased
 
-* tests/t6003-dm-uuid.sh: Make sure dm UUIDs are not erased
+* tests/t6005-dm-uuid.sh: Make sure dm UUIDs are not erased
 ---
- tests/Makefile.am      |    1 +
- tests/t6003-dm-uuid.sh |   59 ++++++++++++++++++++++++++++++++++++++++++++++++
- 2 files changed, 60 insertions(+), 0 deletions(-)
- create mode 100755 tests/t6003-dm-uuid.sh
+ tests/Makefile.am      |  1 +
+ tests/t6005-dm-uuid.sh | 58 ++++++++++++++++++++++++++++++++++++++++++++++++++
+ 2 files changed, 59 insertions(+)
+ create mode 100755 tests/t6005-dm-uuid.sh
 
 diff --git a/tests/Makefile.am b/tests/Makefile.am
-index 57771be..98310f2 100644
+index 923839d..57e8642 100644
 --- a/tests/Makefile.am
 +++ b/tests/Makefile.am
-@@ -56,6 +56,7 @@ TESTS = \
-   t6000-dm.sh \
-   t6001-psep.sh \
-   t6002-dm-many-partitions.sh \
-+  t6003-dm-uuid.sh \
+@@ -61,6 +61,7 @@ TESTS = \
+   t6002-dm-busy.sh \
+   t6003-dm-hide.sh \
+   t6004-dm-many-partitions.sh \
++  t6005-dm-uuid.sh \
    t6100-mdraid-partitions.sh \
    t7000-scripting.sh \
    t8000-loop.sh \
-diff --git a/tests/t6003-dm-uuid.sh b/tests/t6003-dm-uuid.sh
+diff --git a/tests/t6005-dm-uuid.sh b/tests/t6005-dm-uuid.sh
 new file mode 100755
-index 0000000..1751cb4
+index 0000000..f58cb06
 --- /dev/null
-+++ b/tests/t6003-dm-uuid.sh
-@@ -0,0 +1,59 @@
++++ b/tests/t6005-dm-uuid.sh
+@@ -0,0 +1,58 @@
 +#!/bin/sh
 +# device-mapper: preserve uuid
 +# The dm's partitions uuid would be removed when creating new partitions
@@ -66,8 +66,7 @@ index 0000000..1751cb4
 +}
 +
 +# create a file large enough to hold a GPT partition table
-+dd if=/dev/null of=$loop_file bs=$ss seek=$ns || framework_failure
-+dev=$(losetup --show -f $loop_file) || framework_failure
++dev=$(loop_setup_ $loop_file) || framework_failure
 +dmsetup create $dm_name --table "0 $ns linear $dev 0" || framework_failure
 +dmsetup rename $dm_name --setuuid f139317b-f98a-45d7-ab3b-9b4e0a336872 || framework_failure
 +
@@ -88,5 +87,5 @@ index 0000000..1751cb4
 +
 +Exit $fail
 -- 
-1.7.7.6
+1.8.3.1
 
diff --git a/parted-3.1-libparted-add-support-for-implicit-FBA-DASD-partitions.patch b/0058-libparted-add-support-for-implicit-FBA-DASD-partitio.patch
similarity index 85%
rename from parted-3.1-libparted-add-support-for-implicit-FBA-DASD-partitions.patch
rename to 0058-libparted-add-support-for-implicit-FBA-DASD-partitio.patch
index 95d2551..444d2ba 100644
--- a/parted-3.1-libparted-add-support-for-implicit-FBA-DASD-partitions.patch
+++ b/0058-libparted-add-support-for-implicit-FBA-DASD-partitio.patch
@@ -1,6 +1,7 @@
-Subject: [PATCH] libparted: add support for implicit FBA DASD partitions
-
+From 1b8d3ef06b3ea813bb02f6ef85d77a4162d57064 Mon Sep 17 00:00:00 2001
 From: Nageswara R Sastry <rnsastry at linux.vnet.ibm.com>
+Date: Wed, 21 Aug 2013 16:09:56 -0700
+Subject: [PATCH 58/69] libparted: add support for implicit FBA DASD partitions
 
 Fixed Block Access (FBA) DASDs are mainframe-specific disk devices
 which are layed out as a sequence of 512-byte sectors. In contrast
@@ -19,15 +20,16 @@ to parted.
 
 Signed-off-by: Nageswara R Sastry <rnsastry at linux.vnet.ibm.com>
 Signed-off-by: Peter Oberparleiter <oberpar at linux.vnet.ibm.com>
-
 ---
- include/parted/fdasd.h   |    2 +
- libparted/labels/dasd.c  |   63 ++++++++++++++++++++++++++++++++++++++++-------
- libparted/labels/fdasd.c |    5 +++
+ include/parted/fdasd.in.h |  2 ++
+ libparted/labels/dasd.c   | 63 ++++++++++++++++++++++++++++++++++++++++-------
+ libparted/labels/fdasd.c  |  5 ++++
  3 files changed, 61 insertions(+), 9 deletions(-)
 
---- a/include/parted/fdasd.h
-+++ b/include/parted/fdasd.h
+diff --git a/include/parted/fdasd.in.h b/include/parted/fdasd.in.h
+index ac30134..a755246 100644
+--- a/include/parted/fdasd.in.h
++++ b/include/parted/fdasd.in.h
 @@ -194,6 +194,8 @@ typedef struct fdasd_anchor {
  	volume_label_t   *vlabel;
  	config_data_t confdata[USABLE_PARTITIONS];
@@ -37,6 +39,8 @@ Signed-off-by: Peter Oberparleiter <oberpar at linux.vnet.ibm.com>
  } fdasd_anchor_t;
  
  enum offset {lower, upper};
+diff --git a/libparted/labels/dasd.c b/libparted/labels/dasd.c
+index a769866..b4e80b1 100644
 --- a/libparted/labels/dasd.c
 +++ b/libparted/labels/dasd.c
 @@ -71,6 +71,7 @@ typedef struct {
@@ -157,9 +161,11 @@ Signed-off-by: Peter Oberparleiter <oberpar at linux.vnet.ibm.com>
  	   /*
  	      For LDL or CMS there may be trailing metadata as well.
  	      For example: the last block of a CMS reserved file,
+diff --git a/libparted/labels/fdasd.c b/libparted/labels/fdasd.c
+index e235dd3..f92065f 100644
 --- a/libparted/labels/fdasd.c
 +++ b/libparted/labels/fdasd.c
-@@ -721,6 +721,7 @@ fdasd_check_volume (fdasd_anchor_t *anc,
+@@ -721,6 +721,7 @@ fdasd_check_volume (fdasd_anchor_t *anc, int fd)
  	unsigned long b = -1;
  	char str[LINE_LENGTH];
  
@@ -167,7 +173,7 @@ Signed-off-by: Peter Oberparleiter <oberpar at linux.vnet.ibm.com>
  	vtoc_read_volume_label (fd, anc->label_pos, v);
  
  	if (strncmp(v->vollbl, vtoc_ebcdic_enc ("VOL1", str, 4), 4) == 0) {
-@@ -800,6 +801,8 @@ fdasd_get_geometry (const PedDevice *dev
+@@ -800,6 +801,8 @@ fdasd_get_geometry (const PedDevice *dev, fdasd_anchor_t *anc, int f)
  	    dasd_info.dev_type = 13200;
  	    dasd_info.label_block = 2;
  	    dasd_info.devno = 513;
@@ -176,7 +182,7 @@ Signed-off-by: Peter Oberparleiter <oberpar at linux.vnet.ibm.com>
  	} else {
  		if (ioctl(f, HDIO_GETGEO, &anc->geo) != 0)
  			fdasd_error(anc, unable_to_ioctl,
-@@ -820,6 +823,8 @@ fdasd_get_geometry (const PedDevice *dev
+@@ -820,6 +823,8 @@ fdasd_get_geometry (const PedDevice *dev, fdasd_anchor_t *anc, int f)
  	anc->label_pos  = dasd_info.label_block * blksize;
  	anc->devno      = dasd_info.devno;
  	anc->fspace_trk = anc->geo.cylinders * anc->geo.heads - FIRST_USABLE_TRK;
@@ -185,3 +191,6 @@ Signed-off-by: Peter Oberparleiter <oberpar at linux.vnet.ibm.com>
  }
  
  /*
+-- 
+1.8.3.1
+
diff --git a/parted-3.1-libparted-add-support-for-EAV-DASD-partitions.patch b/0059-libparted-add-support-for-EAV-DASD-partitions.patch
similarity index 86%
rename from parted-3.1-libparted-add-support-for-EAV-DASD-partitions.patch
rename to 0059-libparted-add-support-for-EAV-DASD-partitions.patch
index 81f73a8..5b39755 100644
--- a/parted-3.1-libparted-add-support-for-EAV-DASD-partitions.patch
+++ b/0059-libparted-add-support-for-EAV-DASD-partitions.patch
@@ -1,6 +1,7 @@
-Subject: [PATCH] libparted: add support for EAV DASD partitions
-
+From 72e2982d5767be628fd9380ce9f16ba2d2f474ae Mon Sep 17 00:00:00 2001
 From: Nageswara R Sastry <rnsastry at linux.vnet.ibm.com>
+Date: Wed, 21 Aug 2013 16:27:13 -0700
+Subject: [PATCH 59/69] libparted: add support for EAV DASD partitions
 
 Extended Address Volume (EAV) DASDs are ECKD DASDs with more than
 65520 cylinders. This patch adds support for recognizing and
@@ -12,17 +13,18 @@ s390-tools package.
 
 Signed-off-by: Nageswara R Sastry <rnsastry at linux.vnet.ibm.com>
 Signed-off-by: Peter Oberparleiter <oberpar at linux.vnet.ibm.com>
-
 ---
- include/parted/fdasd.h   |   89 ++++++++++++++++--
- include/parted/vtoc.h    |   58 ++++++++++--
- libparted/labels/dasd.c  |    1 
- libparted/labels/fdasd.c |  226 ++++++++++++++++++++++++++++++++---------------
- libparted/labels/vtoc.c  |  173 ++++++++++++++++++++++++++++++-----
- 5 files changed, 435 insertions(+), 112 deletions(-)
+ include/parted/fdasd.in.h |  89 +++++++++++++++---
+ include/parted/vtoc.in.h  |  59 ++++++++++--
+ libparted/labels/dasd.c   |   1 +
+ libparted/labels/fdasd.c  | 226 ++++++++++++++++++++++++++++++++--------------
+ libparted/labels/vtoc.c   | 173 ++++++++++++++++++++++++++++++-----
+ 5 files changed, 436 insertions(+), 112 deletions(-)
 
---- a/include/parted/fdasd.h
-+++ b/include/parted/fdasd.h
+diff --git a/include/parted/fdasd.in.h b/include/parted/fdasd.in.h
+index a755246..b4e7dd1 100644
+--- a/include/parted/fdasd.in.h
++++ b/include/parted/fdasd.in.h
 @@ -74,6 +74,80 @@ typedef struct dasd_information_t {
  	char configuration_data[256]; /* from read_configuration_data        */
  } dasd_information_t;
@@ -137,14 +139,16 @@ Signed-off-by: Peter Oberparleiter <oberpar at linux.vnet.ibm.com>
  	struct fdasd_hd_geometry geo;
  	unsigned int label_block;
  	unsigned int FBA_layout;
---- a/include/parted/vtoc.h
-+++ b/include/parted/vtoc.h
-@@ -42,7 +42,18 @@
+diff --git a/include/parted/vtoc.in.h b/include/parted/vtoc.in.h
+index d79ce39..499c2d3 100644
+--- a/include/parted/vtoc.in.h
++++ b/include/parted/vtoc.in.h
+@@ -42,6 +42,18 @@
  
  #define VOLSER_LENGTH 6
  #define BIG_DISK_SIZE 0x10000
 +#define LV_COMPAT_CYL 0xFFFE
- 
++
 +/*****************************************************************************
 + * SECTION: Definition from hdreq.h                                          *
 + *****************************************************************************/
@@ -156,9 +160,9 @@ Signed-off-by: Peter Oberparleiter <oberpar at linux.vnet.ibm.com>
 +      unsigned long start;
 +};
  
+ 
  typedef struct ttr              ttr_t;
- typedef struct cchhb            cchhb_t;
-@@ -59,6 +70,7 @@ typedef struct ds5ext           ds5ext_t
+@@ -59,6 +71,7 @@ typedef struct ds5ext           ds5ext_t;
  typedef struct format5_label    format5_label_t;
  typedef struct ds7ext           ds7ext_t;
  typedef struct format7_label    format7_label_t;
@@ -166,7 +170,7 @@ Signed-off-by: Peter Oberparleiter <oberpar at linux.vnet.ibm.com>
  
  struct __attribute__ ((packed)) ttr {
          u_int16_t tt;
-@@ -169,6 +181,10 @@ struct __attribute__ ((packed)) dev_cons
+@@ -169,6 +182,10 @@ struct __attribute__ ((packed)) dev_const {
          u_int8_t  DS4DEVDB;     /* number of directory blocks per track */
  };
  
@@ -177,7 +181,7 @@ Signed-off-by: Peter Oberparleiter <oberpar at linux.vnet.ibm.com>
  struct __attribute__ ((packed)) format1_label {
  	char  DS1DSNAM[44];     /* data set name                           */
  	u_int8_t  DS1FMTID;     /* format identifier                       */
-@@ -229,7 +245,11 @@ struct __attribute__ ((packed)) format4_
+@@ -229,7 +246,11 @@ struct __attribute__ ((packed)) format4_label {
  	char res2[10];          /* reserved                                */
  	u_int8_t DS4EFLVL;      /* extended free-space management level    */
  	cchhb_t DS4EFPTR;       /* pointer to extended free-space info     */
@@ -190,7 +194,7 @@ Signed-off-by: Peter Oberparleiter <oberpar at linux.vnet.ibm.com>
  };
  
  struct __attribute__ ((packed)) ds5ext {
-@@ -261,12 +281,28 @@ struct __attribute__ ((packed)) format7_
+@@ -261,12 +282,28 @@ struct __attribute__ ((packed)) format7_label {
  	cchhb_t DS7PTRDS;       /* pointer to next FMT7 DSCB               */
  };
  
@@ -221,7 +225,7 @@ Signed-off-by: Peter Oberparleiter <oberpar at linux.vnet.ibm.com>
  void vtoc_set_date (labeldate_t *d, u_int8_t year, u_int16_t day);
  
  void vtoc_volume_label_init (volume_label_t *vlabel);
-@@ -295,14 +331,16 @@ void vtoc_write_label (int fd, unsigned
+@@ -295,14 +332,16 @@ void vtoc_write_label (int fd, unsigned long position,
  		       format1_label_t const *f1,
                         format4_label_t const *f4,
  		       format5_label_t const *f5,
@@ -240,7 +244,7 @@ Signed-off-by: Peter Oberparleiter <oberpar at linux.vnet.ibm.com>
                                unsigned int tracks,
                                unsigned int blocks,
                                unsigned int blksize,
-@@ -329,8 +367,16 @@ void vtoc_update_format7_label_add (form
+@@ -329,8 +368,16 @@ void vtoc_update_format7_label_add (format7_label_t *f7, int verbose,
  void vtoc_update_format7_label_del (format7_label_t *f7, int verbose,
                                      u_int32_t a, u_int32_t b);
  
@@ -258,6 +262,8 @@ Signed-off-by: Peter Oberparleiter <oberpar at linux.vnet.ibm.com>
 +                        u_int32_t trk);
  
  #endif /* VTOC_H */
+diff --git a/libparted/labels/dasd.c b/libparted/labels/dasd.c
+index b4e80b1..081b3c5 100644
 --- a/libparted/labels/dasd.c
 +++ b/libparted/labels/dasd.c
 @@ -631,6 +631,7 @@ dasd_write (const PedDisk* disk)
@@ -268,9 +274,11 @@ Signed-off-by: Peter Oberparleiter <oberpar at linux.vnet.ibm.com>
  	memcpy(anchor.vlabel, &disk_specific->vlabel, sizeof(volume_label_t));
  	anchor.vlabel_changed++;
  
+diff --git a/libparted/labels/fdasd.c b/libparted/labels/fdasd.c
+index f92065f..2735b2a 100644
 --- a/libparted/labels/fdasd.c
 +++ b/libparted/labels/fdasd.c
-@@ -59,6 +59,48 @@ setpos (fdasd_anchor_t *anc, int dsn, in
+@@ -59,6 +59,48 @@ setpos (fdasd_anchor_t *anc, int dsn, int pos)
  	anc->partno[dsn] = pos;
  }
  
@@ -335,7 +343,7 @@ Signed-off-by: Peter Oberparleiter <oberpar at linux.vnet.ibm.com>
  		free(p);
  		p = q;
  	}
-@@ -154,17 +198,6 @@ fdasd_error (fdasd_anchor_t *anc, enum f
+@@ -154,17 +198,6 @@ fdasd_error (fdasd_anchor_t *anc, enum fdasd_failure why, char const *str)
  }
  
  /*
@@ -353,7 +361,7 @@ Signed-off-by: Peter Oberparleiter <oberpar at linux.vnet.ibm.com>
   * initializes the anchor structure and allocates some
   * memory for the labels
   */
-@@ -216,9 +249,16 @@ fdasd_initialize_anchor (fdasd_anchor_t
+@@ -216,9 +249,16 @@ fdasd_initialize_anchor (fdasd_anchor_t * anc)
  	if (anc->f7 == NULL)
  		fdasd_error(anc, malloc_failed, "FMT7 DSCB.");
  
@@ -370,7 +378,7 @@ Signed-off-by: Peter Oberparleiter <oberpar at linux.vnet.ibm.com>
  
  	v = malloc(sizeof(volume_label_t));
  	if (v == NULL)
-@@ -259,6 +299,8 @@ fdasd_initialize_anchor (fdasd_anchor_t
+@@ -259,6 +299,8 @@ fdasd_initialize_anchor (fdasd_anchor_t * anc)
  
  		q = p;
  	}
@@ -379,7 +387,7 @@ Signed-off-by: Peter Oberparleiter <oberpar at linux.vnet.ibm.com>
  }
  
  /*
-@@ -269,44 +311,46 @@ fdasd_write_vtoc_labels (fdasd_anchor_t
+@@ -269,44 +311,46 @@ fdasd_write_vtoc_labels (fdasd_anchor_t * anc, int fd)
  {
  	PDEBUG
  	partition_info_t *p;
@@ -436,7 +444,7 @@ Signed-off-by: Peter Oberparleiter <oberpar at linux.vnet.ibm.com>
  			/* re-use the existing data set name */
  			c2 = strchr (c1, '.');
  			if (c2 != NULL)
-@@ -325,11 +369,7 @@ fdasd_write_vtoc_labels (fdasd_anchor_t
+@@ -325,11 +369,7 @@ fdasd_write_vtoc_labels (fdasd_anchor_t * anc, int fd)
  			while (getpos (anc, k) > -1)
  				k++;
  
@@ -449,7 +457,7 @@ Signed-off-by: Peter Oberparleiter <oberpar at linux.vnet.ibm.com>
  
  			strncpy (ch, "LINUX.V               " "                      ", 44);
  
-@@ -366,8 +406,32 @@ fdasd_write_vtoc_labels (fdasd_anchor_t
+@@ -366,8 +406,32 @@ fdasd_write_vtoc_labels (fdasd_anchor_t * anc, int fd)
  
  		vtoc_ebcdic_enc (ch, ch, 44);
  
@@ -515,7 +523,7 @@ Signed-off-by: Peter Oberparleiter <oberpar at linux.vnet.ibm.com>
  			/* re-use the existing data set name */
  			c2 = strchr (c1, '.');
  			if (c2 != NULL)
-@@ -426,11 +495,7 @@ fdasd_prepare_labels (fdasd_anchor_t *an
+@@ -426,11 +495,7 @@ fdasd_prepare_labels (fdasd_anchor_t *anc, int fd)
  			while (getpos (anc, k) > -1)
  				k++;
  
@@ -528,7 +536,7 @@ Signed-off-by: Peter Oberparleiter <oberpar at linux.vnet.ibm.com>
  
  			strncpy (ch, "LINUX.V               " "                      ", 44);
  
-@@ -466,7 +531,6 @@ fdasd_prepare_labels (fdasd_anchor_t *an
+@@ -466,7 +531,6 @@ fdasd_prepare_labels (fdasd_anchor_t *anc, int fd)
  		}
  
  		vtoc_ebcdic_enc (ch, ch, 44);
@@ -536,7 +544,7 @@ Signed-off-by: Peter Oberparleiter <oberpar at linux.vnet.ibm.com>
  	}
  
  	return 1;
-@@ -482,6 +546,7 @@ fdasd_recreate_vtoc (fdasd_anchor_t *anc
+@@ -482,6 +546,7 @@ fdasd_recreate_vtoc (fdasd_anchor_t *anc)
  	vtoc_init_format4_label(anc->f4,
  							USABLE_PARTITIONS,
  							anc->geo.cylinders,
@@ -544,7 +552,7 @@ Signed-off-by: Peter Oberparleiter <oberpar at linux.vnet.ibm.com>
  							anc->geo.heads,
  							anc->geo.sectors,
  							anc->blksize,
-@@ -492,8 +557,8 @@ fdasd_recreate_vtoc (fdasd_anchor_t *anc
+@@ -492,8 +557,8 @@ fdasd_recreate_vtoc (fdasd_anchor_t *anc)
  	vtoc_set_freespace(anc->f4, anc->f5, anc->f7,
  					   '+', anc->verbose,
  					   FIRST_USABLE_TRK,
@@ -555,7 +563,7 @@ Signed-off-by: Peter Oberparleiter <oberpar at linux.vnet.ibm.com>
  
  	for (i = 0; i < USABLE_PARTITIONS; i++) {
  		bzero(p->f1, sizeof(format1_label_t));
-@@ -507,7 +572,8 @@ fdasd_recreate_vtoc (fdasd_anchor_t *anc
+@@ -507,7 +572,8 @@ fdasd_recreate_vtoc (fdasd_anchor_t *anc)
  	}
  
  	anc->used_partitions = 0;
@@ -565,7 +573,7 @@ Signed-off-by: Peter Oberparleiter <oberpar at linux.vnet.ibm.com>
  
  	for (i=0; i<USABLE_PARTITIONS; i++)
  		setpos(anc, i, -1);
-@@ -526,15 +592,15 @@ fdasd_update_partition_info (fdasd_ancho
+@@ -526,15 +592,15 @@ fdasd_update_partition_info (fdasd_anchor_t *anc)
  {
  	PDEBUG
  	partition_info_t *q = NULL, *p = anc->first;
@@ -584,7 +592,7 @@ Signed-off-by: Peter Oberparleiter <oberpar at linux.vnet.ibm.com>
  			if (i == 1)
  				/* there is no partition at all */
  				anc->fspace_trk = max - FIRST_USABLE_TRK + 1;
-@@ -546,8 +612,8 @@ fdasd_update_partition_info (fdasd_ancho
+@@ -546,8 +612,8 @@ fdasd_update_partition_info (fdasd_anchor_t *anc)
  
  		/* this is a valid format 1 label */
  		p->used = 0x01;
@@ -595,7 +603,7 @@ Signed-off-by: Peter Oberparleiter <oberpar at linux.vnet.ibm.com>
  		p->len_trk   = p->end_trk - p->start_trk + 1;
  
  		if (i == 1) {
-@@ -618,14 +684,22 @@ fdasd_process_valid_vtoc (fdasd_anchor_t
+@@ -618,14 +684,22 @@ fdasd_process_valid_vtoc (fdasd_anchor_t * anc, unsigned long b, int fd)
  	format1_label_t q;
  	char s[5], *ch;
  
@@ -619,7 +627,7 @@ Signed-off-by: Peter Oberparleiter <oberpar at linux.vnet.ibm.com>
  				if (p == NULL)
  					break;
  				memcpy (p->f1, &q, f1size);
-@@ -669,6 +743,12 @@ fdasd_process_valid_vtoc (fdasd_anchor_t
+@@ -669,6 +743,12 @@ fdasd_process_valid_vtoc (fdasd_anchor_t * anc, unsigned long b, int fd)
  					memcpy (anc->f7, &q, f1size);
  				f7_counter++;
  				break;
@@ -632,7 +640,7 @@ Signed-off-by: Peter Oberparleiter <oberpar at linux.vnet.ibm.com>
  		}
  
  		b += anc->blksize;
-@@ -718,7 +798,7 @@ fdasd_check_volume (fdasd_anchor_t *anc,
+@@ -718,7 +798,7 @@ fdasd_check_volume (fdasd_anchor_t *anc, int fd)
  {
  	PDEBUG
  	volume_label_t *v = anc->vlabel;
@@ -641,7 +649,7 @@ Signed-off-by: Peter Oberparleiter <oberpar at linux.vnet.ibm.com>
  	char str[LINE_LENGTH];
  
  	memset(v, 0, sizeof(volume_label_t));
-@@ -784,6 +864,7 @@ fdasd_get_geometry (const PedDevice *dev
+@@ -784,6 +864,7 @@ fdasd_get_geometry (const PedDevice *dev, fdasd_anchor_t *anc, int f)
  	PDEBUG
  	int blksize = 0;
  	dasd_information_t dasd_info;
@@ -649,7 +657,7 @@ Signed-off-by: Peter Oberparleiter <oberpar at linux.vnet.ibm.com>
  
  	/* We can't get geometry from a regular file,
  	   so simulate something usable, for the sake of testing.  */
-@@ -803,6 +884,8 @@ fdasd_get_geometry (const PedDevice *dev
+@@ -803,6 +884,8 @@ fdasd_get_geometry (const PedDevice *dev, fdasd_anchor_t *anc, int f)
  	    dasd_info.devno = 513;
  	    dasd_info.label_block = 2;
  	    dasd_info.FBA_layout = 0;
@@ -658,7 +666,7 @@ Signed-off-by: Peter Oberparleiter <oberpar at linux.vnet.ibm.com>
  	} else {
  		if (ioctl(f, HDIO_GETGEO, &anc->geo) != 0)
  			fdasd_error(anc, unable_to_ioctl,
-@@ -816,13 +899,20 @@ fdasd_get_geometry (const PedDevice *dev
+@@ -816,13 +899,20 @@ fdasd_get_geometry (const PedDevice *dev, fdasd_anchor_t *anc, int f)
  		if (ioctl(f, BIODASDINFO, &dasd_info) != 0)
  			fdasd_error(anc, unable_to_ioctl,
  				    _("Could not retrieve disk information."));
@@ -680,7 +688,7 @@ Signed-off-by: Peter Oberparleiter <oberpar at linux.vnet.ibm.com>
  	anc->label_block = dasd_info.label_block;
  	anc->FBA_layout = dasd_info.FBA_layout;
  }
-@@ -850,20 +940,17 @@ fdasd_get_partition_data (fdasd_anchor_t
+@@ -850,20 +940,17 @@ fdasd_get_partition_data (fdasd_anchor_t *anc, extent_t *part_extent,
                            unsigned int *stop_ptr)
  {
  	PDEBUG
@@ -705,7 +713,7 @@ Signed-off-by: Peter Oberparleiter <oberpar at linux.vnet.ibm.com>
  	h = anc->f4->DS4DEVCT.DS4DSTRK;
  	limit = (h * c - 1);
  
-@@ -1019,7 +1106,6 @@ fdasd_add_partition (fdasd_anchor_t *anc
+@@ -1019,7 +1106,6 @@ fdasd_add_partition (fdasd_anchor_t *anc, unsigned int start,
  	cchhb_t hf1;
  	partition_info_t *p;
  	extent_t ext;
@@ -713,7 +721,7 @@ Signed-off-by: Peter Oberparleiter <oberpar at linux.vnet.ibm.com>
  
  	PDEBUG;
  
-@@ -1032,8 +1118,14 @@ fdasd_add_partition (fdasd_anchor_t *anc
+@@ -1032,8 +1118,14 @@ fdasd_add_partition (fdasd_anchor_t *anc, unsigned int start,
  	if (fdasd_get_partition_data(anc, &ext, p, &start, &stop) != 0)
  		return 0;
  
@@ -730,7 +738,7 @@ Signed-off-by: Peter Oberparleiter <oberpar at linux.vnet.ibm.com>
  
  	PDEBUG;
  	fdasd_enqueue_new_partition(anc);
-@@ -1041,23 +1133,17 @@ fdasd_add_partition (fdasd_anchor_t *anc
+@@ -1041,23 +1133,17 @@ fdasd_add_partition (fdasd_anchor_t *anc, unsigned int start,
  	PDEBUG;
  	anc->used_partitions += 1;
  
@@ -758,9 +766,11 @@ Signed-off-by: Peter Oberparleiter <oberpar at linux.vnet.ibm.com>
  
  	anc->vtoc_changed++;
  
+diff --git a/libparted/labels/vtoc.c b/libparted/labels/vtoc.c
+index cf2990e..fdfa94f 100644
 --- a/libparted/labels/vtoc.c
 +++ b/libparted/labels/vtoc.c
-@@ -218,11 +218,32 @@ vtoc_set_extent (extent_t *ext, u_int8_t
+@@ -218,11 +218,32 @@ vtoc_set_extent (extent_t *ext, u_int8_t typeind, u_int8_t seqno,
  }
  
  void
@@ -796,7 +806,7 @@ Signed-off-by: Peter Oberparleiter <oberpar at linux.vnet.ibm.com>
  }
  
  static void
-@@ -234,12 +255,63 @@ vtoc_set_ttr (ttr_t *addr, u_int16_t tt,
+@@ -234,12 +255,63 @@ vtoc_set_ttr (ttr_t *addr, u_int16_t tt, u_int8_t r)
  }
  
  void
@@ -864,7 +874,7 @@ Signed-off-by: Peter Oberparleiter <oberpar at linux.vnet.ibm.com>
  }
  
  void
-@@ -506,7 +578,8 @@ vtoc_write_label (int f, unsigned long p
+@@ -506,7 +578,8 @@ vtoc_write_label (int f, unsigned long position,
  		  format1_label_t const *f1,
                    format4_label_t const *f4,
  		  format5_label_t const *f5,
@@ -874,7 +884,7 @@ Signed-off-by: Peter Oberparleiter <oberpar at linux.vnet.ibm.com>
  {
  	PDEBUG
  	int t;
-@@ -542,6 +615,17 @@ vtoc_write_label (int f, unsigned long p
+@@ -542,6 +615,17 @@ vtoc_write_label (int f, unsigned long position,
  			vtoc_error(unable_to_write, "vtoc_write_label",
  				   _("Could not write VTOC FMT7 DSCB."));
  	}
@@ -892,7 +902,7 @@ Signed-off-by: Peter Oberparleiter <oberpar at linux.vnet.ibm.com>
  }
  
  /*
-@@ -549,7 +633,8 @@ vtoc_write_label (int f, unsigned long p
+@@ -549,7 +633,8 @@ vtoc_write_label (int f, unsigned long position,
   */
  void
  vtoc_init_format4_label (format4_label_t *f4, unsigned int usable_partitions,
@@ -902,7 +912,7 @@ Signed-off-by: Peter Oberparleiter <oberpar at linux.vnet.ibm.com>
                           unsigned int blocks, unsigned int blksize,
                           u_int16_t dev_type)
  {
-@@ -574,7 +659,7 @@ vtoc_init_format4_label (format4_label_t
+@@ -574,7 +659,7 @@ vtoc_init_format4_label (format4_label_t *f4, unsigned int usable_partitions,
  	f4->DS4DEVAC = 0x00;
  
  	/* -- begin f4->DS4DEVCT -- */
@@ -911,7 +921,7 @@ Signed-off-by: Peter Oberparleiter <oberpar at linux.vnet.ibm.com>
  	f4->DS4DEVCT.DS4DSTRK = tracks;
  
  	switch (dev_type) {
-@@ -613,7 +698,11 @@ vtoc_init_format4_label (format4_label_t
+@@ -613,7 +698,11 @@ vtoc_init_format4_label (format4_label_t *f4, unsigned int usable_partitions,
  	bzero(f4->res2, sizeof(f4->res2));
  	f4->DS4EFLVL = 0x00;
  	bzero(&f4->DS4EFPTR, sizeof(f4->DS4EFPTR));
@@ -924,7 +934,7 @@ Signed-off-by: Peter Oberparleiter <oberpar at linux.vnet.ibm.com>
  }
  
  /*
-@@ -647,11 +736,12 @@ vtoc_init_format7_label (format7_label_t
+@@ -647,11 +736,12 @@ vtoc_init_format7_label (format7_label_t *f7)
  }
  
  /*
@@ -940,7 +950,7 @@ Signed-off-by: Peter Oberparleiter <oberpar at linux.vnet.ibm.com>
  {
  	PDEBUG
  	struct tm * creatime;
-@@ -666,7 +756,6 @@ vtoc_init_format1_label (char *volid, un
+@@ -666,7 +756,6 @@ vtoc_init_format1_label (char *volid, unsigned int blksize,
  	sprintf(str, "PART    .NEW                                ");
  	vtoc_ebcdic_enc(str, str, 44);
  	strncpy(f1->DS1DSNAM, str, 44);
@@ -948,7 +958,7 @@ Signed-off-by: Peter Oberparleiter <oberpar at linux.vnet.ibm.com>
  	strncpy(f1->DS1DSSN, "      ", 6);
  	f1->DS1VOLSQ = 0x0001;
  
-@@ -704,6 +793,37 @@ vtoc_init_format1_label (char *volid, un
+@@ -704,6 +793,37 @@ vtoc_init_format1_label (char *volid, unsigned int blksize,
  	vtoc_set_cchhb(&f1->DS1PTRDS, 0x0000, 0x0000, 0x00);
  }
  
@@ -986,7 +996,7 @@ Signed-off-by: Peter Oberparleiter <oberpar at linux.vnet.ibm.com>
  /*
   * do some updates to the VTOC format4 label
   */
-@@ -1060,7 +1180,7 @@ vtoc_update_format7_label_add (format7_l
+@@ -1060,7 +1180,7 @@ vtoc_update_format7_label_add (format7_label_t *f7, int verbose,
  		if ((ext->a + ext->b) == 0x00000000)
  			continue;
  
@@ -995,7 +1005,7 @@ Signed-off-by: Peter Oberparleiter <oberpar at linux.vnet.ibm.com>
  			/* this extent precedes the new one */
  			ext->b = tmp->b;
  			bzero(tmp, sizeof(ds7ext_t));
-@@ -1074,7 +1194,7 @@ vtoc_update_format7_label_add (format7_l
+@@ -1074,7 +1194,7 @@ vtoc_update_format7_label_add (format7_label_t *f7, int verbose,
  			continue;
  		}
  
@@ -1004,7 +1014,7 @@ Signed-off-by: Peter Oberparleiter <oberpar at linux.vnet.ibm.com>
  			/* this extent succeeds the new one */
  			ext->a = tmp->a;
  			bzero(tmp, sizeof(ds7ext_t));
-@@ -1119,7 +1239,7 @@ vtoc_update_format7_label_del (format7_l
+@@ -1119,7 +1239,7 @@ vtoc_update_format7_label_del (format7_label_t *f7, int verbose,
  
  		if ((a == ext->a) && (b < ext->b)) {
  			/* left-bounded in free space gap */
@@ -1013,7 +1023,7 @@ Signed-off-by: Peter Oberparleiter <oberpar at linux.vnet.ibm.com>
  
  			if (verbose)
  				puts ("FMT7 add extent: left-bounded");
-@@ -1130,7 +1250,7 @@ vtoc_update_format7_label_del (format7_l
+@@ -1130,7 +1250,7 @@ vtoc_update_format7_label_del (format7_label_t *f7, int verbose,
  
  		if ((a > ext->a) && (b == ext->b)) {
  			/* right-bounded in free space gap */
@@ -1022,7 +1032,7 @@ Signed-off-by: Peter Oberparleiter <oberpar at linux.vnet.ibm.com>
  
  			if (verbose)
  				puts ("FMT7 add extent: right-bounded");
-@@ -1141,8 +1261,8 @@ vtoc_update_format7_label_del (format7_l
+@@ -1141,8 +1261,8 @@ vtoc_update_format7_label_del (format7_label_t *f7, int verbose,
  
  		if ((a > ext->a) && (b < ext->b)) {
  			/* partition devides free space into 2 pieces */
@@ -1033,7 +1043,7 @@ Signed-off-by: Peter Oberparleiter <oberpar at linux.vnet.ibm.com>
  
  			if (verbose)
  				puts ("FMT7 add extent: 2 pieces");
-@@ -1172,14 +1292,19 @@ vtoc_update_format7_label_del (format7_l
+@@ -1172,14 +1292,19 @@ vtoc_update_format7_label_del (format7_label_t *f7, int verbose,
  void
  vtoc_set_freespace(format4_label_t *f4, format5_label_t *f5,
                     format7_label_t *f7, char ch, int verbose,
@@ -1056,3 +1066,6 @@ Signed-off-by: Peter Oberparleiter <oberpar at linux.vnet.ibm.com>
  		else
  			puts ("BUG: syntax error in vtoc_set_freespace call");
  
+-- 
+1.8.3.1
+
diff --git a/parted-3.1-libparted-mklabel-eav.patch b/0060-libparted-mklabel-to-support-EAV-DASD.patch
similarity index 81%
rename from parted-3.1-libparted-mklabel-eav.patch
rename to 0060-libparted-mklabel-to-support-EAV-DASD.patch
index a8bc228..b422218 100644
--- a/parted-3.1-libparted-mklabel-eav.patch
+++ b/0060-libparted-mklabel-to-support-EAV-DASD.patch
@@ -1,6 +1,7 @@
-Subject: [PATCH] libparted: mklabel to support EAV DASD
-
+From 4e9468fe51b6183936a7564dc51da389b89fe15d Mon Sep 17 00:00:00 2001
 From: Nageswara R Sastry <rnsastry at linux.vnet.ibm.com>
+Date: Wed, 21 Aug 2013 16:36:08 -0700
+Subject: [PATCH 60/69] libparted: mklabel to support EAV DASD
 
 Extended Address Volume (EAV) DASDs are ECKD DASDs with more than
 65520 cylinders. This patch adds support for mklabel to properly
@@ -8,13 +9,15 @@ handle unformatted EAV DASDs.
 
 Signed-off-by: Nageswara R Sastry <rnsastry at linux.vnet.ibm.com>
 ---
- include/parted/fdasd.h |    1 
- libparted/labels/fdasd.c  |   92 +++++++++++++++++++++++++++++++++++++++++++++-
+ include/parted/fdasd.in.h |  1 -
+ libparted/labels/fdasd.c  | 92 +++++++++++++++++++++++++++++++++++++++++++++--
  2 files changed, 90 insertions(+), 3 deletions(-)
 
---- a/include/parted/fdasd.h
-+++ b/include/parted/fdasd.h
-@@ -288,7 +288,6 @@ void fdasd_get_geometry (const PedDevice
+diff --git a/include/parted/fdasd.in.h b/include/parted/fdasd.in.h
+index b4e7dd1..3692596 100644
+--- a/include/parted/fdasd.in.h
++++ b/include/parted/fdasd.in.h
+@@ -288,7 +288,6 @@ void fdasd_get_geometry (const PedDevice *dev, fdasd_anchor_t *anc, int fd);
  void fdasd_check_api_version (fdasd_anchor_t *anc, int fd);
  int fdasd_check_volume (fdasd_anchor_t *anc, int fd);
  int fdasd_write_labels (fdasd_anchor_t *anc, int fd);
@@ -22,9 +25,11 @@ Signed-off-by: Nageswara R Sastry <rnsastry at linux.vnet.ibm.com>
  void fdasd_recreate_vtoc(fdasd_anchor_t *anc);
  partition_info_t * fdasd_add_partition (fdasd_anchor_t *anc,
                                          unsigned int start, unsigned int stop);
+diff --git a/libparted/labels/fdasd.c b/libparted/labels/fdasd.c
+index 2735b2a..b58b2be 100644
 --- a/libparted/labels/fdasd.c
 +++ b/libparted/labels/fdasd.c
-@@ -581,6 +581,22 @@ fdasd_recreate_vtoc (fdasd_anchor_t *anc
+@@ -581,6 +581,22 @@ fdasd_recreate_vtoc (fdasd_anchor_t *anc)
  	anc->vtoc_changed++;
  }
  
@@ -47,7 +52,7 @@ Signed-off-by: Nageswara R Sastry <rnsastry at linux.vnet.ibm.com>
  /*
   * sets some important partition data
   * (like used, start_trk, end_trk, len_trk)
-@@ -769,6 +785,52 @@ fdasd_process_valid_vtoc (fdasd_anchor_t
+@@ -769,6 +785,52 @@ fdasd_process_valid_vtoc (fdasd_anchor_t * anc, unsigned long b, int fd)
  	fdasd_update_partition_info (anc);
  }
  
@@ -100,7 +105,7 @@ Signed-off-by: Nageswara R Sastry <rnsastry at linux.vnet.ibm.com>
  static int
  fdasd_valid_vtoc_pointer(fdasd_anchor_t *anc, unsigned long b, int fd)
  {
-@@ -781,6 +843,8 @@ fdasd_valid_vtoc_pointer(fdasd_anchor_t
+@@ -781,6 +843,8 @@ fdasd_valid_vtoc_pointer(fdasd_anchor_t *anc, unsigned long b, int fd)
  	if (anc->f4->DS4IDFMT == 0xf4) {
  		fdasd_process_valid_vtoc (anc, b, fd);
  		return 0;
@@ -109,7 +114,7 @@ Signed-off-by: Nageswara R Sastry <rnsastry at linux.vnet.ibm.com>
  	}
  	if (strncmp(anc->vlabel->volkey, vtoc_ebcdic_enc("LNX1",str,4),4) == 0 ||
  	    strncmp(anc->vlabel->volkey, vtoc_ebcdic_enc("CMS1",str,4),4) == 0)
-@@ -817,13 +881,37 @@ fdasd_check_volume (fdasd_anchor_t *anc,
+@@ -817,13 +881,37 @@ fdasd_check_volume (fdasd_anchor_t *anc, int fd)
  			else
  				return 0;
  		} else {
@@ -119,6 +124,7 @@ Signed-off-by: Nageswara R Sastry <rnsastry at linux.vnet.ibm.com>
  	} else if (strncmp (v->volkey, vtoc_ebcdic_enc ("LNX1", str, 4), 4) == 0 ||
  	           strncmp (v->volkey, vtoc_ebcdic_enc ("CMS1", str, 4), 4) == 0) {
  		return 0;
+-	}
 +	} else if (anc->FBA_layout == 1) {
 +		/* Some times LDL formatted disks does not
 +		   contain any volume label */
@@ -130,7 +136,7 @@ Signed-off-by: Nageswara R Sastry <rnsastry at linux.vnet.ibm.com>
 +					- FIRST_USABLE_TRK;
 +
 +		fdasd_init_volume_label(anc, fd);
-+
+ 
 +		vtoc_init_format4_label(anc->f4, USABLE_PARTITIONS,
 +				anc->geo.cylinders, anc->formatted_cylinders,
 +				anc->geo.heads, anc->geo.sectors,
@@ -144,8 +150,10 @@ Signed-off-by: Nageswara R Sastry <rnsastry at linux.vnet.ibm.com>
 +			anc->formatted_cylinders * anc->geo.heads - 1,
 +			anc->formatted_cylinders, anc->geo.heads);
 +		return 0;
- 	}
--
++	}
  	return 1;
  }
  
+-- 
+1.8.3.1
+
diff --git a/parted-3.1-avoid-dasd-as-default-file-image-type.patch b/0061-libparted-Avoid-dasd-as-default-disk-type-while-prob.patch
similarity index 61%
rename from parted-3.1-avoid-dasd-as-default-file-image-type.patch
rename to 0061-libparted-Avoid-dasd-as-default-disk-type-while-prob.patch
index f380792..08d25ff 100644
--- a/parted-3.1-avoid-dasd-as-default-file-image-type.patch
+++ b/0061-libparted-Avoid-dasd-as-default-disk-type-while-prob.patch
@@ -1,18 +1,21 @@
-Subject: [PATCH] libparted: Avoid dasd as default disk type while probe
-
+From 0dadb22c962c33149dbce5808ebfb43cc799c242 Mon Sep 17 00:00:00 2001
 From: Nageswara R Sastry <rnsastry at linux.vnet.ibm.com>
+Date: Wed, 21 Aug 2013 16:37:17 -0700
+Subject: [PATCH 61/69] libparted: Avoid dasd as default disk type while probe
 
 This patch avoids setting 'dasd' as a default disk type for
 'disk image file' at the time of probe.
 
 Signed-off-by: Nageswara R Sastry <rnsastry at linux.vnet.ibm.com>
 ---
- include/parted/fdasd.h    |    1 +
- libparted/labels/fdasd.c  |    6 +++++-
+ include/parted/fdasd.in.h | 1 +
+ libparted/labels/fdasd.c  | 6 +++++-
  2 files changed, 6 insertions(+), 1 deletion(-)
 
---- a/include/parted/fdasd.h
-+++ b/include/parted/fdasd.h
+diff --git a/include/parted/fdasd.in.h b/include/parted/fdasd.in.h
+index 3692596..6f6a7e0 100644
+--- a/include/parted/fdasd.in.h
++++ b/include/parted/fdasd.in.h
 @@ -261,6 +261,7 @@ typedef struct fdasd_anchor {
  	struct fdasd_hd_geometry geo;
  	unsigned int label_block;
@@ -21,9 +24,11 @@ Signed-off-by: Nageswara R Sastry <rnsastry at linux.vnet.ibm.com>
  } fdasd_anchor_t;
  
  enum offset {lower, upper};
+diff --git a/libparted/labels/fdasd.c b/libparted/labels/fdasd.c
+index b58b2be..7de5f34 100644
 --- a/libparted/labels/fdasd.c
 +++ b/libparted/labels/fdasd.c
-@@ -301,6 +301,7 @@ fdasd_initialize_anchor (fdasd_anchor_t
+@@ -301,6 +301,7 @@ fdasd_initialize_anchor (fdasd_anchor_t * anc)
  	}
  	anc->hw_cylinders = 0;
  	anc->formatted_cylinders = 0;
@@ -31,7 +36,7 @@ Signed-off-by: Nageswara R Sastry <rnsastry at linux.vnet.ibm.com>
  }
  
  /*
-@@ -892,7 +893,7 @@ fdasd_check_volume (fdasd_anchor_t *anc,
+@@ -890,7 +891,7 @@ fdasd_check_volume (fdasd_anchor_t *anc, int fd)
  		/* Some times LDL formatted disks does not
  		   contain any volume label */
  		return 1;
@@ -40,7 +45,7 @@ Signed-off-by: Nageswara R Sastry <rnsastry at linux.vnet.ibm.com>
  	/* didn't find VOL1 volume label */
  		anc->formatted_cylinders = anc->hw_cylinders;
  		anc->fspace_trk = anc->formatted_cylinders * anc->geo.heads
-@@ -976,6 +977,7 @@ fdasd_get_geometry (const PedDevice *dev
+@@ -974,6 +975,7 @@ fdasd_get_geometry (const PedDevice *dev, fdasd_anchor_t *anc, int f)
  	    dasd_info.FBA_layout = 0;
  	    anc->hw_cylinders = ((st.st_size / blksize) / anc->geo.sectors) /
  				anc->geo.heads;
@@ -48,7 +53,7 @@ Signed-off-by: Nageswara R Sastry <rnsastry at linux.vnet.ibm.com>
  	} else {
  		if (ioctl(f, HDIO_GETGEO, &anc->geo) != 0)
  			fdasd_error(anc, unable_to_ioctl,
-@@ -997,6 +999,8 @@ fdasd_get_geometry (const PedDevice *dev
+@@ -995,6 +997,8 @@ fdasd_get_geometry (const PedDevice *dev, fdasd_anchor_t *anc, int f)
  			anc->hw_cylinders = characteristics->long_no_cyl;
  		else
  			anc->hw_cylinders = characteristics->no_cyl;
@@ -57,3 +62,6 @@ Signed-off-by: Nageswara R Sastry <rnsastry at linux.vnet.ibm.com>
  	}
  
  	anc->dev_type   = dasd_info.dev_type;
+-- 
+1.8.3.1
+
diff --git a/parted-3.1-libparted-mklabel-edev.patch b/0062-libparted-mklabel-to-support-EDEV-DASD.patch
similarity index 72%
rename from parted-3.1-libparted-mklabel-edev.patch
rename to 0062-libparted-mklabel-to-support-EDEV-DASD.patch
index c2f869c..dbcd18c 100644
--- a/parted-3.1-libparted-mklabel-edev.patch
+++ b/0062-libparted-mklabel-to-support-EDEV-DASD.patch
@@ -1,6 +1,7 @@
-Subject: [PATCH] libparted: mklabel to support EDEV DASD
-
+From b4758f5b4af423174871a68c235d20a646f4807b Mon Sep 17 00:00:00 2001
 From: Nageswara R Sastry <rnsastry at linux.vnet.ibm.com>
+Date: Wed, 21 Aug 2013 16:37:17 -0700
+Subject: [PATCH 62/69] libparted: mklabel to support EDEV DASD
 
 Fixed Block Access (FBA) DASDs are mainframe-specific disk devices
 which are layed out as a sequence of 512-byte sectors. This patch adds
@@ -8,34 +9,38 @@ support for mklabel to properly handle FBA devices.
 
 Signed-off-by: Nageswara R Sastry <rnsastry at linux.vnet.ibm.com>
 ---
- libparted/labels/fdasd.c |   24 +++++++++++++-----------
- 1 file changed, 13 insertions(+), 11 deletions(-)
+ libparted/labels/fdasd.c | 28 +++++++++++++++-------------
+ 1 file changed, 15 insertions(+), 13 deletions(-)
 
+diff --git a/libparted/labels/fdasd.c b/libparted/labels/fdasd.c
+index 7de5f34..1f87937 100644
 --- a/libparted/labels/fdasd.c
 +++ b/libparted/labels/fdasd.c
-@@ -869,19 +869,21 @@ fdasd_check_volume (fdasd_anchor_t *anc,
+@@ -870,19 +870,21 @@ fdasd_check_volume (fdasd_anchor_t *anc, int fd)
  	vtoc_read_volume_label (fd, anc->label_pos, v);
  
  	if (strncmp(v->vollbl, vtoc_ebcdic_enc ("VOL1", str, 4), 4) == 0) {
 -		/* found VOL1 volume label */
 -		b = (cchhb2blk (&v->vtoc, &anc->geo) - 1) * anc->blksize;
-+		if (anc->FBA_layout != 1 ) {
-+			/* found VOL1 volume label */
-+			b = (cchhb2blk (&v->vtoc, &anc->geo) - 1) * anc->blksize;
- 
+-
 -		if (b > 0) {
 -			int rc;
 -			rc = fdasd_valid_vtoc_pointer (anc, b, fd);
-+			if (b > 0) {
-+				int rc;
-+				rc = fdasd_valid_vtoc_pointer (anc, b, fd);
- 
+-
 -			if (rc < 0)
 -				return 1;
 -			else
 -				return 0;
 -		} else {
 -			fdasd_invalid_vtoc_pointer(anc);
++		if (anc->FBA_layout != 1 ) {
++			/* found VOL1 volume label */
++			b = (cchhb2blk (&v->vtoc, &anc->geo) - 1) * anc->blksize;
++
++			if (b > 0) {
++				int rc;
++				rc = fdasd_valid_vtoc_pointer (anc, b, fd);
++
 +				if (rc < 0)
 +					return 1;
 +				else
@@ -46,3 +51,6 @@ Signed-off-by: Nageswara R Sastry <rnsastry at linux.vnet.ibm.com>
  		}
  	} else if (strncmp (v->volkey, vtoc_ebcdic_enc ("LNX1", str, 4), 4) == 0 ||
  	           strncmp (v->volkey, vtoc_ebcdic_enc ("CMS1", str, 4), 4) == 0) {
+-- 
+1.8.3.1
+
diff --git a/parted-3.1-libparted-don-t-canonicalize-dev-md-paths.patch b/0063-libparted-don-t-canonicalize-dev-md-paths-872361.patch
similarity index 88%
rename from parted-3.1-libparted-don-t-canonicalize-dev-md-paths.patch
rename to 0063-libparted-don-t-canonicalize-dev-md-paths-872361.patch
index 2390881..0966b2f 100644
--- a/parted-3.1-libparted-don-t-canonicalize-dev-md-paths.patch
+++ b/0063-libparted-don-t-canonicalize-dev-md-paths-872361.patch
@@ -1,7 +1,7 @@
-From c17f0c2e68960969789427eca20ddab1b8e4fcc6 Mon Sep 17 00:00:00 2001
+From 73ed3e0ba21afec398f3b1cfb6ee013cf4ce3fc2 Mon Sep 17 00:00:00 2001
 From: "Brian C. Lane" <bcl at redhat.com>
 Date: Thu, 1 Nov 2012 16:22:42 -0700
-Subject: [PATCH] libparted: don't canonicalize /dev/md/ paths (#872361)
+Subject: [PATCH 63/69] libparted: don't canonicalize /dev/md/ paths (#872361)
 
 This is the same issue we have with /dev/mapper/ paths that was fixed in
 commit c1eb485b9fd8919e18f192d678bc52b0488e6ee0. When libparted
@@ -33,5 +33,5 @@ index 738b320..cdcc117 100644
  	if (!normal_path)
  		/* Well, maybe it is just that the file does not exist.
 -- 
-1.7.11.7
+1.8.3.1
 
diff --git a/parted-3.1-tests-rewrite-t6001-to-use-dev-mapper.patch b/0064-tests-rewrite-t6001-to-use-dev-mapper.patch
similarity index 78%
rename from parted-3.1-tests-rewrite-t6001-to-use-dev-mapper.patch
rename to 0064-tests-rewrite-t6001-to-use-dev-mapper.patch
index 0e7884d..168b76a 100644
--- a/parted-3.1-tests-rewrite-t6001-to-use-dev-mapper.patch
+++ b/0064-tests-rewrite-t6001-to-use-dev-mapper.patch
@@ -1,27 +1,21 @@
-From 7d4947fd094f1dda491473a57a9275971405684e Mon Sep 17 00:00:00 2001
-From: Fedora Ninjas <parted-owner at fedoraproject.org>
+From ea9d81655bbcd5e125ae6bd36a7ac0b95b00ec15 Mon Sep 17 00:00:00 2001
+From: "Brian C. Lane" <bcl at redhat.com>
 Date: Wed, 17 Apr 2013 14:59:36 -0700
-Subject: [PATCH] tests: rewrite t6001 to use /dev/mapper
+Subject: [PATCH 64/69] tests: rewrite t6001 to use /dev/mapper
 
-This test begain failing because using a private copy of /dev/mapper
+This test began failing because using a private copy of /dev/mapper
 confuses the system. This fixes that and generally cleans up the test.
 
 tests/t6001.sh: update to use /dev/mapper directly
 ---
- tests/t6001-psep.sh | 43 ++++++++++++++++++-------------------------
- 1 file changed, 18 insertions(+), 25 deletions(-)
+ tests/t6001-psep.sh | 42 +++++++++++++++++-------------------------
+ 1 file changed, 17 insertions(+), 25 deletions(-)
 
 diff --git a/tests/t6001-psep.sh b/tests/t6001-psep.sh
-index 1859ac9..0c1ab99 100644
+index da6b8a1..809ff9e 100644
 --- a/tests/t6001-psep.sh
 +++ b/tests/t6001-psep.sh
-@@ -1,4 +1,5 @@
- #!/bin/sh
-+
- # ensure that parted names partitions on dm disks correctly
- 
- # Copyright (C) 2011-2012 Free Software Foundation, Inc.
-@@ -19,10 +20,7 @@
+@@ -19,10 +19,7 @@
  . "${srcdir=.}/init.sh"; path_prepend_ ../parted
  
  require_root_
@@ -33,25 +27,25 @@ index 1859ac9..0c1ab99 100644
  
  # Device maps names - should be random to not conflict with existing ones on
  # the system
-@@ -41,25 +39,19 @@ cleanup_fn_() {
+@@ -41,25 +38,19 @@ cleanup_fn_() {
      rm -f "$f1 $f2";
  }
  
 -# create a file of size N bytes
 -N=10M
+-
+-f1=$(pwd)/1; d1=$(loop_setup_ "$f1") \
+-  || skip_ "is this partition mounted with 'nodev'?"
 +loop_file_1=loop-file-1-$$
 +loop_file_2=loop-file-2-$$
  
--f1=$(pwd)/1; d1=$(loop_setup_ "$f1") \
+-f2=$(pwd)/2 ;d2=$(loop_setup_ "$f2") \
 -  || skip_ "is this partition mounted with 'nodev'?"
 +d1=$(loop_setup_ $loop_file_1) || framework_failure
 +d1_size=$(blockdev --getsz $d1)
 +d2=$(loop_setup_ $loop_file_2) || framework_failure
 +d2_size=$(blockdev --getsz $d2)
  
--f2=$(pwd)/2 ;d2=$(loop_setup_ "$f2") \
--  || skip_ "is this partition mounted with 'nodev'?"
--
 -dmsetup_cmd="0 `blockdev --getsz $d1` linear $d1 0"
 -# setup: create a mapping
 -echo "$dmsetup_cmd" | dmsetup create "$linear_" || fail=1
@@ -68,7 +62,7 @@ index 1859ac9..0c1ab99 100644
  compare /dev/null out || fail=1
  
  #make sure device name is correct
-@@ -67,17 +59,18 @@ test -e ${dev}p1 || fail=1
+@@ -67,17 +58,18 @@ test -e ${dev}p1 || fail=1
  
  #repeat on name not ending in a digit
  # setup: create a mapping
@@ -94,5 +88,5 @@ index 1859ac9..0c1ab99 100644
 +
  Exit $fail
 -- 
-1.8.1.4
+1.8.3.1
 
diff --git a/0065-libparted-Add-Intel-Rapid-Start-Technology-partition.patch b/0065-libparted-Add-Intel-Rapid-Start-Technology-partition.patch
new file mode 100644
index 0000000..a012b05
--- /dev/null
+++ b/0065-libparted-Add-Intel-Rapid-Start-Technology-partition.patch
@@ -0,0 +1,384 @@
+From e6a23531e0cb40c2cc75f1e8fbb86ab872cb6f1b Mon Sep 17 00:00:00 2001
+From: "Brian C. Lane" <bcl at redhat.com>
+Date: Mon, 26 Aug 2013 16:27:00 -0700
+Subject: [PATCH 65/69] libparted: Add Intel Rapid Start Technology partition
+ flag.
+
+This adds support for the irst partition type flag. Sets the type to
+0x84 on MS-DOS and D3BFE2DE-3DAF-11DF-BA-40-E3A556D89593 on GPT.
+
+* NEWS (Changes in behavior): Mention it.
+* doc/C/parted.8: Document irst flag.
+* doc/parted.texti: Document irst flag.
+* include/parted/disk.in.h (_PedPartitionFlag): Add PED_PARTITION_IRST flag
+* libparted/disk.c (ped_partition_flag_get_name): Add irst flag
+* libparted/labels/dos.c (DosPartitionData): Likewise
+(raw_part_parse): Likewise
+(msdos_partition_new): Likewise
+(msdos_partition_duplicate): Likewise
+(msdos_partition_set_system): Likewise
+(clear_flags): Likewise
+(msdos_partition_set_flag): Likewise
+(msdos_partition_get_flag): Likewise
+(msdos_partition_is_flag_available): Likewise
+* libparted/labels/gpt.c: Add PARTITION_IRST_GUID
+(GPTPartitionData): Add irst flag
+(_parse_part_entry): Likewise
+(gpt_partition_new): Likewise
+(gpt_partition_set_system): Likewise
+(gpt_partition_set_flag): Likewise
+(gpt_partition_get_flag): Likewise
+(gpt_partition_is_flag_available): Likewise
+---
+ NEWS                     |  4 ++++
+ doc/C/parted.8           |  2 +-
+ doc/parted.texi          |  4 ++++
+ include/parted/disk.in.h |  5 +++--
+ libparted/disk.c         |  2 ++
+ libparted/labels/dos.c   | 21 +++++++++++++++++++++
+ libparted/labels/gpt.c   | 39 +++++++++++++++++++++++++++++++++++++++
+ 7 files changed, 74 insertions(+), 3 deletions(-)
+
+diff --git a/NEWS b/NEWS
+index 98f7c6e..b53a9d0 100644
+--- a/NEWS
++++ b/NEWS
+@@ -25,6 +25,10 @@ GNU parted NEWS                                    -*- outline -*-
+ 
+ ** Changes in behavior
+ 
++  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.
++
+   parted -l no longer lists device-mapper devices other than
+   dmraid whole disks.
+ 
+diff --git a/doc/C/parted.8 b/doc/C/parted.8
+index a9f73f5..2f8e9f5 100644
+--- a/doc/C/parted.8
++++ b/doc/C/parted.8
+@@ -104,7 +104,7 @@ or an LVM logical volume if necessary.
+ .B set \fIpartition\fP \fIflag\fP \fIstate\fP
+ Change the state of the \fIflag\fP on \fIpartition\fP to \fIstate\fP.
+ Supported flags are: "boot", "root", "swap", "hidden", "raid", "lvm", "lba",
+-"legacy_boot" and "palo".
++"legacy_boot", "irst" and "palo".
+ \fIstate\fP should be either "on" or "off".
+ .TP
+ .B unit \fIunit\fP
+diff --git a/doc/parted.texi b/doc/parted.texi
+index 008c383..fd8ccb9 100644
+--- a/doc/parted.texi
++++ b/doc/parted.texi
+@@ -836,6 +836,10 @@ used by Windows on GPT disks.  Note that this flag should not normally be
+ set on Windows filesystem partitions (those that contain NTFS or FAT
+ filesystems).
+ 
++ at item irst
++(MS-DOS, GPT) - this flag identifies an Intel Rapid Start Technology
++partition.
++
+ @item lba
+ (MS-DOS) - this flag can be enabled to tell MS DOS, MS Windows 9x and
+ MS Windows ME based operating systems to use Linear (LBA) mode.
+diff --git a/include/parted/disk.in.h b/include/parted/disk.in.h
+index aa905c5..585383d 100644
+--- a/include/parted/disk.in.h
++++ b/include/parted/disk.in.h
+@@ -73,10 +73,11 @@ enum _PedPartitionFlag {
+         PED_PARTITION_APPLE_TV_RECOVERY=13,
+         PED_PARTITION_DIAG=14,
+         PED_PARTITION_LEGACY_BOOT=15,
+-        PED_PARTITION_MSFT_DATA=16
++        PED_PARTITION_MSFT_DATA=16,
++        PED_PARTITION_IRST=17
+ };
+ #define PED_PARTITION_FIRST_FLAG        PED_PARTITION_BOOT
+-#define PED_PARTITION_LAST_FLAG         PED_PARTITION_MSFT_DATA
++#define PED_PARTITION_LAST_FLAG         PED_PARTITION_IRST
+ 
+ enum _PedDiskTypeFeature {
+         PED_DISK_TYPE_EXTENDED=1,       /**< supports extended partitions */
+diff --git a/libparted/disk.c b/libparted/disk.c
+index d3cd5bb..4ca7255 100644
+--- a/libparted/disk.c
++++ b/libparted/disk.c
+@@ -2441,6 +2441,8 @@ ped_partition_flag_get_name (PedPartitionFlag flag)
+                 return N_("diag");
+         case PED_PARTITION_LEGACY_BOOT:
+                 return N_("legacy_boot");
++        case PED_PARTITION_IRST:
++                return N_("irst");
+ 
+ 	default:
+ 		ped_exception_throw (
+diff --git a/libparted/labels/dos.c b/libparted/labels/dos.c
+index b8c161f..f8591ff 100644
+--- a/libparted/labels/dos.c
++++ b/libparted/labels/dos.c
+@@ -85,6 +85,7 @@ static const char MBR_BOOT_CODE[] = {
+ #define PARTITION_LDM		0x42
+ #define PARTITION_LINUX_SWAP	0x82
+ #define PARTITION_LINUX		0x83
++#define PARTITION_IRST		0x84
+ #define PARTITION_LINUX_EXT	0x85
+ #define PARTITION_LINUX_LVM	0x8e
+ #define PARTITION_HFS		0xaf
+@@ -159,6 +160,7 @@ typedef struct {
+ 	int		palo;
+ 	int		prep;
+ 	int		diag;
++	int		irst;
+ 	OrigState*	orig;			/* used for CHS stuff */
+ } DosPartitionData;
+ 
+@@ -924,6 +926,7 @@ raw_part_parse (const PedDisk* disk, const DosRawPartition* raw_part,
+ 	dos_data->lba = raw_part_is_lba (raw_part);
+ 	dos_data->palo = raw_part->type == PARTITION_PALO;
+ 	dos_data->prep = raw_part->type == PARTITION_PREP;
++	dos_data->irst = raw_part->type == PARTITION_IRST;
+ 	dos_data->orig = ped_malloc (sizeof (OrigState));
+ 	if (!dos_data->orig) {
+ 		ped_partition_destroy (part);
+@@ -1326,6 +1329,7 @@ msdos_partition_new (const PedDisk* disk, PedPartitionType part_type,
+ 		dos_data->lba = 0;
+ 		dos_data->palo = 0;
+ 		dos_data->prep = 0;
++		dos_data->irst = 0;
+ 	} else {
+ 		part->disk_specific = NULL;
+ 	}
+@@ -1361,6 +1365,7 @@ msdos_partition_duplicate (const PedPartition* part)
+ 	new_dos_data->lba = old_dos_data->lba;
+ 	new_dos_data->palo = old_dos_data->palo;
+ 	new_dos_data->prep = old_dos_data->prep;
++	new_dos_data->irst = old_dos_data->irst;
+ 
+ 	if (old_dos_data->orig) {
+ 		new_dos_data->orig = ped_malloc (sizeof (OrigState));
+@@ -1409,6 +1414,7 @@ msdos_partition_set_system (PedPartition* part,
+ 		dos_data->lvm = 0;
+ 		dos_data->palo = 0;
+ 		dos_data->prep = 0;
++		dos_data->irst = 0;
+ 		if (dos_data->lba)
+ 			dos_data->system = PARTITION_EXT_LBA;
+ 		else
+@@ -1441,6 +1447,10 @@ msdos_partition_set_system (PedPartition* part,
+ 		dos_data->system = PARTITION_PREP;
+ 		return 1;
+ 	}
++	if (dos_data->irst) {
++		dos_data->system = PARTITION_IRST;
++		return 1;
++	}
+ 
+ 	if (!fs_type)
+ 		dos_data->system = PARTITION_LINUX;
+@@ -1477,6 +1487,7 @@ clear_flags (DosPartitionData *dos_data)
+   dos_data->lvm = 0;
+   dos_data->palo = 0;
+   dos_data->prep = 0;
++  dos_data->irst = 0;
+   dos_data->raid = 0;
+ }
+ 
+@@ -1555,6 +1566,12 @@ msdos_partition_set_flag (PedPartition* part,
+ 		dos_data->prep = state;
+ 		return ped_partition_set_system (part, part->fs_type);
+ 
++	case PED_PARTITION_IRST:
++		if (state)
++			clear_flags (dos_data);
++		dos_data->irst = state;
++		return ped_partition_set_system (part, part->fs_type);
++
+ 	default:
+ 		return 0;
+ 	}
+@@ -1597,6 +1614,9 @@ msdos_partition_get_flag (const PedPartition* part, PedPartitionFlag flag)
+ 	case PED_PARTITION_PREP:
+ 		return dos_data->prep;
+ 
++	case PED_PARTITION_IRST:
++		return dos_data->irst;
++
+ 	default:
+ 		return 0;
+ 	}
+@@ -1619,6 +1639,7 @@ msdos_partition_is_flag_available (const PedPartition* part,
+ 	case PED_PARTITION_LBA:
+ 	case PED_PARTITION_PALO:
+ 	case PED_PARTITION_PREP:
++	case PED_PARTITION_IRST:
+ 	case PED_PARTITION_DIAG:
+ 		return 1;
+ 
+diff --git a/libparted/labels/gpt.c b/libparted/labels/gpt.c
+index 25490af..0b7d08b 100644
+--- a/libparted/labels/gpt.c
++++ b/libparted/labels/gpt.c
+@@ -146,6 +146,10 @@ typedef struct
+     ((efi_guid_t) { PED_CPU_TO_LE32 (0x5265636F), PED_CPU_TO_LE16 (0x7665), \
+                     PED_CPU_TO_LE16 (0x11AA), 0xaa, 0x11, \
+                     { 0x00, 0x30, 0x65, 0x43, 0xEC, 0xAC }})
++#define PARTITION_IRST_GUID \
++    ((efi_guid_t) { PED_CPU_TO_LE32 (0xD3BFE2DE), PED_CPU_TO_LE16 (0x3DAF), \
++                    PED_CPU_TO_LE16 (0x11DF), 0xba, 0x40, \
++                    { 0xE3, 0xA5, 0x56, 0xD8, 0x95, 0x93 }})
+ 
+ struct __attribute__ ((packed)) _GuidPartitionTableHeader_t
+ {
+@@ -288,6 +292,7 @@ typedef struct _GPTPartitionData
+   int atvrecv;
+   int msftrecv;
+   int legacy_boot;
++  int irst;
+ } GPTPartitionData;
+ 
+ static PedDiskType gpt_disk_type;
+@@ -797,6 +802,7 @@ _parse_part_entry (PedDisk *disk, GuidPartitionEntry_t *pte)
+     = gpt_part_data->msftdata
+     = gpt_part_data->msftrecv
+     = gpt_part_data->legacy_boot
++    = gpt_part_data->irst
+     = gpt_part_data->bios_grub = gpt_part_data->atvrecv = 0;
+ 
+   if (pte->Attributes.RequiredToFunction & 0x1)
+@@ -822,6 +828,8 @@ _parse_part_entry (PedDisk *disk, GuidPartitionEntry_t *pte)
+     gpt_part_data->msftrecv = 1;
+   else if (!guid_cmp (gpt_part_data->type, PARTITION_APPLE_TV_RECOVERY_GUID))
+     gpt_part_data->atvrecv = 1;
++  else if (!guid_cmp (gpt_part_data->type, PARTITION_IRST_GUID))
++    gpt_part_data->irst = 1;
+ 
+   return part;
+ }
+@@ -1339,6 +1347,7 @@ gpt_partition_new (const PedDisk *disk,
+   gpt_part_data->msftrecv = 0;
+   gpt_part_data->atvrecv = 0;
+   gpt_part_data->legacy_boot = 0;
++  gpt_part_data->irst = 0;
+   uuid_generate ((unsigned char *) &gpt_part_data->uuid);
+   swap_uuid_and_efi_guid ((unsigned char *) (&gpt_part_data->uuid));
+   memset (gpt_part_data->name, 0, sizeof gpt_part_data->name);
+@@ -1447,6 +1456,11 @@ gpt_partition_set_system (PedPartition *part,
+       gpt_part_data->type = PARTITION_APPLE_TV_RECOVERY_GUID;
+       return 1;
+     }
++  if (gpt_part_data->irst)
++    {
++      gpt_part_data->type = PARTITION_IRST_GUID;
++      return 1;
++    }
+ 
+   if (fs_type)
+     {
+@@ -1588,6 +1602,7 @@ gpt_partition_set_flag (PedPartition *part, PedPartitionFlag flag, int state)
+           = gpt_part_data->msftres
+           = gpt_part_data->msftdata
+           = gpt_part_data->msftrecv
++          = gpt_part_data->irst
+           = gpt_part_data->atvrecv = 0;
+       return gpt_partition_set_system (part, part->fs_type);
+     case PED_PARTITION_BIOS_GRUB:
+@@ -1600,6 +1615,7 @@ gpt_partition_set_flag (PedPartition *part, PedPartitionFlag flag, int state)
+           = gpt_part_data->msftres
+           = gpt_part_data->msftdata
+           = gpt_part_data->msftrecv
++          = gpt_part_data->irst
+           = gpt_part_data->atvrecv = 0;
+       return gpt_partition_set_system (part, part->fs_type);
+     case PED_PARTITION_RAID:
+@@ -1612,6 +1628,7 @@ gpt_partition_set_flag (PedPartition *part, PedPartitionFlag flag, int state)
+           = gpt_part_data->msftres
+           = gpt_part_data->msftdata
+           = gpt_part_data->msftrecv
++          = gpt_part_data->irst
+           = gpt_part_data->atvrecv = 0;
+       return gpt_partition_set_system (part, part->fs_type);
+     case PED_PARTITION_LVM:
+@@ -1624,6 +1641,7 @@ gpt_partition_set_flag (PedPartition *part, PedPartitionFlag flag, int state)
+           = gpt_part_data->msftres
+           = gpt_part_data->msftdata
+           = gpt_part_data->msftrecv
++          = gpt_part_data->irst
+           = gpt_part_data->atvrecv = 0;
+       return gpt_partition_set_system (part, part->fs_type);
+     case PED_PARTITION_HPSERVICE:
+@@ -1636,6 +1654,7 @@ gpt_partition_set_flag (PedPartition *part, PedPartitionFlag flag, int state)
+           = gpt_part_data->msftres
+           = gpt_part_data->msftdata
+           = gpt_part_data->msftrecv
++          = gpt_part_data->irst
+           = gpt_part_data->atvrecv = 0;
+       return gpt_partition_set_system (part, part->fs_type);
+     case PED_PARTITION_MSFT_RESERVED:
+@@ -1648,6 +1667,7 @@ gpt_partition_set_flag (PedPartition *part, PedPartitionFlag flag, int state)
+           = gpt_part_data->hp_service
+           = gpt_part_data->msftdata
+           = gpt_part_data->msftrecv
++          = gpt_part_data->irst
+           = gpt_part_data->atvrecv = 0;
+       return gpt_partition_set_system (part, part->fs_type);
+     case PED_PARTITION_MSFT_DATA:
+@@ -1660,6 +1680,7 @@ gpt_partition_set_flag (PedPartition *part, PedPartitionFlag flag, int state)
+           = gpt_part_data->hp_service
+           = gpt_part_data->msftres
+           = gpt_part_data->msftrecv
++          = gpt_part_data->irst
+           = gpt_part_data->atvrecv = 0;
+         gpt_part_data->msftdata = 1;
+       } else {
+@@ -1676,6 +1697,7 @@ gpt_partition_set_flag (PedPartition *part, PedPartitionFlag flag, int state)
+           = gpt_part_data->hp_service
+           = gpt_part_data->msftdata
+           = gpt_part_data->msftres
++          = gpt_part_data->irst
+           = gpt_part_data->atvrecv = 0;
+       return gpt_partition_set_system (part, part->fs_type);
+     case PED_PARTITION_APPLE_TV_RECOVERY:
+@@ -1688,8 +1710,22 @@ gpt_partition_set_flag (PedPartition *part, PedPartitionFlag flag, int state)
+           = gpt_part_data->hp_service
+           = gpt_part_data->msftres
+           = gpt_part_data->msftdata
++          = gpt_part_data->irst
+           = gpt_part_data->msftrecv = 0;
+       return gpt_partition_set_system (part, part->fs_type);
++    case PED_PARTITION_IRST:
++      gpt_part_data->irst = state;
++      if (state)
++        gpt_part_data->boot
++          = gpt_part_data->raid
++          = gpt_part_data->lvm
++          = gpt_part_data->bios_grub
++          = gpt_part_data->hp_service
++          = gpt_part_data->msftres
++          = gpt_part_data->msftdata
++          = gpt_part_data->msftrecv
++          = gpt_part_data->atvrecv = 0;
++      return gpt_partition_set_system (part, part->fs_type);
+     case PED_PARTITION_HIDDEN:
+       gpt_part_data->hidden = state;
+       return 1;
+@@ -1736,6 +1772,8 @@ gpt_partition_get_flag (const PedPartition *part, PedPartitionFlag flag)
+       return gpt_part_data->hidden;
+     case PED_PARTITION_LEGACY_BOOT:
+       return gpt_part_data->legacy_boot;
++    case PED_PARTITION_IRST:
++      return gpt_part_data->irst;
+     case PED_PARTITION_SWAP:
+     case PED_PARTITION_LBA:
+     case PED_PARTITION_ROOT:
+@@ -1762,6 +1800,7 @@ gpt_partition_is_flag_available (const PedPartition *part,
+     case PED_PARTITION_APPLE_TV_RECOVERY:
+     case PED_PARTITION_HIDDEN:
+     case PED_PARTITION_LEGACY_BOOT:
++    case PED_PARTITION_IRST:
+       return 1;
+     case PED_PARTITION_SWAP:
+     case PED_PARTITION_ROOT:
+-- 
+1.8.3.1
+
diff --git a/0066-libparted-Add-UEFI-System-Partition-flag.patch b/0066-libparted-Add-UEFI-System-Partition-flag.patch
new file mode 100644
index 0000000..20dfece
--- /dev/null
+++ b/0066-libparted-Add-UEFI-System-Partition-flag.patch
@@ -0,0 +1,241 @@
+From 1cb8a0e1c6a459b1f9e77501f0e7c582a031fdef Mon Sep 17 00:00:00 2001
+From: "Brian C. Lane" <bcl at redhat.com>
+Date: Mon, 26 Aug 2013 17:43:09 -0700
+Subject: [PATCH 66/69] libparted: Add UEFI System Partition flag.
+
+This adds support for the ESP partition type on MS-DOS. It also aliases
+it to the boot flag on GPT which sets the ESP GUID type.
+
+* NEWS (Changes in behavior): Mention it.
+* doc/C/parted.8: Document esp flag.
+* doc/parted.texti: Document esp flag.
+* include/parted/disk.in.h (_PedPartitionFlag): Add PED_PARTITION_ESP flag
+* libparted/disk.c (ped_partition_flag_get_name): Add esp flag
+* libparted/labels/dos.c (DosPartitionData): Likewise
+(raw_part_parse): Likewise
+(msdos_partition_new): Likewise
+(msdos_partition_duplicate): Likewise
+(msdos_partition_set_system): Likewise
+(clear_flags): Likewise
+(msdos_partition_set_flag): Likewise
+(msdos_partition_get_flag): Likewise
+(msdos_partition_is_flag_available): Likewise
+* libparted/labels/gpt.c (gpt_partition_set_flag): Add PED_PARTITION_ESP
+(gpt_partition_get_flag): Likewise
+(gpt_partition_is_flag_available): Likewise
+---
+ NEWS                     |  3 +++
+ doc/C/parted.8           |  2 +-
+ doc/parted.texi          |  4 ++++
+ include/parted/disk.in.h |  5 +++--
+ libparted/disk.c         |  2 ++
+ libparted/labels/dos.c   | 21 +++++++++++++++++++++
+ libparted/labels/gpt.c   |  3 +++
+ 7 files changed, 37 insertions(+), 3 deletions(-)
+
+diff --git a/NEWS b/NEWS
+index b53a9d0..541ea1c 100644
+--- a/NEWS
++++ b/NEWS
+@@ -25,6 +25,9 @@ GNU parted NEWS                                    -*- outline -*-
+ 
+ ** Changes in behavior
+ 
++  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.
+diff --git a/doc/C/parted.8 b/doc/C/parted.8
+index 2f8e9f5..f8e6a3d 100644
+--- a/doc/C/parted.8
++++ b/doc/C/parted.8
+@@ -104,7 +104,7 @@ or an LVM logical volume if necessary.
+ .B set \fIpartition\fP \fIflag\fP \fIstate\fP
+ Change the state of the \fIflag\fP on \fIpartition\fP to \fIstate\fP.
+ Supported flags are: "boot", "root", "swap", "hidden", "raid", "lvm", "lba",
+-"legacy_boot", "irst" and "palo".
++"legacy_boot", "irst", "esp" and "palo".
+ \fIstate\fP should be either "on" or "off".
+ .TP
+ .B unit \fIunit\fP
+diff --git a/doc/parted.texi b/doc/parted.texi
+index fd8ccb9..a5effd5 100644
+--- a/doc/parted.texi
++++ b/doc/parted.texi
+@@ -840,6 +840,10 @@ filesystems).
+ (MS-DOS, GPT) - this flag identifies an Intel Rapid Start Technology
+ partition.
+ 
++ at item esp
++(MS-DOS, GPT) - this flag identifies a UEFI System Partition. On GPT
++it is an alias for boot.
++
+ @item lba
+ (MS-DOS) - this flag can be enabled to tell MS DOS, MS Windows 9x and
+ MS Windows ME based operating systems to use Linear (LBA) mode.
+diff --git a/include/parted/disk.in.h b/include/parted/disk.in.h
+index 585383d..d144e21 100644
+--- a/include/parted/disk.in.h
++++ b/include/parted/disk.in.h
+@@ -74,10 +74,11 @@ enum _PedPartitionFlag {
+         PED_PARTITION_DIAG=14,
+         PED_PARTITION_LEGACY_BOOT=15,
+         PED_PARTITION_MSFT_DATA=16,
+-        PED_PARTITION_IRST=17
++        PED_PARTITION_IRST=17,
++        PED_PARTITION_ESP=18
+ };
+ #define PED_PARTITION_FIRST_FLAG        PED_PARTITION_BOOT
+-#define PED_PARTITION_LAST_FLAG         PED_PARTITION_IRST
++#define PED_PARTITION_LAST_FLAG         PED_PARTITION_ESP
+ 
+ enum _PedDiskTypeFeature {
+         PED_DISK_TYPE_EXTENDED=1,       /**< supports extended partitions */
+diff --git a/libparted/disk.c b/libparted/disk.c
+index 4ca7255..c22b2a2 100644
+--- a/libparted/disk.c
++++ b/libparted/disk.c
+@@ -2443,6 +2443,8 @@ ped_partition_flag_get_name (PedPartitionFlag flag)
+                 return N_("legacy_boot");
+         case PED_PARTITION_IRST:
+                 return N_("irst");
++        case PED_PARTITION_ESP:
++                return N_("esp");
+ 
+ 	default:
+ 		ped_exception_throw (
+diff --git a/libparted/labels/dos.c b/libparted/labels/dos.c
+index f8591ff..fc7292a 100644
+--- a/libparted/labels/dos.c
++++ b/libparted/labels/dos.c
+@@ -92,6 +92,7 @@ static const char MBR_BOOT_CODE[] = {
+ #define PARTITION_SUN_UFS	0xbf
+ #define PARTITION_DELL_DIAG	0xde
+ #define PARTITION_GPT		0xee
++#define PARTITION_ESP		0xef
+ #define PARTITION_PALO		0xf0
+ #define PARTITION_PREP		0x41
+ #define PARTITION_LINUX_RAID	0xfd
+@@ -161,6 +162,7 @@ typedef struct {
+ 	int		prep;
+ 	int		diag;
+ 	int		irst;
++	int		esp;
+ 	OrigState*	orig;			/* used for CHS stuff */
+ } DosPartitionData;
+ 
+@@ -927,6 +929,7 @@ raw_part_parse (const PedDisk* disk, const DosRawPartition* raw_part,
+ 	dos_data->palo = raw_part->type == PARTITION_PALO;
+ 	dos_data->prep = raw_part->type == PARTITION_PREP;
+ 	dos_data->irst = raw_part->type == PARTITION_IRST;
++	dos_data->esp = raw_part->type == PARTITION_ESP;
+ 	dos_data->orig = ped_malloc (sizeof (OrigState));
+ 	if (!dos_data->orig) {
+ 		ped_partition_destroy (part);
+@@ -1330,6 +1333,7 @@ msdos_partition_new (const PedDisk* disk, PedPartitionType part_type,
+ 		dos_data->palo = 0;
+ 		dos_data->prep = 0;
+ 		dos_data->irst = 0;
++		dos_data->esp = 0;
+ 	} else {
+ 		part->disk_specific = NULL;
+ 	}
+@@ -1366,6 +1370,7 @@ msdos_partition_duplicate (const PedPartition* part)
+ 	new_dos_data->palo = old_dos_data->palo;
+ 	new_dos_data->prep = old_dos_data->prep;
+ 	new_dos_data->irst = old_dos_data->irst;
++	new_dos_data->esp = old_dos_data->esp;
+ 
+ 	if (old_dos_data->orig) {
+ 		new_dos_data->orig = ped_malloc (sizeof (OrigState));
+@@ -1415,6 +1420,7 @@ msdos_partition_set_system (PedPartition* part,
+ 		dos_data->palo = 0;
+ 		dos_data->prep = 0;
+ 		dos_data->irst = 0;
++		dos_data->esp = 0;
+ 		if (dos_data->lba)
+ 			dos_data->system = PARTITION_EXT_LBA;
+ 		else
+@@ -1451,6 +1457,10 @@ msdos_partition_set_system (PedPartition* part,
+ 		dos_data->system = PARTITION_IRST;
+ 		return 1;
+ 	}
++	if (dos_data->esp) {
++		dos_data->system = PARTITION_ESP;
++		return 1;
++	}
+ 
+ 	if (!fs_type)
+ 		dos_data->system = PARTITION_LINUX;
+@@ -1488,6 +1498,7 @@ clear_flags (DosPartitionData *dos_data)
+   dos_data->palo = 0;
+   dos_data->prep = 0;
+   dos_data->irst = 0;
++  dos_data->esp = 0;
+   dos_data->raid = 0;
+ }
+ 
+@@ -1572,6 +1583,12 @@ msdos_partition_set_flag (PedPartition* part,
+ 		dos_data->irst = state;
+ 		return ped_partition_set_system (part, part->fs_type);
+ 
++	case PED_PARTITION_ESP:
++		if (state)
++			clear_flags (dos_data);
++		dos_data->esp = state;
++		return ped_partition_set_system (part, part->fs_type);
++
+ 	default:
+ 		return 0;
+ 	}
+@@ -1617,6 +1634,9 @@ msdos_partition_get_flag (const PedPartition* part, PedPartitionFlag flag)
+ 	case PED_PARTITION_IRST:
+ 		return dos_data->irst;
+ 
++	case PED_PARTITION_ESP:
++		return dos_data->esp;
++
+ 	default:
+ 		return 0;
+ 	}
+@@ -1640,6 +1660,7 @@ msdos_partition_is_flag_available (const PedPartition* part,
+ 	case PED_PARTITION_PALO:
+ 	case PED_PARTITION_PREP:
+ 	case PED_PARTITION_IRST:
++	case PED_PARTITION_ESP:
+ 	case PED_PARTITION_DIAG:
+ 		return 1;
+ 
+diff --git a/libparted/labels/gpt.c b/libparted/labels/gpt.c
+index 0b7d08b..64b92b4 100644
+--- a/libparted/labels/gpt.c
++++ b/libparted/labels/gpt.c
+@@ -1592,6 +1592,7 @@ gpt_partition_set_flag (PedPartition *part, PedPartitionFlag flag, int state)
+ 
+   switch (flag)
+     {
++    case PED_PARTITION_ESP:
+     case PED_PARTITION_BOOT:
+       gpt_part_data->boot = state;
+       if (state)
+@@ -1754,6 +1755,7 @@ gpt_partition_get_flag (const PedPartition *part, PedPartitionFlag flag)
+       return gpt_part_data->raid;
+     case PED_PARTITION_LVM:
+       return gpt_part_data->lvm;
++    case PED_PARTITION_ESP:
+     case PED_PARTITION_BOOT:
+       return gpt_part_data->boot;
+     case PED_PARTITION_BIOS_GRUB:
+@@ -1801,6 +1803,7 @@ gpt_partition_is_flag_available (const PedPartition *part,
+     case PED_PARTITION_HIDDEN:
+     case PED_PARTITION_LEGACY_BOOT:
+     case PED_PARTITION_IRST:
++    case PED_PARTITION_ESP:
+       return 1;
+     case PED_PARTITION_SWAP:
+     case PED_PARTITION_ROOT:
+-- 
+1.8.3.1
+
diff --git a/0067-libparted-Add-hfs_esp-partition-flag-to-GPT.patch b/0067-libparted-Add-hfs_esp-partition-flag-to-GPT.patch
new file mode 100644
index 0000000..e0e9250
--- /dev/null
+++ b/0067-libparted-Add-hfs_esp-partition-flag-to-GPT.patch
@@ -0,0 +1,286 @@
+From a5542113ab8bde419edfcc5ac46f6a5f6e575dd5 Mon Sep 17 00:00:00 2001
+From: "Brian C. Lane" <bcl at redhat.com>
+Date: Tue, 27 Aug 2013 11:52:54 -0700
+Subject: [PATCH 67/69] libparted: Add hfs_esp partition flag to GPT.
+
+Mac uses a HFS+ formatted partition for ESP. When dual booting with
+Linux we need a way to differentiate between the Mac partition and the
+one created by Linux which contains just enough stuff to fake OSX into
+displaying a nice logo and allowing it to be selected for boot. I
+generated a GUID (47CB5633-7E3E-408B-B7B8-2D915B7B21B1) and added a new
+flag to control it.
+
+* NEWS (Changes in behavior): Mention it.
+* doc/C/parted.8: Document hfs_esp flag.
+* doc/parted.texti: Document hfs_esp flag.
+* include/parted/disk.in.h (_PedPartitionFlag): Add PED_PARTITION_HFS_ESP flag
+* libparted/disk.c (ped_partition_flag_get_name): Add hfs_esp flag
+* libparted/labels/gpt.c: Add PARTITION_HFS_ESP_GUID
+(GPTPartitionData): Add hfs_esp flag
+(_parse_part_entry): Likewise
+(gpt_partition_new): Likewise
+(gpt_partition_set_system): Set PARTITION_HFS_ESP_GUID
+(gpt_partition_set_flag): Add hfs_esp and PED_PARTITION_HFS_ESP
+(gpt_partition_get_flag): Likewise
+(gpt_partition_is_flag_available): Likewise
+---
+ NEWS                     |  8 ++++++++
+ doc/C/parted.8           |  2 +-
+ doc/parted.texi          |  4 ++++
+ include/parted/disk.in.h |  5 +++--
+ libparted/disk.c         |  2 ++
+ libparted/labels/gpt.c   | 41 +++++++++++++++++++++++++++++++++++++++++
+ 6 files changed, 59 insertions(+), 3 deletions(-)
+
+diff --git a/NEWS b/NEWS
+index 541ea1c..026e897 100644
+--- a/NEWS
++++ b/NEWS
+@@ -25,6 +25,14 @@ GNU parted NEWS                                    -*- outline -*-
+ 
+ ** Changes in behavior
+ 
++  Added new GPT partition type flag, hfs_esp, that sets the GUID to
++  47CB5633-7E3E-408B-B7B8-2D915B7B21B1 so that you can distinguish
++  between OSX's native HFS+ partition and one used Linux on UEFI. The
++  way Mac handles UEFI is unique, it only uses the standard ESP for
++  firmware updates and needs a HFS+ formatted partition for UEFI. This
++  GUID will allow dual booting Linux systems to determine the correct
++  partition to use when upgrading or re-installing systems.
++
+   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.
+ 
+diff --git a/doc/C/parted.8 b/doc/C/parted.8
+index f8e6a3d..ccbfd18 100644
+--- a/doc/C/parted.8
++++ b/doc/C/parted.8
+@@ -104,7 +104,7 @@ or an LVM logical volume if necessary.
+ .B set \fIpartition\fP \fIflag\fP \fIstate\fP
+ Change the state of the \fIflag\fP on \fIpartition\fP to \fIstate\fP.
+ Supported flags are: "boot", "root", "swap", "hidden", "raid", "lvm", "lba",
+-"legacy_boot", "irst", "esp" and "palo".
++"legacy_boot", "irst", "esp", "hfs_esp" and "palo".
+ \fIstate\fP should be either "on" or "off".
+ .TP
+ .B unit \fIunit\fP
+diff --git a/doc/parted.texi b/doc/parted.texi
+index a5effd5..ee5b3f7 100644
+--- a/doc/parted.texi
++++ b/doc/parted.texi
+@@ -844,6 +844,10 @@ partition.
+ (MS-DOS, GPT) - this flag identifies a UEFI System Partition. On GPT
+ it is an alias for boot.
+ 
++ at item hfs_esp
++(GPT) - this flag identifies a special UEFI HFS+ ESP for use with Mac
++hardware.
++
+ @item lba
+ (MS-DOS) - this flag can be enabled to tell MS DOS, MS Windows 9x and
+ MS Windows ME based operating systems to use Linear (LBA) mode.
+diff --git a/include/parted/disk.in.h b/include/parted/disk.in.h
+index d144e21..c34c294 100644
+--- a/include/parted/disk.in.h
++++ b/include/parted/disk.in.h
+@@ -75,10 +75,11 @@ enum _PedPartitionFlag {
+         PED_PARTITION_LEGACY_BOOT=15,
+         PED_PARTITION_MSFT_DATA=16,
+         PED_PARTITION_IRST=17,
+-        PED_PARTITION_ESP=18
++        PED_PARTITION_ESP=18,
++        PED_PARTITION_HFS_ESP=19
+ };
+ #define PED_PARTITION_FIRST_FLAG        PED_PARTITION_BOOT
+-#define PED_PARTITION_LAST_FLAG         PED_PARTITION_ESP
++#define PED_PARTITION_LAST_FLAG         PED_PARTITION_HFS_ESP
+ 
+ enum _PedDiskTypeFeature {
+         PED_DISK_TYPE_EXTENDED=1,       /**< supports extended partitions */
+diff --git a/libparted/disk.c b/libparted/disk.c
+index c22b2a2..7d24f74 100644
+--- a/libparted/disk.c
++++ b/libparted/disk.c
+@@ -2445,6 +2445,8 @@ ped_partition_flag_get_name (PedPartitionFlag flag)
+                 return N_("irst");
+         case PED_PARTITION_ESP:
+                 return N_("esp");
++        case PED_PARTITION_HFS_ESP:
++                return N_("hfs_esp");
+ 
+ 	default:
+ 		ped_exception_throw (
+diff --git a/libparted/labels/gpt.c b/libparted/labels/gpt.c
+index 64b92b4..c72573c 100644
+--- a/libparted/labels/gpt.c
++++ b/libparted/labels/gpt.c
+@@ -150,6 +150,10 @@ typedef struct
+     ((efi_guid_t) { PED_CPU_TO_LE32 (0xD3BFE2DE), PED_CPU_TO_LE16 (0x3DAF), \
+                     PED_CPU_TO_LE16 (0x11DF), 0xba, 0x40, \
+                     { 0xE3, 0xA5, 0x56, 0xD8, 0x95, 0x93 }})
++#define PARTITION_HFS_ESP_GUID \
++    ((efi_guid_t) { PED_CPU_TO_LE32 (0x47CB5633), PED_CPU_TO_LE16 (0x7E3E), \
++                    PED_CPU_TO_LE16 (0x408B), 0xB7, 0xB8, \
++                    { 0x2D, 0x91, 0x5B, 0x7B, 0x21, 0xB1 }})
+ 
+ struct __attribute__ ((packed)) _GuidPartitionTableHeader_t
+ {
+@@ -293,6 +297,7 @@ typedef struct _GPTPartitionData
+   int msftrecv;
+   int legacy_boot;
+   int irst;
++  int hfs_esp;
+ } GPTPartitionData;
+ 
+ static PedDiskType gpt_disk_type;
+@@ -803,6 +808,7 @@ _parse_part_entry (PedDisk *disk, GuidPartitionEntry_t *pte)
+     = gpt_part_data->msftrecv
+     = gpt_part_data->legacy_boot
+     = gpt_part_data->irst
++    = gpt_part_data->hfs_esp
+     = gpt_part_data->bios_grub = gpt_part_data->atvrecv = 0;
+ 
+   if (pte->Attributes.RequiredToFunction & 0x1)
+@@ -830,6 +836,8 @@ _parse_part_entry (PedDisk *disk, GuidPartitionEntry_t *pte)
+     gpt_part_data->atvrecv = 1;
+   else if (!guid_cmp (gpt_part_data->type, PARTITION_IRST_GUID))
+     gpt_part_data->irst = 1;
++  else if (!guid_cmp (gpt_part_data->type, PARTITION_HFS_ESP_GUID))
++    gpt_part_data->hfs_esp = 1;
+ 
+   return part;
+ }
+@@ -1348,6 +1356,7 @@ gpt_partition_new (const PedDisk *disk,
+   gpt_part_data->atvrecv = 0;
+   gpt_part_data->legacy_boot = 0;
+   gpt_part_data->irst = 0;
++  gpt_part_data->hfs_esp = 0;
+   uuid_generate ((unsigned char *) &gpt_part_data->uuid);
+   swap_uuid_and_efi_guid ((unsigned char *) (&gpt_part_data->uuid));
+   memset (gpt_part_data->name, 0, sizeof gpt_part_data->name);
+@@ -1461,6 +1470,11 @@ gpt_partition_set_system (PedPartition *part,
+       gpt_part_data->type = PARTITION_IRST_GUID;
+       return 1;
+     }
++  if (gpt_part_data->hfs_esp)
++    {
++      gpt_part_data->type = PARTITION_HFS_ESP_GUID;
++      return 1;
++    }
+ 
+   if (fs_type)
+     {
+@@ -1604,6 +1618,7 @@ gpt_partition_set_flag (PedPartition *part, PedPartitionFlag flag, int state)
+           = gpt_part_data->msftdata
+           = gpt_part_data->msftrecv
+           = gpt_part_data->irst
++          = gpt_part_data->hfs_esp
+           = gpt_part_data->atvrecv = 0;
+       return gpt_partition_set_system (part, part->fs_type);
+     case PED_PARTITION_BIOS_GRUB:
+@@ -1617,6 +1632,7 @@ gpt_partition_set_flag (PedPartition *part, PedPartitionFlag flag, int state)
+           = gpt_part_data->msftdata
+           = gpt_part_data->msftrecv
+           = gpt_part_data->irst
++          = gpt_part_data->hfs_esp
+           = gpt_part_data->atvrecv = 0;
+       return gpt_partition_set_system (part, part->fs_type);
+     case PED_PARTITION_RAID:
+@@ -1630,6 +1646,7 @@ gpt_partition_set_flag (PedPartition *part, PedPartitionFlag flag, int state)
+           = gpt_part_data->msftdata
+           = gpt_part_data->msftrecv
+           = gpt_part_data->irst
++          = gpt_part_data->hfs_esp
+           = gpt_part_data->atvrecv = 0;
+       return gpt_partition_set_system (part, part->fs_type);
+     case PED_PARTITION_LVM:
+@@ -1643,6 +1660,7 @@ gpt_partition_set_flag (PedPartition *part, PedPartitionFlag flag, int state)
+           = gpt_part_data->msftdata
+           = gpt_part_data->msftrecv
+           = gpt_part_data->irst
++          = gpt_part_data->hfs_esp
+           = gpt_part_data->atvrecv = 0;
+       return gpt_partition_set_system (part, part->fs_type);
+     case PED_PARTITION_HPSERVICE:
+@@ -1656,6 +1674,7 @@ gpt_partition_set_flag (PedPartition *part, PedPartitionFlag flag, int state)
+           = gpt_part_data->msftdata
+           = gpt_part_data->msftrecv
+           = gpt_part_data->irst
++          = gpt_part_data->hfs_esp
+           = gpt_part_data->atvrecv = 0;
+       return gpt_partition_set_system (part, part->fs_type);
+     case PED_PARTITION_MSFT_RESERVED:
+@@ -1669,6 +1688,7 @@ gpt_partition_set_flag (PedPartition *part, PedPartitionFlag flag, int state)
+           = gpt_part_data->msftdata
+           = gpt_part_data->msftrecv
+           = gpt_part_data->irst
++          = gpt_part_data->hfs_esp
+           = gpt_part_data->atvrecv = 0;
+       return gpt_partition_set_system (part, part->fs_type);
+     case PED_PARTITION_MSFT_DATA:
+@@ -1682,6 +1702,7 @@ gpt_partition_set_flag (PedPartition *part, PedPartitionFlag flag, int state)
+           = gpt_part_data->msftres
+           = gpt_part_data->msftrecv
+           = gpt_part_data->irst
++          = gpt_part_data->hfs_esp
+           = gpt_part_data->atvrecv = 0;
+         gpt_part_data->msftdata = 1;
+       } else {
+@@ -1699,6 +1720,7 @@ gpt_partition_set_flag (PedPartition *part, PedPartitionFlag flag, int state)
+           = gpt_part_data->msftdata
+           = gpt_part_data->msftres
+           = gpt_part_data->irst
++          = gpt_part_data->hfs_esp
+           = gpt_part_data->atvrecv = 0;
+       return gpt_partition_set_system (part, part->fs_type);
+     case PED_PARTITION_APPLE_TV_RECOVERY:
+@@ -1712,6 +1734,7 @@ gpt_partition_set_flag (PedPartition *part, PedPartitionFlag flag, int state)
+           = gpt_part_data->msftres
+           = gpt_part_data->msftdata
+           = gpt_part_data->irst
++          = gpt_part_data->hfs_esp
+           = gpt_part_data->msftrecv = 0;
+       return gpt_partition_set_system (part, part->fs_type);
+     case PED_PARTITION_IRST:
+@@ -1725,6 +1748,21 @@ gpt_partition_set_flag (PedPartition *part, PedPartitionFlag flag, int state)
+           = gpt_part_data->msftres
+           = gpt_part_data->msftdata
+           = gpt_part_data->msftrecv
++          = gpt_part_data->hfs_esp
++          = gpt_part_data->atvrecv = 0;
++      return gpt_partition_set_system (part, part->fs_type);
++    case PED_PARTITION_HFS_ESP:
++      gpt_part_data->hfs_esp = state;
++      if (state)
++        gpt_part_data->boot
++          = gpt_part_data->raid
++          = gpt_part_data->lvm
++          = gpt_part_data->bios_grub
++          = gpt_part_data->hp_service
++          = gpt_part_data->msftres
++          = gpt_part_data->msftdata
++          = gpt_part_data->msftrecv
++          = gpt_part_data->irst
+           = gpt_part_data->atvrecv = 0;
+       return gpt_partition_set_system (part, part->fs_type);
+     case PED_PARTITION_HIDDEN:
+@@ -1776,6 +1814,8 @@ gpt_partition_get_flag (const PedPartition *part, PedPartitionFlag flag)
+       return gpt_part_data->legacy_boot;
+     case PED_PARTITION_IRST:
+       return gpt_part_data->irst;
++    case PED_PARTITION_HFS_ESP:
++      return gpt_part_data->hfs_esp;
+     case PED_PARTITION_SWAP:
+     case PED_PARTITION_LBA:
+     case PED_PARTITION_ROOT:
+@@ -1804,6 +1844,7 @@ gpt_partition_is_flag_available (const PedPartition *part,
+     case PED_PARTITION_LEGACY_BOOT:
+     case PED_PARTITION_IRST:
+     case PED_PARTITION_ESP:
++    case PED_PARTITION_HFS_ESP:
+       return 1;
+     case PED_PARTITION_SWAP:
+     case PED_PARTITION_ROOT:
+-- 
+1.8.3.1
+
diff --git a/0068-libparted-Recognize-btrfs-filesystem.patch b/0068-libparted-Recognize-btrfs-filesystem.patch
new file mode 100644
index 0000000..5c9fbd2
--- /dev/null
+++ b/0068-libparted-Recognize-btrfs-filesystem.patch
@@ -0,0 +1,184 @@
+From 7e43d97d8cbad8fbb51a818362293d6c2ab82304 Mon Sep 17 00:00:00 2001
+From: "Brian C. Lane" <bcl at redhat.com>
+Date: Tue, 27 Aug 2013 17:27:07 -0700
+Subject: [PATCH 68/69] libparted: Recognize btrfs filesystem
+
+Add support for showing 'btrfs' in  the 'file system' column. Also
+allows the used to enter btrfs as the fs type. It doesn't really do
+anything -- just sets the partition type to linux.
+
+* NEWS (Changes in behavior): Mention it.
+* doc/parted.texti: Document btrfs fs.
+* (libparted/fs/Makefile.am): Add btrfs.c
+* (libparted/fs/btrfs/btrfs.c): Probe for btrfs
+* (libparted/libparted.c): Register btrfs
+---
+ NEWS                       |  3 ++
+ doc/parted.texi            |  1 +
+ libparted/fs/Makefile.am   |  1 +
+ libparted/fs/btrfs/btrfs.c | 78 ++++++++++++++++++++++++++++++++++++++++++++++
+ libparted/libparted.c      |  4 +++
+ 5 files changed, 87 insertions(+)
+ create mode 100644 libparted/fs/btrfs/btrfs.c
+
+diff --git a/NEWS b/NEWS
+index 026e897..df259d6 100644
+--- a/NEWS
++++ b/NEWS
+@@ -25,6 +25,9 @@ GNU parted NEWS                                    -*- outline -*-
+ 
+ ** Changes in behavior
+ 
++  Added support for recognizing btrfs filesystem. This simply displays
++  btrfs in the 'file system' column of the parted output.
++
+   Added new GPT partition type flag, hfs_esp, that sets the GUID to
+   47CB5633-7E3E-408B-B7B8-2D915B7B21B1 so that you can distinguish
+   between OSX's native HFS+ partition and one used Linux on UEFI. The
+diff --git a/doc/parted.texi b/doc/parted.texi
+index ee5b3f7..03522e7 100644
+--- a/doc/parted.texi
++++ b/doc/parted.texi
+@@ -575,6 +575,7 @@ partition table.
+ @item NTFS
+ @item reiserfs
+ @item ufs
++ at item btrfs
+ @end itemize
+ 
+ For example, the following creates a logical partition that will contain
+diff --git a/libparted/fs/Makefile.am b/libparted/fs/Makefile.am
+index aac03cc..1949617 100644
+--- a/libparted/fs/Makefile.am
++++ b/libparted/fs/Makefile.am
+@@ -23,6 +23,7 @@ libfs_la_SOURCES =		\
+   amiga/asfs.c			\
+   amiga/asfs.h			\
+   amiga/a-interface.c		\
++  btrfs/btrfs.c			\
+   ext2/ext2.h			\
+   ext2/ext2_fs.h		\
+   ext2/interface.c		\
+diff --git a/libparted/fs/btrfs/btrfs.c b/libparted/fs/btrfs/btrfs.c
+new file mode 100644
+index 0000000..e5abed6
+--- /dev/null
++++ b/libparted/fs/btrfs/btrfs.c
+@@ -0,0 +1,78 @@
++/*
++    libparted - a library for manipulating disk partitions
++    Copyright (C) 2013 Free Software Foundation, Inc.
++
++    This program is free software; you can redistribute it and/or modify
++    it under the terms of the GNU General Public License as published by
++    the Free Software Foundation; either version 3 of the License, or
++    (at your option) any later version.
++
++    This program is distributed in the hope that it will be useful,
++    but WITHOUT ANY WARRANTY; without even the implied warranty of
++    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
++    GNU General Public License for more details.
++
++    You should have received a copy of the GNU General Public License
++    along with this program.  If not, see <http://www.gnu.org/licenses/>.
++*/
++
++#include <config.h>
++
++#include <parted/parted.h>
++#include <parted/endian.h>
++
++/* Located 64k inside the partition (start of the first btrfs superblock) */
++#define BTRFS_MAGIC 0x4D5F53665248425FULL /* ascii _BHRfS_M, no null */
++#define BTRFS_CSUM_SIZE 32
++#define BTRFS_FSID_SIZE 16
++
++
++static PedGeometry*
++btrfs_probe (PedGeometry* geom)
++{
++        union {
++            struct {
++                /* Just enough of the btrfs_super_block to get the magic */
++                uint8_t csum[BTRFS_CSUM_SIZE];
++                uint8_t fsid[BTRFS_FSID_SIZE];
++                uint64_t bytenr;
++                uint64_t flags;
++                uint64_t magic;
++            } sb;
++            int8_t      sector[8192];
++        } buf;
++        PedSector offset = (64*1024)/geom->dev->sector_size;
++
++        if (geom->length < offset+1)
++                return 0;
++        if (!ped_geometry_read (geom, &buf, offset, 1))
++                return 0;
++
++        if (PED_LE64_TO_CPU(buf.sb.magic) == BTRFS_MAGIC) {
++                return ped_geometry_new (geom->dev, geom->start, geom->length);
++        }
++        return NULL;
++}
++
++static PedFileSystemOps btrfs_ops = {
++        probe:          btrfs_probe,
++};
++
++static PedFileSystemType btrfs_type = {
++        next:   NULL,
++        ops:    &btrfs_ops,
++        name:   "btrfs",
++        block_sizes: ((int[2]){512, 0})
++};
++
++void
++ped_file_system_btrfs_init ()
++{
++        ped_file_system_type_register (&btrfs_type);
++}
++
++void
++ped_file_system_btrfs_done ()
++{
++        ped_file_system_type_unregister (&btrfs_type);
++}
+diff --git a/libparted/libparted.c b/libparted/libparted.c
+index 9923bfa..3afbf8e 100644
+--- a/libparted/libparted.c
++++ b/libparted/libparted.c
+@@ -109,6 +109,7 @@ extern void ped_file_system_hfs_init (void);
+ extern void ped_file_system_fat_init (void);
+ extern void ped_file_system_ext2_init (void);
+ extern void ped_file_system_nilfs2_init (void);
++extern void ped_file_system_btrfs_init (void);
+ 
+ static void
+ init_file_system_types ()
+@@ -124,6 +125,7 @@ init_file_system_types ()
+ 	ped_file_system_fat_init ();
+ 	ped_file_system_ext2_init ();
+ 	ped_file_system_nilfs2_init ();
++	ped_file_system_btrfs_init ();
+ }
+ 
+ extern void ped_disk_aix_done ();
+@@ -186,6 +188,7 @@ extern void ped_file_system_reiserfs_done (void);
+ extern void ped_file_system_ufs_done (void);
+ extern void ped_file_system_xfs_done (void);
+ extern void ped_file_system_amiga_done (void);
++extern void ped_file_system_btrfs_done (void);
+ 
+ static void
+ done_file_system_types ()
+@@ -201,6 +204,7 @@ done_file_system_types ()
+ 	ped_file_system_ufs_done ();
+ 	ped_file_system_xfs_done ();
+ 	ped_file_system_amiga_done ();
++	ped_file_system_btrfs_done ();
+ }
+ 
+ static void _done() __attribute__ ((destructor));
+-- 
+1.8.3.1
+
diff --git a/0069-tests-Add-btrfs-and-xfs-to-the-fs-probe-test.patch b/0069-tests-Add-btrfs-and-xfs-to-the-fs-probe-test.patch
new file mode 100644
index 0000000..7aa5449
--- /dev/null
+++ b/0069-tests-Add-btrfs-and-xfs-to-the-fs-probe-test.patch
@@ -0,0 +1,26 @@
+From 17027da1eda39d20b2d6dca0a59ac4afc5409318 Mon Sep 17 00:00:00 2001
+From: "Brian C. Lane" <bcl at redhat.com>
+Date: Wed, 28 Aug 2013 08:47:26 -0700
+Subject: [PATCH 69/69] tests: Add btrfs and xfs to the fs probe test
+
+* tests/tests/t1700-probe-fs.sh: Add btrfs and xfs
+---
+ tests/t1700-probe-fs.sh | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/tests/t1700-probe-fs.sh b/tests/t1700-probe-fs.sh
+index 7ce53d0..0418e73 100755
+--- a/tests/t1700-probe-fs.sh
++++ b/tests/t1700-probe-fs.sh
+@@ -22,7 +22,7 @@ require_512_byte_sector_size_
+ dev=loop-file
+ ss=$sector_size_
+ 
+-for type in ext2 ext3 ext4 nilfs2; do
++for type in ext2 ext3 ext4 btrfs xfs nilfs2; do
+ 
+   ( mkfs.$type -V ) >/dev/null 2>&1 \
+       || { warn_ "$ME: no $type support"; continue; }
+-- 
+1.8.3.1
+
diff --git a/parted.spec b/parted.spec
index 62b0d13..4269026 100644
--- a/parted.spec
+++ b/parted.spec
@@ -4,7 +4,7 @@
 Summary: The GNU disk partition manipulation program
 Name:    parted
 Version: 3.1
-Release: 13%{?dist}
+Release: 14%{?dist}
 License: GPLv3+
 Group:   Applications/System
 URL:     http://www.gnu.org/software/parted
@@ -13,25 +13,82 @@ Source0: ftp://ftp.gnu.org/gnu/%{name}/%{name}-%{version}.tar.xz
 Source1: ftp://ftp.gnu.org/gnu/%{name}/%{name}-%{version}.tar.xz.sig
 Source2: pubkey.jim.meyering
 
-Patch0: parted-3.0-libparted-copy-pmbr_boot-when-duplicating-GPT-disk.patch
-Patch1: parted-3.1-libparted-check-PMBR-before-GPT-partition-table-8052.patch
-Patch2: parted-3.1-tests-add-t0301-overwrite-gpt-pmbr.sh.patch
-Patch3: parted-3.1-libparted-Fix-endian-error-with-FirstUsableLBA.patch
-Patch4: parted-2.1-libparted-use-dm_udev_wait-698121.patch
-Patch5: parted-3.1-libparted-use-largest_partnum-in-dm_reread_part_tabl.patch
-patch6: parted-3.1-test-creating-20-device-mapper-partitions.patch
-Patch7: parted-3.1-libparted-preserve-the-uuid-on-dm-partitions.patch
-Patch8: parted-3.1-tests-Make-sure-dm-UUIDs-are-not-erased.patch
-Patch9: parted-3.1-libparted-reallocate-buf-after-_disk_analyse_block_s.patch
-Patch10: parted-3.1-tests-cleanup-losetup-usage.patch
-Patch11: parted-3.1-libparted-add-support-for-implicit-FBA-DASD-partitions.patch
-Patch12: parted-3.1-libparted-add-support-for-EAV-DASD-partitions.patch
-Patch13: parted-3.1-libparted-don-t-canonicalize-dev-md-paths.patch
-Patch14: parted-3.1-libparted-mklabel-eav.patch
-Patch15: parted-3.1-avoid-dasd-as-default-file-image-type.patch
-Patch16: parted-3.1-libparted-mklabel-edev.patch
-Patch17: parted-3.1-tests-rewrite-t6001-to-use-dev-mapper.patch
-
+Patch0001: 0001-maint-post-release-administrivia.patch
+Patch0002: 0002-libparted-check-PMBR-before-GPT-partition-table.patch
+Patch0003: 0003-tests-add-t0301-overwrite-gpt-pmbr.sh.patch
+Patch0004: 0004-tests-remove-bogus-envvar-setting-from-t0300-dos-on-.patch
+Patch0005: 0005-gpt-fix-endianness-bug-in-gpt_get_max_supported_part.patch
+Patch0006: 0006-tests-add-a-test-to-exercise-just-fixed-code.patch
+Patch0007: 0007-maint-avoid-new-syntax-check-failure-re-xref.patch
+Patch0008: 0008-maint-don-t-prohibit-strncpy-just-yet.patch
+# Won't work when applied to the tar.xz
+#Patch0009: 0009-build-update-gnulib-bootstrap-and-init.sh.patch
+Patch0010: 0010-build-prefer-AM_CPPFLAGS-over-INCLUDES.patch
+Patch0011: 0011-build-don-t-list-files-with-unknown-suffix-in-_SOURC.patch
+Patch0012: 0012-build-prefer-pattern-rules-over-suffix-rules.patch
+Patch0013: 0013-build-enable-subdir-objects-Automake-option-globally.patch
+Patch0014: 0014-tests-prefer-AM_TESTS_ENVIRONMENT-over-TESTS_ENVIRON.patch
+Patch0015: 0015-tests-remove-unused-AM_TESTS_ENVIRONMENT-entries.patch
+# No bootstrap.conf in tar.xz
+#Patch0016: 0016-build-require-Automake-1.11.6.patch
+#Patch0017: 0017-maint-make-Autoconf-version-requirement-consistent.patch
+#Patch0018: 0018-maint-tighten-per-version-requirement.patch
+Patch0019: 0019-maint-remove-unnecessary-wcslen-use.patch
+Patch0020: 0020-tests-clarify-a-comment-_reading_-gpt-tables-on-tiny.patch
+Patch0021: 0021-gpt-require-first_usable_LBA-last_usable_LBA.patch
+Patch0022: 0022-tests-update-t7000-scripting.sh-to-avoid-new-FP.patch
+Patch0023: 0023-gpt-permit-mklabel-gpt-on-a-67-sector-device.patch
+Patch0024: 0024-gpt-when-mklabel-gpt-fails-always-provide-a-diagnost.patch
+Patch0025: 0025-tests-show-that-small-dev-now-evokes-mklabel-gpt-dia.patch
+Patch0026: 0026-tests-avoid-syntax-check-failure-for-reversed-compar.patch
+Patch0027: 0027-mac-don-t-let-larger-partition-table-specified-block.patch
+Patch0028: 0028-tests-mac-exercise-the-just-fixed-bug.patch
+Patch0029: 0029-add-support-for-a-new-Linux-specific-GPT-partition-t.patch
+Patch0030: 0030-tests-clean-up-tests.patch
+Patch0031: 0031-doc-libparted-disk.c-correct-doxygen-comment-typo.patch
+Patch0032: 0032-tests-stop-using-private-dev-directory-for-losetup.patch
+# Won't apply to tar.xz
+#Patch0033: 0033-maint-fix-an-error-in-the-preceding-commit-log.patch
+Patch0034: 0034-tests-improve-test-for-partitionable-loop-devices.patch
+Patch0035: 0035-tests-t8001-do-not-rely-on-modprobe-loop.patch
+Patch0036: 0036-build-do-not-rely-on-automake-s-AM_TESTS_ENVIRONMENT.patch
+# No .gitignore in tar.xz
+#Patch0037: 0037-build-.gitignore-ignore-tests-fs-resize.patch
+Patch0038: 0038-partprobe-remove-no-update-long-option.patch
+Patch0039: 0039-doc-update-partprobe-manpage.patch
+Patch0040: 0040-partprobe-remove-partitions-when-there-is-no-partiti.patch
+Patch0041: 0041-maint-use-AM_V_GEN-to-cut-down-on-build-noise.patch
+# Won't work with tar.xz
+#Patch0042: 0042-maint-regenerate-.po-.pot-files.patch
+Patch0043: 0043-tests-cleanup-losetup-usage.patch
+# This causes builds to fail, it sees the build .git and switches on
+#Patch0044: 0044-build-default-to-enable-gcc-warnings-in-a-git-tree.patch
+Patch0045: 0045-libparted-refactor-device-mapper-partition-sync-code.patch
+Patch0046: 0046-libparted-remove-extraneous-blkpg-add-partition-ped-.patch
+Patch0047: 0047-libparted-don-t-probe-every-dm-device-in-probe_all.patch
+Patch0048: 0048-tests-make-t6003-dm-hide-work-reliably-on-F17.patch
+Patch0049: 0049-doc-1MiB-alignment-is-not-enough-for-cheap-flash-dri.patch
+# Won't work on tar.xz
+#Patch0050: 0050-build-update-gnulib-submodule-to-latest.patch
+#Patch0051: 0051-maint-update-all-copyright-year-number-ranges.patch
+Patch0052: 0052-maint-avoid-new-warning-error-with-gcc-4.8.0-2013010.patch
+Patch0053: 0053-libparted-copy-pmbr_boot-when-duplicating-GPT-disk.patch
+Patch0054: 0054-tests-test-creating-20-device-mapper-partitions-8031.patch
+Patch0055: 0055-libparted-use-dm_udev_wait-698121.patch
+Patch0056: 0056-libparted-preserve-the-uuid-on-dm-partitions-832145.patch
+Patch0057: 0057-tests-Make-sure-dm-UUIDs-are-not-erased.patch
+Patch0058: 0058-libparted-add-support-for-implicit-FBA-DASD-partitio.patch
+Patch0059: 0059-libparted-add-support-for-EAV-DASD-partitions.patch
+Patch0060: 0060-libparted-mklabel-to-support-EAV-DASD.patch
+Patch0061: 0061-libparted-Avoid-dasd-as-default-disk-type-while-prob.patch
+Patch0062: 0062-libparted-mklabel-to-support-EDEV-DASD.patch
+Patch0063: 0063-libparted-don-t-canonicalize-dev-md-paths-872361.patch
+Patch0064: 0064-tests-rewrite-t6001-to-use-dev-mapper.patch
+Patch0065: 0065-libparted-Add-Intel-Rapid-Start-Technology-partition.patch
+Patch0066: 0066-libparted-Add-UEFI-System-Partition-flag.patch
+Patch0067: 0067-libparted-Add-hfs_esp-partition-flag-to-GPT.patch
+Patch0068: 0068-libparted-Recognize-btrfs-filesystem.patch
+Patch0069: 0069-tests-Add-btrfs-and-xfs-to-the-fs-probe-test.patch
 
 Buildroot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
 BuildRequires: e2fsprogs-devel
@@ -167,6 +224,21 @@ fi
 
 
 %changelog
+* Wed Aug 28 2013 Brian C. Lane <bcl at redhat.com> 3.1-14
+- Rebasing Fedora patches with upstream master since v3.1 release
+- Summary of important changes from upstream:
+  - add support for a new Linux-specific GPT partition type code
+  - partprobe: remove partitions when there is no partition table
+  - libparted: refactor device-mapper partition sync code
+  - libparted: remove extraneous blkpg add partition ped exception
+  - libparted: don't probe every dm device in probe_all
+- New Fedora changes:
+  - libparted: Add Intel Rapid Start Technology partition flag.
+  - libparted: Add UEFI System Partition flag.
+  - libparted: Add hfs_esp partition flag to GPT.
+  - libparted: Recognize btrfs filesystem
+  - tests: Add btrfs and xfs to the fs probe test
+
 * Sat Aug 03 2013 Fedora Release Engineering <rel-eng at lists.fedoraproject.org> - 3.1-13
 - Rebuilt for https://fedoraproject.org/wiki/Fedora_20_Mass_Rebuild
 


More information about the scm-commits mailing list