Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 30 Oct 2013 08:49:32 GMT
From:      Kenji Rikitake <kenji@k2r.org>
To:        freebsd-gnats-submit@FreeBSD.org
Subject:   ports/183467: Port sysutils/fusefs-s3fs does not compile on 10.0-BETA2
Message-ID:  <201310300849.r9U8nWeu095403@oldred.freebsd.org>
Resent-Message-ID: <201310300850.r9U8o3A3041040@freefall.freebsd.org>

next in thread | raw e-mail | index | archive | help

>Number:         183467
>Category:       ports
>Synopsis:       Port sysutils/fusefs-s3fs does not compile on 10.0-BETA2
>Confidential:   no
>Severity:       non-critical
>Priority:       low
>Responsible:    freebsd-ports-bugs
>State:          open
>Quarter:        
>Keywords:       
>Date-Required:
>Class:          sw-bug
>Submitter-Id:   current-users
>Arrival-Date:   Wed Oct 30 08:50:03 UTC 2013
>Closed-Date:
>Last-Modified:
>Originator:     Kenji Rikitake
>Release:        10.0-BETA2
>Organization:
>Environment:
FreeBSD wellmax.priv.k2r.org 10.0-BETA2 FreeBSD 10.0-BETA2 #13 r257290: Tue Oct 29 12:31:14 JST 2013     root@wellmax.priv.k2r.org:/usr/obj/usr/src/sys/K2RKERNEL  amd64
>Description:
Two different bugs found. Also, one source code update proposed.

BUGS:

* clang does not compile the current code. Log attached to the end of this section.
* OpenSSL is not correctly linked.

UPDATE:

s3fs-1.71 to s3fs-1.73 update

