summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
-rw-r--r--Makefile4
-rwxr-xr-xbuild/luci.cgi8
-rw-r--r--contrib/uhttpd/Makefile30
-rw-r--r--contrib/uhttpd/patches/001-pass-env.patch11
-rw-r--r--contrib/uhttpd/patches/series1
5 files changed, 54 insertions, 0 deletions
diff --git a/Makefile b/Makefile
index 3b46544a4..ceb80ac24 100644
--- a/Makefile
+++ b/Makefile
@@ -61,6 +61,10 @@ ucidefaults:
runhttpd: hostenv
build/hostenv.sh $(realpath host) $(LUA_MODULEDIR) $(LUA_LIBRARYDIR) "lua build/lucid.lua"
+runuhttpd: hostenv
+ cp $(realpath build)/luci.cgi $(realpath host)/www/cgi-bin/luci
+ build/hostenv.sh $(realpath host) $(LUA_MODULEDIR) $(LUA_LIBRARYDIR) "$(realpath host)/usr/sbin/uhttpd -p 8080 -h $(realpath host)/www -f"
+
runlua: hostenv
build/hostenv.sh $(realpath host) $(LUA_MODULEDIR) $(LUA_LIBRARYDIR) "lua -i build/setup.lua"
diff --git a/build/luci.cgi b/build/luci.cgi
new file mode 100755
index 000000000..f4b590044
--- /dev/null
+++ b/build/luci.cgi
@@ -0,0 +1,8 @@
+#!/usr/bin/lua
+
+dofile "../../build/setup.lua"
+
+require "luci.cacheloader"
+require "luci.sgi.cgi"
+luci.dispatcher.indexcache = "/tmp/luci-indexcache"
+luci.sgi.cgi.run()
diff --git a/contrib/uhttpd/Makefile b/contrib/uhttpd/Makefile
new file mode 100644
index 000000000..7b0b37fa9
--- /dev/null
+++ b/contrib/uhttpd/Makefile
@@ -0,0 +1,30 @@
+include ../../build/config.mk
+include ../../build/gccconfig.mk
+
+UHTTPD_SRC = svn://svn.openwrt.org/openwrt/trunk/package/uhttpd/src
+UHTTPD_DIR = uhttpd-src
+UHTTPD_PATCHDIR = patches
+
+all: compile
+
+include ../../build/module.mk
+
+$(UHTTPD_DIR)/Makefile:
+ svn co $(UHTTPD_SRC) $(UHTTPD_DIR)
+
+$(UHTTPD_DIR)/.prepared: $(UHTTPD_DIR)/Makefile
+ (cd $(UHTTPD_PATCHDIR); ls *.patch | sort > series) || true
+ [ -f "$(UHTTPD_PATCHDIR)/series" ] && while read patch; do \
+ patch -d $(UHTTPD_DIR) -p1 < $(UHTTPD_PATCHDIR)/$$patch; \
+ done < $(UHTTPD_PATCHDIR)/series || true
+ touch $@
+
+compile: $(UHTTPD_DIR)/.prepared
+ (cd $(UHTTPD_DIR); $(MAKE) LUA_SUPPORT=0 TLS_SUPPORT=0 CGI_SUPPORT=1)
+ mkdir -p dist/usr/sbin
+ cp $(UHTTPD_DIR)/uhttpd dist/usr/sbin
+
+compile-all: compile
+
+clean:
+ rm -rf $(UHTTPD_DIR)
diff --git a/contrib/uhttpd/patches/001-pass-env.patch b/contrib/uhttpd/patches/001-pass-env.patch
new file mode 100644
index 000000000..b69ff1765
--- /dev/null
+++ b/contrib/uhttpd/patches/001-pass-env.patch
@@ -0,0 +1,11 @@
+--- a/uhttpd-cgi.c
++++ b/uhttpd-cgi.c
+@@ -204,7 +204,7 @@ void uh_cgi_request(struct client *cl, s
+ (pi->stat.st_mode & S_IXOTH)
+ ) {
+ /* build environment */
+- clearenv();
++ //clearenv();
+
+ /* common information */
+ setenv("GATEWAY_INTERFACE", "CGI/1.1", 1);
diff --git a/contrib/uhttpd/patches/series b/contrib/uhttpd/patches/series
new file mode 100644
index 000000000..dc852df8b
--- /dev/null
+++ b/contrib/uhttpd/patches/series
@@ -0,0 +1 @@
+001-pass-env.patch