NETGEAR is aware of a growing number of phone and online scams. To learn how to stay safe click here.

Forum Discussion

mfe_'s avatar
mfe_
Tutor
Mar 04, 2012

cannt compile curlftpfs-0.9.2

Hello,

[Edit] Binaries of curlftps and installation instruction [/Edit]

curlftpfs seems to be very interesting because you will be able to mount ftp locations. http://curlftpfs.sourceforge.net/ for more informations.

I installed all dependencies like glib.

Its located in

 ls /usr/local/lib/libglib-2.0.
libglib-2.0.la libglib-2.0.so libglib-2.0.so.0 libglib-2.0.so.0.3000.2

I also set the variables of GLIB_CFLAGS and GLIB_LIBS with export variable=path

echo $GLIB_CFLAGS
/usr/local/lib/
echo $GLIB_LIBS
/usr/local/lib/


When compiling it with ./configure --build='sparc-linux' it breaks here:
configure: creating libtool
appending configuration tag "CXX" to libtool
checking for ld used by g++... /usr/bin/ld
checking if the linker (/usr/bin/ld) is GNU ld... yes
checking whether the g++ linker (/usr/bin/ld) supports shared libraries... yes
checking for g++ option to produce PIC... -fPIC
checking if g++ PIC flag -fPIC works... yes
checking if g++ static flag -static works... yes
checking if g++ supports -c -o file.o... yes
checking whether the g++ linker (/usr/bin/ld) supports shared libraries... yes
checking dynamic linker characteristics... GNU/Linux ld.so
checking how to hardcode library paths into programs... immediate
appending configuration tag "F77" to libtool
checking for pkg-config... no
checking for GLIB... configure: error: The pkg-config script could not be found or is too old. Make sure it
is in your PATH or set the PKG_CONFIG environment variable to the full
path to pkg-config.

Alternatively, you may set the environment variables GLIB_CFLAGS
and GLIB_LIBS to avoid the need to call pkg-config.
See the pkg-config man page for more details.

