sobota, 30 marca 2024

Kompilacja Fluxbox 1.3.7 kompilatorem C++ 17 (GCC 11)

Po aktualizacji systemu jakiś czas temu okazało się, że posiadając nową wersję gcc w systemie nie byłem w stanie poprawnie skompilować Fluxboksa. Błąd wyglądał tak:

util/fluxbox-remote.cc: In function ‘int main(int, char**)’:
util/fluxbox-remote.cc:76:32: error: ordered comparison of pointer with integer zero (‘unsigned char*’ and ‘int’)
   76 |             && text_prop.value > 0
      |                ~~~~~~~~~~~~~~~~^~~

Całe szczęście jest to stary błąd (#1138) naprawiony lata temu. O ile jednak link do łatki na stronie stricte Fluxboksowej już nie działa, znajdziemy łatkę na stronie paczki Fluksboksa w AUR oraz wśród społeczności Gentoo.

Jako, że łatka nie jest duża pozwolę sobie wkleić ją do tego posta:

http://git.fluxbox.org/fluxbox.git/patch/?id=22866c4d30f5b289c429c5ca88d800200db4fc4f
https://bugs.gentoo.org/732782

From 22866c4d30f5b289c429c5ca88d800200db4fc4f Mon Sep 17 00:00:00 2001
From: John Sennesael <john@aminking.com>
Date: Mon, 2 Nov 2015 15:14:32 -0600
Subject: fixes bug #1138

---
 util/fluxbox-remote.cc | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/util/fluxbox-remote.cc b/util/fluxbox-remote.cc
index 59852e6..504015b 100644
--- a/util/fluxbox-remote.cc
+++ b/util/fluxbox-remote.cc
@@ -73,7 +73,7 @@ int main(int argc, char **argv) {
     if (strcmp(cmd, "result") == 0) {
         XTextProperty text_prop;
         if (XGetTextProperty(disp, root, &text_prop, atom_result) != 0
-            && text_prop.value > 0
+            && text_prop.value != 0
             && text_prop.nitems > 0) {
 
             printf("%s", text_prop.value);
--
cgit v0.11.2

Wystarczy, że zapiszecie tekst powyżej np. jako c-plus-plus-17.patch i będąc w głownym katalogu źródeł Fluxboksa wydacie polecenie (przy czym plik .patch musi być jeden katalog wyżej):

patch -Np1 < ../c-plus-plus-17.patch

Po wszystkim kompilacja powinna przebiec bez problemów.

Brak komentarzy:

Prześlij komentarz

Kompilacja Fluxbox 1.3.7 kompilatorem C++ 17 (GCC 11)

Po aktualizacji systemu jakiś czas temu okazało się, że posiadając nową wersję gcc w systemie nie byłem w stanie poprawnie skompilować Fluxb...