got all of glibusb compiling (and the tests work)
diff --git a/aos/common/glibusb/glibusb_device_internal.h b/aos/common/glibusb/glibusb_device_internal.h
index 4f2ad7f..ca6073d 100644
--- a/aos/common/glibusb/glibusb_device_internal.h
+++ b/aos/common/glibusb/glibusb_device_internal.h
@@ -1,5 +1,7 @@
 // Copyright 2012 Google Inc. All Rights Reserved.
 //
+// Modified by FRC Team 971.
+//
 // Wrapper for libusb's device that implements the UsbDevice interface.
 
 #ifndef _GLIBUSB_GLIBUSB_DEVICE_INTERNAL_H_
@@ -7,7 +9,7 @@
 
 #include <stdint.h>
 #include <utility>
-#include <boost/function.hpp>
+#include <functional>
 
 #include "glibusb.h"
 #include "glibusb_endpoint.h"
@@ -26,12 +28,12 @@
   PhysicalUsbDevice(struct libusb_context *context,
                     struct libusb_device_handle *handle);
 
-  typedef boost::function<bool(const struct libusb_endpoint_descriptor *)>
+  typedef ::std::function<bool(const struct libusb_endpoint_descriptor *)>
     EndpointMatcher;
 
   // Iterates through all the endpoint descriptors for this device
-  // and allocates and allocates a UsbEndpointType for the first
-  // endpoint for which the matcher returns true.
+  // and allocates and returns a UsbEndpointType for the first
+  // endpoint for which the matcher returns true or NULL.
   template <class UsbEndpointType>
     UsbEndpointType *MatchEndpoint(EndpointMatcher matcher);