[FernetMenta-Master] compilation issues on Arch/Manjaro (libnfs / NFSfile)
#1
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)
Reply
#2
which version of libnfs / libnfs-dev is installed on your system?
AppleTV4/iPhone/iPod/iPad: HowTo find debug logs and everything else which the devs like so much: click here
HowTo setup NFS for Kodi: NFS (wiki)
HowTo configure avahi (zeroconf): Avahi_Zeroconf (wiki)
READ THE IOS FAQ!: iOS FAQ (wiki)
Reply
#3
Sorry, I forgot to include that. It's version 1.9.4.
Reply
#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 ...
First decide what functions / features you expect from a system. Then decide for the hardware. Don't waste your money on crap.
Reply
#5
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
Reply
#6
Use this patch https://github.com/sahlberg/libnfs/commi...nt-6835590
Mr. memphiz never replied..
Reply
#7
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!
Reply
#8
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?
AppleTV4/iPhone/iPod/iPad: HowTo find debug logs and everything else which the devs like so much: click here
HowTo setup NFS for Kodi: NFS (wiki)
HowTo configure avahi (zeroconf): Avahi_Zeroconf (wiki)
READ THE IOS FAQ!: iOS FAQ (wiki)
Reply
#9
Er, you're probably right. Updated to libnfs 1.9.5 today and it compiles without the patch.
Reply

Logout Mark Read Team Forum Stats Members Help
[FernetMenta-Master] compilation issues on Arch/Manjaro (libnfs / NFSfile)0