packages/lcd4linux: split into 2 -custom & -full, various fixes:

* move all original package customization to a -custom pakage, DEVEL only
 * enable all (not broken) drivers & plugins in a -full package (closes: #7958, #9096)
 * ship upstream config file, defaulting to the "Image" driver
 * use new service functions in initscript

git-svn-id: svn://svn.openwrt.org/openwrt/packages@28951 3c298f89-4303-0410-b956-a3cf2f4a3e73
This commit is contained in:
nico
2011-11-11 15:46:37 +00:00
parent 6ed746465c
commit acdc41b6f6
4 changed files with 345 additions and 1598 deletions

View File

@ -1,5 +1,5 @@
#
# Copyright (C) 2007-2010 OpenWrt.org
# Copyright (C) 2007-2011 OpenWrt.org
#
# This is free software, licensed under the GNU General Public License v2.
# See /LICENSE for more information.
@ -10,7 +10,7 @@ include $(TOPDIR)/rules.mk
PKG_NAME:=lcd4linux
PKG_REV:=1159
PKG_VERSION:=r$(PKG_REV)
PKG_RELEASE:=2
PKG_RELEASE:=3
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.bz2
PKG_SOURCE_URL:=https://ssl.bulix.org/svn/lcd4linux/trunk/
@ -18,69 +18,6 @@ PKG_SOURCE_SUBDIR:=lcd4linux-$(PKG_VERSION)
PKG_SOURCE_VERSION:=$(PKG_REV)
PKG_SOURCE_PROTO:=svn
PKG_FIXUP:=libtool
PKG_INSTALL:=1
PKG_BUILD_DEPENDS:= \
libdbus \
libgd \
libmysqlclient \
libncurses \
libnmeap \
libsqlite3 \
libvncserver \
ppp \
serdisplib \
st2205tool \
# libftdi \
# libmpdclient \
# libX11 \
# python \
include $(INCLUDE_DIR)/package.mk
include $(INCLUDE_DIR)/nls.mk
define Package/lcd4linux
SECTION:=utils
CATEGORY:=Utilities
DEPENDS:= \
+LCD4LINUX_NEEDS_libdbus:libdbus \
+LCD4LINUX_NEEDS_libgd:libgd \
$(if $(ICONV_FULL),+LCD4LINUX_NEEDS_libiconv:libiconv-full) \
+LCD4LINUX_NEEDS_libmysqlclient:libmysqlclient \
+LCD4LINUX_NEEDS_libncurses:libncurses \
+LCD4LINUX_NEEDS_libnmeap:libnmeap \
+LCD4LINUX_NEEDS_libsqlite3:libsqlite3 \
+LCD4LINUX_NEEDS_libusb:libusb \
+LCD4LINUX_NEEDS_libvncserver:libvncserver \
+LCD4LINUX_NEEDS_serdisplib:serdisplib \
+LCD4LINUX_NEEDS_st2205tool:st2205tool \
# +LCD4LINUX_NEEDS_libftdi:libftdi \
# +LCD4LINUX_NEEDS_libmpdclient:libmpdclient \
# +LCD4LINUX_NEEDS_libX11:libX11 \
# +LCD4LINUX_NEEDS_python:python
TITLE:=LCD display utility
URL:=http://lcd4linux.bulix.org/
MENU:=1
MAINTAINER:=Jonathan McCrohan <jmccrohan@gmail.com>
endef
define Package/lcd4linux/config
menu "Configuration"
depends on PACKAGE_lcd4linux
source "$(SOURCE)/Config.in"
endmenu
endef
define Package/lcd4linux/description
LCD4Linux is a small program that grabs information from the kernel and
some subsystems and displays it on an external liquid crystal display.
endef
define Package/lcd4linux/conffiles
/etc/lcd4linux.conf
endef
LCD4LINUX_DRIVERS:= \
BeckmannEgle \
BWCT \
@ -92,14 +29,14 @@ LCD4LINUX_DRIVERS:= \
G15 \
GLCD2USB \
IRLCD \
HD44780 \
HD44780-I2C \
$(if $(CONFIG_BROKEN),HD44780) \
$(if $(CONFIG_BROKEN),HD44780-I2C) \
LCD2USB \
LCDLinux \
$(if $(CONFIG_BROKEN),LCDLinux) \
LCDTerm \
LEDMatrix \
LPH7508 \
LUIse \
$(if $(CONFIG_BROKEN),LUIse) \
LW_ABP \
M50530 \
MatrixOrbital \
@ -115,19 +52,19 @@ LCD4LINUX_DRIVERS:= \
picoLCDGraphic \
PNG \
PPM \
RouterBoard \
$(if $(CONFIG_TARGET_rb532),RouterBoard) \
serdisplib \
ShuttleVFD \
SimpleLCD \
st2205 \
T6963 \
Trefon \
ULA200 \
USBHUB \
USBLCD \
VNC \
WincorNixdorf \
X11 \
# ULA200 \
# X11 \
LCD4LINUX_PLUGINS:= \
apm \
@ -160,73 +97,214 @@ LCD4LINUX_PLUGINS:= \
pop3 \
ppp \
proc_stat \
python \
qnaplog \
seti \
statfs \
uname \
uptime \
w1retap \
wireless \
$(if $(CONFIG_BROKEN),wireless) \
xmms \
# python \
LCD4LINUX_CONFIGURE_DRIVERS:= \
$(foreach c, $(LCD4LINUX_DRIVERS), \
$(if $(CONFIG_LCD4LINUX_DRV_$(c)),$(c),) \
)
PKG_FIXUP:=libtool
PKG_INSTALL:=1
LCD4LINUX_CONFIGURE_PLUGINS:= \
$(foreach c, $(LCD4LINUX_PLUGINS), \
$(if $(CONFIG_LCD4LINUX_PLUGIN_$(c)),$(c),) \
)
PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME)-$(BUILD_VARIANT)/$(PKG_NAME)-$(PKG_VERSION)
ifeq ($(CONFIG_LCD4LINUX_HAS_AT_LEAST_ONE_DRIVER),)
LCD4LINUX_CONFIGURE_DRIVERS:=Sample
endif
PKG_BUILD_DEPENDS:= \
libdbus \
libgd \
libmpdclient \
libmysqlclient \
libncurses \
libnmeap \
libsqlite3 \
libvncserver \
ppp \
serdisplib \
st2205tool \
# libftdi \
# libX11 \
# python \
PKG_CONFIG_DEPENDS:= \
$(patsubst %,CONFIG_LCD4LINUX_CUSTOM_DRIVER_%,$(LCD4LINUX_DRIVERS)) \
$(patsubst %,CONFIG_LCD4LINUX_CUSTOM_PLUGIN_%,$(LCD4LINUX_PLUGINS)) \
include $(INCLUDE_DIR)/package.mk
include $(INCLUDE_DIR)/nls.mk
define Package/lcd4linux/Default
SECTION:=utils
CATEGORY:=Utilities
MAINTAINER:=Jonathan McCrohan <jmccrohan@gmail.com>
TITLE:=LCD display utility
URL:=http://lcd4linux.bulix.org/
endef
define Package/lcd4linux/Default/description
LCD4Linux is a small program that grabs information from the kernel and
some subsystems and displays it on an external liquid crystal display.
endef
define Package/lcd4linux-custom
$(call Package/lcd4linux/Default)
DEPENDS:= \
+LCD4LINUX_CUSTOM_NEEDS_libdbus:libdbus \
+LCD4LINUX_CUSTOM_NEEDS_libgd:libgd \
$(if $(ICONV_FULL),+LCD4LINUX_CUSTOM_NEEDS_libiconv:libiconv-full) \
+LCD4LINUX_CUSTOM_NEEDS_libmpdclient:libmpdclient \
+LCD4LINUX_CUSTOM_NEEDS_libmysqlclient:libmysqlclient \
+LCD4LINUX_CUSTOM_NEEDS_libncurses:libncurses \
+LCD4LINUX_CUSTOM_NEEDS_libsqlite3:libsqlite3 \
+LCD4LINUX_CUSTOM_NEEDS_libusb:libusb \
+LCD4LINUX_CUSTOM_NEEDS_libvncserver:libvncserver \
+LCD4LINUX_CUSTOM_NEEDS_serdisplib:serdisplib \
+LCD4LINUX_CUSTOM_NEEDS_st2205tool:st2205tool \
# +LCD4LINUX_CUSTOM_NEEDS_libftdi:libftdi \
# +LCD4LINUX_CUSTOM_NEEDS_libX11:libX11 \
# +LCD4LINUX_CUSTOM_NEEDS_python:python
MENU:=1
PROVIDES:=lcd4linux
VARIANT=custom
endef
define Package/lcd4linux-custom/config
source "$(SOURCE)/Config.in"
endef
define Package/lcd4linux-custom/description
$(call Package/lcd4linux/Default/description)
.
This package contains a customized version of LCD4Linux.
endef
define Package/lcd4linux-full
$(call Package/lcd4linux/Default)
DEPENDS:= @DEVEL \
+libdbus \
+libgd \
$(if $(ICONV_FULL),+libiconv-full) \
+libmpdclient \
+libmysqlclient \
+libncurses \
+libsqlite3 \
+libusb \
+libvncserver \
+serdisplib \
+st2205tool \
# +libftdi \
# +libX11 \
# +python
PROVIDES:=lcd4linux
VARIANT=full
endef
define Package/lcd4linux-full/description
$(call Package/lcd4linux/Default/description)
.
This package contains a version of LCD4Linux built with all supported
drivers and plugins.
endef
ifeq ($(CONFIG_LCD4LINUX_HAS_AT_LEAST_ONE_PLUGIN),)
LCD4LINUX_CONFIGURE_PLUGINS:=sample
endif
CONFIGURE_ARGS+= \
--disable-rpath \
--with-drivers="$(strip $(LCD4LINUX_CONFIGURE_DRIVERS))" \
--with-plugins="$(strip $(LCD4LINUX_CONFIGURE_PLUGINS))" \
EXTRA_LDFLAGS+= -Wl,-rpath-link,$(STAGING_DIR)/usr/lib
ifneq ($(CONFIG_LCD4LINUX_NEEDS_libiconv),)
ifeq ($(BUILD_VARIANT),custom)
LCD4LINUX_CUSTOM_DRIVERS:= $(strip $(foreach c, $(LCD4LINUX_DRIVERS), \
$(if $(CONFIG_LCD4LINUX_CUSTOM_DRIVER_$(c)),$(c),) \
))
ifeq ($(LCD4LINUX_CUSTOM_DRIVER),)
LCD4LINUX_CUSTOM_DRIVERS:=Sample
endif
LCD4LINUX_CUSTOM_PLUGINS:= $(strip $(foreach c, $(LCD4LINUX_PLUGINS), \
$(if $(CONFIG_LCD4LINUX_CUSTOM_PLUGIN_$(c)),$(c)) \
))
ifeq ($(LCD4LINUX_CUSTOM_PLUGINS),)
LCD4LINUX_CUSTOM_PLUGINS:=sample
endif
CONFIGURE_ARGS+= \
--with-libiconv-prefix="$(ICONV_PREFIX)"
else
CONFIGURE_ARGS+= \
--without-libiconv-prefix
--with-drivers="$(LCD4LINUX_CUSTOM_DRIVERS)" \
--with-plugins="$(LCD4LINUX_CUSTOM_PLUGINS)" \
ifneq ($(CONFIG_LCD4LINUX_CUSTOM_NEEDS_libiconv),)
CONFIGURE_ARGS+= --with-libiconv-prefix="$(ICONV_PREFIX)"
else
CONFIGURE_ARGS+= --without-libiconv-prefix
endif
ifneq ($(CONFIG_LCD4LINUX_CUSTOM_NEEDS_libmysqlclient),)
EXTRA_LDFLAGS+= -L$(STAGING_DIR)/usr/lib/mysql
endif
# ifneq ($(CONFIG_LCD4LINUX_CUSTOM_NEEDS_python),)
# CONFIGURE_ARGS+= --with-python
# else
CONFIGURE_ARGS+= --without-python
# endif
# ifneq ($(CONFIG_LCD4LINUX_CUSTOM_NEEDS_libX11),)
# CONFIGURE_ARGS+= --with-x
# else
CONFIGURE_ARGS+= --without-x
# endif
endif
ifneq ($(CONFIG_LCD4LINUX_NEEDS_libmysqlclient),)
ifeq ($(BUILD_VARIANT),full)
LCD4LINUX_FULL_DRIVERS:= $(strip $(foreach c, $(LCD4LINUX_DRIVERS), \
$(c) \
))
LCD4LINUX_FULL_PLUGINS:= $(strip $(foreach c, $(LCD4LINUX_PLUGINS), \
$(c) \
))
CONFIGURE_ARGS+= \
--with-drivers="$(LCD4LINUX_FULL_DRIVERS)" \
--with-plugins="$(LCD4LINUX_FULL_PLUGINS)" \
--with-libiconv-prefix="$(ICONV_PREFIX)" \
--without-python \
--without-x \
EXTRA_LDFLAGS+= -L$(STAGING_DIR)/usr/lib/mysql
endif
ifneq ($(CONFIG_LCD4LINUX_NEEDS_python),)
CONFIGURE_ARGS+= --with-python
else
CONFIGURE_ARGS+= --without-python
endif
ifneq ($(CONFIG_LCD4LINUX_NEEDS_libX11),)
CONFIGURE_ARGS+= --with-x
else
CONFIGURE_ARGS+= --without-x
endif
define Package/lcd4linux/conffiles
/etc/lcd4linux.conf
endef
define Package/lcd4linux/install
$(INSTALL_DIR) $(1)/usr/bin
$(CP) $(PKG_INSTALL_DIR)/usr/bin/lcd4linux $(1)/usr/bin/
$(INSTALL_DIR) $(1)/etc
$(INSTALL_CONF) ./files/lcd4linux.conf $(1)/etc/
$(INSTALL_CONF) $(PKG_BUILD_DIR)/lcd4linux.conf.sample $(1)/etc/lcd4linux.conf
$(INSTALL_DIR) $(1)/etc/init.d
$(INSTALL_BIN) ./files/lcd4linux.init $(1)/etc/init.d/lcd4linux
$(SED) "s|^\(Display 'GLCD2USB'\)|#\1|g" \
-e "s|^\(Layout 'TestLayer'\)|#\1|g" \
-e "s|^#\(Display 'Image'\)|\1|g" \
-e "s|^#\(Layout 'Default'\)|\1|g" \
$(1)/etc/lcd4linux.conf
endef
$(eval $(call BuildPackage,lcd4linux))
Package/lcd4linux-custom/conffiles = $(Package/lcd4linux/conffiles)
Package/lcd4linux-custom/install = $(Package/lcd4linux/install)
Package/lcd4linux-full/conffiles = $(Package/lcd4linux/conffiles)
Package/lcd4linux-full/install = $(Package/lcd4linux/install)
$(eval $(call BuildPackage,lcd4linux-custom))
$(eval $(call BuildPackage,lcd4linux-full))