diff -uNr -x CVS package.pregpsd/Config.in package/Config.in
--- package.pregpsd/Config.in	2005-07-17 14:45:38.000000000 +0200
+++ package/Config.in	2005-07-17 14:48:43.000000000 +0200
@@ -122,6 +122,7 @@
 source "package/zlib/Config.in"
 
 comment "Serial communications & terminal emulation ---"
+source "package/gpsd/Config.in"
 source "package/microcom/Config.in"
 source "package/picocom/Config.in"
 source "package/setserial/Config.in"
diff -uNr -x CVS package.pregpsd/Makefile package/Makefile
--- package.pregpsd/Makefile	2005-07-17 14:45:34.000000000 +0200
+++ package/Makefile	2005-07-17 14:49:03.000000000 +0200
@@ -29,6 +29,7 @@
 package-$(BR2_PACKAGE_GDB) += gdb
 package-$(BR2_PACKAGE_GLIB) += glib
 package-$(BR2_PACKAGE_GMP) += gmp
+package-$(BR2_PACKAGE_GPSD) += gpsd
 package-$(BR2_PACKAGE_HASERL) += haserl
 package-$(BR2_PACKAGE_HOWL) += howl
 package-$(BR2_PACKAGE_HTPDATE) += htpdate
diff -uNr -x CVS package.pregpsd/gpsd/Config.in package/gpsd/Config.in
--- package.pregpsd/gpsd/Config.in	1970-01-01 01:00:00.000000000 +0100
+++ package/gpsd/Config.in	2005-07-17 19:55:34.000000000 +0200
@@ -0,0 +1,14 @@
+config BR2_PACKAGE_GPSD
+	tristate "gpsd - a GPS device backend"
+	default m
+	help
+	  gpsd is a service daemon that monitors one or more GPSes attached to
+	  a host computer through serial or USB ports, making all data on the
+	  location/course/velocity of the sensors available to be queried on
+	  TCP port 2947 of the host computer.
+
+	  You need GPSD e.g. to get GPS data for kismet.
+	  
+	  http://gpsd.berlios.de/
+	  
+
diff -uNr -x CVS package.pregpsd/gpsd/Makefile package/gpsd/Makefile
--- package.pregpsd/gpsd/Makefile	1970-01-01 01:00:00.000000000 +0100
+++ package/gpsd/Makefile	2005-07-31 14:59:06.713238304 +0200
@@ -0,0 +1,59 @@
+# $Id: Makefile,v 1.1 2005/05/21 02:15:53 nico Exp $
+
+include $(TOPDIR)/rules.mk
+
+PKG_NAME:=gpsd
+PKG_VERSION:=2.28
+PKG_RELEASE:=4
+PKG_MD5SUM:=a49e1bd180a4ad4b1f5f9c3bd7f0e15d
+
+PKG_SOURCE_URL:=http://download.berlios.de/gpsd/
+PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
+PKG_CAT:=zcat
+
+PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME)-$(PKG_VERSION)
+PKG_INSTALL_DIR:=$(PKG_BUILD_DIR)/ipkg-install
+
+include $(TOPDIR)/package/rules.mk
+
+foo: $(PKG_BUILD_DIR)/.built
+
+$(eval $(call PKG_template,GPSD,gpsd,$(PKG_VERSION)-$(PKG_RELEASE),$(ARCH)))
+
+$(PKG_BUILD_DIR)/.configured:
+	(cd $(PKG_BUILD_DIR); rm -rf config.{cache,status} ; \
+		$(TARGET_CONFIGURE_OPTS) \
+		LDFLAGS="-L$(STAGING_DIR)/lib" \
+		CFLAGS="$(TARGET_CFLAGS)" \
+		./configure \
+		  --target=$(GNU_TARGET_NAME) \
+		  --host=$(GNU_TARGET_NAME) \
+		  --build=$(GNU_HOST_NAME) \
+		  --prefix=$(IDIR_GPSD)/usr \
+		  --exec-prefix=$(IDIR_GPSD)/usr \
+		  --bindir=$(IDIR_GPSD)/usr/bin \
+		  --datadir=$(IDIR_GPSD)/usr/share \
+		  --libdir=$(IDIR_GPSD)/usr/lib \
+		  --libexecdir=$(IDIR_GPSD)/usr/lib \
+		  --sbindir=$(IDIR_GPSD)/usr/sbin \
+	)
+	(cd $(PKG_BUILD_DIR); sed < libtool > libtool.X \
+		's/-lstdc++/-luClibc++/' && mv libtool.X libtool )
+	touch $@
+
+$(PKG_BUILD_DIR)/.built:
+	$(MAKE) -C $(PKG_BUILD_DIR) gpsd
+	touch $@
+
+$(IPKG_GPSD):
+	$(MAKE) -C $(PKG_BUILD_DIR) install-sbinPROGRAMS
+	$(MAKE) -C $(PKG_BUILD_DIR) install-libLTLIBRARIES
+	rm $(IDIR_GPSD)/usr/lib/libgps.a
+	#install -d -m0755 $(IDIR_GPSD)/usr/lib
+	#install -d -m0755 $(IDIR_GPSD)/usr/sbin
+	#$(PKG_BUILD_DIR)/libtool --mode=install install $(PKG_BUILD_DIR)/.libs/gpsd $(IDIR_GPSD)/usr/sbin/gpsd
+	#$(PKG_BUILD_DIR)/libtool --mode=install install $(PKG_BUILD_DIR)/.libs/gpsd $(IDIR_GPSD)/usr/sbin/gpsd
+	#install -m0755 $(PKG_BUILD_DIR)/.libs/gpsd $(IDIR_GPSD)/usr/sbin/
+	#cp -fpR $(PKG_BUILD_DIR)/.libs/libgps.so.* $(IDIR_GPSD)/usr/lib/
+	$(RSTRIP) $(IDIR_GPSD)
+	$(IPKG_BUILD) $(IDIR_GPSD) $(PACKAGE_DIR)
diff -uNr -x CVS package.pregpsd/gpsd/ipkg/gpsd.control package/gpsd/ipkg/gpsd.control
--- package.pregpsd/gpsd/ipkg/gpsd.control	1970-01-01 01:00:00.000000000 +0100
+++ package/gpsd/ipkg/gpsd.control	2005-07-17 14:58:47.000000000 +0200
@@ -0,0 +1,6 @@
+Package: gpsd
+Priority: optional
+Section: console
+Maintainer: Georg Lukas <georg@boerde.de>
+Source: http://gpsd.berlios.de/
+Description: a GPS device backend
diff -uNr -x CVS package.pregpsd/gpsd/patches/round.patch package/gpsd/patches/round.patch
--- package.pregpsd/gpsd/patches/round.patch	1970-01-01 01:00:00.000000000 +0100
+++ package/gpsd/patches/round.patch	2005-07-17 20:58:47.000000000 +0200
@@ -0,0 +1,38 @@
+diff -uNr gpsd-2.28/gpsd.c gpsd-2.28-round/gpsd.c
+--- gpsd-2.28/gpsd.c	2005-07-06 13:41:16.000000000 +0200
++++ gpsd-2.28-round/gpsd.c	2005-07-17 20:54:55.000000000 +0200
+@@ -91,6 +91,23 @@
+ };
+ /*@ +initallelements +nullassign +nullderef @*/
+ 
++/* uClibc hack */ 
++double round(double x) {
++	double fx = floor(x);
++	if (x-0.5 < fx)
++		return fx;
++	else
++		return fx+1;
++}
++
++float roundf(float x) {
++	float fx = floor(x);
++	if (x-0.5 < fx)
++		return fx;
++	else
++		return fx+1;
++}
++
+ static void onsig(int sig)
+ {
+     longjmp(restartbuf, sig+1);
+diff -uNr gpsd-2.28/gpsd.h gpsd-2.28-round/gpsd.h
+--- gpsd-2.28/gpsd.h	2005-07-17 20:35:56.000000000 +0200
++++ gpsd-2.28-round/gpsd.h	2005-07-17 20:55:12.000000000 +0200
+@@ -249,4 +249,7 @@
+ #define rintf(x) roundf(x)
+ 
++/* uClibc hack */ 
++double round(double x);
++float roundf(float x);
+ 
+ #endif /* _gpsd_h_ */
