Add new 'tinyhttpd' package and move all other httpd servers to be disabled if the...
author"Steven J. Hill" <sjhill@realitydiluted.com>
Tue, 17 Jul 2007 00:23:31 +0000 (00:23 -0000)
committer"Steven J. Hill" <sjhill@realitydiluted.com>
Tue, 17 Jul 2007 00:23:31 +0000 (00:23 -0000)
package/tinyhttpd/Config.in [new file with mode: 0644]
package/tinyhttpd/S85tinyhttpd [new file with mode: 0755]
package/tinyhttpd/tinyhttpd.mk [new file with mode: 0644]
package/tinyhttpd/tinyhttpd.patch [new file with mode: 0644]

diff --git a/package/tinyhttpd/Config.in b/package/tinyhttpd/Config.in
new file mode 100644 (file)
index 0000000..e4ea690
--- /dev/null
@@ -0,0 +1,8 @@
+config BR2_PACKAGE_TINYHTTPD
+       bool "tinyhttpd"
+       default n
+       help
+         A relatively simple webserver written as a school project. It is
+         exceedingly simple, threaded and handles basic CGI scripts.
+                
+         http://sourceforge.net/projects/tinyhttpd/
diff --git a/package/tinyhttpd/S85tinyhttpd b/package/tinyhttpd/S85tinyhttpd
new file mode 100755 (executable)
index 0000000..a1f4ce8
--- /dev/null
@@ -0,0 +1,33 @@
+#! /bin/sh
+
+PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
+NAME=tinyhttpd
+
+test -x /usr/sbin/$NAME || exit 0
+mkdir -p /var/www
+
+case "$1" in
+  start)
+       echo -n "Starting $NAME: "
+       $NAME > /dev/null &
+       echo "done"
+       ;;
+  stop)
+       echo -n "Stopping $NAME: "
+       killall -9 $NAME
+       echo "done"
+       ;;
+  restart)
+       echo -n "Restarting $NAME: "
+       killall -9 $NAME
+       sleep 1
+       $NAME > /dev/null &
+       echo "done"
+       ;;
+  *)
+       echo "Usage: /etc/init.d/S85tinyhttpd {start|stop|restart}" >&2
+       exit 1
+       ;;
+esac
+
+exit 0
diff --git a/package/tinyhttpd/tinyhttpd.mk b/package/tinyhttpd/tinyhttpd.mk
new file mode 100644 (file)
index 0000000..af13d7d
--- /dev/null
@@ -0,0 +1,56 @@
+#############################################################
+#
+# tinyhttpd
+#
+#############################################################
+TINYHTTPD_VER:=0.1.0
+TINYHTTPD_SOURCE:=tinyhttpd-$(TINYHTTPD_VER).tar.gz
+TINYHTTPD_SITE:=http://$(BR2_SOURCEFORGE_MIRROR).dl.sourceforge.net/sourceforge/tinyhttpd/$(TINYHTTPD_SOURCE)
+TINYHTTPD_DIR:=$(BUILD_DIR)/tinyhttpd-$(TINYHTTPD_VER)
+TINYHTTPD_CAT:=$(ZCAT)
+TINYHTTPD_BINARY:=httpd
+TINYHTTPD_TARGET_BINARY:=usr/sbin/tinyhttpd
+
+$(DL_DIR)/$(TINYHTTPD_SOURCE):
+        $(WGET) -P $(DL_DIR) $(TINYHTTPD_SITE)/$(TINYHTTPD_SOURCE)
+
+tinyhttpd-source: $(DL_DIR)/$(TINYHTTPD_SOURCE)
+
+#############################################################
+#
+# build tinyhttpd for use on the target system
+#
+#############################################################
+$(TINYHTTPD_DIR)/.unpacked: $(DL_DIR)/$(TINYHTTPD_SOURCE)
+       $(TINYHTTPD_CAT) $(DL_DIR)/$(TINYHTTPD_SOURCE) | tar -C $(BUILD_DIR) $(TAR_OPTIONS) -
+       toolchain/patch-kernel.sh $(TINYHTTPD_DIR) package/tinyhttpd/ tinyhttpd\*.patch
+       touch  $(TINYHTTPD_DIR)/.unpacked
+
+$(TINYHTTPD_DIR)/$(TINYHTTPD_BINARY): $(TINYHTTPD_DIR)/.unpacked
+       $(TARGET_CONFIGURE_OPTS) CFLAGS="$(TARGET_CFLAGS)" LDFLAGS="$(TARGET_LDFLAGS)" $(MAKE) -C $(TINYHTTPD_DIR)
+    
+$(TARGET_DIR)/$(TINYHTTPD_TARGET_BINARY): $(TINYHTTPD_DIR)/$(TINYHTTPD_BINARY)
+       $(INSTALL) -m 0755 $(TINYHTTPD_DIR)/$(TINYHTTPD_BINARY) $(TARGET_DIR)/$(TINYHTTPD_TARGET_BINARY)
+       $(STRIP) --strip-unneeded $(TARGET_DIR)/$(TINYHTTPD_TARGET_BINARY)
+       $(INSTALL) -m 0755 package/tinyhttpd/S85tinyhttpd $(TARGET_DIR)/etc/init.d
+       mkdir -p $(TARGET_DIR)/var/www
+
+tinyhttpd: uclibc $(TARGET_DIR)/$(TINYHTTPD_TARGET_BINARY)
+
+tinyhttpd-clean:
+       $(MAKE) -C $(TINYHTTPD_DIR) clean
+       @rm -f $(TARGET_DIR)/$(TINYHTTPD_TARGET_BINARY)
+       @rm -f $(TARGET_DIR)/etc/init.d/S85tinyhttpd
+       @rmdir --ignore-fail-on-non-empty $(TARGET_DIR)/var/www
+
+tinyhttpd-dirclean:
+       rm -rf $(TINYHTTPD_DIR)
+
+#############################################################
+#
+# Toplevel Makefile options
+#
+#############################################################
+ifeq ($(strip $(BR2_PACKAGE_TINYHTTPD)),y)
+TARGETS+=tinyhttpd
+endif
diff --git a/package/tinyhttpd/tinyhttpd.patch b/package/tinyhttpd/tinyhttpd.patch
new file mode 100644 (file)
index 0000000..02eb189
--- /dev/null
@@ -0,0 +1,80 @@
+diff -ur tinyhttpd-0.1.0/httpd.c tinyhttpd-0.1.0-patched/httpd.c
+--- tinyhttpd-0.1.0/httpd.c    2001-04-21 19:13:13.000000000 -0500
++++ tinyhttpd-0.1.0-patched/httpd.c    2007-07-02 09:19:27.000000000 -0500
+@@ -4,14 +4,6 @@
+  * CSE 4344 (Network concepts), Prof. Zeigler
+  * University of Texas at Arlington
+  */
+-/* This program compiles for Sparc Solaris 2.6.
+- * To compile for Linux:
+- *  1) Comment out the #include <pthread.h> line.
+- *  2) Comment out the line that defines the variable newthread.
+- *  3) Comment out the two lines that run pthread_create().
+- *  4) Uncomment the line that runs accept_request().
+- *  5) Remove -lsocket from the Makefile.
+- */
+ #include <stdio.h>
+ #include <sys/socket.h>
+ #include <sys/types.h>
+@@ -22,7 +14,6 @@
+ #include <strings.h>
+ #include <string.h>
+ #include <sys/stat.h>
+-#include <pthread.h>
+ #include <sys/wait.h>
+ #include <stdlib.h>
+@@ -30,7 +21,6 @@
+ #define SERVER_STRING "Server: jdbhttpd/0.1.0\r\n"
+-void accept_request(int);
+ void bad_request(int);
+ void cat(int, FILE *);
+ void cannot_execute(int);
+@@ -102,7 +92,7 @@
+   }
+  }
+- sprintf(path, "htdocs%s", url);
++ sprintf(path, "/var/www%s", url);
+  if (path[strlen(path) - 1] == '/')
+   strcat(path, "index.html");
+  if (stat(path, &st) == -1) {
+@@ -475,11 +465,10 @@
+ int main(void)
+ {
+  int server_sock = -1;
+- u_short port = 0;
++ u_short port = 80;
+  int client_sock = -1;
+  struct sockaddr_in client_name;
+  int client_name_len = sizeof(client_name);
+- pthread_t newthread;
+  server_sock = startup(&port);
+  printf("httpd running on port %d\n", port);
+@@ -491,9 +480,7 @@
+                        &client_name_len);
+   if (client_sock == -1)
+    error_die("accept");
+- /* accept_request(client_sock); */
+- if (pthread_create(&newthread , NULL, accept_request, client_sock) != 0)
+-   perror("pthread_create");
++  accept_request(client_sock);
+  }
+  close(server_sock);
+diff -ur tinyhttpd-0.1.0/Makefile tinyhttpd-0.1.0-patched/Makefile
+--- tinyhttpd-0.1.0/Makefile   2001-04-21 17:03:39.000000000 -0500
++++ tinyhttpd-0.1.0-patched/Makefile   2007-07-02 10:29:41.000000000 -0500
+@@ -1,7 +1,7 @@
+ all: httpd
+ httpd: httpd.c
+-      gcc -W -Wall -lsocket -lpthread -o httpd httpd.c
++      $(CC) $(CFLAGS) $(LDFLAGS) -W -Wall -lpthread -o httpd httpd.c
+ clean:
+-      rm httpd
++      rm -f httpd