fails to make from source 0.7.5
looks like your header files c++ definition is not matching.
userx@voided.org & idesk-0.7.5 >> $make
make: Circular aclocal.m4 <- aclocal.m4 dependency dropped.
make all-recursive
make[1]: Entering directory '/home/userx/bin/idesk-0.7.5'
make[1]: Circular aclocal.m4 <- aclocal.m4 dependency dropped.
Making all in src
make[2]: Entering directory '/home/userx/bin/idesk-0.7.5/src'
make[2]: Circular defaults.h <- Makefile dependency dropped.
g++ -DHAVE_CONFIG_H -I. -I. -I.. -I.. -g -O2 -DSHAPE -I/usr/include/freetype2 -I/usr/include/libpng16 -I/usr/include/freetype2 -I/usr/include/libpng16 -c DesktopConfig.cpp
DesktopConfig.cpp: In member function 'virtual void DesktopConfig::setDesktopOnlyOptions(Table)':
DesktopConfig.cpp:134:40: error: no matching function for call to 'stat::stat(const char, stat)'
if( stat( directory.c_str(), &b ) < 0 ){
^
DesktopConfig.cpp:134:40: note: candidates are:
In file included from /usr/include/fcntl.h:79:0,
from DesktopIconConfig.h:28,
from DesktopConfig.h:30,
from DesktopConfig.cpp:25:
/usr/include/bits/stat.h:46:8: note: stat::stat()
struct stat
^
/usr/include/bits/stat.h:46:8: note: candidate expects 0 arguments, 2 provided
/usr/include/bits/stat.h:46:8: note: stat::stat(const stat&)
/usr/include/bits/stat.h:46:8: note: candidate expects 1 argument, 2 provided
DesktopConfig.cpp:155:40: error: no matching function for call to 'stat::stat(const char, stat)'
if( stat( directory.c_str(), &b ) < 0 ) {
^
DesktopConfig.cpp:155:40: note: candidates are:
In file included from /usr/include/fcntl.h:79:0,
from DesktopIconConfig.h:28,
from DesktopConfig.h:30,
from DesktopConfig.cpp:25:
/usr/include/bits/stat.h:46:8: note: stat::stat()
struct stat
^
/usr/include/bits/stat.h:46:8: note: candidate expects 0 arguments, 2 provided
/usr/include/bits/stat.h:46:8: note: stat::stat(const stat&)
/usr/include/bits/stat.h:46:8: note: candidate expects 1 argument, 2 provided
make[2]: [Makefile:301: DesktopConfig.o] Error 1
make[2]: Leaving directory '/home/userx/bin/idesk-0.7.5/src'
make[1]: [Makefile:161: all-recursive] Error 1
make[1]: Leaving directory '/home/userx/bin/idesk-0.7.5'
make: *** [Makefile:311: all-recursive-am] Error 2
Add
#include <sys/stat.h>
to DesktopIconConfig.h - it solves the error.For some reason, GCC defaults to bits/stat.h, whereas sys/stat.h is the recommended header.
Last edit: Squeekers 2020-01-06
I maintain an updated fork at https://github.com/neagix/idesk in case you are interested