diff --git a/Makefile b/Makefile
new file mode 100644
index 0000000..f45442f
--- /dev/null
+++ b/Makefile
@@ -0,0 +1,120 @@
+#
+#    Copyright (c) 2010-2012 Nest Labs, Inc.
+#    All rights reserved.
+#
+#    This document is the property of Nest. It is considered
+#    confidential and proprietary information.
+#
+#    This document may not be reproduced or transmitted in any form,
+#    in whole or in part, without the express written permission of
+#    Nest.
+#
+#    Description:
+#      This file is the make file for mjson, a small, C-based
+#      JavaScript Object Notation (JSON) parser.
+#
+
+
+include pre.mak
+
+PackageName		:= mjson
+
+PackageExtension	:= tar.gz
+PackageSeparator	:= -
+
+PackagePatchArgs	:= -p1
+
+PackageArchive		:= $(PackageName).$(PackageExtension)
+PackageSourceDir	:= json$(PackageSeparator)$(PackageVersion)
+
+PackageBuildMakefile	= $(call GenerateBuildPaths,Makefile)
+
+CleanPaths		+= $(PackageLicenseFile)
+
+SOURCEDIRS                      = $(PackageSourceDir)
+$(PackageSourceDir)_RULE_TARGET = $(BuildDirectory)/configure
+
+all: $(PackageDefaultGoal)
+
+# Generate the package license contents.
+
+$(PackageSourceDir)/COPYING: $(BuildDirectory)/source
+
+$(PackageLicenseFile): $(PackageSourceDir)/COPYING
+	$(copy-result)
+
+# Extract the source from the archive and apply patches, if any.
+
+$(PackageSourceDir): $(PackageArchive) $(PackagePatchPaths)
+	$(expand-and-patch-package)
+
+# Prepare the sources.
+
+$(BuildDirectory)/source: | $(PackageSourceDir)
+	$(Verbose)touch $@
+
+# Patch the sources, if necessary.
+
+$(BuildDirectory)/patch: $(BuildDirectory)/source
+	$(Verbose)touch $@
+
+# Generate the package build makefile.
+# Configure the source for building.
+
+$(BuildDirectory)/configure: $(BuildDirectory)/source | $(PackageSourceDir) $(BuildDirectory)
+	$(Verbose)cd $(BuildDirectory) && \
+	$(CURDIR)/$(PackageSourceDir)/configure \
+	CC="$(CC)" CXX="$(CXX)" AR=$(AR) NM=$(NM) RANLIB=$(RANLIB) STRIP=$(STRIP) \
+	INSTALL="$(INSTALL) $(INSTALLFLAGS)" \
+	--build=$(HostTuple) \
+	--host=$(TargetTuple) \
+	--prefix=$(addprefix $(LibPrefixConfigOption),/usr) \
+	--sysconfdir=$(addprefix $(LibPrefixConfigOption),/etc) \
+	--localstatedir=$(addprefix $(LibPrefixConfigOption),/var) \
+	--disable-static
+	$(Verbose)touch $@
+
+# Build the source.
+#
+# We have to unset MAKEFLAGS since they confuse the package build otherwise.
+
+$(BuildDirectory)/build: $(BuildDirectory)/configure
+	$(Verbose)unset MAKEFLAGS && \
+	$(MAKE) $(JOBSFLAG) -C $(BuildDirectory) all
+	$(Verbose)touch $@
+
+# Stage the build to a temporary installation area.
+#
+# We have to unset MAKEFLAGS since they confuse the package build otherwise.
+#
+# We explictly remove 'libfoo.la' because some packages that depend on
+# these libraries use libtool. If libtool finds a 'libfoo.la' file for
+# a library, it uses the value of 'libdir=<dir>' it finds. In our
+# case, since '--prefix=/usr' this value is '/usr/lib'. It then
+# resolves '-lfoo'. In a cross-compilation environment, this is likely
+# to be neither the right architecture nor the right version to link
+# against. In short, we lose.
+#
+# We could also handle this by removing DESTDIR and setting the prefix
+# to $(ResultDirectory); however, that results in libtool hard-coding
+# $(ResultDirectory) as the RPATH in the linked executables which is
+# NOT what we want either. We lose again.
+#
+# By removing the '*.la' file, we win by ensuring neither a misdirected
+# link nor an RPATH.
+
+$(BuildDirectory)/stage: $(BuildDirectory)/build | $(ResultDirectory)
+	$(Verbose)unset MAKEFLAGS && \
+	$(MAKE) $(JOBSFLAG) -C $(BuildDirectory) $(call GenerateLibraryDestinationArgument,$(ResultDirectory)) install
+	$(Verbose)$(RM) $(RMFLAGS) $(call GenerateResultPaths,,usr/lib/libmjson.la)
+	$(Verbose)touch $@
+
+.PHONY: stage
+stage: $(BuildDirectory)/stage
+
+clean:
+	$(Verbose)$(RM) $(RMFLAGS) -r $(PackageSourceDir)
+	$(Verbose)$(RM) $(RMFLAGS) -r $(BuildDirectory)
+	$(Verbose)$(RM) $(RMFLAGS) -r $(ResultDirectory)
+
+include post.mak
diff --git a/mjson.patches/mjson-50.description b/mjson.patches/mjson-50.description
new file mode 100644
index 0000000..b0be3a7
--- /dev/null
+++ b/mjson.patches/mjson-50.description
@@ -0,0 +1 @@
+This patch const-qualifies the input argument to json_{un,}escape.
diff --git a/mjson.patches/mjson-50.patch b/mjson.patches/mjson-50.patch
new file mode 100644
index 0000000..101b625
--- /dev/null
+++ b/mjson.patches/mjson-50.patch
@@ -0,0 +1,42 @@
+diff -aruN a/src/json.c b/src/json.c
+--- a/src/json.c	2010-09-28 06:50:05.000000000 -0700
++++ b/src/json.c	2012-04-05 15:40:51.396325939 -0700
+@@ -1134,7 +1134,7 @@
+ 
+ 
+ char *
+-json_escape (char *text)
++json_escape (const char *text)
+ {
+ 	rcstring *output;
+ 	size_t i, length;
+@@ -1200,7 +1200,7 @@
+ 
+ 
+ char *
+-json_unescape (char *text)
++json_unescape (const char *text)
+ {
+ 	char *result = malloc (strlen (text) + 1);
+ 	size_t r;		/* read cursor */
+diff -aruN a/src/json.h b/src/json.h
+--- a/src/json.h	2009-12-19 06:16:26.000000000 -0800
++++ b/src/json.h	2012-04-05 15:41:07.076245294 -0700
+@@ -277,7 +277,7 @@
+ @param text an UTF8 char text string
+ @return an UTF-8 c-string holding the same text string but with escaped characters
+ **/
+-	char *json_escape (char *text);
++	char *json_escape (const char *text);
+ 
+ /**
+  * Outputs a new UTF-8 c-string which has all escaped characters replaced by
+@@ -286,7 +286,7 @@
+  * @param test a UTF-8 c-string
+  * @return a newly allocated UTF-8 c-string; free with free()
+  */
+-	char *json_unescape (char *text);
++	char *json_unescape (const char *text);
+ 
+ 
+ /**
diff --git a/mjson.patches/mjson-51.description b/mjson.patches/mjson-51.description
new file mode 100644
index 0000000..76035a9
--- /dev/null
+++ b/mjson.patches/mjson-51.description
@@ -0,0 +1 @@
+Making sure const char* is used for pointers that don't need to modify the buffer
diff --git a/mjson.patches/mjson-51.patch b/mjson.patches/mjson-51.patch
new file mode 100644
index 0000000..642df20
--- /dev/null
+++ b/mjson.patches/mjson-51.patch
@@ -0,0 +1,60 @@
+diff -ruN a/src/json.c b/src/json.c
+--- a/src/json.c	2012-08-14 18:08:21.403880832 -0700
++++ b/src/json.c	2012-08-14 18:12:32.010823782 -0700
+@@ -1370,7 +1370,7 @@
+ 
+ 
+ int
+-lexer (char *buffer, char **p, unsigned int *state, rcstring ** text, size_t *line)
++lexer (const char *buffer, const char **p, unsigned int *state, rcstring ** text, size_t *line)
+ {
+ 	assert (buffer != NULL);
+ 	assert (p != NULL);
+@@ -2133,7 +2133,7 @@
+ 
+ 
+ enum json_error
+-json_parse_fragment (struct json_parsing_info *info, char *buffer)
++json_parse_fragment (struct json_parsing_info *info, const char *buffer)
+ {
+ 	json_t *temp = NULL;
+ 
+@@ -2770,7 +2770,7 @@
+ 
+ 
+ enum json_error
+-json_parse_document (json_t ** root, char *text)
++json_parse_document (json_t ** root, const char *text)
+ {
+ 	enum json_error error;
+ 	struct json_parsing_info *jpi;
+diff -ruN a/src/json.h b/src/json.h
+--- a/src/json.h	2012-08-14 18:08:21.403880832 -0700
++++ b/src/json.h	2012-08-14 18:10:51.622902467 -0700
+@@ -108,7 +108,7 @@
+ 		unsigned int state;	/*!< the state where the parsing was left on the last parser run */
+ 		unsigned int lex_state;
+ 		rcstring *lex_text;
+-		char *p;
++		const char *p;
+ 		int string_length_limit_reached;	/*!< flag informing if the string limit length defined by JSON_MAX_STRING_LENGTH was reached */
+ 		size_t line;	// current document line
+ 		json_t *cursor;	/*!< pointers to nodes belonging to the document tree which aid the document parsing */
+@@ -303,7 +303,7 @@
+ @param buffer a null-terminated c-string containing a JSON document fragment
+ @return a code describing how the operation ended up
+ **/
+-	enum json_error json_parse_fragment (struct json_parsing_info *info, char *buffer);
++	enum json_error json_parse_fragment (struct json_parsing_info *info, const char *buffer);
+ 
+ 
+ /**
+@@ -312,7 +312,7 @@
+ @param text a c-string containing a complete JSON text document
+ @return a pointer to the new document tree or NULL if some error occurred
+ **/
+-	enum json_error json_parse_document (json_t ** root, char *text);
++	enum json_error json_parse_document (json_t ** root, const char *text);
+ 
+ 
+ /**
diff --git a/mjson.patches/mjson-52.description b/mjson.patches/mjson-52.description
new file mode 100644
index 0000000..637107b
--- /dev/null
+++ b/mjson.patches/mjson-52.description
@@ -0,0 +1,2 @@
+Updates mjson-1.3 to allow parsing of JSON blobs that have an array instead of
+an object at the top level.
diff --git a/mjson.patches/mjson-52.patch b/mjson.patches/mjson-52.patch
new file mode 100644
index 0000000..ddafc0e
--- /dev/null
+++ b/mjson.patches/mjson-52.patch
@@ -0,0 +1,14 @@
+diff -aruN json-1.3/src/json.c json-1.3.N/src/json.c
+--- json-1.3/src/json.c	2015-06-11 19:17:20.000000000 -0700
++++ json-1.3.N/src/json.c	2015-06-11 19:16:07.000000000 -0700
+@@ -2153,6 +2153,10 @@
+ 					info->state = 1;	/* begin object */
+ 					break;
+ 
++                case LEX_BEGIN_ARRAY:
++                    info->state = 7;    /* begin array */
++                    break;
++
+ 				case LEX_INVALID_CHARACTER:
+ 					return JSON_MALFORMED_DOCUMENT;
+ 					break;
diff --git a/mjson.tar.gz b/mjson.tar.gz
new file mode 100644
index 0000000..1aafa55
--- /dev/null
+++ b/mjson.tar.gz
Binary files differ
diff --git a/mjson.url b/mjson.url
new file mode 100644
index 0000000..f65ae9b
--- /dev/null
+++ b/mjson.url
@@ -0,0 +1 @@
+http://download.sourceforge.net/mjson/mjson-1.3.tar.gz
diff --git a/mjson.version b/mjson.version
new file mode 100644
index 0000000..7e32cd5
--- /dev/null
+++ b/mjson.version
@@ -0,0 +1 @@
+1.3
