diff --git a/parted.patches/parted-50.patch b/parted.patches/parted-50.patch
new file mode 100644
index 0000000..ff5e90f
--- /dev/null
+++ b/parted.patches/parted-50.patch
@@ -0,0 +1,13 @@
+--- lib/regex_internal.h	2007-02-14 16:16:55.000000000 -0800
++++ lib/regex_internal.h	2014-04-30 18:34:31.110773635 -0700
+@@ -182,10 +182,6 @@
+ # if BITSET_WORD_BITS <= SBC_MAX
+ #  error "Invalid SBC_MAX"
+ # endif
+-#elif BITSET_WORD_MAX == (0xffffffff + 2) * 0xffffffff
+-/* Work around a bug in 64-bit PGC (before version 6.1-2), where the
+-   preprocessor mishandles large unsigned values as if they were signed.  */
+-# define BITSET_WORD_BITS 64
+ #else
+ # error "Add case for new bitset_word_t size"
+ #endif
diff --git a/parted.patches/parted-51.patch b/parted.patches/parted-51.patch
new file mode 100644
index 0000000..c44823c
--- /dev/null
+++ b/parted.patches/parted-51.patch
@@ -0,0 +1,15 @@
+--- include/parted/natmath.h	2007-04-18 14:12:10.000000000 -0700
++++ include/parted/natmath.h	2014-04-30 18:37:22.487991387 -0700
+@@ -87,10 +87,10 @@
+ extern const PedAlignment* ped_alignment_any;
+ extern const PedAlignment* ped_alignment_none;
+ 
+-extern inline PedSector
++extern PedSector
+ ped_div_round_up (PedSector numerator, PedSector divisor);
+ 
+-extern inline PedSector
++extern PedSector
+ ped_div_round_to_nearest (PedSector numerator, PedSector divisor);
+ 
+ #endif /* PED_NATMATH_H_INCLUDED */
diff --git a/parted.patches/parted-52.patch b/parted.patches/parted-52.patch
new file mode 100644
index 0000000..f1d4b6a
--- /dev/null
+++ b/parted.patches/parted-52.patch
@@ -0,0 +1,16 @@
+--- libparted/labels/dos.c	2014-11-13 14:23:10.147494213 -0800
++++ libparted/labels/dos.c	2014-11-13 14:28:54.262031054 -0800
+@@ -173,10 +173,12 @@ msdos_probe (const PedDevice *dev)
+ 	 * Loader (SBML) signature indicates a partition table, not a file
+ 	 * system.
+ 	 */
+-	if ((!strncmp (part_table.boot_code + 0x36, "FAT", 3)
++       /* check below commented out to allow FAT fs images without a MBR */ 
++/*	if ((!strncmp (part_table.boot_code + 0x36, "FAT", 3)
+ 	    && strncmp (part_table.boot_code + 0x40, "SBML", 4) != 0)
+ 	    || !strncmp (part_table.boot_code + 0x52, "FAT", 3))
+ 		return 0;
++*/
+ 
+ 	/* If this is a GPT disk, fail here */
+ 	for (i = 0; i < 4; i++) {
diff --git a/parted.patches/parted-53.patch b/parted.patches/parted-53.patch
new file mode 100644
index 0000000..0385e2b
--- /dev/null
+++ b/parted.patches/parted-53.patch
@@ -0,0 +1,11 @@
+--- libparted/arch/linux.c	2014-11-13 14:23:10.147494213 -0800
++++ libparted/arch/linux.c	2014-11-13 15:18:09.673789395 -0800
+@@ -65,6 +65,8 @@
+ #define HDIO_GETGEO             0x0301  /* get device geometry */
+ #define HDIO_GET_IDENTITY       0x030d  /* get IDE identification info */
+ 
++/* O_DIRECT mode not supported in Sapphire */
++#undef O_DIRECT
+ #if defined(O_DIRECT) && (!defined(__s390__) || !defined(__s390x__))
+ #define RD_MODE (O_RDONLY | O_DIRECT)
+ #define WR_MODE (O_WRONLY | O_DIRECT)
diff --git a/parted.patches/parted-54.patch b/parted.patches/parted-54.patch
new file mode 100644
index 0000000..6f0226a
--- /dev/null
+++ b/parted.patches/parted-54.patch
@@ -0,0 +1,22 @@
+--- configure	2007-05-09 14:01:27.000000000 -0700
++++ configure	2016-06-27 12:58:06.797149679 -0700
+@@ -36462,7 +36462,7 @@
+     { echo "$as_me:$LINENO: result: Unable to locate check version 0.9.3 or higher: not building" >&5
+ echo "${ECHO_T}Unable to locate check version 0.9.3 or higher: not building" >&6; }
+ fi
+- if test "$have_check" = yes; then
++ if test "$have_check" = yes && test "$cross_compiling" != yes; then
+   HAVE_CHECK_TRUE=
+   HAVE_CHECK_FALSE='#'
+ else
+--- configure.ac	2007-05-09 12:19:10.000000000 -0700
++++ configure.ac	2016-06-27 12:52:58.329202628 -0700
+@@ -450,7 +450,7 @@
+ if test "$have_scintilla" != "yes"; then
+     AC_MSG_RESULT([Unable to locate check version 0.9.3 or higher: not building])
+ fi
+-AM_CONDITIONAL([HAVE_CHECK], [test "$have_check" = yes])
++AM_CONDITIONAL([HAVE_CHECK], [test "$have_check" = yes && test "$cross_compiling" != yes])
+ 
+ dnl Checks for typedefs, structures and compiler characteristics.
+ AC_PROG_LD
diff --git a/parted.tar.gz b/parted.tar.gz
new file mode 100644
index 0000000..8bea1e0
--- /dev/null
+++ b/parted.tar.gz
Binary files differ
diff --git a/parted.url b/parted.url
new file mode 100644
index 0000000..fe8720b
--- /dev/null
+++ b/parted.url
@@ -0,0 +1 @@
+http://ftp.gnu.org/pub/gnu/parted/parted-1.8.7.tar.gz
diff --git a/parted.version b/parted.version
new file mode 100644
index 0000000..88d3ee7
--- /dev/null
+++ b/parted.version
@@ -0,0 +1 @@
+1.8.7
