Kodi Community Forum

Full Version: [FernetMenta-Master] compilation issues on Arch/Manjaro (libnfs / NFSfile)
You're currently viewing a stripped down version of our content. View the full version with proper formatting.
I am encountering this error when trying to compile the FernetMenta branch on Arch, which relates to the built-in NFS support:

CPP xbmc/filesystem/SmbFile.o
CPP xbmc/filesystem/SMBDirectory.o
CPP xbmc/filesystem/NFSFile.o
In file included from NFSFile.cpp:35:0:
/usr/include/nfsc/libnfs-raw-mount.h:150:38: error: ‘CLIENT’ has not been declared
extern void * mount1_null_1(void *, CLIENT *);
^
/usr/include/nfsc/libnfs-raw-mount.h:153:45: error: ‘CLIENT’ has not been declared
extern mountres1 * mount1_mnt_1(dirpath *, CLIENT *);
^
/usr/include/nfsc/libnfs-raw-mount.h:156:43: error: ‘CLIENT’ has not been declared
extern mountlist * mount1_dump_1(void *, CLIENT *);
^
/usr/include/nfsc/libnfs-raw-mount.h:159:41: error: ‘CLIENT’ has not been declared
extern void * mount1_umnt_1(dirpath *, CLIENT *);
^
/usr/include/nfsc/libnfs-raw-mount.h:162:41: error: ‘CLIENT’ has not been declared
extern void * mount1_umntall_1(void *, CLIENT *);
^
/usr/include/nfsc/libnfs-raw-mount.h:165:43: error: ‘CLIENT’ has not been declared
extern exports * mount1_export_1(void *, CLIENT *);
^
/usr/include/nfsc/libnfs-raw-mount.h:167:40: error: ‘SVCXPRT’ was not declared in this scope
extern int mount_program_1_freeresult (SVCXPRT *, zdrproc_t, caddr_t);
^
/usr/include/nfsc/libnfs-raw-mount.h:167:49: error: expected primary-expression before ‘,’ token
extern int mount_program_1_freeresult (SVCXPRT *, zdrproc_t, caddr_t);
^
/usr/include/nfsc/libnfs-raw-mount.h:167:51: error: ‘zdrproc_t’ was not declared in this scope
extern int mount_program_1_freeresult (SVCXPRT *, zdrproc_t, caddr_t);
^
/usr/include/nfsc/libnfs-raw-mount.h:167:69: error: expected primary-expression before ‘)’ token
extern int mount_program_1_freeresult (SVCXPRT *, zdrproc_t, caddr_t);
^
/usr/include/nfsc/libnfs-raw-mount.h:167:69: error: expression list treated as compound expression in initializer [-fpermissive]
/usr/include/nfsc/libnfs-raw-mount.h:194:38: error: ‘CLIENT’ has not been declared
extern void * mount3_null_3(void *, CLIENT *);
^
/usr/include/nfsc/libnfs-raw-mount.h:197:45: error: ‘CLIENT’ has not been declared
extern mountres3 * mount3_mnt_3(dirpath *, CLIENT *);
^
/usr/include/nfsc/libnfs-raw-mount.h:200:43: error: ‘CLIENT’ has not been declared
extern mountlist * mount3_dump_3(void *, CLIENT *);
^
/usr/include/nfsc/libnfs-raw-mount.h:203:41: error: ‘CLIENT’ has not been declared
extern void * mount3_umnt_3(dirpath *, CLIENT *);
^
/usr/include/nfsc/libnfs-raw-mount.h:206:41: error: ‘CLIENT’ has not been declared
extern void * mount3_umntall_3(void *, CLIENT *);
^
/usr/include/nfsc/libnfs-raw-mount.h:209:43: error: ‘CLIENT’ has not been declared
extern exports * mount3_export_3(void *, CLIENT *);
^
/usr/include/nfsc/libnfs-raw-mount.h:211:40: error: ‘SVCXPRT’ was not declared in this scope
extern int mount_program_3_freeresult (SVCXPRT *, zdrproc_t, caddr_t);
^
/usr/include/nfsc/libnfs-raw-mount.h:211:49: error: expected primary-expression before ‘,’ token
extern int mount_program_3_freeresult (SVCXPRT *, zdrproc_t, caddr_t);
^
/usr/include/nfsc/libnfs-raw-mount.h:211:51: error: ‘zdrproc_t’ was not declared in this scope
extern int mount_program_3_freeresult (SVCXPRT *, zdrproc_t, caddr_t);
^
/usr/include/nfsc/libnfs-raw-mount.h:211:69: error: expected primary-expression before ‘)’ token
extern int mount_program_3_freeresult (SVCXPRT *, zdrproc_t, caddr_t);
^
/usr/include/nfsc/libnfs-raw-mount.h:211:69: error: expression list treated as compound expression in initializer [-fpermissive]
/usr/include/nfsc/libnfs-raw-mount.h:238:9: error: ‘bool_t’ does not name a type
extern bool_t zdr_fhandle3 (ZDR *, fhandle3*);
^
/usr/include/nfsc/libnfs-raw-mount.h:239:9: error: ‘bool_t’ does not name a type
extern bool_t zdr_dirpath (ZDR *, dirpath*);
^
/usr/include/nfsc/libnfs-raw-mount.h:240:9: error: ‘bool_t’ does not name a type
extern bool_t zdr_name (ZDR *, name*);
^
/usr/include/nfsc/libnfs-raw-mount.h:241:9: error: ‘bool_t’ does not name a type
extern bool_t zdr_mountstat3 (ZDR *, mountstat3*);
^
/usr/include/nfsc/libnfs-raw-mount.h:242:9: error: ‘bool_t’ does not name a type
extern bool_t zdr_mountlist (ZDR *, mountlist*);
^
/usr/include/nfsc/libnfs-raw-mount.h:243:9: error: ‘bool_t’ does not name a type
extern bool_t zdr_mountbody (ZDR *, mountbody*);
^
/usr/include/nfsc/libnfs-raw-mount.h:244:9: error: ‘bool_t’ does not name a type
extern bool_t zdr_groups (ZDR *, groups*);
^
/usr/include/nfsc/libnfs-raw-mount.h:245:9: error: ‘bool_t’ does not name a type
extern bool_t zdr_groupnode (ZDR *, groupnode*);
^
/usr/include/nfsc/libnfs-raw-mount.h:246:9: error: ‘bool_t’ does not name a type
extern bool_t zdr_exports (ZDR *, exports*);
^
/usr/include/nfsc/libnfs-raw-mount.h:247:9: error: ‘bool_t’ does not name a type
extern bool_t zdr_exportnode (ZDR *, exportnode*);
^
/usr/include/nfsc/libnfs-raw-mount.h:248:9: error: ‘bool_t’ does not name a type
extern bool_t zdr_mountres3_ok (ZDR *, mountres3_ok*);
^
/usr/include/nfsc/libnfs-raw-mount.h:249:9: error: ‘bool_t’ does not name a type
extern bool_t zdr_mountres3 (ZDR *, mountres3*);
^
/usr/include/nfsc/libnfs-raw-mount.h:250:9: error: ‘bool_t’ does not name a type
extern bool_t zdr_mountstat1 (ZDR *, mountstat1*);
^
/usr/include/nfsc/libnfs-raw-mount.h:251:9: error: ‘bool_t’ does not name a type
extern bool_t zdr_fhandle1 (ZDR *, fhandle1);
^
/usr/include/nfsc/libnfs-raw-mount.h:252:9: error: ‘bool_t’ does not name a type
extern bool_t zdr_mountres1_ok (ZDR *, mountres1_ok*);
^
/usr/include/nfsc/libnfs-raw-mount.h:253:9: error: ‘bool_t’ does not name a type
extern bool_t zdr_mountres1 (ZDR *, mountres1*);
^
/home/martin/fernetmenta/xbmc/Makefile.include:93: recipe for target 'NFSFile.o' failed
make[1]: *** [NFSFile.o] Error 1
Makefile:514: recipe for target 'xbmc/filesystem/filesystem.a' failed
make: *** [xbmc/filesystem/filesystem.a] Error 2

This is using a cloned git repo from today (Jul 31)
which version of libnfs / libnfs-dev is installed on your system?
Sorry, I forgot to include that. It's version 1.9.4.
File the bug upstream - if there is an api change - Arch should take care to not mix libs as they always like to do ...
xbmc-git compiles fine from AUR, though. This was basically just to double-check with the FM branch for the Intel dual-screen issue I reported, although I seriously doubt that it would behave any differently. Since I had tested this on a lot of Ubuntu, and Ubuntu-derived systems, I wanted to venture outside of Ubuntuland to see if anything behaved differently there.

Alas, it did not. Wink
Use this patch https://github.com/sahlberg/libnfs/commi...nt-6835590
Mr. memphiz never replied..
Yup, this patch fixes it for manual compilation. Apparently the PKGBUILD has ways to handle this, since it also worked when I replaced the git repo from mainline to the other branch during the 2nd makepkg run (first run was also fine)

Takker!
That linked patch is only needed for broken versions of libnfs - am i right? Or did i just get it wrong? The version we use should compile fine - also ronnie has fixed the upstream as well. For me there is no reason to alter the code in Kodi here is there?
Er, you're probably right. Updated to libnfs 1.9.5 today and it compiles without the patch.