Trying to compile freetz with davfs fails

gcf

Neuer User
Mitglied seit
11 Nov 2007
Beiträge
35
Punkte für Reaktionen
0
Punkte
0
Hi all,
make fails after lots of errors like below...
What should I do?
Is it otherwise possible to use the AVM webdav support?
Thanks in advance
[Edit frank_m24: Please use CODE Tags]
Code:
PATH="/home/gf/freetz-1.1.3/toolchain/target/bin:/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin" \
		make -j2 -C source/davfs2-1.4.5 \
		LIBS="\$(NEON_LIBS)"
make[1]: Entering directory `/home/gf/freetz-1.1.3/source/davfs2-1.4.5'
make  all-recursive
make[2]: Entering directory `/home/gf/freetz-1.1.3/source/davfs2-1.4.5'
Making all in po
make[3]: Entering directory `/home/gf/freetz-1.1.3/source/davfs2-1.4.5/po'
make[3]: Nothing to be done for `all'.
make[3]: Leaving directory `/home/gf/freetz-1.1.3/source/davfs2-1.4.5/po'
Making all in etc
make[3]: Entering directory `/home/gf/freetz-1.1.3/source/davfs2-1.4.5/etc'
make[3]: Nothing to be done for `all'.
make[3]: Leaving directory `/home/gf/freetz-1.1.3/source/davfs2-1.4.5/etc'
Making all in man
make[3]: Entering directory `/home/gf/freetz-1.1.3/source/davfs2-1.4.5/man'
Making all in de
make[4]: Entering directory `/home/gf/freetz-1.1.3/source/davfs2-1.4.5/man/de'
make[4]: Nothing to be done for `all'.
make[4]: Leaving directory `/home/gf/freetz-1.1.3/source/davfs2-1.4.5/man/de'
Making all in es
make[4]: Entering directory `/home/gf/freetz-1.1.3/source/davfs2-1.4.5/man/es'
make[4]: Nothing to be done for `all'.
make[4]: Leaving directory `/home/gf/freetz-1.1.3/source/davfs2-1.4.5/man/es'
make[4]: Entering directory `/home/gf/freetz-1.1.3/source/davfs2-1.4.5/man'
make[4]: Nothing to be done for `all-am'.
make[4]: Leaving directory `/home/gf/freetz-1.1.3/source/davfs2-1.4.5/man'
make[3]: Leaving directory `/home/gf/freetz-1.1.3/source/davfs2-1.4.5/man'
Making all in src
make[3]: Entering directory `/home/gf/freetz-1.1.3/source/davfs2-1.4.5/src'
/home/gf/freetz-1.1.3/toolchain/target/bin/mipsel-linux-uclibc-gcc -DPROGRAM_NAME=\"mount.davfs\" -DDAV_SYS_CONF_DIR=\"/etc/davfs2\" -DDAV_SYS_RUN=\"/var/run/mount.davfs\" -DDAV_SYS_CACHE=\"/var/cache/davfs2\" -DDAV_SECRETS=\"secrets\" -DDAV_CONFIG=\"davfs2.conf\" -DDAV_CERTS_DIR=\"certs\" -DDAV_CLICERTS_DIR=\"private\" -DDAV_DATA_DIR=\"/usr/share/davfs2\" -DLOCALEDIR=\"/usr/share/locale\" -DDAV_USER=\"davfs2\" -DDAV_GROUP=\"davfs2\" -DHAVE_CONFIG_H -I. -I..    -Wall -Os -pipe -march=4kc -Wa,--trap -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -I/home/gf/freetz-1.1.3/toolchain/build/gcc-4.2.1-uClibc-0.9.29/mipsel-linux-uclibc/usr/include/neon -MT webdav.o -MD -MP -MF .deps/webdav.Tpo -c -o webdav.o webdav.c
webdav.c:28:19: error: iconv.h: No such file or directory
webdav.c:200: error: expected '=', ',', ';', 'asm' or '__attribute__' before 'from_utf_8'
webdav.c:204: error: expected '=', ',', ';', 'asm' or '__attribute__' before 'to_utf_8'
webdav.c:208: error: expected '=', ',', ';', 'asm' or '__attribute__' before 'from_server_enc'
webdav.c:212: error: expected '=', ',', ';', 'asm' or '__attribute__' before 'to_server_enc'
webdav.c:230: error: expected declaration specifiers or '...' before 'iconv_t'
webdav.c: In function 'dav_init_webdav':
webdav.c:316: error: 'from_utf_8' undeclared (first use in this function)
webdav.c:316: error: (Each undeclared identifier is reported only once
webdav.c:316: error: for each function it appears in.)
webdav.c:316: warning: implicit declaration of function 'iconv_open'
webdav.c:317: error: 'iconv_t' undeclared (first use in this function)
webdav.c:319: error: 'to_utf_8' undeclared (first use in this function)
webdav.c:327: error: 'from_server_enc' undeclared (first use in this function)
webdav.c:328: error: 'to_server_enc' undeclared (first use in this function)
webdav.c: In function 'dav_conv_from_utf_8':
webdav.c:540: error: 'from_utf_8' undeclared (first use in this function)
webdav.c:541: error: too many arguments to function 'convert'
webdav.c: In function 'dav_conv_to_utf_8':
webdav.c:550: error: 'to_utf_8' undeclared (first use in this function)
webdav.c:551: error: too many arguments to function 'convert'
webdav.c: In function 'dav_conv_from_server_enc':
webdav.c:560: error: 'from_server_enc' undeclared (first use in this function)
webdav.c:561: error: too many arguments to function 'convert'
webdav.c: In function 'dav_conv_to_server_enc':
webdav.c:570: error: 'to_server_enc' undeclared (first use in this function)
webdav.c:571: error: too many arguments to function 'convert'
webdav.c: At top level:
webdav.c:1241: error: expected declaration specifiers or '...' before 'iconv_t'
webdav.c: In function 'convert':
webdav.c:1250: warning: implicit declaration of function 'iconv'
webdav.c:1250: error: 'conv' undeclared (first use in this function)
webdav.c: In function 'prop_result':
webdav.c:1774: error: 'from_server_enc' undeclared (first use in this function)
webdav.c:1775: error: too many arguments to function 'convert'
make[3]: *** [webdav.o] Error 1
make[3]: Leaving directory `/home/gf/freetz-1.1.3/source/davfs2-1.4.5/src'
make[2]: *** [all-recursive] Error 1
make[2]: Leaving directory `/home/gf/freetz-1.1.3/source/davfs2-1.4.5'
make[1]: *** [all] Error 2
make[1]: Leaving directory `/home/gf/freetz-1.1.3/source/davfs2-1.4.5'
make: *** [source/davfs2-1.4.5/src/mount.davfs] Error 2
 
If I remember correctly it's not possible to use the AVM webdav function with Freetz-1.1.x. Please attach your .config for further assistance.

Regards
Oliver
 
I attached the .config file, thanks for helping with this!
 

Anhänge

  • .config.zip
    3.8 KB · Aufrufe: 5
Can someone explain why iconv.h is missing or how to fix this?
 
it's a bug in the stable version, please try the attached patch
 

Anhänge

  • stable_branch_davfs2_iconv_fix.patch.txt
    908 Bytes · Aufrufe: 29
Thank you for the patch, now freetz compiles without errors.
However I cannot start davfs from the web interface, when I start the service, it says it's mounted but after I press the back button, the service is still stopped.
If I enter the mount command (mount.davfs) from the command line, it works without problems.
Any suggestions for this?
I would also like to have rsync support, I see rsync in the packages list, but I can't seem to find in in menuconfig...
 
Freetz davfs should log into syslog. Any message there?

rsync: Perhaps it's only available in the trunk.

Regards
Oliver
 
well, I switched to the latest trunk, samba, minidlna, rsync work fine but the problem with davfs persists.
The freetz interface displays:
Starting DavFS2 ... failed.
in syslog I only get:
fritz mark.debug syslog: davfs2 1.4.6

Any suggestions?
Thanks in advance
 
Please show the output of "sh -x /etc/init.d/rc.davfs start". Replace your personal settings with xxx.

Regards
Oliver
 
here is the outcome:

+ DAEMON=davfs2
+ DAEMON_LONG_NAME=DavFS2
+ DAEMON_CHECK=mount.davfs
+ . /etc/init.d/modlibrc
+ export PATH=/sbin:/bin:/usr/sbin:/usr/bin:/mod/sbin:/mod/bin:/mod/usr/sbin:/mod/usr/bin
+ export LD_LIBRARY_PATH=/mod/lib:/mod/usr/lib
+ : DavFS2
+ : davfs2
+ : davfs2_ENABLED
+ : /mod/etc/davfs2.conf
+ : davfs2
+ : /var/run/davfs2.pid
+ [ -n davfs2 ]
+ modlib_loadconfig
+ local CONF_FILE=/mod/etc/conf/davfs2.cfg
+ [ ! -r /mod/etc/conf/davfs2.cfg ]
+ . /mod/etc/conf/davfs2.cfg
+ export DAVFS2_ENABLED=yes
+ export DAVFS2_ENABLED1=yes
+ export DAVFS2_ENABLED2=
+ export DAVFS2_ENABLED3=
+ export DAVFS2_HOST1=https://xxx.xxx.com
+ export DAVFS2_HOST2=
+ export DAVFS2_HOST3=
+ export DAVFS2_IFMATCHBUG0=
+ export DAVFS2_IFMATCHBUG1=
+ export DAVFS2_IFMATCHBUG2=
+ export DAVFS2_IFMATCHBUG3=
+ export DAVFS2_MOUNTPOINT1=/var/media/ftp/uStor01/smecloud
+ export DAVFS2_MOUNTPOINT2=/var/media/ftp/davfs2_2
+ export DAVFS2_MOUNTPOINT3=/var/media/ftp/davfs2_3
+ export DAVFS2_PASS1=xxxx
+ export DAVFS2_PASS2=
+ export DAVFS2_PASS3=
+ export DAVFS2_SERVERCERT0=
+ export DAVFS2_SERVERCERT1=
+ export DAVFS2_SERVERCERT2=
+ export DAVFS2_SERVERCERT3=
+ export DAVFS2_TMPPATH=/var/media/ftp/uStor01/cache
+ export DAVFS2_USELOCKS0=
+ export DAVFS2_USELOCKS1=
+ export DAVFS2_USELOCKS2=
+ export DAVFS2_USELOCKS3=
+ export DAVFS2_USER1=xxx
+ export DAVFS2_USER2=
+ export DAVFS2_USER3=
+ local CONF_DIR=/var/davfs2
+ modlib_start
+ local DAEMON_ENABLED=
+ [ == no ]
+ [ == inetd -a ! -x /etc/init.d/rc.inetd ]
+ modlib_check_running
+ [ -n ]
+ [ -x /etc/init.d/rc.inetd ]
+ echo davfs2_ENABLED
+ tr [:lower:]- [:upper:]_
+ eval echo $DAVFS2_ENABLED
+ echo yes
+ [ yes == inetd ]
+ [ -n mount.davfs ]
+ pidof mount.davfs
+ return 3
+ start
+ echo -n Starting DavFS2 ...
Starting DavFS2 ... + config
+ mkdir /var/media/ftp/uStor01/cache
+ mkdir -p /var/cache
+ rm /var/cache/davfs2
+ ln -s /var/media/ftp/uStor01/cache /var/cache/davfs2
+ [ ! -d /var/media/ftp/uStor01/cache ]
+ touch /var/davfs2/davfs2.conf /var/davfs2/secrets
+ chmod 600 /var/davfs2/secrets
+ which webdavcfginfo
+ webdavcfginfo -p enabled
+ [ 1 == 1 ]
+ DAVFS2_ENABLED0=yes
+ webdavcfginfo -p host_url
+ DAVFS2_HOST0=https://xxx.xxx.com
+ webdavcfginfo -p username
+ DAVFS2_USER0=xxx
+ webdavcfginfo -p password
+ DAVFS2_PASS0=xxx
+ webdavcfginfo -p mountpoint
+ DAVFS2_MOUNTPOINT0=/var/media/ftp/Online-Speicher
+ [ -e /tmp/flash/davfs_servercrt0.pem ]
+ [ -e /tmp/flash/webdav_secrets_0 ]
+ [ -e /tmp/flash/davfs2/davfs2_secrets_0 ]
+ modlib_config davfs2_secrets_0 /var/davfs2/secrets_0
+ local in_files=davfs2_secrets_0
+ local out_file=/var/davfs2/secrets_0
+ [ -x /tmp/flash/davfs2_secrets_0_conf ]
+ [ -x /tmp/flash/davfs2/davfs2_secrets_0_conf ]
+ /mod/etc/default.davfs2/davfs2_secrets_0_conf
+ cat /tmp/flash/davfs2_secrets_0.extra /tmp/flash/davfs2/davfs2_secrets_0.extra
+ [ -e /tmp/flash/davfs_servercrt1.pem ]
+ [ -e /tmp/flash/webdav_secrets_1 ]
+ [ -e /tmp/flash/davfs2/davfs2_secrets_1 ]
+ modlib_config davfs2_secrets_1 /var/davfs2/secrets_1
+ local in_files=davfs2_secrets_1
+ local out_file=/var/davfs2/secrets_1
+ [ -x /tmp/flash/davfs2_secrets_1_conf ]
+ [ -x /tmp/flash/davfs2/davfs2_secrets_1_conf ]
+ /mod/etc/default.davfs2/davfs2_secrets_1_conf
+ cat /tmp/flash/davfs2_secrets_1.extra /tmp/flash/davfs2/davfs2_secrets_1.extra
+ [ -e /tmp/flash/davfs_servercrt2.pem ]
+ [ -e /tmp/flash/webdav_secrets_2 ]
+ [ -e /tmp/flash/davfs2/davfs2_secrets_2 ]
+ modlib_config davfs2_secrets_2 /var/davfs2/secrets_2
+ local in_files=davfs2_secrets_2
+ local out_file=/var/davfs2/secrets_2
+ [ -x /tmp/flash/davfs2_secrets_2_conf ]
+ [ -x /tmp/flash/davfs2/davfs2_secrets_2_conf ]
+ /mod/etc/default.davfs2/davfs2_secrets_2_conf
+ cat /tmp/flash/davfs2_secrets_2.extra /tmp/flash/davfs2/davfs2_secrets_2.extra
+ [ -e /tmp/flash/davfs_servercrt3.pem ]
+ [ -e /tmp/flash/webdav_secrets_3 ]
+ [ -e /tmp/flash/davfs2/davfs2_secrets_3 ]
+ modlib_config davfs2_secrets_3 /var/davfs2/secrets_3
+ local in_files=davfs2_secrets_3
+ local out_file=/var/davfs2/secrets_3
+ [ -x /tmp/flash/davfs2_secrets_3_conf ]
+ [ -x /tmp/flash/davfs2/davfs2_secrets_3_conf ]
+ /mod/etc/default.davfs2/davfs2_secrets_3_conf
+ cat /tmp/flash/davfs2_secrets_3.extra /tmp/flash/davfs2/davfs2_secrets_3.extra
+ modprobe fuse
+ [ -r /etc/options.cfg ]
+ . /etc/options.cfg
+ FREETZ_PACKAGE_DAVFS2_WITH_SSL=y
+ [ y != y ]
+ local retval=0
+ eval echo $DAVFS2_ENABLED0
+ echo yes
+ [ yes != yes ]
+ eval echo $DAVFS2_SERVERCERT0
+ echo
+ local cert=
+ eval echo $DAVFS2_USELOCKS0
+ echo
+ local uselocks=
+ eval echo $DAVFS2_IFMATCHBUG0
+ echo
+ local ifmatchbug=
+ eval echo $DAVFS2_MOUNTPOINT0
+ echo /var/media/ftp/Online-Speicher
+ local point=/var/media/ftp/Online-Speicher
+ eval echo $DAVFS2_HOST0
+ echo https://xxx.xxx.com
+ local host=https://xxx.xxx.com
+ local cfile=/var/davfs2/davfs2_0.conf
+ echo secrets /var/davfs2/secrets_0
+ [ == yes -a y == y ]
+ [ == yes ]
+ [ == yes ]
+ echo ask_auth 0
+ chmod 600 /var/davfs2/secrets_0
+ mkdir /var/media/ftp/Online-Speicher
+ mount -t davfs https://webdav.smestorage.com /var/media/ftp/Online-Speicher -o conf=/var/davfs2/davfs2_0.conf,uid=ftpuser
wrong owner of cache directory /var/cache/davfs2/webdav.smestorage.com+var-media-ftp-Online-Speicher+ftpuser
mount: mounting https://webdav.smestorage.com on /var/media/ftp/Online-Speicher failed: No such device
+ local retpoint=1
+ [ 1 -ne 0 ]
+ retval=1
+ rmdir /var/media/ftp/Online-Speicher
+ eval echo $DAVFS2_ENABLED1
+ echo yes
+ [ yes != yes ]
+ eval echo $DAVFS2_SERVERCERT1
+ echo
+ local cert=
+ eval echo $DAVFS2_USELOCKS1
+ echo
+ local uselocks=
+ eval echo $DAVFS2_IFMATCHBUG1
+ echo
+ local ifmatchbug=
+ eval echo $DAVFS2_MOUNTPOINT1
+ echo /var/media/ftp/uStor01/smecloud
+ local point=/var/media/ftp/uStor01/smecloud
+ eval echo $DAVFS2_HOST1
+ echo https://xxx.xxx.xxx
+ local host=https://xxx.xxx.com
+ local cfile=/var/davfs2/davfs2_1.conf
+ echo secrets /var/davfs2/secrets_1
+ [ == yes -a y == y ]
+ [ == yes ]
+ [ == yes ]
+ echo ask_auth 0
+ chmod 600 /var/davfs2/secrets_1
+ mkdir /var/media/ftp/uStor01/smecloud
+ mount -t davfs https://webdav.smestorage.com /var/media/ftp/uStor01/smecloud -o conf=/var/davfs2/davfs2_1.conf,uid=ftpuser
wrong owner of cache directory /var/cache/davfs2/webdav.smestorage.com+var-media-ftp-uStor01-smecloud+ftpuser
mount: mounting https://webdav.smestorage.com on /var/media/ftp/uStor01/smecloud failed: No such device
+ local retpoint=1
+ [ 1 -ne 0 ]
+ retval=1
+ rmdir /var/media/ftp/uStor01/smecloud
+ eval echo $DAVFS2_ENABLED2
+ echo
+ [ != yes ]
+ continue
+ eval echo $DAVFS2_ENABLED3
+ echo
+ [ != yes ]
+ continue
+ [ 1 -eq 0 ]
+ echo failed.
failed.
+ exit 1

The problem must be the "wrong owner of cache directory"
 
Zuletzt bearbeitet:
What filesystem is your usb device?

Regards
Oliver
 
The fs on the usb disk is ntfs.
 
davfs2 does not run with ntfs because the start script tries to change owner and permissions. But the original AVM dav package is able to handle ntfs filesystems.
 
Sure? For me it works. But I needed this Patch to get it running on an NTFS stick.

Regards
Oliver
 
This patch is new for me....I already formatted my ntfs disk to ext3 to avoid these problems
 
Holen Sie sich 3CX - völlig kostenlos!
Verbinden Sie Ihr Team und Ihre Kunden Telefonie Livechat Videokonferenzen

Gehostet oder selbst-verwaltet. Für bis zu 10 Nutzer dauerhaft kostenlos. Keine Kreditkartendetails erforderlich. Ohne Risiko testen.

3CX
Für diese E-Mail-Adresse besteht bereits ein 3CX-Konto. Sie werden zum Kundenportal weitergeleitet, wo Sie sich anmelden oder Ihr Passwort zurücksetzen können, falls Sie dieses vergessen haben.