PKG_REV:=$(shell LC_ALL=C svn info ${PKG_SOURCE_URL} | sed -ne's/^Last Changed Rev: //p')
PKG_NAME:=luci
-PKG_VERSION:=0.5+svn$(PKG_REV)
+PKG_VERSION:=0.7+svn$(PKG_REV)
PKG_RELEASE:=1
PKG_SOURCE_SUBDIR:=$(PKG_NAME)-$(PKG_VERSION)
PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME)-$(PKG_VERSION)
PKG_INSTALL_DIR:=$(PKG_BUILD_DIR)/ipkg-install
-# LUA_TARGET:=compile LUAC=$(BUILD_DIR_HOST)/lua/luac
LUA_TARGET:=source
+PKG_SELECTED_MODULES:=
include $(INCLUDE_DIR)/package.mk
define Build/Configure
endef
-define Build/Compile
- $(MAKE) -C$(PKG_BUILD_DIR) build LUA_TARGET=$(LUA_TARGET)
-endef
-
+### Templates ###
-define Package/luci/template
+define Package/luci/libtemplate
SECTION:=admin
CATEGORY:=Administration
TITLE:=LuCI - Lua Configuration Interface
URL:=http://luci.freifunk-halle.net/
MAINTAINER:=Steven Barth <steven-at-midlink-dot-org>
+ SUBMENU:=LuCI - Libraries
+ DEPENDS:=+luci-core
+endef
+
+define Package/luci/fftemplate
+ $(call Package/luci/libtemplate)
+ SUBMENU:=LuCI - Freifunk Support
+ DEPENDS:=+luci-mod-freifunk
+endef
+
+define Package/luci/httpdtemplate
+ $(call Package/luci/libtemplate)
+ SUBMENU:=LuCI - Non-Forking HTTP-Daemon (EXPERIMENTAL)
+ DEPENDS:=+luci-httpd
+endef
+
+define Package/luci/i18ntemplate
+ $(call Package/luci/libtemplate)
+ SUBMENU:=LuCI - Translations
+ DEPENDS:=+luci-web
+endef
+
+define Package/luci/thtemplate
+ $(call Package/luci/libtemplate)
+ SUBMENU:=LuCI - Themes
+ DEPENDS:=+luci-web
+endef
+
+define Package/luci/webtemplate
+ $(call Package/luci/libtemplate)
+ SUBMENU:=LuCI - Webinterface Components
endef
+
define Package/luci/install/template
- $(CP) $(PKG_BUILD_DIR)/$(2)/dist/* $(1)/ -R
+ $(CP) -a $(PKG_BUILD_DIR)/$(2)/dist/* $(1)/ -R
+ $(CP) -a $(PKG_BUILD_DIR)/$(2)/ipkg/* $(1)/CONTROL/ 2>/dev/null || true
+endef
+
+
+
+### Core package ###
+
+define Package/luci-core
+ $(call Package/luci/libtemplate)
+ DEPENDS:=+lua +luaposix
+ TITLE:=LuCI core libraries
endef
+define Package/luci-core/install
+ $(call Package/luci/install/template,$(1),libs/core)
+endef
+
+define Package/luci-core/config
+ choice
+ prompt "Build Target"
+ default PACKAGE_luci-core_compile
+
+ config PACKAGE_luci-core_compile
+ bool "Production"
-define Package/luci
- $(call Package/luci/template)
- MENU:=1
- DEPENDS:=+lua +luaposix +luci-addons
+ config PACKAGE_luci-core_source
+ bool "Debug"
+
+ endchoice
endef
-define Package/luci/conffiles
+ifneq ($(CONFIG_PACKAGE_luci-core_compile),)
+ LUA_TARGET:=compile
+endif
+
+
+### Libraries ###
+define Package/luci-cbi
+ $(call Package/luci/libtemplate)
+ DEPENDS+=+luci-web
+ TITLE:=Configuration Binding Interface
+endef
+
+define Package/luci-cbi/install
+ $(call Package/luci/install/template,$(1),libs/cbi)
+endef
+
+
+define Package/luci-uci
+ $(call Package/luci/libtemplate)
+ DEPENDS+=+libuci-lua
+ TITLE:=High-Level UCI API
+endef
+
+define Package/luci-uci/install
+ $(call Package/luci/install/template,$(1),libs/uci)
+endef
+
+
+define Package/luci-fastindex
+ $(call Package/luci/libtemplate)
+ TITLE:=Fastindex indexing module
+endef
+
+define Package/luci-fastindex/install
+ $(call Package/luci/install/template,$(1),libs/fastindex)
+endef
+
+
+define Package/luci-http
+ $(call Package/luci/libtemplate)
+ TITLE:=HTTP Protocol implementation
+endef
+
+define Package/luci-http/install
+ $(call Package/luci/install/template,$(1),libs/http)
+endef
+
+
+define Package/luci-web
+ $(call Package/luci/libtemplate)
+ DEPENDS+=+luci-http +luci-addons +luci-uci
+ TITLE:=MVC Webframework
+endef
+
+define Package/luci-web/conffiles
/etc/config/luci
endef
-define Package/luci/install
- $(call Package/luci/install/template,$(1),core)
- $(call Package/luci/install/template,$(1),themes/fledermaus)
+define Package/luci-web/install
+ $(call Package/luci/install/template,$(1),libs/web)
endef
+
+### HTTPD ###
+
+define Package/luci-httpd
+ $(call Package/luci/httpdtemplate)
+ DEPENDS:=+luci-http +luasocket
+ TITLE:=Server Core
+endef
+
+define Package/luci-httpd/install
+ $(call Package/luci/install/template,$(1),libs/httpd)
+endef
+
+
+
### Community Packages ###
define Package/luci-ff-halle
- $(call Package/luci/template)
- DEPENDS:=luci \
- +luci-sgi-haserl +luci-mod-freifunk +luci-app-splash \
+ $(call Package/luci/fftemplate)
+ DEPENDS+= \
+ +luci-sgi-cgi +luci-app-splash +luci-app-olsr \
+luci-app-ffwizard-leipzig \
+ +luci-theme-fledermaus \
+ +luci-i18n-german \
+olsrd +olsrd-mod-dyn-gw +olsrd-mod-txtinfo +olsrd-mod-nameservice \
+kmod-tun +ip
TITLE:=Freifunk Halle Community Meta-Package
endef
define Package/luci-ff-halle/install
+ $(call Package/luci/install/template,$(1),applications/community-halle)
endef
define Package/luci-ff-leipzig
- $(call Package/luci/template)
- DEPENDS:=luci \
- +luci-sgi-haserl +luci-mod-freifunk +luci-app-splash \
+ $(call Package/luci/fftemplate)
+ DEPENDS+= \
+ +luci-sgi-cgi +luci-app-splash +luci-app-olsr \
+luci-app-ffwizard-leipzig \
+ +luci-theme-fledermaus \
+ +luci-i18n-german \
+olsrd +olsrd-mod-dyn-gw +olsrd-mod-txtinfo +olsrd-mod-nameservice \
+kmod-tun +ip
TITLE:=Freifunk Leipzig Community Meta-Package
define Package/luci-ff-leipzig/install
$(call Package/luci/install/template,$(1),applications/community-leipzig)
- $(CP) -a ./ipkg/luci-ff-leipzig.postinst $(1)/CONTROL/postinst
endef
define Package/luci-ff-hannover
- $(call Package/luci/template)
- DEPENDS:=luci \
- +luci-sgi-haserl +luci-mod-freifunk +luci-app-splash \
+ $(call Package/luci/fftemplate)
+ DEPENDS+= \
+ +luci-sgi-cgi +luci-app-splash +luci-app-olsr \
+ +luci-theme-fledermaus \
+ +luci-i18n-german \
+olsrd +olsrd-mod-dyn-gw +olsrd-mod-txtinfo +olsrd-mod-nameservice
TITLE:=Freifunk Hannover Community Meta-Package
URL:=http://www.freifunk-hannover.de/
define Package/luci-ff-hannover/install
$(call Package/luci/install/template,$(1),applications/community-hannover)
- $(CP) -a ./ipkg/luci-ff-hannover.postinst $(1)/CONTROL/postinst
endef
### Modules ###
define Package/luci-mod-admin-core
- $(call Package/luci/template)
- DEPENDS:=luci
- TITLE:=Core administrative pages
+ $(call Package/luci/webtemplate)
+ DEPENDS+=+luci-web +luci-cbi +luci-theme-openwrt +luci-i18n-english
+ TITLE:=Administration module
endef
define Package/luci-mod-admin-core/install
define Package/luci-mod-freifunk
- $(call Package/luci/template)
- DEPENDS:=luci +luci-mod-admin-core +luci-app-firewall
- TITLE:=Freifunk public and administrative pages
+ $(call Package/luci/fftemplate)
+ DEPENDS:=+luci-mod-admin-core
+ TITLE:=LuCI Freifunk module
endef
define Package/luci-mod-freifunk/conffiles
### Applications ###
define Package/luci-app-ffwizard-leipzig
- $(call Package/luci/template)
- DEPENDS:=luci +luci-mod-freifunk
+ $(call Package/luci/fftemplate)
+ DEPENDS+=+luci-app-firewall
TITLE:=Freifunk Leipzig configuration wizard
endef
define Package/luci-app-firewall
- $(call Package/luci/template)
- DEPENDS:=luci +luci-mod-admin-core
+ $(call Package/luci/webtemplate)
+ DEPENDS+=+luci-mod-admin-core
TITLE:=Firewall and Portforwarding application
endef
define Package/luci-app-firewall/install
$(call Package/luci/install/template,$(1),applications/luci-fw)
- $(INSTALL_BIN) $(PKG_BUILD_DIR)/applications/luci-fw/dist/etc/init.d/luci_fw $(1)/etc/init.d
+endef
+
+
+define Package/luci-app-olsr
+ $(call Package/luci/webtemplate)
+ DEPENDS+=+luci-mod-admin-core +olsrd-mod-txtinfo
+ TITLE:=OLSR configuration and status module
+endef
+
+define Package/luci-app-olsr/install
+ $(call Package/luci/install/template,$(1),applications/luci-olsr)
+endef
+
+
+define Package/luci-app-qos
+ $(call Package/luci/webtemplate)
+ DEPENDS+=+luci-mod-admin-core +qos-scripts
+ TITLE:=Quality of Service configuration module
+endef
+
+define Package/luci-app-qos/install
+ $(call Package/luci/install/template,$(1),applications/luci-qos)
endef
define Package/luci-app-splash
- $(call Package/luci/template)
- DEPENDS:=luci +luci-mod-freifunk +luci-sgi-haserl +iptables-mod-nat +iptables-mod-ipopt
+ $(call Package/luci/fftemplate)
+ DEPENDS+=+iptables-mod-nat +iptables-mod-ipopt
TITLE:=Freifunk DHCP-Splash application
endef
define Package/luci-app-splash/install
$(call Package/luci/install/template,$(1),applications/luci-splash)
- $(INSTALL_BIN) $(PKG_BUILD_DIR)/applications/luci-splash/dist/usr/sbin/luci-splash $(1)/usr/sbin
- $(INSTALL_BIN) $(PKG_BUILD_DIR)/applications/luci-splash/dist/etc/init.d/luci_splash $(1)/etc/init.d
- $(INSTALL_BIN) $(PKG_BUILD_DIR)/applications/luci-splash/dist/etc/cron.minutely/luci_splash $(1)/etc/cron.minutely
- $(INSTALL_BIN) $(PKG_BUILD_DIR)/applications/luci-splash/dist/usr/lib/luci-splash/htdocs/cgi-bin/index.cgi $(1)/usr/lib/luci-splash/htdocs/cgi-bin
- $(INSTALL_BIN) $(PKG_BUILD_DIR)/applications/luci-splash/dist/www/cgi-bin/luci-splash $(1)/www/cgi-bin/luci-splash
endef
+define Package/luci-app-statistics
+ $(call Package/luci/webtemplate)
+ DEPENDS+=+luci-mod-admin-core +collectd +collectd-mod-rrdtool1 +rrdtool1
+ TITLE:=LuCI Statistics Application
+endef
+
+define Package/luci-app-statistics/conffiles
+/etc/config/luci_statistics
+endef
+
+define Package/luci-app-statistics/install
+ $(call Package/luci/install/template,$(1),applications/luci-statistics)
+endef
+
### Server Gateway Interfaces ###
-define Package/luci-sgi-haserl
- $(call Package/luci/template)
- DEPENDS:=luci +haserl-lua
- TITLE:=SGI for Haserl
+define Package/luci-sgi-cgi
+ $(call Package/luci/libtemplate)
+ DEPENDS+=+luci-web
+ TITLE:=SGI for CGI
+endef
+
+define Package/luci-sgi-cgi/install
+ $(call Package/luci/install/template,$(1),libs/sgi-cgi)
endef
-define Package/luci-sgi-haserl/install
- $(call Package/luci/install/template,$(1),applications/sgi-haserl)
- $(CP) -a ./ipkg/luci-sgi-haserl.postinst $(1)/CONTROL/postinst
+define Package/luci-sgi-luci
+ $(call Package/luci/libtemplate)
+ DEPENDS+=+luci-web +luci-httpd
+ TITLE:=SGI for LuCI HTTPD
endef
+define Package/luci-sgi-luci/install
+ $(call Package/luci/install/template,$(1),libs/sgi-luci)
+endef
define Package/luci-sgi-webuci
- $(call Package/luci/template)
- DEPENDS:=luci
+ $(call Package/luci/libtemplate)
+ DEPENDS+=+luci-web
TITLE:=SGI for Webuci
endef
define Package/luci-sgi-webuci/install
- $(call Package/luci/install/template,$(1),applications/sgi-webuci)
+ $(call Package/luci/install/template,$(1),libs/sgi-webuci)
+endef
+
+### Themes ###
+define Package/luci-theme-fledermaus
+ $(call Package/luci/fftemplate)
+ DEPENDS:=+luci-web
+ TITLE:=Fledermaus Theme
endef
+define Package/luci-theme-fledermaus/install
+ $(call Package/luci/install/template,$(1),themes/fledermaus)
+endef
+define Package/luci-theme-openwrt
+ $(call Package/luci/thtemplate)
+ TITLE:=OpenWRT.org (default)
+endef
+define Package/luci-theme-openwrt/install
+ $(call Package/luci/install/template,$(1),themes/openwrt.org)
+endef
-$(eval $(call BuildPackage,luci))
+### Translations ###
+define Package/luci-i18n-german
+ $(call Package/luci/i18ntemplate)
+ TITLE:=German
+endef
+
+define Package/luci-i18n-german/install
+ $(call Package/luci/install/template,$(1),i18n/german)
+endef
+
+
+define Package/luci-i18n-english
+ $(call Package/luci/i18ntemplate)
+ TITLE:=English (incomplete)
+endef
+
+define Package/luci-i18n-english/install
+ $(call Package/luci/install/template,$(1),i18n/english)
+endef
+
+
+
+### Compile ###
+ifneq ($(CONFIG_PACKAGE_luci-core),)
+ PKG_SELECTED_MODULES+=libs/core
+endif
+ifneq ($(CONFIG_PACKAGE_luci-cbi),)
+ PKG_SELECTED_MODULES+=libs/cbi
+endif
+ifneq ($(CONFIG_PACKAGE_luci-fastindex),)
+ PKG_SELECTED_MODULES+=libs/fastindex
+endif
+ifneq ($(CONFIG_PACKAGE_luci-http),)
+ PKG_SELECTED_MODULES+=libs/http
+endif
+ifneq ($(CONFIG_PACKAGE_luci-uci),)
+ PKG_SELECTED_MODULES+=libs/uci
+endif
+ifneq ($(CONFIG_PACKAGE_luci-web),)
+ PKG_SELECTED_MODULES+=libs/web
+endif
+
+ifneq ($(CONFIG_PACKAGE_luci-httpd),)
+ PKG_SELECTED_MODULES+=libs/httpd
+endif
+
+ifneq ($(CONFIG_PACKAGE_luci-ff-halle),)
+ PKG_SELECTED_MODULES+=applications/community-halle
+endif
+ifneq ($(CONFIG_PACKAGE_luci-ff-leipzig),)
+ PKG_SELECTED_MODULES+=applications/community-leipzig
+endif
+ifneq ($(CONFIG_PACKAGE_luci-ff-hannover),)
+ PKG_SELECTED_MODULES+=applications/community-hannover
+endif
+
+ifneq ($(CONFIG_PACKAGE_luci-mod-admin-core),)
+ PKG_SELECTED_MODULES+=modules/admin-core
+endif
+ifneq ($(CONFIG_PACKAGE_luci-mod-freifunk),)
+ PKG_SELECTED_MODULES+=modules/freifunk
+endif
+
+ifneq ($(CONFIG_PACKAGE_luci-app-ffwizard-leipzig),)
+ PKG_SELECTED_MODULES+=applications/luci-ffwizard-leipzig
+endif
+ifneq ($(CONFIG_PACKAGE_luci-app-firewall),)
+ PKG_SELECTED_MODULES+=applications/luci-fw
+endif
+ifneq ($(CONFIG_PACKAGE_luci-app-olsr),)
+ PKG_SELECTED_MODULES+=applications/luci-olsr
+endif
+ifneq ($(CONFIG_PACKAGE_luci-app-qos),)
+ PKG_SELECTED_MODULES+=applications/luci-qos
+endif
+ifneq ($(CONFIG_PACKAGE_luci-app-splash),)
+ PKG_SELECTED_MODULES+=applications/luci-splash
+endif
+ifneq ($(CONFIG_PACKAGE_luci-app-statistics),)
+ PKG_SELECTED_MODULES+=applications/luci-statistics
+endif
+
+ifneq ($(CONFIG_PACKAGE_luci-sgi-cgi),)
+ PKG_SELECTED_MODULES+=libs/sgi-cgi
+endif
+ifneq ($(CONFIG_PACKAGE_luci-sgi-luci),)
+ PKG_SELECTED_MODULES+=libs/sgi-luci
+endif
+ifneq ($(CONFIG_PACKAGE_luci-sgi-webuci),)
+ PKG_SELECTED_MODULES+=libs/sgi-webuci
+endif
+
+ifneq ($(CONFIG_PACKAGE_luci-theme-fledermaus),)
+ PKG_SELECTED_MODULES+=themes/fledermaus
+endif
+ifneq ($(CONFIG_PACKAGE_luci-theme-openwrt),)
+ PKG_SELECTED_MODULES+=themes/openwrt.org
+endif
+
+ifneq ($(CONFIG_PACKAGE_luci-i18n-german),)
+ PKG_SELECTED_MODULES+=i18n/german
+endif
+ifneq ($(CONFIG_PACKAGE_luci-i18n-english),)
+ PKG_SELECTED_MODULES+=i18n/english
+endif
+
+
+MAKE_FLAGS += MODULES="$(PKG_SELECTED_MODULES)" LUA_TARGET="$(LUA_TARGET)" CFLAGS="$(TARGET_CFLAGS) -I$(STAGING_DIR)/usr/include" LDFLAGS="$(TARGET_LDFLAGS)"
+
+
+$(eval $(call BuildPackage,luci-core))
+$(eval $(call BuildPackage,luci-cbi))
+$(eval $(call BuildPackage,luci-fastindex))
+$(eval $(call BuildPackage,luci-http))
+$(eval $(call BuildPackage,luci-uci))
+$(eval $(call BuildPackage,luci-web))
+
+$(eval $(call BuildPackage,luci-httpd))
$(eval $(call BuildPackage,luci-ff-halle))
$(eval $(call BuildPackage,luci-ff-leipzig))
$(eval $(call BuildPackage,luci-app-ffwizard-leipzig))
$(eval $(call BuildPackage,luci-app-firewall))
+$(eval $(call BuildPackage,luci-app-olsr))
+$(eval $(call BuildPackage,luci-app-qos))
$(eval $(call BuildPackage,luci-app-splash))
+$(eval $(call BuildPackage,luci-app-statistics))
-$(eval $(call BuildPackage,luci-sgi-haserl))
+$(eval $(call BuildPackage,luci-sgi-cgi))
+$(eval $(call BuildPackage,luci-sgi-luci))
$(eval $(call BuildPackage,luci-sgi-webuci))
+
+$(eval $(call BuildPackage,luci-theme-fledermaus))
+$(eval $(call BuildPackage,luci-theme-openwrt))
+
+$(eval $(call BuildPackage,luci-i18n-german))
+$(eval $(call BuildPackage,luci-i18n-english))