# Copyright 1999-2024 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 EAPI=8 EGIT_COMMIT="0e2ce9b9c46c47363436f9ee730f7c71bf455f0f" inherit autotools systemd DESCRIPTION="Displays real-time system information from your Linux/*BSD box on a LCD" HOMEPAGE="http://www.lcdproc.org/" SRC_URI="https://github.com/${PN}/${PN}/archive/${EGIT_COMMIT}.tar.gz -> ${P}.tar.gz" S="${WORKDIR}/${PN}-${EGIT_COMMIT}" KEYWORDS="amd64 ppc ppc64 x86" LICENSE="GPL-2" SLOT="0" IUSE="debug doc ethlcd extra-charmaps menu nfs png samba test-menu truetype" REQUIRED_USE=" ethlcd? ( lcd_devices_hd44780 ) png? ( lcd_devices_glcd ) truetype? ( lcd_devices_glcd ) " # Define the list of valid lcd devices. # Some drivers were removed from this list: # - svga: It needs media-libs/svgalib, which is masked and obsolete. IUSE_LCD_DEVICES=( bayrad CFontz CFontzPacket curses CwLnx ea65 EyeboxOne futaba g15 glcd glcdlib glk hd44780 i2500vfd icp_a106 imon imonlcd IOWarrior irman irtrans joy jw002 lb216 lcdm001 lcterm linux_input lirc lis MD8800 mdm166a ms6931 mtc_s16209x MtxOrb mx5000 NoritakeVFD Olimex_MOD_LCD1x9 picolcd pyramid rawserial sdeclcd sed1330 sed1520 serialPOS serialVFD shuttleVFD sli stv5730 SureElec t6963 text tyan ula200 vlsys_m428 xosd yard2LCD ) # Add supported drivers from 'IUSE_LCD_DEVICES' to 'IUSE' and 'REQUIRED_USE' REQUIRED_USE+=" || ( " for LCD_DEVICE in "${IUSE_LCD_DEVICES[@]}"; do LCD_DEVICE="${LCD_DEVICE,,}" IUSE+=" lcd_devices_${LCD_DEVICE} " REQUIRED_USE+=" lcd_devices_${LCD_DEVICE} " done IUSE="${IUSE/lcd_devices_glcd/+lcd_devices_glcd}" REQUIRED_USE+=" ) " unset LCD_DEVICE # Define dependencies for all drivers in 'IUSE_LCD_DEVICES' DEPEND_LCD_DEVICES=" lcd_devices_cfontz? ( dev-libs/libhid:= ) lcd_devices_cfontzpacket? ( dev-libs/libhid:= ) lcd_devices_cwlnx? ( dev-libs/libhid:= ) lcd_devices_futaba? ( virtual/libusb:1= ) lcd_devices_g15? ( app-misc/g15daemon dev-libs/libg15render:= virtual/libusb:0= ) lcd_devices_glcd? ( app-misc/glcdprocdriver:= dev-embedded/libftdi:1= dev-libs/libhid:= dev-libs/serdisplib:= virtual/libusb:0= x11-libs/libX11:= ) lcd_devices_hd44780? ( dev-embedded/libftdi:1= dev-libs/libugpio:= virtual/libusb:0= ) lcd_devices_i2500vfd? ( dev-embedded/libftdi:1= ) lcd_devices_irman? ( media-libs/libirman:= ) lcd_devices_iowarrior? ( virtual/libusb:0= ) lcd_devices_lirc? ( app-misc/lirc ) lcd_devices_lis? ( dev-embedded/libftdi:1= ) lcd_devices_lb216? ( dev-libs/libhid:= ) lcd_devices_mdm166a? ( dev-libs/libhid:= ) lcd_devices_mtc_s16209x? ( dev-libs/libhid:= ) lcd_devices_mx5000? ( app-misc/mx5000tools ) lcd_devices_noritakevfd? ( dev-libs/libhid:= ) lcd_devices_picolcd? ( virtual/libusb:1= ) lcd_devices_shuttlevfd? ( virtual/libusb:0= ) lcd_devices_ula200? ( dev-embedded/libftdi:1= ) lcd_devices_xosd? ( x11-libs/libX11:= x11-libs/xosd:= ) " RDEPEND="${DEPEND_LCD_DEVICES}" DEPEND=" ${RDEPEND} doc? ( app-text/doxygen[dot] app-text/xmlto ) nfs? ( net-fs/nfs-utils ) png? ( media-libs/libpng:0= ) samba? ( net-fs/samba ) truetype? ( media-libs/freetype:2= ) " DOCS=( "CREDITS.md" "TODO" ) src_prepare() { default # Fix path for modules sed -e "37s:server/drivers:/usr/$(get_libdir)/lcdproc:" -i LCDd.conf || die eautoreconf } src_configure() { # Enable all users enabled lcd devices local myeconfargs_lcd_devices for lcd_device in "${IUSE_LCD_DEVICES[@]}"; do if use "lcd_devices_${lcd_device,,}"; then myeconfargs_lcd_devices+=",${lcd_device}" fi done local enable_ftdi="--disable-libftdi" if use lcd_devices_glcd || use lcd_devices_hd44780 || use lcd_devices_i2500vfd || use lcd_devices_lis || use lcd_devices_ula200; then enable_ftdi="--enable-libftdi" fi local enable_hid="--disable-libhid" if use lcd_devices_cfontz || use lcd_devices_cfontzpacket || use lcd_devices_cwlnx || use lcd_devices_glcd || use lcd_devices_lb216 || use lcd_devices_mdm166a || use lcd_devices_mtc_s16209x || use lcd_devices_noritakevfd; then enable_hid="--enable-libhid" fi local enable_png="--disable-libpng" use lcd_devices_glcd && enable_png="" local enable_usb0="--disable-libusb" if use lcd_devices_futaba || use lcd_devices_g15 || use lcd_devices_glcd || use lcd_devices_hd44780 || use lcd_devices_iowarrior || use lcd_devices_picolcd || use lcd_devices_shuttlevfd; then enable_usb0="--enable-libusb" fi local enable_usb1="--disable-libusb-1-0" if use lcd_devices_futaba || use lcd_devices_picolcd; then enable_usb1="--enable-libusb-1-0" fi local enable_x11="--disable-libX11" use lcd_devices_glcd && enable_x11="--enable-libX11" local myeconfargs=( --enable-drivers="${myeconfargs_lcd_devices#,}" $(use_enable debug) $(use_enable doc doxygen) $(use_enable doc dot) $(use_enable doc html-dox) $(use_enable doc latex-dox) $(use_enable ethlcd) $(use_enable extra-charmaps) $(use_enable menu lcdproc-menus) $(use_enable nfs stat-nfs) $(use_enable samba stat-smbfs) $(use_enable test-menu testmenus) $(use_enable truetype freetype) ${enable_ftdi} ${enable_hid} ${enable_png} ${enable_usb0} ${enable_usb1} ${enable_x11} --with-lcdport="13666" --with-pidfile-dir="/run" --without-included-getopt ) econf "${myeconfargs[@]}" } src_compile() { default if use doc; then emake dox local docbook for docbook in lcdproc-user lcdproc-dev; do cd "${S}"/docs/"${docbook}" || die xmlto html "${docbook}".docbook || die done fi } src_install() { default # Move example clients from '/usr/bin' into '/usr/share/lcdproc/clients' rm -f "${ED}"/usr/bin/{fortune,lcdident,lcdmetar,iosock,tail,x11amp}.pl || die insinto /usr/share/lcdproc/clients doins clients/examples/*.pl clients/metar/*.pl newinitd "${FILESDIR}"/LCDd.initd LCDd newinitd "${FILESDIR}"/lcdexec.initd lcdexec newinitd "${FILESDIR}"/lcdproc.initd lcdproc systemd_dounit "${FILESDIR}"/LCDd.service systemd_dounit "${FILESDIR}"/lcdexec.service systemd_dounit "${FILESDIR}"/lcdproc.service if use doc; then dodoc -r docs/html local docbook for docbook in lcdproc-user lcdproc-dev; do docinto "${docbook}" dodoc docs/"${docbook}"/*.html done fi }