Opened 9 months ago

Last modified 8 months ago

#56196 new defect

fluxbox @1.3.7_1 does not compile on macOS High Sierra, Version 10.13.4, because it clock_gettime() and uses a pointer instead an int

Reported by: ballapete (Peter Dyballa) Owned by:
Priority: Normal Milestone:
Component: ports Version: 2.4.2
Keywords: highsierra Cc:
Port: fluxbox

Description

First bug:

/usr/bin/clang++ -DHAVE_CONFIG_H -I.  -I/opt/local/include/freetype2 -I/opt/local/include/fribidi -I/opt/local/include/glib-2.0 -I/opt/local/lib/glib-2.0/include\
 -include ./config.h -I./src -I./src -I./nls -I/opt/local/include  -pipe -Os -stdlib=libc++ -arch x86_64  -MT src/FbTk/libFbTk_a-FbWindow.o -MD -MP -MF src/FbTk/\
.deps/libFbTk_a-FbWindow.Tpo -c -o src/FbTk/libFbTk_a-FbWindow.o `test -f 'src/FbTk/FbWindow.cc' || echo './'`src/FbTk/FbWindow.cc
src/FbTk/FbTime.cc:64:10: error: redefinition of '_mono'
uint64_t _mono() {
         ^
src/FbTk/FbTime.cc:33:10: note: previous definition is here
uint64_t _mono() {
         ^
1 error generated.

The cause it that configure finds clock_gettime() works correctly and therefore sets HAVE_CLOCK_GETTIME. This can be corrected with this patch, HighSierra-src_FbTK_FbTime.cc-clock_gettime.patch:

--- src/FbTk/FbTime.cc~ 2015-02-08 11:44:45.000000000 +0100                                                                                                       
+++ src/FbTk/FbTime.cc  2018-03-31 13:18:34.000000000 +0200                                                                                                       
@@ -25,7 +25,7 @@
 #include <sys/time.h>                                                                                                                                            
                                                                                                                                                                  
                                                                                                                                                                  
-#ifdef HAVE_CLOCK_GETTIME // linux|*bsd|solaris                                                                                                                  
+#if defined HAVE_CLOCK_GETTIME &&  __ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__ < 101300 // linux|*bsd|solaris                                                  
 #include <time.h>                                                                                                                                                
                                                                                                                                                                  
 namespace { 

Second failure is this:

/usr/bin/clang++ -DHAVE_CONFIG_H -I.  -include ./config.h -I./src/FbTk -I/opt/local/include  -pipe -Os -stdlib=libc++ -arch x86_64  -MT util/fluxbox_remote-fluxb\
ox-remote.o -MD -MP -MF util/.deps/fluxbox_remote-fluxbox-remote.Tpo -c -o util/fluxbox_remote-fluxbox-remote.o `test -f 'util/fluxbox-remote.cc' || echo './'`ut\
il/fluxbox-remote.cc
util/fluxbox-remote.cc:76:32: error: ordered comparison between pointer and zero ('unsigned char *' and 'int')
            && text_prop.value > 0
               ~~~~~~~~~~~~~~~ ^ ~

text_prop.value is the value member in this struct:

typedef struct {
    unsigned char *value;
    Atom encoding;
    int format;
    unsigned long nitems;
} XTextProperty;

A possible patch,HighSierra-util_fluxbox-remote.cc-nullptr.patch, is:

--- util/fluxbox-remote.cc~     2015-02-08 11:44:45.000000000 +0100                                                                                               
+++ util/fluxbox-remote.cc      2018-03-31 13:56:09.000000000 +0200                                                                                               
@@ -73,7 +73,7 @@
     if (strcmp(cmd, "result") == 0) {                                                                                                                            
         XTextProperty text_prop;                                                                                                                                 
         if (XGetTextProperty(disp, root, &text_prop, atom_result) != 0                                                                                           
-            && text_prop.value > 0                                                                                                                               
+            && text_prop.value != nullptr                                                                                                                        
             && text_prop.nitems > 0) {                                                                                                                           
                                                                                                                                                                  
             printf("%s", text_prop.value);                                                                                                                       

Attachments (3)

HighSierra-src_FbTK_FbTime.cc-clock_gettime.patch (360 bytes) - added by ballapete (Peter Dyballa) 9 months ago.
HighSierra-util_fluxbox-remote.cc-nullptr.patch (455 bytes) - added by ballapete (Peter Dyballa) 9 months ago.
HighSierra-Portfile.patch (408 bytes) - added by ballapete (Peter Dyballa) 9 months ago.

Download all attachments as: .zip

Change History (4)

Changed 9 months ago by ballapete (Peter Dyballa)

Changed 9 months ago by ballapete (Peter Dyballa)

Changed 9 months ago by ballapete (Peter Dyballa)

Attachment: HighSierra-Portfile.patch added

comment:1 Changed 8 months ago by ballapete (Peter Dyballa)

Note: See TracTickets for help on using tickets.