[114668] trunk/dports/security/KeePassX/Portfile

Ryan Schmidt ryandesign at macports.org
Fri Dec 13 10:33:00 PST 2013


On Dec 13, 2013, at 11:25, eborisch at macports.org wrote:

> Revision
> 114668
> Author
> eborisch at macports.org
> Date
> 2013-12-13 09:25:04 -0800 (Fri, 13 Dec 2013)
> Log Message
> 
> KeePassX: Build w/clang and c++11 on Mavericks
> Modified Paths
> 
> 	• trunk/dports/security/KeePassX/Portfile


> -# Build fails with clang: unsupported -stack-protector-buffer-size=4
> -# (even though clang -help lists option)
> -compiler.blacklist      clang
> -
> 
>  configure.cmd           cmake
> 
>  configure.pre_args      -DCMAKE_INSTALL_PREFIX=${applications_dir} \
> 
>                          -DZLIB_ROOT=${prefix}
> 
>  configure.args          ${qt_cmake_defines} ../${distname}
> 
>  
> 
> +platform darwin {
> +    if {${os.major} < 13} {
> +        # Build fails with clang: unsupported -stack-protector-buffer-size=4
> +        # (even though clang -help lists option)
> +        compiler.blacklist          clang

This is probably wrong; you should probably base the blacklisting of clang on its version, not on the OS version. Use the compiler_blacklist_versions portgroup. Also list any affected MacPorts clang ports.

> +    } else {
> +        revision                    3
> +        configure.pre_args-append   -DWITH_CXX11=On
> +    }
> +}

This could be wrong too. The ability to compile with C++11 with clang is tied to using the libc++ library. That’s the default as of Mavericks, but users running trunk on earlier OS versions could have indicated they want to use it too, by editing cxx_stdlib in macports.conf and rebuilding all ports. Conceivably, users on Mavericks might have even changed the setting to use libstdc++ instead, and would thus not support C++11. So you should base this not on the OS version but on the value of configure.cxx_stdlib, if it’s defined.




More information about the macports-dev mailing list