Project import
diff --git a/Makefile b/Makefile
new file mode 100644
index 0000000..593a98b
--- /dev/null
+++ b/Makefile
@@ -0,0 +1,143 @@
+#
+#    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 makefile for udev, the dynamic device node
+#      manager for Linux.
+#
+
+
+include pre.mak
+
+PackageName		:= udev
+
+PackageExtension	:= tar.bz2
+PackageSeparator	:= -
+
+PackagePatchArgs	:= -p1
+
+PackageArchive		:= $(PackageName).$(PackageExtension)
+PackageSourceDir	:= $(PackageName)$(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.
+
+.PHONY: source
+source: $(BuildDirectory)/source
+$(BuildDirectory)/source: | $(PackageSourceDir) $(BuildDirectory)
+	$(Verbose)touch $@
+
+# Patch the sources, if necessary.
+
+.PHONY: patch
+patch: $(BuildDirectory)/patch
+$(BuildDirectory)/patch: $(BuildDirectory)/source
+	$(Verbose)touch $@
+
+# Generate the package build makefile.
+
+# Configure the source for building.
+
+.PHONY: configure
+configure: $(BuildDirectory)/configure
+$(BuildDirectory)/configure: $(BuildDirectory)/source | $(PackageSourceDir) $(BuildDirectory) $(ResultDirectory)
+	$(Verbose)cd $(BuildDirectory) && \
+	$(CURDIR)/$(PackageSourceDir)/configure \
+	CC="$(CC) $(CPPOPTFLAGS)" CXX="$(CXX) $(CPPOPTFLAGS)" AR=$(AR) NM=$(NM) RANLIB=$(RANLIB) STRIP=$(STRIP) \
+	INSTALL="$(INSTALL) $(INSTALLFLAGS)" \
+	CPPFLAGS="$(call ToolGenerateIncludeArgument,$(LinuxIncludePath))" \
+	GLIB_CFLAGS="$(call ToolGenerateIncludeArgument,$(GlibIncludePaths))" \
+	GLIB_LIBS="$(call GenerateLibraryPathArgument,$(GlibLibraryPath))" \
+	PKG_CONFIG_PATH="$(UsbUtilsPkgConfigPath)" \
+	--build=$(HostTuple) \
+	--host=$(TargetTuple) \
+	--disable-extras \
+	--disable-introspection \
+	--disable-static \
+	--disable-gudev \
+	--enable-shared \
+	--without-selinux \
+	--prefix=/usr \
+	--sysconfdir=/etc \
+	--sbindir=/sbin \
+	--libdir=/usr/lib \
+	--with-rootlibdir=/lib \
+	--libexecdir=/lib/udev \
+	--localstatedir=/var \
+	--with-pci-ids-path=/usr/share/misc/pci.ids
+	$(Verbose)touch $@
+
+# Build the source.
+#
+# We have to unset MAKEFLAGS since they confuse the package build otherwise.
+
+.PHONY: build
+build: $(BuildDirectory)/build
+$(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) DESTDIR=$(ResultDirectory) install
+	$(Verbose)$(RM) $(RMFLAGS) $(call GenerateResultPaths,,usr/lib/libudev.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/udev.patches/udev-50.description b/udev.patches/udev-50.description
new file mode 100644
index 0000000..012fc5b
--- /dev/null
+++ b/udev.patches/udev-50.description
@@ -0,0 +1 @@
+Poky 2.0.1 Support
diff --git a/udev.patches/udev-50.patch b/udev.patches/udev-50.patch
new file mode 100644
index 0000000..0a39679
--- /dev/null
+++ b/udev.patches/udev-50.patch
@@ -0,0 +1,22 @@
+diff -Naur a/libudev/libudev-util-private.c b/libudev/libudev-util-private.c
+--- a/libudev/libudev-util-private.c	2016-09-08 16:36:45.744010660 -0700
++++ b/libudev/libudev-util-private.c	2016-09-08 16:41:05.863287706 -0700
+@@ -21,6 +21,7 @@
+ #include <grp.h>
+ #include <sys/wait.h>
+ #include <sys/param.h>
++#include <sys/resource.h>
+ 
+ #include "libudev.h"
+ #include "libudev-private.h"
+diff -Naur a/udev/udevd.c b/udev/udevd.c
+--- a/udev/udevd.c	2016-09-08 16:36:45.732010510 -0700
++++ b/udev/udevd.c	2016-09-08 16:41:05.851287555 -0700
+@@ -43,6 +43,7 @@
+ #include <sys/ioctl.h>
+ #include <sys/inotify.h>
+ #include <sys/utsname.h>
++#include <sys/resource.h>
+ 
+ #include "udev.h"
+ #include "sd-daemon.h"
diff --git a/udev.patches/udev-51.description b/udev.patches/udev-51.description
new file mode 100644
index 0000000..861a54d
--- /dev/null
+++ b/udev.patches/udev-51.description
@@ -0,0 +1,2 @@
+To support old kernels without accept4 support, replace the call to accept4 with something equivalent.
+https://bugs.debian.org/cgi-bin/bugreport.cgi?att=2;bug=648325;filename=udev-182.patch
diff --git a/udev.patches/udev-51.patch b/udev.patches/udev-51.patch
new file mode 100644
index 0000000..25922e0
--- /dev/null
+++ b/udev.patches/udev-51.patch
@@ -0,0 +1,38 @@
+diff -Naur a/udev/udev-ctrl.c b/udev/udev-ctrl.c
+--- a/udev/udev-ctrl.c	2011-10-09 16:10:32.974583654 -0700
++++ b/udev/udev-ctrl.c	2016-10-24 13:41:53.973027666 -0700
+@@ -15,6 +15,7 @@
+ #include <stddef.h>
+ #include <string.h>
+ #include <unistd.h>
++#include <fcntl.h>
+ #include <sys/types.h>
+ #include <sys/poll.h>
+ #include <sys/socket.h>
+@@ -176,6 +177,16 @@
+ 	return uctrl->sock;
+ }
+ 
++int replace_accept4(int s, struct sockaddr *addr, socklen_t *addrlen, int flags)
++{
++	int sock = accept(s, addr, addrlen);
++	if (sock < 0) return sock;
++	int res = fcntl(sock, F_SETFL, flags);
++	if (res > -1) return sock;
++	close(sock);
++	return res;
++}
++
+ struct udev_ctrl_connection *udev_ctrl_get_connection(struct udev_ctrl *uctrl)
+ {
+ 	struct udev_ctrl_connection *conn;
+@@ -189,7 +200,8 @@
+ 	conn->refcount = 1;
+ 	conn->uctrl = uctrl;
+ 
+-	conn->sock = accept4(uctrl->sock, NULL, NULL, SOCK_CLOEXEC|SOCK_NONBLOCK);
++	//conn->sock = accept4(uctrl->sock, NULL, NULL, SOCK_CLOEXEC|SOCK_NONBLOCK);
++	conn->sock = replace_accept4(uctrl->sock, NULL, NULL, O_NONBLOCK);
+ 	if (conn->sock < 0) {
+ 		if (errno != EINTR)
+ 			err(uctrl->udev, "unable to receive ctrl connection: %m\n");
diff --git a/udev.tar.bz2 b/udev.tar.bz2
new file mode 100644
index 0000000..296a2cb
--- /dev/null
+++ b/udev.tar.bz2
Binary files differ
diff --git a/udev.url b/udev.url
new file mode 100644
index 0000000..d0dd82d
--- /dev/null
+++ b/udev.url
@@ -0,0 +1 @@
+http://www.kernel.org/pub/linux/utils/kernel/hotplug/udev-166.tar.bz2
diff --git a/udev.version b/udev.version
new file mode 100644
index 0000000..f07e286
--- /dev/null
+++ b/udev.version
@@ -0,0 +1 @@
+175