174 lines
5 KiB
Bash
174 lines
5 KiB
Bash
# Copyright 1999-2017 Gentoo Foundation
|
|
# Distributed under the terms of the GNU General Public License v2
|
|
|
|
EAPI=5
|
|
PYTHON_COMPAT=( python2_7 )
|
|
WANT_AUTOMAKE="1.9"
|
|
inherit eutils multilib autotools python-single-r1
|
|
|
|
MY_P=${P/_rc/-RC}
|
|
|
|
DESCRIPTION="Shows system and ISDN information on an external display or in a X11 window"
|
|
HOMEPAGE="https://lcd4linux.bulix.org/"
|
|
SRC_URI="mirror://gentoo/${MY_P}.tar.gz"
|
|
|
|
LICENSE="GPL-2"
|
|
SLOT="0"
|
|
KEYWORDS="amd64 ppc x86"
|
|
IUSE="mysql python iconv mpd"
|
|
REQUIRED_USE="${PYTHON_REQUIRED_USE}"
|
|
|
|
# The following array holds the USE_EXPANDed keywords
|
|
IUSE_LCD_DEVICES=(beckmannegle bwct cfontz ncurses cwlinux
|
|
ea232 g15 hd44780 hd44780i2c lcd2usb
|
|
lcdlinux lcdterm ledmatrix lph7508 m50530
|
|
mtxorb milfordbpk noritake null picolcd
|
|
png ppm routerboard serdisplib simplelcd
|
|
t6963 trefon usbhub usblcd wincor
|
|
X luise)
|
|
|
|
# Iterate through the array and add the lcd_devices_* that we support
|
|
NUM_DEVICES=${#IUSE_LCD_DEVICES[@]}
|
|
index=0
|
|
while [ "${index}" -lt "${NUM_DEVICES}" ] ; do
|
|
IUSE="${IUSE} lcd_devices_${IUSE_LCD_DEVICES[$index]}"
|
|
let "index = ${index} + 1"
|
|
done
|
|
|
|
DEPEND="
|
|
mysql? ( virtual/mysql )
|
|
iconv? ( virtual/libiconv )
|
|
mpd? ( media-libs/libmpd )
|
|
|
|
lcd_devices_bwct? ( =virtual/libusb-0* )
|
|
lcd_devices_g15? ( =virtual/libusb-0* )
|
|
lcd_devices_lcd2usb? ( =virtual/libusb-0* )
|
|
lcd_devices_picolcd? ( =virtual/libusb-0* )
|
|
lcd_devices_trefon? ( =virtual/libusb-0* )
|
|
lcd_devices_usbhub? ( =virtual/libusb-0* )
|
|
lcd_devices_usblcd? ( =virtual/libusb-0* )
|
|
lcd_devices_luise? ( dev-libs/luise-bin )
|
|
lcd_devices_ncurses? ( sys-libs/ncurses:0= )
|
|
lcd_devices_noritake? ( media-libs/gd )
|
|
lcd_devices_t6963? ( media-libs/gd )
|
|
lcd_devices_png? ( media-libs/libpng:0= media-libs/gd )
|
|
lcd_devices_X? ( x11-libs/libX11 media-libs/gd )
|
|
lcd_devices_serdisplib? ( dev-libs/serdisplib media-libs/gd )
|
|
"
|
|
RDEPEND="${DEPEND}
|
|
python? ( ${PYTHON_DEPS} )
|
|
"
|
|
|
|
S="${WORKDIR}/${MY_P}"
|
|
|
|
pkg_setup() {
|
|
elog "If you wish to compile only specific plugins, please use"
|
|
elog "the LCD4LINUX_PLUGINS environment variable. Plugins must be comma separated and can be either of:"
|
|
elog "apm cpuinfo diskstats dvb exec file i2c_sensors imon isdn kvv loadavg meminfo netdev pop3 ppp proc_stat seti statfs uname uptime wireless"
|
|
|
|
use python && python-single-r1_pkg_setup
|
|
}
|
|
|
|
src_prepare() {
|
|
epatch "${FILESDIR}/${P}-warnings.patch"
|
|
epatch "${FILESDIR}/${P}-mpd.patch"
|
|
epatch "${FILESDIR}/${P}-nordtsc.patch"
|
|
epatch "${FILESDIR}/${P}-autoconf-2.65.patch"
|
|
epatch "${FILESDIR}/${P}-missing-header.patch"
|
|
epatch "${FILESDIR}/${P}-usbdebug.patch"
|
|
eautoreconf
|
|
}
|
|
|
|
src_configure() {
|
|
# This array contains the driver names required by configure --with-drivers=
|
|
# The positions must be the same as the corresponding use_expand flags
|
|
local DEVICE_DRIVERS=(BeckmannEgle BWCT CrystalFontz Curses Cwlinux
|
|
EA232graphic G15 HD44780 HD44780-I2C LCD2USB
|
|
LCDLinux LCDTerm LEDMatrix LPH7508 M50530
|
|
MatrixOrbital MilfordInstruments Noritake NULL picoLCD
|
|
PNG PPM RouterBoard serdisplib SimpleLCD
|
|
T6963 Trefon USBHUB USBLCD WincorNixdorf
|
|
X11 LUIse)
|
|
|
|
local myconf myp
|
|
|
|
# plugins
|
|
if [ -n "$LCD4LINUX_PLUGINS" ]; then
|
|
myp="$LCD4LINUX_PLUGINS"
|
|
else
|
|
myp="all,!xmms"
|
|
fi
|
|
use iconv || myp="${myp},!iconv"
|
|
use mpd || myp="${myp},!mpd"
|
|
use mysql || myp="${myp},!mysql"
|
|
use python || myp="${myp},!python"
|
|
elog "Active plugins: ${myp}"
|
|
|
|
# Generate comma separated list of drivers
|
|
local COMMA_DRIVERS
|
|
local FIRST_DRIVER
|
|
local index=0
|
|
local driver
|
|
|
|
while [ "${index}" -lt "${NUM_DEVICES}" ] ; do
|
|
if use "lcd_devices_${IUSE_LCD_DEVICES[$index]}" ; then
|
|
driver=${DEVICE_DRIVERS[$index]}
|
|
if [ -z ${COMMA_DRIVERS} ] ; then
|
|
# First in the list
|
|
COMMA_DRIVERS="${driver}"
|
|
FIRST_DRIVER="${driver}"
|
|
else
|
|
# Second, third, ... include a comma at the front
|
|
COMMA_DRIVERS="${COMMA_DRIVERS},${driver}"
|
|
fi
|
|
fi
|
|
let "index = ${index} + 1"
|
|
done
|
|
|
|
# activate at least one driver
|
|
if [ -z ${COMMA_DRIVERS} ] ; then
|
|
COMMA_DRIVERS="NULL"
|
|
fi
|
|
|
|
# workaround the build failing because of b0rked settings
|
|
if use lcd_devices_hd44780 && use lcd_devices_hd44780i2c ; then
|
|
echo
|
|
ewarn "Disabling hd44780 LCD_DEVICE as hd44780i2c is set!"
|
|
echo
|
|
COMMA_DRIVERS="${COMMA_DRIVERS},!HD44780"
|
|
fi
|
|
|
|
# avoid package brokenness
|
|
if use lcd_devices_X ; then
|
|
myconf="--x-libraries=/usr/$(get_libdir) --x-include=/usr/include"
|
|
else
|
|
myconf="--without-x"
|
|
fi
|
|
|
|
econf \
|
|
--sysconfdir=/etc/lcd4linux \
|
|
--with-drivers="${COMMA_DRIVERS}" \
|
|
--with-plugins="${myp}" \
|
|
$(use_with python) \
|
|
${myconf}
|
|
|
|
sed -i.orig -e 's/-L -lX11/ -lX11 /g' Makefile || die "sed fixup failed"
|
|
}
|
|
|
|
src_install() {
|
|
default
|
|
|
|
newinitd "${FILESDIR}/${P}.initd" ${PN}
|
|
|
|
insinto /etc
|
|
insopts -o root -g root -m 0600
|
|
newins lcd4linux.conf.sample lcd4linux.conf
|
|
}
|
|
|
|
pkg_postinst() {
|
|
if use lcd_devices_lcdlinux; then
|
|
ewarn "To actually use the lcd-linux devices, you will need to install the lcd-linux kernel module."
|
|
ewarn "You can either do that yourself, see http://lcd-linux.sf.net or "
|
|
ewarn "checkout https://overlays.gentoo.org/dev/jokey/browser/trunk and emerge app-misc/lcd-linux"
|
|
fi
|
|
}
|