diff options
author | Steven Barth <steven@midlink.org> | 2008-05-08 15:37:41 +0000 |
---|---|---|
committer | Steven Barth <steven@midlink.org> | 2008-05-08 15:37:41 +0000 |
commit | aa9ccf77c6648515ba58c37b9345cdbd561028db (patch) | |
tree | b0270202d47b6c5e179f8475302bb3ef0d1c9402 /contrib | |
parent | a3a51464fd8cffa6d18fa3f18be9c699901abd0d (diff) |
* Mördercommit ;-)
* Major Repository Reorganisation
* API 0.4 Softfreeze to come
Diffstat (limited to 'contrib')
19 files changed, 308 insertions, 459 deletions
diff --git a/contrib/package/ffluci-splash/Makefile b/contrib/package/ffluci-splash/Makefile deleted file mode 100644 index 3ea123ffd..000000000 --- a/contrib/package/ffluci-splash/Makefile +++ /dev/null @@ -1,43 +0,0 @@ -include $(TOPDIR)/rules.mk - -PKG_NAME:=ffluci-splash -PKG_VERSION:=0.1 -PKG_RELEASE:=1 - -PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME)-$(PKG_VERSION) -PKG_INSTALL_DIR:=$(PKG_BUILD_DIR)/ipkg-install -PKG_BUILD_DEPENDS:=lua-luci - -include $(INCLUDE_DIR)/package.mk - -define Package/ffluci-splash - SECTION:=admin - CATEGORY:=Administration - SUBMENU:=FFLuCI - DEPENDS:=+ffluci +iptables-mod-nat +lua-luci - TITLE:=FFLuCI DHCP-Splash -endef - -define Build/Compile -endef - -define Package/ffluci-splash/install - $(INSTALL_DIR) $(1)/usr/lib/luci-splash/htdocs/cgi-bin - $(INSTALL_DIR) $(1)/etc/config - $(INSTALL_DIR) $(1)/etc/cron.minutely - $(INSTALL_DIR) $(1)/etc/init.d - $(INSTALL_DIR) $(1)/usr/sbin - - $(CP) -a ./src/luci-splash/* $(1)/usr/lib/luci-splash/ -R - $(INSTALL_BIN) ./src/luci-splash/htdocs/cgi-bin/index.cgi $(1)/usr/lib/luci-splash/htdocs/cgi-bin - $(INSTALL_BIN) ./src/luci_splash.init $(1)/etc/init.d/luci_splash - $(INSTALL_BIN) ./src/luci-splash.lua $(1)/usr/sbin/luci-splash - - $(INSTALL_BIN) ./src/luci_splash.cron $(1)/etc/cron.minutely/luci-splash - $(CP) -a ./src/luci_splash.uci $(1)/etc/config/luci_splash - $(CP) -a ./src/luci_splash_httpd.conf $(1)/etc/ - - $(CP) -a ./ipkg/conffiles $(1)/CONTROL/conffiles -endef - -$(eval $(call BuildPackage,ffluci-splash)) diff --git a/contrib/package/ffluci-splash/ipkg/conffiles b/contrib/package/ffluci-splash/ipkg/conffiles deleted file mode 100644 index dcbe1ad37..000000000 --- a/contrib/package/ffluci-splash/ipkg/conffiles +++ /dev/null @@ -1 +0,0 @@ -/etc/config/luci_splash
\ No newline at end of file diff --git a/contrib/package/ffluci-splash/src/luci-splash.lua b/contrib/package/ffluci-splash/src/luci-splash.lua deleted file mode 100644 index 2fa6bdd4a..000000000 --- a/contrib/package/ffluci-splash/src/luci-splash.lua +++ /dev/null @@ -1,176 +0,0 @@ -#!/usr/bin/lua -package.path = "/usr/lib/lua/?.lua;/usr/lib/lua/?/init.lua;" .. package.path -package.cpath = "/usr/lib/lua/?.so;" .. package.cpath - -require("ffluci.http") -require("ffluci.sys") -require("ffluci.model.uci") - --- Init state session -uci = ffluci.model.uci.StateSession() - - -function main(argv) - local cmd = argv[1] - local arg = argv[2] - - if cmd == "status" then - if not arg then - os.exit(1) - end - - if iswhitelisted(arg) then - print("whitelisted") - os.exit(0) - end - - if haslease(arg) then - print("lease") - os.exit(0) - end - - print("unknown") - os.exit(0) - elseif cmd == "add" then - if not arg then - os.exit(1) - end - - if not haslease(arg) then - add_lease(arg) - else - print("already leased!") - os.exit(2) - end - os.exit(0) - elseif cmd == "remove" then - if not arg then - os.exit(1) - end - - remove_lease(arg) - os.exit(0) - elseif cmd == "sync" then - sync() - os.exit(0) - else - print("Usage: " .. argv[0] .. " <status|add|remove|sync> [MAC]") - os.exit(1) - end -end - --- Add a lease to state and invoke add_rule -function add_lease(mac) - local key = uci:add("luci_splash", "lease") - uci:set("luci_splash", key, "mac", mac) - uci:set("luci_splash", key, "start", os.time()) - add_rule(mac) -end - - --- Remove a lease from state and invoke remove_rule -function remove_lease(mac) - mac = mac:lower() - - for k, v in pairs(uci:sections("luci_splash")) do - if v[".type"] == "lease" and v.mac:lower() == mac then - remove_rule(mac) - uci:del("luci_splash", k) - end - end -end - - --- Add an iptables rule -function add_rule(mac) - return os.execute("iptables -t nat -I luci_splash_leases -m mac --mac-source '"..mac.."' -j RETURN") -end - - --- Remove an iptables rule -function remove_rule(mac) - return os.execute("iptables -t nat -D luci_splash_leases -m mac --mac-source '"..mac.."' -j RETURN") -end - - --- Check whether a MAC-Address is listed in the lease state list -function haslease(mac) - mac = mac:lower() - - for k, v in pairs(uci:sections("luci_splash")) do - if v[".type"] == "lease" and v.mac and v.mac:lower() == mac then - return true - end - end - - return false -end - - --- Check whether a MAC-Address is whitelisted -function iswhitelisted(mac) - mac = mac:lower() - - for k, v in pairs(uci:sections("luci_splash")) do - if v[".type"] == "whitelist" and v.mac and v.mac:lower() == mac then - return true - end - end - - return false -end - - --- Returns a list of MAC-Addresses for which a rule is existing -function listrules() - local cmd = "iptables -t nat -L luci_splash_leases | grep RETURN |" - cmd = cmd .. "egrep -io [0-9a-f]+:[0-9a-f]+:[0-9a-f]+:[0-9a-f]+:[0-9a-f]+:[0-9a-f]+" - return ffluci.util.split(ffluci.sys.exec(cmd)) -end - - --- Synchronise leases, remove abandoned rules -function sync() - local written = {} - local time = os.time() - - uci:t_load("luci_splash") - - -- Current leases in state files - local leases = uci:t_sections("luci_splash") - - -- Convert leasetime to seconds - local leasetime = tonumber(uci:t_get("luci_splash", "general", "leasetime")) * 3600 - - -- Clean state file - uci:t_revert("luci_splash") - - - -- For all leases - for k, v in pairs(leases) do - if v[".type"] == "lease" then - if os.difftime(time, tonumber(v.start)) > leasetime then - -- Remove expired - remove_rule(v.mac) - else - -- Rewrite state - local n = uci:t_add("luci_splash", "lease") - uci:t_set("luci_splash", n, "mac", v.mac) - uci:t_set("luci_splash", n, "start", v.start) - written[v.mac:lower()] = 1 - end - end - end - - - -- Delete rules without state - for i, r in ipairs(listrules()) do - if #r > 0 and not written[r:lower()] then - remove_rule(r) - end - end - - uci:t_save("luci_splash") -end - -main(arg)
\ No newline at end of file diff --git a/contrib/package/ffluci-splash/src/luci-splash/htdocs/cgi-bin/index.cgi b/contrib/package/ffluci-splash/src/luci-splash/htdocs/cgi-bin/index.cgi deleted file mode 100644 index 3bff85ee5..000000000 --- a/contrib/package/ffluci-splash/src/luci-splash/htdocs/cgi-bin/index.cgi +++ /dev/null @@ -1,52 +0,0 @@ -#!/usr/bin/haserl --shell=luac -package.path = "/usr/lib/lua/?.lua;/usr/lib/lua/?/init.lua;" .. package.path -package.cpath = "/usr/lib/lua/?.so;" .. package.cpath - -require("ffluci.http") -require("ffluci.sys") -require("ffluci.model.uci") - -local srv -local net -local ip = ffluci.http.remote_addr() -for k, v in pairs(ffluci.model.uci.sections("network")) do - if v[".type"] == "interface" and v.ipaddr then - local p = ffluci.sys.net.mask4prefix(v.netmask) - if ffluci.sys.net.belongs(ip, v.ipaddr, p) then - net = k - srv = v.ipaddr - break - end - end -end - -local stat = false -for k, v in pairs(ffluci.model.uci.sections("luci_splash")) do - if v[".type"] == "iface" and v.network == net then - stat = true - end -end - -if not srv then - ffluci.http.textheader() - return print("Unable to detect network settings!") -end - -if not stat then - ffluci.http.redirect("http://" .. srv) -end - -local action = "splash" - -local mac = ffluci.sys.net.ip4mac(ip) -if not mac then - action = "unknown" -end - -local status = ffluci.sys.execl("luci-splash status "..mac)[1] - -if status == "whitelisted" or status == "lease" then - action = "allowed" -end - -ffluci.http.redirect("http://" .. srv .. "/cgi-bin/luci-splash/" .. action)
\ No newline at end of file diff --git a/contrib/package/ffluci-splash/src/luci-splash/htdocs/index.html b/contrib/package/ffluci-splash/src/luci-splash/htdocs/index.html deleted file mode 100644 index 58387a5fe..000000000 --- a/contrib/package/ffluci-splash/src/luci-splash/htdocs/index.html +++ /dev/null @@ -1,10 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd"> -<html xmlns="http://www.w3.org/1999/xhtml"> -<head> -<meta http-equiv="refresh" content="0; URL=/cgi-bin/index.cgi" /> -</head> -<body style="background-color: black"> -<a style="color: white; text-decoration: none" href="/cgi-bin/index.cgi">FFLuCI - Freifunk Lua Configuration Interface</a> -</body> -</html>
\ No newline at end of file diff --git a/contrib/package/ffluci-splash/src/luci_splash.cron b/contrib/package/ffluci-splash/src/luci_splash.cron deleted file mode 100644 index eae429474..000000000 --- a/contrib/package/ffluci-splash/src/luci_splash.cron +++ /dev/null @@ -1,2 +0,0 @@ -#!/bin/sh -[ "$(date +%M | cut -c2)" == "5" ] && luci-splash sync
\ No newline at end of file diff --git a/contrib/package/ffluci-splash/src/luci_splash.init b/contrib/package/ffluci-splash/src/luci_splash.init deleted file mode 100644 index 20f7865fd..000000000 --- a/contrib/package/ffluci-splash/src/luci_splash.init +++ /dev/null @@ -1,85 +0,0 @@ -#!/bin/sh /etc/rc.common -START=70 - -iface_add() { - local cfg="$1" - - config_get net "$cfg" network - [ -n "$net" ] || return 0 - - config_get iface "$net" ifname - [ -n "$iface" ] || return 0 - iface="${iface%%:*}" - - config_get ipaddr "$net" ipaddr - [ -n "$ipaddr" ] || return 0 - - config_get netmask "$net" netmask - [ -n "$netmask" ] || return 0 - - eval "$(ipcalc.sh $ipaddr $netmask)" - - iptables -t nat -A luci_splash -i "$iface" -s "$NETWORK/$PREFIX" -j luci_splash_portal - iptables -t nat -A luci_splash_portal -i "$iface" -s "$NETWORK/$PREFIX" -d "$ipaddr" -p tcp -m multiport --dports 22,80,443 -j RETURN -} - -blacklist_add() { - local cfg="$1" - - config_get mac "$cfg" mac - [ -n "$mac" ] && iptables -t nat -A luci_splash_portal -m mac --mac-source "$mac" -j DROP -} - -whitelist_add() { - local cfg="$1" - - config_get mac "$cfg" mac - [ -n "$mac" ] && iptables -t nat -A luci_splash_portal -m mac --mac-source "$mac" -j RETURN -} - -start() { - ### Read chains from config - include /lib/network - scan_interfaces - config_load luci_splash - - ### Create subchains - iptables -t nat -N luci_splash - iptables -t nat -N luci_splash_portal - iptables -t nat -N luci_splash_leases - - ### Build the main and portal rule - config_foreach blacklist_add blacklist - config_foreach whitelist_add whitelist - config_foreach iface_add iface - - ### Build the portal rule - iptables -t nat -A luci_splash_portal -p udp --dport 53 -j RETURN - iptables -t nat -A luci_splash_portal -j luci_splash_leases - - ### Build the leases rule - iptables -t nat -A luci_splash_leases -p tcp --dport 80 -j REDIRECT --to-ports 8082 - iptables -t nat -A luci_splash_leases -j DROP - - ### Start the splash httpd - httpd -c /etc/luci_splash_httpd.conf -p 8082 -h /usr/lib/luci-splash/htdocs - - ### Hook in the chain - iptables -t nat -A prerouting_rule -j luci_splash -} - -stop() { - ### Hook out the chain - iptables -t nat -D prerouting_rule -j luci_splash - - ### Clear subchains - iptables -t nat -F luci_splash_leases - iptables -t nat -F luci_splash_portal - iptables -t nat -F luci_splash - - ### Delete subchains - iptables -t nat -X luci_splash_leases - iptables -t nat -X luci_splash_portal - iptables -t nat -X luci_splash -} - diff --git a/contrib/package/ffluci-splash/src/luci_splash.uci b/contrib/package/ffluci-splash/src/luci_splash.uci deleted file mode 100644 index c4cfef5dd..000000000 --- a/contrib/package/ffluci-splash/src/luci_splash.uci +++ /dev/null @@ -1,2 +0,0 @@ -config core general - option leasetime 1
\ No newline at end of file diff --git a/contrib/package/ffluci-splash/src/luci_splash_httpd.conf b/contrib/package/ffluci-splash/src/luci_splash_httpd.conf deleted file mode 100644 index 6007e80db..000000000 --- a/contrib/package/ffluci-splash/src/luci_splash_httpd.conf +++ /dev/null @@ -1 +0,0 @@ -E404:index.html
\ No newline at end of file diff --git a/contrib/package/ffluci-system-addons/Makefile b/contrib/package/ffluci-system-addons/Makefile deleted file mode 100644 index 622871fca..000000000 --- a/contrib/package/ffluci-system-addons/Makefile +++ /dev/null @@ -1,32 +0,0 @@ -include $(TOPDIR)/rules.mk - -PKG_NAME:=ffluci-system-addons -PKG_VERSION:=0.1 -PKG_RELEASE:=1 - -PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME)-$(PKG_VERSION) -PKG_INSTALL_DIR:=$(PKG_BUILD_DIR)/ipkg-install - -include $(INCLUDE_DIR)/package.mk - -define Package/ffluci-system-addons - SECTION:=admin - CATEGORY:=Administration - SUBMENU:=FFLuCI - TITLE:=FFLuCI System Addons for Kamikaze -endef - -define Build/Compile -endef - -define Package/ffluci-system-addons/install - $(INSTALL_DIR) $(1)/usr/bin - $(INSTALL_DIR) $(1)/etc/crontabs - $(INSTALL_DIR) $(1)/etc/hotplug.d/iface - - $(INSTALL_BIN) ./src/run-parts $(1)/usr/bin - $(CP) ./src/root.crontab $(1)/etc/crontabs/root - $(CP) ./src/hotplug.d-20-aliases $(1)/etc/hotplug.d/iface/20-aliases -endef - -$(eval $(call BuildPackage,ffluci-system-addons)) diff --git a/contrib/package/ffluci/Makefile b/contrib/package/ffluci/Makefile index 1b0f80e6b..32d82b500 100644 --- a/contrib/package/ffluci/Makefile +++ b/contrib/package/ffluci/Makefile @@ -1,79 +1,205 @@ include $(TOPDIR)/rules.mk +PKG_BRANCH:=trunk +PKG_SOURCE_URL:=https://dev.leipzig.freifunk.net/svn/ff-luci/$(PKG_BRANCH) +PKG_REV:=$(shell LC_ALL=C svn info ${PKG_SOURCE_URL} | sed -ne's/^Last Changed Rev: //p') + PKG_NAME:=ffluci -PKG_REV:=HEAD -PKG_VERSION:=0.3+svn$(PKG_REV) +PKG_VERSION:=0.4+svn$(PKG_REV) PKG_RELEASE:=1 -PKG_BRANCH:=trunk +PKG_SOURCE:=$(PKG_SOURCE_SUBDIR).tar.gz PKG_SOURCE_PROTO:=svn PKG_SOURCE_VERSION:=$(PKG_REV) -PKG_SOURCE_URL:=https://dev.leipzig.freifunk.net/svn/ff-luci/$(PKG_BRANCH) PKG_SOURCE_SUBDIR:=$(PKG_NAME)-$(PKG_VERSION) -PKG_SOURCE:=$(PKG_SOURCE_SUBDIR).tar.gz + +PKG_BUILD_DEPENDS:=lua-luci PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME)-$(PKG_VERSION) PKG_INSTALL_DIR:=$(PKG_BUILD_DIR)/ipkg-install -PKG_BUILD_DEPENDS:=lua-luci +# LUA_TARGET:=compile LUAC=$(BUILD_DIR_HOST)/lua-luci/luac +LUA_TARGET:=source -# MAKE_ACTION:=compile LUAC=$(BUILD_DIR_HOST)/lua-luci/luac -MAKE_ACTION:=source include $(INCLUDE_DIR)/package.mk -define Package/ffluci +define Build/Configure +endef + +define Build/Compile + $(MAKE) -C$(PKG_BUILD_DIR) build LUA_TARGET=$(LUA_TARGET) +endef + + +define Package/ffluci/template SECTION:=admin CATEGORY:=Administration - TITLE:=FFLuCI - SUBMENU:=FFLuCI - DEPENDS:=+luaposix +haserl-lua +ffluci-system-addons + TITLE:=FFLuCI - Freifunk Lua Configuration Interface + URL:=http://luci.freifunk-halle.net/ MAINTAINER:=Steven Barth <steven-at-midlink-dot-org> endef -define Build/Configure +define Package/ffluci/install/template + $(CP) $(PKG_BUILD_DIR)/$(2)/dist/* $(1)/ -R + + for i in $(PKG_BUILD_DIR)/$(2)/dist/usr/bin/*; do $(INSTALL_BIN) $$i $(1)/usr/bin/; done + for i in $(PKG_BUILD_DIR)/$(2)/dist/usr/sbin/*; do $(INSTALL_BIN) $$i $(1)/usr/sbin/; done + for i in $(PKG_BUILD_DIR)/$(2)/dist/bin/*; do $(INSTALL_BIN) $$i $(1)/bin/; done + for i in $(PKG_BUILD_DIR)/$(2)/dist/sbin/*; do $(INSTALL_BIN) $$i $(1)/sbin/; done endef -define Build/Compile - $(MAKE) -C $(PKG_BUILD_DIR)/core $(MAKE_ACTION) - $(MAKE) -C $(PKG_BUILD_DIR)/module/admin-core $(MAKE_ACTION) - $(MAKE) -C $(PKG_BUILD_DIR)/module/public-core $(MAKE_ACTION) - $(MAKE) -C $(PKG_BUILD_DIR)/module/rpc-core $(MAKE_ACTION) + +define Package/ffluci + $(call Package/ffluci/template) + MENU:=1 + DEPENDS:=+lua-luci +luaposix +luci-addons +endef + +define Package/ffluci/conffiles +/etc/config/luci endef define Package/ffluci/install - $(INSTALL_DIR) $(1)/usr/lib/lua/ffluci - $(INSTALL_DIR) $(1)/www/cgi-bin - $(INSTALL_DIR) $(1)/www/ffluci - $(INSTALL_DIR) $(1)/etc/config - $(INSTALL_DIR) $(1)/etc/init.d - $(INSTALL_DIR) $(1)/sbin - $(INSTALL_DIR) $(1)/etc/hotplug.d/iface - - $(CP) $(PKG_BUILD_DIR)/core/dist/* $(1)/usr/lib/lua/ -R - $(CP) $(PKG_BUILD_DIR)/core/contrib/uci/* $(1)/etc/config/ - $(INSTALL_BIN) $(PKG_BUILD_DIR)/core/contrib/ffluci $(1)/www/cgi-bin - $(INSTALL_BIN) $(PKG_BUILD_DIR)/core/contrib/ffluci-upload $(1)/www/cgi-bin - $(INSTALL_BIN) $(PKG_BUILD_DIR)/core/contrib/index.cgi $(1)/www/cgi-bin - $(INSTALL_BIN) $(PKG_BUILD_DIR)/core/contrib/index.html $(1)/www - - $(CP) $(PKG_BUILD_DIR)/themes/fledermaus/contrib/media $(1)/www/ffluci/ -R - - $(CP) $(PKG_BUILD_DIR)/module/admin-core/dist/* $(1)/usr/lib/lua/ffluci/ -R - $(CP) $(PKG_BUILD_DIR)/module/admin-core/contrib/uci/luci_fw $(1)/etc/config/luci_fw - $(INSTALL_BIN) $(PKG_BUILD_DIR)/module/admin-core/contrib/init.d/luci_fw $(1)/etc/init.d/luci_fw - $(INSTALL_BIN) $(PKG_BUILD_DIR)/module/admin-core/contrib/init.d/luci_freifunk $(1)/etc/init.d/luci_freifunk - $(INSTALL_BIN) $(PKG_BUILD_DIR)/module/admin-core/contrib/ffluci-flash $(1)/sbin - $(INSTALL_BIN) $(PKG_BUILD_DIR)/module/admin-core/contrib/luci-splash $(1)/www/cgi-bin - - $(CP) $(PKG_BUILD_DIR)/module/public-core/dist/* $(1)/usr/lib/lua/ffluci/ -R - $(CP) $(PKG_BUILD_DIR)/module/public-core/contrib/media $(1)/www/ffluci/ -R - - $(CP) $(PKG_BUILD_DIR)/module/rpc-core/dist/* $(1)/usr/lib/lua/ffluci/ -R - - $(CP) -a ./ipkg/ffluci.postinst $(1)/CONTROL/postinst - $(CP) -a ./ipkg/conffiles $(1)/CONTROL/conffiles - rm $(DL_DIR)/$(PKG_SOURCE) -endef - -$(eval $(call BuildPackage,ffluci))
\ No newline at end of file + $(call Package/ffluci/install/template,$(1),core) + $(call Package/ffluci/install/template,$(1),themes/fledermaus) +endef + + + +### Meta Packages ### + +define Package/ffluci-freifunk-meta + $(call Package/ffluci/template) + DEPENDS:=+ffluci +ffluci-sgi-haserl +ffluci-freifunk +ffluci-firewall +ffluci-splash + TITLE:=Freifunk Meta-Package +endef + +define Package/ffluci-meta/install +endef + + +define Package/ffluci-freifunk-halle + $(call Package/ffluci/template) + DEPENDS:=+ffluci-freifunk-meta +kmod-tun + TITLE:=Community Meta-Package Halle +endef + +define Package/ffluci-freifunk-halle/install +endef + + +define Package/ffluci-freifunk-leipzig + $(call Package/ffluci/template) + DEPENDS:=+ffluci-freifunk-meta +kmod-tun + TITLE:=Community Meta-Package Leipzig +endef + +define Package/ffluci-freifunk-leipzig/install + $(call Package/ffluci/install/template,$(1),applications/community-leipzig) +endef + + + +### Modules ### + +define Package/ffluci-module-admin-core + $(call Package/ffluci/template) + DEPENDS:=+ffluci + TITLE:=Core Administrative pages for FFLuCI +endef + +define Package/ffluci-module-admin-core/install + $(call Package/ffluci/install/template,$(1),modules/admin-core) +endef + + +define Package/ffluci-module-freifunk + $(call Package/ffluci/template) + DEPENDS:=+ffluci +ffluci-module-admin-core + TITLE:=Freifunk public and configuration pages +endef + +define Package/ffluci-module-freifunk/conffiles +/etc/config/freifunk +endef + +define Package/ffluci-module-freifunk/install + $(call Package/ffluci/install/template,$(1),modules/freifunk) +endef + + + +### Applications ### + +define Package/ffluci-firewall + $(call Package/ffluci/template) + DEPENDS:=+ffluci +ffluci-module-admin-core + TITLE:=Firewall and Portforwarding module +endef + +define Package/ffluci-firewall/conffiles +/etc/config/luci_fw +endef + +define Package/ffluci-firewall/install + $(call Package/ffluci/install/template,$(1),applications/luci-fw) +endef + + +define Package/ffluci-splash + $(call Package/ffluci/template) + DEPENDS:=+ffluci +ffluci-freifunk +ffluci-sgi-haserl +iptables-mod-nat + TITLE:=Freifunk DHCP-Splash +endef + +define Package/ffluci-splash/conffiles +/etc/config/luci_splash +endef + +define Package/ffluci-splash/install + $(call Package/ffluci/install/template,$(1),applications/luci-splash) +endef + + + +### Server Gateway Interfaces ### + +define Package/ffluci-sgi-haserl + $(call Package/ffluci/template) + DEPENDS:=+ffluci +haserl-lua + TITLE:=SGI for Haserl on top of Busybox httpd +endef + +define Package/ffluci-sgi-haserl/install + $(call Package/ffluci/install/template,$(1),applications/sgi-haserl) +endef + + +define Package/ffluci-sgi-webuci + $(call Package/ffluci/template) + DEPENDS:=+ffluci + TITLE:=SGI for Webuci +endef + +define Package/ffluci-sgi-webuci/install + $(call Package/ffluci/install/template,$(1),applications/sgi-webuci) +endef + + + + +$(eval $(call BuildPackage,ffluci)) + +$(eval $(call BuildPackage,ffluci-freifunk-meta)) +$(eval $(call BuildPackage,ffluci-freifunk-halle)) +$(eval $(call BuildPackage,ffluci-freifunk-leipzig)) + +$(eval $(call BuildPackage,ffluci-module-admin-core)) +$(eval $(call BuildPackage,ffluci-module-freifunk)) + +$(eval $(call BuildPackage,ffluci-firewall)) +$(eval $(call BuildPackage,ffluci-splash)) + +$(eval $(call BuildPackage,ffluci-sgi-haserl)) +$(eval $(call BuildPackage,ffluci-sgi-webuci))
\ No newline at end of file diff --git a/contrib/package/ffluci/ipkg/conffiles b/contrib/package/ffluci/ipkg/conffiles deleted file mode 100644 index 098dbf904..000000000 --- a/contrib/package/ffluci/ipkg/conffiles +++ /dev/null @@ -1,2 +0,0 @@ -/etc/config/luci -/etc/config/luci_fw
\ No newline at end of file diff --git a/contrib/package/ffluci/ipkg/ffluci-community-leipzig.postinst b/contrib/package/ffluci/ipkg/ffluci-community-leipzig.postinst new file mode 100755 index 000000000..26eace97d --- /dev/null +++ b/contrib/package/ffluci/ipkg/ffluci-community-leipzig.postinst @@ -0,0 +1,4 @@ +#!/bin/sh +[ -n "${IPKG_INSTROOT}" ] || { + ( . /etc/uci-defaults/ffluci-community-leipzig ) && rm -f /etc/uci-defaults/ffluci-community-leipzig +} diff --git a/contrib/package/ffluci/ipkg/ffluci.postinst b/contrib/package/ffluci/ipkg/ffluci-sgi-haserl.postinst index b6703dc06..b6703dc06 100755 --- a/contrib/package/ffluci/ipkg/ffluci.postinst +++ b/contrib/package/ffluci/ipkg/ffluci-sgi-haserl.postinst diff --git a/contrib/package/luci-addons/Makefile b/contrib/package/luci-addons/Makefile new file mode 100644 index 000000000..04562257c --- /dev/null +++ b/contrib/package/luci-addons/Makefile @@ -0,0 +1,37 @@ +include $(TOPDIR)/rules.mk + +PKG_NAME:=luci-addons +PKG_VERSION:=0.2 +PKG_RELEASE:=1 + +PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME)-$(PKG_VERSION) +PKG_INSTALL_DIR:=$(PKG_BUILD_DIR)/ipkg-install + +include $(INCLUDE_DIR)/package.mk + + +define Build/Compile +endef + + +define Package/luci-addons + SECTION:=utils + CATEGORY:=Utilities + TITLE:=FFLuCI System Addons for Kamikaze + URL:=http://luci.freifunk-halle.net +endef + +define Package/luci-addons/install + $(INSTALL_DIR) $(1)/usr/bin + $(INSTALL_DIR) $(1)/sbin + $(INSTALL_DIR) $(1)/etc/crontabs + $(INSTALL_DIR) $(1)/etc/hotplug.d/iface + + $(INSTALL_BIN) ./dist/usr/bin/run-parts $(1)/usr/bin + $(INSTALL_BIN) ./dist/sbin/ffluci-flash $(1)/sbin + + $(CP) ./dist/etc/crontabs/root $(1)/etc/crontabs/root + $(CP) ./dist/etc/hotplug.d/iface/20-aliases $(1)/etc/hotplug.d/iface/20-aliases +endef + +$(eval $(call BuildPackage,luci-addons))
\ No newline at end of file diff --git a/contrib/package/ffluci-system-addons/src/root.crontab b/contrib/package/luci-addons/dist/etc/crontabs/root index 6e2e417dc..6e2e417dc 100644 --- a/contrib/package/ffluci-system-addons/src/root.crontab +++ b/contrib/package/luci-addons/dist/etc/crontabs/root diff --git a/contrib/package/ffluci-system-addons/src/hotplug.d-20-aliases b/contrib/package/luci-addons/dist/etc/hotplug.d/iface/20-aliases index b9986e3aa..b9986e3aa 100644 --- a/contrib/package/ffluci-system-addons/src/hotplug.d-20-aliases +++ b/contrib/package/luci-addons/dist/etc/hotplug.d/iface/20-aliases diff --git a/contrib/package/luci-addons/dist/sbin/ffluci-flash b/contrib/package/luci-addons/dist/sbin/ffluci-flash new file mode 100644 index 000000000..3ff478f0f --- /dev/null +++ b/contrib/package/luci-addons/dist/sbin/ffluci-flash @@ -0,0 +1,88 @@ +#!/bin/sh +. /etc/functions.sh + +# initialize defaults +RAMFS_COPY_BIN="" # extra programs for temporary ramfs root +RAMFS_COPY_DATA="" # extra data files +export KEEP_PATTERN="" +export VERBOSE=1 + +# parse options +while [ -n "$1" ]; do + case "$1" in + -k) + shift + export KEEP_PATTERN="$1" + ;; + -*) + echo "Invalid option: $1" + exit 1 + ;; + *) break;; + esac + shift; +done + +export CONFFILES=/tmp/sysupgrade.conffiles +export CONF_TAR=/tmp/sysupgrade.tgz + +[ -f $CONFFILES ] && rm $CONFFILES +[ -f $CONF_TAR ] && rm $CONF_TAR + +export ARGV="$*" +export ARGC="$#" + +[ -z "$ARGV" ] && { + cat <<EOF +Usage: $0 [options] <image file or URL> + +Options: + -k <"file 1, file 2, ..."> Files to be kept +EOF + exit 1 +} + +add_pattern_conffiles() { + local file="$1" + find $KEEP_PATTERN >> "$file" 2>/dev/null + return 0 +} + +# hooks +sysupgrade_image_check="platform_check_image" +sysupgrade_init_conffiles="" + +[ -n "$KEEP_PATTERN" ] && append sysupgrade_init_conffiles "add_pattern_conffiles" + +include /lib/upgrade + +do_save_conffiles() { + [ -z "$(rootfs_type)" ] && { + echo "Cannot save config while running from ramdisk." + exit 3 + return 0 + } + run_hooks "$CONFFILES" $sysupgrade_init_conffiles + + v "Saving config files..." + [ "$VERBOSE" -gt 1 ] && TAR_V="v" || TAR_V="" + tar c${TAR_V}zf "$CONF_TAR" -T "$CONFFILES" 2>/dev/null +} + +type platform_check_image >/dev/null 2>/dev/null || { + echo "Firmware upgrade is not implemented for this platform." + exit 1 +} + +for check in $sysupgrade_image_check; do + ( eval "$check \"\$ARGV\"" ) || { + echo "Image check '$check' failed." + exit 2 + } +done + +[ -n "$sysupgrade_init_conffiles" ] && do_save_conffiles +run_hooks "" $sysupgrade_pre_upgrade + +v "Switching to ramdisk..." +run_ramfs '. /etc/functions.sh; include /lib/upgrade; do_upgrade'
\ No newline at end of file diff --git a/contrib/package/ffluci-system-addons/src/run-parts b/contrib/package/luci-addons/dist/usr/bin/run-parts index 0f0cbbdf5..0f0cbbdf5 100644 --- a/contrib/package/ffluci-system-addons/src/run-parts +++ b/contrib/package/luci-addons/dist/usr/bin/run-parts |