To get pkg-config, see <http://pkg-config.freedesktop.org/>.
See `config.log' for more details.
fes-a120d19nas:/backup/curlftpfs-0.9.2#


I used the newest glib-2.30.2 version. What can i try else?

greetings

14 Replies

Replies have been turned off for this discussion
  • Hi,

    thanks for your help. Because of

    pkg-config --cflags glib-2.0
    -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include


    I had to remove the hole curlftpfs-0.9.2 dir. After new unpacking and executing ./configure & make it included the lib :)

    Anyway there occoured some new problems. This links helped me:

    http://developer.gnome.org/glib/2.30/gl ... iling.html
    http://en.wikipedia.org/wiki/CFLAGS
    http://www.linuxforums.org/forum/red-ha ... alloc.html
    http://www.jkcs.de/blog/ftp-server-unter-linux-mounten
    http://www.websyssupport.com/?page_id=222

    So at the moment it passes make.
    With make check there occours some errors like undefined reference libiconv_close.

    make check
    Making check in compat
    make[1]: Entering directory `/c/backup/curlftpfs-0.9.2/compat'
    make[1]: Nothing to be done for `check'.
    make[1]: Leaving directory `/c/backup/curlftpfs-0.9.2/compat'
    Making check in doc
    make[1]: Entering directory `/c/backup/curlftpfs-0.9.2/doc'
    make[1]: Nothing to be done for `check'.
    make[1]: Leaving directory `/c/backup/curlftpfs-0.9.2/doc'
    make[1]: Entering directory `/c/backup/curlftpfs-0.9.2'
    make[1]: Nothing to be done for `check-am'.
    make[1]: Leaving directory `/c/backup/curlftpfs-0.9.2'
    make[1]: Entering directory `/c/backup/curlftpfs-0.9.2/tests'
    /bin/sh ../libtool --tag=CC --mode=link gcc -g -O2 -Wall -W -Wno-sign-compare -D_REENTRANT -I/usr/local/include/glib-2.0 -I/usr/local/lib/glib-2.0/include -D_FILE_OFFSET_BITS=64 -I/usr/local/include/fuse -I/usr/local/include -o ftpfs-ls_unittest ftpfs-ls_unittest.o ../libcurlftpfs.a -L/usr/local/lib -lglib-2.0 -pthread -L/usr/local/lib -lfuse -lrt -ldl -L/usr/local/lib -lcurl
    gcc -g -O2 -Wall -W -Wno-sign-compare -D_REENTRANT -I/usr/local/include/glib-2.0 -I/usr/local/lib/glib-2.0/include -D_FILE_OFFSET_BITS=64 -I/usr/local/include/fuse -I/usr/local/include -o ftpfs-ls_unittest ftpfs-ls_unittest.o -pthread ../libcurlftpfs.a -L/usr/local/lib /usr/local/lib/libglib-2.0.so /usr/local/lib/libfuse.so -lrt -ldl /usr/local/lib/libcurl.so -Wl,--rpath -Wl,/usr/local/lib -Wl,--rpath -Wl,/usr/local/lib
    ../libcurlftpfs.a(charset_utils.o)(.text+0x38): In function `convert_charsets':
    /backup/curlftpfs-0.9.2/charset_utils.c:26: undefined reference to `libiconv_open'
    ../libcurlftpfs.a(charset_utils.o)(.text+0xc0):/backup/curlftpfs-0.9.2/charset_utils.c:39: undefined reference to `libiconv'
    ../libcurlftpfs.a(charset_utils.o)(.text+0x15c):/backup/curlftpfs-0.9.2/charset_utils.c:50: undefined reference to `libiconv_close'
    collect2: ld returned 1 exit status
    make[1]: *** [ftpfs-ls_unittest] Error 1
    make[1]: Leaving directory `/c/backup/curlftpfs-0.9.2/tests'
    make: *** [test] Error 2

    This is curious because i configured it with ./configure --build='sparc-linux' --without-libiconv

    Because my IPS is since 2 days offline ( :evil: :x ) i cannt test a curlftpfs connection :(.

     curlftpfs --version
    curlftpfs 0.9.2 libcurl/7.24.0 fuse/2.8


    curlftpfs --help
    usage: curlftpfs <ftphost> <mountpoint>

    CurlFtpFS options:
    -o opt,[opt...] ftp options
    -v --verbose make libcurl print verbose debug
    -h --help print help
    -V --version print version

    FTP options:
    ftpfs_debug print some debugging information
    transform_symlinks prepend mountpoint to absolute symlink targets
    disable_epsv use PASV, without trying EPSV first (default)
    enable_epsv try EPSV before reverting to PASV
    skip_pasv_ip skip the IP address for PASV
    ftp_port=STR use PORT with address instead of PASV
    disable_eprt use PORT, without trying EPRT first
    ftp_method [multicwd/singlecwd] Control CWD usage
    custom_list=STR Command used to list files. Defaults to "LIST -a"
    tcp_nodelay use the TCP_NODELAY option
    connect_timeout=N maximum time allowed for connection in seconds
    ssl enable SSL/TLS for both control and data connections
    ssl_control enable SSL/TLS only for control connection
    ssl_try try SSL/TLS first but connect anyway
    no_verify_hostname does not verify the hostname (SSL)
    no_verify_peer does not verify the peer (SSL)
    cert=STR client certificate file (SSL)
    cert_type=STR certificate file type (DER/PEM/ENG) (SSL)
    key=STR private key file name (SSL)
    key_type=STR private key file type (DER/PEM/ENG) (SSL)
    pass=STR pass phrase for the private key (SSL)
    engine=STR crypto engine to use (SSL)
    cacert=STR file with CA certificates to verify the peer (SSL)
    capath=STR CA directory to verify peer against (SSL)
    ciphers=STR SSL ciphers to use (SSL)
    interface=STR specify network interface/address to use
    krb4=STR enable krb4 with specified security level
    proxy=STR use host:port HTTP proxy
    proxytunnel operate through a HTTP proxy tunnel (using CONNECT)
    proxy_anyauth pick "any" proxy authentication method
    proxy_basic use Basic authentication on the proxy
    proxy_digest use Digest authentication on the proxy
    proxy_ntlm use NTLM authentication on the proxy
    httpproxy use a HTTP proxy (default)
    socks4 use a SOCKS4 proxy
    socks5 use a SOCKS5 proxy
    user=STR set server user and password
    proxy_user=STR set proxy user and password
    tlsv1 use TLSv1 (SSL)
    sslv3 use SSLv3 (SSL)
    ipv4 resolve name to IPv4 address
    ipv6 resolve name to IPv6 address
    utf8 try to transfer file list with utf-8 encoding
    codepage=STR set the codepage the server uses
    iocharset=STR set the charset used by the client

    CurlFtpFS cache options:
    cache=yes|no enable/disable cache (default: yes)
    cache_timeout=SECS set timeout for stat, dir, link at once
    default is 10 seconds
    cache_stat_timeout=SECS set stat timeout
    cache_dir_timeout=SECS set dir timeout
    cache_link_timeout=SECS set link timeout

    FUSE options:
    -d -o debug enable debug output (implies -f)
    -f foreground operation
    -s disable multi-threaded operation

    -o allow_other allow access to other users
    -o allow_root allow access to root
    -o nonempty allow mounts over non-empty file/dir
    -o default_permissions enable permission checking by kernel
    -o fsname=NAME set filesystem name
    -o subtype=NAME set filesystem type
    -o large_read issue large read requests (2.4 only)
    -o max_read=N set maximum size of read requests

    -o hard_remove immediate removal (don't hide files)
    -o use_ino let filesystem set inode numbers
    -o readdir_ino try to fill in d_ino in readdir
    -o direct_io use direct I/O
    -o kernel_cache cache files in kernel
    -o [no]auto_cache enable caching based on modification times (off)
    -o umask=M set file permissions (octal)
    -o uid=N set file owner
    -o gid=N set file group
    -o entry_timeout=T cache timeout for names (1.0s)
    -o negative_timeout=T cache timeout for deleted names (0.0s)
    -o attr_timeout=T cache timeout for attributes (1.0s)
    -o ac_attr_timeout=T auto cache timeout for attributes (attr_timeout)
    -o intr allow requests to be interrupted
    -o intr_signal=NUM signal to send on interrupt (30)
    -o modules=M1[:M2...] names of modules to push onto filesystem stack

    -o max_write=N set maximum size of write requests
    -o max_readahead=N set maximum readahead
    -o async_read perform reads asynchronously (default)
    -o sync_read perform reads synchronously
    -o atomic_o_trunc enable atomic open+truncate support
    -o big_writes enable larger than 4kB writes
    -o no_remote_lock disable remote file locking

    Module options:

    [subdir]
    -o subdir=DIR prepend this directory to all paths (mandatory)
    -o [no]rellinks transform absolute symlinks to relative

    [iconv]
    -o from_code=CHARSET original encoding of file names (default: UTF-8)
    -o to_code=CHARSET new encoding of the file names (default: UTF-8)


    I will report when my nas is back online :)
  • can you send me the binaries of curlftpfs for Duo?

    By(t)e
  • Hello andbad,

    I didn't recognize your post, sry :S

    Because I reseted my NAS I lost the binaries. But I try to build them now. I will come back to you. greetings
  • Compiled Software: curlftpfs

    Download Debian packages (ReadyNAS Duov1):
    curl-7.29.0_7.29-1_sparc.deb
    curlftpfs-0.9.2_0.9.2-1_sparc.deb


    Instruction:
    1.) The ReadyNAS Duov1 will be shipped out with an old installed libcurl debian package which needs to be updated. So first we have to remove this libarie.
    2.) Make sure you got libcurl installed with
    dpkg -l | grep libcurl

    3.) Remove it with
    apt-get remove libcurl3

    4.) Check again if all libcurl libaries are removed with
    dpkg -l | grep libcurl

    5.) Install some requried libaries like fuse with
    apt-get install sshfs

    6.) Execute ( background information)
    mknod /dev/fuse -m 0666 c 10 229

    7.)
    modprobe fuse

    8.) Get the libcurl software with
    cd /c/media && wget http://www.get-the-solution.net/media/f ... _sparc.deb

    9.) Get the software with
    cd /c/media && wget http://www.get-the-solution.net/media/f ... _sparc.deb

    10.) Install the libcurl software with
    dpkg -i curl-7.29.0_7.29-1_sparc.deb

    11.) Install the libcurlftpfs software with
    dpkg -i curlftpfs-0.9.2_0.9.2-1_sparc.deb

    12.) Use it for example
    cd /c/media && mkdir myftpsource

    13.) Mount with
    curlftpfs ftplogin:ftploginpassword@getthesolution.net myftpsource/


    Have fun :)

    No liability assumed

NETGEAR Academy

Boost your skills with the Netgear Academy - Get trained, certified and stay ahead with the latest Netgear technology! 

Join Us!

ProSupport for Business

Comprehensive support plans for maximum network uptime and business peace of mind.

 

Learn More