summaryrefslogtreecommitdiff
path: root/cleopatre/buildroot
diff options
context:
space:
mode:
authorTerry Lu2013-06-20 19:25:30 +0800
committerJulien Lacour2013-10-01 12:12:51 +0200
commit02b214c04adaa0543e653d5c7fa39ddb42a29df0 (patch)
tree69774b94d68ab4d9318d5476ee93ce1e5ec26cac /cleopatre/buildroot
parent530ba809e1abf304d701a5a481b857f62a23363a (diff)
cleo/{app,buildroot}: port httpd and add wifi config page, closes #4210
Diffstat (limited to 'cleopatre/buildroot')
-rw-r--r--cleopatre/buildroot/package/Config.in8
-rw-r--r--cleopatre/buildroot/package/spidgoahead/Config.in9
-rw-r--r--cleopatre/buildroot/package/spidgoahead/spidgoahead.mk113
-rw-r--r--cleopatre/buildroot/target/device/Spidcom/common/defconfig.base1
-rw-r--r--cleopatre/buildroot/target/device/Spidcom/targets/mpr520e/defconfig.part1
-rwxr-xr-xcleopatre/buildroot/target/device/Spidcom/targets/mpr520e/target_skeleton_add/etc/init.d/S90httpd41
-rw-r--r--cleopatre/buildroot/target/device/Spidcom/targets/mpr520e/target_skeleton_add/etc/save.lst4
-rw-r--r--cleopatre/buildroot/target/device/Spidcom/targets/mpr520e/target_skeleton_add/etc/system.conf40
-rw-r--r--cleopatre/buildroot/target/device/Spidcom/targets/mpr520e/target_skeleton_add/etc/web_reset.info2
9 files changed, 219 insertions, 0 deletions
diff --git a/cleopatre/buildroot/package/Config.in b/cleopatre/buildroot/package/Config.in
index 77f74b4850..7eaca7887b 100644
--- a/cleopatre/buildroot/package/Config.in
+++ b/cleopatre/buildroot/package/Config.in
@@ -246,6 +246,14 @@ source "package/quagga/Config.in"
source "package/rsync/Config.in"
source "package/samba/Config.in"
source "package/socat/Config.in"
+if BR2_TARGET_SPIDCOM
+source "package/spidgoahead/Config.in"
+config BR2_SPIDGOAHEAD_SSL_SUPPORT
+ bool "Support for HTTPS protocol."
+ depends on BR2_PACKAGE_OPENSSL
+ depends on BR2_PACKAGE_GOA
+ default n
+endif
source "package/stunnel/Config.in"
source "package/tcpdump/Config.in"
source "package/tftpd/Config.in"
diff --git a/cleopatre/buildroot/package/spidgoahead/Config.in b/cleopatre/buildroot/package/spidgoahead/Config.in
new file mode 100644
index 0000000000..6e3c11a4af
--- /dev/null
+++ b/cleopatre/buildroot/package/spidgoahead/Config.in
@@ -0,0 +1,9 @@
+config BR2_PACKAGE_SPIDGOAHEAD
+ bool "spidgoahead"
+ depends on BR2_PACKAGE_LIBSPID
+ help
+ GoAhead WebServer 2.1 is a fully featured, open source web server designed specifically for the needs of embedded device developers. It delivers a full range of features.
+
+ http://www.goahead.com/
+comment "spidgoahead disabled (requires package libspid)"
+ depends on !BR2_PACKAGE_LIBSPID \ No newline at end of file
diff --git a/cleopatre/buildroot/package/spidgoahead/spidgoahead.mk b/cleopatre/buildroot/package/spidgoahead/spidgoahead.mk
new file mode 100644
index 0000000000..7c28ba4c3d
--- /dev/null
+++ b/cleopatre/buildroot/package/spidgoahead/spidgoahead.mk
@@ -0,0 +1,113 @@
+#############################################################
+#
+# spidgoahead
+# Fully featured HTTP server customized for SPC300 board
+#
+#############################################################
+
+SPIDGOAHEAD_VERSION:=0.0.1
+SPIDGOAHEAD_SITE:=$(BASE_DIR)/../application/spidgoahead
+SPIDGOAHEAD_NAME:=spidgoahead-$(SPIDGOAHEAD_VERSION)
+SPIDGOAHEAD_DIR:=$(BUILD_DIR)/spidgoahead-$(SPIDGOAHEAD_VERSION)
+
+SPIDGOAHEAD_LIBSPID_SITE:=$(BASE_DIR)/../application/libspid
+
+TARGET_ETC_CERTS_DIR = $(TARGET_DIR)/etc/certs
+
+TARGET_LIST_BASE := \
+ $(TARGET_DIR)/usr/bin/httpd \
+ $(TARGET_DIR)/etc/http/um_httpd.conf
+
+TARGET_LIST_WITH_SSH := \
+ $(TARGET_DIR)/etc/server.pem \
+ $(TARGET_DIR)/etc/certs/cacert.pem \
+ $(TARGET_DIR)/etc/certs/cakey.pem
+
+# Update target if SSL switch is on
+ifeq ($(BR2_SPIDGOAHEAD_SSL_SUPPORT),y)
+TARGET_LIST := $(TARGET_LIST_BASE) $(TARGET_LIST_WITH_SSH)
+else
+TARGET_LIST := $(TARGET_LIST_BASE)
+endif
+
+spidgoahead-source:
+
+$(TARGET_ETC_CERTS_DIR):
+ mkdir -p $(TARGET_DIR)/etc/certs
+
+$(SPIDGOAHEAD_DIR)/.unpacked:
+ ln -s $(SPIDGOAHEAD_SITE) $(SPIDGOAHEAD_DIR)
+ touch $(SPIDGOAHEAD_DIR)/.unpacked
+
+$(SPIDGOAHEAD_DIR)/.configured: $(SPIDGOAHEAD_DIR)/.unpacked
+ touch $(SPIDGOAHEAD_DIR)/.configured
+
+$(SPIDGOAHEAD_DIR)/.compiled: $(SPIDGOAHEAD_DIR)/.configured \
+ $(SPIDGOAHEAD_LIBSPID_SITE)/libspid.so \
+ FORCE_SPIDGOAHEAD_MAKE
+ @$(TARGET_CONFIGURE_OPTS) \
+ $(MAKE) -C $(SPIDGOAHEAD_DIR) \
+ SSL_SUPPORT=$(BR2_SPIDGOAHEAD_SSL_SUPPORT) \
+ STAGING_DIR="$(STAGING_DIR)"
+
+# httpd file is expected through .compiled rule.
+# 'web.tar' is always rebuild with httpd. See spidgoahead makefile.
+$(TARGET_DIR)/usr/bin/httpd: $(SPIDGOAHEAD_DIR)/.compiled
+ mkdir -p $(TARGET_DIR)/usr/bin
+ cp $(SPIDGOAHEAD_DIR)/httpd $@
+ mkdir -p $(TARGET_DIR)/usr/share/httpd/web/cgi-bin
+ tar -xvf $(SPIDGOAHEAD_DIR)/web.tar -C $(TARGET_DIR)/usr/share/httpd/
+
+# '$(SPIDGOAHEAD_DIR)/server.pem' is expected through .compiled rule.
+$(TARGET_DIR)/etc/server.pem: $(SPIDGOAHEAD_DIR)/.compiled \
+ | $(TARGET_ETC_CERTS_DIR)
+ cp $(SPIDGOAHEAD_DIR)/server.pem $@
+
+# '$(SPIDGOAHEAD_DIR)/um_httpd.conf' is expected through .compiled rule.
+$(TARGET_DIR)/etc/http/um_httpd.conf: $(SPIDGOAHEAD_DIR)/.compiled
+ mkdir -p $(TARGET_DIR)/etc/http
+ cp $(SPIDGOAHEAD_DIR)/um_httpd.conf $@
+
+# This rule should be in spidgoahead makefile.
+# because package's makefile prepare TARGET only.
+$(SPIDGOAHEAD_DIR)/server-cert.pem $(SPIDGOAHEAD_DIR)/server.pem: $(SPIDGOAHEAD_DIR)/server-key.pem
+ openssl req -x509 -newkey rsa:2048 -days 1024 -keyout \
+ $(SPIDGOAHEAD_DIR)/server-key.pem \
+ -out $(SPIDGOAHEAD_DIR)/server-cert.pem
+ openssl rsa \
+ -in $(SPIDGOAHEAD_DIR)/server-key.pem \
+ -out $(SPIDGOAHEAD_DIR)/server-key-nopassword.pem
+ cat $(SPIDGOAHEAD_DIR)/server-key-nopassword.pem $(SPIDGOAHEAD_DIR)/server-cert.pem \
+ > $(SPIDGOAHEAD_DIR)/server.pem
+
+$(TARGET_DIR)/etc/certs/cacert.pem: $(SPIDGOAHEAD_DIR)/server-cert.pem \
+ | $(TARGET_ETC_CERTS_DIR)
+ cp $< $@
+
+$(TARGET_DIR)/etc/certs/cakey.pem: $(SPIDGOAHEAD_DIR)/server-key.pem \
+ | $(TARGET_ETC_CERTS_DIR)
+ cp $< $@
+
+spidgoahead: uclibc $(TARGET_LIST)
+
+spidgoahead-clean:
+ rm -f $(TARGET_LIST_BASE)
+ rm -f $(TARGET_LIST_WITH_SSH)
+ -$(MAKE) -C $(SPIDGOAHEAD_DIR) clean
+
+https-clean: spidgoahead-clean
+
+spidgoahead-dirclean:
+ rm -f $(SPIDGOAHEAD_DIR)
+
+# We declare FORCE_SPIDGOAHEAD_MAKE rule as PHONY to force compilation
+.PHONY: FORCE_SPIDGOAHEAD_MAKE
+
+#############################################################
+#
+# Toplevel Makefile options
+#
+#############################################################
+ifeq ($(strip $(BR2_PACKAGE_SPIDGOAHEAD)),y)
+TARGETS+=spidgoahead
+endif
diff --git a/cleopatre/buildroot/target/device/Spidcom/common/defconfig.base b/cleopatre/buildroot/target/device/Spidcom/common/defconfig.base
index f0a0510d79..95dd8b8402 100644
--- a/cleopatre/buildroot/target/device/Spidcom/common/defconfig.base
+++ b/cleopatre/buildroot/target/device/Spidcom/common/defconfig.base
@@ -365,6 +365,7 @@ BR2_PACKAGE_PLCDRV=y
# BR2_PACKAGE_RT5572DRV is not set
# BR2_PACKAGE_DEBUG_UTILS is not set
# BR2_PACKAGE_MT7601UDRV is not set
+# BR2_PACKAGE_SPIDGOAHEAD is not set
#
# portmap requires a toolchain with 'Enable RPC' selected
diff --git a/cleopatre/buildroot/target/device/Spidcom/targets/mpr520e/defconfig.part b/cleopatre/buildroot/target/device/Spidcom/targets/mpr520e/defconfig.part
index 8651067852..29c6cdccf9 100644
--- a/cleopatre/buildroot/target/device/Spidcom/targets/mpr520e/defconfig.part
+++ b/cleopatre/buildroot/target/device/Spidcom/targets/mpr520e/defconfig.part
@@ -3,3 +3,4 @@ BR2_HOSTNAME="mpr520e"
BR2_TARGET_SPIDCOM_MPR520E=y
BR2_PACKAGE_PMD=y
BR2_PACKAGE_MT7601UDRV=y
+BR2_PACKAGE_SPIDGOAHEAD=y \ No newline at end of file
diff --git a/cleopatre/buildroot/target/device/Spidcom/targets/mpr520e/target_skeleton_add/etc/init.d/S90httpd b/cleopatre/buildroot/target/device/Spidcom/targets/mpr520e/target_skeleton_add/etc/init.d/S90httpd
new file mode 100755
index 0000000000..8cd512a514
--- /dev/null
+++ b/cleopatre/buildroot/target/device/Spidcom/targets/mpr520e/target_skeleton_add/etc/init.d/S90httpd
@@ -0,0 +1,41 @@
+#!/bin/sh
+#
+# Start the httpd daemon....
+#
+
+start() {
+ echo "Starting HTTP Daemon..."
+ if [ -f /usr/bin/httpd ]
+ then
+ /usr/bin/httpd &
+ fi
+}
+stop() {
+ echo "Stopping HTTP Daemon..."
+ if [ -f /usr/bin/httpd ]
+ then
+ killall httpd
+ fi
+}
+restart() {
+ stop
+ start
+}
+
+case "$1" in
+ start)
+ start
+ ;;
+ stop)
+ stop
+ ;;
+ restart|reload)
+ restart
+ ;;
+ *)
+ echo $"Usage: $0 {start|stop|restart}"
+ exit 1
+esac
+
+exit $?
+
diff --git a/cleopatre/buildroot/target/device/Spidcom/targets/mpr520e/target_skeleton_add/etc/save.lst b/cleopatre/buildroot/target/device/Spidcom/targets/mpr520e/target_skeleton_add/etc/save.lst
new file mode 100644
index 0000000000..048412f71d
--- /dev/null
+++ b/cleopatre/buildroot/target/device/Spidcom/targets/mpr520e/target_skeleton_add/etc/save.lst
@@ -0,0 +1,4 @@
+Wireless/RT2870AP/RT2870AP.dat
+network/interfaces
+hostname
+save.lst
diff --git a/cleopatre/buildroot/target/device/Spidcom/targets/mpr520e/target_skeleton_add/etc/system.conf b/cleopatre/buildroot/target/device/Spidcom/targets/mpr520e/target_skeleton_add/etc/system.conf
new file mode 100644
index 0000000000..9ce02d74b2
--- /dev/null
+++ b/cleopatre/buildroot/target/device/Spidcom/targets/mpr520e/target_skeleton_add/etc/system.conf
@@ -0,0 +1,40 @@
+ADMIN_LOGICAL_ID = SPiDCOM Technologies
+ADMIN_TECHPROJECT = Mstarsemi
+ADMIN_EMS_IP_ADDRESS = 0.0.0.0
+UPGRADE_SERVER_IP = 127.0.0.1
+UPGRADE_SERVER_PORT = 21
+UPGRADE_SERVER_LOGIN = spidcom
+UPGRADE_SERVER_PASSWORD = spidcom
+UPGRADE_MASTER_FILENAME = master_filename
+UPGRADE_SLAVE_FILENAME = slave_filename
+UPGRADE_BOARD_TYPE_CHECK = yes
+CONFIG_SERVER_IP = 127.0.0.1
+CONFIG_SERVER_PORT = 21
+CONFIG_SERVER_LOGIN = spidcom
+CONFIG_SERVER_PASSWORD = spidcom
+CONFIG_SERVER_FILENAME = filename
+AUTOUPDATE = yes
+REMOTE_UPDATE = yes
+AUTOCONF = yes
+FTP_SERVICE = yes
+SNMP_SERVICE = yes
+SERIAL_SERVICE = yes
+TELNET_SERVICE = yes
+TELNET_TIMEOUT_SEC = 60
+TELNET_SESSIONS_MAX_NB = 4
+8021X_SUPPLICANT_SERVICE = no
+8021X_AUTH_SERVICE = no
+HTTP_SERVICE = yes
+AUTODISCOVERY_ENABLE = yes
+AUTODISCOVERY_TIME_SEC = 60
+AUTODISCOVERY_TIME_SEC2 = 1200
+AUTODISCOVERY_INTERFACE = eth0
+PLC_FORWARDING_ENABLE = yes
+STP_ENABLE = no
+SSH_ENABLE = no
+WL_CONTROL = 1
+NSCRTV_EPONEOC_MOD_EOC = no
+VLAN_VERSION = 1
+VLAN_MAX_ID = 4095
+VLAN_MAX_SUPPORTED_VLANS = 4095
+BCMP_ENABLE = no
diff --git a/cleopatre/buildroot/target/device/Spidcom/targets/mpr520e/target_skeleton_add/etc/web_reset.info b/cleopatre/buildroot/target/device/Spidcom/targets/mpr520e/target_skeleton_add/etc/web_reset.info
new file mode 100644
index 0000000000..c02e7ce932
--- /dev/null
+++ b/cleopatre/buildroot/target/device/Spidcom/targets/mpr520e/target_skeleton_add/etc/web_reset.info
@@ -0,0 +1,2 @@
+RESET_BY_WEB = no
+WIFI_CFG_CHANGE = no