You are not logged in.

#1 2025-09-11 11:10:18

DrMikeDuke
Member
From: Australia
Registered: 2008-05-12
Posts: 82

[Solved] lcd4linux installation

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'
make

Here 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 2

Does anyone have any insight into what troubleshooting I could try next?

Thanks.

Last edited by DrMikeDuke (2025-09-15 16:10:49)

Offline

#2 2025-09-11 11:25:45

WorMzy
Administrator
From: Scotland
Registered: 2010-06-16
Posts: 13,049
Website

Re: [Solved] lcd4linux installation

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

#3 2025-09-11 14:18:03

twelveeighty
Member
Registered: 2011-09-04
Posts: 1,395

Re: [Solved] lcd4linux installation

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

#4 2025-09-11 16:18:53

DrMikeDuke
Member
From: Australia
Registered: 2008-05-12
Posts: 82

Re: [Solved] lcd4linux installation

twelveeighty wrote:

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

#5 2025-09-11 18:16:02

loqs
Member
Registered: 2014-03-06
Posts: 18,644

Re: [Solved] lcd4linux installation

twelveeighty wrote:

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.

DrMikeDuke wrote:

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

#6 2025-09-15 16:16:08

DrMikeDuke
Member
From: Australia
Registered: 2008-05-12
Posts: 82

Re: [Solved] lcd4linux installation

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

Board footer

Powered by FluxBB