You are not logged in.
Hi,
I'm trying to get LCD4Linux installed on my machine (due to my obscure usb lcd being unsupported by lcdproc)
I wasn't able to install using the AUR package due to the issues mentioned in the comments there.
I've tried instead to install from source (git repo), however I'm met with errors that exceed my software compilation knowledge.
Here is what I have run to get as far as I have:
git clone https://github.com/jmccrohan/lcd4linux.git
cd lcd4linux
mkdir m4
autoreconf -fvi -I /usr/share/gettext/m4 # (I got even less far without this)
./configure --with-drivers=serdisplib --with-plugins='!all'
makeHere is the error I'm facing during 'make':
$ make
make all-am
make[1]: Entering directory '~/lcd4linux'
gcc -DHAVE_CONFIG_H -I. -I/usr/include/dbus-1.0 -I/usr/lib/dbus-1.0/include -D_GNU_SOURCE -Wall -Wextra -fno-strict-aliasing -g -O2 -MT drv_generic.o -MD -MP -MF .deps/drv_generic.Tpo -c -o drv_generic.o drv_generic.c
drv_generic.c:63:8: error: conflicting types for ?drv_generic_blit?; have ?void (*)(void)?
63 | void (*drv_generic_blit) () = NULL;
| ^~~~~~~~~~~~~~~~
In file included from drv_generic.c:45:
drv_generic.h:39:15: note: previous declaration of ?drv_generic_blit? with type ?void (*)(const int, const int, const int, const int)?
39 | extern void (*drv_generic_blit) (const int row, const int col, const int height, const int width);
| ^~~~~~~~~~~~~~~~
drv_generic.c: In function ?drv_generic_init?:
drv_generic.c:105:35: error: passing argument 3 of ?AddFunction? from incompatible pointer type [-Wincompatible-pointer-types]
105 | AddFunction("LCD::height", 0, my_drows);
| ^~~~~~~~
| |
| void (*)(RESULT *)
In file included from plugin.h:28,
from drv_generic.c:44:
evaluator.h:53:58: note: expected ?void (*)(void)? but argument is of type ?void (*)(RESULT *)?
53 | int AddFunction(const char *name, const int argc, void (*func) ());
| ~~~~~~~^~~~~~~~
drv_generic.c:66:13: note: ?my_drows? declared here
66 | static void my_drows(RESULT * result)
| ^~~~~~~~
drv_generic.c:106:34: error: passing argument 3 of ?AddFunction? from incompatible pointer type [-Wincompatible-pointer-types]
106 | AddFunction("LCD::width", 0, my_dcols);
| ^~~~~~~~
| |
| void (*)(RESULT *)
evaluator.h:53:58: note: expected ?void (*)(void)? but argument is of type ?void (*)(RESULT *)?
53 | int AddFunction(const char *name, const int argc, void (*func) ());
| ~~~~~~~^~~~~~~~
drv_generic.c:72:13: note: ?my_dcols? declared here
72 | static void my_dcols(RESULT * result)
| ^~~~~~~~
drv_generic.c:108:33: error: passing argument 3 of ?AddFunction? from incompatible pointer type [-Wincompatible-pointer-types]
108 | AddFunction("LCD::xres", 0, my_xres);
| ^~~~~~~
| |
| void (*)(RESULT *)
evaluator.h:53:58: note: expected ?void (*)(void)? but argument is of type ?void (*)(RESULT *)?
53 | int AddFunction(const char *name, const int argc, void (*func) ());
| ~~~~~~~^~~~~~~~
drv_generic.c:78:13: note: ?my_xres? declared here
78 | static void my_xres(RESULT * result)
| ^~~~~~~
drv_generic.c:109:33: error: passing argument 3 of ?AddFunction? from incompatible pointer type [-Wincompatible-pointer-types]
109 | AddFunction("LCD::yres", 0, my_yres);
| ^~~~~~~
| |
| void (*)(RESULT *)
evaluator.h:53:58: note: expected ?void (*)(void)? but argument is of type ?void (*)(RESULT *)?
53 | int AddFunction(const char *name, const int argc, void (*func) ());
| ~~~~~~~^~~~~~~~
drv_generic.c:84:13: note: ?my_yres? declared here
84 | static void my_yres(RESULT * result)
| ^~~~~~~
drv_generic.c:111:38: error: passing argument 3 of ?AddFunction? from incompatible pointer type [-Wincompatible-pointer-types]
111 | AddFunction("Layout::height", 0, my_lrows);
| ^~~~~~~~
| |
| void (*)(RESULT *)
evaluator.h:53:58: note: expected ?void (*)(void)? but argument is of type ?void (*)(RESULT *)?
53 | int AddFunction(const char *name, const int argc, void (*func) ());
| ~~~~~~~^~~~~~~~
drv_generic.c:90:13: note: ?my_lrows? declared here
90 | static void my_lrows(RESULT * result)
| ^~~~~~~~
drv_generic.c:112:37: error: passing argument 3 of ?AddFunction? from incompatible pointer type [-Wincompatible-pointer-types]
112 | AddFunction("Layout::width", 0, my_lcols);
| ^~~~~~~~
| |
| void (*)(RESULT *)
evaluator.h:53:58: note: expected ?void (*)(void)? but argument is of type ?void (*)(RESULT *)?
53 | int AddFunction(const char *name, const int argc, void (*func) ());
| ~~~~~~~^~~~~~~~
drv_generic.c:96:13: note: ?my_lcols? declared here
96 | static void my_lcols(RESULT * result)
| ^~~~~~~~
make[1]: *** [Makefile:864: drv_generic.o] Error 1
make[1]: Leaving directory '~/lcd4linux'
make: *** [Makefile:619: all] Error 2Does anyone have any insight into what troubleshooting I could try next?
Thanks.
Last edited by DrMikeDuke (2025-09-15 16:10:49)
Offline
Mod note: moving to AUR Issues
Sakura:-
Mobo: MSI MAG X570S TORPEDO MAX // Processor: AMD Ryzen 9 5950X @4.9GHz // GFX: AMD Radeon RX 5700 XT // RAM: 32GB (4x 8GB) Corsair DDR4 (@ 3000MHz) // Storage: 1x 3TB HDD, 6x 1TB SSD, 2x 120GB SSD, 1x 275GB M2 SSD
Making lemonade from lemons since 2015.
Offline
Why don't you use the PKGBUILD you linked and modify it to patch for the comment made on Jul 28 to use `m4_pattern_allow` ? Rather than going all the way back to upstream / square 1 and reinventing the wheel? I assume the AUR package would have already solved the problems you list here and once you fix them you're probably back to where you started and STILL have to patch for that AM_ICONV error.
Offline
Why don't you use the PKGBUILD you linked and modify it to patch for the comment made on Jul 28 to use `m4_pattern_allow` ? Rather than going all the way back to upstream / square 1 and reinventing the wheel? I assume the AUR package would have already solved the problems you list here and once you fix them you're probably back to where you started and STILL have to patch for that AM_ICONV error.
Thanks for the suggestion. I'm not clear on how to do that though, since I'm really just guessing at this point : - )
Offline
Why don't you use the PKGBUILD you linked and modify it to patch for the comment made on Jul 28 to use `m4_pattern_allow` ?
Have you tried that?
I assume the AUR package would have already solved the problems you list here and once you fix them you're probably back to where you started and STILL have to patch for that AM_ICONV error.
You would be wrong.
I'm not clear on how to do that though
You were almost there you needed to change the CFLAGS to change the default C standard from gnu23 to gnu17 see https://src.fedoraproject.org/rpms/lcd4 … 8a1a501ae9. Apply the following diff to the current AUR lcd4linux-git:
diff --git a/PKGBUILD b/PKGBUILD
index d9eda6d..660ffa5 100644
--- a/PKGBUILD
+++ b/PKGBUILD
@@ -8,14 +8,21 @@ pkgdesc="Grabs information from the kernel and other systems and displays it on
arch=('i686' 'x86_64')
url="https://wiki.lcd4linux.tk/doku.php"
license=('GPL-2.0-only')
-makedepends=('git' 'pkg-config' 'automake' 'autoconf')
+depends=('dbus' 'glibc' 'libusb-compat' 'ncurses' 'sqlite')
+makedepends=('git')
provides=('lcd4linux')
conflicts=('lcd4linux-svn')
backup=('etc/lcd4linux.conf')
source=('lcd4linux::git+https://github.com/jmccrohan/lcd4linux'
'lcd4linux.service')
md5sums=('SKIP'
- '809b7eefb65fd5545e9716dd1b7cf925')
+ '809b7eefb65fd5545e9716dd1b7cf925')
+
+prepare() {
+ cd "${_pkgname}"
+ ln -s . m4
+ autoreconf -fiv -I /usr/share/gettext/m4
+}
pkgver() {
cd "${_pkgname}"
@@ -24,8 +31,7 @@ pkgver() {
build() {
cd "${_pkgname}"
- ./bootstrap
- ./configure --prefix=/usr
+ CFLAGS+=' -std=gnu17' ./configure --prefix=/usr
make
}
Offline
Thank you @loqs - that worked perfectly.
Once that was built and installed, some manual compiling and symbolic linking of serdisplib and my alphacool lcd is now working again! Yey!
Offline