Clang problem details:
-- start here --
===>   fusefs-s3fs-1.73_1 depends on file: /usr/local/sbin/pkg - found
===> Fetching all distfiles required by fusefs-s3fs-1.73_1 for building
===>  Extracting for fusefs-s3fs-1.73_1
=> SHA256 Checksum OK for s3fs-1.73.tar.gz.
===>  Patching for fusefs-s3fs-1.73_1
/usr/bin/sed -i.bak -e 's/libcrypto >= 0.9//g' /usr/ports/sysutils/fusefs-s3fs/work/s3fs-1.73/configure
===>   fusefs-s3fs-1.73_1 depends on file: /usr/local/lib/libcrypto.so.8 - found
===>   fusefs-s3fs-1.73_1 depends on executable: pkgconf - found
===>   fusefs-s3fs-1.73_1 depends on shared library: libfuse.so - found
===>   fusefs-s3fs-1.73_1 depends on shared library: curl - found
===>   fusefs-s3fs-1.73_1 depends on shared library: xml2 - found
===>  Configuring for fusefs-s3fs-1.73_1
===>   FreeBSD 10 autotools fix applied to /usr/ports/sysutils/fusefs-s3fs/work/s3fs-1.73/aclocal.m4
===>   FreeBSD 10 autotools fix applied to /usr/ports/sysutils/fusefs-s3fs/work/s3fs-1.73/configure
configure: loading site script /usr/ports/Templates/config.site
checking build system type... amd64-portbld-freebsd10.0
checking host system type... amd64-portbld-freebsd10.0
checking target system type... amd64-portbld-freebsd10.0
checking for a BSD-compatible install... /usr/bin/install -c -o root -g wheel
checking whether build environment is sane... yes
checking for a thread-safe mkdir -p... (cached) /bin/mkdir -p
checking for gawk... (cached) /usr/bin/awk
checking whether make sets $(MAKE)... yes
checking for C++ compiler default output file name... a.out
checking whether the C++ compiler works... yes
checking whether we are cross compiling... no
checking for suffix of executables... 
checking for suffix of object files... o
checking whether we are using the GNU C++ compiler... yes
checking whether c++ accepts -g... yes
checking for style of include used by make... GNU
checking dependency style of c++... gcc3
checking pkg-config is at least version 0.9.0... yes
checking for DEPS... yes
configure: creating ./config.status
config.status: creating Makefile
config.status: creating src/Makefile
config.status: creating test/Makefile
config.status: creating doc/Makefile
config.status: executing depfiles commands
===>  Building for fusefs-s3fs-1.73_1
--- all-recursive ---
Making all in src
--- s3fs.o ---
--- curl.o ---
--- cache.o ---
--- string_util.o ---
--- s3fs.o ---
c++ -DPACKAGE_NAME=\"s3fs\" -DPACKAGE_TARNAME=\"s3fs\" -DPACKAGE_VERSION=\"1.73\" -DPACKAGE_STRING=\"s3fs\ 1.73\" -DPACKAGE_BUGREPORT=\"\" -DPACKAGE=\"s3fs\" -DVERSION=\"1.73\" -I.   -I/usr/local/include/fuse -D_FILE_OFFSET_BITS=64 -I/usr/local/include -I/usr/local/include/libxml2   -O2 -pipe -fno-omit-frame-pointer -fstack-protector -fno-strict-aliasing -Wall -D_FILE_OFFSET_BITS=64 -MT s3fs.o -MD -MP -MF .deps/s3fs.Tpo -c -o s3fs.o s3fs.cpp
--- curl.o ---
c++ -DPACKAGE_NAME=\"s3fs\" -DPACKAGE_TARNAME=\"s3fs\" -DPACKAGE_VERSION=\"1.73\" -DPACKAGE_STRING=\"s3fs\ 1.73\" -DPACKAGE_BUGREPORT=\"\" -DPACKAGE=\"s3fs\" -DVERSION=\"1.73\" -I.   -I/usr/local/include/fuse -D_FILE_OFFSET_BITS=64 -I/usr/local/include -I/usr/local/include/libxml2   -O2 -pipe -fno-omit-frame-pointer -fstack-protector -fno-strict-aliasing -Wall -D_FILE_OFFSET_BITS=64 -MT curl.o -MD -MP -MF .deps/curl.Tpo -c -o curl.o curl.cpp
--- cache.o ---
c++ -DPACKAGE_NAME=\"s3fs\" -DPACKAGE_TARNAME=\"s3fs\" -DPACKAGE_VERSION=\"1.73\" -DPACKAGE_STRING=\"s3fs\ 1.73\" -DPACKAGE_BUGREPORT=\"\" -DPACKAGE=\"s3fs\" -DVERSION=\"1.73\" -I.   -I/usr/local/include/fuse -D_FILE_OFFSET_BITS=64 -I/usr/local/include -I/usr/local/include/libxml2   -O2 -pipe -fno-omit-frame-pointer -fstack-protector -fno-strict-aliasing -Wall -D_FILE_OFFSET_BITS=64 -MT cache.o -MD -MP -MF .deps/cache.Tpo -c -o cache.o cache.cpp
--- string_util.o ---
c++ -DPACKAGE_NAME=\"s3fs\" -DPACKAGE_TARNAME=\"s3fs\" -DPACKAGE_VERSION=\"1.73\" -DPACKAGE_STRING=\"s3fs\ 1.73\" -DPACKAGE_BUGREPORT=\"\" -DPACKAGE=\"s3fs\" -DVERSION=\"1.73\" -I.   -I/usr/local/include/fuse -D_FILE_OFFSET_BITS=64 -I/usr/local/include -I/usr/local/include/libxml2   -O2 -pipe -fno-omit-frame-pointer -fstack-protector -fno-strict-aliasing -Wall -D_FILE_OFFSET_BITS=64 -MT string_util.o -MD -MP -MF .deps/string_util.Tpo -c -o string_util.o string_util.cpp
--- cache.o ---
mv -f .deps/cache.Tpo .deps/cache.Po
--- s3fs_util.o ---
c++ -DPACKAGE_NAME=\"s3fs\" -DPACKAGE_TARNAME=\"s3fs\" -DPACKAGE_VERSION=\"1.73\" -DPACKAGE_STRING=\"s3fs\ 1.73\" -DPACKAGE_BUGREPORT=\"\" -DPACKAGE=\"s3fs\" -DVERSION=\"1.73\" -I.   -I/usr/local/include/fuse -D_FILE_OFFSET_BITS=64 -I/usr/local/include -I/usr/local/include/libxml2   -O2 -pipe -fno-omit-frame-pointer -fstack-protector -fno-strict-aliasing -Wall -D_FILE_OFFSET_BITS=64 -MT s3fs_util.o -MD -MP -MF .deps/s3fs_util.Tpo -c -o s3fs_util.o s3fs_util.cpp
--- string_util.o ---
mv -f .deps/string_util.Tpo .deps/string_util.Po
--- fdcache.o ---
c++ -DPACKAGE_NAME=\"s3fs\" -DPACKAGE_TARNAME=\"s3fs\" -DPACKAGE_VERSION=\"1.73\" -DPACKAGE_STRING=\"s3fs\ 1.73\" -DPACKAGE_BUGREPORT=\"\" -DPACKAGE=\"s3fs\" -DVERSION=\"1.73\" -I.   -I/usr/local/include/fuse -D_FILE_OFFSET_BITS=64 -I/usr/local/include -I/usr/local/include/libxml2   -O2 -pipe -fno-omit-frame-pointer -fstack-protector -fno-strict-aliasing -Wall -D_FILE_OFFSET_BITS=64 -MT fdcache.o -MD -MP -MF .deps/fdcache.Tpo -c -o fdcache.o fdcache.cpp
--- s3fs.o ---
s3fs.cpp:759:53: warning: format specifies type 'unsigned long' but the argument has type 'dev_t' (aka 'unsigned int') [-Wformat]
  FPRN("[path=%s][mode=%04o][dev=%lu]", path, mode, rdev);
                                 ~~~                ^~~~
