diff --git a/contrib/src/uuid/SHA512SUMS b/contrib/src/uuid/SHA512SUMS
new file mode 100644
index 0000000000000000000000000000000000000000..f0c2117dcc0a5c2a15ff2d78306efd7869b4cd07
--- /dev/null
+++ b/contrib/src/uuid/SHA512SUMS
@@ -0,0 +1 @@
+6b3dea93d080d38629f31b615d040adccdece6f4a7d4ae9fd65073f83b4b0f818896cc41bae7569449a182b11e8a0e4c4dec83ea2131f6926d4473196413395d  libuuid-1.0.2.tar.gz
diff --git a/contrib/src/uuid/android.patch b/contrib/src/uuid/android.patch
new file mode 100644
index 0000000000000000000000000000000000000000..01a1aa274861a84623613959259ab1d2690fc308
--- /dev/null
+++ b/contrib/src/uuid/android.patch
@@ -0,0 +1,16 @@
+--- a/c.h	2013-04-30 04:30:28.000000000 -0700
++++ b/c.h	2014-03-28 16:54:15.000000000 -0700
+@@ -244,11 +244,13 @@ static inline int dirfd(DIR *d)
+  */
+ static inline size_t get_hostname_max(void)
+ {
++#ifdef _SC_HOST_NAME_MAX
+ 	long len = sysconf(_SC_HOST_NAME_MAX);
+ 
+ 	if (0 < len)
+ 		return len;
++#endif
+ 
+ #ifdef MAXHOSTNAMELEN
+ 	return MAXHOSTNAMELEN;
+ #elif HOST_NAME_MAX
diff --git a/contrib/src/uuid/rules.mak b/contrib/src/uuid/rules.mak
new file mode 100644
index 0000000000000000000000000000000000000000..b1a56b6a1870770ffcd36b295732870c44511628
--- /dev/null
+++ b/contrib/src/uuid/rules.mak
@@ -0,0 +1,23 @@
+# libuuid part of util-linux
+
+UUID_VERSION := 1.0.2
+UUID_URL := $(SF)/libuuid/libuuid-$(UUID_VERSION).tar.gz
+
+ifeq ($(call need_pkg," >= 2.0.0"),)
+PKGS_FOUND += uuid
+endif
+
+$(TARBALLS)/libuuid-$(UUID_VERSION).tar.gz:
+	$(call download,$(UUID_URL))
+
+.sum-uuid: libuuid-$(UUID_VERSION).tar.gz
+
+uuid: libuuid-$(UUID_VERSION).tar.gz .sum-uuid
+	$(UNPACK)
+	$(APPLY) $(SRC)/uuid/android.patch
+	$(MOVE)
+
+.uuid: uuid
+	cd $< && $(HOSTVARS) ./configure $(HOSTCONF)
+	cd $< && $(MAKE) install
+	touch $@