From 02b214c04adaa0543e653d5c7fa39ddb42a29df0 Mon Sep 17 00:00:00 2001 From: Terry Lu Date: Thu, 20 Jun 2013 19:25:30 +0800 Subject: cleo/{app,buildroot}: port httpd and add wifi config page, closes #4210 --- cleopatre/buildroot/package/Config.in | 8 ++ cleopatre/buildroot/package/spidgoahead/Config.in | 9 ++ .../buildroot/package/spidgoahead/spidgoahead.mk | 113 +++++++++++++++++++++ .../target/device/Spidcom/common/defconfig.base | 1 + .../device/Spidcom/targets/mpr520e/defconfig.part | 1 + .../target_skeleton_add/etc/init.d/S90httpd | 41 ++++++++ .../mpr520e/target_skeleton_add/etc/save.lst | 4 + .../mpr520e/target_skeleton_add/etc/system.conf | 40 ++++++++ .../mpr520e/target_skeleton_add/etc/web_reset.info | 2 + 9 files changed, 219 insertions(+) create mode 100644 cleopatre/buildroot/package/spidgoahead/Config.in create mode 100644 cleopatre/buildroot/package/spidgoahead/spidgoahead.mk create mode 100755 cleopatre/buildroot/target/device/Spidcom/targets/mpr520e/target_skeleton_add/etc/init.d/S90httpd create mode 100644 cleopatre/buildroot/target/device/Spidcom/targets/mpr520e/target_skeleton_add/etc/save.lst create mode 100644 cleopatre/buildroot/target/device/Spidcom/targets/mpr520e/target_skeleton_add/etc/system.conf create mode 100644 cleopatre/buildroot/target/device/Spidcom/targets/mpr520e/target_skeleton_add/etc/web_reset.info (limited to 'cleopatre/buildroot') 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 -- cgit v1.2.3