./common.h:48:34: note: expanded from macro 'FPRN'
#define FPRN(...)      FPRINT(0, __VA_ARGS__)
                                 ^
./common.h:23:27: note: expanded from macro 'FPRINT'
          LOWFPRINT(NEST, __VA_ARGS__); \
                          ^
./common.h:18:16: note: expanded from macro 'LOWFPRINT'
        printf(__VA_ARGS__); \
               ^
s3fs.cpp:2742:15: warning: comparison of constant -1 with expression of type 'bool' is always false [-Wtautological-constant-out-of-range-compare]
  }else if(-1 == aws_format){
           ~~ ^  ~~~~~~~~~~
2 warnings generated.
mv -f .deps/s3fs.Tpo .deps/s3fs.Po
--- s3fs_util.o ---
s3fs_util.cpp:478:10: warning: comparison of 0 > unsigned expression is always false [-Wtautological-compare]
    if(0 > (maxlen = (size_t)sysconf(_SC_GETGR_R_SIZE_MAX))){
       ~ ^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
1 warning generated.
mv -f .deps/s3fs_util.Tpo .deps/s3fs_util.Po
--- fdcache.o ---
mv -f .deps/fdcache.Tpo .deps/fdcache.Po
--- curl.o ---
In file included from curl.cpp:45:
/usr/include/c++/v1/map:1028:17: error: no matching function for call to object of type 'const case_insensitive_compare_func'
            if (__tree_.value_comp().key_comp()(__k, __nd->__value_.__cc.first))
                ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/usr/include/c++/v1/map:1197:36: note: in instantiation of member function 'std::__1::map<std::__1::basic_string<char>, std::__1::basic_string<char>, case_insensitive_compare_func, std::__1::allocator<std::__1::pair<const std::__1::basic_string<char>, std::__1::basic_string<char> > > >::__find_equal_key' requested here
    __node_base_pointer& __child = __find_equal_key(__parent, __k);
                                   ^
curl.cpp:353:28: note: in instantiation of member function 'std::__1::map<std::__1::basic_string<char>, std::__1::basic_string<char>, case_insensitive_compare_func, std::__1::allocator<std::__1::pair<const std::__1::basic_string<char>, std::__1::basic_string<char> > > >::operator[]' requested here
        S3fsCurl::mimeTypes[ext] = mimeType;
                           ^
./curl.h:88:8: note: candidate function not viable: 'this' argument has type 'const case_insensitive_compare_func', but method is not marked const
  bool operator()(const std::string& a, const std::string& b){
       ^
In file included from curl.cpp:45:
/usr/include/c++/v1/map:408:17: error: no matching function for call to object of type 'const case_insensitive_compare_func'
        {return static_cast<const _Compare&>(*this)(__x.__cc.first, __y);}
                ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/usr/include/c++/v1/__tree:2093:14: note: in instantiation of member function 'std::__1::__map_value_compare<std::__1::basic_string<char>, std::__1::map<std::__1::basic_string<char>, std::__1::basic_string<char>, case_insensitive_compare_func, std::__1::allocator<std::__1::pair<const std::__1::basic_string<char>, std::__1::basic_string<char> > > >::__value_type, case_insensitive_compare_func, true>::operator()' requested here
        if (!value_comp()(__root->__value_, __v))
             ^
/usr/include/c++/v1/__tree:2019:20: note: in instantiation of function template specialization 'std::__1::__tree<std::__1::map<std::__1::basic_string<char>, std::__1::basic_string<char>, case_insensitive_compare_func, std::__1::allocator<std::__1::pair<const std::__1::basic_string<char>, std::__1::basic_string<char> > > >::__value_type, std::__1::__map_value_compare<std::__1::basic_string<char>, std::__1::map<std::__1::basic_string<char>, std::__1::basic_string<char>, case_insensitive_compare_func, std::__1::allocator<std::__1::pair<const std::__1::basic_string<char>, std::__1::basic_string<char> > > >::__value_type, case_insensitive_compare_func, true>, std::__1::allocator<std::__1::map<std::__1::basic_string<char>, std::__1::basic_string<char>, case_insensitive_compare_func, std::__1::allocator<std::__1::pair<const std::__1::basic_string<char>, std::__1::basic_string<char> > > >::__value_type> >::__lower_bound<std::__1::basic_string<char> >' requested here
    iterator __p = __lower_bound(__v, __root(), __end_node());
                   ^
/usr/include/c++/v1/map:961:68: note: in instantiation of function template specialization 'std::__1::__tree<std::__1::map<std::__1::basic_string<char>, std::__1::basic_string<char>, case_insensitive_compare_func, std::__1::allocator<std::__1::pair<const std::__1::basic_string<char>, std::__1::basic_string<char> > > >::__value_type, std::__1::__map_value_compare<std::__1::basic_string<char>, std::__1::map<std::__1::basic_string<char>, std::__1::basic_string<char>, case_insensitive_compare_func, std::__1::allocator<std::__1::pair<const std::__1::basic_string<char>, std::__1::basic_string<char> > > >::__value_type, case_insensitive_compare_func, true>, std::__1::allocator<std::__1::map<std::__1::basic_string<char>, std::__1::basic_string<char>, case_insensitive_compare_func, std::__1::allocator<std::__1::pair<const std::__1::basic_string<char>, std::__1::basic_string<char> > > >::__value_type> >::find<std::__1::basic_string<char> >' requested here
    iterator find(const key_type& __k)             {return __tree_.find(__k);}
                                                                   ^
curl.cpp:392:54: note: in instantiation of member function 'std::__1::map<std::__1::basic_string<char>, std::__1::basic_string<char>, case_insensitive_compare_func, std::__1::allocator<std::__1::pair<const std::__1::basic_string<char>, std::__1::basic_string<char> > > >::find' requested here
  mimes_t::const_iterator iter = S3fsCurl::mimeTypes.find(ext);
                                                     ^
./curl.h:88:8: note: candidate function not viable: 'this' argument has type 'const case_insensitive_compare_func', but method is not marked const
  bool operator()(const std::string& a, const std::string& b){
       ^
In file included from curl.cpp:45:
/usr/include/c++/v1/map:411:17: error: no matching function for call to object of type 'const case_insensitive_compare_func'
        {return static_cast<const _Compare&>(*this)(__x, __y.__cc.first);}
                ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/usr/include/c++/v1/__tree:2020:26: note: in instantiation of member function 'std::__1::__map_value_compare<std::__1::basic_string<char>, std::__1::map<std::__1::basic_string<char>, std::__1::basic_string<char>, case_insensitive_compare_func, std::__1::allocator<std::__1::pair<const std::__1::basic_string<char>, std::__1::basic_string<char> > > >::__value_type, case_insensitive_compare_func, true>::operator()' requested here
    if (__p != end() && !value_comp()(__v, *__p))
                         ^
/usr/include/c++/v1/map:961:68: note: in instantiation of function template specialization 'std::__1::__tree<std::__1::map<std::__1::basic_string<char>, std::__1::basic_string<char>, case_insensitive_compare_func, std::__1::allocator<std::__1::pair<const std::__1::basic_string<char>, std::__1::basic_string<char> > > >::__value_type, std::__1::__map_value_compare<std::__1::basic_string<char>, std::__1::map<std::__1::basic_string<char>, std::__1::basic_string<char>, case_insensitive_compare_func, std::__1::allocator<std::__1::pair<const std::__1::basic_string<char>, std::__1::basic_string<char> > > >::__value_type, case_insensitive_compare_func, true>, std::__1::allocator<std::__1::map<std::__1::basic_string<char>, std::__1::basic_string<char>, case_insensitive_compare_func, std::__1::allocator<std::__1::pair<const std::__1::basic_string<char>, std::__1::basic_string<char> > > >::__value_type> >::find<std::__1::basic_string<char> >' requested here
    iterator find(const key_type& __k)             {return __tree_.find(__k);}
                                                                   ^
curl.cpp:392:54: note: in instantiation of member function 'std::__1::map<std::__1::basic_string<char>, std::__1::basic_string<char>, case_insensitive_compare_func, std::__1::allocator<std::__1::pair<const std::__1::basic_string<char>, std::__1::basic_string<char> > > >::find' requested here
  mimes_t::const_iterator iter = S3fsCurl::mimeTypes.find(ext);
                                                     ^
./curl.h:88:8: note: candidate function not viable: 'this' argument has type 'const case_insensitive_compare_func', but method is not marked const
  bool operator()(const std::string& a, const std::string& b){
       ^
3 errors generated.
*** [curl.o] Error code 1

make[2]: stopped in /usr/ports/sysutils/fusefs-s3fs/work/s3fs-1.73/src
1 error

make[2]: stopped in /usr/ports/sysutils/fusefs-s3fs/work/s3fs-1.73/src
*** [all-recursive] Error code 1

make[1]: stopped in /usr/ports/sysutils/fusefs-s3fs/work/s3fs-1.73
1 error

make[1]: stopped in /usr/ports/sysutils/fusefs-s3fs/work/s3fs-1.73
===> Compilation failed unexpectedly.
Try to set MAKE_JOBS_UNSAFE=yes and rebuild before reporting the failure to
the maintainer.
*** Error code 1

Stop.
make: stopped in /usr/ports/sysutils/fusefs-s3fs
-- end here --
>How-To-Repeat:
cd /usr/ports/sysutils/fusefs-s3fs
make

>Fix:
Added the following flags in the Makefile solves the compilation issue:
USE_GCC=       yes
USE_OPENSSL=   yes
LDFLAGS+=      -L${OPENSSLLIB} -lcrypto -lssl

Patch included for Makefile and distinfo.

Patch attached with submission follows:

--- Makefile.FCS	2013-09-21 08:05:58.000000000 +0900
+++ Makefile	2013-10-30 17:36:48.000000000 +0900
@@ -2,7 +2,7 @@
 # $FreeBSD: sysutils/fusefs-s3fs/Makefile 327772 2013-09-20 23:05:58Z bapt $
 
 PORTNAME=	s3fs
-DISTVERSION=	1.71
+DISTVERSION=	1.73
 PORTREVISION=	1
 CATEGORIES=	sysutils
 MASTER_SITES=	GOOGLE_CODE
@@ -14,6 +14,10 @@
 LIB_DEPENDS=	curl:${PORTSDIR}/ftp/curl \
 		xml2:${PORTSDIR}/textproc/libxml2
 
+USE_GCC=	yes
+USE_OPENSSL=	yes
+LDFLAGS+=	-L${OPENSSLLIB} -lcrypto -lssl
+
 GNU_CONFIGURE=	yes
 PLIST_FILES=	bin/s3fs
 USES=		fuse pkgconfig
--- distinfo.FCS	2013-06-27 16:03:34.000000000 +0900
+++ distinfo	2013-10-29 23:27:12.000000000 +0900
@@ -1,2 +1,2 @@
-SHA256 (s3fs-1.71.tar.gz) = a31a2c318c7149a5f387a69583fcecbf0ce8afa581a89a2a683c5ca5f7331e8d
-SIZE (s3fs-1.71.tar.gz) = 167136
+SHA256 (s3fs-1.73.tar.gz) = a82bc35ccc50cd42b175571535697df0d3201cdec23064e53f0c2859de2519ec
+SIZE (s3fs-1.73.tar.gz) = 184898


>Release-Note:
>Audit-Trail:
>Unformatted:



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201310300849.r9U8nWeu095403>